be9a3c16f6571a0509094daf4f05f0cf5fe0b96f
[nit.git] / c_src / parser.sep.12.c
1 #include "parser.sep.0.h"
2 /* method parser#ReduceAction468#action for (self: ReduceAction468, Parser) */
3 void parser__ReduceAction468__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_nodearraylist8 /* var nodearraylist8: nullable Object */;
9 val* var2 /* : nullable Object */;
10 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
11 val* var3 /* : nullable Object */;
12 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
13 val* var4 /* : nullable Object */;
14 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
15 val* var5 /* : nullable Object */;
16 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
17 val* var6 /* : nullable Object */;
18 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
19 val* var7 /* : nullable Object */;
20 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
21 val* var8 /* : nullable Object */;
22 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
23 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
24 short int var9 /* : Bool */;
25 int cltype;
26 int idtype;
27 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
28 short int var10 /* : Bool */;
29 int cltype11;
30 int idtype12;
31 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
32 short int var13 /* : Bool */;
33 int cltype14;
34 int idtype15;
35 val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */;
36 short int var16 /* : Bool */;
37 int cltype17;
38 int idtype18;
39 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
40 short int var19 /* : Bool */;
41 int cltype20;
42 int idtype21;
43 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
44 short int var22 /* : Bool */;
45 int cltype23;
46 int idtype24;
47 val* var25 /* : AExternInitPropdef */;
48 val* var26 /* : null */;
49 val* var27 /* : null */;
50 val* var28 /* : null */;
51 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternInitPropdef */;
52 long var29 /* : Int */;
53 long var30 /* : Int */;
54 var_p = p0;
55 var = NULL;
56 var_node_list = var;
57 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
58 var_nodearraylist8 = var1;
59 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
60 var_nodearraylist7 = var2;
61 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
62 var_nodearraylist6 = var3;
63 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
64 var_nodearraylist5 = var4;
65 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
66 var_nodearraylist4 = var5;
67 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
68 var_nodearraylist3 = var6;
69 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
70 var_nodearraylist2 = var7;
71 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
72 var_nodearraylist1 = var8;
73 var_pdocnode2 = var_nodearraylist1;
74 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
75 cltype = type_nullable_parser_nodes__ADoc.color;
76 idtype = type_nullable_parser_nodes__ADoc.id;
77 if(var_pdocnode2 == NULL) {
78 var9 = 1;
79 } else {
80 if(cltype >= var_pdocnode2->type->table_size) {
81 var9 = 0;
82 } else {
83 var9 = var_pdocnode2->type->type_table[cltype] == idtype;
84 }
85 }
86 if (!var9) {
87 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 20862);
88 exit(1);
89 }
90 var_tkwredefnode3 = var_nodearraylist2;
91 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
92 cltype11 = type_nullable_parser_nodes__TKwredef.color;
93 idtype12 = type_nullable_parser_nodes__TKwredef.id;
94 if(var_tkwredefnode3 == NULL) {
95 var10 = 1;
96 } else {
97 if(cltype11 >= var_tkwredefnode3->type->table_size) {
98 var10 = 0;
99 } else {
100 var10 = var_tkwredefnode3->type->type_table[cltype11] == idtype12;
101 }
102 }
103 if (!var10) {
104 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 20864);
105 exit(1);
106 }
107 var_pvisibilitynode4 = var_nodearraylist3;
108 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
109 cltype14 = type_nullable_parser_nodes__AVisibility.color;
110 idtype15 = type_nullable_parser_nodes__AVisibility.id;
111 if(var_pvisibilitynode4 == NULL) {
112 var13 = 1;
113 } else {
114 if(cltype14 >= var_pvisibilitynode4->type->table_size) {
115 var13 = 0;
116 } else {
117 var13 = var_pvisibilitynode4->type->type_table[cltype14] == idtype15;
118 }
119 }
120 if (!var13) {
121 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 20866);
122 exit(1);
123 }
124 var_tkwnewnode5 = var_nodearraylist4;
125 /* <var_tkwnewnode5:nullable Object> isa nullable TKwnew */
126 cltype17 = type_nullable_parser_nodes__TKwnew.color;
127 idtype18 = type_nullable_parser_nodes__TKwnew.id;
128 if(var_tkwnewnode5 == NULL) {
129 var16 = 1;
130 } else {
131 if(cltype17 >= var_tkwnewnode5->type->table_size) {
132 var16 = 0;
133 } else {
134 var16 = var_tkwnewnode5->type->type_table[cltype17] == idtype18;
135 }
136 }
137 if (!var16) {
138 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 20868);
139 exit(1);
140 }
141 var_pmethidnode6 = var_nodearraylist5;
142 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
143 cltype20 = type_nullable_parser_nodes__AMethid.color;
144 idtype21 = type_nullable_parser_nodes__AMethid.id;
145 if(var_pmethidnode6 == NULL) {
146 var19 = 1;
147 } else {
148 if(cltype20 >= var_pmethidnode6->type->table_size) {
149 var19 = 0;
150 } else {
151 var19 = var_pmethidnode6->type->type_table[cltype20] == idtype21;
152 }
153 }
154 if (!var19) {
155 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 20870);
156 exit(1);
157 }
158 var_psignaturenode7 = var_nodearraylist6;
159 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
160 cltype23 = type_nullable_parser_nodes__ASignature.color;
161 idtype24 = type_nullable_parser_nodes__ASignature.id;
162 if(var_psignaturenode7 == NULL) {
163 var22 = 1;
164 } else {
165 if(cltype23 >= var_psignaturenode7->type->table_size) {
166 var22 = 0;
167 } else {
168 var22 = var_psignaturenode7->type->type_table[cltype23] == idtype24;
169 }
170 }
171 if (!var22) {
172 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 20872);
173 exit(1);
174 }
175 var25 = NEW_parser_nodes__AExternInitPropdef(&type_parser_nodes__AExternInitPropdef);
176 var26 = NULL;
177 var27 = NULL;
178 var28 = NULL;
179 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var25->class->vft[COLOR_parser_prod__AExternInitPropdef__init_aexterninitpropdef]))(var25, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwnewnode5, var_pmethidnode6, var_psignaturenode7, var26, var27, var28) /* init_aexterninitpropdef on <var25:AExternInitPropdef>*/;
180 CHECK_NEW_parser_nodes__AExternInitPropdef(var25);
181 var_ppropdefnode1 = var25;
182 var_node_list = var_ppropdefnode1;
183 var29 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction468> */
184 var30 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var29) /* go_to on <var_p:Parser>*/;
185 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var30, var_node_list) /* push on <var_p:Parser>*/;
186 RET_LABEL:;
187 }
188 /* method parser#ReduceAction468#action for (self: Object, Parser) */
189 void VIRTUAL_parser__ReduceAction468__action(val* self, val* p0) {
190 parser__ReduceAction468__action(self, p0);
191 RET_LABEL:;
192 }
193 /* method parser#ReduceAction469#action for (self: ReduceAction469, Parser) */
194 void parser__ReduceAction469__action(val* self, val* p0) {
195 val* var_p /* var p: Parser */;
196 val* var /* : null */;
197 val* var_node_list /* var node_list: nullable Object */;
198 val* var1 /* : nullable Object */;
199 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
200 val* var2 /* : nullable Object */;
201 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
202 val* var3 /* : nullable Object */;
203 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
204 val* var4 /* : nullable Object */;
205 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
206 val* var5 /* : nullable Object */;
207 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
208 val* var6 /* : nullable Object */;
209 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
210 val* var7 /* : nullable Object */;
211 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
212 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
213 short int var8 /* : Bool */;
214 int cltype;
215 int idtype;
216 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
217 short int var9 /* : Bool */;
218 int cltype10;
219 int idtype11;
220 val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */;
221 short int var12 /* : Bool */;
222 int cltype13;
223 int idtype14;
224 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
225 short int var15 /* : Bool */;
226 int cltype16;
227 int idtype17;
228 val* var_tstringnode8 /* var tstringnode8: nullable Object */;
229 short int var18 /* : Bool */;
230 int cltype19;
231 int idtype20;
232 val* var21 /* : AExternInitPropdef */;
233 val* var22 /* : null */;
234 val* var23 /* : null */;
235 val* var24 /* : null */;
236 val* var25 /* : null */;
237 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternInitPropdef */;
238 long var26 /* : Int */;
239 long var27 /* : Int */;
240 var_p = p0;
241 var = NULL;
242 var_node_list = var;
243 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
244 var_nodearraylist7 = var1;
245 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
246 var_nodearraylist6 = var2;
247 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
248 var_nodearraylist5 = var3;
249 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
250 var_nodearraylist4 = var4;
251 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
252 var_nodearraylist3 = var5;
253 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
254 var_nodearraylist2 = var6;
255 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
256 var_nodearraylist1 = var7;
257 var_pdocnode2 = var_nodearraylist1;
258 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
259 cltype = type_nullable_parser_nodes__ADoc.color;
260 idtype = type_nullable_parser_nodes__ADoc.id;
261 if(var_pdocnode2 == NULL) {
262 var8 = 1;
263 } else {
264 if(cltype >= var_pdocnode2->type->table_size) {
265 var8 = 0;
266 } else {
267 var8 = var_pdocnode2->type->type_table[cltype] == idtype;
268 }
269 }
270 if (!var8) {
271 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 20901);
272 exit(1);
273 }
274 var_pvisibilitynode4 = var_nodearraylist2;
275 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
276 cltype10 = type_nullable_parser_nodes__AVisibility.color;
277 idtype11 = type_nullable_parser_nodes__AVisibility.id;
278 if(var_pvisibilitynode4 == NULL) {
279 var9 = 1;
280 } else {
281 if(cltype10 >= var_pvisibilitynode4->type->table_size) {
282 var9 = 0;
283 } else {
284 var9 = var_pvisibilitynode4->type->type_table[cltype10] == idtype11;
285 }
286 }
287 if (!var9) {
288 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 20903);
289 exit(1);
290 }
291 var_tkwnewnode5 = var_nodearraylist3;
292 /* <var_tkwnewnode5:nullable Object> isa nullable TKwnew */
293 cltype13 = type_nullable_parser_nodes__TKwnew.color;
294 idtype14 = type_nullable_parser_nodes__TKwnew.id;
295 if(var_tkwnewnode5 == NULL) {
296 var12 = 1;
297 } else {
298 if(cltype13 >= var_tkwnewnode5->type->table_size) {
299 var12 = 0;
300 } else {
301 var12 = var_tkwnewnode5->type->type_table[cltype13] == idtype14;
302 }
303 }
304 if (!var12) {
305 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 20905);
306 exit(1);
307 }
308 var_psignaturenode7 = var_nodearraylist4;
309 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
310 cltype16 = type_nullable_parser_nodes__ASignature.color;
311 idtype17 = type_nullable_parser_nodes__ASignature.id;
312 if(var_psignaturenode7 == NULL) {
313 var15 = 1;
314 } else {
315 if(cltype16 >= var_psignaturenode7->type->table_size) {
316 var15 = 0;
317 } else {
318 var15 = var_psignaturenode7->type->type_table[cltype16] == idtype17;
319 }
320 }
321 if (!var15) {
322 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 20907);
323 exit(1);
324 }
325 var_tstringnode8 = var_nodearraylist7;
326 /* <var_tstringnode8:nullable Object> isa nullable TString */
327 cltype19 = type_nullable_parser_nodes__TString.color;
328 idtype20 = type_nullable_parser_nodes__TString.id;
329 if(var_tstringnode8 == NULL) {
330 var18 = 1;
331 } else {
332 if(cltype19 >= var_tstringnode8->type->table_size) {
333 var18 = 0;
334 } else {
335 var18 = var_tstringnode8->type->type_table[cltype19] == idtype20;
336 }
337 }
338 if (!var18) {
339 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 20909);
340 exit(1);
341 }
342 var21 = NEW_parser_nodes__AExternInitPropdef(&type_parser_nodes__AExternInitPropdef);
343 var22 = NULL;
344 var23 = NULL;
345 var24 = NULL;
346 var25 = NULL;
347 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var21->class->vft[COLOR_parser_prod__AExternInitPropdef__init_aexterninitpropdef]))(var21, var_pdocnode2, var22, var_pvisibilitynode4, var_tkwnewnode5, var23, var_psignaturenode7, var_tstringnode8, var24, var25) /* init_aexterninitpropdef on <var21:AExternInitPropdef>*/;
348 CHECK_NEW_parser_nodes__AExternInitPropdef(var21);
349 var_ppropdefnode1 = var21;
350 var_node_list = var_ppropdefnode1;
351 var26 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction469> */
352 var27 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var26) /* go_to on <var_p:Parser>*/;
353 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var27, var_node_list) /* push on <var_p:Parser>*/;
354 RET_LABEL:;
355 }
356 /* method parser#ReduceAction469#action for (self: Object, Parser) */
357 void VIRTUAL_parser__ReduceAction469__action(val* self, val* p0) {
358 parser__ReduceAction469__action(self, p0);
359 RET_LABEL:;
360 }
361 /* method parser#ReduceAction470#action for (self: ReduceAction470, Parser) */
362 void parser__ReduceAction470__action(val* self, val* p0) {
363 val* var_p /* var p: Parser */;
364 val* var /* : null */;
365 val* var_node_list /* var node_list: nullable Object */;
366 val* var1 /* : nullable Object */;
367 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
368 val* var2 /* : nullable Object */;
369 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
370 val* var3 /* : nullable Object */;
371 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
372 val* var4 /* : nullable Object */;
373 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
374 val* var5 /* : nullable Object */;
375 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
376 val* var6 /* : nullable Object */;
377 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
378 val* var7 /* : nullable Object */;
379 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
380 val* var8 /* : nullable Object */;
381 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
382 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
383 short int var9 /* : Bool */;
384 int cltype;
385 int idtype;
386 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
387 short int var10 /* : Bool */;
388 int cltype11;
389 int idtype12;
390 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
391 short int var13 /* : Bool */;
392 int cltype14;
393 int idtype15;
394 val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */;
395 short int var16 /* : Bool */;
396 int cltype17;
397 int idtype18;
398 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
399 short int var19 /* : Bool */;
400 int cltype20;
401 int idtype21;
402 val* var_tstringnode8 /* var tstringnode8: nullable Object */;
403 short int var22 /* : Bool */;
404 int cltype23;
405 int idtype24;
406 val* var25 /* : AExternInitPropdef */;
407 val* var26 /* : null */;
408 val* var27 /* : null */;
409 val* var28 /* : null */;
410 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternInitPropdef */;
411 long var29 /* : Int */;
412 long var30 /* : Int */;
413 var_p = p0;
414 var = NULL;
415 var_node_list = var;
416 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
417 var_nodearraylist8 = var1;
418 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
419 var_nodearraylist7 = var2;
420 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
421 var_nodearraylist6 = var3;
422 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
423 var_nodearraylist5 = var4;
424 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
425 var_nodearraylist4 = var5;
426 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
427 var_nodearraylist3 = var6;
428 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
429 var_nodearraylist2 = var7;
430 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
431 var_nodearraylist1 = var8;
432 var_pdocnode2 = var_nodearraylist1;
433 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
434 cltype = type_nullable_parser_nodes__ADoc.color;
435 idtype = type_nullable_parser_nodes__ADoc.id;
436 if(var_pdocnode2 == NULL) {
437 var9 = 1;
438 } else {
439 if(cltype >= var_pdocnode2->type->table_size) {
440 var9 = 0;
441 } else {
442 var9 = var_pdocnode2->type->type_table[cltype] == idtype;
443 }
444 }
445 if (!var9) {
446 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 20939);
447 exit(1);
448 }
449 var_tkwredefnode3 = var_nodearraylist2;
450 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
451 cltype11 = type_nullable_parser_nodes__TKwredef.color;
452 idtype12 = type_nullable_parser_nodes__TKwredef.id;
453 if(var_tkwredefnode3 == NULL) {
454 var10 = 1;
455 } else {
456 if(cltype11 >= var_tkwredefnode3->type->table_size) {
457 var10 = 0;
458 } else {
459 var10 = var_tkwredefnode3->type->type_table[cltype11] == idtype12;
460 }
461 }
462 if (!var10) {
463 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 20941);
464 exit(1);
465 }
466 var_pvisibilitynode4 = var_nodearraylist3;
467 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
468 cltype14 = type_nullable_parser_nodes__AVisibility.color;
469 idtype15 = type_nullable_parser_nodes__AVisibility.id;
470 if(var_pvisibilitynode4 == NULL) {
471 var13 = 1;
472 } else {
473 if(cltype14 >= var_pvisibilitynode4->type->table_size) {
474 var13 = 0;
475 } else {
476 var13 = var_pvisibilitynode4->type->type_table[cltype14] == idtype15;
477 }
478 }
479 if (!var13) {
480 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 20943);
481 exit(1);
482 }
483 var_tkwnewnode5 = var_nodearraylist4;
484 /* <var_tkwnewnode5:nullable Object> isa nullable TKwnew */
485 cltype17 = type_nullable_parser_nodes__TKwnew.color;
486 idtype18 = type_nullable_parser_nodes__TKwnew.id;
487 if(var_tkwnewnode5 == NULL) {
488 var16 = 1;
489 } else {
490 if(cltype17 >= var_tkwnewnode5->type->table_size) {
491 var16 = 0;
492 } else {
493 var16 = var_tkwnewnode5->type->type_table[cltype17] == idtype18;
494 }
495 }
496 if (!var16) {
497 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 20945);
498 exit(1);
499 }
500 var_psignaturenode7 = var_nodearraylist5;
501 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
502 cltype20 = type_nullable_parser_nodes__ASignature.color;
503 idtype21 = type_nullable_parser_nodes__ASignature.id;
504 if(var_psignaturenode7 == NULL) {
505 var19 = 1;
506 } else {
507 if(cltype20 >= var_psignaturenode7->type->table_size) {
508 var19 = 0;
509 } else {
510 var19 = var_psignaturenode7->type->type_table[cltype20] == idtype21;
511 }
512 }
513 if (!var19) {
514 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 20947);
515 exit(1);
516 }
517 var_tstringnode8 = var_nodearraylist8;
518 /* <var_tstringnode8:nullable Object> isa nullable TString */
519 cltype23 = type_nullable_parser_nodes__TString.color;
520 idtype24 = type_nullable_parser_nodes__TString.id;
521 if(var_tstringnode8 == NULL) {
522 var22 = 1;
523 } else {
524 if(cltype23 >= var_tstringnode8->type->table_size) {
525 var22 = 0;
526 } else {
527 var22 = var_tstringnode8->type->type_table[cltype23] == idtype24;
528 }
529 }
530 if (!var22) {
531 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 20949);
532 exit(1);
533 }
534 var25 = NEW_parser_nodes__AExternInitPropdef(&type_parser_nodes__AExternInitPropdef);
535 var26 = NULL;
536 var27 = NULL;
537 var28 = NULL;
538 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var25->class->vft[COLOR_parser_prod__AExternInitPropdef__init_aexterninitpropdef]))(var25, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwnewnode5, var26, var_psignaturenode7, var_tstringnode8, var27, var28) /* init_aexterninitpropdef on <var25:AExternInitPropdef>*/;
539 CHECK_NEW_parser_nodes__AExternInitPropdef(var25);
540 var_ppropdefnode1 = var25;
541 var_node_list = var_ppropdefnode1;
542 var29 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction470> */
543 var30 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var29) /* go_to on <var_p:Parser>*/;
544 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var30, var_node_list) /* push on <var_p:Parser>*/;
545 RET_LABEL:;
546 }
547 /* method parser#ReduceAction470#action for (self: Object, Parser) */
548 void VIRTUAL_parser__ReduceAction470__action(val* self, val* p0) {
549 parser__ReduceAction470__action(self, p0);
550 RET_LABEL:;
551 }
552 /* method parser#ReduceAction471#action for (self: ReduceAction471, Parser) */
553 void parser__ReduceAction471__action(val* self, val* p0) {
554 val* var_p /* var p: Parser */;
555 val* var /* : null */;
556 val* var_node_list /* var node_list: nullable Object */;
557 val* var1 /* : nullable Object */;
558 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
559 val* var2 /* : nullable Object */;
560 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
561 val* var3 /* : nullable Object */;
562 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
563 val* var4 /* : nullable Object */;
564 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
565 val* var5 /* : nullable Object */;
566 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
567 val* var6 /* : nullable Object */;
568 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
569 val* var7 /* : nullable Object */;
570 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
571 val* var8 /* : nullable Object */;
572 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
573 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
574 short int var9 /* : Bool */;
575 int cltype;
576 int idtype;
577 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
578 short int var10 /* : Bool */;
579 int cltype11;
580 int idtype12;
581 val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */;
582 short int var13 /* : Bool */;
583 int cltype14;
584 int idtype15;
585 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
586 short int var16 /* : Bool */;
587 int cltype17;
588 int idtype18;
589 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
590 short int var19 /* : Bool */;
591 int cltype20;
592 int idtype21;
593 val* var_tstringnode8 /* var tstringnode8: nullable Object */;
594 short int var22 /* : Bool */;
595 int cltype23;
596 int idtype24;
597 val* var25 /* : AExternInitPropdef */;
598 val* var26 /* : null */;
599 val* var27 /* : null */;
600 val* var28 /* : null */;
601 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternInitPropdef */;
602 long var29 /* : Int */;
603 long var30 /* : Int */;
604 var_p = p0;
605 var = NULL;
606 var_node_list = var;
607 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
608 var_nodearraylist8 = var1;
609 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
610 var_nodearraylist7 = var2;
611 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
612 var_nodearraylist6 = var3;
613 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
614 var_nodearraylist5 = var4;
615 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
616 var_nodearraylist4 = var5;
617 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
618 var_nodearraylist3 = var6;
619 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
620 var_nodearraylist2 = var7;
621 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
622 var_nodearraylist1 = var8;
623 var_pdocnode2 = var_nodearraylist1;
624 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
625 cltype = type_nullable_parser_nodes__ADoc.color;
626 idtype = type_nullable_parser_nodes__ADoc.id;
627 if(var_pdocnode2 == NULL) {
628 var9 = 1;
629 } else {
630 if(cltype >= var_pdocnode2->type->table_size) {
631 var9 = 0;
632 } else {
633 var9 = var_pdocnode2->type->type_table[cltype] == idtype;
634 }
635 }
636 if (!var9) {
637 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 20979);
638 exit(1);
639 }
640 var_pvisibilitynode4 = var_nodearraylist2;
641 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
642 cltype11 = type_nullable_parser_nodes__AVisibility.color;
643 idtype12 = type_nullable_parser_nodes__AVisibility.id;
644 if(var_pvisibilitynode4 == NULL) {
645 var10 = 1;
646 } else {
647 if(cltype11 >= var_pvisibilitynode4->type->table_size) {
648 var10 = 0;
649 } else {
650 var10 = var_pvisibilitynode4->type->type_table[cltype11] == idtype12;
651 }
652 }
653 if (!var10) {
654 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 20981);
655 exit(1);
656 }
657 var_tkwnewnode5 = var_nodearraylist3;
658 /* <var_tkwnewnode5:nullable Object> isa nullable TKwnew */
659 cltype14 = type_nullable_parser_nodes__TKwnew.color;
660 idtype15 = type_nullable_parser_nodes__TKwnew.id;
661 if(var_tkwnewnode5 == NULL) {
662 var13 = 1;
663 } else {
664 if(cltype14 >= var_tkwnewnode5->type->table_size) {
665 var13 = 0;
666 } else {
667 var13 = var_tkwnewnode5->type->type_table[cltype14] == idtype15;
668 }
669 }
670 if (!var13) {
671 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 20983);
672 exit(1);
673 }
674 var_pmethidnode6 = var_nodearraylist4;
675 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
676 cltype17 = type_nullable_parser_nodes__AMethid.color;
677 idtype18 = type_nullable_parser_nodes__AMethid.id;
678 if(var_pmethidnode6 == NULL) {
679 var16 = 1;
680 } else {
681 if(cltype17 >= var_pmethidnode6->type->table_size) {
682 var16 = 0;
683 } else {
684 var16 = var_pmethidnode6->type->type_table[cltype17] == idtype18;
685 }
686 }
687 if (!var16) {
688 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 20985);
689 exit(1);
690 }
691 var_psignaturenode7 = var_nodearraylist5;
692 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
693 cltype20 = type_nullable_parser_nodes__ASignature.color;
694 idtype21 = type_nullable_parser_nodes__ASignature.id;
695 if(var_psignaturenode7 == NULL) {
696 var19 = 1;
697 } else {
698 if(cltype20 >= var_psignaturenode7->type->table_size) {
699 var19 = 0;
700 } else {
701 var19 = var_psignaturenode7->type->type_table[cltype20] == idtype21;
702 }
703 }
704 if (!var19) {
705 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 20987);
706 exit(1);
707 }
708 var_tstringnode8 = var_nodearraylist8;
709 /* <var_tstringnode8:nullable Object> isa nullable TString */
710 cltype23 = type_nullable_parser_nodes__TString.color;
711 idtype24 = type_nullable_parser_nodes__TString.id;
712 if(var_tstringnode8 == NULL) {
713 var22 = 1;
714 } else {
715 if(cltype23 >= var_tstringnode8->type->table_size) {
716 var22 = 0;
717 } else {
718 var22 = var_tstringnode8->type->type_table[cltype23] == idtype24;
719 }
720 }
721 if (!var22) {
722 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 20989);
723 exit(1);
724 }
725 var25 = NEW_parser_nodes__AExternInitPropdef(&type_parser_nodes__AExternInitPropdef);
726 var26 = NULL;
727 var27 = NULL;
728 var28 = NULL;
729 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var25->class->vft[COLOR_parser_prod__AExternInitPropdef__init_aexterninitpropdef]))(var25, var_pdocnode2, var26, var_pvisibilitynode4, var_tkwnewnode5, var_pmethidnode6, var_psignaturenode7, var_tstringnode8, var27, var28) /* init_aexterninitpropdef on <var25:AExternInitPropdef>*/;
730 CHECK_NEW_parser_nodes__AExternInitPropdef(var25);
731 var_ppropdefnode1 = var25;
732 var_node_list = var_ppropdefnode1;
733 var29 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction471> */
734 var30 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var29) /* go_to on <var_p:Parser>*/;
735 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var30, var_node_list) /* push on <var_p:Parser>*/;
736 RET_LABEL:;
737 }
738 /* method parser#ReduceAction471#action for (self: Object, Parser) */
739 void VIRTUAL_parser__ReduceAction471__action(val* self, val* p0) {
740 parser__ReduceAction471__action(self, p0);
741 RET_LABEL:;
742 }
743 /* method parser#ReduceAction472#action for (self: ReduceAction472, Parser) */
744 void parser__ReduceAction472__action(val* self, val* p0) {
745 val* var_p /* var p: Parser */;
746 val* var /* : null */;
747 val* var_node_list /* var node_list: nullable Object */;
748 val* var1 /* : nullable Object */;
749 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
750 val* var2 /* : nullable Object */;
751 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
752 val* var3 /* : nullable Object */;
753 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
754 val* var4 /* : nullable Object */;
755 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
756 val* var5 /* : nullable Object */;
757 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
758 val* var6 /* : nullable Object */;
759 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
760 val* var7 /* : nullable Object */;
761 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
762 val* var8 /* : nullable Object */;
763 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
764 val* var9 /* : nullable Object */;
765 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
766 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
767 short int var10 /* : Bool */;
768 int cltype;
769 int idtype;
770 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
771 short int var11 /* : Bool */;
772 int cltype12;
773 int idtype13;
774 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
775 short int var14 /* : Bool */;
776 int cltype15;
777 int idtype16;
778 val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */;
779 short int var17 /* : Bool */;
780 int cltype18;
781 int idtype19;
782 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
783 short int var20 /* : Bool */;
784 int cltype21;
785 int idtype22;
786 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
787 short int var23 /* : Bool */;
788 int cltype24;
789 int idtype25;
790 val* var_tstringnode8 /* var tstringnode8: nullable Object */;
791 short int var26 /* : Bool */;
792 int cltype27;
793 int idtype28;
794 val* var29 /* : AExternInitPropdef */;
795 val* var30 /* : null */;
796 val* var31 /* : null */;
797 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternInitPropdef */;
798 long var32 /* : Int */;
799 long var33 /* : Int */;
800 var_p = p0;
801 var = NULL;
802 var_node_list = var;
803 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
804 var_nodearraylist9 = var1;
805 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
806 var_nodearraylist8 = var2;
807 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
808 var_nodearraylist7 = var3;
809 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
810 var_nodearraylist6 = var4;
811 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
812 var_nodearraylist5 = var5;
813 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
814 var_nodearraylist4 = var6;
815 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
816 var_nodearraylist3 = var7;
817 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
818 var_nodearraylist2 = var8;
819 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
820 var_nodearraylist1 = var9;
821 var_pdocnode2 = var_nodearraylist1;
822 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
823 cltype = type_nullable_parser_nodes__ADoc.color;
824 idtype = type_nullable_parser_nodes__ADoc.id;
825 if(var_pdocnode2 == NULL) {
826 var10 = 1;
827 } else {
828 if(cltype >= var_pdocnode2->type->table_size) {
829 var10 = 0;
830 } else {
831 var10 = var_pdocnode2->type->type_table[cltype] == idtype;
832 }
833 }
834 if (!var10) {
835 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21020);
836 exit(1);
837 }
838 var_tkwredefnode3 = var_nodearraylist2;
839 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
840 cltype12 = type_nullable_parser_nodes__TKwredef.color;
841 idtype13 = type_nullable_parser_nodes__TKwredef.id;
842 if(var_tkwredefnode3 == NULL) {
843 var11 = 1;
844 } else {
845 if(cltype12 >= var_tkwredefnode3->type->table_size) {
846 var11 = 0;
847 } else {
848 var11 = var_tkwredefnode3->type->type_table[cltype12] == idtype13;
849 }
850 }
851 if (!var11) {
852 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21022);
853 exit(1);
854 }
855 var_pvisibilitynode4 = var_nodearraylist3;
856 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
857 cltype15 = type_nullable_parser_nodes__AVisibility.color;
858 idtype16 = type_nullable_parser_nodes__AVisibility.id;
859 if(var_pvisibilitynode4 == NULL) {
860 var14 = 1;
861 } else {
862 if(cltype15 >= var_pvisibilitynode4->type->table_size) {
863 var14 = 0;
864 } else {
865 var14 = var_pvisibilitynode4->type->type_table[cltype15] == idtype16;
866 }
867 }
868 if (!var14) {
869 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21024);
870 exit(1);
871 }
872 var_tkwnewnode5 = var_nodearraylist4;
873 /* <var_tkwnewnode5:nullable Object> isa nullable TKwnew */
874 cltype18 = type_nullable_parser_nodes__TKwnew.color;
875 idtype19 = type_nullable_parser_nodes__TKwnew.id;
876 if(var_tkwnewnode5 == NULL) {
877 var17 = 1;
878 } else {
879 if(cltype18 >= var_tkwnewnode5->type->table_size) {
880 var17 = 0;
881 } else {
882 var17 = var_tkwnewnode5->type->type_table[cltype18] == idtype19;
883 }
884 }
885 if (!var17) {
886 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21026);
887 exit(1);
888 }
889 var_pmethidnode6 = var_nodearraylist5;
890 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
891 cltype21 = type_nullable_parser_nodes__AMethid.color;
892 idtype22 = type_nullable_parser_nodes__AMethid.id;
893 if(var_pmethidnode6 == NULL) {
894 var20 = 1;
895 } else {
896 if(cltype21 >= var_pmethidnode6->type->table_size) {
897 var20 = 0;
898 } else {
899 var20 = var_pmethidnode6->type->type_table[cltype21] == idtype22;
900 }
901 }
902 if (!var20) {
903 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21028);
904 exit(1);
905 }
906 var_psignaturenode7 = var_nodearraylist6;
907 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
908 cltype24 = type_nullable_parser_nodes__ASignature.color;
909 idtype25 = type_nullable_parser_nodes__ASignature.id;
910 if(var_psignaturenode7 == NULL) {
911 var23 = 1;
912 } else {
913 if(cltype24 >= var_psignaturenode7->type->table_size) {
914 var23 = 0;
915 } else {
916 var23 = var_psignaturenode7->type->type_table[cltype24] == idtype25;
917 }
918 }
919 if (!var23) {
920 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21030);
921 exit(1);
922 }
923 var_tstringnode8 = var_nodearraylist9;
924 /* <var_tstringnode8:nullable Object> isa nullable TString */
925 cltype27 = type_nullable_parser_nodes__TString.color;
926 idtype28 = type_nullable_parser_nodes__TString.id;
927 if(var_tstringnode8 == NULL) {
928 var26 = 1;
929 } else {
930 if(cltype27 >= var_tstringnode8->type->table_size) {
931 var26 = 0;
932 } else {
933 var26 = var_tstringnode8->type->type_table[cltype27] == idtype28;
934 }
935 }
936 if (!var26) {
937 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21032);
938 exit(1);
939 }
940 var29 = NEW_parser_nodes__AExternInitPropdef(&type_parser_nodes__AExternInitPropdef);
941 var30 = NULL;
942 var31 = NULL;
943 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var29->class->vft[COLOR_parser_prod__AExternInitPropdef__init_aexterninitpropdef]))(var29, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwnewnode5, var_pmethidnode6, var_psignaturenode7, var_tstringnode8, var30, var31) /* init_aexterninitpropdef on <var29:AExternInitPropdef>*/;
944 CHECK_NEW_parser_nodes__AExternInitPropdef(var29);
945 var_ppropdefnode1 = var29;
946 var_node_list = var_ppropdefnode1;
947 var32 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction472> */
948 var33 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var32) /* go_to on <var_p:Parser>*/;
949 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var33, var_node_list) /* push on <var_p:Parser>*/;
950 RET_LABEL:;
951 }
952 /* method parser#ReduceAction472#action for (self: Object, Parser) */
953 void VIRTUAL_parser__ReduceAction472__action(val* self, val* p0) {
954 parser__ReduceAction472__action(self, p0);
955 RET_LABEL:;
956 }
957 /* method parser#ReduceAction473#action for (self: ReduceAction473, Parser) */
958 void parser__ReduceAction473__action(val* self, val* p0) {
959 val* var_p /* var p: Parser */;
960 val* var /* : null */;
961 val* var_node_list /* var node_list: nullable Object */;
962 val* var1 /* : nullable Object */;
963 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
964 val* var2 /* : nullable Object */;
965 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
966 val* var3 /* : nullable Object */;
967 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
968 val* var4 /* : nullable Object */;
969 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
970 val* var5 /* : nullable Object */;
971 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
972 val* var6 /* : nullable Object */;
973 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
974 val* var7 /* : nullable Object */;
975 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
976 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
977 short int var8 /* : Bool */;
978 int cltype;
979 int idtype;
980 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
981 short int var9 /* : Bool */;
982 int cltype10;
983 int idtype11;
984 val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */;
985 short int var12 /* : Bool */;
986 int cltype13;
987 int idtype14;
988 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
989 short int var15 /* : Bool */;
990 int cltype16;
991 int idtype17;
992 val* var_pexterncallsnode9 /* var pexterncallsnode9: nullable Object */;
993 short int var18 /* : Bool */;
994 int cltype19;
995 int idtype20;
996 val* var21 /* : AExternInitPropdef */;
997 val* var22 /* : null */;
998 val* var23 /* : null */;
999 val* var24 /* : null */;
1000 val* var25 /* : null */;
1001 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternInitPropdef */;
1002 long var26 /* : Int */;
1003 long var27 /* : Int */;
1004 var_p = p0;
1005 var = NULL;
1006 var_node_list = var;
1007 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1008 var_nodearraylist7 = var1;
1009 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1010 var_nodearraylist6 = var2;
1011 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1012 var_nodearraylist5 = var3;
1013 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1014 var_nodearraylist4 = var4;
1015 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1016 var_nodearraylist3 = var5;
1017 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1018 var_nodearraylist2 = var6;
1019 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1020 var_nodearraylist1 = var7;
1021 var_pdocnode2 = var_nodearraylist1;
1022 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
1023 cltype = type_nullable_parser_nodes__ADoc.color;
1024 idtype = type_nullable_parser_nodes__ADoc.id;
1025 if(var_pdocnode2 == NULL) {
1026 var8 = 1;
1027 } else {
1028 if(cltype >= var_pdocnode2->type->table_size) {
1029 var8 = 0;
1030 } else {
1031 var8 = var_pdocnode2->type->type_table[cltype] == idtype;
1032 }
1033 }
1034 if (!var8) {
1035 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21061);
1036 exit(1);
1037 }
1038 var_pvisibilitynode4 = var_nodearraylist2;
1039 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
1040 cltype10 = type_nullable_parser_nodes__AVisibility.color;
1041 idtype11 = type_nullable_parser_nodes__AVisibility.id;
1042 if(var_pvisibilitynode4 == NULL) {
1043 var9 = 1;
1044 } else {
1045 if(cltype10 >= var_pvisibilitynode4->type->table_size) {
1046 var9 = 0;
1047 } else {
1048 var9 = var_pvisibilitynode4->type->type_table[cltype10] == idtype11;
1049 }
1050 }
1051 if (!var9) {
1052 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21063);
1053 exit(1);
1054 }
1055 var_tkwnewnode5 = var_nodearraylist3;
1056 /* <var_tkwnewnode5:nullable Object> isa nullable TKwnew */
1057 cltype13 = type_nullable_parser_nodes__TKwnew.color;
1058 idtype14 = type_nullable_parser_nodes__TKwnew.id;
1059 if(var_tkwnewnode5 == NULL) {
1060 var12 = 1;
1061 } else {
1062 if(cltype13 >= var_tkwnewnode5->type->table_size) {
1063 var12 = 0;
1064 } else {
1065 var12 = var_tkwnewnode5->type->type_table[cltype13] == idtype14;
1066 }
1067 }
1068 if (!var12) {
1069 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21065);
1070 exit(1);
1071 }
1072 var_psignaturenode7 = var_nodearraylist4;
1073 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
1074 cltype16 = type_nullable_parser_nodes__ASignature.color;
1075 idtype17 = type_nullable_parser_nodes__ASignature.id;
1076 if(var_psignaturenode7 == NULL) {
1077 var15 = 1;
1078 } else {
1079 if(cltype16 >= var_psignaturenode7->type->table_size) {
1080 var15 = 0;
1081 } else {
1082 var15 = var_psignaturenode7->type->type_table[cltype16] == idtype17;
1083 }
1084 }
1085 if (!var15) {
1086 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21067);
1087 exit(1);
1088 }
1089 var_pexterncallsnode9 = var_nodearraylist7;
1090 /* <var_pexterncallsnode9:nullable Object> isa nullable AExternCalls */
1091 cltype19 = type_nullable_parser_nodes__AExternCalls.color;
1092 idtype20 = type_nullable_parser_nodes__AExternCalls.id;
1093 if(var_pexterncallsnode9 == NULL) {
1094 var18 = 1;
1095 } else {
1096 if(cltype19 >= var_pexterncallsnode9->type->table_size) {
1097 var18 = 0;
1098 } else {
1099 var18 = var_pexterncallsnode9->type->type_table[cltype19] == idtype20;
1100 }
1101 }
1102 if (!var18) {
1103 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21069);
1104 exit(1);
1105 }
1106 var21 = NEW_parser_nodes__AExternInitPropdef(&type_parser_nodes__AExternInitPropdef);
1107 var22 = NULL;
1108 var23 = NULL;
1109 var24 = NULL;
1110 var25 = NULL;
1111 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var21->class->vft[COLOR_parser_prod__AExternInitPropdef__init_aexterninitpropdef]))(var21, var_pdocnode2, var22, var_pvisibilitynode4, var_tkwnewnode5, var23, var_psignaturenode7, var24, var_pexterncallsnode9, var25) /* init_aexterninitpropdef on <var21:AExternInitPropdef>*/;
1112 CHECK_NEW_parser_nodes__AExternInitPropdef(var21);
1113 var_ppropdefnode1 = var21;
1114 var_node_list = var_ppropdefnode1;
1115 var26 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction473> */
1116 var27 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var26) /* go_to on <var_p:Parser>*/;
1117 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var27, var_node_list) /* push on <var_p:Parser>*/;
1118 RET_LABEL:;
1119 }
1120 /* method parser#ReduceAction473#action for (self: Object, Parser) */
1121 void VIRTUAL_parser__ReduceAction473__action(val* self, val* p0) {
1122 parser__ReduceAction473__action(self, p0);
1123 RET_LABEL:;
1124 }
1125 /* method parser#ReduceAction474#action for (self: ReduceAction474, Parser) */
1126 void parser__ReduceAction474__action(val* self, val* p0) {
1127 val* var_p /* var p: Parser */;
1128 val* var /* : null */;
1129 val* var_node_list /* var node_list: nullable Object */;
1130 val* var1 /* : nullable Object */;
1131 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
1132 val* var2 /* : nullable Object */;
1133 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
1134 val* var3 /* : nullable Object */;
1135 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
1136 val* var4 /* : nullable Object */;
1137 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
1138 val* var5 /* : nullable Object */;
1139 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1140 val* var6 /* : nullable Object */;
1141 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1142 val* var7 /* : nullable Object */;
1143 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1144 val* var8 /* : nullable Object */;
1145 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1146 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
1147 short int var9 /* : Bool */;
1148 int cltype;
1149 int idtype;
1150 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
1151 short int var10 /* : Bool */;
1152 int cltype11;
1153 int idtype12;
1154 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
1155 short int var13 /* : Bool */;
1156 int cltype14;
1157 int idtype15;
1158 val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */;
1159 short int var16 /* : Bool */;
1160 int cltype17;
1161 int idtype18;
1162 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
1163 short int var19 /* : Bool */;
1164 int cltype20;
1165 int idtype21;
1166 val* var_pexterncallsnode9 /* var pexterncallsnode9: nullable Object */;
1167 short int var22 /* : Bool */;
1168 int cltype23;
1169 int idtype24;
1170 val* var25 /* : AExternInitPropdef */;
1171 val* var26 /* : null */;
1172 val* var27 /* : null */;
1173 val* var28 /* : null */;
1174 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternInitPropdef */;
1175 long var29 /* : Int */;
1176 long var30 /* : Int */;
1177 var_p = p0;
1178 var = NULL;
1179 var_node_list = var;
1180 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1181 var_nodearraylist8 = var1;
1182 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1183 var_nodearraylist7 = var2;
1184 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1185 var_nodearraylist6 = var3;
1186 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1187 var_nodearraylist5 = var4;
1188 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1189 var_nodearraylist4 = var5;
1190 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1191 var_nodearraylist3 = var6;
1192 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1193 var_nodearraylist2 = var7;
1194 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1195 var_nodearraylist1 = var8;
1196 var_pdocnode2 = var_nodearraylist1;
1197 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
1198 cltype = type_nullable_parser_nodes__ADoc.color;
1199 idtype = type_nullable_parser_nodes__ADoc.id;
1200 if(var_pdocnode2 == NULL) {
1201 var9 = 1;
1202 } else {
1203 if(cltype >= var_pdocnode2->type->table_size) {
1204 var9 = 0;
1205 } else {
1206 var9 = var_pdocnode2->type->type_table[cltype] == idtype;
1207 }
1208 }
1209 if (!var9) {
1210 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21099);
1211 exit(1);
1212 }
1213 var_tkwredefnode3 = var_nodearraylist2;
1214 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
1215 cltype11 = type_nullable_parser_nodes__TKwredef.color;
1216 idtype12 = type_nullable_parser_nodes__TKwredef.id;
1217 if(var_tkwredefnode3 == NULL) {
1218 var10 = 1;
1219 } else {
1220 if(cltype11 >= var_tkwredefnode3->type->table_size) {
1221 var10 = 0;
1222 } else {
1223 var10 = var_tkwredefnode3->type->type_table[cltype11] == idtype12;
1224 }
1225 }
1226 if (!var10) {
1227 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21101);
1228 exit(1);
1229 }
1230 var_pvisibilitynode4 = var_nodearraylist3;
1231 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
1232 cltype14 = type_nullable_parser_nodes__AVisibility.color;
1233 idtype15 = type_nullable_parser_nodes__AVisibility.id;
1234 if(var_pvisibilitynode4 == NULL) {
1235 var13 = 1;
1236 } else {
1237 if(cltype14 >= var_pvisibilitynode4->type->table_size) {
1238 var13 = 0;
1239 } else {
1240 var13 = var_pvisibilitynode4->type->type_table[cltype14] == idtype15;
1241 }
1242 }
1243 if (!var13) {
1244 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21103);
1245 exit(1);
1246 }
1247 var_tkwnewnode5 = var_nodearraylist4;
1248 /* <var_tkwnewnode5:nullable Object> isa nullable TKwnew */
1249 cltype17 = type_nullable_parser_nodes__TKwnew.color;
1250 idtype18 = type_nullable_parser_nodes__TKwnew.id;
1251 if(var_tkwnewnode5 == NULL) {
1252 var16 = 1;
1253 } else {
1254 if(cltype17 >= var_tkwnewnode5->type->table_size) {
1255 var16 = 0;
1256 } else {
1257 var16 = var_tkwnewnode5->type->type_table[cltype17] == idtype18;
1258 }
1259 }
1260 if (!var16) {
1261 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21105);
1262 exit(1);
1263 }
1264 var_psignaturenode7 = var_nodearraylist5;
1265 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
1266 cltype20 = type_nullable_parser_nodes__ASignature.color;
1267 idtype21 = type_nullable_parser_nodes__ASignature.id;
1268 if(var_psignaturenode7 == NULL) {
1269 var19 = 1;
1270 } else {
1271 if(cltype20 >= var_psignaturenode7->type->table_size) {
1272 var19 = 0;
1273 } else {
1274 var19 = var_psignaturenode7->type->type_table[cltype20] == idtype21;
1275 }
1276 }
1277 if (!var19) {
1278 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21107);
1279 exit(1);
1280 }
1281 var_pexterncallsnode9 = var_nodearraylist8;
1282 /* <var_pexterncallsnode9:nullable Object> isa nullable AExternCalls */
1283 cltype23 = type_nullable_parser_nodes__AExternCalls.color;
1284 idtype24 = type_nullable_parser_nodes__AExternCalls.id;
1285 if(var_pexterncallsnode9 == NULL) {
1286 var22 = 1;
1287 } else {
1288 if(cltype23 >= var_pexterncallsnode9->type->table_size) {
1289 var22 = 0;
1290 } else {
1291 var22 = var_pexterncallsnode9->type->type_table[cltype23] == idtype24;
1292 }
1293 }
1294 if (!var22) {
1295 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21109);
1296 exit(1);
1297 }
1298 var25 = NEW_parser_nodes__AExternInitPropdef(&type_parser_nodes__AExternInitPropdef);
1299 var26 = NULL;
1300 var27 = NULL;
1301 var28 = NULL;
1302 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var25->class->vft[COLOR_parser_prod__AExternInitPropdef__init_aexterninitpropdef]))(var25, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwnewnode5, var26, var_psignaturenode7, var27, var_pexterncallsnode9, var28) /* init_aexterninitpropdef on <var25:AExternInitPropdef>*/;
1303 CHECK_NEW_parser_nodes__AExternInitPropdef(var25);
1304 var_ppropdefnode1 = var25;
1305 var_node_list = var_ppropdefnode1;
1306 var29 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction474> */
1307 var30 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var29) /* go_to on <var_p:Parser>*/;
1308 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var30, var_node_list) /* push on <var_p:Parser>*/;
1309 RET_LABEL:;
1310 }
1311 /* method parser#ReduceAction474#action for (self: Object, Parser) */
1312 void VIRTUAL_parser__ReduceAction474__action(val* self, val* p0) {
1313 parser__ReduceAction474__action(self, p0);
1314 RET_LABEL:;
1315 }
1316 /* method parser#ReduceAction475#action for (self: ReduceAction475, Parser) */
1317 void parser__ReduceAction475__action(val* self, val* p0) {
1318 val* var_p /* var p: Parser */;
1319 val* var /* : null */;
1320 val* var_node_list /* var node_list: nullable Object */;
1321 val* var1 /* : nullable Object */;
1322 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
1323 val* var2 /* : nullable Object */;
1324 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
1325 val* var3 /* : nullable Object */;
1326 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
1327 val* var4 /* : nullable Object */;
1328 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
1329 val* var5 /* : nullable Object */;
1330 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1331 val* var6 /* : nullable Object */;
1332 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1333 val* var7 /* : nullable Object */;
1334 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1335 val* var8 /* : nullable Object */;
1336 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1337 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
1338 short int var9 /* : Bool */;
1339 int cltype;
1340 int idtype;
1341 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
1342 short int var10 /* : Bool */;
1343 int cltype11;
1344 int idtype12;
1345 val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */;
1346 short int var13 /* : Bool */;
1347 int cltype14;
1348 int idtype15;
1349 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
1350 short int var16 /* : Bool */;
1351 int cltype17;
1352 int idtype18;
1353 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
1354 short int var19 /* : Bool */;
1355 int cltype20;
1356 int idtype21;
1357 val* var_pexterncallsnode9 /* var pexterncallsnode9: nullable Object */;
1358 short int var22 /* : Bool */;
1359 int cltype23;
1360 int idtype24;
1361 val* var25 /* : AExternInitPropdef */;
1362 val* var26 /* : null */;
1363 val* var27 /* : null */;
1364 val* var28 /* : null */;
1365 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternInitPropdef */;
1366 long var29 /* : Int */;
1367 long var30 /* : Int */;
1368 var_p = p0;
1369 var = NULL;
1370 var_node_list = var;
1371 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1372 var_nodearraylist8 = var1;
1373 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1374 var_nodearraylist7 = var2;
1375 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1376 var_nodearraylist6 = var3;
1377 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1378 var_nodearraylist5 = var4;
1379 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1380 var_nodearraylist4 = var5;
1381 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1382 var_nodearraylist3 = var6;
1383 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1384 var_nodearraylist2 = var7;
1385 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1386 var_nodearraylist1 = var8;
1387 var_pdocnode2 = var_nodearraylist1;
1388 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
1389 cltype = type_nullable_parser_nodes__ADoc.color;
1390 idtype = type_nullable_parser_nodes__ADoc.id;
1391 if(var_pdocnode2 == NULL) {
1392 var9 = 1;
1393 } else {
1394 if(cltype >= var_pdocnode2->type->table_size) {
1395 var9 = 0;
1396 } else {
1397 var9 = var_pdocnode2->type->type_table[cltype] == idtype;
1398 }
1399 }
1400 if (!var9) {
1401 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21139);
1402 exit(1);
1403 }
1404 var_pvisibilitynode4 = var_nodearraylist2;
1405 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
1406 cltype11 = type_nullable_parser_nodes__AVisibility.color;
1407 idtype12 = type_nullable_parser_nodes__AVisibility.id;
1408 if(var_pvisibilitynode4 == NULL) {
1409 var10 = 1;
1410 } else {
1411 if(cltype11 >= var_pvisibilitynode4->type->table_size) {
1412 var10 = 0;
1413 } else {
1414 var10 = var_pvisibilitynode4->type->type_table[cltype11] == idtype12;
1415 }
1416 }
1417 if (!var10) {
1418 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21141);
1419 exit(1);
1420 }
1421 var_tkwnewnode5 = var_nodearraylist3;
1422 /* <var_tkwnewnode5:nullable Object> isa nullable TKwnew */
1423 cltype14 = type_nullable_parser_nodes__TKwnew.color;
1424 idtype15 = type_nullable_parser_nodes__TKwnew.id;
1425 if(var_tkwnewnode5 == NULL) {
1426 var13 = 1;
1427 } else {
1428 if(cltype14 >= var_tkwnewnode5->type->table_size) {
1429 var13 = 0;
1430 } else {
1431 var13 = var_tkwnewnode5->type->type_table[cltype14] == idtype15;
1432 }
1433 }
1434 if (!var13) {
1435 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21143);
1436 exit(1);
1437 }
1438 var_pmethidnode6 = var_nodearraylist4;
1439 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
1440 cltype17 = type_nullable_parser_nodes__AMethid.color;
1441 idtype18 = type_nullable_parser_nodes__AMethid.id;
1442 if(var_pmethidnode6 == NULL) {
1443 var16 = 1;
1444 } else {
1445 if(cltype17 >= var_pmethidnode6->type->table_size) {
1446 var16 = 0;
1447 } else {
1448 var16 = var_pmethidnode6->type->type_table[cltype17] == idtype18;
1449 }
1450 }
1451 if (!var16) {
1452 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21145);
1453 exit(1);
1454 }
1455 var_psignaturenode7 = var_nodearraylist5;
1456 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
1457 cltype20 = type_nullable_parser_nodes__ASignature.color;
1458 idtype21 = type_nullable_parser_nodes__ASignature.id;
1459 if(var_psignaturenode7 == NULL) {
1460 var19 = 1;
1461 } else {
1462 if(cltype20 >= var_psignaturenode7->type->table_size) {
1463 var19 = 0;
1464 } else {
1465 var19 = var_psignaturenode7->type->type_table[cltype20] == idtype21;
1466 }
1467 }
1468 if (!var19) {
1469 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21147);
1470 exit(1);
1471 }
1472 var_pexterncallsnode9 = var_nodearraylist8;
1473 /* <var_pexterncallsnode9:nullable Object> isa nullable AExternCalls */
1474 cltype23 = type_nullable_parser_nodes__AExternCalls.color;
1475 idtype24 = type_nullable_parser_nodes__AExternCalls.id;
1476 if(var_pexterncallsnode9 == NULL) {
1477 var22 = 1;
1478 } else {
1479 if(cltype23 >= var_pexterncallsnode9->type->table_size) {
1480 var22 = 0;
1481 } else {
1482 var22 = var_pexterncallsnode9->type->type_table[cltype23] == idtype24;
1483 }
1484 }
1485 if (!var22) {
1486 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21149);
1487 exit(1);
1488 }
1489 var25 = NEW_parser_nodes__AExternInitPropdef(&type_parser_nodes__AExternInitPropdef);
1490 var26 = NULL;
1491 var27 = NULL;
1492 var28 = NULL;
1493 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var25->class->vft[COLOR_parser_prod__AExternInitPropdef__init_aexterninitpropdef]))(var25, var_pdocnode2, var26, var_pvisibilitynode4, var_tkwnewnode5, var_pmethidnode6, var_psignaturenode7, var27, var_pexterncallsnode9, var28) /* init_aexterninitpropdef on <var25:AExternInitPropdef>*/;
1494 CHECK_NEW_parser_nodes__AExternInitPropdef(var25);
1495 var_ppropdefnode1 = var25;
1496 var_node_list = var_ppropdefnode1;
1497 var29 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction475> */
1498 var30 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var29) /* go_to on <var_p:Parser>*/;
1499 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var30, var_node_list) /* push on <var_p:Parser>*/;
1500 RET_LABEL:;
1501 }
1502 /* method parser#ReduceAction475#action for (self: Object, Parser) */
1503 void VIRTUAL_parser__ReduceAction475__action(val* self, val* p0) {
1504 parser__ReduceAction475__action(self, p0);
1505 RET_LABEL:;
1506 }
1507 /* method parser#ReduceAction476#action for (self: ReduceAction476, Parser) */
1508 void parser__ReduceAction476__action(val* self, val* p0) {
1509 val* var_p /* var p: Parser */;
1510 val* var /* : null */;
1511 val* var_node_list /* var node_list: nullable Object */;
1512 val* var1 /* : nullable Object */;
1513 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
1514 val* var2 /* : nullable Object */;
1515 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
1516 val* var3 /* : nullable Object */;
1517 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
1518 val* var4 /* : nullable Object */;
1519 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
1520 val* var5 /* : nullable Object */;
1521 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
1522 val* var6 /* : nullable Object */;
1523 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1524 val* var7 /* : nullable Object */;
1525 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1526 val* var8 /* : nullable Object */;
1527 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1528 val* var9 /* : nullable Object */;
1529 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1530 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
1531 short int var10 /* : Bool */;
1532 int cltype;
1533 int idtype;
1534 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
1535 short int var11 /* : Bool */;
1536 int cltype12;
1537 int idtype13;
1538 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
1539 short int var14 /* : Bool */;
1540 int cltype15;
1541 int idtype16;
1542 val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */;
1543 short int var17 /* : Bool */;
1544 int cltype18;
1545 int idtype19;
1546 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
1547 short int var20 /* : Bool */;
1548 int cltype21;
1549 int idtype22;
1550 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
1551 short int var23 /* : Bool */;
1552 int cltype24;
1553 int idtype25;
1554 val* var_pexterncallsnode9 /* var pexterncallsnode9: nullable Object */;
1555 short int var26 /* : Bool */;
1556 int cltype27;
1557 int idtype28;
1558 val* var29 /* : AExternInitPropdef */;
1559 val* var30 /* : null */;
1560 val* var31 /* : null */;
1561 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternInitPropdef */;
1562 long var32 /* : Int */;
1563 long var33 /* : Int */;
1564 var_p = p0;
1565 var = NULL;
1566 var_node_list = var;
1567 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1568 var_nodearraylist9 = var1;
1569 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1570 var_nodearraylist8 = var2;
1571 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1572 var_nodearraylist7 = var3;
1573 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1574 var_nodearraylist6 = var4;
1575 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1576 var_nodearraylist5 = var5;
1577 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1578 var_nodearraylist4 = var6;
1579 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1580 var_nodearraylist3 = var7;
1581 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1582 var_nodearraylist2 = var8;
1583 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1584 var_nodearraylist1 = var9;
1585 var_pdocnode2 = var_nodearraylist1;
1586 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
1587 cltype = type_nullable_parser_nodes__ADoc.color;
1588 idtype = type_nullable_parser_nodes__ADoc.id;
1589 if(var_pdocnode2 == NULL) {
1590 var10 = 1;
1591 } else {
1592 if(cltype >= var_pdocnode2->type->table_size) {
1593 var10 = 0;
1594 } else {
1595 var10 = var_pdocnode2->type->type_table[cltype] == idtype;
1596 }
1597 }
1598 if (!var10) {
1599 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21180);
1600 exit(1);
1601 }
1602 var_tkwredefnode3 = var_nodearraylist2;
1603 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
1604 cltype12 = type_nullable_parser_nodes__TKwredef.color;
1605 idtype13 = type_nullable_parser_nodes__TKwredef.id;
1606 if(var_tkwredefnode3 == NULL) {
1607 var11 = 1;
1608 } else {
1609 if(cltype12 >= var_tkwredefnode3->type->table_size) {
1610 var11 = 0;
1611 } else {
1612 var11 = var_tkwredefnode3->type->type_table[cltype12] == idtype13;
1613 }
1614 }
1615 if (!var11) {
1616 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21182);
1617 exit(1);
1618 }
1619 var_pvisibilitynode4 = var_nodearraylist3;
1620 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
1621 cltype15 = type_nullable_parser_nodes__AVisibility.color;
1622 idtype16 = type_nullable_parser_nodes__AVisibility.id;
1623 if(var_pvisibilitynode4 == NULL) {
1624 var14 = 1;
1625 } else {
1626 if(cltype15 >= var_pvisibilitynode4->type->table_size) {
1627 var14 = 0;
1628 } else {
1629 var14 = var_pvisibilitynode4->type->type_table[cltype15] == idtype16;
1630 }
1631 }
1632 if (!var14) {
1633 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21184);
1634 exit(1);
1635 }
1636 var_tkwnewnode5 = var_nodearraylist4;
1637 /* <var_tkwnewnode5:nullable Object> isa nullable TKwnew */
1638 cltype18 = type_nullable_parser_nodes__TKwnew.color;
1639 idtype19 = type_nullable_parser_nodes__TKwnew.id;
1640 if(var_tkwnewnode5 == NULL) {
1641 var17 = 1;
1642 } else {
1643 if(cltype18 >= var_tkwnewnode5->type->table_size) {
1644 var17 = 0;
1645 } else {
1646 var17 = var_tkwnewnode5->type->type_table[cltype18] == idtype19;
1647 }
1648 }
1649 if (!var17) {
1650 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21186);
1651 exit(1);
1652 }
1653 var_pmethidnode6 = var_nodearraylist5;
1654 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
1655 cltype21 = type_nullable_parser_nodes__AMethid.color;
1656 idtype22 = type_nullable_parser_nodes__AMethid.id;
1657 if(var_pmethidnode6 == NULL) {
1658 var20 = 1;
1659 } else {
1660 if(cltype21 >= var_pmethidnode6->type->table_size) {
1661 var20 = 0;
1662 } else {
1663 var20 = var_pmethidnode6->type->type_table[cltype21] == idtype22;
1664 }
1665 }
1666 if (!var20) {
1667 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21188);
1668 exit(1);
1669 }
1670 var_psignaturenode7 = var_nodearraylist6;
1671 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
1672 cltype24 = type_nullable_parser_nodes__ASignature.color;
1673 idtype25 = type_nullable_parser_nodes__ASignature.id;
1674 if(var_psignaturenode7 == NULL) {
1675 var23 = 1;
1676 } else {
1677 if(cltype24 >= var_psignaturenode7->type->table_size) {
1678 var23 = 0;
1679 } else {
1680 var23 = var_psignaturenode7->type->type_table[cltype24] == idtype25;
1681 }
1682 }
1683 if (!var23) {
1684 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21190);
1685 exit(1);
1686 }
1687 var_pexterncallsnode9 = var_nodearraylist9;
1688 /* <var_pexterncallsnode9:nullable Object> isa nullable AExternCalls */
1689 cltype27 = type_nullable_parser_nodes__AExternCalls.color;
1690 idtype28 = type_nullable_parser_nodes__AExternCalls.id;
1691 if(var_pexterncallsnode9 == NULL) {
1692 var26 = 1;
1693 } else {
1694 if(cltype27 >= var_pexterncallsnode9->type->table_size) {
1695 var26 = 0;
1696 } else {
1697 var26 = var_pexterncallsnode9->type->type_table[cltype27] == idtype28;
1698 }
1699 }
1700 if (!var26) {
1701 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21192);
1702 exit(1);
1703 }
1704 var29 = NEW_parser_nodes__AExternInitPropdef(&type_parser_nodes__AExternInitPropdef);
1705 var30 = NULL;
1706 var31 = NULL;
1707 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var29->class->vft[COLOR_parser_prod__AExternInitPropdef__init_aexterninitpropdef]))(var29, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwnewnode5, var_pmethidnode6, var_psignaturenode7, var30, var_pexterncallsnode9, var31) /* init_aexterninitpropdef on <var29:AExternInitPropdef>*/;
1708 CHECK_NEW_parser_nodes__AExternInitPropdef(var29);
1709 var_ppropdefnode1 = var29;
1710 var_node_list = var_ppropdefnode1;
1711 var32 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction476> */
1712 var33 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var32) /* go_to on <var_p:Parser>*/;
1713 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var33, var_node_list) /* push on <var_p:Parser>*/;
1714 RET_LABEL:;
1715 }
1716 /* method parser#ReduceAction476#action for (self: Object, Parser) */
1717 void VIRTUAL_parser__ReduceAction476__action(val* self, val* p0) {
1718 parser__ReduceAction476__action(self, p0);
1719 RET_LABEL:;
1720 }
1721 /* method parser#ReduceAction477#action for (self: ReduceAction477, Parser) */
1722 void parser__ReduceAction477__action(val* self, val* p0) {
1723 val* var_p /* var p: Parser */;
1724 val* var /* : null */;
1725 val* var_node_list /* var node_list: nullable Object */;
1726 val* var1 /* : nullable Object */;
1727 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
1728 val* var2 /* : nullable Object */;
1729 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
1730 val* var3 /* : nullable Object */;
1731 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
1732 val* var4 /* : nullable Object */;
1733 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
1734 val* var5 /* : nullable Object */;
1735 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1736 val* var6 /* : nullable Object */;
1737 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1738 val* var7 /* : nullable Object */;
1739 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1740 val* var8 /* : nullable Object */;
1741 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1742 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
1743 short int var9 /* : Bool */;
1744 int cltype;
1745 int idtype;
1746 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
1747 short int var10 /* : Bool */;
1748 int cltype11;
1749 int idtype12;
1750 val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */;
1751 short int var13 /* : Bool */;
1752 int cltype14;
1753 int idtype15;
1754 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
1755 short int var16 /* : Bool */;
1756 int cltype17;
1757 int idtype18;
1758 val* var_tstringnode8 /* var tstringnode8: nullable Object */;
1759 short int var19 /* : Bool */;
1760 int cltype20;
1761 int idtype21;
1762 val* var_pexterncallsnode9 /* var pexterncallsnode9: nullable Object */;
1763 short int var22 /* : Bool */;
1764 int cltype23;
1765 int idtype24;
1766 val* var25 /* : AExternInitPropdef */;
1767 val* var26 /* : null */;
1768 val* var27 /* : null */;
1769 val* var28 /* : null */;
1770 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternInitPropdef */;
1771 long var29 /* : Int */;
1772 long var30 /* : Int */;
1773 var_p = p0;
1774 var = NULL;
1775 var_node_list = var;
1776 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1777 var_nodearraylist8 = var1;
1778 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1779 var_nodearraylist7 = var2;
1780 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1781 var_nodearraylist6 = var3;
1782 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1783 var_nodearraylist5 = var4;
1784 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1785 var_nodearraylist4 = var5;
1786 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1787 var_nodearraylist3 = var6;
1788 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1789 var_nodearraylist2 = var7;
1790 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1791 var_nodearraylist1 = var8;
1792 var_pdocnode2 = var_nodearraylist1;
1793 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
1794 cltype = type_nullable_parser_nodes__ADoc.color;
1795 idtype = type_nullable_parser_nodes__ADoc.id;
1796 if(var_pdocnode2 == NULL) {
1797 var9 = 1;
1798 } else {
1799 if(cltype >= var_pdocnode2->type->table_size) {
1800 var9 = 0;
1801 } else {
1802 var9 = var_pdocnode2->type->type_table[cltype] == idtype;
1803 }
1804 }
1805 if (!var9) {
1806 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21222);
1807 exit(1);
1808 }
1809 var_pvisibilitynode4 = var_nodearraylist2;
1810 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
1811 cltype11 = type_nullable_parser_nodes__AVisibility.color;
1812 idtype12 = type_nullable_parser_nodes__AVisibility.id;
1813 if(var_pvisibilitynode4 == NULL) {
1814 var10 = 1;
1815 } else {
1816 if(cltype11 >= var_pvisibilitynode4->type->table_size) {
1817 var10 = 0;
1818 } else {
1819 var10 = var_pvisibilitynode4->type->type_table[cltype11] == idtype12;
1820 }
1821 }
1822 if (!var10) {
1823 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21224);
1824 exit(1);
1825 }
1826 var_tkwnewnode5 = var_nodearraylist3;
1827 /* <var_tkwnewnode5:nullable Object> isa nullable TKwnew */
1828 cltype14 = type_nullable_parser_nodes__TKwnew.color;
1829 idtype15 = type_nullable_parser_nodes__TKwnew.id;
1830 if(var_tkwnewnode5 == NULL) {
1831 var13 = 1;
1832 } else {
1833 if(cltype14 >= var_tkwnewnode5->type->table_size) {
1834 var13 = 0;
1835 } else {
1836 var13 = var_tkwnewnode5->type->type_table[cltype14] == idtype15;
1837 }
1838 }
1839 if (!var13) {
1840 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21226);
1841 exit(1);
1842 }
1843 var_psignaturenode7 = var_nodearraylist4;
1844 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
1845 cltype17 = type_nullable_parser_nodes__ASignature.color;
1846 idtype18 = type_nullable_parser_nodes__ASignature.id;
1847 if(var_psignaturenode7 == NULL) {
1848 var16 = 1;
1849 } else {
1850 if(cltype17 >= var_psignaturenode7->type->table_size) {
1851 var16 = 0;
1852 } else {
1853 var16 = var_psignaturenode7->type->type_table[cltype17] == idtype18;
1854 }
1855 }
1856 if (!var16) {
1857 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21228);
1858 exit(1);
1859 }
1860 var_tstringnode8 = var_nodearraylist7;
1861 /* <var_tstringnode8:nullable Object> isa nullable TString */
1862 cltype20 = type_nullable_parser_nodes__TString.color;
1863 idtype21 = type_nullable_parser_nodes__TString.id;
1864 if(var_tstringnode8 == NULL) {
1865 var19 = 1;
1866 } else {
1867 if(cltype20 >= var_tstringnode8->type->table_size) {
1868 var19 = 0;
1869 } else {
1870 var19 = var_tstringnode8->type->type_table[cltype20] == idtype21;
1871 }
1872 }
1873 if (!var19) {
1874 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21230);
1875 exit(1);
1876 }
1877 var_pexterncallsnode9 = var_nodearraylist8;
1878 /* <var_pexterncallsnode9:nullable Object> isa nullable AExternCalls */
1879 cltype23 = type_nullable_parser_nodes__AExternCalls.color;
1880 idtype24 = type_nullable_parser_nodes__AExternCalls.id;
1881 if(var_pexterncallsnode9 == NULL) {
1882 var22 = 1;
1883 } else {
1884 if(cltype23 >= var_pexterncallsnode9->type->table_size) {
1885 var22 = 0;
1886 } else {
1887 var22 = var_pexterncallsnode9->type->type_table[cltype23] == idtype24;
1888 }
1889 }
1890 if (!var22) {
1891 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21232);
1892 exit(1);
1893 }
1894 var25 = NEW_parser_nodes__AExternInitPropdef(&type_parser_nodes__AExternInitPropdef);
1895 var26 = NULL;
1896 var27 = NULL;
1897 var28 = NULL;
1898 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var25->class->vft[COLOR_parser_prod__AExternInitPropdef__init_aexterninitpropdef]))(var25, var_pdocnode2, var26, var_pvisibilitynode4, var_tkwnewnode5, var27, var_psignaturenode7, var_tstringnode8, var_pexterncallsnode9, var28) /* init_aexterninitpropdef on <var25:AExternInitPropdef>*/;
1899 CHECK_NEW_parser_nodes__AExternInitPropdef(var25);
1900 var_ppropdefnode1 = var25;
1901 var_node_list = var_ppropdefnode1;
1902 var29 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction477> */
1903 var30 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var29) /* go_to on <var_p:Parser>*/;
1904 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var30, var_node_list) /* push on <var_p:Parser>*/;
1905 RET_LABEL:;
1906 }
1907 /* method parser#ReduceAction477#action for (self: Object, Parser) */
1908 void VIRTUAL_parser__ReduceAction477__action(val* self, val* p0) {
1909 parser__ReduceAction477__action(self, p0);
1910 RET_LABEL:;
1911 }
1912 /* method parser#ReduceAction478#action for (self: ReduceAction478, Parser) */
1913 void parser__ReduceAction478__action(val* self, val* p0) {
1914 val* var_p /* var p: Parser */;
1915 val* var /* : null */;
1916 val* var_node_list /* var node_list: nullable Object */;
1917 val* var1 /* : nullable Object */;
1918 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
1919 val* var2 /* : nullable Object */;
1920 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
1921 val* var3 /* : nullable Object */;
1922 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
1923 val* var4 /* : nullable Object */;
1924 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
1925 val* var5 /* : nullable Object */;
1926 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
1927 val* var6 /* : nullable Object */;
1928 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1929 val* var7 /* : nullable Object */;
1930 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1931 val* var8 /* : nullable Object */;
1932 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1933 val* var9 /* : nullable Object */;
1934 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1935 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
1936 short int var10 /* : Bool */;
1937 int cltype;
1938 int idtype;
1939 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
1940 short int var11 /* : Bool */;
1941 int cltype12;
1942 int idtype13;
1943 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
1944 short int var14 /* : Bool */;
1945 int cltype15;
1946 int idtype16;
1947 val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */;
1948 short int var17 /* : Bool */;
1949 int cltype18;
1950 int idtype19;
1951 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
1952 short int var20 /* : Bool */;
1953 int cltype21;
1954 int idtype22;
1955 val* var_tstringnode8 /* var tstringnode8: nullable Object */;
1956 short int var23 /* : Bool */;
1957 int cltype24;
1958 int idtype25;
1959 val* var_pexterncallsnode9 /* var pexterncallsnode9: nullable Object */;
1960 short int var26 /* : Bool */;
1961 int cltype27;
1962 int idtype28;
1963 val* var29 /* : AExternInitPropdef */;
1964 val* var30 /* : null */;
1965 val* var31 /* : null */;
1966 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternInitPropdef */;
1967 long var32 /* : Int */;
1968 long var33 /* : Int */;
1969 var_p = p0;
1970 var = NULL;
1971 var_node_list = var;
1972 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1973 var_nodearraylist9 = var1;
1974 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1975 var_nodearraylist8 = var2;
1976 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1977 var_nodearraylist7 = var3;
1978 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1979 var_nodearraylist6 = var4;
1980 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1981 var_nodearraylist5 = var5;
1982 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1983 var_nodearraylist4 = var6;
1984 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1985 var_nodearraylist3 = var7;
1986 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1987 var_nodearraylist2 = var8;
1988 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
1989 var_nodearraylist1 = var9;
1990 var_pdocnode2 = var_nodearraylist1;
1991 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
1992 cltype = type_nullable_parser_nodes__ADoc.color;
1993 idtype = type_nullable_parser_nodes__ADoc.id;
1994 if(var_pdocnode2 == NULL) {
1995 var10 = 1;
1996 } else {
1997 if(cltype >= var_pdocnode2->type->table_size) {
1998 var10 = 0;
1999 } else {
2000 var10 = var_pdocnode2->type->type_table[cltype] == idtype;
2001 }
2002 }
2003 if (!var10) {
2004 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21263);
2005 exit(1);
2006 }
2007 var_tkwredefnode3 = var_nodearraylist2;
2008 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
2009 cltype12 = type_nullable_parser_nodes__TKwredef.color;
2010 idtype13 = type_nullable_parser_nodes__TKwredef.id;
2011 if(var_tkwredefnode3 == NULL) {
2012 var11 = 1;
2013 } else {
2014 if(cltype12 >= var_tkwredefnode3->type->table_size) {
2015 var11 = 0;
2016 } else {
2017 var11 = var_tkwredefnode3->type->type_table[cltype12] == idtype13;
2018 }
2019 }
2020 if (!var11) {
2021 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21265);
2022 exit(1);
2023 }
2024 var_pvisibilitynode4 = var_nodearraylist3;
2025 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
2026 cltype15 = type_nullable_parser_nodes__AVisibility.color;
2027 idtype16 = type_nullable_parser_nodes__AVisibility.id;
2028 if(var_pvisibilitynode4 == NULL) {
2029 var14 = 1;
2030 } else {
2031 if(cltype15 >= var_pvisibilitynode4->type->table_size) {
2032 var14 = 0;
2033 } else {
2034 var14 = var_pvisibilitynode4->type->type_table[cltype15] == idtype16;
2035 }
2036 }
2037 if (!var14) {
2038 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21267);
2039 exit(1);
2040 }
2041 var_tkwnewnode5 = var_nodearraylist4;
2042 /* <var_tkwnewnode5:nullable Object> isa nullable TKwnew */
2043 cltype18 = type_nullable_parser_nodes__TKwnew.color;
2044 idtype19 = type_nullable_parser_nodes__TKwnew.id;
2045 if(var_tkwnewnode5 == NULL) {
2046 var17 = 1;
2047 } else {
2048 if(cltype18 >= var_tkwnewnode5->type->table_size) {
2049 var17 = 0;
2050 } else {
2051 var17 = var_tkwnewnode5->type->type_table[cltype18] == idtype19;
2052 }
2053 }
2054 if (!var17) {
2055 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21269);
2056 exit(1);
2057 }
2058 var_psignaturenode7 = var_nodearraylist5;
2059 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
2060 cltype21 = type_nullable_parser_nodes__ASignature.color;
2061 idtype22 = type_nullable_parser_nodes__ASignature.id;
2062 if(var_psignaturenode7 == NULL) {
2063 var20 = 1;
2064 } else {
2065 if(cltype21 >= var_psignaturenode7->type->table_size) {
2066 var20 = 0;
2067 } else {
2068 var20 = var_psignaturenode7->type->type_table[cltype21] == idtype22;
2069 }
2070 }
2071 if (!var20) {
2072 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21271);
2073 exit(1);
2074 }
2075 var_tstringnode8 = var_nodearraylist8;
2076 /* <var_tstringnode8:nullable Object> isa nullable TString */
2077 cltype24 = type_nullable_parser_nodes__TString.color;
2078 idtype25 = type_nullable_parser_nodes__TString.id;
2079 if(var_tstringnode8 == NULL) {
2080 var23 = 1;
2081 } else {
2082 if(cltype24 >= var_tstringnode8->type->table_size) {
2083 var23 = 0;
2084 } else {
2085 var23 = var_tstringnode8->type->type_table[cltype24] == idtype25;
2086 }
2087 }
2088 if (!var23) {
2089 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21273);
2090 exit(1);
2091 }
2092 var_pexterncallsnode9 = var_nodearraylist9;
2093 /* <var_pexterncallsnode9:nullable Object> isa nullable AExternCalls */
2094 cltype27 = type_nullable_parser_nodes__AExternCalls.color;
2095 idtype28 = type_nullable_parser_nodes__AExternCalls.id;
2096 if(var_pexterncallsnode9 == NULL) {
2097 var26 = 1;
2098 } else {
2099 if(cltype27 >= var_pexterncallsnode9->type->table_size) {
2100 var26 = 0;
2101 } else {
2102 var26 = var_pexterncallsnode9->type->type_table[cltype27] == idtype28;
2103 }
2104 }
2105 if (!var26) {
2106 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21275);
2107 exit(1);
2108 }
2109 var29 = NEW_parser_nodes__AExternInitPropdef(&type_parser_nodes__AExternInitPropdef);
2110 var30 = NULL;
2111 var31 = NULL;
2112 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var29->class->vft[COLOR_parser_prod__AExternInitPropdef__init_aexterninitpropdef]))(var29, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwnewnode5, var30, var_psignaturenode7, var_tstringnode8, var_pexterncallsnode9, var31) /* init_aexterninitpropdef on <var29:AExternInitPropdef>*/;
2113 CHECK_NEW_parser_nodes__AExternInitPropdef(var29);
2114 var_ppropdefnode1 = var29;
2115 var_node_list = var_ppropdefnode1;
2116 var32 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction478> */
2117 var33 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var32) /* go_to on <var_p:Parser>*/;
2118 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var33, var_node_list) /* push on <var_p:Parser>*/;
2119 RET_LABEL:;
2120 }
2121 /* method parser#ReduceAction478#action for (self: Object, Parser) */
2122 void VIRTUAL_parser__ReduceAction478__action(val* self, val* p0) {
2123 parser__ReduceAction478__action(self, p0);
2124 RET_LABEL:;
2125 }
2126 /* method parser#ReduceAction479#action for (self: ReduceAction479, Parser) */
2127 void parser__ReduceAction479__action(val* self, val* p0) {
2128 val* var_p /* var p: Parser */;
2129 val* var /* : null */;
2130 val* var_node_list /* var node_list: nullable Object */;
2131 val* var1 /* : nullable Object */;
2132 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
2133 val* var2 /* : nullable Object */;
2134 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
2135 val* var3 /* : nullable Object */;
2136 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
2137 val* var4 /* : nullable Object */;
2138 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
2139 val* var5 /* : nullable Object */;
2140 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
2141 val* var6 /* : nullable Object */;
2142 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2143 val* var7 /* : nullable Object */;
2144 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2145 val* var8 /* : nullable Object */;
2146 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2147 val* var9 /* : nullable Object */;
2148 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2149 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
2150 short int var10 /* : Bool */;
2151 int cltype;
2152 int idtype;
2153 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
2154 short int var11 /* : Bool */;
2155 int cltype12;
2156 int idtype13;
2157 val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */;
2158 short int var14 /* : Bool */;
2159 int cltype15;
2160 int idtype16;
2161 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
2162 short int var17 /* : Bool */;
2163 int cltype18;
2164 int idtype19;
2165 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
2166 short int var20 /* : Bool */;
2167 int cltype21;
2168 int idtype22;
2169 val* var_tstringnode8 /* var tstringnode8: nullable Object */;
2170 short int var23 /* : Bool */;
2171 int cltype24;
2172 int idtype25;
2173 val* var_pexterncallsnode9 /* var pexterncallsnode9: nullable Object */;
2174 short int var26 /* : Bool */;
2175 int cltype27;
2176 int idtype28;
2177 val* var29 /* : AExternInitPropdef */;
2178 val* var30 /* : null */;
2179 val* var31 /* : null */;
2180 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternInitPropdef */;
2181 long var32 /* : Int */;
2182 long var33 /* : Int */;
2183 var_p = p0;
2184 var = NULL;
2185 var_node_list = var;
2186 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2187 var_nodearraylist9 = var1;
2188 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2189 var_nodearraylist8 = var2;
2190 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2191 var_nodearraylist7 = var3;
2192 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2193 var_nodearraylist6 = var4;
2194 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2195 var_nodearraylist5 = var5;
2196 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2197 var_nodearraylist4 = var6;
2198 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2199 var_nodearraylist3 = var7;
2200 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2201 var_nodearraylist2 = var8;
2202 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2203 var_nodearraylist1 = var9;
2204 var_pdocnode2 = var_nodearraylist1;
2205 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
2206 cltype = type_nullable_parser_nodes__ADoc.color;
2207 idtype = type_nullable_parser_nodes__ADoc.id;
2208 if(var_pdocnode2 == NULL) {
2209 var10 = 1;
2210 } else {
2211 if(cltype >= var_pdocnode2->type->table_size) {
2212 var10 = 0;
2213 } else {
2214 var10 = var_pdocnode2->type->type_table[cltype] == idtype;
2215 }
2216 }
2217 if (!var10) {
2218 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21306);
2219 exit(1);
2220 }
2221 var_pvisibilitynode4 = var_nodearraylist2;
2222 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
2223 cltype12 = type_nullable_parser_nodes__AVisibility.color;
2224 idtype13 = type_nullable_parser_nodes__AVisibility.id;
2225 if(var_pvisibilitynode4 == NULL) {
2226 var11 = 1;
2227 } else {
2228 if(cltype12 >= var_pvisibilitynode4->type->table_size) {
2229 var11 = 0;
2230 } else {
2231 var11 = var_pvisibilitynode4->type->type_table[cltype12] == idtype13;
2232 }
2233 }
2234 if (!var11) {
2235 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21308);
2236 exit(1);
2237 }
2238 var_tkwnewnode5 = var_nodearraylist3;
2239 /* <var_tkwnewnode5:nullable Object> isa nullable TKwnew */
2240 cltype15 = type_nullable_parser_nodes__TKwnew.color;
2241 idtype16 = type_nullable_parser_nodes__TKwnew.id;
2242 if(var_tkwnewnode5 == NULL) {
2243 var14 = 1;
2244 } else {
2245 if(cltype15 >= var_tkwnewnode5->type->table_size) {
2246 var14 = 0;
2247 } else {
2248 var14 = var_tkwnewnode5->type->type_table[cltype15] == idtype16;
2249 }
2250 }
2251 if (!var14) {
2252 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21310);
2253 exit(1);
2254 }
2255 var_pmethidnode6 = var_nodearraylist4;
2256 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
2257 cltype18 = type_nullable_parser_nodes__AMethid.color;
2258 idtype19 = type_nullable_parser_nodes__AMethid.id;
2259 if(var_pmethidnode6 == NULL) {
2260 var17 = 1;
2261 } else {
2262 if(cltype18 >= var_pmethidnode6->type->table_size) {
2263 var17 = 0;
2264 } else {
2265 var17 = var_pmethidnode6->type->type_table[cltype18] == idtype19;
2266 }
2267 }
2268 if (!var17) {
2269 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21312);
2270 exit(1);
2271 }
2272 var_psignaturenode7 = var_nodearraylist5;
2273 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
2274 cltype21 = type_nullable_parser_nodes__ASignature.color;
2275 idtype22 = type_nullable_parser_nodes__ASignature.id;
2276 if(var_psignaturenode7 == NULL) {
2277 var20 = 1;
2278 } else {
2279 if(cltype21 >= var_psignaturenode7->type->table_size) {
2280 var20 = 0;
2281 } else {
2282 var20 = var_psignaturenode7->type->type_table[cltype21] == idtype22;
2283 }
2284 }
2285 if (!var20) {
2286 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21314);
2287 exit(1);
2288 }
2289 var_tstringnode8 = var_nodearraylist8;
2290 /* <var_tstringnode8:nullable Object> isa nullable TString */
2291 cltype24 = type_nullable_parser_nodes__TString.color;
2292 idtype25 = type_nullable_parser_nodes__TString.id;
2293 if(var_tstringnode8 == NULL) {
2294 var23 = 1;
2295 } else {
2296 if(cltype24 >= var_tstringnode8->type->table_size) {
2297 var23 = 0;
2298 } else {
2299 var23 = var_tstringnode8->type->type_table[cltype24] == idtype25;
2300 }
2301 }
2302 if (!var23) {
2303 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21316);
2304 exit(1);
2305 }
2306 var_pexterncallsnode9 = var_nodearraylist9;
2307 /* <var_pexterncallsnode9:nullable Object> isa nullable AExternCalls */
2308 cltype27 = type_nullable_parser_nodes__AExternCalls.color;
2309 idtype28 = type_nullable_parser_nodes__AExternCalls.id;
2310 if(var_pexterncallsnode9 == NULL) {
2311 var26 = 1;
2312 } else {
2313 if(cltype27 >= var_pexterncallsnode9->type->table_size) {
2314 var26 = 0;
2315 } else {
2316 var26 = var_pexterncallsnode9->type->type_table[cltype27] == idtype28;
2317 }
2318 }
2319 if (!var26) {
2320 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21318);
2321 exit(1);
2322 }
2323 var29 = NEW_parser_nodes__AExternInitPropdef(&type_parser_nodes__AExternInitPropdef);
2324 var30 = NULL;
2325 var31 = NULL;
2326 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var29->class->vft[COLOR_parser_prod__AExternInitPropdef__init_aexterninitpropdef]))(var29, var_pdocnode2, var30, var_pvisibilitynode4, var_tkwnewnode5, var_pmethidnode6, var_psignaturenode7, var_tstringnode8, var_pexterncallsnode9, var31) /* init_aexterninitpropdef on <var29:AExternInitPropdef>*/;
2327 CHECK_NEW_parser_nodes__AExternInitPropdef(var29);
2328 var_ppropdefnode1 = var29;
2329 var_node_list = var_ppropdefnode1;
2330 var32 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction479> */
2331 var33 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var32) /* go_to on <var_p:Parser>*/;
2332 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var33, var_node_list) /* push on <var_p:Parser>*/;
2333 RET_LABEL:;
2334 }
2335 /* method parser#ReduceAction479#action for (self: Object, Parser) */
2336 void VIRTUAL_parser__ReduceAction479__action(val* self, val* p0) {
2337 parser__ReduceAction479__action(self, p0);
2338 RET_LABEL:;
2339 }
2340 /* method parser#ReduceAction480#action for (self: ReduceAction480, Parser) */
2341 void parser__ReduceAction480__action(val* self, val* p0) {
2342 val* var_p /* var p: Parser */;
2343 val* var /* : null */;
2344 val* var_node_list /* var node_list: nullable Object */;
2345 val* var1 /* : nullable Object */;
2346 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
2347 val* var2 /* : nullable Object */;
2348 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
2349 val* var3 /* : nullable Object */;
2350 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
2351 val* var4 /* : nullable Object */;
2352 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
2353 val* var5 /* : nullable Object */;
2354 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
2355 val* var6 /* : nullable Object */;
2356 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
2357 val* var7 /* : nullable Object */;
2358 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2359 val* var8 /* : nullable Object */;
2360 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2361 val* var9 /* : nullable Object */;
2362 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2363 val* var10 /* : nullable Object */;
2364 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2365 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
2366 short int var11 /* : Bool */;
2367 int cltype;
2368 int idtype;
2369 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
2370 short int var12 /* : Bool */;
2371 int cltype13;
2372 int idtype14;
2373 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
2374 short int var15 /* : Bool */;
2375 int cltype16;
2376 int idtype17;
2377 val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */;
2378 short int var18 /* : Bool */;
2379 int cltype19;
2380 int idtype20;
2381 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
2382 short int var21 /* : Bool */;
2383 int cltype22;
2384 int idtype23;
2385 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
2386 short int var24 /* : Bool */;
2387 int cltype25;
2388 int idtype26;
2389 val* var_tstringnode8 /* var tstringnode8: nullable Object */;
2390 short int var27 /* : Bool */;
2391 int cltype28;
2392 int idtype29;
2393 val* var_pexterncallsnode9 /* var pexterncallsnode9: nullable Object */;
2394 short int var30 /* : Bool */;
2395 int cltype31;
2396 int idtype32;
2397 val* var33 /* : AExternInitPropdef */;
2398 val* var34 /* : null */;
2399 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternInitPropdef */;
2400 long var35 /* : Int */;
2401 long var36 /* : Int */;
2402 var_p = p0;
2403 var = NULL;
2404 var_node_list = var;
2405 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2406 var_nodearraylist10 = var1;
2407 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2408 var_nodearraylist9 = var2;
2409 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2410 var_nodearraylist8 = var3;
2411 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2412 var_nodearraylist7 = var4;
2413 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2414 var_nodearraylist6 = var5;
2415 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2416 var_nodearraylist5 = var6;
2417 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2418 var_nodearraylist4 = var7;
2419 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2420 var_nodearraylist3 = var8;
2421 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2422 var_nodearraylist2 = var9;
2423 var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2424 var_nodearraylist1 = var10;
2425 var_pdocnode2 = var_nodearraylist1;
2426 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
2427 cltype = type_nullable_parser_nodes__ADoc.color;
2428 idtype = type_nullable_parser_nodes__ADoc.id;
2429 if(var_pdocnode2 == NULL) {
2430 var11 = 1;
2431 } else {
2432 if(cltype >= var_pdocnode2->type->table_size) {
2433 var11 = 0;
2434 } else {
2435 var11 = var_pdocnode2->type->type_table[cltype] == idtype;
2436 }
2437 }
2438 if (!var11) {
2439 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21350);
2440 exit(1);
2441 }
2442 var_tkwredefnode3 = var_nodearraylist2;
2443 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
2444 cltype13 = type_nullable_parser_nodes__TKwredef.color;
2445 idtype14 = type_nullable_parser_nodes__TKwredef.id;
2446 if(var_tkwredefnode3 == NULL) {
2447 var12 = 1;
2448 } else {
2449 if(cltype13 >= var_tkwredefnode3->type->table_size) {
2450 var12 = 0;
2451 } else {
2452 var12 = var_tkwredefnode3->type->type_table[cltype13] == idtype14;
2453 }
2454 }
2455 if (!var12) {
2456 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21352);
2457 exit(1);
2458 }
2459 var_pvisibilitynode4 = var_nodearraylist3;
2460 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
2461 cltype16 = type_nullable_parser_nodes__AVisibility.color;
2462 idtype17 = type_nullable_parser_nodes__AVisibility.id;
2463 if(var_pvisibilitynode4 == NULL) {
2464 var15 = 1;
2465 } else {
2466 if(cltype16 >= var_pvisibilitynode4->type->table_size) {
2467 var15 = 0;
2468 } else {
2469 var15 = var_pvisibilitynode4->type->type_table[cltype16] == idtype17;
2470 }
2471 }
2472 if (!var15) {
2473 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21354);
2474 exit(1);
2475 }
2476 var_tkwnewnode5 = var_nodearraylist4;
2477 /* <var_tkwnewnode5:nullable Object> isa nullable TKwnew */
2478 cltype19 = type_nullable_parser_nodes__TKwnew.color;
2479 idtype20 = type_nullable_parser_nodes__TKwnew.id;
2480 if(var_tkwnewnode5 == NULL) {
2481 var18 = 1;
2482 } else {
2483 if(cltype19 >= var_tkwnewnode5->type->table_size) {
2484 var18 = 0;
2485 } else {
2486 var18 = var_tkwnewnode5->type->type_table[cltype19] == idtype20;
2487 }
2488 }
2489 if (!var18) {
2490 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21356);
2491 exit(1);
2492 }
2493 var_pmethidnode6 = var_nodearraylist5;
2494 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
2495 cltype22 = type_nullable_parser_nodes__AMethid.color;
2496 idtype23 = type_nullable_parser_nodes__AMethid.id;
2497 if(var_pmethidnode6 == NULL) {
2498 var21 = 1;
2499 } else {
2500 if(cltype22 >= var_pmethidnode6->type->table_size) {
2501 var21 = 0;
2502 } else {
2503 var21 = var_pmethidnode6->type->type_table[cltype22] == idtype23;
2504 }
2505 }
2506 if (!var21) {
2507 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21358);
2508 exit(1);
2509 }
2510 var_psignaturenode7 = var_nodearraylist6;
2511 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
2512 cltype25 = type_nullable_parser_nodes__ASignature.color;
2513 idtype26 = type_nullable_parser_nodes__ASignature.id;
2514 if(var_psignaturenode7 == NULL) {
2515 var24 = 1;
2516 } else {
2517 if(cltype25 >= var_psignaturenode7->type->table_size) {
2518 var24 = 0;
2519 } else {
2520 var24 = var_psignaturenode7->type->type_table[cltype25] == idtype26;
2521 }
2522 }
2523 if (!var24) {
2524 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21360);
2525 exit(1);
2526 }
2527 var_tstringnode8 = var_nodearraylist9;
2528 /* <var_tstringnode8:nullable Object> isa nullable TString */
2529 cltype28 = type_nullable_parser_nodes__TString.color;
2530 idtype29 = type_nullable_parser_nodes__TString.id;
2531 if(var_tstringnode8 == NULL) {
2532 var27 = 1;
2533 } else {
2534 if(cltype28 >= var_tstringnode8->type->table_size) {
2535 var27 = 0;
2536 } else {
2537 var27 = var_tstringnode8->type->type_table[cltype28] == idtype29;
2538 }
2539 }
2540 if (!var27) {
2541 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21362);
2542 exit(1);
2543 }
2544 var_pexterncallsnode9 = var_nodearraylist10;
2545 /* <var_pexterncallsnode9:nullable Object> isa nullable AExternCalls */
2546 cltype31 = type_nullable_parser_nodes__AExternCalls.color;
2547 idtype32 = type_nullable_parser_nodes__AExternCalls.id;
2548 if(var_pexterncallsnode9 == NULL) {
2549 var30 = 1;
2550 } else {
2551 if(cltype31 >= var_pexterncallsnode9->type->table_size) {
2552 var30 = 0;
2553 } else {
2554 var30 = var_pexterncallsnode9->type->type_table[cltype31] == idtype32;
2555 }
2556 }
2557 if (!var30) {
2558 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21364);
2559 exit(1);
2560 }
2561 var33 = NEW_parser_nodes__AExternInitPropdef(&type_parser_nodes__AExternInitPropdef);
2562 var34 = NULL;
2563 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var33->class->vft[COLOR_parser_prod__AExternInitPropdef__init_aexterninitpropdef]))(var33, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwnewnode5, var_pmethidnode6, var_psignaturenode7, var_tstringnode8, var_pexterncallsnode9, var34) /* init_aexterninitpropdef on <var33:AExternInitPropdef>*/;
2564 CHECK_NEW_parser_nodes__AExternInitPropdef(var33);
2565 var_ppropdefnode1 = var33;
2566 var_node_list = var_ppropdefnode1;
2567 var35 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction480> */
2568 var36 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var35) /* go_to on <var_p:Parser>*/;
2569 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var36, var_node_list) /* push on <var_p:Parser>*/;
2570 RET_LABEL:;
2571 }
2572 /* method parser#ReduceAction480#action for (self: Object, Parser) */
2573 void VIRTUAL_parser__ReduceAction480__action(val* self, val* p0) {
2574 parser__ReduceAction480__action(self, p0);
2575 RET_LABEL:;
2576 }
2577 /* method parser#ReduceAction481#action for (self: ReduceAction481, Parser) */
2578 void parser__ReduceAction481__action(val* self, val* p0) {
2579 val* var_p /* var p: Parser */;
2580 val* var /* : null */;
2581 val* var_node_list /* var node_list: nullable Object */;
2582 val* var1 /* : nullable Object */;
2583 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
2584 val* var2 /* : nullable Object */;
2585 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
2586 val* var3 /* : nullable Object */;
2587 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
2588 val* var4 /* : nullable Object */;
2589 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2590 val* var5 /* : nullable Object */;
2591 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2592 val* var6 /* : nullable Object */;
2593 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2594 val* var7 /* : nullable Object */;
2595 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2596 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
2597 short int var8 /* : Bool */;
2598 int cltype;
2599 int idtype;
2600 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
2601 short int var9 /* : Bool */;
2602 int cltype10;
2603 int idtype11;
2604 val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */;
2605 short int var12 /* : Bool */;
2606 int cltype13;
2607 int idtype14;
2608 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
2609 short int var15 /* : Bool */;
2610 int cltype16;
2611 int idtype17;
2612 val* var_pexterncodeblocknode10 /* var pexterncodeblocknode10: nullable Object */;
2613 short int var18 /* : Bool */;
2614 int cltype19;
2615 int idtype20;
2616 val* var21 /* : AExternInitPropdef */;
2617 val* var22 /* : null */;
2618 val* var23 /* : null */;
2619 val* var24 /* : null */;
2620 val* var25 /* : null */;
2621 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternInitPropdef */;
2622 long var26 /* : Int */;
2623 long var27 /* : Int */;
2624 var_p = p0;
2625 var = NULL;
2626 var_node_list = var;
2627 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2628 var_nodearraylist7 = var1;
2629 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2630 var_nodearraylist6 = var2;
2631 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2632 var_nodearraylist5 = var3;
2633 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2634 var_nodearraylist4 = var4;
2635 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2636 var_nodearraylist3 = var5;
2637 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2638 var_nodearraylist2 = var6;
2639 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2640 var_nodearraylist1 = var7;
2641 var_pdocnode2 = var_nodearraylist1;
2642 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
2643 cltype = type_nullable_parser_nodes__ADoc.color;
2644 idtype = type_nullable_parser_nodes__ADoc.id;
2645 if(var_pdocnode2 == NULL) {
2646 var8 = 1;
2647 } else {
2648 if(cltype >= var_pdocnode2->type->table_size) {
2649 var8 = 0;
2650 } else {
2651 var8 = var_pdocnode2->type->type_table[cltype] == idtype;
2652 }
2653 }
2654 if (!var8) {
2655 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21393);
2656 exit(1);
2657 }
2658 var_pvisibilitynode4 = var_nodearraylist2;
2659 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
2660 cltype10 = type_nullable_parser_nodes__AVisibility.color;
2661 idtype11 = type_nullable_parser_nodes__AVisibility.id;
2662 if(var_pvisibilitynode4 == NULL) {
2663 var9 = 1;
2664 } else {
2665 if(cltype10 >= var_pvisibilitynode4->type->table_size) {
2666 var9 = 0;
2667 } else {
2668 var9 = var_pvisibilitynode4->type->type_table[cltype10] == idtype11;
2669 }
2670 }
2671 if (!var9) {
2672 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21395);
2673 exit(1);
2674 }
2675 var_tkwnewnode5 = var_nodearraylist3;
2676 /* <var_tkwnewnode5:nullable Object> isa nullable TKwnew */
2677 cltype13 = type_nullable_parser_nodes__TKwnew.color;
2678 idtype14 = type_nullable_parser_nodes__TKwnew.id;
2679 if(var_tkwnewnode5 == NULL) {
2680 var12 = 1;
2681 } else {
2682 if(cltype13 >= var_tkwnewnode5->type->table_size) {
2683 var12 = 0;
2684 } else {
2685 var12 = var_tkwnewnode5->type->type_table[cltype13] == idtype14;
2686 }
2687 }
2688 if (!var12) {
2689 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21397);
2690 exit(1);
2691 }
2692 var_psignaturenode7 = var_nodearraylist4;
2693 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
2694 cltype16 = type_nullable_parser_nodes__ASignature.color;
2695 idtype17 = type_nullable_parser_nodes__ASignature.id;
2696 if(var_psignaturenode7 == NULL) {
2697 var15 = 1;
2698 } else {
2699 if(cltype16 >= var_psignaturenode7->type->table_size) {
2700 var15 = 0;
2701 } else {
2702 var15 = var_psignaturenode7->type->type_table[cltype16] == idtype17;
2703 }
2704 }
2705 if (!var15) {
2706 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21399);
2707 exit(1);
2708 }
2709 var_pexterncodeblocknode10 = var_nodearraylist7;
2710 /* <var_pexterncodeblocknode10:nullable Object> isa nullable AExternCodeBlock */
2711 cltype19 = type_nullable_parser_nodes__AExternCodeBlock.color;
2712 idtype20 = type_nullable_parser_nodes__AExternCodeBlock.id;
2713 if(var_pexterncodeblocknode10 == NULL) {
2714 var18 = 1;
2715 } else {
2716 if(cltype19 >= var_pexterncodeblocknode10->type->table_size) {
2717 var18 = 0;
2718 } else {
2719 var18 = var_pexterncodeblocknode10->type->type_table[cltype19] == idtype20;
2720 }
2721 }
2722 if (!var18) {
2723 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21401);
2724 exit(1);
2725 }
2726 var21 = NEW_parser_nodes__AExternInitPropdef(&type_parser_nodes__AExternInitPropdef);
2727 var22 = NULL;
2728 var23 = NULL;
2729 var24 = NULL;
2730 var25 = NULL;
2731 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var21->class->vft[COLOR_parser_prod__AExternInitPropdef__init_aexterninitpropdef]))(var21, var_pdocnode2, var22, var_pvisibilitynode4, var_tkwnewnode5, var23, var_psignaturenode7, var24, var25, var_pexterncodeblocknode10) /* init_aexterninitpropdef on <var21:AExternInitPropdef>*/;
2732 CHECK_NEW_parser_nodes__AExternInitPropdef(var21);
2733 var_ppropdefnode1 = var21;
2734 var_node_list = var_ppropdefnode1;
2735 var26 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction481> */
2736 var27 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var26) /* go_to on <var_p:Parser>*/;
2737 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var27, var_node_list) /* push on <var_p:Parser>*/;
2738 RET_LABEL:;
2739 }
2740 /* method parser#ReduceAction481#action for (self: Object, Parser) */
2741 void VIRTUAL_parser__ReduceAction481__action(val* self, val* p0) {
2742 parser__ReduceAction481__action(self, p0);
2743 RET_LABEL:;
2744 }
2745 /* method parser#ReduceAction482#action for (self: ReduceAction482, Parser) */
2746 void parser__ReduceAction482__action(val* self, val* p0) {
2747 val* var_p /* var p: Parser */;
2748 val* var /* : null */;
2749 val* var_node_list /* var node_list: nullable Object */;
2750 val* var1 /* : nullable Object */;
2751 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
2752 val* var2 /* : nullable Object */;
2753 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
2754 val* var3 /* : nullable Object */;
2755 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
2756 val* var4 /* : nullable Object */;
2757 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
2758 val* var5 /* : nullable Object */;
2759 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2760 val* var6 /* : nullable Object */;
2761 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2762 val* var7 /* : nullable Object */;
2763 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2764 val* var8 /* : nullable Object */;
2765 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2766 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
2767 short int var9 /* : Bool */;
2768 int cltype;
2769 int idtype;
2770 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
2771 short int var10 /* : Bool */;
2772 int cltype11;
2773 int idtype12;
2774 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
2775 short int var13 /* : Bool */;
2776 int cltype14;
2777 int idtype15;
2778 val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */;
2779 short int var16 /* : Bool */;
2780 int cltype17;
2781 int idtype18;
2782 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
2783 short int var19 /* : Bool */;
2784 int cltype20;
2785 int idtype21;
2786 val* var_pexterncodeblocknode10 /* var pexterncodeblocknode10: nullable Object */;
2787 short int var22 /* : Bool */;
2788 int cltype23;
2789 int idtype24;
2790 val* var25 /* : AExternInitPropdef */;
2791 val* var26 /* : null */;
2792 val* var27 /* : null */;
2793 val* var28 /* : null */;
2794 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternInitPropdef */;
2795 long var29 /* : Int */;
2796 long var30 /* : Int */;
2797 var_p = p0;
2798 var = NULL;
2799 var_node_list = var;
2800 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2801 var_nodearraylist8 = var1;
2802 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2803 var_nodearraylist7 = var2;
2804 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2805 var_nodearraylist6 = var3;
2806 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2807 var_nodearraylist5 = var4;
2808 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2809 var_nodearraylist4 = var5;
2810 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2811 var_nodearraylist3 = var6;
2812 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2813 var_nodearraylist2 = var7;
2814 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2815 var_nodearraylist1 = var8;
2816 var_pdocnode2 = var_nodearraylist1;
2817 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
2818 cltype = type_nullable_parser_nodes__ADoc.color;
2819 idtype = type_nullable_parser_nodes__ADoc.id;
2820 if(var_pdocnode2 == NULL) {
2821 var9 = 1;
2822 } else {
2823 if(cltype >= var_pdocnode2->type->table_size) {
2824 var9 = 0;
2825 } else {
2826 var9 = var_pdocnode2->type->type_table[cltype] == idtype;
2827 }
2828 }
2829 if (!var9) {
2830 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21431);
2831 exit(1);
2832 }
2833 var_tkwredefnode3 = var_nodearraylist2;
2834 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
2835 cltype11 = type_nullable_parser_nodes__TKwredef.color;
2836 idtype12 = type_nullable_parser_nodes__TKwredef.id;
2837 if(var_tkwredefnode3 == NULL) {
2838 var10 = 1;
2839 } else {
2840 if(cltype11 >= var_tkwredefnode3->type->table_size) {
2841 var10 = 0;
2842 } else {
2843 var10 = var_tkwredefnode3->type->type_table[cltype11] == idtype12;
2844 }
2845 }
2846 if (!var10) {
2847 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21433);
2848 exit(1);
2849 }
2850 var_pvisibilitynode4 = var_nodearraylist3;
2851 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
2852 cltype14 = type_nullable_parser_nodes__AVisibility.color;
2853 idtype15 = type_nullable_parser_nodes__AVisibility.id;
2854 if(var_pvisibilitynode4 == NULL) {
2855 var13 = 1;
2856 } else {
2857 if(cltype14 >= var_pvisibilitynode4->type->table_size) {
2858 var13 = 0;
2859 } else {
2860 var13 = var_pvisibilitynode4->type->type_table[cltype14] == idtype15;
2861 }
2862 }
2863 if (!var13) {
2864 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21435);
2865 exit(1);
2866 }
2867 var_tkwnewnode5 = var_nodearraylist4;
2868 /* <var_tkwnewnode5:nullable Object> isa nullable TKwnew */
2869 cltype17 = type_nullable_parser_nodes__TKwnew.color;
2870 idtype18 = type_nullable_parser_nodes__TKwnew.id;
2871 if(var_tkwnewnode5 == NULL) {
2872 var16 = 1;
2873 } else {
2874 if(cltype17 >= var_tkwnewnode5->type->table_size) {
2875 var16 = 0;
2876 } else {
2877 var16 = var_tkwnewnode5->type->type_table[cltype17] == idtype18;
2878 }
2879 }
2880 if (!var16) {
2881 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21437);
2882 exit(1);
2883 }
2884 var_psignaturenode7 = var_nodearraylist5;
2885 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
2886 cltype20 = type_nullable_parser_nodes__ASignature.color;
2887 idtype21 = type_nullable_parser_nodes__ASignature.id;
2888 if(var_psignaturenode7 == NULL) {
2889 var19 = 1;
2890 } else {
2891 if(cltype20 >= var_psignaturenode7->type->table_size) {
2892 var19 = 0;
2893 } else {
2894 var19 = var_psignaturenode7->type->type_table[cltype20] == idtype21;
2895 }
2896 }
2897 if (!var19) {
2898 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21439);
2899 exit(1);
2900 }
2901 var_pexterncodeblocknode10 = var_nodearraylist8;
2902 /* <var_pexterncodeblocknode10:nullable Object> isa nullable AExternCodeBlock */
2903 cltype23 = type_nullable_parser_nodes__AExternCodeBlock.color;
2904 idtype24 = type_nullable_parser_nodes__AExternCodeBlock.id;
2905 if(var_pexterncodeblocknode10 == NULL) {
2906 var22 = 1;
2907 } else {
2908 if(cltype23 >= var_pexterncodeblocknode10->type->table_size) {
2909 var22 = 0;
2910 } else {
2911 var22 = var_pexterncodeblocknode10->type->type_table[cltype23] == idtype24;
2912 }
2913 }
2914 if (!var22) {
2915 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21441);
2916 exit(1);
2917 }
2918 var25 = NEW_parser_nodes__AExternInitPropdef(&type_parser_nodes__AExternInitPropdef);
2919 var26 = NULL;
2920 var27 = NULL;
2921 var28 = NULL;
2922 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var25->class->vft[COLOR_parser_prod__AExternInitPropdef__init_aexterninitpropdef]))(var25, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwnewnode5, var26, var_psignaturenode7, var27, var28, var_pexterncodeblocknode10) /* init_aexterninitpropdef on <var25:AExternInitPropdef>*/;
2923 CHECK_NEW_parser_nodes__AExternInitPropdef(var25);
2924 var_ppropdefnode1 = var25;
2925 var_node_list = var_ppropdefnode1;
2926 var29 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction482> */
2927 var30 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var29) /* go_to on <var_p:Parser>*/;
2928 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var30, var_node_list) /* push on <var_p:Parser>*/;
2929 RET_LABEL:;
2930 }
2931 /* method parser#ReduceAction482#action for (self: Object, Parser) */
2932 void VIRTUAL_parser__ReduceAction482__action(val* self, val* p0) {
2933 parser__ReduceAction482__action(self, p0);
2934 RET_LABEL:;
2935 }
2936 /* method parser#ReduceAction483#action for (self: ReduceAction483, Parser) */
2937 void parser__ReduceAction483__action(val* self, val* p0) {
2938 val* var_p /* var p: Parser */;
2939 val* var /* : null */;
2940 val* var_node_list /* var node_list: nullable Object */;
2941 val* var1 /* : nullable Object */;
2942 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
2943 val* var2 /* : nullable Object */;
2944 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
2945 val* var3 /* : nullable Object */;
2946 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
2947 val* var4 /* : nullable Object */;
2948 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
2949 val* var5 /* : nullable Object */;
2950 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2951 val* var6 /* : nullable Object */;
2952 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2953 val* var7 /* : nullable Object */;
2954 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2955 val* var8 /* : nullable Object */;
2956 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2957 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
2958 short int var9 /* : Bool */;
2959 int cltype;
2960 int idtype;
2961 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
2962 short int var10 /* : Bool */;
2963 int cltype11;
2964 int idtype12;
2965 val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */;
2966 short int var13 /* : Bool */;
2967 int cltype14;
2968 int idtype15;
2969 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
2970 short int var16 /* : Bool */;
2971 int cltype17;
2972 int idtype18;
2973 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
2974 short int var19 /* : Bool */;
2975 int cltype20;
2976 int idtype21;
2977 val* var_pexterncodeblocknode10 /* var pexterncodeblocknode10: nullable Object */;
2978 short int var22 /* : Bool */;
2979 int cltype23;
2980 int idtype24;
2981 val* var25 /* : AExternInitPropdef */;
2982 val* var26 /* : null */;
2983 val* var27 /* : null */;
2984 val* var28 /* : null */;
2985 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternInitPropdef */;
2986 long var29 /* : Int */;
2987 long var30 /* : Int */;
2988 var_p = p0;
2989 var = NULL;
2990 var_node_list = var;
2991 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2992 var_nodearraylist8 = var1;
2993 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2994 var_nodearraylist7 = var2;
2995 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2996 var_nodearraylist6 = var3;
2997 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
2998 var_nodearraylist5 = var4;
2999 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3000 var_nodearraylist4 = var5;
3001 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3002 var_nodearraylist3 = var6;
3003 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3004 var_nodearraylist2 = var7;
3005 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3006 var_nodearraylist1 = var8;
3007 var_pdocnode2 = var_nodearraylist1;
3008 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
3009 cltype = type_nullable_parser_nodes__ADoc.color;
3010 idtype = type_nullable_parser_nodes__ADoc.id;
3011 if(var_pdocnode2 == NULL) {
3012 var9 = 1;
3013 } else {
3014 if(cltype >= var_pdocnode2->type->table_size) {
3015 var9 = 0;
3016 } else {
3017 var9 = var_pdocnode2->type->type_table[cltype] == idtype;
3018 }
3019 }
3020 if (!var9) {
3021 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21471);
3022 exit(1);
3023 }
3024 var_pvisibilitynode4 = var_nodearraylist2;
3025 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
3026 cltype11 = type_nullable_parser_nodes__AVisibility.color;
3027 idtype12 = type_nullable_parser_nodes__AVisibility.id;
3028 if(var_pvisibilitynode4 == NULL) {
3029 var10 = 1;
3030 } else {
3031 if(cltype11 >= var_pvisibilitynode4->type->table_size) {
3032 var10 = 0;
3033 } else {
3034 var10 = var_pvisibilitynode4->type->type_table[cltype11] == idtype12;
3035 }
3036 }
3037 if (!var10) {
3038 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21473);
3039 exit(1);
3040 }
3041 var_tkwnewnode5 = var_nodearraylist3;
3042 /* <var_tkwnewnode5:nullable Object> isa nullable TKwnew */
3043 cltype14 = type_nullable_parser_nodes__TKwnew.color;
3044 idtype15 = type_nullable_parser_nodes__TKwnew.id;
3045 if(var_tkwnewnode5 == NULL) {
3046 var13 = 1;
3047 } else {
3048 if(cltype14 >= var_tkwnewnode5->type->table_size) {
3049 var13 = 0;
3050 } else {
3051 var13 = var_tkwnewnode5->type->type_table[cltype14] == idtype15;
3052 }
3053 }
3054 if (!var13) {
3055 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21475);
3056 exit(1);
3057 }
3058 var_pmethidnode6 = var_nodearraylist4;
3059 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
3060 cltype17 = type_nullable_parser_nodes__AMethid.color;
3061 idtype18 = type_nullable_parser_nodes__AMethid.id;
3062 if(var_pmethidnode6 == NULL) {
3063 var16 = 1;
3064 } else {
3065 if(cltype17 >= var_pmethidnode6->type->table_size) {
3066 var16 = 0;
3067 } else {
3068 var16 = var_pmethidnode6->type->type_table[cltype17] == idtype18;
3069 }
3070 }
3071 if (!var16) {
3072 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21477);
3073 exit(1);
3074 }
3075 var_psignaturenode7 = var_nodearraylist5;
3076 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
3077 cltype20 = type_nullable_parser_nodes__ASignature.color;
3078 idtype21 = type_nullable_parser_nodes__ASignature.id;
3079 if(var_psignaturenode7 == NULL) {
3080 var19 = 1;
3081 } else {
3082 if(cltype20 >= var_psignaturenode7->type->table_size) {
3083 var19 = 0;
3084 } else {
3085 var19 = var_psignaturenode7->type->type_table[cltype20] == idtype21;
3086 }
3087 }
3088 if (!var19) {
3089 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21479);
3090 exit(1);
3091 }
3092 var_pexterncodeblocknode10 = var_nodearraylist8;
3093 /* <var_pexterncodeblocknode10:nullable Object> isa nullable AExternCodeBlock */
3094 cltype23 = type_nullable_parser_nodes__AExternCodeBlock.color;
3095 idtype24 = type_nullable_parser_nodes__AExternCodeBlock.id;
3096 if(var_pexterncodeblocknode10 == NULL) {
3097 var22 = 1;
3098 } else {
3099 if(cltype23 >= var_pexterncodeblocknode10->type->table_size) {
3100 var22 = 0;
3101 } else {
3102 var22 = var_pexterncodeblocknode10->type->type_table[cltype23] == idtype24;
3103 }
3104 }
3105 if (!var22) {
3106 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21481);
3107 exit(1);
3108 }
3109 var25 = NEW_parser_nodes__AExternInitPropdef(&type_parser_nodes__AExternInitPropdef);
3110 var26 = NULL;
3111 var27 = NULL;
3112 var28 = NULL;
3113 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var25->class->vft[COLOR_parser_prod__AExternInitPropdef__init_aexterninitpropdef]))(var25, var_pdocnode2, var26, var_pvisibilitynode4, var_tkwnewnode5, var_pmethidnode6, var_psignaturenode7, var27, var28, var_pexterncodeblocknode10) /* init_aexterninitpropdef on <var25:AExternInitPropdef>*/;
3114 CHECK_NEW_parser_nodes__AExternInitPropdef(var25);
3115 var_ppropdefnode1 = var25;
3116 var_node_list = var_ppropdefnode1;
3117 var29 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction483> */
3118 var30 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var29) /* go_to on <var_p:Parser>*/;
3119 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var30, var_node_list) /* push on <var_p:Parser>*/;
3120 RET_LABEL:;
3121 }
3122 /* method parser#ReduceAction483#action for (self: Object, Parser) */
3123 void VIRTUAL_parser__ReduceAction483__action(val* self, val* p0) {
3124 parser__ReduceAction483__action(self, p0);
3125 RET_LABEL:;
3126 }
3127 /* method parser#ReduceAction484#action for (self: ReduceAction484, Parser) */
3128 void parser__ReduceAction484__action(val* self, val* p0) {
3129 val* var_p /* var p: Parser */;
3130 val* var /* : null */;
3131 val* var_node_list /* var node_list: nullable Object */;
3132 val* var1 /* : nullable Object */;
3133 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
3134 val* var2 /* : nullable Object */;
3135 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
3136 val* var3 /* : nullable Object */;
3137 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
3138 val* var4 /* : nullable Object */;
3139 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
3140 val* var5 /* : nullable Object */;
3141 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
3142 val* var6 /* : nullable Object */;
3143 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3144 val* var7 /* : nullable Object */;
3145 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3146 val* var8 /* : nullable Object */;
3147 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3148 val* var9 /* : nullable Object */;
3149 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3150 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
3151 short int var10 /* : Bool */;
3152 int cltype;
3153 int idtype;
3154 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
3155 short int var11 /* : Bool */;
3156 int cltype12;
3157 int idtype13;
3158 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
3159 short int var14 /* : Bool */;
3160 int cltype15;
3161 int idtype16;
3162 val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */;
3163 short int var17 /* : Bool */;
3164 int cltype18;
3165 int idtype19;
3166 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
3167 short int var20 /* : Bool */;
3168 int cltype21;
3169 int idtype22;
3170 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
3171 short int var23 /* : Bool */;
3172 int cltype24;
3173 int idtype25;
3174 val* var_pexterncodeblocknode10 /* var pexterncodeblocknode10: nullable Object */;
3175 short int var26 /* : Bool */;
3176 int cltype27;
3177 int idtype28;
3178 val* var29 /* : AExternInitPropdef */;
3179 val* var30 /* : null */;
3180 val* var31 /* : null */;
3181 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternInitPropdef */;
3182 long var32 /* : Int */;
3183 long var33 /* : Int */;
3184 var_p = p0;
3185 var = NULL;
3186 var_node_list = var;
3187 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3188 var_nodearraylist9 = var1;
3189 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3190 var_nodearraylist8 = var2;
3191 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3192 var_nodearraylist7 = var3;
3193 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3194 var_nodearraylist6 = var4;
3195 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3196 var_nodearraylist5 = var5;
3197 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3198 var_nodearraylist4 = var6;
3199 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3200 var_nodearraylist3 = var7;
3201 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3202 var_nodearraylist2 = var8;
3203 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3204 var_nodearraylist1 = var9;
3205 var_pdocnode2 = var_nodearraylist1;
3206 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
3207 cltype = type_nullable_parser_nodes__ADoc.color;
3208 idtype = type_nullable_parser_nodes__ADoc.id;
3209 if(var_pdocnode2 == NULL) {
3210 var10 = 1;
3211 } else {
3212 if(cltype >= var_pdocnode2->type->table_size) {
3213 var10 = 0;
3214 } else {
3215 var10 = var_pdocnode2->type->type_table[cltype] == idtype;
3216 }
3217 }
3218 if (!var10) {
3219 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21512);
3220 exit(1);
3221 }
3222 var_tkwredefnode3 = var_nodearraylist2;
3223 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
3224 cltype12 = type_nullable_parser_nodes__TKwredef.color;
3225 idtype13 = type_nullable_parser_nodes__TKwredef.id;
3226 if(var_tkwredefnode3 == NULL) {
3227 var11 = 1;
3228 } else {
3229 if(cltype12 >= var_tkwredefnode3->type->table_size) {
3230 var11 = 0;
3231 } else {
3232 var11 = var_tkwredefnode3->type->type_table[cltype12] == idtype13;
3233 }
3234 }
3235 if (!var11) {
3236 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21514);
3237 exit(1);
3238 }
3239 var_pvisibilitynode4 = var_nodearraylist3;
3240 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
3241 cltype15 = type_nullable_parser_nodes__AVisibility.color;
3242 idtype16 = type_nullable_parser_nodes__AVisibility.id;
3243 if(var_pvisibilitynode4 == NULL) {
3244 var14 = 1;
3245 } else {
3246 if(cltype15 >= var_pvisibilitynode4->type->table_size) {
3247 var14 = 0;
3248 } else {
3249 var14 = var_pvisibilitynode4->type->type_table[cltype15] == idtype16;
3250 }
3251 }
3252 if (!var14) {
3253 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21516);
3254 exit(1);
3255 }
3256 var_tkwnewnode5 = var_nodearraylist4;
3257 /* <var_tkwnewnode5:nullable Object> isa nullable TKwnew */
3258 cltype18 = type_nullable_parser_nodes__TKwnew.color;
3259 idtype19 = type_nullable_parser_nodes__TKwnew.id;
3260 if(var_tkwnewnode5 == NULL) {
3261 var17 = 1;
3262 } else {
3263 if(cltype18 >= var_tkwnewnode5->type->table_size) {
3264 var17 = 0;
3265 } else {
3266 var17 = var_tkwnewnode5->type->type_table[cltype18] == idtype19;
3267 }
3268 }
3269 if (!var17) {
3270 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21518);
3271 exit(1);
3272 }
3273 var_pmethidnode6 = var_nodearraylist5;
3274 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
3275 cltype21 = type_nullable_parser_nodes__AMethid.color;
3276 idtype22 = type_nullable_parser_nodes__AMethid.id;
3277 if(var_pmethidnode6 == NULL) {
3278 var20 = 1;
3279 } else {
3280 if(cltype21 >= var_pmethidnode6->type->table_size) {
3281 var20 = 0;
3282 } else {
3283 var20 = var_pmethidnode6->type->type_table[cltype21] == idtype22;
3284 }
3285 }
3286 if (!var20) {
3287 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21520);
3288 exit(1);
3289 }
3290 var_psignaturenode7 = var_nodearraylist6;
3291 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
3292 cltype24 = type_nullable_parser_nodes__ASignature.color;
3293 idtype25 = type_nullable_parser_nodes__ASignature.id;
3294 if(var_psignaturenode7 == NULL) {
3295 var23 = 1;
3296 } else {
3297 if(cltype24 >= var_psignaturenode7->type->table_size) {
3298 var23 = 0;
3299 } else {
3300 var23 = var_psignaturenode7->type->type_table[cltype24] == idtype25;
3301 }
3302 }
3303 if (!var23) {
3304 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21522);
3305 exit(1);
3306 }
3307 var_pexterncodeblocknode10 = var_nodearraylist9;
3308 /* <var_pexterncodeblocknode10:nullable Object> isa nullable AExternCodeBlock */
3309 cltype27 = type_nullable_parser_nodes__AExternCodeBlock.color;
3310 idtype28 = type_nullable_parser_nodes__AExternCodeBlock.id;
3311 if(var_pexterncodeblocknode10 == NULL) {
3312 var26 = 1;
3313 } else {
3314 if(cltype27 >= var_pexterncodeblocknode10->type->table_size) {
3315 var26 = 0;
3316 } else {
3317 var26 = var_pexterncodeblocknode10->type->type_table[cltype27] == idtype28;
3318 }
3319 }
3320 if (!var26) {
3321 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21524);
3322 exit(1);
3323 }
3324 var29 = NEW_parser_nodes__AExternInitPropdef(&type_parser_nodes__AExternInitPropdef);
3325 var30 = NULL;
3326 var31 = NULL;
3327 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var29->class->vft[COLOR_parser_prod__AExternInitPropdef__init_aexterninitpropdef]))(var29, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwnewnode5, var_pmethidnode6, var_psignaturenode7, var30, var31, var_pexterncodeblocknode10) /* init_aexterninitpropdef on <var29:AExternInitPropdef>*/;
3328 CHECK_NEW_parser_nodes__AExternInitPropdef(var29);
3329 var_ppropdefnode1 = var29;
3330 var_node_list = var_ppropdefnode1;
3331 var32 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction484> */
3332 var33 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var32) /* go_to on <var_p:Parser>*/;
3333 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var33, var_node_list) /* push on <var_p:Parser>*/;
3334 RET_LABEL:;
3335 }
3336 /* method parser#ReduceAction484#action for (self: Object, Parser) */
3337 void VIRTUAL_parser__ReduceAction484__action(val* self, val* p0) {
3338 parser__ReduceAction484__action(self, p0);
3339 RET_LABEL:;
3340 }
3341 /* method parser#ReduceAction485#action for (self: ReduceAction485, Parser) */
3342 void parser__ReduceAction485__action(val* self, val* p0) {
3343 val* var_p /* var p: Parser */;
3344 val* var /* : null */;
3345 val* var_node_list /* var node_list: nullable Object */;
3346 val* var1 /* : nullable Object */;
3347 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
3348 val* var2 /* : nullable Object */;
3349 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
3350 val* var3 /* : nullable Object */;
3351 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
3352 val* var4 /* : nullable Object */;
3353 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
3354 val* var5 /* : nullable Object */;
3355 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3356 val* var6 /* : nullable Object */;
3357 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3358 val* var7 /* : nullable Object */;
3359 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3360 val* var8 /* : nullable Object */;
3361 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3362 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
3363 short int var9 /* : Bool */;
3364 int cltype;
3365 int idtype;
3366 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
3367 short int var10 /* : Bool */;
3368 int cltype11;
3369 int idtype12;
3370 val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */;
3371 short int var13 /* : Bool */;
3372 int cltype14;
3373 int idtype15;
3374 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
3375 short int var16 /* : Bool */;
3376 int cltype17;
3377 int idtype18;
3378 val* var_tstringnode8 /* var tstringnode8: nullable Object */;
3379 short int var19 /* : Bool */;
3380 int cltype20;
3381 int idtype21;
3382 val* var_pexterncodeblocknode10 /* var pexterncodeblocknode10: nullable Object */;
3383 short int var22 /* : Bool */;
3384 int cltype23;
3385 int idtype24;
3386 val* var25 /* : AExternInitPropdef */;
3387 val* var26 /* : null */;
3388 val* var27 /* : null */;
3389 val* var28 /* : null */;
3390 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternInitPropdef */;
3391 long var29 /* : Int */;
3392 long var30 /* : Int */;
3393 var_p = p0;
3394 var = NULL;
3395 var_node_list = var;
3396 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3397 var_nodearraylist8 = var1;
3398 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3399 var_nodearraylist7 = var2;
3400 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3401 var_nodearraylist6 = var3;
3402 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3403 var_nodearraylist5 = var4;
3404 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3405 var_nodearraylist4 = var5;
3406 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3407 var_nodearraylist3 = var6;
3408 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3409 var_nodearraylist2 = var7;
3410 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3411 var_nodearraylist1 = var8;
3412 var_pdocnode2 = var_nodearraylist1;
3413 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
3414 cltype = type_nullable_parser_nodes__ADoc.color;
3415 idtype = type_nullable_parser_nodes__ADoc.id;
3416 if(var_pdocnode2 == NULL) {
3417 var9 = 1;
3418 } else {
3419 if(cltype >= var_pdocnode2->type->table_size) {
3420 var9 = 0;
3421 } else {
3422 var9 = var_pdocnode2->type->type_table[cltype] == idtype;
3423 }
3424 }
3425 if (!var9) {
3426 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21554);
3427 exit(1);
3428 }
3429 var_pvisibilitynode4 = var_nodearraylist2;
3430 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
3431 cltype11 = type_nullable_parser_nodes__AVisibility.color;
3432 idtype12 = type_nullable_parser_nodes__AVisibility.id;
3433 if(var_pvisibilitynode4 == NULL) {
3434 var10 = 1;
3435 } else {
3436 if(cltype11 >= var_pvisibilitynode4->type->table_size) {
3437 var10 = 0;
3438 } else {
3439 var10 = var_pvisibilitynode4->type->type_table[cltype11] == idtype12;
3440 }
3441 }
3442 if (!var10) {
3443 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21556);
3444 exit(1);
3445 }
3446 var_tkwnewnode5 = var_nodearraylist3;
3447 /* <var_tkwnewnode5:nullable Object> isa nullable TKwnew */
3448 cltype14 = type_nullable_parser_nodes__TKwnew.color;
3449 idtype15 = type_nullable_parser_nodes__TKwnew.id;
3450 if(var_tkwnewnode5 == NULL) {
3451 var13 = 1;
3452 } else {
3453 if(cltype14 >= var_tkwnewnode5->type->table_size) {
3454 var13 = 0;
3455 } else {
3456 var13 = var_tkwnewnode5->type->type_table[cltype14] == idtype15;
3457 }
3458 }
3459 if (!var13) {
3460 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21558);
3461 exit(1);
3462 }
3463 var_psignaturenode7 = var_nodearraylist4;
3464 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
3465 cltype17 = type_nullable_parser_nodes__ASignature.color;
3466 idtype18 = type_nullable_parser_nodes__ASignature.id;
3467 if(var_psignaturenode7 == NULL) {
3468 var16 = 1;
3469 } else {
3470 if(cltype17 >= var_psignaturenode7->type->table_size) {
3471 var16 = 0;
3472 } else {
3473 var16 = var_psignaturenode7->type->type_table[cltype17] == idtype18;
3474 }
3475 }
3476 if (!var16) {
3477 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21560);
3478 exit(1);
3479 }
3480 var_tstringnode8 = var_nodearraylist7;
3481 /* <var_tstringnode8:nullable Object> isa nullable TString */
3482 cltype20 = type_nullable_parser_nodes__TString.color;
3483 idtype21 = type_nullable_parser_nodes__TString.id;
3484 if(var_tstringnode8 == NULL) {
3485 var19 = 1;
3486 } else {
3487 if(cltype20 >= var_tstringnode8->type->table_size) {
3488 var19 = 0;
3489 } else {
3490 var19 = var_tstringnode8->type->type_table[cltype20] == idtype21;
3491 }
3492 }
3493 if (!var19) {
3494 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21562);
3495 exit(1);
3496 }
3497 var_pexterncodeblocknode10 = var_nodearraylist8;
3498 /* <var_pexterncodeblocknode10:nullable Object> isa nullable AExternCodeBlock */
3499 cltype23 = type_nullable_parser_nodes__AExternCodeBlock.color;
3500 idtype24 = type_nullable_parser_nodes__AExternCodeBlock.id;
3501 if(var_pexterncodeblocknode10 == NULL) {
3502 var22 = 1;
3503 } else {
3504 if(cltype23 >= var_pexterncodeblocknode10->type->table_size) {
3505 var22 = 0;
3506 } else {
3507 var22 = var_pexterncodeblocknode10->type->type_table[cltype23] == idtype24;
3508 }
3509 }
3510 if (!var22) {
3511 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21564);
3512 exit(1);
3513 }
3514 var25 = NEW_parser_nodes__AExternInitPropdef(&type_parser_nodes__AExternInitPropdef);
3515 var26 = NULL;
3516 var27 = NULL;
3517 var28 = NULL;
3518 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var25->class->vft[COLOR_parser_prod__AExternInitPropdef__init_aexterninitpropdef]))(var25, var_pdocnode2, var26, var_pvisibilitynode4, var_tkwnewnode5, var27, var_psignaturenode7, var_tstringnode8, var28, var_pexterncodeblocknode10) /* init_aexterninitpropdef on <var25:AExternInitPropdef>*/;
3519 CHECK_NEW_parser_nodes__AExternInitPropdef(var25);
3520 var_ppropdefnode1 = var25;
3521 var_node_list = var_ppropdefnode1;
3522 var29 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction485> */
3523 var30 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var29) /* go_to on <var_p:Parser>*/;
3524 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var30, var_node_list) /* push on <var_p:Parser>*/;
3525 RET_LABEL:;
3526 }
3527 /* method parser#ReduceAction485#action for (self: Object, Parser) */
3528 void VIRTUAL_parser__ReduceAction485__action(val* self, val* p0) {
3529 parser__ReduceAction485__action(self, p0);
3530 RET_LABEL:;
3531 }
3532 /* method parser#ReduceAction486#action for (self: ReduceAction486, Parser) */
3533 void parser__ReduceAction486__action(val* self, val* p0) {
3534 val* var_p /* var p: Parser */;
3535 val* var /* : null */;
3536 val* var_node_list /* var node_list: nullable Object */;
3537 val* var1 /* : nullable Object */;
3538 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
3539 val* var2 /* : nullable Object */;
3540 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
3541 val* var3 /* : nullable Object */;
3542 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
3543 val* var4 /* : nullable Object */;
3544 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
3545 val* var5 /* : nullable Object */;
3546 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
3547 val* var6 /* : nullable Object */;
3548 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3549 val* var7 /* : nullable Object */;
3550 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3551 val* var8 /* : nullable Object */;
3552 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3553 val* var9 /* : nullable Object */;
3554 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3555 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
3556 short int var10 /* : Bool */;
3557 int cltype;
3558 int idtype;
3559 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
3560 short int var11 /* : Bool */;
3561 int cltype12;
3562 int idtype13;
3563 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
3564 short int var14 /* : Bool */;
3565 int cltype15;
3566 int idtype16;
3567 val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */;
3568 short int var17 /* : Bool */;
3569 int cltype18;
3570 int idtype19;
3571 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
3572 short int var20 /* : Bool */;
3573 int cltype21;
3574 int idtype22;
3575 val* var_tstringnode8 /* var tstringnode8: nullable Object */;
3576 short int var23 /* : Bool */;
3577 int cltype24;
3578 int idtype25;
3579 val* var_pexterncodeblocknode10 /* var pexterncodeblocknode10: nullable Object */;
3580 short int var26 /* : Bool */;
3581 int cltype27;
3582 int idtype28;
3583 val* var29 /* : AExternInitPropdef */;
3584 val* var30 /* : null */;
3585 val* var31 /* : null */;
3586 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternInitPropdef */;
3587 long var32 /* : Int */;
3588 long var33 /* : Int */;
3589 var_p = p0;
3590 var = NULL;
3591 var_node_list = var;
3592 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3593 var_nodearraylist9 = var1;
3594 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3595 var_nodearraylist8 = var2;
3596 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3597 var_nodearraylist7 = var3;
3598 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3599 var_nodearraylist6 = var4;
3600 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3601 var_nodearraylist5 = var5;
3602 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3603 var_nodearraylist4 = var6;
3604 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3605 var_nodearraylist3 = var7;
3606 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3607 var_nodearraylist2 = var8;
3608 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3609 var_nodearraylist1 = var9;
3610 var_pdocnode2 = var_nodearraylist1;
3611 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
3612 cltype = type_nullable_parser_nodes__ADoc.color;
3613 idtype = type_nullable_parser_nodes__ADoc.id;
3614 if(var_pdocnode2 == NULL) {
3615 var10 = 1;
3616 } else {
3617 if(cltype >= var_pdocnode2->type->table_size) {
3618 var10 = 0;
3619 } else {
3620 var10 = var_pdocnode2->type->type_table[cltype] == idtype;
3621 }
3622 }
3623 if (!var10) {
3624 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21595);
3625 exit(1);
3626 }
3627 var_tkwredefnode3 = var_nodearraylist2;
3628 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
3629 cltype12 = type_nullable_parser_nodes__TKwredef.color;
3630 idtype13 = type_nullable_parser_nodes__TKwredef.id;
3631 if(var_tkwredefnode3 == NULL) {
3632 var11 = 1;
3633 } else {
3634 if(cltype12 >= var_tkwredefnode3->type->table_size) {
3635 var11 = 0;
3636 } else {
3637 var11 = var_tkwredefnode3->type->type_table[cltype12] == idtype13;
3638 }
3639 }
3640 if (!var11) {
3641 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21597);
3642 exit(1);
3643 }
3644 var_pvisibilitynode4 = var_nodearraylist3;
3645 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
3646 cltype15 = type_nullable_parser_nodes__AVisibility.color;
3647 idtype16 = type_nullable_parser_nodes__AVisibility.id;
3648 if(var_pvisibilitynode4 == NULL) {
3649 var14 = 1;
3650 } else {
3651 if(cltype15 >= var_pvisibilitynode4->type->table_size) {
3652 var14 = 0;
3653 } else {
3654 var14 = var_pvisibilitynode4->type->type_table[cltype15] == idtype16;
3655 }
3656 }
3657 if (!var14) {
3658 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21599);
3659 exit(1);
3660 }
3661 var_tkwnewnode5 = var_nodearraylist4;
3662 /* <var_tkwnewnode5:nullable Object> isa nullable TKwnew */
3663 cltype18 = type_nullable_parser_nodes__TKwnew.color;
3664 idtype19 = type_nullable_parser_nodes__TKwnew.id;
3665 if(var_tkwnewnode5 == NULL) {
3666 var17 = 1;
3667 } else {
3668 if(cltype18 >= var_tkwnewnode5->type->table_size) {
3669 var17 = 0;
3670 } else {
3671 var17 = var_tkwnewnode5->type->type_table[cltype18] == idtype19;
3672 }
3673 }
3674 if (!var17) {
3675 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21601);
3676 exit(1);
3677 }
3678 var_psignaturenode7 = var_nodearraylist5;
3679 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
3680 cltype21 = type_nullable_parser_nodes__ASignature.color;
3681 idtype22 = type_nullable_parser_nodes__ASignature.id;
3682 if(var_psignaturenode7 == NULL) {
3683 var20 = 1;
3684 } else {
3685 if(cltype21 >= var_psignaturenode7->type->table_size) {
3686 var20 = 0;
3687 } else {
3688 var20 = var_psignaturenode7->type->type_table[cltype21] == idtype22;
3689 }
3690 }
3691 if (!var20) {
3692 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21603);
3693 exit(1);
3694 }
3695 var_tstringnode8 = var_nodearraylist8;
3696 /* <var_tstringnode8:nullable Object> isa nullable TString */
3697 cltype24 = type_nullable_parser_nodes__TString.color;
3698 idtype25 = type_nullable_parser_nodes__TString.id;
3699 if(var_tstringnode8 == NULL) {
3700 var23 = 1;
3701 } else {
3702 if(cltype24 >= var_tstringnode8->type->table_size) {
3703 var23 = 0;
3704 } else {
3705 var23 = var_tstringnode8->type->type_table[cltype24] == idtype25;
3706 }
3707 }
3708 if (!var23) {
3709 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21605);
3710 exit(1);
3711 }
3712 var_pexterncodeblocknode10 = var_nodearraylist9;
3713 /* <var_pexterncodeblocknode10:nullable Object> isa nullable AExternCodeBlock */
3714 cltype27 = type_nullable_parser_nodes__AExternCodeBlock.color;
3715 idtype28 = type_nullable_parser_nodes__AExternCodeBlock.id;
3716 if(var_pexterncodeblocknode10 == NULL) {
3717 var26 = 1;
3718 } else {
3719 if(cltype27 >= var_pexterncodeblocknode10->type->table_size) {
3720 var26 = 0;
3721 } else {
3722 var26 = var_pexterncodeblocknode10->type->type_table[cltype27] == idtype28;
3723 }
3724 }
3725 if (!var26) {
3726 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21607);
3727 exit(1);
3728 }
3729 var29 = NEW_parser_nodes__AExternInitPropdef(&type_parser_nodes__AExternInitPropdef);
3730 var30 = NULL;
3731 var31 = NULL;
3732 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var29->class->vft[COLOR_parser_prod__AExternInitPropdef__init_aexterninitpropdef]))(var29, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwnewnode5, var30, var_psignaturenode7, var_tstringnode8, var31, var_pexterncodeblocknode10) /* init_aexterninitpropdef on <var29:AExternInitPropdef>*/;
3733 CHECK_NEW_parser_nodes__AExternInitPropdef(var29);
3734 var_ppropdefnode1 = var29;
3735 var_node_list = var_ppropdefnode1;
3736 var32 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction486> */
3737 var33 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var32) /* go_to on <var_p:Parser>*/;
3738 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var33, var_node_list) /* push on <var_p:Parser>*/;
3739 RET_LABEL:;
3740 }
3741 /* method parser#ReduceAction486#action for (self: Object, Parser) */
3742 void VIRTUAL_parser__ReduceAction486__action(val* self, val* p0) {
3743 parser__ReduceAction486__action(self, p0);
3744 RET_LABEL:;
3745 }
3746 /* method parser#ReduceAction487#action for (self: ReduceAction487, Parser) */
3747 void parser__ReduceAction487__action(val* self, val* p0) {
3748 val* var_p /* var p: Parser */;
3749 val* var /* : null */;
3750 val* var_node_list /* var node_list: nullable Object */;
3751 val* var1 /* : nullable Object */;
3752 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
3753 val* var2 /* : nullable Object */;
3754 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
3755 val* var3 /* : nullable Object */;
3756 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
3757 val* var4 /* : nullable Object */;
3758 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
3759 val* var5 /* : nullable Object */;
3760 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
3761 val* var6 /* : nullable Object */;
3762 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3763 val* var7 /* : nullable Object */;
3764 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3765 val* var8 /* : nullable Object */;
3766 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3767 val* var9 /* : nullable Object */;
3768 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3769 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
3770 short int var10 /* : Bool */;
3771 int cltype;
3772 int idtype;
3773 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
3774 short int var11 /* : Bool */;
3775 int cltype12;
3776 int idtype13;
3777 val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */;
3778 short int var14 /* : Bool */;
3779 int cltype15;
3780 int idtype16;
3781 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
3782 short int var17 /* : Bool */;
3783 int cltype18;
3784 int idtype19;
3785 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
3786 short int var20 /* : Bool */;
3787 int cltype21;
3788 int idtype22;
3789 val* var_tstringnode8 /* var tstringnode8: nullable Object */;
3790 short int var23 /* : Bool */;
3791 int cltype24;
3792 int idtype25;
3793 val* var_pexterncodeblocknode10 /* var pexterncodeblocknode10: nullable Object */;
3794 short int var26 /* : Bool */;
3795 int cltype27;
3796 int idtype28;
3797 val* var29 /* : AExternInitPropdef */;
3798 val* var30 /* : null */;
3799 val* var31 /* : null */;
3800 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternInitPropdef */;
3801 long var32 /* : Int */;
3802 long var33 /* : Int */;
3803 var_p = p0;
3804 var = NULL;
3805 var_node_list = var;
3806 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3807 var_nodearraylist9 = var1;
3808 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3809 var_nodearraylist8 = var2;
3810 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3811 var_nodearraylist7 = var3;
3812 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3813 var_nodearraylist6 = var4;
3814 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3815 var_nodearraylist5 = var5;
3816 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3817 var_nodearraylist4 = var6;
3818 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3819 var_nodearraylist3 = var7;
3820 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3821 var_nodearraylist2 = var8;
3822 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
3823 var_nodearraylist1 = var9;
3824 var_pdocnode2 = var_nodearraylist1;
3825 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
3826 cltype = type_nullable_parser_nodes__ADoc.color;
3827 idtype = type_nullable_parser_nodes__ADoc.id;
3828 if(var_pdocnode2 == NULL) {
3829 var10 = 1;
3830 } else {
3831 if(cltype >= var_pdocnode2->type->table_size) {
3832 var10 = 0;
3833 } else {
3834 var10 = var_pdocnode2->type->type_table[cltype] == idtype;
3835 }
3836 }
3837 if (!var10) {
3838 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21638);
3839 exit(1);
3840 }
3841 var_pvisibilitynode4 = var_nodearraylist2;
3842 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
3843 cltype12 = type_nullable_parser_nodes__AVisibility.color;
3844 idtype13 = type_nullable_parser_nodes__AVisibility.id;
3845 if(var_pvisibilitynode4 == NULL) {
3846 var11 = 1;
3847 } else {
3848 if(cltype12 >= var_pvisibilitynode4->type->table_size) {
3849 var11 = 0;
3850 } else {
3851 var11 = var_pvisibilitynode4->type->type_table[cltype12] == idtype13;
3852 }
3853 }
3854 if (!var11) {
3855 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21640);
3856 exit(1);
3857 }
3858 var_tkwnewnode5 = var_nodearraylist3;
3859 /* <var_tkwnewnode5:nullable Object> isa nullable TKwnew */
3860 cltype15 = type_nullable_parser_nodes__TKwnew.color;
3861 idtype16 = type_nullable_parser_nodes__TKwnew.id;
3862 if(var_tkwnewnode5 == NULL) {
3863 var14 = 1;
3864 } else {
3865 if(cltype15 >= var_tkwnewnode5->type->table_size) {
3866 var14 = 0;
3867 } else {
3868 var14 = var_tkwnewnode5->type->type_table[cltype15] == idtype16;
3869 }
3870 }
3871 if (!var14) {
3872 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21642);
3873 exit(1);
3874 }
3875 var_pmethidnode6 = var_nodearraylist4;
3876 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
3877 cltype18 = type_nullable_parser_nodes__AMethid.color;
3878 idtype19 = type_nullable_parser_nodes__AMethid.id;
3879 if(var_pmethidnode6 == NULL) {
3880 var17 = 1;
3881 } else {
3882 if(cltype18 >= var_pmethidnode6->type->table_size) {
3883 var17 = 0;
3884 } else {
3885 var17 = var_pmethidnode6->type->type_table[cltype18] == idtype19;
3886 }
3887 }
3888 if (!var17) {
3889 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21644);
3890 exit(1);
3891 }
3892 var_psignaturenode7 = var_nodearraylist5;
3893 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
3894 cltype21 = type_nullable_parser_nodes__ASignature.color;
3895 idtype22 = type_nullable_parser_nodes__ASignature.id;
3896 if(var_psignaturenode7 == NULL) {
3897 var20 = 1;
3898 } else {
3899 if(cltype21 >= var_psignaturenode7->type->table_size) {
3900 var20 = 0;
3901 } else {
3902 var20 = var_psignaturenode7->type->type_table[cltype21] == idtype22;
3903 }
3904 }
3905 if (!var20) {
3906 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21646);
3907 exit(1);
3908 }
3909 var_tstringnode8 = var_nodearraylist8;
3910 /* <var_tstringnode8:nullable Object> isa nullable TString */
3911 cltype24 = type_nullable_parser_nodes__TString.color;
3912 idtype25 = type_nullable_parser_nodes__TString.id;
3913 if(var_tstringnode8 == NULL) {
3914 var23 = 1;
3915 } else {
3916 if(cltype24 >= var_tstringnode8->type->table_size) {
3917 var23 = 0;
3918 } else {
3919 var23 = var_tstringnode8->type->type_table[cltype24] == idtype25;
3920 }
3921 }
3922 if (!var23) {
3923 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21648);
3924 exit(1);
3925 }
3926 var_pexterncodeblocknode10 = var_nodearraylist9;
3927 /* <var_pexterncodeblocknode10:nullable Object> isa nullable AExternCodeBlock */
3928 cltype27 = type_nullable_parser_nodes__AExternCodeBlock.color;
3929 idtype28 = type_nullable_parser_nodes__AExternCodeBlock.id;
3930 if(var_pexterncodeblocknode10 == NULL) {
3931 var26 = 1;
3932 } else {
3933 if(cltype27 >= var_pexterncodeblocknode10->type->table_size) {
3934 var26 = 0;
3935 } else {
3936 var26 = var_pexterncodeblocknode10->type->type_table[cltype27] == idtype28;
3937 }
3938 }
3939 if (!var26) {
3940 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21650);
3941 exit(1);
3942 }
3943 var29 = NEW_parser_nodes__AExternInitPropdef(&type_parser_nodes__AExternInitPropdef);
3944 var30 = NULL;
3945 var31 = NULL;
3946 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var29->class->vft[COLOR_parser_prod__AExternInitPropdef__init_aexterninitpropdef]))(var29, var_pdocnode2, var30, var_pvisibilitynode4, var_tkwnewnode5, var_pmethidnode6, var_psignaturenode7, var_tstringnode8, var31, var_pexterncodeblocknode10) /* init_aexterninitpropdef on <var29:AExternInitPropdef>*/;
3947 CHECK_NEW_parser_nodes__AExternInitPropdef(var29);
3948 var_ppropdefnode1 = var29;
3949 var_node_list = var_ppropdefnode1;
3950 var32 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction487> */
3951 var33 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var32) /* go_to on <var_p:Parser>*/;
3952 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var33, var_node_list) /* push on <var_p:Parser>*/;
3953 RET_LABEL:;
3954 }
3955 /* method parser#ReduceAction487#action for (self: Object, Parser) */
3956 void VIRTUAL_parser__ReduceAction487__action(val* self, val* p0) {
3957 parser__ReduceAction487__action(self, p0);
3958 RET_LABEL:;
3959 }
3960 /* method parser#ReduceAction488#action for (self: ReduceAction488, Parser) */
3961 void parser__ReduceAction488__action(val* self, val* p0) {
3962 val* var_p /* var p: Parser */;
3963 val* var /* : null */;
3964 val* var_node_list /* var node_list: nullable Object */;
3965 val* var1 /* : nullable Object */;
3966 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
3967 val* var2 /* : nullable Object */;
3968 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
3969 val* var3 /* : nullable Object */;
3970 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
3971 val* var4 /* : nullable Object */;
3972 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
3973 val* var5 /* : nullable Object */;
3974 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
3975 val* var6 /* : nullable Object */;
3976 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
3977 val* var7 /* : nullable Object */;
3978 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3979 val* var8 /* : nullable Object */;
3980 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3981 val* var9 /* : nullable Object */;
3982 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3983 val* var10 /* : nullable Object */;
3984 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3985 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
3986 short int var11 /* : Bool */;
3987 int cltype;
3988 int idtype;
3989 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
3990 short int var12 /* : Bool */;
3991 int cltype13;
3992 int idtype14;
3993 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
3994 short int var15 /* : Bool */;
3995 int cltype16;
3996 int idtype17;
3997 val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */;
3998 short int var18 /* : Bool */;
3999 int cltype19;
4000 int idtype20;
4001 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
4002 short int var21 /* : Bool */;
4003 int cltype22;
4004 int idtype23;
4005 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
4006 short int var24 /* : Bool */;
4007 int cltype25;
4008 int idtype26;
4009 val* var_tstringnode8 /* var tstringnode8: nullable Object */;
4010 short int var27 /* : Bool */;
4011 int cltype28;
4012 int idtype29;
4013 val* var_pexterncodeblocknode10 /* var pexterncodeblocknode10: nullable Object */;
4014 short int var30 /* : Bool */;
4015 int cltype31;
4016 int idtype32;
4017 val* var33 /* : AExternInitPropdef */;
4018 val* var34 /* : null */;
4019 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternInitPropdef */;
4020 long var35 /* : Int */;
4021 long var36 /* : Int */;
4022 var_p = p0;
4023 var = NULL;
4024 var_node_list = var;
4025 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4026 var_nodearraylist10 = var1;
4027 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4028 var_nodearraylist9 = var2;
4029 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4030 var_nodearraylist8 = var3;
4031 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4032 var_nodearraylist7 = var4;
4033 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4034 var_nodearraylist6 = var5;
4035 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4036 var_nodearraylist5 = var6;
4037 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4038 var_nodearraylist4 = var7;
4039 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4040 var_nodearraylist3 = var8;
4041 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4042 var_nodearraylist2 = var9;
4043 var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4044 var_nodearraylist1 = var10;
4045 var_pdocnode2 = var_nodearraylist1;
4046 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
4047 cltype = type_nullable_parser_nodes__ADoc.color;
4048 idtype = type_nullable_parser_nodes__ADoc.id;
4049 if(var_pdocnode2 == NULL) {
4050 var11 = 1;
4051 } else {
4052 if(cltype >= var_pdocnode2->type->table_size) {
4053 var11 = 0;
4054 } else {
4055 var11 = var_pdocnode2->type->type_table[cltype] == idtype;
4056 }
4057 }
4058 if (!var11) {
4059 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21682);
4060 exit(1);
4061 }
4062 var_tkwredefnode3 = var_nodearraylist2;
4063 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
4064 cltype13 = type_nullable_parser_nodes__TKwredef.color;
4065 idtype14 = type_nullable_parser_nodes__TKwredef.id;
4066 if(var_tkwredefnode3 == NULL) {
4067 var12 = 1;
4068 } else {
4069 if(cltype13 >= var_tkwredefnode3->type->table_size) {
4070 var12 = 0;
4071 } else {
4072 var12 = var_tkwredefnode3->type->type_table[cltype13] == idtype14;
4073 }
4074 }
4075 if (!var12) {
4076 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21684);
4077 exit(1);
4078 }
4079 var_pvisibilitynode4 = var_nodearraylist3;
4080 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
4081 cltype16 = type_nullable_parser_nodes__AVisibility.color;
4082 idtype17 = type_nullable_parser_nodes__AVisibility.id;
4083 if(var_pvisibilitynode4 == NULL) {
4084 var15 = 1;
4085 } else {
4086 if(cltype16 >= var_pvisibilitynode4->type->table_size) {
4087 var15 = 0;
4088 } else {
4089 var15 = var_pvisibilitynode4->type->type_table[cltype16] == idtype17;
4090 }
4091 }
4092 if (!var15) {
4093 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21686);
4094 exit(1);
4095 }
4096 var_tkwnewnode5 = var_nodearraylist4;
4097 /* <var_tkwnewnode5:nullable Object> isa nullable TKwnew */
4098 cltype19 = type_nullable_parser_nodes__TKwnew.color;
4099 idtype20 = type_nullable_parser_nodes__TKwnew.id;
4100 if(var_tkwnewnode5 == NULL) {
4101 var18 = 1;
4102 } else {
4103 if(cltype19 >= var_tkwnewnode5->type->table_size) {
4104 var18 = 0;
4105 } else {
4106 var18 = var_tkwnewnode5->type->type_table[cltype19] == idtype20;
4107 }
4108 }
4109 if (!var18) {
4110 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21688);
4111 exit(1);
4112 }
4113 var_pmethidnode6 = var_nodearraylist5;
4114 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
4115 cltype22 = type_nullable_parser_nodes__AMethid.color;
4116 idtype23 = type_nullable_parser_nodes__AMethid.id;
4117 if(var_pmethidnode6 == NULL) {
4118 var21 = 1;
4119 } else {
4120 if(cltype22 >= var_pmethidnode6->type->table_size) {
4121 var21 = 0;
4122 } else {
4123 var21 = var_pmethidnode6->type->type_table[cltype22] == idtype23;
4124 }
4125 }
4126 if (!var21) {
4127 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21690);
4128 exit(1);
4129 }
4130 var_psignaturenode7 = var_nodearraylist6;
4131 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
4132 cltype25 = type_nullable_parser_nodes__ASignature.color;
4133 idtype26 = type_nullable_parser_nodes__ASignature.id;
4134 if(var_psignaturenode7 == NULL) {
4135 var24 = 1;
4136 } else {
4137 if(cltype25 >= var_psignaturenode7->type->table_size) {
4138 var24 = 0;
4139 } else {
4140 var24 = var_psignaturenode7->type->type_table[cltype25] == idtype26;
4141 }
4142 }
4143 if (!var24) {
4144 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21692);
4145 exit(1);
4146 }
4147 var_tstringnode8 = var_nodearraylist9;
4148 /* <var_tstringnode8:nullable Object> isa nullable TString */
4149 cltype28 = type_nullable_parser_nodes__TString.color;
4150 idtype29 = type_nullable_parser_nodes__TString.id;
4151 if(var_tstringnode8 == NULL) {
4152 var27 = 1;
4153 } else {
4154 if(cltype28 >= var_tstringnode8->type->table_size) {
4155 var27 = 0;
4156 } else {
4157 var27 = var_tstringnode8->type->type_table[cltype28] == idtype29;
4158 }
4159 }
4160 if (!var27) {
4161 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21694);
4162 exit(1);
4163 }
4164 var_pexterncodeblocknode10 = var_nodearraylist10;
4165 /* <var_pexterncodeblocknode10:nullable Object> isa nullable AExternCodeBlock */
4166 cltype31 = type_nullable_parser_nodes__AExternCodeBlock.color;
4167 idtype32 = type_nullable_parser_nodes__AExternCodeBlock.id;
4168 if(var_pexterncodeblocknode10 == NULL) {
4169 var30 = 1;
4170 } else {
4171 if(cltype31 >= var_pexterncodeblocknode10->type->table_size) {
4172 var30 = 0;
4173 } else {
4174 var30 = var_pexterncodeblocknode10->type->type_table[cltype31] == idtype32;
4175 }
4176 }
4177 if (!var30) {
4178 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21696);
4179 exit(1);
4180 }
4181 var33 = NEW_parser_nodes__AExternInitPropdef(&type_parser_nodes__AExternInitPropdef);
4182 var34 = NULL;
4183 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var33->class->vft[COLOR_parser_prod__AExternInitPropdef__init_aexterninitpropdef]))(var33, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwnewnode5, var_pmethidnode6, var_psignaturenode7, var_tstringnode8, var34, var_pexterncodeblocknode10) /* init_aexterninitpropdef on <var33:AExternInitPropdef>*/;
4184 CHECK_NEW_parser_nodes__AExternInitPropdef(var33);
4185 var_ppropdefnode1 = var33;
4186 var_node_list = var_ppropdefnode1;
4187 var35 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction488> */
4188 var36 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var35) /* go_to on <var_p:Parser>*/;
4189 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var36, var_node_list) /* push on <var_p:Parser>*/;
4190 RET_LABEL:;
4191 }
4192 /* method parser#ReduceAction488#action for (self: Object, Parser) */
4193 void VIRTUAL_parser__ReduceAction488__action(val* self, val* p0) {
4194 parser__ReduceAction488__action(self, p0);
4195 RET_LABEL:;
4196 }
4197 /* method parser#ReduceAction489#action for (self: ReduceAction489, Parser) */
4198 void parser__ReduceAction489__action(val* self, val* p0) {
4199 val* var_p /* var p: Parser */;
4200 val* var /* : null */;
4201 val* var_node_list /* var node_list: nullable Object */;
4202 val* var1 /* : nullable Object */;
4203 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
4204 val* var2 /* : nullable Object */;
4205 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
4206 val* var3 /* : nullable Object */;
4207 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
4208 val* var4 /* : nullable Object */;
4209 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
4210 val* var5 /* : nullable Object */;
4211 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4212 val* var6 /* : nullable Object */;
4213 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4214 val* var7 /* : nullable Object */;
4215 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4216 val* var8 /* : nullable Object */;
4217 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4218 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
4219 short int var9 /* : Bool */;
4220 int cltype;
4221 int idtype;
4222 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
4223 short int var10 /* : Bool */;
4224 int cltype11;
4225 int idtype12;
4226 val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */;
4227 short int var13 /* : Bool */;
4228 int cltype14;
4229 int idtype15;
4230 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
4231 short int var16 /* : Bool */;
4232 int cltype17;
4233 int idtype18;
4234 val* var_pexterncallsnode9 /* var pexterncallsnode9: nullable Object */;
4235 short int var19 /* : Bool */;
4236 int cltype20;
4237 int idtype21;
4238 val* var_pexterncodeblocknode10 /* var pexterncodeblocknode10: nullable Object */;
4239 short int var22 /* : Bool */;
4240 int cltype23;
4241 int idtype24;
4242 val* var25 /* : AExternInitPropdef */;
4243 val* var26 /* : null */;
4244 val* var27 /* : null */;
4245 val* var28 /* : null */;
4246 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternInitPropdef */;
4247 long var29 /* : Int */;
4248 long var30 /* : Int */;
4249 var_p = p0;
4250 var = NULL;
4251 var_node_list = var;
4252 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4253 var_nodearraylist8 = var1;
4254 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4255 var_nodearraylist7 = var2;
4256 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4257 var_nodearraylist6 = var3;
4258 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4259 var_nodearraylist5 = var4;
4260 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4261 var_nodearraylist4 = var5;
4262 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4263 var_nodearraylist3 = var6;
4264 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4265 var_nodearraylist2 = var7;
4266 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4267 var_nodearraylist1 = var8;
4268 var_pdocnode2 = var_nodearraylist1;
4269 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
4270 cltype = type_nullable_parser_nodes__ADoc.color;
4271 idtype = type_nullable_parser_nodes__ADoc.id;
4272 if(var_pdocnode2 == NULL) {
4273 var9 = 1;
4274 } else {
4275 if(cltype >= var_pdocnode2->type->table_size) {
4276 var9 = 0;
4277 } else {
4278 var9 = var_pdocnode2->type->type_table[cltype] == idtype;
4279 }
4280 }
4281 if (!var9) {
4282 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21726);
4283 exit(1);
4284 }
4285 var_pvisibilitynode4 = var_nodearraylist2;
4286 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
4287 cltype11 = type_nullable_parser_nodes__AVisibility.color;
4288 idtype12 = type_nullable_parser_nodes__AVisibility.id;
4289 if(var_pvisibilitynode4 == NULL) {
4290 var10 = 1;
4291 } else {
4292 if(cltype11 >= var_pvisibilitynode4->type->table_size) {
4293 var10 = 0;
4294 } else {
4295 var10 = var_pvisibilitynode4->type->type_table[cltype11] == idtype12;
4296 }
4297 }
4298 if (!var10) {
4299 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21728);
4300 exit(1);
4301 }
4302 var_tkwnewnode5 = var_nodearraylist3;
4303 /* <var_tkwnewnode5:nullable Object> isa nullable TKwnew */
4304 cltype14 = type_nullable_parser_nodes__TKwnew.color;
4305 idtype15 = type_nullable_parser_nodes__TKwnew.id;
4306 if(var_tkwnewnode5 == NULL) {
4307 var13 = 1;
4308 } else {
4309 if(cltype14 >= var_tkwnewnode5->type->table_size) {
4310 var13 = 0;
4311 } else {
4312 var13 = var_tkwnewnode5->type->type_table[cltype14] == idtype15;
4313 }
4314 }
4315 if (!var13) {
4316 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21730);
4317 exit(1);
4318 }
4319 var_psignaturenode7 = var_nodearraylist4;
4320 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
4321 cltype17 = type_nullable_parser_nodes__ASignature.color;
4322 idtype18 = type_nullable_parser_nodes__ASignature.id;
4323 if(var_psignaturenode7 == NULL) {
4324 var16 = 1;
4325 } else {
4326 if(cltype17 >= var_psignaturenode7->type->table_size) {
4327 var16 = 0;
4328 } else {
4329 var16 = var_psignaturenode7->type->type_table[cltype17] == idtype18;
4330 }
4331 }
4332 if (!var16) {
4333 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21732);
4334 exit(1);
4335 }
4336 var_pexterncallsnode9 = var_nodearraylist7;
4337 /* <var_pexterncallsnode9:nullable Object> isa nullable AExternCalls */
4338 cltype20 = type_nullable_parser_nodes__AExternCalls.color;
4339 idtype21 = type_nullable_parser_nodes__AExternCalls.id;
4340 if(var_pexterncallsnode9 == NULL) {
4341 var19 = 1;
4342 } else {
4343 if(cltype20 >= var_pexterncallsnode9->type->table_size) {
4344 var19 = 0;
4345 } else {
4346 var19 = var_pexterncallsnode9->type->type_table[cltype20] == idtype21;
4347 }
4348 }
4349 if (!var19) {
4350 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21734);
4351 exit(1);
4352 }
4353 var_pexterncodeblocknode10 = var_nodearraylist8;
4354 /* <var_pexterncodeblocknode10:nullable Object> isa nullable AExternCodeBlock */
4355 cltype23 = type_nullable_parser_nodes__AExternCodeBlock.color;
4356 idtype24 = type_nullable_parser_nodes__AExternCodeBlock.id;
4357 if(var_pexterncodeblocknode10 == NULL) {
4358 var22 = 1;
4359 } else {
4360 if(cltype23 >= var_pexterncodeblocknode10->type->table_size) {
4361 var22 = 0;
4362 } else {
4363 var22 = var_pexterncodeblocknode10->type->type_table[cltype23] == idtype24;
4364 }
4365 }
4366 if (!var22) {
4367 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21736);
4368 exit(1);
4369 }
4370 var25 = NEW_parser_nodes__AExternInitPropdef(&type_parser_nodes__AExternInitPropdef);
4371 var26 = NULL;
4372 var27 = NULL;
4373 var28 = NULL;
4374 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var25->class->vft[COLOR_parser_prod__AExternInitPropdef__init_aexterninitpropdef]))(var25, var_pdocnode2, var26, var_pvisibilitynode4, var_tkwnewnode5, var27, var_psignaturenode7, var28, var_pexterncallsnode9, var_pexterncodeblocknode10) /* init_aexterninitpropdef on <var25:AExternInitPropdef>*/;
4375 CHECK_NEW_parser_nodes__AExternInitPropdef(var25);
4376 var_ppropdefnode1 = var25;
4377 var_node_list = var_ppropdefnode1;
4378 var29 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction489> */
4379 var30 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var29) /* go_to on <var_p:Parser>*/;
4380 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var30, var_node_list) /* push on <var_p:Parser>*/;
4381 RET_LABEL:;
4382 }
4383 /* method parser#ReduceAction489#action for (self: Object, Parser) */
4384 void VIRTUAL_parser__ReduceAction489__action(val* self, val* p0) {
4385 parser__ReduceAction489__action(self, p0);
4386 RET_LABEL:;
4387 }
4388 /* method parser#ReduceAction490#action for (self: ReduceAction490, Parser) */
4389 void parser__ReduceAction490__action(val* self, val* p0) {
4390 val* var_p /* var p: Parser */;
4391 val* var /* : null */;
4392 val* var_node_list /* var node_list: nullable Object */;
4393 val* var1 /* : nullable Object */;
4394 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
4395 val* var2 /* : nullable Object */;
4396 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
4397 val* var3 /* : nullable Object */;
4398 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
4399 val* var4 /* : nullable Object */;
4400 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
4401 val* var5 /* : nullable Object */;
4402 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
4403 val* var6 /* : nullable Object */;
4404 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4405 val* var7 /* : nullable Object */;
4406 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4407 val* var8 /* : nullable Object */;
4408 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4409 val* var9 /* : nullable Object */;
4410 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4411 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
4412 short int var10 /* : Bool */;
4413 int cltype;
4414 int idtype;
4415 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
4416 short int var11 /* : Bool */;
4417 int cltype12;
4418 int idtype13;
4419 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
4420 short int var14 /* : Bool */;
4421 int cltype15;
4422 int idtype16;
4423 val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */;
4424 short int var17 /* : Bool */;
4425 int cltype18;
4426 int idtype19;
4427 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
4428 short int var20 /* : Bool */;
4429 int cltype21;
4430 int idtype22;
4431 val* var_pexterncallsnode9 /* var pexterncallsnode9: nullable Object */;
4432 short int var23 /* : Bool */;
4433 int cltype24;
4434 int idtype25;
4435 val* var_pexterncodeblocknode10 /* var pexterncodeblocknode10: nullable Object */;
4436 short int var26 /* : Bool */;
4437 int cltype27;
4438 int idtype28;
4439 val* var29 /* : AExternInitPropdef */;
4440 val* var30 /* : null */;
4441 val* var31 /* : null */;
4442 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternInitPropdef */;
4443 long var32 /* : Int */;
4444 long var33 /* : Int */;
4445 var_p = p0;
4446 var = NULL;
4447 var_node_list = var;
4448 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4449 var_nodearraylist9 = var1;
4450 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4451 var_nodearraylist8 = var2;
4452 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4453 var_nodearraylist7 = var3;
4454 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4455 var_nodearraylist6 = var4;
4456 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4457 var_nodearraylist5 = var5;
4458 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4459 var_nodearraylist4 = var6;
4460 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4461 var_nodearraylist3 = var7;
4462 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4463 var_nodearraylist2 = var8;
4464 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4465 var_nodearraylist1 = var9;
4466 var_pdocnode2 = var_nodearraylist1;
4467 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
4468 cltype = type_nullable_parser_nodes__ADoc.color;
4469 idtype = type_nullable_parser_nodes__ADoc.id;
4470 if(var_pdocnode2 == NULL) {
4471 var10 = 1;
4472 } else {
4473 if(cltype >= var_pdocnode2->type->table_size) {
4474 var10 = 0;
4475 } else {
4476 var10 = var_pdocnode2->type->type_table[cltype] == idtype;
4477 }
4478 }
4479 if (!var10) {
4480 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21767);
4481 exit(1);
4482 }
4483 var_tkwredefnode3 = var_nodearraylist2;
4484 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
4485 cltype12 = type_nullable_parser_nodes__TKwredef.color;
4486 idtype13 = type_nullable_parser_nodes__TKwredef.id;
4487 if(var_tkwredefnode3 == NULL) {
4488 var11 = 1;
4489 } else {
4490 if(cltype12 >= var_tkwredefnode3->type->table_size) {
4491 var11 = 0;
4492 } else {
4493 var11 = var_tkwredefnode3->type->type_table[cltype12] == idtype13;
4494 }
4495 }
4496 if (!var11) {
4497 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21769);
4498 exit(1);
4499 }
4500 var_pvisibilitynode4 = var_nodearraylist3;
4501 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
4502 cltype15 = type_nullable_parser_nodes__AVisibility.color;
4503 idtype16 = type_nullable_parser_nodes__AVisibility.id;
4504 if(var_pvisibilitynode4 == NULL) {
4505 var14 = 1;
4506 } else {
4507 if(cltype15 >= var_pvisibilitynode4->type->table_size) {
4508 var14 = 0;
4509 } else {
4510 var14 = var_pvisibilitynode4->type->type_table[cltype15] == idtype16;
4511 }
4512 }
4513 if (!var14) {
4514 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21771);
4515 exit(1);
4516 }
4517 var_tkwnewnode5 = var_nodearraylist4;
4518 /* <var_tkwnewnode5:nullable Object> isa nullable TKwnew */
4519 cltype18 = type_nullable_parser_nodes__TKwnew.color;
4520 idtype19 = type_nullable_parser_nodes__TKwnew.id;
4521 if(var_tkwnewnode5 == NULL) {
4522 var17 = 1;
4523 } else {
4524 if(cltype18 >= var_tkwnewnode5->type->table_size) {
4525 var17 = 0;
4526 } else {
4527 var17 = var_tkwnewnode5->type->type_table[cltype18] == idtype19;
4528 }
4529 }
4530 if (!var17) {
4531 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21773);
4532 exit(1);
4533 }
4534 var_psignaturenode7 = var_nodearraylist5;
4535 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
4536 cltype21 = type_nullable_parser_nodes__ASignature.color;
4537 idtype22 = type_nullable_parser_nodes__ASignature.id;
4538 if(var_psignaturenode7 == NULL) {
4539 var20 = 1;
4540 } else {
4541 if(cltype21 >= var_psignaturenode7->type->table_size) {
4542 var20 = 0;
4543 } else {
4544 var20 = var_psignaturenode7->type->type_table[cltype21] == idtype22;
4545 }
4546 }
4547 if (!var20) {
4548 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21775);
4549 exit(1);
4550 }
4551 var_pexterncallsnode9 = var_nodearraylist8;
4552 /* <var_pexterncallsnode9:nullable Object> isa nullable AExternCalls */
4553 cltype24 = type_nullable_parser_nodes__AExternCalls.color;
4554 idtype25 = type_nullable_parser_nodes__AExternCalls.id;
4555 if(var_pexterncallsnode9 == NULL) {
4556 var23 = 1;
4557 } else {
4558 if(cltype24 >= var_pexterncallsnode9->type->table_size) {
4559 var23 = 0;
4560 } else {
4561 var23 = var_pexterncallsnode9->type->type_table[cltype24] == idtype25;
4562 }
4563 }
4564 if (!var23) {
4565 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21777);
4566 exit(1);
4567 }
4568 var_pexterncodeblocknode10 = var_nodearraylist9;
4569 /* <var_pexterncodeblocknode10:nullable Object> isa nullable AExternCodeBlock */
4570 cltype27 = type_nullable_parser_nodes__AExternCodeBlock.color;
4571 idtype28 = type_nullable_parser_nodes__AExternCodeBlock.id;
4572 if(var_pexterncodeblocknode10 == NULL) {
4573 var26 = 1;
4574 } else {
4575 if(cltype27 >= var_pexterncodeblocknode10->type->table_size) {
4576 var26 = 0;
4577 } else {
4578 var26 = var_pexterncodeblocknode10->type->type_table[cltype27] == idtype28;
4579 }
4580 }
4581 if (!var26) {
4582 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21779);
4583 exit(1);
4584 }
4585 var29 = NEW_parser_nodes__AExternInitPropdef(&type_parser_nodes__AExternInitPropdef);
4586 var30 = NULL;
4587 var31 = NULL;
4588 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var29->class->vft[COLOR_parser_prod__AExternInitPropdef__init_aexterninitpropdef]))(var29, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwnewnode5, var30, var_psignaturenode7, var31, var_pexterncallsnode9, var_pexterncodeblocknode10) /* init_aexterninitpropdef on <var29:AExternInitPropdef>*/;
4589 CHECK_NEW_parser_nodes__AExternInitPropdef(var29);
4590 var_ppropdefnode1 = var29;
4591 var_node_list = var_ppropdefnode1;
4592 var32 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction490> */
4593 var33 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var32) /* go_to on <var_p:Parser>*/;
4594 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var33, var_node_list) /* push on <var_p:Parser>*/;
4595 RET_LABEL:;
4596 }
4597 /* method parser#ReduceAction490#action for (self: Object, Parser) */
4598 void VIRTUAL_parser__ReduceAction490__action(val* self, val* p0) {
4599 parser__ReduceAction490__action(self, p0);
4600 RET_LABEL:;
4601 }
4602 /* method parser#ReduceAction491#action for (self: ReduceAction491, Parser) */
4603 void parser__ReduceAction491__action(val* self, val* p0) {
4604 val* var_p /* var p: Parser */;
4605 val* var /* : null */;
4606 val* var_node_list /* var node_list: nullable Object */;
4607 val* var1 /* : nullable Object */;
4608 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
4609 val* var2 /* : nullable Object */;
4610 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
4611 val* var3 /* : nullable Object */;
4612 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
4613 val* var4 /* : nullable Object */;
4614 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
4615 val* var5 /* : nullable Object */;
4616 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
4617 val* var6 /* : nullable Object */;
4618 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4619 val* var7 /* : nullable Object */;
4620 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4621 val* var8 /* : nullable Object */;
4622 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4623 val* var9 /* : nullable Object */;
4624 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4625 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
4626 short int var10 /* : Bool */;
4627 int cltype;
4628 int idtype;
4629 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
4630 short int var11 /* : Bool */;
4631 int cltype12;
4632 int idtype13;
4633 val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */;
4634 short int var14 /* : Bool */;
4635 int cltype15;
4636 int idtype16;
4637 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
4638 short int var17 /* : Bool */;
4639 int cltype18;
4640 int idtype19;
4641 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
4642 short int var20 /* : Bool */;
4643 int cltype21;
4644 int idtype22;
4645 val* var_pexterncallsnode9 /* var pexterncallsnode9: nullable Object */;
4646 short int var23 /* : Bool */;
4647 int cltype24;
4648 int idtype25;
4649 val* var_pexterncodeblocknode10 /* var pexterncodeblocknode10: nullable Object */;
4650 short int var26 /* : Bool */;
4651 int cltype27;
4652 int idtype28;
4653 val* var29 /* : AExternInitPropdef */;
4654 val* var30 /* : null */;
4655 val* var31 /* : null */;
4656 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternInitPropdef */;
4657 long var32 /* : Int */;
4658 long var33 /* : Int */;
4659 var_p = p0;
4660 var = NULL;
4661 var_node_list = var;
4662 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4663 var_nodearraylist9 = var1;
4664 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4665 var_nodearraylist8 = var2;
4666 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4667 var_nodearraylist7 = var3;
4668 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4669 var_nodearraylist6 = var4;
4670 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4671 var_nodearraylist5 = var5;
4672 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4673 var_nodearraylist4 = var6;
4674 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4675 var_nodearraylist3 = var7;
4676 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4677 var_nodearraylist2 = var8;
4678 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4679 var_nodearraylist1 = var9;
4680 var_pdocnode2 = var_nodearraylist1;
4681 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
4682 cltype = type_nullable_parser_nodes__ADoc.color;
4683 idtype = type_nullable_parser_nodes__ADoc.id;
4684 if(var_pdocnode2 == NULL) {
4685 var10 = 1;
4686 } else {
4687 if(cltype >= var_pdocnode2->type->table_size) {
4688 var10 = 0;
4689 } else {
4690 var10 = var_pdocnode2->type->type_table[cltype] == idtype;
4691 }
4692 }
4693 if (!var10) {
4694 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21810);
4695 exit(1);
4696 }
4697 var_pvisibilitynode4 = var_nodearraylist2;
4698 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
4699 cltype12 = type_nullable_parser_nodes__AVisibility.color;
4700 idtype13 = type_nullable_parser_nodes__AVisibility.id;
4701 if(var_pvisibilitynode4 == NULL) {
4702 var11 = 1;
4703 } else {
4704 if(cltype12 >= var_pvisibilitynode4->type->table_size) {
4705 var11 = 0;
4706 } else {
4707 var11 = var_pvisibilitynode4->type->type_table[cltype12] == idtype13;
4708 }
4709 }
4710 if (!var11) {
4711 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21812);
4712 exit(1);
4713 }
4714 var_tkwnewnode5 = var_nodearraylist3;
4715 /* <var_tkwnewnode5:nullable Object> isa nullable TKwnew */
4716 cltype15 = type_nullable_parser_nodes__TKwnew.color;
4717 idtype16 = type_nullable_parser_nodes__TKwnew.id;
4718 if(var_tkwnewnode5 == NULL) {
4719 var14 = 1;
4720 } else {
4721 if(cltype15 >= var_tkwnewnode5->type->table_size) {
4722 var14 = 0;
4723 } else {
4724 var14 = var_tkwnewnode5->type->type_table[cltype15] == idtype16;
4725 }
4726 }
4727 if (!var14) {
4728 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21814);
4729 exit(1);
4730 }
4731 var_pmethidnode6 = var_nodearraylist4;
4732 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
4733 cltype18 = type_nullable_parser_nodes__AMethid.color;
4734 idtype19 = type_nullable_parser_nodes__AMethid.id;
4735 if(var_pmethidnode6 == NULL) {
4736 var17 = 1;
4737 } else {
4738 if(cltype18 >= var_pmethidnode6->type->table_size) {
4739 var17 = 0;
4740 } else {
4741 var17 = var_pmethidnode6->type->type_table[cltype18] == idtype19;
4742 }
4743 }
4744 if (!var17) {
4745 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21816);
4746 exit(1);
4747 }
4748 var_psignaturenode7 = var_nodearraylist5;
4749 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
4750 cltype21 = type_nullable_parser_nodes__ASignature.color;
4751 idtype22 = type_nullable_parser_nodes__ASignature.id;
4752 if(var_psignaturenode7 == NULL) {
4753 var20 = 1;
4754 } else {
4755 if(cltype21 >= var_psignaturenode7->type->table_size) {
4756 var20 = 0;
4757 } else {
4758 var20 = var_psignaturenode7->type->type_table[cltype21] == idtype22;
4759 }
4760 }
4761 if (!var20) {
4762 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21818);
4763 exit(1);
4764 }
4765 var_pexterncallsnode9 = var_nodearraylist8;
4766 /* <var_pexterncallsnode9:nullable Object> isa nullable AExternCalls */
4767 cltype24 = type_nullable_parser_nodes__AExternCalls.color;
4768 idtype25 = type_nullable_parser_nodes__AExternCalls.id;
4769 if(var_pexterncallsnode9 == NULL) {
4770 var23 = 1;
4771 } else {
4772 if(cltype24 >= var_pexterncallsnode9->type->table_size) {
4773 var23 = 0;
4774 } else {
4775 var23 = var_pexterncallsnode9->type->type_table[cltype24] == idtype25;
4776 }
4777 }
4778 if (!var23) {
4779 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21820);
4780 exit(1);
4781 }
4782 var_pexterncodeblocknode10 = var_nodearraylist9;
4783 /* <var_pexterncodeblocknode10:nullable Object> isa nullable AExternCodeBlock */
4784 cltype27 = type_nullable_parser_nodes__AExternCodeBlock.color;
4785 idtype28 = type_nullable_parser_nodes__AExternCodeBlock.id;
4786 if(var_pexterncodeblocknode10 == NULL) {
4787 var26 = 1;
4788 } else {
4789 if(cltype27 >= var_pexterncodeblocknode10->type->table_size) {
4790 var26 = 0;
4791 } else {
4792 var26 = var_pexterncodeblocknode10->type->type_table[cltype27] == idtype28;
4793 }
4794 }
4795 if (!var26) {
4796 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21822);
4797 exit(1);
4798 }
4799 var29 = NEW_parser_nodes__AExternInitPropdef(&type_parser_nodes__AExternInitPropdef);
4800 var30 = NULL;
4801 var31 = NULL;
4802 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var29->class->vft[COLOR_parser_prod__AExternInitPropdef__init_aexterninitpropdef]))(var29, var_pdocnode2, var30, var_pvisibilitynode4, var_tkwnewnode5, var_pmethidnode6, var_psignaturenode7, var31, var_pexterncallsnode9, var_pexterncodeblocknode10) /* init_aexterninitpropdef on <var29:AExternInitPropdef>*/;
4803 CHECK_NEW_parser_nodes__AExternInitPropdef(var29);
4804 var_ppropdefnode1 = var29;
4805 var_node_list = var_ppropdefnode1;
4806 var32 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction491> */
4807 var33 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var32) /* go_to on <var_p:Parser>*/;
4808 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var33, var_node_list) /* push on <var_p:Parser>*/;
4809 RET_LABEL:;
4810 }
4811 /* method parser#ReduceAction491#action for (self: Object, Parser) */
4812 void VIRTUAL_parser__ReduceAction491__action(val* self, val* p0) {
4813 parser__ReduceAction491__action(self, p0);
4814 RET_LABEL:;
4815 }
4816 /* method parser#ReduceAction492#action for (self: ReduceAction492, Parser) */
4817 void parser__ReduceAction492__action(val* self, val* p0) {
4818 val* var_p /* var p: Parser */;
4819 val* var /* : null */;
4820 val* var_node_list /* var node_list: nullable Object */;
4821 val* var1 /* : nullable Object */;
4822 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
4823 val* var2 /* : nullable Object */;
4824 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
4825 val* var3 /* : nullable Object */;
4826 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
4827 val* var4 /* : nullable Object */;
4828 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
4829 val* var5 /* : nullable Object */;
4830 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
4831 val* var6 /* : nullable Object */;
4832 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
4833 val* var7 /* : nullable Object */;
4834 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4835 val* var8 /* : nullable Object */;
4836 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4837 val* var9 /* : nullable Object */;
4838 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4839 val* var10 /* : nullable Object */;
4840 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4841 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
4842 short int var11 /* : Bool */;
4843 int cltype;
4844 int idtype;
4845 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
4846 short int var12 /* : Bool */;
4847 int cltype13;
4848 int idtype14;
4849 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
4850 short int var15 /* : Bool */;
4851 int cltype16;
4852 int idtype17;
4853 val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */;
4854 short int var18 /* : Bool */;
4855 int cltype19;
4856 int idtype20;
4857 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
4858 short int var21 /* : Bool */;
4859 int cltype22;
4860 int idtype23;
4861 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
4862 short int var24 /* : Bool */;
4863 int cltype25;
4864 int idtype26;
4865 val* var_pexterncallsnode9 /* var pexterncallsnode9: nullable Object */;
4866 short int var27 /* : Bool */;
4867 int cltype28;
4868 int idtype29;
4869 val* var_pexterncodeblocknode10 /* var pexterncodeblocknode10: nullable Object */;
4870 short int var30 /* : Bool */;
4871 int cltype31;
4872 int idtype32;
4873 val* var33 /* : AExternInitPropdef */;
4874 val* var34 /* : null */;
4875 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternInitPropdef */;
4876 long var35 /* : Int */;
4877 long var36 /* : Int */;
4878 var_p = p0;
4879 var = NULL;
4880 var_node_list = var;
4881 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4882 var_nodearraylist10 = var1;
4883 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4884 var_nodearraylist9 = var2;
4885 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4886 var_nodearraylist8 = var3;
4887 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4888 var_nodearraylist7 = var4;
4889 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4890 var_nodearraylist6 = var5;
4891 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4892 var_nodearraylist5 = var6;
4893 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4894 var_nodearraylist4 = var7;
4895 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4896 var_nodearraylist3 = var8;
4897 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4898 var_nodearraylist2 = var9;
4899 var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
4900 var_nodearraylist1 = var10;
4901 var_pdocnode2 = var_nodearraylist1;
4902 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
4903 cltype = type_nullable_parser_nodes__ADoc.color;
4904 idtype = type_nullable_parser_nodes__ADoc.id;
4905 if(var_pdocnode2 == NULL) {
4906 var11 = 1;
4907 } else {
4908 if(cltype >= var_pdocnode2->type->table_size) {
4909 var11 = 0;
4910 } else {
4911 var11 = var_pdocnode2->type->type_table[cltype] == idtype;
4912 }
4913 }
4914 if (!var11) {
4915 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21854);
4916 exit(1);
4917 }
4918 var_tkwredefnode3 = var_nodearraylist2;
4919 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
4920 cltype13 = type_nullable_parser_nodes__TKwredef.color;
4921 idtype14 = type_nullable_parser_nodes__TKwredef.id;
4922 if(var_tkwredefnode3 == NULL) {
4923 var12 = 1;
4924 } else {
4925 if(cltype13 >= var_tkwredefnode3->type->table_size) {
4926 var12 = 0;
4927 } else {
4928 var12 = var_tkwredefnode3->type->type_table[cltype13] == idtype14;
4929 }
4930 }
4931 if (!var12) {
4932 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21856);
4933 exit(1);
4934 }
4935 var_pvisibilitynode4 = var_nodearraylist3;
4936 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
4937 cltype16 = type_nullable_parser_nodes__AVisibility.color;
4938 idtype17 = type_nullable_parser_nodes__AVisibility.id;
4939 if(var_pvisibilitynode4 == NULL) {
4940 var15 = 1;
4941 } else {
4942 if(cltype16 >= var_pvisibilitynode4->type->table_size) {
4943 var15 = 0;
4944 } else {
4945 var15 = var_pvisibilitynode4->type->type_table[cltype16] == idtype17;
4946 }
4947 }
4948 if (!var15) {
4949 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21858);
4950 exit(1);
4951 }
4952 var_tkwnewnode5 = var_nodearraylist4;
4953 /* <var_tkwnewnode5:nullable Object> isa nullable TKwnew */
4954 cltype19 = type_nullable_parser_nodes__TKwnew.color;
4955 idtype20 = type_nullable_parser_nodes__TKwnew.id;
4956 if(var_tkwnewnode5 == NULL) {
4957 var18 = 1;
4958 } else {
4959 if(cltype19 >= var_tkwnewnode5->type->table_size) {
4960 var18 = 0;
4961 } else {
4962 var18 = var_tkwnewnode5->type->type_table[cltype19] == idtype20;
4963 }
4964 }
4965 if (!var18) {
4966 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21860);
4967 exit(1);
4968 }
4969 var_pmethidnode6 = var_nodearraylist5;
4970 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
4971 cltype22 = type_nullable_parser_nodes__AMethid.color;
4972 idtype23 = type_nullable_parser_nodes__AMethid.id;
4973 if(var_pmethidnode6 == NULL) {
4974 var21 = 1;
4975 } else {
4976 if(cltype22 >= var_pmethidnode6->type->table_size) {
4977 var21 = 0;
4978 } else {
4979 var21 = var_pmethidnode6->type->type_table[cltype22] == idtype23;
4980 }
4981 }
4982 if (!var21) {
4983 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21862);
4984 exit(1);
4985 }
4986 var_psignaturenode7 = var_nodearraylist6;
4987 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
4988 cltype25 = type_nullable_parser_nodes__ASignature.color;
4989 idtype26 = type_nullable_parser_nodes__ASignature.id;
4990 if(var_psignaturenode7 == NULL) {
4991 var24 = 1;
4992 } else {
4993 if(cltype25 >= var_psignaturenode7->type->table_size) {
4994 var24 = 0;
4995 } else {
4996 var24 = var_psignaturenode7->type->type_table[cltype25] == idtype26;
4997 }
4998 }
4999 if (!var24) {
5000 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21864);
5001 exit(1);
5002 }
5003 var_pexterncallsnode9 = var_nodearraylist9;
5004 /* <var_pexterncallsnode9:nullable Object> isa nullable AExternCalls */
5005 cltype28 = type_nullable_parser_nodes__AExternCalls.color;
5006 idtype29 = type_nullable_parser_nodes__AExternCalls.id;
5007 if(var_pexterncallsnode9 == NULL) {
5008 var27 = 1;
5009 } else {
5010 if(cltype28 >= var_pexterncallsnode9->type->table_size) {
5011 var27 = 0;
5012 } else {
5013 var27 = var_pexterncallsnode9->type->type_table[cltype28] == idtype29;
5014 }
5015 }
5016 if (!var27) {
5017 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21866);
5018 exit(1);
5019 }
5020 var_pexterncodeblocknode10 = var_nodearraylist10;
5021 /* <var_pexterncodeblocknode10:nullable Object> isa nullable AExternCodeBlock */
5022 cltype31 = type_nullable_parser_nodes__AExternCodeBlock.color;
5023 idtype32 = type_nullable_parser_nodes__AExternCodeBlock.id;
5024 if(var_pexterncodeblocknode10 == NULL) {
5025 var30 = 1;
5026 } else {
5027 if(cltype31 >= var_pexterncodeblocknode10->type->table_size) {
5028 var30 = 0;
5029 } else {
5030 var30 = var_pexterncodeblocknode10->type->type_table[cltype31] == idtype32;
5031 }
5032 }
5033 if (!var30) {
5034 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21868);
5035 exit(1);
5036 }
5037 var33 = NEW_parser_nodes__AExternInitPropdef(&type_parser_nodes__AExternInitPropdef);
5038 var34 = NULL;
5039 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var33->class->vft[COLOR_parser_prod__AExternInitPropdef__init_aexterninitpropdef]))(var33, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwnewnode5, var_pmethidnode6, var_psignaturenode7, var34, var_pexterncallsnode9, var_pexterncodeblocknode10) /* init_aexterninitpropdef on <var33:AExternInitPropdef>*/;
5040 CHECK_NEW_parser_nodes__AExternInitPropdef(var33);
5041 var_ppropdefnode1 = var33;
5042 var_node_list = var_ppropdefnode1;
5043 var35 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction492> */
5044 var36 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var35) /* go_to on <var_p:Parser>*/;
5045 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var36, var_node_list) /* push on <var_p:Parser>*/;
5046 RET_LABEL:;
5047 }
5048 /* method parser#ReduceAction492#action for (self: Object, Parser) */
5049 void VIRTUAL_parser__ReduceAction492__action(val* self, val* p0) {
5050 parser__ReduceAction492__action(self, p0);
5051 RET_LABEL:;
5052 }
5053 /* method parser#ReduceAction493#action for (self: ReduceAction493, Parser) */
5054 void parser__ReduceAction493__action(val* self, val* p0) {
5055 val* var_p /* var p: Parser */;
5056 val* var /* : null */;
5057 val* var_node_list /* var node_list: nullable Object */;
5058 val* var1 /* : nullable Object */;
5059 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
5060 val* var2 /* : nullable Object */;
5061 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
5062 val* var3 /* : nullable Object */;
5063 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
5064 val* var4 /* : nullable Object */;
5065 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
5066 val* var5 /* : nullable Object */;
5067 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
5068 val* var6 /* : nullable Object */;
5069 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5070 val* var7 /* : nullable Object */;
5071 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5072 val* var8 /* : nullable Object */;
5073 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5074 val* var9 /* : nullable Object */;
5075 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5076 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
5077 short int var10 /* : Bool */;
5078 int cltype;
5079 int idtype;
5080 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
5081 short int var11 /* : Bool */;
5082 int cltype12;
5083 int idtype13;
5084 val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */;
5085 short int var14 /* : Bool */;
5086 int cltype15;
5087 int idtype16;
5088 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
5089 short int var17 /* : Bool */;
5090 int cltype18;
5091 int idtype19;
5092 val* var_tstringnode8 /* var tstringnode8: nullable Object */;
5093 short int var20 /* : Bool */;
5094 int cltype21;
5095 int idtype22;
5096 val* var_pexterncallsnode9 /* var pexterncallsnode9: nullable Object */;
5097 short int var23 /* : Bool */;
5098 int cltype24;
5099 int idtype25;
5100 val* var_pexterncodeblocknode10 /* var pexterncodeblocknode10: nullable Object */;
5101 short int var26 /* : Bool */;
5102 int cltype27;
5103 int idtype28;
5104 val* var29 /* : AExternInitPropdef */;
5105 val* var30 /* : null */;
5106 val* var31 /* : null */;
5107 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternInitPropdef */;
5108 long var32 /* : Int */;
5109 long var33 /* : Int */;
5110 var_p = p0;
5111 var = NULL;
5112 var_node_list = var;
5113 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5114 var_nodearraylist9 = var1;
5115 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5116 var_nodearraylist8 = var2;
5117 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5118 var_nodearraylist7 = var3;
5119 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5120 var_nodearraylist6 = var4;
5121 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5122 var_nodearraylist5 = var5;
5123 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5124 var_nodearraylist4 = var6;
5125 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5126 var_nodearraylist3 = var7;
5127 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5128 var_nodearraylist2 = var8;
5129 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5130 var_nodearraylist1 = var9;
5131 var_pdocnode2 = var_nodearraylist1;
5132 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
5133 cltype = type_nullable_parser_nodes__ADoc.color;
5134 idtype = type_nullable_parser_nodes__ADoc.id;
5135 if(var_pdocnode2 == NULL) {
5136 var10 = 1;
5137 } else {
5138 if(cltype >= var_pdocnode2->type->table_size) {
5139 var10 = 0;
5140 } else {
5141 var10 = var_pdocnode2->type->type_table[cltype] == idtype;
5142 }
5143 }
5144 if (!var10) {
5145 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21899);
5146 exit(1);
5147 }
5148 var_pvisibilitynode4 = var_nodearraylist2;
5149 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
5150 cltype12 = type_nullable_parser_nodes__AVisibility.color;
5151 idtype13 = type_nullable_parser_nodes__AVisibility.id;
5152 if(var_pvisibilitynode4 == NULL) {
5153 var11 = 1;
5154 } else {
5155 if(cltype12 >= var_pvisibilitynode4->type->table_size) {
5156 var11 = 0;
5157 } else {
5158 var11 = var_pvisibilitynode4->type->type_table[cltype12] == idtype13;
5159 }
5160 }
5161 if (!var11) {
5162 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21901);
5163 exit(1);
5164 }
5165 var_tkwnewnode5 = var_nodearraylist3;
5166 /* <var_tkwnewnode5:nullable Object> isa nullable TKwnew */
5167 cltype15 = type_nullable_parser_nodes__TKwnew.color;
5168 idtype16 = type_nullable_parser_nodes__TKwnew.id;
5169 if(var_tkwnewnode5 == NULL) {
5170 var14 = 1;
5171 } else {
5172 if(cltype15 >= var_tkwnewnode5->type->table_size) {
5173 var14 = 0;
5174 } else {
5175 var14 = var_tkwnewnode5->type->type_table[cltype15] == idtype16;
5176 }
5177 }
5178 if (!var14) {
5179 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21903);
5180 exit(1);
5181 }
5182 var_psignaturenode7 = var_nodearraylist4;
5183 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
5184 cltype18 = type_nullable_parser_nodes__ASignature.color;
5185 idtype19 = type_nullable_parser_nodes__ASignature.id;
5186 if(var_psignaturenode7 == NULL) {
5187 var17 = 1;
5188 } else {
5189 if(cltype18 >= var_psignaturenode7->type->table_size) {
5190 var17 = 0;
5191 } else {
5192 var17 = var_psignaturenode7->type->type_table[cltype18] == idtype19;
5193 }
5194 }
5195 if (!var17) {
5196 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21905);
5197 exit(1);
5198 }
5199 var_tstringnode8 = var_nodearraylist7;
5200 /* <var_tstringnode8:nullable Object> isa nullable TString */
5201 cltype21 = type_nullable_parser_nodes__TString.color;
5202 idtype22 = type_nullable_parser_nodes__TString.id;
5203 if(var_tstringnode8 == NULL) {
5204 var20 = 1;
5205 } else {
5206 if(cltype21 >= var_tstringnode8->type->table_size) {
5207 var20 = 0;
5208 } else {
5209 var20 = var_tstringnode8->type->type_table[cltype21] == idtype22;
5210 }
5211 }
5212 if (!var20) {
5213 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21907);
5214 exit(1);
5215 }
5216 var_pexterncallsnode9 = var_nodearraylist8;
5217 /* <var_pexterncallsnode9:nullable Object> isa nullable AExternCalls */
5218 cltype24 = type_nullable_parser_nodes__AExternCalls.color;
5219 idtype25 = type_nullable_parser_nodes__AExternCalls.id;
5220 if(var_pexterncallsnode9 == NULL) {
5221 var23 = 1;
5222 } else {
5223 if(cltype24 >= var_pexterncallsnode9->type->table_size) {
5224 var23 = 0;
5225 } else {
5226 var23 = var_pexterncallsnode9->type->type_table[cltype24] == idtype25;
5227 }
5228 }
5229 if (!var23) {
5230 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21909);
5231 exit(1);
5232 }
5233 var_pexterncodeblocknode10 = var_nodearraylist9;
5234 /* <var_pexterncodeblocknode10:nullable Object> isa nullable AExternCodeBlock */
5235 cltype27 = type_nullable_parser_nodes__AExternCodeBlock.color;
5236 idtype28 = type_nullable_parser_nodes__AExternCodeBlock.id;
5237 if(var_pexterncodeblocknode10 == NULL) {
5238 var26 = 1;
5239 } else {
5240 if(cltype27 >= var_pexterncodeblocknode10->type->table_size) {
5241 var26 = 0;
5242 } else {
5243 var26 = var_pexterncodeblocknode10->type->type_table[cltype27] == idtype28;
5244 }
5245 }
5246 if (!var26) {
5247 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21911);
5248 exit(1);
5249 }
5250 var29 = NEW_parser_nodes__AExternInitPropdef(&type_parser_nodes__AExternInitPropdef);
5251 var30 = NULL;
5252 var31 = NULL;
5253 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var29->class->vft[COLOR_parser_prod__AExternInitPropdef__init_aexterninitpropdef]))(var29, var_pdocnode2, var30, var_pvisibilitynode4, var_tkwnewnode5, var31, var_psignaturenode7, var_tstringnode8, var_pexterncallsnode9, var_pexterncodeblocknode10) /* init_aexterninitpropdef on <var29:AExternInitPropdef>*/;
5254 CHECK_NEW_parser_nodes__AExternInitPropdef(var29);
5255 var_ppropdefnode1 = var29;
5256 var_node_list = var_ppropdefnode1;
5257 var32 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction493> */
5258 var33 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var32) /* go_to on <var_p:Parser>*/;
5259 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var33, var_node_list) /* push on <var_p:Parser>*/;
5260 RET_LABEL:;
5261 }
5262 /* method parser#ReduceAction493#action for (self: Object, Parser) */
5263 void VIRTUAL_parser__ReduceAction493__action(val* self, val* p0) {
5264 parser__ReduceAction493__action(self, p0);
5265 RET_LABEL:;
5266 }
5267 /* method parser#ReduceAction494#action for (self: ReduceAction494, Parser) */
5268 void parser__ReduceAction494__action(val* self, val* p0) {
5269 val* var_p /* var p: Parser */;
5270 val* var /* : null */;
5271 val* var_node_list /* var node_list: nullable Object */;
5272 val* var1 /* : nullable Object */;
5273 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
5274 val* var2 /* : nullable Object */;
5275 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
5276 val* var3 /* : nullable Object */;
5277 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
5278 val* var4 /* : nullable Object */;
5279 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
5280 val* var5 /* : nullable Object */;
5281 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
5282 val* var6 /* : nullable Object */;
5283 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
5284 val* var7 /* : nullable Object */;
5285 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5286 val* var8 /* : nullable Object */;
5287 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5288 val* var9 /* : nullable Object */;
5289 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5290 val* var10 /* : nullable Object */;
5291 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5292 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
5293 short int var11 /* : Bool */;
5294 int cltype;
5295 int idtype;
5296 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
5297 short int var12 /* : Bool */;
5298 int cltype13;
5299 int idtype14;
5300 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
5301 short int var15 /* : Bool */;
5302 int cltype16;
5303 int idtype17;
5304 val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */;
5305 short int var18 /* : Bool */;
5306 int cltype19;
5307 int idtype20;
5308 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
5309 short int var21 /* : Bool */;
5310 int cltype22;
5311 int idtype23;
5312 val* var_tstringnode8 /* var tstringnode8: nullable Object */;
5313 short int var24 /* : Bool */;
5314 int cltype25;
5315 int idtype26;
5316 val* var_pexterncallsnode9 /* var pexterncallsnode9: nullable Object */;
5317 short int var27 /* : Bool */;
5318 int cltype28;
5319 int idtype29;
5320 val* var_pexterncodeblocknode10 /* var pexterncodeblocknode10: nullable Object */;
5321 short int var30 /* : Bool */;
5322 int cltype31;
5323 int idtype32;
5324 val* var33 /* : AExternInitPropdef */;
5325 val* var34 /* : null */;
5326 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternInitPropdef */;
5327 long var35 /* : Int */;
5328 long var36 /* : Int */;
5329 var_p = p0;
5330 var = NULL;
5331 var_node_list = var;
5332 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5333 var_nodearraylist10 = var1;
5334 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5335 var_nodearraylist9 = var2;
5336 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5337 var_nodearraylist8 = var3;
5338 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5339 var_nodearraylist7 = var4;
5340 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5341 var_nodearraylist6 = var5;
5342 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5343 var_nodearraylist5 = var6;
5344 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5345 var_nodearraylist4 = var7;
5346 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5347 var_nodearraylist3 = var8;
5348 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5349 var_nodearraylist2 = var9;
5350 var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5351 var_nodearraylist1 = var10;
5352 var_pdocnode2 = var_nodearraylist1;
5353 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
5354 cltype = type_nullable_parser_nodes__ADoc.color;
5355 idtype = type_nullable_parser_nodes__ADoc.id;
5356 if(var_pdocnode2 == NULL) {
5357 var11 = 1;
5358 } else {
5359 if(cltype >= var_pdocnode2->type->table_size) {
5360 var11 = 0;
5361 } else {
5362 var11 = var_pdocnode2->type->type_table[cltype] == idtype;
5363 }
5364 }
5365 if (!var11) {
5366 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21943);
5367 exit(1);
5368 }
5369 var_tkwredefnode3 = var_nodearraylist2;
5370 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
5371 cltype13 = type_nullable_parser_nodes__TKwredef.color;
5372 idtype14 = type_nullable_parser_nodes__TKwredef.id;
5373 if(var_tkwredefnode3 == NULL) {
5374 var12 = 1;
5375 } else {
5376 if(cltype13 >= var_tkwredefnode3->type->table_size) {
5377 var12 = 0;
5378 } else {
5379 var12 = var_tkwredefnode3->type->type_table[cltype13] == idtype14;
5380 }
5381 }
5382 if (!var12) {
5383 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21945);
5384 exit(1);
5385 }
5386 var_pvisibilitynode4 = var_nodearraylist3;
5387 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
5388 cltype16 = type_nullable_parser_nodes__AVisibility.color;
5389 idtype17 = type_nullable_parser_nodes__AVisibility.id;
5390 if(var_pvisibilitynode4 == NULL) {
5391 var15 = 1;
5392 } else {
5393 if(cltype16 >= var_pvisibilitynode4->type->table_size) {
5394 var15 = 0;
5395 } else {
5396 var15 = var_pvisibilitynode4->type->type_table[cltype16] == idtype17;
5397 }
5398 }
5399 if (!var15) {
5400 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21947);
5401 exit(1);
5402 }
5403 var_tkwnewnode5 = var_nodearraylist4;
5404 /* <var_tkwnewnode5:nullable Object> isa nullable TKwnew */
5405 cltype19 = type_nullable_parser_nodes__TKwnew.color;
5406 idtype20 = type_nullable_parser_nodes__TKwnew.id;
5407 if(var_tkwnewnode5 == NULL) {
5408 var18 = 1;
5409 } else {
5410 if(cltype19 >= var_tkwnewnode5->type->table_size) {
5411 var18 = 0;
5412 } else {
5413 var18 = var_tkwnewnode5->type->type_table[cltype19] == idtype20;
5414 }
5415 }
5416 if (!var18) {
5417 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21949);
5418 exit(1);
5419 }
5420 var_psignaturenode7 = var_nodearraylist5;
5421 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
5422 cltype22 = type_nullable_parser_nodes__ASignature.color;
5423 idtype23 = type_nullable_parser_nodes__ASignature.id;
5424 if(var_psignaturenode7 == NULL) {
5425 var21 = 1;
5426 } else {
5427 if(cltype22 >= var_psignaturenode7->type->table_size) {
5428 var21 = 0;
5429 } else {
5430 var21 = var_psignaturenode7->type->type_table[cltype22] == idtype23;
5431 }
5432 }
5433 if (!var21) {
5434 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21951);
5435 exit(1);
5436 }
5437 var_tstringnode8 = var_nodearraylist8;
5438 /* <var_tstringnode8:nullable Object> isa nullable TString */
5439 cltype25 = type_nullable_parser_nodes__TString.color;
5440 idtype26 = type_nullable_parser_nodes__TString.id;
5441 if(var_tstringnode8 == NULL) {
5442 var24 = 1;
5443 } else {
5444 if(cltype25 >= var_tstringnode8->type->table_size) {
5445 var24 = 0;
5446 } else {
5447 var24 = var_tstringnode8->type->type_table[cltype25] == idtype26;
5448 }
5449 }
5450 if (!var24) {
5451 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21953);
5452 exit(1);
5453 }
5454 var_pexterncallsnode9 = var_nodearraylist9;
5455 /* <var_pexterncallsnode9:nullable Object> isa nullable AExternCalls */
5456 cltype28 = type_nullable_parser_nodes__AExternCalls.color;
5457 idtype29 = type_nullable_parser_nodes__AExternCalls.id;
5458 if(var_pexterncallsnode9 == NULL) {
5459 var27 = 1;
5460 } else {
5461 if(cltype28 >= var_pexterncallsnode9->type->table_size) {
5462 var27 = 0;
5463 } else {
5464 var27 = var_pexterncallsnode9->type->type_table[cltype28] == idtype29;
5465 }
5466 }
5467 if (!var27) {
5468 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21955);
5469 exit(1);
5470 }
5471 var_pexterncodeblocknode10 = var_nodearraylist10;
5472 /* <var_pexterncodeblocknode10:nullable Object> isa nullable AExternCodeBlock */
5473 cltype31 = type_nullable_parser_nodes__AExternCodeBlock.color;
5474 idtype32 = type_nullable_parser_nodes__AExternCodeBlock.id;
5475 if(var_pexterncodeblocknode10 == NULL) {
5476 var30 = 1;
5477 } else {
5478 if(cltype31 >= var_pexterncodeblocknode10->type->table_size) {
5479 var30 = 0;
5480 } else {
5481 var30 = var_pexterncodeblocknode10->type->type_table[cltype31] == idtype32;
5482 }
5483 }
5484 if (!var30) {
5485 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21957);
5486 exit(1);
5487 }
5488 var33 = NEW_parser_nodes__AExternInitPropdef(&type_parser_nodes__AExternInitPropdef);
5489 var34 = NULL;
5490 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var33->class->vft[COLOR_parser_prod__AExternInitPropdef__init_aexterninitpropdef]))(var33, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwnewnode5, var34, var_psignaturenode7, var_tstringnode8, var_pexterncallsnode9, var_pexterncodeblocknode10) /* init_aexterninitpropdef on <var33:AExternInitPropdef>*/;
5491 CHECK_NEW_parser_nodes__AExternInitPropdef(var33);
5492 var_ppropdefnode1 = var33;
5493 var_node_list = var_ppropdefnode1;
5494 var35 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction494> */
5495 var36 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var35) /* go_to on <var_p:Parser>*/;
5496 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var36, var_node_list) /* push on <var_p:Parser>*/;
5497 RET_LABEL:;
5498 }
5499 /* method parser#ReduceAction494#action for (self: Object, Parser) */
5500 void VIRTUAL_parser__ReduceAction494__action(val* self, val* p0) {
5501 parser__ReduceAction494__action(self, p0);
5502 RET_LABEL:;
5503 }
5504 /* method parser#ReduceAction495#action for (self: ReduceAction495, Parser) */
5505 void parser__ReduceAction495__action(val* self, val* p0) {
5506 val* var_p /* var p: Parser */;
5507 val* var /* : null */;
5508 val* var_node_list /* var node_list: nullable Object */;
5509 val* var1 /* : nullable Object */;
5510 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
5511 val* var2 /* : nullable Object */;
5512 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
5513 val* var3 /* : nullable Object */;
5514 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
5515 val* var4 /* : nullable Object */;
5516 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
5517 val* var5 /* : nullable Object */;
5518 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
5519 val* var6 /* : nullable Object */;
5520 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
5521 val* var7 /* : nullable Object */;
5522 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5523 val* var8 /* : nullable Object */;
5524 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5525 val* var9 /* : nullable Object */;
5526 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5527 val* var10 /* : nullable Object */;
5528 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5529 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
5530 short int var11 /* : Bool */;
5531 int cltype;
5532 int idtype;
5533 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
5534 short int var12 /* : Bool */;
5535 int cltype13;
5536 int idtype14;
5537 val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */;
5538 short int var15 /* : Bool */;
5539 int cltype16;
5540 int idtype17;
5541 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
5542 short int var18 /* : Bool */;
5543 int cltype19;
5544 int idtype20;
5545 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
5546 short int var21 /* : Bool */;
5547 int cltype22;
5548 int idtype23;
5549 val* var_tstringnode8 /* var tstringnode8: nullable Object */;
5550 short int var24 /* : Bool */;
5551 int cltype25;
5552 int idtype26;
5553 val* var_pexterncallsnode9 /* var pexterncallsnode9: nullable Object */;
5554 short int var27 /* : Bool */;
5555 int cltype28;
5556 int idtype29;
5557 val* var_pexterncodeblocknode10 /* var pexterncodeblocknode10: nullable Object */;
5558 short int var30 /* : Bool */;
5559 int cltype31;
5560 int idtype32;
5561 val* var33 /* : AExternInitPropdef */;
5562 val* var34 /* : null */;
5563 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternInitPropdef */;
5564 long var35 /* : Int */;
5565 long var36 /* : Int */;
5566 var_p = p0;
5567 var = NULL;
5568 var_node_list = var;
5569 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5570 var_nodearraylist10 = var1;
5571 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5572 var_nodearraylist9 = var2;
5573 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5574 var_nodearraylist8 = var3;
5575 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5576 var_nodearraylist7 = var4;
5577 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5578 var_nodearraylist6 = var5;
5579 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5580 var_nodearraylist5 = var6;
5581 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5582 var_nodearraylist4 = var7;
5583 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5584 var_nodearraylist3 = var8;
5585 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5586 var_nodearraylist2 = var9;
5587 var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5588 var_nodearraylist1 = var10;
5589 var_pdocnode2 = var_nodearraylist1;
5590 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
5591 cltype = type_nullable_parser_nodes__ADoc.color;
5592 idtype = type_nullable_parser_nodes__ADoc.id;
5593 if(var_pdocnode2 == NULL) {
5594 var11 = 1;
5595 } else {
5596 if(cltype >= var_pdocnode2->type->table_size) {
5597 var11 = 0;
5598 } else {
5599 var11 = var_pdocnode2->type->type_table[cltype] == idtype;
5600 }
5601 }
5602 if (!var11) {
5603 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21989);
5604 exit(1);
5605 }
5606 var_pvisibilitynode4 = var_nodearraylist2;
5607 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
5608 cltype13 = type_nullable_parser_nodes__AVisibility.color;
5609 idtype14 = type_nullable_parser_nodes__AVisibility.id;
5610 if(var_pvisibilitynode4 == NULL) {
5611 var12 = 1;
5612 } else {
5613 if(cltype13 >= var_pvisibilitynode4->type->table_size) {
5614 var12 = 0;
5615 } else {
5616 var12 = var_pvisibilitynode4->type->type_table[cltype13] == idtype14;
5617 }
5618 }
5619 if (!var12) {
5620 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21991);
5621 exit(1);
5622 }
5623 var_tkwnewnode5 = var_nodearraylist3;
5624 /* <var_tkwnewnode5:nullable Object> isa nullable TKwnew */
5625 cltype16 = type_nullable_parser_nodes__TKwnew.color;
5626 idtype17 = type_nullable_parser_nodes__TKwnew.id;
5627 if(var_tkwnewnode5 == NULL) {
5628 var15 = 1;
5629 } else {
5630 if(cltype16 >= var_tkwnewnode5->type->table_size) {
5631 var15 = 0;
5632 } else {
5633 var15 = var_tkwnewnode5->type->type_table[cltype16] == idtype17;
5634 }
5635 }
5636 if (!var15) {
5637 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21993);
5638 exit(1);
5639 }
5640 var_pmethidnode6 = var_nodearraylist4;
5641 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
5642 cltype19 = type_nullable_parser_nodes__AMethid.color;
5643 idtype20 = type_nullable_parser_nodes__AMethid.id;
5644 if(var_pmethidnode6 == NULL) {
5645 var18 = 1;
5646 } else {
5647 if(cltype19 >= var_pmethidnode6->type->table_size) {
5648 var18 = 0;
5649 } else {
5650 var18 = var_pmethidnode6->type->type_table[cltype19] == idtype20;
5651 }
5652 }
5653 if (!var18) {
5654 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21995);
5655 exit(1);
5656 }
5657 var_psignaturenode7 = var_nodearraylist5;
5658 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
5659 cltype22 = type_nullable_parser_nodes__ASignature.color;
5660 idtype23 = type_nullable_parser_nodes__ASignature.id;
5661 if(var_psignaturenode7 == NULL) {
5662 var21 = 1;
5663 } else {
5664 if(cltype22 >= var_psignaturenode7->type->table_size) {
5665 var21 = 0;
5666 } else {
5667 var21 = var_psignaturenode7->type->type_table[cltype22] == idtype23;
5668 }
5669 }
5670 if (!var21) {
5671 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21997);
5672 exit(1);
5673 }
5674 var_tstringnode8 = var_nodearraylist8;
5675 /* <var_tstringnode8:nullable Object> isa nullable TString */
5676 cltype25 = type_nullable_parser_nodes__TString.color;
5677 idtype26 = type_nullable_parser_nodes__TString.id;
5678 if(var_tstringnode8 == NULL) {
5679 var24 = 1;
5680 } else {
5681 if(cltype25 >= var_tstringnode8->type->table_size) {
5682 var24 = 0;
5683 } else {
5684 var24 = var_tstringnode8->type->type_table[cltype25] == idtype26;
5685 }
5686 }
5687 if (!var24) {
5688 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 21999);
5689 exit(1);
5690 }
5691 var_pexterncallsnode9 = var_nodearraylist9;
5692 /* <var_pexterncallsnode9:nullable Object> isa nullable AExternCalls */
5693 cltype28 = type_nullable_parser_nodes__AExternCalls.color;
5694 idtype29 = type_nullable_parser_nodes__AExternCalls.id;
5695 if(var_pexterncallsnode9 == NULL) {
5696 var27 = 1;
5697 } else {
5698 if(cltype28 >= var_pexterncallsnode9->type->table_size) {
5699 var27 = 0;
5700 } else {
5701 var27 = var_pexterncallsnode9->type->type_table[cltype28] == idtype29;
5702 }
5703 }
5704 if (!var27) {
5705 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22001);
5706 exit(1);
5707 }
5708 var_pexterncodeblocknode10 = var_nodearraylist10;
5709 /* <var_pexterncodeblocknode10:nullable Object> isa nullable AExternCodeBlock */
5710 cltype31 = type_nullable_parser_nodes__AExternCodeBlock.color;
5711 idtype32 = type_nullable_parser_nodes__AExternCodeBlock.id;
5712 if(var_pexterncodeblocknode10 == NULL) {
5713 var30 = 1;
5714 } else {
5715 if(cltype31 >= var_pexterncodeblocknode10->type->table_size) {
5716 var30 = 0;
5717 } else {
5718 var30 = var_pexterncodeblocknode10->type->type_table[cltype31] == idtype32;
5719 }
5720 }
5721 if (!var30) {
5722 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22003);
5723 exit(1);
5724 }
5725 var33 = NEW_parser_nodes__AExternInitPropdef(&type_parser_nodes__AExternInitPropdef);
5726 var34 = NULL;
5727 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var33->class->vft[COLOR_parser_prod__AExternInitPropdef__init_aexterninitpropdef]))(var33, var_pdocnode2, var34, var_pvisibilitynode4, var_tkwnewnode5, var_pmethidnode6, var_psignaturenode7, var_tstringnode8, var_pexterncallsnode9, var_pexterncodeblocknode10) /* init_aexterninitpropdef on <var33:AExternInitPropdef>*/;
5728 CHECK_NEW_parser_nodes__AExternInitPropdef(var33);
5729 var_ppropdefnode1 = var33;
5730 var_node_list = var_ppropdefnode1;
5731 var35 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction495> */
5732 var36 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var35) /* go_to on <var_p:Parser>*/;
5733 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var36, var_node_list) /* push on <var_p:Parser>*/;
5734 RET_LABEL:;
5735 }
5736 /* method parser#ReduceAction495#action for (self: Object, Parser) */
5737 void VIRTUAL_parser__ReduceAction495__action(val* self, val* p0) {
5738 parser__ReduceAction495__action(self, p0);
5739 RET_LABEL:;
5740 }
5741 /* method parser#ReduceAction496#action for (self: ReduceAction496, Parser) */
5742 void parser__ReduceAction496__action(val* self, val* p0) {
5743 val* var_p /* var p: Parser */;
5744 val* var /* : null */;
5745 val* var_node_list /* var node_list: nullable Object */;
5746 val* var1 /* : nullable Object */;
5747 val* var_nodearraylist11 /* var nodearraylist11: nullable Object */;
5748 val* var2 /* : nullable Object */;
5749 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
5750 val* var3 /* : nullable Object */;
5751 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
5752 val* var4 /* : nullable Object */;
5753 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
5754 val* var5 /* : nullable Object */;
5755 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
5756 val* var6 /* : nullable Object */;
5757 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
5758 val* var7 /* : nullable Object */;
5759 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
5760 val* var8 /* : nullable Object */;
5761 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5762 val* var9 /* : nullable Object */;
5763 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5764 val* var10 /* : nullable Object */;
5765 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5766 val* var11 /* : nullable Object */;
5767 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5768 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
5769 short int var12 /* : Bool */;
5770 int cltype;
5771 int idtype;
5772 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
5773 short int var13 /* : Bool */;
5774 int cltype14;
5775 int idtype15;
5776 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
5777 short int var16 /* : Bool */;
5778 int cltype17;
5779 int idtype18;
5780 val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */;
5781 short int var19 /* : Bool */;
5782 int cltype20;
5783 int idtype21;
5784 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
5785 short int var22 /* : Bool */;
5786 int cltype23;
5787 int idtype24;
5788 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
5789 short int var25 /* : Bool */;
5790 int cltype26;
5791 int idtype27;
5792 val* var_tstringnode8 /* var tstringnode8: nullable Object */;
5793 short int var28 /* : Bool */;
5794 int cltype29;
5795 int idtype30;
5796 val* var_pexterncallsnode9 /* var pexterncallsnode9: nullable Object */;
5797 short int var31 /* : Bool */;
5798 int cltype32;
5799 int idtype33;
5800 val* var_pexterncodeblocknode10 /* var pexterncodeblocknode10: nullable Object */;
5801 short int var34 /* : Bool */;
5802 int cltype35;
5803 int idtype36;
5804 val* var37 /* : AExternInitPropdef */;
5805 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternInitPropdef */;
5806 long var38 /* : Int */;
5807 long var39 /* : Int */;
5808 var_p = p0;
5809 var = NULL;
5810 var_node_list = var;
5811 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5812 var_nodearraylist11 = var1;
5813 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5814 var_nodearraylist10 = var2;
5815 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5816 var_nodearraylist9 = var3;
5817 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5818 var_nodearraylist8 = var4;
5819 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5820 var_nodearraylist7 = var5;
5821 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5822 var_nodearraylist6 = var6;
5823 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5824 var_nodearraylist5 = var7;
5825 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5826 var_nodearraylist4 = var8;
5827 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5828 var_nodearraylist3 = var9;
5829 var10 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5830 var_nodearraylist2 = var10;
5831 var11 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
5832 var_nodearraylist1 = var11;
5833 var_pdocnode2 = var_nodearraylist1;
5834 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
5835 cltype = type_nullable_parser_nodes__ADoc.color;
5836 idtype = type_nullable_parser_nodes__ADoc.id;
5837 if(var_pdocnode2 == NULL) {
5838 var12 = 1;
5839 } else {
5840 if(cltype >= var_pdocnode2->type->table_size) {
5841 var12 = 0;
5842 } else {
5843 var12 = var_pdocnode2->type->type_table[cltype] == idtype;
5844 }
5845 }
5846 if (!var12) {
5847 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22036);
5848 exit(1);
5849 }
5850 var_tkwredefnode3 = var_nodearraylist2;
5851 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
5852 cltype14 = type_nullable_parser_nodes__TKwredef.color;
5853 idtype15 = type_nullable_parser_nodes__TKwredef.id;
5854 if(var_tkwredefnode3 == NULL) {
5855 var13 = 1;
5856 } else {
5857 if(cltype14 >= var_tkwredefnode3->type->table_size) {
5858 var13 = 0;
5859 } else {
5860 var13 = var_tkwredefnode3->type->type_table[cltype14] == idtype15;
5861 }
5862 }
5863 if (!var13) {
5864 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22038);
5865 exit(1);
5866 }
5867 var_pvisibilitynode4 = var_nodearraylist3;
5868 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
5869 cltype17 = type_nullable_parser_nodes__AVisibility.color;
5870 idtype18 = type_nullable_parser_nodes__AVisibility.id;
5871 if(var_pvisibilitynode4 == NULL) {
5872 var16 = 1;
5873 } else {
5874 if(cltype17 >= var_pvisibilitynode4->type->table_size) {
5875 var16 = 0;
5876 } else {
5877 var16 = var_pvisibilitynode4->type->type_table[cltype17] == idtype18;
5878 }
5879 }
5880 if (!var16) {
5881 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22040);
5882 exit(1);
5883 }
5884 var_tkwnewnode5 = var_nodearraylist4;
5885 /* <var_tkwnewnode5:nullable Object> isa nullable TKwnew */
5886 cltype20 = type_nullable_parser_nodes__TKwnew.color;
5887 idtype21 = type_nullable_parser_nodes__TKwnew.id;
5888 if(var_tkwnewnode5 == NULL) {
5889 var19 = 1;
5890 } else {
5891 if(cltype20 >= var_tkwnewnode5->type->table_size) {
5892 var19 = 0;
5893 } else {
5894 var19 = var_tkwnewnode5->type->type_table[cltype20] == idtype21;
5895 }
5896 }
5897 if (!var19) {
5898 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22042);
5899 exit(1);
5900 }
5901 var_pmethidnode6 = var_nodearraylist5;
5902 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
5903 cltype23 = type_nullable_parser_nodes__AMethid.color;
5904 idtype24 = type_nullable_parser_nodes__AMethid.id;
5905 if(var_pmethidnode6 == NULL) {
5906 var22 = 1;
5907 } else {
5908 if(cltype23 >= var_pmethidnode6->type->table_size) {
5909 var22 = 0;
5910 } else {
5911 var22 = var_pmethidnode6->type->type_table[cltype23] == idtype24;
5912 }
5913 }
5914 if (!var22) {
5915 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22044);
5916 exit(1);
5917 }
5918 var_psignaturenode7 = var_nodearraylist6;
5919 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
5920 cltype26 = type_nullable_parser_nodes__ASignature.color;
5921 idtype27 = type_nullable_parser_nodes__ASignature.id;
5922 if(var_psignaturenode7 == NULL) {
5923 var25 = 1;
5924 } else {
5925 if(cltype26 >= var_psignaturenode7->type->table_size) {
5926 var25 = 0;
5927 } else {
5928 var25 = var_psignaturenode7->type->type_table[cltype26] == idtype27;
5929 }
5930 }
5931 if (!var25) {
5932 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22046);
5933 exit(1);
5934 }
5935 var_tstringnode8 = var_nodearraylist9;
5936 /* <var_tstringnode8:nullable Object> isa nullable TString */
5937 cltype29 = type_nullable_parser_nodes__TString.color;
5938 idtype30 = type_nullable_parser_nodes__TString.id;
5939 if(var_tstringnode8 == NULL) {
5940 var28 = 1;
5941 } else {
5942 if(cltype29 >= var_tstringnode8->type->table_size) {
5943 var28 = 0;
5944 } else {
5945 var28 = var_tstringnode8->type->type_table[cltype29] == idtype30;
5946 }
5947 }
5948 if (!var28) {
5949 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22048);
5950 exit(1);
5951 }
5952 var_pexterncallsnode9 = var_nodearraylist10;
5953 /* <var_pexterncallsnode9:nullable Object> isa nullable AExternCalls */
5954 cltype32 = type_nullable_parser_nodes__AExternCalls.color;
5955 idtype33 = type_nullable_parser_nodes__AExternCalls.id;
5956 if(var_pexterncallsnode9 == NULL) {
5957 var31 = 1;
5958 } else {
5959 if(cltype32 >= var_pexterncallsnode9->type->table_size) {
5960 var31 = 0;
5961 } else {
5962 var31 = var_pexterncallsnode9->type->type_table[cltype32] == idtype33;
5963 }
5964 }
5965 if (!var31) {
5966 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22050);
5967 exit(1);
5968 }
5969 var_pexterncodeblocknode10 = var_nodearraylist11;
5970 /* <var_pexterncodeblocknode10:nullable Object> isa nullable AExternCodeBlock */
5971 cltype35 = type_nullable_parser_nodes__AExternCodeBlock.color;
5972 idtype36 = type_nullable_parser_nodes__AExternCodeBlock.id;
5973 if(var_pexterncodeblocknode10 == NULL) {
5974 var34 = 1;
5975 } else {
5976 if(cltype35 >= var_pexterncodeblocknode10->type->table_size) {
5977 var34 = 0;
5978 } else {
5979 var34 = var_pexterncodeblocknode10->type->type_table[cltype35] == idtype36;
5980 }
5981 }
5982 if (!var34) {
5983 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22052);
5984 exit(1);
5985 }
5986 var37 = NEW_parser_nodes__AExternInitPropdef(&type_parser_nodes__AExternInitPropdef);
5987 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var37->class->vft[COLOR_parser_prod__AExternInitPropdef__init_aexterninitpropdef]))(var37, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwnewnode5, var_pmethidnode6, var_psignaturenode7, var_tstringnode8, var_pexterncallsnode9, var_pexterncodeblocknode10) /* init_aexterninitpropdef on <var37:AExternInitPropdef>*/;
5988 CHECK_NEW_parser_nodes__AExternInitPropdef(var37);
5989 var_ppropdefnode1 = var37;
5990 var_node_list = var_ppropdefnode1;
5991 var38 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction496> */
5992 var39 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var38) /* go_to on <var_p:Parser>*/;
5993 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var39, var_node_list) /* push on <var_p:Parser>*/;
5994 RET_LABEL:;
5995 }
5996 /* method parser#ReduceAction496#action for (self: Object, Parser) */
5997 void VIRTUAL_parser__ReduceAction496__action(val* self, val* p0) {
5998 parser__ReduceAction496__action(self, p0);
5999 RET_LABEL:;
6000 }
6001 /* method parser#ReduceAction497#action for (self: ReduceAction497, Parser) */
6002 void parser__ReduceAction497__action(val* self, val* p0) {
6003 val* var_p /* var p: Parser */;
6004 val* var /* : null */;
6005 val* var_node_list /* var node_list: nullable Object */;
6006 val* var1 /* : nullable Object */;
6007 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
6008 val* var2 /* : nullable Object */;
6009 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6010 val* var3 /* : nullable Object */;
6011 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6012 val* var4 /* : nullable Object */;
6013 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6014 val* var5 /* : nullable Object */;
6015 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6016 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
6017 short int var6 /* : Bool */;
6018 int cltype;
6019 int idtype;
6020 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
6021 short int var7 /* : Bool */;
6022 int cltype8;
6023 int idtype9;
6024 val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */;
6025 short int var10 /* : Bool */;
6026 int cltype11;
6027 int idtype12;
6028 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
6029 short int var13 /* : Bool */;
6030 int cltype14;
6031 int idtype15;
6032 val* var_pexterncodeblocknode10 /* var pexterncodeblocknode10: nullable Object */;
6033 short int var16 /* : Bool */;
6034 int cltype17;
6035 int idtype18;
6036 val* var19 /* : AExternInitPropdef */;
6037 val* var20 /* : null */;
6038 val* var21 /* : null */;
6039 val* var22 /* : null */;
6040 val* var23 /* : null */;
6041 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternInitPropdef */;
6042 long var24 /* : Int */;
6043 long var25 /* : Int */;
6044 var_p = p0;
6045 var = NULL;
6046 var_node_list = var;
6047 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6048 var_nodearraylist5 = var1;
6049 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6050 var_nodearraylist4 = var2;
6051 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6052 var_nodearraylist3 = var3;
6053 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6054 var_nodearraylist2 = var4;
6055 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6056 var_nodearraylist1 = var5;
6057 var_pdocnode2 = var_nodearraylist1;
6058 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
6059 cltype = type_nullable_parser_nodes__ADoc.color;
6060 idtype = type_nullable_parser_nodes__ADoc.id;
6061 if(var_pdocnode2 == NULL) {
6062 var6 = 1;
6063 } else {
6064 if(cltype >= var_pdocnode2->type->table_size) {
6065 var6 = 0;
6066 } else {
6067 var6 = var_pdocnode2->type->type_table[cltype] == idtype;
6068 }
6069 }
6070 if (!var6) {
6071 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22079);
6072 exit(1);
6073 }
6074 var_pvisibilitynode4 = var_nodearraylist2;
6075 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
6076 cltype8 = type_nullable_parser_nodes__AVisibility.color;
6077 idtype9 = type_nullable_parser_nodes__AVisibility.id;
6078 if(var_pvisibilitynode4 == NULL) {
6079 var7 = 1;
6080 } else {
6081 if(cltype8 >= var_pvisibilitynode4->type->table_size) {
6082 var7 = 0;
6083 } else {
6084 var7 = var_pvisibilitynode4->type->type_table[cltype8] == idtype9;
6085 }
6086 }
6087 if (!var7) {
6088 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22081);
6089 exit(1);
6090 }
6091 var_tkwnewnode5 = var_nodearraylist3;
6092 /* <var_tkwnewnode5:nullable Object> isa nullable TKwnew */
6093 cltype11 = type_nullable_parser_nodes__TKwnew.color;
6094 idtype12 = type_nullable_parser_nodes__TKwnew.id;
6095 if(var_tkwnewnode5 == NULL) {
6096 var10 = 1;
6097 } else {
6098 if(cltype11 >= var_tkwnewnode5->type->table_size) {
6099 var10 = 0;
6100 } else {
6101 var10 = var_tkwnewnode5->type->type_table[cltype11] == idtype12;
6102 }
6103 }
6104 if (!var10) {
6105 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22083);
6106 exit(1);
6107 }
6108 var_psignaturenode7 = var_nodearraylist4;
6109 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
6110 cltype14 = type_nullable_parser_nodes__ASignature.color;
6111 idtype15 = type_nullable_parser_nodes__ASignature.id;
6112 if(var_psignaturenode7 == NULL) {
6113 var13 = 1;
6114 } else {
6115 if(cltype14 >= var_psignaturenode7->type->table_size) {
6116 var13 = 0;
6117 } else {
6118 var13 = var_psignaturenode7->type->type_table[cltype14] == idtype15;
6119 }
6120 }
6121 if (!var13) {
6122 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22085);
6123 exit(1);
6124 }
6125 var_pexterncodeblocknode10 = var_nodearraylist5;
6126 /* <var_pexterncodeblocknode10:nullable Object> isa nullable AExternCodeBlock */
6127 cltype17 = type_nullable_parser_nodes__AExternCodeBlock.color;
6128 idtype18 = type_nullable_parser_nodes__AExternCodeBlock.id;
6129 if(var_pexterncodeblocknode10 == NULL) {
6130 var16 = 1;
6131 } else {
6132 if(cltype17 >= var_pexterncodeblocknode10->type->table_size) {
6133 var16 = 0;
6134 } else {
6135 var16 = var_pexterncodeblocknode10->type->type_table[cltype17] == idtype18;
6136 }
6137 }
6138 if (!var16) {
6139 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22087);
6140 exit(1);
6141 }
6142 var19 = NEW_parser_nodes__AExternInitPropdef(&type_parser_nodes__AExternInitPropdef);
6143 var20 = NULL;
6144 var21 = NULL;
6145 var22 = NULL;
6146 var23 = NULL;
6147 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var19->class->vft[COLOR_parser_prod__AExternInitPropdef__init_aexterninitpropdef]))(var19, var_pdocnode2, var20, var_pvisibilitynode4, var_tkwnewnode5, var21, var_psignaturenode7, var22, var23, var_pexterncodeblocknode10) /* init_aexterninitpropdef on <var19:AExternInitPropdef>*/;
6148 CHECK_NEW_parser_nodes__AExternInitPropdef(var19);
6149 var_ppropdefnode1 = var19;
6150 var_node_list = var_ppropdefnode1;
6151 var24 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction497> */
6152 var25 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var24) /* go_to on <var_p:Parser>*/;
6153 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var25, var_node_list) /* push on <var_p:Parser>*/;
6154 RET_LABEL:;
6155 }
6156 /* method parser#ReduceAction497#action for (self: Object, Parser) */
6157 void VIRTUAL_parser__ReduceAction497__action(val* self, val* p0) {
6158 parser__ReduceAction497__action(self, p0);
6159 RET_LABEL:;
6160 }
6161 /* method parser#ReduceAction498#action for (self: ReduceAction498, Parser) */
6162 void parser__ReduceAction498__action(val* self, val* p0) {
6163 val* var_p /* var p: Parser */;
6164 val* var /* : null */;
6165 val* var_node_list /* var node_list: nullable Object */;
6166 val* var1 /* : nullable Object */;
6167 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
6168 val* var2 /* : nullable Object */;
6169 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
6170 val* var3 /* : nullable Object */;
6171 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6172 val* var4 /* : nullable Object */;
6173 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6174 val* var5 /* : nullable Object */;
6175 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6176 val* var6 /* : nullable Object */;
6177 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6178 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
6179 short int var7 /* : Bool */;
6180 int cltype;
6181 int idtype;
6182 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
6183 short int var8 /* : Bool */;
6184 int cltype9;
6185 int idtype10;
6186 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
6187 short int var11 /* : Bool */;
6188 int cltype12;
6189 int idtype13;
6190 val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */;
6191 short int var14 /* : Bool */;
6192 int cltype15;
6193 int idtype16;
6194 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
6195 short int var17 /* : Bool */;
6196 int cltype18;
6197 int idtype19;
6198 val* var_pexterncodeblocknode10 /* var pexterncodeblocknode10: nullable Object */;
6199 short int var20 /* : Bool */;
6200 int cltype21;
6201 int idtype22;
6202 val* var23 /* : AExternInitPropdef */;
6203 val* var24 /* : null */;
6204 val* var25 /* : null */;
6205 val* var26 /* : null */;
6206 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternInitPropdef */;
6207 long var27 /* : Int */;
6208 long var28 /* : Int */;
6209 var_p = p0;
6210 var = NULL;
6211 var_node_list = var;
6212 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6213 var_nodearraylist6 = var1;
6214 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6215 var_nodearraylist5 = var2;
6216 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6217 var_nodearraylist4 = var3;
6218 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6219 var_nodearraylist3 = var4;
6220 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6221 var_nodearraylist2 = var5;
6222 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6223 var_nodearraylist1 = var6;
6224 var_pdocnode2 = var_nodearraylist1;
6225 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
6226 cltype = type_nullable_parser_nodes__ADoc.color;
6227 idtype = type_nullable_parser_nodes__ADoc.id;
6228 if(var_pdocnode2 == NULL) {
6229 var7 = 1;
6230 } else {
6231 if(cltype >= var_pdocnode2->type->table_size) {
6232 var7 = 0;
6233 } else {
6234 var7 = var_pdocnode2->type->type_table[cltype] == idtype;
6235 }
6236 }
6237 if (!var7) {
6238 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22115);
6239 exit(1);
6240 }
6241 var_tkwredefnode3 = var_nodearraylist2;
6242 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
6243 cltype9 = type_nullable_parser_nodes__TKwredef.color;
6244 idtype10 = type_nullable_parser_nodes__TKwredef.id;
6245 if(var_tkwredefnode3 == NULL) {
6246 var8 = 1;
6247 } else {
6248 if(cltype9 >= var_tkwredefnode3->type->table_size) {
6249 var8 = 0;
6250 } else {
6251 var8 = var_tkwredefnode3->type->type_table[cltype9] == idtype10;
6252 }
6253 }
6254 if (!var8) {
6255 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22117);
6256 exit(1);
6257 }
6258 var_pvisibilitynode4 = var_nodearraylist3;
6259 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
6260 cltype12 = type_nullable_parser_nodes__AVisibility.color;
6261 idtype13 = type_nullable_parser_nodes__AVisibility.id;
6262 if(var_pvisibilitynode4 == NULL) {
6263 var11 = 1;
6264 } else {
6265 if(cltype12 >= var_pvisibilitynode4->type->table_size) {
6266 var11 = 0;
6267 } else {
6268 var11 = var_pvisibilitynode4->type->type_table[cltype12] == idtype13;
6269 }
6270 }
6271 if (!var11) {
6272 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22119);
6273 exit(1);
6274 }
6275 var_tkwnewnode5 = var_nodearraylist4;
6276 /* <var_tkwnewnode5:nullable Object> isa nullable TKwnew */
6277 cltype15 = type_nullable_parser_nodes__TKwnew.color;
6278 idtype16 = type_nullable_parser_nodes__TKwnew.id;
6279 if(var_tkwnewnode5 == NULL) {
6280 var14 = 1;
6281 } else {
6282 if(cltype15 >= var_tkwnewnode5->type->table_size) {
6283 var14 = 0;
6284 } else {
6285 var14 = var_tkwnewnode5->type->type_table[cltype15] == idtype16;
6286 }
6287 }
6288 if (!var14) {
6289 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22121);
6290 exit(1);
6291 }
6292 var_psignaturenode7 = var_nodearraylist5;
6293 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
6294 cltype18 = type_nullable_parser_nodes__ASignature.color;
6295 idtype19 = type_nullable_parser_nodes__ASignature.id;
6296 if(var_psignaturenode7 == NULL) {
6297 var17 = 1;
6298 } else {
6299 if(cltype18 >= var_psignaturenode7->type->table_size) {
6300 var17 = 0;
6301 } else {
6302 var17 = var_psignaturenode7->type->type_table[cltype18] == idtype19;
6303 }
6304 }
6305 if (!var17) {
6306 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22123);
6307 exit(1);
6308 }
6309 var_pexterncodeblocknode10 = var_nodearraylist6;
6310 /* <var_pexterncodeblocknode10:nullable Object> isa nullable AExternCodeBlock */
6311 cltype21 = type_nullable_parser_nodes__AExternCodeBlock.color;
6312 idtype22 = type_nullable_parser_nodes__AExternCodeBlock.id;
6313 if(var_pexterncodeblocknode10 == NULL) {
6314 var20 = 1;
6315 } else {
6316 if(cltype21 >= var_pexterncodeblocknode10->type->table_size) {
6317 var20 = 0;
6318 } else {
6319 var20 = var_pexterncodeblocknode10->type->type_table[cltype21] == idtype22;
6320 }
6321 }
6322 if (!var20) {
6323 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22125);
6324 exit(1);
6325 }
6326 var23 = NEW_parser_nodes__AExternInitPropdef(&type_parser_nodes__AExternInitPropdef);
6327 var24 = NULL;
6328 var25 = NULL;
6329 var26 = NULL;
6330 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var23->class->vft[COLOR_parser_prod__AExternInitPropdef__init_aexterninitpropdef]))(var23, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwnewnode5, var24, var_psignaturenode7, var25, var26, var_pexterncodeblocknode10) /* init_aexterninitpropdef on <var23:AExternInitPropdef>*/;
6331 CHECK_NEW_parser_nodes__AExternInitPropdef(var23);
6332 var_ppropdefnode1 = var23;
6333 var_node_list = var_ppropdefnode1;
6334 var27 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction498> */
6335 var28 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var27) /* go_to on <var_p:Parser>*/;
6336 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var28, var_node_list) /* push on <var_p:Parser>*/;
6337 RET_LABEL:;
6338 }
6339 /* method parser#ReduceAction498#action for (self: Object, Parser) */
6340 void VIRTUAL_parser__ReduceAction498__action(val* self, val* p0) {
6341 parser__ReduceAction498__action(self, p0);
6342 RET_LABEL:;
6343 }
6344 /* method parser#ReduceAction499#action for (self: ReduceAction499, Parser) */
6345 void parser__ReduceAction499__action(val* self, val* p0) {
6346 val* var_p /* var p: Parser */;
6347 val* var /* : null */;
6348 val* var_node_list /* var node_list: nullable Object */;
6349 val* var1 /* : nullable Object */;
6350 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
6351 val* var2 /* : nullable Object */;
6352 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
6353 val* var3 /* : nullable Object */;
6354 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6355 val* var4 /* : nullable Object */;
6356 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6357 val* var5 /* : nullable Object */;
6358 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6359 val* var6 /* : nullable Object */;
6360 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6361 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
6362 short int var7 /* : Bool */;
6363 int cltype;
6364 int idtype;
6365 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
6366 short int var8 /* : Bool */;
6367 int cltype9;
6368 int idtype10;
6369 val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */;
6370 short int var11 /* : Bool */;
6371 int cltype12;
6372 int idtype13;
6373 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
6374 short int var14 /* : Bool */;
6375 int cltype15;
6376 int idtype16;
6377 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
6378 short int var17 /* : Bool */;
6379 int cltype18;
6380 int idtype19;
6381 val* var_pexterncodeblocknode10 /* var pexterncodeblocknode10: nullable Object */;
6382 short int var20 /* : Bool */;
6383 int cltype21;
6384 int idtype22;
6385 val* var23 /* : AExternInitPropdef */;
6386 val* var24 /* : null */;
6387 val* var25 /* : null */;
6388 val* var26 /* : null */;
6389 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternInitPropdef */;
6390 long var27 /* : Int */;
6391 long var28 /* : Int */;
6392 var_p = p0;
6393 var = NULL;
6394 var_node_list = var;
6395 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6396 var_nodearraylist6 = var1;
6397 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6398 var_nodearraylist5 = var2;
6399 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6400 var_nodearraylist4 = var3;
6401 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6402 var_nodearraylist3 = var4;
6403 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6404 var_nodearraylist2 = var5;
6405 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6406 var_nodearraylist1 = var6;
6407 var_pdocnode2 = var_nodearraylist1;
6408 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
6409 cltype = type_nullable_parser_nodes__ADoc.color;
6410 idtype = type_nullable_parser_nodes__ADoc.id;
6411 if(var_pdocnode2 == NULL) {
6412 var7 = 1;
6413 } else {
6414 if(cltype >= var_pdocnode2->type->table_size) {
6415 var7 = 0;
6416 } else {
6417 var7 = var_pdocnode2->type->type_table[cltype] == idtype;
6418 }
6419 }
6420 if (!var7) {
6421 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22153);
6422 exit(1);
6423 }
6424 var_pvisibilitynode4 = var_nodearraylist2;
6425 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
6426 cltype9 = type_nullable_parser_nodes__AVisibility.color;
6427 idtype10 = type_nullable_parser_nodes__AVisibility.id;
6428 if(var_pvisibilitynode4 == NULL) {
6429 var8 = 1;
6430 } else {
6431 if(cltype9 >= var_pvisibilitynode4->type->table_size) {
6432 var8 = 0;
6433 } else {
6434 var8 = var_pvisibilitynode4->type->type_table[cltype9] == idtype10;
6435 }
6436 }
6437 if (!var8) {
6438 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22155);
6439 exit(1);
6440 }
6441 var_tkwnewnode5 = var_nodearraylist3;
6442 /* <var_tkwnewnode5:nullable Object> isa nullable TKwnew */
6443 cltype12 = type_nullable_parser_nodes__TKwnew.color;
6444 idtype13 = type_nullable_parser_nodes__TKwnew.id;
6445 if(var_tkwnewnode5 == NULL) {
6446 var11 = 1;
6447 } else {
6448 if(cltype12 >= var_tkwnewnode5->type->table_size) {
6449 var11 = 0;
6450 } else {
6451 var11 = var_tkwnewnode5->type->type_table[cltype12] == idtype13;
6452 }
6453 }
6454 if (!var11) {
6455 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22157);
6456 exit(1);
6457 }
6458 var_pmethidnode6 = var_nodearraylist4;
6459 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
6460 cltype15 = type_nullable_parser_nodes__AMethid.color;
6461 idtype16 = type_nullable_parser_nodes__AMethid.id;
6462 if(var_pmethidnode6 == NULL) {
6463 var14 = 1;
6464 } else {
6465 if(cltype15 >= var_pmethidnode6->type->table_size) {
6466 var14 = 0;
6467 } else {
6468 var14 = var_pmethidnode6->type->type_table[cltype15] == idtype16;
6469 }
6470 }
6471 if (!var14) {
6472 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22159);
6473 exit(1);
6474 }
6475 var_psignaturenode7 = var_nodearraylist5;
6476 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
6477 cltype18 = type_nullable_parser_nodes__ASignature.color;
6478 idtype19 = type_nullable_parser_nodes__ASignature.id;
6479 if(var_psignaturenode7 == NULL) {
6480 var17 = 1;
6481 } else {
6482 if(cltype18 >= var_psignaturenode7->type->table_size) {
6483 var17 = 0;
6484 } else {
6485 var17 = var_psignaturenode7->type->type_table[cltype18] == idtype19;
6486 }
6487 }
6488 if (!var17) {
6489 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22161);
6490 exit(1);
6491 }
6492 var_pexterncodeblocknode10 = var_nodearraylist6;
6493 /* <var_pexterncodeblocknode10:nullable Object> isa nullable AExternCodeBlock */
6494 cltype21 = type_nullable_parser_nodes__AExternCodeBlock.color;
6495 idtype22 = type_nullable_parser_nodes__AExternCodeBlock.id;
6496 if(var_pexterncodeblocknode10 == NULL) {
6497 var20 = 1;
6498 } else {
6499 if(cltype21 >= var_pexterncodeblocknode10->type->table_size) {
6500 var20 = 0;
6501 } else {
6502 var20 = var_pexterncodeblocknode10->type->type_table[cltype21] == idtype22;
6503 }
6504 }
6505 if (!var20) {
6506 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22163);
6507 exit(1);
6508 }
6509 var23 = NEW_parser_nodes__AExternInitPropdef(&type_parser_nodes__AExternInitPropdef);
6510 var24 = NULL;
6511 var25 = NULL;
6512 var26 = NULL;
6513 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var23->class->vft[COLOR_parser_prod__AExternInitPropdef__init_aexterninitpropdef]))(var23, var_pdocnode2, var24, var_pvisibilitynode4, var_tkwnewnode5, var_pmethidnode6, var_psignaturenode7, var25, var26, var_pexterncodeblocknode10) /* init_aexterninitpropdef on <var23:AExternInitPropdef>*/;
6514 CHECK_NEW_parser_nodes__AExternInitPropdef(var23);
6515 var_ppropdefnode1 = var23;
6516 var_node_list = var_ppropdefnode1;
6517 var27 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction499> */
6518 var28 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var27) /* go_to on <var_p:Parser>*/;
6519 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var28, var_node_list) /* push on <var_p:Parser>*/;
6520 RET_LABEL:;
6521 }
6522 /* method parser#ReduceAction499#action for (self: Object, Parser) */
6523 void VIRTUAL_parser__ReduceAction499__action(val* self, val* p0) {
6524 parser__ReduceAction499__action(self, p0);
6525 RET_LABEL:;
6526 }
6527 /* method parser#ReduceAction500#action for (self: ReduceAction500, Parser) */
6528 void parser__ReduceAction500__action(val* self, val* p0) {
6529 val* var_p /* var p: Parser */;
6530 val* var /* : null */;
6531 val* var_node_list /* var node_list: nullable Object */;
6532 val* var1 /* : nullable Object */;
6533 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
6534 val* var2 /* : nullable Object */;
6535 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
6536 val* var3 /* : nullable Object */;
6537 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
6538 val* var4 /* : nullable Object */;
6539 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6540 val* var5 /* : nullable Object */;
6541 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6542 val* var6 /* : nullable Object */;
6543 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6544 val* var7 /* : nullable Object */;
6545 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6546 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
6547 short int var8 /* : Bool */;
6548 int cltype;
6549 int idtype;
6550 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
6551 short int var9 /* : Bool */;
6552 int cltype10;
6553 int idtype11;
6554 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
6555 short int var12 /* : Bool */;
6556 int cltype13;
6557 int idtype14;
6558 val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */;
6559 short int var15 /* : Bool */;
6560 int cltype16;
6561 int idtype17;
6562 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
6563 short int var18 /* : Bool */;
6564 int cltype19;
6565 int idtype20;
6566 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
6567 short int var21 /* : Bool */;
6568 int cltype22;
6569 int idtype23;
6570 val* var_pexterncodeblocknode10 /* var pexterncodeblocknode10: nullable Object */;
6571 short int var24 /* : Bool */;
6572 int cltype25;
6573 int idtype26;
6574 val* var27 /* : AExternInitPropdef */;
6575 val* var28 /* : null */;
6576 val* var29 /* : null */;
6577 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternInitPropdef */;
6578 long var30 /* : Int */;
6579 long var31 /* : Int */;
6580 var_p = p0;
6581 var = NULL;
6582 var_node_list = var;
6583 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6584 var_nodearraylist7 = var1;
6585 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6586 var_nodearraylist6 = var2;
6587 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6588 var_nodearraylist5 = var3;
6589 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6590 var_nodearraylist4 = var4;
6591 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6592 var_nodearraylist3 = var5;
6593 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6594 var_nodearraylist2 = var6;
6595 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6596 var_nodearraylist1 = var7;
6597 var_pdocnode2 = var_nodearraylist1;
6598 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
6599 cltype = type_nullable_parser_nodes__ADoc.color;
6600 idtype = type_nullable_parser_nodes__ADoc.id;
6601 if(var_pdocnode2 == NULL) {
6602 var8 = 1;
6603 } else {
6604 if(cltype >= var_pdocnode2->type->table_size) {
6605 var8 = 0;
6606 } else {
6607 var8 = var_pdocnode2->type->type_table[cltype] == idtype;
6608 }
6609 }
6610 if (!var8) {
6611 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22192);
6612 exit(1);
6613 }
6614 var_tkwredefnode3 = var_nodearraylist2;
6615 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
6616 cltype10 = type_nullable_parser_nodes__TKwredef.color;
6617 idtype11 = type_nullable_parser_nodes__TKwredef.id;
6618 if(var_tkwredefnode3 == NULL) {
6619 var9 = 1;
6620 } else {
6621 if(cltype10 >= var_tkwredefnode3->type->table_size) {
6622 var9 = 0;
6623 } else {
6624 var9 = var_tkwredefnode3->type->type_table[cltype10] == idtype11;
6625 }
6626 }
6627 if (!var9) {
6628 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22194);
6629 exit(1);
6630 }
6631 var_pvisibilitynode4 = var_nodearraylist3;
6632 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
6633 cltype13 = type_nullable_parser_nodes__AVisibility.color;
6634 idtype14 = type_nullable_parser_nodes__AVisibility.id;
6635 if(var_pvisibilitynode4 == NULL) {
6636 var12 = 1;
6637 } else {
6638 if(cltype13 >= var_pvisibilitynode4->type->table_size) {
6639 var12 = 0;
6640 } else {
6641 var12 = var_pvisibilitynode4->type->type_table[cltype13] == idtype14;
6642 }
6643 }
6644 if (!var12) {
6645 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22196);
6646 exit(1);
6647 }
6648 var_tkwnewnode5 = var_nodearraylist4;
6649 /* <var_tkwnewnode5:nullable Object> isa nullable TKwnew */
6650 cltype16 = type_nullable_parser_nodes__TKwnew.color;
6651 idtype17 = type_nullable_parser_nodes__TKwnew.id;
6652 if(var_tkwnewnode5 == NULL) {
6653 var15 = 1;
6654 } else {
6655 if(cltype16 >= var_tkwnewnode5->type->table_size) {
6656 var15 = 0;
6657 } else {
6658 var15 = var_tkwnewnode5->type->type_table[cltype16] == idtype17;
6659 }
6660 }
6661 if (!var15) {
6662 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22198);
6663 exit(1);
6664 }
6665 var_pmethidnode6 = var_nodearraylist5;
6666 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
6667 cltype19 = type_nullable_parser_nodes__AMethid.color;
6668 idtype20 = type_nullable_parser_nodes__AMethid.id;
6669 if(var_pmethidnode6 == NULL) {
6670 var18 = 1;
6671 } else {
6672 if(cltype19 >= var_pmethidnode6->type->table_size) {
6673 var18 = 0;
6674 } else {
6675 var18 = var_pmethidnode6->type->type_table[cltype19] == idtype20;
6676 }
6677 }
6678 if (!var18) {
6679 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22200);
6680 exit(1);
6681 }
6682 var_psignaturenode7 = var_nodearraylist6;
6683 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
6684 cltype22 = type_nullable_parser_nodes__ASignature.color;
6685 idtype23 = type_nullable_parser_nodes__ASignature.id;
6686 if(var_psignaturenode7 == NULL) {
6687 var21 = 1;
6688 } else {
6689 if(cltype22 >= var_psignaturenode7->type->table_size) {
6690 var21 = 0;
6691 } else {
6692 var21 = var_psignaturenode7->type->type_table[cltype22] == idtype23;
6693 }
6694 }
6695 if (!var21) {
6696 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22202);
6697 exit(1);
6698 }
6699 var_pexterncodeblocknode10 = var_nodearraylist7;
6700 /* <var_pexterncodeblocknode10:nullable Object> isa nullable AExternCodeBlock */
6701 cltype25 = type_nullable_parser_nodes__AExternCodeBlock.color;
6702 idtype26 = type_nullable_parser_nodes__AExternCodeBlock.id;
6703 if(var_pexterncodeblocknode10 == NULL) {
6704 var24 = 1;
6705 } else {
6706 if(cltype25 >= var_pexterncodeblocknode10->type->table_size) {
6707 var24 = 0;
6708 } else {
6709 var24 = var_pexterncodeblocknode10->type->type_table[cltype25] == idtype26;
6710 }
6711 }
6712 if (!var24) {
6713 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22204);
6714 exit(1);
6715 }
6716 var27 = NEW_parser_nodes__AExternInitPropdef(&type_parser_nodes__AExternInitPropdef);
6717 var28 = NULL;
6718 var29 = NULL;
6719 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var27->class->vft[COLOR_parser_prod__AExternInitPropdef__init_aexterninitpropdef]))(var27, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwnewnode5, var_pmethidnode6, var_psignaturenode7, var28, var29, var_pexterncodeblocknode10) /* init_aexterninitpropdef on <var27:AExternInitPropdef>*/;
6720 CHECK_NEW_parser_nodes__AExternInitPropdef(var27);
6721 var_ppropdefnode1 = var27;
6722 var_node_list = var_ppropdefnode1;
6723 var30 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction500> */
6724 var31 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var30) /* go_to on <var_p:Parser>*/;
6725 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var31, var_node_list) /* push on <var_p:Parser>*/;
6726 RET_LABEL:;
6727 }
6728 /* method parser#ReduceAction500#action for (self: Object, Parser) */
6729 void VIRTUAL_parser__ReduceAction500__action(val* self, val* p0) {
6730 parser__ReduceAction500__action(self, p0);
6731 RET_LABEL:;
6732 }
6733 /* method parser#ReduceAction501#action for (self: ReduceAction501, Parser) */
6734 void parser__ReduceAction501__action(val* self, val* p0) {
6735 val* var_p /* var p: Parser */;
6736 val* var /* : null */;
6737 val* var_node_list /* var node_list: nullable Object */;
6738 val* var1 /* : nullable Object */;
6739 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
6740 val* var2 /* : nullable Object */;
6741 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
6742 val* var3 /* : nullable Object */;
6743 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6744 val* var4 /* : nullable Object */;
6745 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6746 val* var5 /* : nullable Object */;
6747 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6748 val* var6 /* : nullable Object */;
6749 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6750 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
6751 short int var7 /* : Bool */;
6752 int cltype;
6753 int idtype;
6754 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
6755 short int var8 /* : Bool */;
6756 int cltype9;
6757 int idtype10;
6758 val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */;
6759 short int var11 /* : Bool */;
6760 int cltype12;
6761 int idtype13;
6762 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
6763 short int var14 /* : Bool */;
6764 int cltype15;
6765 int idtype16;
6766 val* var_tstringnode8 /* var tstringnode8: nullable Object */;
6767 short int var17 /* : Bool */;
6768 int cltype18;
6769 int idtype19;
6770 val* var_pexterncodeblocknode10 /* var pexterncodeblocknode10: nullable Object */;
6771 short int var20 /* : Bool */;
6772 int cltype21;
6773 int idtype22;
6774 val* var23 /* : AExternInitPropdef */;
6775 val* var24 /* : null */;
6776 val* var25 /* : null */;
6777 val* var26 /* : null */;
6778 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternInitPropdef */;
6779 long var27 /* : Int */;
6780 long var28 /* : Int */;
6781 var_p = p0;
6782 var = NULL;
6783 var_node_list = var;
6784 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6785 var_nodearraylist6 = var1;
6786 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6787 var_nodearraylist5 = var2;
6788 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6789 var_nodearraylist4 = var3;
6790 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6791 var_nodearraylist3 = var4;
6792 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6793 var_nodearraylist2 = var5;
6794 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6795 var_nodearraylist1 = var6;
6796 var_pdocnode2 = var_nodearraylist1;
6797 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
6798 cltype = type_nullable_parser_nodes__ADoc.color;
6799 idtype = type_nullable_parser_nodes__ADoc.id;
6800 if(var_pdocnode2 == NULL) {
6801 var7 = 1;
6802 } else {
6803 if(cltype >= var_pdocnode2->type->table_size) {
6804 var7 = 0;
6805 } else {
6806 var7 = var_pdocnode2->type->type_table[cltype] == idtype;
6807 }
6808 }
6809 if (!var7) {
6810 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22232);
6811 exit(1);
6812 }
6813 var_pvisibilitynode4 = var_nodearraylist2;
6814 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
6815 cltype9 = type_nullable_parser_nodes__AVisibility.color;
6816 idtype10 = type_nullable_parser_nodes__AVisibility.id;
6817 if(var_pvisibilitynode4 == NULL) {
6818 var8 = 1;
6819 } else {
6820 if(cltype9 >= var_pvisibilitynode4->type->table_size) {
6821 var8 = 0;
6822 } else {
6823 var8 = var_pvisibilitynode4->type->type_table[cltype9] == idtype10;
6824 }
6825 }
6826 if (!var8) {
6827 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22234);
6828 exit(1);
6829 }
6830 var_tkwnewnode5 = var_nodearraylist3;
6831 /* <var_tkwnewnode5:nullable Object> isa nullable TKwnew */
6832 cltype12 = type_nullable_parser_nodes__TKwnew.color;
6833 idtype13 = type_nullable_parser_nodes__TKwnew.id;
6834 if(var_tkwnewnode5 == NULL) {
6835 var11 = 1;
6836 } else {
6837 if(cltype12 >= var_tkwnewnode5->type->table_size) {
6838 var11 = 0;
6839 } else {
6840 var11 = var_tkwnewnode5->type->type_table[cltype12] == idtype13;
6841 }
6842 }
6843 if (!var11) {
6844 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22236);
6845 exit(1);
6846 }
6847 var_psignaturenode7 = var_nodearraylist4;
6848 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
6849 cltype15 = type_nullable_parser_nodes__ASignature.color;
6850 idtype16 = type_nullable_parser_nodes__ASignature.id;
6851 if(var_psignaturenode7 == NULL) {
6852 var14 = 1;
6853 } else {
6854 if(cltype15 >= var_psignaturenode7->type->table_size) {
6855 var14 = 0;
6856 } else {
6857 var14 = var_psignaturenode7->type->type_table[cltype15] == idtype16;
6858 }
6859 }
6860 if (!var14) {
6861 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22238);
6862 exit(1);
6863 }
6864 var_tstringnode8 = var_nodearraylist5;
6865 /* <var_tstringnode8:nullable Object> isa nullable TString */
6866 cltype18 = type_nullable_parser_nodes__TString.color;
6867 idtype19 = type_nullable_parser_nodes__TString.id;
6868 if(var_tstringnode8 == NULL) {
6869 var17 = 1;
6870 } else {
6871 if(cltype18 >= var_tstringnode8->type->table_size) {
6872 var17 = 0;
6873 } else {
6874 var17 = var_tstringnode8->type->type_table[cltype18] == idtype19;
6875 }
6876 }
6877 if (!var17) {
6878 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22240);
6879 exit(1);
6880 }
6881 var_pexterncodeblocknode10 = var_nodearraylist6;
6882 /* <var_pexterncodeblocknode10:nullable Object> isa nullable AExternCodeBlock */
6883 cltype21 = type_nullable_parser_nodes__AExternCodeBlock.color;
6884 idtype22 = type_nullable_parser_nodes__AExternCodeBlock.id;
6885 if(var_pexterncodeblocknode10 == NULL) {
6886 var20 = 1;
6887 } else {
6888 if(cltype21 >= var_pexterncodeblocknode10->type->table_size) {
6889 var20 = 0;
6890 } else {
6891 var20 = var_pexterncodeblocknode10->type->type_table[cltype21] == idtype22;
6892 }
6893 }
6894 if (!var20) {
6895 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22242);
6896 exit(1);
6897 }
6898 var23 = NEW_parser_nodes__AExternInitPropdef(&type_parser_nodes__AExternInitPropdef);
6899 var24 = NULL;
6900 var25 = NULL;
6901 var26 = NULL;
6902 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var23->class->vft[COLOR_parser_prod__AExternInitPropdef__init_aexterninitpropdef]))(var23, var_pdocnode2, var24, var_pvisibilitynode4, var_tkwnewnode5, var25, var_psignaturenode7, var_tstringnode8, var26, var_pexterncodeblocknode10) /* init_aexterninitpropdef on <var23:AExternInitPropdef>*/;
6903 CHECK_NEW_parser_nodes__AExternInitPropdef(var23);
6904 var_ppropdefnode1 = var23;
6905 var_node_list = var_ppropdefnode1;
6906 var27 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction501> */
6907 var28 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var27) /* go_to on <var_p:Parser>*/;
6908 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var28, var_node_list) /* push on <var_p:Parser>*/;
6909 RET_LABEL:;
6910 }
6911 /* method parser#ReduceAction501#action for (self: Object, Parser) */
6912 void VIRTUAL_parser__ReduceAction501__action(val* self, val* p0) {
6913 parser__ReduceAction501__action(self, p0);
6914 RET_LABEL:;
6915 }
6916 /* method parser#ReduceAction502#action for (self: ReduceAction502, Parser) */
6917 void parser__ReduceAction502__action(val* self, val* p0) {
6918 val* var_p /* var p: Parser */;
6919 val* var /* : null */;
6920 val* var_node_list /* var node_list: nullable Object */;
6921 val* var1 /* : nullable Object */;
6922 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
6923 val* var2 /* : nullable Object */;
6924 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
6925 val* var3 /* : nullable Object */;
6926 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
6927 val* var4 /* : nullable Object */;
6928 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6929 val* var5 /* : nullable Object */;
6930 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6931 val* var6 /* : nullable Object */;
6932 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6933 val* var7 /* : nullable Object */;
6934 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6935 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
6936 short int var8 /* : Bool */;
6937 int cltype;
6938 int idtype;
6939 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
6940 short int var9 /* : Bool */;
6941 int cltype10;
6942 int idtype11;
6943 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
6944 short int var12 /* : Bool */;
6945 int cltype13;
6946 int idtype14;
6947 val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */;
6948 short int var15 /* : Bool */;
6949 int cltype16;
6950 int idtype17;
6951 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
6952 short int var18 /* : Bool */;
6953 int cltype19;
6954 int idtype20;
6955 val* var_tstringnode8 /* var tstringnode8: nullable Object */;
6956 short int var21 /* : Bool */;
6957 int cltype22;
6958 int idtype23;
6959 val* var_pexterncodeblocknode10 /* var pexterncodeblocknode10: nullable Object */;
6960 short int var24 /* : Bool */;
6961 int cltype25;
6962 int idtype26;
6963 val* var27 /* : AExternInitPropdef */;
6964 val* var28 /* : null */;
6965 val* var29 /* : null */;
6966 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternInitPropdef */;
6967 long var30 /* : Int */;
6968 long var31 /* : Int */;
6969 var_p = p0;
6970 var = NULL;
6971 var_node_list = var;
6972 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6973 var_nodearraylist7 = var1;
6974 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6975 var_nodearraylist6 = var2;
6976 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6977 var_nodearraylist5 = var3;
6978 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6979 var_nodearraylist4 = var4;
6980 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6981 var_nodearraylist3 = var5;
6982 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6983 var_nodearraylist2 = var6;
6984 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
6985 var_nodearraylist1 = var7;
6986 var_pdocnode2 = var_nodearraylist1;
6987 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
6988 cltype = type_nullable_parser_nodes__ADoc.color;
6989 idtype = type_nullable_parser_nodes__ADoc.id;
6990 if(var_pdocnode2 == NULL) {
6991 var8 = 1;
6992 } else {
6993 if(cltype >= var_pdocnode2->type->table_size) {
6994 var8 = 0;
6995 } else {
6996 var8 = var_pdocnode2->type->type_table[cltype] == idtype;
6997 }
6998 }
6999 if (!var8) {
7000 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22271);
7001 exit(1);
7002 }
7003 var_tkwredefnode3 = var_nodearraylist2;
7004 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
7005 cltype10 = type_nullable_parser_nodes__TKwredef.color;
7006 idtype11 = type_nullable_parser_nodes__TKwredef.id;
7007 if(var_tkwredefnode3 == NULL) {
7008 var9 = 1;
7009 } else {
7010 if(cltype10 >= var_tkwredefnode3->type->table_size) {
7011 var9 = 0;
7012 } else {
7013 var9 = var_tkwredefnode3->type->type_table[cltype10] == idtype11;
7014 }
7015 }
7016 if (!var9) {
7017 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22273);
7018 exit(1);
7019 }
7020 var_pvisibilitynode4 = var_nodearraylist3;
7021 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
7022 cltype13 = type_nullable_parser_nodes__AVisibility.color;
7023 idtype14 = type_nullable_parser_nodes__AVisibility.id;
7024 if(var_pvisibilitynode4 == NULL) {
7025 var12 = 1;
7026 } else {
7027 if(cltype13 >= var_pvisibilitynode4->type->table_size) {
7028 var12 = 0;
7029 } else {
7030 var12 = var_pvisibilitynode4->type->type_table[cltype13] == idtype14;
7031 }
7032 }
7033 if (!var12) {
7034 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22275);
7035 exit(1);
7036 }
7037 var_tkwnewnode5 = var_nodearraylist4;
7038 /* <var_tkwnewnode5:nullable Object> isa nullable TKwnew */
7039 cltype16 = type_nullable_parser_nodes__TKwnew.color;
7040 idtype17 = type_nullable_parser_nodes__TKwnew.id;
7041 if(var_tkwnewnode5 == NULL) {
7042 var15 = 1;
7043 } else {
7044 if(cltype16 >= var_tkwnewnode5->type->table_size) {
7045 var15 = 0;
7046 } else {
7047 var15 = var_tkwnewnode5->type->type_table[cltype16] == idtype17;
7048 }
7049 }
7050 if (!var15) {
7051 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22277);
7052 exit(1);
7053 }
7054 var_psignaturenode7 = var_nodearraylist5;
7055 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
7056 cltype19 = type_nullable_parser_nodes__ASignature.color;
7057 idtype20 = type_nullable_parser_nodes__ASignature.id;
7058 if(var_psignaturenode7 == NULL) {
7059 var18 = 1;
7060 } else {
7061 if(cltype19 >= var_psignaturenode7->type->table_size) {
7062 var18 = 0;
7063 } else {
7064 var18 = var_psignaturenode7->type->type_table[cltype19] == idtype20;
7065 }
7066 }
7067 if (!var18) {
7068 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22279);
7069 exit(1);
7070 }
7071 var_tstringnode8 = var_nodearraylist6;
7072 /* <var_tstringnode8:nullable Object> isa nullable TString */
7073 cltype22 = type_nullable_parser_nodes__TString.color;
7074 idtype23 = type_nullable_parser_nodes__TString.id;
7075 if(var_tstringnode8 == NULL) {
7076 var21 = 1;
7077 } else {
7078 if(cltype22 >= var_tstringnode8->type->table_size) {
7079 var21 = 0;
7080 } else {
7081 var21 = var_tstringnode8->type->type_table[cltype22] == idtype23;
7082 }
7083 }
7084 if (!var21) {
7085 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22281);
7086 exit(1);
7087 }
7088 var_pexterncodeblocknode10 = var_nodearraylist7;
7089 /* <var_pexterncodeblocknode10:nullable Object> isa nullable AExternCodeBlock */
7090 cltype25 = type_nullable_parser_nodes__AExternCodeBlock.color;
7091 idtype26 = type_nullable_parser_nodes__AExternCodeBlock.id;
7092 if(var_pexterncodeblocknode10 == NULL) {
7093 var24 = 1;
7094 } else {
7095 if(cltype25 >= var_pexterncodeblocknode10->type->table_size) {
7096 var24 = 0;
7097 } else {
7098 var24 = var_pexterncodeblocknode10->type->type_table[cltype25] == idtype26;
7099 }
7100 }
7101 if (!var24) {
7102 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22283);
7103 exit(1);
7104 }
7105 var27 = NEW_parser_nodes__AExternInitPropdef(&type_parser_nodes__AExternInitPropdef);
7106 var28 = NULL;
7107 var29 = NULL;
7108 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var27->class->vft[COLOR_parser_prod__AExternInitPropdef__init_aexterninitpropdef]))(var27, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwnewnode5, var28, var_psignaturenode7, var_tstringnode8, var29, var_pexterncodeblocknode10) /* init_aexterninitpropdef on <var27:AExternInitPropdef>*/;
7109 CHECK_NEW_parser_nodes__AExternInitPropdef(var27);
7110 var_ppropdefnode1 = var27;
7111 var_node_list = var_ppropdefnode1;
7112 var30 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction502> */
7113 var31 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var30) /* go_to on <var_p:Parser>*/;
7114 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var31, var_node_list) /* push on <var_p:Parser>*/;
7115 RET_LABEL:;
7116 }
7117 /* method parser#ReduceAction502#action for (self: Object, Parser) */
7118 void VIRTUAL_parser__ReduceAction502__action(val* self, val* p0) {
7119 parser__ReduceAction502__action(self, p0);
7120 RET_LABEL:;
7121 }
7122 /* method parser#ReduceAction503#action for (self: ReduceAction503, Parser) */
7123 void parser__ReduceAction503__action(val* self, val* p0) {
7124 val* var_p /* var p: Parser */;
7125 val* var /* : null */;
7126 val* var_node_list /* var node_list: nullable Object */;
7127 val* var1 /* : nullable Object */;
7128 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
7129 val* var2 /* : nullable Object */;
7130 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
7131 val* var3 /* : nullable Object */;
7132 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
7133 val* var4 /* : nullable Object */;
7134 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7135 val* var5 /* : nullable Object */;
7136 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7137 val* var6 /* : nullable Object */;
7138 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7139 val* var7 /* : nullable Object */;
7140 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7141 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
7142 short int var8 /* : Bool */;
7143 int cltype;
7144 int idtype;
7145 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
7146 short int var9 /* : Bool */;
7147 int cltype10;
7148 int idtype11;
7149 val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */;
7150 short int var12 /* : Bool */;
7151 int cltype13;
7152 int idtype14;
7153 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
7154 short int var15 /* : Bool */;
7155 int cltype16;
7156 int idtype17;
7157 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
7158 short int var18 /* : Bool */;
7159 int cltype19;
7160 int idtype20;
7161 val* var_tstringnode8 /* var tstringnode8: nullable Object */;
7162 short int var21 /* : Bool */;
7163 int cltype22;
7164 int idtype23;
7165 val* var_pexterncodeblocknode10 /* var pexterncodeblocknode10: nullable Object */;
7166 short int var24 /* : Bool */;
7167 int cltype25;
7168 int idtype26;
7169 val* var27 /* : AExternInitPropdef */;
7170 val* var28 /* : null */;
7171 val* var29 /* : null */;
7172 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternInitPropdef */;
7173 long var30 /* : Int */;
7174 long var31 /* : Int */;
7175 var_p = p0;
7176 var = NULL;
7177 var_node_list = var;
7178 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7179 var_nodearraylist7 = var1;
7180 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7181 var_nodearraylist6 = var2;
7182 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7183 var_nodearraylist5 = var3;
7184 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7185 var_nodearraylist4 = var4;
7186 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7187 var_nodearraylist3 = var5;
7188 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7189 var_nodearraylist2 = var6;
7190 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7191 var_nodearraylist1 = var7;
7192 var_pdocnode2 = var_nodearraylist1;
7193 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
7194 cltype = type_nullable_parser_nodes__ADoc.color;
7195 idtype = type_nullable_parser_nodes__ADoc.id;
7196 if(var_pdocnode2 == NULL) {
7197 var8 = 1;
7198 } else {
7199 if(cltype >= var_pdocnode2->type->table_size) {
7200 var8 = 0;
7201 } else {
7202 var8 = var_pdocnode2->type->type_table[cltype] == idtype;
7203 }
7204 }
7205 if (!var8) {
7206 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22312);
7207 exit(1);
7208 }
7209 var_pvisibilitynode4 = var_nodearraylist2;
7210 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
7211 cltype10 = type_nullable_parser_nodes__AVisibility.color;
7212 idtype11 = type_nullable_parser_nodes__AVisibility.id;
7213 if(var_pvisibilitynode4 == NULL) {
7214 var9 = 1;
7215 } else {
7216 if(cltype10 >= var_pvisibilitynode4->type->table_size) {
7217 var9 = 0;
7218 } else {
7219 var9 = var_pvisibilitynode4->type->type_table[cltype10] == idtype11;
7220 }
7221 }
7222 if (!var9) {
7223 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22314);
7224 exit(1);
7225 }
7226 var_tkwnewnode5 = var_nodearraylist3;
7227 /* <var_tkwnewnode5:nullable Object> isa nullable TKwnew */
7228 cltype13 = type_nullable_parser_nodes__TKwnew.color;
7229 idtype14 = type_nullable_parser_nodes__TKwnew.id;
7230 if(var_tkwnewnode5 == NULL) {
7231 var12 = 1;
7232 } else {
7233 if(cltype13 >= var_tkwnewnode5->type->table_size) {
7234 var12 = 0;
7235 } else {
7236 var12 = var_tkwnewnode5->type->type_table[cltype13] == idtype14;
7237 }
7238 }
7239 if (!var12) {
7240 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22316);
7241 exit(1);
7242 }
7243 var_pmethidnode6 = var_nodearraylist4;
7244 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
7245 cltype16 = type_nullable_parser_nodes__AMethid.color;
7246 idtype17 = type_nullable_parser_nodes__AMethid.id;
7247 if(var_pmethidnode6 == NULL) {
7248 var15 = 1;
7249 } else {
7250 if(cltype16 >= var_pmethidnode6->type->table_size) {
7251 var15 = 0;
7252 } else {
7253 var15 = var_pmethidnode6->type->type_table[cltype16] == idtype17;
7254 }
7255 }
7256 if (!var15) {
7257 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22318);
7258 exit(1);
7259 }
7260 var_psignaturenode7 = var_nodearraylist5;
7261 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
7262 cltype19 = type_nullable_parser_nodes__ASignature.color;
7263 idtype20 = type_nullable_parser_nodes__ASignature.id;
7264 if(var_psignaturenode7 == NULL) {
7265 var18 = 1;
7266 } else {
7267 if(cltype19 >= var_psignaturenode7->type->table_size) {
7268 var18 = 0;
7269 } else {
7270 var18 = var_psignaturenode7->type->type_table[cltype19] == idtype20;
7271 }
7272 }
7273 if (!var18) {
7274 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22320);
7275 exit(1);
7276 }
7277 var_tstringnode8 = var_nodearraylist6;
7278 /* <var_tstringnode8:nullable Object> isa nullable TString */
7279 cltype22 = type_nullable_parser_nodes__TString.color;
7280 idtype23 = type_nullable_parser_nodes__TString.id;
7281 if(var_tstringnode8 == NULL) {
7282 var21 = 1;
7283 } else {
7284 if(cltype22 >= var_tstringnode8->type->table_size) {
7285 var21 = 0;
7286 } else {
7287 var21 = var_tstringnode8->type->type_table[cltype22] == idtype23;
7288 }
7289 }
7290 if (!var21) {
7291 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22322);
7292 exit(1);
7293 }
7294 var_pexterncodeblocknode10 = var_nodearraylist7;
7295 /* <var_pexterncodeblocknode10:nullable Object> isa nullable AExternCodeBlock */
7296 cltype25 = type_nullable_parser_nodes__AExternCodeBlock.color;
7297 idtype26 = type_nullable_parser_nodes__AExternCodeBlock.id;
7298 if(var_pexterncodeblocknode10 == NULL) {
7299 var24 = 1;
7300 } else {
7301 if(cltype25 >= var_pexterncodeblocknode10->type->table_size) {
7302 var24 = 0;
7303 } else {
7304 var24 = var_pexterncodeblocknode10->type->type_table[cltype25] == idtype26;
7305 }
7306 }
7307 if (!var24) {
7308 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22324);
7309 exit(1);
7310 }
7311 var27 = NEW_parser_nodes__AExternInitPropdef(&type_parser_nodes__AExternInitPropdef);
7312 var28 = NULL;
7313 var29 = NULL;
7314 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var27->class->vft[COLOR_parser_prod__AExternInitPropdef__init_aexterninitpropdef]))(var27, var_pdocnode2, var28, var_pvisibilitynode4, var_tkwnewnode5, var_pmethidnode6, var_psignaturenode7, var_tstringnode8, var29, var_pexterncodeblocknode10) /* init_aexterninitpropdef on <var27:AExternInitPropdef>*/;
7315 CHECK_NEW_parser_nodes__AExternInitPropdef(var27);
7316 var_ppropdefnode1 = var27;
7317 var_node_list = var_ppropdefnode1;
7318 var30 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction503> */
7319 var31 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var30) /* go_to on <var_p:Parser>*/;
7320 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var31, var_node_list) /* push on <var_p:Parser>*/;
7321 RET_LABEL:;
7322 }
7323 /* method parser#ReduceAction503#action for (self: Object, Parser) */
7324 void VIRTUAL_parser__ReduceAction503__action(val* self, val* p0) {
7325 parser__ReduceAction503__action(self, p0);
7326 RET_LABEL:;
7327 }
7328 /* method parser#ReduceAction504#action for (self: ReduceAction504, Parser) */
7329 void parser__ReduceAction504__action(val* self, val* p0) {
7330 val* var_p /* var p: Parser */;
7331 val* var /* : null */;
7332 val* var_node_list /* var node_list: nullable Object */;
7333 val* var1 /* : nullable Object */;
7334 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
7335 val* var2 /* : nullable Object */;
7336 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
7337 val* var3 /* : nullable Object */;
7338 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
7339 val* var4 /* : nullable Object */;
7340 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
7341 val* var5 /* : nullable Object */;
7342 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7343 val* var6 /* : nullable Object */;
7344 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7345 val* var7 /* : nullable Object */;
7346 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7347 val* var8 /* : nullable Object */;
7348 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7349 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
7350 short int var9 /* : Bool */;
7351 int cltype;
7352 int idtype;
7353 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
7354 short int var10 /* : Bool */;
7355 int cltype11;
7356 int idtype12;
7357 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
7358 short int var13 /* : Bool */;
7359 int cltype14;
7360 int idtype15;
7361 val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */;
7362 short int var16 /* : Bool */;
7363 int cltype17;
7364 int idtype18;
7365 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
7366 short int var19 /* : Bool */;
7367 int cltype20;
7368 int idtype21;
7369 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
7370 short int var22 /* : Bool */;
7371 int cltype23;
7372 int idtype24;
7373 val* var_tstringnode8 /* var tstringnode8: nullable Object */;
7374 short int var25 /* : Bool */;
7375 int cltype26;
7376 int idtype27;
7377 val* var_pexterncodeblocknode10 /* var pexterncodeblocknode10: nullable Object */;
7378 short int var28 /* : Bool */;
7379 int cltype29;
7380 int idtype30;
7381 val* var31 /* : AExternInitPropdef */;
7382 val* var32 /* : null */;
7383 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternInitPropdef */;
7384 long var33 /* : Int */;
7385 long var34 /* : Int */;
7386 var_p = p0;
7387 var = NULL;
7388 var_node_list = var;
7389 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7390 var_nodearraylist8 = var1;
7391 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7392 var_nodearraylist7 = var2;
7393 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7394 var_nodearraylist6 = var3;
7395 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7396 var_nodearraylist5 = var4;
7397 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7398 var_nodearraylist4 = var5;
7399 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7400 var_nodearraylist3 = var6;
7401 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7402 var_nodearraylist2 = var7;
7403 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7404 var_nodearraylist1 = var8;
7405 var_pdocnode2 = var_nodearraylist1;
7406 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
7407 cltype = type_nullable_parser_nodes__ADoc.color;
7408 idtype = type_nullable_parser_nodes__ADoc.id;
7409 if(var_pdocnode2 == NULL) {
7410 var9 = 1;
7411 } else {
7412 if(cltype >= var_pdocnode2->type->table_size) {
7413 var9 = 0;
7414 } else {
7415 var9 = var_pdocnode2->type->type_table[cltype] == idtype;
7416 }
7417 }
7418 if (!var9) {
7419 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22354);
7420 exit(1);
7421 }
7422 var_tkwredefnode3 = var_nodearraylist2;
7423 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
7424 cltype11 = type_nullable_parser_nodes__TKwredef.color;
7425 idtype12 = type_nullable_parser_nodes__TKwredef.id;
7426 if(var_tkwredefnode3 == NULL) {
7427 var10 = 1;
7428 } else {
7429 if(cltype11 >= var_tkwredefnode3->type->table_size) {
7430 var10 = 0;
7431 } else {
7432 var10 = var_tkwredefnode3->type->type_table[cltype11] == idtype12;
7433 }
7434 }
7435 if (!var10) {
7436 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22356);
7437 exit(1);
7438 }
7439 var_pvisibilitynode4 = var_nodearraylist3;
7440 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
7441 cltype14 = type_nullable_parser_nodes__AVisibility.color;
7442 idtype15 = type_nullable_parser_nodes__AVisibility.id;
7443 if(var_pvisibilitynode4 == NULL) {
7444 var13 = 1;
7445 } else {
7446 if(cltype14 >= var_pvisibilitynode4->type->table_size) {
7447 var13 = 0;
7448 } else {
7449 var13 = var_pvisibilitynode4->type->type_table[cltype14] == idtype15;
7450 }
7451 }
7452 if (!var13) {
7453 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22358);
7454 exit(1);
7455 }
7456 var_tkwnewnode5 = var_nodearraylist4;
7457 /* <var_tkwnewnode5:nullable Object> isa nullable TKwnew */
7458 cltype17 = type_nullable_parser_nodes__TKwnew.color;
7459 idtype18 = type_nullable_parser_nodes__TKwnew.id;
7460 if(var_tkwnewnode5 == NULL) {
7461 var16 = 1;
7462 } else {
7463 if(cltype17 >= var_tkwnewnode5->type->table_size) {
7464 var16 = 0;
7465 } else {
7466 var16 = var_tkwnewnode5->type->type_table[cltype17] == idtype18;
7467 }
7468 }
7469 if (!var16) {
7470 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22360);
7471 exit(1);
7472 }
7473 var_pmethidnode6 = var_nodearraylist5;
7474 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
7475 cltype20 = type_nullable_parser_nodes__AMethid.color;
7476 idtype21 = type_nullable_parser_nodes__AMethid.id;
7477 if(var_pmethidnode6 == NULL) {
7478 var19 = 1;
7479 } else {
7480 if(cltype20 >= var_pmethidnode6->type->table_size) {
7481 var19 = 0;
7482 } else {
7483 var19 = var_pmethidnode6->type->type_table[cltype20] == idtype21;
7484 }
7485 }
7486 if (!var19) {
7487 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22362);
7488 exit(1);
7489 }
7490 var_psignaturenode7 = var_nodearraylist6;
7491 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
7492 cltype23 = type_nullable_parser_nodes__ASignature.color;
7493 idtype24 = type_nullable_parser_nodes__ASignature.id;
7494 if(var_psignaturenode7 == NULL) {
7495 var22 = 1;
7496 } else {
7497 if(cltype23 >= var_psignaturenode7->type->table_size) {
7498 var22 = 0;
7499 } else {
7500 var22 = var_psignaturenode7->type->type_table[cltype23] == idtype24;
7501 }
7502 }
7503 if (!var22) {
7504 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22364);
7505 exit(1);
7506 }
7507 var_tstringnode8 = var_nodearraylist7;
7508 /* <var_tstringnode8:nullable Object> isa nullable TString */
7509 cltype26 = type_nullable_parser_nodes__TString.color;
7510 idtype27 = type_nullable_parser_nodes__TString.id;
7511 if(var_tstringnode8 == NULL) {
7512 var25 = 1;
7513 } else {
7514 if(cltype26 >= var_tstringnode8->type->table_size) {
7515 var25 = 0;
7516 } else {
7517 var25 = var_tstringnode8->type->type_table[cltype26] == idtype27;
7518 }
7519 }
7520 if (!var25) {
7521 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22366);
7522 exit(1);
7523 }
7524 var_pexterncodeblocknode10 = var_nodearraylist8;
7525 /* <var_pexterncodeblocknode10:nullable Object> isa nullable AExternCodeBlock */
7526 cltype29 = type_nullable_parser_nodes__AExternCodeBlock.color;
7527 idtype30 = type_nullable_parser_nodes__AExternCodeBlock.id;
7528 if(var_pexterncodeblocknode10 == NULL) {
7529 var28 = 1;
7530 } else {
7531 if(cltype29 >= var_pexterncodeblocknode10->type->table_size) {
7532 var28 = 0;
7533 } else {
7534 var28 = var_pexterncodeblocknode10->type->type_table[cltype29] == idtype30;
7535 }
7536 }
7537 if (!var28) {
7538 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22368);
7539 exit(1);
7540 }
7541 var31 = NEW_parser_nodes__AExternInitPropdef(&type_parser_nodes__AExternInitPropdef);
7542 var32 = NULL;
7543 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var31->class->vft[COLOR_parser_prod__AExternInitPropdef__init_aexterninitpropdef]))(var31, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwnewnode5, var_pmethidnode6, var_psignaturenode7, var_tstringnode8, var32, var_pexterncodeblocknode10) /* init_aexterninitpropdef on <var31:AExternInitPropdef>*/;
7544 CHECK_NEW_parser_nodes__AExternInitPropdef(var31);
7545 var_ppropdefnode1 = var31;
7546 var_node_list = var_ppropdefnode1;
7547 var33 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction504> */
7548 var34 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var33) /* go_to on <var_p:Parser>*/;
7549 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var34, var_node_list) /* push on <var_p:Parser>*/;
7550 RET_LABEL:;
7551 }
7552 /* method parser#ReduceAction504#action for (self: Object, Parser) */
7553 void VIRTUAL_parser__ReduceAction504__action(val* self, val* p0) {
7554 parser__ReduceAction504__action(self, p0);
7555 RET_LABEL:;
7556 }
7557 /* method parser#ReduceAction505#action for (self: ReduceAction505, Parser) */
7558 void parser__ReduceAction505__action(val* self, val* p0) {
7559 val* var_p /* var p: Parser */;
7560 val* var /* : null */;
7561 val* var_node_list /* var node_list: nullable Object */;
7562 val* var1 /* : nullable Object */;
7563 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
7564 val* var2 /* : nullable Object */;
7565 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
7566 val* var3 /* : nullable Object */;
7567 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7568 val* var4 /* : nullable Object */;
7569 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7570 val* var5 /* : nullable Object */;
7571 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7572 val* var6 /* : nullable Object */;
7573 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7574 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
7575 short int var7 /* : Bool */;
7576 int cltype;
7577 int idtype;
7578 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
7579 short int var8 /* : Bool */;
7580 int cltype9;
7581 int idtype10;
7582 val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */;
7583 short int var11 /* : Bool */;
7584 int cltype12;
7585 int idtype13;
7586 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
7587 short int var14 /* : Bool */;
7588 int cltype15;
7589 int idtype16;
7590 val* var_pexterncallsnode9 /* var pexterncallsnode9: nullable Object */;
7591 short int var17 /* : Bool */;
7592 int cltype18;
7593 int idtype19;
7594 val* var_pexterncodeblocknode10 /* var pexterncodeblocknode10: nullable Object */;
7595 short int var20 /* : Bool */;
7596 int cltype21;
7597 int idtype22;
7598 val* var23 /* : AExternInitPropdef */;
7599 val* var24 /* : null */;
7600 val* var25 /* : null */;
7601 val* var26 /* : null */;
7602 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternInitPropdef */;
7603 long var27 /* : Int */;
7604 long var28 /* : Int */;
7605 var_p = p0;
7606 var = NULL;
7607 var_node_list = var;
7608 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7609 var_nodearraylist6 = var1;
7610 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7611 var_nodearraylist5 = var2;
7612 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7613 var_nodearraylist4 = var3;
7614 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7615 var_nodearraylist3 = var4;
7616 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7617 var_nodearraylist2 = var5;
7618 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7619 var_nodearraylist1 = var6;
7620 var_pdocnode2 = var_nodearraylist1;
7621 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
7622 cltype = type_nullable_parser_nodes__ADoc.color;
7623 idtype = type_nullable_parser_nodes__ADoc.id;
7624 if(var_pdocnode2 == NULL) {
7625 var7 = 1;
7626 } else {
7627 if(cltype >= var_pdocnode2->type->table_size) {
7628 var7 = 0;
7629 } else {
7630 var7 = var_pdocnode2->type->type_table[cltype] == idtype;
7631 }
7632 }
7633 if (!var7) {
7634 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22396);
7635 exit(1);
7636 }
7637 var_pvisibilitynode4 = var_nodearraylist2;
7638 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
7639 cltype9 = type_nullable_parser_nodes__AVisibility.color;
7640 idtype10 = type_nullable_parser_nodes__AVisibility.id;
7641 if(var_pvisibilitynode4 == NULL) {
7642 var8 = 1;
7643 } else {
7644 if(cltype9 >= var_pvisibilitynode4->type->table_size) {
7645 var8 = 0;
7646 } else {
7647 var8 = var_pvisibilitynode4->type->type_table[cltype9] == idtype10;
7648 }
7649 }
7650 if (!var8) {
7651 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22398);
7652 exit(1);
7653 }
7654 var_tkwnewnode5 = var_nodearraylist3;
7655 /* <var_tkwnewnode5:nullable Object> isa nullable TKwnew */
7656 cltype12 = type_nullable_parser_nodes__TKwnew.color;
7657 idtype13 = type_nullable_parser_nodes__TKwnew.id;
7658 if(var_tkwnewnode5 == NULL) {
7659 var11 = 1;
7660 } else {
7661 if(cltype12 >= var_tkwnewnode5->type->table_size) {
7662 var11 = 0;
7663 } else {
7664 var11 = var_tkwnewnode5->type->type_table[cltype12] == idtype13;
7665 }
7666 }
7667 if (!var11) {
7668 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22400);
7669 exit(1);
7670 }
7671 var_psignaturenode7 = var_nodearraylist4;
7672 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
7673 cltype15 = type_nullable_parser_nodes__ASignature.color;
7674 idtype16 = type_nullable_parser_nodes__ASignature.id;
7675 if(var_psignaturenode7 == NULL) {
7676 var14 = 1;
7677 } else {
7678 if(cltype15 >= var_psignaturenode7->type->table_size) {
7679 var14 = 0;
7680 } else {
7681 var14 = var_psignaturenode7->type->type_table[cltype15] == idtype16;
7682 }
7683 }
7684 if (!var14) {
7685 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22402);
7686 exit(1);
7687 }
7688 var_pexterncallsnode9 = var_nodearraylist5;
7689 /* <var_pexterncallsnode9:nullable Object> isa nullable AExternCalls */
7690 cltype18 = type_nullable_parser_nodes__AExternCalls.color;
7691 idtype19 = type_nullable_parser_nodes__AExternCalls.id;
7692 if(var_pexterncallsnode9 == NULL) {
7693 var17 = 1;
7694 } else {
7695 if(cltype18 >= var_pexterncallsnode9->type->table_size) {
7696 var17 = 0;
7697 } else {
7698 var17 = var_pexterncallsnode9->type->type_table[cltype18] == idtype19;
7699 }
7700 }
7701 if (!var17) {
7702 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22404);
7703 exit(1);
7704 }
7705 var_pexterncodeblocknode10 = var_nodearraylist6;
7706 /* <var_pexterncodeblocknode10:nullable Object> isa nullable AExternCodeBlock */
7707 cltype21 = type_nullable_parser_nodes__AExternCodeBlock.color;
7708 idtype22 = type_nullable_parser_nodes__AExternCodeBlock.id;
7709 if(var_pexterncodeblocknode10 == NULL) {
7710 var20 = 1;
7711 } else {
7712 if(cltype21 >= var_pexterncodeblocknode10->type->table_size) {
7713 var20 = 0;
7714 } else {
7715 var20 = var_pexterncodeblocknode10->type->type_table[cltype21] == idtype22;
7716 }
7717 }
7718 if (!var20) {
7719 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22406);
7720 exit(1);
7721 }
7722 var23 = NEW_parser_nodes__AExternInitPropdef(&type_parser_nodes__AExternInitPropdef);
7723 var24 = NULL;
7724 var25 = NULL;
7725 var26 = NULL;
7726 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var23->class->vft[COLOR_parser_prod__AExternInitPropdef__init_aexterninitpropdef]))(var23, var_pdocnode2, var24, var_pvisibilitynode4, var_tkwnewnode5, var25, var_psignaturenode7, var26, var_pexterncallsnode9, var_pexterncodeblocknode10) /* init_aexterninitpropdef on <var23:AExternInitPropdef>*/;
7727 CHECK_NEW_parser_nodes__AExternInitPropdef(var23);
7728 var_ppropdefnode1 = var23;
7729 var_node_list = var_ppropdefnode1;
7730 var27 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction505> */
7731 var28 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var27) /* go_to on <var_p:Parser>*/;
7732 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var28, var_node_list) /* push on <var_p:Parser>*/;
7733 RET_LABEL:;
7734 }
7735 /* method parser#ReduceAction505#action for (self: Object, Parser) */
7736 void VIRTUAL_parser__ReduceAction505__action(val* self, val* p0) {
7737 parser__ReduceAction505__action(self, p0);
7738 RET_LABEL:;
7739 }
7740 /* method parser#ReduceAction506#action for (self: ReduceAction506, Parser) */
7741 void parser__ReduceAction506__action(val* self, val* p0) {
7742 val* var_p /* var p: Parser */;
7743 val* var /* : null */;
7744 val* var_node_list /* var node_list: nullable Object */;
7745 val* var1 /* : nullable Object */;
7746 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
7747 val* var2 /* : nullable Object */;
7748 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
7749 val* var3 /* : nullable Object */;
7750 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
7751 val* var4 /* : nullable Object */;
7752 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7753 val* var5 /* : nullable Object */;
7754 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7755 val* var6 /* : nullable Object */;
7756 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7757 val* var7 /* : nullable Object */;
7758 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7759 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
7760 short int var8 /* : Bool */;
7761 int cltype;
7762 int idtype;
7763 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
7764 short int var9 /* : Bool */;
7765 int cltype10;
7766 int idtype11;
7767 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
7768 short int var12 /* : Bool */;
7769 int cltype13;
7770 int idtype14;
7771 val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */;
7772 short int var15 /* : Bool */;
7773 int cltype16;
7774 int idtype17;
7775 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
7776 short int var18 /* : Bool */;
7777 int cltype19;
7778 int idtype20;
7779 val* var_pexterncallsnode9 /* var pexterncallsnode9: nullable Object */;
7780 short int var21 /* : Bool */;
7781 int cltype22;
7782 int idtype23;
7783 val* var_pexterncodeblocknode10 /* var pexterncodeblocknode10: nullable Object */;
7784 short int var24 /* : Bool */;
7785 int cltype25;
7786 int idtype26;
7787 val* var27 /* : AExternInitPropdef */;
7788 val* var28 /* : null */;
7789 val* var29 /* : null */;
7790 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternInitPropdef */;
7791 long var30 /* : Int */;
7792 long var31 /* : Int */;
7793 var_p = p0;
7794 var = NULL;
7795 var_node_list = var;
7796 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7797 var_nodearraylist7 = var1;
7798 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7799 var_nodearraylist6 = var2;
7800 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7801 var_nodearraylist5 = var3;
7802 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7803 var_nodearraylist4 = var4;
7804 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7805 var_nodearraylist3 = var5;
7806 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7807 var_nodearraylist2 = var6;
7808 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
7809 var_nodearraylist1 = var7;
7810 var_pdocnode2 = var_nodearraylist1;
7811 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
7812 cltype = type_nullable_parser_nodes__ADoc.color;
7813 idtype = type_nullable_parser_nodes__ADoc.id;
7814 if(var_pdocnode2 == NULL) {
7815 var8 = 1;
7816 } else {
7817 if(cltype >= var_pdocnode2->type->table_size) {
7818 var8 = 0;
7819 } else {
7820 var8 = var_pdocnode2->type->type_table[cltype] == idtype;
7821 }
7822 }
7823 if (!var8) {
7824 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22435);
7825 exit(1);
7826 }
7827 var_tkwredefnode3 = var_nodearraylist2;
7828 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
7829 cltype10 = type_nullable_parser_nodes__TKwredef.color;
7830 idtype11 = type_nullable_parser_nodes__TKwredef.id;
7831 if(var_tkwredefnode3 == NULL) {
7832 var9 = 1;
7833 } else {
7834 if(cltype10 >= var_tkwredefnode3->type->table_size) {
7835 var9 = 0;
7836 } else {
7837 var9 = var_tkwredefnode3->type->type_table[cltype10] == idtype11;
7838 }
7839 }
7840 if (!var9) {
7841 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22437);
7842 exit(1);
7843 }
7844 var_pvisibilitynode4 = var_nodearraylist3;
7845 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
7846 cltype13 = type_nullable_parser_nodes__AVisibility.color;
7847 idtype14 = type_nullable_parser_nodes__AVisibility.id;
7848 if(var_pvisibilitynode4 == NULL) {
7849 var12 = 1;
7850 } else {
7851 if(cltype13 >= var_pvisibilitynode4->type->table_size) {
7852 var12 = 0;
7853 } else {
7854 var12 = var_pvisibilitynode4->type->type_table[cltype13] == idtype14;
7855 }
7856 }
7857 if (!var12) {
7858 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22439);
7859 exit(1);
7860 }
7861 var_tkwnewnode5 = var_nodearraylist4;
7862 /* <var_tkwnewnode5:nullable Object> isa nullable TKwnew */
7863 cltype16 = type_nullable_parser_nodes__TKwnew.color;
7864 idtype17 = type_nullable_parser_nodes__TKwnew.id;
7865 if(var_tkwnewnode5 == NULL) {
7866 var15 = 1;
7867 } else {
7868 if(cltype16 >= var_tkwnewnode5->type->table_size) {
7869 var15 = 0;
7870 } else {
7871 var15 = var_tkwnewnode5->type->type_table[cltype16] == idtype17;
7872 }
7873 }
7874 if (!var15) {
7875 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22441);
7876 exit(1);
7877 }
7878 var_psignaturenode7 = var_nodearraylist5;
7879 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
7880 cltype19 = type_nullable_parser_nodes__ASignature.color;
7881 idtype20 = type_nullable_parser_nodes__ASignature.id;
7882 if(var_psignaturenode7 == NULL) {
7883 var18 = 1;
7884 } else {
7885 if(cltype19 >= var_psignaturenode7->type->table_size) {
7886 var18 = 0;
7887 } else {
7888 var18 = var_psignaturenode7->type->type_table[cltype19] == idtype20;
7889 }
7890 }
7891 if (!var18) {
7892 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22443);
7893 exit(1);
7894 }
7895 var_pexterncallsnode9 = var_nodearraylist6;
7896 /* <var_pexterncallsnode9:nullable Object> isa nullable AExternCalls */
7897 cltype22 = type_nullable_parser_nodes__AExternCalls.color;
7898 idtype23 = type_nullable_parser_nodes__AExternCalls.id;
7899 if(var_pexterncallsnode9 == NULL) {
7900 var21 = 1;
7901 } else {
7902 if(cltype22 >= var_pexterncallsnode9->type->table_size) {
7903 var21 = 0;
7904 } else {
7905 var21 = var_pexterncallsnode9->type->type_table[cltype22] == idtype23;
7906 }
7907 }
7908 if (!var21) {
7909 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22445);
7910 exit(1);
7911 }
7912 var_pexterncodeblocknode10 = var_nodearraylist7;
7913 /* <var_pexterncodeblocknode10:nullable Object> isa nullable AExternCodeBlock */
7914 cltype25 = type_nullable_parser_nodes__AExternCodeBlock.color;
7915 idtype26 = type_nullable_parser_nodes__AExternCodeBlock.id;
7916 if(var_pexterncodeblocknode10 == NULL) {
7917 var24 = 1;
7918 } else {
7919 if(cltype25 >= var_pexterncodeblocknode10->type->table_size) {
7920 var24 = 0;
7921 } else {
7922 var24 = var_pexterncodeblocknode10->type->type_table[cltype25] == idtype26;
7923 }
7924 }
7925 if (!var24) {
7926 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22447);
7927 exit(1);
7928 }
7929 var27 = NEW_parser_nodes__AExternInitPropdef(&type_parser_nodes__AExternInitPropdef);
7930 var28 = NULL;
7931 var29 = NULL;
7932 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var27->class->vft[COLOR_parser_prod__AExternInitPropdef__init_aexterninitpropdef]))(var27, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwnewnode5, var28, var_psignaturenode7, var29, var_pexterncallsnode9, var_pexterncodeblocknode10) /* init_aexterninitpropdef on <var27:AExternInitPropdef>*/;
7933 CHECK_NEW_parser_nodes__AExternInitPropdef(var27);
7934 var_ppropdefnode1 = var27;
7935 var_node_list = var_ppropdefnode1;
7936 var30 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction506> */
7937 var31 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var30) /* go_to on <var_p:Parser>*/;
7938 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var31, var_node_list) /* push on <var_p:Parser>*/;
7939 RET_LABEL:;
7940 }
7941 /* method parser#ReduceAction506#action for (self: Object, Parser) */
7942 void VIRTUAL_parser__ReduceAction506__action(val* self, val* p0) {
7943 parser__ReduceAction506__action(self, p0);
7944 RET_LABEL:;
7945 }
7946 /* method parser#ReduceAction507#action for (self: ReduceAction507, Parser) */
7947 void parser__ReduceAction507__action(val* self, val* p0) {
7948 val* var_p /* var p: Parser */;
7949 val* var /* : null */;
7950 val* var_node_list /* var node_list: nullable Object */;
7951 val* var1 /* : nullable Object */;
7952 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
7953 val* var2 /* : nullable Object */;
7954 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
7955 val* var3 /* : nullable Object */;
7956 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
7957 val* var4 /* : nullable Object */;
7958 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7959 val* var5 /* : nullable Object */;
7960 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7961 val* var6 /* : nullable Object */;
7962 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7963 val* var7 /* : nullable Object */;
7964 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7965 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
7966 short int var8 /* : Bool */;
7967 int cltype;
7968 int idtype;
7969 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
7970 short int var9 /* : Bool */;
7971 int cltype10;
7972 int idtype11;
7973 val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */;
7974 short int var12 /* : Bool */;
7975 int cltype13;
7976 int idtype14;
7977 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
7978 short int var15 /* : Bool */;
7979 int cltype16;
7980 int idtype17;
7981 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
7982 short int var18 /* : Bool */;
7983 int cltype19;
7984 int idtype20;
7985 val* var_pexterncallsnode9 /* var pexterncallsnode9: nullable Object */;
7986 short int var21 /* : Bool */;
7987 int cltype22;
7988 int idtype23;
7989 val* var_pexterncodeblocknode10 /* var pexterncodeblocknode10: nullable Object */;
7990 short int var24 /* : Bool */;
7991 int cltype25;
7992 int idtype26;
7993 val* var27 /* : AExternInitPropdef */;
7994 val* var28 /* : null */;
7995 val* var29 /* : null */;
7996 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternInitPropdef */;
7997 long var30 /* : Int */;
7998 long var31 /* : Int */;
7999 var_p = p0;
8000 var = NULL;
8001 var_node_list = var;
8002 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8003 var_nodearraylist7 = var1;
8004 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8005 var_nodearraylist6 = var2;
8006 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8007 var_nodearraylist5 = var3;
8008 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8009 var_nodearraylist4 = var4;
8010 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8011 var_nodearraylist3 = var5;
8012 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8013 var_nodearraylist2 = var6;
8014 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8015 var_nodearraylist1 = var7;
8016 var_pdocnode2 = var_nodearraylist1;
8017 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
8018 cltype = type_nullable_parser_nodes__ADoc.color;
8019 idtype = type_nullable_parser_nodes__ADoc.id;
8020 if(var_pdocnode2 == NULL) {
8021 var8 = 1;
8022 } else {
8023 if(cltype >= var_pdocnode2->type->table_size) {
8024 var8 = 0;
8025 } else {
8026 var8 = var_pdocnode2->type->type_table[cltype] == idtype;
8027 }
8028 }
8029 if (!var8) {
8030 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22476);
8031 exit(1);
8032 }
8033 var_pvisibilitynode4 = var_nodearraylist2;
8034 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
8035 cltype10 = type_nullable_parser_nodes__AVisibility.color;
8036 idtype11 = type_nullable_parser_nodes__AVisibility.id;
8037 if(var_pvisibilitynode4 == NULL) {
8038 var9 = 1;
8039 } else {
8040 if(cltype10 >= var_pvisibilitynode4->type->table_size) {
8041 var9 = 0;
8042 } else {
8043 var9 = var_pvisibilitynode4->type->type_table[cltype10] == idtype11;
8044 }
8045 }
8046 if (!var9) {
8047 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22478);
8048 exit(1);
8049 }
8050 var_tkwnewnode5 = var_nodearraylist3;
8051 /* <var_tkwnewnode5:nullable Object> isa nullable TKwnew */
8052 cltype13 = type_nullable_parser_nodes__TKwnew.color;
8053 idtype14 = type_nullable_parser_nodes__TKwnew.id;
8054 if(var_tkwnewnode5 == NULL) {
8055 var12 = 1;
8056 } else {
8057 if(cltype13 >= var_tkwnewnode5->type->table_size) {
8058 var12 = 0;
8059 } else {
8060 var12 = var_tkwnewnode5->type->type_table[cltype13] == idtype14;
8061 }
8062 }
8063 if (!var12) {
8064 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22480);
8065 exit(1);
8066 }
8067 var_pmethidnode6 = var_nodearraylist4;
8068 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
8069 cltype16 = type_nullable_parser_nodes__AMethid.color;
8070 idtype17 = type_nullable_parser_nodes__AMethid.id;
8071 if(var_pmethidnode6 == NULL) {
8072 var15 = 1;
8073 } else {
8074 if(cltype16 >= var_pmethidnode6->type->table_size) {
8075 var15 = 0;
8076 } else {
8077 var15 = var_pmethidnode6->type->type_table[cltype16] == idtype17;
8078 }
8079 }
8080 if (!var15) {
8081 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22482);
8082 exit(1);
8083 }
8084 var_psignaturenode7 = var_nodearraylist5;
8085 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
8086 cltype19 = type_nullable_parser_nodes__ASignature.color;
8087 idtype20 = type_nullable_parser_nodes__ASignature.id;
8088 if(var_psignaturenode7 == NULL) {
8089 var18 = 1;
8090 } else {
8091 if(cltype19 >= var_psignaturenode7->type->table_size) {
8092 var18 = 0;
8093 } else {
8094 var18 = var_psignaturenode7->type->type_table[cltype19] == idtype20;
8095 }
8096 }
8097 if (!var18) {
8098 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22484);
8099 exit(1);
8100 }
8101 var_pexterncallsnode9 = var_nodearraylist6;
8102 /* <var_pexterncallsnode9:nullable Object> isa nullable AExternCalls */
8103 cltype22 = type_nullable_parser_nodes__AExternCalls.color;
8104 idtype23 = type_nullable_parser_nodes__AExternCalls.id;
8105 if(var_pexterncallsnode9 == NULL) {
8106 var21 = 1;
8107 } else {
8108 if(cltype22 >= var_pexterncallsnode9->type->table_size) {
8109 var21 = 0;
8110 } else {
8111 var21 = var_pexterncallsnode9->type->type_table[cltype22] == idtype23;
8112 }
8113 }
8114 if (!var21) {
8115 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22486);
8116 exit(1);
8117 }
8118 var_pexterncodeblocknode10 = var_nodearraylist7;
8119 /* <var_pexterncodeblocknode10:nullable Object> isa nullable AExternCodeBlock */
8120 cltype25 = type_nullable_parser_nodes__AExternCodeBlock.color;
8121 idtype26 = type_nullable_parser_nodes__AExternCodeBlock.id;
8122 if(var_pexterncodeblocknode10 == NULL) {
8123 var24 = 1;
8124 } else {
8125 if(cltype25 >= var_pexterncodeblocknode10->type->table_size) {
8126 var24 = 0;
8127 } else {
8128 var24 = var_pexterncodeblocknode10->type->type_table[cltype25] == idtype26;
8129 }
8130 }
8131 if (!var24) {
8132 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22488);
8133 exit(1);
8134 }
8135 var27 = NEW_parser_nodes__AExternInitPropdef(&type_parser_nodes__AExternInitPropdef);
8136 var28 = NULL;
8137 var29 = NULL;
8138 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var27->class->vft[COLOR_parser_prod__AExternInitPropdef__init_aexterninitpropdef]))(var27, var_pdocnode2, var28, var_pvisibilitynode4, var_tkwnewnode5, var_pmethidnode6, var_psignaturenode7, var29, var_pexterncallsnode9, var_pexterncodeblocknode10) /* init_aexterninitpropdef on <var27:AExternInitPropdef>*/;
8139 CHECK_NEW_parser_nodes__AExternInitPropdef(var27);
8140 var_ppropdefnode1 = var27;
8141 var_node_list = var_ppropdefnode1;
8142 var30 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction507> */
8143 var31 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var30) /* go_to on <var_p:Parser>*/;
8144 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var31, var_node_list) /* push on <var_p:Parser>*/;
8145 RET_LABEL:;
8146 }
8147 /* method parser#ReduceAction507#action for (self: Object, Parser) */
8148 void VIRTUAL_parser__ReduceAction507__action(val* self, val* p0) {
8149 parser__ReduceAction507__action(self, p0);
8150 RET_LABEL:;
8151 }
8152 /* method parser#ReduceAction508#action for (self: ReduceAction508, Parser) */
8153 void parser__ReduceAction508__action(val* self, val* p0) {
8154 val* var_p /* var p: Parser */;
8155 val* var /* : null */;
8156 val* var_node_list /* var node_list: nullable Object */;
8157 val* var1 /* : nullable Object */;
8158 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
8159 val* var2 /* : nullable Object */;
8160 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
8161 val* var3 /* : nullable Object */;
8162 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
8163 val* var4 /* : nullable Object */;
8164 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
8165 val* var5 /* : nullable Object */;
8166 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8167 val* var6 /* : nullable Object */;
8168 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8169 val* var7 /* : nullable Object */;
8170 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8171 val* var8 /* : nullable Object */;
8172 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8173 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
8174 short int var9 /* : Bool */;
8175 int cltype;
8176 int idtype;
8177 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
8178 short int var10 /* : Bool */;
8179 int cltype11;
8180 int idtype12;
8181 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
8182 short int var13 /* : Bool */;
8183 int cltype14;
8184 int idtype15;
8185 val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */;
8186 short int var16 /* : Bool */;
8187 int cltype17;
8188 int idtype18;
8189 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
8190 short int var19 /* : Bool */;
8191 int cltype20;
8192 int idtype21;
8193 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
8194 short int var22 /* : Bool */;
8195 int cltype23;
8196 int idtype24;
8197 val* var_pexterncallsnode9 /* var pexterncallsnode9: nullable Object */;
8198 short int var25 /* : Bool */;
8199 int cltype26;
8200 int idtype27;
8201 val* var_pexterncodeblocknode10 /* var pexterncodeblocknode10: nullable Object */;
8202 short int var28 /* : Bool */;
8203 int cltype29;
8204 int idtype30;
8205 val* var31 /* : AExternInitPropdef */;
8206 val* var32 /* : null */;
8207 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternInitPropdef */;
8208 long var33 /* : Int */;
8209 long var34 /* : Int */;
8210 var_p = p0;
8211 var = NULL;
8212 var_node_list = var;
8213 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8214 var_nodearraylist8 = var1;
8215 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8216 var_nodearraylist7 = var2;
8217 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8218 var_nodearraylist6 = var3;
8219 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8220 var_nodearraylist5 = var4;
8221 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8222 var_nodearraylist4 = var5;
8223 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8224 var_nodearraylist3 = var6;
8225 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8226 var_nodearraylist2 = var7;
8227 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8228 var_nodearraylist1 = var8;
8229 var_pdocnode2 = var_nodearraylist1;
8230 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
8231 cltype = type_nullable_parser_nodes__ADoc.color;
8232 idtype = type_nullable_parser_nodes__ADoc.id;
8233 if(var_pdocnode2 == NULL) {
8234 var9 = 1;
8235 } else {
8236 if(cltype >= var_pdocnode2->type->table_size) {
8237 var9 = 0;
8238 } else {
8239 var9 = var_pdocnode2->type->type_table[cltype] == idtype;
8240 }
8241 }
8242 if (!var9) {
8243 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22518);
8244 exit(1);
8245 }
8246 var_tkwredefnode3 = var_nodearraylist2;
8247 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
8248 cltype11 = type_nullable_parser_nodes__TKwredef.color;
8249 idtype12 = type_nullable_parser_nodes__TKwredef.id;
8250 if(var_tkwredefnode3 == NULL) {
8251 var10 = 1;
8252 } else {
8253 if(cltype11 >= var_tkwredefnode3->type->table_size) {
8254 var10 = 0;
8255 } else {
8256 var10 = var_tkwredefnode3->type->type_table[cltype11] == idtype12;
8257 }
8258 }
8259 if (!var10) {
8260 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22520);
8261 exit(1);
8262 }
8263 var_pvisibilitynode4 = var_nodearraylist3;
8264 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
8265 cltype14 = type_nullable_parser_nodes__AVisibility.color;
8266 idtype15 = type_nullable_parser_nodes__AVisibility.id;
8267 if(var_pvisibilitynode4 == NULL) {
8268 var13 = 1;
8269 } else {
8270 if(cltype14 >= var_pvisibilitynode4->type->table_size) {
8271 var13 = 0;
8272 } else {
8273 var13 = var_pvisibilitynode4->type->type_table[cltype14] == idtype15;
8274 }
8275 }
8276 if (!var13) {
8277 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22522);
8278 exit(1);
8279 }
8280 var_tkwnewnode5 = var_nodearraylist4;
8281 /* <var_tkwnewnode5:nullable Object> isa nullable TKwnew */
8282 cltype17 = type_nullable_parser_nodes__TKwnew.color;
8283 idtype18 = type_nullable_parser_nodes__TKwnew.id;
8284 if(var_tkwnewnode5 == NULL) {
8285 var16 = 1;
8286 } else {
8287 if(cltype17 >= var_tkwnewnode5->type->table_size) {
8288 var16 = 0;
8289 } else {
8290 var16 = var_tkwnewnode5->type->type_table[cltype17] == idtype18;
8291 }
8292 }
8293 if (!var16) {
8294 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22524);
8295 exit(1);
8296 }
8297 var_pmethidnode6 = var_nodearraylist5;
8298 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
8299 cltype20 = type_nullable_parser_nodes__AMethid.color;
8300 idtype21 = type_nullable_parser_nodes__AMethid.id;
8301 if(var_pmethidnode6 == NULL) {
8302 var19 = 1;
8303 } else {
8304 if(cltype20 >= var_pmethidnode6->type->table_size) {
8305 var19 = 0;
8306 } else {
8307 var19 = var_pmethidnode6->type->type_table[cltype20] == idtype21;
8308 }
8309 }
8310 if (!var19) {
8311 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22526);
8312 exit(1);
8313 }
8314 var_psignaturenode7 = var_nodearraylist6;
8315 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
8316 cltype23 = type_nullable_parser_nodes__ASignature.color;
8317 idtype24 = type_nullable_parser_nodes__ASignature.id;
8318 if(var_psignaturenode7 == NULL) {
8319 var22 = 1;
8320 } else {
8321 if(cltype23 >= var_psignaturenode7->type->table_size) {
8322 var22 = 0;
8323 } else {
8324 var22 = var_psignaturenode7->type->type_table[cltype23] == idtype24;
8325 }
8326 }
8327 if (!var22) {
8328 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22528);
8329 exit(1);
8330 }
8331 var_pexterncallsnode9 = var_nodearraylist7;
8332 /* <var_pexterncallsnode9:nullable Object> isa nullable AExternCalls */
8333 cltype26 = type_nullable_parser_nodes__AExternCalls.color;
8334 idtype27 = type_nullable_parser_nodes__AExternCalls.id;
8335 if(var_pexterncallsnode9 == NULL) {
8336 var25 = 1;
8337 } else {
8338 if(cltype26 >= var_pexterncallsnode9->type->table_size) {
8339 var25 = 0;
8340 } else {
8341 var25 = var_pexterncallsnode9->type->type_table[cltype26] == idtype27;
8342 }
8343 }
8344 if (!var25) {
8345 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22530);
8346 exit(1);
8347 }
8348 var_pexterncodeblocknode10 = var_nodearraylist8;
8349 /* <var_pexterncodeblocknode10:nullable Object> isa nullable AExternCodeBlock */
8350 cltype29 = type_nullable_parser_nodes__AExternCodeBlock.color;
8351 idtype30 = type_nullable_parser_nodes__AExternCodeBlock.id;
8352 if(var_pexterncodeblocknode10 == NULL) {
8353 var28 = 1;
8354 } else {
8355 if(cltype29 >= var_pexterncodeblocknode10->type->table_size) {
8356 var28 = 0;
8357 } else {
8358 var28 = var_pexterncodeblocknode10->type->type_table[cltype29] == idtype30;
8359 }
8360 }
8361 if (!var28) {
8362 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22532);
8363 exit(1);
8364 }
8365 var31 = NEW_parser_nodes__AExternInitPropdef(&type_parser_nodes__AExternInitPropdef);
8366 var32 = NULL;
8367 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var31->class->vft[COLOR_parser_prod__AExternInitPropdef__init_aexterninitpropdef]))(var31, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwnewnode5, var_pmethidnode6, var_psignaturenode7, var32, var_pexterncallsnode9, var_pexterncodeblocknode10) /* init_aexterninitpropdef on <var31:AExternInitPropdef>*/;
8368 CHECK_NEW_parser_nodes__AExternInitPropdef(var31);
8369 var_ppropdefnode1 = var31;
8370 var_node_list = var_ppropdefnode1;
8371 var33 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction508> */
8372 var34 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var33) /* go_to on <var_p:Parser>*/;
8373 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var34, var_node_list) /* push on <var_p:Parser>*/;
8374 RET_LABEL:;
8375 }
8376 /* method parser#ReduceAction508#action for (self: Object, Parser) */
8377 void VIRTUAL_parser__ReduceAction508__action(val* self, val* p0) {
8378 parser__ReduceAction508__action(self, p0);
8379 RET_LABEL:;
8380 }
8381 /* method parser#ReduceAction509#action for (self: ReduceAction509, Parser) */
8382 void parser__ReduceAction509__action(val* self, val* p0) {
8383 val* var_p /* var p: Parser */;
8384 val* var /* : null */;
8385 val* var_node_list /* var node_list: nullable Object */;
8386 val* var1 /* : nullable Object */;
8387 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
8388 val* var2 /* : nullable Object */;
8389 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
8390 val* var3 /* : nullable Object */;
8391 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
8392 val* var4 /* : nullable Object */;
8393 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8394 val* var5 /* : nullable Object */;
8395 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8396 val* var6 /* : nullable Object */;
8397 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8398 val* var7 /* : nullable Object */;
8399 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8400 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
8401 short int var8 /* : Bool */;
8402 int cltype;
8403 int idtype;
8404 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
8405 short int var9 /* : Bool */;
8406 int cltype10;
8407 int idtype11;
8408 val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */;
8409 short int var12 /* : Bool */;
8410 int cltype13;
8411 int idtype14;
8412 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
8413 short int var15 /* : Bool */;
8414 int cltype16;
8415 int idtype17;
8416 val* var_tstringnode8 /* var tstringnode8: nullable Object */;
8417 short int var18 /* : Bool */;
8418 int cltype19;
8419 int idtype20;
8420 val* var_pexterncallsnode9 /* var pexterncallsnode9: nullable Object */;
8421 short int var21 /* : Bool */;
8422 int cltype22;
8423 int idtype23;
8424 val* var_pexterncodeblocknode10 /* var pexterncodeblocknode10: nullable Object */;
8425 short int var24 /* : Bool */;
8426 int cltype25;
8427 int idtype26;
8428 val* var27 /* : AExternInitPropdef */;
8429 val* var28 /* : null */;
8430 val* var29 /* : null */;
8431 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternInitPropdef */;
8432 long var30 /* : Int */;
8433 long var31 /* : Int */;
8434 var_p = p0;
8435 var = NULL;
8436 var_node_list = var;
8437 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8438 var_nodearraylist7 = var1;
8439 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8440 var_nodearraylist6 = var2;
8441 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8442 var_nodearraylist5 = var3;
8443 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8444 var_nodearraylist4 = var4;
8445 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8446 var_nodearraylist3 = var5;
8447 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8448 var_nodearraylist2 = var6;
8449 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8450 var_nodearraylist1 = var7;
8451 var_pdocnode2 = var_nodearraylist1;
8452 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
8453 cltype = type_nullable_parser_nodes__ADoc.color;
8454 idtype = type_nullable_parser_nodes__ADoc.id;
8455 if(var_pdocnode2 == NULL) {
8456 var8 = 1;
8457 } else {
8458 if(cltype >= var_pdocnode2->type->table_size) {
8459 var8 = 0;
8460 } else {
8461 var8 = var_pdocnode2->type->type_table[cltype] == idtype;
8462 }
8463 }
8464 if (!var8) {
8465 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22561);
8466 exit(1);
8467 }
8468 var_pvisibilitynode4 = var_nodearraylist2;
8469 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
8470 cltype10 = type_nullable_parser_nodes__AVisibility.color;
8471 idtype11 = type_nullable_parser_nodes__AVisibility.id;
8472 if(var_pvisibilitynode4 == NULL) {
8473 var9 = 1;
8474 } else {
8475 if(cltype10 >= var_pvisibilitynode4->type->table_size) {
8476 var9 = 0;
8477 } else {
8478 var9 = var_pvisibilitynode4->type->type_table[cltype10] == idtype11;
8479 }
8480 }
8481 if (!var9) {
8482 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22563);
8483 exit(1);
8484 }
8485 var_tkwnewnode5 = var_nodearraylist3;
8486 /* <var_tkwnewnode5:nullable Object> isa nullable TKwnew */
8487 cltype13 = type_nullable_parser_nodes__TKwnew.color;
8488 idtype14 = type_nullable_parser_nodes__TKwnew.id;
8489 if(var_tkwnewnode5 == NULL) {
8490 var12 = 1;
8491 } else {
8492 if(cltype13 >= var_tkwnewnode5->type->table_size) {
8493 var12 = 0;
8494 } else {
8495 var12 = var_tkwnewnode5->type->type_table[cltype13] == idtype14;
8496 }
8497 }
8498 if (!var12) {
8499 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22565);
8500 exit(1);
8501 }
8502 var_psignaturenode7 = var_nodearraylist4;
8503 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
8504 cltype16 = type_nullable_parser_nodes__ASignature.color;
8505 idtype17 = type_nullable_parser_nodes__ASignature.id;
8506 if(var_psignaturenode7 == NULL) {
8507 var15 = 1;
8508 } else {
8509 if(cltype16 >= var_psignaturenode7->type->table_size) {
8510 var15 = 0;
8511 } else {
8512 var15 = var_psignaturenode7->type->type_table[cltype16] == idtype17;
8513 }
8514 }
8515 if (!var15) {
8516 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22567);
8517 exit(1);
8518 }
8519 var_tstringnode8 = var_nodearraylist5;
8520 /* <var_tstringnode8:nullable Object> isa nullable TString */
8521 cltype19 = type_nullable_parser_nodes__TString.color;
8522 idtype20 = type_nullable_parser_nodes__TString.id;
8523 if(var_tstringnode8 == NULL) {
8524 var18 = 1;
8525 } else {
8526 if(cltype19 >= var_tstringnode8->type->table_size) {
8527 var18 = 0;
8528 } else {
8529 var18 = var_tstringnode8->type->type_table[cltype19] == idtype20;
8530 }
8531 }
8532 if (!var18) {
8533 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22569);
8534 exit(1);
8535 }
8536 var_pexterncallsnode9 = var_nodearraylist6;
8537 /* <var_pexterncallsnode9:nullable Object> isa nullable AExternCalls */
8538 cltype22 = type_nullable_parser_nodes__AExternCalls.color;
8539 idtype23 = type_nullable_parser_nodes__AExternCalls.id;
8540 if(var_pexterncallsnode9 == NULL) {
8541 var21 = 1;
8542 } else {
8543 if(cltype22 >= var_pexterncallsnode9->type->table_size) {
8544 var21 = 0;
8545 } else {
8546 var21 = var_pexterncallsnode9->type->type_table[cltype22] == idtype23;
8547 }
8548 }
8549 if (!var21) {
8550 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22571);
8551 exit(1);
8552 }
8553 var_pexterncodeblocknode10 = var_nodearraylist7;
8554 /* <var_pexterncodeblocknode10:nullable Object> isa nullable AExternCodeBlock */
8555 cltype25 = type_nullable_parser_nodes__AExternCodeBlock.color;
8556 idtype26 = type_nullable_parser_nodes__AExternCodeBlock.id;
8557 if(var_pexterncodeblocknode10 == NULL) {
8558 var24 = 1;
8559 } else {
8560 if(cltype25 >= var_pexterncodeblocknode10->type->table_size) {
8561 var24 = 0;
8562 } else {
8563 var24 = var_pexterncodeblocknode10->type->type_table[cltype25] == idtype26;
8564 }
8565 }
8566 if (!var24) {
8567 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22573);
8568 exit(1);
8569 }
8570 var27 = NEW_parser_nodes__AExternInitPropdef(&type_parser_nodes__AExternInitPropdef);
8571 var28 = NULL;
8572 var29 = NULL;
8573 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var27->class->vft[COLOR_parser_prod__AExternInitPropdef__init_aexterninitpropdef]))(var27, var_pdocnode2, var28, var_pvisibilitynode4, var_tkwnewnode5, var29, var_psignaturenode7, var_tstringnode8, var_pexterncallsnode9, var_pexterncodeblocknode10) /* init_aexterninitpropdef on <var27:AExternInitPropdef>*/;
8574 CHECK_NEW_parser_nodes__AExternInitPropdef(var27);
8575 var_ppropdefnode1 = var27;
8576 var_node_list = var_ppropdefnode1;
8577 var30 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction509> */
8578 var31 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var30) /* go_to on <var_p:Parser>*/;
8579 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var31, var_node_list) /* push on <var_p:Parser>*/;
8580 RET_LABEL:;
8581 }
8582 /* method parser#ReduceAction509#action for (self: Object, Parser) */
8583 void VIRTUAL_parser__ReduceAction509__action(val* self, val* p0) {
8584 parser__ReduceAction509__action(self, p0);
8585 RET_LABEL:;
8586 }
8587 /* method parser#ReduceAction510#action for (self: ReduceAction510, Parser) */
8588 void parser__ReduceAction510__action(val* self, val* p0) {
8589 val* var_p /* var p: Parser */;
8590 val* var /* : null */;
8591 val* var_node_list /* var node_list: nullable Object */;
8592 val* var1 /* : nullable Object */;
8593 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
8594 val* var2 /* : nullable Object */;
8595 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
8596 val* var3 /* : nullable Object */;
8597 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
8598 val* var4 /* : nullable Object */;
8599 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
8600 val* var5 /* : nullable Object */;
8601 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8602 val* var6 /* : nullable Object */;
8603 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8604 val* var7 /* : nullable Object */;
8605 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8606 val* var8 /* : nullable Object */;
8607 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8608 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
8609 short int var9 /* : Bool */;
8610 int cltype;
8611 int idtype;
8612 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
8613 short int var10 /* : Bool */;
8614 int cltype11;
8615 int idtype12;
8616 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
8617 short int var13 /* : Bool */;
8618 int cltype14;
8619 int idtype15;
8620 val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */;
8621 short int var16 /* : Bool */;
8622 int cltype17;
8623 int idtype18;
8624 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
8625 short int var19 /* : Bool */;
8626 int cltype20;
8627 int idtype21;
8628 val* var_tstringnode8 /* var tstringnode8: nullable Object */;
8629 short int var22 /* : Bool */;
8630 int cltype23;
8631 int idtype24;
8632 val* var_pexterncallsnode9 /* var pexterncallsnode9: nullable Object */;
8633 short int var25 /* : Bool */;
8634 int cltype26;
8635 int idtype27;
8636 val* var_pexterncodeblocknode10 /* var pexterncodeblocknode10: nullable Object */;
8637 short int var28 /* : Bool */;
8638 int cltype29;
8639 int idtype30;
8640 val* var31 /* : AExternInitPropdef */;
8641 val* var32 /* : null */;
8642 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternInitPropdef */;
8643 long var33 /* : Int */;
8644 long var34 /* : Int */;
8645 var_p = p0;
8646 var = NULL;
8647 var_node_list = var;
8648 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8649 var_nodearraylist8 = var1;
8650 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8651 var_nodearraylist7 = var2;
8652 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8653 var_nodearraylist6 = var3;
8654 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8655 var_nodearraylist5 = var4;
8656 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8657 var_nodearraylist4 = var5;
8658 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8659 var_nodearraylist3 = var6;
8660 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8661 var_nodearraylist2 = var7;
8662 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8663 var_nodearraylist1 = var8;
8664 var_pdocnode2 = var_nodearraylist1;
8665 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
8666 cltype = type_nullable_parser_nodes__ADoc.color;
8667 idtype = type_nullable_parser_nodes__ADoc.id;
8668 if(var_pdocnode2 == NULL) {
8669 var9 = 1;
8670 } else {
8671 if(cltype >= var_pdocnode2->type->table_size) {
8672 var9 = 0;
8673 } else {
8674 var9 = var_pdocnode2->type->type_table[cltype] == idtype;
8675 }
8676 }
8677 if (!var9) {
8678 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22603);
8679 exit(1);
8680 }
8681 var_tkwredefnode3 = var_nodearraylist2;
8682 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
8683 cltype11 = type_nullable_parser_nodes__TKwredef.color;
8684 idtype12 = type_nullable_parser_nodes__TKwredef.id;
8685 if(var_tkwredefnode3 == NULL) {
8686 var10 = 1;
8687 } else {
8688 if(cltype11 >= var_tkwredefnode3->type->table_size) {
8689 var10 = 0;
8690 } else {
8691 var10 = var_tkwredefnode3->type->type_table[cltype11] == idtype12;
8692 }
8693 }
8694 if (!var10) {
8695 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22605);
8696 exit(1);
8697 }
8698 var_pvisibilitynode4 = var_nodearraylist3;
8699 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
8700 cltype14 = type_nullable_parser_nodes__AVisibility.color;
8701 idtype15 = type_nullable_parser_nodes__AVisibility.id;
8702 if(var_pvisibilitynode4 == NULL) {
8703 var13 = 1;
8704 } else {
8705 if(cltype14 >= var_pvisibilitynode4->type->table_size) {
8706 var13 = 0;
8707 } else {
8708 var13 = var_pvisibilitynode4->type->type_table[cltype14] == idtype15;
8709 }
8710 }
8711 if (!var13) {
8712 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22607);
8713 exit(1);
8714 }
8715 var_tkwnewnode5 = var_nodearraylist4;
8716 /* <var_tkwnewnode5:nullable Object> isa nullable TKwnew */
8717 cltype17 = type_nullable_parser_nodes__TKwnew.color;
8718 idtype18 = type_nullable_parser_nodes__TKwnew.id;
8719 if(var_tkwnewnode5 == NULL) {
8720 var16 = 1;
8721 } else {
8722 if(cltype17 >= var_tkwnewnode5->type->table_size) {
8723 var16 = 0;
8724 } else {
8725 var16 = var_tkwnewnode5->type->type_table[cltype17] == idtype18;
8726 }
8727 }
8728 if (!var16) {
8729 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22609);
8730 exit(1);
8731 }
8732 var_psignaturenode7 = var_nodearraylist5;
8733 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
8734 cltype20 = type_nullable_parser_nodes__ASignature.color;
8735 idtype21 = type_nullable_parser_nodes__ASignature.id;
8736 if(var_psignaturenode7 == NULL) {
8737 var19 = 1;
8738 } else {
8739 if(cltype20 >= var_psignaturenode7->type->table_size) {
8740 var19 = 0;
8741 } else {
8742 var19 = var_psignaturenode7->type->type_table[cltype20] == idtype21;
8743 }
8744 }
8745 if (!var19) {
8746 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22611);
8747 exit(1);
8748 }
8749 var_tstringnode8 = var_nodearraylist6;
8750 /* <var_tstringnode8:nullable Object> isa nullable TString */
8751 cltype23 = type_nullable_parser_nodes__TString.color;
8752 idtype24 = type_nullable_parser_nodes__TString.id;
8753 if(var_tstringnode8 == NULL) {
8754 var22 = 1;
8755 } else {
8756 if(cltype23 >= var_tstringnode8->type->table_size) {
8757 var22 = 0;
8758 } else {
8759 var22 = var_tstringnode8->type->type_table[cltype23] == idtype24;
8760 }
8761 }
8762 if (!var22) {
8763 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22613);
8764 exit(1);
8765 }
8766 var_pexterncallsnode9 = var_nodearraylist7;
8767 /* <var_pexterncallsnode9:nullable Object> isa nullable AExternCalls */
8768 cltype26 = type_nullable_parser_nodes__AExternCalls.color;
8769 idtype27 = type_nullable_parser_nodes__AExternCalls.id;
8770 if(var_pexterncallsnode9 == NULL) {
8771 var25 = 1;
8772 } else {
8773 if(cltype26 >= var_pexterncallsnode9->type->table_size) {
8774 var25 = 0;
8775 } else {
8776 var25 = var_pexterncallsnode9->type->type_table[cltype26] == idtype27;
8777 }
8778 }
8779 if (!var25) {
8780 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22615);
8781 exit(1);
8782 }
8783 var_pexterncodeblocknode10 = var_nodearraylist8;
8784 /* <var_pexterncodeblocknode10:nullable Object> isa nullable AExternCodeBlock */
8785 cltype29 = type_nullable_parser_nodes__AExternCodeBlock.color;
8786 idtype30 = type_nullable_parser_nodes__AExternCodeBlock.id;
8787 if(var_pexterncodeblocknode10 == NULL) {
8788 var28 = 1;
8789 } else {
8790 if(cltype29 >= var_pexterncodeblocknode10->type->table_size) {
8791 var28 = 0;
8792 } else {
8793 var28 = var_pexterncodeblocknode10->type->type_table[cltype29] == idtype30;
8794 }
8795 }
8796 if (!var28) {
8797 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22617);
8798 exit(1);
8799 }
8800 var31 = NEW_parser_nodes__AExternInitPropdef(&type_parser_nodes__AExternInitPropdef);
8801 var32 = NULL;
8802 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var31->class->vft[COLOR_parser_prod__AExternInitPropdef__init_aexterninitpropdef]))(var31, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwnewnode5, var32, var_psignaturenode7, var_tstringnode8, var_pexterncallsnode9, var_pexterncodeblocknode10) /* init_aexterninitpropdef on <var31:AExternInitPropdef>*/;
8803 CHECK_NEW_parser_nodes__AExternInitPropdef(var31);
8804 var_ppropdefnode1 = var31;
8805 var_node_list = var_ppropdefnode1;
8806 var33 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction510> */
8807 var34 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var33) /* go_to on <var_p:Parser>*/;
8808 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var34, var_node_list) /* push on <var_p:Parser>*/;
8809 RET_LABEL:;
8810 }
8811 /* method parser#ReduceAction510#action for (self: Object, Parser) */
8812 void VIRTUAL_parser__ReduceAction510__action(val* self, val* p0) {
8813 parser__ReduceAction510__action(self, p0);
8814 RET_LABEL:;
8815 }
8816 /* method parser#ReduceAction511#action for (self: ReduceAction511, Parser) */
8817 void parser__ReduceAction511__action(val* self, val* p0) {
8818 val* var_p /* var p: Parser */;
8819 val* var /* : null */;
8820 val* var_node_list /* var node_list: nullable Object */;
8821 val* var1 /* : nullable Object */;
8822 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
8823 val* var2 /* : nullable Object */;
8824 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
8825 val* var3 /* : nullable Object */;
8826 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
8827 val* var4 /* : nullable Object */;
8828 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
8829 val* var5 /* : nullable Object */;
8830 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8831 val* var6 /* : nullable Object */;
8832 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8833 val* var7 /* : nullable Object */;
8834 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8835 val* var8 /* : nullable Object */;
8836 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8837 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
8838 short int var9 /* : Bool */;
8839 int cltype;
8840 int idtype;
8841 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
8842 short int var10 /* : Bool */;
8843 int cltype11;
8844 int idtype12;
8845 val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */;
8846 short int var13 /* : Bool */;
8847 int cltype14;
8848 int idtype15;
8849 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
8850 short int var16 /* : Bool */;
8851 int cltype17;
8852 int idtype18;
8853 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
8854 short int var19 /* : Bool */;
8855 int cltype20;
8856 int idtype21;
8857 val* var_tstringnode8 /* var tstringnode8: nullable Object */;
8858 short int var22 /* : Bool */;
8859 int cltype23;
8860 int idtype24;
8861 val* var_pexterncallsnode9 /* var pexterncallsnode9: nullable Object */;
8862 short int var25 /* : Bool */;
8863 int cltype26;
8864 int idtype27;
8865 val* var_pexterncodeblocknode10 /* var pexterncodeblocknode10: nullable Object */;
8866 short int var28 /* : Bool */;
8867 int cltype29;
8868 int idtype30;
8869 val* var31 /* : AExternInitPropdef */;
8870 val* var32 /* : null */;
8871 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternInitPropdef */;
8872 long var33 /* : Int */;
8873 long var34 /* : Int */;
8874 var_p = p0;
8875 var = NULL;
8876 var_node_list = var;
8877 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8878 var_nodearraylist8 = var1;
8879 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8880 var_nodearraylist7 = var2;
8881 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8882 var_nodearraylist6 = var3;
8883 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8884 var_nodearraylist5 = var4;
8885 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8886 var_nodearraylist4 = var5;
8887 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8888 var_nodearraylist3 = var6;
8889 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8890 var_nodearraylist2 = var7;
8891 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
8892 var_nodearraylist1 = var8;
8893 var_pdocnode2 = var_nodearraylist1;
8894 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
8895 cltype = type_nullable_parser_nodes__ADoc.color;
8896 idtype = type_nullable_parser_nodes__ADoc.id;
8897 if(var_pdocnode2 == NULL) {
8898 var9 = 1;
8899 } else {
8900 if(cltype >= var_pdocnode2->type->table_size) {
8901 var9 = 0;
8902 } else {
8903 var9 = var_pdocnode2->type->type_table[cltype] == idtype;
8904 }
8905 }
8906 if (!var9) {
8907 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22647);
8908 exit(1);
8909 }
8910 var_pvisibilitynode4 = var_nodearraylist2;
8911 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
8912 cltype11 = type_nullable_parser_nodes__AVisibility.color;
8913 idtype12 = type_nullable_parser_nodes__AVisibility.id;
8914 if(var_pvisibilitynode4 == NULL) {
8915 var10 = 1;
8916 } else {
8917 if(cltype11 >= var_pvisibilitynode4->type->table_size) {
8918 var10 = 0;
8919 } else {
8920 var10 = var_pvisibilitynode4->type->type_table[cltype11] == idtype12;
8921 }
8922 }
8923 if (!var10) {
8924 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22649);
8925 exit(1);
8926 }
8927 var_tkwnewnode5 = var_nodearraylist3;
8928 /* <var_tkwnewnode5:nullable Object> isa nullable TKwnew */
8929 cltype14 = type_nullable_parser_nodes__TKwnew.color;
8930 idtype15 = type_nullable_parser_nodes__TKwnew.id;
8931 if(var_tkwnewnode5 == NULL) {
8932 var13 = 1;
8933 } else {
8934 if(cltype14 >= var_tkwnewnode5->type->table_size) {
8935 var13 = 0;
8936 } else {
8937 var13 = var_tkwnewnode5->type->type_table[cltype14] == idtype15;
8938 }
8939 }
8940 if (!var13) {
8941 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22651);
8942 exit(1);
8943 }
8944 var_pmethidnode6 = var_nodearraylist4;
8945 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
8946 cltype17 = type_nullable_parser_nodes__AMethid.color;
8947 idtype18 = type_nullable_parser_nodes__AMethid.id;
8948 if(var_pmethidnode6 == NULL) {
8949 var16 = 1;
8950 } else {
8951 if(cltype17 >= var_pmethidnode6->type->table_size) {
8952 var16 = 0;
8953 } else {
8954 var16 = var_pmethidnode6->type->type_table[cltype17] == idtype18;
8955 }
8956 }
8957 if (!var16) {
8958 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22653);
8959 exit(1);
8960 }
8961 var_psignaturenode7 = var_nodearraylist5;
8962 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
8963 cltype20 = type_nullable_parser_nodes__ASignature.color;
8964 idtype21 = type_nullable_parser_nodes__ASignature.id;
8965 if(var_psignaturenode7 == NULL) {
8966 var19 = 1;
8967 } else {
8968 if(cltype20 >= var_psignaturenode7->type->table_size) {
8969 var19 = 0;
8970 } else {
8971 var19 = var_psignaturenode7->type->type_table[cltype20] == idtype21;
8972 }
8973 }
8974 if (!var19) {
8975 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22655);
8976 exit(1);
8977 }
8978 var_tstringnode8 = var_nodearraylist6;
8979 /* <var_tstringnode8:nullable Object> isa nullable TString */
8980 cltype23 = type_nullable_parser_nodes__TString.color;
8981 idtype24 = type_nullable_parser_nodes__TString.id;
8982 if(var_tstringnode8 == NULL) {
8983 var22 = 1;
8984 } else {
8985 if(cltype23 >= var_tstringnode8->type->table_size) {
8986 var22 = 0;
8987 } else {
8988 var22 = var_tstringnode8->type->type_table[cltype23] == idtype24;
8989 }
8990 }
8991 if (!var22) {
8992 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22657);
8993 exit(1);
8994 }
8995 var_pexterncallsnode9 = var_nodearraylist7;
8996 /* <var_pexterncallsnode9:nullable Object> isa nullable AExternCalls */
8997 cltype26 = type_nullable_parser_nodes__AExternCalls.color;
8998 idtype27 = type_nullable_parser_nodes__AExternCalls.id;
8999 if(var_pexterncallsnode9 == NULL) {
9000 var25 = 1;
9001 } else {
9002 if(cltype26 >= var_pexterncallsnode9->type->table_size) {
9003 var25 = 0;
9004 } else {
9005 var25 = var_pexterncallsnode9->type->type_table[cltype26] == idtype27;
9006 }
9007 }
9008 if (!var25) {
9009 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22659);
9010 exit(1);
9011 }
9012 var_pexterncodeblocknode10 = var_nodearraylist8;
9013 /* <var_pexterncodeblocknode10:nullable Object> isa nullable AExternCodeBlock */
9014 cltype29 = type_nullable_parser_nodes__AExternCodeBlock.color;
9015 idtype30 = type_nullable_parser_nodes__AExternCodeBlock.id;
9016 if(var_pexterncodeblocknode10 == NULL) {
9017 var28 = 1;
9018 } else {
9019 if(cltype29 >= var_pexterncodeblocknode10->type->table_size) {
9020 var28 = 0;
9021 } else {
9022 var28 = var_pexterncodeblocknode10->type->type_table[cltype29] == idtype30;
9023 }
9024 }
9025 if (!var28) {
9026 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22661);
9027 exit(1);
9028 }
9029 var31 = NEW_parser_nodes__AExternInitPropdef(&type_parser_nodes__AExternInitPropdef);
9030 var32 = NULL;
9031 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var31->class->vft[COLOR_parser_prod__AExternInitPropdef__init_aexterninitpropdef]))(var31, var_pdocnode2, var32, var_pvisibilitynode4, var_tkwnewnode5, var_pmethidnode6, var_psignaturenode7, var_tstringnode8, var_pexterncallsnode9, var_pexterncodeblocknode10) /* init_aexterninitpropdef on <var31:AExternInitPropdef>*/;
9032 CHECK_NEW_parser_nodes__AExternInitPropdef(var31);
9033 var_ppropdefnode1 = var31;
9034 var_node_list = var_ppropdefnode1;
9035 var33 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction511> */
9036 var34 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var33) /* go_to on <var_p:Parser>*/;
9037 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var34, var_node_list) /* push on <var_p:Parser>*/;
9038 RET_LABEL:;
9039 }
9040 /* method parser#ReduceAction511#action for (self: Object, Parser) */
9041 void VIRTUAL_parser__ReduceAction511__action(val* self, val* p0) {
9042 parser__ReduceAction511__action(self, p0);
9043 RET_LABEL:;
9044 }
9045 /* method parser#ReduceAction512#action for (self: ReduceAction512, Parser) */
9046 void parser__ReduceAction512__action(val* self, val* p0) {
9047 val* var_p /* var p: Parser */;
9048 val* var /* : null */;
9049 val* var_node_list /* var node_list: nullable Object */;
9050 val* var1 /* : nullable Object */;
9051 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
9052 val* var2 /* : nullable Object */;
9053 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
9054 val* var3 /* : nullable Object */;
9055 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
9056 val* var4 /* : nullable Object */;
9057 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
9058 val* var5 /* : nullable Object */;
9059 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
9060 val* var6 /* : nullable Object */;
9061 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9062 val* var7 /* : nullable Object */;
9063 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9064 val* var8 /* : nullable Object */;
9065 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9066 val* var9 /* : nullable Object */;
9067 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9068 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
9069 short int var10 /* : Bool */;
9070 int cltype;
9071 int idtype;
9072 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
9073 short int var11 /* : Bool */;
9074 int cltype12;
9075 int idtype13;
9076 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
9077 short int var14 /* : Bool */;
9078 int cltype15;
9079 int idtype16;
9080 val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */;
9081 short int var17 /* : Bool */;
9082 int cltype18;
9083 int idtype19;
9084 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
9085 short int var20 /* : Bool */;
9086 int cltype21;
9087 int idtype22;
9088 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
9089 short int var23 /* : Bool */;
9090 int cltype24;
9091 int idtype25;
9092 val* var_tstringnode8 /* var tstringnode8: nullable Object */;
9093 short int var26 /* : Bool */;
9094 int cltype27;
9095 int idtype28;
9096 val* var_pexterncallsnode9 /* var pexterncallsnode9: nullable Object */;
9097 short int var29 /* : Bool */;
9098 int cltype30;
9099 int idtype31;
9100 val* var_pexterncodeblocknode10 /* var pexterncodeblocknode10: nullable Object */;
9101 short int var32 /* : Bool */;
9102 int cltype33;
9103 int idtype34;
9104 val* var35 /* : AExternInitPropdef */;
9105 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternInitPropdef */;
9106 long var36 /* : Int */;
9107 long var37 /* : Int */;
9108 var_p = p0;
9109 var = NULL;
9110 var_node_list = var;
9111 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9112 var_nodearraylist9 = var1;
9113 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9114 var_nodearraylist8 = var2;
9115 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9116 var_nodearraylist7 = var3;
9117 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9118 var_nodearraylist6 = var4;
9119 var5 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9120 var_nodearraylist5 = var5;
9121 var6 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9122 var_nodearraylist4 = var6;
9123 var7 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9124 var_nodearraylist3 = var7;
9125 var8 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9126 var_nodearraylist2 = var8;
9127 var9 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9128 var_nodearraylist1 = var9;
9129 var_pdocnode2 = var_nodearraylist1;
9130 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
9131 cltype = type_nullable_parser_nodes__ADoc.color;
9132 idtype = type_nullable_parser_nodes__ADoc.id;
9133 if(var_pdocnode2 == NULL) {
9134 var10 = 1;
9135 } else {
9136 if(cltype >= var_pdocnode2->type->table_size) {
9137 var10 = 0;
9138 } else {
9139 var10 = var_pdocnode2->type->type_table[cltype] == idtype;
9140 }
9141 }
9142 if (!var10) {
9143 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22692);
9144 exit(1);
9145 }
9146 var_tkwredefnode3 = var_nodearraylist2;
9147 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
9148 cltype12 = type_nullable_parser_nodes__TKwredef.color;
9149 idtype13 = type_nullable_parser_nodes__TKwredef.id;
9150 if(var_tkwredefnode3 == NULL) {
9151 var11 = 1;
9152 } else {
9153 if(cltype12 >= var_tkwredefnode3->type->table_size) {
9154 var11 = 0;
9155 } else {
9156 var11 = var_tkwredefnode3->type->type_table[cltype12] == idtype13;
9157 }
9158 }
9159 if (!var11) {
9160 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22694);
9161 exit(1);
9162 }
9163 var_pvisibilitynode4 = var_nodearraylist3;
9164 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
9165 cltype15 = type_nullable_parser_nodes__AVisibility.color;
9166 idtype16 = type_nullable_parser_nodes__AVisibility.id;
9167 if(var_pvisibilitynode4 == NULL) {
9168 var14 = 1;
9169 } else {
9170 if(cltype15 >= var_pvisibilitynode4->type->table_size) {
9171 var14 = 0;
9172 } else {
9173 var14 = var_pvisibilitynode4->type->type_table[cltype15] == idtype16;
9174 }
9175 }
9176 if (!var14) {
9177 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22696);
9178 exit(1);
9179 }
9180 var_tkwnewnode5 = var_nodearraylist4;
9181 /* <var_tkwnewnode5:nullable Object> isa nullable TKwnew */
9182 cltype18 = type_nullable_parser_nodes__TKwnew.color;
9183 idtype19 = type_nullable_parser_nodes__TKwnew.id;
9184 if(var_tkwnewnode5 == NULL) {
9185 var17 = 1;
9186 } else {
9187 if(cltype18 >= var_tkwnewnode5->type->table_size) {
9188 var17 = 0;
9189 } else {
9190 var17 = var_tkwnewnode5->type->type_table[cltype18] == idtype19;
9191 }
9192 }
9193 if (!var17) {
9194 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22698);
9195 exit(1);
9196 }
9197 var_pmethidnode6 = var_nodearraylist5;
9198 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
9199 cltype21 = type_nullable_parser_nodes__AMethid.color;
9200 idtype22 = type_nullable_parser_nodes__AMethid.id;
9201 if(var_pmethidnode6 == NULL) {
9202 var20 = 1;
9203 } else {
9204 if(cltype21 >= var_pmethidnode6->type->table_size) {
9205 var20 = 0;
9206 } else {
9207 var20 = var_pmethidnode6->type->type_table[cltype21] == idtype22;
9208 }
9209 }
9210 if (!var20) {
9211 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22700);
9212 exit(1);
9213 }
9214 var_psignaturenode7 = var_nodearraylist6;
9215 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
9216 cltype24 = type_nullable_parser_nodes__ASignature.color;
9217 idtype25 = type_nullable_parser_nodes__ASignature.id;
9218 if(var_psignaturenode7 == NULL) {
9219 var23 = 1;
9220 } else {
9221 if(cltype24 >= var_psignaturenode7->type->table_size) {
9222 var23 = 0;
9223 } else {
9224 var23 = var_psignaturenode7->type->type_table[cltype24] == idtype25;
9225 }
9226 }
9227 if (!var23) {
9228 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22702);
9229 exit(1);
9230 }
9231 var_tstringnode8 = var_nodearraylist7;
9232 /* <var_tstringnode8:nullable Object> isa nullable TString */
9233 cltype27 = type_nullable_parser_nodes__TString.color;
9234 idtype28 = type_nullable_parser_nodes__TString.id;
9235 if(var_tstringnode8 == NULL) {
9236 var26 = 1;
9237 } else {
9238 if(cltype27 >= var_tstringnode8->type->table_size) {
9239 var26 = 0;
9240 } else {
9241 var26 = var_tstringnode8->type->type_table[cltype27] == idtype28;
9242 }
9243 }
9244 if (!var26) {
9245 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22704);
9246 exit(1);
9247 }
9248 var_pexterncallsnode9 = var_nodearraylist8;
9249 /* <var_pexterncallsnode9:nullable Object> isa nullable AExternCalls */
9250 cltype30 = type_nullable_parser_nodes__AExternCalls.color;
9251 idtype31 = type_nullable_parser_nodes__AExternCalls.id;
9252 if(var_pexterncallsnode9 == NULL) {
9253 var29 = 1;
9254 } else {
9255 if(cltype30 >= var_pexterncallsnode9->type->table_size) {
9256 var29 = 0;
9257 } else {
9258 var29 = var_pexterncallsnode9->type->type_table[cltype30] == idtype31;
9259 }
9260 }
9261 if (!var29) {
9262 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22706);
9263 exit(1);
9264 }
9265 var_pexterncodeblocknode10 = var_nodearraylist9;
9266 /* <var_pexterncodeblocknode10:nullable Object> isa nullable AExternCodeBlock */
9267 cltype33 = type_nullable_parser_nodes__AExternCodeBlock.color;
9268 idtype34 = type_nullable_parser_nodes__AExternCodeBlock.id;
9269 if(var_pexterncodeblocknode10 == NULL) {
9270 var32 = 1;
9271 } else {
9272 if(cltype33 >= var_pexterncodeblocknode10->type->table_size) {
9273 var32 = 0;
9274 } else {
9275 var32 = var_pexterncodeblocknode10->type->type_table[cltype33] == idtype34;
9276 }
9277 }
9278 if (!var32) {
9279 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22708);
9280 exit(1);
9281 }
9282 var35 = NEW_parser_nodes__AExternInitPropdef(&type_parser_nodes__AExternInitPropdef);
9283 ((void (*)(val*, val*, val*, val*, val*, val*, val*, val*, val*, val*))(var35->class->vft[COLOR_parser_prod__AExternInitPropdef__init_aexterninitpropdef]))(var35, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwnewnode5, var_pmethidnode6, var_psignaturenode7, var_tstringnode8, var_pexterncallsnode9, var_pexterncodeblocknode10) /* init_aexterninitpropdef on <var35:AExternInitPropdef>*/;
9284 CHECK_NEW_parser_nodes__AExternInitPropdef(var35);
9285 var_ppropdefnode1 = var35;
9286 var_node_list = var_ppropdefnode1;
9287 var36 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction512> */
9288 var37 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var36) /* go_to on <var_p:Parser>*/;
9289 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var37, var_node_list) /* push on <var_p:Parser>*/;
9290 RET_LABEL:;
9291 }
9292 /* method parser#ReduceAction512#action for (self: Object, Parser) */
9293 void VIRTUAL_parser__ReduceAction512__action(val* self, val* p0) {
9294 parser__ReduceAction512__action(self, p0);
9295 RET_LABEL:;
9296 }
9297 /* method parser#ReduceAction513#action for (self: ReduceAction513, Parser) */
9298 void parser__ReduceAction513__action(val* self, val* p0) {
9299 val* var_p /* var p: Parser */;
9300 val* var /* : null */;
9301 val* var_node_list /* var node_list: nullable Object */;
9302 val* var1 /* : nullable Object */;
9303 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9304 val* var2 /* : nullable Object */;
9305 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9306 val* var_pannotationsnode1 /* var pannotationsnode1: nullable Object */;
9307 long var3 /* : Int */;
9308 long var4 /* : Int */;
9309 var_p = p0;
9310 var = NULL;
9311 var_node_list = var;
9312 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9313 var_nodearraylist2 = var1;
9314 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9315 var_nodearraylist1 = var2;
9316 var_pannotationsnode1 = var_nodearraylist2;
9317 var_node_list = var_pannotationsnode1;
9318 var3 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction513> */
9319 var4 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var3) /* go_to on <var_p:Parser>*/;
9320 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var4, var_node_list) /* push on <var_p:Parser>*/;
9321 RET_LABEL:;
9322 }
9323 /* method parser#ReduceAction513#action for (self: Object, Parser) */
9324 void VIRTUAL_parser__ReduceAction513__action(val* self, val* p0) {
9325 parser__ReduceAction513__action(self, p0);
9326 RET_LABEL:;
9327 }
9328 /* method parser#ReduceAction514#action for (self: ReduceAction514, Parser) */
9329 void parser__ReduceAction514__action(val* self, val* p0) {
9330 val* var_p /* var p: Parser */;
9331 val* var /* : null */;
9332 val* var_node_list /* var node_list: nullable Object */;
9333 val* var1 /* : nullable Object */;
9334 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9335 val* var2 /* : nullable Object */;
9336 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9337 val* var3 /* : nullable Object */;
9338 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9339 val* var4 /* : nullable Object */;
9340 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9341 val* var_pannotationsnode1 /* var pannotationsnode1: nullable Object */;
9342 long var5 /* : Int */;
9343 long var6 /* : Int */;
9344 var_p = p0;
9345 var = NULL;
9346 var_node_list = var;
9347 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9348 var_nodearraylist4 = var1;
9349 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9350 var_nodearraylist3 = var2;
9351 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9352 var_nodearraylist2 = var3;
9353 var4 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9354 var_nodearraylist1 = var4;
9355 var_pannotationsnode1 = var_nodearraylist3;
9356 var_node_list = var_pannotationsnode1;
9357 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction514> */
9358 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
9359 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
9360 RET_LABEL:;
9361 }
9362 /* method parser#ReduceAction514#action for (self: Object, Parser) */
9363 void VIRTUAL_parser__ReduceAction514__action(val* self, val* p0) {
9364 parser__ReduceAction514__action(self, p0);
9365 RET_LABEL:;
9366 }
9367 /* method parser#ReduceAction516#action for (self: ReduceAction516, Parser) */
9368 void parser__ReduceAction516__action(val* self, val* p0) {
9369 val* var_p /* var p: Parser */;
9370 val* var /* : null */;
9371 val* var_node_list /* var node_list: nullable Object */;
9372 val* var1 /* : nullable Object */;
9373 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9374 val* var2 /* : nullable Object */;
9375 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9376 val* var3 /* : nullable Object */;
9377 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9378 val* var_pannotationsnode1 /* var pannotationsnode1: nullable Object */;
9379 long var4 /* : Int */;
9380 long var5 /* : Int */;
9381 var_p = p0;
9382 var = NULL;
9383 var_node_list = var;
9384 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9385 var_nodearraylist3 = var1;
9386 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9387 var_nodearraylist2 = var2;
9388 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9389 var_nodearraylist1 = var3;
9390 var_pannotationsnode1 = var_nodearraylist3;
9391 var_node_list = var_pannotationsnode1;
9392 var4 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction516> */
9393 var5 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var4) /* go_to on <var_p:Parser>*/;
9394 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var5, var_node_list) /* push on <var_p:Parser>*/;
9395 RET_LABEL:;
9396 }
9397 /* method parser#ReduceAction516#action for (self: Object, Parser) */
9398 void VIRTUAL_parser__ReduceAction516__action(val* self, val* p0) {
9399 parser__ReduceAction516__action(self, p0);
9400 RET_LABEL:;
9401 }
9402 /* method parser#ReduceAction517#action for (self: ReduceAction517, Parser) */
9403 void parser__ReduceAction517__action(val* self, val* p0) {
9404 val* var_p /* var p: Parser */;
9405 val* var /* : null */;
9406 val* var_node_list /* var node_list: nullable Object */;
9407 val* var1 /* : nullable Object */;
9408 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9409 val* var_tkwreadablenode3 /* var tkwreadablenode3: nullable Object */;
9410 short int var2 /* : Bool */;
9411 int cltype;
9412 int idtype;
9413 val* var3 /* : AReadAble */;
9414 val* var4 /* : null */;
9415 val* var_pablenode1 /* var pablenode1: nullable AReadAble */;
9416 long var5 /* : Int */;
9417 long var6 /* : Int */;
9418 var_p = p0;
9419 var = NULL;
9420 var_node_list = var;
9421 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9422 var_nodearraylist1 = var1;
9423 var_tkwreadablenode3 = var_nodearraylist1;
9424 /* <var_tkwreadablenode3:nullable Object> isa nullable TKwreadable */
9425 cltype = type_nullable_parser_nodes__TKwreadable.color;
9426 idtype = type_nullable_parser_nodes__TKwreadable.id;
9427 if(var_tkwreadablenode3 == NULL) {
9428 var2 = 1;
9429 } else {
9430 if(cltype >= var_tkwreadablenode3->type->table_size) {
9431 var2 = 0;
9432 } else {
9433 var2 = var_tkwreadablenode3->type->type_table[cltype] == idtype;
9434 }
9435 }
9436 if (!var2) {
9437 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22770);
9438 exit(1);
9439 }
9440 var3 = NEW_parser_nodes__AReadAble(&type_parser_nodes__AReadAble);
9441 var4 = NULL;
9442 ((void (*)(val*, val*, val*))(var3->class->vft[COLOR_parser_prod__AReadAble__init_areadable]))(var3, var4, var_tkwreadablenode3) /* init_areadable on <var3:AReadAble>*/;
9443 CHECK_NEW_parser_nodes__AReadAble(var3);
9444 var_pablenode1 = var3;
9445 var_node_list = var_pablenode1;
9446 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction517> */
9447 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
9448 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
9449 RET_LABEL:;
9450 }
9451 /* method parser#ReduceAction517#action for (self: Object, Parser) */
9452 void VIRTUAL_parser__ReduceAction517__action(val* self, val* p0) {
9453 parser__ReduceAction517__action(self, p0);
9454 RET_LABEL:;
9455 }
9456 /* method parser#ReduceAction518#action for (self: ReduceAction518, Parser) */
9457 void parser__ReduceAction518__action(val* self, val* p0) {
9458 val* var_p /* var p: Parser */;
9459 val* var /* : null */;
9460 val* var_node_list /* var node_list: nullable Object */;
9461 val* var1 /* : nullable Object */;
9462 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9463 val* var2 /* : nullable Object */;
9464 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9465 val* var_tkwredefnode2 /* var tkwredefnode2: nullable Object */;
9466 short int var3 /* : Bool */;
9467 int cltype;
9468 int idtype;
9469 val* var_tkwreadablenode3 /* var tkwreadablenode3: nullable Object */;
9470 short int var4 /* : Bool */;
9471 int cltype5;
9472 int idtype6;
9473 val* var7 /* : AReadAble */;
9474 val* var_pablenode1 /* var pablenode1: nullable AReadAble */;
9475 long var8 /* : Int */;
9476 long var9 /* : Int */;
9477 var_p = p0;
9478 var = NULL;
9479 var_node_list = var;
9480 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9481 var_nodearraylist2 = var1;
9482 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9483 var_nodearraylist1 = var2;
9484 var_tkwredefnode2 = var_nodearraylist1;
9485 /* <var_tkwredefnode2:nullable Object> isa nullable TKwredef */
9486 cltype = type_nullable_parser_nodes__TKwredef.color;
9487 idtype = type_nullable_parser_nodes__TKwredef.id;
9488 if(var_tkwredefnode2 == NULL) {
9489 var3 = 1;
9490 } else {
9491 if(cltype >= var_tkwredefnode2->type->table_size) {
9492 var3 = 0;
9493 } else {
9494 var3 = var_tkwredefnode2->type->type_table[cltype] == idtype;
9495 }
9496 }
9497 if (!var3) {
9498 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22787);
9499 exit(1);
9500 }
9501 var_tkwreadablenode3 = var_nodearraylist2;
9502 /* <var_tkwreadablenode3:nullable Object> isa nullable TKwreadable */
9503 cltype5 = type_nullable_parser_nodes__TKwreadable.color;
9504 idtype6 = type_nullable_parser_nodes__TKwreadable.id;
9505 if(var_tkwreadablenode3 == NULL) {
9506 var4 = 1;
9507 } else {
9508 if(cltype5 >= var_tkwreadablenode3->type->table_size) {
9509 var4 = 0;
9510 } else {
9511 var4 = var_tkwreadablenode3->type->type_table[cltype5] == idtype6;
9512 }
9513 }
9514 if (!var4) {
9515 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22789);
9516 exit(1);
9517 }
9518 var7 = NEW_parser_nodes__AReadAble(&type_parser_nodes__AReadAble);
9519 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AReadAble__init_areadable]))(var7, var_tkwredefnode2, var_tkwreadablenode3) /* init_areadable on <var7:AReadAble>*/;
9520 CHECK_NEW_parser_nodes__AReadAble(var7);
9521 var_pablenode1 = var7;
9522 var_node_list = var_pablenode1;
9523 var8 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction518> */
9524 var9 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var8) /* go_to on <var_p:Parser>*/;
9525 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var9, var_node_list) /* push on <var_p:Parser>*/;
9526 RET_LABEL:;
9527 }
9528 /* method parser#ReduceAction518#action for (self: Object, Parser) */
9529 void VIRTUAL_parser__ReduceAction518__action(val* self, val* p0) {
9530 parser__ReduceAction518__action(self, p0);
9531 RET_LABEL:;
9532 }
9533 /* method parser#ReduceAction519#action for (self: ReduceAction519, Parser) */
9534 void parser__ReduceAction519__action(val* self, val* p0) {
9535 val* var_p /* var p: Parser */;
9536 val* var /* : null */;
9537 val* var_node_list /* var node_list: nullable Object */;
9538 val* var1 /* : nullable Object */;
9539 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9540 val* var_tkwwritablenode4 /* var tkwwritablenode4: nullable Object */;
9541 short int var2 /* : Bool */;
9542 int cltype;
9543 int idtype;
9544 val* var3 /* : AWriteAble */;
9545 val* var4 /* : null */;
9546 val* var5 /* : null */;
9547 val* var_pablenode1 /* var pablenode1: nullable AWriteAble */;
9548 long var6 /* : Int */;
9549 long var7 /* : Int */;
9550 var_p = p0;
9551 var = NULL;
9552 var_node_list = var;
9553 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9554 var_nodearraylist1 = var1;
9555 var_tkwwritablenode4 = var_nodearraylist1;
9556 /* <var_tkwwritablenode4:nullable Object> isa nullable TKwwritable */
9557 cltype = type_nullable_parser_nodes__TKwwritable.color;
9558 idtype = type_nullable_parser_nodes__TKwwritable.id;
9559 if(var_tkwwritablenode4 == NULL) {
9560 var2 = 1;
9561 } else {
9562 if(cltype >= var_tkwwritablenode4->type->table_size) {
9563 var2 = 0;
9564 } else {
9565 var2 = var_tkwwritablenode4->type->type_table[cltype] == idtype;
9566 }
9567 }
9568 if (!var2) {
9569 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22805);
9570 exit(1);
9571 }
9572 var3 = NEW_parser_nodes__AWriteAble(&type_parser_nodes__AWriteAble);
9573 var4 = NULL;
9574 var5 = NULL;
9575 ((void (*)(val*, val*, val*, val*))(var3->class->vft[COLOR_parser_prod__AWriteAble__init_awriteable]))(var3, var4, var5, var_tkwwritablenode4) /* init_awriteable on <var3:AWriteAble>*/;
9576 CHECK_NEW_parser_nodes__AWriteAble(var3);
9577 var_pablenode1 = var3;
9578 var_node_list = var_pablenode1;
9579 var6 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction519> */
9580 var7 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var6) /* go_to on <var_p:Parser>*/;
9581 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var7, var_node_list) /* push on <var_p:Parser>*/;
9582 RET_LABEL:;
9583 }
9584 /* method parser#ReduceAction519#action for (self: Object, Parser) */
9585 void VIRTUAL_parser__ReduceAction519__action(val* self, val* p0) {
9586 parser__ReduceAction519__action(self, p0);
9587 RET_LABEL:;
9588 }
9589 /* method parser#ReduceAction520#action for (self: ReduceAction520, Parser) */
9590 void parser__ReduceAction520__action(val* self, val* p0) {
9591 val* var_p /* var p: Parser */;
9592 val* var /* : null */;
9593 val* var_node_list /* var node_list: nullable Object */;
9594 val* var1 /* : nullable Object */;
9595 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9596 val* var2 /* : nullable Object */;
9597 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9598 val* var_tkwredefnode2 /* var tkwredefnode2: nullable Object */;
9599 short int var3 /* : Bool */;
9600 int cltype;
9601 int idtype;
9602 val* var_tkwwritablenode4 /* var tkwwritablenode4: nullable Object */;
9603 short int var4 /* : Bool */;
9604 int cltype5;
9605 int idtype6;
9606 val* var7 /* : AWriteAble */;
9607 val* var8 /* : null */;
9608 val* var_pablenode1 /* var pablenode1: nullable AWriteAble */;
9609 long var9 /* : Int */;
9610 long var10 /* : Int */;
9611 var_p = p0;
9612 var = NULL;
9613 var_node_list = var;
9614 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9615 var_nodearraylist2 = var1;
9616 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9617 var_nodearraylist1 = var2;
9618 var_tkwredefnode2 = var_nodearraylist1;
9619 /* <var_tkwredefnode2:nullable Object> isa nullable TKwredef */
9620 cltype = type_nullable_parser_nodes__TKwredef.color;
9621 idtype = type_nullable_parser_nodes__TKwredef.id;
9622 if(var_tkwredefnode2 == NULL) {
9623 var3 = 1;
9624 } else {
9625 if(cltype >= var_tkwredefnode2->type->table_size) {
9626 var3 = 0;
9627 } else {
9628 var3 = var_tkwredefnode2->type->type_table[cltype] == idtype;
9629 }
9630 }
9631 if (!var3) {
9632 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22823);
9633 exit(1);
9634 }
9635 var_tkwwritablenode4 = var_nodearraylist2;
9636 /* <var_tkwwritablenode4:nullable Object> isa nullable TKwwritable */
9637 cltype5 = type_nullable_parser_nodes__TKwwritable.color;
9638 idtype6 = type_nullable_parser_nodes__TKwwritable.id;
9639 if(var_tkwwritablenode4 == NULL) {
9640 var4 = 1;
9641 } else {
9642 if(cltype5 >= var_tkwwritablenode4->type->table_size) {
9643 var4 = 0;
9644 } else {
9645 var4 = var_tkwwritablenode4->type->type_table[cltype5] == idtype6;
9646 }
9647 }
9648 if (!var4) {
9649 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22825);
9650 exit(1);
9651 }
9652 var7 = NEW_parser_nodes__AWriteAble(&type_parser_nodes__AWriteAble);
9653 var8 = NULL;
9654 ((void (*)(val*, val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AWriteAble__init_awriteable]))(var7, var_tkwredefnode2, var8, var_tkwwritablenode4) /* init_awriteable on <var7:AWriteAble>*/;
9655 CHECK_NEW_parser_nodes__AWriteAble(var7);
9656 var_pablenode1 = var7;
9657 var_node_list = var_pablenode1;
9658 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction520> */
9659 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
9660 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
9661 RET_LABEL:;
9662 }
9663 /* method parser#ReduceAction520#action for (self: Object, Parser) */
9664 void VIRTUAL_parser__ReduceAction520__action(val* self, val* p0) {
9665 parser__ReduceAction520__action(self, p0);
9666 RET_LABEL:;
9667 }
9668 /* method parser#ReduceAction521#action for (self: ReduceAction521, Parser) */
9669 void parser__ReduceAction521__action(val* self, val* p0) {
9670 val* var_p /* var p: Parser */;
9671 val* var /* : null */;
9672 val* var_node_list /* var node_list: nullable Object */;
9673 val* var1 /* : nullable Object */;
9674 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9675 val* var2 /* : nullable Object */;
9676 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9677 val* var_pvisibilitynode3 /* var pvisibilitynode3: nullable Object */;
9678 short int var3 /* : Bool */;
9679 int cltype;
9680 int idtype;
9681 val* var_tkwwritablenode4 /* var tkwwritablenode4: nullable Object */;
9682 short int var4 /* : Bool */;
9683 int cltype5;
9684 int idtype6;
9685 val* var7 /* : AWriteAble */;
9686 val* var8 /* : null */;
9687 val* var_pablenode1 /* var pablenode1: nullable AWriteAble */;
9688 long var9 /* : Int */;
9689 long var10 /* : Int */;
9690 var_p = p0;
9691 var = NULL;
9692 var_node_list = var;
9693 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9694 var_nodearraylist2 = var1;
9695 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9696 var_nodearraylist1 = var2;
9697 var_pvisibilitynode3 = var_nodearraylist1;
9698 /* <var_pvisibilitynode3:nullable Object> isa nullable AVisibility */
9699 cltype = type_nullable_parser_nodes__AVisibility.color;
9700 idtype = type_nullable_parser_nodes__AVisibility.id;
9701 if(var_pvisibilitynode3 == NULL) {
9702 var3 = 1;
9703 } else {
9704 if(cltype >= var_pvisibilitynode3->type->table_size) {
9705 var3 = 0;
9706 } else {
9707 var3 = var_pvisibilitynode3->type->type_table[cltype] == idtype;
9708 }
9709 }
9710 if (!var3) {
9711 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22843);
9712 exit(1);
9713 }
9714 var_tkwwritablenode4 = var_nodearraylist2;
9715 /* <var_tkwwritablenode4:nullable Object> isa nullable TKwwritable */
9716 cltype5 = type_nullable_parser_nodes__TKwwritable.color;
9717 idtype6 = type_nullable_parser_nodes__TKwwritable.id;
9718 if(var_tkwwritablenode4 == NULL) {
9719 var4 = 1;
9720 } else {
9721 if(cltype5 >= var_tkwwritablenode4->type->table_size) {
9722 var4 = 0;
9723 } else {
9724 var4 = var_tkwwritablenode4->type->type_table[cltype5] == idtype6;
9725 }
9726 }
9727 if (!var4) {
9728 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22845);
9729 exit(1);
9730 }
9731 var7 = NEW_parser_nodes__AWriteAble(&type_parser_nodes__AWriteAble);
9732 var8 = NULL;
9733 ((void (*)(val*, val*, val*, val*))(var7->class->vft[COLOR_parser_prod__AWriteAble__init_awriteable]))(var7, var8, var_pvisibilitynode3, var_tkwwritablenode4) /* init_awriteable on <var7:AWriteAble>*/;
9734 CHECK_NEW_parser_nodes__AWriteAble(var7);
9735 var_pablenode1 = var7;
9736 var_node_list = var_pablenode1;
9737 var9 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction521> */
9738 var10 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var9) /* go_to on <var_p:Parser>*/;
9739 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var10, var_node_list) /* push on <var_p:Parser>*/;
9740 RET_LABEL:;
9741 }
9742 /* method parser#ReduceAction521#action for (self: Object, Parser) */
9743 void VIRTUAL_parser__ReduceAction521__action(val* self, val* p0) {
9744 parser__ReduceAction521__action(self, p0);
9745 RET_LABEL:;
9746 }
9747 /* method parser#ReduceAction522#action for (self: ReduceAction522, Parser) */
9748 void parser__ReduceAction522__action(val* self, val* p0) {
9749 val* var_p /* var p: Parser */;
9750 val* var /* : null */;
9751 val* var_node_list /* var node_list: nullable Object */;
9752 val* var1 /* : nullable Object */;
9753 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9754 val* var2 /* : nullable Object */;
9755 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9756 val* var3 /* : nullable Object */;
9757 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9758 val* var_tkwredefnode2 /* var tkwredefnode2: nullable Object */;
9759 short int var4 /* : Bool */;
9760 int cltype;
9761 int idtype;
9762 val* var_pvisibilitynode3 /* var pvisibilitynode3: nullable Object */;
9763 short int var5 /* : Bool */;
9764 int cltype6;
9765 int idtype7;
9766 val* var_tkwwritablenode4 /* var tkwwritablenode4: nullable Object */;
9767 short int var8 /* : Bool */;
9768 int cltype9;
9769 int idtype10;
9770 val* var11 /* : AWriteAble */;
9771 val* var_pablenode1 /* var pablenode1: nullable AWriteAble */;
9772 long var12 /* : Int */;
9773 long var13 /* : Int */;
9774 var_p = p0;
9775 var = NULL;
9776 var_node_list = var;
9777 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9778 var_nodearraylist3 = var1;
9779 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9780 var_nodearraylist2 = var2;
9781 var3 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9782 var_nodearraylist1 = var3;
9783 var_tkwredefnode2 = var_nodearraylist1;
9784 /* <var_tkwredefnode2:nullable Object> isa nullable TKwredef */
9785 cltype = type_nullable_parser_nodes__TKwredef.color;
9786 idtype = type_nullable_parser_nodes__TKwredef.id;
9787 if(var_tkwredefnode2 == NULL) {
9788 var4 = 1;
9789 } else {
9790 if(cltype >= var_tkwredefnode2->type->table_size) {
9791 var4 = 0;
9792 } else {
9793 var4 = var_tkwredefnode2->type->type_table[cltype] == idtype;
9794 }
9795 }
9796 if (!var4) {
9797 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22864);
9798 exit(1);
9799 }
9800 var_pvisibilitynode3 = var_nodearraylist2;
9801 /* <var_pvisibilitynode3:nullable Object> isa nullable AVisibility */
9802 cltype6 = type_nullable_parser_nodes__AVisibility.color;
9803 idtype7 = type_nullable_parser_nodes__AVisibility.id;
9804 if(var_pvisibilitynode3 == NULL) {
9805 var5 = 1;
9806 } else {
9807 if(cltype6 >= var_pvisibilitynode3->type->table_size) {
9808 var5 = 0;
9809 } else {
9810 var5 = var_pvisibilitynode3->type->type_table[cltype6] == idtype7;
9811 }
9812 }
9813 if (!var5) {
9814 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22866);
9815 exit(1);
9816 }
9817 var_tkwwritablenode4 = var_nodearraylist3;
9818 /* <var_tkwwritablenode4:nullable Object> isa nullable TKwwritable */
9819 cltype9 = type_nullable_parser_nodes__TKwwritable.color;
9820 idtype10 = type_nullable_parser_nodes__TKwwritable.id;
9821 if(var_tkwwritablenode4 == NULL) {
9822 var8 = 1;
9823 } else {
9824 if(cltype9 >= var_tkwwritablenode4->type->table_size) {
9825 var8 = 0;
9826 } else {
9827 var8 = var_tkwwritablenode4->type->type_table[cltype9] == idtype10;
9828 }
9829 }
9830 if (!var8) {
9831 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22868);
9832 exit(1);
9833 }
9834 var11 = NEW_parser_nodes__AWriteAble(&type_parser_nodes__AWriteAble);
9835 ((void (*)(val*, val*, val*, val*))(var11->class->vft[COLOR_parser_prod__AWriteAble__init_awriteable]))(var11, var_tkwredefnode2, var_pvisibilitynode3, var_tkwwritablenode4) /* init_awriteable on <var11:AWriteAble>*/;
9836 CHECK_NEW_parser_nodes__AWriteAble(var11);
9837 var_pablenode1 = var11;
9838 var_node_list = var_pablenode1;
9839 var12 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction522> */
9840 var13 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var12) /* go_to on <var_p:Parser>*/;
9841 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var13, var_node_list) /* push on <var_p:Parser>*/;
9842 RET_LABEL:;
9843 }
9844 /* method parser#ReduceAction522#action for (self: Object, Parser) */
9845 void VIRTUAL_parser__ReduceAction522__action(val* self, val* p0) {
9846 parser__ReduceAction522__action(self, p0);
9847 RET_LABEL:;
9848 }
9849 /* method parser#ReduceAction523#action for (self: ReduceAction523, Parser) */
9850 void parser__ReduceAction523__action(val* self, val* p0) {
9851 val* var_p /* var p: Parser */;
9852 val* var /* : null */;
9853 val* var_node_list /* var node_list: nullable Object */;
9854 val* var1 /* : APublicVisibility */;
9855 val* var_pvisibilitynode1 /* var pvisibilitynode1: nullable APublicVisibility */;
9856 long var2 /* : Int */;
9857 long var3 /* : Int */;
9858 var_p = p0;
9859 var = NULL;
9860 var_node_list = var;
9861 var1 = NEW_parser_nodes__APublicVisibility(&type_parser_nodes__APublicVisibility);
9862 ((void (*)(val*))(var1->class->vft[COLOR_parser_prod__APublicVisibility__init_apublicvisibility]))(var1) /* init_apublicvisibility on <var1:APublicVisibility>*/;
9863 CHECK_NEW_parser_nodes__APublicVisibility(var1);
9864 var_pvisibilitynode1 = var1;
9865 var_node_list = var_pvisibilitynode1;
9866 var2 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction523> */
9867 var3 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var2) /* go_to on <var_p:Parser>*/;
9868 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var3, var_node_list) /* push on <var_p:Parser>*/;
9869 RET_LABEL:;
9870 }
9871 /* method parser#ReduceAction523#action for (self: Object, Parser) */
9872 void VIRTUAL_parser__ReduceAction523__action(val* self, val* p0) {
9873 parser__ReduceAction523__action(self, p0);
9874 RET_LABEL:;
9875 }
9876 /* method parser#ReduceAction524#action for (self: ReduceAction524, Parser) */
9877 void parser__ReduceAction524__action(val* self, val* p0) {
9878 val* var_p /* var p: Parser */;
9879 val* var /* : null */;
9880 val* var_node_list /* var node_list: nullable Object */;
9881 val* var1 /* : nullable Object */;
9882 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9883 val* var2 /* : nullable Object */;
9884 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9885 val* var_tkwprivatenode2 /* var tkwprivatenode2: nullable Object */;
9886 short int var3 /* : Bool */;
9887 int cltype;
9888 int idtype;
9889 val* var4 /* : APrivateVisibility */;
9890 val* var_pvisibilitynode1 /* var pvisibilitynode1: nullable APrivateVisibility */;
9891 long var5 /* : Int */;
9892 long var6 /* : Int */;
9893 var_p = p0;
9894 var = NULL;
9895 var_node_list = var;
9896 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9897 var_nodearraylist2 = var1;
9898 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9899 var_nodearraylist1 = var2;
9900 var_tkwprivatenode2 = var_nodearraylist1;
9901 /* <var_tkwprivatenode2:nullable Object> isa nullable TKwprivate */
9902 cltype = type_nullable_parser_nodes__TKwprivate.color;
9903 idtype = type_nullable_parser_nodes__TKwprivate.id;
9904 if(var_tkwprivatenode2 == NULL) {
9905 var3 = 1;
9906 } else {
9907 if(cltype >= var_tkwprivatenode2->type->table_size) {
9908 var3 = 0;
9909 } else {
9910 var3 = var_tkwprivatenode2->type->type_table[cltype] == idtype;
9911 }
9912 }
9913 if (!var3) {
9914 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22896);
9915 exit(1);
9916 }
9917 var4 = NEW_parser_nodes__APrivateVisibility(&type_parser_nodes__APrivateVisibility);
9918 ((void (*)(val*, val*))(var4->class->vft[COLOR_parser_prod__APrivateVisibility__init_aprivatevisibility]))(var4, var_tkwprivatenode2) /* init_aprivatevisibility on <var4:APrivateVisibility>*/;
9919 CHECK_NEW_parser_nodes__APrivateVisibility(var4);
9920 var_pvisibilitynode1 = var4;
9921 var_node_list = var_pvisibilitynode1;
9922 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction524> */
9923 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
9924 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
9925 RET_LABEL:;
9926 }
9927 /* method parser#ReduceAction524#action for (self: Object, Parser) */
9928 void VIRTUAL_parser__ReduceAction524__action(val* self, val* p0) {
9929 parser__ReduceAction524__action(self, p0);
9930 RET_LABEL:;
9931 }
9932 /* method parser#ReduceAction525#action for (self: ReduceAction525, Parser) */
9933 void parser__ReduceAction525__action(val* self, val* p0) {
9934 val* var_p /* var p: Parser */;
9935 val* var /* : null */;
9936 val* var_node_list /* var node_list: nullable Object */;
9937 val* var1 /* : nullable Object */;
9938 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9939 val* var2 /* : nullable Object */;
9940 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9941 val* var_tkwprotectednode2 /* var tkwprotectednode2: nullable Object */;
9942 short int var3 /* : Bool */;
9943 int cltype;
9944 int idtype;
9945 val* var4 /* : AProtectedVisibility */;
9946 val* var_pvisibilitynode1 /* var pvisibilitynode1: nullable AProtectedVisibility */;
9947 long var5 /* : Int */;
9948 long var6 /* : Int */;
9949 var_p = p0;
9950 var = NULL;
9951 var_node_list = var;
9952 var1 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9953 var_nodearraylist2 = var1;
9954 var2 = ((val* (*)(val*))(var_p->class->vft[COLOR_parser__Parser__pop]))(var_p) /* pop on <var_p:Parser>*/;
9955 var_nodearraylist1 = var2;
9956 var_tkwprotectednode2 = var_nodearraylist1;
9957 /* <var_tkwprotectednode2:nullable Object> isa nullable TKwprotected */
9958 cltype = type_nullable_parser_nodes__TKwprotected.color;
9959 idtype = type_nullable_parser_nodes__TKwprotected.id;
9960 if(var_tkwprotectednode2 == NULL) {
9961 var3 = 1;
9962 } else {
9963 if(cltype >= var_tkwprotectednode2->type->table_size) {
9964 var3 = 0;
9965 } else {
9966 var3 = var_tkwprotectednode2->type->type_table[cltype] == idtype;
9967 }
9968 }
9969 if (!var3) {
9970 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser.nit", 22912);
9971 exit(1);
9972 }
9973 var4 = NEW_parser_nodes__AProtectedVisibility(&type_parser_nodes__AProtectedVisibility);
9974 ((void (*)(val*, val*))(var4->class->vft[COLOR_parser_prod__AProtectedVisibility__init_aprotectedvisibility]))(var4, var_tkwprotectednode2) /* init_aprotectedvisibility on <var4:AProtectedVisibility>*/;
9975 CHECK_NEW_parser_nodes__AProtectedVisibility(var4);
9976 var_pvisibilitynode1 = var4;
9977 var_node_list = var_pvisibilitynode1;
9978 var5 = self->attrs[COLOR_parser__ReduceAction___goto].l; /* _goto on <self:ReduceAction525> */
9979 var6 = ((long (*)(val*, long))(var_p->class->vft[COLOR_parser__Parser__go_to]))(var_p, var5) /* go_to on <var_p:Parser>*/;
9980 ((void (*)(val*, long, val*))(var_p->class->vft[COLOR_parser__Parser__push]))(var_p, var6, var_node_list) /* push on <var_p:Parser>*/;
9981 RET_LABEL:;
9982 }
9983 /* method parser#ReduceAction525#action for (self: Object, Parser) */
9984 void VIRTUAL_parser__ReduceAction525__action(val* self, val* p0) {
9985 parser__ReduceAction525__action(self, p0);
9986 RET_LABEL:;
9987 }