lib/mnit/opengles: cleanup C dependencies.
[nit.git] / c_src / parser.sep.2.c
1 #include "parser.sep.0.h"
2 /* method parser#ReduceAction18#action for (self: ReduceAction18, Parser) */
3 void parser__ReduceAction18__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_nodearraylist7 /* var nodearraylist7: nullable Object */;
9 val* var2 /* : nullable Object */;
10 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
11 val* var3 /* : nullable Object */;
12 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
13 val* var4 /* : nullable Object */;
14 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
15 val* var5 /* : nullable Object */;
16 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
17 val* var6 /* : nullable Object */;
18 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
19 val* var7 /* : nullable Object */;
20 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
21 val* var_pvisibilitynode2 /* var pvisibilitynode2: nullable Object */;
22 short int var8 /* : Bool */;
23 int cltype;
24 int idtype;
25 val* var_tkwimportnode3 /* var tkwimportnode3: nullable Object */;
26 short int var9 /* : Bool */;
27 int cltype10;
28 int idtype11;
29 val* var_tkwendnode4 /* var tkwendnode4: nullable Object */;
30 short int var12 /* : Bool */;
31 int cltype13;
32 int idtype14;
33 val* var15 /* : ANoImport */;
34 val* var_pimportnode1 /* var pimportnode1: nullable ANoImport */;
35 long var16 /* : Int */;
36 long var17 /* : Int */;
37 var_p = p0;
38 var = NULL;
39 var_node_list = var;
40 {
41 var1 = parser_work__Parser__pop(var_p);
42 }
43 var_nodearraylist7 = var1;
44 {
45 var2 = parser_work__Parser__pop(var_p);
46 }
47 var_nodearraylist6 = var2;
48 {
49 var3 = parser_work__Parser__pop(var_p);
50 }
51 var_nodearraylist5 = var3;
52 {
53 var4 = parser_work__Parser__pop(var_p);
54 }
55 var_nodearraylist4 = var4;
56 {
57 var5 = parser_work__Parser__pop(var_p);
58 }
59 var_nodearraylist3 = var5;
60 {
61 var6 = parser_work__Parser__pop(var_p);
62 }
63 var_nodearraylist2 = var6;
64 {
65 var7 = parser_work__Parser__pop(var_p);
66 }
67 var_nodearraylist1 = var7;
68 var_pvisibilitynode2 = var_nodearraylist3;
69 /* <var_pvisibilitynode2:nullable Object> isa nullable AVisibility */
70 cltype = type_nullable_parser_nodes__AVisibility.color;
71 idtype = type_nullable_parser_nodes__AVisibility.id;
72 if(var_pvisibilitynode2 == NULL) {
73 var8 = 1;
74 } else {
75 if(cltype >= var_pvisibilitynode2->type->table_size) {
76 var8 = 0;
77 } else {
78 var8 = var_pvisibilitynode2->type->type_table[cltype] == idtype;
79 }
80 }
81 if (unlikely(!var8)) {
82 PRINT_ERROR("Runtime error: %s", "Assert failed");
83 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1432);
84 show_backtrace(1);
85 }
86 var_tkwimportnode3 = var_nodearraylist4;
87 /* <var_tkwimportnode3:nullable Object> isa nullable TKwimport */
88 cltype10 = type_nullable_parser_nodes__TKwimport.color;
89 idtype11 = type_nullable_parser_nodes__TKwimport.id;
90 if(var_tkwimportnode3 == NULL) {
91 var9 = 1;
92 } else {
93 if(cltype10 >= var_tkwimportnode3->type->table_size) {
94 var9 = 0;
95 } else {
96 var9 = var_tkwimportnode3->type->type_table[cltype10] == idtype11;
97 }
98 }
99 if (unlikely(!var9)) {
100 PRINT_ERROR("Runtime error: %s", "Assert failed");
101 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1434);
102 show_backtrace(1);
103 }
104 var_tkwendnode4 = var_nodearraylist6;
105 /* <var_tkwendnode4:nullable Object> isa nullable TKwend */
106 cltype13 = type_nullable_parser_nodes__TKwend.color;
107 idtype14 = type_nullable_parser_nodes__TKwend.id;
108 if(var_tkwendnode4 == NULL) {
109 var12 = 1;
110 } else {
111 if(cltype13 >= var_tkwendnode4->type->table_size) {
112 var12 = 0;
113 } else {
114 var12 = var_tkwendnode4->type->type_table[cltype13] == idtype14;
115 }
116 }
117 if (unlikely(!var12)) {
118 PRINT_ERROR("Runtime error: %s", "Assert failed");
119 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1436);
120 show_backtrace(1);
121 }
122 var15 = NEW_parser_nodes__ANoImport(&type_parser_nodes__ANoImport);
123 {
124 parser_prod__ANoImport__init_anoimport(var15, var_pvisibilitynode2, var_tkwimportnode3, var_tkwendnode4); /* Direct call parser_prod#ANoImport#init_anoimport on <var15:ANoImport>*/
125 }
126 var_pimportnode1 = var15;
127 var_node_list = var_pimportnode1;
128 var16 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction18> */
129 {
130 var17 = parser_work__Parser__go_to(var_p, var16);
131 }
132 {
133 parser_work__Parser__push(var_p, var17, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
134 }
135 RET_LABEL:;
136 }
137 /* method parser#ReduceAction18#action for (self: Object, Parser) */
138 void VIRTUAL_parser__ReduceAction18__action(val* self, val* p0) {
139 parser__ReduceAction18__action(self, p0); /* Direct call parser#ReduceAction18#action on <self:Object(ReduceAction18)>*/
140 RET_LABEL:;
141 }
142 /* method parser#ReduceAction19#action for (self: ReduceAction19, Parser) */
143 void parser__ReduceAction19__action(val* self, val* p0) {
144 val* var_p /* var p: Parser */;
145 val* var /* : null */;
146 val* var_node_list /* var node_list: nullable Object */;
147 val* var1 /* : nullable Object */;
148 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
149 val* var_pclassdefnode1 /* var pclassdefnode1: nullable Object */;
150 long var2 /* : Int */;
151 long var3 /* : Int */;
152 var_p = p0;
153 var = NULL;
154 var_node_list = var;
155 {
156 var1 = parser_work__Parser__pop(var_p);
157 }
158 var_nodearraylist1 = var1;
159 var_pclassdefnode1 = var_nodearraylist1;
160 var_node_list = var_pclassdefnode1;
161 var2 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction19> */
162 {
163 var3 = parser_work__Parser__go_to(var_p, var2);
164 }
165 {
166 parser_work__Parser__push(var_p, var3, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
167 }
168 RET_LABEL:;
169 }
170 /* method parser#ReduceAction19#action for (self: Object, Parser) */
171 void VIRTUAL_parser__ReduceAction19__action(val* self, val* p0) {
172 parser__ReduceAction19__action(self, p0); /* Direct call parser#ReduceAction19#action on <self:Object(ReduceAction19)>*/
173 RET_LABEL:;
174 }
175 /* method parser#ReduceAction20#action for (self: ReduceAction20, Parser) */
176 void parser__ReduceAction20__action(val* self, val* p0) {
177 val* var_p /* var p: Parser */;
178 val* var /* : null */;
179 val* var_node_list /* var node_list: nullable Object */;
180 val* var1 /* : nullable Object */;
181 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
182 val* var2 /* : Array[Object] */;
183 val* var_listnode3 /* var listnode3: Array[Object] */;
184 val* var_ppropdefnode2 /* var ppropdefnode2: nullable Object */;
185 short int var3 /* : Bool */;
186 int cltype;
187 int idtype;
188 val* var4 /* : null */;
189 short int var5 /* : Bool */;
190 short int var6 /* : Bool */;
191 val* var_other /* var other: nullable Object */;
192 short int var8 /* : Bool */;
193 short int var9 /* : Bool */;
194 short int var10 /* : Bool */;
195 val* var11 /* : ATopClassdef */;
196 val* var_pclassdefnode1 /* var pclassdefnode1: nullable ATopClassdef */;
197 long var12 /* : Int */;
198 long var13 /* : Int */;
199 var_p = p0;
200 var = NULL;
201 var_node_list = var;
202 {
203 var1 = parser_work__Parser__pop(var_p);
204 }
205 var_nodearraylist1 = var1;
206 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
207 {
208 array__Array__init(var2); /* Direct call array#Array#init on <var2:Array[Object]>*/
209 }
210 var_listnode3 = var2;
211 var_ppropdefnode2 = var_nodearraylist1;
212 /* <var_ppropdefnode2:nullable Object> isa nullable APropdef */
213 cltype = type_nullable_parser_nodes__APropdef.color;
214 idtype = type_nullable_parser_nodes__APropdef.id;
215 if(var_ppropdefnode2 == NULL) {
216 var3 = 1;
217 } else {
218 if(cltype >= var_ppropdefnode2->type->table_size) {
219 var3 = 0;
220 } else {
221 var3 = var_ppropdefnode2->type->type_table[cltype] == idtype;
222 }
223 }
224 if (unlikely(!var3)) {
225 PRINT_ERROR("Runtime error: %s", "Assert failed");
226 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1465);
227 show_backtrace(1);
228 }
229 var4 = NULL;
230 if (var_ppropdefnode2 == NULL) {
231 var5 = 0; /* is null */
232 } else {
233 var5 = 1; /* arg is null and recv is not */
234 }
235 if (0) {
236 { /* Inline kernel#Object#!= (var_ppropdefnode2,var4) on <var_ppropdefnode2:nullable Object(nullable APropdef)> */
237 var_other = var4;
238 {
239 var9 = ((short int (*)(val*, val*))(var_ppropdefnode2->class->vft[COLOR_kernel__Object___61d_61d]))(var_ppropdefnode2, var_other) /* == on <var_ppropdefnode2:nullable APropdef(APropdef)>*/;
240 var8 = var9;
241 }
242 var10 = !var8;
243 var6 = var10;
244 goto RET_LABEL7;
245 RET_LABEL7:(void)0;
246 }
247 var5 = var6;
248 }
249 if (var5){
250 {
251 array__Array__add(var_listnode3, var_ppropdefnode2); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
252 }
253 } else {
254 }
255 var11 = NEW_parser_nodes__ATopClassdef(&type_parser_nodes__ATopClassdef);
256 {
257 parser_prod__ATopClassdef__init_atopclassdef(var11, var_listnode3); /* Direct call parser_prod#ATopClassdef#init_atopclassdef on <var11:ATopClassdef>*/
258 }
259 var_pclassdefnode1 = var11;
260 var_node_list = var_pclassdefnode1;
261 var12 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction20> */
262 {
263 var13 = parser_work__Parser__go_to(var_p, var12);
264 }
265 {
266 parser_work__Parser__push(var_p, var13, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
267 }
268 RET_LABEL:;
269 }
270 /* method parser#ReduceAction20#action for (self: Object, Parser) */
271 void VIRTUAL_parser__ReduceAction20__action(val* self, val* p0) {
272 parser__ReduceAction20__action(self, p0); /* Direct call parser#ReduceAction20#action on <self:Object(ReduceAction20)>*/
273 RET_LABEL:;
274 }
275 /* method parser#ReduceAction21#action for (self: ReduceAction21, Parser) */
276 void parser__ReduceAction21__action(val* self, val* p0) {
277 val* var_p /* var p: Parser */;
278 val* var /* : null */;
279 val* var_node_list /* var node_list: nullable Object */;
280 val* var1 /* : nullable Object */;
281 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
282 val* var2 /* : Array[Object] */;
283 val* var_listnode3 /* var listnode3: Array[Object] */;
284 val* var_ppropdefnode2 /* var ppropdefnode2: nullable Object */;
285 short int var3 /* : Bool */;
286 int cltype;
287 int idtype;
288 val* var4 /* : null */;
289 short int var5 /* : Bool */;
290 short int var6 /* : Bool */;
291 val* var_other /* var other: nullable Object */;
292 short int var8 /* : Bool */;
293 short int var9 /* : Bool */;
294 short int var10 /* : Bool */;
295 val* var11 /* : AMainClassdef */;
296 val* var_pclassdefnode1 /* var pclassdefnode1: nullable AMainClassdef */;
297 long var12 /* : Int */;
298 long var13 /* : Int */;
299 var_p = p0;
300 var = NULL;
301 var_node_list = var;
302 {
303 var1 = parser_work__Parser__pop(var_p);
304 }
305 var_nodearraylist1 = var1;
306 var2 = NEW_array__Array(&type_array__Arraykernel__Object);
307 {
308 array__Array__init(var2); /* Direct call array#Array#init on <var2:Array[Object]>*/
309 }
310 var_listnode3 = var2;
311 var_ppropdefnode2 = var_nodearraylist1;
312 /* <var_ppropdefnode2:nullable Object> isa nullable APropdef */
313 cltype = type_nullable_parser_nodes__APropdef.color;
314 idtype = type_nullable_parser_nodes__APropdef.id;
315 if(var_ppropdefnode2 == NULL) {
316 var3 = 1;
317 } else {
318 if(cltype >= var_ppropdefnode2->type->table_size) {
319 var3 = 0;
320 } else {
321 var3 = var_ppropdefnode2->type->type_table[cltype] == idtype;
322 }
323 }
324 if (unlikely(!var3)) {
325 PRINT_ERROR("Runtime error: %s", "Assert failed");
326 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1484);
327 show_backtrace(1);
328 }
329 var4 = NULL;
330 if (var_ppropdefnode2 == NULL) {
331 var5 = 0; /* is null */
332 } else {
333 var5 = 1; /* arg is null and recv is not */
334 }
335 if (0) {
336 { /* Inline kernel#Object#!= (var_ppropdefnode2,var4) on <var_ppropdefnode2:nullable Object(nullable APropdef)> */
337 var_other = var4;
338 {
339 var9 = ((short int (*)(val*, val*))(var_ppropdefnode2->class->vft[COLOR_kernel__Object___61d_61d]))(var_ppropdefnode2, var_other) /* == on <var_ppropdefnode2:nullable APropdef(APropdef)>*/;
340 var8 = var9;
341 }
342 var10 = !var8;
343 var6 = var10;
344 goto RET_LABEL7;
345 RET_LABEL7:(void)0;
346 }
347 var5 = var6;
348 }
349 if (var5){
350 {
351 array__Array__add(var_listnode3, var_ppropdefnode2); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
352 }
353 } else {
354 }
355 var11 = NEW_parser_nodes__AMainClassdef(&type_parser_nodes__AMainClassdef);
356 {
357 parser_prod__AMainClassdef__init_amainclassdef(var11, var_listnode3); /* Direct call parser_prod#AMainClassdef#init_amainclassdef on <var11:AMainClassdef>*/
358 }
359 var_pclassdefnode1 = var11;
360 var_node_list = var_pclassdefnode1;
361 var12 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction21> */
362 {
363 var13 = parser_work__Parser__go_to(var_p, var12);
364 }
365 {
366 parser_work__Parser__push(var_p, var13, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
367 }
368 RET_LABEL:;
369 }
370 /* method parser#ReduceAction21#action for (self: Object, Parser) */
371 void VIRTUAL_parser__ReduceAction21__action(val* self, val* p0) {
372 parser__ReduceAction21__action(self, p0); /* Direct call parser#ReduceAction21#action on <self:Object(ReduceAction21)>*/
373 RET_LABEL:;
374 }
375 /* method parser#ReduceAction22#action for (self: ReduceAction22, Parser) */
376 void parser__ReduceAction22__action(val* self, val* p0) {
377 val* var_p /* var p: Parser */;
378 val* var /* : null */;
379 val* var_node_list /* var node_list: nullable Object */;
380 val* var1 /* : null */;
381 long var2 /* : Int */;
382 long var3 /* : Int */;
383 var_p = p0;
384 var = NULL;
385 var_node_list = var;
386 var1 = NULL;
387 var_node_list = var1;
388 var2 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction22> */
389 {
390 var3 = parser_work__Parser__go_to(var_p, var2);
391 }
392 {
393 parser_work__Parser__push(var_p, var3, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
394 }
395 RET_LABEL:;
396 }
397 /* method parser#ReduceAction22#action for (self: Object, Parser) */
398 void VIRTUAL_parser__ReduceAction22__action(val* self, val* p0) {
399 parser__ReduceAction22__action(self, p0); /* Direct call parser#ReduceAction22#action on <self:Object(ReduceAction22)>*/
400 RET_LABEL:;
401 }
402 /* method parser#ReduceAction23#action for (self: ReduceAction23, Parser) */
403 void parser__ReduceAction23__action(val* self, val* p0) {
404 val* var_p /* var p: Parser */;
405 val* var /* : null */;
406 val* var_node_list /* var node_list: nullable Object */;
407 val* var1 /* : nullable Object */;
408 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
409 val* var2 /* : null */;
410 long var3 /* : Int */;
411 long var4 /* : Int */;
412 var_p = p0;
413 var = NULL;
414 var_node_list = var;
415 {
416 var1 = parser_work__Parser__pop(var_p);
417 }
418 var_nodearraylist1 = var1;
419 var2 = NULL;
420 var_node_list = var2;
421 var3 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction23> */
422 {
423 var4 = parser_work__Parser__go_to(var_p, var3);
424 }
425 {
426 parser_work__Parser__push(var_p, var4, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
427 }
428 RET_LABEL:;
429 }
430 /* method parser#ReduceAction23#action for (self: Object, Parser) */
431 void VIRTUAL_parser__ReduceAction23__action(val* self, val* p0) {
432 parser__ReduceAction23__action(self, p0); /* Direct call parser#ReduceAction23#action on <self:Object(ReduceAction23)>*/
433 RET_LABEL:;
434 }
435 /* method parser#ReduceAction24#action for (self: ReduceAction24, Parser) */
436 void parser__ReduceAction24__action(val* self, val* p0) {
437 val* var_p /* var p: Parser */;
438 val* var /* : null */;
439 val* var_node_list /* var node_list: nullable Object */;
440 val* var1 /* : nullable Object */;
441 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
442 val* var2 /* : nullable Object */;
443 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
444 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
445 short int var3 /* : Bool */;
446 int cltype;
447 int idtype;
448 val* var4 /* : AMainMethPropdef */;
449 val* var5 /* : null */;
450 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AMainMethPropdef */;
451 long var6 /* : Int */;
452 long var7 /* : Int */;
453 var_p = p0;
454 var = NULL;
455 var_node_list = var;
456 {
457 var1 = parser_work__Parser__pop(var_p);
458 }
459 var_nodearraylist2 = var1;
460 {
461 var2 = parser_work__Parser__pop(var_p);
462 }
463 var_nodearraylist1 = var2;
464 var_pexprnode3 = var_nodearraylist2;
465 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
466 cltype = type_nullable_parser_nodes__AExpr.color;
467 idtype = type_nullable_parser_nodes__AExpr.id;
468 if(var_pexprnode3 == NULL) {
469 var3 = 1;
470 } else {
471 if(cltype >= var_pexprnode3->type->table_size) {
472 var3 = 0;
473 } else {
474 var3 = var_pexprnode3->type->type_table[cltype] == idtype;
475 }
476 }
477 if (unlikely(!var3)) {
478 PRINT_ERROR("Runtime error: %s", "Assert failed");
479 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1522);
480 show_backtrace(1);
481 }
482 var4 = NEW_parser_nodes__AMainMethPropdef(&type_parser_nodes__AMainMethPropdef);
483 var5 = NULL;
484 {
485 parser_prod__AMainMethPropdef__init_amainmethpropdef(var4, var5, var_pexprnode3); /* Direct call parser_prod#AMainMethPropdef#init_amainmethpropdef on <var4:AMainMethPropdef>*/
486 }
487 var_ppropdefnode1 = var4;
488 var_node_list = var_ppropdefnode1;
489 var6 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction24> */
490 {
491 var7 = parser_work__Parser__go_to(var_p, var6);
492 }
493 {
494 parser_work__Parser__push(var_p, var7, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
495 }
496 RET_LABEL:;
497 }
498 /* method parser#ReduceAction24#action for (self: Object, Parser) */
499 void VIRTUAL_parser__ReduceAction24__action(val* self, val* p0) {
500 parser__ReduceAction24__action(self, p0); /* Direct call parser#ReduceAction24#action on <self:Object(ReduceAction24)>*/
501 RET_LABEL:;
502 }
503 /* method parser#ReduceAction26#action for (self: ReduceAction26, Parser) */
504 void parser__ReduceAction26__action(val* self, val* p0) {
505 val* var_p /* var p: Parser */;
506 val* var /* : null */;
507 val* var_node_list /* var node_list: nullable Object */;
508 val* var1 /* : nullable Object */;
509 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
510 val* var2 /* : nullable Object */;
511 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
512 val* var3 /* : nullable Object */;
513 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
514 val* var4 /* : nullable Object */;
515 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
516 val* var5 /* : nullable Object */;
517 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
518 val* var6 /* : nullable Object */;
519 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
520 val* var7 /* : nullable Object */;
521 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
522 val* var8 /* : nullable Object */;
523 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
524 val* var9 /* : nullable Object */;
525 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
526 val* var10 /* : Array[Object] */;
527 val* var_listnode8 /* var listnode8: Array[Object] */;
528 val* var11 /* : Array[Object] */;
529 val* var_listnode11 /* var listnode11: Array[Object] */;
530 val* var12 /* : Array[Object] */;
531 val* var_listnode12 /* var listnode12: Array[Object] */;
532 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
533 short int var13 /* : Bool */;
534 int cltype;
535 int idtype;
536 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
537 short int var14 /* : Bool */;
538 int cltype15;
539 int idtype16;
540 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
541 short int var17 /* : Bool */;
542 int cltype18;
543 int idtype19;
544 val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */;
545 short int var20 /* : Bool */;
546 int cltype21;
547 int idtype22;
548 val* var_tclassidnode6 /* var tclassidnode6: nullable Object */;
549 short int var23 /* : Bool */;
550 int cltype24;
551 int idtype25;
552 val* var_listnode7 /* var listnode7: nullable Object */;
553 short int var26 /* : Bool */;
554 int cltype27;
555 int idtype28;
556 val* var29 /* : Array[Object] */;
557 val* var_tkwendnode13 /* var tkwendnode13: nullable Object */;
558 short int var30 /* : Bool */;
559 int cltype31;
560 int idtype32;
561 val* var33 /* : AStdClassdef */;
562 val* var34 /* : null */;
563 val* var35 /* : null */;
564 val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */;
565 long var36 /* : Int */;
566 long var37 /* : Int */;
567 var_p = p0;
568 var = NULL;
569 var_node_list = var;
570 {
571 var1 = parser_work__Parser__pop(var_p);
572 }
573 var_nodearraylist9 = var1;
574 {
575 var2 = parser_work__Parser__pop(var_p);
576 }
577 var_nodearraylist8 = var2;
578 {
579 var3 = parser_work__Parser__pop(var_p);
580 }
581 var_nodearraylist7 = var3;
582 {
583 var4 = parser_work__Parser__pop(var_p);
584 }
585 var_nodearraylist6 = var4;
586 {
587 var5 = parser_work__Parser__pop(var_p);
588 }
589 var_nodearraylist5 = var5;
590 {
591 var6 = parser_work__Parser__pop(var_p);
592 }
593 var_nodearraylist4 = var6;
594 {
595 var7 = parser_work__Parser__pop(var_p);
596 }
597 var_nodearraylist3 = var7;
598 {
599 var8 = parser_work__Parser__pop(var_p);
600 }
601 var_nodearraylist2 = var8;
602 {
603 var9 = parser_work__Parser__pop(var_p);
604 }
605 var_nodearraylist1 = var9;
606 var10 = NEW_array__Array(&type_array__Arraykernel__Object);
607 {
608 array__Array__init(var10); /* Direct call array#Array#init on <var10:Array[Object]>*/
609 }
610 var_listnode8 = var10;
611 var11 = NEW_array__Array(&type_array__Arraykernel__Object);
612 {
613 array__Array__init(var11); /* Direct call array#Array#init on <var11:Array[Object]>*/
614 }
615 var_listnode11 = var11;
616 var12 = NEW_array__Array(&type_array__Arraykernel__Object);
617 {
618 array__Array__init(var12); /* Direct call array#Array#init on <var12:Array[Object]>*/
619 }
620 var_listnode12 = var12;
621 var_pdocnode2 = var_nodearraylist1;
622 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
623 cltype = type_nullable_parser_nodes__ADoc.color;
624 idtype = type_nullable_parser_nodes__ADoc.id;
625 if(var_pdocnode2 == NULL) {
626 var13 = 1;
627 } else {
628 if(cltype >= var_pdocnode2->type->table_size) {
629 var13 = 0;
630 } else {
631 var13 = var_pdocnode2->type->type_table[cltype] == idtype;
632 }
633 }
634 if (unlikely(!var13)) {
635 PRINT_ERROR("Runtime error: %s", "Assert failed");
636 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1549);
637 show_backtrace(1);
638 }
639 var_tkwredefnode3 = var_nodearraylist2;
640 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
641 cltype15 = type_nullable_parser_nodes__TKwredef.color;
642 idtype16 = type_nullable_parser_nodes__TKwredef.id;
643 if(var_tkwredefnode3 == NULL) {
644 var14 = 1;
645 } else {
646 if(cltype15 >= var_tkwredefnode3->type->table_size) {
647 var14 = 0;
648 } else {
649 var14 = var_tkwredefnode3->type->type_table[cltype15] == idtype16;
650 }
651 }
652 if (unlikely(!var14)) {
653 PRINT_ERROR("Runtime error: %s", "Assert failed");
654 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1551);
655 show_backtrace(1);
656 }
657 var_pvisibilitynode4 = var_nodearraylist3;
658 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
659 cltype18 = type_nullable_parser_nodes__AVisibility.color;
660 idtype19 = type_nullable_parser_nodes__AVisibility.id;
661 if(var_pvisibilitynode4 == NULL) {
662 var17 = 1;
663 } else {
664 if(cltype18 >= var_pvisibilitynode4->type->table_size) {
665 var17 = 0;
666 } else {
667 var17 = var_pvisibilitynode4->type->type_table[cltype18] == idtype19;
668 }
669 }
670 if (unlikely(!var17)) {
671 PRINT_ERROR("Runtime error: %s", "Assert failed");
672 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1553);
673 show_backtrace(1);
674 }
675 var_pclasskindnode5 = var_nodearraylist4;
676 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
677 cltype21 = type_nullable_parser_nodes__AClasskind.color;
678 idtype22 = type_nullable_parser_nodes__AClasskind.id;
679 if(var_pclasskindnode5 == NULL) {
680 var20 = 1;
681 } else {
682 if(cltype21 >= var_pclasskindnode5->type->table_size) {
683 var20 = 0;
684 } else {
685 var20 = var_pclasskindnode5->type->type_table[cltype21] == idtype22;
686 }
687 }
688 if (unlikely(!var20)) {
689 PRINT_ERROR("Runtime error: %s", "Assert failed");
690 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1555);
691 show_backtrace(1);
692 }
693 var_tclassidnode6 = var_nodearraylist6;
694 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
695 cltype24 = type_nullable_parser_nodes__TClassid.color;
696 idtype25 = type_nullable_parser_nodes__TClassid.id;
697 if(var_tclassidnode6 == NULL) {
698 var23 = 1;
699 } else {
700 if(cltype24 >= var_tclassidnode6->type->table_size) {
701 var23 = 0;
702 } else {
703 var23 = var_tclassidnode6->type->type_table[cltype24] == idtype25;
704 }
705 }
706 if (unlikely(!var23)) {
707 PRINT_ERROR("Runtime error: %s", "Assert failed");
708 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1557);
709 show_backtrace(1);
710 }
711 var_listnode7 = var_nodearraylist7;
712 /* <var_listnode7:nullable Object> isa Array[Object] */
713 cltype27 = type_array__Arraykernel__Object.color;
714 idtype28 = type_array__Arraykernel__Object.id;
715 if(var_listnode7 == NULL) {
716 var26 = 0;
717 } else {
718 if(cltype27 >= var_listnode7->type->table_size) {
719 var26 = 0;
720 } else {
721 var26 = var_listnode7->type->type_table[cltype27] == idtype28;
722 }
723 }
724 if (unlikely(!var26)) {
725 PRINT_ERROR("Runtime error: %s", "Assert failed");
726 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1559);
727 show_backtrace(1);
728 }
729 {
730 var29 = parser_work__ReduceAction__concat(self, var_listnode8, var_listnode7);
731 }
732 var_listnode8 = var29;
733 var_tkwendnode13 = var_nodearraylist9;
734 /* <var_tkwendnode13:nullable Object> isa nullable TKwend */
735 cltype31 = type_nullable_parser_nodes__TKwend.color;
736 idtype32 = type_nullable_parser_nodes__TKwend.id;
737 if(var_tkwendnode13 == NULL) {
738 var30 = 1;
739 } else {
740 if(cltype31 >= var_tkwendnode13->type->table_size) {
741 var30 = 0;
742 } else {
743 var30 = var_tkwendnode13->type->type_table[cltype31] == idtype32;
744 }
745 }
746 if (unlikely(!var30)) {
747 PRINT_ERROR("Runtime error: %s", "Assert failed");
748 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1562);
749 show_backtrace(1);
750 }
751 var33 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
752 var34 = NULL;
753 var35 = NULL;
754 {
755 parser_prod__AStdClassdef__init_astdclassdef(var33, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var34, var35, var_listnode11, var_listnode12, var_tkwendnode13); /* Direct call parser_prod#AStdClassdef#init_astdclassdef on <var33:AStdClassdef>*/
756 }
757 var_pclassdefnode1 = var33;
758 var_node_list = var_pclassdefnode1;
759 var36 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction26> */
760 {
761 var37 = parser_work__Parser__go_to(var_p, var36);
762 }
763 {
764 parser_work__Parser__push(var_p, var37, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
765 }
766 RET_LABEL:;
767 }
768 /* method parser#ReduceAction26#action for (self: Object, Parser) */
769 void VIRTUAL_parser__ReduceAction26__action(val* self, val* p0) {
770 parser__ReduceAction26__action(self, p0); /* Direct call parser#ReduceAction26#action on <self:Object(ReduceAction26)>*/
771 RET_LABEL:;
772 }
773 /* method parser#ReduceAction27#action for (self: ReduceAction27, Parser) */
774 void parser__ReduceAction27__action(val* self, val* p0) {
775 val* var_p /* var p: Parser */;
776 val* var /* : null */;
777 val* var_node_list /* var node_list: nullable Object */;
778 val* var1 /* : nullable Object */;
779 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
780 val* var2 /* : nullable Object */;
781 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
782 val* var3 /* : nullable Object */;
783 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
784 val* var4 /* : nullable Object */;
785 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
786 val* var5 /* : nullable Object */;
787 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
788 val* var6 /* : nullable Object */;
789 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
790 val* var7 /* : nullable Object */;
791 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
792 val* var8 /* : nullable Object */;
793 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
794 val* var9 /* : nullable Object */;
795 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
796 val* var10 /* : nullable Object */;
797 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
798 val* var11 /* : Array[Object] */;
799 val* var_listnode8 /* var listnode8: Array[Object] */;
800 val* var12 /* : Array[Object] */;
801 val* var_listnode16 /* var listnode16: Array[Object] */;
802 val* var13 /* : Array[Object] */;
803 val* var_listnode17 /* var listnode17: Array[Object] */;
804 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
805 short int var14 /* : Bool */;
806 int cltype;
807 int idtype;
808 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
809 short int var15 /* : Bool */;
810 int cltype16;
811 int idtype17;
812 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
813 short int var18 /* : Bool */;
814 int cltype19;
815 int idtype20;
816 val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */;
817 short int var21 /* : Bool */;
818 int cltype22;
819 int idtype23;
820 val* var_tclassidnode6 /* var tclassidnode6: nullable Object */;
821 short int var24 /* : Bool */;
822 int cltype25;
823 int idtype26;
824 val* var_listnode7 /* var listnode7: nullable Object */;
825 short int var27 /* : Bool */;
826 int cltype28;
827 int idtype29;
828 val* var30 /* : Array[Object] */;
829 val* var31 /* : Array[Object] */;
830 val* var_listnode13 /* var listnode13: Array[Object] */;
831 val* var_listnode12 /* var listnode12: nullable Object */;
832 short int var32 /* : Bool */;
833 int cltype33;
834 int idtype34;
835 val* var35 /* : Array[Object] */;
836 val* var36 /* : AAnnotations */;
837 val* var37 /* : null */;
838 val* var38 /* : null */;
839 val* var39 /* : null */;
840 val* var_pannotationsnode9 /* var pannotationsnode9: nullable AAnnotations */;
841 val* var_tkwendnode18 /* var tkwendnode18: nullable Object */;
842 short int var40 /* : Bool */;
843 int cltype41;
844 int idtype42;
845 val* var43 /* : AStdClassdef */;
846 val* var44 /* : null */;
847 val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */;
848 long var45 /* : Int */;
849 long var46 /* : Int */;
850 var_p = p0;
851 var = NULL;
852 var_node_list = var;
853 {
854 var1 = parser_work__Parser__pop(var_p);
855 }
856 var_nodearraylist10 = var1;
857 {
858 var2 = parser_work__Parser__pop(var_p);
859 }
860 var_nodearraylist9 = var2;
861 {
862 var3 = parser_work__Parser__pop(var_p);
863 }
864 var_nodearraylist8 = var3;
865 {
866 var4 = parser_work__Parser__pop(var_p);
867 }
868 var_nodearraylist7 = var4;
869 {
870 var5 = parser_work__Parser__pop(var_p);
871 }
872 var_nodearraylist6 = var5;
873 {
874 var6 = parser_work__Parser__pop(var_p);
875 }
876 var_nodearraylist5 = var6;
877 {
878 var7 = parser_work__Parser__pop(var_p);
879 }
880 var_nodearraylist4 = var7;
881 {
882 var8 = parser_work__Parser__pop(var_p);
883 }
884 var_nodearraylist3 = var8;
885 {
886 var9 = parser_work__Parser__pop(var_p);
887 }
888 var_nodearraylist2 = var9;
889 {
890 var10 = parser_work__Parser__pop(var_p);
891 }
892 var_nodearraylist1 = var10;
893 var11 = NEW_array__Array(&type_array__Arraykernel__Object);
894 {
895 array__Array__init(var11); /* Direct call array#Array#init on <var11:Array[Object]>*/
896 }
897 var_listnode8 = var11;
898 var12 = NEW_array__Array(&type_array__Arraykernel__Object);
899 {
900 array__Array__init(var12); /* Direct call array#Array#init on <var12:Array[Object]>*/
901 }
902 var_listnode16 = var12;
903 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
904 {
905 array__Array__init(var13); /* Direct call array#Array#init on <var13:Array[Object]>*/
906 }
907 var_listnode17 = var13;
908 var_pdocnode2 = var_nodearraylist1;
909 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
910 cltype = type_nullable_parser_nodes__ADoc.color;
911 idtype = type_nullable_parser_nodes__ADoc.id;
912 if(var_pdocnode2 == NULL) {
913 var14 = 1;
914 } else {
915 if(cltype >= var_pdocnode2->type->table_size) {
916 var14 = 0;
917 } else {
918 var14 = var_pdocnode2->type->type_table[cltype] == idtype;
919 }
920 }
921 if (unlikely(!var14)) {
922 PRINT_ERROR("Runtime error: %s", "Assert failed");
923 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1599);
924 show_backtrace(1);
925 }
926 var_tkwredefnode3 = var_nodearraylist2;
927 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
928 cltype16 = type_nullable_parser_nodes__TKwredef.color;
929 idtype17 = type_nullable_parser_nodes__TKwredef.id;
930 if(var_tkwredefnode3 == NULL) {
931 var15 = 1;
932 } else {
933 if(cltype16 >= var_tkwredefnode3->type->table_size) {
934 var15 = 0;
935 } else {
936 var15 = var_tkwredefnode3->type->type_table[cltype16] == idtype17;
937 }
938 }
939 if (unlikely(!var15)) {
940 PRINT_ERROR("Runtime error: %s", "Assert failed");
941 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1601);
942 show_backtrace(1);
943 }
944 var_pvisibilitynode4 = var_nodearraylist3;
945 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
946 cltype19 = type_nullable_parser_nodes__AVisibility.color;
947 idtype20 = type_nullable_parser_nodes__AVisibility.id;
948 if(var_pvisibilitynode4 == NULL) {
949 var18 = 1;
950 } else {
951 if(cltype19 >= var_pvisibilitynode4->type->table_size) {
952 var18 = 0;
953 } else {
954 var18 = var_pvisibilitynode4->type->type_table[cltype19] == idtype20;
955 }
956 }
957 if (unlikely(!var18)) {
958 PRINT_ERROR("Runtime error: %s", "Assert failed");
959 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1603);
960 show_backtrace(1);
961 }
962 var_pclasskindnode5 = var_nodearraylist4;
963 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
964 cltype22 = type_nullable_parser_nodes__AClasskind.color;
965 idtype23 = type_nullable_parser_nodes__AClasskind.id;
966 if(var_pclasskindnode5 == NULL) {
967 var21 = 1;
968 } else {
969 if(cltype22 >= var_pclasskindnode5->type->table_size) {
970 var21 = 0;
971 } else {
972 var21 = var_pclasskindnode5->type->type_table[cltype22] == idtype23;
973 }
974 }
975 if (unlikely(!var21)) {
976 PRINT_ERROR("Runtime error: %s", "Assert failed");
977 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1605);
978 show_backtrace(1);
979 }
980 var_tclassidnode6 = var_nodearraylist6;
981 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
982 cltype25 = type_nullable_parser_nodes__TClassid.color;
983 idtype26 = type_nullable_parser_nodes__TClassid.id;
984 if(var_tclassidnode6 == NULL) {
985 var24 = 1;
986 } else {
987 if(cltype25 >= var_tclassidnode6->type->table_size) {
988 var24 = 0;
989 } else {
990 var24 = var_tclassidnode6->type->type_table[cltype25] == idtype26;
991 }
992 }
993 if (unlikely(!var24)) {
994 PRINT_ERROR("Runtime error: %s", "Assert failed");
995 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1607);
996 show_backtrace(1);
997 }
998 var_listnode7 = var_nodearraylist7;
999 /* <var_listnode7:nullable Object> isa Array[Object] */
1000 cltype28 = type_array__Arraykernel__Object.color;
1001 idtype29 = type_array__Arraykernel__Object.id;
1002 if(var_listnode7 == NULL) {
1003 var27 = 0;
1004 } else {
1005 if(cltype28 >= var_listnode7->type->table_size) {
1006 var27 = 0;
1007 } else {
1008 var27 = var_listnode7->type->type_table[cltype28] == idtype29;
1009 }
1010 }
1011 if (unlikely(!var27)) {
1012 PRINT_ERROR("Runtime error: %s", "Assert failed");
1013 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1609);
1014 show_backtrace(1);
1015 }
1016 {
1017 var30 = parser_work__ReduceAction__concat(self, var_listnode8, var_listnode7);
1018 }
1019 var_listnode8 = var30;
1020 var31 = NEW_array__Array(&type_array__Arraykernel__Object);
1021 {
1022 array__Array__init(var31); /* Direct call array#Array#init on <var31:Array[Object]>*/
1023 }
1024 var_listnode13 = var31;
1025 var_listnode12 = var_nodearraylist8;
1026 /* <var_listnode12:nullable Object> isa Array[Object] */
1027 cltype33 = type_array__Arraykernel__Object.color;
1028 idtype34 = type_array__Arraykernel__Object.id;
1029 if(var_listnode12 == NULL) {
1030 var32 = 0;
1031 } else {
1032 if(cltype33 >= var_listnode12->type->table_size) {
1033 var32 = 0;
1034 } else {
1035 var32 = var_listnode12->type->type_table[cltype33] == idtype34;
1036 }
1037 }
1038 if (unlikely(!var32)) {
1039 PRINT_ERROR("Runtime error: %s", "Assert failed");
1040 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1613);
1041 show_backtrace(1);
1042 }
1043 {
1044 var35 = parser_work__ReduceAction__concat(self, var_listnode13, var_listnode12);
1045 }
1046 var_listnode13 = var35;
1047 var36 = NEW_parser_nodes__AAnnotations(&type_parser_nodes__AAnnotations);
1048 var37 = NULL;
1049 var38 = NULL;
1050 var39 = NULL;
1051 {
1052 parser_prod__AAnnotations__init_aannotations(var36, var37, var38, var_listnode13, var39); /* Direct call parser_prod#AAnnotations#init_aannotations on <var36:AAnnotations>*/
1053 }
1054 var_pannotationsnode9 = var36;
1055 var_tkwendnode18 = var_nodearraylist10;
1056 /* <var_tkwendnode18:nullable Object> isa nullable TKwend */
1057 cltype41 = type_nullable_parser_nodes__TKwend.color;
1058 idtype42 = type_nullable_parser_nodes__TKwend.id;
1059 if(var_tkwendnode18 == NULL) {
1060 var40 = 1;
1061 } else {
1062 if(cltype41 >= var_tkwendnode18->type->table_size) {
1063 var40 = 0;
1064 } else {
1065 var40 = var_tkwendnode18->type->type_table[cltype41] == idtype42;
1066 }
1067 }
1068 if (unlikely(!var40)) {
1069 PRINT_ERROR("Runtime error: %s", "Assert failed");
1070 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1622);
1071 show_backtrace(1);
1072 }
1073 var43 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
1074 var44 = NULL;
1075 {
1076 parser_prod__AStdClassdef__init_astdclassdef(var43, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var_pannotationsnode9, var44, var_listnode16, var_listnode17, var_tkwendnode18); /* Direct call parser_prod#AStdClassdef#init_astdclassdef on <var43:AStdClassdef>*/
1077 }
1078 var_pclassdefnode1 = var43;
1079 var_node_list = var_pclassdefnode1;
1080 var45 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction27> */
1081 {
1082 var46 = parser_work__Parser__go_to(var_p, var45);
1083 }
1084 {
1085 parser_work__Parser__push(var_p, var46, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
1086 }
1087 RET_LABEL:;
1088 }
1089 /* method parser#ReduceAction27#action for (self: Object, Parser) */
1090 void VIRTUAL_parser__ReduceAction27__action(val* self, val* p0) {
1091 parser__ReduceAction27__action(self, p0); /* Direct call parser#ReduceAction27#action on <self:Object(ReduceAction27)>*/
1092 RET_LABEL:;
1093 }
1094 /* method parser#ReduceAction28#action for (self: ReduceAction28, Parser) */
1095 void parser__ReduceAction28__action(val* self, val* p0) {
1096 val* var_p /* var p: Parser */;
1097 val* var /* : null */;
1098 val* var_node_list /* var node_list: nullable Object */;
1099 val* var1 /* : nullable Object */;
1100 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
1101 val* var2 /* : nullable Object */;
1102 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
1103 val* var3 /* : nullable Object */;
1104 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
1105 val* var4 /* : nullable Object */;
1106 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
1107 val* var5 /* : nullable Object */;
1108 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
1109 val* var6 /* : nullable Object */;
1110 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
1111 val* var7 /* : nullable Object */;
1112 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1113 val* var8 /* : nullable Object */;
1114 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1115 val* var9 /* : nullable Object */;
1116 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1117 val* var10 /* : nullable Object */;
1118 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1119 val* var11 /* : Array[Object] */;
1120 val* var_listnode8 /* var listnode8: Array[Object] */;
1121 val* var12 /* : Array[Object] */;
1122 val* var_listnode11 /* var listnode11: Array[Object] */;
1123 val* var13 /* : Array[Object] */;
1124 val* var_listnode12 /* var listnode12: Array[Object] */;
1125 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
1126 short int var14 /* : Bool */;
1127 int cltype;
1128 int idtype;
1129 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
1130 short int var15 /* : Bool */;
1131 int cltype16;
1132 int idtype17;
1133 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
1134 short int var18 /* : Bool */;
1135 int cltype19;
1136 int idtype20;
1137 val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */;
1138 short int var21 /* : Bool */;
1139 int cltype22;
1140 int idtype23;
1141 val* var_tclassidnode6 /* var tclassidnode6: nullable Object */;
1142 short int var24 /* : Bool */;
1143 int cltype25;
1144 int idtype26;
1145 val* var_listnode7 /* var listnode7: nullable Object */;
1146 short int var27 /* : Bool */;
1147 int cltype28;
1148 int idtype29;
1149 val* var30 /* : Array[Object] */;
1150 val* var_pexterncodeblocknode10 /* var pexterncodeblocknode10: nullable Object */;
1151 short int var31 /* : Bool */;
1152 int cltype32;
1153 int idtype33;
1154 val* var_tkwendnode13 /* var tkwendnode13: nullable Object */;
1155 short int var34 /* : Bool */;
1156 int cltype35;
1157 int idtype36;
1158 val* var37 /* : AStdClassdef */;
1159 val* var38 /* : null */;
1160 val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */;
1161 long var39 /* : Int */;
1162 long var40 /* : Int */;
1163 var_p = p0;
1164 var = NULL;
1165 var_node_list = var;
1166 {
1167 var1 = parser_work__Parser__pop(var_p);
1168 }
1169 var_nodearraylist10 = var1;
1170 {
1171 var2 = parser_work__Parser__pop(var_p);
1172 }
1173 var_nodearraylist9 = var2;
1174 {
1175 var3 = parser_work__Parser__pop(var_p);
1176 }
1177 var_nodearraylist8 = var3;
1178 {
1179 var4 = parser_work__Parser__pop(var_p);
1180 }
1181 var_nodearraylist7 = var4;
1182 {
1183 var5 = parser_work__Parser__pop(var_p);
1184 }
1185 var_nodearraylist6 = var5;
1186 {
1187 var6 = parser_work__Parser__pop(var_p);
1188 }
1189 var_nodearraylist5 = var6;
1190 {
1191 var7 = parser_work__Parser__pop(var_p);
1192 }
1193 var_nodearraylist4 = var7;
1194 {
1195 var8 = parser_work__Parser__pop(var_p);
1196 }
1197 var_nodearraylist3 = var8;
1198 {
1199 var9 = parser_work__Parser__pop(var_p);
1200 }
1201 var_nodearraylist2 = var9;
1202 {
1203 var10 = parser_work__Parser__pop(var_p);
1204 }
1205 var_nodearraylist1 = var10;
1206 var11 = NEW_array__Array(&type_array__Arraykernel__Object);
1207 {
1208 array__Array__init(var11); /* Direct call array#Array#init on <var11:Array[Object]>*/
1209 }
1210 var_listnode8 = var11;
1211 var12 = NEW_array__Array(&type_array__Arraykernel__Object);
1212 {
1213 array__Array__init(var12); /* Direct call array#Array#init on <var12:Array[Object]>*/
1214 }
1215 var_listnode11 = var12;
1216 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
1217 {
1218 array__Array__init(var13); /* Direct call array#Array#init on <var13:Array[Object]>*/
1219 }
1220 var_listnode12 = var13;
1221 var_pdocnode2 = var_nodearraylist1;
1222 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
1223 cltype = type_nullable_parser_nodes__ADoc.color;
1224 idtype = type_nullable_parser_nodes__ADoc.id;
1225 if(var_pdocnode2 == NULL) {
1226 var14 = 1;
1227 } else {
1228 if(cltype >= var_pdocnode2->type->table_size) {
1229 var14 = 0;
1230 } else {
1231 var14 = var_pdocnode2->type->type_table[cltype] == idtype;
1232 }
1233 }
1234 if (unlikely(!var14)) {
1235 PRINT_ERROR("Runtime error: %s", "Assert failed");
1236 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1659);
1237 show_backtrace(1);
1238 }
1239 var_tkwredefnode3 = var_nodearraylist2;
1240 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
1241 cltype16 = type_nullable_parser_nodes__TKwredef.color;
1242 idtype17 = type_nullable_parser_nodes__TKwredef.id;
1243 if(var_tkwredefnode3 == NULL) {
1244 var15 = 1;
1245 } else {
1246 if(cltype16 >= var_tkwredefnode3->type->table_size) {
1247 var15 = 0;
1248 } else {
1249 var15 = var_tkwredefnode3->type->type_table[cltype16] == idtype17;
1250 }
1251 }
1252 if (unlikely(!var15)) {
1253 PRINT_ERROR("Runtime error: %s", "Assert failed");
1254 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1661);
1255 show_backtrace(1);
1256 }
1257 var_pvisibilitynode4 = var_nodearraylist3;
1258 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
1259 cltype19 = type_nullable_parser_nodes__AVisibility.color;
1260 idtype20 = type_nullable_parser_nodes__AVisibility.id;
1261 if(var_pvisibilitynode4 == NULL) {
1262 var18 = 1;
1263 } else {
1264 if(cltype19 >= var_pvisibilitynode4->type->table_size) {
1265 var18 = 0;
1266 } else {
1267 var18 = var_pvisibilitynode4->type->type_table[cltype19] == idtype20;
1268 }
1269 }
1270 if (unlikely(!var18)) {
1271 PRINT_ERROR("Runtime error: %s", "Assert failed");
1272 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1663);
1273 show_backtrace(1);
1274 }
1275 var_pclasskindnode5 = var_nodearraylist4;
1276 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
1277 cltype22 = type_nullable_parser_nodes__AClasskind.color;
1278 idtype23 = type_nullable_parser_nodes__AClasskind.id;
1279 if(var_pclasskindnode5 == NULL) {
1280 var21 = 1;
1281 } else {
1282 if(cltype22 >= var_pclasskindnode5->type->table_size) {
1283 var21 = 0;
1284 } else {
1285 var21 = var_pclasskindnode5->type->type_table[cltype22] == idtype23;
1286 }
1287 }
1288 if (unlikely(!var21)) {
1289 PRINT_ERROR("Runtime error: %s", "Assert failed");
1290 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1665);
1291 show_backtrace(1);
1292 }
1293 var_tclassidnode6 = var_nodearraylist6;
1294 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
1295 cltype25 = type_nullable_parser_nodes__TClassid.color;
1296 idtype26 = type_nullable_parser_nodes__TClassid.id;
1297 if(var_tclassidnode6 == NULL) {
1298 var24 = 1;
1299 } else {
1300 if(cltype25 >= var_tclassidnode6->type->table_size) {
1301 var24 = 0;
1302 } else {
1303 var24 = var_tclassidnode6->type->type_table[cltype25] == idtype26;
1304 }
1305 }
1306 if (unlikely(!var24)) {
1307 PRINT_ERROR("Runtime error: %s", "Assert failed");
1308 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1667);
1309 show_backtrace(1);
1310 }
1311 var_listnode7 = var_nodearraylist7;
1312 /* <var_listnode7:nullable Object> isa Array[Object] */
1313 cltype28 = type_array__Arraykernel__Object.color;
1314 idtype29 = type_array__Arraykernel__Object.id;
1315 if(var_listnode7 == NULL) {
1316 var27 = 0;
1317 } else {
1318 if(cltype28 >= var_listnode7->type->table_size) {
1319 var27 = 0;
1320 } else {
1321 var27 = var_listnode7->type->type_table[cltype28] == idtype29;
1322 }
1323 }
1324 if (unlikely(!var27)) {
1325 PRINT_ERROR("Runtime error: %s", "Assert failed");
1326 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1669);
1327 show_backtrace(1);
1328 }
1329 {
1330 var30 = parser_work__ReduceAction__concat(self, var_listnode8, var_listnode7);
1331 }
1332 var_listnode8 = var30;
1333 var_pexterncodeblocknode10 = var_nodearraylist8;
1334 /* <var_pexterncodeblocknode10:nullable Object> isa nullable AExternCodeBlock */
1335 cltype32 = type_nullable_parser_nodes__AExternCodeBlock.color;
1336 idtype33 = type_nullable_parser_nodes__AExternCodeBlock.id;
1337 if(var_pexterncodeblocknode10 == NULL) {
1338 var31 = 1;
1339 } else {
1340 if(cltype32 >= var_pexterncodeblocknode10->type->table_size) {
1341 var31 = 0;
1342 } else {
1343 var31 = var_pexterncodeblocknode10->type->type_table[cltype32] == idtype33;
1344 }
1345 }
1346 if (unlikely(!var31)) {
1347 PRINT_ERROR("Runtime error: %s", "Assert failed");
1348 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1672);
1349 show_backtrace(1);
1350 }
1351 var_tkwendnode13 = var_nodearraylist10;
1352 /* <var_tkwendnode13:nullable Object> isa nullable TKwend */
1353 cltype35 = type_nullable_parser_nodes__TKwend.color;
1354 idtype36 = type_nullable_parser_nodes__TKwend.id;
1355 if(var_tkwendnode13 == NULL) {
1356 var34 = 1;
1357 } else {
1358 if(cltype35 >= var_tkwendnode13->type->table_size) {
1359 var34 = 0;
1360 } else {
1361 var34 = var_tkwendnode13->type->type_table[cltype35] == idtype36;
1362 }
1363 }
1364 if (unlikely(!var34)) {
1365 PRINT_ERROR("Runtime error: %s", "Assert failed");
1366 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1674);
1367 show_backtrace(1);
1368 }
1369 var37 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
1370 var38 = NULL;
1371 {
1372 parser_prod__AStdClassdef__init_astdclassdef(var37, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var38, var_pexterncodeblocknode10, var_listnode11, var_listnode12, var_tkwendnode13); /* Direct call parser_prod#AStdClassdef#init_astdclassdef on <var37:AStdClassdef>*/
1373 }
1374 var_pclassdefnode1 = var37;
1375 var_node_list = var_pclassdefnode1;
1376 var39 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction28> */
1377 {
1378 var40 = parser_work__Parser__go_to(var_p, var39);
1379 }
1380 {
1381 parser_work__Parser__push(var_p, var40, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
1382 }
1383 RET_LABEL:;
1384 }
1385 /* method parser#ReduceAction28#action for (self: Object, Parser) */
1386 void VIRTUAL_parser__ReduceAction28__action(val* self, val* p0) {
1387 parser__ReduceAction28__action(self, p0); /* Direct call parser#ReduceAction28#action on <self:Object(ReduceAction28)>*/
1388 RET_LABEL:;
1389 }
1390 /* method parser#ReduceAction29#action for (self: ReduceAction29, Parser) */
1391 void parser__ReduceAction29__action(val* self, val* p0) {
1392 val* var_p /* var p: Parser */;
1393 val* var /* : null */;
1394 val* var_node_list /* var node_list: nullable Object */;
1395 val* var1 /* : nullable Object */;
1396 val* var_nodearraylist11 /* var nodearraylist11: nullable Object */;
1397 val* var2 /* : nullable Object */;
1398 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
1399 val* var3 /* : nullable Object */;
1400 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
1401 val* var4 /* : nullable Object */;
1402 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
1403 val* var5 /* : nullable Object */;
1404 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
1405 val* var6 /* : nullable Object */;
1406 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
1407 val* var7 /* : nullable Object */;
1408 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
1409 val* var8 /* : nullable Object */;
1410 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1411 val* var9 /* : nullable Object */;
1412 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1413 val* var10 /* : nullable Object */;
1414 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1415 val* var11 /* : nullable Object */;
1416 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1417 val* var12 /* : Array[Object] */;
1418 val* var_listnode8 /* var listnode8: Array[Object] */;
1419 val* var13 /* : Array[Object] */;
1420 val* var_listnode16 /* var listnode16: Array[Object] */;
1421 val* var14 /* : Array[Object] */;
1422 val* var_listnode17 /* var listnode17: Array[Object] */;
1423 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
1424 short int var15 /* : Bool */;
1425 int cltype;
1426 int idtype;
1427 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
1428 short int var16 /* : Bool */;
1429 int cltype17;
1430 int idtype18;
1431 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
1432 short int var19 /* : Bool */;
1433 int cltype20;
1434 int idtype21;
1435 val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */;
1436 short int var22 /* : Bool */;
1437 int cltype23;
1438 int idtype24;
1439 val* var_tclassidnode6 /* var tclassidnode6: nullable Object */;
1440 short int var25 /* : Bool */;
1441 int cltype26;
1442 int idtype27;
1443 val* var_listnode7 /* var listnode7: nullable Object */;
1444 short int var28 /* : Bool */;
1445 int cltype29;
1446 int idtype30;
1447 val* var31 /* : Array[Object] */;
1448 val* var32 /* : Array[Object] */;
1449 val* var_listnode13 /* var listnode13: Array[Object] */;
1450 val* var_listnode12 /* var listnode12: nullable Object */;
1451 short int var33 /* : Bool */;
1452 int cltype34;
1453 int idtype35;
1454 val* var36 /* : Array[Object] */;
1455 val* var37 /* : AAnnotations */;
1456 val* var38 /* : null */;
1457 val* var39 /* : null */;
1458 val* var40 /* : null */;
1459 val* var_pannotationsnode9 /* var pannotationsnode9: nullable AAnnotations */;
1460 val* var_pexterncodeblocknode15 /* var pexterncodeblocknode15: nullable Object */;
1461 short int var41 /* : Bool */;
1462 int cltype42;
1463 int idtype43;
1464 val* var_tkwendnode18 /* var tkwendnode18: nullable Object */;
1465 short int var44 /* : Bool */;
1466 int cltype45;
1467 int idtype46;
1468 val* var47 /* : AStdClassdef */;
1469 val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */;
1470 long var48 /* : Int */;
1471 long var49 /* : Int */;
1472 var_p = p0;
1473 var = NULL;
1474 var_node_list = var;
1475 {
1476 var1 = parser_work__Parser__pop(var_p);
1477 }
1478 var_nodearraylist11 = var1;
1479 {
1480 var2 = parser_work__Parser__pop(var_p);
1481 }
1482 var_nodearraylist10 = var2;
1483 {
1484 var3 = parser_work__Parser__pop(var_p);
1485 }
1486 var_nodearraylist9 = var3;
1487 {
1488 var4 = parser_work__Parser__pop(var_p);
1489 }
1490 var_nodearraylist8 = var4;
1491 {
1492 var5 = parser_work__Parser__pop(var_p);
1493 }
1494 var_nodearraylist7 = var5;
1495 {
1496 var6 = parser_work__Parser__pop(var_p);
1497 }
1498 var_nodearraylist6 = var6;
1499 {
1500 var7 = parser_work__Parser__pop(var_p);
1501 }
1502 var_nodearraylist5 = var7;
1503 {
1504 var8 = parser_work__Parser__pop(var_p);
1505 }
1506 var_nodearraylist4 = var8;
1507 {
1508 var9 = parser_work__Parser__pop(var_p);
1509 }
1510 var_nodearraylist3 = var9;
1511 {
1512 var10 = parser_work__Parser__pop(var_p);
1513 }
1514 var_nodearraylist2 = var10;
1515 {
1516 var11 = parser_work__Parser__pop(var_p);
1517 }
1518 var_nodearraylist1 = var11;
1519 var12 = NEW_array__Array(&type_array__Arraykernel__Object);
1520 {
1521 array__Array__init(var12); /* Direct call array#Array#init on <var12:Array[Object]>*/
1522 }
1523 var_listnode8 = var12;
1524 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
1525 {
1526 array__Array__init(var13); /* Direct call array#Array#init on <var13:Array[Object]>*/
1527 }
1528 var_listnode16 = var13;
1529 var14 = NEW_array__Array(&type_array__Arraykernel__Object);
1530 {
1531 array__Array__init(var14); /* Direct call array#Array#init on <var14:Array[Object]>*/
1532 }
1533 var_listnode17 = var14;
1534 var_pdocnode2 = var_nodearraylist1;
1535 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
1536 cltype = type_nullable_parser_nodes__ADoc.color;
1537 idtype = type_nullable_parser_nodes__ADoc.id;
1538 if(var_pdocnode2 == NULL) {
1539 var15 = 1;
1540 } else {
1541 if(cltype >= var_pdocnode2->type->table_size) {
1542 var15 = 0;
1543 } else {
1544 var15 = var_pdocnode2->type->type_table[cltype] == idtype;
1545 }
1546 }
1547 if (unlikely(!var15)) {
1548 PRINT_ERROR("Runtime error: %s", "Assert failed");
1549 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1712);
1550 show_backtrace(1);
1551 }
1552 var_tkwredefnode3 = var_nodearraylist2;
1553 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
1554 cltype17 = type_nullable_parser_nodes__TKwredef.color;
1555 idtype18 = type_nullable_parser_nodes__TKwredef.id;
1556 if(var_tkwredefnode3 == NULL) {
1557 var16 = 1;
1558 } else {
1559 if(cltype17 >= var_tkwredefnode3->type->table_size) {
1560 var16 = 0;
1561 } else {
1562 var16 = var_tkwredefnode3->type->type_table[cltype17] == idtype18;
1563 }
1564 }
1565 if (unlikely(!var16)) {
1566 PRINT_ERROR("Runtime error: %s", "Assert failed");
1567 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1714);
1568 show_backtrace(1);
1569 }
1570 var_pvisibilitynode4 = var_nodearraylist3;
1571 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
1572 cltype20 = type_nullable_parser_nodes__AVisibility.color;
1573 idtype21 = type_nullable_parser_nodes__AVisibility.id;
1574 if(var_pvisibilitynode4 == NULL) {
1575 var19 = 1;
1576 } else {
1577 if(cltype20 >= var_pvisibilitynode4->type->table_size) {
1578 var19 = 0;
1579 } else {
1580 var19 = var_pvisibilitynode4->type->type_table[cltype20] == idtype21;
1581 }
1582 }
1583 if (unlikely(!var19)) {
1584 PRINT_ERROR("Runtime error: %s", "Assert failed");
1585 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1716);
1586 show_backtrace(1);
1587 }
1588 var_pclasskindnode5 = var_nodearraylist4;
1589 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
1590 cltype23 = type_nullable_parser_nodes__AClasskind.color;
1591 idtype24 = type_nullable_parser_nodes__AClasskind.id;
1592 if(var_pclasskindnode5 == NULL) {
1593 var22 = 1;
1594 } else {
1595 if(cltype23 >= var_pclasskindnode5->type->table_size) {
1596 var22 = 0;
1597 } else {
1598 var22 = var_pclasskindnode5->type->type_table[cltype23] == idtype24;
1599 }
1600 }
1601 if (unlikely(!var22)) {
1602 PRINT_ERROR("Runtime error: %s", "Assert failed");
1603 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1718);
1604 show_backtrace(1);
1605 }
1606 var_tclassidnode6 = var_nodearraylist6;
1607 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
1608 cltype26 = type_nullable_parser_nodes__TClassid.color;
1609 idtype27 = type_nullable_parser_nodes__TClassid.id;
1610 if(var_tclassidnode6 == NULL) {
1611 var25 = 1;
1612 } else {
1613 if(cltype26 >= var_tclassidnode6->type->table_size) {
1614 var25 = 0;
1615 } else {
1616 var25 = var_tclassidnode6->type->type_table[cltype26] == idtype27;
1617 }
1618 }
1619 if (unlikely(!var25)) {
1620 PRINT_ERROR("Runtime error: %s", "Assert failed");
1621 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1720);
1622 show_backtrace(1);
1623 }
1624 var_listnode7 = var_nodearraylist7;
1625 /* <var_listnode7:nullable Object> isa Array[Object] */
1626 cltype29 = type_array__Arraykernel__Object.color;
1627 idtype30 = type_array__Arraykernel__Object.id;
1628 if(var_listnode7 == NULL) {
1629 var28 = 0;
1630 } else {
1631 if(cltype29 >= var_listnode7->type->table_size) {
1632 var28 = 0;
1633 } else {
1634 var28 = var_listnode7->type->type_table[cltype29] == idtype30;
1635 }
1636 }
1637 if (unlikely(!var28)) {
1638 PRINT_ERROR("Runtime error: %s", "Assert failed");
1639 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1722);
1640 show_backtrace(1);
1641 }
1642 {
1643 var31 = parser_work__ReduceAction__concat(self, var_listnode8, var_listnode7);
1644 }
1645 var_listnode8 = var31;
1646 var32 = NEW_array__Array(&type_array__Arraykernel__Object);
1647 {
1648 array__Array__init(var32); /* Direct call array#Array#init on <var32:Array[Object]>*/
1649 }
1650 var_listnode13 = var32;
1651 var_listnode12 = var_nodearraylist8;
1652 /* <var_listnode12:nullable Object> isa Array[Object] */
1653 cltype34 = type_array__Arraykernel__Object.color;
1654 idtype35 = type_array__Arraykernel__Object.id;
1655 if(var_listnode12 == NULL) {
1656 var33 = 0;
1657 } else {
1658 if(cltype34 >= var_listnode12->type->table_size) {
1659 var33 = 0;
1660 } else {
1661 var33 = var_listnode12->type->type_table[cltype34] == idtype35;
1662 }
1663 }
1664 if (unlikely(!var33)) {
1665 PRINT_ERROR("Runtime error: %s", "Assert failed");
1666 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1726);
1667 show_backtrace(1);
1668 }
1669 {
1670 var36 = parser_work__ReduceAction__concat(self, var_listnode13, var_listnode12);
1671 }
1672 var_listnode13 = var36;
1673 var37 = NEW_parser_nodes__AAnnotations(&type_parser_nodes__AAnnotations);
1674 var38 = NULL;
1675 var39 = NULL;
1676 var40 = NULL;
1677 {
1678 parser_prod__AAnnotations__init_aannotations(var37, var38, var39, var_listnode13, var40); /* Direct call parser_prod#AAnnotations#init_aannotations on <var37:AAnnotations>*/
1679 }
1680 var_pannotationsnode9 = var37;
1681 var_pexterncodeblocknode15 = var_nodearraylist9;
1682 /* <var_pexterncodeblocknode15:nullable Object> isa nullable AExternCodeBlock */
1683 cltype42 = type_nullable_parser_nodes__AExternCodeBlock.color;
1684 idtype43 = type_nullable_parser_nodes__AExternCodeBlock.id;
1685 if(var_pexterncodeblocknode15 == NULL) {
1686 var41 = 1;
1687 } else {
1688 if(cltype42 >= var_pexterncodeblocknode15->type->table_size) {
1689 var41 = 0;
1690 } else {
1691 var41 = var_pexterncodeblocknode15->type->type_table[cltype42] == idtype43;
1692 }
1693 }
1694 if (unlikely(!var41)) {
1695 PRINT_ERROR("Runtime error: %s", "Assert failed");
1696 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1735);
1697 show_backtrace(1);
1698 }
1699 var_tkwendnode18 = var_nodearraylist11;
1700 /* <var_tkwendnode18:nullable Object> isa nullable TKwend */
1701 cltype45 = type_nullable_parser_nodes__TKwend.color;
1702 idtype46 = type_nullable_parser_nodes__TKwend.id;
1703 if(var_tkwendnode18 == NULL) {
1704 var44 = 1;
1705 } else {
1706 if(cltype45 >= var_tkwendnode18->type->table_size) {
1707 var44 = 0;
1708 } else {
1709 var44 = var_tkwendnode18->type->type_table[cltype45] == idtype46;
1710 }
1711 }
1712 if (unlikely(!var44)) {
1713 PRINT_ERROR("Runtime error: %s", "Assert failed");
1714 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1737);
1715 show_backtrace(1);
1716 }
1717 var47 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
1718 {
1719 parser_prod__AStdClassdef__init_astdclassdef(var47, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var_pannotationsnode9, var_pexterncodeblocknode15, var_listnode16, var_listnode17, var_tkwendnode18); /* Direct call parser_prod#AStdClassdef#init_astdclassdef on <var47:AStdClassdef>*/
1720 }
1721 var_pclassdefnode1 = var47;
1722 var_node_list = var_pclassdefnode1;
1723 var48 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction29> */
1724 {
1725 var49 = parser_work__Parser__go_to(var_p, var48);
1726 }
1727 {
1728 parser_work__Parser__push(var_p, var49, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
1729 }
1730 RET_LABEL:;
1731 }
1732 /* method parser#ReduceAction29#action for (self: Object, Parser) */
1733 void VIRTUAL_parser__ReduceAction29__action(val* self, val* p0) {
1734 parser__ReduceAction29__action(self, p0); /* Direct call parser#ReduceAction29#action on <self:Object(ReduceAction29)>*/
1735 RET_LABEL:;
1736 }
1737 /* method parser#ReduceAction30#action for (self: ReduceAction30, Parser) */
1738 void parser__ReduceAction30__action(val* self, val* p0) {
1739 val* var_p /* var p: Parser */;
1740 val* var /* : null */;
1741 val* var_node_list /* var node_list: nullable Object */;
1742 val* var1 /* : nullable Object */;
1743 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
1744 val* var2 /* : nullable Object */;
1745 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
1746 val* var3 /* : nullable Object */;
1747 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
1748 val* var4 /* : nullable Object */;
1749 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
1750 val* var5 /* : nullable Object */;
1751 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
1752 val* var6 /* : nullable Object */;
1753 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
1754 val* var7 /* : nullable Object */;
1755 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1756 val* var8 /* : nullable Object */;
1757 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1758 val* var9 /* : nullable Object */;
1759 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1760 val* var10 /* : nullable Object */;
1761 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1762 val* var11 /* : Array[Object] */;
1763 val* var_listnode8 /* var listnode8: Array[Object] */;
1764 val* var12 /* : Array[Object] */;
1765 val* var_listnode12 /* var listnode12: Array[Object] */;
1766 val* var13 /* : Array[Object] */;
1767 val* var_listnode13 /* var listnode13: Array[Object] */;
1768 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
1769 short int var14 /* : Bool */;
1770 int cltype;
1771 int idtype;
1772 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
1773 short int var15 /* : Bool */;
1774 int cltype16;
1775 int idtype17;
1776 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
1777 short int var18 /* : Bool */;
1778 int cltype19;
1779 int idtype20;
1780 val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */;
1781 short int var21 /* : Bool */;
1782 int cltype22;
1783 int idtype23;
1784 val* var_tclassidnode6 /* var tclassidnode6: nullable Object */;
1785 short int var24 /* : Bool */;
1786 int cltype25;
1787 int idtype26;
1788 val* var_listnode7 /* var listnode7: nullable Object */;
1789 short int var27 /* : Bool */;
1790 int cltype28;
1791 int idtype29;
1792 val* var30 /* : Array[Object] */;
1793 val* var_listnode11 /* var listnode11: nullable Object */;
1794 short int var31 /* : Bool */;
1795 int cltype32;
1796 int idtype33;
1797 val* var34 /* : Array[Object] */;
1798 val* var_tkwendnode14 /* var tkwendnode14: nullable Object */;
1799 short int var35 /* : Bool */;
1800 int cltype36;
1801 int idtype37;
1802 val* var38 /* : AStdClassdef */;
1803 val* var39 /* : null */;
1804 val* var40 /* : null */;
1805 val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */;
1806 long var41 /* : Int */;
1807 long var42 /* : Int */;
1808 var_p = p0;
1809 var = NULL;
1810 var_node_list = var;
1811 {
1812 var1 = parser_work__Parser__pop(var_p);
1813 }
1814 var_nodearraylist10 = var1;
1815 {
1816 var2 = parser_work__Parser__pop(var_p);
1817 }
1818 var_nodearraylist9 = var2;
1819 {
1820 var3 = parser_work__Parser__pop(var_p);
1821 }
1822 var_nodearraylist8 = var3;
1823 {
1824 var4 = parser_work__Parser__pop(var_p);
1825 }
1826 var_nodearraylist7 = var4;
1827 {
1828 var5 = parser_work__Parser__pop(var_p);
1829 }
1830 var_nodearraylist6 = var5;
1831 {
1832 var6 = parser_work__Parser__pop(var_p);
1833 }
1834 var_nodearraylist5 = var6;
1835 {
1836 var7 = parser_work__Parser__pop(var_p);
1837 }
1838 var_nodearraylist4 = var7;
1839 {
1840 var8 = parser_work__Parser__pop(var_p);
1841 }
1842 var_nodearraylist3 = var8;
1843 {
1844 var9 = parser_work__Parser__pop(var_p);
1845 }
1846 var_nodearraylist2 = var9;
1847 {
1848 var10 = parser_work__Parser__pop(var_p);
1849 }
1850 var_nodearraylist1 = var10;
1851 var11 = NEW_array__Array(&type_array__Arraykernel__Object);
1852 {
1853 array__Array__init(var11); /* Direct call array#Array#init on <var11:Array[Object]>*/
1854 }
1855 var_listnode8 = var11;
1856 var12 = NEW_array__Array(&type_array__Arraykernel__Object);
1857 {
1858 array__Array__init(var12); /* Direct call array#Array#init on <var12:Array[Object]>*/
1859 }
1860 var_listnode12 = var12;
1861 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
1862 {
1863 array__Array__init(var13); /* Direct call array#Array#init on <var13:Array[Object]>*/
1864 }
1865 var_listnode13 = var13;
1866 var_pdocnode2 = var_nodearraylist1;
1867 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
1868 cltype = type_nullable_parser_nodes__ADoc.color;
1869 idtype = type_nullable_parser_nodes__ADoc.id;
1870 if(var_pdocnode2 == NULL) {
1871 var14 = 1;
1872 } else {
1873 if(cltype >= var_pdocnode2->type->table_size) {
1874 var14 = 0;
1875 } else {
1876 var14 = var_pdocnode2->type->type_table[cltype] == idtype;
1877 }
1878 }
1879 if (unlikely(!var14)) {
1880 PRINT_ERROR("Runtime error: %s", "Assert failed");
1881 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1774);
1882 show_backtrace(1);
1883 }
1884 var_tkwredefnode3 = var_nodearraylist2;
1885 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
1886 cltype16 = type_nullable_parser_nodes__TKwredef.color;
1887 idtype17 = type_nullable_parser_nodes__TKwredef.id;
1888 if(var_tkwredefnode3 == NULL) {
1889 var15 = 1;
1890 } else {
1891 if(cltype16 >= var_tkwredefnode3->type->table_size) {
1892 var15 = 0;
1893 } else {
1894 var15 = var_tkwredefnode3->type->type_table[cltype16] == idtype17;
1895 }
1896 }
1897 if (unlikely(!var15)) {
1898 PRINT_ERROR("Runtime error: %s", "Assert failed");
1899 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1776);
1900 show_backtrace(1);
1901 }
1902 var_pvisibilitynode4 = var_nodearraylist3;
1903 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
1904 cltype19 = type_nullable_parser_nodes__AVisibility.color;
1905 idtype20 = type_nullable_parser_nodes__AVisibility.id;
1906 if(var_pvisibilitynode4 == NULL) {
1907 var18 = 1;
1908 } else {
1909 if(cltype19 >= var_pvisibilitynode4->type->table_size) {
1910 var18 = 0;
1911 } else {
1912 var18 = var_pvisibilitynode4->type->type_table[cltype19] == idtype20;
1913 }
1914 }
1915 if (unlikely(!var18)) {
1916 PRINT_ERROR("Runtime error: %s", "Assert failed");
1917 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1778);
1918 show_backtrace(1);
1919 }
1920 var_pclasskindnode5 = var_nodearraylist4;
1921 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
1922 cltype22 = type_nullable_parser_nodes__AClasskind.color;
1923 idtype23 = type_nullable_parser_nodes__AClasskind.id;
1924 if(var_pclasskindnode5 == NULL) {
1925 var21 = 1;
1926 } else {
1927 if(cltype22 >= var_pclasskindnode5->type->table_size) {
1928 var21 = 0;
1929 } else {
1930 var21 = var_pclasskindnode5->type->type_table[cltype22] == idtype23;
1931 }
1932 }
1933 if (unlikely(!var21)) {
1934 PRINT_ERROR("Runtime error: %s", "Assert failed");
1935 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1780);
1936 show_backtrace(1);
1937 }
1938 var_tclassidnode6 = var_nodearraylist6;
1939 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
1940 cltype25 = type_nullable_parser_nodes__TClassid.color;
1941 idtype26 = type_nullable_parser_nodes__TClassid.id;
1942 if(var_tclassidnode6 == NULL) {
1943 var24 = 1;
1944 } else {
1945 if(cltype25 >= var_tclassidnode6->type->table_size) {
1946 var24 = 0;
1947 } else {
1948 var24 = var_tclassidnode6->type->type_table[cltype25] == idtype26;
1949 }
1950 }
1951 if (unlikely(!var24)) {
1952 PRINT_ERROR("Runtime error: %s", "Assert failed");
1953 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1782);
1954 show_backtrace(1);
1955 }
1956 var_listnode7 = var_nodearraylist7;
1957 /* <var_listnode7:nullable Object> isa Array[Object] */
1958 cltype28 = type_array__Arraykernel__Object.color;
1959 idtype29 = type_array__Arraykernel__Object.id;
1960 if(var_listnode7 == NULL) {
1961 var27 = 0;
1962 } else {
1963 if(cltype28 >= var_listnode7->type->table_size) {
1964 var27 = 0;
1965 } else {
1966 var27 = var_listnode7->type->type_table[cltype28] == idtype29;
1967 }
1968 }
1969 if (unlikely(!var27)) {
1970 PRINT_ERROR("Runtime error: %s", "Assert failed");
1971 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1784);
1972 show_backtrace(1);
1973 }
1974 {
1975 var30 = parser_work__ReduceAction__concat(self, var_listnode8, var_listnode7);
1976 }
1977 var_listnode8 = var30;
1978 var_listnode11 = var_nodearraylist8;
1979 /* <var_listnode11:nullable Object> isa Array[Object] */
1980 cltype32 = type_array__Arraykernel__Object.color;
1981 idtype33 = type_array__Arraykernel__Object.id;
1982 if(var_listnode11 == NULL) {
1983 var31 = 0;
1984 } else {
1985 if(cltype32 >= var_listnode11->type->table_size) {
1986 var31 = 0;
1987 } else {
1988 var31 = var_listnode11->type->type_table[cltype32] == idtype33;
1989 }
1990 }
1991 if (unlikely(!var31)) {
1992 PRINT_ERROR("Runtime error: %s", "Assert failed");
1993 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1787);
1994 show_backtrace(1);
1995 }
1996 {
1997 var34 = parser_work__ReduceAction__concat(self, var_listnode12, var_listnode11);
1998 }
1999 var_listnode12 = var34;
2000 var_tkwendnode14 = var_nodearraylist10;
2001 /* <var_tkwendnode14:nullable Object> isa nullable TKwend */
2002 cltype36 = type_nullable_parser_nodes__TKwend.color;
2003 idtype37 = type_nullable_parser_nodes__TKwend.id;
2004 if(var_tkwendnode14 == NULL) {
2005 var35 = 1;
2006 } else {
2007 if(cltype36 >= var_tkwendnode14->type->table_size) {
2008 var35 = 0;
2009 } else {
2010 var35 = var_tkwendnode14->type->type_table[cltype36] == idtype37;
2011 }
2012 }
2013 if (unlikely(!var35)) {
2014 PRINT_ERROR("Runtime error: %s", "Assert failed");
2015 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1790);
2016 show_backtrace(1);
2017 }
2018 var38 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
2019 var39 = NULL;
2020 var40 = NULL;
2021 {
2022 parser_prod__AStdClassdef__init_astdclassdef(var38, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var39, var40, var_listnode12, var_listnode13, var_tkwendnode14); /* Direct call parser_prod#AStdClassdef#init_astdclassdef on <var38:AStdClassdef>*/
2023 }
2024 var_pclassdefnode1 = var38;
2025 var_node_list = var_pclassdefnode1;
2026 var41 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction30> */
2027 {
2028 var42 = parser_work__Parser__go_to(var_p, var41);
2029 }
2030 {
2031 parser_work__Parser__push(var_p, var42, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
2032 }
2033 RET_LABEL:;
2034 }
2035 /* method parser#ReduceAction30#action for (self: Object, Parser) */
2036 void VIRTUAL_parser__ReduceAction30__action(val* self, val* p0) {
2037 parser__ReduceAction30__action(self, p0); /* Direct call parser#ReduceAction30#action on <self:Object(ReduceAction30)>*/
2038 RET_LABEL:;
2039 }
2040 /* method parser#ReduceAction31#action for (self: ReduceAction31, Parser) */
2041 void parser__ReduceAction31__action(val* self, val* p0) {
2042 val* var_p /* var p: Parser */;
2043 val* var /* : null */;
2044 val* var_node_list /* var node_list: nullable Object */;
2045 val* var1 /* : nullable Object */;
2046 val* var_nodearraylist11 /* var nodearraylist11: nullable Object */;
2047 val* var2 /* : nullable Object */;
2048 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
2049 val* var3 /* : nullable Object */;
2050 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
2051 val* var4 /* : nullable Object */;
2052 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
2053 val* var5 /* : nullable Object */;
2054 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
2055 val* var6 /* : nullable Object */;
2056 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
2057 val* var7 /* : nullable Object */;
2058 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
2059 val* var8 /* : nullable Object */;
2060 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2061 val* var9 /* : nullable Object */;
2062 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2063 val* var10 /* : nullable Object */;
2064 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2065 val* var11 /* : nullable Object */;
2066 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2067 val* var12 /* : Array[Object] */;
2068 val* var_listnode8 /* var listnode8: Array[Object] */;
2069 val* var13 /* : Array[Object] */;
2070 val* var_listnode17 /* var listnode17: Array[Object] */;
2071 val* var14 /* : Array[Object] */;
2072 val* var_listnode18 /* var listnode18: Array[Object] */;
2073 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
2074 short int var15 /* : Bool */;
2075 int cltype;
2076 int idtype;
2077 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
2078 short int var16 /* : Bool */;
2079 int cltype17;
2080 int idtype18;
2081 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
2082 short int var19 /* : Bool */;
2083 int cltype20;
2084 int idtype21;
2085 val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */;
2086 short int var22 /* : Bool */;
2087 int cltype23;
2088 int idtype24;
2089 val* var_tclassidnode6 /* var tclassidnode6: nullable Object */;
2090 short int var25 /* : Bool */;
2091 int cltype26;
2092 int idtype27;
2093 val* var_listnode7 /* var listnode7: nullable Object */;
2094 short int var28 /* : Bool */;
2095 int cltype29;
2096 int idtype30;
2097 val* var31 /* : Array[Object] */;
2098 val* var32 /* : Array[Object] */;
2099 val* var_listnode13 /* var listnode13: Array[Object] */;
2100 val* var_listnode12 /* var listnode12: nullable Object */;
2101 short int var33 /* : Bool */;
2102 int cltype34;
2103 int idtype35;
2104 val* var36 /* : Array[Object] */;
2105 val* var37 /* : AAnnotations */;
2106 val* var38 /* : null */;
2107 val* var39 /* : null */;
2108 val* var40 /* : null */;
2109 val* var_pannotationsnode9 /* var pannotationsnode9: nullable AAnnotations */;
2110 val* var_listnode16 /* var listnode16: nullable Object */;
2111 short int var41 /* : Bool */;
2112 int cltype42;
2113 int idtype43;
2114 val* var44 /* : Array[Object] */;
2115 val* var_tkwendnode19 /* var tkwendnode19: nullable Object */;
2116 short int var45 /* : Bool */;
2117 int cltype46;
2118 int idtype47;
2119 val* var48 /* : AStdClassdef */;
2120 val* var49 /* : null */;
2121 val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */;
2122 long var50 /* : Int */;
2123 long var51 /* : Int */;
2124 var_p = p0;
2125 var = NULL;
2126 var_node_list = var;
2127 {
2128 var1 = parser_work__Parser__pop(var_p);
2129 }
2130 var_nodearraylist11 = var1;
2131 {
2132 var2 = parser_work__Parser__pop(var_p);
2133 }
2134 var_nodearraylist10 = var2;
2135 {
2136 var3 = parser_work__Parser__pop(var_p);
2137 }
2138 var_nodearraylist9 = var3;
2139 {
2140 var4 = parser_work__Parser__pop(var_p);
2141 }
2142 var_nodearraylist8 = var4;
2143 {
2144 var5 = parser_work__Parser__pop(var_p);
2145 }
2146 var_nodearraylist7 = var5;
2147 {
2148 var6 = parser_work__Parser__pop(var_p);
2149 }
2150 var_nodearraylist6 = var6;
2151 {
2152 var7 = parser_work__Parser__pop(var_p);
2153 }
2154 var_nodearraylist5 = var7;
2155 {
2156 var8 = parser_work__Parser__pop(var_p);
2157 }
2158 var_nodearraylist4 = var8;
2159 {
2160 var9 = parser_work__Parser__pop(var_p);
2161 }
2162 var_nodearraylist3 = var9;
2163 {
2164 var10 = parser_work__Parser__pop(var_p);
2165 }
2166 var_nodearraylist2 = var10;
2167 {
2168 var11 = parser_work__Parser__pop(var_p);
2169 }
2170 var_nodearraylist1 = var11;
2171 var12 = NEW_array__Array(&type_array__Arraykernel__Object);
2172 {
2173 array__Array__init(var12); /* Direct call array#Array#init on <var12:Array[Object]>*/
2174 }
2175 var_listnode8 = var12;
2176 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
2177 {
2178 array__Array__init(var13); /* Direct call array#Array#init on <var13:Array[Object]>*/
2179 }
2180 var_listnode17 = var13;
2181 var14 = NEW_array__Array(&type_array__Arraykernel__Object);
2182 {
2183 array__Array__init(var14); /* Direct call array#Array#init on <var14:Array[Object]>*/
2184 }
2185 var_listnode18 = var14;
2186 var_pdocnode2 = var_nodearraylist1;
2187 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
2188 cltype = type_nullable_parser_nodes__ADoc.color;
2189 idtype = type_nullable_parser_nodes__ADoc.id;
2190 if(var_pdocnode2 == NULL) {
2191 var15 = 1;
2192 } else {
2193 if(cltype >= var_pdocnode2->type->table_size) {
2194 var15 = 0;
2195 } else {
2196 var15 = var_pdocnode2->type->type_table[cltype] == idtype;
2197 }
2198 }
2199 if (unlikely(!var15)) {
2200 PRINT_ERROR("Runtime error: %s", "Assert failed");
2201 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1828);
2202 show_backtrace(1);
2203 }
2204 var_tkwredefnode3 = var_nodearraylist2;
2205 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
2206 cltype17 = type_nullable_parser_nodes__TKwredef.color;
2207 idtype18 = type_nullable_parser_nodes__TKwredef.id;
2208 if(var_tkwredefnode3 == NULL) {
2209 var16 = 1;
2210 } else {
2211 if(cltype17 >= var_tkwredefnode3->type->table_size) {
2212 var16 = 0;
2213 } else {
2214 var16 = var_tkwredefnode3->type->type_table[cltype17] == idtype18;
2215 }
2216 }
2217 if (unlikely(!var16)) {
2218 PRINT_ERROR("Runtime error: %s", "Assert failed");
2219 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1830);
2220 show_backtrace(1);
2221 }
2222 var_pvisibilitynode4 = var_nodearraylist3;
2223 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
2224 cltype20 = type_nullable_parser_nodes__AVisibility.color;
2225 idtype21 = type_nullable_parser_nodes__AVisibility.id;
2226 if(var_pvisibilitynode4 == NULL) {
2227 var19 = 1;
2228 } else {
2229 if(cltype20 >= var_pvisibilitynode4->type->table_size) {
2230 var19 = 0;
2231 } else {
2232 var19 = var_pvisibilitynode4->type->type_table[cltype20] == idtype21;
2233 }
2234 }
2235 if (unlikely(!var19)) {
2236 PRINT_ERROR("Runtime error: %s", "Assert failed");
2237 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1832);
2238 show_backtrace(1);
2239 }
2240 var_pclasskindnode5 = var_nodearraylist4;
2241 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
2242 cltype23 = type_nullable_parser_nodes__AClasskind.color;
2243 idtype24 = type_nullable_parser_nodes__AClasskind.id;
2244 if(var_pclasskindnode5 == NULL) {
2245 var22 = 1;
2246 } else {
2247 if(cltype23 >= var_pclasskindnode5->type->table_size) {
2248 var22 = 0;
2249 } else {
2250 var22 = var_pclasskindnode5->type->type_table[cltype23] == idtype24;
2251 }
2252 }
2253 if (unlikely(!var22)) {
2254 PRINT_ERROR("Runtime error: %s", "Assert failed");
2255 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1834);
2256 show_backtrace(1);
2257 }
2258 var_tclassidnode6 = var_nodearraylist6;
2259 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
2260 cltype26 = type_nullable_parser_nodes__TClassid.color;
2261 idtype27 = type_nullable_parser_nodes__TClassid.id;
2262 if(var_tclassidnode6 == NULL) {
2263 var25 = 1;
2264 } else {
2265 if(cltype26 >= var_tclassidnode6->type->table_size) {
2266 var25 = 0;
2267 } else {
2268 var25 = var_tclassidnode6->type->type_table[cltype26] == idtype27;
2269 }
2270 }
2271 if (unlikely(!var25)) {
2272 PRINT_ERROR("Runtime error: %s", "Assert failed");
2273 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1836);
2274 show_backtrace(1);
2275 }
2276 var_listnode7 = var_nodearraylist7;
2277 /* <var_listnode7:nullable Object> isa Array[Object] */
2278 cltype29 = type_array__Arraykernel__Object.color;
2279 idtype30 = type_array__Arraykernel__Object.id;
2280 if(var_listnode7 == NULL) {
2281 var28 = 0;
2282 } else {
2283 if(cltype29 >= var_listnode7->type->table_size) {
2284 var28 = 0;
2285 } else {
2286 var28 = var_listnode7->type->type_table[cltype29] == idtype30;
2287 }
2288 }
2289 if (unlikely(!var28)) {
2290 PRINT_ERROR("Runtime error: %s", "Assert failed");
2291 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1838);
2292 show_backtrace(1);
2293 }
2294 {
2295 var31 = parser_work__ReduceAction__concat(self, var_listnode8, var_listnode7);
2296 }
2297 var_listnode8 = var31;
2298 var32 = NEW_array__Array(&type_array__Arraykernel__Object);
2299 {
2300 array__Array__init(var32); /* Direct call array#Array#init on <var32:Array[Object]>*/
2301 }
2302 var_listnode13 = var32;
2303 var_listnode12 = var_nodearraylist8;
2304 /* <var_listnode12:nullable Object> isa Array[Object] */
2305 cltype34 = type_array__Arraykernel__Object.color;
2306 idtype35 = type_array__Arraykernel__Object.id;
2307 if(var_listnode12 == NULL) {
2308 var33 = 0;
2309 } else {
2310 if(cltype34 >= var_listnode12->type->table_size) {
2311 var33 = 0;
2312 } else {
2313 var33 = var_listnode12->type->type_table[cltype34] == idtype35;
2314 }
2315 }
2316 if (unlikely(!var33)) {
2317 PRINT_ERROR("Runtime error: %s", "Assert failed");
2318 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1842);
2319 show_backtrace(1);
2320 }
2321 {
2322 var36 = parser_work__ReduceAction__concat(self, var_listnode13, var_listnode12);
2323 }
2324 var_listnode13 = var36;
2325 var37 = NEW_parser_nodes__AAnnotations(&type_parser_nodes__AAnnotations);
2326 var38 = NULL;
2327 var39 = NULL;
2328 var40 = NULL;
2329 {
2330 parser_prod__AAnnotations__init_aannotations(var37, var38, var39, var_listnode13, var40); /* Direct call parser_prod#AAnnotations#init_aannotations on <var37:AAnnotations>*/
2331 }
2332 var_pannotationsnode9 = var37;
2333 var_listnode16 = var_nodearraylist9;
2334 /* <var_listnode16:nullable Object> isa Array[Object] */
2335 cltype42 = type_array__Arraykernel__Object.color;
2336 idtype43 = type_array__Arraykernel__Object.id;
2337 if(var_listnode16 == NULL) {
2338 var41 = 0;
2339 } else {
2340 if(cltype42 >= var_listnode16->type->table_size) {
2341 var41 = 0;
2342 } else {
2343 var41 = var_listnode16->type->type_table[cltype42] == idtype43;
2344 }
2345 }
2346 if (unlikely(!var41)) {
2347 PRINT_ERROR("Runtime error: %s", "Assert failed");
2348 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1851);
2349 show_backtrace(1);
2350 }
2351 {
2352 var44 = parser_work__ReduceAction__concat(self, var_listnode17, var_listnode16);
2353 }
2354 var_listnode17 = var44;
2355 var_tkwendnode19 = var_nodearraylist11;
2356 /* <var_tkwendnode19:nullable Object> isa nullable TKwend */
2357 cltype46 = type_nullable_parser_nodes__TKwend.color;
2358 idtype47 = type_nullable_parser_nodes__TKwend.id;
2359 if(var_tkwendnode19 == NULL) {
2360 var45 = 1;
2361 } else {
2362 if(cltype46 >= var_tkwendnode19->type->table_size) {
2363 var45 = 0;
2364 } else {
2365 var45 = var_tkwendnode19->type->type_table[cltype46] == idtype47;
2366 }
2367 }
2368 if (unlikely(!var45)) {
2369 PRINT_ERROR("Runtime error: %s", "Assert failed");
2370 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1854);
2371 show_backtrace(1);
2372 }
2373 var48 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
2374 var49 = NULL;
2375 {
2376 parser_prod__AStdClassdef__init_astdclassdef(var48, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var_pannotationsnode9, var49, var_listnode17, var_listnode18, var_tkwendnode19); /* Direct call parser_prod#AStdClassdef#init_astdclassdef on <var48:AStdClassdef>*/
2377 }
2378 var_pclassdefnode1 = var48;
2379 var_node_list = var_pclassdefnode1;
2380 var50 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction31> */
2381 {
2382 var51 = parser_work__Parser__go_to(var_p, var50);
2383 }
2384 {
2385 parser_work__Parser__push(var_p, var51, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
2386 }
2387 RET_LABEL:;
2388 }
2389 /* method parser#ReduceAction31#action for (self: Object, Parser) */
2390 void VIRTUAL_parser__ReduceAction31__action(val* self, val* p0) {
2391 parser__ReduceAction31__action(self, p0); /* Direct call parser#ReduceAction31#action on <self:Object(ReduceAction31)>*/
2392 RET_LABEL:;
2393 }
2394 /* method parser#ReduceAction32#action for (self: ReduceAction32, Parser) */
2395 void parser__ReduceAction32__action(val* self, val* p0) {
2396 val* var_p /* var p: Parser */;
2397 val* var /* : null */;
2398 val* var_node_list /* var node_list: nullable Object */;
2399 val* var1 /* : nullable Object */;
2400 val* var_nodearraylist11 /* var nodearraylist11: nullable Object */;
2401 val* var2 /* : nullable Object */;
2402 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
2403 val* var3 /* : nullable Object */;
2404 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
2405 val* var4 /* : nullable Object */;
2406 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
2407 val* var5 /* : nullable Object */;
2408 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
2409 val* var6 /* : nullable Object */;
2410 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
2411 val* var7 /* : nullable Object */;
2412 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
2413 val* var8 /* : nullable Object */;
2414 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2415 val* var9 /* : nullable Object */;
2416 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2417 val* var10 /* : nullable Object */;
2418 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2419 val* var11 /* : nullable Object */;
2420 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2421 val* var12 /* : Array[Object] */;
2422 val* var_listnode8 /* var listnode8: Array[Object] */;
2423 val* var13 /* : Array[Object] */;
2424 val* var_listnode12 /* var listnode12: Array[Object] */;
2425 val* var14 /* : Array[Object] */;
2426 val* var_listnode13 /* var listnode13: Array[Object] */;
2427 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
2428 short int var15 /* : Bool */;
2429 int cltype;
2430 int idtype;
2431 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
2432 short int var16 /* : Bool */;
2433 int cltype17;
2434 int idtype18;
2435 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
2436 short int var19 /* : Bool */;
2437 int cltype20;
2438 int idtype21;
2439 val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */;
2440 short int var22 /* : Bool */;
2441 int cltype23;
2442 int idtype24;
2443 val* var_tclassidnode6 /* var tclassidnode6: nullable Object */;
2444 short int var25 /* : Bool */;
2445 int cltype26;
2446 int idtype27;
2447 val* var_listnode7 /* var listnode7: nullable Object */;
2448 short int var28 /* : Bool */;
2449 int cltype29;
2450 int idtype30;
2451 val* var31 /* : Array[Object] */;
2452 val* var_pexterncodeblocknode10 /* var pexterncodeblocknode10: nullable Object */;
2453 short int var32 /* : Bool */;
2454 int cltype33;
2455 int idtype34;
2456 val* var_listnode11 /* var listnode11: nullable Object */;
2457 short int var35 /* : Bool */;
2458 int cltype36;
2459 int idtype37;
2460 val* var38 /* : Array[Object] */;
2461 val* var_tkwendnode14 /* var tkwendnode14: nullable Object */;
2462 short int var39 /* : Bool */;
2463 int cltype40;
2464 int idtype41;
2465 val* var42 /* : AStdClassdef */;
2466 val* var43 /* : null */;
2467 val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */;
2468 long var44 /* : Int */;
2469 long var45 /* : Int */;
2470 var_p = p0;
2471 var = NULL;
2472 var_node_list = var;
2473 {
2474 var1 = parser_work__Parser__pop(var_p);
2475 }
2476 var_nodearraylist11 = var1;
2477 {
2478 var2 = parser_work__Parser__pop(var_p);
2479 }
2480 var_nodearraylist10 = var2;
2481 {
2482 var3 = parser_work__Parser__pop(var_p);
2483 }
2484 var_nodearraylist9 = var3;
2485 {
2486 var4 = parser_work__Parser__pop(var_p);
2487 }
2488 var_nodearraylist8 = var4;
2489 {
2490 var5 = parser_work__Parser__pop(var_p);
2491 }
2492 var_nodearraylist7 = var5;
2493 {
2494 var6 = parser_work__Parser__pop(var_p);
2495 }
2496 var_nodearraylist6 = var6;
2497 {
2498 var7 = parser_work__Parser__pop(var_p);
2499 }
2500 var_nodearraylist5 = var7;
2501 {
2502 var8 = parser_work__Parser__pop(var_p);
2503 }
2504 var_nodearraylist4 = var8;
2505 {
2506 var9 = parser_work__Parser__pop(var_p);
2507 }
2508 var_nodearraylist3 = var9;
2509 {
2510 var10 = parser_work__Parser__pop(var_p);
2511 }
2512 var_nodearraylist2 = var10;
2513 {
2514 var11 = parser_work__Parser__pop(var_p);
2515 }
2516 var_nodearraylist1 = var11;
2517 var12 = NEW_array__Array(&type_array__Arraykernel__Object);
2518 {
2519 array__Array__init(var12); /* Direct call array#Array#init on <var12:Array[Object]>*/
2520 }
2521 var_listnode8 = var12;
2522 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
2523 {
2524 array__Array__init(var13); /* Direct call array#Array#init on <var13:Array[Object]>*/
2525 }
2526 var_listnode12 = var13;
2527 var14 = NEW_array__Array(&type_array__Arraykernel__Object);
2528 {
2529 array__Array__init(var14); /* Direct call array#Array#init on <var14:Array[Object]>*/
2530 }
2531 var_listnode13 = var14;
2532 var_pdocnode2 = var_nodearraylist1;
2533 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
2534 cltype = type_nullable_parser_nodes__ADoc.color;
2535 idtype = type_nullable_parser_nodes__ADoc.id;
2536 if(var_pdocnode2 == NULL) {
2537 var15 = 1;
2538 } else {
2539 if(cltype >= var_pdocnode2->type->table_size) {
2540 var15 = 0;
2541 } else {
2542 var15 = var_pdocnode2->type->type_table[cltype] == idtype;
2543 }
2544 }
2545 if (unlikely(!var15)) {
2546 PRINT_ERROR("Runtime error: %s", "Assert failed");
2547 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1892);
2548 show_backtrace(1);
2549 }
2550 var_tkwredefnode3 = var_nodearraylist2;
2551 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
2552 cltype17 = type_nullable_parser_nodes__TKwredef.color;
2553 idtype18 = type_nullable_parser_nodes__TKwredef.id;
2554 if(var_tkwredefnode3 == NULL) {
2555 var16 = 1;
2556 } else {
2557 if(cltype17 >= var_tkwredefnode3->type->table_size) {
2558 var16 = 0;
2559 } else {
2560 var16 = var_tkwredefnode3->type->type_table[cltype17] == idtype18;
2561 }
2562 }
2563 if (unlikely(!var16)) {
2564 PRINT_ERROR("Runtime error: %s", "Assert failed");
2565 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1894);
2566 show_backtrace(1);
2567 }
2568 var_pvisibilitynode4 = var_nodearraylist3;
2569 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
2570 cltype20 = type_nullable_parser_nodes__AVisibility.color;
2571 idtype21 = type_nullable_parser_nodes__AVisibility.id;
2572 if(var_pvisibilitynode4 == NULL) {
2573 var19 = 1;
2574 } else {
2575 if(cltype20 >= var_pvisibilitynode4->type->table_size) {
2576 var19 = 0;
2577 } else {
2578 var19 = var_pvisibilitynode4->type->type_table[cltype20] == idtype21;
2579 }
2580 }
2581 if (unlikely(!var19)) {
2582 PRINT_ERROR("Runtime error: %s", "Assert failed");
2583 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1896);
2584 show_backtrace(1);
2585 }
2586 var_pclasskindnode5 = var_nodearraylist4;
2587 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
2588 cltype23 = type_nullable_parser_nodes__AClasskind.color;
2589 idtype24 = type_nullable_parser_nodes__AClasskind.id;
2590 if(var_pclasskindnode5 == NULL) {
2591 var22 = 1;
2592 } else {
2593 if(cltype23 >= var_pclasskindnode5->type->table_size) {
2594 var22 = 0;
2595 } else {
2596 var22 = var_pclasskindnode5->type->type_table[cltype23] == idtype24;
2597 }
2598 }
2599 if (unlikely(!var22)) {
2600 PRINT_ERROR("Runtime error: %s", "Assert failed");
2601 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1898);
2602 show_backtrace(1);
2603 }
2604 var_tclassidnode6 = var_nodearraylist6;
2605 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
2606 cltype26 = type_nullable_parser_nodes__TClassid.color;
2607 idtype27 = type_nullable_parser_nodes__TClassid.id;
2608 if(var_tclassidnode6 == NULL) {
2609 var25 = 1;
2610 } else {
2611 if(cltype26 >= var_tclassidnode6->type->table_size) {
2612 var25 = 0;
2613 } else {
2614 var25 = var_tclassidnode6->type->type_table[cltype26] == idtype27;
2615 }
2616 }
2617 if (unlikely(!var25)) {
2618 PRINT_ERROR("Runtime error: %s", "Assert failed");
2619 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1900);
2620 show_backtrace(1);
2621 }
2622 var_listnode7 = var_nodearraylist7;
2623 /* <var_listnode7:nullable Object> isa Array[Object] */
2624 cltype29 = type_array__Arraykernel__Object.color;
2625 idtype30 = type_array__Arraykernel__Object.id;
2626 if(var_listnode7 == NULL) {
2627 var28 = 0;
2628 } else {
2629 if(cltype29 >= var_listnode7->type->table_size) {
2630 var28 = 0;
2631 } else {
2632 var28 = var_listnode7->type->type_table[cltype29] == idtype30;
2633 }
2634 }
2635 if (unlikely(!var28)) {
2636 PRINT_ERROR("Runtime error: %s", "Assert failed");
2637 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1902);
2638 show_backtrace(1);
2639 }
2640 {
2641 var31 = parser_work__ReduceAction__concat(self, var_listnode8, var_listnode7);
2642 }
2643 var_listnode8 = var31;
2644 var_pexterncodeblocknode10 = var_nodearraylist8;
2645 /* <var_pexterncodeblocknode10:nullable Object> isa nullable AExternCodeBlock */
2646 cltype33 = type_nullable_parser_nodes__AExternCodeBlock.color;
2647 idtype34 = type_nullable_parser_nodes__AExternCodeBlock.id;
2648 if(var_pexterncodeblocknode10 == NULL) {
2649 var32 = 1;
2650 } else {
2651 if(cltype33 >= var_pexterncodeblocknode10->type->table_size) {
2652 var32 = 0;
2653 } else {
2654 var32 = var_pexterncodeblocknode10->type->type_table[cltype33] == idtype34;
2655 }
2656 }
2657 if (unlikely(!var32)) {
2658 PRINT_ERROR("Runtime error: %s", "Assert failed");
2659 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1905);
2660 show_backtrace(1);
2661 }
2662 var_listnode11 = var_nodearraylist9;
2663 /* <var_listnode11:nullable Object> isa Array[Object] */
2664 cltype36 = type_array__Arraykernel__Object.color;
2665 idtype37 = type_array__Arraykernel__Object.id;
2666 if(var_listnode11 == NULL) {
2667 var35 = 0;
2668 } else {
2669 if(cltype36 >= var_listnode11->type->table_size) {
2670 var35 = 0;
2671 } else {
2672 var35 = var_listnode11->type->type_table[cltype36] == idtype37;
2673 }
2674 }
2675 if (unlikely(!var35)) {
2676 PRINT_ERROR("Runtime error: %s", "Assert failed");
2677 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1907);
2678 show_backtrace(1);
2679 }
2680 {
2681 var38 = parser_work__ReduceAction__concat(self, var_listnode12, var_listnode11);
2682 }
2683 var_listnode12 = var38;
2684 var_tkwendnode14 = var_nodearraylist11;
2685 /* <var_tkwendnode14:nullable Object> isa nullable TKwend */
2686 cltype40 = type_nullable_parser_nodes__TKwend.color;
2687 idtype41 = type_nullable_parser_nodes__TKwend.id;
2688 if(var_tkwendnode14 == NULL) {
2689 var39 = 1;
2690 } else {
2691 if(cltype40 >= var_tkwendnode14->type->table_size) {
2692 var39 = 0;
2693 } else {
2694 var39 = var_tkwendnode14->type->type_table[cltype40] == idtype41;
2695 }
2696 }
2697 if (unlikely(!var39)) {
2698 PRINT_ERROR("Runtime error: %s", "Assert failed");
2699 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1910);
2700 show_backtrace(1);
2701 }
2702 var42 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
2703 var43 = NULL;
2704 {
2705 parser_prod__AStdClassdef__init_astdclassdef(var42, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var43, var_pexterncodeblocknode10, var_listnode12, var_listnode13, var_tkwendnode14); /* Direct call parser_prod#AStdClassdef#init_astdclassdef on <var42:AStdClassdef>*/
2706 }
2707 var_pclassdefnode1 = var42;
2708 var_node_list = var_pclassdefnode1;
2709 var44 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction32> */
2710 {
2711 var45 = parser_work__Parser__go_to(var_p, var44);
2712 }
2713 {
2714 parser_work__Parser__push(var_p, var45, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
2715 }
2716 RET_LABEL:;
2717 }
2718 /* method parser#ReduceAction32#action for (self: Object, Parser) */
2719 void VIRTUAL_parser__ReduceAction32__action(val* self, val* p0) {
2720 parser__ReduceAction32__action(self, p0); /* Direct call parser#ReduceAction32#action on <self:Object(ReduceAction32)>*/
2721 RET_LABEL:;
2722 }
2723 /* method parser#ReduceAction33#action for (self: ReduceAction33, Parser) */
2724 void parser__ReduceAction33__action(val* self, val* p0) {
2725 val* var_p /* var p: Parser */;
2726 val* var /* : null */;
2727 val* var_node_list /* var node_list: nullable Object */;
2728 val* var1 /* : nullable Object */;
2729 val* var_nodearraylist12 /* var nodearraylist12: nullable Object */;
2730 val* var2 /* : nullable Object */;
2731 val* var_nodearraylist11 /* var nodearraylist11: nullable Object */;
2732 val* var3 /* : nullable Object */;
2733 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
2734 val* var4 /* : nullable Object */;
2735 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
2736 val* var5 /* : nullable Object */;
2737 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
2738 val* var6 /* : nullable Object */;
2739 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
2740 val* var7 /* : nullable Object */;
2741 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
2742 val* var8 /* : nullable Object */;
2743 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
2744 val* var9 /* : nullable Object */;
2745 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2746 val* var10 /* : nullable Object */;
2747 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2748 val* var11 /* : nullable Object */;
2749 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2750 val* var12 /* : nullable Object */;
2751 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2752 val* var13 /* : Array[Object] */;
2753 val* var_listnode8 /* var listnode8: Array[Object] */;
2754 val* var14 /* : Array[Object] */;
2755 val* var_listnode17 /* var listnode17: Array[Object] */;
2756 val* var15 /* : Array[Object] */;
2757 val* var_listnode18 /* var listnode18: Array[Object] */;
2758 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
2759 short int var16 /* : Bool */;
2760 int cltype;
2761 int idtype;
2762 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
2763 short int var17 /* : Bool */;
2764 int cltype18;
2765 int idtype19;
2766 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
2767 short int var20 /* : Bool */;
2768 int cltype21;
2769 int idtype22;
2770 val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */;
2771 short int var23 /* : Bool */;
2772 int cltype24;
2773 int idtype25;
2774 val* var_tclassidnode6 /* var tclassidnode6: nullable Object */;
2775 short int var26 /* : Bool */;
2776 int cltype27;
2777 int idtype28;
2778 val* var_listnode7 /* var listnode7: nullable Object */;
2779 short int var29 /* : Bool */;
2780 int cltype30;
2781 int idtype31;
2782 val* var32 /* : Array[Object] */;
2783 val* var33 /* : Array[Object] */;
2784 val* var_listnode13 /* var listnode13: Array[Object] */;
2785 val* var_listnode12 /* var listnode12: nullable Object */;
2786 short int var34 /* : Bool */;
2787 int cltype35;
2788 int idtype36;
2789 val* var37 /* : Array[Object] */;
2790 val* var38 /* : AAnnotations */;
2791 val* var39 /* : null */;
2792 val* var40 /* : null */;
2793 val* var41 /* : null */;
2794 val* var_pannotationsnode9 /* var pannotationsnode9: nullable AAnnotations */;
2795 val* var_pexterncodeblocknode15 /* var pexterncodeblocknode15: nullable Object */;
2796 short int var42 /* : Bool */;
2797 int cltype43;
2798 int idtype44;
2799 val* var_listnode16 /* var listnode16: nullable Object */;
2800 short int var45 /* : Bool */;
2801 int cltype46;
2802 int idtype47;
2803 val* var48 /* : Array[Object] */;
2804 val* var_tkwendnode19 /* var tkwendnode19: nullable Object */;
2805 short int var49 /* : Bool */;
2806 int cltype50;
2807 int idtype51;
2808 val* var52 /* : AStdClassdef */;
2809 val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */;
2810 long var53 /* : Int */;
2811 long var54 /* : Int */;
2812 var_p = p0;
2813 var = NULL;
2814 var_node_list = var;
2815 {
2816 var1 = parser_work__Parser__pop(var_p);
2817 }
2818 var_nodearraylist12 = var1;
2819 {
2820 var2 = parser_work__Parser__pop(var_p);
2821 }
2822 var_nodearraylist11 = var2;
2823 {
2824 var3 = parser_work__Parser__pop(var_p);
2825 }
2826 var_nodearraylist10 = var3;
2827 {
2828 var4 = parser_work__Parser__pop(var_p);
2829 }
2830 var_nodearraylist9 = var4;
2831 {
2832 var5 = parser_work__Parser__pop(var_p);
2833 }
2834 var_nodearraylist8 = var5;
2835 {
2836 var6 = parser_work__Parser__pop(var_p);
2837 }
2838 var_nodearraylist7 = var6;
2839 {
2840 var7 = parser_work__Parser__pop(var_p);
2841 }
2842 var_nodearraylist6 = var7;
2843 {
2844 var8 = parser_work__Parser__pop(var_p);
2845 }
2846 var_nodearraylist5 = var8;
2847 {
2848 var9 = parser_work__Parser__pop(var_p);
2849 }
2850 var_nodearraylist4 = var9;
2851 {
2852 var10 = parser_work__Parser__pop(var_p);
2853 }
2854 var_nodearraylist3 = var10;
2855 {
2856 var11 = parser_work__Parser__pop(var_p);
2857 }
2858 var_nodearraylist2 = var11;
2859 {
2860 var12 = parser_work__Parser__pop(var_p);
2861 }
2862 var_nodearraylist1 = var12;
2863 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
2864 {
2865 array__Array__init(var13); /* Direct call array#Array#init on <var13:Array[Object]>*/
2866 }
2867 var_listnode8 = var13;
2868 var14 = NEW_array__Array(&type_array__Arraykernel__Object);
2869 {
2870 array__Array__init(var14); /* Direct call array#Array#init on <var14:Array[Object]>*/
2871 }
2872 var_listnode17 = var14;
2873 var15 = NEW_array__Array(&type_array__Arraykernel__Object);
2874 {
2875 array__Array__init(var15); /* Direct call array#Array#init on <var15:Array[Object]>*/
2876 }
2877 var_listnode18 = var15;
2878 var_pdocnode2 = var_nodearraylist1;
2879 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
2880 cltype = type_nullable_parser_nodes__ADoc.color;
2881 idtype = type_nullable_parser_nodes__ADoc.id;
2882 if(var_pdocnode2 == NULL) {
2883 var16 = 1;
2884 } else {
2885 if(cltype >= var_pdocnode2->type->table_size) {
2886 var16 = 0;
2887 } else {
2888 var16 = var_pdocnode2->type->type_table[cltype] == idtype;
2889 }
2890 }
2891 if (unlikely(!var16)) {
2892 PRINT_ERROR("Runtime error: %s", "Assert failed");
2893 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1949);
2894 show_backtrace(1);
2895 }
2896 var_tkwredefnode3 = var_nodearraylist2;
2897 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
2898 cltype18 = type_nullable_parser_nodes__TKwredef.color;
2899 idtype19 = type_nullable_parser_nodes__TKwredef.id;
2900 if(var_tkwredefnode3 == NULL) {
2901 var17 = 1;
2902 } else {
2903 if(cltype18 >= var_tkwredefnode3->type->table_size) {
2904 var17 = 0;
2905 } else {
2906 var17 = var_tkwredefnode3->type->type_table[cltype18] == idtype19;
2907 }
2908 }
2909 if (unlikely(!var17)) {
2910 PRINT_ERROR("Runtime error: %s", "Assert failed");
2911 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1951);
2912 show_backtrace(1);
2913 }
2914 var_pvisibilitynode4 = var_nodearraylist3;
2915 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
2916 cltype21 = type_nullable_parser_nodes__AVisibility.color;
2917 idtype22 = type_nullable_parser_nodes__AVisibility.id;
2918 if(var_pvisibilitynode4 == NULL) {
2919 var20 = 1;
2920 } else {
2921 if(cltype21 >= var_pvisibilitynode4->type->table_size) {
2922 var20 = 0;
2923 } else {
2924 var20 = var_pvisibilitynode4->type->type_table[cltype21] == idtype22;
2925 }
2926 }
2927 if (unlikely(!var20)) {
2928 PRINT_ERROR("Runtime error: %s", "Assert failed");
2929 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1953);
2930 show_backtrace(1);
2931 }
2932 var_pclasskindnode5 = var_nodearraylist4;
2933 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
2934 cltype24 = type_nullable_parser_nodes__AClasskind.color;
2935 idtype25 = type_nullable_parser_nodes__AClasskind.id;
2936 if(var_pclasskindnode5 == NULL) {
2937 var23 = 1;
2938 } else {
2939 if(cltype24 >= var_pclasskindnode5->type->table_size) {
2940 var23 = 0;
2941 } else {
2942 var23 = var_pclasskindnode5->type->type_table[cltype24] == idtype25;
2943 }
2944 }
2945 if (unlikely(!var23)) {
2946 PRINT_ERROR("Runtime error: %s", "Assert failed");
2947 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1955);
2948 show_backtrace(1);
2949 }
2950 var_tclassidnode6 = var_nodearraylist6;
2951 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
2952 cltype27 = type_nullable_parser_nodes__TClassid.color;
2953 idtype28 = type_nullable_parser_nodes__TClassid.id;
2954 if(var_tclassidnode6 == NULL) {
2955 var26 = 1;
2956 } else {
2957 if(cltype27 >= var_tclassidnode6->type->table_size) {
2958 var26 = 0;
2959 } else {
2960 var26 = var_tclassidnode6->type->type_table[cltype27] == idtype28;
2961 }
2962 }
2963 if (unlikely(!var26)) {
2964 PRINT_ERROR("Runtime error: %s", "Assert failed");
2965 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1957);
2966 show_backtrace(1);
2967 }
2968 var_listnode7 = var_nodearraylist7;
2969 /* <var_listnode7:nullable Object> isa Array[Object] */
2970 cltype30 = type_array__Arraykernel__Object.color;
2971 idtype31 = type_array__Arraykernel__Object.id;
2972 if(var_listnode7 == NULL) {
2973 var29 = 0;
2974 } else {
2975 if(cltype30 >= var_listnode7->type->table_size) {
2976 var29 = 0;
2977 } else {
2978 var29 = var_listnode7->type->type_table[cltype30] == idtype31;
2979 }
2980 }
2981 if (unlikely(!var29)) {
2982 PRINT_ERROR("Runtime error: %s", "Assert failed");
2983 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1959);
2984 show_backtrace(1);
2985 }
2986 {
2987 var32 = parser_work__ReduceAction__concat(self, var_listnode8, var_listnode7);
2988 }
2989 var_listnode8 = var32;
2990 var33 = NEW_array__Array(&type_array__Arraykernel__Object);
2991 {
2992 array__Array__init(var33); /* Direct call array#Array#init on <var33:Array[Object]>*/
2993 }
2994 var_listnode13 = var33;
2995 var_listnode12 = var_nodearraylist8;
2996 /* <var_listnode12:nullable Object> isa Array[Object] */
2997 cltype35 = type_array__Arraykernel__Object.color;
2998 idtype36 = type_array__Arraykernel__Object.id;
2999 if(var_listnode12 == NULL) {
3000 var34 = 0;
3001 } else {
3002 if(cltype35 >= var_listnode12->type->table_size) {
3003 var34 = 0;
3004 } else {
3005 var34 = var_listnode12->type->type_table[cltype35] == idtype36;
3006 }
3007 }
3008 if (unlikely(!var34)) {
3009 PRINT_ERROR("Runtime error: %s", "Assert failed");
3010 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1963);
3011 show_backtrace(1);
3012 }
3013 {
3014 var37 = parser_work__ReduceAction__concat(self, var_listnode13, var_listnode12);
3015 }
3016 var_listnode13 = var37;
3017 var38 = NEW_parser_nodes__AAnnotations(&type_parser_nodes__AAnnotations);
3018 var39 = NULL;
3019 var40 = NULL;
3020 var41 = NULL;
3021 {
3022 parser_prod__AAnnotations__init_aannotations(var38, var39, var40, var_listnode13, var41); /* Direct call parser_prod#AAnnotations#init_aannotations on <var38:AAnnotations>*/
3023 }
3024 var_pannotationsnode9 = var38;
3025 var_pexterncodeblocknode15 = var_nodearraylist9;
3026 /* <var_pexterncodeblocknode15:nullable Object> isa nullable AExternCodeBlock */
3027 cltype43 = type_nullable_parser_nodes__AExternCodeBlock.color;
3028 idtype44 = type_nullable_parser_nodes__AExternCodeBlock.id;
3029 if(var_pexterncodeblocknode15 == NULL) {
3030 var42 = 1;
3031 } else {
3032 if(cltype43 >= var_pexterncodeblocknode15->type->table_size) {
3033 var42 = 0;
3034 } else {
3035 var42 = var_pexterncodeblocknode15->type->type_table[cltype43] == idtype44;
3036 }
3037 }
3038 if (unlikely(!var42)) {
3039 PRINT_ERROR("Runtime error: %s", "Assert failed");
3040 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1972);
3041 show_backtrace(1);
3042 }
3043 var_listnode16 = var_nodearraylist10;
3044 /* <var_listnode16:nullable Object> isa Array[Object] */
3045 cltype46 = type_array__Arraykernel__Object.color;
3046 idtype47 = type_array__Arraykernel__Object.id;
3047 if(var_listnode16 == NULL) {
3048 var45 = 0;
3049 } else {
3050 if(cltype46 >= var_listnode16->type->table_size) {
3051 var45 = 0;
3052 } else {
3053 var45 = var_listnode16->type->type_table[cltype46] == idtype47;
3054 }
3055 }
3056 if (unlikely(!var45)) {
3057 PRINT_ERROR("Runtime error: %s", "Assert failed");
3058 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1974);
3059 show_backtrace(1);
3060 }
3061 {
3062 var48 = parser_work__ReduceAction__concat(self, var_listnode17, var_listnode16);
3063 }
3064 var_listnode17 = var48;
3065 var_tkwendnode19 = var_nodearraylist12;
3066 /* <var_tkwendnode19:nullable Object> isa nullable TKwend */
3067 cltype50 = type_nullable_parser_nodes__TKwend.color;
3068 idtype51 = type_nullable_parser_nodes__TKwend.id;
3069 if(var_tkwendnode19 == NULL) {
3070 var49 = 1;
3071 } else {
3072 if(cltype50 >= var_tkwendnode19->type->table_size) {
3073 var49 = 0;
3074 } else {
3075 var49 = var_tkwendnode19->type->type_table[cltype50] == idtype51;
3076 }
3077 }
3078 if (unlikely(!var49)) {
3079 PRINT_ERROR("Runtime error: %s", "Assert failed");
3080 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 1977);
3081 show_backtrace(1);
3082 }
3083 var52 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
3084 {
3085 parser_prod__AStdClassdef__init_astdclassdef(var52, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var_pannotationsnode9, var_pexterncodeblocknode15, var_listnode17, var_listnode18, var_tkwendnode19); /* Direct call parser_prod#AStdClassdef#init_astdclassdef on <var52:AStdClassdef>*/
3086 }
3087 var_pclassdefnode1 = var52;
3088 var_node_list = var_pclassdefnode1;
3089 var53 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction33> */
3090 {
3091 var54 = parser_work__Parser__go_to(var_p, var53);
3092 }
3093 {
3094 parser_work__Parser__push(var_p, var54, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
3095 }
3096 RET_LABEL:;
3097 }
3098 /* method parser#ReduceAction33#action for (self: Object, Parser) */
3099 void VIRTUAL_parser__ReduceAction33__action(val* self, val* p0) {
3100 parser__ReduceAction33__action(self, p0); /* Direct call parser#ReduceAction33#action on <self:Object(ReduceAction33)>*/
3101 RET_LABEL:;
3102 }
3103 /* method parser#ReduceAction34#action for (self: ReduceAction34, Parser) */
3104 void parser__ReduceAction34__action(val* self, val* p0) {
3105 val* var_p /* var p: Parser */;
3106 val* var /* : null */;
3107 val* var_node_list /* var node_list: nullable Object */;
3108 val* var1 /* : nullable Object */;
3109 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
3110 val* var2 /* : nullable Object */;
3111 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
3112 val* var3 /* : nullable Object */;
3113 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
3114 val* var4 /* : nullable Object */;
3115 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
3116 val* var5 /* : nullable Object */;
3117 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
3118 val* var6 /* : nullable Object */;
3119 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
3120 val* var7 /* : nullable Object */;
3121 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3122 val* var8 /* : nullable Object */;
3123 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3124 val* var9 /* : nullable Object */;
3125 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3126 val* var10 /* : nullable Object */;
3127 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3128 val* var11 /* : Array[Object] */;
3129 val* var_listnode8 /* var listnode8: Array[Object] */;
3130 val* var12 /* : Array[Object] */;
3131 val* var_listnode11 /* var listnode11: Array[Object] */;
3132 val* var13 /* : Array[Object] */;
3133 val* var_listnode13 /* var listnode13: Array[Object] */;
3134 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
3135 short int var14 /* : Bool */;
3136 int cltype;
3137 int idtype;
3138 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
3139 short int var15 /* : Bool */;
3140 int cltype16;
3141 int idtype17;
3142 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
3143 short int var18 /* : Bool */;
3144 int cltype19;
3145 int idtype20;
3146 val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */;
3147 short int var21 /* : Bool */;
3148 int cltype22;
3149 int idtype23;
3150 val* var_tclassidnode6 /* var tclassidnode6: nullable Object */;
3151 short int var24 /* : Bool */;
3152 int cltype25;
3153 int idtype26;
3154 val* var_listnode7 /* var listnode7: nullable Object */;
3155 short int var27 /* : Bool */;
3156 int cltype28;
3157 int idtype29;
3158 val* var30 /* : Array[Object] */;
3159 val* var_listnode12 /* var listnode12: nullable Object */;
3160 short int var31 /* : Bool */;
3161 int cltype32;
3162 int idtype33;
3163 val* var34 /* : Array[Object] */;
3164 val* var_tkwendnode14 /* var tkwendnode14: nullable Object */;
3165 short int var35 /* : Bool */;
3166 int cltype36;
3167 int idtype37;
3168 val* var38 /* : AStdClassdef */;
3169 val* var39 /* : null */;
3170 val* var40 /* : null */;
3171 val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */;
3172 long var41 /* : Int */;
3173 long var42 /* : Int */;
3174 var_p = p0;
3175 var = NULL;
3176 var_node_list = var;
3177 {
3178 var1 = parser_work__Parser__pop(var_p);
3179 }
3180 var_nodearraylist10 = var1;
3181 {
3182 var2 = parser_work__Parser__pop(var_p);
3183 }
3184 var_nodearraylist9 = var2;
3185 {
3186 var3 = parser_work__Parser__pop(var_p);
3187 }
3188 var_nodearraylist8 = var3;
3189 {
3190 var4 = parser_work__Parser__pop(var_p);
3191 }
3192 var_nodearraylist7 = var4;
3193 {
3194 var5 = parser_work__Parser__pop(var_p);
3195 }
3196 var_nodearraylist6 = var5;
3197 {
3198 var6 = parser_work__Parser__pop(var_p);
3199 }
3200 var_nodearraylist5 = var6;
3201 {
3202 var7 = parser_work__Parser__pop(var_p);
3203 }
3204 var_nodearraylist4 = var7;
3205 {
3206 var8 = parser_work__Parser__pop(var_p);
3207 }
3208 var_nodearraylist3 = var8;
3209 {
3210 var9 = parser_work__Parser__pop(var_p);
3211 }
3212 var_nodearraylist2 = var9;
3213 {
3214 var10 = parser_work__Parser__pop(var_p);
3215 }
3216 var_nodearraylist1 = var10;
3217 var11 = NEW_array__Array(&type_array__Arraykernel__Object);
3218 {
3219 array__Array__init(var11); /* Direct call array#Array#init on <var11:Array[Object]>*/
3220 }
3221 var_listnode8 = var11;
3222 var12 = NEW_array__Array(&type_array__Arraykernel__Object);
3223 {
3224 array__Array__init(var12); /* Direct call array#Array#init on <var12:Array[Object]>*/
3225 }
3226 var_listnode11 = var12;
3227 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
3228 {
3229 array__Array__init(var13); /* Direct call array#Array#init on <var13:Array[Object]>*/
3230 }
3231 var_listnode13 = var13;
3232 var_pdocnode2 = var_nodearraylist1;
3233 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
3234 cltype = type_nullable_parser_nodes__ADoc.color;
3235 idtype = type_nullable_parser_nodes__ADoc.id;
3236 if(var_pdocnode2 == NULL) {
3237 var14 = 1;
3238 } else {
3239 if(cltype >= var_pdocnode2->type->table_size) {
3240 var14 = 0;
3241 } else {
3242 var14 = var_pdocnode2->type->type_table[cltype] == idtype;
3243 }
3244 }
3245 if (unlikely(!var14)) {
3246 PRINT_ERROR("Runtime error: %s", "Assert failed");
3247 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2014);
3248 show_backtrace(1);
3249 }
3250 var_tkwredefnode3 = var_nodearraylist2;
3251 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
3252 cltype16 = type_nullable_parser_nodes__TKwredef.color;
3253 idtype17 = type_nullable_parser_nodes__TKwredef.id;
3254 if(var_tkwredefnode3 == NULL) {
3255 var15 = 1;
3256 } else {
3257 if(cltype16 >= var_tkwredefnode3->type->table_size) {
3258 var15 = 0;
3259 } else {
3260 var15 = var_tkwredefnode3->type->type_table[cltype16] == idtype17;
3261 }
3262 }
3263 if (unlikely(!var15)) {
3264 PRINT_ERROR("Runtime error: %s", "Assert failed");
3265 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2016);
3266 show_backtrace(1);
3267 }
3268 var_pvisibilitynode4 = var_nodearraylist3;
3269 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
3270 cltype19 = type_nullable_parser_nodes__AVisibility.color;
3271 idtype20 = type_nullable_parser_nodes__AVisibility.id;
3272 if(var_pvisibilitynode4 == NULL) {
3273 var18 = 1;
3274 } else {
3275 if(cltype19 >= var_pvisibilitynode4->type->table_size) {
3276 var18 = 0;
3277 } else {
3278 var18 = var_pvisibilitynode4->type->type_table[cltype19] == idtype20;
3279 }
3280 }
3281 if (unlikely(!var18)) {
3282 PRINT_ERROR("Runtime error: %s", "Assert failed");
3283 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2018);
3284 show_backtrace(1);
3285 }
3286 var_pclasskindnode5 = var_nodearraylist4;
3287 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
3288 cltype22 = type_nullable_parser_nodes__AClasskind.color;
3289 idtype23 = type_nullable_parser_nodes__AClasskind.id;
3290 if(var_pclasskindnode5 == NULL) {
3291 var21 = 1;
3292 } else {
3293 if(cltype22 >= var_pclasskindnode5->type->table_size) {
3294 var21 = 0;
3295 } else {
3296 var21 = var_pclasskindnode5->type->type_table[cltype22] == idtype23;
3297 }
3298 }
3299 if (unlikely(!var21)) {
3300 PRINT_ERROR("Runtime error: %s", "Assert failed");
3301 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2020);
3302 show_backtrace(1);
3303 }
3304 var_tclassidnode6 = var_nodearraylist6;
3305 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
3306 cltype25 = type_nullable_parser_nodes__TClassid.color;
3307 idtype26 = type_nullable_parser_nodes__TClassid.id;
3308 if(var_tclassidnode6 == NULL) {
3309 var24 = 1;
3310 } else {
3311 if(cltype25 >= var_tclassidnode6->type->table_size) {
3312 var24 = 0;
3313 } else {
3314 var24 = var_tclassidnode6->type->type_table[cltype25] == idtype26;
3315 }
3316 }
3317 if (unlikely(!var24)) {
3318 PRINT_ERROR("Runtime error: %s", "Assert failed");
3319 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2022);
3320 show_backtrace(1);
3321 }
3322 var_listnode7 = var_nodearraylist7;
3323 /* <var_listnode7:nullable Object> isa Array[Object] */
3324 cltype28 = type_array__Arraykernel__Object.color;
3325 idtype29 = type_array__Arraykernel__Object.id;
3326 if(var_listnode7 == NULL) {
3327 var27 = 0;
3328 } else {
3329 if(cltype28 >= var_listnode7->type->table_size) {
3330 var27 = 0;
3331 } else {
3332 var27 = var_listnode7->type->type_table[cltype28] == idtype29;
3333 }
3334 }
3335 if (unlikely(!var27)) {
3336 PRINT_ERROR("Runtime error: %s", "Assert failed");
3337 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2024);
3338 show_backtrace(1);
3339 }
3340 {
3341 var30 = parser_work__ReduceAction__concat(self, var_listnode8, var_listnode7);
3342 }
3343 var_listnode8 = var30;
3344 var_listnode12 = var_nodearraylist8;
3345 /* <var_listnode12:nullable Object> isa Array[Object] */
3346 cltype32 = type_array__Arraykernel__Object.color;
3347 idtype33 = type_array__Arraykernel__Object.id;
3348 if(var_listnode12 == NULL) {
3349 var31 = 0;
3350 } else {
3351 if(cltype32 >= var_listnode12->type->table_size) {
3352 var31 = 0;
3353 } else {
3354 var31 = var_listnode12->type->type_table[cltype32] == idtype33;
3355 }
3356 }
3357 if (unlikely(!var31)) {
3358 PRINT_ERROR("Runtime error: %s", "Assert failed");
3359 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2027);
3360 show_backtrace(1);
3361 }
3362 {
3363 var34 = parser_work__ReduceAction__concat(self, var_listnode13, var_listnode12);
3364 }
3365 var_listnode13 = var34;
3366 var_tkwendnode14 = var_nodearraylist10;
3367 /* <var_tkwendnode14:nullable Object> isa nullable TKwend */
3368 cltype36 = type_nullable_parser_nodes__TKwend.color;
3369 idtype37 = type_nullable_parser_nodes__TKwend.id;
3370 if(var_tkwendnode14 == NULL) {
3371 var35 = 1;
3372 } else {
3373 if(cltype36 >= var_tkwendnode14->type->table_size) {
3374 var35 = 0;
3375 } else {
3376 var35 = var_tkwendnode14->type->type_table[cltype36] == idtype37;
3377 }
3378 }
3379 if (unlikely(!var35)) {
3380 PRINT_ERROR("Runtime error: %s", "Assert failed");
3381 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2030);
3382 show_backtrace(1);
3383 }
3384 var38 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
3385 var39 = NULL;
3386 var40 = NULL;
3387 {
3388 parser_prod__AStdClassdef__init_astdclassdef(var38, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var39, var40, var_listnode11, var_listnode13, var_tkwendnode14); /* Direct call parser_prod#AStdClassdef#init_astdclassdef on <var38:AStdClassdef>*/
3389 }
3390 var_pclassdefnode1 = var38;
3391 var_node_list = var_pclassdefnode1;
3392 var41 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction34> */
3393 {
3394 var42 = parser_work__Parser__go_to(var_p, var41);
3395 }
3396 {
3397 parser_work__Parser__push(var_p, var42, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
3398 }
3399 RET_LABEL:;
3400 }
3401 /* method parser#ReduceAction34#action for (self: Object, Parser) */
3402 void VIRTUAL_parser__ReduceAction34__action(val* self, val* p0) {
3403 parser__ReduceAction34__action(self, p0); /* Direct call parser#ReduceAction34#action on <self:Object(ReduceAction34)>*/
3404 RET_LABEL:;
3405 }
3406 /* method parser#ReduceAction35#action for (self: ReduceAction35, Parser) */
3407 void parser__ReduceAction35__action(val* self, val* p0) {
3408 val* var_p /* var p: Parser */;
3409 val* var /* : null */;
3410 val* var_node_list /* var node_list: nullable Object */;
3411 val* var1 /* : nullable Object */;
3412 val* var_nodearraylist11 /* var nodearraylist11: nullable Object */;
3413 val* var2 /* : nullable Object */;
3414 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
3415 val* var3 /* : nullable Object */;
3416 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
3417 val* var4 /* : nullable Object */;
3418 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
3419 val* var5 /* : nullable Object */;
3420 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
3421 val* var6 /* : nullable Object */;
3422 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
3423 val* var7 /* : nullable Object */;
3424 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
3425 val* var8 /* : nullable Object */;
3426 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3427 val* var9 /* : nullable Object */;
3428 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3429 val* var10 /* : nullable Object */;
3430 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3431 val* var11 /* : nullable Object */;
3432 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3433 val* var12 /* : Array[Object] */;
3434 val* var_listnode8 /* var listnode8: Array[Object] */;
3435 val* var13 /* : Array[Object] */;
3436 val* var_listnode16 /* var listnode16: Array[Object] */;
3437 val* var14 /* : Array[Object] */;
3438 val* var_listnode18 /* var listnode18: Array[Object] */;
3439 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
3440 short int var15 /* : Bool */;
3441 int cltype;
3442 int idtype;
3443 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
3444 short int var16 /* : Bool */;
3445 int cltype17;
3446 int idtype18;
3447 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
3448 short int var19 /* : Bool */;
3449 int cltype20;
3450 int idtype21;
3451 val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */;
3452 short int var22 /* : Bool */;
3453 int cltype23;
3454 int idtype24;
3455 val* var_tclassidnode6 /* var tclassidnode6: nullable Object */;
3456 short int var25 /* : Bool */;
3457 int cltype26;
3458 int idtype27;
3459 val* var_listnode7 /* var listnode7: nullable Object */;
3460 short int var28 /* : Bool */;
3461 int cltype29;
3462 int idtype30;
3463 val* var31 /* : Array[Object] */;
3464 val* var32 /* : Array[Object] */;
3465 val* var_listnode13 /* var listnode13: Array[Object] */;
3466 val* var_listnode12 /* var listnode12: nullable Object */;
3467 short int var33 /* : Bool */;
3468 int cltype34;
3469 int idtype35;
3470 val* var36 /* : Array[Object] */;
3471 val* var37 /* : AAnnotations */;
3472 val* var38 /* : null */;
3473 val* var39 /* : null */;
3474 val* var40 /* : null */;
3475 val* var_pannotationsnode9 /* var pannotationsnode9: nullable AAnnotations */;
3476 val* var_listnode17 /* var listnode17: nullable Object */;
3477 short int var41 /* : Bool */;
3478 int cltype42;
3479 int idtype43;
3480 val* var44 /* : Array[Object] */;
3481 val* var_tkwendnode19 /* var tkwendnode19: nullable Object */;
3482 short int var45 /* : Bool */;
3483 int cltype46;
3484 int idtype47;
3485 val* var48 /* : AStdClassdef */;
3486 val* var49 /* : null */;
3487 val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */;
3488 long var50 /* : Int */;
3489 long var51 /* : Int */;
3490 var_p = p0;
3491 var = NULL;
3492 var_node_list = var;
3493 {
3494 var1 = parser_work__Parser__pop(var_p);
3495 }
3496 var_nodearraylist11 = var1;
3497 {
3498 var2 = parser_work__Parser__pop(var_p);
3499 }
3500 var_nodearraylist10 = var2;
3501 {
3502 var3 = parser_work__Parser__pop(var_p);
3503 }
3504 var_nodearraylist9 = var3;
3505 {
3506 var4 = parser_work__Parser__pop(var_p);
3507 }
3508 var_nodearraylist8 = var4;
3509 {
3510 var5 = parser_work__Parser__pop(var_p);
3511 }
3512 var_nodearraylist7 = var5;
3513 {
3514 var6 = parser_work__Parser__pop(var_p);
3515 }
3516 var_nodearraylist6 = var6;
3517 {
3518 var7 = parser_work__Parser__pop(var_p);
3519 }
3520 var_nodearraylist5 = var7;
3521 {
3522 var8 = parser_work__Parser__pop(var_p);
3523 }
3524 var_nodearraylist4 = var8;
3525 {
3526 var9 = parser_work__Parser__pop(var_p);
3527 }
3528 var_nodearraylist3 = var9;
3529 {
3530 var10 = parser_work__Parser__pop(var_p);
3531 }
3532 var_nodearraylist2 = var10;
3533 {
3534 var11 = parser_work__Parser__pop(var_p);
3535 }
3536 var_nodearraylist1 = var11;
3537 var12 = NEW_array__Array(&type_array__Arraykernel__Object);
3538 {
3539 array__Array__init(var12); /* Direct call array#Array#init on <var12:Array[Object]>*/
3540 }
3541 var_listnode8 = var12;
3542 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
3543 {
3544 array__Array__init(var13); /* Direct call array#Array#init on <var13:Array[Object]>*/
3545 }
3546 var_listnode16 = var13;
3547 var14 = NEW_array__Array(&type_array__Arraykernel__Object);
3548 {
3549 array__Array__init(var14); /* Direct call array#Array#init on <var14:Array[Object]>*/
3550 }
3551 var_listnode18 = var14;
3552 var_pdocnode2 = var_nodearraylist1;
3553 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
3554 cltype = type_nullable_parser_nodes__ADoc.color;
3555 idtype = type_nullable_parser_nodes__ADoc.id;
3556 if(var_pdocnode2 == NULL) {
3557 var15 = 1;
3558 } else {
3559 if(cltype >= var_pdocnode2->type->table_size) {
3560 var15 = 0;
3561 } else {
3562 var15 = var_pdocnode2->type->type_table[cltype] == idtype;
3563 }
3564 }
3565 if (unlikely(!var15)) {
3566 PRINT_ERROR("Runtime error: %s", "Assert failed");
3567 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2068);
3568 show_backtrace(1);
3569 }
3570 var_tkwredefnode3 = var_nodearraylist2;
3571 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
3572 cltype17 = type_nullable_parser_nodes__TKwredef.color;
3573 idtype18 = type_nullable_parser_nodes__TKwredef.id;
3574 if(var_tkwredefnode3 == NULL) {
3575 var16 = 1;
3576 } else {
3577 if(cltype17 >= var_tkwredefnode3->type->table_size) {
3578 var16 = 0;
3579 } else {
3580 var16 = var_tkwredefnode3->type->type_table[cltype17] == idtype18;
3581 }
3582 }
3583 if (unlikely(!var16)) {
3584 PRINT_ERROR("Runtime error: %s", "Assert failed");
3585 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2070);
3586 show_backtrace(1);
3587 }
3588 var_pvisibilitynode4 = var_nodearraylist3;
3589 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
3590 cltype20 = type_nullable_parser_nodes__AVisibility.color;
3591 idtype21 = type_nullable_parser_nodes__AVisibility.id;
3592 if(var_pvisibilitynode4 == NULL) {
3593 var19 = 1;
3594 } else {
3595 if(cltype20 >= var_pvisibilitynode4->type->table_size) {
3596 var19 = 0;
3597 } else {
3598 var19 = var_pvisibilitynode4->type->type_table[cltype20] == idtype21;
3599 }
3600 }
3601 if (unlikely(!var19)) {
3602 PRINT_ERROR("Runtime error: %s", "Assert failed");
3603 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2072);
3604 show_backtrace(1);
3605 }
3606 var_pclasskindnode5 = var_nodearraylist4;
3607 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
3608 cltype23 = type_nullable_parser_nodes__AClasskind.color;
3609 idtype24 = type_nullable_parser_nodes__AClasskind.id;
3610 if(var_pclasskindnode5 == NULL) {
3611 var22 = 1;
3612 } else {
3613 if(cltype23 >= var_pclasskindnode5->type->table_size) {
3614 var22 = 0;
3615 } else {
3616 var22 = var_pclasskindnode5->type->type_table[cltype23] == idtype24;
3617 }
3618 }
3619 if (unlikely(!var22)) {
3620 PRINT_ERROR("Runtime error: %s", "Assert failed");
3621 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2074);
3622 show_backtrace(1);
3623 }
3624 var_tclassidnode6 = var_nodearraylist6;
3625 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
3626 cltype26 = type_nullable_parser_nodes__TClassid.color;
3627 idtype27 = type_nullable_parser_nodes__TClassid.id;
3628 if(var_tclassidnode6 == NULL) {
3629 var25 = 1;
3630 } else {
3631 if(cltype26 >= var_tclassidnode6->type->table_size) {
3632 var25 = 0;
3633 } else {
3634 var25 = var_tclassidnode6->type->type_table[cltype26] == idtype27;
3635 }
3636 }
3637 if (unlikely(!var25)) {
3638 PRINT_ERROR("Runtime error: %s", "Assert failed");
3639 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2076);
3640 show_backtrace(1);
3641 }
3642 var_listnode7 = var_nodearraylist7;
3643 /* <var_listnode7:nullable Object> isa Array[Object] */
3644 cltype29 = type_array__Arraykernel__Object.color;
3645 idtype30 = type_array__Arraykernel__Object.id;
3646 if(var_listnode7 == NULL) {
3647 var28 = 0;
3648 } else {
3649 if(cltype29 >= var_listnode7->type->table_size) {
3650 var28 = 0;
3651 } else {
3652 var28 = var_listnode7->type->type_table[cltype29] == idtype30;
3653 }
3654 }
3655 if (unlikely(!var28)) {
3656 PRINT_ERROR("Runtime error: %s", "Assert failed");
3657 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2078);
3658 show_backtrace(1);
3659 }
3660 {
3661 var31 = parser_work__ReduceAction__concat(self, var_listnode8, var_listnode7);
3662 }
3663 var_listnode8 = var31;
3664 var32 = NEW_array__Array(&type_array__Arraykernel__Object);
3665 {
3666 array__Array__init(var32); /* Direct call array#Array#init on <var32:Array[Object]>*/
3667 }
3668 var_listnode13 = var32;
3669 var_listnode12 = var_nodearraylist8;
3670 /* <var_listnode12:nullable Object> isa Array[Object] */
3671 cltype34 = type_array__Arraykernel__Object.color;
3672 idtype35 = type_array__Arraykernel__Object.id;
3673 if(var_listnode12 == NULL) {
3674 var33 = 0;
3675 } else {
3676 if(cltype34 >= var_listnode12->type->table_size) {
3677 var33 = 0;
3678 } else {
3679 var33 = var_listnode12->type->type_table[cltype34] == idtype35;
3680 }
3681 }
3682 if (unlikely(!var33)) {
3683 PRINT_ERROR("Runtime error: %s", "Assert failed");
3684 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2082);
3685 show_backtrace(1);
3686 }
3687 {
3688 var36 = parser_work__ReduceAction__concat(self, var_listnode13, var_listnode12);
3689 }
3690 var_listnode13 = var36;
3691 var37 = NEW_parser_nodes__AAnnotations(&type_parser_nodes__AAnnotations);
3692 var38 = NULL;
3693 var39 = NULL;
3694 var40 = NULL;
3695 {
3696 parser_prod__AAnnotations__init_aannotations(var37, var38, var39, var_listnode13, var40); /* Direct call parser_prod#AAnnotations#init_aannotations on <var37:AAnnotations>*/
3697 }
3698 var_pannotationsnode9 = var37;
3699 var_listnode17 = var_nodearraylist9;
3700 /* <var_listnode17:nullable Object> isa Array[Object] */
3701 cltype42 = type_array__Arraykernel__Object.color;
3702 idtype43 = type_array__Arraykernel__Object.id;
3703 if(var_listnode17 == NULL) {
3704 var41 = 0;
3705 } else {
3706 if(cltype42 >= var_listnode17->type->table_size) {
3707 var41 = 0;
3708 } else {
3709 var41 = var_listnode17->type->type_table[cltype42] == idtype43;
3710 }
3711 }
3712 if (unlikely(!var41)) {
3713 PRINT_ERROR("Runtime error: %s", "Assert failed");
3714 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2091);
3715 show_backtrace(1);
3716 }
3717 {
3718 var44 = parser_work__ReduceAction__concat(self, var_listnode18, var_listnode17);
3719 }
3720 var_listnode18 = var44;
3721 var_tkwendnode19 = var_nodearraylist11;
3722 /* <var_tkwendnode19:nullable Object> isa nullable TKwend */
3723 cltype46 = type_nullable_parser_nodes__TKwend.color;
3724 idtype47 = type_nullable_parser_nodes__TKwend.id;
3725 if(var_tkwendnode19 == NULL) {
3726 var45 = 1;
3727 } else {
3728 if(cltype46 >= var_tkwendnode19->type->table_size) {
3729 var45 = 0;
3730 } else {
3731 var45 = var_tkwendnode19->type->type_table[cltype46] == idtype47;
3732 }
3733 }
3734 if (unlikely(!var45)) {
3735 PRINT_ERROR("Runtime error: %s", "Assert failed");
3736 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2094);
3737 show_backtrace(1);
3738 }
3739 var48 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
3740 var49 = NULL;
3741 {
3742 parser_prod__AStdClassdef__init_astdclassdef(var48, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var_pannotationsnode9, var49, var_listnode16, var_listnode18, var_tkwendnode19); /* Direct call parser_prod#AStdClassdef#init_astdclassdef on <var48:AStdClassdef>*/
3743 }
3744 var_pclassdefnode1 = var48;
3745 var_node_list = var_pclassdefnode1;
3746 var50 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction35> */
3747 {
3748 var51 = parser_work__Parser__go_to(var_p, var50);
3749 }
3750 {
3751 parser_work__Parser__push(var_p, var51, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
3752 }
3753 RET_LABEL:;
3754 }
3755 /* method parser#ReduceAction35#action for (self: Object, Parser) */
3756 void VIRTUAL_parser__ReduceAction35__action(val* self, val* p0) {
3757 parser__ReduceAction35__action(self, p0); /* Direct call parser#ReduceAction35#action on <self:Object(ReduceAction35)>*/
3758 RET_LABEL:;
3759 }
3760 /* method parser#ReduceAction36#action for (self: ReduceAction36, Parser) */
3761 void parser__ReduceAction36__action(val* self, val* p0) {
3762 val* var_p /* var p: Parser */;
3763 val* var /* : null */;
3764 val* var_node_list /* var node_list: nullable Object */;
3765 val* var1 /* : nullable Object */;
3766 val* var_nodearraylist11 /* var nodearraylist11: nullable Object */;
3767 val* var2 /* : nullable Object */;
3768 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
3769 val* var3 /* : nullable Object */;
3770 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
3771 val* var4 /* : nullable Object */;
3772 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
3773 val* var5 /* : nullable Object */;
3774 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
3775 val* var6 /* : nullable Object */;
3776 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
3777 val* var7 /* : nullable Object */;
3778 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
3779 val* var8 /* : nullable Object */;
3780 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3781 val* var9 /* : nullable Object */;
3782 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3783 val* var10 /* : nullable Object */;
3784 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3785 val* var11 /* : nullable Object */;
3786 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3787 val* var12 /* : Array[Object] */;
3788 val* var_listnode8 /* var listnode8: Array[Object] */;
3789 val* var13 /* : Array[Object] */;
3790 val* var_listnode11 /* var listnode11: Array[Object] */;
3791 val* var14 /* : Array[Object] */;
3792 val* var_listnode13 /* var listnode13: Array[Object] */;
3793 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
3794 short int var15 /* : Bool */;
3795 int cltype;
3796 int idtype;
3797 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
3798 short int var16 /* : Bool */;
3799 int cltype17;
3800 int idtype18;
3801 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
3802 short int var19 /* : Bool */;
3803 int cltype20;
3804 int idtype21;
3805 val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */;
3806 short int var22 /* : Bool */;
3807 int cltype23;
3808 int idtype24;
3809 val* var_tclassidnode6 /* var tclassidnode6: nullable Object */;
3810 short int var25 /* : Bool */;
3811 int cltype26;
3812 int idtype27;
3813 val* var_listnode7 /* var listnode7: nullable Object */;
3814 short int var28 /* : Bool */;
3815 int cltype29;
3816 int idtype30;
3817 val* var31 /* : Array[Object] */;
3818 val* var_pexterncodeblocknode10 /* var pexterncodeblocknode10: nullable Object */;
3819 short int var32 /* : Bool */;
3820 int cltype33;
3821 int idtype34;
3822 val* var_listnode12 /* var listnode12: nullable Object */;
3823 short int var35 /* : Bool */;
3824 int cltype36;
3825 int idtype37;
3826 val* var38 /* : Array[Object] */;
3827 val* var_tkwendnode14 /* var tkwendnode14: nullable Object */;
3828 short int var39 /* : Bool */;
3829 int cltype40;
3830 int idtype41;
3831 val* var42 /* : AStdClassdef */;
3832 val* var43 /* : null */;
3833 val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */;
3834 long var44 /* : Int */;
3835 long var45 /* : Int */;
3836 var_p = p0;
3837 var = NULL;
3838 var_node_list = var;
3839 {
3840 var1 = parser_work__Parser__pop(var_p);
3841 }
3842 var_nodearraylist11 = var1;
3843 {
3844 var2 = parser_work__Parser__pop(var_p);
3845 }
3846 var_nodearraylist10 = var2;
3847 {
3848 var3 = parser_work__Parser__pop(var_p);
3849 }
3850 var_nodearraylist9 = var3;
3851 {
3852 var4 = parser_work__Parser__pop(var_p);
3853 }
3854 var_nodearraylist8 = var4;
3855 {
3856 var5 = parser_work__Parser__pop(var_p);
3857 }
3858 var_nodearraylist7 = var5;
3859 {
3860 var6 = parser_work__Parser__pop(var_p);
3861 }
3862 var_nodearraylist6 = var6;
3863 {
3864 var7 = parser_work__Parser__pop(var_p);
3865 }
3866 var_nodearraylist5 = var7;
3867 {
3868 var8 = parser_work__Parser__pop(var_p);
3869 }
3870 var_nodearraylist4 = var8;
3871 {
3872 var9 = parser_work__Parser__pop(var_p);
3873 }
3874 var_nodearraylist3 = var9;
3875 {
3876 var10 = parser_work__Parser__pop(var_p);
3877 }
3878 var_nodearraylist2 = var10;
3879 {
3880 var11 = parser_work__Parser__pop(var_p);
3881 }
3882 var_nodearraylist1 = var11;
3883 var12 = NEW_array__Array(&type_array__Arraykernel__Object);
3884 {
3885 array__Array__init(var12); /* Direct call array#Array#init on <var12:Array[Object]>*/
3886 }
3887 var_listnode8 = var12;
3888 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
3889 {
3890 array__Array__init(var13); /* Direct call array#Array#init on <var13:Array[Object]>*/
3891 }
3892 var_listnode11 = var13;
3893 var14 = NEW_array__Array(&type_array__Arraykernel__Object);
3894 {
3895 array__Array__init(var14); /* Direct call array#Array#init on <var14:Array[Object]>*/
3896 }
3897 var_listnode13 = var14;
3898 var_pdocnode2 = var_nodearraylist1;
3899 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
3900 cltype = type_nullable_parser_nodes__ADoc.color;
3901 idtype = type_nullable_parser_nodes__ADoc.id;
3902 if(var_pdocnode2 == NULL) {
3903 var15 = 1;
3904 } else {
3905 if(cltype >= var_pdocnode2->type->table_size) {
3906 var15 = 0;
3907 } else {
3908 var15 = var_pdocnode2->type->type_table[cltype] == idtype;
3909 }
3910 }
3911 if (unlikely(!var15)) {
3912 PRINT_ERROR("Runtime error: %s", "Assert failed");
3913 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2132);
3914 show_backtrace(1);
3915 }
3916 var_tkwredefnode3 = var_nodearraylist2;
3917 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
3918 cltype17 = type_nullable_parser_nodes__TKwredef.color;
3919 idtype18 = type_nullable_parser_nodes__TKwredef.id;
3920 if(var_tkwredefnode3 == NULL) {
3921 var16 = 1;
3922 } else {
3923 if(cltype17 >= var_tkwredefnode3->type->table_size) {
3924 var16 = 0;
3925 } else {
3926 var16 = var_tkwredefnode3->type->type_table[cltype17] == idtype18;
3927 }
3928 }
3929 if (unlikely(!var16)) {
3930 PRINT_ERROR("Runtime error: %s", "Assert failed");
3931 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2134);
3932 show_backtrace(1);
3933 }
3934 var_pvisibilitynode4 = var_nodearraylist3;
3935 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
3936 cltype20 = type_nullable_parser_nodes__AVisibility.color;
3937 idtype21 = type_nullable_parser_nodes__AVisibility.id;
3938 if(var_pvisibilitynode4 == NULL) {
3939 var19 = 1;
3940 } else {
3941 if(cltype20 >= var_pvisibilitynode4->type->table_size) {
3942 var19 = 0;
3943 } else {
3944 var19 = var_pvisibilitynode4->type->type_table[cltype20] == idtype21;
3945 }
3946 }
3947 if (unlikely(!var19)) {
3948 PRINT_ERROR("Runtime error: %s", "Assert failed");
3949 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2136);
3950 show_backtrace(1);
3951 }
3952 var_pclasskindnode5 = var_nodearraylist4;
3953 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
3954 cltype23 = type_nullable_parser_nodes__AClasskind.color;
3955 idtype24 = type_nullable_parser_nodes__AClasskind.id;
3956 if(var_pclasskindnode5 == NULL) {
3957 var22 = 1;
3958 } else {
3959 if(cltype23 >= var_pclasskindnode5->type->table_size) {
3960 var22 = 0;
3961 } else {
3962 var22 = var_pclasskindnode5->type->type_table[cltype23] == idtype24;
3963 }
3964 }
3965 if (unlikely(!var22)) {
3966 PRINT_ERROR("Runtime error: %s", "Assert failed");
3967 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2138);
3968 show_backtrace(1);
3969 }
3970 var_tclassidnode6 = var_nodearraylist6;
3971 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
3972 cltype26 = type_nullable_parser_nodes__TClassid.color;
3973 idtype27 = type_nullable_parser_nodes__TClassid.id;
3974 if(var_tclassidnode6 == NULL) {
3975 var25 = 1;
3976 } else {
3977 if(cltype26 >= var_tclassidnode6->type->table_size) {
3978 var25 = 0;
3979 } else {
3980 var25 = var_tclassidnode6->type->type_table[cltype26] == idtype27;
3981 }
3982 }
3983 if (unlikely(!var25)) {
3984 PRINT_ERROR("Runtime error: %s", "Assert failed");
3985 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2140);
3986 show_backtrace(1);
3987 }
3988 var_listnode7 = var_nodearraylist7;
3989 /* <var_listnode7:nullable Object> isa Array[Object] */
3990 cltype29 = type_array__Arraykernel__Object.color;
3991 idtype30 = type_array__Arraykernel__Object.id;
3992 if(var_listnode7 == NULL) {
3993 var28 = 0;
3994 } else {
3995 if(cltype29 >= var_listnode7->type->table_size) {
3996 var28 = 0;
3997 } else {
3998 var28 = var_listnode7->type->type_table[cltype29] == idtype30;
3999 }
4000 }
4001 if (unlikely(!var28)) {
4002 PRINT_ERROR("Runtime error: %s", "Assert failed");
4003 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2142);
4004 show_backtrace(1);
4005 }
4006 {
4007 var31 = parser_work__ReduceAction__concat(self, var_listnode8, var_listnode7);
4008 }
4009 var_listnode8 = var31;
4010 var_pexterncodeblocknode10 = var_nodearraylist8;
4011 /* <var_pexterncodeblocknode10:nullable Object> isa nullable AExternCodeBlock */
4012 cltype33 = type_nullable_parser_nodes__AExternCodeBlock.color;
4013 idtype34 = type_nullable_parser_nodes__AExternCodeBlock.id;
4014 if(var_pexterncodeblocknode10 == NULL) {
4015 var32 = 1;
4016 } else {
4017 if(cltype33 >= var_pexterncodeblocknode10->type->table_size) {
4018 var32 = 0;
4019 } else {
4020 var32 = var_pexterncodeblocknode10->type->type_table[cltype33] == idtype34;
4021 }
4022 }
4023 if (unlikely(!var32)) {
4024 PRINT_ERROR("Runtime error: %s", "Assert failed");
4025 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2145);
4026 show_backtrace(1);
4027 }
4028 var_listnode12 = var_nodearraylist9;
4029 /* <var_listnode12:nullable Object> isa Array[Object] */
4030 cltype36 = type_array__Arraykernel__Object.color;
4031 idtype37 = type_array__Arraykernel__Object.id;
4032 if(var_listnode12 == NULL) {
4033 var35 = 0;
4034 } else {
4035 if(cltype36 >= var_listnode12->type->table_size) {
4036 var35 = 0;
4037 } else {
4038 var35 = var_listnode12->type->type_table[cltype36] == idtype37;
4039 }
4040 }
4041 if (unlikely(!var35)) {
4042 PRINT_ERROR("Runtime error: %s", "Assert failed");
4043 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2147);
4044 show_backtrace(1);
4045 }
4046 {
4047 var38 = parser_work__ReduceAction__concat(self, var_listnode13, var_listnode12);
4048 }
4049 var_listnode13 = var38;
4050 var_tkwendnode14 = var_nodearraylist11;
4051 /* <var_tkwendnode14:nullable Object> isa nullable TKwend */
4052 cltype40 = type_nullable_parser_nodes__TKwend.color;
4053 idtype41 = type_nullable_parser_nodes__TKwend.id;
4054 if(var_tkwendnode14 == NULL) {
4055 var39 = 1;
4056 } else {
4057 if(cltype40 >= var_tkwendnode14->type->table_size) {
4058 var39 = 0;
4059 } else {
4060 var39 = var_tkwendnode14->type->type_table[cltype40] == idtype41;
4061 }
4062 }
4063 if (unlikely(!var39)) {
4064 PRINT_ERROR("Runtime error: %s", "Assert failed");
4065 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2150);
4066 show_backtrace(1);
4067 }
4068 var42 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
4069 var43 = NULL;
4070 {
4071 parser_prod__AStdClassdef__init_astdclassdef(var42, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var43, var_pexterncodeblocknode10, var_listnode11, var_listnode13, var_tkwendnode14); /* Direct call parser_prod#AStdClassdef#init_astdclassdef on <var42:AStdClassdef>*/
4072 }
4073 var_pclassdefnode1 = var42;
4074 var_node_list = var_pclassdefnode1;
4075 var44 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction36> */
4076 {
4077 var45 = parser_work__Parser__go_to(var_p, var44);
4078 }
4079 {
4080 parser_work__Parser__push(var_p, var45, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
4081 }
4082 RET_LABEL:;
4083 }
4084 /* method parser#ReduceAction36#action for (self: Object, Parser) */
4085 void VIRTUAL_parser__ReduceAction36__action(val* self, val* p0) {
4086 parser__ReduceAction36__action(self, p0); /* Direct call parser#ReduceAction36#action on <self:Object(ReduceAction36)>*/
4087 RET_LABEL:;
4088 }
4089 /* method parser#ReduceAction37#action for (self: ReduceAction37, Parser) */
4090 void parser__ReduceAction37__action(val* self, val* p0) {
4091 val* var_p /* var p: Parser */;
4092 val* var /* : null */;
4093 val* var_node_list /* var node_list: nullable Object */;
4094 val* var1 /* : nullable Object */;
4095 val* var_nodearraylist12 /* var nodearraylist12: nullable Object */;
4096 val* var2 /* : nullable Object */;
4097 val* var_nodearraylist11 /* var nodearraylist11: nullable Object */;
4098 val* var3 /* : nullable Object */;
4099 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
4100 val* var4 /* : nullable Object */;
4101 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
4102 val* var5 /* : nullable Object */;
4103 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
4104 val* var6 /* : nullable Object */;
4105 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
4106 val* var7 /* : nullable Object */;
4107 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
4108 val* var8 /* : nullable Object */;
4109 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
4110 val* var9 /* : nullable Object */;
4111 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4112 val* var10 /* : nullable Object */;
4113 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4114 val* var11 /* : nullable Object */;
4115 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4116 val* var12 /* : nullable Object */;
4117 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4118 val* var13 /* : Array[Object] */;
4119 val* var_listnode8 /* var listnode8: Array[Object] */;
4120 val* var14 /* : Array[Object] */;
4121 val* var_listnode16 /* var listnode16: Array[Object] */;
4122 val* var15 /* : Array[Object] */;
4123 val* var_listnode18 /* var listnode18: Array[Object] */;
4124 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
4125 short int var16 /* : Bool */;
4126 int cltype;
4127 int idtype;
4128 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
4129 short int var17 /* : Bool */;
4130 int cltype18;
4131 int idtype19;
4132 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
4133 short int var20 /* : Bool */;
4134 int cltype21;
4135 int idtype22;
4136 val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */;
4137 short int var23 /* : Bool */;
4138 int cltype24;
4139 int idtype25;
4140 val* var_tclassidnode6 /* var tclassidnode6: nullable Object */;
4141 short int var26 /* : Bool */;
4142 int cltype27;
4143 int idtype28;
4144 val* var_listnode7 /* var listnode7: nullable Object */;
4145 short int var29 /* : Bool */;
4146 int cltype30;
4147 int idtype31;
4148 val* var32 /* : Array[Object] */;
4149 val* var33 /* : Array[Object] */;
4150 val* var_listnode13 /* var listnode13: Array[Object] */;
4151 val* var_listnode12 /* var listnode12: nullable Object */;
4152 short int var34 /* : Bool */;
4153 int cltype35;
4154 int idtype36;
4155 val* var37 /* : Array[Object] */;
4156 val* var38 /* : AAnnotations */;
4157 val* var39 /* : null */;
4158 val* var40 /* : null */;
4159 val* var41 /* : null */;
4160 val* var_pannotationsnode9 /* var pannotationsnode9: nullable AAnnotations */;
4161 val* var_pexterncodeblocknode15 /* var pexterncodeblocknode15: nullable Object */;
4162 short int var42 /* : Bool */;
4163 int cltype43;
4164 int idtype44;
4165 val* var_listnode17 /* var listnode17: nullable Object */;
4166 short int var45 /* : Bool */;
4167 int cltype46;
4168 int idtype47;
4169 val* var48 /* : Array[Object] */;
4170 val* var_tkwendnode19 /* var tkwendnode19: nullable Object */;
4171 short int var49 /* : Bool */;
4172 int cltype50;
4173 int idtype51;
4174 val* var52 /* : AStdClassdef */;
4175 val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */;
4176 long var53 /* : Int */;
4177 long var54 /* : Int */;
4178 var_p = p0;
4179 var = NULL;
4180 var_node_list = var;
4181 {
4182 var1 = parser_work__Parser__pop(var_p);
4183 }
4184 var_nodearraylist12 = var1;
4185 {
4186 var2 = parser_work__Parser__pop(var_p);
4187 }
4188 var_nodearraylist11 = var2;
4189 {
4190 var3 = parser_work__Parser__pop(var_p);
4191 }
4192 var_nodearraylist10 = var3;
4193 {
4194 var4 = parser_work__Parser__pop(var_p);
4195 }
4196 var_nodearraylist9 = var4;
4197 {
4198 var5 = parser_work__Parser__pop(var_p);
4199 }
4200 var_nodearraylist8 = var5;
4201 {
4202 var6 = parser_work__Parser__pop(var_p);
4203 }
4204 var_nodearraylist7 = var6;
4205 {
4206 var7 = parser_work__Parser__pop(var_p);
4207 }
4208 var_nodearraylist6 = var7;
4209 {
4210 var8 = parser_work__Parser__pop(var_p);
4211 }
4212 var_nodearraylist5 = var8;
4213 {
4214 var9 = parser_work__Parser__pop(var_p);
4215 }
4216 var_nodearraylist4 = var9;
4217 {
4218 var10 = parser_work__Parser__pop(var_p);
4219 }
4220 var_nodearraylist3 = var10;
4221 {
4222 var11 = parser_work__Parser__pop(var_p);
4223 }
4224 var_nodearraylist2 = var11;
4225 {
4226 var12 = parser_work__Parser__pop(var_p);
4227 }
4228 var_nodearraylist1 = var12;
4229 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
4230 {
4231 array__Array__init(var13); /* Direct call array#Array#init on <var13:Array[Object]>*/
4232 }
4233 var_listnode8 = var13;
4234 var14 = NEW_array__Array(&type_array__Arraykernel__Object);
4235 {
4236 array__Array__init(var14); /* Direct call array#Array#init on <var14:Array[Object]>*/
4237 }
4238 var_listnode16 = var14;
4239 var15 = NEW_array__Array(&type_array__Arraykernel__Object);
4240 {
4241 array__Array__init(var15); /* Direct call array#Array#init on <var15:Array[Object]>*/
4242 }
4243 var_listnode18 = var15;
4244 var_pdocnode2 = var_nodearraylist1;
4245 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
4246 cltype = type_nullable_parser_nodes__ADoc.color;
4247 idtype = type_nullable_parser_nodes__ADoc.id;
4248 if(var_pdocnode2 == NULL) {
4249 var16 = 1;
4250 } else {
4251 if(cltype >= var_pdocnode2->type->table_size) {
4252 var16 = 0;
4253 } else {
4254 var16 = var_pdocnode2->type->type_table[cltype] == idtype;
4255 }
4256 }
4257 if (unlikely(!var16)) {
4258 PRINT_ERROR("Runtime error: %s", "Assert failed");
4259 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2189);
4260 show_backtrace(1);
4261 }
4262 var_tkwredefnode3 = var_nodearraylist2;
4263 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
4264 cltype18 = type_nullable_parser_nodes__TKwredef.color;
4265 idtype19 = type_nullable_parser_nodes__TKwredef.id;
4266 if(var_tkwredefnode3 == NULL) {
4267 var17 = 1;
4268 } else {
4269 if(cltype18 >= var_tkwredefnode3->type->table_size) {
4270 var17 = 0;
4271 } else {
4272 var17 = var_tkwredefnode3->type->type_table[cltype18] == idtype19;
4273 }
4274 }
4275 if (unlikely(!var17)) {
4276 PRINT_ERROR("Runtime error: %s", "Assert failed");
4277 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2191);
4278 show_backtrace(1);
4279 }
4280 var_pvisibilitynode4 = var_nodearraylist3;
4281 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
4282 cltype21 = type_nullable_parser_nodes__AVisibility.color;
4283 idtype22 = type_nullable_parser_nodes__AVisibility.id;
4284 if(var_pvisibilitynode4 == NULL) {
4285 var20 = 1;
4286 } else {
4287 if(cltype21 >= var_pvisibilitynode4->type->table_size) {
4288 var20 = 0;
4289 } else {
4290 var20 = var_pvisibilitynode4->type->type_table[cltype21] == idtype22;
4291 }
4292 }
4293 if (unlikely(!var20)) {
4294 PRINT_ERROR("Runtime error: %s", "Assert failed");
4295 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2193);
4296 show_backtrace(1);
4297 }
4298 var_pclasskindnode5 = var_nodearraylist4;
4299 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
4300 cltype24 = type_nullable_parser_nodes__AClasskind.color;
4301 idtype25 = type_nullable_parser_nodes__AClasskind.id;
4302 if(var_pclasskindnode5 == NULL) {
4303 var23 = 1;
4304 } else {
4305 if(cltype24 >= var_pclasskindnode5->type->table_size) {
4306 var23 = 0;
4307 } else {
4308 var23 = var_pclasskindnode5->type->type_table[cltype24] == idtype25;
4309 }
4310 }
4311 if (unlikely(!var23)) {
4312 PRINT_ERROR("Runtime error: %s", "Assert failed");
4313 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2195);
4314 show_backtrace(1);
4315 }
4316 var_tclassidnode6 = var_nodearraylist6;
4317 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
4318 cltype27 = type_nullable_parser_nodes__TClassid.color;
4319 idtype28 = type_nullable_parser_nodes__TClassid.id;
4320 if(var_tclassidnode6 == NULL) {
4321 var26 = 1;
4322 } else {
4323 if(cltype27 >= var_tclassidnode6->type->table_size) {
4324 var26 = 0;
4325 } else {
4326 var26 = var_tclassidnode6->type->type_table[cltype27] == idtype28;
4327 }
4328 }
4329 if (unlikely(!var26)) {
4330 PRINT_ERROR("Runtime error: %s", "Assert failed");
4331 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2197);
4332 show_backtrace(1);
4333 }
4334 var_listnode7 = var_nodearraylist7;
4335 /* <var_listnode7:nullable Object> isa Array[Object] */
4336 cltype30 = type_array__Arraykernel__Object.color;
4337 idtype31 = type_array__Arraykernel__Object.id;
4338 if(var_listnode7 == NULL) {
4339 var29 = 0;
4340 } else {
4341 if(cltype30 >= var_listnode7->type->table_size) {
4342 var29 = 0;
4343 } else {
4344 var29 = var_listnode7->type->type_table[cltype30] == idtype31;
4345 }
4346 }
4347 if (unlikely(!var29)) {
4348 PRINT_ERROR("Runtime error: %s", "Assert failed");
4349 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2199);
4350 show_backtrace(1);
4351 }
4352 {
4353 var32 = parser_work__ReduceAction__concat(self, var_listnode8, var_listnode7);
4354 }
4355 var_listnode8 = var32;
4356 var33 = NEW_array__Array(&type_array__Arraykernel__Object);
4357 {
4358 array__Array__init(var33); /* Direct call array#Array#init on <var33:Array[Object]>*/
4359 }
4360 var_listnode13 = var33;
4361 var_listnode12 = var_nodearraylist8;
4362 /* <var_listnode12:nullable Object> isa Array[Object] */
4363 cltype35 = type_array__Arraykernel__Object.color;
4364 idtype36 = type_array__Arraykernel__Object.id;
4365 if(var_listnode12 == NULL) {
4366 var34 = 0;
4367 } else {
4368 if(cltype35 >= var_listnode12->type->table_size) {
4369 var34 = 0;
4370 } else {
4371 var34 = var_listnode12->type->type_table[cltype35] == idtype36;
4372 }
4373 }
4374 if (unlikely(!var34)) {
4375 PRINT_ERROR("Runtime error: %s", "Assert failed");
4376 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2203);
4377 show_backtrace(1);
4378 }
4379 {
4380 var37 = parser_work__ReduceAction__concat(self, var_listnode13, var_listnode12);
4381 }
4382 var_listnode13 = var37;
4383 var38 = NEW_parser_nodes__AAnnotations(&type_parser_nodes__AAnnotations);
4384 var39 = NULL;
4385 var40 = NULL;
4386 var41 = NULL;
4387 {
4388 parser_prod__AAnnotations__init_aannotations(var38, var39, var40, var_listnode13, var41); /* Direct call parser_prod#AAnnotations#init_aannotations on <var38:AAnnotations>*/
4389 }
4390 var_pannotationsnode9 = var38;
4391 var_pexterncodeblocknode15 = var_nodearraylist9;
4392 /* <var_pexterncodeblocknode15:nullable Object> isa nullable AExternCodeBlock */
4393 cltype43 = type_nullable_parser_nodes__AExternCodeBlock.color;
4394 idtype44 = type_nullable_parser_nodes__AExternCodeBlock.id;
4395 if(var_pexterncodeblocknode15 == NULL) {
4396 var42 = 1;
4397 } else {
4398 if(cltype43 >= var_pexterncodeblocknode15->type->table_size) {
4399 var42 = 0;
4400 } else {
4401 var42 = var_pexterncodeblocknode15->type->type_table[cltype43] == idtype44;
4402 }
4403 }
4404 if (unlikely(!var42)) {
4405 PRINT_ERROR("Runtime error: %s", "Assert failed");
4406 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2212);
4407 show_backtrace(1);
4408 }
4409 var_listnode17 = var_nodearraylist10;
4410 /* <var_listnode17:nullable Object> isa Array[Object] */
4411 cltype46 = type_array__Arraykernel__Object.color;
4412 idtype47 = type_array__Arraykernel__Object.id;
4413 if(var_listnode17 == NULL) {
4414 var45 = 0;
4415 } else {
4416 if(cltype46 >= var_listnode17->type->table_size) {
4417 var45 = 0;
4418 } else {
4419 var45 = var_listnode17->type->type_table[cltype46] == idtype47;
4420 }
4421 }
4422 if (unlikely(!var45)) {
4423 PRINT_ERROR("Runtime error: %s", "Assert failed");
4424 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2214);
4425 show_backtrace(1);
4426 }
4427 {
4428 var48 = parser_work__ReduceAction__concat(self, var_listnode18, var_listnode17);
4429 }
4430 var_listnode18 = var48;
4431 var_tkwendnode19 = var_nodearraylist12;
4432 /* <var_tkwendnode19:nullable Object> isa nullable TKwend */
4433 cltype50 = type_nullable_parser_nodes__TKwend.color;
4434 idtype51 = type_nullable_parser_nodes__TKwend.id;
4435 if(var_tkwendnode19 == NULL) {
4436 var49 = 1;
4437 } else {
4438 if(cltype50 >= var_tkwendnode19->type->table_size) {
4439 var49 = 0;
4440 } else {
4441 var49 = var_tkwendnode19->type->type_table[cltype50] == idtype51;
4442 }
4443 }
4444 if (unlikely(!var49)) {
4445 PRINT_ERROR("Runtime error: %s", "Assert failed");
4446 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2217);
4447 show_backtrace(1);
4448 }
4449 var52 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
4450 {
4451 parser_prod__AStdClassdef__init_astdclassdef(var52, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var_pannotationsnode9, var_pexterncodeblocknode15, var_listnode16, var_listnode18, var_tkwendnode19); /* Direct call parser_prod#AStdClassdef#init_astdclassdef on <var52:AStdClassdef>*/
4452 }
4453 var_pclassdefnode1 = var52;
4454 var_node_list = var_pclassdefnode1;
4455 var53 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction37> */
4456 {
4457 var54 = parser_work__Parser__go_to(var_p, var53);
4458 }
4459 {
4460 parser_work__Parser__push(var_p, var54, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
4461 }
4462 RET_LABEL:;
4463 }
4464 /* method parser#ReduceAction37#action for (self: Object, Parser) */
4465 void VIRTUAL_parser__ReduceAction37__action(val* self, val* p0) {
4466 parser__ReduceAction37__action(self, p0); /* Direct call parser#ReduceAction37#action on <self:Object(ReduceAction37)>*/
4467 RET_LABEL:;
4468 }
4469 /* method parser#ReduceAction38#action for (self: ReduceAction38, Parser) */
4470 void parser__ReduceAction38__action(val* self, val* p0) {
4471 val* var_p /* var p: Parser */;
4472 val* var /* : null */;
4473 val* var_node_list /* var node_list: nullable Object */;
4474 val* var1 /* : nullable Object */;
4475 val* var_nodearraylist11 /* var nodearraylist11: nullable Object */;
4476 val* var2 /* : nullable Object */;
4477 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
4478 val* var3 /* : nullable Object */;
4479 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
4480 val* var4 /* : nullable Object */;
4481 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
4482 val* var5 /* : nullable Object */;
4483 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
4484 val* var6 /* : nullable Object */;
4485 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
4486 val* var7 /* : nullable Object */;
4487 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
4488 val* var8 /* : nullable Object */;
4489 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4490 val* var9 /* : nullable Object */;
4491 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4492 val* var10 /* : nullable Object */;
4493 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4494 val* var11 /* : nullable Object */;
4495 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4496 val* var12 /* : Array[Object] */;
4497 val* var_listnode8 /* var listnode8: Array[Object] */;
4498 val* var13 /* : Array[Object] */;
4499 val* var_listnode12 /* var listnode12: Array[Object] */;
4500 val* var14 /* : Array[Object] */;
4501 val* var_listnode14 /* var listnode14: Array[Object] */;
4502 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
4503 short int var15 /* : Bool */;
4504 int cltype;
4505 int idtype;
4506 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
4507 short int var16 /* : Bool */;
4508 int cltype17;
4509 int idtype18;
4510 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
4511 short int var19 /* : Bool */;
4512 int cltype20;
4513 int idtype21;
4514 val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */;
4515 short int var22 /* : Bool */;
4516 int cltype23;
4517 int idtype24;
4518 val* var_tclassidnode6 /* var tclassidnode6: nullable Object */;
4519 short int var25 /* : Bool */;
4520 int cltype26;
4521 int idtype27;
4522 val* var_listnode7 /* var listnode7: nullable Object */;
4523 short int var28 /* : Bool */;
4524 int cltype29;
4525 int idtype30;
4526 val* var31 /* : Array[Object] */;
4527 val* var_listnode11 /* var listnode11: nullable Object */;
4528 short int var32 /* : Bool */;
4529 int cltype33;
4530 int idtype34;
4531 val* var35 /* : Array[Object] */;
4532 val* var_listnode13 /* var listnode13: nullable Object */;
4533 short int var36 /* : Bool */;
4534 int cltype37;
4535 int idtype38;
4536 val* var39 /* : Array[Object] */;
4537 val* var_tkwendnode15 /* var tkwendnode15: nullable Object */;
4538 short int var40 /* : Bool */;
4539 int cltype41;
4540 int idtype42;
4541 val* var43 /* : AStdClassdef */;
4542 val* var44 /* : null */;
4543 val* var45 /* : null */;
4544 val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */;
4545 long var46 /* : Int */;
4546 long var47 /* : Int */;
4547 var_p = p0;
4548 var = NULL;
4549 var_node_list = var;
4550 {
4551 var1 = parser_work__Parser__pop(var_p);
4552 }
4553 var_nodearraylist11 = var1;
4554 {
4555 var2 = parser_work__Parser__pop(var_p);
4556 }
4557 var_nodearraylist10 = var2;
4558 {
4559 var3 = parser_work__Parser__pop(var_p);
4560 }
4561 var_nodearraylist9 = var3;
4562 {
4563 var4 = parser_work__Parser__pop(var_p);
4564 }
4565 var_nodearraylist8 = var4;
4566 {
4567 var5 = parser_work__Parser__pop(var_p);
4568 }
4569 var_nodearraylist7 = var5;
4570 {
4571 var6 = parser_work__Parser__pop(var_p);
4572 }
4573 var_nodearraylist6 = var6;
4574 {
4575 var7 = parser_work__Parser__pop(var_p);
4576 }
4577 var_nodearraylist5 = var7;
4578 {
4579 var8 = parser_work__Parser__pop(var_p);
4580 }
4581 var_nodearraylist4 = var8;
4582 {
4583 var9 = parser_work__Parser__pop(var_p);
4584 }
4585 var_nodearraylist3 = var9;
4586 {
4587 var10 = parser_work__Parser__pop(var_p);
4588 }
4589 var_nodearraylist2 = var10;
4590 {
4591 var11 = parser_work__Parser__pop(var_p);
4592 }
4593 var_nodearraylist1 = var11;
4594 var12 = NEW_array__Array(&type_array__Arraykernel__Object);
4595 {
4596 array__Array__init(var12); /* Direct call array#Array#init on <var12:Array[Object]>*/
4597 }
4598 var_listnode8 = var12;
4599 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
4600 {
4601 array__Array__init(var13); /* Direct call array#Array#init on <var13:Array[Object]>*/
4602 }
4603 var_listnode12 = var13;
4604 var14 = NEW_array__Array(&type_array__Arraykernel__Object);
4605 {
4606 array__Array__init(var14); /* Direct call array#Array#init on <var14:Array[Object]>*/
4607 }
4608 var_listnode14 = var14;
4609 var_pdocnode2 = var_nodearraylist1;
4610 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
4611 cltype = type_nullable_parser_nodes__ADoc.color;
4612 idtype = type_nullable_parser_nodes__ADoc.id;
4613 if(var_pdocnode2 == NULL) {
4614 var15 = 1;
4615 } else {
4616 if(cltype >= var_pdocnode2->type->table_size) {
4617 var15 = 0;
4618 } else {
4619 var15 = var_pdocnode2->type->type_table[cltype] == idtype;
4620 }
4621 }
4622 if (unlikely(!var15)) {
4623 PRINT_ERROR("Runtime error: %s", "Assert failed");
4624 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2255);
4625 show_backtrace(1);
4626 }
4627 var_tkwredefnode3 = var_nodearraylist2;
4628 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
4629 cltype17 = type_nullable_parser_nodes__TKwredef.color;
4630 idtype18 = type_nullable_parser_nodes__TKwredef.id;
4631 if(var_tkwredefnode3 == NULL) {
4632 var16 = 1;
4633 } else {
4634 if(cltype17 >= var_tkwredefnode3->type->table_size) {
4635 var16 = 0;
4636 } else {
4637 var16 = var_tkwredefnode3->type->type_table[cltype17] == idtype18;
4638 }
4639 }
4640 if (unlikely(!var16)) {
4641 PRINT_ERROR("Runtime error: %s", "Assert failed");
4642 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2257);
4643 show_backtrace(1);
4644 }
4645 var_pvisibilitynode4 = var_nodearraylist3;
4646 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
4647 cltype20 = type_nullable_parser_nodes__AVisibility.color;
4648 idtype21 = type_nullable_parser_nodes__AVisibility.id;
4649 if(var_pvisibilitynode4 == NULL) {
4650 var19 = 1;
4651 } else {
4652 if(cltype20 >= var_pvisibilitynode4->type->table_size) {
4653 var19 = 0;
4654 } else {
4655 var19 = var_pvisibilitynode4->type->type_table[cltype20] == idtype21;
4656 }
4657 }
4658 if (unlikely(!var19)) {
4659 PRINT_ERROR("Runtime error: %s", "Assert failed");
4660 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2259);
4661 show_backtrace(1);
4662 }
4663 var_pclasskindnode5 = var_nodearraylist4;
4664 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
4665 cltype23 = type_nullable_parser_nodes__AClasskind.color;
4666 idtype24 = type_nullable_parser_nodes__AClasskind.id;
4667 if(var_pclasskindnode5 == NULL) {
4668 var22 = 1;
4669 } else {
4670 if(cltype23 >= var_pclasskindnode5->type->table_size) {
4671 var22 = 0;
4672 } else {
4673 var22 = var_pclasskindnode5->type->type_table[cltype23] == idtype24;
4674 }
4675 }
4676 if (unlikely(!var22)) {
4677 PRINT_ERROR("Runtime error: %s", "Assert failed");
4678 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2261);
4679 show_backtrace(1);
4680 }
4681 var_tclassidnode6 = var_nodearraylist6;
4682 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
4683 cltype26 = type_nullable_parser_nodes__TClassid.color;
4684 idtype27 = type_nullable_parser_nodes__TClassid.id;
4685 if(var_tclassidnode6 == NULL) {
4686 var25 = 1;
4687 } else {
4688 if(cltype26 >= var_tclassidnode6->type->table_size) {
4689 var25 = 0;
4690 } else {
4691 var25 = var_tclassidnode6->type->type_table[cltype26] == idtype27;
4692 }
4693 }
4694 if (unlikely(!var25)) {
4695 PRINT_ERROR("Runtime error: %s", "Assert failed");
4696 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2263);
4697 show_backtrace(1);
4698 }
4699 var_listnode7 = var_nodearraylist7;
4700 /* <var_listnode7:nullable Object> isa Array[Object] */
4701 cltype29 = type_array__Arraykernel__Object.color;
4702 idtype30 = type_array__Arraykernel__Object.id;
4703 if(var_listnode7 == NULL) {
4704 var28 = 0;
4705 } else {
4706 if(cltype29 >= var_listnode7->type->table_size) {
4707 var28 = 0;
4708 } else {
4709 var28 = var_listnode7->type->type_table[cltype29] == idtype30;
4710 }
4711 }
4712 if (unlikely(!var28)) {
4713 PRINT_ERROR("Runtime error: %s", "Assert failed");
4714 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2265);
4715 show_backtrace(1);
4716 }
4717 {
4718 var31 = parser_work__ReduceAction__concat(self, var_listnode8, var_listnode7);
4719 }
4720 var_listnode8 = var31;
4721 var_listnode11 = var_nodearraylist8;
4722 /* <var_listnode11:nullable Object> isa Array[Object] */
4723 cltype33 = type_array__Arraykernel__Object.color;
4724 idtype34 = type_array__Arraykernel__Object.id;
4725 if(var_listnode11 == NULL) {
4726 var32 = 0;
4727 } else {
4728 if(cltype33 >= var_listnode11->type->table_size) {
4729 var32 = 0;
4730 } else {
4731 var32 = var_listnode11->type->type_table[cltype33] == idtype34;
4732 }
4733 }
4734 if (unlikely(!var32)) {
4735 PRINT_ERROR("Runtime error: %s", "Assert failed");
4736 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2268);
4737 show_backtrace(1);
4738 }
4739 {
4740 var35 = parser_work__ReduceAction__concat(self, var_listnode12, var_listnode11);
4741 }
4742 var_listnode12 = var35;
4743 var_listnode13 = var_nodearraylist9;
4744 /* <var_listnode13:nullable Object> isa Array[Object] */
4745 cltype37 = type_array__Arraykernel__Object.color;
4746 idtype38 = type_array__Arraykernel__Object.id;
4747 if(var_listnode13 == NULL) {
4748 var36 = 0;
4749 } else {
4750 if(cltype37 >= var_listnode13->type->table_size) {
4751 var36 = 0;
4752 } else {
4753 var36 = var_listnode13->type->type_table[cltype37] == idtype38;
4754 }
4755 }
4756 if (unlikely(!var36)) {
4757 PRINT_ERROR("Runtime error: %s", "Assert failed");
4758 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2271);
4759 show_backtrace(1);
4760 }
4761 {
4762 var39 = parser_work__ReduceAction__concat(self, var_listnode14, var_listnode13);
4763 }
4764 var_listnode14 = var39;
4765 var_tkwendnode15 = var_nodearraylist11;
4766 /* <var_tkwendnode15:nullable Object> isa nullable TKwend */
4767 cltype41 = type_nullable_parser_nodes__TKwend.color;
4768 idtype42 = type_nullable_parser_nodes__TKwend.id;
4769 if(var_tkwendnode15 == NULL) {
4770 var40 = 1;
4771 } else {
4772 if(cltype41 >= var_tkwendnode15->type->table_size) {
4773 var40 = 0;
4774 } else {
4775 var40 = var_tkwendnode15->type->type_table[cltype41] == idtype42;
4776 }
4777 }
4778 if (unlikely(!var40)) {
4779 PRINT_ERROR("Runtime error: %s", "Assert failed");
4780 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2274);
4781 show_backtrace(1);
4782 }
4783 var43 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
4784 var44 = NULL;
4785 var45 = NULL;
4786 {
4787 parser_prod__AStdClassdef__init_astdclassdef(var43, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var44, var45, var_listnode12, var_listnode14, var_tkwendnode15); /* Direct call parser_prod#AStdClassdef#init_astdclassdef on <var43:AStdClassdef>*/
4788 }
4789 var_pclassdefnode1 = var43;
4790 var_node_list = var_pclassdefnode1;
4791 var46 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction38> */
4792 {
4793 var47 = parser_work__Parser__go_to(var_p, var46);
4794 }
4795 {
4796 parser_work__Parser__push(var_p, var47, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
4797 }
4798 RET_LABEL:;
4799 }
4800 /* method parser#ReduceAction38#action for (self: Object, Parser) */
4801 void VIRTUAL_parser__ReduceAction38__action(val* self, val* p0) {
4802 parser__ReduceAction38__action(self, p0); /* Direct call parser#ReduceAction38#action on <self:Object(ReduceAction38)>*/
4803 RET_LABEL:;
4804 }
4805 /* method parser#ReduceAction39#action for (self: ReduceAction39, Parser) */
4806 void parser__ReduceAction39__action(val* self, val* p0) {
4807 val* var_p /* var p: Parser */;
4808 val* var /* : null */;
4809 val* var_node_list /* var node_list: nullable Object */;
4810 val* var1 /* : nullable Object */;
4811 val* var_nodearraylist12 /* var nodearraylist12: nullable Object */;
4812 val* var2 /* : nullable Object */;
4813 val* var_nodearraylist11 /* var nodearraylist11: nullable Object */;
4814 val* var3 /* : nullable Object */;
4815 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
4816 val* var4 /* : nullable Object */;
4817 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
4818 val* var5 /* : nullable Object */;
4819 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
4820 val* var6 /* : nullable Object */;
4821 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
4822 val* var7 /* : nullable Object */;
4823 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
4824 val* var8 /* : nullable Object */;
4825 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
4826 val* var9 /* : nullable Object */;
4827 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4828 val* var10 /* : nullable Object */;
4829 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4830 val* var11 /* : nullable Object */;
4831 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4832 val* var12 /* : nullable Object */;
4833 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4834 val* var13 /* : Array[Object] */;
4835 val* var_listnode8 /* var listnode8: Array[Object] */;
4836 val* var14 /* : Array[Object] */;
4837 val* var_listnode17 /* var listnode17: Array[Object] */;
4838 val* var15 /* : Array[Object] */;
4839 val* var_listnode19 /* var listnode19: Array[Object] */;
4840 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
4841 short int var16 /* : Bool */;
4842 int cltype;
4843 int idtype;
4844 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
4845 short int var17 /* : Bool */;
4846 int cltype18;
4847 int idtype19;
4848 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
4849 short int var20 /* : Bool */;
4850 int cltype21;
4851 int idtype22;
4852 val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */;
4853 short int var23 /* : Bool */;
4854 int cltype24;
4855 int idtype25;
4856 val* var_tclassidnode6 /* var tclassidnode6: nullable Object */;
4857 short int var26 /* : Bool */;
4858 int cltype27;
4859 int idtype28;
4860 val* var_listnode7 /* var listnode7: nullable Object */;
4861 short int var29 /* : Bool */;
4862 int cltype30;
4863 int idtype31;
4864 val* var32 /* : Array[Object] */;
4865 val* var33 /* : Array[Object] */;
4866 val* var_listnode13 /* var listnode13: Array[Object] */;
4867 val* var_listnode12 /* var listnode12: nullable Object */;
4868 short int var34 /* : Bool */;
4869 int cltype35;
4870 int idtype36;
4871 val* var37 /* : Array[Object] */;
4872 val* var38 /* : AAnnotations */;
4873 val* var39 /* : null */;
4874 val* var40 /* : null */;
4875 val* var41 /* : null */;
4876 val* var_pannotationsnode9 /* var pannotationsnode9: nullable AAnnotations */;
4877 val* var_listnode16 /* var listnode16: nullable Object */;
4878 short int var42 /* : Bool */;
4879 int cltype43;
4880 int idtype44;
4881 val* var45 /* : Array[Object] */;
4882 val* var_listnode18 /* var listnode18: nullable Object */;
4883 short int var46 /* : Bool */;
4884 int cltype47;
4885 int idtype48;
4886 val* var49 /* : Array[Object] */;
4887 val* var_tkwendnode20 /* var tkwendnode20: nullable Object */;
4888 short int var50 /* : Bool */;
4889 int cltype51;
4890 int idtype52;
4891 val* var53 /* : AStdClassdef */;
4892 val* var54 /* : null */;
4893 val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */;
4894 long var55 /* : Int */;
4895 long var56 /* : Int */;
4896 var_p = p0;
4897 var = NULL;
4898 var_node_list = var;
4899 {
4900 var1 = parser_work__Parser__pop(var_p);
4901 }
4902 var_nodearraylist12 = var1;
4903 {
4904 var2 = parser_work__Parser__pop(var_p);
4905 }
4906 var_nodearraylist11 = var2;
4907 {
4908 var3 = parser_work__Parser__pop(var_p);
4909 }
4910 var_nodearraylist10 = var3;
4911 {
4912 var4 = parser_work__Parser__pop(var_p);
4913 }
4914 var_nodearraylist9 = var4;
4915 {
4916 var5 = parser_work__Parser__pop(var_p);
4917 }
4918 var_nodearraylist8 = var5;
4919 {
4920 var6 = parser_work__Parser__pop(var_p);
4921 }
4922 var_nodearraylist7 = var6;
4923 {
4924 var7 = parser_work__Parser__pop(var_p);
4925 }
4926 var_nodearraylist6 = var7;
4927 {
4928 var8 = parser_work__Parser__pop(var_p);
4929 }
4930 var_nodearraylist5 = var8;
4931 {
4932 var9 = parser_work__Parser__pop(var_p);
4933 }
4934 var_nodearraylist4 = var9;
4935 {
4936 var10 = parser_work__Parser__pop(var_p);
4937 }
4938 var_nodearraylist3 = var10;
4939 {
4940 var11 = parser_work__Parser__pop(var_p);
4941 }
4942 var_nodearraylist2 = var11;
4943 {
4944 var12 = parser_work__Parser__pop(var_p);
4945 }
4946 var_nodearraylist1 = var12;
4947 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
4948 {
4949 array__Array__init(var13); /* Direct call array#Array#init on <var13:Array[Object]>*/
4950 }
4951 var_listnode8 = var13;
4952 var14 = NEW_array__Array(&type_array__Arraykernel__Object);
4953 {
4954 array__Array__init(var14); /* Direct call array#Array#init on <var14:Array[Object]>*/
4955 }
4956 var_listnode17 = var14;
4957 var15 = NEW_array__Array(&type_array__Arraykernel__Object);
4958 {
4959 array__Array__init(var15); /* Direct call array#Array#init on <var15:Array[Object]>*/
4960 }
4961 var_listnode19 = var15;
4962 var_pdocnode2 = var_nodearraylist1;
4963 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
4964 cltype = type_nullable_parser_nodes__ADoc.color;
4965 idtype = type_nullable_parser_nodes__ADoc.id;
4966 if(var_pdocnode2 == NULL) {
4967 var16 = 1;
4968 } else {
4969 if(cltype >= var_pdocnode2->type->table_size) {
4970 var16 = 0;
4971 } else {
4972 var16 = var_pdocnode2->type->type_table[cltype] == idtype;
4973 }
4974 }
4975 if (unlikely(!var16)) {
4976 PRINT_ERROR("Runtime error: %s", "Assert failed");
4977 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2313);
4978 show_backtrace(1);
4979 }
4980 var_tkwredefnode3 = var_nodearraylist2;
4981 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
4982 cltype18 = type_nullable_parser_nodes__TKwredef.color;
4983 idtype19 = type_nullable_parser_nodes__TKwredef.id;
4984 if(var_tkwredefnode3 == NULL) {
4985 var17 = 1;
4986 } else {
4987 if(cltype18 >= var_tkwredefnode3->type->table_size) {
4988 var17 = 0;
4989 } else {
4990 var17 = var_tkwredefnode3->type->type_table[cltype18] == idtype19;
4991 }
4992 }
4993 if (unlikely(!var17)) {
4994 PRINT_ERROR("Runtime error: %s", "Assert failed");
4995 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2315);
4996 show_backtrace(1);
4997 }
4998 var_pvisibilitynode4 = var_nodearraylist3;
4999 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
5000 cltype21 = type_nullable_parser_nodes__AVisibility.color;
5001 idtype22 = type_nullable_parser_nodes__AVisibility.id;
5002 if(var_pvisibilitynode4 == NULL) {
5003 var20 = 1;
5004 } else {
5005 if(cltype21 >= var_pvisibilitynode4->type->table_size) {
5006 var20 = 0;
5007 } else {
5008 var20 = var_pvisibilitynode4->type->type_table[cltype21] == idtype22;
5009 }
5010 }
5011 if (unlikely(!var20)) {
5012 PRINT_ERROR("Runtime error: %s", "Assert failed");
5013 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2317);
5014 show_backtrace(1);
5015 }
5016 var_pclasskindnode5 = var_nodearraylist4;
5017 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
5018 cltype24 = type_nullable_parser_nodes__AClasskind.color;
5019 idtype25 = type_nullable_parser_nodes__AClasskind.id;
5020 if(var_pclasskindnode5 == NULL) {
5021 var23 = 1;
5022 } else {
5023 if(cltype24 >= var_pclasskindnode5->type->table_size) {
5024 var23 = 0;
5025 } else {
5026 var23 = var_pclasskindnode5->type->type_table[cltype24] == idtype25;
5027 }
5028 }
5029 if (unlikely(!var23)) {
5030 PRINT_ERROR("Runtime error: %s", "Assert failed");
5031 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2319);
5032 show_backtrace(1);
5033 }
5034 var_tclassidnode6 = var_nodearraylist6;
5035 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
5036 cltype27 = type_nullable_parser_nodes__TClassid.color;
5037 idtype28 = type_nullable_parser_nodes__TClassid.id;
5038 if(var_tclassidnode6 == NULL) {
5039 var26 = 1;
5040 } else {
5041 if(cltype27 >= var_tclassidnode6->type->table_size) {
5042 var26 = 0;
5043 } else {
5044 var26 = var_tclassidnode6->type->type_table[cltype27] == idtype28;
5045 }
5046 }
5047 if (unlikely(!var26)) {
5048 PRINT_ERROR("Runtime error: %s", "Assert failed");
5049 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2321);
5050 show_backtrace(1);
5051 }
5052 var_listnode7 = var_nodearraylist7;
5053 /* <var_listnode7:nullable Object> isa Array[Object] */
5054 cltype30 = type_array__Arraykernel__Object.color;
5055 idtype31 = type_array__Arraykernel__Object.id;
5056 if(var_listnode7 == NULL) {
5057 var29 = 0;
5058 } else {
5059 if(cltype30 >= var_listnode7->type->table_size) {
5060 var29 = 0;
5061 } else {
5062 var29 = var_listnode7->type->type_table[cltype30] == idtype31;
5063 }
5064 }
5065 if (unlikely(!var29)) {
5066 PRINT_ERROR("Runtime error: %s", "Assert failed");
5067 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2323);
5068 show_backtrace(1);
5069 }
5070 {
5071 var32 = parser_work__ReduceAction__concat(self, var_listnode8, var_listnode7);
5072 }
5073 var_listnode8 = var32;
5074 var33 = NEW_array__Array(&type_array__Arraykernel__Object);
5075 {
5076 array__Array__init(var33); /* Direct call array#Array#init on <var33:Array[Object]>*/
5077 }
5078 var_listnode13 = var33;
5079 var_listnode12 = var_nodearraylist8;
5080 /* <var_listnode12:nullable Object> isa Array[Object] */
5081 cltype35 = type_array__Arraykernel__Object.color;
5082 idtype36 = type_array__Arraykernel__Object.id;
5083 if(var_listnode12 == NULL) {
5084 var34 = 0;
5085 } else {
5086 if(cltype35 >= var_listnode12->type->table_size) {
5087 var34 = 0;
5088 } else {
5089 var34 = var_listnode12->type->type_table[cltype35] == idtype36;
5090 }
5091 }
5092 if (unlikely(!var34)) {
5093 PRINT_ERROR("Runtime error: %s", "Assert failed");
5094 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2327);
5095 show_backtrace(1);
5096 }
5097 {
5098 var37 = parser_work__ReduceAction__concat(self, var_listnode13, var_listnode12);
5099 }
5100 var_listnode13 = var37;
5101 var38 = NEW_parser_nodes__AAnnotations(&type_parser_nodes__AAnnotations);
5102 var39 = NULL;
5103 var40 = NULL;
5104 var41 = NULL;
5105 {
5106 parser_prod__AAnnotations__init_aannotations(var38, var39, var40, var_listnode13, var41); /* Direct call parser_prod#AAnnotations#init_aannotations on <var38:AAnnotations>*/
5107 }
5108 var_pannotationsnode9 = var38;
5109 var_listnode16 = var_nodearraylist9;
5110 /* <var_listnode16:nullable Object> isa Array[Object] */
5111 cltype43 = type_array__Arraykernel__Object.color;
5112 idtype44 = type_array__Arraykernel__Object.id;
5113 if(var_listnode16 == NULL) {
5114 var42 = 0;
5115 } else {
5116 if(cltype43 >= var_listnode16->type->table_size) {
5117 var42 = 0;
5118 } else {
5119 var42 = var_listnode16->type->type_table[cltype43] == idtype44;
5120 }
5121 }
5122 if (unlikely(!var42)) {
5123 PRINT_ERROR("Runtime error: %s", "Assert failed");
5124 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2336);
5125 show_backtrace(1);
5126 }
5127 {
5128 var45 = parser_work__ReduceAction__concat(self, var_listnode17, var_listnode16);
5129 }
5130 var_listnode17 = var45;
5131 var_listnode18 = var_nodearraylist10;
5132 /* <var_listnode18:nullable Object> isa Array[Object] */
5133 cltype47 = type_array__Arraykernel__Object.color;
5134 idtype48 = type_array__Arraykernel__Object.id;
5135 if(var_listnode18 == NULL) {
5136 var46 = 0;
5137 } else {
5138 if(cltype47 >= var_listnode18->type->table_size) {
5139 var46 = 0;
5140 } else {
5141 var46 = var_listnode18->type->type_table[cltype47] == idtype48;
5142 }
5143 }
5144 if (unlikely(!var46)) {
5145 PRINT_ERROR("Runtime error: %s", "Assert failed");
5146 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2339);
5147 show_backtrace(1);
5148 }
5149 {
5150 var49 = parser_work__ReduceAction__concat(self, var_listnode19, var_listnode18);
5151 }
5152 var_listnode19 = var49;
5153 var_tkwendnode20 = var_nodearraylist12;
5154 /* <var_tkwendnode20:nullable Object> isa nullable TKwend */
5155 cltype51 = type_nullable_parser_nodes__TKwend.color;
5156 idtype52 = type_nullable_parser_nodes__TKwend.id;
5157 if(var_tkwendnode20 == NULL) {
5158 var50 = 1;
5159 } else {
5160 if(cltype51 >= var_tkwendnode20->type->table_size) {
5161 var50 = 0;
5162 } else {
5163 var50 = var_tkwendnode20->type->type_table[cltype51] == idtype52;
5164 }
5165 }
5166 if (unlikely(!var50)) {
5167 PRINT_ERROR("Runtime error: %s", "Assert failed");
5168 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2342);
5169 show_backtrace(1);
5170 }
5171 var53 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
5172 var54 = NULL;
5173 {
5174 parser_prod__AStdClassdef__init_astdclassdef(var53, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var_pannotationsnode9, var54, var_listnode17, var_listnode19, var_tkwendnode20); /* Direct call parser_prod#AStdClassdef#init_astdclassdef on <var53:AStdClassdef>*/
5175 }
5176 var_pclassdefnode1 = var53;
5177 var_node_list = var_pclassdefnode1;
5178 var55 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction39> */
5179 {
5180 var56 = parser_work__Parser__go_to(var_p, var55);
5181 }
5182 {
5183 parser_work__Parser__push(var_p, var56, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
5184 }
5185 RET_LABEL:;
5186 }
5187 /* method parser#ReduceAction39#action for (self: Object, Parser) */
5188 void VIRTUAL_parser__ReduceAction39__action(val* self, val* p0) {
5189 parser__ReduceAction39__action(self, p0); /* Direct call parser#ReduceAction39#action on <self:Object(ReduceAction39)>*/
5190 RET_LABEL:;
5191 }
5192 /* method parser#ReduceAction40#action for (self: ReduceAction40, Parser) */
5193 void parser__ReduceAction40__action(val* self, val* p0) {
5194 val* var_p /* var p: Parser */;
5195 val* var /* : null */;
5196 val* var_node_list /* var node_list: nullable Object */;
5197 val* var1 /* : nullable Object */;
5198 val* var_nodearraylist12 /* var nodearraylist12: nullable Object */;
5199 val* var2 /* : nullable Object */;
5200 val* var_nodearraylist11 /* var nodearraylist11: nullable Object */;
5201 val* var3 /* : nullable Object */;
5202 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
5203 val* var4 /* : nullable Object */;
5204 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
5205 val* var5 /* : nullable Object */;
5206 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
5207 val* var6 /* : nullable Object */;
5208 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
5209 val* var7 /* : nullable Object */;
5210 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
5211 val* var8 /* : nullable Object */;
5212 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
5213 val* var9 /* : nullable Object */;
5214 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5215 val* var10 /* : nullable Object */;
5216 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5217 val* var11 /* : nullable Object */;
5218 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5219 val* var12 /* : nullable Object */;
5220 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5221 val* var13 /* : Array[Object] */;
5222 val* var_listnode8 /* var listnode8: Array[Object] */;
5223 val* var14 /* : Array[Object] */;
5224 val* var_listnode12 /* var listnode12: Array[Object] */;
5225 val* var15 /* : Array[Object] */;
5226 val* var_listnode14 /* var listnode14: Array[Object] */;
5227 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
5228 short int var16 /* : Bool */;
5229 int cltype;
5230 int idtype;
5231 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
5232 short int var17 /* : Bool */;
5233 int cltype18;
5234 int idtype19;
5235 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
5236 short int var20 /* : Bool */;
5237 int cltype21;
5238 int idtype22;
5239 val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */;
5240 short int var23 /* : Bool */;
5241 int cltype24;
5242 int idtype25;
5243 val* var_tclassidnode6 /* var tclassidnode6: nullable Object */;
5244 short int var26 /* : Bool */;
5245 int cltype27;
5246 int idtype28;
5247 val* var_listnode7 /* var listnode7: nullable Object */;
5248 short int var29 /* : Bool */;
5249 int cltype30;
5250 int idtype31;
5251 val* var32 /* : Array[Object] */;
5252 val* var_pexterncodeblocknode10 /* var pexterncodeblocknode10: nullable Object */;
5253 short int var33 /* : Bool */;
5254 int cltype34;
5255 int idtype35;
5256 val* var_listnode11 /* var listnode11: nullable Object */;
5257 short int var36 /* : Bool */;
5258 int cltype37;
5259 int idtype38;
5260 val* var39 /* : Array[Object] */;
5261 val* var_listnode13 /* var listnode13: nullable Object */;
5262 short int var40 /* : Bool */;
5263 int cltype41;
5264 int idtype42;
5265 val* var43 /* : Array[Object] */;
5266 val* var_tkwendnode15 /* var tkwendnode15: nullable Object */;
5267 short int var44 /* : Bool */;
5268 int cltype45;
5269 int idtype46;
5270 val* var47 /* : AStdClassdef */;
5271 val* var48 /* : null */;
5272 val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */;
5273 long var49 /* : Int */;
5274 long var50 /* : Int */;
5275 var_p = p0;
5276 var = NULL;
5277 var_node_list = var;
5278 {
5279 var1 = parser_work__Parser__pop(var_p);
5280 }
5281 var_nodearraylist12 = var1;
5282 {
5283 var2 = parser_work__Parser__pop(var_p);
5284 }
5285 var_nodearraylist11 = var2;
5286 {
5287 var3 = parser_work__Parser__pop(var_p);
5288 }
5289 var_nodearraylist10 = var3;
5290 {
5291 var4 = parser_work__Parser__pop(var_p);
5292 }
5293 var_nodearraylist9 = var4;
5294 {
5295 var5 = parser_work__Parser__pop(var_p);
5296 }
5297 var_nodearraylist8 = var5;
5298 {
5299 var6 = parser_work__Parser__pop(var_p);
5300 }
5301 var_nodearraylist7 = var6;
5302 {
5303 var7 = parser_work__Parser__pop(var_p);
5304 }
5305 var_nodearraylist6 = var7;
5306 {
5307 var8 = parser_work__Parser__pop(var_p);
5308 }
5309 var_nodearraylist5 = var8;
5310 {
5311 var9 = parser_work__Parser__pop(var_p);
5312 }
5313 var_nodearraylist4 = var9;
5314 {
5315 var10 = parser_work__Parser__pop(var_p);
5316 }
5317 var_nodearraylist3 = var10;
5318 {
5319 var11 = parser_work__Parser__pop(var_p);
5320 }
5321 var_nodearraylist2 = var11;
5322 {
5323 var12 = parser_work__Parser__pop(var_p);
5324 }
5325 var_nodearraylist1 = var12;
5326 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
5327 {
5328 array__Array__init(var13); /* Direct call array#Array#init on <var13:Array[Object]>*/
5329 }
5330 var_listnode8 = var13;
5331 var14 = NEW_array__Array(&type_array__Arraykernel__Object);
5332 {
5333 array__Array__init(var14); /* Direct call array#Array#init on <var14:Array[Object]>*/
5334 }
5335 var_listnode12 = var14;
5336 var15 = NEW_array__Array(&type_array__Arraykernel__Object);
5337 {
5338 array__Array__init(var15); /* Direct call array#Array#init on <var15:Array[Object]>*/
5339 }
5340 var_listnode14 = var15;
5341 var_pdocnode2 = var_nodearraylist1;
5342 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
5343 cltype = type_nullable_parser_nodes__ADoc.color;
5344 idtype = type_nullable_parser_nodes__ADoc.id;
5345 if(var_pdocnode2 == NULL) {
5346 var16 = 1;
5347 } else {
5348 if(cltype >= var_pdocnode2->type->table_size) {
5349 var16 = 0;
5350 } else {
5351 var16 = var_pdocnode2->type->type_table[cltype] == idtype;
5352 }
5353 }
5354 if (unlikely(!var16)) {
5355 PRINT_ERROR("Runtime error: %s", "Assert failed");
5356 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2381);
5357 show_backtrace(1);
5358 }
5359 var_tkwredefnode3 = var_nodearraylist2;
5360 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
5361 cltype18 = type_nullable_parser_nodes__TKwredef.color;
5362 idtype19 = type_nullable_parser_nodes__TKwredef.id;
5363 if(var_tkwredefnode3 == NULL) {
5364 var17 = 1;
5365 } else {
5366 if(cltype18 >= var_tkwredefnode3->type->table_size) {
5367 var17 = 0;
5368 } else {
5369 var17 = var_tkwredefnode3->type->type_table[cltype18] == idtype19;
5370 }
5371 }
5372 if (unlikely(!var17)) {
5373 PRINT_ERROR("Runtime error: %s", "Assert failed");
5374 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2383);
5375 show_backtrace(1);
5376 }
5377 var_pvisibilitynode4 = var_nodearraylist3;
5378 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
5379 cltype21 = type_nullable_parser_nodes__AVisibility.color;
5380 idtype22 = type_nullable_parser_nodes__AVisibility.id;
5381 if(var_pvisibilitynode4 == NULL) {
5382 var20 = 1;
5383 } else {
5384 if(cltype21 >= var_pvisibilitynode4->type->table_size) {
5385 var20 = 0;
5386 } else {
5387 var20 = var_pvisibilitynode4->type->type_table[cltype21] == idtype22;
5388 }
5389 }
5390 if (unlikely(!var20)) {
5391 PRINT_ERROR("Runtime error: %s", "Assert failed");
5392 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2385);
5393 show_backtrace(1);
5394 }
5395 var_pclasskindnode5 = var_nodearraylist4;
5396 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
5397 cltype24 = type_nullable_parser_nodes__AClasskind.color;
5398 idtype25 = type_nullable_parser_nodes__AClasskind.id;
5399 if(var_pclasskindnode5 == NULL) {
5400 var23 = 1;
5401 } else {
5402 if(cltype24 >= var_pclasskindnode5->type->table_size) {
5403 var23 = 0;
5404 } else {
5405 var23 = var_pclasskindnode5->type->type_table[cltype24] == idtype25;
5406 }
5407 }
5408 if (unlikely(!var23)) {
5409 PRINT_ERROR("Runtime error: %s", "Assert failed");
5410 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2387);
5411 show_backtrace(1);
5412 }
5413 var_tclassidnode6 = var_nodearraylist6;
5414 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
5415 cltype27 = type_nullable_parser_nodes__TClassid.color;
5416 idtype28 = type_nullable_parser_nodes__TClassid.id;
5417 if(var_tclassidnode6 == NULL) {
5418 var26 = 1;
5419 } else {
5420 if(cltype27 >= var_tclassidnode6->type->table_size) {
5421 var26 = 0;
5422 } else {
5423 var26 = var_tclassidnode6->type->type_table[cltype27] == idtype28;
5424 }
5425 }
5426 if (unlikely(!var26)) {
5427 PRINT_ERROR("Runtime error: %s", "Assert failed");
5428 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2389);
5429 show_backtrace(1);
5430 }
5431 var_listnode7 = var_nodearraylist7;
5432 /* <var_listnode7:nullable Object> isa Array[Object] */
5433 cltype30 = type_array__Arraykernel__Object.color;
5434 idtype31 = type_array__Arraykernel__Object.id;
5435 if(var_listnode7 == NULL) {
5436 var29 = 0;
5437 } else {
5438 if(cltype30 >= var_listnode7->type->table_size) {
5439 var29 = 0;
5440 } else {
5441 var29 = var_listnode7->type->type_table[cltype30] == idtype31;
5442 }
5443 }
5444 if (unlikely(!var29)) {
5445 PRINT_ERROR("Runtime error: %s", "Assert failed");
5446 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2391);
5447 show_backtrace(1);
5448 }
5449 {
5450 var32 = parser_work__ReduceAction__concat(self, var_listnode8, var_listnode7);
5451 }
5452 var_listnode8 = var32;
5453 var_pexterncodeblocknode10 = var_nodearraylist8;
5454 /* <var_pexterncodeblocknode10:nullable Object> isa nullable AExternCodeBlock */
5455 cltype34 = type_nullable_parser_nodes__AExternCodeBlock.color;
5456 idtype35 = type_nullable_parser_nodes__AExternCodeBlock.id;
5457 if(var_pexterncodeblocknode10 == NULL) {
5458 var33 = 1;
5459 } else {
5460 if(cltype34 >= var_pexterncodeblocknode10->type->table_size) {
5461 var33 = 0;
5462 } else {
5463 var33 = var_pexterncodeblocknode10->type->type_table[cltype34] == idtype35;
5464 }
5465 }
5466 if (unlikely(!var33)) {
5467 PRINT_ERROR("Runtime error: %s", "Assert failed");
5468 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2394);
5469 show_backtrace(1);
5470 }
5471 var_listnode11 = var_nodearraylist9;
5472 /* <var_listnode11:nullable Object> isa Array[Object] */
5473 cltype37 = type_array__Arraykernel__Object.color;
5474 idtype38 = type_array__Arraykernel__Object.id;
5475 if(var_listnode11 == NULL) {
5476 var36 = 0;
5477 } else {
5478 if(cltype37 >= var_listnode11->type->table_size) {
5479 var36 = 0;
5480 } else {
5481 var36 = var_listnode11->type->type_table[cltype37] == idtype38;
5482 }
5483 }
5484 if (unlikely(!var36)) {
5485 PRINT_ERROR("Runtime error: %s", "Assert failed");
5486 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2396);
5487 show_backtrace(1);
5488 }
5489 {
5490 var39 = parser_work__ReduceAction__concat(self, var_listnode12, var_listnode11);
5491 }
5492 var_listnode12 = var39;
5493 var_listnode13 = var_nodearraylist10;
5494 /* <var_listnode13:nullable Object> isa Array[Object] */
5495 cltype41 = type_array__Arraykernel__Object.color;
5496 idtype42 = type_array__Arraykernel__Object.id;
5497 if(var_listnode13 == NULL) {
5498 var40 = 0;
5499 } else {
5500 if(cltype41 >= var_listnode13->type->table_size) {
5501 var40 = 0;
5502 } else {
5503 var40 = var_listnode13->type->type_table[cltype41] == idtype42;
5504 }
5505 }
5506 if (unlikely(!var40)) {
5507 PRINT_ERROR("Runtime error: %s", "Assert failed");
5508 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2399);
5509 show_backtrace(1);
5510 }
5511 {
5512 var43 = parser_work__ReduceAction__concat(self, var_listnode14, var_listnode13);
5513 }
5514 var_listnode14 = var43;
5515 var_tkwendnode15 = var_nodearraylist12;
5516 /* <var_tkwendnode15:nullable Object> isa nullable TKwend */
5517 cltype45 = type_nullable_parser_nodes__TKwend.color;
5518 idtype46 = type_nullable_parser_nodes__TKwend.id;
5519 if(var_tkwendnode15 == NULL) {
5520 var44 = 1;
5521 } else {
5522 if(cltype45 >= var_tkwendnode15->type->table_size) {
5523 var44 = 0;
5524 } else {
5525 var44 = var_tkwendnode15->type->type_table[cltype45] == idtype46;
5526 }
5527 }
5528 if (unlikely(!var44)) {
5529 PRINT_ERROR("Runtime error: %s", "Assert failed");
5530 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2402);
5531 show_backtrace(1);
5532 }
5533 var47 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
5534 var48 = NULL;
5535 {
5536 parser_prod__AStdClassdef__init_astdclassdef(var47, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var48, var_pexterncodeblocknode10, var_listnode12, var_listnode14, var_tkwendnode15); /* Direct call parser_prod#AStdClassdef#init_astdclassdef on <var47:AStdClassdef>*/
5537 }
5538 var_pclassdefnode1 = var47;
5539 var_node_list = var_pclassdefnode1;
5540 var49 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction40> */
5541 {
5542 var50 = parser_work__Parser__go_to(var_p, var49);
5543 }
5544 {
5545 parser_work__Parser__push(var_p, var50, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
5546 }
5547 RET_LABEL:;
5548 }
5549 /* method parser#ReduceAction40#action for (self: Object, Parser) */
5550 void VIRTUAL_parser__ReduceAction40__action(val* self, val* p0) {
5551 parser__ReduceAction40__action(self, p0); /* Direct call parser#ReduceAction40#action on <self:Object(ReduceAction40)>*/
5552 RET_LABEL:;
5553 }
5554 /* method parser#ReduceAction41#action for (self: ReduceAction41, Parser) */
5555 void parser__ReduceAction41__action(val* self, val* p0) {
5556 val* var_p /* var p: Parser */;
5557 val* var /* : null */;
5558 val* var_node_list /* var node_list: nullable Object */;
5559 val* var1 /* : nullable Object */;
5560 val* var_nodearraylist13 /* var nodearraylist13: nullable Object */;
5561 val* var2 /* : nullable Object */;
5562 val* var_nodearraylist12 /* var nodearraylist12: nullable Object */;
5563 val* var3 /* : nullable Object */;
5564 val* var_nodearraylist11 /* var nodearraylist11: nullable Object */;
5565 val* var4 /* : nullable Object */;
5566 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
5567 val* var5 /* : nullable Object */;
5568 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
5569 val* var6 /* : nullable Object */;
5570 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
5571 val* var7 /* : nullable Object */;
5572 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
5573 val* var8 /* : nullable Object */;
5574 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
5575 val* var9 /* : nullable Object */;
5576 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
5577 val* var10 /* : nullable Object */;
5578 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5579 val* var11 /* : nullable Object */;
5580 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5581 val* var12 /* : nullable Object */;
5582 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5583 val* var13 /* : nullable Object */;
5584 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5585 val* var14 /* : Array[Object] */;
5586 val* var_listnode8 /* var listnode8: Array[Object] */;
5587 val* var15 /* : Array[Object] */;
5588 val* var_listnode17 /* var listnode17: Array[Object] */;
5589 val* var16 /* : Array[Object] */;
5590 val* var_listnode19 /* var listnode19: Array[Object] */;
5591 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
5592 short int var17 /* : Bool */;
5593 int cltype;
5594 int idtype;
5595 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
5596 short int var18 /* : Bool */;
5597 int cltype19;
5598 int idtype20;
5599 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
5600 short int var21 /* : Bool */;
5601 int cltype22;
5602 int idtype23;
5603 val* var_pclasskindnode5 /* var pclasskindnode5: nullable Object */;
5604 short int var24 /* : Bool */;
5605 int cltype25;
5606 int idtype26;
5607 val* var_tclassidnode6 /* var tclassidnode6: nullable Object */;
5608 short int var27 /* : Bool */;
5609 int cltype28;
5610 int idtype29;
5611 val* var_listnode7 /* var listnode7: nullable Object */;
5612 short int var30 /* : Bool */;
5613 int cltype31;
5614 int idtype32;
5615 val* var33 /* : Array[Object] */;
5616 val* var34 /* : Array[Object] */;
5617 val* var_listnode13 /* var listnode13: Array[Object] */;
5618 val* var_listnode12 /* var listnode12: nullable Object */;
5619 short int var35 /* : Bool */;
5620 int cltype36;
5621 int idtype37;
5622 val* var38 /* : Array[Object] */;
5623 val* var39 /* : AAnnotations */;
5624 val* var40 /* : null */;
5625 val* var41 /* : null */;
5626 val* var42 /* : null */;
5627 val* var_pannotationsnode9 /* var pannotationsnode9: nullable AAnnotations */;
5628 val* var_pexterncodeblocknode15 /* var pexterncodeblocknode15: nullable Object */;
5629 short int var43 /* : Bool */;
5630 int cltype44;
5631 int idtype45;
5632 val* var_listnode16 /* var listnode16: nullable Object */;
5633 short int var46 /* : Bool */;
5634 int cltype47;
5635 int idtype48;
5636 val* var49 /* : Array[Object] */;
5637 val* var_listnode18 /* var listnode18: nullable Object */;
5638 short int var50 /* : Bool */;
5639 int cltype51;
5640 int idtype52;
5641 val* var53 /* : Array[Object] */;
5642 val* var_tkwendnode20 /* var tkwendnode20: nullable Object */;
5643 short int var54 /* : Bool */;
5644 int cltype55;
5645 int idtype56;
5646 val* var57 /* : AStdClassdef */;
5647 val* var_pclassdefnode1 /* var pclassdefnode1: nullable AStdClassdef */;
5648 long var58 /* : Int */;
5649 long var59 /* : Int */;
5650 var_p = p0;
5651 var = NULL;
5652 var_node_list = var;
5653 {
5654 var1 = parser_work__Parser__pop(var_p);
5655 }
5656 var_nodearraylist13 = var1;
5657 {
5658 var2 = parser_work__Parser__pop(var_p);
5659 }
5660 var_nodearraylist12 = var2;
5661 {
5662 var3 = parser_work__Parser__pop(var_p);
5663 }
5664 var_nodearraylist11 = var3;
5665 {
5666 var4 = parser_work__Parser__pop(var_p);
5667 }
5668 var_nodearraylist10 = var4;
5669 {
5670 var5 = parser_work__Parser__pop(var_p);
5671 }
5672 var_nodearraylist9 = var5;
5673 {
5674 var6 = parser_work__Parser__pop(var_p);
5675 }
5676 var_nodearraylist8 = var6;
5677 {
5678 var7 = parser_work__Parser__pop(var_p);
5679 }
5680 var_nodearraylist7 = var7;
5681 {
5682 var8 = parser_work__Parser__pop(var_p);
5683 }
5684 var_nodearraylist6 = var8;
5685 {
5686 var9 = parser_work__Parser__pop(var_p);
5687 }
5688 var_nodearraylist5 = var9;
5689 {
5690 var10 = parser_work__Parser__pop(var_p);
5691 }
5692 var_nodearraylist4 = var10;
5693 {
5694 var11 = parser_work__Parser__pop(var_p);
5695 }
5696 var_nodearraylist3 = var11;
5697 {
5698 var12 = parser_work__Parser__pop(var_p);
5699 }
5700 var_nodearraylist2 = var12;
5701 {
5702 var13 = parser_work__Parser__pop(var_p);
5703 }
5704 var_nodearraylist1 = var13;
5705 var14 = NEW_array__Array(&type_array__Arraykernel__Object);
5706 {
5707 array__Array__init(var14); /* Direct call array#Array#init on <var14:Array[Object]>*/
5708 }
5709 var_listnode8 = var14;
5710 var15 = NEW_array__Array(&type_array__Arraykernel__Object);
5711 {
5712 array__Array__init(var15); /* Direct call array#Array#init on <var15:Array[Object]>*/
5713 }
5714 var_listnode17 = var15;
5715 var16 = NEW_array__Array(&type_array__Arraykernel__Object);
5716 {
5717 array__Array__init(var16); /* Direct call array#Array#init on <var16:Array[Object]>*/
5718 }
5719 var_listnode19 = var16;
5720 var_pdocnode2 = var_nodearraylist1;
5721 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
5722 cltype = type_nullable_parser_nodes__ADoc.color;
5723 idtype = type_nullable_parser_nodes__ADoc.id;
5724 if(var_pdocnode2 == NULL) {
5725 var17 = 1;
5726 } else {
5727 if(cltype >= var_pdocnode2->type->table_size) {
5728 var17 = 0;
5729 } else {
5730 var17 = var_pdocnode2->type->type_table[cltype] == idtype;
5731 }
5732 }
5733 if (unlikely(!var17)) {
5734 PRINT_ERROR("Runtime error: %s", "Assert failed");
5735 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2442);
5736 show_backtrace(1);
5737 }
5738 var_tkwredefnode3 = var_nodearraylist2;
5739 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
5740 cltype19 = type_nullable_parser_nodes__TKwredef.color;
5741 idtype20 = type_nullable_parser_nodes__TKwredef.id;
5742 if(var_tkwredefnode3 == NULL) {
5743 var18 = 1;
5744 } else {
5745 if(cltype19 >= var_tkwredefnode3->type->table_size) {
5746 var18 = 0;
5747 } else {
5748 var18 = var_tkwredefnode3->type->type_table[cltype19] == idtype20;
5749 }
5750 }
5751 if (unlikely(!var18)) {
5752 PRINT_ERROR("Runtime error: %s", "Assert failed");
5753 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2444);
5754 show_backtrace(1);
5755 }
5756 var_pvisibilitynode4 = var_nodearraylist3;
5757 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
5758 cltype22 = type_nullable_parser_nodes__AVisibility.color;
5759 idtype23 = type_nullable_parser_nodes__AVisibility.id;
5760 if(var_pvisibilitynode4 == NULL) {
5761 var21 = 1;
5762 } else {
5763 if(cltype22 >= var_pvisibilitynode4->type->table_size) {
5764 var21 = 0;
5765 } else {
5766 var21 = var_pvisibilitynode4->type->type_table[cltype22] == idtype23;
5767 }
5768 }
5769 if (unlikely(!var21)) {
5770 PRINT_ERROR("Runtime error: %s", "Assert failed");
5771 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2446);
5772 show_backtrace(1);
5773 }
5774 var_pclasskindnode5 = var_nodearraylist4;
5775 /* <var_pclasskindnode5:nullable Object> isa nullable AClasskind */
5776 cltype25 = type_nullable_parser_nodes__AClasskind.color;
5777 idtype26 = type_nullable_parser_nodes__AClasskind.id;
5778 if(var_pclasskindnode5 == NULL) {
5779 var24 = 1;
5780 } else {
5781 if(cltype25 >= var_pclasskindnode5->type->table_size) {
5782 var24 = 0;
5783 } else {
5784 var24 = var_pclasskindnode5->type->type_table[cltype25] == idtype26;
5785 }
5786 }
5787 if (unlikely(!var24)) {
5788 PRINT_ERROR("Runtime error: %s", "Assert failed");
5789 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2448);
5790 show_backtrace(1);
5791 }
5792 var_tclassidnode6 = var_nodearraylist6;
5793 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
5794 cltype28 = type_nullable_parser_nodes__TClassid.color;
5795 idtype29 = type_nullable_parser_nodes__TClassid.id;
5796 if(var_tclassidnode6 == NULL) {
5797 var27 = 1;
5798 } else {
5799 if(cltype28 >= var_tclassidnode6->type->table_size) {
5800 var27 = 0;
5801 } else {
5802 var27 = var_tclassidnode6->type->type_table[cltype28] == idtype29;
5803 }
5804 }
5805 if (unlikely(!var27)) {
5806 PRINT_ERROR("Runtime error: %s", "Assert failed");
5807 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2450);
5808 show_backtrace(1);
5809 }
5810 var_listnode7 = var_nodearraylist7;
5811 /* <var_listnode7:nullable Object> isa Array[Object] */
5812 cltype31 = type_array__Arraykernel__Object.color;
5813 idtype32 = type_array__Arraykernel__Object.id;
5814 if(var_listnode7 == NULL) {
5815 var30 = 0;
5816 } else {
5817 if(cltype31 >= var_listnode7->type->table_size) {
5818 var30 = 0;
5819 } else {
5820 var30 = var_listnode7->type->type_table[cltype31] == idtype32;
5821 }
5822 }
5823 if (unlikely(!var30)) {
5824 PRINT_ERROR("Runtime error: %s", "Assert failed");
5825 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2452);
5826 show_backtrace(1);
5827 }
5828 {
5829 var33 = parser_work__ReduceAction__concat(self, var_listnode8, var_listnode7);
5830 }
5831 var_listnode8 = var33;
5832 var34 = NEW_array__Array(&type_array__Arraykernel__Object);
5833 {
5834 array__Array__init(var34); /* Direct call array#Array#init on <var34:Array[Object]>*/
5835 }
5836 var_listnode13 = var34;
5837 var_listnode12 = var_nodearraylist8;
5838 /* <var_listnode12:nullable Object> isa Array[Object] */
5839 cltype36 = type_array__Arraykernel__Object.color;
5840 idtype37 = type_array__Arraykernel__Object.id;
5841 if(var_listnode12 == NULL) {
5842 var35 = 0;
5843 } else {
5844 if(cltype36 >= var_listnode12->type->table_size) {
5845 var35 = 0;
5846 } else {
5847 var35 = var_listnode12->type->type_table[cltype36] == idtype37;
5848 }
5849 }
5850 if (unlikely(!var35)) {
5851 PRINT_ERROR("Runtime error: %s", "Assert failed");
5852 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2456);
5853 show_backtrace(1);
5854 }
5855 {
5856 var38 = parser_work__ReduceAction__concat(self, var_listnode13, var_listnode12);
5857 }
5858 var_listnode13 = var38;
5859 var39 = NEW_parser_nodes__AAnnotations(&type_parser_nodes__AAnnotations);
5860 var40 = NULL;
5861 var41 = NULL;
5862 var42 = NULL;
5863 {
5864 parser_prod__AAnnotations__init_aannotations(var39, var40, var41, var_listnode13, var42); /* Direct call parser_prod#AAnnotations#init_aannotations on <var39:AAnnotations>*/
5865 }
5866 var_pannotationsnode9 = var39;
5867 var_pexterncodeblocknode15 = var_nodearraylist9;
5868 /* <var_pexterncodeblocknode15:nullable Object> isa nullable AExternCodeBlock */
5869 cltype44 = type_nullable_parser_nodes__AExternCodeBlock.color;
5870 idtype45 = type_nullable_parser_nodes__AExternCodeBlock.id;
5871 if(var_pexterncodeblocknode15 == NULL) {
5872 var43 = 1;
5873 } else {
5874 if(cltype44 >= var_pexterncodeblocknode15->type->table_size) {
5875 var43 = 0;
5876 } else {
5877 var43 = var_pexterncodeblocknode15->type->type_table[cltype44] == idtype45;
5878 }
5879 }
5880 if (unlikely(!var43)) {
5881 PRINT_ERROR("Runtime error: %s", "Assert failed");
5882 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2465);
5883 show_backtrace(1);
5884 }
5885 var_listnode16 = var_nodearraylist10;
5886 /* <var_listnode16:nullable Object> isa Array[Object] */
5887 cltype47 = type_array__Arraykernel__Object.color;
5888 idtype48 = type_array__Arraykernel__Object.id;
5889 if(var_listnode16 == NULL) {
5890 var46 = 0;
5891 } else {
5892 if(cltype47 >= var_listnode16->type->table_size) {
5893 var46 = 0;
5894 } else {
5895 var46 = var_listnode16->type->type_table[cltype47] == idtype48;
5896 }
5897 }
5898 if (unlikely(!var46)) {
5899 PRINT_ERROR("Runtime error: %s", "Assert failed");
5900 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2467);
5901 show_backtrace(1);
5902 }
5903 {
5904 var49 = parser_work__ReduceAction__concat(self, var_listnode17, var_listnode16);
5905 }
5906 var_listnode17 = var49;
5907 var_listnode18 = var_nodearraylist11;
5908 /* <var_listnode18:nullable Object> isa Array[Object] */
5909 cltype51 = type_array__Arraykernel__Object.color;
5910 idtype52 = type_array__Arraykernel__Object.id;
5911 if(var_listnode18 == NULL) {
5912 var50 = 0;
5913 } else {
5914 if(cltype51 >= var_listnode18->type->table_size) {
5915 var50 = 0;
5916 } else {
5917 var50 = var_listnode18->type->type_table[cltype51] == idtype52;
5918 }
5919 }
5920 if (unlikely(!var50)) {
5921 PRINT_ERROR("Runtime error: %s", "Assert failed");
5922 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2470);
5923 show_backtrace(1);
5924 }
5925 {
5926 var53 = parser_work__ReduceAction__concat(self, var_listnode19, var_listnode18);
5927 }
5928 var_listnode19 = var53;
5929 var_tkwendnode20 = var_nodearraylist13;
5930 /* <var_tkwendnode20:nullable Object> isa nullable TKwend */
5931 cltype55 = type_nullable_parser_nodes__TKwend.color;
5932 idtype56 = type_nullable_parser_nodes__TKwend.id;
5933 if(var_tkwendnode20 == NULL) {
5934 var54 = 1;
5935 } else {
5936 if(cltype55 >= var_tkwendnode20->type->table_size) {
5937 var54 = 0;
5938 } else {
5939 var54 = var_tkwendnode20->type->type_table[cltype55] == idtype56;
5940 }
5941 }
5942 if (unlikely(!var54)) {
5943 PRINT_ERROR("Runtime error: %s", "Assert failed");
5944 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2473);
5945 show_backtrace(1);
5946 }
5947 var57 = NEW_parser_nodes__AStdClassdef(&type_parser_nodes__AStdClassdef);
5948 {
5949 parser_prod__AStdClassdef__init_astdclassdef(var57, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_pclasskindnode5, var_tclassidnode6, var_listnode8, var_pannotationsnode9, var_pexterncodeblocknode15, var_listnode17, var_listnode19, var_tkwendnode20); /* Direct call parser_prod#AStdClassdef#init_astdclassdef on <var57:AStdClassdef>*/
5950 }
5951 var_pclassdefnode1 = var57;
5952 var_node_list = var_pclassdefnode1;
5953 var58 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction41> */
5954 {
5955 var59 = parser_work__Parser__go_to(var_p, var58);
5956 }
5957 {
5958 parser_work__Parser__push(var_p, var59, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
5959 }
5960 RET_LABEL:;
5961 }
5962 /* method parser#ReduceAction41#action for (self: Object, Parser) */
5963 void VIRTUAL_parser__ReduceAction41__action(val* self, val* p0) {
5964 parser__ReduceAction41__action(self, p0); /* Direct call parser#ReduceAction41#action on <self:Object(ReduceAction41)>*/
5965 RET_LABEL:;
5966 }
5967 /* method parser#ReduceAction43#action for (self: ReduceAction43, Parser) */
5968 void parser__ReduceAction43__action(val* self, val* p0) {
5969 val* var_p /* var p: Parser */;
5970 val* var /* : null */;
5971 val* var_node_list /* var node_list: nullable Object */;
5972 val* var1 /* : nullable Object */;
5973 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5974 val* var_tkwredefnode1 /* var tkwredefnode1: nullable Object */;
5975 long var2 /* : Int */;
5976 long var3 /* : Int */;
5977 var_p = p0;
5978 var = NULL;
5979 var_node_list = var;
5980 {
5981 var1 = parser_work__Parser__pop(var_p);
5982 }
5983 var_nodearraylist1 = var1;
5984 var_tkwredefnode1 = var_nodearraylist1;
5985 var_node_list = var_tkwredefnode1;
5986 var2 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction43> */
5987 {
5988 var3 = parser_work__Parser__go_to(var_p, var2);
5989 }
5990 {
5991 parser_work__Parser__push(var_p, var3, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
5992 }
5993 RET_LABEL:;
5994 }
5995 /* method parser#ReduceAction43#action for (self: Object, Parser) */
5996 void VIRTUAL_parser__ReduceAction43__action(val* self, val* p0) {
5997 parser__ReduceAction43__action(self, p0); /* Direct call parser#ReduceAction43#action on <self:Object(ReduceAction43)>*/
5998 RET_LABEL:;
5999 }
6000 /* method parser#ReduceAction44#action for (self: ReduceAction44, Parser) */
6001 void parser__ReduceAction44__action(val* self, val* p0) {
6002 val* var_p /* var p: Parser */;
6003 val* var /* : null */;
6004 val* var_node_list /* var node_list: nullable Object */;
6005 val* var1 /* : nullable Object */;
6006 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6007 val* var_tkwclassnode2 /* var tkwclassnode2: nullable Object */;
6008 short int var2 /* : Bool */;
6009 int cltype;
6010 int idtype;
6011 val* var3 /* : AConcreteClasskind */;
6012 val* var_pclasskindnode1 /* var pclasskindnode1: nullable AConcreteClasskind */;
6013 long var4 /* : Int */;
6014 long var5 /* : Int */;
6015 var_p = p0;
6016 var = NULL;
6017 var_node_list = var;
6018 {
6019 var1 = parser_work__Parser__pop(var_p);
6020 }
6021 var_nodearraylist1 = var1;
6022 var_tkwclassnode2 = var_nodearraylist1;
6023 /* <var_tkwclassnode2:nullable Object> isa nullable TKwclass */
6024 cltype = type_nullable_parser_nodes__TKwclass.color;
6025 idtype = type_nullable_parser_nodes__TKwclass.id;
6026 if(var_tkwclassnode2 == NULL) {
6027 var2 = 1;
6028 } else {
6029 if(cltype >= var_tkwclassnode2->type->table_size) {
6030 var2 = 0;
6031 } else {
6032 var2 = var_tkwclassnode2->type->type_table[cltype] == idtype;
6033 }
6034 }
6035 if (unlikely(!var2)) {
6036 PRINT_ERROR("Runtime error: %s", "Assert failed");
6037 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2509);
6038 show_backtrace(1);
6039 }
6040 var3 = NEW_parser_nodes__AConcreteClasskind(&type_parser_nodes__AConcreteClasskind);
6041 {
6042 parser_prod__AConcreteClasskind__init_aconcreteclasskind(var3, var_tkwclassnode2); /* Direct call parser_prod#AConcreteClasskind#init_aconcreteclasskind on <var3:AConcreteClasskind>*/
6043 }
6044 var_pclasskindnode1 = var3;
6045 var_node_list = var_pclasskindnode1;
6046 var4 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction44> */
6047 {
6048 var5 = parser_work__Parser__go_to(var_p, var4);
6049 }
6050 {
6051 parser_work__Parser__push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6052 }
6053 RET_LABEL:;
6054 }
6055 /* method parser#ReduceAction44#action for (self: Object, Parser) */
6056 void VIRTUAL_parser__ReduceAction44__action(val* self, val* p0) {
6057 parser__ReduceAction44__action(self, p0); /* Direct call parser#ReduceAction44#action on <self:Object(ReduceAction44)>*/
6058 RET_LABEL:;
6059 }
6060 /* method parser#ReduceAction45#action for (self: ReduceAction45, Parser) */
6061 void parser__ReduceAction45__action(val* self, val* p0) {
6062 val* var_p /* var p: Parser */;
6063 val* var /* : null */;
6064 val* var_node_list /* var node_list: nullable Object */;
6065 val* var1 /* : nullable Object */;
6066 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6067 val* var2 /* : nullable Object */;
6068 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6069 val* var_tkwabstractnode2 /* var tkwabstractnode2: nullable Object */;
6070 short int var3 /* : Bool */;
6071 int cltype;
6072 int idtype;
6073 val* var_tkwclassnode3 /* var tkwclassnode3: nullable Object */;
6074 short int var4 /* : Bool */;
6075 int cltype5;
6076 int idtype6;
6077 val* var7 /* : AAbstractClasskind */;
6078 val* var_pclasskindnode1 /* var pclasskindnode1: nullable AAbstractClasskind */;
6079 long var8 /* : Int */;
6080 long var9 /* : Int */;
6081 var_p = p0;
6082 var = NULL;
6083 var_node_list = var;
6084 {
6085 var1 = parser_work__Parser__pop(var_p);
6086 }
6087 var_nodearraylist2 = var1;
6088 {
6089 var2 = parser_work__Parser__pop(var_p);
6090 }
6091 var_nodearraylist1 = var2;
6092 var_tkwabstractnode2 = var_nodearraylist1;
6093 /* <var_tkwabstractnode2:nullable Object> isa nullable TKwabstract */
6094 cltype = type_nullable_parser_nodes__TKwabstract.color;
6095 idtype = type_nullable_parser_nodes__TKwabstract.id;
6096 if(var_tkwabstractnode2 == NULL) {
6097 var3 = 1;
6098 } else {
6099 if(cltype >= var_tkwabstractnode2->type->table_size) {
6100 var3 = 0;
6101 } else {
6102 var3 = var_tkwabstractnode2->type->type_table[cltype] == idtype;
6103 }
6104 }
6105 if (unlikely(!var3)) {
6106 PRINT_ERROR("Runtime error: %s", "Assert failed");
6107 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2525);
6108 show_backtrace(1);
6109 }
6110 var_tkwclassnode3 = var_nodearraylist2;
6111 /* <var_tkwclassnode3:nullable Object> isa nullable TKwclass */
6112 cltype5 = type_nullable_parser_nodes__TKwclass.color;
6113 idtype6 = type_nullable_parser_nodes__TKwclass.id;
6114 if(var_tkwclassnode3 == NULL) {
6115 var4 = 1;
6116 } else {
6117 if(cltype5 >= var_tkwclassnode3->type->table_size) {
6118 var4 = 0;
6119 } else {
6120 var4 = var_tkwclassnode3->type->type_table[cltype5] == idtype6;
6121 }
6122 }
6123 if (unlikely(!var4)) {
6124 PRINT_ERROR("Runtime error: %s", "Assert failed");
6125 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2527);
6126 show_backtrace(1);
6127 }
6128 var7 = NEW_parser_nodes__AAbstractClasskind(&type_parser_nodes__AAbstractClasskind);
6129 {
6130 parser_prod__AAbstractClasskind__init_aabstractclasskind(var7, var_tkwabstractnode2, var_tkwclassnode3); /* Direct call parser_prod#AAbstractClasskind#init_aabstractclasskind on <var7:AAbstractClasskind>*/
6131 }
6132 var_pclasskindnode1 = var7;
6133 var_node_list = var_pclasskindnode1;
6134 var8 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction45> */
6135 {
6136 var9 = parser_work__Parser__go_to(var_p, var8);
6137 }
6138 {
6139 parser_work__Parser__push(var_p, var9, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6140 }
6141 RET_LABEL:;
6142 }
6143 /* method parser#ReduceAction45#action for (self: Object, Parser) */
6144 void VIRTUAL_parser__ReduceAction45__action(val* self, val* p0) {
6145 parser__ReduceAction45__action(self, p0); /* Direct call parser#ReduceAction45#action on <self:Object(ReduceAction45)>*/
6146 RET_LABEL:;
6147 }
6148 /* method parser#ReduceAction46#action for (self: ReduceAction46, Parser) */
6149 void parser__ReduceAction46__action(val* self, val* p0) {
6150 val* var_p /* var p: Parser */;
6151 val* var /* : null */;
6152 val* var_node_list /* var node_list: nullable Object */;
6153 val* var1 /* : nullable Object */;
6154 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6155 val* var_tkwinterfacenode2 /* var tkwinterfacenode2: nullable Object */;
6156 short int var2 /* : Bool */;
6157 int cltype;
6158 int idtype;
6159 val* var3 /* : AInterfaceClasskind */;
6160 val* var_pclasskindnode1 /* var pclasskindnode1: nullable AInterfaceClasskind */;
6161 long var4 /* : Int */;
6162 long var5 /* : Int */;
6163 var_p = p0;
6164 var = NULL;
6165 var_node_list = var;
6166 {
6167 var1 = parser_work__Parser__pop(var_p);
6168 }
6169 var_nodearraylist1 = var1;
6170 var_tkwinterfacenode2 = var_nodearraylist1;
6171 /* <var_tkwinterfacenode2:nullable Object> isa nullable TKwinterface */
6172 cltype = type_nullable_parser_nodes__TKwinterface.color;
6173 idtype = type_nullable_parser_nodes__TKwinterface.id;
6174 if(var_tkwinterfacenode2 == NULL) {
6175 var2 = 1;
6176 } else {
6177 if(cltype >= var_tkwinterfacenode2->type->table_size) {
6178 var2 = 0;
6179 } else {
6180 var2 = var_tkwinterfacenode2->type->type_table[cltype] == idtype;
6181 }
6182 }
6183 if (unlikely(!var2)) {
6184 PRINT_ERROR("Runtime error: %s", "Assert failed");
6185 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2543);
6186 show_backtrace(1);
6187 }
6188 var3 = NEW_parser_nodes__AInterfaceClasskind(&type_parser_nodes__AInterfaceClasskind);
6189 {
6190 parser_prod__AInterfaceClasskind__init_ainterfaceclasskind(var3, var_tkwinterfacenode2); /* Direct call parser_prod#AInterfaceClasskind#init_ainterfaceclasskind on <var3:AInterfaceClasskind>*/
6191 }
6192 var_pclasskindnode1 = var3;
6193 var_node_list = var_pclasskindnode1;
6194 var4 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction46> */
6195 {
6196 var5 = parser_work__Parser__go_to(var_p, var4);
6197 }
6198 {
6199 parser_work__Parser__push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6200 }
6201 RET_LABEL:;
6202 }
6203 /* method parser#ReduceAction46#action for (self: Object, Parser) */
6204 void VIRTUAL_parser__ReduceAction46__action(val* self, val* p0) {
6205 parser__ReduceAction46__action(self, p0); /* Direct call parser#ReduceAction46#action on <self:Object(ReduceAction46)>*/
6206 RET_LABEL:;
6207 }
6208 /* method parser#ReduceAction47#action for (self: ReduceAction47, Parser) */
6209 void parser__ReduceAction47__action(val* self, val* p0) {
6210 val* var_p /* var p: Parser */;
6211 val* var /* : null */;
6212 val* var_node_list /* var node_list: nullable Object */;
6213 val* var1 /* : nullable Object */;
6214 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6215 val* var_tkwenumnode2 /* var tkwenumnode2: nullable Object */;
6216 short int var2 /* : Bool */;
6217 int cltype;
6218 int idtype;
6219 val* var3 /* : AEnumClasskind */;
6220 val* var_pclasskindnode1 /* var pclasskindnode1: nullable AEnumClasskind */;
6221 long var4 /* : Int */;
6222 long var5 /* : Int */;
6223 var_p = p0;
6224 var = NULL;
6225 var_node_list = var;
6226 {
6227 var1 = parser_work__Parser__pop(var_p);
6228 }
6229 var_nodearraylist1 = var1;
6230 var_tkwenumnode2 = var_nodearraylist1;
6231 /* <var_tkwenumnode2:nullable Object> isa nullable TKwenum */
6232 cltype = type_nullable_parser_nodes__TKwenum.color;
6233 idtype = type_nullable_parser_nodes__TKwenum.id;
6234 if(var_tkwenumnode2 == NULL) {
6235 var2 = 1;
6236 } else {
6237 if(cltype >= var_tkwenumnode2->type->table_size) {
6238 var2 = 0;
6239 } else {
6240 var2 = var_tkwenumnode2->type->type_table[cltype] == idtype;
6241 }
6242 }
6243 if (unlikely(!var2)) {
6244 PRINT_ERROR("Runtime error: %s", "Assert failed");
6245 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2558);
6246 show_backtrace(1);
6247 }
6248 var3 = NEW_parser_nodes__AEnumClasskind(&type_parser_nodes__AEnumClasskind);
6249 {
6250 parser_prod__AEnumClasskind__init_aenumclasskind(var3, var_tkwenumnode2); /* Direct call parser_prod#AEnumClasskind#init_aenumclasskind on <var3:AEnumClasskind>*/
6251 }
6252 var_pclasskindnode1 = var3;
6253 var_node_list = var_pclasskindnode1;
6254 var4 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction47> */
6255 {
6256 var5 = parser_work__Parser__go_to(var_p, var4);
6257 }
6258 {
6259 parser_work__Parser__push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6260 }
6261 RET_LABEL:;
6262 }
6263 /* method parser#ReduceAction47#action for (self: Object, Parser) */
6264 void VIRTUAL_parser__ReduceAction47__action(val* self, val* p0) {
6265 parser__ReduceAction47__action(self, p0); /* Direct call parser#ReduceAction47#action on <self:Object(ReduceAction47)>*/
6266 RET_LABEL:;
6267 }
6268 /* method parser#ReduceAction48#action for (self: ReduceAction48, Parser) */
6269 void parser__ReduceAction48__action(val* self, val* p0) {
6270 val* var_p /* var p: Parser */;
6271 val* var /* : null */;
6272 val* var_node_list /* var node_list: nullable Object */;
6273 val* var1 /* : nullable Object */;
6274 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6275 val* var2 /* : nullable Object */;
6276 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6277 val* var_tkwexternnode2 /* var tkwexternnode2: nullable Object */;
6278 short int var3 /* : Bool */;
6279 int cltype;
6280 int idtype;
6281 val* var_tkwclassnode3 /* var tkwclassnode3: nullable Object */;
6282 short int var4 /* : Bool */;
6283 int cltype5;
6284 int idtype6;
6285 val* var7 /* : AExternClasskind */;
6286 val* var_pclasskindnode1 /* var pclasskindnode1: nullable AExternClasskind */;
6287 long var8 /* : Int */;
6288 long var9 /* : Int */;
6289 var_p = p0;
6290 var = NULL;
6291 var_node_list = var;
6292 {
6293 var1 = parser_work__Parser__pop(var_p);
6294 }
6295 var_nodearraylist2 = var1;
6296 {
6297 var2 = parser_work__Parser__pop(var_p);
6298 }
6299 var_nodearraylist1 = var2;
6300 var_tkwexternnode2 = var_nodearraylist1;
6301 /* <var_tkwexternnode2:nullable Object> isa nullable TKwextern */
6302 cltype = type_nullable_parser_nodes__TKwextern.color;
6303 idtype = type_nullable_parser_nodes__TKwextern.id;
6304 if(var_tkwexternnode2 == NULL) {
6305 var3 = 1;
6306 } else {
6307 if(cltype >= var_tkwexternnode2->type->table_size) {
6308 var3 = 0;
6309 } else {
6310 var3 = var_tkwexternnode2->type->type_table[cltype] == idtype;
6311 }
6312 }
6313 if (unlikely(!var3)) {
6314 PRINT_ERROR("Runtime error: %s", "Assert failed");
6315 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2574);
6316 show_backtrace(1);
6317 }
6318 var_tkwclassnode3 = var_nodearraylist2;
6319 /* <var_tkwclassnode3:nullable Object> isa nullable TKwclass */
6320 cltype5 = type_nullable_parser_nodes__TKwclass.color;
6321 idtype6 = type_nullable_parser_nodes__TKwclass.id;
6322 if(var_tkwclassnode3 == NULL) {
6323 var4 = 1;
6324 } else {
6325 if(cltype5 >= var_tkwclassnode3->type->table_size) {
6326 var4 = 0;
6327 } else {
6328 var4 = var_tkwclassnode3->type->type_table[cltype5] == idtype6;
6329 }
6330 }
6331 if (unlikely(!var4)) {
6332 PRINT_ERROR("Runtime error: %s", "Assert failed");
6333 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2576);
6334 show_backtrace(1);
6335 }
6336 var7 = NEW_parser_nodes__AExternClasskind(&type_parser_nodes__AExternClasskind);
6337 {
6338 parser_prod__AExternClasskind__init_aexternclasskind(var7, var_tkwexternnode2, var_tkwclassnode3); /* Direct call parser_prod#AExternClasskind#init_aexternclasskind on <var7:AExternClasskind>*/
6339 }
6340 var_pclasskindnode1 = var7;
6341 var_node_list = var_pclasskindnode1;
6342 var8 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction48> */
6343 {
6344 var9 = parser_work__Parser__go_to(var_p, var8);
6345 }
6346 {
6347 parser_work__Parser__push(var_p, var9, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6348 }
6349 RET_LABEL:;
6350 }
6351 /* method parser#ReduceAction48#action for (self: Object, Parser) */
6352 void VIRTUAL_parser__ReduceAction48__action(val* self, val* p0) {
6353 parser__ReduceAction48__action(self, p0); /* Direct call parser#ReduceAction48#action on <self:Object(ReduceAction48)>*/
6354 RET_LABEL:;
6355 }
6356 /* method parser#ReduceAction49#action for (self: ReduceAction49, Parser) */
6357 void parser__ReduceAction49__action(val* self, val* p0) {
6358 val* var_p /* var p: Parser */;
6359 val* var /* : null */;
6360 val* var_node_list /* var node_list: nullable Object */;
6361 val* var1 /* : nullable Object */;
6362 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
6363 val* var2 /* : nullable Object */;
6364 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6365 val* var3 /* : nullable Object */;
6366 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6367 val* var4 /* : nullable Object */;
6368 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6369 val* var5 /* : nullable Object */;
6370 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6371 val* var6 /* : Array[Object] */;
6372 val* var_listnode2 /* var listnode2: Array[Object] */;
6373 val* var_pformaldefnode1 /* var pformaldefnode1: nullable Object */;
6374 val* var7 /* : null */;
6375 short int var8 /* : Bool */;
6376 short int var9 /* : Bool */;
6377 long var10 /* : Int */;
6378 long var11 /* : Int */;
6379 var_p = p0;
6380 var = NULL;
6381 var_node_list = var;
6382 {
6383 var1 = parser_work__Parser__pop(var_p);
6384 }
6385 var_nodearraylist5 = var1;
6386 {
6387 var2 = parser_work__Parser__pop(var_p);
6388 }
6389 var_nodearraylist4 = var2;
6390 {
6391 var3 = parser_work__Parser__pop(var_p);
6392 }
6393 var_nodearraylist3 = var3;
6394 {
6395 var4 = parser_work__Parser__pop(var_p);
6396 }
6397 var_nodearraylist2 = var4;
6398 {
6399 var5 = parser_work__Parser__pop(var_p);
6400 }
6401 var_nodearraylist1 = var5;
6402 var6 = NEW_array__Array(&type_array__Arraykernel__Object);
6403 {
6404 array__Array__init(var6); /* Direct call array#Array#init on <var6:Array[Object]>*/
6405 }
6406 var_listnode2 = var6;
6407 var_pformaldefnode1 = var_nodearraylist3;
6408 var7 = NULL;
6409 if (var_pformaldefnode1 == NULL) {
6410 var8 = 0; /* is null */
6411 } else {
6412 var8 = 1; /* arg is null and recv is not */
6413 }
6414 if (0) {
6415 var9 = ((short int (*)(val*, val*))(var_pformaldefnode1->class->vft[COLOR_kernel__Object___33d_61d]))(var_pformaldefnode1, var7) /* != on <var_pformaldefnode1:nullable Object>*/;
6416 var8 = var9;
6417 }
6418 if (var8){
6419 {
6420 array__Array__add(var_listnode2, var_pformaldefnode1); /* Direct call array#Array#add on <var_listnode2:Array[Object]>*/
6421 }
6422 } else {
6423 }
6424 var_node_list = var_listnode2;
6425 var10 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction49> */
6426 {
6427 var11 = parser_work__Parser__go_to(var_p, var10);
6428 }
6429 {
6430 parser_work__Parser__push(var_p, var11, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6431 }
6432 RET_LABEL:;
6433 }
6434 /* method parser#ReduceAction49#action for (self: Object, Parser) */
6435 void VIRTUAL_parser__ReduceAction49__action(val* self, val* p0) {
6436 parser__ReduceAction49__action(self, p0); /* Direct call parser#ReduceAction49#action on <self:Object(ReduceAction49)>*/
6437 RET_LABEL:;
6438 }
6439 /* method parser#ReduceAction50#action for (self: ReduceAction50, Parser) */
6440 void parser__ReduceAction50__action(val* self, val* p0) {
6441 val* var_p /* var p: Parser */;
6442 val* var /* : null */;
6443 val* var_node_list /* var node_list: nullable Object */;
6444 val* var1 /* : nullable Object */;
6445 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
6446 val* var2 /* : nullable Object */;
6447 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
6448 val* var3 /* : nullable Object */;
6449 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6450 val* var4 /* : nullable Object */;
6451 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6452 val* var5 /* : nullable Object */;
6453 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6454 val* var6 /* : nullable Object */;
6455 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6456 val* var7 /* : Array[Object] */;
6457 val* var_listnode3 /* var listnode3: Array[Object] */;
6458 val* var_pformaldefnode1 /* var pformaldefnode1: nullable Object */;
6459 val* var_listnode2 /* var listnode2: nullable Object */;
6460 short int var8 /* : Bool */;
6461 int cltype;
6462 int idtype;
6463 val* var9 /* : null */;
6464 short int var10 /* : Bool */;
6465 short int var11 /* : Bool */;
6466 val* var12 /* : Array[Object] */;
6467 long var13 /* : Int */;
6468 long var14 /* : Int */;
6469 var_p = p0;
6470 var = NULL;
6471 var_node_list = var;
6472 {
6473 var1 = parser_work__Parser__pop(var_p);
6474 }
6475 var_nodearraylist6 = var1;
6476 {
6477 var2 = parser_work__Parser__pop(var_p);
6478 }
6479 var_nodearraylist5 = var2;
6480 {
6481 var3 = parser_work__Parser__pop(var_p);
6482 }
6483 var_nodearraylist4 = var3;
6484 {
6485 var4 = parser_work__Parser__pop(var_p);
6486 }
6487 var_nodearraylist3 = var4;
6488 {
6489 var5 = parser_work__Parser__pop(var_p);
6490 }
6491 var_nodearraylist2 = var5;
6492 {
6493 var6 = parser_work__Parser__pop(var_p);
6494 }
6495 var_nodearraylist1 = var6;
6496 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
6497 {
6498 array__Array__init(var7); /* Direct call array#Array#init on <var7:Array[Object]>*/
6499 }
6500 var_listnode3 = var7;
6501 var_pformaldefnode1 = var_nodearraylist3;
6502 var_listnode2 = var_nodearraylist4;
6503 /* <var_listnode2:nullable Object> isa Array[Object] */
6504 cltype = type_array__Arraykernel__Object.color;
6505 idtype = type_array__Arraykernel__Object.id;
6506 if(var_listnode2 == NULL) {
6507 var8 = 0;
6508 } else {
6509 if(cltype >= var_listnode2->type->table_size) {
6510 var8 = 0;
6511 } else {
6512 var8 = var_listnode2->type->type_table[cltype] == idtype;
6513 }
6514 }
6515 if (unlikely(!var8)) {
6516 PRINT_ERROR("Runtime error: %s", "Assert failed");
6517 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2618);
6518 show_backtrace(1);
6519 }
6520 var9 = NULL;
6521 if (var_pformaldefnode1 == NULL) {
6522 var10 = 0; /* is null */
6523 } else {
6524 var10 = 1; /* arg is null and recv is not */
6525 }
6526 if (0) {
6527 var11 = ((short int (*)(val*, val*))(var_pformaldefnode1->class->vft[COLOR_kernel__Object___33d_61d]))(var_pformaldefnode1, var9) /* != on <var_pformaldefnode1:nullable Object>*/;
6528 var10 = var11;
6529 }
6530 if (var10){
6531 {
6532 array__Array__add(var_listnode3, var_pformaldefnode1); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
6533 }
6534 } else {
6535 }
6536 {
6537 var12 = parser_work__ReduceAction__concat(self, var_listnode3, var_listnode2);
6538 }
6539 var_listnode3 = var12;
6540 var_node_list = var_listnode3;
6541 var13 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction50> */
6542 {
6543 var14 = parser_work__Parser__go_to(var_p, var13);
6544 }
6545 {
6546 parser_work__Parser__push(var_p, var14, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6547 }
6548 RET_LABEL:;
6549 }
6550 /* method parser#ReduceAction50#action for (self: Object, Parser) */
6551 void VIRTUAL_parser__ReduceAction50__action(val* self, val* p0) {
6552 parser__ReduceAction50__action(self, p0); /* Direct call parser#ReduceAction50#action on <self:Object(ReduceAction50)>*/
6553 RET_LABEL:;
6554 }
6555 /* method parser#ReduceAction51#action for (self: ReduceAction51, Parser) */
6556 void parser__ReduceAction51__action(val* self, val* p0) {
6557 val* var_p /* var p: Parser */;
6558 val* var /* : null */;
6559 val* var_node_list /* var node_list: nullable Object */;
6560 val* var1 /* : Array[Object] */;
6561 val* var_listnode1 /* var listnode1: Array[Object] */;
6562 long var2 /* : Int */;
6563 long var3 /* : Int */;
6564 var_p = p0;
6565 var = NULL;
6566 var_node_list = var;
6567 var1 = NEW_array__Array(&type_array__Arraykernel__Object);
6568 {
6569 array__Array__init(var1); /* Direct call array#Array#init on <var1:Array[Object]>*/
6570 }
6571 var_listnode1 = var1;
6572 var_node_list = var_listnode1;
6573 var2 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction51> */
6574 {
6575 var3 = parser_work__Parser__go_to(var_p, var2);
6576 }
6577 {
6578 parser_work__Parser__push(var_p, var3, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6579 }
6580 RET_LABEL:;
6581 }
6582 /* method parser#ReduceAction51#action for (self: Object, Parser) */
6583 void VIRTUAL_parser__ReduceAction51__action(val* self, val* p0) {
6584 parser__ReduceAction51__action(self, p0); /* Direct call parser#ReduceAction51#action on <self:Object(ReduceAction51)>*/
6585 RET_LABEL:;
6586 }
6587 /* method parser#ReduceAction52#action for (self: ReduceAction52, Parser) */
6588 void parser__ReduceAction52__action(val* self, val* p0) {
6589 val* var_p /* var p: Parser */;
6590 val* var /* : null */;
6591 val* var_node_list /* var node_list: nullable Object */;
6592 val* var1 /* : nullable Object */;
6593 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6594 val* var2 /* : nullable Object */;
6595 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6596 val* var3 /* : nullable Object */;
6597 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6598 val* var_pformaldefnode1 /* var pformaldefnode1: nullable Object */;
6599 long var4 /* : Int */;
6600 long var5 /* : Int */;
6601 var_p = p0;
6602 var = NULL;
6603 var_node_list = var;
6604 {
6605 var1 = parser_work__Parser__pop(var_p);
6606 }
6607 var_nodearraylist3 = var1;
6608 {
6609 var2 = parser_work__Parser__pop(var_p);
6610 }
6611 var_nodearraylist2 = var2;
6612 {
6613 var3 = parser_work__Parser__pop(var_p);
6614 }
6615 var_nodearraylist1 = var3;
6616 var_pformaldefnode1 = var_nodearraylist3;
6617 var_node_list = var_pformaldefnode1;
6618 var4 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction52> */
6619 {
6620 var5 = parser_work__Parser__go_to(var_p, var4);
6621 }
6622 {
6623 parser_work__Parser__push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6624 }
6625 RET_LABEL:;
6626 }
6627 /* method parser#ReduceAction52#action for (self: Object, Parser) */
6628 void VIRTUAL_parser__ReduceAction52__action(val* self, val* p0) {
6629 parser__ReduceAction52__action(self, p0); /* Direct call parser#ReduceAction52#action on <self:Object(ReduceAction52)>*/
6630 RET_LABEL:;
6631 }
6632 /* method parser#ReduceAction53#action for (self: ReduceAction53, Parser) */
6633 void parser__ReduceAction53__action(val* self, val* p0) {
6634 val* var_p /* var p: Parser */;
6635 val* var /* : null */;
6636 val* var_node_list /* var node_list: nullable Object */;
6637 val* var1 /* : nullable Object */;
6638 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6639 val* var2 /* : nullable Object */;
6640 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6641 val* var_tclassidnode2 /* var tclassidnode2: nullable Object */;
6642 short int var3 /* : Bool */;
6643 int cltype;
6644 int idtype;
6645 val* var_ptypenode3 /* var ptypenode3: nullable Object */;
6646 short int var4 /* : Bool */;
6647 int cltype5;
6648 int idtype6;
6649 val* var7 /* : AFormaldef */;
6650 val* var8 /* : null */;
6651 val* var_pformaldefnode1 /* var pformaldefnode1: nullable AFormaldef */;
6652 long var9 /* : Int */;
6653 long var10 /* : Int */;
6654 var_p = p0;
6655 var = NULL;
6656 var_node_list = var;
6657 {
6658 var1 = parser_work__Parser__pop(var_p);
6659 }
6660 var_nodearraylist2 = var1;
6661 {
6662 var2 = parser_work__Parser__pop(var_p);
6663 }
6664 var_nodearraylist1 = var2;
6665 var_tclassidnode2 = var_nodearraylist1;
6666 /* <var_tclassidnode2:nullable Object> isa nullable TClassid */
6667 cltype = type_nullable_parser_nodes__TClassid.color;
6668 idtype = type_nullable_parser_nodes__TClassid.id;
6669 if(var_tclassidnode2 == NULL) {
6670 var3 = 1;
6671 } else {
6672 if(cltype >= var_tclassidnode2->type->table_size) {
6673 var3 = 0;
6674 } else {
6675 var3 = var_tclassidnode2->type->type_table[cltype] == idtype;
6676 }
6677 }
6678 if (unlikely(!var3)) {
6679 PRINT_ERROR("Runtime error: %s", "Assert failed");
6680 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2658);
6681 show_backtrace(1);
6682 }
6683 var_ptypenode3 = var_nodearraylist2;
6684 /* <var_ptypenode3:nullable Object> isa nullable AType */
6685 cltype5 = type_nullable_parser_nodes__AType.color;
6686 idtype6 = type_nullable_parser_nodes__AType.id;
6687 if(var_ptypenode3 == NULL) {
6688 var4 = 1;
6689 } else {
6690 if(cltype5 >= var_ptypenode3->type->table_size) {
6691 var4 = 0;
6692 } else {
6693 var4 = var_ptypenode3->type->type_table[cltype5] == idtype6;
6694 }
6695 }
6696 if (unlikely(!var4)) {
6697 PRINT_ERROR("Runtime error: %s", "Assert failed");
6698 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2660);
6699 show_backtrace(1);
6700 }
6701 var7 = NEW_parser_nodes__AFormaldef(&type_parser_nodes__AFormaldef);
6702 var8 = NULL;
6703 {
6704 parser_prod__AFormaldef__init_aformaldef(var7, var_tclassidnode2, var_ptypenode3, var8); /* Direct call parser_prod#AFormaldef#init_aformaldef on <var7:AFormaldef>*/
6705 }
6706 var_pformaldefnode1 = var7;
6707 var_node_list = var_pformaldefnode1;
6708 var9 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction53> */
6709 {
6710 var10 = parser_work__Parser__go_to(var_p, var9);
6711 }
6712 {
6713 parser_work__Parser__push(var_p, var10, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6714 }
6715 RET_LABEL:;
6716 }
6717 /* method parser#ReduceAction53#action for (self: Object, Parser) */
6718 void VIRTUAL_parser__ReduceAction53__action(val* self, val* p0) {
6719 parser__ReduceAction53__action(self, p0); /* Direct call parser#ReduceAction53#action on <self:Object(ReduceAction53)>*/
6720 RET_LABEL:;
6721 }
6722 /* method parser#ReduceAction54#action for (self: ReduceAction54, Parser) */
6723 void parser__ReduceAction54__action(val* self, val* p0) {
6724 val* var_p /* var p: Parser */;
6725 val* var /* : null */;
6726 val* var_node_list /* var node_list: nullable Object */;
6727 val* var1 /* : nullable Object */;
6728 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6729 val* var2 /* : nullable Object */;
6730 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6731 val* var3 /* : nullable Object */;
6732 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6733 val* var_tclassidnode2 /* var tclassidnode2: nullable Object */;
6734 short int var4 /* : Bool */;
6735 int cltype;
6736 int idtype;
6737 val* var_ptypenode3 /* var ptypenode3: nullable Object */;
6738 short int var5 /* : Bool */;
6739 int cltype6;
6740 int idtype7;
6741 val* var_pannotationsnode4 /* var pannotationsnode4: nullable Object */;
6742 short int var8 /* : Bool */;
6743 int cltype9;
6744 int idtype10;
6745 val* var11 /* : AFormaldef */;
6746 val* var_pformaldefnode1 /* var pformaldefnode1: nullable AFormaldef */;
6747 long var12 /* : Int */;
6748 long var13 /* : Int */;
6749 var_p = p0;
6750 var = NULL;
6751 var_node_list = var;
6752 {
6753 var1 = parser_work__Parser__pop(var_p);
6754 }
6755 var_nodearraylist3 = var1;
6756 {
6757 var2 = parser_work__Parser__pop(var_p);
6758 }
6759 var_nodearraylist2 = var2;
6760 {
6761 var3 = parser_work__Parser__pop(var_p);
6762 }
6763 var_nodearraylist1 = var3;
6764 var_tclassidnode2 = var_nodearraylist1;
6765 /* <var_tclassidnode2:nullable Object> isa nullable TClassid */
6766 cltype = type_nullable_parser_nodes__TClassid.color;
6767 idtype = type_nullable_parser_nodes__TClassid.id;
6768 if(var_tclassidnode2 == NULL) {
6769 var4 = 1;
6770 } else {
6771 if(cltype >= var_tclassidnode2->type->table_size) {
6772 var4 = 0;
6773 } else {
6774 var4 = var_tclassidnode2->type->type_table[cltype] == idtype;
6775 }
6776 }
6777 if (unlikely(!var4)) {
6778 PRINT_ERROR("Runtime error: %s", "Assert failed");
6779 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2679);
6780 show_backtrace(1);
6781 }
6782 var_ptypenode3 = var_nodearraylist3;
6783 /* <var_ptypenode3:nullable Object> isa nullable AType */
6784 cltype6 = type_nullable_parser_nodes__AType.color;
6785 idtype7 = type_nullable_parser_nodes__AType.id;
6786 if(var_ptypenode3 == NULL) {
6787 var5 = 1;
6788 } else {
6789 if(cltype6 >= var_ptypenode3->type->table_size) {
6790 var5 = 0;
6791 } else {
6792 var5 = var_ptypenode3->type->type_table[cltype6] == idtype7;
6793 }
6794 }
6795 if (unlikely(!var5)) {
6796 PRINT_ERROR("Runtime error: %s", "Assert failed");
6797 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2681);
6798 show_backtrace(1);
6799 }
6800 var_pannotationsnode4 = var_nodearraylist2;
6801 /* <var_pannotationsnode4:nullable Object> isa nullable AAnnotations */
6802 cltype9 = type_nullable_parser_nodes__AAnnotations.color;
6803 idtype10 = type_nullable_parser_nodes__AAnnotations.id;
6804 if(var_pannotationsnode4 == NULL) {
6805 var8 = 1;
6806 } else {
6807 if(cltype9 >= var_pannotationsnode4->type->table_size) {
6808 var8 = 0;
6809 } else {
6810 var8 = var_pannotationsnode4->type->type_table[cltype9] == idtype10;
6811 }
6812 }
6813 if (unlikely(!var8)) {
6814 PRINT_ERROR("Runtime error: %s", "Assert failed");
6815 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2683);
6816 show_backtrace(1);
6817 }
6818 var11 = NEW_parser_nodes__AFormaldef(&type_parser_nodes__AFormaldef);
6819 {
6820 parser_prod__AFormaldef__init_aformaldef(var11, var_tclassidnode2, var_ptypenode3, var_pannotationsnode4); /* Direct call parser_prod#AFormaldef#init_aformaldef on <var11:AFormaldef>*/
6821 }
6822 var_pformaldefnode1 = var11;
6823 var_node_list = var_pformaldefnode1;
6824 var12 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction54> */
6825 {
6826 var13 = parser_work__Parser__go_to(var_p, var12);
6827 }
6828 {
6829 parser_work__Parser__push(var_p, var13, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6830 }
6831 RET_LABEL:;
6832 }
6833 /* method parser#ReduceAction54#action for (self: Object, Parser) */
6834 void VIRTUAL_parser__ReduceAction54__action(val* self, val* p0) {
6835 parser__ReduceAction54__action(self, p0); /* Direct call parser#ReduceAction54#action on <self:Object(ReduceAction54)>*/
6836 RET_LABEL:;
6837 }
6838 /* method parser#ReduceAction55#action for (self: ReduceAction55, Parser) */
6839 void parser__ReduceAction55__action(val* self, val* p0) {
6840 val* var_p /* var p: Parser */;
6841 val* var /* : null */;
6842 val* var_node_list /* var node_list: nullable Object */;
6843 val* var1 /* : nullable Object */;
6844 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
6845 val* var2 /* : nullable Object */;
6846 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6847 val* var3 /* : nullable Object */;
6848 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6849 val* var4 /* : nullable Object */;
6850 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6851 val* var5 /* : nullable Object */;
6852 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6853 val* var_tkwsupernode2 /* var tkwsupernode2: nullable Object */;
6854 short int var6 /* : Bool */;
6855 int cltype;
6856 int idtype;
6857 val* var_ptypenode3 /* var ptypenode3: nullable Object */;
6858 short int var7 /* : Bool */;
6859 int cltype8;
6860 int idtype9;
6861 val* var_pannotationsnode4 /* var pannotationsnode4: nullable Object */;
6862 short int var10 /* : Bool */;
6863 int cltype11;
6864 int idtype12;
6865 val* var13 /* : ASuperclass */;
6866 val* var_psuperclassnode1 /* var psuperclassnode1: nullable ASuperclass */;
6867 long var14 /* : Int */;
6868 long var15 /* : Int */;
6869 var_p = p0;
6870 var = NULL;
6871 var_node_list = var;
6872 {
6873 var1 = parser_work__Parser__pop(var_p);
6874 }
6875 var_nodearraylist5 = var1;
6876 {
6877 var2 = parser_work__Parser__pop(var_p);
6878 }
6879 var_nodearraylist4 = var2;
6880 {
6881 var3 = parser_work__Parser__pop(var_p);
6882 }
6883 var_nodearraylist3 = var3;
6884 {
6885 var4 = parser_work__Parser__pop(var_p);
6886 }
6887 var_nodearraylist2 = var4;
6888 {
6889 var5 = parser_work__Parser__pop(var_p);
6890 }
6891 var_nodearraylist1 = var5;
6892 var_tkwsupernode2 = var_nodearraylist2;
6893 /* <var_tkwsupernode2:nullable Object> isa nullable TKwsuper */
6894 cltype = type_nullable_parser_nodes__TKwsuper.color;
6895 idtype = type_nullable_parser_nodes__TKwsuper.id;
6896 if(var_tkwsupernode2 == NULL) {
6897 var6 = 1;
6898 } else {
6899 if(cltype >= var_tkwsupernode2->type->table_size) {
6900 var6 = 0;
6901 } else {
6902 var6 = var_tkwsupernode2->type->type_table[cltype] == idtype;
6903 }
6904 }
6905 if (unlikely(!var6)) {
6906 PRINT_ERROR("Runtime error: %s", "Assert failed");
6907 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2704);
6908 show_backtrace(1);
6909 }
6910 var_ptypenode3 = var_nodearraylist4;
6911 /* <var_ptypenode3:nullable Object> isa nullable AType */
6912 cltype8 = type_nullable_parser_nodes__AType.color;
6913 idtype9 = type_nullable_parser_nodes__AType.id;
6914 if(var_ptypenode3 == NULL) {
6915 var7 = 1;
6916 } else {
6917 if(cltype8 >= var_ptypenode3->type->table_size) {
6918 var7 = 0;
6919 } else {
6920 var7 = var_ptypenode3->type->type_table[cltype8] == idtype9;
6921 }
6922 }
6923 if (unlikely(!var7)) {
6924 PRINT_ERROR("Runtime error: %s", "Assert failed");
6925 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2706);
6926 show_backtrace(1);
6927 }
6928 var_pannotationsnode4 = var_nodearraylist5;
6929 /* <var_pannotationsnode4:nullable Object> isa nullable AAnnotations */
6930 cltype11 = type_nullable_parser_nodes__AAnnotations.color;
6931 idtype12 = type_nullable_parser_nodes__AAnnotations.id;
6932 if(var_pannotationsnode4 == NULL) {
6933 var10 = 1;
6934 } else {
6935 if(cltype11 >= var_pannotationsnode4->type->table_size) {
6936 var10 = 0;
6937 } else {
6938 var10 = var_pannotationsnode4->type->type_table[cltype11] == idtype12;
6939 }
6940 }
6941 if (unlikely(!var10)) {
6942 PRINT_ERROR("Runtime error: %s", "Assert failed");
6943 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2708);
6944 show_backtrace(1);
6945 }
6946 var13 = NEW_parser_nodes__ASuperclass(&type_parser_nodes__ASuperclass);
6947 {
6948 parser_prod__ASuperclass__init_asuperclass(var13, var_tkwsupernode2, var_ptypenode3, var_pannotationsnode4); /* Direct call parser_prod#ASuperclass#init_asuperclass on <var13:ASuperclass>*/
6949 }
6950 var_psuperclassnode1 = var13;
6951 var_node_list = var_psuperclassnode1;
6952 var14 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction55> */
6953 {
6954 var15 = parser_work__Parser__go_to(var_p, var14);
6955 }
6956 {
6957 parser_work__Parser__push(var_p, var15, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6958 }
6959 RET_LABEL:;
6960 }
6961 /* method parser#ReduceAction55#action for (self: Object, Parser) */
6962 void VIRTUAL_parser__ReduceAction55__action(val* self, val* p0) {
6963 parser__ReduceAction55__action(self, p0); /* Direct call parser#ReduceAction55#action on <self:Object(ReduceAction55)>*/
6964 RET_LABEL:;
6965 }
6966 /* method parser#ReduceAction56#action for (self: ReduceAction56, Parser) */
6967 void parser__ReduceAction56__action(val* self, val* p0) {
6968 val* var_p /* var p: Parser */;
6969 val* var /* : null */;
6970 val* var_node_list /* var node_list: nullable Object */;
6971 val* var1 /* : nullable Object */;
6972 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6973 val* var2 /* : nullable Object */;
6974 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6975 val* var_ppropdefnode1 /* var ppropdefnode1: nullable Object */;
6976 long var3 /* : Int */;
6977 long var4 /* : Int */;
6978 var_p = p0;
6979 var = NULL;
6980 var_node_list = var;
6981 {
6982 var1 = parser_work__Parser__pop(var_p);
6983 }
6984 var_nodearraylist2 = var1;
6985 {
6986 var2 = parser_work__Parser__pop(var_p);
6987 }
6988 var_nodearraylist1 = var2;
6989 var_ppropdefnode1 = var_nodearraylist1;
6990 var_node_list = var_ppropdefnode1;
6991 var3 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction56> */
6992 {
6993 var4 = parser_work__Parser__go_to(var_p, var3);
6994 }
6995 {
6996 parser_work__Parser__push(var_p, var4, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6997 }
6998 RET_LABEL:;
6999 }
7000 /* method parser#ReduceAction56#action for (self: Object, Parser) */
7001 void VIRTUAL_parser__ReduceAction56__action(val* self, val* p0) {
7002 parser__ReduceAction56__action(self, p0); /* Direct call parser#ReduceAction56#action on <self:Object(ReduceAction56)>*/
7003 RET_LABEL:;
7004 }
7005 /* method parser#ReduceAction57#action for (self: ReduceAction57, Parser) */
7006 void parser__ReduceAction57__action(val* self, val* p0) {
7007 val* var_p /* var p: Parser */;
7008 val* var /* : null */;
7009 val* var_node_list /* var node_list: nullable Object */;
7010 val* var1 /* : nullable Object */;
7011 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
7012 val* var2 /* : nullable Object */;
7013 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
7014 val* var3 /* : nullable Object */;
7015 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
7016 val* var4 /* : nullable Object */;
7017 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
7018 val* var5 /* : nullable Object */;
7019 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
7020 val* var6 /* : nullable Object */;
7021 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7022 val* var7 /* : nullable Object */;
7023 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7024 val* var8 /* : nullable Object */;
7025 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7026 val* var9 /* : nullable Object */;
7027 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7028 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
7029 short int var10 /* : Bool */;
7030 int cltype;
7031 int idtype;
7032 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
7033 short int var11 /* : Bool */;
7034 int cltype12;
7035 int idtype13;
7036 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
7037 short int var14 /* : Bool */;
7038 int cltype15;
7039 int idtype16;
7040 val* var_tkwmethnode5 /* var tkwmethnode5: nullable Object */;
7041 short int var17 /* : Bool */;
7042 int cltype18;
7043 int idtype19;
7044 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
7045 short int var20 /* : Bool */;
7046 int cltype21;
7047 int idtype22;
7048 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
7049 short int var23 /* : Bool */;
7050 int cltype24;
7051 int idtype25;
7052 val* var_pexprnode9 /* var pexprnode9: nullable Object */;
7053 short int var26 /* : Bool */;
7054 int cltype27;
7055 int idtype28;
7056 val* var29 /* : AConcreteMethPropdef */;
7057 val* var30 /* : null */;
7058 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AConcreteMethPropdef */;
7059 long var31 /* : Int */;
7060 long var32 /* : Int */;
7061 var_p = p0;
7062 var = NULL;
7063 var_node_list = var;
7064 {
7065 var1 = parser_work__Parser__pop(var_p);
7066 }
7067 var_nodearraylist9 = var1;
7068 {
7069 var2 = parser_work__Parser__pop(var_p);
7070 }
7071 var_nodearraylist8 = var2;
7072 {
7073 var3 = parser_work__Parser__pop(var_p);
7074 }
7075 var_nodearraylist7 = var3;
7076 {
7077 var4 = parser_work__Parser__pop(var_p);
7078 }
7079 var_nodearraylist6 = var4;
7080 {
7081 var5 = parser_work__Parser__pop(var_p);
7082 }
7083 var_nodearraylist5 = var5;
7084 {
7085 var6 = parser_work__Parser__pop(var_p);
7086 }
7087 var_nodearraylist4 = var6;
7088 {
7089 var7 = parser_work__Parser__pop(var_p);
7090 }
7091 var_nodearraylist3 = var7;
7092 {
7093 var8 = parser_work__Parser__pop(var_p);
7094 }
7095 var_nodearraylist2 = var8;
7096 {
7097 var9 = parser_work__Parser__pop(var_p);
7098 }
7099 var_nodearraylist1 = var9;
7100 var_pdocnode2 = var_nodearraylist1;
7101 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
7102 cltype = type_nullable_parser_nodes__ADoc.color;
7103 idtype = type_nullable_parser_nodes__ADoc.id;
7104 if(var_pdocnode2 == NULL) {
7105 var10 = 1;
7106 } else {
7107 if(cltype >= var_pdocnode2->type->table_size) {
7108 var10 = 0;
7109 } else {
7110 var10 = var_pdocnode2->type->type_table[cltype] == idtype;
7111 }
7112 }
7113 if (unlikely(!var10)) {
7114 PRINT_ERROR("Runtime error: %s", "Assert failed");
7115 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2745);
7116 show_backtrace(1);
7117 }
7118 var_tkwredefnode3 = var_nodearraylist2;
7119 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
7120 cltype12 = type_nullable_parser_nodes__TKwredef.color;
7121 idtype13 = type_nullable_parser_nodes__TKwredef.id;
7122 if(var_tkwredefnode3 == NULL) {
7123 var11 = 1;
7124 } else {
7125 if(cltype12 >= var_tkwredefnode3->type->table_size) {
7126 var11 = 0;
7127 } else {
7128 var11 = var_tkwredefnode3->type->type_table[cltype12] == idtype13;
7129 }
7130 }
7131 if (unlikely(!var11)) {
7132 PRINT_ERROR("Runtime error: %s", "Assert failed");
7133 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2747);
7134 show_backtrace(1);
7135 }
7136 var_pvisibilitynode4 = var_nodearraylist3;
7137 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
7138 cltype15 = type_nullable_parser_nodes__AVisibility.color;
7139 idtype16 = type_nullable_parser_nodes__AVisibility.id;
7140 if(var_pvisibilitynode4 == NULL) {
7141 var14 = 1;
7142 } else {
7143 if(cltype15 >= var_pvisibilitynode4->type->table_size) {
7144 var14 = 0;
7145 } else {
7146 var14 = var_pvisibilitynode4->type->type_table[cltype15] == idtype16;
7147 }
7148 }
7149 if (unlikely(!var14)) {
7150 PRINT_ERROR("Runtime error: %s", "Assert failed");
7151 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2749);
7152 show_backtrace(1);
7153 }
7154 var_tkwmethnode5 = var_nodearraylist4;
7155 /* <var_tkwmethnode5:nullable Object> isa nullable TKwmeth */
7156 cltype18 = type_nullable_parser_nodes__TKwmeth.color;
7157 idtype19 = type_nullable_parser_nodes__TKwmeth.id;
7158 if(var_tkwmethnode5 == NULL) {
7159 var17 = 1;
7160 } else {
7161 if(cltype18 >= var_tkwmethnode5->type->table_size) {
7162 var17 = 0;
7163 } else {
7164 var17 = var_tkwmethnode5->type->type_table[cltype18] == idtype19;
7165 }
7166 }
7167 if (unlikely(!var17)) {
7168 PRINT_ERROR("Runtime error: %s", "Assert failed");
7169 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2751);
7170 show_backtrace(1);
7171 }
7172 var_pmethidnode6 = var_nodearraylist5;
7173 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
7174 cltype21 = type_nullable_parser_nodes__AMethid.color;
7175 idtype22 = type_nullable_parser_nodes__AMethid.id;
7176 if(var_pmethidnode6 == NULL) {
7177 var20 = 1;
7178 } else {
7179 if(cltype21 >= var_pmethidnode6->type->table_size) {
7180 var20 = 0;
7181 } else {
7182 var20 = var_pmethidnode6->type->type_table[cltype21] == idtype22;
7183 }
7184 }
7185 if (unlikely(!var20)) {
7186 PRINT_ERROR("Runtime error: %s", "Assert failed");
7187 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2753);
7188 show_backtrace(1);
7189 }
7190 var_psignaturenode7 = var_nodearraylist6;
7191 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
7192 cltype24 = type_nullable_parser_nodes__ASignature.color;
7193 idtype25 = type_nullable_parser_nodes__ASignature.id;
7194 if(var_psignaturenode7 == NULL) {
7195 var23 = 1;
7196 } else {
7197 if(cltype24 >= var_psignaturenode7->type->table_size) {
7198 var23 = 0;
7199 } else {
7200 var23 = var_psignaturenode7->type->type_table[cltype24] == idtype25;
7201 }
7202 }
7203 if (unlikely(!var23)) {
7204 PRINT_ERROR("Runtime error: %s", "Assert failed");
7205 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2755);
7206 show_backtrace(1);
7207 }
7208 var_pexprnode9 = var_nodearraylist8;
7209 /* <var_pexprnode9:nullable Object> isa nullable AExpr */
7210 cltype27 = type_nullable_parser_nodes__AExpr.color;
7211 idtype28 = type_nullable_parser_nodes__AExpr.id;
7212 if(var_pexprnode9 == NULL) {
7213 var26 = 1;
7214 } else {
7215 if(cltype27 >= var_pexprnode9->type->table_size) {
7216 var26 = 0;
7217 } else {
7218 var26 = var_pexprnode9->type->type_table[cltype27] == idtype28;
7219 }
7220 }
7221 if (unlikely(!var26)) {
7222 PRINT_ERROR("Runtime error: %s", "Assert failed");
7223 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2757);
7224 show_backtrace(1);
7225 }
7226 var29 = NEW_parser_nodes__AConcreteMethPropdef(&type_parser_nodes__AConcreteMethPropdef);
7227 var30 = NULL;
7228 {
7229 parser_prod__AConcreteMethPropdef__init_aconcretemethpropdef(var29, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwmethnode5, var_pmethidnode6, var_psignaturenode7, var30, var_pexprnode9); /* Direct call parser_prod#AConcreteMethPropdef#init_aconcretemethpropdef on <var29:AConcreteMethPropdef>*/
7230 }
7231 var_ppropdefnode1 = var29;
7232 var_node_list = var_ppropdefnode1;
7233 var31 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction57> */
7234 {
7235 var32 = parser_work__Parser__go_to(var_p, var31);
7236 }
7237 {
7238 parser_work__Parser__push(var_p, var32, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
7239 }
7240 RET_LABEL:;
7241 }
7242 /* method parser#ReduceAction57#action for (self: Object, Parser) */
7243 void VIRTUAL_parser__ReduceAction57__action(val* self, val* p0) {
7244 parser__ReduceAction57__action(self, p0); /* Direct call parser#ReduceAction57#action on <self:Object(ReduceAction57)>*/
7245 RET_LABEL:;
7246 }
7247 /* method parser#ReduceAction58#action for (self: ReduceAction58, Parser) */
7248 void parser__ReduceAction58__action(val* self, val* p0) {
7249 val* var_p /* var p: Parser */;
7250 val* var /* : null */;
7251 val* var_node_list /* var node_list: nullable Object */;
7252 val* var1 /* : nullable Object */;
7253 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
7254 val* var2 /* : nullable Object */;
7255 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
7256 val* var3 /* : nullable Object */;
7257 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
7258 val* var4 /* : nullable Object */;
7259 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
7260 val* var5 /* : nullable Object */;
7261 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
7262 val* var6 /* : nullable Object */;
7263 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
7264 val* var7 /* : nullable Object */;
7265 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7266 val* var8 /* : nullable Object */;
7267 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7268 val* var9 /* : nullable Object */;
7269 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7270 val* var10 /* : nullable Object */;
7271 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7272 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
7273 short int var11 /* : Bool */;
7274 int cltype;
7275 int idtype;
7276 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
7277 short int var12 /* : Bool */;
7278 int cltype13;
7279 int idtype14;
7280 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
7281 short int var15 /* : Bool */;
7282 int cltype16;
7283 int idtype17;
7284 val* var_tkwmethnode5 /* var tkwmethnode5: nullable Object */;
7285 short int var18 /* : Bool */;
7286 int cltype19;
7287 int idtype20;
7288 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
7289 short int var21 /* : Bool */;
7290 int cltype22;
7291 int idtype23;
7292 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
7293 short int var24 /* : Bool */;
7294 int cltype25;
7295 int idtype26;
7296 val* var_pannotationsnode8 /* var pannotationsnode8: nullable Object */;
7297 short int var27 /* : Bool */;
7298 int cltype28;
7299 int idtype29;
7300 val* var_pexprnode9 /* var pexprnode9: nullable Object */;
7301 short int var30 /* : Bool */;
7302 int cltype31;
7303 int idtype32;
7304 val* var33 /* : AConcreteMethPropdef */;
7305 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AConcreteMethPropdef */;
7306 long var34 /* : Int */;
7307 long var35 /* : Int */;
7308 var_p = p0;
7309 var = NULL;
7310 var_node_list = var;
7311 {
7312 var1 = parser_work__Parser__pop(var_p);
7313 }
7314 var_nodearraylist10 = var1;
7315 {
7316 var2 = parser_work__Parser__pop(var_p);
7317 }
7318 var_nodearraylist9 = var2;
7319 {
7320 var3 = parser_work__Parser__pop(var_p);
7321 }
7322 var_nodearraylist8 = var3;
7323 {
7324 var4 = parser_work__Parser__pop(var_p);
7325 }
7326 var_nodearraylist7 = var4;
7327 {
7328 var5 = parser_work__Parser__pop(var_p);
7329 }
7330 var_nodearraylist6 = var5;
7331 {
7332 var6 = parser_work__Parser__pop(var_p);
7333 }
7334 var_nodearraylist5 = var6;
7335 {
7336 var7 = parser_work__Parser__pop(var_p);
7337 }
7338 var_nodearraylist4 = var7;
7339 {
7340 var8 = parser_work__Parser__pop(var_p);
7341 }
7342 var_nodearraylist3 = var8;
7343 {
7344 var9 = parser_work__Parser__pop(var_p);
7345 }
7346 var_nodearraylist2 = var9;
7347 {
7348 var10 = parser_work__Parser__pop(var_p);
7349 }
7350 var_nodearraylist1 = var10;
7351 var_pdocnode2 = var_nodearraylist1;
7352 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
7353 cltype = type_nullable_parser_nodes__ADoc.color;
7354 idtype = type_nullable_parser_nodes__ADoc.id;
7355 if(var_pdocnode2 == NULL) {
7356 var11 = 1;
7357 } else {
7358 if(cltype >= var_pdocnode2->type->table_size) {
7359 var11 = 0;
7360 } else {
7361 var11 = var_pdocnode2->type->type_table[cltype] == idtype;
7362 }
7363 }
7364 if (unlikely(!var11)) {
7365 PRINT_ERROR("Runtime error: %s", "Assert failed");
7366 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2788);
7367 show_backtrace(1);
7368 }
7369 var_tkwredefnode3 = var_nodearraylist2;
7370 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
7371 cltype13 = type_nullable_parser_nodes__TKwredef.color;
7372 idtype14 = type_nullable_parser_nodes__TKwredef.id;
7373 if(var_tkwredefnode3 == NULL) {
7374 var12 = 1;
7375 } else {
7376 if(cltype13 >= var_tkwredefnode3->type->table_size) {
7377 var12 = 0;
7378 } else {
7379 var12 = var_tkwredefnode3->type->type_table[cltype13] == idtype14;
7380 }
7381 }
7382 if (unlikely(!var12)) {
7383 PRINT_ERROR("Runtime error: %s", "Assert failed");
7384 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2790);
7385 show_backtrace(1);
7386 }
7387 var_pvisibilitynode4 = var_nodearraylist3;
7388 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
7389 cltype16 = type_nullable_parser_nodes__AVisibility.color;
7390 idtype17 = type_nullable_parser_nodes__AVisibility.id;
7391 if(var_pvisibilitynode4 == NULL) {
7392 var15 = 1;
7393 } else {
7394 if(cltype16 >= var_pvisibilitynode4->type->table_size) {
7395 var15 = 0;
7396 } else {
7397 var15 = var_pvisibilitynode4->type->type_table[cltype16] == idtype17;
7398 }
7399 }
7400 if (unlikely(!var15)) {
7401 PRINT_ERROR("Runtime error: %s", "Assert failed");
7402 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2792);
7403 show_backtrace(1);
7404 }
7405 var_tkwmethnode5 = var_nodearraylist4;
7406 /* <var_tkwmethnode5:nullable Object> isa nullable TKwmeth */
7407 cltype19 = type_nullable_parser_nodes__TKwmeth.color;
7408 idtype20 = type_nullable_parser_nodes__TKwmeth.id;
7409 if(var_tkwmethnode5 == NULL) {
7410 var18 = 1;
7411 } else {
7412 if(cltype19 >= var_tkwmethnode5->type->table_size) {
7413 var18 = 0;
7414 } else {
7415 var18 = var_tkwmethnode5->type->type_table[cltype19] == idtype20;
7416 }
7417 }
7418 if (unlikely(!var18)) {
7419 PRINT_ERROR("Runtime error: %s", "Assert failed");
7420 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2794);
7421 show_backtrace(1);
7422 }
7423 var_pmethidnode6 = var_nodearraylist5;
7424 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
7425 cltype22 = type_nullable_parser_nodes__AMethid.color;
7426 idtype23 = type_nullable_parser_nodes__AMethid.id;
7427 if(var_pmethidnode6 == NULL) {
7428 var21 = 1;
7429 } else {
7430 if(cltype22 >= var_pmethidnode6->type->table_size) {
7431 var21 = 0;
7432 } else {
7433 var21 = var_pmethidnode6->type->type_table[cltype22] == idtype23;
7434 }
7435 }
7436 if (unlikely(!var21)) {
7437 PRINT_ERROR("Runtime error: %s", "Assert failed");
7438 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2796);
7439 show_backtrace(1);
7440 }
7441 var_psignaturenode7 = var_nodearraylist6;
7442 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
7443 cltype25 = type_nullable_parser_nodes__ASignature.color;
7444 idtype26 = type_nullable_parser_nodes__ASignature.id;
7445 if(var_psignaturenode7 == NULL) {
7446 var24 = 1;
7447 } else {
7448 if(cltype25 >= var_psignaturenode7->type->table_size) {
7449 var24 = 0;
7450 } else {
7451 var24 = var_psignaturenode7->type->type_table[cltype25] == idtype26;
7452 }
7453 }
7454 if (unlikely(!var24)) {
7455 PRINT_ERROR("Runtime error: %s", "Assert failed");
7456 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2798);
7457 show_backtrace(1);
7458 }
7459 var_pannotationsnode8 = var_nodearraylist7;
7460 /* <var_pannotationsnode8:nullable Object> isa nullable AAnnotations */
7461 cltype28 = type_nullable_parser_nodes__AAnnotations.color;
7462 idtype29 = type_nullable_parser_nodes__AAnnotations.id;
7463 if(var_pannotationsnode8 == NULL) {
7464 var27 = 1;
7465 } else {
7466 if(cltype28 >= var_pannotationsnode8->type->table_size) {
7467 var27 = 0;
7468 } else {
7469 var27 = var_pannotationsnode8->type->type_table[cltype28] == idtype29;
7470 }
7471 }
7472 if (unlikely(!var27)) {
7473 PRINT_ERROR("Runtime error: %s", "Assert failed");
7474 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2800);
7475 show_backtrace(1);
7476 }
7477 var_pexprnode9 = var_nodearraylist9;
7478 /* <var_pexprnode9:nullable Object> isa nullable AExpr */
7479 cltype31 = type_nullable_parser_nodes__AExpr.color;
7480 idtype32 = type_nullable_parser_nodes__AExpr.id;
7481 if(var_pexprnode9 == NULL) {
7482 var30 = 1;
7483 } else {
7484 if(cltype31 >= var_pexprnode9->type->table_size) {
7485 var30 = 0;
7486 } else {
7487 var30 = var_pexprnode9->type->type_table[cltype31] == idtype32;
7488 }
7489 }
7490 if (unlikely(!var30)) {
7491 PRINT_ERROR("Runtime error: %s", "Assert failed");
7492 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2802);
7493 show_backtrace(1);
7494 }
7495 var33 = NEW_parser_nodes__AConcreteMethPropdef(&type_parser_nodes__AConcreteMethPropdef);
7496 {
7497 parser_prod__AConcreteMethPropdef__init_aconcretemethpropdef(var33, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwmethnode5, var_pmethidnode6, var_psignaturenode7, var_pannotationsnode8, var_pexprnode9); /* Direct call parser_prod#AConcreteMethPropdef#init_aconcretemethpropdef on <var33:AConcreteMethPropdef>*/
7498 }
7499 var_ppropdefnode1 = var33;
7500 var_node_list = var_ppropdefnode1;
7501 var34 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction58> */
7502 {
7503 var35 = parser_work__Parser__go_to(var_p, var34);
7504 }
7505 {
7506 parser_work__Parser__push(var_p, var35, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
7507 }
7508 RET_LABEL:;
7509 }
7510 /* method parser#ReduceAction58#action for (self: Object, Parser) */
7511 void VIRTUAL_parser__ReduceAction58__action(val* self, val* p0) {
7512 parser__ReduceAction58__action(self, p0); /* Direct call parser#ReduceAction58#action on <self:Object(ReduceAction58)>*/
7513 RET_LABEL:;
7514 }
7515 /* method parser#ReduceAction59#action for (self: ReduceAction59, Parser) */
7516 void parser__ReduceAction59__action(val* self, val* p0) {
7517 val* var_p /* var p: Parser */;
7518 val* var /* : null */;
7519 val* var_node_list /* var node_list: nullable Object */;
7520 val* var1 /* : nullable Object */;
7521 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
7522 val* var2 /* : nullable Object */;
7523 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
7524 val* var3 /* : nullable Object */;
7525 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
7526 val* var4 /* : nullable Object */;
7527 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7528 val* var5 /* : nullable Object */;
7529 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7530 val* var6 /* : nullable Object */;
7531 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7532 val* var7 /* : nullable Object */;
7533 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7534 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
7535 short int var8 /* : Bool */;
7536 int cltype;
7537 int idtype;
7538 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
7539 short int var9 /* : Bool */;
7540 int cltype10;
7541 int idtype11;
7542 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
7543 short int var12 /* : Bool */;
7544 int cltype13;
7545 int idtype14;
7546 val* var_tkwmethnode5 /* var tkwmethnode5: nullable Object */;
7547 short int var15 /* : Bool */;
7548 int cltype16;
7549 int idtype17;
7550 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
7551 short int var18 /* : Bool */;
7552 int cltype19;
7553 int idtype20;
7554 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
7555 short int var21 /* : Bool */;
7556 int cltype22;
7557 int idtype23;
7558 val* var_pannotationsnode8 /* var pannotationsnode8: nullable Object */;
7559 short int var24 /* : Bool */;
7560 int cltype25;
7561 int idtype26;
7562 val* var27 /* : ADeferredMethPropdef */;
7563 val* var_ppropdefnode1 /* var ppropdefnode1: nullable ADeferredMethPropdef */;
7564 long var28 /* : Int */;
7565 long var29 /* : Int */;
7566 var_p = p0;
7567 var = NULL;
7568 var_node_list = var;
7569 {
7570 var1 = parser_work__Parser__pop(var_p);
7571 }
7572 var_nodearraylist7 = var1;
7573 {
7574 var2 = parser_work__Parser__pop(var_p);
7575 }
7576 var_nodearraylist6 = var2;
7577 {
7578 var3 = parser_work__Parser__pop(var_p);
7579 }
7580 var_nodearraylist5 = var3;
7581 {
7582 var4 = parser_work__Parser__pop(var_p);
7583 }
7584 var_nodearraylist4 = var4;
7585 {
7586 var5 = parser_work__Parser__pop(var_p);
7587 }
7588 var_nodearraylist3 = var5;
7589 {
7590 var6 = parser_work__Parser__pop(var_p);
7591 }
7592 var_nodearraylist2 = var6;
7593 {
7594 var7 = parser_work__Parser__pop(var_p);
7595 }
7596 var_nodearraylist1 = var7;
7597 var_pdocnode2 = var_nodearraylist1;
7598 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
7599 cltype = type_nullable_parser_nodes__ADoc.color;
7600 idtype = type_nullable_parser_nodes__ADoc.id;
7601 if(var_pdocnode2 == NULL) {
7602 var8 = 1;
7603 } else {
7604 if(cltype >= var_pdocnode2->type->table_size) {
7605 var8 = 0;
7606 } else {
7607 var8 = var_pdocnode2->type->type_table[cltype] == idtype;
7608 }
7609 }
7610 if (unlikely(!var8)) {
7611 PRINT_ERROR("Runtime error: %s", "Assert failed");
7612 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2830);
7613 show_backtrace(1);
7614 }
7615 var_tkwredefnode3 = var_nodearraylist2;
7616 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
7617 cltype10 = type_nullable_parser_nodes__TKwredef.color;
7618 idtype11 = type_nullable_parser_nodes__TKwredef.id;
7619 if(var_tkwredefnode3 == NULL) {
7620 var9 = 1;
7621 } else {
7622 if(cltype10 >= var_tkwredefnode3->type->table_size) {
7623 var9 = 0;
7624 } else {
7625 var9 = var_tkwredefnode3->type->type_table[cltype10] == idtype11;
7626 }
7627 }
7628 if (unlikely(!var9)) {
7629 PRINT_ERROR("Runtime error: %s", "Assert failed");
7630 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2832);
7631 show_backtrace(1);
7632 }
7633 var_pvisibilitynode4 = var_nodearraylist3;
7634 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
7635 cltype13 = type_nullable_parser_nodes__AVisibility.color;
7636 idtype14 = type_nullable_parser_nodes__AVisibility.id;
7637 if(var_pvisibilitynode4 == NULL) {
7638 var12 = 1;
7639 } else {
7640 if(cltype13 >= var_pvisibilitynode4->type->table_size) {
7641 var12 = 0;
7642 } else {
7643 var12 = var_pvisibilitynode4->type->type_table[cltype13] == idtype14;
7644 }
7645 }
7646 if (unlikely(!var12)) {
7647 PRINT_ERROR("Runtime error: %s", "Assert failed");
7648 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2834);
7649 show_backtrace(1);
7650 }
7651 var_tkwmethnode5 = var_nodearraylist4;
7652 /* <var_tkwmethnode5:nullable Object> isa nullable TKwmeth */
7653 cltype16 = type_nullable_parser_nodes__TKwmeth.color;
7654 idtype17 = type_nullable_parser_nodes__TKwmeth.id;
7655 if(var_tkwmethnode5 == NULL) {
7656 var15 = 1;
7657 } else {
7658 if(cltype16 >= var_tkwmethnode5->type->table_size) {
7659 var15 = 0;
7660 } else {
7661 var15 = var_tkwmethnode5->type->type_table[cltype16] == idtype17;
7662 }
7663 }
7664 if (unlikely(!var15)) {
7665 PRINT_ERROR("Runtime error: %s", "Assert failed");
7666 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2836);
7667 show_backtrace(1);
7668 }
7669 var_pmethidnode6 = var_nodearraylist5;
7670 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
7671 cltype19 = type_nullable_parser_nodes__AMethid.color;
7672 idtype20 = type_nullable_parser_nodes__AMethid.id;
7673 if(var_pmethidnode6 == NULL) {
7674 var18 = 1;
7675 } else {
7676 if(cltype19 >= var_pmethidnode6->type->table_size) {
7677 var18 = 0;
7678 } else {
7679 var18 = var_pmethidnode6->type->type_table[cltype19] == idtype20;
7680 }
7681 }
7682 if (unlikely(!var18)) {
7683 PRINT_ERROR("Runtime error: %s", "Assert failed");
7684 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2838);
7685 show_backtrace(1);
7686 }
7687 var_psignaturenode7 = var_nodearraylist6;
7688 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
7689 cltype22 = type_nullable_parser_nodes__ASignature.color;
7690 idtype23 = type_nullable_parser_nodes__ASignature.id;
7691 if(var_psignaturenode7 == NULL) {
7692 var21 = 1;
7693 } else {
7694 if(cltype22 >= var_psignaturenode7->type->table_size) {
7695 var21 = 0;
7696 } else {
7697 var21 = var_psignaturenode7->type->type_table[cltype22] == idtype23;
7698 }
7699 }
7700 if (unlikely(!var21)) {
7701 PRINT_ERROR("Runtime error: %s", "Assert failed");
7702 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2840);
7703 show_backtrace(1);
7704 }
7705 var_pannotationsnode8 = var_nodearraylist7;
7706 /* <var_pannotationsnode8:nullable Object> isa nullable AAnnotations */
7707 cltype25 = type_nullable_parser_nodes__AAnnotations.color;
7708 idtype26 = type_nullable_parser_nodes__AAnnotations.id;
7709 if(var_pannotationsnode8 == NULL) {
7710 var24 = 1;
7711 } else {
7712 if(cltype25 >= var_pannotationsnode8->type->table_size) {
7713 var24 = 0;
7714 } else {
7715 var24 = var_pannotationsnode8->type->type_table[cltype25] == idtype26;
7716 }
7717 }
7718 if (unlikely(!var24)) {
7719 PRINT_ERROR("Runtime error: %s", "Assert failed");
7720 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2842);
7721 show_backtrace(1);
7722 }
7723 var27 = NEW_parser_nodes__ADeferredMethPropdef(&type_parser_nodes__ADeferredMethPropdef);
7724 {
7725 parser_prod__ADeferredMethPropdef__init_adeferredmethpropdef(var27, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwmethnode5, var_pmethidnode6, var_psignaturenode7, var_pannotationsnode8); /* Direct call parser_prod#ADeferredMethPropdef#init_adeferredmethpropdef on <var27:ADeferredMethPropdef>*/
7726 }
7727 var_ppropdefnode1 = var27;
7728 var_node_list = var_ppropdefnode1;
7729 var28 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction59> */
7730 {
7731 var29 = parser_work__Parser__go_to(var_p, var28);
7732 }
7733 {
7734 parser_work__Parser__push(var_p, var29, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
7735 }
7736 RET_LABEL:;
7737 }
7738 /* method parser#ReduceAction59#action for (self: Object, Parser) */
7739 void VIRTUAL_parser__ReduceAction59__action(val* self, val* p0) {
7740 parser__ReduceAction59__action(self, p0); /* Direct call parser#ReduceAction59#action on <self:Object(ReduceAction59)>*/
7741 RET_LABEL:;
7742 }
7743 /* method parser#ReduceAction60#action for (self: ReduceAction60, Parser) */
7744 void parser__ReduceAction60__action(val* self, val* p0) {
7745 val* var_p /* var p: Parser */;
7746 val* var /* : null */;
7747 val* var_node_list /* var node_list: nullable Object */;
7748 val* var1 /* : nullable Object */;
7749 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
7750 val* var2 /* : nullable Object */;
7751 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
7752 val* var3 /* : nullable Object */;
7753 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
7754 val* var4 /* : nullable Object */;
7755 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
7756 val* var5 /* : nullable Object */;
7757 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7758 val* var6 /* : nullable Object */;
7759 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7760 val* var7 /* : nullable Object */;
7761 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7762 val* var8 /* : nullable Object */;
7763 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7764 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
7765 short int var9 /* : Bool */;
7766 int cltype;
7767 int idtype;
7768 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
7769 short int var10 /* : Bool */;
7770 int cltype11;
7771 int idtype12;
7772 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
7773 short int var13 /* : Bool */;
7774 int cltype14;
7775 int idtype15;
7776 val* var_tkwmethnode5 /* var tkwmethnode5: nullable Object */;
7777 short int var16 /* : Bool */;
7778 int cltype17;
7779 int idtype18;
7780 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
7781 short int var19 /* : Bool */;
7782 int cltype20;
7783 int idtype21;
7784 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
7785 short int var22 /* : Bool */;
7786 int cltype23;
7787 int idtype24;
7788 val* var25 /* : ADeferredMethPropdef */;
7789 val* var26 /* : null */;
7790 val* var_ppropdefnode1 /* var ppropdefnode1: nullable ADeferredMethPropdef */;
7791 long var27 /* : Int */;
7792 long var28 /* : Int */;
7793 var_p = p0;
7794 var = NULL;
7795 var_node_list = var;
7796 {
7797 var1 = parser_work__Parser__pop(var_p);
7798 }
7799 var_nodearraylist8 = var1;
7800 {
7801 var2 = parser_work__Parser__pop(var_p);
7802 }
7803 var_nodearraylist7 = var2;
7804 {
7805 var3 = parser_work__Parser__pop(var_p);
7806 }
7807 var_nodearraylist6 = var3;
7808 {
7809 var4 = parser_work__Parser__pop(var_p);
7810 }
7811 var_nodearraylist5 = var4;
7812 {
7813 var5 = parser_work__Parser__pop(var_p);
7814 }
7815 var_nodearraylist4 = var5;
7816 {
7817 var6 = parser_work__Parser__pop(var_p);
7818 }
7819 var_nodearraylist3 = var6;
7820 {
7821 var7 = parser_work__Parser__pop(var_p);
7822 }
7823 var_nodearraylist2 = var7;
7824 {
7825 var8 = parser_work__Parser__pop(var_p);
7826 }
7827 var_nodearraylist1 = var8;
7828 var_pdocnode2 = var_nodearraylist1;
7829 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
7830 cltype = type_nullable_parser_nodes__ADoc.color;
7831 idtype = type_nullable_parser_nodes__ADoc.id;
7832 if(var_pdocnode2 == NULL) {
7833 var9 = 1;
7834 } else {
7835 if(cltype >= var_pdocnode2->type->table_size) {
7836 var9 = 0;
7837 } else {
7838 var9 = var_pdocnode2->type->type_table[cltype] == idtype;
7839 }
7840 }
7841 if (unlikely(!var9)) {
7842 PRINT_ERROR("Runtime error: %s", "Assert failed");
7843 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2870);
7844 show_backtrace(1);
7845 }
7846 var_tkwredefnode3 = var_nodearraylist2;
7847 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
7848 cltype11 = type_nullable_parser_nodes__TKwredef.color;
7849 idtype12 = type_nullable_parser_nodes__TKwredef.id;
7850 if(var_tkwredefnode3 == NULL) {
7851 var10 = 1;
7852 } else {
7853 if(cltype11 >= var_tkwredefnode3->type->table_size) {
7854 var10 = 0;
7855 } else {
7856 var10 = var_tkwredefnode3->type->type_table[cltype11] == idtype12;
7857 }
7858 }
7859 if (unlikely(!var10)) {
7860 PRINT_ERROR("Runtime error: %s", "Assert failed");
7861 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2872);
7862 show_backtrace(1);
7863 }
7864 var_pvisibilitynode4 = var_nodearraylist3;
7865 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
7866 cltype14 = type_nullable_parser_nodes__AVisibility.color;
7867 idtype15 = type_nullable_parser_nodes__AVisibility.id;
7868 if(var_pvisibilitynode4 == NULL) {
7869 var13 = 1;
7870 } else {
7871 if(cltype14 >= var_pvisibilitynode4->type->table_size) {
7872 var13 = 0;
7873 } else {
7874 var13 = var_pvisibilitynode4->type->type_table[cltype14] == idtype15;
7875 }
7876 }
7877 if (unlikely(!var13)) {
7878 PRINT_ERROR("Runtime error: %s", "Assert failed");
7879 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2874);
7880 show_backtrace(1);
7881 }
7882 var_tkwmethnode5 = var_nodearraylist4;
7883 /* <var_tkwmethnode5:nullable Object> isa nullable TKwmeth */
7884 cltype17 = type_nullable_parser_nodes__TKwmeth.color;
7885 idtype18 = type_nullable_parser_nodes__TKwmeth.id;
7886 if(var_tkwmethnode5 == NULL) {
7887 var16 = 1;
7888 } else {
7889 if(cltype17 >= var_tkwmethnode5->type->table_size) {
7890 var16 = 0;
7891 } else {
7892 var16 = var_tkwmethnode5->type->type_table[cltype17] == idtype18;
7893 }
7894 }
7895 if (unlikely(!var16)) {
7896 PRINT_ERROR("Runtime error: %s", "Assert failed");
7897 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2876);
7898 show_backtrace(1);
7899 }
7900 var_pmethidnode6 = var_nodearraylist5;
7901 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
7902 cltype20 = type_nullable_parser_nodes__AMethid.color;
7903 idtype21 = type_nullable_parser_nodes__AMethid.id;
7904 if(var_pmethidnode6 == NULL) {
7905 var19 = 1;
7906 } else {
7907 if(cltype20 >= var_pmethidnode6->type->table_size) {
7908 var19 = 0;
7909 } else {
7910 var19 = var_pmethidnode6->type->type_table[cltype20] == idtype21;
7911 }
7912 }
7913 if (unlikely(!var19)) {
7914 PRINT_ERROR("Runtime error: %s", "Assert failed");
7915 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2878);
7916 show_backtrace(1);
7917 }
7918 var_psignaturenode7 = var_nodearraylist6;
7919 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
7920 cltype23 = type_nullable_parser_nodes__ASignature.color;
7921 idtype24 = type_nullable_parser_nodes__ASignature.id;
7922 if(var_psignaturenode7 == NULL) {
7923 var22 = 1;
7924 } else {
7925 if(cltype23 >= var_psignaturenode7->type->table_size) {
7926 var22 = 0;
7927 } else {
7928 var22 = var_psignaturenode7->type->type_table[cltype23] == idtype24;
7929 }
7930 }
7931 if (unlikely(!var22)) {
7932 PRINT_ERROR("Runtime error: %s", "Assert failed");
7933 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2880);
7934 show_backtrace(1);
7935 }
7936 var25 = NEW_parser_nodes__ADeferredMethPropdef(&type_parser_nodes__ADeferredMethPropdef);
7937 var26 = NULL;
7938 {
7939 parser_prod__ADeferredMethPropdef__init_adeferredmethpropdef(var25, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwmethnode5, var_pmethidnode6, var_psignaturenode7, var26); /* Direct call parser_prod#ADeferredMethPropdef#init_adeferredmethpropdef on <var25:ADeferredMethPropdef>*/
7940 }
7941 var_ppropdefnode1 = var25;
7942 var_node_list = var_ppropdefnode1;
7943 var27 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction60> */
7944 {
7945 var28 = parser_work__Parser__go_to(var_p, var27);
7946 }
7947 {
7948 parser_work__Parser__push(var_p, var28, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
7949 }
7950 RET_LABEL:;
7951 }
7952 /* method parser#ReduceAction60#action for (self: Object, Parser) */
7953 void VIRTUAL_parser__ReduceAction60__action(val* self, val* p0) {
7954 parser__ReduceAction60__action(self, p0); /* Direct call parser#ReduceAction60#action on <self:Object(ReduceAction60)>*/
7955 RET_LABEL:;
7956 }
7957 /* method parser#ReduceAction61#action for (self: ReduceAction61, Parser) */
7958 void parser__ReduceAction61__action(val* self, val* p0) {
7959 val* var_p /* var p: Parser */;
7960 val* var /* : null */;
7961 val* var_node_list /* var node_list: nullable Object */;
7962 val* var1 /* : nullable Object */;
7963 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
7964 val* var2 /* : nullable Object */;
7965 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
7966 val* var3 /* : nullable Object */;
7967 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
7968 val* var4 /* : nullable Object */;
7969 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
7970 val* var5 /* : nullable Object */;
7971 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7972 val* var6 /* : nullable Object */;
7973 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7974 val* var7 /* : nullable Object */;
7975 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7976 val* var8 /* : nullable Object */;
7977 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7978 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
7979 short int var9 /* : Bool */;
7980 int cltype;
7981 int idtype;
7982 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
7983 short int var10 /* : Bool */;
7984 int cltype11;
7985 int idtype12;
7986 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
7987 short int var13 /* : Bool */;
7988 int cltype14;
7989 int idtype15;
7990 val* var_tkwmethnode5 /* var tkwmethnode5: nullable Object */;
7991 short int var16 /* : Bool */;
7992 int cltype17;
7993 int idtype18;
7994 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
7995 short int var19 /* : Bool */;
7996 int cltype20;
7997 int idtype21;
7998 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
7999 short int var22 /* : Bool */;
8000 int cltype23;
8001 int idtype24;
8002 val* var25 /* : AInternMethPropdef */;
8003 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AInternMethPropdef */;
8004 long var26 /* : Int */;
8005 long var27 /* : Int */;
8006 var_p = p0;
8007 var = NULL;
8008 var_node_list = var;
8009 {
8010 var1 = parser_work__Parser__pop(var_p);
8011 }
8012 var_nodearraylist8 = var1;
8013 {
8014 var2 = parser_work__Parser__pop(var_p);
8015 }
8016 var_nodearraylist7 = var2;
8017 {
8018 var3 = parser_work__Parser__pop(var_p);
8019 }
8020 var_nodearraylist6 = var3;
8021 {
8022 var4 = parser_work__Parser__pop(var_p);
8023 }
8024 var_nodearraylist5 = var4;
8025 {
8026 var5 = parser_work__Parser__pop(var_p);
8027 }
8028 var_nodearraylist4 = var5;
8029 {
8030 var6 = parser_work__Parser__pop(var_p);
8031 }
8032 var_nodearraylist3 = var6;
8033 {
8034 var7 = parser_work__Parser__pop(var_p);
8035 }
8036 var_nodearraylist2 = var7;
8037 {
8038 var8 = parser_work__Parser__pop(var_p);
8039 }
8040 var_nodearraylist1 = var8;
8041 var_pdocnode2 = var_nodearraylist1;
8042 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
8043 cltype = type_nullable_parser_nodes__ADoc.color;
8044 idtype = type_nullable_parser_nodes__ADoc.id;
8045 if(var_pdocnode2 == NULL) {
8046 var9 = 1;
8047 } else {
8048 if(cltype >= var_pdocnode2->type->table_size) {
8049 var9 = 0;
8050 } else {
8051 var9 = var_pdocnode2->type->type_table[cltype] == idtype;
8052 }
8053 }
8054 if (unlikely(!var9)) {
8055 PRINT_ERROR("Runtime error: %s", "Assert failed");
8056 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2908);
8057 show_backtrace(1);
8058 }
8059 var_tkwredefnode3 = var_nodearraylist2;
8060 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
8061 cltype11 = type_nullable_parser_nodes__TKwredef.color;
8062 idtype12 = type_nullable_parser_nodes__TKwredef.id;
8063 if(var_tkwredefnode3 == NULL) {
8064 var10 = 1;
8065 } else {
8066 if(cltype11 >= var_tkwredefnode3->type->table_size) {
8067 var10 = 0;
8068 } else {
8069 var10 = var_tkwredefnode3->type->type_table[cltype11] == idtype12;
8070 }
8071 }
8072 if (unlikely(!var10)) {
8073 PRINT_ERROR("Runtime error: %s", "Assert failed");
8074 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2910);
8075 show_backtrace(1);
8076 }
8077 var_pvisibilitynode4 = var_nodearraylist3;
8078 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
8079 cltype14 = type_nullable_parser_nodes__AVisibility.color;
8080 idtype15 = type_nullable_parser_nodes__AVisibility.id;
8081 if(var_pvisibilitynode4 == NULL) {
8082 var13 = 1;
8083 } else {
8084 if(cltype14 >= var_pvisibilitynode4->type->table_size) {
8085 var13 = 0;
8086 } else {
8087 var13 = var_pvisibilitynode4->type->type_table[cltype14] == idtype15;
8088 }
8089 }
8090 if (unlikely(!var13)) {
8091 PRINT_ERROR("Runtime error: %s", "Assert failed");
8092 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2912);
8093 show_backtrace(1);
8094 }
8095 var_tkwmethnode5 = var_nodearraylist4;
8096 /* <var_tkwmethnode5:nullable Object> isa nullable TKwmeth */
8097 cltype17 = type_nullable_parser_nodes__TKwmeth.color;
8098 idtype18 = type_nullable_parser_nodes__TKwmeth.id;
8099 if(var_tkwmethnode5 == NULL) {
8100 var16 = 1;
8101 } else {
8102 if(cltype17 >= var_tkwmethnode5->type->table_size) {
8103 var16 = 0;
8104 } else {
8105 var16 = var_tkwmethnode5->type->type_table[cltype17] == idtype18;
8106 }
8107 }
8108 if (unlikely(!var16)) {
8109 PRINT_ERROR("Runtime error: %s", "Assert failed");
8110 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2914);
8111 show_backtrace(1);
8112 }
8113 var_pmethidnode6 = var_nodearraylist5;
8114 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
8115 cltype20 = type_nullable_parser_nodes__AMethid.color;
8116 idtype21 = type_nullable_parser_nodes__AMethid.id;
8117 if(var_pmethidnode6 == NULL) {
8118 var19 = 1;
8119 } else {
8120 if(cltype20 >= var_pmethidnode6->type->table_size) {
8121 var19 = 0;
8122 } else {
8123 var19 = var_pmethidnode6->type->type_table[cltype20] == idtype21;
8124 }
8125 }
8126 if (unlikely(!var19)) {
8127 PRINT_ERROR("Runtime error: %s", "Assert failed");
8128 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2916);
8129 show_backtrace(1);
8130 }
8131 var_psignaturenode7 = var_nodearraylist6;
8132 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
8133 cltype23 = type_nullable_parser_nodes__ASignature.color;
8134 idtype24 = type_nullable_parser_nodes__ASignature.id;
8135 if(var_psignaturenode7 == NULL) {
8136 var22 = 1;
8137 } else {
8138 if(cltype23 >= var_psignaturenode7->type->table_size) {
8139 var22 = 0;
8140 } else {
8141 var22 = var_psignaturenode7->type->type_table[cltype23] == idtype24;
8142 }
8143 }
8144 if (unlikely(!var22)) {
8145 PRINT_ERROR("Runtime error: %s", "Assert failed");
8146 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2918);
8147 show_backtrace(1);
8148 }
8149 var25 = NEW_parser_nodes__AInternMethPropdef(&type_parser_nodes__AInternMethPropdef);
8150 {
8151 parser_prod__AInternMethPropdef__init_ainternmethpropdef(var25, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwmethnode5, var_pmethidnode6, var_psignaturenode7); /* Direct call parser_prod#AInternMethPropdef#init_ainternmethpropdef on <var25:AInternMethPropdef>*/
8152 }
8153 var_ppropdefnode1 = var25;
8154 var_node_list = var_ppropdefnode1;
8155 var26 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction61> */
8156 {
8157 var27 = parser_work__Parser__go_to(var_p, var26);
8158 }
8159 {
8160 parser_work__Parser__push(var_p, var27, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
8161 }
8162 RET_LABEL:;
8163 }
8164 /* method parser#ReduceAction61#action for (self: Object, Parser) */
8165 void VIRTUAL_parser__ReduceAction61__action(val* self, val* p0) {
8166 parser__ReduceAction61__action(self, p0); /* Direct call parser#ReduceAction61#action on <self:Object(ReduceAction61)>*/
8167 RET_LABEL:;
8168 }
8169 /* method parser#ReduceAction62#action for (self: ReduceAction62, Parser) */
8170 void parser__ReduceAction62__action(val* self, val* p0) {
8171 val* var_p /* var p: Parser */;
8172 val* var /* : null */;
8173 val* var_node_list /* var node_list: nullable Object */;
8174 val* var1 /* : nullable Object */;
8175 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
8176 val* var2 /* : nullable Object */;
8177 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
8178 val* var3 /* : nullable Object */;
8179 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
8180 val* var4 /* : nullable Object */;
8181 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8182 val* var5 /* : nullable Object */;
8183 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8184 val* var6 /* : nullable Object */;
8185 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8186 val* var7 /* : nullable Object */;
8187 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8188 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
8189 short int var8 /* : Bool */;
8190 int cltype;
8191 int idtype;
8192 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
8193 short int var9 /* : Bool */;
8194 int cltype10;
8195 int idtype11;
8196 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
8197 short int var12 /* : Bool */;
8198 int cltype13;
8199 int idtype14;
8200 val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */;
8201 short int var15 /* : Bool */;
8202 int cltype16;
8203 int idtype17;
8204 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
8205 short int var18 /* : Bool */;
8206 int cltype19;
8207 int idtype20;
8208 val* var21 /* : AInternNewPropdef */;
8209 val* var22 /* : null */;
8210 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AInternNewPropdef */;
8211 long var23 /* : Int */;
8212 long var24 /* : Int */;
8213 var_p = p0;
8214 var = NULL;
8215 var_node_list = var;
8216 {
8217 var1 = parser_work__Parser__pop(var_p);
8218 }
8219 var_nodearraylist7 = var1;
8220 {
8221 var2 = parser_work__Parser__pop(var_p);
8222 }
8223 var_nodearraylist6 = var2;
8224 {
8225 var3 = parser_work__Parser__pop(var_p);
8226 }
8227 var_nodearraylist5 = var3;
8228 {
8229 var4 = parser_work__Parser__pop(var_p);
8230 }
8231 var_nodearraylist4 = var4;
8232 {
8233 var5 = parser_work__Parser__pop(var_p);
8234 }
8235 var_nodearraylist3 = var5;
8236 {
8237 var6 = parser_work__Parser__pop(var_p);
8238 }
8239 var_nodearraylist2 = var6;
8240 {
8241 var7 = parser_work__Parser__pop(var_p);
8242 }
8243 var_nodearraylist1 = var7;
8244 var_pdocnode2 = var_nodearraylist1;
8245 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
8246 cltype = type_nullable_parser_nodes__ADoc.color;
8247 idtype = type_nullable_parser_nodes__ADoc.id;
8248 if(var_pdocnode2 == NULL) {
8249 var8 = 1;
8250 } else {
8251 if(cltype >= var_pdocnode2->type->table_size) {
8252 var8 = 0;
8253 } else {
8254 var8 = var_pdocnode2->type->type_table[cltype] == idtype;
8255 }
8256 }
8257 if (unlikely(!var8)) {
8258 PRINT_ERROR("Runtime error: %s", "Assert failed");
8259 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2944);
8260 show_backtrace(1);
8261 }
8262 var_tkwredefnode3 = var_nodearraylist2;
8263 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
8264 cltype10 = type_nullable_parser_nodes__TKwredef.color;
8265 idtype11 = type_nullable_parser_nodes__TKwredef.id;
8266 if(var_tkwredefnode3 == NULL) {
8267 var9 = 1;
8268 } else {
8269 if(cltype10 >= var_tkwredefnode3->type->table_size) {
8270 var9 = 0;
8271 } else {
8272 var9 = var_tkwredefnode3->type->type_table[cltype10] == idtype11;
8273 }
8274 }
8275 if (unlikely(!var9)) {
8276 PRINT_ERROR("Runtime error: %s", "Assert failed");
8277 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2946);
8278 show_backtrace(1);
8279 }
8280 var_pvisibilitynode4 = var_nodearraylist3;
8281 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
8282 cltype13 = type_nullable_parser_nodes__AVisibility.color;
8283 idtype14 = type_nullable_parser_nodes__AVisibility.id;
8284 if(var_pvisibilitynode4 == NULL) {
8285 var12 = 1;
8286 } else {
8287 if(cltype13 >= var_pvisibilitynode4->type->table_size) {
8288 var12 = 0;
8289 } else {
8290 var12 = var_pvisibilitynode4->type->type_table[cltype13] == idtype14;
8291 }
8292 }
8293 if (unlikely(!var12)) {
8294 PRINT_ERROR("Runtime error: %s", "Assert failed");
8295 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2948);
8296 show_backtrace(1);
8297 }
8298 var_tkwnewnode5 = var_nodearraylist4;
8299 /* <var_tkwnewnode5:nullable Object> isa nullable TKwnew */
8300 cltype16 = type_nullable_parser_nodes__TKwnew.color;
8301 idtype17 = type_nullable_parser_nodes__TKwnew.id;
8302 if(var_tkwnewnode5 == NULL) {
8303 var15 = 1;
8304 } else {
8305 if(cltype16 >= var_tkwnewnode5->type->table_size) {
8306 var15 = 0;
8307 } else {
8308 var15 = var_tkwnewnode5->type->type_table[cltype16] == idtype17;
8309 }
8310 }
8311 if (unlikely(!var15)) {
8312 PRINT_ERROR("Runtime error: %s", "Assert failed");
8313 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2950);
8314 show_backtrace(1);
8315 }
8316 var_psignaturenode7 = var_nodearraylist5;
8317 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
8318 cltype19 = type_nullable_parser_nodes__ASignature.color;
8319 idtype20 = type_nullable_parser_nodes__ASignature.id;
8320 if(var_psignaturenode7 == NULL) {
8321 var18 = 1;
8322 } else {
8323 if(cltype19 >= var_psignaturenode7->type->table_size) {
8324 var18 = 0;
8325 } else {
8326 var18 = var_psignaturenode7->type->type_table[cltype19] == idtype20;
8327 }
8328 }
8329 if (unlikely(!var18)) {
8330 PRINT_ERROR("Runtime error: %s", "Assert failed");
8331 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2952);
8332 show_backtrace(1);
8333 }
8334 var21 = NEW_parser_nodes__AInternNewPropdef(&type_parser_nodes__AInternNewPropdef);
8335 var22 = NULL;
8336 {
8337 parser_prod__AInternNewPropdef__init_ainternnewpropdef(var21, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwnewnode5, var22, var_psignaturenode7); /* Direct call parser_prod#AInternNewPropdef#init_ainternnewpropdef on <var21:AInternNewPropdef>*/
8338 }
8339 var_ppropdefnode1 = var21;
8340 var_node_list = var_ppropdefnode1;
8341 var23 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction62> */
8342 {
8343 var24 = parser_work__Parser__go_to(var_p, var23);
8344 }
8345 {
8346 parser_work__Parser__push(var_p, var24, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
8347 }
8348 RET_LABEL:;
8349 }
8350 /* method parser#ReduceAction62#action for (self: Object, Parser) */
8351 void VIRTUAL_parser__ReduceAction62__action(val* self, val* p0) {
8352 parser__ReduceAction62__action(self, p0); /* Direct call parser#ReduceAction62#action on <self:Object(ReduceAction62)>*/
8353 RET_LABEL:;
8354 }
8355 /* method parser#ReduceAction63#action for (self: ReduceAction63, Parser) */
8356 void parser__ReduceAction63__action(val* self, val* p0) {
8357 val* var_p /* var p: Parser */;
8358 val* var /* : null */;
8359 val* var_node_list /* var node_list: nullable Object */;
8360 val* var1 /* : nullable Object */;
8361 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
8362 val* var2 /* : nullable Object */;
8363 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
8364 val* var3 /* : nullable Object */;
8365 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
8366 val* var4 /* : nullable Object */;
8367 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
8368 val* var5 /* : nullable Object */;
8369 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8370 val* var6 /* : nullable Object */;
8371 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8372 val* var7 /* : nullable Object */;
8373 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8374 val* var8 /* : nullable Object */;
8375 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8376 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
8377 short int var9 /* : Bool */;
8378 int cltype;
8379 int idtype;
8380 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
8381 short int var10 /* : Bool */;
8382 int cltype11;
8383 int idtype12;
8384 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
8385 short int var13 /* : Bool */;
8386 int cltype14;
8387 int idtype15;
8388 val* var_tkwnewnode5 /* var tkwnewnode5: nullable Object */;
8389 short int var16 /* : Bool */;
8390 int cltype17;
8391 int idtype18;
8392 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
8393 short int var19 /* : Bool */;
8394 int cltype20;
8395 int idtype21;
8396 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
8397 short int var22 /* : Bool */;
8398 int cltype23;
8399 int idtype24;
8400 val* var25 /* : AInternNewPropdef */;
8401 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AInternNewPropdef */;
8402 long var26 /* : Int */;
8403 long var27 /* : Int */;
8404 var_p = p0;
8405 var = NULL;
8406 var_node_list = var;
8407 {
8408 var1 = parser_work__Parser__pop(var_p);
8409 }
8410 var_nodearraylist8 = var1;
8411 {
8412 var2 = parser_work__Parser__pop(var_p);
8413 }
8414 var_nodearraylist7 = var2;
8415 {
8416 var3 = parser_work__Parser__pop(var_p);
8417 }
8418 var_nodearraylist6 = var3;
8419 {
8420 var4 = parser_work__Parser__pop(var_p);
8421 }
8422 var_nodearraylist5 = var4;
8423 {
8424 var5 = parser_work__Parser__pop(var_p);
8425 }
8426 var_nodearraylist4 = var5;
8427 {
8428 var6 = parser_work__Parser__pop(var_p);
8429 }
8430 var_nodearraylist3 = var6;
8431 {
8432 var7 = parser_work__Parser__pop(var_p);
8433 }
8434 var_nodearraylist2 = var7;
8435 {
8436 var8 = parser_work__Parser__pop(var_p);
8437 }
8438 var_nodearraylist1 = var8;
8439 var_pdocnode2 = var_nodearraylist1;
8440 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
8441 cltype = type_nullable_parser_nodes__ADoc.color;
8442 idtype = type_nullable_parser_nodes__ADoc.id;
8443 if(var_pdocnode2 == NULL) {
8444 var9 = 1;
8445 } else {
8446 if(cltype >= var_pdocnode2->type->table_size) {
8447 var9 = 0;
8448 } else {
8449 var9 = var_pdocnode2->type->type_table[cltype] == idtype;
8450 }
8451 }
8452 if (unlikely(!var9)) {
8453 PRINT_ERROR("Runtime error: %s", "Assert failed");
8454 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2979);
8455 show_backtrace(1);
8456 }
8457 var_tkwredefnode3 = var_nodearraylist2;
8458 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
8459 cltype11 = type_nullable_parser_nodes__TKwredef.color;
8460 idtype12 = type_nullable_parser_nodes__TKwredef.id;
8461 if(var_tkwredefnode3 == NULL) {
8462 var10 = 1;
8463 } else {
8464 if(cltype11 >= var_tkwredefnode3->type->table_size) {
8465 var10 = 0;
8466 } else {
8467 var10 = var_tkwredefnode3->type->type_table[cltype11] == idtype12;
8468 }
8469 }
8470 if (unlikely(!var10)) {
8471 PRINT_ERROR("Runtime error: %s", "Assert failed");
8472 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2981);
8473 show_backtrace(1);
8474 }
8475 var_pvisibilitynode4 = var_nodearraylist3;
8476 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
8477 cltype14 = type_nullable_parser_nodes__AVisibility.color;
8478 idtype15 = type_nullable_parser_nodes__AVisibility.id;
8479 if(var_pvisibilitynode4 == NULL) {
8480 var13 = 1;
8481 } else {
8482 if(cltype14 >= var_pvisibilitynode4->type->table_size) {
8483 var13 = 0;
8484 } else {
8485 var13 = var_pvisibilitynode4->type->type_table[cltype14] == idtype15;
8486 }
8487 }
8488 if (unlikely(!var13)) {
8489 PRINT_ERROR("Runtime error: %s", "Assert failed");
8490 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2983);
8491 show_backtrace(1);
8492 }
8493 var_tkwnewnode5 = var_nodearraylist4;
8494 /* <var_tkwnewnode5:nullable Object> isa nullable TKwnew */
8495 cltype17 = type_nullable_parser_nodes__TKwnew.color;
8496 idtype18 = type_nullable_parser_nodes__TKwnew.id;
8497 if(var_tkwnewnode5 == NULL) {
8498 var16 = 1;
8499 } else {
8500 if(cltype17 >= var_tkwnewnode5->type->table_size) {
8501 var16 = 0;
8502 } else {
8503 var16 = var_tkwnewnode5->type->type_table[cltype17] == idtype18;
8504 }
8505 }
8506 if (unlikely(!var16)) {
8507 PRINT_ERROR("Runtime error: %s", "Assert failed");
8508 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2985);
8509 show_backtrace(1);
8510 }
8511 var_pmethidnode6 = var_nodearraylist5;
8512 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
8513 cltype20 = type_nullable_parser_nodes__AMethid.color;
8514 idtype21 = type_nullable_parser_nodes__AMethid.id;
8515 if(var_pmethidnode6 == NULL) {
8516 var19 = 1;
8517 } else {
8518 if(cltype20 >= var_pmethidnode6->type->table_size) {
8519 var19 = 0;
8520 } else {
8521 var19 = var_pmethidnode6->type->type_table[cltype20] == idtype21;
8522 }
8523 }
8524 if (unlikely(!var19)) {
8525 PRINT_ERROR("Runtime error: %s", "Assert failed");
8526 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2987);
8527 show_backtrace(1);
8528 }
8529 var_psignaturenode7 = var_nodearraylist6;
8530 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
8531 cltype23 = type_nullable_parser_nodes__ASignature.color;
8532 idtype24 = type_nullable_parser_nodes__ASignature.id;
8533 if(var_psignaturenode7 == NULL) {
8534 var22 = 1;
8535 } else {
8536 if(cltype23 >= var_psignaturenode7->type->table_size) {
8537 var22 = 0;
8538 } else {
8539 var22 = var_psignaturenode7->type->type_table[cltype23] == idtype24;
8540 }
8541 }
8542 if (unlikely(!var22)) {
8543 PRINT_ERROR("Runtime error: %s", "Assert failed");
8544 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 2989);
8545 show_backtrace(1);
8546 }
8547 var25 = NEW_parser_nodes__AInternNewPropdef(&type_parser_nodes__AInternNewPropdef);
8548 {
8549 parser_prod__AInternNewPropdef__init_ainternnewpropdef(var25, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwnewnode5, var_pmethidnode6, var_psignaturenode7); /* Direct call parser_prod#AInternNewPropdef#init_ainternnewpropdef on <var25:AInternNewPropdef>*/
8550 }
8551 var_ppropdefnode1 = var25;
8552 var_node_list = var_ppropdefnode1;
8553 var26 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction63> */
8554 {
8555 var27 = parser_work__Parser__go_to(var_p, var26);
8556 }
8557 {
8558 parser_work__Parser__push(var_p, var27, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
8559 }
8560 RET_LABEL:;
8561 }
8562 /* method parser#ReduceAction63#action for (self: Object, Parser) */
8563 void VIRTUAL_parser__ReduceAction63__action(val* self, val* p0) {
8564 parser__ReduceAction63__action(self, p0); /* Direct call parser#ReduceAction63#action on <self:Object(ReduceAction63)>*/
8565 RET_LABEL:;
8566 }
8567 /* method parser#ReduceAction64#action for (self: ReduceAction64, Parser) */
8568 void parser__ReduceAction64__action(val* self, val* p0) {
8569 val* var_p /* var p: Parser */;
8570 val* var /* : null */;
8571 val* var_node_list /* var node_list: nullable Object */;
8572 val* var1 /* : nullable Object */;
8573 val* var_nodearraylist11 /* var nodearraylist11: nullable Object */;
8574 val* var2 /* : nullable Object */;
8575 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
8576 val* var3 /* : nullable Object */;
8577 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
8578 val* var4 /* : nullable Object */;
8579 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
8580 val* var5 /* : nullable Object */;
8581 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
8582 val* var6 /* : nullable Object */;
8583 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
8584 val* var7 /* : nullable Object */;
8585 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
8586 val* var8 /* : nullable Object */;
8587 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8588 val* var9 /* : nullable Object */;
8589 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8590 val* var10 /* : nullable Object */;
8591 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8592 val* var11 /* : nullable Object */;
8593 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8594 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
8595 short int var12 /* : Bool */;
8596 int cltype;
8597 int idtype;
8598 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
8599 short int var13 /* : Bool */;
8600 int cltype14;
8601 int idtype15;
8602 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
8603 short int var16 /* : Bool */;
8604 int cltype17;
8605 int idtype18;
8606 val* var_tkwmethnode5 /* var tkwmethnode5: nullable Object */;
8607 short int var19 /* : Bool */;
8608 int cltype20;
8609 int idtype21;
8610 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
8611 short int var22 /* : Bool */;
8612 int cltype23;
8613 int idtype24;
8614 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
8615 short int var25 /* : Bool */;
8616 int cltype26;
8617 int idtype27;
8618 val* var_tstringnode9 /* var tstringnode9: nullable Object */;
8619 short int var28 /* : Bool */;
8620 int cltype29;
8621 int idtype30;
8622 val* var_pexterncallsnode10 /* var pexterncallsnode10: nullable Object */;
8623 short int var31 /* : Bool */;
8624 int cltype32;
8625 int idtype33;
8626 val* var_pexterncodeblocknode11 /* var pexterncodeblocknode11: nullable Object */;
8627 short int var34 /* : Bool */;
8628 int cltype35;
8629 int idtype36;
8630 val* var37 /* : AExternMethPropdef */;
8631 val* var38 /* : null */;
8632 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternMethPropdef */;
8633 long var39 /* : Int */;
8634 long var40 /* : Int */;
8635 var_p = p0;
8636 var = NULL;
8637 var_node_list = var;
8638 {
8639 var1 = parser_work__Parser__pop(var_p);
8640 }
8641 var_nodearraylist11 = var1;
8642 {
8643 var2 = parser_work__Parser__pop(var_p);
8644 }
8645 var_nodearraylist10 = var2;
8646 {
8647 var3 = parser_work__Parser__pop(var_p);
8648 }
8649 var_nodearraylist9 = var3;
8650 {
8651 var4 = parser_work__Parser__pop(var_p);
8652 }
8653 var_nodearraylist8 = var4;
8654 {
8655 var5 = parser_work__Parser__pop(var_p);
8656 }
8657 var_nodearraylist7 = var5;
8658 {
8659 var6 = parser_work__Parser__pop(var_p);
8660 }
8661 var_nodearraylist6 = var6;
8662 {
8663 var7 = parser_work__Parser__pop(var_p);
8664 }
8665 var_nodearraylist5 = var7;
8666 {
8667 var8 = parser_work__Parser__pop(var_p);
8668 }
8669 var_nodearraylist4 = var8;
8670 {
8671 var9 = parser_work__Parser__pop(var_p);
8672 }
8673 var_nodearraylist3 = var9;
8674 {
8675 var10 = parser_work__Parser__pop(var_p);
8676 }
8677 var_nodearraylist2 = var10;
8678 {
8679 var11 = parser_work__Parser__pop(var_p);
8680 }
8681 var_nodearraylist1 = var11;
8682 var_pdocnode2 = var_nodearraylist1;
8683 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
8684 cltype = type_nullable_parser_nodes__ADoc.color;
8685 idtype = type_nullable_parser_nodes__ADoc.id;
8686 if(var_pdocnode2 == NULL) {
8687 var12 = 1;
8688 } else {
8689 if(cltype >= var_pdocnode2->type->table_size) {
8690 var12 = 0;
8691 } else {
8692 var12 = var_pdocnode2->type->type_table[cltype] == idtype;
8693 }
8694 }
8695 if (unlikely(!var12)) {
8696 PRINT_ERROR("Runtime error: %s", "Assert failed");
8697 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3019);
8698 show_backtrace(1);
8699 }
8700 var_tkwredefnode3 = var_nodearraylist2;
8701 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
8702 cltype14 = type_nullable_parser_nodes__TKwredef.color;
8703 idtype15 = type_nullable_parser_nodes__TKwredef.id;
8704 if(var_tkwredefnode3 == NULL) {
8705 var13 = 1;
8706 } else {
8707 if(cltype14 >= var_tkwredefnode3->type->table_size) {
8708 var13 = 0;
8709 } else {
8710 var13 = var_tkwredefnode3->type->type_table[cltype14] == idtype15;
8711 }
8712 }
8713 if (unlikely(!var13)) {
8714 PRINT_ERROR("Runtime error: %s", "Assert failed");
8715 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3021);
8716 show_backtrace(1);
8717 }
8718 var_pvisibilitynode4 = var_nodearraylist3;
8719 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
8720 cltype17 = type_nullable_parser_nodes__AVisibility.color;
8721 idtype18 = type_nullable_parser_nodes__AVisibility.id;
8722 if(var_pvisibilitynode4 == NULL) {
8723 var16 = 1;
8724 } else {
8725 if(cltype17 >= var_pvisibilitynode4->type->table_size) {
8726 var16 = 0;
8727 } else {
8728 var16 = var_pvisibilitynode4->type->type_table[cltype17] == idtype18;
8729 }
8730 }
8731 if (unlikely(!var16)) {
8732 PRINT_ERROR("Runtime error: %s", "Assert failed");
8733 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3023);
8734 show_backtrace(1);
8735 }
8736 var_tkwmethnode5 = var_nodearraylist4;
8737 /* <var_tkwmethnode5:nullable Object> isa nullable TKwmeth */
8738 cltype20 = type_nullable_parser_nodes__TKwmeth.color;
8739 idtype21 = type_nullable_parser_nodes__TKwmeth.id;
8740 if(var_tkwmethnode5 == NULL) {
8741 var19 = 1;
8742 } else {
8743 if(cltype20 >= var_tkwmethnode5->type->table_size) {
8744 var19 = 0;
8745 } else {
8746 var19 = var_tkwmethnode5->type->type_table[cltype20] == idtype21;
8747 }
8748 }
8749 if (unlikely(!var19)) {
8750 PRINT_ERROR("Runtime error: %s", "Assert failed");
8751 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3025);
8752 show_backtrace(1);
8753 }
8754 var_pmethidnode6 = var_nodearraylist5;
8755 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
8756 cltype23 = type_nullable_parser_nodes__AMethid.color;
8757 idtype24 = type_nullable_parser_nodes__AMethid.id;
8758 if(var_pmethidnode6 == NULL) {
8759 var22 = 1;
8760 } else {
8761 if(cltype23 >= var_pmethidnode6->type->table_size) {
8762 var22 = 0;
8763 } else {
8764 var22 = var_pmethidnode6->type->type_table[cltype23] == idtype24;
8765 }
8766 }
8767 if (unlikely(!var22)) {
8768 PRINT_ERROR("Runtime error: %s", "Assert failed");
8769 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3027);
8770 show_backtrace(1);
8771 }
8772 var_psignaturenode7 = var_nodearraylist6;
8773 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
8774 cltype26 = type_nullable_parser_nodes__ASignature.color;
8775 idtype27 = type_nullable_parser_nodes__ASignature.id;
8776 if(var_psignaturenode7 == NULL) {
8777 var25 = 1;
8778 } else {
8779 if(cltype26 >= var_psignaturenode7->type->table_size) {
8780 var25 = 0;
8781 } else {
8782 var25 = var_psignaturenode7->type->type_table[cltype26] == idtype27;
8783 }
8784 }
8785 if (unlikely(!var25)) {
8786 PRINT_ERROR("Runtime error: %s", "Assert failed");
8787 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3029);
8788 show_backtrace(1);
8789 }
8790 var_tstringnode9 = var_nodearraylist9;
8791 /* <var_tstringnode9:nullable Object> isa nullable TString */
8792 cltype29 = type_nullable_parser_nodes__TString.color;
8793 idtype30 = type_nullable_parser_nodes__TString.id;
8794 if(var_tstringnode9 == NULL) {
8795 var28 = 1;
8796 } else {
8797 if(cltype29 >= var_tstringnode9->type->table_size) {
8798 var28 = 0;
8799 } else {
8800 var28 = var_tstringnode9->type->type_table[cltype29] == idtype30;
8801 }
8802 }
8803 if (unlikely(!var28)) {
8804 PRINT_ERROR("Runtime error: %s", "Assert failed");
8805 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3031);
8806 show_backtrace(1);
8807 }
8808 var_pexterncallsnode10 = var_nodearraylist10;
8809 /* <var_pexterncallsnode10:nullable Object> isa nullable AExternCalls */
8810 cltype32 = type_nullable_parser_nodes__AExternCalls.color;
8811 idtype33 = type_nullable_parser_nodes__AExternCalls.id;
8812 if(var_pexterncallsnode10 == NULL) {
8813 var31 = 1;
8814 } else {
8815 if(cltype32 >= var_pexterncallsnode10->type->table_size) {
8816 var31 = 0;
8817 } else {
8818 var31 = var_pexterncallsnode10->type->type_table[cltype32] == idtype33;
8819 }
8820 }
8821 if (unlikely(!var31)) {
8822 PRINT_ERROR("Runtime error: %s", "Assert failed");
8823 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3033);
8824 show_backtrace(1);
8825 }
8826 var_pexterncodeblocknode11 = var_nodearraylist11;
8827 /* <var_pexterncodeblocknode11:nullable Object> isa nullable AExternCodeBlock */
8828 cltype35 = type_nullable_parser_nodes__AExternCodeBlock.color;
8829 idtype36 = type_nullable_parser_nodes__AExternCodeBlock.id;
8830 if(var_pexterncodeblocknode11 == NULL) {
8831 var34 = 1;
8832 } else {
8833 if(cltype35 >= var_pexterncodeblocknode11->type->table_size) {
8834 var34 = 0;
8835 } else {
8836 var34 = var_pexterncodeblocknode11->type->type_table[cltype35] == idtype36;
8837 }
8838 }
8839 if (unlikely(!var34)) {
8840 PRINT_ERROR("Runtime error: %s", "Assert failed");
8841 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3035);
8842 show_backtrace(1);
8843 }
8844 var37 = NEW_parser_nodes__AExternMethPropdef(&type_parser_nodes__AExternMethPropdef);
8845 var38 = NULL;
8846 {
8847 parser_prod__AExternMethPropdef__init_aexternmethpropdef(var37, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwmethnode5, var_pmethidnode6, var_psignaturenode7, var38, var_tstringnode9, var_pexterncallsnode10, var_pexterncodeblocknode11); /* Direct call parser_prod#AExternMethPropdef#init_aexternmethpropdef on <var37:AExternMethPropdef>*/
8848 }
8849 var_ppropdefnode1 = var37;
8850 var_node_list = var_ppropdefnode1;
8851 var39 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction64> */
8852 {
8853 var40 = parser_work__Parser__go_to(var_p, var39);
8854 }
8855 {
8856 parser_work__Parser__push(var_p, var40, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
8857 }
8858 RET_LABEL:;
8859 }
8860 /* method parser#ReduceAction64#action for (self: Object, Parser) */
8861 void VIRTUAL_parser__ReduceAction64__action(val* self, val* p0) {
8862 parser__ReduceAction64__action(self, p0); /* Direct call parser#ReduceAction64#action on <self:Object(ReduceAction64)>*/
8863 RET_LABEL:;
8864 }
8865 /* method parser#ReduceAction65#action for (self: ReduceAction65, Parser) */
8866 void parser__ReduceAction65__action(val* self, val* p0) {
8867 val* var_p /* var p: Parser */;
8868 val* var /* : null */;
8869 val* var_node_list /* var node_list: nullable Object */;
8870 val* var1 /* : nullable Object */;
8871 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
8872 val* var2 /* : nullable Object */;
8873 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
8874 val* var3 /* : nullable Object */;
8875 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
8876 val* var4 /* : nullable Object */;
8877 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
8878 val* var5 /* : nullable Object */;
8879 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8880 val* var6 /* : nullable Object */;
8881 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8882 val* var7 /* : nullable Object */;
8883 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8884 val* var8 /* : nullable Object */;
8885 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8886 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
8887 short int var9 /* : Bool */;
8888 int cltype;
8889 int idtype;
8890 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
8891 short int var10 /* : Bool */;
8892 int cltype11;
8893 int idtype12;
8894 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
8895 short int var13 /* : Bool */;
8896 int cltype14;
8897 int idtype15;
8898 val* var_tkwmethnode5 /* var tkwmethnode5: nullable Object */;
8899 short int var16 /* : Bool */;
8900 int cltype17;
8901 int idtype18;
8902 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
8903 short int var19 /* : Bool */;
8904 int cltype20;
8905 int idtype21;
8906 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
8907 short int var22 /* : Bool */;
8908 int cltype23;
8909 int idtype24;
8910 val* var_pexterncallsnode10 /* var pexterncallsnode10: nullable Object */;
8911 short int var25 /* : Bool */;
8912 int cltype26;
8913 int idtype27;
8914 val* var_pexterncodeblocknode11 /* var pexterncodeblocknode11: nullable Object */;
8915 short int var28 /* : Bool */;
8916 int cltype29;
8917 int idtype30;
8918 val* var31 /* : AExternMethPropdef */;
8919 val* var32 /* : null */;
8920 val* var33 /* : null */;
8921 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternMethPropdef */;
8922 long var34 /* : Int */;
8923 long var35 /* : Int */;
8924 var_p = p0;
8925 var = NULL;
8926 var_node_list = var;
8927 {
8928 var1 = parser_work__Parser__pop(var_p);
8929 }
8930 var_nodearraylist8 = var1;
8931 {
8932 var2 = parser_work__Parser__pop(var_p);
8933 }
8934 var_nodearraylist7 = var2;
8935 {
8936 var3 = parser_work__Parser__pop(var_p);
8937 }
8938 var_nodearraylist6 = var3;
8939 {
8940 var4 = parser_work__Parser__pop(var_p);
8941 }
8942 var_nodearraylist5 = var4;
8943 {
8944 var5 = parser_work__Parser__pop(var_p);
8945 }
8946 var_nodearraylist4 = var5;
8947 {
8948 var6 = parser_work__Parser__pop(var_p);
8949 }
8950 var_nodearraylist3 = var6;
8951 {
8952 var7 = parser_work__Parser__pop(var_p);
8953 }
8954 var_nodearraylist2 = var7;
8955 {
8956 var8 = parser_work__Parser__pop(var_p);
8957 }
8958 var_nodearraylist1 = var8;
8959 var_pdocnode2 = var_nodearraylist1;
8960 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
8961 cltype = type_nullable_parser_nodes__ADoc.color;
8962 idtype = type_nullable_parser_nodes__ADoc.id;
8963 if(var_pdocnode2 == NULL) {
8964 var9 = 1;
8965 } else {
8966 if(cltype >= var_pdocnode2->type->table_size) {
8967 var9 = 0;
8968 } else {
8969 var9 = var_pdocnode2->type->type_table[cltype] == idtype;
8970 }
8971 }
8972 if (unlikely(!var9)) {
8973 PRINT_ERROR("Runtime error: %s", "Assert failed");
8974 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3066);
8975 show_backtrace(1);
8976 }
8977 var_tkwredefnode3 = var_nodearraylist2;
8978 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
8979 cltype11 = type_nullable_parser_nodes__TKwredef.color;
8980 idtype12 = type_nullable_parser_nodes__TKwredef.id;
8981 if(var_tkwredefnode3 == NULL) {
8982 var10 = 1;
8983 } else {
8984 if(cltype11 >= var_tkwredefnode3->type->table_size) {
8985 var10 = 0;
8986 } else {
8987 var10 = var_tkwredefnode3->type->type_table[cltype11] == idtype12;
8988 }
8989 }
8990 if (unlikely(!var10)) {
8991 PRINT_ERROR("Runtime error: %s", "Assert failed");
8992 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3068);
8993 show_backtrace(1);
8994 }
8995 var_pvisibilitynode4 = var_nodearraylist3;
8996 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
8997 cltype14 = type_nullable_parser_nodes__AVisibility.color;
8998 idtype15 = type_nullable_parser_nodes__AVisibility.id;
8999 if(var_pvisibilitynode4 == NULL) {
9000 var13 = 1;
9001 } else {
9002 if(cltype14 >= var_pvisibilitynode4->type->table_size) {
9003 var13 = 0;
9004 } else {
9005 var13 = var_pvisibilitynode4->type->type_table[cltype14] == idtype15;
9006 }
9007 }
9008 if (unlikely(!var13)) {
9009 PRINT_ERROR("Runtime error: %s", "Assert failed");
9010 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3070);
9011 show_backtrace(1);
9012 }
9013 var_tkwmethnode5 = var_nodearraylist4;
9014 /* <var_tkwmethnode5:nullable Object> isa nullable TKwmeth */
9015 cltype17 = type_nullable_parser_nodes__TKwmeth.color;
9016 idtype18 = type_nullable_parser_nodes__TKwmeth.id;
9017 if(var_tkwmethnode5 == NULL) {
9018 var16 = 1;
9019 } else {
9020 if(cltype17 >= var_tkwmethnode5->type->table_size) {
9021 var16 = 0;
9022 } else {
9023 var16 = var_tkwmethnode5->type->type_table[cltype17] == idtype18;
9024 }
9025 }
9026 if (unlikely(!var16)) {
9027 PRINT_ERROR("Runtime error: %s", "Assert failed");
9028 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3072);
9029 show_backtrace(1);
9030 }
9031 var_pmethidnode6 = var_nodearraylist5;
9032 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
9033 cltype20 = type_nullable_parser_nodes__AMethid.color;
9034 idtype21 = type_nullable_parser_nodes__AMethid.id;
9035 if(var_pmethidnode6 == NULL) {
9036 var19 = 1;
9037 } else {
9038 if(cltype20 >= var_pmethidnode6->type->table_size) {
9039 var19 = 0;
9040 } else {
9041 var19 = var_pmethidnode6->type->type_table[cltype20] == idtype21;
9042 }
9043 }
9044 if (unlikely(!var19)) {
9045 PRINT_ERROR("Runtime error: %s", "Assert failed");
9046 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3074);
9047 show_backtrace(1);
9048 }
9049 var_psignaturenode7 = var_nodearraylist6;
9050 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
9051 cltype23 = type_nullable_parser_nodes__ASignature.color;
9052 idtype24 = type_nullable_parser_nodes__ASignature.id;
9053 if(var_psignaturenode7 == NULL) {
9054 var22 = 1;
9055 } else {
9056 if(cltype23 >= var_psignaturenode7->type->table_size) {
9057 var22 = 0;
9058 } else {
9059 var22 = var_psignaturenode7->type->type_table[cltype23] == idtype24;
9060 }
9061 }
9062 if (unlikely(!var22)) {
9063 PRINT_ERROR("Runtime error: %s", "Assert failed");
9064 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3076);
9065 show_backtrace(1);
9066 }
9067 var_pexterncallsnode10 = var_nodearraylist7;
9068 /* <var_pexterncallsnode10:nullable Object> isa nullable AExternCalls */
9069 cltype26 = type_nullable_parser_nodes__AExternCalls.color;
9070 idtype27 = type_nullable_parser_nodes__AExternCalls.id;
9071 if(var_pexterncallsnode10 == NULL) {
9072 var25 = 1;
9073 } else {
9074 if(cltype26 >= var_pexterncallsnode10->type->table_size) {
9075 var25 = 0;
9076 } else {
9077 var25 = var_pexterncallsnode10->type->type_table[cltype26] == idtype27;
9078 }
9079 }
9080 if (unlikely(!var25)) {
9081 PRINT_ERROR("Runtime error: %s", "Assert failed");
9082 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3078);
9083 show_backtrace(1);
9084 }
9085 var_pexterncodeblocknode11 = var_nodearraylist8;
9086 /* <var_pexterncodeblocknode11:nullable Object> isa nullable AExternCodeBlock */
9087 cltype29 = type_nullable_parser_nodes__AExternCodeBlock.color;
9088 idtype30 = type_nullable_parser_nodes__AExternCodeBlock.id;
9089 if(var_pexterncodeblocknode11 == NULL) {
9090 var28 = 1;
9091 } else {
9092 if(cltype29 >= var_pexterncodeblocknode11->type->table_size) {
9093 var28 = 0;
9094 } else {
9095 var28 = var_pexterncodeblocknode11->type->type_table[cltype29] == idtype30;
9096 }
9097 }
9098 if (unlikely(!var28)) {
9099 PRINT_ERROR("Runtime error: %s", "Assert failed");
9100 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3080);
9101 show_backtrace(1);
9102 }
9103 var31 = NEW_parser_nodes__AExternMethPropdef(&type_parser_nodes__AExternMethPropdef);
9104 var32 = NULL;
9105 var33 = NULL;
9106 {
9107 parser_prod__AExternMethPropdef__init_aexternmethpropdef(var31, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwmethnode5, var_pmethidnode6, var_psignaturenode7, var32, var33, var_pexterncallsnode10, var_pexterncodeblocknode11); /* Direct call parser_prod#AExternMethPropdef#init_aexternmethpropdef on <var31:AExternMethPropdef>*/
9108 }
9109 var_ppropdefnode1 = var31;
9110 var_node_list = var_ppropdefnode1;
9111 var34 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction65> */
9112 {
9113 var35 = parser_work__Parser__go_to(var_p, var34);
9114 }
9115 {
9116 parser_work__Parser__push(var_p, var35, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
9117 }
9118 RET_LABEL:;
9119 }
9120 /* method parser#ReduceAction65#action for (self: Object, Parser) */
9121 void VIRTUAL_parser__ReduceAction65__action(val* self, val* p0) {
9122 parser__ReduceAction65__action(self, p0); /* Direct call parser#ReduceAction65#action on <self:Object(ReduceAction65)>*/
9123 RET_LABEL:;
9124 }
9125 /* method parser#ReduceAction66#action for (self: ReduceAction66, Parser) */
9126 void parser__ReduceAction66__action(val* self, val* p0) {
9127 val* var_p /* var p: Parser */;
9128 val* var /* : null */;
9129 val* var_node_list /* var node_list: nullable Object */;
9130 val* var1 /* : nullable Object */;
9131 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
9132 val* var2 /* : nullable Object */;
9133 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
9134 val* var3 /* : nullable Object */;
9135 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
9136 val* var4 /* : nullable Object */;
9137 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
9138 val* var5 /* : nullable Object */;
9139 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
9140 val* var6 /* : nullable Object */;
9141 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9142 val* var7 /* : nullable Object */;
9143 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9144 val* var8 /* : nullable Object */;
9145 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9146 val* var9 /* : nullable Object */;
9147 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9148 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
9149 short int var10 /* : Bool */;
9150 int cltype;
9151 int idtype;
9152 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
9153 short int var11 /* : Bool */;
9154 int cltype12;
9155 int idtype13;
9156 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
9157 short int var14 /* : Bool */;
9158 int cltype15;
9159 int idtype16;
9160 val* var_tkwmethnode5 /* var tkwmethnode5: nullable Object */;
9161 short int var17 /* : Bool */;
9162 int cltype18;
9163 int idtype19;
9164 val* var_pmethidnode6 /* var pmethidnode6: nullable Object */;
9165 short int var20 /* : Bool */;
9166 int cltype21;
9167 int idtype22;
9168 val* var_psignaturenode7 /* var psignaturenode7: nullable Object */;
9169 short int var23 /* : Bool */;
9170 int cltype24;
9171 int idtype25;
9172 val* var_pannotationsnode8 /* var pannotationsnode8: nullable Object */;
9173 short int var26 /* : Bool */;
9174 int cltype27;
9175 int idtype28;
9176 val* var_pexterncallsnode10 /* var pexterncallsnode10: nullable Object */;
9177 short int var29 /* : Bool */;
9178 int cltype30;
9179 int idtype31;
9180 val* var_pexterncodeblocknode11 /* var pexterncodeblocknode11: nullable Object */;
9181 short int var32 /* : Bool */;
9182 int cltype33;
9183 int idtype34;
9184 val* var35 /* : AExternMethPropdef */;
9185 val* var36 /* : null */;
9186 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AExternMethPropdef */;
9187 long var37 /* : Int */;
9188 long var38 /* : Int */;
9189 var_p = p0;
9190 var = NULL;
9191 var_node_list = var;
9192 {
9193 var1 = parser_work__Parser__pop(var_p);
9194 }
9195 var_nodearraylist9 = var1;
9196 {
9197 var2 = parser_work__Parser__pop(var_p);
9198 }
9199 var_nodearraylist8 = var2;
9200 {
9201 var3 = parser_work__Parser__pop(var_p);
9202 }
9203 var_nodearraylist7 = var3;
9204 {
9205 var4 = parser_work__Parser__pop(var_p);
9206 }
9207 var_nodearraylist6 = var4;
9208 {
9209 var5 = parser_work__Parser__pop(var_p);
9210 }
9211 var_nodearraylist5 = var5;
9212 {
9213 var6 = parser_work__Parser__pop(var_p);
9214 }
9215 var_nodearraylist4 = var6;
9216 {
9217 var7 = parser_work__Parser__pop(var_p);
9218 }
9219 var_nodearraylist3 = var7;
9220 {
9221 var8 = parser_work__Parser__pop(var_p);
9222 }
9223 var_nodearraylist2 = var8;
9224 {
9225 var9 = parser_work__Parser__pop(var_p);
9226 }
9227 var_nodearraylist1 = var9;
9228 var_pdocnode2 = var_nodearraylist1;
9229 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
9230 cltype = type_nullable_parser_nodes__ADoc.color;
9231 idtype = type_nullable_parser_nodes__ADoc.id;
9232 if(var_pdocnode2 == NULL) {
9233 var10 = 1;
9234 } else {
9235 if(cltype >= var_pdocnode2->type->table_size) {
9236 var10 = 0;
9237 } else {
9238 var10 = var_pdocnode2->type->type_table[cltype] == idtype;
9239 }
9240 }
9241 if (unlikely(!var10)) {
9242 PRINT_ERROR("Runtime error: %s", "Assert failed");
9243 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3112);
9244 show_backtrace(1);
9245 }
9246 var_tkwredefnode3 = var_nodearraylist2;
9247 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
9248 cltype12 = type_nullable_parser_nodes__TKwredef.color;
9249 idtype13 = type_nullable_parser_nodes__TKwredef.id;
9250 if(var_tkwredefnode3 == NULL) {
9251 var11 = 1;
9252 } else {
9253 if(cltype12 >= var_tkwredefnode3->type->table_size) {
9254 var11 = 0;
9255 } else {
9256 var11 = var_tkwredefnode3->type->type_table[cltype12] == idtype13;
9257 }
9258 }
9259 if (unlikely(!var11)) {
9260 PRINT_ERROR("Runtime error: %s", "Assert failed");
9261 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3114);
9262 show_backtrace(1);
9263 }
9264 var_pvisibilitynode4 = var_nodearraylist3;
9265 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
9266 cltype15 = type_nullable_parser_nodes__AVisibility.color;
9267 idtype16 = type_nullable_parser_nodes__AVisibility.id;
9268 if(var_pvisibilitynode4 == NULL) {
9269 var14 = 1;
9270 } else {
9271 if(cltype15 >= var_pvisibilitynode4->type->table_size) {
9272 var14 = 0;
9273 } else {
9274 var14 = var_pvisibilitynode4->type->type_table[cltype15] == idtype16;
9275 }
9276 }
9277 if (unlikely(!var14)) {
9278 PRINT_ERROR("Runtime error: %s", "Assert failed");
9279 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3116);
9280 show_backtrace(1);
9281 }
9282 var_tkwmethnode5 = var_nodearraylist4;
9283 /* <var_tkwmethnode5:nullable Object> isa nullable TKwmeth */
9284 cltype18 = type_nullable_parser_nodes__TKwmeth.color;
9285 idtype19 = type_nullable_parser_nodes__TKwmeth.id;
9286 if(var_tkwmethnode5 == NULL) {
9287 var17 = 1;
9288 } else {
9289 if(cltype18 >= var_tkwmethnode5->type->table_size) {
9290 var17 = 0;
9291 } else {
9292 var17 = var_tkwmethnode5->type->type_table[cltype18] == idtype19;
9293 }
9294 }
9295 if (unlikely(!var17)) {
9296 PRINT_ERROR("Runtime error: %s", "Assert failed");
9297 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3118);
9298 show_backtrace(1);
9299 }
9300 var_pmethidnode6 = var_nodearraylist5;
9301 /* <var_pmethidnode6:nullable Object> isa nullable AMethid */
9302 cltype21 = type_nullable_parser_nodes__AMethid.color;
9303 idtype22 = type_nullable_parser_nodes__AMethid.id;
9304 if(var_pmethidnode6 == NULL) {
9305 var20 = 1;
9306 } else {
9307 if(cltype21 >= var_pmethidnode6->type->table_size) {
9308 var20 = 0;
9309 } else {
9310 var20 = var_pmethidnode6->type->type_table[cltype21] == idtype22;
9311 }
9312 }
9313 if (unlikely(!var20)) {
9314 PRINT_ERROR("Runtime error: %s", "Assert failed");
9315 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3120);
9316 show_backtrace(1);
9317 }
9318 var_psignaturenode7 = var_nodearraylist6;
9319 /* <var_psignaturenode7:nullable Object> isa nullable ASignature */
9320 cltype24 = type_nullable_parser_nodes__ASignature.color;
9321 idtype25 = type_nullable_parser_nodes__ASignature.id;
9322 if(var_psignaturenode7 == NULL) {
9323 var23 = 1;
9324 } else {
9325 if(cltype24 >= var_psignaturenode7->type->table_size) {
9326 var23 = 0;
9327 } else {
9328 var23 = var_psignaturenode7->type->type_table[cltype24] == idtype25;
9329 }
9330 }
9331 if (unlikely(!var23)) {
9332 PRINT_ERROR("Runtime error: %s", "Assert failed");
9333 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3122);
9334 show_backtrace(1);
9335 }
9336 var_pannotationsnode8 = var_nodearraylist7;
9337 /* <var_pannotationsnode8:nullable Object> isa nullable AAnnotations */
9338 cltype27 = type_nullable_parser_nodes__AAnnotations.color;
9339 idtype28 = type_nullable_parser_nodes__AAnnotations.id;
9340 if(var_pannotationsnode8 == NULL) {
9341 var26 = 1;
9342 } else {
9343 if(cltype27 >= var_pannotationsnode8->type->table_size) {
9344 var26 = 0;
9345 } else {
9346 var26 = var_pannotationsnode8->type->type_table[cltype27] == idtype28;
9347 }
9348 }
9349 if (unlikely(!var26)) {
9350 PRINT_ERROR("Runtime error: %s", "Assert failed");
9351 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3124);
9352 show_backtrace(1);
9353 }
9354 var_pexterncallsnode10 = var_nodearraylist8;
9355 /* <var_pexterncallsnode10:nullable Object> isa nullable AExternCalls */
9356 cltype30 = type_nullable_parser_nodes__AExternCalls.color;
9357 idtype31 = type_nullable_parser_nodes__AExternCalls.id;
9358 if(var_pexterncallsnode10 == NULL) {
9359 var29 = 1;
9360 } else {
9361 if(cltype30 >= var_pexterncallsnode10->type->table_size) {
9362 var29 = 0;
9363 } else {
9364 var29 = var_pexterncallsnode10->type->type_table[cltype30] == idtype31;
9365 }
9366 }
9367 if (unlikely(!var29)) {
9368 PRINT_ERROR("Runtime error: %s", "Assert failed");
9369 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3126);
9370 show_backtrace(1);
9371 }
9372 var_pexterncodeblocknode11 = var_nodearraylist9;
9373 /* <var_pexterncodeblocknode11:nullable Object> isa nullable AExternCodeBlock */
9374 cltype33 = type_nullable_parser_nodes__AExternCodeBlock.color;
9375 idtype34 = type_nullable_parser_nodes__AExternCodeBlock.id;
9376 if(var_pexterncodeblocknode11 == NULL) {
9377 var32 = 1;
9378 } else {
9379 if(cltype33 >= var_pexterncodeblocknode11->type->table_size) {
9380 var32 = 0;
9381 } else {
9382 var32 = var_pexterncodeblocknode11->type->type_table[cltype33] == idtype34;
9383 }
9384 }
9385 if (unlikely(!var32)) {
9386 PRINT_ERROR("Runtime error: %s", "Assert failed");
9387 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3128);
9388 show_backtrace(1);
9389 }
9390 var35 = NEW_parser_nodes__AExternMethPropdef(&type_parser_nodes__AExternMethPropdef);
9391 var36 = NULL;
9392 {
9393 parser_prod__AExternMethPropdef__init_aexternmethpropdef(var35, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_tkwmethnode5, var_pmethidnode6, var_psignaturenode7, var_pannotationsnode8, var36, var_pexterncallsnode10, var_pexterncodeblocknode11); /* Direct call parser_prod#AExternMethPropdef#init_aexternmethpropdef on <var35:AExternMethPropdef>*/
9394 }
9395 var_ppropdefnode1 = var35;
9396 var_node_list = var_ppropdefnode1;
9397 var37 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction66> */
9398 {
9399 var38 = parser_work__Parser__go_to(var_p, var37);
9400 }
9401 {
9402 parser_work__Parser__push(var_p, var38, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
9403 }
9404 RET_LABEL:;
9405 }
9406 /* method parser#ReduceAction66#action for (self: Object, Parser) */
9407 void VIRTUAL_parser__ReduceAction66__action(val* self, val* p0) {
9408 parser__ReduceAction66__action(self, p0); /* Direct call parser#ReduceAction66#action on <self:Object(ReduceAction66)>*/
9409 RET_LABEL:;
9410 }
9411 /* method parser#ReduceAction67#action for (self: ReduceAction67, Parser) */
9412 void parser__ReduceAction67__action(val* self, val* p0) {
9413 val* var_p /* var p: Parser */;
9414 val* var /* : null */;
9415 val* var_node_list /* var node_list: nullable Object */;
9416 val* var1 /* : nullable Object */;
9417 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
9418 val* var2 /* : nullable Object */;
9419 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
9420 val* var3 /* : nullable Object */;
9421 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9422 val* var4 /* : nullable Object */;
9423 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9424 val* var5 /* : nullable Object */;
9425 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9426 val* var6 /* : nullable Object */;
9427 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9428 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
9429 short int var7 /* : Bool */;
9430 int cltype;
9431 int idtype;
9432 val* var_tkwredefnode5 /* var tkwredefnode5: nullable Object */;
9433 short int var8 /* : Bool */;
9434 int cltype9;
9435 int idtype10;
9436 val* var_pvisibilitynode6 /* var pvisibilitynode6: nullable Object */;
9437 short int var11 /* : Bool */;
9438 int cltype12;
9439 int idtype13;
9440 val* var_tkwvarnode7 /* var tkwvarnode7: nullable Object */;
9441 short int var14 /* : Bool */;
9442 int cltype15;
9443 int idtype16;
9444 val* var_tattridnode8 /* var tattridnode8: nullable Object */;
9445 short int var17 /* : Bool */;
9446 int cltype18;
9447 int idtype19;
9448 val* var_ptypenode10 /* var ptypenode10: nullable Object */;
9449 short int var20 /* : Bool */;
9450 int cltype21;
9451 int idtype22;
9452 val* var23 /* : AAttrPropdef */;
9453 val* var24 /* : null */;
9454 val* var25 /* : null */;
9455 val* var26 /* : null */;
9456 val* var27 /* : null */;
9457 val* var28 /* : null */;
9458 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AAttrPropdef */;
9459 long var29 /* : Int */;
9460 long var30 /* : Int */;
9461 var_p = p0;
9462 var = NULL;
9463 var_node_list = var;
9464 {
9465 var1 = parser_work__Parser__pop(var_p);
9466 }
9467 var_nodearraylist6 = var1;
9468 {
9469 var2 = parser_work__Parser__pop(var_p);
9470 }
9471 var_nodearraylist5 = var2;
9472 {
9473 var3 = parser_work__Parser__pop(var_p);
9474 }
9475 var_nodearraylist4 = var3;
9476 {
9477 var4 = parser_work__Parser__pop(var_p);
9478 }
9479 var_nodearraylist3 = var4;
9480 {
9481 var5 = parser_work__Parser__pop(var_p);
9482 }
9483 var_nodearraylist2 = var5;
9484 {
9485 var6 = parser_work__Parser__pop(var_p);
9486 }
9487 var_nodearraylist1 = var6;
9488 var_pdocnode2 = var_nodearraylist1;
9489 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
9490 cltype = type_nullable_parser_nodes__ADoc.color;
9491 idtype = type_nullable_parser_nodes__ADoc.id;
9492 if(var_pdocnode2 == NULL) {
9493 var7 = 1;
9494 } else {
9495 if(cltype >= var_pdocnode2->type->table_size) {
9496 var7 = 0;
9497 } else {
9498 var7 = var_pdocnode2->type->type_table[cltype] == idtype;
9499 }
9500 }
9501 if (unlikely(!var7)) {
9502 PRINT_ERROR("Runtime error: %s", "Assert failed");
9503 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3157);
9504 show_backtrace(1);
9505 }
9506 var_tkwredefnode5 = var_nodearraylist2;
9507 /* <var_tkwredefnode5:nullable Object> isa nullable TKwredef */
9508 cltype9 = type_nullable_parser_nodes__TKwredef.color;
9509 idtype10 = type_nullable_parser_nodes__TKwredef.id;
9510 if(var_tkwredefnode5 == NULL) {
9511 var8 = 1;
9512 } else {
9513 if(cltype9 >= var_tkwredefnode5->type->table_size) {
9514 var8 = 0;
9515 } else {
9516 var8 = var_tkwredefnode5->type->type_table[cltype9] == idtype10;
9517 }
9518 }
9519 if (unlikely(!var8)) {
9520 PRINT_ERROR("Runtime error: %s", "Assert failed");
9521 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3159);
9522 show_backtrace(1);
9523 }
9524 var_pvisibilitynode6 = var_nodearraylist3;
9525 /* <var_pvisibilitynode6:nullable Object> isa nullable AVisibility */
9526 cltype12 = type_nullable_parser_nodes__AVisibility.color;
9527 idtype13 = type_nullable_parser_nodes__AVisibility.id;
9528 if(var_pvisibilitynode6 == NULL) {
9529 var11 = 1;
9530 } else {
9531 if(cltype12 >= var_pvisibilitynode6->type->table_size) {
9532 var11 = 0;
9533 } else {
9534 var11 = var_pvisibilitynode6->type->type_table[cltype12] == idtype13;
9535 }
9536 }
9537 if (unlikely(!var11)) {
9538 PRINT_ERROR("Runtime error: %s", "Assert failed");
9539 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3161);
9540 show_backtrace(1);
9541 }
9542 var_tkwvarnode7 = var_nodearraylist4;
9543 /* <var_tkwvarnode7:nullable Object> isa nullable TKwvar */
9544 cltype15 = type_nullable_parser_nodes__TKwvar.color;
9545 idtype16 = type_nullable_parser_nodes__TKwvar.id;
9546 if(var_tkwvarnode7 == NULL) {
9547 var14 = 1;
9548 } else {
9549 if(cltype15 >= var_tkwvarnode7->type->table_size) {
9550 var14 = 0;
9551 } else {
9552 var14 = var_tkwvarnode7->type->type_table[cltype15] == idtype16;
9553 }
9554 }
9555 if (unlikely(!var14)) {
9556 PRINT_ERROR("Runtime error: %s", "Assert failed");
9557 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3163);
9558 show_backtrace(1);
9559 }
9560 var_tattridnode8 = var_nodearraylist5;
9561 /* <var_tattridnode8:nullable Object> isa nullable TAttrid */
9562 cltype18 = type_nullable_parser_nodes__TAttrid.color;
9563 idtype19 = type_nullable_parser_nodes__TAttrid.id;
9564 if(var_tattridnode8 == NULL) {
9565 var17 = 1;
9566 } else {
9567 if(cltype18 >= var_tattridnode8->type->table_size) {
9568 var17 = 0;
9569 } else {
9570 var17 = var_tattridnode8->type->type_table[cltype18] == idtype19;
9571 }
9572 }
9573 if (unlikely(!var17)) {
9574 PRINT_ERROR("Runtime error: %s", "Assert failed");
9575 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3165);
9576 show_backtrace(1);
9577 }
9578 var_ptypenode10 = var_nodearraylist6;
9579 /* <var_ptypenode10:nullable Object> isa nullable AType */
9580 cltype21 = type_nullable_parser_nodes__AType.color;
9581 idtype22 = type_nullable_parser_nodes__AType.id;
9582 if(var_ptypenode10 == NULL) {
9583 var20 = 1;
9584 } else {
9585 if(cltype21 >= var_ptypenode10->type->table_size) {
9586 var20 = 0;
9587 } else {
9588 var20 = var_ptypenode10->type->type_table[cltype21] == idtype22;
9589 }
9590 }
9591 if (unlikely(!var20)) {
9592 PRINT_ERROR("Runtime error: %s", "Assert failed");
9593 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3167);
9594 show_backtrace(1);
9595 }
9596 var23 = NEW_parser_nodes__AAttrPropdef(&type_parser_nodes__AAttrPropdef);
9597 var24 = NULL;
9598 var25 = NULL;
9599 var26 = NULL;
9600 var27 = NULL;
9601 var28 = NULL;
9602 {
9603 parser_prod__AAttrPropdef__init_aattrpropdef(var23, var_pdocnode2, var24, var25, var_tkwredefnode5, var_pvisibilitynode6, var_tkwvarnode7, var_tattridnode8, var26, var_ptypenode10, var27, var28); /* Direct call parser_prod#AAttrPropdef#init_aattrpropdef on <var23:AAttrPropdef>*/
9604 }
9605 var_ppropdefnode1 = var23;
9606 var_node_list = var_ppropdefnode1;
9607 var29 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction67> */
9608 {
9609 var30 = parser_work__Parser__go_to(var_p, var29);
9610 }
9611 {
9612 parser_work__Parser__push(var_p, var30, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
9613 }
9614 RET_LABEL:;
9615 }
9616 /* method parser#ReduceAction67#action for (self: Object, Parser) */
9617 void VIRTUAL_parser__ReduceAction67__action(val* self, val* p0) {
9618 parser__ReduceAction67__action(self, p0); /* Direct call parser#ReduceAction67#action on <self:Object(ReduceAction67)>*/
9619 RET_LABEL:;
9620 }
9621 /* method parser#ReduceAction68#action for (self: ReduceAction68, Parser) */
9622 void parser__ReduceAction68__action(val* self, val* p0) {
9623 val* var_p /* var p: Parser */;
9624 val* var /* : null */;
9625 val* var_node_list /* var node_list: nullable Object */;
9626 val* var1 /* : nullable Object */;
9627 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
9628 val* var2 /* : nullable Object */;
9629 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
9630 val* var3 /* : nullable Object */;
9631 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
9632 val* var4 /* : nullable Object */;
9633 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9634 val* var5 /* : nullable Object */;
9635 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9636 val* var6 /* : nullable Object */;
9637 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9638 val* var7 /* : nullable Object */;
9639 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9640 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
9641 short int var8 /* : Bool */;
9642 int cltype;
9643 int idtype;
9644 val* var_pablenode3 /* var pablenode3: nullable Object */;
9645 short int var9 /* : Bool */;
9646 int cltype10;
9647 int idtype11;
9648 val* var_tkwredefnode5 /* var tkwredefnode5: nullable Object */;
9649 short int var12 /* : Bool */;
9650 int cltype13;
9651 int idtype14;
9652 val* var_pvisibilitynode6 /* var pvisibilitynode6: nullable Object */;
9653 short int var15 /* : Bool */;
9654 int cltype16;
9655 int idtype17;
9656 val* var_tkwvarnode7 /* var tkwvarnode7: nullable Object */;
9657 short int var18 /* : Bool */;
9658 int cltype19;
9659 int idtype20;
9660 val* var_tattridnode8 /* var tattridnode8: nullable Object */;
9661 short int var21 /* : Bool */;
9662 int cltype22;
9663 int idtype23;
9664 val* var_ptypenode10 /* var ptypenode10: nullable Object */;
9665 short int var24 /* : Bool */;
9666 int cltype25;
9667 int idtype26;
9668 val* var27 /* : AAttrPropdef */;
9669 val* var28 /* : null */;
9670 val* var29 /* : null */;
9671 val* var30 /* : null */;
9672 val* var31 /* : null */;
9673 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AAttrPropdef */;
9674 long var32 /* : Int */;
9675 long var33 /* : Int */;
9676 var_p = p0;
9677 var = NULL;
9678 var_node_list = var;
9679 {
9680 var1 = parser_work__Parser__pop(var_p);
9681 }
9682 var_nodearraylist7 = var1;
9683 {
9684 var2 = parser_work__Parser__pop(var_p);
9685 }
9686 var_nodearraylist6 = var2;
9687 {
9688 var3 = parser_work__Parser__pop(var_p);
9689 }
9690 var_nodearraylist5 = var3;
9691 {
9692 var4 = parser_work__Parser__pop(var_p);
9693 }
9694 var_nodearraylist4 = var4;
9695 {
9696 var5 = parser_work__Parser__pop(var_p);
9697 }
9698 var_nodearraylist3 = var5;
9699 {
9700 var6 = parser_work__Parser__pop(var_p);
9701 }
9702 var_nodearraylist2 = var6;
9703 {
9704 var7 = parser_work__Parser__pop(var_p);
9705 }
9706 var_nodearraylist1 = var7;
9707 var_pdocnode2 = var_nodearraylist1;
9708 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
9709 cltype = type_nullable_parser_nodes__ADoc.color;
9710 idtype = type_nullable_parser_nodes__ADoc.id;
9711 if(var_pdocnode2 == NULL) {
9712 var8 = 1;
9713 } else {
9714 if(cltype >= var_pdocnode2->type->table_size) {
9715 var8 = 0;
9716 } else {
9717 var8 = var_pdocnode2->type->type_table[cltype] == idtype;
9718 }
9719 }
9720 if (unlikely(!var8)) {
9721 PRINT_ERROR("Runtime error: %s", "Assert failed");
9722 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3198);
9723 show_backtrace(1);
9724 }
9725 var_pablenode3 = var_nodearraylist2;
9726 /* <var_pablenode3:nullable Object> isa nullable AAble */
9727 cltype10 = type_nullable_parser_nodes__AAble.color;
9728 idtype11 = type_nullable_parser_nodes__AAble.id;
9729 if(var_pablenode3 == NULL) {
9730 var9 = 1;
9731 } else {
9732 if(cltype10 >= var_pablenode3->type->table_size) {
9733 var9 = 0;
9734 } else {
9735 var9 = var_pablenode3->type->type_table[cltype10] == idtype11;
9736 }
9737 }
9738 if (unlikely(!var9)) {
9739 PRINT_ERROR("Runtime error: %s", "Assert failed");
9740 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3200);
9741 show_backtrace(1);
9742 }
9743 var_tkwredefnode5 = var_nodearraylist3;
9744 /* <var_tkwredefnode5:nullable Object> isa nullable TKwredef */
9745 cltype13 = type_nullable_parser_nodes__TKwredef.color;
9746 idtype14 = type_nullable_parser_nodes__TKwredef.id;
9747 if(var_tkwredefnode5 == NULL) {
9748 var12 = 1;
9749 } else {
9750 if(cltype13 >= var_tkwredefnode5->type->table_size) {
9751 var12 = 0;
9752 } else {
9753 var12 = var_tkwredefnode5->type->type_table[cltype13] == idtype14;
9754 }
9755 }
9756 if (unlikely(!var12)) {
9757 PRINT_ERROR("Runtime error: %s", "Assert failed");
9758 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3202);
9759 show_backtrace(1);
9760 }
9761 var_pvisibilitynode6 = var_nodearraylist4;
9762 /* <var_pvisibilitynode6:nullable Object> isa nullable AVisibility */
9763 cltype16 = type_nullable_parser_nodes__AVisibility.color;
9764 idtype17 = type_nullable_parser_nodes__AVisibility.id;
9765 if(var_pvisibilitynode6 == NULL) {
9766 var15 = 1;
9767 } else {
9768 if(cltype16 >= var_pvisibilitynode6->type->table_size) {
9769 var15 = 0;
9770 } else {
9771 var15 = var_pvisibilitynode6->type->type_table[cltype16] == idtype17;
9772 }
9773 }
9774 if (unlikely(!var15)) {
9775 PRINT_ERROR("Runtime error: %s", "Assert failed");
9776 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3204);
9777 show_backtrace(1);
9778 }
9779 var_tkwvarnode7 = var_nodearraylist5;
9780 /* <var_tkwvarnode7:nullable Object> isa nullable TKwvar */
9781 cltype19 = type_nullable_parser_nodes__TKwvar.color;
9782 idtype20 = type_nullable_parser_nodes__TKwvar.id;
9783 if(var_tkwvarnode7 == NULL) {
9784 var18 = 1;
9785 } else {
9786 if(cltype19 >= var_tkwvarnode7->type->table_size) {
9787 var18 = 0;
9788 } else {
9789 var18 = var_tkwvarnode7->type->type_table[cltype19] == idtype20;
9790 }
9791 }
9792 if (unlikely(!var18)) {
9793 PRINT_ERROR("Runtime error: %s", "Assert failed");
9794 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3206);
9795 show_backtrace(1);
9796 }
9797 var_tattridnode8 = var_nodearraylist6;
9798 /* <var_tattridnode8:nullable Object> isa nullable TAttrid */
9799 cltype22 = type_nullable_parser_nodes__TAttrid.color;
9800 idtype23 = type_nullable_parser_nodes__TAttrid.id;
9801 if(var_tattridnode8 == NULL) {
9802 var21 = 1;
9803 } else {
9804 if(cltype22 >= var_tattridnode8->type->table_size) {
9805 var21 = 0;
9806 } else {
9807 var21 = var_tattridnode8->type->type_table[cltype22] == idtype23;
9808 }
9809 }
9810 if (unlikely(!var21)) {
9811 PRINT_ERROR("Runtime error: %s", "Assert failed");
9812 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3208);
9813 show_backtrace(1);
9814 }
9815 var_ptypenode10 = var_nodearraylist7;
9816 /* <var_ptypenode10:nullable Object> isa nullable AType */
9817 cltype25 = type_nullable_parser_nodes__AType.color;
9818 idtype26 = type_nullable_parser_nodes__AType.id;
9819 if(var_ptypenode10 == NULL) {
9820 var24 = 1;
9821 } else {
9822 if(cltype25 >= var_ptypenode10->type->table_size) {
9823 var24 = 0;
9824 } else {
9825 var24 = var_ptypenode10->type->type_table[cltype25] == idtype26;
9826 }
9827 }
9828 if (unlikely(!var24)) {
9829 PRINT_ERROR("Runtime error: %s", "Assert failed");
9830 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 3210);
9831 show_backtrace(1);
9832 }
9833 var27 = NEW_parser_nodes__AAttrPropdef(&type_parser_nodes__AAttrPropdef);
9834 var28 = NULL;
9835 var29 = NULL;
9836 var30 = NULL;
9837 var31 = NULL;
9838 {
9839 parser_prod__AAttrPropdef__init_aattrpropdef(var27, var_pdocnode2, var_pablenode3, var28, var_tkwredefnode5, var_pvisibilitynode6, var_tkwvarnode7, var_tattridnode8, var29, var_ptypenode10, var30, var31); /* Direct call parser_prod#AAttrPropdef#init_aattrpropdef on <var27:AAttrPropdef>*/
9840 }
9841 var_ppropdefnode1 = var27;
9842 var_node_list = var_ppropdefnode1;
9843 var32 = self->attrs[COLOR_parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction68> */
9844 {
9845 var33 = parser_work__Parser__go_to(var_p, var32);
9846 }
9847 {
9848 parser_work__Parser__push(var_p, var33, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
9849 }
9850 RET_LABEL:;
9851 }
9852 /* method parser#ReduceAction68#action for (self: Object, Parser) */
9853 void VIRTUAL_parser__ReduceAction68__action(val* self, val* p0) {
9854 parser__ReduceAction68__action(self, p0); /* Direct call parser#ReduceAction68#action on <self:Object(ReduceAction68)>*/
9855 RET_LABEL:;
9856 }