1 #include "parser.sep.0.h"
2 /* method parser#ReduceAction362#action for (self: ReduceAction362, Parser) */
3 void parser__ReduceAction362__action(val
* self
, val
* p0
) {
4 val
* var_p
/* var p: Parser */;
6 val
* var_node_list
/* var node_list: nullable Object */;
7 val
* var1
/* : nullable Object */;
8 val
* var_nodearraylist3
/* var nodearraylist3: nullable Object */;
9 val
* var2
/* : nullable Object */;
10 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
11 val
* var3
/* : nullable Object */;
12 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
13 val
* var4
/* : Array[Object] */;
14 val
* var_listnode4
/* var listnode4: Array[Object] */;
15 val
* var_listnode2
/* var listnode2: nullable Object */;
16 short int var5
/* : Bool */;
19 val
* var_pexprnode3
/* var pexprnode3: nullable Object */;
20 short int var6
/* : Bool */;
23 val
* var9
/* : Array[Object] */;
24 val
* var10
/* : null */;
25 short int var11
/* : Bool */;
26 short int var12
/* : Bool */;
27 val
* var_other
/* var other: nullable Object */;
28 short int var14
/* : Bool */;
29 short int var15
/* : Bool */;
30 short int var16
/* : Bool */;
31 val
* var_pannotationsnode5
/* var pannotationsnode5: nullable Object */;
32 short int var17
/* : Bool */;
35 val
* var20
/* : ASuperstringExpr */;
36 val
* var_pexprnode1
/* var pexprnode1: nullable ASuperstringExpr */;
37 long var21
/* : Int */;
38 long var22
/* : Int */;
43 var1
= parser_work__Parser__pop(var_p
);
45 var_nodearraylist3
= var1
;
47 var2
= parser_work__Parser__pop(var_p
);
49 var_nodearraylist2
= var2
;
51 var3
= parser_work__Parser__pop(var_p
);
53 var_nodearraylist1
= var3
;
54 var4
= NEW_array__Array(&type_array__Arraykernel__Object
);
56 ((void (*)(val
*))(var4
->class->vft
[COLOR_kernel__Object__init
]))(var4
) /* init on <var4:Array[Object]>*/;
59 var_listnode2
= var_nodearraylist1
;
60 /* <var_listnode2:nullable Object> isa Array[Object] */
61 cltype
= type_array__Arraykernel__Object
.color
;
62 idtype
= type_array__Arraykernel__Object
.id
;
63 if(var_listnode2
== NULL
) {
66 if(cltype
>= var_listnode2
->type
->table_size
) {
69 var5
= var_listnode2
->type
->type_table
[cltype
] == idtype
;
72 if (unlikely(!var5
)) {
73 PRINT_ERROR("Runtime error: %s", "Assert failed");
74 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9180);
77 var_pexprnode3
= var_nodearraylist2
;
78 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
79 cltype7
= type_nullable_parser_nodes__AExpr
.color
;
80 idtype8
= type_nullable_parser_nodes__AExpr
.id
;
81 if(var_pexprnode3
== NULL
) {
84 if(cltype7
>= var_pexprnode3
->type
->table_size
) {
87 var6
= var_pexprnode3
->type
->type_table
[cltype7
] == idtype8
;
90 if (unlikely(!var6
)) {
91 PRINT_ERROR("Runtime error: %s", "Assert failed");
92 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9182);
96 var9
= parser_work__ReduceAction__concat(self
, var_listnode4
, var_listnode2
);
100 if (var_pexprnode3
== NULL
) {
101 var11
= 0; /* is null */
103 var11
= 1; /* arg is null and recv is not */
106 { /* Inline kernel#Object#!= (var_pexprnode3,var10) on <var_pexprnode3:nullable Object(nullable AExpr)> */
109 var15
= ((short int (*)(val
*, val
*))(var_pexprnode3
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_pexprnode3
, var_other
) /* == on <var_pexprnode3:nullable AExpr(AExpr)>*/;
121 array__Array__add(var_listnode4
, var_pexprnode3
); /* Direct call array#Array#add on <var_listnode4:Array[Object]>*/
125 var_pannotationsnode5
= var_nodearraylist3
;
126 /* <var_pannotationsnode5:nullable Object> isa nullable AAnnotations */
127 cltype18
= type_nullable_parser_nodes__AAnnotations
.color
;
128 idtype19
= type_nullable_parser_nodes__AAnnotations
.id
;
129 if(var_pannotationsnode5
== NULL
) {
132 if(cltype18
>= var_pannotationsnode5
->type
->table_size
) {
135 var17
= var_pannotationsnode5
->type
->type_table
[cltype18
] == idtype19
;
138 if (unlikely(!var17
)) {
139 PRINT_ERROR("Runtime error: %s", "Assert failed");
140 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9188);
143 var20
= NEW_parser_nodes__ASuperstringExpr(&type_parser_nodes__ASuperstringExpr
);
145 parser_prod__ASuperstringExpr__init_asuperstringexpr(var20
, var_listnode4
, var_pannotationsnode5
); /* Direct call parser_prod#ASuperstringExpr#init_asuperstringexpr on <var20:ASuperstringExpr>*/
147 var_pexprnode1
= var20
;
148 var_node_list
= var_pexprnode1
;
149 var21
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction362> */
151 var22
= parser_work__Parser__go_to(var_p
, var21
);
154 parser_work__Parser__push(var_p
, var22
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
158 /* method parser#ReduceAction362#action for (self: Object, Parser) */
159 void VIRTUAL_parser__ReduceAction362__action(val
* self
, val
* p0
) {
160 parser__ReduceAction362__action(self
, p0
); /* Direct call parser#ReduceAction362#action on <self:Object(ReduceAction362)>*/
163 /* method parser#ReduceAction363#action for (self: ReduceAction363, Parser) */
164 void parser__ReduceAction363__action(val
* self
, val
* p0
) {
165 val
* var_p
/* var p: Parser */;
166 val
* var
/* : null */;
167 val
* var_node_list
/* var node_list: nullable Object */;
168 val
* var1
/* : nullable Object */;
169 val
* var_nodearraylist4
/* var nodearraylist4: nullable Object */;
170 val
* var2
/* : nullable Object */;
171 val
* var_nodearraylist3
/* var nodearraylist3: nullable Object */;
172 val
* var3
/* : nullable Object */;
173 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
174 val
* var4
/* : nullable Object */;
175 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
176 val
* var5
/* : Array[Object] */;
177 val
* var_listnode5
/* var listnode5: Array[Object] */;
178 val
* var_listnode2
/* var listnode2: nullable Object */;
179 short int var6
/* : Bool */;
182 val
* var_listnode3
/* var listnode3: nullable Object */;
183 short int var7
/* : Bool */;
186 val
* var_pexprnode4
/* var pexprnode4: nullable Object */;
187 short int var10
/* : Bool */;
190 val
* var13
/* : Array[Object] */;
191 val
* var14
/* : Array[Object] */;
192 val
* var15
/* : null */;
193 short int var16
/* : Bool */;
194 short int var17
/* : Bool */;
195 val
* var_other
/* var other: nullable Object */;
196 short int var19
/* : Bool */;
197 short int var20
/* : Bool */;
198 short int var21
/* : Bool */;
199 val
* var_pannotationsnode6
/* var pannotationsnode6: nullable Object */;
200 short int var22
/* : Bool */;
203 val
* var25
/* : ASuperstringExpr */;
204 val
* var_pexprnode1
/* var pexprnode1: nullable ASuperstringExpr */;
205 long var26
/* : Int */;
206 long var27
/* : Int */;
211 var1
= parser_work__Parser__pop(var_p
);
213 var_nodearraylist4
= var1
;
215 var2
= parser_work__Parser__pop(var_p
);
217 var_nodearraylist3
= var2
;
219 var3
= parser_work__Parser__pop(var_p
);
221 var_nodearraylist2
= var3
;
223 var4
= parser_work__Parser__pop(var_p
);
225 var_nodearraylist1
= var4
;
226 var5
= NEW_array__Array(&type_array__Arraykernel__Object
);
228 ((void (*)(val
*))(var5
->class->vft
[COLOR_kernel__Object__init
]))(var5
) /* init on <var5:Array[Object]>*/;
230 var_listnode5
= var5
;
231 var_listnode2
= var_nodearraylist1
;
232 /* <var_listnode2:nullable Object> isa Array[Object] */
233 cltype
= type_array__Arraykernel__Object
.color
;
234 idtype
= type_array__Arraykernel__Object
.id
;
235 if(var_listnode2
== NULL
) {
238 if(cltype
>= var_listnode2
->type
->table_size
) {
241 var6
= var_listnode2
->type
->type_table
[cltype
] == idtype
;
244 if (unlikely(!var6
)) {
245 PRINT_ERROR("Runtime error: %s", "Assert failed");
246 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9208);
249 var_listnode3
= var_nodearraylist2
;
250 /* <var_listnode3:nullable Object> isa Array[Object] */
251 cltype8
= type_array__Arraykernel__Object
.color
;
252 idtype9
= type_array__Arraykernel__Object
.id
;
253 if(var_listnode3
== NULL
) {
256 if(cltype8
>= var_listnode3
->type
->table_size
) {
259 var7
= var_listnode3
->type
->type_table
[cltype8
] == idtype9
;
262 if (unlikely(!var7
)) {
263 PRINT_ERROR("Runtime error: %s", "Assert failed");
264 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9210);
267 var_pexprnode4
= var_nodearraylist3
;
268 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
269 cltype11
= type_nullable_parser_nodes__AExpr
.color
;
270 idtype12
= type_nullable_parser_nodes__AExpr
.id
;
271 if(var_pexprnode4
== NULL
) {
274 if(cltype11
>= var_pexprnode4
->type
->table_size
) {
277 var10
= var_pexprnode4
->type
->type_table
[cltype11
] == idtype12
;
280 if (unlikely(!var10
)) {
281 PRINT_ERROR("Runtime error: %s", "Assert failed");
282 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9212);
286 var13
= parser_work__ReduceAction__concat(self
, var_listnode5
, var_listnode2
);
288 var_listnode5
= var13
;
290 var14
= parser_work__ReduceAction__concat(self
, var_listnode5
, var_listnode3
);
292 var_listnode5
= var14
;
294 if (var_pexprnode4
== NULL
) {
295 var16
= 0; /* is null */
297 var16
= 1; /* arg is null and recv is not */
300 { /* Inline kernel#Object#!= (var_pexprnode4,var15) on <var_pexprnode4:nullable Object(nullable AExpr)> */
303 var20
= ((short int (*)(val
*, val
*))(var_pexprnode4
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_pexprnode4
, var_other
) /* == on <var_pexprnode4:nullable AExpr(AExpr)>*/;
315 array__Array__add(var_listnode5
, var_pexprnode4
); /* Direct call array#Array#add on <var_listnode5:Array[Object]>*/
319 var_pannotationsnode6
= var_nodearraylist4
;
320 /* <var_pannotationsnode6:nullable Object> isa nullable AAnnotations */
321 cltype23
= type_nullable_parser_nodes__AAnnotations
.color
;
322 idtype24
= type_nullable_parser_nodes__AAnnotations
.id
;
323 if(var_pannotationsnode6
== NULL
) {
326 if(cltype23
>= var_pannotationsnode6
->type
->table_size
) {
329 var22
= var_pannotationsnode6
->type
->type_table
[cltype23
] == idtype24
;
332 if (unlikely(!var22
)) {
333 PRINT_ERROR("Runtime error: %s", "Assert failed");
334 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9219);
337 var25
= NEW_parser_nodes__ASuperstringExpr(&type_parser_nodes__ASuperstringExpr
);
339 parser_prod__ASuperstringExpr__init_asuperstringexpr(var25
, var_listnode5
, var_pannotationsnode6
); /* Direct call parser_prod#ASuperstringExpr#init_asuperstringexpr on <var25:ASuperstringExpr>*/
341 var_pexprnode1
= var25
;
342 var_node_list
= var_pexprnode1
;
343 var26
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction363> */
345 var27
= parser_work__Parser__go_to(var_p
, var26
);
348 parser_work__Parser__push(var_p
, var27
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
352 /* method parser#ReduceAction363#action for (self: Object, Parser) */
353 void VIRTUAL_parser__ReduceAction363__action(val
* self
, val
* p0
) {
354 parser__ReduceAction363__action(self
, p0
); /* Direct call parser#ReduceAction363#action on <self:Object(ReduceAction363)>*/
357 /* method parser#ReduceAction364#action for (self: ReduceAction364, Parser) */
358 void parser__ReduceAction364__action(val
* self
, val
* p0
) {
359 val
* var_p
/* var p: Parser */;
360 val
* var
/* : null */;
361 val
* var_node_list
/* var node_list: nullable Object */;
362 val
* var1
/* : nullable Object */;
363 val
* var_nodearraylist4
/* var nodearraylist4: nullable Object */;
364 val
* var2
/* : nullable Object */;
365 val
* var_nodearraylist3
/* var nodearraylist3: nullable Object */;
366 val
* var3
/* : nullable Object */;
367 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
368 val
* var4
/* : nullable Object */;
369 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
370 val
* var5
/* : Array[Object] */;
371 val
* var_listnode3
/* var listnode3: Array[Object] */;
372 val
* var_pexprnode1
/* var pexprnode1: nullable Object */;
373 val
* var_pexprnode2
/* var pexprnode2: nullable Object */;
374 val
* var6
/* : null */;
375 short int var7
/* : Bool */;
376 short int var8
/* : Bool */;
377 val
* var9
/* : null */;
378 short int var10
/* : Bool */;
379 short int var11
/* : Bool */;
380 long var12
/* : Int */;
381 long var13
/* : Int */;
386 var1
= parser_work__Parser__pop(var_p
);
388 var_nodearraylist4
= var1
;
390 var2
= parser_work__Parser__pop(var_p
);
392 var_nodearraylist3
= var2
;
394 var3
= parser_work__Parser__pop(var_p
);
396 var_nodearraylist2
= var3
;
398 var4
= parser_work__Parser__pop(var_p
);
400 var_nodearraylist1
= var4
;
401 var5
= NEW_array__Array(&type_array__Arraykernel__Object
);
403 ((void (*)(val
*))(var5
->class->vft
[COLOR_kernel__Object__init
]))(var5
) /* init on <var5:Array[Object]>*/;
405 var_listnode3
= var5
;
406 var_pexprnode1
= var_nodearraylist1
;
407 var_pexprnode2
= var_nodearraylist3
;
409 if (var_pexprnode1
== NULL
) {
410 var7
= 0; /* is null */
412 var7
= 1; /* arg is null and recv is not */
415 var8
= ((short int (*)(val
*, val
*))(var_pexprnode1
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_pexprnode1
, var6
) /* != on <var_pexprnode1:nullable Object>*/;
420 array__Array__add(var_listnode3
, var_pexprnode1
); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
425 if (var_pexprnode2
== NULL
) {
426 var10
= 0; /* is null */
428 var10
= 1; /* arg is null and recv is not */
431 var11
= ((short int (*)(val
*, val
*))(var_pexprnode2
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_pexprnode2
, var9
) /* != on <var_pexprnode2:nullable Object>*/;
436 array__Array__add(var_listnode3
, var_pexprnode2
); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
440 var_node_list
= var_listnode3
;
441 var12
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction364> */
443 var13
= parser_work__Parser__go_to(var_p
, var12
);
446 parser_work__Parser__push(var_p
, var13
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
450 /* method parser#ReduceAction364#action for (self: Object, Parser) */
451 void VIRTUAL_parser__ReduceAction364__action(val
* self
, val
* p0
) {
452 parser__ReduceAction364__action(self
, p0
); /* Direct call parser#ReduceAction364#action on <self:Object(ReduceAction364)>*/
455 /* method parser#ReduceAction365#action for (self: ReduceAction365, Parser) */
456 void parser__ReduceAction365__action(val
* self
, val
* p0
) {
457 val
* var_p
/* var p: Parser */;
458 val
* var
/* : null */;
459 val
* var_node_list
/* var node_list: nullable Object */;
460 val
* var1
/* : nullable Object */;
461 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
462 val
* var2
/* : nullable Object */;
463 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
464 val
* var3
/* : Array[Object] */;
465 val
* var_listnode2
/* var listnode2: Array[Object] */;
466 val
* var_pexprnode1
/* var pexprnode1: nullable Object */;
467 val
* var4
/* : null */;
468 short int var5
/* : Bool */;
469 short int var6
/* : Bool */;
470 long var7
/* : Int */;
471 long var8
/* : Int */;
476 var1
= parser_work__Parser__pop(var_p
);
478 var_nodearraylist2
= var1
;
480 var2
= parser_work__Parser__pop(var_p
);
482 var_nodearraylist1
= var2
;
483 var3
= NEW_array__Array(&type_array__Arraykernel__Object
);
485 ((void (*)(val
*))(var3
->class->vft
[COLOR_kernel__Object__init
]))(var3
) /* init on <var3:Array[Object]>*/;
487 var_listnode2
= var3
;
488 var_pexprnode1
= var_nodearraylist1
;
490 if (var_pexprnode1
== NULL
) {
491 var5
= 0; /* is null */
493 var5
= 1; /* arg is null and recv is not */
496 var6
= ((short int (*)(val
*, val
*))(var_pexprnode1
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_pexprnode1
, var4
) /* != on <var_pexprnode1:nullable Object>*/;
501 array__Array__add(var_listnode2
, var_pexprnode1
); /* Direct call array#Array#add on <var_listnode2:Array[Object]>*/
505 var_node_list
= var_listnode2
;
506 var7
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction365> */
508 var8
= parser_work__Parser__go_to(var_p
, var7
);
511 parser_work__Parser__push(var_p
, var8
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
515 /* method parser#ReduceAction365#action for (self: Object, Parser) */
516 void VIRTUAL_parser__ReduceAction365__action(val
* self
, val
* p0
) {
517 parser__ReduceAction365__action(self
, p0
); /* Direct call parser#ReduceAction365#action on <self:Object(ReduceAction365)>*/
520 /* method parser#ReduceAction366#action for (self: ReduceAction366, Parser) */
521 void parser__ReduceAction366__action(val
* self
, val
* p0
) {
522 val
* var_p
/* var p: Parser */;
523 val
* var
/* : null */;
524 val
* var_node_list
/* var node_list: nullable Object */;
525 val
* var1
/* : nullable Object */;
526 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
527 val
* var_tstartstringnode2
/* var tstartstringnode2: nullable Object */;
528 short int var2
/* : Bool */;
531 val
* var3
/* : AStartStringExpr */;
532 val
* var_pexprnode1
/* var pexprnode1: nullable AStartStringExpr */;
533 long var4
/* : Int */;
534 long var5
/* : Int */;
539 var1
= parser_work__Parser__pop(var_p
);
541 var_nodearraylist1
= var1
;
542 var_tstartstringnode2
= var_nodearraylist1
;
543 /* <var_tstartstringnode2:nullable Object> isa nullable TStartString */
544 cltype
= type_nullable_parser_nodes__TStartString
.color
;
545 idtype
= type_nullable_parser_nodes__TStartString
.id
;
546 if(var_tstartstringnode2
== NULL
) {
549 if(cltype
>= var_tstartstringnode2
->type
->table_size
) {
552 var2
= var_tstartstringnode2
->type
->type_table
[cltype
] == idtype
;
555 if (unlikely(!var2
)) {
556 PRINT_ERROR("Runtime error: %s", "Assert failed");
557 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9273);
560 var3
= NEW_parser_nodes__AStartStringExpr(&type_parser_nodes__AStartStringExpr
);
562 parser_prod__AStartStringExpr__init_astartstringexpr(var3
, var_tstartstringnode2
); /* Direct call parser_prod#AStartStringExpr#init_astartstringexpr on <var3:AStartStringExpr>*/
564 var_pexprnode1
= var3
;
565 var_node_list
= var_pexprnode1
;
566 var4
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction366> */
568 var5
= parser_work__Parser__go_to(var_p
, var4
);
571 parser_work__Parser__push(var_p
, var5
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
575 /* method parser#ReduceAction366#action for (self: Object, Parser) */
576 void VIRTUAL_parser__ReduceAction366__action(val
* self
, val
* p0
) {
577 parser__ReduceAction366__action(self
, p0
); /* Direct call parser#ReduceAction366#action on <self:Object(ReduceAction366)>*/
580 /* method parser#ReduceAction369#action for (self: ReduceAction369, Parser) */
581 void parser__ReduceAction369__action(val
* self
, val
* p0
) {
582 val
* var_p
/* var p: Parser */;
583 val
* var
/* : null */;
584 val
* var_node_list
/* var node_list: nullable Object */;
585 val
* var1
/* : nullable Object */;
586 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
587 val
* var_tmidstringnode2
/* var tmidstringnode2: nullable Object */;
588 short int var2
/* : Bool */;
591 val
* var3
/* : AMidStringExpr */;
592 val
* var_pexprnode1
/* var pexprnode1: nullable AMidStringExpr */;
593 long var4
/* : Int */;
594 long var5
/* : Int */;
599 var1
= parser_work__Parser__pop(var_p
);
601 var_nodearraylist1
= var1
;
602 var_tmidstringnode2
= var_nodearraylist1
;
603 /* <var_tmidstringnode2:nullable Object> isa nullable TMidString */
604 cltype
= type_nullable_parser_nodes__TMidString
.color
;
605 idtype
= type_nullable_parser_nodes__TMidString
.id
;
606 if(var_tmidstringnode2
== NULL
) {
609 if(cltype
>= var_tmidstringnode2
->type
->table_size
) {
612 var2
= var_tmidstringnode2
->type
->type_table
[cltype
] == idtype
;
615 if (unlikely(!var2
)) {
616 PRINT_ERROR("Runtime error: %s", "Assert failed");
617 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9288);
620 var3
= NEW_parser_nodes__AMidStringExpr(&type_parser_nodes__AMidStringExpr
);
622 parser_prod__AMidStringExpr__init_amidstringexpr(var3
, var_tmidstringnode2
); /* Direct call parser_prod#AMidStringExpr#init_amidstringexpr on <var3:AMidStringExpr>*/
624 var_pexprnode1
= var3
;
625 var_node_list
= var_pexprnode1
;
626 var4
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction369> */
628 var5
= parser_work__Parser__go_to(var_p
, var4
);
631 parser_work__Parser__push(var_p
, var5
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
635 /* method parser#ReduceAction369#action for (self: Object, Parser) */
636 void VIRTUAL_parser__ReduceAction369__action(val
* self
, val
* p0
) {
637 parser__ReduceAction369__action(self
, p0
); /* Direct call parser#ReduceAction369#action on <self:Object(ReduceAction369)>*/
640 /* method parser#ReduceAction370#action for (self: ReduceAction370, Parser) */
641 void parser__ReduceAction370__action(val
* self
, val
* p0
) {
642 val
* var_p
/* var p: Parser */;
643 val
* var
/* : null */;
644 val
* var_node_list
/* var node_list: nullable Object */;
645 val
* var1
/* : nullable Object */;
646 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
647 val
* var_tendstringnode2
/* var tendstringnode2: nullable Object */;
648 short int var2
/* : Bool */;
651 val
* var3
/* : AEndStringExpr */;
652 val
* var_pexprnode1
/* var pexprnode1: nullable AEndStringExpr */;
653 long var4
/* : Int */;
654 long var5
/* : Int */;
659 var1
= parser_work__Parser__pop(var_p
);
661 var_nodearraylist1
= var1
;
662 var_tendstringnode2
= var_nodearraylist1
;
663 /* <var_tendstringnode2:nullable Object> isa nullable TEndString */
664 cltype
= type_nullable_parser_nodes__TEndString
.color
;
665 idtype
= type_nullable_parser_nodes__TEndString
.id
;
666 if(var_tendstringnode2
== NULL
) {
669 if(cltype
>= var_tendstringnode2
->type
->table_size
) {
672 var2
= var_tendstringnode2
->type
->type_table
[cltype
] == idtype
;
675 if (unlikely(!var2
)) {
676 PRINT_ERROR("Runtime error: %s", "Assert failed");
677 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9303);
680 var3
= NEW_parser_nodes__AEndStringExpr(&type_parser_nodes__AEndStringExpr
);
682 parser_prod__AEndStringExpr__init_aendstringexpr(var3
, var_tendstringnode2
); /* Direct call parser_prod#AEndStringExpr#init_aendstringexpr on <var3:AEndStringExpr>*/
684 var_pexprnode1
= var3
;
685 var_node_list
= var_pexprnode1
;
686 var4
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction370> */
688 var5
= parser_work__Parser__go_to(var_p
, var4
);
691 parser_work__Parser__push(var_p
, var5
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
695 /* method parser#ReduceAction370#action for (self: Object, Parser) */
696 void VIRTUAL_parser__ReduceAction370__action(val
* self
, val
* p0
) {
697 parser__ReduceAction370__action(self
, p0
); /* Direct call parser#ReduceAction370#action on <self:Object(ReduceAction370)>*/
700 /* method parser#ReduceAction371#action for (self: ReduceAction371, Parser) */
701 void parser__ReduceAction371__action(val
* self
, val
* p0
) {
702 val
* var_p
/* var p: Parser */;
703 val
* var
/* : null */;
704 val
* var_node_list
/* var node_list: nullable Object */;
705 val
* var1
/* : nullable Object */;
706 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
707 val
* var2
/* : nullable Object */;
708 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
709 val
* var3
/* : Array[Object] */;
710 val
* var_listnode5
/* var listnode5: Array[Object] */;
711 val
* var_tatnode2
/* var tatnode2: nullable Object */;
712 short int var4
/* : Bool */;
715 val
* var_pannotationnode4
/* var pannotationnode4: nullable Object */;
716 short int var5
/* : Bool */;
719 val
* var8
/* : null */;
720 short int var9
/* : Bool */;
721 short int var10
/* : Bool */;
722 val
* var_other
/* var other: nullable Object */;
723 short int var12
/* : Bool */;
724 short int var13
/* : Bool */;
725 short int var14
/* : Bool */;
726 val
* var15
/* : AAnnotations */;
727 val
* var16
/* : null */;
728 val
* var17
/* : null */;
729 val
* var_pannotationsnode1
/* var pannotationsnode1: nullable AAnnotations */;
730 long var18
/* : Int */;
731 long var19
/* : Int */;
736 var1
= parser_work__Parser__pop(var_p
);
738 var_nodearraylist2
= var1
;
740 var2
= parser_work__Parser__pop(var_p
);
742 var_nodearraylist1
= var2
;
743 var3
= NEW_array__Array(&type_array__Arraykernel__Object
);
745 ((void (*)(val
*))(var3
->class->vft
[COLOR_kernel__Object__init
]))(var3
) /* init on <var3:Array[Object]>*/;
747 var_listnode5
= var3
;
748 var_tatnode2
= var_nodearraylist1
;
749 /* <var_tatnode2:nullable Object> isa nullable TAt */
750 cltype
= type_nullable_parser_nodes__TAt
.color
;
751 idtype
= type_nullable_parser_nodes__TAt
.id
;
752 if(var_tatnode2
== NULL
) {
755 if(cltype
>= var_tatnode2
->type
->table_size
) {
758 var4
= var_tatnode2
->type
->type_table
[cltype
] == idtype
;
761 if (unlikely(!var4
)) {
762 PRINT_ERROR("Runtime error: %s", "Assert failed");
763 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9320);
766 var_pannotationnode4
= var_nodearraylist2
;
767 /* <var_pannotationnode4:nullable Object> isa nullable AAnnotation */
768 cltype6
= type_nullable_parser_nodes__AAnnotation
.color
;
769 idtype7
= type_nullable_parser_nodes__AAnnotation
.id
;
770 if(var_pannotationnode4
== NULL
) {
773 if(cltype6
>= var_pannotationnode4
->type
->table_size
) {
776 var5
= var_pannotationnode4
->type
->type_table
[cltype6
] == idtype7
;
779 if (unlikely(!var5
)) {
780 PRINT_ERROR("Runtime error: %s", "Assert failed");
781 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9322);
785 if (var_pannotationnode4
== NULL
) {
786 var9
= 0; /* is null */
788 var9
= 1; /* arg is null and recv is not */
791 { /* Inline kernel#Object#!= (var_pannotationnode4,var8) on <var_pannotationnode4:nullable Object(nullable AAnnotation)> */
794 var13
= ((short int (*)(val
*, val
*))(var_pannotationnode4
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_pannotationnode4
, var_other
) /* == on <var_pannotationnode4:nullable AAnnotation(AAnnotation)>*/;
806 array__Array__add(var_listnode5
, var_pannotationnode4
); /* Direct call array#Array#add on <var_listnode5:Array[Object]>*/
810 var15
= NEW_parser_nodes__AAnnotations(&type_parser_nodes__AAnnotations
);
814 parser_prod__AAnnotations__init_aannotations(var15
, var_tatnode2
, var16
, var_listnode5
, var17
); /* Direct call parser_prod#AAnnotations#init_aannotations on <var15:AAnnotations>*/
816 var_pannotationsnode1
= var15
;
817 var_node_list
= var_pannotationsnode1
;
818 var18
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction371> */
820 var19
= parser_work__Parser__go_to(var_p
, var18
);
823 parser_work__Parser__push(var_p
, var19
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
827 /* method parser#ReduceAction371#action for (self: Object, Parser) */
828 void VIRTUAL_parser__ReduceAction371__action(val
* self
, val
* p0
) {
829 parser__ReduceAction371__action(self
, p0
); /* Direct call parser#ReduceAction371#action on <self:Object(ReduceAction371)>*/
832 /* method parser#ReduceAction372#action for (self: ReduceAction372, Parser) */
833 void parser__ReduceAction372__action(val
* self
, val
* p0
) {
834 val
* var_p
/* var p: Parser */;
835 val
* var
/* : null */;
836 val
* var_node_list
/* var node_list: nullable Object */;
837 val
* var1
/* : nullable Object */;
838 val
* var_nodearraylist6
/* var nodearraylist6: nullable Object */;
839 val
* var2
/* : nullable Object */;
840 val
* var_nodearraylist5
/* var nodearraylist5: nullable Object */;
841 val
* var3
/* : nullable Object */;
842 val
* var_nodearraylist4
/* var nodearraylist4: nullable Object */;
843 val
* var4
/* : nullable Object */;
844 val
* var_nodearraylist3
/* var nodearraylist3: nullable Object */;
845 val
* var5
/* : nullable Object */;
846 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
847 val
* var6
/* : nullable Object */;
848 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
849 val
* var7
/* : Array[Object] */;
850 val
* var_listnode5
/* var listnode5: Array[Object] */;
851 val
* var_tatnode2
/* var tatnode2: nullable Object */;
852 short int var8
/* : Bool */;
855 val
* var_toparnode3
/* var toparnode3: nullable Object */;
856 short int var9
/* : Bool */;
859 val
* var_listnode4
/* var listnode4: nullable Object */;
860 short int var12
/* : Bool */;
863 val
* var15
/* : Array[Object] */;
864 val
* var_tcparnode6
/* var tcparnode6: nullable Object */;
865 short int var16
/* : Bool */;
868 val
* var19
/* : AAnnotations */;
869 val
* var_pannotationsnode1
/* var pannotationsnode1: nullable AAnnotations */;
870 long var20
/* : Int */;
871 long var21
/* : Int */;
876 var1
= parser_work__Parser__pop(var_p
);
878 var_nodearraylist6
= var1
;
880 var2
= parser_work__Parser__pop(var_p
);
882 var_nodearraylist5
= var2
;
884 var3
= parser_work__Parser__pop(var_p
);
886 var_nodearraylist4
= var3
;
888 var4
= parser_work__Parser__pop(var_p
);
890 var_nodearraylist3
= var4
;
892 var5
= parser_work__Parser__pop(var_p
);
894 var_nodearraylist2
= var5
;
896 var6
= parser_work__Parser__pop(var_p
);
898 var_nodearraylist1
= var6
;
899 var7
= NEW_array__Array(&type_array__Arraykernel__Object
);
901 ((void (*)(val
*))(var7
->class->vft
[COLOR_kernel__Object__init
]))(var7
) /* init on <var7:Array[Object]>*/;
903 var_listnode5
= var7
;
904 var_tatnode2
= var_nodearraylist1
;
905 /* <var_tatnode2:nullable Object> isa nullable TAt */
906 cltype
= type_nullable_parser_nodes__TAt
.color
;
907 idtype
= type_nullable_parser_nodes__TAt
.id
;
908 if(var_tatnode2
== NULL
) {
911 if(cltype
>= var_tatnode2
->type
->table_size
) {
914 var8
= var_tatnode2
->type
->type_table
[cltype
] == idtype
;
917 if (unlikely(!var8
)) {
918 PRINT_ERROR("Runtime error: %s", "Assert failed");
919 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9349);
922 var_toparnode3
= var_nodearraylist2
;
923 /* <var_toparnode3:nullable Object> isa nullable TOpar */
924 cltype10
= type_nullable_parser_nodes__TOpar
.color
;
925 idtype11
= type_nullable_parser_nodes__TOpar
.id
;
926 if(var_toparnode3
== NULL
) {
929 if(cltype10
>= var_toparnode3
->type
->table_size
) {
932 var9
= var_toparnode3
->type
->type_table
[cltype10
] == idtype11
;
935 if (unlikely(!var9
)) {
936 PRINT_ERROR("Runtime error: %s", "Assert failed");
937 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9351);
940 var_listnode4
= var_nodearraylist4
;
941 /* <var_listnode4:nullable Object> isa Array[Object] */
942 cltype13
= type_array__Arraykernel__Object
.color
;
943 idtype14
= type_array__Arraykernel__Object
.id
;
944 if(var_listnode4
== NULL
) {
947 if(cltype13
>= var_listnode4
->type
->table_size
) {
950 var12
= var_listnode4
->type
->type_table
[cltype13
] == idtype14
;
953 if (unlikely(!var12
)) {
954 PRINT_ERROR("Runtime error: %s", "Assert failed");
955 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9353);
959 var15
= parser_work__ReduceAction__concat(self
, var_listnode5
, var_listnode4
);
961 var_listnode5
= var15
;
962 var_tcparnode6
= var_nodearraylist6
;
963 /* <var_tcparnode6:nullable Object> isa nullable TCpar */
964 cltype17
= type_nullable_parser_nodes__TCpar
.color
;
965 idtype18
= type_nullable_parser_nodes__TCpar
.id
;
966 if(var_tcparnode6
== NULL
) {
969 if(cltype17
>= var_tcparnode6
->type
->table_size
) {
972 var16
= var_tcparnode6
->type
->type_table
[cltype17
] == idtype18
;
975 if (unlikely(!var16
)) {
976 PRINT_ERROR("Runtime error: %s", "Assert failed");
977 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9356);
980 var19
= NEW_parser_nodes__AAnnotations(&type_parser_nodes__AAnnotations
);
982 parser_prod__AAnnotations__init_aannotations(var19
, var_tatnode2
, var_toparnode3
, var_listnode5
, var_tcparnode6
); /* Direct call parser_prod#AAnnotations#init_aannotations on <var19:AAnnotations>*/
984 var_pannotationsnode1
= var19
;
985 var_node_list
= var_pannotationsnode1
;
986 var20
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction372> */
988 var21
= parser_work__Parser__go_to(var_p
, var20
);
991 parser_work__Parser__push(var_p
, var21
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
995 /* method parser#ReduceAction372#action for (self: Object, Parser) */
996 void VIRTUAL_parser__ReduceAction372__action(val
* self
, val
* p0
) {
997 parser__ReduceAction372__action(self
, p0
); /* Direct call parser#ReduceAction372#action on <self:Object(ReduceAction372)>*/
1000 /* method parser#ReduceAction373#action for (self: ReduceAction373, Parser) */
1001 void parser__ReduceAction373__action(val
* self
, val
* p0
) {
1002 val
* var_p
/* var p: Parser */;
1003 val
* var
/* : null */;
1004 val
* var_node_list
/* var node_list: nullable Object */;
1005 val
* var1
/* : nullable Object */;
1006 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
1007 val
* var_pannotationsnode1
/* var pannotationsnode1: nullable Object */;
1008 long var2
/* : Int */;
1009 long var3
/* : Int */;
1012 var_node_list
= var
;
1014 var1
= parser_work__Parser__pop(var_p
);
1016 var_nodearraylist1
= var1
;
1017 var_pannotationsnode1
= var_nodearraylist1
;
1018 var_node_list
= var_pannotationsnode1
;
1019 var2
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction373> */
1021 var3
= parser_work__Parser__go_to(var_p
, var2
);
1024 parser_work__Parser__push(var_p
, var3
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
1028 /* method parser#ReduceAction373#action for (self: Object, Parser) */
1029 void VIRTUAL_parser__ReduceAction373__action(val
* self
, val
* p0
) {
1030 parser__ReduceAction373__action(self
, p0
); /* Direct call parser#ReduceAction373#action on <self:Object(ReduceAction373)>*/
1033 /* method parser#ReduceAction375#action for (self: ReduceAction375, Parser) */
1034 void parser__ReduceAction375__action(val
* self
, val
* p0
) {
1035 val
* var_p
/* var p: Parser */;
1036 val
* var
/* : null */;
1037 val
* var_node_list
/* var node_list: nullable Object */;
1038 val
* var1
/* : nullable Object */;
1039 val
* var_nodearraylist4
/* var nodearraylist4: nullable Object */;
1040 val
* var2
/* : nullable Object */;
1041 val
* var_nodearraylist3
/* var nodearraylist3: nullable Object */;
1042 val
* var3
/* : nullable Object */;
1043 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
1044 val
* var4
/* : nullable Object */;
1045 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
1046 val
* var5
/* : Array[Object] */;
1047 val
* var_listnode7
/* var listnode7: Array[Object] */;
1048 val
* var_tkwredefnode3
/* var tkwredefnode3: nullable Object */;
1049 short int var6
/* : Bool */;
1052 val
* var_pvisibilitynode4
/* var pvisibilitynode4: nullable Object */;
1053 short int var7
/* : Bool */;
1056 val
* var_patidnode5
/* var patidnode5: nullable Object */;
1057 short int var10
/* : Bool */;
1060 val
* var_pannotationsnode9
/* var pannotationsnode9: nullable Object */;
1061 short int var13
/* : Bool */;
1064 val
* var16
/* : AAnnotation */;
1065 val
* var17
/* : null */;
1066 val
* var18
/* : null */;
1067 val
* var19
/* : null */;
1068 val
* var_pannotationnode1
/* var pannotationnode1: nullable AAnnotation */;
1069 long var20
/* : Int */;
1070 long var21
/* : Int */;
1073 var_node_list
= var
;
1075 var1
= parser_work__Parser__pop(var_p
);
1077 var_nodearraylist4
= var1
;
1079 var2
= parser_work__Parser__pop(var_p
);
1081 var_nodearraylist3
= var2
;
1083 var3
= parser_work__Parser__pop(var_p
);
1085 var_nodearraylist2
= var3
;
1087 var4
= parser_work__Parser__pop(var_p
);
1089 var_nodearraylist1
= var4
;
1090 var5
= NEW_array__Array(&type_array__Arraykernel__Object
);
1092 ((void (*)(val
*))(var5
->class->vft
[COLOR_kernel__Object__init
]))(var5
) /* init on <var5:Array[Object]>*/;
1094 var_listnode7
= var5
;
1095 var_tkwredefnode3
= var_nodearraylist1
;
1096 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
1097 cltype
= type_nullable_parser_nodes__TKwredef
.color
;
1098 idtype
= type_nullable_parser_nodes__TKwredef
.id
;
1099 if(var_tkwredefnode3
== NULL
) {
1102 if(cltype
>= var_tkwredefnode3
->type
->table_size
) {
1105 var6
= var_tkwredefnode3
->type
->type_table
[cltype
] == idtype
;
1108 if (unlikely(!var6
)) {
1109 PRINT_ERROR("Runtime error: %s", "Assert failed");
1110 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9389);
1113 var_pvisibilitynode4
= var_nodearraylist2
;
1114 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
1115 cltype8
= type_nullable_parser_nodes__AVisibility
.color
;
1116 idtype9
= type_nullable_parser_nodes__AVisibility
.id
;
1117 if(var_pvisibilitynode4
== NULL
) {
1120 if(cltype8
>= var_pvisibilitynode4
->type
->table_size
) {
1123 var7
= var_pvisibilitynode4
->type
->type_table
[cltype8
] == idtype9
;
1126 if (unlikely(!var7
)) {
1127 PRINT_ERROR("Runtime error: %s", "Assert failed");
1128 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9391);
1131 var_patidnode5
= var_nodearraylist3
;
1132 /* <var_patidnode5:nullable Object> isa nullable AAtid */
1133 cltype11
= type_nullable_parser_nodes__AAtid
.color
;
1134 idtype12
= type_nullable_parser_nodes__AAtid
.id
;
1135 if(var_patidnode5
== NULL
) {
1138 if(cltype11
>= var_patidnode5
->type
->table_size
) {
1141 var10
= var_patidnode5
->type
->type_table
[cltype11
] == idtype12
;
1144 if (unlikely(!var10
)) {
1145 PRINT_ERROR("Runtime error: %s", "Assert failed");
1146 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9393);
1149 var_pannotationsnode9
= var_nodearraylist4
;
1150 /* <var_pannotationsnode9:nullable Object> isa nullable AAnnotations */
1151 cltype14
= type_nullable_parser_nodes__AAnnotations
.color
;
1152 idtype15
= type_nullable_parser_nodes__AAnnotations
.id
;
1153 if(var_pannotationsnode9
== NULL
) {
1156 if(cltype14
>= var_pannotationsnode9
->type
->table_size
) {
1159 var13
= var_pannotationsnode9
->type
->type_table
[cltype14
] == idtype15
;
1162 if (unlikely(!var13
)) {
1163 PRINT_ERROR("Runtime error: %s", "Assert failed");
1164 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9395);
1167 var16
= NEW_parser_nodes__AAnnotation(&type_parser_nodes__AAnnotation
);
1172 parser_prod__AAnnotation__init_aannotation(var16
, var17
, var_tkwredefnode3
, var_pvisibilitynode4
, var_patidnode5
, var18
, var_listnode7
, var19
, var_pannotationsnode9
); /* Direct call parser_prod#AAnnotation#init_aannotation on <var16:AAnnotation>*/
1174 var_pannotationnode1
= var16
;
1175 var_node_list
= var_pannotationnode1
;
1176 var20
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction375> */
1178 var21
= parser_work__Parser__go_to(var_p
, var20
);
1181 parser_work__Parser__push(var_p
, var21
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
1185 /* method parser#ReduceAction375#action for (self: Object, Parser) */
1186 void VIRTUAL_parser__ReduceAction375__action(val
* self
, val
* p0
) {
1187 parser__ReduceAction375__action(self
, p0
); /* Direct call parser#ReduceAction375#action on <self:Object(ReduceAction375)>*/
1190 /* method parser#ReduceAction376#action for (self: ReduceAction376, Parser) */
1191 void parser__ReduceAction376__action(val
* self
, val
* p0
) {
1192 val
* var_p
/* var p: Parser */;
1193 val
* var
/* : null */;
1194 val
* var_node_list
/* var node_list: nullable Object */;
1195 val
* var1
/* : nullable Object */;
1196 val
* var_nodearraylist9
/* var nodearraylist9: nullable Object */;
1197 val
* var2
/* : nullable Object */;
1198 val
* var_nodearraylist8
/* var nodearraylist8: nullable Object */;
1199 val
* var3
/* : nullable Object */;
1200 val
* var_nodearraylist7
/* var nodearraylist7: nullable Object */;
1201 val
* var4
/* : nullable Object */;
1202 val
* var_nodearraylist6
/* var nodearraylist6: nullable Object */;
1203 val
* var5
/* : nullable Object */;
1204 val
* var_nodearraylist5
/* var nodearraylist5: nullable Object */;
1205 val
* var6
/* : nullable Object */;
1206 val
* var_nodearraylist4
/* var nodearraylist4: nullable Object */;
1207 val
* var7
/* : nullable Object */;
1208 val
* var_nodearraylist3
/* var nodearraylist3: nullable Object */;
1209 val
* var8
/* : nullable Object */;
1210 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
1211 val
* var9
/* : nullable Object */;
1212 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
1213 val
* var10
/* : Array[Object] */;
1214 val
* var_listnode8
/* var listnode8: Array[Object] */;
1215 val
* var_tkwredefnode3
/* var tkwredefnode3: nullable Object */;
1216 short int var11
/* : Bool */;
1219 val
* var_pvisibilitynode4
/* var pvisibilitynode4: nullable Object */;
1220 short int var12
/* : Bool */;
1223 val
* var_patidnode5
/* var patidnode5: nullable Object */;
1224 short int var15
/* : Bool */;
1227 val
* var_toparnode6
/* var toparnode6: nullable Object */;
1228 short int var18
/* : Bool */;
1231 val
* var_listnode7
/* var listnode7: nullable Object */;
1232 short int var21
/* : Bool */;
1235 val
* var24
/* : Array[Object] */;
1236 val
* var_tcparnode9
/* var tcparnode9: nullable Object */;
1237 short int var25
/* : Bool */;
1240 val
* var_pannotationsnode10
/* var pannotationsnode10: nullable Object */;
1241 short int var28
/* : Bool */;
1244 val
* var31
/* : AAnnotation */;
1245 val
* var32
/* : null */;
1246 val
* var_pannotationnode1
/* var pannotationnode1: nullable AAnnotation */;
1247 long var33
/* : Int */;
1248 long var34
/* : Int */;
1251 var_node_list
= var
;
1253 var1
= parser_work__Parser__pop(var_p
);
1255 var_nodearraylist9
= var1
;
1257 var2
= parser_work__Parser__pop(var_p
);
1259 var_nodearraylist8
= var2
;
1261 var3
= parser_work__Parser__pop(var_p
);
1263 var_nodearraylist7
= var3
;
1265 var4
= parser_work__Parser__pop(var_p
);
1267 var_nodearraylist6
= var4
;
1269 var5
= parser_work__Parser__pop(var_p
);
1271 var_nodearraylist5
= var5
;
1273 var6
= parser_work__Parser__pop(var_p
);
1275 var_nodearraylist4
= var6
;
1277 var7
= parser_work__Parser__pop(var_p
);
1279 var_nodearraylist3
= var7
;
1281 var8
= parser_work__Parser__pop(var_p
);
1283 var_nodearraylist2
= var8
;
1285 var9
= parser_work__Parser__pop(var_p
);
1287 var_nodearraylist1
= var9
;
1288 var10
= NEW_array__Array(&type_array__Arraykernel__Object
);
1290 ((void (*)(val
*))(var10
->class->vft
[COLOR_kernel__Object__init
]))(var10
) /* init on <var10:Array[Object]>*/;
1292 var_listnode8
= var10
;
1293 var_tkwredefnode3
= var_nodearraylist1
;
1294 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
1295 cltype
= type_nullable_parser_nodes__TKwredef
.color
;
1296 idtype
= type_nullable_parser_nodes__TKwredef
.id
;
1297 if(var_tkwredefnode3
== NULL
) {
1300 if(cltype
>= var_tkwredefnode3
->type
->table_size
) {
1303 var11
= var_tkwredefnode3
->type
->type_table
[cltype
] == idtype
;
1306 if (unlikely(!var11
)) {
1307 PRINT_ERROR("Runtime error: %s", "Assert failed");
1308 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9426);
1311 var_pvisibilitynode4
= var_nodearraylist2
;
1312 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
1313 cltype13
= type_nullable_parser_nodes__AVisibility
.color
;
1314 idtype14
= type_nullable_parser_nodes__AVisibility
.id
;
1315 if(var_pvisibilitynode4
== NULL
) {
1318 if(cltype13
>= var_pvisibilitynode4
->type
->table_size
) {
1321 var12
= var_pvisibilitynode4
->type
->type_table
[cltype13
] == idtype14
;
1324 if (unlikely(!var12
)) {
1325 PRINT_ERROR("Runtime error: %s", "Assert failed");
1326 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9428);
1329 var_patidnode5
= var_nodearraylist3
;
1330 /* <var_patidnode5:nullable Object> isa nullable AAtid */
1331 cltype16
= type_nullable_parser_nodes__AAtid
.color
;
1332 idtype17
= type_nullable_parser_nodes__AAtid
.id
;
1333 if(var_patidnode5
== NULL
) {
1336 if(cltype16
>= var_patidnode5
->type
->table_size
) {
1339 var15
= var_patidnode5
->type
->type_table
[cltype16
] == idtype17
;
1342 if (unlikely(!var15
)) {
1343 PRINT_ERROR("Runtime error: %s", "Assert failed");
1344 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9430);
1347 var_toparnode6
= var_nodearraylist4
;
1348 /* <var_toparnode6:nullable Object> isa nullable TOpar */
1349 cltype19
= type_nullable_parser_nodes__TOpar
.color
;
1350 idtype20
= type_nullable_parser_nodes__TOpar
.id
;
1351 if(var_toparnode6
== NULL
) {
1354 if(cltype19
>= var_toparnode6
->type
->table_size
) {
1357 var18
= var_toparnode6
->type
->type_table
[cltype19
] == idtype20
;
1360 if (unlikely(!var18
)) {
1361 PRINT_ERROR("Runtime error: %s", "Assert failed");
1362 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9432);
1365 var_listnode7
= var_nodearraylist6
;
1366 /* <var_listnode7:nullable Object> isa Array[Object] */
1367 cltype22
= type_array__Arraykernel__Object
.color
;
1368 idtype23
= type_array__Arraykernel__Object
.id
;
1369 if(var_listnode7
== NULL
) {
1372 if(cltype22
>= var_listnode7
->type
->table_size
) {
1375 var21
= var_listnode7
->type
->type_table
[cltype22
] == idtype23
;
1378 if (unlikely(!var21
)) {
1379 PRINT_ERROR("Runtime error: %s", "Assert failed");
1380 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9434);
1384 var24
= parser_work__ReduceAction__concat(self
, var_listnode8
, var_listnode7
);
1386 var_listnode8
= var24
;
1387 var_tcparnode9
= var_nodearraylist8
;
1388 /* <var_tcparnode9:nullable Object> isa nullable TCpar */
1389 cltype26
= type_nullable_parser_nodes__TCpar
.color
;
1390 idtype27
= type_nullable_parser_nodes__TCpar
.id
;
1391 if(var_tcparnode9
== NULL
) {
1394 if(cltype26
>= var_tcparnode9
->type
->table_size
) {
1397 var25
= var_tcparnode9
->type
->type_table
[cltype26
] == idtype27
;
1400 if (unlikely(!var25
)) {
1401 PRINT_ERROR("Runtime error: %s", "Assert failed");
1402 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9437);
1405 var_pannotationsnode10
= var_nodearraylist9
;
1406 /* <var_pannotationsnode10:nullable Object> isa nullable AAnnotations */
1407 cltype29
= type_nullable_parser_nodes__AAnnotations
.color
;
1408 idtype30
= type_nullable_parser_nodes__AAnnotations
.id
;
1409 if(var_pannotationsnode10
== NULL
) {
1412 if(cltype29
>= var_pannotationsnode10
->type
->table_size
) {
1415 var28
= var_pannotationsnode10
->type
->type_table
[cltype29
] == idtype30
;
1418 if (unlikely(!var28
)) {
1419 PRINT_ERROR("Runtime error: %s", "Assert failed");
1420 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9439);
1423 var31
= NEW_parser_nodes__AAnnotation(&type_parser_nodes__AAnnotation
);
1426 parser_prod__AAnnotation__init_aannotation(var31
, var32
, var_tkwredefnode3
, var_pvisibilitynode4
, var_patidnode5
, var_toparnode6
, var_listnode8
, var_tcparnode9
, var_pannotationsnode10
); /* Direct call parser_prod#AAnnotation#init_aannotation on <var31:AAnnotation>*/
1428 var_pannotationnode1
= var31
;
1429 var_node_list
= var_pannotationnode1
;
1430 var33
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction376> */
1432 var34
= parser_work__Parser__go_to(var_p
, var33
);
1435 parser_work__Parser__push(var_p
, var34
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
1439 /* method parser#ReduceAction376#action for (self: Object, Parser) */
1440 void VIRTUAL_parser__ReduceAction376__action(val
* self
, val
* p0
) {
1441 parser__ReduceAction376__action(self
, p0
); /* Direct call parser#ReduceAction376#action on <self:Object(ReduceAction376)>*/
1444 /* method parser#ReduceAction377#action for (self: ReduceAction377, Parser) */
1445 void parser__ReduceAction377__action(val
* self
, val
* p0
) {
1446 val
* var_p
/* var p: Parser */;
1447 val
* var
/* : null */;
1448 val
* var_node_list
/* var node_list: nullable Object */;
1449 val
* var1
/* : nullable Object */;
1450 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
1451 val
* var2
/* : Array[Object] */;
1452 val
* var_listnode5
/* var listnode5: Array[Object] */;
1453 val
* var_listnode4
/* var listnode4: nullable Object */;
1454 short int var3
/* : Bool */;
1457 val
* var4
/* : Array[Object] */;
1458 val
* var5
/* : AAnnotations */;
1459 val
* var6
/* : null */;
1460 val
* var7
/* : null */;
1461 val
* var8
/* : null */;
1462 val
* var_pannotationsnode1
/* var pannotationsnode1: nullable AAnnotations */;
1463 long var9
/* : Int */;
1464 long var10
/* : Int */;
1467 var_node_list
= var
;
1469 var1
= parser_work__Parser__pop(var_p
);
1471 var_nodearraylist1
= var1
;
1472 var2
= NEW_array__Array(&type_array__Arraykernel__Object
);
1474 ((void (*)(val
*))(var2
->class->vft
[COLOR_kernel__Object__init
]))(var2
) /* init on <var2:Array[Object]>*/;
1476 var_listnode5
= var2
;
1477 var_listnode4
= var_nodearraylist1
;
1478 /* <var_listnode4:nullable Object> isa Array[Object] */
1479 cltype
= type_array__Arraykernel__Object
.color
;
1480 idtype
= type_array__Arraykernel__Object
.id
;
1481 if(var_listnode4
== NULL
) {
1484 if(cltype
>= var_listnode4
->type
->table_size
) {
1487 var3
= var_listnode4
->type
->type_table
[cltype
] == idtype
;
1490 if (unlikely(!var3
)) {
1491 PRINT_ERROR("Runtime error: %s", "Assert failed");
1492 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9462);
1496 var4
= parser_work__ReduceAction__concat(self
, var_listnode5
, var_listnode4
);
1498 var_listnode5
= var4
;
1499 var5
= NEW_parser_nodes__AAnnotations(&type_parser_nodes__AAnnotations
);
1504 parser_prod__AAnnotations__init_aannotations(var5
, var6
, var7
, var_listnode5
, var8
); /* Direct call parser_prod#AAnnotations#init_aannotations on <var5:AAnnotations>*/
1506 var_pannotationsnode1
= var5
;
1507 var_node_list
= var_pannotationsnode1
;
1508 var9
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction377> */
1510 var10
= parser_work__Parser__go_to(var_p
, var9
);
1513 parser_work__Parser__push(var_p
, var10
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
1517 /* method parser#ReduceAction377#action for (self: Object, Parser) */
1518 void VIRTUAL_parser__ReduceAction377__action(val
* self
, val
* p0
) {
1519 parser__ReduceAction377__action(self
, p0
); /* Direct call parser#ReduceAction377#action on <self:Object(ReduceAction377)>*/
1522 /* method parser#ReduceAction378#action for (self: ReduceAction378, Parser) */
1523 void parser__ReduceAction378__action(val
* self
, val
* p0
) {
1524 val
* var_p
/* var p: Parser */;
1525 val
* var
/* : null */;
1526 val
* var_node_list
/* var node_list: nullable Object */;
1527 val
* var1
/* : nullable Object */;
1528 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
1529 val
* var2
/* : Array[Object] */;
1530 val
* var_listnode2
/* var listnode2: Array[Object] */;
1531 val
* var_pannotationnode1
/* var pannotationnode1: nullable Object */;
1532 val
* var3
/* : null */;
1533 short int var4
/* : Bool */;
1534 short int var5
/* : Bool */;
1535 long var6
/* : Int */;
1536 long var7
/* : Int */;
1539 var_node_list
= var
;
1541 var1
= parser_work__Parser__pop(var_p
);
1543 var_nodearraylist1
= var1
;
1544 var2
= NEW_array__Array(&type_array__Arraykernel__Object
);
1546 ((void (*)(val
*))(var2
->class->vft
[COLOR_kernel__Object__init
]))(var2
) /* init on <var2:Array[Object]>*/;
1548 var_listnode2
= var2
;
1549 var_pannotationnode1
= var_nodearraylist1
;
1551 if (var_pannotationnode1
== NULL
) {
1552 var4
= 0; /* is null */
1554 var4
= 1; /* arg is null and recv is not */
1557 var5
= ((short int (*)(val
*, val
*))(var_pannotationnode1
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_pannotationnode1
, var3
) /* != on <var_pannotationnode1:nullable Object>*/;
1562 array__Array__add(var_listnode2
, var_pannotationnode1
); /* Direct call array#Array#add on <var_listnode2:Array[Object]>*/
1566 var_node_list
= var_listnode2
;
1567 var6
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction378> */
1569 var7
= parser_work__Parser__go_to(var_p
, var6
);
1572 parser_work__Parser__push(var_p
, var7
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
1576 /* method parser#ReduceAction378#action for (self: Object, Parser) */
1577 void VIRTUAL_parser__ReduceAction378__action(val
* self
, val
* p0
) {
1578 parser__ReduceAction378__action(self
, p0
); /* Direct call parser#ReduceAction378#action on <self:Object(ReduceAction378)>*/
1581 /* method parser#ReduceAction379#action for (self: ReduceAction379, Parser) */
1582 void parser__ReduceAction379__action(val
* self
, val
* p0
) {
1583 val
* var_p
/* var p: Parser */;
1584 val
* var
/* : null */;
1585 val
* var_node_list
/* var node_list: nullable Object */;
1586 val
* var1
/* : nullable Object */;
1587 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
1588 val
* var2
/* : nullable Object */;
1589 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
1590 val
* var3
/* : Array[Object] */;
1591 val
* var_listnode3
/* var listnode3: Array[Object] */;
1592 val
* var_pannotationnode1
/* var pannotationnode1: nullable Object */;
1593 val
* var_listnode2
/* var listnode2: nullable Object */;
1594 short int var4
/* : Bool */;
1597 val
* var5
/* : null */;
1598 short int var6
/* : Bool */;
1599 short int var7
/* : Bool */;
1600 val
* var8
/* : Array[Object] */;
1601 long var9
/* : Int */;
1602 long var10
/* : Int */;
1605 var_node_list
= var
;
1607 var1
= parser_work__Parser__pop(var_p
);
1609 var_nodearraylist2
= var1
;
1611 var2
= parser_work__Parser__pop(var_p
);
1613 var_nodearraylist1
= var2
;
1614 var3
= NEW_array__Array(&type_array__Arraykernel__Object
);
1616 ((void (*)(val
*))(var3
->class->vft
[COLOR_kernel__Object__init
]))(var3
) /* init on <var3:Array[Object]>*/;
1618 var_listnode3
= var3
;
1619 var_pannotationnode1
= var_nodearraylist1
;
1620 var_listnode2
= var_nodearraylist2
;
1621 /* <var_listnode2:nullable Object> isa Array[Object] */
1622 cltype
= type_array__Arraykernel__Object
.color
;
1623 idtype
= type_array__Arraykernel__Object
.id
;
1624 if(var_listnode2
== NULL
) {
1627 if(cltype
>= var_listnode2
->type
->table_size
) {
1630 var4
= var_listnode2
->type
->type_table
[cltype
] == idtype
;
1633 if (unlikely(!var4
)) {
1634 PRINT_ERROR("Runtime error: %s", "Assert failed");
1635 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9499);
1639 if (var_pannotationnode1
== NULL
) {
1640 var6
= 0; /* is null */
1642 var6
= 1; /* arg is null and recv is not */
1645 var7
= ((short int (*)(val
*, val
*))(var_pannotationnode1
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_pannotationnode1
, var5
) /* != on <var_pannotationnode1:nullable Object>*/;
1650 array__Array__add(var_listnode3
, var_pannotationnode1
); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
1655 var8
= parser_work__ReduceAction__concat(self
, var_listnode3
, var_listnode2
);
1657 var_listnode3
= var8
;
1658 var_node_list
= var_listnode3
;
1659 var9
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction379> */
1661 var10
= parser_work__Parser__go_to(var_p
, var9
);
1664 parser_work__Parser__push(var_p
, var10
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
1668 /* method parser#ReduceAction379#action for (self: Object, Parser) */
1669 void VIRTUAL_parser__ReduceAction379__action(val
* self
, val
* p0
) {
1670 parser__ReduceAction379__action(self
, p0
); /* Direct call parser#ReduceAction379#action on <self:Object(ReduceAction379)>*/
1673 /* method parser#ReduceAction382#action for (self: ReduceAction382, Parser) */
1674 void parser__ReduceAction382__action(val
* self
, val
* p0
) {
1675 val
* var_p
/* var p: Parser */;
1676 val
* var
/* : null */;
1677 val
* var_node_list
/* var node_list: nullable Object */;
1678 val
* var1
/* : nullable Object */;
1679 val
* var_nodearraylist4
/* var nodearraylist4: nullable Object */;
1680 val
* var2
/* : nullable Object */;
1681 val
* var_nodearraylist3
/* var nodearraylist3: nullable Object */;
1682 val
* var3
/* : nullable Object */;
1683 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
1684 val
* var4
/* : nullable Object */;
1685 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
1686 val
* var5
/* : Array[Object] */;
1687 val
* var_listnode8
/* var listnode8: Array[Object] */;
1688 val
* var_tkwredefnode3
/* var tkwredefnode3: nullable Object */;
1689 short int var6
/* : Bool */;
1692 val
* var_pvisibilitynode4
/* var pvisibilitynode4: nullable Object */;
1693 short int var7
/* : Bool */;
1696 val
* var_patidnode5
/* var patidnode5: nullable Object */;
1697 short int var10
/* : Bool */;
1700 val
* var_pexprnode7
/* var pexprnode7: nullable Object */;
1701 short int var13
/* : Bool */;
1704 val
* var16
/* : null */;
1705 short int var17
/* : Bool */;
1706 short int var18
/* : Bool */;
1707 val
* var_other
/* var other: nullable Object */;
1708 short int var20
/* : Bool */;
1709 short int var21
/* : Bool */;
1710 short int var22
/* : Bool */;
1711 val
* var23
/* : AAnnotation */;
1712 val
* var24
/* : null */;
1713 val
* var25
/* : null */;
1714 val
* var26
/* : null */;
1715 val
* var27
/* : null */;
1716 val
* var_pannotationnode1
/* var pannotationnode1: nullable AAnnotation */;
1717 long var28
/* : Int */;
1718 long var29
/* : Int */;
1721 var_node_list
= var
;
1723 var1
= parser_work__Parser__pop(var_p
);
1725 var_nodearraylist4
= var1
;
1727 var2
= parser_work__Parser__pop(var_p
);
1729 var_nodearraylist3
= var2
;
1731 var3
= parser_work__Parser__pop(var_p
);
1733 var_nodearraylist2
= var3
;
1735 var4
= parser_work__Parser__pop(var_p
);
1737 var_nodearraylist1
= var4
;
1738 var5
= NEW_array__Array(&type_array__Arraykernel__Object
);
1740 ((void (*)(val
*))(var5
->class->vft
[COLOR_kernel__Object__init
]))(var5
) /* init on <var5:Array[Object]>*/;
1742 var_listnode8
= var5
;
1743 var_tkwredefnode3
= var_nodearraylist1
;
1744 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
1745 cltype
= type_nullable_parser_nodes__TKwredef
.color
;
1746 idtype
= type_nullable_parser_nodes__TKwredef
.id
;
1747 if(var_tkwredefnode3
== NULL
) {
1750 if(cltype
>= var_tkwredefnode3
->type
->table_size
) {
1753 var6
= var_tkwredefnode3
->type
->type_table
[cltype
] == idtype
;
1756 if (unlikely(!var6
)) {
1757 PRINT_ERROR("Runtime error: %s", "Assert failed");
1758 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9519);
1761 var_pvisibilitynode4
= var_nodearraylist2
;
1762 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
1763 cltype8
= type_nullable_parser_nodes__AVisibility
.color
;
1764 idtype9
= type_nullable_parser_nodes__AVisibility
.id
;
1765 if(var_pvisibilitynode4
== NULL
) {
1768 if(cltype8
>= var_pvisibilitynode4
->type
->table_size
) {
1771 var7
= var_pvisibilitynode4
->type
->type_table
[cltype8
] == idtype9
;
1774 if (unlikely(!var7
)) {
1775 PRINT_ERROR("Runtime error: %s", "Assert failed");
1776 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9521);
1779 var_patidnode5
= var_nodearraylist3
;
1780 /* <var_patidnode5:nullable Object> isa nullable AAtid */
1781 cltype11
= type_nullable_parser_nodes__AAtid
.color
;
1782 idtype12
= type_nullable_parser_nodes__AAtid
.id
;
1783 if(var_patidnode5
== NULL
) {
1786 if(cltype11
>= var_patidnode5
->type
->table_size
) {
1789 var10
= var_patidnode5
->type
->type_table
[cltype11
] == idtype12
;
1792 if (unlikely(!var10
)) {
1793 PRINT_ERROR("Runtime error: %s", "Assert failed");
1794 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9523);
1797 var_pexprnode7
= var_nodearraylist4
;
1798 /* <var_pexprnode7:nullable Object> isa nullable AExpr */
1799 cltype14
= type_nullable_parser_nodes__AExpr
.color
;
1800 idtype15
= type_nullable_parser_nodes__AExpr
.id
;
1801 if(var_pexprnode7
== NULL
) {
1804 if(cltype14
>= var_pexprnode7
->type
->table_size
) {
1807 var13
= var_pexprnode7
->type
->type_table
[cltype14
] == idtype15
;
1810 if (unlikely(!var13
)) {
1811 PRINT_ERROR("Runtime error: %s", "Assert failed");
1812 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9525);
1816 if (var_pexprnode7
== NULL
) {
1817 var17
= 0; /* is null */
1819 var17
= 1; /* arg is null and recv is not */
1822 { /* Inline kernel#Object#!= (var_pexprnode7,var16) on <var_pexprnode7:nullable Object(nullable AExpr)> */
1825 var21
= ((short int (*)(val
*, val
*))(var_pexprnode7
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_pexprnode7
, var_other
) /* == on <var_pexprnode7:nullable AExpr(AExpr)>*/;
1831 RET_LABEL19
:(void)0;
1837 array__Array__add(var_listnode8
, var_pexprnode7
); /* Direct call array#Array#add on <var_listnode8:Array[Object]>*/
1841 var23
= NEW_parser_nodes__AAnnotation(&type_parser_nodes__AAnnotation
);
1847 parser_prod__AAnnotation__init_aannotation(var23
, var24
, var_tkwredefnode3
, var_pvisibilitynode4
, var_patidnode5
, var25
, var_listnode8
, var26
, var27
); /* Direct call parser_prod#AAnnotation#init_aannotation on <var23:AAnnotation>*/
1849 var_pannotationnode1
= var23
;
1850 var_node_list
= var_pannotationnode1
;
1851 var28
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction382> */
1853 var29
= parser_work__Parser__go_to(var_p
, var28
);
1856 parser_work__Parser__push(var_p
, var29
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
1860 /* method parser#ReduceAction382#action for (self: Object, Parser) */
1861 void VIRTUAL_parser__ReduceAction382__action(val
* self
, val
* p0
) {
1862 parser__ReduceAction382__action(self
, p0
); /* Direct call parser#ReduceAction382#action on <self:Object(ReduceAction382)>*/
1865 /* method parser#ReduceAction384#action for (self: ReduceAction384, Parser) */
1866 void parser__ReduceAction384__action(val
* self
, val
* p0
) {
1867 val
* var_p
/* var p: Parser */;
1868 val
* var
/* : null */;
1869 val
* var_node_list
/* var node_list: nullable Object */;
1870 val
* var1
/* : nullable Object */;
1871 val
* var_nodearraylist3
/* var nodearraylist3: nullable Object */;
1872 val
* var2
/* : nullable Object */;
1873 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
1874 val
* var3
/* : nullable Object */;
1875 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
1876 val
* var_pannotationnode1
/* var pannotationnode1: nullable Object */;
1877 long var4
/* : Int */;
1878 long var5
/* : Int */;
1881 var_node_list
= var
;
1883 var1
= parser_work__Parser__pop(var_p
);
1885 var_nodearraylist3
= var1
;
1887 var2
= parser_work__Parser__pop(var_p
);
1889 var_nodearraylist2
= var2
;
1891 var3
= parser_work__Parser__pop(var_p
);
1893 var_nodearraylist1
= var3
;
1894 var_pannotationnode1
= var_nodearraylist3
;
1895 var_node_list
= var_pannotationnode1
;
1896 var4
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction384> */
1898 var5
= parser_work__Parser__go_to(var_p
, var4
);
1901 parser_work__Parser__push(var_p
, var5
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
1905 /* method parser#ReduceAction384#action for (self: Object, Parser) */
1906 void VIRTUAL_parser__ReduceAction384__action(val
* self
, val
* p0
) {
1907 parser__ReduceAction384__action(self
, p0
); /* Direct call parser#ReduceAction384#action on <self:Object(ReduceAction384)>*/
1910 /* method parser#ReduceAction386#action for (self: ReduceAction386, Parser) */
1911 void parser__ReduceAction386__action(val
* self
, val
* p0
) {
1912 val
* var_p
/* var p: Parser */;
1913 val
* var
/* : null */;
1914 val
* var_node_list
/* var node_list: nullable Object */;
1915 val
* var1
/* : nullable Object */;
1916 val
* var_nodearraylist5
/* var nodearraylist5: nullable Object */;
1917 val
* var2
/* : nullable Object */;
1918 val
* var_nodearraylist4
/* var nodearraylist4: nullable Object */;
1919 val
* var3
/* : nullable Object */;
1920 val
* var_nodearraylist3
/* var nodearraylist3: nullable Object */;
1921 val
* var4
/* : nullable Object */;
1922 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
1923 val
* var5
/* : nullable Object */;
1924 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
1925 val
* var6
/* : Array[Object] */;
1926 val
* var_listnode7
/* var listnode7: Array[Object] */;
1927 val
* var_pdocnode2
/* var pdocnode2: nullable Object */;
1928 short int var7
/* : Bool */;
1931 val
* var_tkwredefnode3
/* var tkwredefnode3: nullable Object */;
1932 short int var8
/* : Bool */;
1935 val
* var_pvisibilitynode4
/* var pvisibilitynode4: nullable Object */;
1936 short int var11
/* : Bool */;
1939 val
* var_patidnode5
/* var patidnode5: nullable Object */;
1940 short int var14
/* : Bool */;
1943 val
* var17
/* : AAnnotation */;
1944 val
* var18
/* : null */;
1945 val
* var19
/* : null */;
1946 val
* var20
/* : null */;
1947 val
* var_pannotationnode1
/* var pannotationnode1: nullable AAnnotation */;
1948 long var21
/* : Int */;
1949 long var22
/* : Int */;
1952 var_node_list
= var
;
1954 var1
= parser_work__Parser__pop(var_p
);
1956 var_nodearraylist5
= var1
;
1958 var2
= parser_work__Parser__pop(var_p
);
1960 var_nodearraylist4
= var2
;
1962 var3
= parser_work__Parser__pop(var_p
);
1964 var_nodearraylist3
= var3
;
1966 var4
= parser_work__Parser__pop(var_p
);
1968 var_nodearraylist2
= var4
;
1970 var5
= parser_work__Parser__pop(var_p
);
1972 var_nodearraylist1
= var5
;
1973 var6
= NEW_array__Array(&type_array__Arraykernel__Object
);
1975 ((void (*)(val
*))(var6
->class->vft
[COLOR_kernel__Object__init
]))(var6
) /* init on <var6:Array[Object]>*/;
1977 var_listnode7
= var6
;
1978 var_pdocnode2
= var_nodearraylist1
;
1979 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
1980 cltype
= type_nullable_parser_nodes__ADoc
.color
;
1981 idtype
= type_nullable_parser_nodes__ADoc
.id
;
1982 if(var_pdocnode2
== NULL
) {
1985 if(cltype
>= var_pdocnode2
->type
->table_size
) {
1988 var7
= var_pdocnode2
->type
->type_table
[cltype
] == idtype
;
1991 if (unlikely(!var7
)) {
1992 PRINT_ERROR("Runtime error: %s", "Assert failed");
1993 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9568);
1996 var_tkwredefnode3
= var_nodearraylist2
;
1997 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
1998 cltype9
= type_nullable_parser_nodes__TKwredef
.color
;
1999 idtype10
= type_nullable_parser_nodes__TKwredef
.id
;
2000 if(var_tkwredefnode3
== NULL
) {
2003 if(cltype9
>= var_tkwredefnode3
->type
->table_size
) {
2006 var8
= var_tkwredefnode3
->type
->type_table
[cltype9
] == idtype10
;
2009 if (unlikely(!var8
)) {
2010 PRINT_ERROR("Runtime error: %s", "Assert failed");
2011 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9570);
2014 var_pvisibilitynode4
= var_nodearraylist3
;
2015 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
2016 cltype12
= type_nullable_parser_nodes__AVisibility
.color
;
2017 idtype13
= type_nullable_parser_nodes__AVisibility
.id
;
2018 if(var_pvisibilitynode4
== NULL
) {
2021 if(cltype12
>= var_pvisibilitynode4
->type
->table_size
) {
2024 var11
= var_pvisibilitynode4
->type
->type_table
[cltype12
] == idtype13
;
2027 if (unlikely(!var11
)) {
2028 PRINT_ERROR("Runtime error: %s", "Assert failed");
2029 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9572);
2032 var_patidnode5
= var_nodearraylist4
;
2033 /* <var_patidnode5:nullable Object> isa nullable AAtid */
2034 cltype15
= type_nullable_parser_nodes__AAtid
.color
;
2035 idtype16
= type_nullable_parser_nodes__AAtid
.id
;
2036 if(var_patidnode5
== NULL
) {
2039 if(cltype15
>= var_patidnode5
->type
->table_size
) {
2042 var14
= var_patidnode5
->type
->type_table
[cltype15
] == idtype16
;
2045 if (unlikely(!var14
)) {
2046 PRINT_ERROR("Runtime error: %s", "Assert failed");
2047 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9574);
2050 var17
= NEW_parser_nodes__AAnnotation(&type_parser_nodes__AAnnotation
);
2055 parser_prod__AAnnotation__init_aannotation(var17
, var_pdocnode2
, var_tkwredefnode3
, var_pvisibilitynode4
, var_patidnode5
, var18
, var_listnode7
, var19
, var20
); /* Direct call parser_prod#AAnnotation#init_aannotation on <var17:AAnnotation>*/
2057 var_pannotationnode1
= var17
;
2058 var_node_list
= var_pannotationnode1
;
2059 var21
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction386> */
2061 var22
= parser_work__Parser__go_to(var_p
, var21
);
2064 parser_work__Parser__push(var_p
, var22
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
2068 /* method parser#ReduceAction386#action for (self: Object, Parser) */
2069 void VIRTUAL_parser__ReduceAction386__action(val
* self
, val
* p0
) {
2070 parser__ReduceAction386__action(self
, p0
); /* Direct call parser#ReduceAction386#action on <self:Object(ReduceAction386)>*/
2073 /* method parser#ReduceAction387#action for (self: ReduceAction387, Parser) */
2074 void parser__ReduceAction387__action(val
* self
, val
* p0
) {
2075 val
* var_p
/* var p: Parser */;
2076 val
* var
/* : null */;
2077 val
* var_node_list
/* var node_list: nullable Object */;
2078 val
* var1
/* : nullable Object */;
2079 val
* var_nodearraylist6
/* var nodearraylist6: nullable Object */;
2080 val
* var2
/* : nullable Object */;
2081 val
* var_nodearraylist5
/* var nodearraylist5: nullable Object */;
2082 val
* var3
/* : nullable Object */;
2083 val
* var_nodearraylist4
/* var nodearraylist4: nullable Object */;
2084 val
* var4
/* : nullable Object */;
2085 val
* var_nodearraylist3
/* var nodearraylist3: nullable Object */;
2086 val
* var5
/* : nullable Object */;
2087 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
2088 val
* var6
/* : nullable Object */;
2089 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
2090 val
* var7
/* : Array[Object] */;
2091 val
* var_listnode7
/* var listnode7: Array[Object] */;
2092 val
* var_pdocnode2
/* var pdocnode2: nullable Object */;
2093 short int var8
/* : Bool */;
2096 val
* var_tkwredefnode3
/* var tkwredefnode3: nullable Object */;
2097 short int var9
/* : Bool */;
2100 val
* var_pvisibilitynode4
/* var pvisibilitynode4: nullable Object */;
2101 short int var12
/* : Bool */;
2104 val
* var_patidnode5
/* var patidnode5: nullable Object */;
2105 short int var15
/* : Bool */;
2108 val
* var_pannotationsnode9
/* var pannotationsnode9: nullable Object */;
2109 short int var18
/* : Bool */;
2112 val
* var21
/* : AAnnotation */;
2113 val
* var22
/* : null */;
2114 val
* var23
/* : null */;
2115 val
* var_pannotationnode1
/* var pannotationnode1: nullable AAnnotation */;
2116 long var24
/* : Int */;
2117 long var25
/* : Int */;
2120 var_node_list
= var
;
2122 var1
= parser_work__Parser__pop(var_p
);
2124 var_nodearraylist6
= var1
;
2126 var2
= parser_work__Parser__pop(var_p
);
2128 var_nodearraylist5
= var2
;
2130 var3
= parser_work__Parser__pop(var_p
);
2132 var_nodearraylist4
= var3
;
2134 var4
= parser_work__Parser__pop(var_p
);
2136 var_nodearraylist3
= var4
;
2138 var5
= parser_work__Parser__pop(var_p
);
2140 var_nodearraylist2
= var5
;
2142 var6
= parser_work__Parser__pop(var_p
);
2144 var_nodearraylist1
= var6
;
2145 var7
= NEW_array__Array(&type_array__Arraykernel__Object
);
2147 ((void (*)(val
*))(var7
->class->vft
[COLOR_kernel__Object__init
]))(var7
) /* init on <var7:Array[Object]>*/;
2149 var_listnode7
= var7
;
2150 var_pdocnode2
= var_nodearraylist1
;
2151 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
2152 cltype
= type_nullable_parser_nodes__ADoc
.color
;
2153 idtype
= type_nullable_parser_nodes__ADoc
.id
;
2154 if(var_pdocnode2
== NULL
) {
2157 if(cltype
>= var_pdocnode2
->type
->table_size
) {
2160 var8
= var_pdocnode2
->type
->type_table
[cltype
] == idtype
;
2163 if (unlikely(!var8
)) {
2164 PRINT_ERROR("Runtime error: %s", "Assert failed");
2165 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9602);
2168 var_tkwredefnode3
= var_nodearraylist2
;
2169 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
2170 cltype10
= type_nullable_parser_nodes__TKwredef
.color
;
2171 idtype11
= type_nullable_parser_nodes__TKwredef
.id
;
2172 if(var_tkwredefnode3
== NULL
) {
2175 if(cltype10
>= var_tkwredefnode3
->type
->table_size
) {
2178 var9
= var_tkwredefnode3
->type
->type_table
[cltype10
] == idtype11
;
2181 if (unlikely(!var9
)) {
2182 PRINT_ERROR("Runtime error: %s", "Assert failed");
2183 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9604);
2186 var_pvisibilitynode4
= var_nodearraylist3
;
2187 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
2188 cltype13
= type_nullable_parser_nodes__AVisibility
.color
;
2189 idtype14
= type_nullable_parser_nodes__AVisibility
.id
;
2190 if(var_pvisibilitynode4
== NULL
) {
2193 if(cltype13
>= var_pvisibilitynode4
->type
->table_size
) {
2196 var12
= var_pvisibilitynode4
->type
->type_table
[cltype13
] == idtype14
;
2199 if (unlikely(!var12
)) {
2200 PRINT_ERROR("Runtime error: %s", "Assert failed");
2201 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9606);
2204 var_patidnode5
= var_nodearraylist4
;
2205 /* <var_patidnode5:nullable Object> isa nullable AAtid */
2206 cltype16
= type_nullable_parser_nodes__AAtid
.color
;
2207 idtype17
= type_nullable_parser_nodes__AAtid
.id
;
2208 if(var_patidnode5
== NULL
) {
2211 if(cltype16
>= var_patidnode5
->type
->table_size
) {
2214 var15
= var_patidnode5
->type
->type_table
[cltype16
] == idtype17
;
2217 if (unlikely(!var15
)) {
2218 PRINT_ERROR("Runtime error: %s", "Assert failed");
2219 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9608);
2222 var_pannotationsnode9
= var_nodearraylist5
;
2223 /* <var_pannotationsnode9:nullable Object> isa nullable AAnnotations */
2224 cltype19
= type_nullable_parser_nodes__AAnnotations
.color
;
2225 idtype20
= type_nullable_parser_nodes__AAnnotations
.id
;
2226 if(var_pannotationsnode9
== NULL
) {
2229 if(cltype19
>= var_pannotationsnode9
->type
->table_size
) {
2232 var18
= var_pannotationsnode9
->type
->type_table
[cltype19
] == idtype20
;
2235 if (unlikely(!var18
)) {
2236 PRINT_ERROR("Runtime error: %s", "Assert failed");
2237 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9610);
2240 var21
= NEW_parser_nodes__AAnnotation(&type_parser_nodes__AAnnotation
);
2244 parser_prod__AAnnotation__init_aannotation(var21
, var_pdocnode2
, var_tkwredefnode3
, var_pvisibilitynode4
, var_patidnode5
, var22
, var_listnode7
, var23
, var_pannotationsnode9
); /* Direct call parser_prod#AAnnotation#init_aannotation on <var21:AAnnotation>*/
2246 var_pannotationnode1
= var21
;
2247 var_node_list
= var_pannotationnode1
;
2248 var24
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction387> */
2250 var25
= parser_work__Parser__go_to(var_p
, var24
);
2253 parser_work__Parser__push(var_p
, var25
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
2257 /* method parser#ReduceAction387#action for (self: Object, Parser) */
2258 void VIRTUAL_parser__ReduceAction387__action(val
* self
, val
* p0
) {
2259 parser__ReduceAction387__action(self
, p0
); /* Direct call parser#ReduceAction387#action on <self:Object(ReduceAction387)>*/
2262 /* method parser#ReduceAction388#action for (self: ReduceAction388, Parser) */
2263 void parser__ReduceAction388__action(val
* self
, val
* p0
) {
2264 val
* var_p
/* var p: Parser */;
2265 val
* var
/* : null */;
2266 val
* var_node_list
/* var node_list: nullable Object */;
2267 val
* var1
/* : nullable Object */;
2268 val
* var_nodearraylist9
/* var nodearraylist9: nullable Object */;
2269 val
* var2
/* : nullable Object */;
2270 val
* var_nodearraylist8
/* var nodearraylist8: nullable Object */;
2271 val
* var3
/* : nullable Object */;
2272 val
* var_nodearraylist7
/* var nodearraylist7: nullable Object */;
2273 val
* var4
/* : nullable Object */;
2274 val
* var_nodearraylist6
/* var nodearraylist6: nullable Object */;
2275 val
* var5
/* : nullable Object */;
2276 val
* var_nodearraylist5
/* var nodearraylist5: nullable Object */;
2277 val
* var6
/* : nullable Object */;
2278 val
* var_nodearraylist4
/* var nodearraylist4: nullable Object */;
2279 val
* var7
/* : nullable Object */;
2280 val
* var_nodearraylist3
/* var nodearraylist3: nullable Object */;
2281 val
* var8
/* : nullable Object */;
2282 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
2283 val
* var9
/* : nullable Object */;
2284 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
2285 val
* var10
/* : Array[Object] */;
2286 val
* var_listnode8
/* var listnode8: Array[Object] */;
2287 val
* var_pdocnode2
/* var pdocnode2: nullable Object */;
2288 short int var11
/* : Bool */;
2291 val
* var_tkwredefnode3
/* var tkwredefnode3: nullable Object */;
2292 short int var12
/* : Bool */;
2295 val
* var_pvisibilitynode4
/* var pvisibilitynode4: nullable Object */;
2296 short int var15
/* : Bool */;
2299 val
* var_patidnode5
/* var patidnode5: nullable Object */;
2300 short int var18
/* : Bool */;
2303 val
* var_toparnode6
/* var toparnode6: nullable Object */;
2304 short int var21
/* : Bool */;
2307 val
* var_listnode7
/* var listnode7: nullable Object */;
2308 short int var24
/* : Bool */;
2311 val
* var27
/* : Array[Object] */;
2312 val
* var_tcparnode9
/* var tcparnode9: nullable Object */;
2313 short int var28
/* : Bool */;
2316 val
* var31
/* : AAnnotation */;
2317 val
* var32
/* : null */;
2318 val
* var_pannotationnode1
/* var pannotationnode1: nullable AAnnotation */;
2319 long var33
/* : Int */;
2320 long var34
/* : Int */;
2323 var_node_list
= var
;
2325 var1
= parser_work__Parser__pop(var_p
);
2327 var_nodearraylist9
= var1
;
2329 var2
= parser_work__Parser__pop(var_p
);
2331 var_nodearraylist8
= var2
;
2333 var3
= parser_work__Parser__pop(var_p
);
2335 var_nodearraylist7
= var3
;
2337 var4
= parser_work__Parser__pop(var_p
);
2339 var_nodearraylist6
= var4
;
2341 var5
= parser_work__Parser__pop(var_p
);
2343 var_nodearraylist5
= var5
;
2345 var6
= parser_work__Parser__pop(var_p
);
2347 var_nodearraylist4
= var6
;
2349 var7
= parser_work__Parser__pop(var_p
);
2351 var_nodearraylist3
= var7
;
2353 var8
= parser_work__Parser__pop(var_p
);
2355 var_nodearraylist2
= var8
;
2357 var9
= parser_work__Parser__pop(var_p
);
2359 var_nodearraylist1
= var9
;
2360 var10
= NEW_array__Array(&type_array__Arraykernel__Object
);
2362 ((void (*)(val
*))(var10
->class->vft
[COLOR_kernel__Object__init
]))(var10
) /* init on <var10:Array[Object]>*/;
2364 var_listnode8
= var10
;
2365 var_pdocnode2
= var_nodearraylist1
;
2366 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
2367 cltype
= type_nullable_parser_nodes__ADoc
.color
;
2368 idtype
= type_nullable_parser_nodes__ADoc
.id
;
2369 if(var_pdocnode2
== NULL
) {
2372 if(cltype
>= var_pdocnode2
->type
->table_size
) {
2375 var11
= var_pdocnode2
->type
->type_table
[cltype
] == idtype
;
2378 if (unlikely(!var11
)) {
2379 PRINT_ERROR("Runtime error: %s", "Assert failed");
2380 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9641);
2383 var_tkwredefnode3
= var_nodearraylist2
;
2384 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
2385 cltype13
= type_nullable_parser_nodes__TKwredef
.color
;
2386 idtype14
= type_nullable_parser_nodes__TKwredef
.id
;
2387 if(var_tkwredefnode3
== NULL
) {
2390 if(cltype13
>= var_tkwredefnode3
->type
->table_size
) {
2393 var12
= var_tkwredefnode3
->type
->type_table
[cltype13
] == idtype14
;
2396 if (unlikely(!var12
)) {
2397 PRINT_ERROR("Runtime error: %s", "Assert failed");
2398 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9643);
2401 var_pvisibilitynode4
= var_nodearraylist3
;
2402 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
2403 cltype16
= type_nullable_parser_nodes__AVisibility
.color
;
2404 idtype17
= type_nullable_parser_nodes__AVisibility
.id
;
2405 if(var_pvisibilitynode4
== NULL
) {
2408 if(cltype16
>= var_pvisibilitynode4
->type
->table_size
) {
2411 var15
= var_pvisibilitynode4
->type
->type_table
[cltype16
] == idtype17
;
2414 if (unlikely(!var15
)) {
2415 PRINT_ERROR("Runtime error: %s", "Assert failed");
2416 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9645);
2419 var_patidnode5
= var_nodearraylist4
;
2420 /* <var_patidnode5:nullable Object> isa nullable AAtid */
2421 cltype19
= type_nullable_parser_nodes__AAtid
.color
;
2422 idtype20
= type_nullable_parser_nodes__AAtid
.id
;
2423 if(var_patidnode5
== NULL
) {
2426 if(cltype19
>= var_patidnode5
->type
->table_size
) {
2429 var18
= var_patidnode5
->type
->type_table
[cltype19
] == idtype20
;
2432 if (unlikely(!var18
)) {
2433 PRINT_ERROR("Runtime error: %s", "Assert failed");
2434 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9647);
2437 var_toparnode6
= var_nodearraylist5
;
2438 /* <var_toparnode6:nullable Object> isa nullable TOpar */
2439 cltype22
= type_nullable_parser_nodes__TOpar
.color
;
2440 idtype23
= type_nullable_parser_nodes__TOpar
.id
;
2441 if(var_toparnode6
== NULL
) {
2444 if(cltype22
>= var_toparnode6
->type
->table_size
) {
2447 var21
= var_toparnode6
->type
->type_table
[cltype22
] == idtype23
;
2450 if (unlikely(!var21
)) {
2451 PRINT_ERROR("Runtime error: %s", "Assert failed");
2452 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9649);
2455 var_listnode7
= var_nodearraylist7
;
2456 /* <var_listnode7:nullable Object> isa Array[Object] */
2457 cltype25
= type_array__Arraykernel__Object
.color
;
2458 idtype26
= type_array__Arraykernel__Object
.id
;
2459 if(var_listnode7
== NULL
) {
2462 if(cltype25
>= var_listnode7
->type
->table_size
) {
2465 var24
= var_listnode7
->type
->type_table
[cltype25
] == idtype26
;
2468 if (unlikely(!var24
)) {
2469 PRINT_ERROR("Runtime error: %s", "Assert failed");
2470 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9651);
2474 var27
= parser_work__ReduceAction__concat(self
, var_listnode8
, var_listnode7
);
2476 var_listnode8
= var27
;
2477 var_tcparnode9
= var_nodearraylist8
;
2478 /* <var_tcparnode9:nullable Object> isa nullable TCpar */
2479 cltype29
= type_nullable_parser_nodes__TCpar
.color
;
2480 idtype30
= type_nullable_parser_nodes__TCpar
.id
;
2481 if(var_tcparnode9
== NULL
) {
2484 if(cltype29
>= var_tcparnode9
->type
->table_size
) {
2487 var28
= var_tcparnode9
->type
->type_table
[cltype29
] == idtype30
;
2490 if (unlikely(!var28
)) {
2491 PRINT_ERROR("Runtime error: %s", "Assert failed");
2492 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9654);
2495 var31
= NEW_parser_nodes__AAnnotation(&type_parser_nodes__AAnnotation
);
2498 parser_prod__AAnnotation__init_aannotation(var31
, var_pdocnode2
, var_tkwredefnode3
, var_pvisibilitynode4
, var_patidnode5
, var_toparnode6
, var_listnode8
, var_tcparnode9
, var32
); /* Direct call parser_prod#AAnnotation#init_aannotation on <var31:AAnnotation>*/
2500 var_pannotationnode1
= var31
;
2501 var_node_list
= var_pannotationnode1
;
2502 var33
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction388> */
2504 var34
= parser_work__Parser__go_to(var_p
, var33
);
2507 parser_work__Parser__push(var_p
, var34
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
2511 /* method parser#ReduceAction388#action for (self: Object, Parser) */
2512 void VIRTUAL_parser__ReduceAction388__action(val
* self
, val
* p0
) {
2513 parser__ReduceAction388__action(self
, p0
); /* Direct call parser#ReduceAction388#action on <self:Object(ReduceAction388)>*/
2516 /* method parser#ReduceAction389#action for (self: ReduceAction389, Parser) */
2517 void parser__ReduceAction389__action(val
* self
, val
* p0
) {
2518 val
* var_p
/* var p: Parser */;
2519 val
* var
/* : null */;
2520 val
* var_node_list
/* var node_list: nullable Object */;
2521 val
* var1
/* : nullable Object */;
2522 val
* var_nodearraylist10
/* var nodearraylist10: nullable Object */;
2523 val
* var2
/* : nullable Object */;
2524 val
* var_nodearraylist9
/* var nodearraylist9: nullable Object */;
2525 val
* var3
/* : nullable Object */;
2526 val
* var_nodearraylist8
/* var nodearraylist8: nullable Object */;
2527 val
* var4
/* : nullable Object */;
2528 val
* var_nodearraylist7
/* var nodearraylist7: nullable Object */;
2529 val
* var5
/* : nullable Object */;
2530 val
* var_nodearraylist6
/* var nodearraylist6: nullable Object */;
2531 val
* var6
/* : nullable Object */;
2532 val
* var_nodearraylist5
/* var nodearraylist5: nullable Object */;
2533 val
* var7
/* : nullable Object */;
2534 val
* var_nodearraylist4
/* var nodearraylist4: nullable Object */;
2535 val
* var8
/* : nullable Object */;
2536 val
* var_nodearraylist3
/* var nodearraylist3: nullable Object */;
2537 val
* var9
/* : nullable Object */;
2538 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
2539 val
* var10
/* : nullable Object */;
2540 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
2541 val
* var11
/* : Array[Object] */;
2542 val
* var_listnode8
/* var listnode8: Array[Object] */;
2543 val
* var_pdocnode2
/* var pdocnode2: nullable Object */;
2544 short int var12
/* : Bool */;
2547 val
* var_tkwredefnode3
/* var tkwredefnode3: nullable Object */;
2548 short int var13
/* : Bool */;
2551 val
* var_pvisibilitynode4
/* var pvisibilitynode4: nullable Object */;
2552 short int var16
/* : Bool */;
2555 val
* var_patidnode5
/* var patidnode5: nullable Object */;
2556 short int var19
/* : Bool */;
2559 val
* var_toparnode6
/* var toparnode6: nullable Object */;
2560 short int var22
/* : Bool */;
2563 val
* var_listnode7
/* var listnode7: nullable Object */;
2564 short int var25
/* : Bool */;
2567 val
* var28
/* : Array[Object] */;
2568 val
* var_tcparnode9
/* var tcparnode9: nullable Object */;
2569 short int var29
/* : Bool */;
2572 val
* var_pannotationsnode10
/* var pannotationsnode10: nullable Object */;
2573 short int var32
/* : Bool */;
2576 val
* var35
/* : AAnnotation */;
2577 val
* var_pannotationnode1
/* var pannotationnode1: nullable AAnnotation */;
2578 long var36
/* : Int */;
2579 long var37
/* : Int */;
2582 var_node_list
= var
;
2584 var1
= parser_work__Parser__pop(var_p
);
2586 var_nodearraylist10
= var1
;
2588 var2
= parser_work__Parser__pop(var_p
);
2590 var_nodearraylist9
= var2
;
2592 var3
= parser_work__Parser__pop(var_p
);
2594 var_nodearraylist8
= var3
;
2596 var4
= parser_work__Parser__pop(var_p
);
2598 var_nodearraylist7
= var4
;
2600 var5
= parser_work__Parser__pop(var_p
);
2602 var_nodearraylist6
= var5
;
2604 var6
= parser_work__Parser__pop(var_p
);
2606 var_nodearraylist5
= var6
;
2608 var7
= parser_work__Parser__pop(var_p
);
2610 var_nodearraylist4
= var7
;
2612 var8
= parser_work__Parser__pop(var_p
);
2614 var_nodearraylist3
= var8
;
2616 var9
= parser_work__Parser__pop(var_p
);
2618 var_nodearraylist2
= var9
;
2620 var10
= parser_work__Parser__pop(var_p
);
2622 var_nodearraylist1
= var10
;
2623 var11
= NEW_array__Array(&type_array__Arraykernel__Object
);
2625 ((void (*)(val
*))(var11
->class->vft
[COLOR_kernel__Object__init
]))(var11
) /* init on <var11:Array[Object]>*/;
2627 var_listnode8
= var11
;
2628 var_pdocnode2
= var_nodearraylist1
;
2629 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
2630 cltype
= type_nullable_parser_nodes__ADoc
.color
;
2631 idtype
= type_nullable_parser_nodes__ADoc
.id
;
2632 if(var_pdocnode2
== NULL
) {
2635 if(cltype
>= var_pdocnode2
->type
->table_size
) {
2638 var12
= var_pdocnode2
->type
->type_table
[cltype
] == idtype
;
2641 if (unlikely(!var12
)) {
2642 PRINT_ERROR("Runtime error: %s", "Assert failed");
2643 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9686);
2646 var_tkwredefnode3
= var_nodearraylist2
;
2647 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
2648 cltype14
= type_nullable_parser_nodes__TKwredef
.color
;
2649 idtype15
= type_nullable_parser_nodes__TKwredef
.id
;
2650 if(var_tkwredefnode3
== NULL
) {
2653 if(cltype14
>= var_tkwredefnode3
->type
->table_size
) {
2656 var13
= var_tkwredefnode3
->type
->type_table
[cltype14
] == idtype15
;
2659 if (unlikely(!var13
)) {
2660 PRINT_ERROR("Runtime error: %s", "Assert failed");
2661 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9688);
2664 var_pvisibilitynode4
= var_nodearraylist3
;
2665 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
2666 cltype17
= type_nullable_parser_nodes__AVisibility
.color
;
2667 idtype18
= type_nullable_parser_nodes__AVisibility
.id
;
2668 if(var_pvisibilitynode4
== NULL
) {
2671 if(cltype17
>= var_pvisibilitynode4
->type
->table_size
) {
2674 var16
= var_pvisibilitynode4
->type
->type_table
[cltype17
] == idtype18
;
2677 if (unlikely(!var16
)) {
2678 PRINT_ERROR("Runtime error: %s", "Assert failed");
2679 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9690);
2682 var_patidnode5
= var_nodearraylist4
;
2683 /* <var_patidnode5:nullable Object> isa nullable AAtid */
2684 cltype20
= type_nullable_parser_nodes__AAtid
.color
;
2685 idtype21
= type_nullable_parser_nodes__AAtid
.id
;
2686 if(var_patidnode5
== NULL
) {
2689 if(cltype20
>= var_patidnode5
->type
->table_size
) {
2692 var19
= var_patidnode5
->type
->type_table
[cltype20
] == idtype21
;
2695 if (unlikely(!var19
)) {
2696 PRINT_ERROR("Runtime error: %s", "Assert failed");
2697 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9692);
2700 var_toparnode6
= var_nodearraylist5
;
2701 /* <var_toparnode6:nullable Object> isa nullable TOpar */
2702 cltype23
= type_nullable_parser_nodes__TOpar
.color
;
2703 idtype24
= type_nullable_parser_nodes__TOpar
.id
;
2704 if(var_toparnode6
== NULL
) {
2707 if(cltype23
>= var_toparnode6
->type
->table_size
) {
2710 var22
= var_toparnode6
->type
->type_table
[cltype23
] == idtype24
;
2713 if (unlikely(!var22
)) {
2714 PRINT_ERROR("Runtime error: %s", "Assert failed");
2715 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9694);
2718 var_listnode7
= var_nodearraylist7
;
2719 /* <var_listnode7:nullable Object> isa Array[Object] */
2720 cltype26
= type_array__Arraykernel__Object
.color
;
2721 idtype27
= type_array__Arraykernel__Object
.id
;
2722 if(var_listnode7
== NULL
) {
2725 if(cltype26
>= var_listnode7
->type
->table_size
) {
2728 var25
= var_listnode7
->type
->type_table
[cltype26
] == idtype27
;
2731 if (unlikely(!var25
)) {
2732 PRINT_ERROR("Runtime error: %s", "Assert failed");
2733 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9696);
2737 var28
= parser_work__ReduceAction__concat(self
, var_listnode8
, var_listnode7
);
2739 var_listnode8
= var28
;
2740 var_tcparnode9
= var_nodearraylist8
;
2741 /* <var_tcparnode9:nullable Object> isa nullable TCpar */
2742 cltype30
= type_nullable_parser_nodes__TCpar
.color
;
2743 idtype31
= type_nullable_parser_nodes__TCpar
.id
;
2744 if(var_tcparnode9
== NULL
) {
2747 if(cltype30
>= var_tcparnode9
->type
->table_size
) {
2750 var29
= var_tcparnode9
->type
->type_table
[cltype30
] == idtype31
;
2753 if (unlikely(!var29
)) {
2754 PRINT_ERROR("Runtime error: %s", "Assert failed");
2755 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9699);
2758 var_pannotationsnode10
= var_nodearraylist9
;
2759 /* <var_pannotationsnode10:nullable Object> isa nullable AAnnotations */
2760 cltype33
= type_nullable_parser_nodes__AAnnotations
.color
;
2761 idtype34
= type_nullable_parser_nodes__AAnnotations
.id
;
2762 if(var_pannotationsnode10
== NULL
) {
2765 if(cltype33
>= var_pannotationsnode10
->type
->table_size
) {
2768 var32
= var_pannotationsnode10
->type
->type_table
[cltype33
] == idtype34
;
2771 if (unlikely(!var32
)) {
2772 PRINT_ERROR("Runtime error: %s", "Assert failed");
2773 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9701);
2776 var35
= NEW_parser_nodes__AAnnotation(&type_parser_nodes__AAnnotation
);
2778 parser_prod__AAnnotation__init_aannotation(var35
, var_pdocnode2
, var_tkwredefnode3
, var_pvisibilitynode4
, var_patidnode5
, var_toparnode6
, var_listnode8
, var_tcparnode9
, var_pannotationsnode10
); /* Direct call parser_prod#AAnnotation#init_aannotation on <var35:AAnnotation>*/
2780 var_pannotationnode1
= var35
;
2781 var_node_list
= var_pannotationnode1
;
2782 var36
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction389> */
2784 var37
= parser_work__Parser__go_to(var_p
, var36
);
2787 parser_work__Parser__push(var_p
, var37
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
2791 /* method parser#ReduceAction389#action for (self: Object, Parser) */
2792 void VIRTUAL_parser__ReduceAction389__action(val
* self
, val
* p0
) {
2793 parser__ReduceAction389__action(self
, p0
); /* Direct call parser#ReduceAction389#action on <self:Object(ReduceAction389)>*/
2796 /* method parser#ReduceAction390#action for (self: ReduceAction390, Parser) */
2797 void parser__ReduceAction390__action(val
* self
, val
* p0
) {
2798 val
* var_p
/* var p: Parser */;
2799 val
* var
/* : null */;
2800 val
* var_node_list
/* var node_list: nullable Object */;
2801 val
* var1
/* : nullable Object */;
2802 val
* var_nodearraylist6
/* var nodearraylist6: nullable Object */;
2803 val
* var2
/* : nullable Object */;
2804 val
* var_nodearraylist5
/* var nodearraylist5: nullable Object */;
2805 val
* var3
/* : nullable Object */;
2806 val
* var_nodearraylist4
/* var nodearraylist4: nullable Object */;
2807 val
* var4
/* : nullable Object */;
2808 val
* var_nodearraylist3
/* var nodearraylist3: nullable Object */;
2809 val
* var5
/* : nullable Object */;
2810 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
2811 val
* var6
/* : nullable Object */;
2812 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
2813 val
* var7
/* : Array[Object] */;
2814 val
* var_listnode8
/* var listnode8: Array[Object] */;
2815 val
* var_pdocnode2
/* var pdocnode2: nullable Object */;
2816 short int var8
/* : Bool */;
2819 val
* var_tkwredefnode3
/* var tkwredefnode3: nullable Object */;
2820 short int var9
/* : Bool */;
2823 val
* var_pvisibilitynode4
/* var pvisibilitynode4: nullable Object */;
2824 short int var12
/* : Bool */;
2827 val
* var_patidnode5
/* var patidnode5: nullable Object */;
2828 short int var15
/* : Bool */;
2831 val
* var_listnode7
/* var listnode7: nullable Object */;
2832 short int var18
/* : Bool */;
2835 val
* var21
/* : Array[Object] */;
2836 val
* var22
/* : AAnnotation */;
2837 val
* var23
/* : null */;
2838 val
* var24
/* : null */;
2839 val
* var25
/* : null */;
2840 val
* var_pannotationnode1
/* var pannotationnode1: nullable AAnnotation */;
2841 long var26
/* : Int */;
2842 long var27
/* : Int */;
2845 var_node_list
= var
;
2847 var1
= parser_work__Parser__pop(var_p
);
2849 var_nodearraylist6
= var1
;
2851 var2
= parser_work__Parser__pop(var_p
);
2853 var_nodearraylist5
= var2
;
2855 var3
= parser_work__Parser__pop(var_p
);
2857 var_nodearraylist4
= var3
;
2859 var4
= parser_work__Parser__pop(var_p
);
2861 var_nodearraylist3
= var4
;
2863 var5
= parser_work__Parser__pop(var_p
);
2865 var_nodearraylist2
= var5
;
2867 var6
= parser_work__Parser__pop(var_p
);
2869 var_nodearraylist1
= var6
;
2870 var7
= NEW_array__Array(&type_array__Arraykernel__Object
);
2872 ((void (*)(val
*))(var7
->class->vft
[COLOR_kernel__Object__init
]))(var7
) /* init on <var7:Array[Object]>*/;
2874 var_listnode8
= var7
;
2875 var_pdocnode2
= var_nodearraylist1
;
2876 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
2877 cltype
= type_nullable_parser_nodes__ADoc
.color
;
2878 idtype
= type_nullable_parser_nodes__ADoc
.id
;
2879 if(var_pdocnode2
== NULL
) {
2882 if(cltype
>= var_pdocnode2
->type
->table_size
) {
2885 var8
= var_pdocnode2
->type
->type_table
[cltype
] == idtype
;
2888 if (unlikely(!var8
)) {
2889 PRINT_ERROR("Runtime error: %s", "Assert failed");
2890 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9729);
2893 var_tkwredefnode3
= var_nodearraylist2
;
2894 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
2895 cltype10
= type_nullable_parser_nodes__TKwredef
.color
;
2896 idtype11
= type_nullable_parser_nodes__TKwredef
.id
;
2897 if(var_tkwredefnode3
== NULL
) {
2900 if(cltype10
>= var_tkwredefnode3
->type
->table_size
) {
2903 var9
= var_tkwredefnode3
->type
->type_table
[cltype10
] == idtype11
;
2906 if (unlikely(!var9
)) {
2907 PRINT_ERROR("Runtime error: %s", "Assert failed");
2908 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9731);
2911 var_pvisibilitynode4
= var_nodearraylist3
;
2912 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
2913 cltype13
= type_nullable_parser_nodes__AVisibility
.color
;
2914 idtype14
= type_nullable_parser_nodes__AVisibility
.id
;
2915 if(var_pvisibilitynode4
== NULL
) {
2918 if(cltype13
>= var_pvisibilitynode4
->type
->table_size
) {
2921 var12
= var_pvisibilitynode4
->type
->type_table
[cltype13
] == idtype14
;
2924 if (unlikely(!var12
)) {
2925 PRINT_ERROR("Runtime error: %s", "Assert failed");
2926 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9733);
2929 var_patidnode5
= var_nodearraylist4
;
2930 /* <var_patidnode5:nullable Object> isa nullable AAtid */
2931 cltype16
= type_nullable_parser_nodes__AAtid
.color
;
2932 idtype17
= type_nullable_parser_nodes__AAtid
.id
;
2933 if(var_patidnode5
== NULL
) {
2936 if(cltype16
>= var_patidnode5
->type
->table_size
) {
2939 var15
= var_patidnode5
->type
->type_table
[cltype16
] == idtype17
;
2942 if (unlikely(!var15
)) {
2943 PRINT_ERROR("Runtime error: %s", "Assert failed");
2944 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9735);
2947 var_listnode7
= var_nodearraylist5
;
2948 /* <var_listnode7:nullable Object> isa Array[Object] */
2949 cltype19
= type_array__Arraykernel__Object
.color
;
2950 idtype20
= type_array__Arraykernel__Object
.id
;
2951 if(var_listnode7
== NULL
) {
2954 if(cltype19
>= var_listnode7
->type
->table_size
) {
2957 var18
= var_listnode7
->type
->type_table
[cltype19
] == idtype20
;
2960 if (unlikely(!var18
)) {
2961 PRINT_ERROR("Runtime error: %s", "Assert failed");
2962 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9737);
2966 var21
= parser_work__ReduceAction__concat(self
, var_listnode8
, var_listnode7
);
2968 var_listnode8
= var21
;
2969 var22
= NEW_parser_nodes__AAnnotation(&type_parser_nodes__AAnnotation
);
2974 parser_prod__AAnnotation__init_aannotation(var22
, var_pdocnode2
, var_tkwredefnode3
, var_pvisibilitynode4
, var_patidnode5
, var23
, var_listnode8
, var24
, var25
); /* Direct call parser_prod#AAnnotation#init_aannotation on <var22:AAnnotation>*/
2976 var_pannotationnode1
= var22
;
2977 var_node_list
= var_pannotationnode1
;
2978 var26
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction390> */
2980 var27
= parser_work__Parser__go_to(var_p
, var26
);
2983 parser_work__Parser__push(var_p
, var27
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
2987 /* method parser#ReduceAction390#action for (self: Object, Parser) */
2988 void VIRTUAL_parser__ReduceAction390__action(val
* self
, val
* p0
) {
2989 parser__ReduceAction390__action(self
, p0
); /* Direct call parser#ReduceAction390#action on <self:Object(ReduceAction390)>*/
2992 /* method parser#ReduceAction391#action for (self: ReduceAction391, Parser) */
2993 void parser__ReduceAction391__action(val
* self
, val
* p0
) {
2994 val
* var_p
/* var p: Parser */;
2995 val
* var
/* : null */;
2996 val
* var_node_list
/* var node_list: nullable Object */;
2997 val
* var1
/* : nullable Object */;
2998 val
* var_nodearraylist3
/* var nodearraylist3: nullable Object */;
2999 val
* var2
/* : nullable Object */;
3000 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
3001 val
* var3
/* : nullable Object */;
3002 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
3003 val
* var4
/* : Array[Object] */;
3004 val
* var_listnode7
/* var listnode7: Array[Object] */;
3005 val
* var_pdocnode2
/* var pdocnode2: nullable Object */;
3006 short int var5
/* : Bool */;
3009 val
* var_patidnode5
/* var patidnode5: nullable Object */;
3010 short int var6
/* : Bool */;
3013 val
* var9
/* : AAnnotation */;
3014 val
* var10
/* : null */;
3015 val
* var11
/* : null */;
3016 val
* var12
/* : null */;
3017 val
* var13
/* : null */;
3018 val
* var14
/* : null */;
3019 val
* var_pannotationnode1
/* var pannotationnode1: nullable AAnnotation */;
3020 long var15
/* : Int */;
3021 long var16
/* : Int */;
3024 var_node_list
= var
;
3026 var1
= parser_work__Parser__pop(var_p
);
3028 var_nodearraylist3
= var1
;
3030 var2
= parser_work__Parser__pop(var_p
);
3032 var_nodearraylist2
= var2
;
3034 var3
= parser_work__Parser__pop(var_p
);
3036 var_nodearraylist1
= var3
;
3037 var4
= NEW_array__Array(&type_array__Arraykernel__Object
);
3039 ((void (*)(val
*))(var4
->class->vft
[COLOR_kernel__Object__init
]))(var4
) /* init on <var4:Array[Object]>*/;
3041 var_listnode7
= var4
;
3042 var_pdocnode2
= var_nodearraylist1
;
3043 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
3044 cltype
= type_nullable_parser_nodes__ADoc
.color
;
3045 idtype
= type_nullable_parser_nodes__ADoc
.id
;
3046 if(var_pdocnode2
== NULL
) {
3049 if(cltype
>= var_pdocnode2
->type
->table_size
) {
3052 var5
= var_pdocnode2
->type
->type_table
[cltype
] == idtype
;
3055 if (unlikely(!var5
)) {
3056 PRINT_ERROR("Runtime error: %s", "Assert failed");
3057 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9763);
3060 var_patidnode5
= var_nodearraylist2
;
3061 /* <var_patidnode5:nullable Object> isa nullable AAtid */
3062 cltype7
= type_nullable_parser_nodes__AAtid
.color
;
3063 idtype8
= type_nullable_parser_nodes__AAtid
.id
;
3064 if(var_patidnode5
== NULL
) {
3067 if(cltype7
>= var_patidnode5
->type
->table_size
) {
3070 var6
= var_patidnode5
->type
->type_table
[cltype7
] == idtype8
;
3073 if (unlikely(!var6
)) {
3074 PRINT_ERROR("Runtime error: %s", "Assert failed");
3075 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9765);
3078 var9
= NEW_parser_nodes__AAnnotation(&type_parser_nodes__AAnnotation
);
3085 parser_prod__AAnnotation__init_aannotation(var9
, var_pdocnode2
, var10
, var11
, var_patidnode5
, var12
, var_listnode7
, var13
, var14
); /* Direct call parser_prod#AAnnotation#init_aannotation on <var9:AAnnotation>*/
3087 var_pannotationnode1
= var9
;
3088 var_node_list
= var_pannotationnode1
;
3089 var15
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction391> */
3091 var16
= parser_work__Parser__go_to(var_p
, var15
);
3094 parser_work__Parser__push(var_p
, var16
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
3098 /* method parser#ReduceAction391#action for (self: Object, Parser) */
3099 void VIRTUAL_parser__ReduceAction391__action(val
* self
, val
* p0
) {
3100 parser__ReduceAction391__action(self
, p0
); /* Direct call parser#ReduceAction391#action on <self:Object(ReduceAction391)>*/
3103 /* method parser#ReduceAction392#action for (self: ReduceAction392, Parser) */
3104 void parser__ReduceAction392__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_nodearraylist4
/* var nodearraylist4: nullable Object */;
3110 val
* var2
/* : nullable Object */;
3111 val
* var_nodearraylist3
/* var nodearraylist3: nullable Object */;
3112 val
* var3
/* : nullable Object */;
3113 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
3114 val
* var4
/* : nullable Object */;
3115 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
3116 val
* var5
/* : Array[Object] */;
3117 val
* var_listnode7
/* var listnode7: Array[Object] */;
3118 val
* var_pdocnode2
/* var pdocnode2: nullable Object */;
3119 short int var6
/* : Bool */;
3122 val
* var_patidnode5
/* var patidnode5: nullable Object */;
3123 short int var7
/* : Bool */;
3126 val
* var_pannotationsnode9
/* var pannotationsnode9: nullable Object */;
3127 short int var10
/* : Bool */;
3130 val
* var13
/* : AAnnotation */;
3131 val
* var14
/* : null */;
3132 val
* var15
/* : null */;
3133 val
* var16
/* : null */;
3134 val
* var17
/* : null */;
3135 val
* var_pannotationnode1
/* var pannotationnode1: nullable AAnnotation */;
3136 long var18
/* : Int */;
3137 long var19
/* : Int */;
3140 var_node_list
= var
;
3142 var1
= parser_work__Parser__pop(var_p
);
3144 var_nodearraylist4
= var1
;
3146 var2
= parser_work__Parser__pop(var_p
);
3148 var_nodearraylist3
= var2
;
3150 var3
= parser_work__Parser__pop(var_p
);
3152 var_nodearraylist2
= var3
;
3154 var4
= parser_work__Parser__pop(var_p
);
3156 var_nodearraylist1
= var4
;
3157 var5
= NEW_array__Array(&type_array__Arraykernel__Object
);
3159 ((void (*)(val
*))(var5
->class->vft
[COLOR_kernel__Object__init
]))(var5
) /* init on <var5:Array[Object]>*/;
3161 var_listnode7
= var5
;
3162 var_pdocnode2
= var_nodearraylist1
;
3163 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
3164 cltype
= type_nullable_parser_nodes__ADoc
.color
;
3165 idtype
= type_nullable_parser_nodes__ADoc
.id
;
3166 if(var_pdocnode2
== NULL
) {
3169 if(cltype
>= var_pdocnode2
->type
->table_size
) {
3172 var6
= var_pdocnode2
->type
->type_table
[cltype
] == idtype
;
3175 if (unlikely(!var6
)) {
3176 PRINT_ERROR("Runtime error: %s", "Assert failed");
3177 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9791);
3180 var_patidnode5
= var_nodearraylist2
;
3181 /* <var_patidnode5:nullable Object> isa nullable AAtid */
3182 cltype8
= type_nullable_parser_nodes__AAtid
.color
;
3183 idtype9
= type_nullable_parser_nodes__AAtid
.id
;
3184 if(var_patidnode5
== NULL
) {
3187 if(cltype8
>= var_patidnode5
->type
->table_size
) {
3190 var7
= var_patidnode5
->type
->type_table
[cltype8
] == idtype9
;
3193 if (unlikely(!var7
)) {
3194 PRINT_ERROR("Runtime error: %s", "Assert failed");
3195 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9793);
3198 var_pannotationsnode9
= var_nodearraylist3
;
3199 /* <var_pannotationsnode9:nullable Object> isa nullable AAnnotations */
3200 cltype11
= type_nullable_parser_nodes__AAnnotations
.color
;
3201 idtype12
= type_nullable_parser_nodes__AAnnotations
.id
;
3202 if(var_pannotationsnode9
== NULL
) {
3205 if(cltype11
>= var_pannotationsnode9
->type
->table_size
) {
3208 var10
= var_pannotationsnode9
->type
->type_table
[cltype11
] == idtype12
;
3211 if (unlikely(!var10
)) {
3212 PRINT_ERROR("Runtime error: %s", "Assert failed");
3213 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9795);
3216 var13
= NEW_parser_nodes__AAnnotation(&type_parser_nodes__AAnnotation
);
3222 parser_prod__AAnnotation__init_aannotation(var13
, var_pdocnode2
, var14
, var15
, var_patidnode5
, var16
, var_listnode7
, var17
, var_pannotationsnode9
); /* Direct call parser_prod#AAnnotation#init_aannotation on <var13:AAnnotation>*/
3224 var_pannotationnode1
= var13
;
3225 var_node_list
= var_pannotationnode1
;
3226 var18
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction392> */
3228 var19
= parser_work__Parser__go_to(var_p
, var18
);
3231 parser_work__Parser__push(var_p
, var19
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
3235 /* method parser#ReduceAction392#action for (self: Object, Parser) */
3236 void VIRTUAL_parser__ReduceAction392__action(val
* self
, val
* p0
) {
3237 parser__ReduceAction392__action(self
, p0
); /* Direct call parser#ReduceAction392#action on <self:Object(ReduceAction392)>*/
3240 /* method parser#ReduceAction393#action for (self: ReduceAction393, Parser) */
3241 void parser__ReduceAction393__action(val
* self
, val
* p0
) {
3242 val
* var_p
/* var p: Parser */;
3243 val
* var
/* : null */;
3244 val
* var_node_list
/* var node_list: nullable Object */;
3245 val
* var1
/* : nullable Object */;
3246 val
* var_nodearraylist7
/* var nodearraylist7: nullable Object */;
3247 val
* var2
/* : nullable Object */;
3248 val
* var_nodearraylist6
/* var nodearraylist6: nullable Object */;
3249 val
* var3
/* : nullable Object */;
3250 val
* var_nodearraylist5
/* var nodearraylist5: nullable Object */;
3251 val
* var4
/* : nullable Object */;
3252 val
* var_nodearraylist4
/* var nodearraylist4: nullable Object */;
3253 val
* var5
/* : nullable Object */;
3254 val
* var_nodearraylist3
/* var nodearraylist3: nullable Object */;
3255 val
* var6
/* : nullable Object */;
3256 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
3257 val
* var7
/* : nullable Object */;
3258 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
3259 val
* var8
/* : Array[Object] */;
3260 val
* var_listnode8
/* var listnode8: Array[Object] */;
3261 val
* var_pdocnode2
/* var pdocnode2: nullable Object */;
3262 short int var9
/* : Bool */;
3265 val
* var_patidnode5
/* var patidnode5: nullable Object */;
3266 short int var10
/* : Bool */;
3269 val
* var_toparnode6
/* var toparnode6: nullable Object */;
3270 short int var13
/* : Bool */;
3273 val
* var_listnode7
/* var listnode7: nullable Object */;
3274 short int var16
/* : Bool */;
3277 val
* var19
/* : Array[Object] */;
3278 val
* var_tcparnode9
/* var tcparnode9: nullable Object */;
3279 short int var20
/* : Bool */;
3282 val
* var23
/* : AAnnotation */;
3283 val
* var24
/* : null */;
3284 val
* var25
/* : null */;
3285 val
* var26
/* : null */;
3286 val
* var_pannotationnode1
/* var pannotationnode1: nullable AAnnotation */;
3287 long var27
/* : Int */;
3288 long var28
/* : Int */;
3291 var_node_list
= var
;
3293 var1
= parser_work__Parser__pop(var_p
);
3295 var_nodearraylist7
= var1
;
3297 var2
= parser_work__Parser__pop(var_p
);
3299 var_nodearraylist6
= var2
;
3301 var3
= parser_work__Parser__pop(var_p
);
3303 var_nodearraylist5
= var3
;
3305 var4
= parser_work__Parser__pop(var_p
);
3307 var_nodearraylist4
= var4
;
3309 var5
= parser_work__Parser__pop(var_p
);
3311 var_nodearraylist3
= var5
;
3313 var6
= parser_work__Parser__pop(var_p
);
3315 var_nodearraylist2
= var6
;
3317 var7
= parser_work__Parser__pop(var_p
);
3319 var_nodearraylist1
= var7
;
3320 var8
= NEW_array__Array(&type_array__Arraykernel__Object
);
3322 ((void (*)(val
*))(var8
->class->vft
[COLOR_kernel__Object__init
]))(var8
) /* init on <var8:Array[Object]>*/;
3324 var_listnode8
= var8
;
3325 var_pdocnode2
= var_nodearraylist1
;
3326 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
3327 cltype
= type_nullable_parser_nodes__ADoc
.color
;
3328 idtype
= type_nullable_parser_nodes__ADoc
.id
;
3329 if(var_pdocnode2
== NULL
) {
3332 if(cltype
>= var_pdocnode2
->type
->table_size
) {
3335 var9
= var_pdocnode2
->type
->type_table
[cltype
] == idtype
;
3338 if (unlikely(!var9
)) {
3339 PRINT_ERROR("Runtime error: %s", "Assert failed");
3340 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9824);
3343 var_patidnode5
= var_nodearraylist2
;
3344 /* <var_patidnode5:nullable Object> isa nullable AAtid */
3345 cltype11
= type_nullable_parser_nodes__AAtid
.color
;
3346 idtype12
= type_nullable_parser_nodes__AAtid
.id
;
3347 if(var_patidnode5
== NULL
) {
3350 if(cltype11
>= var_patidnode5
->type
->table_size
) {
3353 var10
= var_patidnode5
->type
->type_table
[cltype11
] == idtype12
;
3356 if (unlikely(!var10
)) {
3357 PRINT_ERROR("Runtime error: %s", "Assert failed");
3358 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9826);
3361 var_toparnode6
= var_nodearraylist3
;
3362 /* <var_toparnode6:nullable Object> isa nullable TOpar */
3363 cltype14
= type_nullable_parser_nodes__TOpar
.color
;
3364 idtype15
= type_nullable_parser_nodes__TOpar
.id
;
3365 if(var_toparnode6
== NULL
) {
3368 if(cltype14
>= var_toparnode6
->type
->table_size
) {
3371 var13
= var_toparnode6
->type
->type_table
[cltype14
] == idtype15
;
3374 if (unlikely(!var13
)) {
3375 PRINT_ERROR("Runtime error: %s", "Assert failed");
3376 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9828);
3379 var_listnode7
= var_nodearraylist5
;
3380 /* <var_listnode7:nullable Object> isa Array[Object] */
3381 cltype17
= type_array__Arraykernel__Object
.color
;
3382 idtype18
= type_array__Arraykernel__Object
.id
;
3383 if(var_listnode7
== NULL
) {
3386 if(cltype17
>= var_listnode7
->type
->table_size
) {
3389 var16
= var_listnode7
->type
->type_table
[cltype17
] == idtype18
;
3392 if (unlikely(!var16
)) {
3393 PRINT_ERROR("Runtime error: %s", "Assert failed");
3394 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9830);
3398 var19
= parser_work__ReduceAction__concat(self
, var_listnode8
, var_listnode7
);
3400 var_listnode8
= var19
;
3401 var_tcparnode9
= var_nodearraylist6
;
3402 /* <var_tcparnode9:nullable Object> isa nullable TCpar */
3403 cltype21
= type_nullable_parser_nodes__TCpar
.color
;
3404 idtype22
= type_nullable_parser_nodes__TCpar
.id
;
3405 if(var_tcparnode9
== NULL
) {
3408 if(cltype21
>= var_tcparnode9
->type
->table_size
) {
3411 var20
= var_tcparnode9
->type
->type_table
[cltype21
] == idtype22
;
3414 if (unlikely(!var20
)) {
3415 PRINT_ERROR("Runtime error: %s", "Assert failed");
3416 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9833);
3419 var23
= NEW_parser_nodes__AAnnotation(&type_parser_nodes__AAnnotation
);
3424 parser_prod__AAnnotation__init_aannotation(var23
, var_pdocnode2
, var24
, var25
, var_patidnode5
, var_toparnode6
, var_listnode8
, var_tcparnode9
, var26
); /* Direct call parser_prod#AAnnotation#init_aannotation on <var23:AAnnotation>*/
3426 var_pannotationnode1
= var23
;
3427 var_node_list
= var_pannotationnode1
;
3428 var27
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction393> */
3430 var28
= parser_work__Parser__go_to(var_p
, var27
);
3433 parser_work__Parser__push(var_p
, var28
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
3437 /* method parser#ReduceAction393#action for (self: Object, Parser) */
3438 void VIRTUAL_parser__ReduceAction393__action(val
* self
, val
* p0
) {
3439 parser__ReduceAction393__action(self
, p0
); /* Direct call parser#ReduceAction393#action on <self:Object(ReduceAction393)>*/
3442 /* method parser#ReduceAction394#action for (self: ReduceAction394, Parser) */
3443 void parser__ReduceAction394__action(val
* self
, val
* p0
) {
3444 val
* var_p
/* var p: Parser */;
3445 val
* var
/* : null */;
3446 val
* var_node_list
/* var node_list: nullable Object */;
3447 val
* var1
/* : nullable Object */;
3448 val
* var_nodearraylist8
/* var nodearraylist8: nullable Object */;
3449 val
* var2
/* : nullable Object */;
3450 val
* var_nodearraylist7
/* var nodearraylist7: nullable Object */;
3451 val
* var3
/* : nullable Object */;
3452 val
* var_nodearraylist6
/* var nodearraylist6: nullable Object */;
3453 val
* var4
/* : nullable Object */;
3454 val
* var_nodearraylist5
/* var nodearraylist5: nullable Object */;
3455 val
* var5
/* : nullable Object */;
3456 val
* var_nodearraylist4
/* var nodearraylist4: nullable Object */;
3457 val
* var6
/* : nullable Object */;
3458 val
* var_nodearraylist3
/* var nodearraylist3: nullable Object */;
3459 val
* var7
/* : nullable Object */;
3460 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
3461 val
* var8
/* : nullable Object */;
3462 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
3463 val
* var9
/* : Array[Object] */;
3464 val
* var_listnode8
/* var listnode8: Array[Object] */;
3465 val
* var_pdocnode2
/* var pdocnode2: nullable Object */;
3466 short int var10
/* : Bool */;
3469 val
* var_patidnode5
/* var patidnode5: nullable Object */;
3470 short int var11
/* : Bool */;
3473 val
* var_toparnode6
/* var toparnode6: nullable Object */;
3474 short int var14
/* : Bool */;
3477 val
* var_listnode7
/* var listnode7: nullable Object */;
3478 short int var17
/* : Bool */;
3481 val
* var20
/* : Array[Object] */;
3482 val
* var_tcparnode9
/* var tcparnode9: nullable Object */;
3483 short int var21
/* : Bool */;
3486 val
* var_pannotationsnode10
/* var pannotationsnode10: nullable Object */;
3487 short int var24
/* : Bool */;
3490 val
* var27
/* : AAnnotation */;
3491 val
* var28
/* : null */;
3492 val
* var29
/* : null */;
3493 val
* var_pannotationnode1
/* var pannotationnode1: nullable AAnnotation */;
3494 long var30
/* : Int */;
3495 long var31
/* : Int */;
3498 var_node_list
= var
;
3500 var1
= parser_work__Parser__pop(var_p
);
3502 var_nodearraylist8
= var1
;
3504 var2
= parser_work__Parser__pop(var_p
);
3506 var_nodearraylist7
= var2
;
3508 var3
= parser_work__Parser__pop(var_p
);
3510 var_nodearraylist6
= var3
;
3512 var4
= parser_work__Parser__pop(var_p
);
3514 var_nodearraylist5
= var4
;
3516 var5
= parser_work__Parser__pop(var_p
);
3518 var_nodearraylist4
= var5
;
3520 var6
= parser_work__Parser__pop(var_p
);
3522 var_nodearraylist3
= var6
;
3524 var7
= parser_work__Parser__pop(var_p
);
3526 var_nodearraylist2
= var7
;
3528 var8
= parser_work__Parser__pop(var_p
);
3530 var_nodearraylist1
= var8
;
3531 var9
= NEW_array__Array(&type_array__Arraykernel__Object
);
3533 ((void (*)(val
*))(var9
->class->vft
[COLOR_kernel__Object__init
]))(var9
) /* init on <var9:Array[Object]>*/;
3535 var_listnode8
= var9
;
3536 var_pdocnode2
= var_nodearraylist1
;
3537 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
3538 cltype
= type_nullable_parser_nodes__ADoc
.color
;
3539 idtype
= type_nullable_parser_nodes__ADoc
.id
;
3540 if(var_pdocnode2
== NULL
) {
3543 if(cltype
>= var_pdocnode2
->type
->table_size
) {
3546 var10
= var_pdocnode2
->type
->type_table
[cltype
] == idtype
;
3549 if (unlikely(!var10
)) {
3550 PRINT_ERROR("Runtime error: %s", "Assert failed");
3551 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9863);
3554 var_patidnode5
= var_nodearraylist2
;
3555 /* <var_patidnode5:nullable Object> isa nullable AAtid */
3556 cltype12
= type_nullable_parser_nodes__AAtid
.color
;
3557 idtype13
= type_nullable_parser_nodes__AAtid
.id
;
3558 if(var_patidnode5
== NULL
) {
3561 if(cltype12
>= var_patidnode5
->type
->table_size
) {
3564 var11
= var_patidnode5
->type
->type_table
[cltype12
] == idtype13
;
3567 if (unlikely(!var11
)) {
3568 PRINT_ERROR("Runtime error: %s", "Assert failed");
3569 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9865);
3572 var_toparnode6
= var_nodearraylist3
;
3573 /* <var_toparnode6:nullable Object> isa nullable TOpar */
3574 cltype15
= type_nullable_parser_nodes__TOpar
.color
;
3575 idtype16
= type_nullable_parser_nodes__TOpar
.id
;
3576 if(var_toparnode6
== NULL
) {
3579 if(cltype15
>= var_toparnode6
->type
->table_size
) {
3582 var14
= var_toparnode6
->type
->type_table
[cltype15
] == idtype16
;
3585 if (unlikely(!var14
)) {
3586 PRINT_ERROR("Runtime error: %s", "Assert failed");
3587 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9867);
3590 var_listnode7
= var_nodearraylist5
;
3591 /* <var_listnode7:nullable Object> isa Array[Object] */
3592 cltype18
= type_array__Arraykernel__Object
.color
;
3593 idtype19
= type_array__Arraykernel__Object
.id
;
3594 if(var_listnode7
== NULL
) {
3597 if(cltype18
>= var_listnode7
->type
->table_size
) {
3600 var17
= var_listnode7
->type
->type_table
[cltype18
] == idtype19
;
3603 if (unlikely(!var17
)) {
3604 PRINT_ERROR("Runtime error: %s", "Assert failed");
3605 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9869);
3609 var20
= parser_work__ReduceAction__concat(self
, var_listnode8
, var_listnode7
);
3611 var_listnode8
= var20
;
3612 var_tcparnode9
= var_nodearraylist6
;
3613 /* <var_tcparnode9:nullable Object> isa nullable TCpar */
3614 cltype22
= type_nullable_parser_nodes__TCpar
.color
;
3615 idtype23
= type_nullable_parser_nodes__TCpar
.id
;
3616 if(var_tcparnode9
== NULL
) {
3619 if(cltype22
>= var_tcparnode9
->type
->table_size
) {
3622 var21
= var_tcparnode9
->type
->type_table
[cltype22
] == idtype23
;
3625 if (unlikely(!var21
)) {
3626 PRINT_ERROR("Runtime error: %s", "Assert failed");
3627 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9872);
3630 var_pannotationsnode10
= var_nodearraylist7
;
3631 /* <var_pannotationsnode10:nullable Object> isa nullable AAnnotations */
3632 cltype25
= type_nullable_parser_nodes__AAnnotations
.color
;
3633 idtype26
= type_nullable_parser_nodes__AAnnotations
.id
;
3634 if(var_pannotationsnode10
== NULL
) {
3637 if(cltype25
>= var_pannotationsnode10
->type
->table_size
) {
3640 var24
= var_pannotationsnode10
->type
->type_table
[cltype25
] == idtype26
;
3643 if (unlikely(!var24
)) {
3644 PRINT_ERROR("Runtime error: %s", "Assert failed");
3645 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9874);
3648 var27
= NEW_parser_nodes__AAnnotation(&type_parser_nodes__AAnnotation
);
3652 parser_prod__AAnnotation__init_aannotation(var27
, var_pdocnode2
, var28
, var29
, var_patidnode5
, var_toparnode6
, var_listnode8
, var_tcparnode9
, var_pannotationsnode10
); /* Direct call parser_prod#AAnnotation#init_aannotation on <var27:AAnnotation>*/
3654 var_pannotationnode1
= var27
;
3655 var_node_list
= var_pannotationnode1
;
3656 var30
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction394> */
3658 var31
= parser_work__Parser__go_to(var_p
, var30
);
3661 parser_work__Parser__push(var_p
, var31
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
3665 /* method parser#ReduceAction394#action for (self: Object, Parser) */
3666 void VIRTUAL_parser__ReduceAction394__action(val
* self
, val
* p0
) {
3667 parser__ReduceAction394__action(self
, p0
); /* Direct call parser#ReduceAction394#action on <self:Object(ReduceAction394)>*/
3670 /* method parser#ReduceAction395#action for (self: ReduceAction395, Parser) */
3671 void parser__ReduceAction395__action(val
* self
, val
* p0
) {
3672 val
* var_p
/* var p: Parser */;
3673 val
* var
/* : null */;
3674 val
* var_node_list
/* var node_list: nullable Object */;
3675 val
* var1
/* : nullable Object */;
3676 val
* var_nodearraylist4
/* var nodearraylist4: nullable Object */;
3677 val
* var2
/* : nullable Object */;
3678 val
* var_nodearraylist3
/* var nodearraylist3: nullable Object */;
3679 val
* var3
/* : nullable Object */;
3680 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
3681 val
* var4
/* : nullable Object */;
3682 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
3683 val
* var5
/* : Array[Object] */;
3684 val
* var_listnode8
/* var listnode8: Array[Object] */;
3685 val
* var_pdocnode2
/* var pdocnode2: nullable Object */;
3686 short int var6
/* : Bool */;
3689 val
* var_patidnode5
/* var patidnode5: nullable Object */;
3690 short int var7
/* : Bool */;
3693 val
* var_listnode7
/* var listnode7: nullable Object */;
3694 short int var10
/* : Bool */;
3697 val
* var13
/* : Array[Object] */;
3698 val
* var14
/* : AAnnotation */;
3699 val
* var15
/* : null */;
3700 val
* var16
/* : null */;
3701 val
* var17
/* : null */;
3702 val
* var18
/* : null */;
3703 val
* var19
/* : null */;
3704 val
* var_pannotationnode1
/* var pannotationnode1: nullable AAnnotation */;
3705 long var20
/* : Int */;
3706 long var21
/* : Int */;
3709 var_node_list
= var
;
3711 var1
= parser_work__Parser__pop(var_p
);
3713 var_nodearraylist4
= var1
;
3715 var2
= parser_work__Parser__pop(var_p
);
3717 var_nodearraylist3
= var2
;
3719 var3
= parser_work__Parser__pop(var_p
);
3721 var_nodearraylist2
= var3
;
3723 var4
= parser_work__Parser__pop(var_p
);
3725 var_nodearraylist1
= var4
;
3726 var5
= NEW_array__Array(&type_array__Arraykernel__Object
);
3728 ((void (*)(val
*))(var5
->class->vft
[COLOR_kernel__Object__init
]))(var5
) /* init on <var5:Array[Object]>*/;
3730 var_listnode8
= var5
;
3731 var_pdocnode2
= var_nodearraylist1
;
3732 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
3733 cltype
= type_nullable_parser_nodes__ADoc
.color
;
3734 idtype
= type_nullable_parser_nodes__ADoc
.id
;
3735 if(var_pdocnode2
== NULL
) {
3738 if(cltype
>= var_pdocnode2
->type
->table_size
) {
3741 var6
= var_pdocnode2
->type
->type_table
[cltype
] == idtype
;
3744 if (unlikely(!var6
)) {
3745 PRINT_ERROR("Runtime error: %s", "Assert failed");
3746 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9900);
3749 var_patidnode5
= var_nodearraylist2
;
3750 /* <var_patidnode5:nullable Object> isa nullable AAtid */
3751 cltype8
= type_nullable_parser_nodes__AAtid
.color
;
3752 idtype9
= type_nullable_parser_nodes__AAtid
.id
;
3753 if(var_patidnode5
== NULL
) {
3756 if(cltype8
>= var_patidnode5
->type
->table_size
) {
3759 var7
= var_patidnode5
->type
->type_table
[cltype8
] == idtype9
;
3762 if (unlikely(!var7
)) {
3763 PRINT_ERROR("Runtime error: %s", "Assert failed");
3764 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9902);
3767 var_listnode7
= var_nodearraylist3
;
3768 /* <var_listnode7:nullable Object> isa Array[Object] */
3769 cltype11
= type_array__Arraykernel__Object
.color
;
3770 idtype12
= type_array__Arraykernel__Object
.id
;
3771 if(var_listnode7
== NULL
) {
3774 if(cltype11
>= var_listnode7
->type
->table_size
) {
3777 var10
= var_listnode7
->type
->type_table
[cltype11
] == idtype12
;
3780 if (unlikely(!var10
)) {
3781 PRINT_ERROR("Runtime error: %s", "Assert failed");
3782 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9904);
3786 var13
= parser_work__ReduceAction__concat(self
, var_listnode8
, var_listnode7
);
3788 var_listnode8
= var13
;
3789 var14
= NEW_parser_nodes__AAnnotation(&type_parser_nodes__AAnnotation
);
3796 parser_prod__AAnnotation__init_aannotation(var14
, var_pdocnode2
, var15
, var16
, var_patidnode5
, var17
, var_listnode8
, var18
, var19
); /* Direct call parser_prod#AAnnotation#init_aannotation on <var14:AAnnotation>*/
3798 var_pannotationnode1
= var14
;
3799 var_node_list
= var_pannotationnode1
;
3800 var20
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction395> */
3802 var21
= parser_work__Parser__go_to(var_p
, var20
);
3805 parser_work__Parser__push(var_p
, var21
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
3809 /* method parser#ReduceAction395#action for (self: Object, Parser) */
3810 void VIRTUAL_parser__ReduceAction395__action(val
* self
, val
* p0
) {
3811 parser__ReduceAction395__action(self
, p0
); /* Direct call parser#ReduceAction395#action on <self:Object(ReduceAction395)>*/
3814 /* method parser#ReduceAction396#action for (self: ReduceAction396, Parser) */
3815 void parser__ReduceAction396__action(val
* self
, val
* p0
) {
3816 val
* var_p
/* var p: Parser */;
3817 val
* var
/* : null */;
3818 val
* var_node_list
/* var node_list: nullable Object */;
3819 val
* var1
/* : nullable Object */;
3820 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
3821 val
* var2
/* : Array[Object] */;
3822 val
* var_listnode2
/* var listnode2: Array[Object] */;
3823 val
* var_pexprnode1
/* var pexprnode1: nullable Object */;
3824 val
* var3
/* : null */;
3825 short int var4
/* : Bool */;
3826 short int var5
/* : Bool */;
3827 long var6
/* : Int */;
3828 long var7
/* : Int */;
3831 var_node_list
= var
;
3833 var1
= parser_work__Parser__pop(var_p
);
3835 var_nodearraylist1
= var1
;
3836 var2
= NEW_array__Array(&type_array__Arraykernel__Object
);
3838 ((void (*)(val
*))(var2
->class->vft
[COLOR_kernel__Object__init
]))(var2
) /* init on <var2:Array[Object]>*/;
3840 var_listnode2
= var2
;
3841 var_pexprnode1
= var_nodearraylist1
;
3843 if (var_pexprnode1
== NULL
) {
3844 var4
= 0; /* is null */
3846 var4
= 1; /* arg is null and recv is not */
3849 var5
= ((short int (*)(val
*, val
*))(var_pexprnode1
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_pexprnode1
, var3
) /* != on <var_pexprnode1:nullable Object>*/;
3854 array__Array__add(var_listnode2
, var_pexprnode1
); /* Direct call array#Array#add on <var_listnode2:Array[Object]>*/
3858 var_node_list
= var_listnode2
;
3859 var6
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction396> */
3861 var7
= parser_work__Parser__go_to(var_p
, var6
);
3864 parser_work__Parser__push(var_p
, var7
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
3868 /* method parser#ReduceAction396#action for (self: Object, Parser) */
3869 void VIRTUAL_parser__ReduceAction396__action(val
* self
, val
* p0
) {
3870 parser__ReduceAction396__action(self
, p0
); /* Direct call parser#ReduceAction396#action on <self:Object(ReduceAction396)>*/
3873 /* method parser#ReduceAction397#action for (self: ReduceAction397, Parser) */
3874 void parser__ReduceAction397__action(val
* self
, val
* p0
) {
3875 val
* var_p
/* var p: Parser */;
3876 val
* var
/* : null */;
3877 val
* var_node_list
/* var node_list: nullable Object */;
3878 val
* var1
/* : nullable Object */;
3879 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
3880 val
* var2
/* : nullable Object */;
3881 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
3882 val
* var3
/* : Array[Object] */;
3883 val
* var_listnode3
/* var listnode3: Array[Object] */;
3884 val
* var_pexprnode1
/* var pexprnode1: nullable Object */;
3885 val
* var_listnode2
/* var listnode2: nullable Object */;
3886 short int var4
/* : Bool */;
3889 val
* var5
/* : null */;
3890 short int var6
/* : Bool */;
3891 short int var7
/* : Bool */;
3892 val
* var8
/* : Array[Object] */;
3893 long var9
/* : Int */;
3894 long var10
/* : Int */;
3897 var_node_list
= var
;
3899 var1
= parser_work__Parser__pop(var_p
);
3901 var_nodearraylist2
= var1
;
3903 var2
= parser_work__Parser__pop(var_p
);
3905 var_nodearraylist1
= var2
;
3906 var3
= NEW_array__Array(&type_array__Arraykernel__Object
);
3908 ((void (*)(val
*))(var3
->class->vft
[COLOR_kernel__Object__init
]))(var3
) /* init on <var3:Array[Object]>*/;
3910 var_listnode3
= var3
;
3911 var_pexprnode1
= var_nodearraylist1
;
3912 var_listnode2
= var_nodearraylist2
;
3913 /* <var_listnode2:nullable Object> isa Array[Object] */
3914 cltype
= type_array__Arraykernel__Object
.color
;
3915 idtype
= type_array__Arraykernel__Object
.id
;
3916 if(var_listnode2
== NULL
) {
3919 if(cltype
>= var_listnode2
->type
->table_size
) {
3922 var4
= var_listnode2
->type
->type_table
[cltype
] == idtype
;
3925 if (unlikely(!var4
)) {
3926 PRINT_ERROR("Runtime error: %s", "Assert failed");
3927 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9945);
3931 if (var_pexprnode1
== NULL
) {
3932 var6
= 0; /* is null */
3934 var6
= 1; /* arg is null and recv is not */
3937 var7
= ((short int (*)(val
*, val
*))(var_pexprnode1
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_pexprnode1
, var5
) /* != on <var_pexprnode1:nullable Object>*/;
3942 array__Array__add(var_listnode3
, var_pexprnode1
); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
3947 var8
= parser_work__ReduceAction__concat(self
, var_listnode3
, var_listnode2
);
3949 var_listnode3
= var8
;
3950 var_node_list
= var_listnode3
;
3951 var9
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction397> */
3953 var10
= parser_work__Parser__go_to(var_p
, var9
);
3956 parser_work__Parser__push(var_p
, var10
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
3960 /* method parser#ReduceAction397#action for (self: Object, Parser) */
3961 void VIRTUAL_parser__ReduceAction397__action(val
* self
, val
* p0
) {
3962 parser__ReduceAction397__action(self
, p0
); /* Direct call parser#ReduceAction397#action on <self:Object(ReduceAction397)>*/
3965 /* method parser#ReduceAction399#action for (self: ReduceAction399, Parser) */
3966 void parser__ReduceAction399__action(val
* self
, val
* p0
) {
3967 val
* var_p
/* var p: Parser */;
3968 val
* var
/* : null */;
3969 val
* var_node_list
/* var node_list: nullable Object */;
3970 val
* var1
/* : nullable Object */;
3971 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
3972 val
* var_ptypenode2
/* var ptypenode2: nullable Object */;
3973 short int var2
/* : Bool */;
3976 val
* var3
/* : ATypeExpr */;
3977 val
* var_pexprnode1
/* var pexprnode1: nullable ATypeExpr */;
3978 long var4
/* : Int */;
3979 long var5
/* : Int */;
3982 var_node_list
= var
;
3984 var1
= parser_work__Parser__pop(var_p
);
3986 var_nodearraylist1
= var1
;
3987 var_ptypenode2
= var_nodearraylist1
;
3988 /* <var_ptypenode2:nullable Object> isa nullable AType */
3989 cltype
= type_nullable_parser_nodes__AType
.color
;
3990 idtype
= type_nullable_parser_nodes__AType
.id
;
3991 if(var_ptypenode2
== NULL
) {
3994 if(cltype
>= var_ptypenode2
->type
->table_size
) {
3997 var2
= var_ptypenode2
->type
->type_table
[cltype
] == idtype
;
4000 if (unlikely(!var2
)) {
4001 PRINT_ERROR("Runtime error: %s", "Assert failed");
4002 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9961);
4005 var3
= NEW_parser_nodes__ATypeExpr(&type_parser_nodes__ATypeExpr
);
4007 parser_prod__ATypeExpr__init_atypeexpr(var3
, var_ptypenode2
); /* Direct call parser_prod#ATypeExpr#init_atypeexpr on <var3:ATypeExpr>*/
4009 var_pexprnode1
= var3
;
4010 var_node_list
= var_pexprnode1
;
4011 var4
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction399> */
4013 var5
= parser_work__Parser__go_to(var_p
, var4
);
4016 parser_work__Parser__push(var_p
, var5
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
4020 /* method parser#ReduceAction399#action for (self: Object, Parser) */
4021 void VIRTUAL_parser__ReduceAction399__action(val
* self
, val
* p0
) {
4022 parser__ReduceAction399__action(self
, p0
); /* Direct call parser#ReduceAction399#action on <self:Object(ReduceAction399)>*/
4025 /* method parser#ReduceAction402#action for (self: ReduceAction402, Parser) */
4026 void parser__ReduceAction402__action(val
* self
, val
* p0
) {
4027 val
* var_p
/* var p: Parser */;
4028 val
* var
/* : null */;
4029 val
* var_node_list
/* var node_list: nullable Object */;
4030 val
* var1
/* : nullable Object */;
4031 val
* var_nodearraylist4
/* var nodearraylist4: nullable Object */;
4032 val
* var2
/* : nullable Object */;
4033 val
* var_nodearraylist3
/* var nodearraylist3: nullable Object */;
4034 val
* var3
/* : nullable Object */;
4035 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
4036 val
* var4
/* : nullable Object */;
4037 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
4038 val
* var_pexprnode2
/* var pexprnode2: nullable Object */;
4039 short int var5
/* : Bool */;
4042 val
* var_pmethidnode3
/* var pmethidnode3: nullable Object */;
4043 short int var6
/* : Bool */;
4046 val
* var9
/* : AMethidExpr */;
4047 val
* var_pexprnode1
/* var pexprnode1: nullable AMethidExpr */;
4048 long var10
/* : Int */;
4049 long var11
/* : Int */;
4052 var_node_list
= var
;
4054 var1
= parser_work__Parser__pop(var_p
);
4056 var_nodearraylist4
= var1
;
4058 var2
= parser_work__Parser__pop(var_p
);
4060 var_nodearraylist3
= var2
;
4062 var3
= parser_work__Parser__pop(var_p
);
4064 var_nodearraylist2
= var3
;
4066 var4
= parser_work__Parser__pop(var_p
);
4068 var_nodearraylist1
= var4
;
4069 var_pexprnode2
= var_nodearraylist1
;
4070 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
4071 cltype
= type_nullable_parser_nodes__AExpr
.color
;
4072 idtype
= type_nullable_parser_nodes__AExpr
.id
;
4073 if(var_pexprnode2
== NULL
) {
4076 if(cltype
>= var_pexprnode2
->type
->table_size
) {
4079 var5
= var_pexprnode2
->type
->type_table
[cltype
] == idtype
;
4082 if (unlikely(!var5
)) {
4083 PRINT_ERROR("Runtime error: %s", "Assert failed");
4084 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9979);
4087 var_pmethidnode3
= var_nodearraylist4
;
4088 /* <var_pmethidnode3:nullable Object> isa nullable AMethid */
4089 cltype7
= type_nullable_parser_nodes__AMethid
.color
;
4090 idtype8
= type_nullable_parser_nodes__AMethid
.id
;
4091 if(var_pmethidnode3
== NULL
) {
4094 if(cltype7
>= var_pmethidnode3
->type
->table_size
) {
4097 var6
= var_pmethidnode3
->type
->type_table
[cltype7
] == idtype8
;
4100 if (unlikely(!var6
)) {
4101 PRINT_ERROR("Runtime error: %s", "Assert failed");
4102 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9981);
4105 var9
= NEW_parser_nodes__AMethidExpr(&type_parser_nodes__AMethidExpr
);
4107 parser_prod__AMethidExpr__init_amethidexpr(var9
, var_pexprnode2
, var_pmethidnode3
); /* Direct call parser_prod#AMethidExpr#init_amethidexpr on <var9:AMethidExpr>*/
4109 var_pexprnode1
= var9
;
4110 var_node_list
= var_pexprnode1
;
4111 var10
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction402> */
4113 var11
= parser_work__Parser__go_to(var_p
, var10
);
4116 parser_work__Parser__push(var_p
, var11
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
4120 /* method parser#ReduceAction402#action for (self: Object, Parser) */
4121 void VIRTUAL_parser__ReduceAction402__action(val
* self
, val
* p0
) {
4122 parser__ReduceAction402__action(self
, p0
); /* Direct call parser#ReduceAction402#action on <self:Object(ReduceAction402)>*/
4125 /* method parser#ReduceAction403#action for (self: ReduceAction403, Parser) */
4126 void parser__ReduceAction403__action(val
* self
, val
* p0
) {
4127 val
* var_p
/* var p: Parser */;
4128 val
* var
/* : null */;
4129 val
* var_node_list
/* var node_list: nullable Object */;
4130 val
* var1
/* : nullable Object */;
4131 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
4132 val
* var2
/* : AImplicitSelfExpr */;
4133 val
* var_pexprnode2
/* var pexprnode2: nullable AImplicitSelfExpr */;
4134 val
* var_pmethidnode3
/* var pmethidnode3: nullable Object */;
4135 short int var4
/* : Bool */;
4138 val
* var5
/* : AMethidExpr */;
4139 val
* var_pexprnode1
/* var pexprnode1: nullable AMethidExpr */;
4140 long var6
/* : Int */;
4141 long var7
/* : Int */;
4144 var_node_list
= var
;
4146 var1
= parser_work__Parser__pop(var_p
);
4148 var_nodearraylist1
= var1
;
4149 var2
= NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr
);
4151 { /* Inline parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr (var2) on <var2:AImplicitSelfExpr> */
4155 var_pexprnode2
= var2
;
4156 var_pmethidnode3
= var_nodearraylist1
;
4157 /* <var_pmethidnode3:nullable Object> isa nullable AMethid */
4158 cltype
= type_nullable_parser_nodes__AMethid
.color
;
4159 idtype
= type_nullable_parser_nodes__AMethid
.id
;
4160 if(var_pmethidnode3
== NULL
) {
4163 if(cltype
>= var_pmethidnode3
->type
->table_size
) {
4166 var4
= var_pmethidnode3
->type
->type_table
[cltype
] == idtype
;
4169 if (unlikely(!var4
)) {
4170 PRINT_ERROR("Runtime error: %s", "Assert failed");
4171 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 9998);
4174 var5
= NEW_parser_nodes__AMethidExpr(&type_parser_nodes__AMethidExpr
);
4176 parser_prod__AMethidExpr__init_amethidexpr(var5
, var_pexprnode2
, var_pmethidnode3
); /* Direct call parser_prod#AMethidExpr#init_amethidexpr on <var5:AMethidExpr>*/
4178 var_pexprnode1
= var5
;
4179 var_node_list
= var_pexprnode1
;
4180 var6
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction403> */
4182 var7
= parser_work__Parser__go_to(var_p
, var6
);
4185 parser_work__Parser__push(var_p
, var7
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
4189 /* method parser#ReduceAction403#action for (self: Object, Parser) */
4190 void VIRTUAL_parser__ReduceAction403__action(val
* self
, val
* p0
) {
4191 parser__ReduceAction403__action(self
, p0
); /* Direct call parser#ReduceAction403#action on <self:Object(ReduceAction403)>*/
4194 /* method parser#ReduceAction404#action for (self: ReduceAction404, Parser) */
4195 void parser__ReduceAction404__action(val
* self
, val
* p0
) {
4196 val
* var_p
/* var p: Parser */;
4197 val
* var
/* : null */;
4198 val
* var_node_list
/* var node_list: nullable Object */;
4199 val
* var1
/* : nullable Object */;
4200 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
4201 val
* var_pannotationsnode2
/* var pannotationsnode2: nullable Object */;
4202 short int var2
/* : Bool */;
4205 val
* var3
/* : AAtExpr */;
4206 val
* var_pexprnode1
/* var pexprnode1: nullable AAtExpr */;
4207 long var4
/* : Int */;
4208 long var5
/* : Int */;
4211 var_node_list
= var
;
4213 var1
= parser_work__Parser__pop(var_p
);
4215 var_nodearraylist1
= var1
;
4216 var_pannotationsnode2
= var_nodearraylist1
;
4217 /* <var_pannotationsnode2:nullable Object> isa nullable AAnnotations */
4218 cltype
= type_nullable_parser_nodes__AAnnotations
.color
;
4219 idtype
= type_nullable_parser_nodes__AAnnotations
.id
;
4220 if(var_pannotationsnode2
== NULL
) {
4223 if(cltype
>= var_pannotationsnode2
->type
->table_size
) {
4226 var2
= var_pannotationsnode2
->type
->type_table
[cltype
] == idtype
;
4229 if (unlikely(!var2
)) {
4230 PRINT_ERROR("Runtime error: %s", "Assert failed");
4231 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 10014);
4234 var3
= NEW_parser_nodes__AAtExpr(&type_parser_nodes__AAtExpr
);
4236 parser_prod__AAtExpr__init_aatexpr(var3
, var_pannotationsnode2
); /* Direct call parser_prod#AAtExpr#init_aatexpr on <var3:AAtExpr>*/
4238 var_pexprnode1
= var3
;
4239 var_node_list
= var_pexprnode1
;
4240 var4
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction404> */
4242 var5
= parser_work__Parser__go_to(var_p
, var4
);
4245 parser_work__Parser__push(var_p
, var5
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
4249 /* method parser#ReduceAction404#action for (self: Object, Parser) */
4250 void VIRTUAL_parser__ReduceAction404__action(val
* self
, val
* p0
) {
4251 parser__ReduceAction404__action(self
, p0
); /* Direct call parser#ReduceAction404#action on <self:Object(ReduceAction404)>*/
4254 /* method parser#ReduceAction405#action for (self: ReduceAction405, Parser) */
4255 void parser__ReduceAction405__action(val
* self
, val
* p0
) {
4256 val
* var_p
/* var p: Parser */;
4257 val
* var
/* : null */;
4258 val
* var_node_list
/* var node_list: nullable Object */;
4259 val
* var1
/* : nullable Object */;
4260 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
4261 val
* var_tidnode2
/* var tidnode2: nullable Object */;
4262 short int var2
/* : Bool */;
4265 val
* var3
/* : AIdAtid */;
4266 val
* var_patidnode1
/* var patidnode1: nullable AIdAtid */;
4267 long var4
/* : Int */;
4268 long var5
/* : Int */;
4271 var_node_list
= var
;
4273 var1
= parser_work__Parser__pop(var_p
);
4275 var_nodearraylist1
= var1
;
4276 var_tidnode2
= var_nodearraylist1
;
4277 /* <var_tidnode2:nullable Object> isa nullable TId */
4278 cltype
= type_nullable_parser_nodes__TId
.color
;
4279 idtype
= type_nullable_parser_nodes__TId
.id
;
4280 if(var_tidnode2
== NULL
) {
4283 if(cltype
>= var_tidnode2
->type
->table_size
) {
4286 var2
= var_tidnode2
->type
->type_table
[cltype
] == idtype
;
4289 if (unlikely(!var2
)) {
4290 PRINT_ERROR("Runtime error: %s", "Assert failed");
4291 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 10029);
4294 var3
= NEW_parser_nodes__AIdAtid(&type_parser_nodes__AIdAtid
);
4296 parser_prod__AIdAtid__init_aidatid(var3
, var_tidnode2
); /* Direct call parser_prod#AIdAtid#init_aidatid on <var3:AIdAtid>*/
4298 var_patidnode1
= var3
;
4299 var_node_list
= var_patidnode1
;
4300 var4
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction405> */
4302 var5
= parser_work__Parser__go_to(var_p
, var4
);
4305 parser_work__Parser__push(var_p
, var5
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
4309 /* method parser#ReduceAction405#action for (self: Object, Parser) */
4310 void VIRTUAL_parser__ReduceAction405__action(val
* self
, val
* p0
) {
4311 parser__ReduceAction405__action(self
, p0
); /* Direct call parser#ReduceAction405#action on <self:Object(ReduceAction405)>*/
4314 /* method parser#ReduceAction406#action for (self: ReduceAction406, Parser) */
4315 void parser__ReduceAction406__action(val
* self
, val
* p0
) {
4316 val
* var_p
/* var p: Parser */;
4317 val
* var
/* : null */;
4318 val
* var_node_list
/* var node_list: nullable Object */;
4319 val
* var1
/* : nullable Object */;
4320 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
4321 val
* var_tkwexternnode2
/* var tkwexternnode2: nullable Object */;
4322 short int var2
/* : Bool */;
4325 val
* var3
/* : AKwexternAtid */;
4326 val
* var_patidnode1
/* var patidnode1: nullable AKwexternAtid */;
4327 long var4
/* : Int */;
4328 long var5
/* : Int */;
4331 var_node_list
= var
;
4333 var1
= parser_work__Parser__pop(var_p
);
4335 var_nodearraylist1
= var1
;
4336 var_tkwexternnode2
= var_nodearraylist1
;
4337 /* <var_tkwexternnode2:nullable Object> isa nullable TKwextern */
4338 cltype
= type_nullable_parser_nodes__TKwextern
.color
;
4339 idtype
= type_nullable_parser_nodes__TKwextern
.id
;
4340 if(var_tkwexternnode2
== NULL
) {
4343 if(cltype
>= var_tkwexternnode2
->type
->table_size
) {
4346 var2
= var_tkwexternnode2
->type
->type_table
[cltype
] == idtype
;
4349 if (unlikely(!var2
)) {
4350 PRINT_ERROR("Runtime error: %s", "Assert failed");
4351 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 10044);
4354 var3
= NEW_parser_nodes__AKwexternAtid(&type_parser_nodes__AKwexternAtid
);
4356 parser_prod__AKwexternAtid__init_akwexternatid(var3
, var_tkwexternnode2
); /* Direct call parser_prod#AKwexternAtid#init_akwexternatid on <var3:AKwexternAtid>*/
4358 var_patidnode1
= var3
;
4359 var_node_list
= var_patidnode1
;
4360 var4
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction406> */
4362 var5
= parser_work__Parser__go_to(var_p
, var4
);
4365 parser_work__Parser__push(var_p
, var5
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
4369 /* method parser#ReduceAction406#action for (self: Object, Parser) */
4370 void VIRTUAL_parser__ReduceAction406__action(val
* self
, val
* p0
) {
4371 parser__ReduceAction406__action(self
, p0
); /* Direct call parser#ReduceAction406#action on <self:Object(ReduceAction406)>*/
4374 /* method parser#ReduceAction407#action for (self: ReduceAction407, Parser) */
4375 void parser__ReduceAction407__action(val
* self
, val
* p0
) {
4376 val
* var_p
/* var p: Parser */;
4377 val
* var
/* : null */;
4378 val
* var_node_list
/* var node_list: nullable Object */;
4379 val
* var1
/* : nullable Object */;
4380 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
4381 val
* var_tkwabstractnode2
/* var tkwabstractnode2: nullable Object */;
4382 short int var2
/* : Bool */;
4385 val
* var3
/* : AKwabstractAtid */;
4386 val
* var_patidnode1
/* var patidnode1: nullable AKwabstractAtid */;
4387 long var4
/* : Int */;
4388 long var5
/* : Int */;
4391 var_node_list
= var
;
4393 var1
= parser_work__Parser__pop(var_p
);
4395 var_nodearraylist1
= var1
;
4396 var_tkwabstractnode2
= var_nodearraylist1
;
4397 /* <var_tkwabstractnode2:nullable Object> isa nullable TKwabstract */
4398 cltype
= type_nullable_parser_nodes__TKwabstract
.color
;
4399 idtype
= type_nullable_parser_nodes__TKwabstract
.id
;
4400 if(var_tkwabstractnode2
== NULL
) {
4403 if(cltype
>= var_tkwabstractnode2
->type
->table_size
) {
4406 var2
= var_tkwabstractnode2
->type
->type_table
[cltype
] == idtype
;
4409 if (unlikely(!var2
)) {
4410 PRINT_ERROR("Runtime error: %s", "Assert failed");
4411 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 10059);
4414 var3
= NEW_parser_nodes__AKwabstractAtid(&type_parser_nodes__AKwabstractAtid
);
4416 parser_prod__AKwabstractAtid__init_akwabstractatid(var3
, var_tkwabstractnode2
); /* Direct call parser_prod#AKwabstractAtid#init_akwabstractatid on <var3:AKwabstractAtid>*/
4418 var_patidnode1
= var3
;
4419 var_node_list
= var_patidnode1
;
4420 var4
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction407> */
4422 var5
= parser_work__Parser__go_to(var_p
, var4
);
4425 parser_work__Parser__push(var_p
, var5
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
4429 /* method parser#ReduceAction407#action for (self: Object, Parser) */
4430 void VIRTUAL_parser__ReduceAction407__action(val
* self
, val
* p0
) {
4431 parser__ReduceAction407__action(self
, p0
); /* Direct call parser#ReduceAction407#action on <self:Object(ReduceAction407)>*/
4434 /* method parser#ReduceAction408#action for (self: ReduceAction408, Parser) */
4435 void parser__ReduceAction408__action(val
* self
, val
* p0
) {
4436 val
* var_p
/* var p: Parser */;
4437 val
* var
/* : null */;
4438 val
* var_node_list
/* var node_list: nullable Object */;
4439 val
* var1
/* : nullable Object */;
4440 val
* var_nodearraylist4
/* var nodearraylist4: nullable Object */;
4441 val
* var2
/* : nullable Object */;
4442 val
* var_nodearraylist3
/* var nodearraylist3: nullable Object */;
4443 val
* var3
/* : nullable Object */;
4444 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
4445 val
* var4
/* : nullable Object */;
4446 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
4447 val
* var5
/* : Array[Object] */;
4448 val
* var_listnode4
/* var listnode4: Array[Object] */;
4449 val
* var_toparnode2
/* var toparnode2: nullable Object */;
4450 short int var6
/* : Bool */;
4453 val
* var_listnode3
/* var listnode3: nullable Object */;
4454 short int var7
/* : Bool */;
4457 val
* var10
/* : Array[Object] */;
4458 val
* var_tcparnode5
/* var tcparnode5: nullable Object */;
4459 short int var11
/* : Bool */;
4462 val
* var14
/* : AParExprs */;
4463 val
* var_pexprsnode1
/* var pexprsnode1: nullable AParExprs */;
4464 long var15
/* : Int */;
4465 long var16
/* : Int */;
4468 var_node_list
= var
;
4470 var1
= parser_work__Parser__pop(var_p
);
4472 var_nodearraylist4
= var1
;
4474 var2
= parser_work__Parser__pop(var_p
);
4476 var_nodearraylist3
= var2
;
4478 var3
= parser_work__Parser__pop(var_p
);
4480 var_nodearraylist2
= var3
;
4482 var4
= parser_work__Parser__pop(var_p
);
4484 var_nodearraylist1
= var4
;
4485 var5
= NEW_array__Array(&type_array__Arraykernel__Object
);
4487 ((void (*)(val
*))(var5
->class->vft
[COLOR_kernel__Object__init
]))(var5
) /* init on <var5:Array[Object]>*/;
4489 var_listnode4
= var5
;
4490 var_toparnode2
= var_nodearraylist1
;
4491 /* <var_toparnode2:nullable Object> isa nullable TOpar */
4492 cltype
= type_nullable_parser_nodes__TOpar
.color
;
4493 idtype
= type_nullable_parser_nodes__TOpar
.id
;
4494 if(var_toparnode2
== NULL
) {
4497 if(cltype
>= var_toparnode2
->type
->table_size
) {
4500 var6
= var_toparnode2
->type
->type_table
[cltype
] == idtype
;
4503 if (unlikely(!var6
)) {
4504 PRINT_ERROR("Runtime error: %s", "Assert failed");
4505 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 10078);
4508 var_listnode3
= var_nodearraylist3
;
4509 /* <var_listnode3:nullable Object> isa Array[Object] */
4510 cltype8
= type_array__Arraykernel__Object
.color
;
4511 idtype9
= type_array__Arraykernel__Object
.id
;
4512 if(var_listnode3
== NULL
) {
4515 if(cltype8
>= var_listnode3
->type
->table_size
) {
4518 var7
= var_listnode3
->type
->type_table
[cltype8
] == idtype9
;
4521 if (unlikely(!var7
)) {
4522 PRINT_ERROR("Runtime error: %s", "Assert failed");
4523 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 10080);
4527 var10
= parser_work__ReduceAction__concat(self
, var_listnode4
, var_listnode3
);
4529 var_listnode4
= var10
;
4530 var_tcparnode5
= var_nodearraylist4
;
4531 /* <var_tcparnode5:nullable Object> isa nullable TCpar */
4532 cltype12
= type_nullable_parser_nodes__TCpar
.color
;
4533 idtype13
= type_nullable_parser_nodes__TCpar
.id
;
4534 if(var_tcparnode5
== NULL
) {
4537 if(cltype12
>= var_tcparnode5
->type
->table_size
) {
4540 var11
= var_tcparnode5
->type
->type_table
[cltype12
] == idtype13
;
4543 if (unlikely(!var11
)) {
4544 PRINT_ERROR("Runtime error: %s", "Assert failed");
4545 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 10083);
4548 var14
= NEW_parser_nodes__AParExprs(&type_parser_nodes__AParExprs
);
4550 parser_prod__AParExprs__init_aparexprs(var14
, var_toparnode2
, var_listnode4
, var_tcparnode5
); /* Direct call parser_prod#AParExprs#init_aparexprs on <var14:AParExprs>*/
4552 var_pexprsnode1
= var14
;
4553 var_node_list
= var_pexprsnode1
;
4554 var15
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction408> */
4556 var16
= parser_work__Parser__go_to(var_p
, var15
);
4559 parser_work__Parser__push(var_p
, var16
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
4563 /* method parser#ReduceAction408#action for (self: Object, Parser) */
4564 void VIRTUAL_parser__ReduceAction408__action(val
* self
, val
* p0
) {
4565 parser__ReduceAction408__action(self
, p0
); /* Direct call parser#ReduceAction408#action on <self:Object(ReduceAction408)>*/
4568 /* method parser#ReduceAction409#action for (self: ReduceAction409, Parser) */
4569 void parser__ReduceAction409__action(val
* self
, val
* p0
) {
4570 val
* var_p
/* var p: Parser */;
4571 val
* var
/* : null */;
4572 val
* var_node_list
/* var node_list: nullable Object */;
4573 val
* var1
/* : nullable Object */;
4574 val
* var_nodearraylist3
/* var nodearraylist3: nullable Object */;
4575 val
* var2
/* : nullable Object */;
4576 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
4577 val
* var3
/* : nullable Object */;
4578 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
4579 val
* var4
/* : Array[Object] */;
4580 val
* var_listnode3
/* var listnode3: Array[Object] */;
4581 val
* var_toparnode2
/* var toparnode2: nullable Object */;
4582 short int var5
/* : Bool */;
4585 val
* var_tcparnode4
/* var tcparnode4: nullable Object */;
4586 short int var6
/* : Bool */;
4589 val
* var9
/* : AParExprs */;
4590 val
* var_pexprsnode1
/* var pexprsnode1: nullable AParExprs */;
4591 long var10
/* : Int */;
4592 long var11
/* : Int */;
4595 var_node_list
= var
;
4597 var1
= parser_work__Parser__pop(var_p
);
4599 var_nodearraylist3
= var1
;
4601 var2
= parser_work__Parser__pop(var_p
);
4603 var_nodearraylist2
= var2
;
4605 var3
= parser_work__Parser__pop(var_p
);
4607 var_nodearraylist1
= var3
;
4608 var4
= NEW_array__Array(&type_array__Arraykernel__Object
);
4610 ((void (*)(val
*))(var4
->class->vft
[COLOR_kernel__Object__init
]))(var4
) /* init on <var4:Array[Object]>*/;
4612 var_listnode3
= var4
;
4613 var_toparnode2
= var_nodearraylist1
;
4614 /* <var_toparnode2:nullable Object> isa nullable TOpar */
4615 cltype
= type_nullable_parser_nodes__TOpar
.color
;
4616 idtype
= type_nullable_parser_nodes__TOpar
.id
;
4617 if(var_toparnode2
== NULL
) {
4620 if(cltype
>= var_toparnode2
->type
->table_size
) {
4623 var5
= var_toparnode2
->type
->type_table
[cltype
] == idtype
;
4626 if (unlikely(!var5
)) {
4627 PRINT_ERROR("Runtime error: %s", "Assert failed");
4628 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 10103);
4631 var_tcparnode4
= var_nodearraylist3
;
4632 /* <var_tcparnode4:nullable Object> isa nullable TCpar */
4633 cltype7
= type_nullable_parser_nodes__TCpar
.color
;
4634 idtype8
= type_nullable_parser_nodes__TCpar
.id
;
4635 if(var_tcparnode4
== NULL
) {
4638 if(cltype7
>= var_tcparnode4
->type
->table_size
) {
4641 var6
= var_tcparnode4
->type
->type_table
[cltype7
] == idtype8
;
4644 if (unlikely(!var6
)) {
4645 PRINT_ERROR("Runtime error: %s", "Assert failed");
4646 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 10105);
4649 var9
= NEW_parser_nodes__AParExprs(&type_parser_nodes__AParExprs
);
4651 parser_prod__AParExprs__init_aparexprs(var9
, var_toparnode2
, var_listnode3
, var_tcparnode4
); /* Direct call parser_prod#AParExprs#init_aparexprs on <var9:AParExprs>*/
4653 var_pexprsnode1
= var9
;
4654 var_node_list
= var_pexprsnode1
;
4655 var10
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction409> */
4657 var11
= parser_work__Parser__go_to(var_p
, var10
);
4660 parser_work__Parser__push(var_p
, var11
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
4664 /* method parser#ReduceAction409#action for (self: Object, Parser) */
4665 void VIRTUAL_parser__ReduceAction409__action(val
* self
, val
* p0
) {
4666 parser__ReduceAction409__action(self
, p0
); /* Direct call parser#ReduceAction409#action on <self:Object(ReduceAction409)>*/
4669 /* method parser#ReduceAction411#action for (self: ReduceAction411, Parser) */
4670 void parser__ReduceAction411__action(val
* self
, val
* p0
) {
4671 val
* var_p
/* var p: Parser */;
4672 val
* var
/* : null */;
4673 val
* var_node_list
/* var node_list: nullable Object */;
4674 val
* var1
/* : nullable Object */;
4675 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
4676 val
* var2
/* : Array[Object] */;
4677 val
* var_listnode3
/* var listnode3: Array[Object] */;
4678 val
* var_pexprnode2
/* var pexprnode2: nullable Object */;
4679 short int var3
/* : Bool */;
4682 val
* var4
/* : null */;
4683 short int var5
/* : Bool */;
4684 short int var6
/* : Bool */;
4685 val
* var_other
/* var other: nullable Object */;
4686 short int var8
/* : Bool */;
4687 short int var9
/* : Bool */;
4688 short int var10
/* : Bool */;
4689 val
* var11
/* : AListExprs */;
4690 val
* var_pexprsnode1
/* var pexprsnode1: nullable AListExprs */;
4691 long var12
/* : Int */;
4692 long var13
/* : Int */;
4695 var_node_list
= var
;
4697 var1
= parser_work__Parser__pop(var_p
);
4699 var_nodearraylist1
= var1
;
4700 var2
= NEW_array__Array(&type_array__Arraykernel__Object
);
4702 ((void (*)(val
*))(var2
->class->vft
[COLOR_kernel__Object__init
]))(var2
) /* init on <var2:Array[Object]>*/;
4704 var_listnode3
= var2
;
4705 var_pexprnode2
= var_nodearraylist1
;
4706 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
4707 cltype
= type_nullable_parser_nodes__AExpr
.color
;
4708 idtype
= type_nullable_parser_nodes__AExpr
.id
;
4709 if(var_pexprnode2
== NULL
) {
4712 if(cltype
>= var_pexprnode2
->type
->table_size
) {
4715 var3
= var_pexprnode2
->type
->type_table
[cltype
] == idtype
;
4718 if (unlikely(!var3
)) {
4719 PRINT_ERROR("Runtime error: %s", "Assert failed");
4720 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 10123);
4724 if (var_pexprnode2
== NULL
) {
4725 var5
= 0; /* is null */
4727 var5
= 1; /* arg is null and recv is not */
4730 { /* Inline kernel#Object#!= (var_pexprnode2,var4) on <var_pexprnode2:nullable Object(nullable AExpr)> */
4733 var9
= ((short int (*)(val
*, val
*))(var_pexprnode2
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_pexprnode2
, var_other
) /* == on <var_pexprnode2:nullable AExpr(AExpr)>*/;
4745 array__Array__add(var_listnode3
, var_pexprnode2
); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
4749 var11
= NEW_parser_nodes__AListExprs(&type_parser_nodes__AListExprs
);
4751 parser_prod__AListExprs__init_alistexprs(var11
, var_listnode3
); /* Direct call parser_prod#AListExprs#init_alistexprs on <var11:AListExprs>*/
4753 var_pexprsnode1
= var11
;
4754 var_node_list
= var_pexprsnode1
;
4755 var12
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction411> */
4757 var13
= parser_work__Parser__go_to(var_p
, var12
);
4760 parser_work__Parser__push(var_p
, var13
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
4764 /* method parser#ReduceAction411#action for (self: Object, Parser) */
4765 void VIRTUAL_parser__ReduceAction411__action(val
* self
, val
* p0
) {
4766 parser__ReduceAction411__action(self
, p0
); /* Direct call parser#ReduceAction411#action on <self:Object(ReduceAction411)>*/
4769 /* method parser#ReduceAction413#action for (self: ReduceAction413, Parser) */
4770 void parser__ReduceAction413__action(val
* self
, val
* p0
) {
4771 val
* var_p
/* var p: Parser */;
4772 val
* var
/* : null */;
4773 val
* var_node_list
/* var node_list: nullable Object */;
4774 val
* var1
/* : Array[Object] */;
4775 val
* var_listnode2
/* var listnode2: Array[Object] */;
4776 val
* var2
/* : AListExprs */;
4777 val
* var_pexprsnode1
/* var pexprsnode1: nullable AListExprs */;
4778 long var3
/* : Int */;
4779 long var4
/* : Int */;
4782 var_node_list
= var
;
4783 var1
= NEW_array__Array(&type_array__Arraykernel__Object
);
4785 ((void (*)(val
*))(var1
->class->vft
[COLOR_kernel__Object__init
]))(var1
) /* init on <var1:Array[Object]>*/;
4787 var_listnode2
= var1
;
4788 var2
= NEW_parser_nodes__AListExprs(&type_parser_nodes__AListExprs
);
4790 parser_prod__AListExprs__init_alistexprs(var2
, var_listnode2
); /* Direct call parser_prod#AListExprs#init_alistexprs on <var2:AListExprs>*/
4792 var_pexprsnode1
= var2
;
4793 var_node_list
= var_pexprsnode1
;
4794 var3
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction413> */
4796 var4
= parser_work__Parser__go_to(var_p
, var3
);
4799 parser_work__Parser__push(var_p
, var4
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
4803 /* method parser#ReduceAction413#action for (self: Object, Parser) */
4804 void VIRTUAL_parser__ReduceAction413__action(val
* self
, val
* p0
) {
4805 parser__ReduceAction413__action(self
, p0
); /* Direct call parser#ReduceAction413#action on <self:Object(ReduceAction413)>*/
4808 /* method parser#ReduceAction414#action for (self: ReduceAction414, Parser) */
4809 void parser__ReduceAction414__action(val
* self
, val
* p0
) {
4810 val
* var_p
/* var p: Parser */;
4811 val
* var
/* : null */;
4812 val
* var_node_list
/* var node_list: nullable Object */;
4813 val
* var1
/* : nullable Object */;
4814 val
* var_nodearraylist4
/* var nodearraylist4: nullable Object */;
4815 val
* var2
/* : nullable Object */;
4816 val
* var_nodearraylist3
/* var nodearraylist3: nullable Object */;
4817 val
* var3
/* : nullable Object */;
4818 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
4819 val
* var4
/* : nullable Object */;
4820 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
4821 val
* var5
/* : Array[Object] */;
4822 val
* var_listnode4
/* var listnode4: Array[Object] */;
4823 val
* var_tobranode2
/* var tobranode2: nullable Object */;
4824 short int var6
/* : Bool */;
4827 val
* var_listnode3
/* var listnode3: nullable Object */;
4828 short int var7
/* : Bool */;
4831 val
* var10
/* : Array[Object] */;
4832 val
* var_tcbranode5
/* var tcbranode5: nullable Object */;
4833 short int var11
/* : Bool */;
4836 val
* var14
/* : ABraExprs */;
4837 val
* var_pexprsnode1
/* var pexprsnode1: nullable ABraExprs */;
4838 long var15
/* : Int */;
4839 long var16
/* : Int */;
4842 var_node_list
= var
;
4844 var1
= parser_work__Parser__pop(var_p
);
4846 var_nodearraylist4
= var1
;
4848 var2
= parser_work__Parser__pop(var_p
);
4850 var_nodearraylist3
= var2
;
4852 var3
= parser_work__Parser__pop(var_p
);
4854 var_nodearraylist2
= var3
;
4856 var4
= parser_work__Parser__pop(var_p
);
4858 var_nodearraylist1
= var4
;
4859 var5
= NEW_array__Array(&type_array__Arraykernel__Object
);
4861 ((void (*)(val
*))(var5
->class->vft
[COLOR_kernel__Object__init
]))(var5
) /* init on <var5:Array[Object]>*/;
4863 var_listnode4
= var5
;
4864 var_tobranode2
= var_nodearraylist1
;
4865 /* <var_tobranode2:nullable Object> isa nullable TObra */
4866 cltype
= type_nullable_parser_nodes__TObra
.color
;
4867 idtype
= type_nullable_parser_nodes__TObra
.id
;
4868 if(var_tobranode2
== NULL
) {
4871 if(cltype
>= var_tobranode2
->type
->table_size
) {
4874 var6
= var_tobranode2
->type
->type_table
[cltype
] == idtype
;
4877 if (unlikely(!var6
)) {
4878 PRINT_ERROR("Runtime error: %s", "Assert failed");
4879 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 10158);
4882 var_listnode3
= var_nodearraylist3
;
4883 /* <var_listnode3:nullable Object> isa Array[Object] */
4884 cltype8
= type_array__Arraykernel__Object
.color
;
4885 idtype9
= type_array__Arraykernel__Object
.id
;
4886 if(var_listnode3
== NULL
) {
4889 if(cltype8
>= var_listnode3
->type
->table_size
) {
4892 var7
= var_listnode3
->type
->type_table
[cltype8
] == idtype9
;
4895 if (unlikely(!var7
)) {
4896 PRINT_ERROR("Runtime error: %s", "Assert failed");
4897 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 10160);
4901 var10
= parser_work__ReduceAction__concat(self
, var_listnode4
, var_listnode3
);
4903 var_listnode4
= var10
;
4904 var_tcbranode5
= var_nodearraylist4
;
4905 /* <var_tcbranode5:nullable Object> isa nullable TCbra */
4906 cltype12
= type_nullable_parser_nodes__TCbra
.color
;
4907 idtype13
= type_nullable_parser_nodes__TCbra
.id
;
4908 if(var_tcbranode5
== NULL
) {
4911 if(cltype12
>= var_tcbranode5
->type
->table_size
) {
4914 var11
= var_tcbranode5
->type
->type_table
[cltype12
] == idtype13
;
4917 if (unlikely(!var11
)) {
4918 PRINT_ERROR("Runtime error: %s", "Assert failed");
4919 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 10163);
4922 var14
= NEW_parser_nodes__ABraExprs(&type_parser_nodes__ABraExprs
);
4924 parser_prod__ABraExprs__init_abraexprs(var14
, var_tobranode2
, var_listnode4
, var_tcbranode5
); /* Direct call parser_prod#ABraExprs#init_abraexprs on <var14:ABraExprs>*/
4926 var_pexprsnode1
= var14
;
4927 var_node_list
= var_pexprsnode1
;
4928 var15
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction414> */
4930 var16
= parser_work__Parser__go_to(var_p
, var15
);
4933 parser_work__Parser__push(var_p
, var16
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
4937 /* method parser#ReduceAction414#action for (self: Object, Parser) */
4938 void VIRTUAL_parser__ReduceAction414__action(val
* self
, val
* p0
) {
4939 parser__ReduceAction414__action(self
, p0
); /* Direct call parser#ReduceAction414#action on <self:Object(ReduceAction414)>*/
4942 /* method parser#ReduceAction415#action for (self: ReduceAction415, Parser) */
4943 void parser__ReduceAction415__action(val
* self
, val
* p0
) {
4944 val
* var_p
/* var p: Parser */;
4945 val
* var
/* : null */;
4946 val
* var_node_list
/* var node_list: nullable Object */;
4947 val
* var1
/* : nullable Object */;
4948 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
4949 val
* var2
/* : Array[Object] */;
4950 val
* var_listnode3
/* var listnode3: Array[Object] */;
4951 val
* var_listnode2
/* var listnode2: nullable Object */;
4952 short int var3
/* : Bool */;
4955 val
* var4
/* : Array[Object] */;
4956 val
* var5
/* : AListExprs */;
4957 val
* var_pexprsnode1
/* var pexprsnode1: nullable AListExprs */;
4958 long var6
/* : Int */;
4959 long var7
/* : Int */;
4962 var_node_list
= var
;
4964 var1
= parser_work__Parser__pop(var_p
);
4966 var_nodearraylist1
= var1
;
4967 var2
= NEW_array__Array(&type_array__Arraykernel__Object
);
4969 ((void (*)(val
*))(var2
->class->vft
[COLOR_kernel__Object__init
]))(var2
) /* init on <var2:Array[Object]>*/;
4971 var_listnode3
= var2
;
4972 var_listnode2
= var_nodearraylist1
;
4973 /* <var_listnode2:nullable Object> isa Array[Object] */
4974 cltype
= type_array__Arraykernel__Object
.color
;
4975 idtype
= type_array__Arraykernel__Object
.id
;
4976 if(var_listnode2
== NULL
) {
4979 if(cltype
>= var_listnode2
->type
->table_size
) {
4982 var3
= var_listnode2
->type
->type_table
[cltype
] == idtype
;
4985 if (unlikely(!var3
)) {
4986 PRINT_ERROR("Runtime error: %s", "Assert failed");
4987 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 10181);
4991 var4
= parser_work__ReduceAction__concat(self
, var_listnode3
, var_listnode2
);
4993 var_listnode3
= var4
;
4994 var5
= NEW_parser_nodes__AListExprs(&type_parser_nodes__AListExprs
);
4996 parser_prod__AListExprs__init_alistexprs(var5
, var_listnode3
); /* Direct call parser_prod#AListExprs#init_alistexprs on <var5:AListExprs>*/
4998 var_pexprsnode1
= var5
;
4999 var_node_list
= var_pexprsnode1
;
5000 var6
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction415> */
5002 var7
= parser_work__Parser__go_to(var_p
, var6
);
5005 parser_work__Parser__push(var_p
, var7
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
5009 /* method parser#ReduceAction415#action for (self: Object, Parser) */
5010 void VIRTUAL_parser__ReduceAction415__action(val
* self
, val
* p0
) {
5011 parser__ReduceAction415__action(self
, p0
); /* Direct call parser#ReduceAction415#action on <self:Object(ReduceAction415)>*/
5014 /* method parser#ReduceAction417#action for (self: ReduceAction417, Parser) */
5015 void parser__ReduceAction417__action(val
* self
, val
* p0
) {
5016 val
* var_p
/* var p: Parser */;
5017 val
* var
/* : null */;
5018 val
* var_node_list
/* var node_list: nullable Object */;
5019 val
* var1
/* : nullable Object */;
5020 val
* var_nodearraylist3
/* var nodearraylist3: nullable Object */;
5021 val
* var2
/* : nullable Object */;
5022 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
5023 val
* var3
/* : nullable Object */;
5024 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
5025 val
* var4
/* : Array[Object] */;
5026 val
* var_listnode3
/* var listnode3: Array[Object] */;
5027 val
* var_pexprnode1
/* var pexprnode1: nullable Object */;
5028 val
* var_listnode2
/* var listnode2: nullable Object */;
5029 short int var5
/* : Bool */;
5032 val
* var6
/* : null */;
5033 short int var7
/* : Bool */;
5034 short int var8
/* : Bool */;
5035 val
* var9
/* : Array[Object] */;
5036 long var10
/* : Int */;
5037 long var11
/* : Int */;
5040 var_node_list
= var
;
5042 var1
= parser_work__Parser__pop(var_p
);
5044 var_nodearraylist3
= var1
;
5046 var2
= parser_work__Parser__pop(var_p
);
5048 var_nodearraylist2
= var2
;
5050 var3
= parser_work__Parser__pop(var_p
);
5052 var_nodearraylist1
= var3
;
5053 var4
= NEW_array__Array(&type_array__Arraykernel__Object
);
5055 ((void (*)(val
*))(var4
->class->vft
[COLOR_kernel__Object__init
]))(var4
) /* init on <var4:Array[Object]>*/;
5057 var_listnode3
= var4
;
5058 var_pexprnode1
= var_nodearraylist1
;
5059 var_listnode2
= var_nodearraylist3
;
5060 /* <var_listnode2:nullable Object> isa Array[Object] */
5061 cltype
= type_array__Arraykernel__Object
.color
;
5062 idtype
= type_array__Arraykernel__Object
.id
;
5063 if(var_listnode2
== NULL
) {
5066 if(cltype
>= var_listnode2
->type
->table_size
) {
5069 var5
= var_listnode2
->type
->type_table
[cltype
] == idtype
;
5072 if (unlikely(!var5
)) {
5073 PRINT_ERROR("Runtime error: %s", "Assert failed");
5074 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 10201);
5078 if (var_pexprnode1
== NULL
) {
5079 var7
= 0; /* is null */
5081 var7
= 1; /* arg is null and recv is not */
5084 var8
= ((short int (*)(val
*, val
*))(var_pexprnode1
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_pexprnode1
, var6
) /* != on <var_pexprnode1:nullable Object>*/;
5089 array__Array__add(var_listnode3
, var_pexprnode1
); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
5094 var9
= parser_work__ReduceAction__concat(self
, var_listnode3
, var_listnode2
);
5096 var_listnode3
= var9
;
5097 var_node_list
= var_listnode3
;
5098 var10
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction417> */
5100 var11
= parser_work__Parser__go_to(var_p
, var10
);
5103 parser_work__Parser__push(var_p
, var11
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
5107 /* method parser#ReduceAction417#action for (self: Object, Parser) */
5108 void VIRTUAL_parser__ReduceAction417__action(val
* self
, val
* p0
) {
5109 parser__ReduceAction417__action(self
, p0
); /* Direct call parser#ReduceAction417#action on <self:Object(ReduceAction417)>*/
5112 /* method parser#ReduceAction418#action for (self: ReduceAction418, Parser) */
5113 void parser__ReduceAction418__action(val
* self
, val
* p0
) {
5114 val
* var_p
/* var p: Parser */;
5115 val
* var
/* : null */;
5116 val
* var_node_list
/* var node_list: nullable Object */;
5117 val
* var1
/* : nullable Object */;
5118 val
* var_nodearraylist4
/* var nodearraylist4: nullable Object */;
5119 val
* var2
/* : nullable Object */;
5120 val
* var_nodearraylist3
/* var nodearraylist3: nullable Object */;
5121 val
* var3
/* : nullable Object */;
5122 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
5123 val
* var4
/* : nullable Object */;
5124 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
5125 val
* var_pexprnode1
/* var pexprnode1: nullable Object */;
5126 long var5
/* : Int */;
5127 long var6
/* : Int */;
5130 var_node_list
= var
;
5132 var1
= parser_work__Parser__pop(var_p
);
5134 var_nodearraylist4
= var1
;
5136 var2
= parser_work__Parser__pop(var_p
);
5138 var_nodearraylist3
= var2
;
5140 var3
= parser_work__Parser__pop(var_p
);
5142 var_nodearraylist2
= var3
;
5144 var4
= parser_work__Parser__pop(var_p
);
5146 var_nodearraylist1
= var4
;
5147 var_pexprnode1
= var_nodearraylist3
;
5148 var_node_list
= var_pexprnode1
;
5149 var5
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction418> */
5151 var6
= parser_work__Parser__go_to(var_p
, var5
);
5154 parser_work__Parser__push(var_p
, var6
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
5158 /* method parser#ReduceAction418#action for (self: Object, Parser) */
5159 void VIRTUAL_parser__ReduceAction418__action(val
* self
, val
* p0
) {
5160 parser__ReduceAction418__action(self
, p0
); /* Direct call parser#ReduceAction418#action on <self:Object(ReduceAction418)>*/
5163 /* method parser#ReduceAction419#action for (self: ReduceAction419, Parser) */
5164 void parser__ReduceAction419__action(val
* self
, val
* p0
) {
5165 val
* var_p
/* var p: Parser */;
5166 val
* var
/* : null */;
5167 val
* var_node_list
/* var node_list: nullable Object */;
5168 val
* var1
/* : nullable Object */;
5169 val
* var_nodearraylist5
/* var nodearraylist5: nullable Object */;
5170 val
* var2
/* : nullable Object */;
5171 val
* var_nodearraylist4
/* var nodearraylist4: nullable Object */;
5172 val
* var3
/* : nullable Object */;
5173 val
* var_nodearraylist3
/* var nodearraylist3: nullable Object */;
5174 val
* var4
/* : nullable Object */;
5175 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
5176 val
* var5
/* : nullable Object */;
5177 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
5178 val
* var6
/* : Array[Object] */;
5179 val
* var_listnode2
/* var listnode2: Array[Object] */;
5180 val
* var_listnode1
/* var listnode1: nullable Object */;
5181 short int var7
/* : Bool */;
5184 val
* var8
/* : Array[Object] */;
5185 long var9
/* : Int */;
5186 long var10
/* : Int */;
5189 var_node_list
= var
;
5191 var1
= parser_work__Parser__pop(var_p
);
5193 var_nodearraylist5
= var1
;
5195 var2
= parser_work__Parser__pop(var_p
);
5197 var_nodearraylist4
= var2
;
5199 var3
= parser_work__Parser__pop(var_p
);
5201 var_nodearraylist3
= var3
;
5203 var4
= parser_work__Parser__pop(var_p
);
5205 var_nodearraylist2
= var4
;
5207 var5
= parser_work__Parser__pop(var_p
);
5209 var_nodearraylist1
= var5
;
5210 var6
= NEW_array__Array(&type_array__Arraykernel__Object
);
5212 ((void (*)(val
*))(var6
->class->vft
[COLOR_kernel__Object__init
]))(var6
) /* init on <var6:Array[Object]>*/;
5214 var_listnode2
= var6
;
5215 var_listnode1
= var_nodearraylist3
;
5216 /* <var_listnode1:nullable Object> isa Array[Object] */
5217 cltype
= type_array__Arraykernel__Object
.color
;
5218 idtype
= type_array__Arraykernel__Object
.id
;
5219 if(var_listnode1
== NULL
) {
5222 if(cltype
>= var_listnode1
->type
->table_size
) {
5225 var7
= var_listnode1
->type
->type_table
[cltype
] == idtype
;
5228 if (unlikely(!var7
)) {
5229 PRINT_ERROR("Runtime error: %s", "Assert failed");
5230 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 10236);
5234 var8
= parser_work__ReduceAction__concat(self
, var_listnode2
, var_listnode1
);
5236 var_listnode2
= var8
;
5237 var_node_list
= var_listnode2
;
5238 var9
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction419> */
5240 var10
= parser_work__Parser__go_to(var_p
, var9
);
5243 parser_work__Parser__push(var_p
, var10
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
5247 /* method parser#ReduceAction419#action for (self: Object, Parser) */
5248 void VIRTUAL_parser__ReduceAction419__action(val
* self
, val
* p0
) {
5249 parser__ReduceAction419__action(self
, p0
); /* Direct call parser#ReduceAction419#action on <self:Object(ReduceAction419)>*/
5252 /* method parser#ReduceAction420#action for (self: ReduceAction420, Parser) */
5253 void parser__ReduceAction420__action(val
* self
, val
* p0
) {
5254 val
* var_p
/* var p: Parser */;
5255 val
* var
/* : null */;
5256 val
* var_node_list
/* var node_list: nullable Object */;
5257 val
* var1
/* : nullable Object */;
5258 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
5259 val
* var2
/* : Array[Object] */;
5260 val
* var_listnode2
/* var listnode2: Array[Object] */;
5261 val
* var_listnode1
/* var listnode1: nullable Object */;
5262 short int var3
/* : Bool */;
5265 val
* var4
/* : Array[Object] */;
5266 long var5
/* : Int */;
5267 long var6
/* : Int */;
5270 var_node_list
= var
;
5272 var1
= parser_work__Parser__pop(var_p
);
5274 var_nodearraylist1
= var1
;
5275 var2
= NEW_array__Array(&type_array__Arraykernel__Object
);
5277 ((void (*)(val
*))(var2
->class->vft
[COLOR_kernel__Object__init
]))(var2
) /* init on <var2:Array[Object]>*/;
5279 var_listnode2
= var2
;
5280 var_listnode1
= var_nodearraylist1
;
5281 /* <var_listnode1:nullable Object> isa Array[Object] */
5282 cltype
= type_array__Arraykernel__Object
.color
;
5283 idtype
= type_array__Arraykernel__Object
.id
;
5284 if(var_listnode1
== NULL
) {
5287 if(cltype
>= var_listnode1
->type
->table_size
) {
5290 var3
= var_listnode1
->type
->type_table
[cltype
] == idtype
;
5293 if (unlikely(!var3
)) {
5294 PRINT_ERROR("Runtime error: %s", "Assert failed");
5295 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 10250);
5299 var4
= parser_work__ReduceAction__concat(self
, var_listnode2
, var_listnode1
);
5301 var_listnode2
= var4
;
5302 var_node_list
= var_listnode2
;
5303 var5
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction420> */
5305 var6
= parser_work__Parser__go_to(var_p
, var5
);
5308 parser_work__Parser__push(var_p
, var6
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
5312 /* method parser#ReduceAction420#action for (self: Object, Parser) */
5313 void VIRTUAL_parser__ReduceAction420__action(val
* self
, val
* p0
) {
5314 parser__ReduceAction420__action(self
, p0
); /* Direct call parser#ReduceAction420#action on <self:Object(ReduceAction420)>*/
5317 /* method parser#ReduceAction421#action for (self: ReduceAction421, Parser) */
5318 void parser__ReduceAction421__action(val
* self
, val
* p0
) {
5319 val
* var_p
/* var p: Parser */;
5320 val
* var
/* : null */;
5321 val
* var_node_list
/* var node_list: nullable Object */;
5322 val
* var1
/* : nullable Object */;
5323 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
5324 val
* var2
/* : Array[Object] */;
5325 val
* var_listnode2
/* var listnode2: Array[Object] */;
5326 val
* var_tidnode1
/* var tidnode1: nullable Object */;
5327 val
* var3
/* : null */;
5328 short int var4
/* : Bool */;
5329 short int var5
/* : Bool */;
5330 long var6
/* : Int */;
5331 long var7
/* : Int */;
5334 var_node_list
= var
;
5336 var1
= parser_work__Parser__pop(var_p
);
5338 var_nodearraylist1
= var1
;
5339 var2
= NEW_array__Array(&type_array__Arraykernel__Object
);
5341 ((void (*)(val
*))(var2
->class->vft
[COLOR_kernel__Object__init
]))(var2
) /* init on <var2:Array[Object]>*/;
5343 var_listnode2
= var2
;
5344 var_tidnode1
= var_nodearraylist1
;
5346 if (var_tidnode1
== NULL
) {
5347 var4
= 0; /* is null */
5349 var4
= 1; /* arg is null and recv is not */
5352 var5
= ((short int (*)(val
*, val
*))(var_tidnode1
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_tidnode1
, var3
) /* != on <var_tidnode1:nullable Object>*/;
5357 array__Array__add(var_listnode2
, var_tidnode1
); /* Direct call array#Array#add on <var_listnode2:Array[Object]>*/
5361 var_node_list
= var_listnode2
;
5362 var6
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction421> */
5364 var7
= parser_work__Parser__go_to(var_p
, var6
);
5367 parser_work__Parser__push(var_p
, var7
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
5371 /* method parser#ReduceAction421#action for (self: Object, Parser) */
5372 void VIRTUAL_parser__ReduceAction421__action(val
* self
, val
* p0
) {
5373 parser__ReduceAction421__action(self
, p0
); /* Direct call parser#ReduceAction421#action on <self:Object(ReduceAction421)>*/
5376 /* method parser#ReduceAction422#action for (self: ReduceAction422, Parser) */
5377 void parser__ReduceAction422__action(val
* self
, val
* p0
) {
5378 val
* var_p
/* var p: Parser */;
5379 val
* var
/* : null */;
5380 val
* var_node_list
/* var node_list: nullable Object */;
5381 val
* var1
/* : nullable Object */;
5382 val
* var_nodearraylist4
/* var nodearraylist4: nullable Object */;
5383 val
* var2
/* : nullable Object */;
5384 val
* var_nodearraylist3
/* var nodearraylist3: nullable Object */;
5385 val
* var3
/* : nullable Object */;
5386 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
5387 val
* var4
/* : nullable Object */;
5388 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
5389 val
* var5
/* : Array[Object] */;
5390 val
* var_listnode3
/* var listnode3: Array[Object] */;
5391 val
* var_listnode1
/* var listnode1: nullable Object */;
5392 short int var6
/* : Bool */;
5395 val
* var_tidnode2
/* var tidnode2: nullable Object */;
5396 val
* var7
/* : Array[Object] */;
5397 val
* var8
/* : null */;
5398 short int var9
/* : Bool */;
5399 short int var10
/* : Bool */;
5400 long var11
/* : Int */;
5401 long var12
/* : Int */;
5404 var_node_list
= var
;
5406 var1
= parser_work__Parser__pop(var_p
);
5408 var_nodearraylist4
= var1
;
5410 var2
= parser_work__Parser__pop(var_p
);
5412 var_nodearraylist3
= var2
;
5414 var3
= parser_work__Parser__pop(var_p
);
5416 var_nodearraylist2
= var3
;
5418 var4
= parser_work__Parser__pop(var_p
);
5420 var_nodearraylist1
= var4
;
5421 var5
= NEW_array__Array(&type_array__Arraykernel__Object
);
5423 ((void (*)(val
*))(var5
->class->vft
[COLOR_kernel__Object__init
]))(var5
) /* init on <var5:Array[Object]>*/;
5425 var_listnode3
= var5
;
5426 var_listnode1
= var_nodearraylist1
;
5427 /* <var_listnode1:nullable Object> isa Array[Object] */
5428 cltype
= type_array__Arraykernel__Object
.color
;
5429 idtype
= type_array__Arraykernel__Object
.id
;
5430 if(var_listnode1
== NULL
) {
5433 if(cltype
>= var_listnode1
->type
->table_size
) {
5436 var6
= var_listnode1
->type
->type_table
[cltype
] == idtype
;
5439 if (unlikely(!var6
)) {
5440 PRINT_ERROR("Runtime error: %s", "Assert failed");
5441 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 10282);
5444 var_tidnode2
= var_nodearraylist4
;
5446 var7
= parser_work__ReduceAction__concat(self
, var_listnode3
, var_listnode1
);
5448 var_listnode3
= var7
;
5450 if (var_tidnode2
== NULL
) {
5451 var9
= 0; /* is null */
5453 var9
= 1; /* arg is null and recv is not */
5456 var10
= ((short int (*)(val
*, val
*))(var_tidnode2
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_tidnode2
, var8
) /* != on <var_tidnode2:nullable Object>*/;
5461 array__Array__add(var_listnode3
, var_tidnode2
); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
5465 var_node_list
= var_listnode3
;
5466 var11
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction422> */
5468 var12
= parser_work__Parser__go_to(var_p
, var11
);
5471 parser_work__Parser__push(var_p
, var12
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
5475 /* method parser#ReduceAction422#action for (self: Object, Parser) */
5476 void VIRTUAL_parser__ReduceAction422__action(val
* self
, val
* p0
) {
5477 parser__ReduceAction422__action(self
, p0
); /* Direct call parser#ReduceAction422#action on <self:Object(ReduceAction422)>*/
5480 /* method parser#ReduceAction423#action for (self: ReduceAction423, Parser) */
5481 void parser__ReduceAction423__action(val
* self
, val
* p0
) {
5482 val
* var_p
/* var p: Parser */;
5483 val
* var
/* : null */;
5484 val
* var_node_list
/* var node_list: nullable Object */;
5485 val
* var1
/* : nullable Object */;
5486 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
5487 val
* var2
/* : Array[Object] */;
5488 val
* var_listnode3
/* var listnode3: Array[Object] */;
5489 val
* var_tidnode4
/* var tidnode4: nullable Object */;
5490 short int var3
/* : Bool */;
5493 val
* var4
/* : AModuleName */;
5494 val
* var5
/* : null */;
5495 val
* var_pmodulenamenode1
/* var pmodulenamenode1: nullable AModuleName */;
5496 long var6
/* : Int */;
5497 long var7
/* : Int */;
5500 var_node_list
= var
;
5502 var1
= parser_work__Parser__pop(var_p
);
5504 var_nodearraylist1
= var1
;
5505 var2
= NEW_array__Array(&type_array__Arraykernel__Object
);
5507 ((void (*)(val
*))(var2
->class->vft
[COLOR_kernel__Object__init
]))(var2
) /* init on <var2:Array[Object]>*/;
5509 var_listnode3
= var2
;
5510 var_tidnode4
= var_nodearraylist1
;
5511 /* <var_tidnode4:nullable Object> isa nullable TId */
5512 cltype
= type_nullable_parser_nodes__TId
.color
;
5513 idtype
= type_nullable_parser_nodes__TId
.id
;
5514 if(var_tidnode4
== NULL
) {
5517 if(cltype
>= var_tidnode4
->type
->table_size
) {
5520 var3
= var_tidnode4
->type
->type_table
[cltype
] == idtype
;
5523 if (unlikely(!var3
)) {
5524 PRINT_ERROR("Runtime error: %s", "Assert failed");
5525 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 10300);
5528 var4
= NEW_parser_nodes__AModuleName(&type_parser_nodes__AModuleName
);
5531 parser_prod__AModuleName__init_amodulename(var4
, var5
, var_listnode3
, var_tidnode4
); /* Direct call parser_prod#AModuleName#init_amodulename on <var4:AModuleName>*/
5533 var_pmodulenamenode1
= var4
;
5534 var_node_list
= var_pmodulenamenode1
;
5535 var6
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction423> */
5537 var7
= parser_work__Parser__go_to(var_p
, var6
);
5540 parser_work__Parser__push(var_p
, var7
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
5544 /* method parser#ReduceAction423#action for (self: Object, Parser) */
5545 void VIRTUAL_parser__ReduceAction423__action(val
* self
, val
* p0
) {
5546 parser__ReduceAction423__action(self
, p0
); /* Direct call parser#ReduceAction423#action on <self:Object(ReduceAction423)>*/
5549 /* method parser#ReduceAction424#action for (self: ReduceAction424, Parser) */
5550 void parser__ReduceAction424__action(val
* self
, val
* p0
) {
5551 val
* var_p
/* var p: Parser */;
5552 val
* var
/* : null */;
5553 val
* var_node_list
/* var node_list: nullable Object */;
5554 val
* var1
/* : nullable Object */;
5555 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
5556 val
* var2
/* : nullable Object */;
5557 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
5558 val
* var3
/* : Array[Object] */;
5559 val
* var_listnode4
/* var listnode4: Array[Object] */;
5560 val
* var_listnode3
/* var listnode3: nullable Object */;
5561 short int var4
/* : Bool */;
5564 val
* var5
/* : Array[Object] */;
5565 val
* var_tidnode5
/* var tidnode5: nullable Object */;
5566 short int var6
/* : Bool */;
5569 val
* var9
/* : AModuleName */;
5570 val
* var10
/* : null */;
5571 val
* var_pmodulenamenode1
/* var pmodulenamenode1: nullable AModuleName */;
5572 long var11
/* : Int */;
5573 long var12
/* : Int */;
5576 var_node_list
= var
;
5578 var1
= parser_work__Parser__pop(var_p
);
5580 var_nodearraylist2
= var1
;
5582 var2
= parser_work__Parser__pop(var_p
);
5584 var_nodearraylist1
= var2
;
5585 var3
= NEW_array__Array(&type_array__Arraykernel__Object
);
5587 ((void (*)(val
*))(var3
->class->vft
[COLOR_kernel__Object__init
]))(var3
) /* init on <var3:Array[Object]>*/;
5589 var_listnode4
= var3
;
5590 var_listnode3
= var_nodearraylist1
;
5591 /* <var_listnode3:nullable Object> isa Array[Object] */
5592 cltype
= type_array__Arraykernel__Object
.color
;
5593 idtype
= type_array__Arraykernel__Object
.id
;
5594 if(var_listnode3
== NULL
) {
5597 if(cltype
>= var_listnode3
->type
->table_size
) {
5600 var4
= var_listnode3
->type
->type_table
[cltype
] == idtype
;
5603 if (unlikely(!var4
)) {
5604 PRINT_ERROR("Runtime error: %s", "Assert failed");
5605 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 10319);
5609 var5
= parser_work__ReduceAction__concat(self
, var_listnode4
, var_listnode3
);
5611 var_listnode4
= var5
;
5612 var_tidnode5
= var_nodearraylist2
;
5613 /* <var_tidnode5:nullable Object> isa nullable TId */
5614 cltype7
= type_nullable_parser_nodes__TId
.color
;
5615 idtype8
= type_nullable_parser_nodes__TId
.id
;
5616 if(var_tidnode5
== NULL
) {
5619 if(cltype7
>= var_tidnode5
->type
->table_size
) {
5622 var6
= var_tidnode5
->type
->type_table
[cltype7
] == idtype8
;
5625 if (unlikely(!var6
)) {
5626 PRINT_ERROR("Runtime error: %s", "Assert failed");
5627 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 10322);
5630 var9
= NEW_parser_nodes__AModuleName(&type_parser_nodes__AModuleName
);
5633 parser_prod__AModuleName__init_amodulename(var9
, var10
, var_listnode4
, var_tidnode5
); /* Direct call parser_prod#AModuleName#init_amodulename on <var9:AModuleName>*/
5635 var_pmodulenamenode1
= var9
;
5636 var_node_list
= var_pmodulenamenode1
;
5637 var11
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction424> */
5639 var12
= parser_work__Parser__go_to(var_p
, var11
);
5642 parser_work__Parser__push(var_p
, var12
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
5646 /* method parser#ReduceAction424#action for (self: Object, Parser) */
5647 void VIRTUAL_parser__ReduceAction424__action(val
* self
, val
* p0
) {
5648 parser__ReduceAction424__action(self
, p0
); /* Direct call parser#ReduceAction424#action on <self:Object(ReduceAction424)>*/
5651 /* method parser#ReduceAction425#action for (self: ReduceAction425, Parser) */
5652 void parser__ReduceAction425__action(val
* self
, val
* p0
) {
5653 val
* var_p
/* var p: Parser */;
5654 val
* var
/* : null */;
5655 val
* var_node_list
/* var node_list: nullable Object */;
5656 val
* var1
/* : nullable Object */;
5657 val
* var_nodearraylist3
/* var nodearraylist3: nullable Object */;
5658 val
* var2
/* : nullable Object */;
5659 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
5660 val
* var3
/* : nullable Object */;
5661 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
5662 val
* var4
/* : Array[Object] */;
5663 val
* var_listnode3
/* var listnode3: Array[Object] */;
5664 val
* var_tquadnode2
/* var tquadnode2: nullable Object */;
5665 short int var5
/* : Bool */;
5668 val
* var_tidnode4
/* var tidnode4: nullable Object */;
5669 short int var6
/* : Bool */;
5672 val
* var9
/* : AModuleName */;
5673 val
* var_pmodulenamenode1
/* var pmodulenamenode1: nullable AModuleName */;
5674 long var10
/* : Int */;
5675 long var11
/* : Int */;
5678 var_node_list
= var
;
5680 var1
= parser_work__Parser__pop(var_p
);
5682 var_nodearraylist3
= var1
;
5684 var2
= parser_work__Parser__pop(var_p
);
5686 var_nodearraylist2
= var2
;
5688 var3
= parser_work__Parser__pop(var_p
);
5690 var_nodearraylist1
= var3
;
5691 var4
= NEW_array__Array(&type_array__Arraykernel__Object
);
5693 ((void (*)(val
*))(var4
->class->vft
[COLOR_kernel__Object__init
]))(var4
) /* init on <var4:Array[Object]>*/;
5695 var_listnode3
= var4
;
5696 var_tquadnode2
= var_nodearraylist1
;
5697 /* <var_tquadnode2:nullable Object> isa nullable TQuad */
5698 cltype
= type_nullable_parser_nodes__TQuad
.color
;
5699 idtype
= type_nullable_parser_nodes__TQuad
.id
;
5700 if(var_tquadnode2
== NULL
) {
5703 if(cltype
>= var_tquadnode2
->type
->table_size
) {
5706 var5
= var_tquadnode2
->type
->type_table
[cltype
] == idtype
;
5709 if (unlikely(!var5
)) {
5710 PRINT_ERROR("Runtime error: %s", "Assert failed");
5711 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 10342);
5714 var_tidnode4
= var_nodearraylist3
;
5715 /* <var_tidnode4:nullable Object> isa nullable TId */
5716 cltype7
= type_nullable_parser_nodes__TId
.color
;
5717 idtype8
= type_nullable_parser_nodes__TId
.id
;
5718 if(var_tidnode4
== NULL
) {
5721 if(cltype7
>= var_tidnode4
->type
->table_size
) {
5724 var6
= var_tidnode4
->type
->type_table
[cltype7
] == idtype8
;
5727 if (unlikely(!var6
)) {
5728 PRINT_ERROR("Runtime error: %s", "Assert failed");
5729 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 10344);
5732 var9
= NEW_parser_nodes__AModuleName(&type_parser_nodes__AModuleName
);
5734 parser_prod__AModuleName__init_amodulename(var9
, var_tquadnode2
, var_listnode3
, var_tidnode4
); /* Direct call parser_prod#AModuleName#init_amodulename on <var9:AModuleName>*/
5736 var_pmodulenamenode1
= var9
;
5737 var_node_list
= var_pmodulenamenode1
;
5738 var10
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction425> */
5740 var11
= parser_work__Parser__go_to(var_p
, var10
);
5743 parser_work__Parser__push(var_p
, var11
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
5747 /* method parser#ReduceAction425#action for (self: Object, Parser) */
5748 void VIRTUAL_parser__ReduceAction425__action(val
* self
, val
* p0
) {
5749 parser__ReduceAction425__action(self
, p0
); /* Direct call parser#ReduceAction425#action on <self:Object(ReduceAction425)>*/
5752 /* method parser#ReduceAction426#action for (self: ReduceAction426, Parser) */
5753 void parser__ReduceAction426__action(val
* self
, val
* p0
) {
5754 val
* var_p
/* var p: Parser */;
5755 val
* var
/* : null */;
5756 val
* var_node_list
/* var node_list: nullable Object */;
5757 val
* var1
/* : nullable Object */;
5758 val
* var_nodearraylist4
/* var nodearraylist4: nullable Object */;
5759 val
* var2
/* : nullable Object */;
5760 val
* var_nodearraylist3
/* var nodearraylist3: nullable Object */;
5761 val
* var3
/* : nullable Object */;
5762 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
5763 val
* var4
/* : nullable Object */;
5764 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
5765 val
* var5
/* : Array[Object] */;
5766 val
* var_listnode4
/* var listnode4: Array[Object] */;
5767 val
* var_tquadnode2
/* var tquadnode2: nullable Object */;
5768 short int var6
/* : Bool */;
5771 val
* var_listnode3
/* var listnode3: nullable Object */;
5772 short int var7
/* : Bool */;
5775 val
* var10
/* : Array[Object] */;
5776 val
* var_tidnode5
/* var tidnode5: nullable Object */;
5777 short int var11
/* : Bool */;
5780 val
* var14
/* : AModuleName */;
5781 val
* var_pmodulenamenode1
/* var pmodulenamenode1: nullable AModuleName */;
5782 long var15
/* : Int */;
5783 long var16
/* : Int */;
5786 var_node_list
= var
;
5788 var1
= parser_work__Parser__pop(var_p
);
5790 var_nodearraylist4
= var1
;
5792 var2
= parser_work__Parser__pop(var_p
);
5794 var_nodearraylist3
= var2
;
5796 var3
= parser_work__Parser__pop(var_p
);
5798 var_nodearraylist2
= var3
;
5800 var4
= parser_work__Parser__pop(var_p
);
5802 var_nodearraylist1
= var4
;
5803 var5
= NEW_array__Array(&type_array__Arraykernel__Object
);
5805 ((void (*)(val
*))(var5
->class->vft
[COLOR_kernel__Object__init
]))(var5
) /* init on <var5:Array[Object]>*/;
5807 var_listnode4
= var5
;
5808 var_tquadnode2
= var_nodearraylist1
;
5809 /* <var_tquadnode2:nullable Object> isa nullable TQuad */
5810 cltype
= type_nullable_parser_nodes__TQuad
.color
;
5811 idtype
= type_nullable_parser_nodes__TQuad
.id
;
5812 if(var_tquadnode2
== NULL
) {
5815 if(cltype
>= var_tquadnode2
->type
->table_size
) {
5818 var6
= var_tquadnode2
->type
->type_table
[cltype
] == idtype
;
5821 if (unlikely(!var6
)) {
5822 PRINT_ERROR("Runtime error: %s", "Assert failed");
5823 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 10365);
5826 var_listnode3
= var_nodearraylist3
;
5827 /* <var_listnode3:nullable Object> isa Array[Object] */
5828 cltype8
= type_array__Arraykernel__Object
.color
;
5829 idtype9
= type_array__Arraykernel__Object
.id
;
5830 if(var_listnode3
== NULL
) {
5833 if(cltype8
>= var_listnode3
->type
->table_size
) {
5836 var7
= var_listnode3
->type
->type_table
[cltype8
] == idtype9
;
5839 if (unlikely(!var7
)) {
5840 PRINT_ERROR("Runtime error: %s", "Assert failed");
5841 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 10367);
5845 var10
= parser_work__ReduceAction__concat(self
, var_listnode4
, var_listnode3
);
5847 var_listnode4
= var10
;
5848 var_tidnode5
= var_nodearraylist4
;
5849 /* <var_tidnode5:nullable Object> isa nullable TId */
5850 cltype12
= type_nullable_parser_nodes__TId
.color
;
5851 idtype13
= type_nullable_parser_nodes__TId
.id
;
5852 if(var_tidnode5
== NULL
) {
5855 if(cltype12
>= var_tidnode5
->type
->table_size
) {
5858 var11
= var_tidnode5
->type
->type_table
[cltype12
] == idtype13
;
5861 if (unlikely(!var11
)) {
5862 PRINT_ERROR("Runtime error: %s", "Assert failed");
5863 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 10370);
5866 var14
= NEW_parser_nodes__AModuleName(&type_parser_nodes__AModuleName
);
5868 parser_prod__AModuleName__init_amodulename(var14
, var_tquadnode2
, var_listnode4
, var_tidnode5
); /* Direct call parser_prod#AModuleName#init_amodulename on <var14:AModuleName>*/
5870 var_pmodulenamenode1
= var14
;
5871 var_node_list
= var_pmodulenamenode1
;
5872 var15
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction426> */
5874 var16
= parser_work__Parser__go_to(var_p
, var15
);
5877 parser_work__Parser__push(var_p
, var16
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
5881 /* method parser#ReduceAction426#action for (self: Object, Parser) */
5882 void VIRTUAL_parser__ReduceAction426__action(val
* self
, val
* p0
) {
5883 parser__ReduceAction426__action(self
, p0
); /* Direct call parser#ReduceAction426#action on <self:Object(ReduceAction426)>*/
5886 /* method parser#ReduceAction427#action for (self: ReduceAction427, Parser) */
5887 void parser__ReduceAction427__action(val
* self
, val
* p0
) {
5888 val
* var_p
/* var p: Parser */;
5889 val
* var
/* : null */;
5890 val
* var_node_list
/* var node_list: nullable Object */;
5891 val
* var1
/* : nullable Object */;
5892 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
5893 val
* var2
/* : Array[Object] */;
5894 val
* var_listnode2
/* var listnode2: Array[Object] */;
5895 val
* var_tclassidnode3
/* var tclassidnode3: nullable Object */;
5896 short int var3
/* : Bool */;
5899 val
* var4
/* : AQualified */;
5900 val
* var_pqualifiednode1
/* var pqualifiednode1: nullable AQualified */;
5901 long var5
/* : Int */;
5902 long var6
/* : Int */;
5905 var_node_list
= var
;
5907 var1
= parser_work__Parser__pop(var_p
);
5909 var_nodearraylist1
= var1
;
5910 var2
= NEW_array__Array(&type_array__Arraykernel__Object
);
5912 ((void (*)(val
*))(var2
->class->vft
[COLOR_kernel__Object__init
]))(var2
) /* init on <var2:Array[Object]>*/;
5914 var_listnode2
= var2
;
5915 var_tclassidnode3
= var_nodearraylist1
;
5916 /* <var_tclassidnode3:nullable Object> isa nullable TClassid */
5917 cltype
= type_nullable_parser_nodes__TClassid
.color
;
5918 idtype
= type_nullable_parser_nodes__TClassid
.id
;
5919 if(var_tclassidnode3
== NULL
) {
5922 if(cltype
>= var_tclassidnode3
->type
->table_size
) {
5925 var3
= var_tclassidnode3
->type
->type_table
[cltype
] == idtype
;
5928 if (unlikely(!var3
)) {
5929 PRINT_ERROR("Runtime error: %s", "Assert failed");
5930 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 10388);
5933 var4
= NEW_parser_nodes__AQualified(&type_parser_nodes__AQualified
);
5935 parser_prod__AQualified__init_aqualified(var4
, var_listnode2
, var_tclassidnode3
); /* Direct call parser_prod#AQualified#init_aqualified on <var4:AQualified>*/
5937 var_pqualifiednode1
= var4
;
5938 var_node_list
= var_pqualifiednode1
;
5939 var5
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction427> */
5941 var6
= parser_work__Parser__go_to(var_p
, var5
);
5944 parser_work__Parser__push(var_p
, var6
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
5948 /* method parser#ReduceAction427#action for (self: Object, Parser) */
5949 void VIRTUAL_parser__ReduceAction427__action(val
* self
, val
* p0
) {
5950 parser__ReduceAction427__action(self
, p0
); /* Direct call parser#ReduceAction427#action on <self:Object(ReduceAction427)>*/
5953 /* method parser#ReduceAction428#action for (self: ReduceAction428, Parser) */
5954 void parser__ReduceAction428__action(val
* self
, val
* p0
) {
5955 val
* var_p
/* var p: Parser */;
5956 val
* var
/* : null */;
5957 val
* var_node_list
/* var node_list: nullable Object */;
5958 val
* var1
/* : nullable Object */;
5959 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
5960 val
* var2
/* : nullable Object */;
5961 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
5962 val
* var3
/* : Array[Object] */;
5963 val
* var_listnode3
/* var listnode3: Array[Object] */;
5964 val
* var_listnode2
/* var listnode2: nullable Object */;
5965 short int var4
/* : Bool */;
5968 val
* var5
/* : Array[Object] */;
5969 val
* var_tclassidnode4
/* var tclassidnode4: nullable Object */;
5970 short int var6
/* : Bool */;
5973 val
* var9
/* : AQualified */;
5974 val
* var_pqualifiednode1
/* var pqualifiednode1: nullable AQualified */;
5975 long var10
/* : Int */;
5976 long var11
/* : Int */;
5979 var_node_list
= var
;
5981 var1
= parser_work__Parser__pop(var_p
);
5983 var_nodearraylist2
= var1
;
5985 var2
= parser_work__Parser__pop(var_p
);
5987 var_nodearraylist1
= var2
;
5988 var3
= NEW_array__Array(&type_array__Arraykernel__Object
);
5990 ((void (*)(val
*))(var3
->class->vft
[COLOR_kernel__Object__init
]))(var3
) /* init on <var3:Array[Object]>*/;
5992 var_listnode3
= var3
;
5993 var_listnode2
= var_nodearraylist1
;
5994 /* <var_listnode2:nullable Object> isa Array[Object] */
5995 cltype
= type_array__Arraykernel__Object
.color
;
5996 idtype
= type_array__Arraykernel__Object
.id
;
5997 if(var_listnode2
== NULL
) {
6000 if(cltype
>= var_listnode2
->type
->table_size
) {
6003 var4
= var_listnode2
->type
->type_table
[cltype
] == idtype
;
6006 if (unlikely(!var4
)) {
6007 PRINT_ERROR("Runtime error: %s", "Assert failed");
6008 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 10406);
6012 var5
= parser_work__ReduceAction__concat(self
, var_listnode3
, var_listnode2
);
6014 var_listnode3
= var5
;
6015 var_tclassidnode4
= var_nodearraylist2
;
6016 /* <var_tclassidnode4:nullable Object> isa nullable TClassid */
6017 cltype7
= type_nullable_parser_nodes__TClassid
.color
;
6018 idtype8
= type_nullable_parser_nodes__TClassid
.id
;
6019 if(var_tclassidnode4
== NULL
) {
6022 if(cltype7
>= var_tclassidnode4
->type
->table_size
) {
6025 var6
= var_tclassidnode4
->type
->type_table
[cltype7
] == idtype8
;
6028 if (unlikely(!var6
)) {
6029 PRINT_ERROR("Runtime error: %s", "Assert failed");
6030 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 10409);
6033 var9
= NEW_parser_nodes__AQualified(&type_parser_nodes__AQualified
);
6035 parser_prod__AQualified__init_aqualified(var9
, var_listnode3
, var_tclassidnode4
); /* Direct call parser_prod#AQualified#init_aqualified on <var9:AQualified>*/
6037 var_pqualifiednode1
= var9
;
6038 var_node_list
= var_pqualifiednode1
;
6039 var10
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction428> */
6041 var11
= parser_work__Parser__go_to(var_p
, var10
);
6044 parser_work__Parser__push(var_p
, var11
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6048 /* method parser#ReduceAction428#action for (self: Object, Parser) */
6049 void VIRTUAL_parser__ReduceAction428__action(val
* self
, val
* p0
) {
6050 parser__ReduceAction428__action(self
, p0
); /* Direct call parser#ReduceAction428#action on <self:Object(ReduceAction428)>*/
6053 /* method parser#ReduceAction429#action for (self: ReduceAction429, Parser) */
6054 void parser__ReduceAction429__action(val
* self
, val
* p0
) {
6055 val
* var_p
/* var p: Parser */;
6056 val
* var
/* : null */;
6057 val
* var_node_list
/* var node_list: nullable Object */;
6058 val
* var1
/* : nullable Object */;
6059 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
6060 val
* var2
/* : Array[Object] */;
6061 val
* var_listnode3
/* var listnode3: Array[Object] */;
6062 val
* var_listnode2
/* var listnode2: nullable Object */;
6063 short int var3
/* : Bool */;
6066 val
* var4
/* : Array[Object] */;
6067 val
* var5
/* : AQualified */;
6068 val
* var6
/* : null */;
6069 val
* var_pqualifiednode1
/* var pqualifiednode1: nullable AQualified */;
6070 long var7
/* : Int */;
6071 long var8
/* : Int */;
6074 var_node_list
= var
;
6076 var1
= parser_work__Parser__pop(var_p
);
6078 var_nodearraylist1
= var1
;
6079 var2
= NEW_array__Array(&type_array__Arraykernel__Object
);
6081 ((void (*)(val
*))(var2
->class->vft
[COLOR_kernel__Object__init
]))(var2
) /* init on <var2:Array[Object]>*/;
6083 var_listnode3
= var2
;
6084 var_listnode2
= var_nodearraylist1
;
6085 /* <var_listnode2:nullable Object> isa Array[Object] */
6086 cltype
= type_array__Arraykernel__Object
.color
;
6087 idtype
= type_array__Arraykernel__Object
.id
;
6088 if(var_listnode2
== NULL
) {
6091 if(cltype
>= var_listnode2
->type
->table_size
) {
6094 var3
= var_listnode2
->type
->type_table
[cltype
] == idtype
;
6097 if (unlikely(!var3
)) {
6098 PRINT_ERROR("Runtime error: %s", "Assert failed");
6099 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 10426);
6103 var4
= parser_work__ReduceAction__concat(self
, var_listnode3
, var_listnode2
);
6105 var_listnode3
= var4
;
6106 var5
= NEW_parser_nodes__AQualified(&type_parser_nodes__AQualified
);
6109 parser_prod__AQualified__init_aqualified(var5
, var_listnode3
, var6
); /* Direct call parser_prod#AQualified#init_aqualified on <var5:AQualified>*/
6111 var_pqualifiednode1
= var5
;
6112 var_node_list
= var_pqualifiednode1
;
6113 var7
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction429> */
6115 var8
= parser_work__Parser__go_to(var_p
, var7
);
6118 parser_work__Parser__push(var_p
, var8
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6122 /* method parser#ReduceAction429#action for (self: Object, Parser) */
6123 void VIRTUAL_parser__ReduceAction429__action(val
* self
, val
* p0
) {
6124 parser__ReduceAction429__action(self
, p0
); /* Direct call parser#ReduceAction429#action on <self:Object(ReduceAction429)>*/
6127 /* method parser#ReduceAction431#action for (self: ReduceAction431, Parser) */
6128 void parser__ReduceAction431__action(val
* self
, val
* p0
) {
6129 val
* var_p
/* var p: Parser */;
6130 val
* var
/* : null */;
6131 val
* var_node_list
/* var node_list: nullable Object */;
6132 val
* var1
/* : nullable Object */;
6133 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
6134 val
* var_tclassidnode1
/* var tclassidnode1: nullable Object */;
6135 long var2
/* : Int */;
6136 long var3
/* : Int */;
6139 var_node_list
= var
;
6141 var1
= parser_work__Parser__pop(var_p
);
6143 var_nodearraylist1
= var1
;
6144 var_tclassidnode1
= var_nodearraylist1
;
6145 var_node_list
= var_tclassidnode1
;
6146 var2
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction431> */
6148 var3
= parser_work__Parser__go_to(var_p
, var2
);
6151 parser_work__Parser__push(var_p
, var3
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6155 /* method parser#ReduceAction431#action for (self: Object, Parser) */
6156 void VIRTUAL_parser__ReduceAction431__action(val
* self
, val
* p0
) {
6157 parser__ReduceAction431__action(self
, p0
); /* Direct call parser#ReduceAction431#action on <self:Object(ReduceAction431)>*/
6160 /* method parser#ReduceAction432#action for (self: ReduceAction432, Parser) */
6161 void parser__ReduceAction432__action(val
* self
, val
* p0
) {
6162 val
* var_p
/* var p: Parser */;
6163 val
* var
/* : null */;
6164 val
* var_node_list
/* var node_list: nullable Object */;
6165 val
* var1
/* : nullable Object */;
6166 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
6167 val
* var2
/* : nullable Object */;
6168 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
6169 val
* var_tclassidnode1
/* var tclassidnode1: nullable Object */;
6170 long var3
/* : Int */;
6171 long var4
/* : Int */;
6174 var_node_list
= var
;
6176 var1
= parser_work__Parser__pop(var_p
);
6178 var_nodearraylist2
= var1
;
6180 var2
= parser_work__Parser__pop(var_p
);
6182 var_nodearraylist1
= var2
;
6183 var_tclassidnode1
= var_nodearraylist2
;
6184 var_node_list
= var_tclassidnode1
;
6185 var3
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction432> */
6187 var4
= parser_work__Parser__go_to(var_p
, var3
);
6190 parser_work__Parser__push(var_p
, var4
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6194 /* method parser#ReduceAction432#action for (self: Object, Parser) */
6195 void VIRTUAL_parser__ReduceAction432__action(val
* self
, val
* p0
) {
6196 parser__ReduceAction432__action(self
, p0
); /* Direct call parser#ReduceAction432#action on <self:Object(ReduceAction432)>*/
6199 /* method parser#ReduceAction433#action for (self: ReduceAction433, Parser) */
6200 void parser__ReduceAction433__action(val
* self
, val
* p0
) {
6201 val
* var_p
/* var p: Parser */;
6202 val
* var
/* : null */;
6203 val
* var_node_list
/* var node_list: nullable Object */;
6204 val
* var1
/* : nullable Object */;
6205 val
* var_nodearraylist3
/* var nodearraylist3: nullable Object */;
6206 val
* var2
/* : nullable Object */;
6207 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
6208 val
* var3
/* : nullable Object */;
6209 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
6210 val
* var_tclassidnode1
/* var tclassidnode1: nullable Object */;
6211 long var4
/* : Int */;
6212 long var5
/* : Int */;
6215 var_node_list
= var
;
6217 var1
= parser_work__Parser__pop(var_p
);
6219 var_nodearraylist3
= var1
;
6221 var2
= parser_work__Parser__pop(var_p
);
6223 var_nodearraylist2
= var2
;
6225 var3
= parser_work__Parser__pop(var_p
);
6227 var_nodearraylist1
= var3
;
6228 var_tclassidnode1
= var_nodearraylist3
;
6229 var_node_list
= var_tclassidnode1
;
6230 var4
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction433> */
6232 var5
= parser_work__Parser__go_to(var_p
, var4
);
6235 parser_work__Parser__push(var_p
, var5
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6239 /* method parser#ReduceAction433#action for (self: Object, Parser) */
6240 void VIRTUAL_parser__ReduceAction433__action(val
* self
, val
* p0
) {
6241 parser__ReduceAction433__action(self
, p0
); /* Direct call parser#ReduceAction433#action on <self:Object(ReduceAction433)>*/
6244 /* method parser#ReduceAction435#action for (self: ReduceAction435, Parser) */
6245 void parser__ReduceAction435__action(val
* self
, val
* p0
) {
6246 val
* var_p
/* var p: Parser */;
6247 val
* var
/* : null */;
6248 val
* var_node_list
/* var node_list: nullable Object */;
6249 val
* var1
/* : nullable Object */;
6250 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
6251 val
* var_pmethidnode1
/* var pmethidnode1: nullable Object */;
6252 long var2
/* : Int */;
6253 long var3
/* : Int */;
6256 var_node_list
= var
;
6258 var1
= parser_work__Parser__pop(var_p
);
6260 var_nodearraylist1
= var1
;
6261 var_pmethidnode1
= var_nodearraylist1
;
6262 var_node_list
= var_pmethidnode1
;
6263 var2
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction435> */
6265 var3
= parser_work__Parser__go_to(var_p
, var2
);
6268 parser_work__Parser__push(var_p
, var3
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6272 /* method parser#ReduceAction435#action for (self: Object, Parser) */
6273 void VIRTUAL_parser__ReduceAction435__action(val
* self
, val
* p0
) {
6274 parser__ReduceAction435__action(self
, p0
); /* Direct call parser#ReduceAction435#action on <self:Object(ReduceAction435)>*/
6277 /* method parser#ReduceAction436#action for (self: ReduceAction436, Parser) */
6278 void parser__ReduceAction436__action(val
* self
, val
* p0
) {
6279 val
* var_p
/* var p: Parser */;
6280 val
* var
/* : null */;
6281 val
* var_node_list
/* var node_list: nullable Object */;
6282 val
* var1
/* : nullable Object */;
6283 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
6284 val
* var2
/* : nullable Object */;
6285 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
6286 val
* var_pmethidnode1
/* var pmethidnode1: nullable Object */;
6287 long var3
/* : Int */;
6288 long var4
/* : Int */;
6291 var_node_list
= var
;
6293 var1
= parser_work__Parser__pop(var_p
);
6295 var_nodearraylist2
= var1
;
6297 var2
= parser_work__Parser__pop(var_p
);
6299 var_nodearraylist1
= var2
;
6300 var_pmethidnode1
= var_nodearraylist2
;
6301 var_node_list
= var_pmethidnode1
;
6302 var3
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction436> */
6304 var4
= parser_work__Parser__go_to(var_p
, var3
);
6307 parser_work__Parser__push(var_p
, var4
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6311 /* method parser#ReduceAction436#action for (self: Object, Parser) */
6312 void VIRTUAL_parser__ReduceAction436__action(val
* self
, val
* p0
) {
6313 parser__ReduceAction436__action(self
, p0
); /* Direct call parser#ReduceAction436#action on <self:Object(ReduceAction436)>*/
6316 /* method parser#ReduceAction437#action for (self: ReduceAction437, Parser) */
6317 void parser__ReduceAction437__action(val
* self
, val
* p0
) {
6318 val
* var_p
/* var p: Parser */;
6319 val
* var
/* : null */;
6320 val
* var_node_list
/* var node_list: nullable Object */;
6321 val
* var1
/* : nullable Object */;
6322 val
* var_nodearraylist3
/* var nodearraylist3: nullable Object */;
6323 val
* var2
/* : nullable Object */;
6324 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
6325 val
* var3
/* : nullable Object */;
6326 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
6327 val
* var_pmethidnode1
/* var pmethidnode1: nullable Object */;
6328 long var4
/* : Int */;
6329 long var5
/* : Int */;
6332 var_node_list
= var
;
6334 var1
= parser_work__Parser__pop(var_p
);
6336 var_nodearraylist3
= var1
;
6338 var2
= parser_work__Parser__pop(var_p
);
6340 var_nodearraylist2
= var2
;
6342 var3
= parser_work__Parser__pop(var_p
);
6344 var_nodearraylist1
= var3
;
6345 var_pmethidnode1
= var_nodearraylist3
;
6346 var_node_list
= var_pmethidnode1
;
6347 var4
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction437> */
6349 var5
= parser_work__Parser__go_to(var_p
, var4
);
6352 parser_work__Parser__push(var_p
, var5
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6356 /* method parser#ReduceAction437#action for (self: Object, Parser) */
6357 void VIRTUAL_parser__ReduceAction437__action(val
* self
, val
* p0
) {
6358 parser__ReduceAction437__action(self
, p0
); /* Direct call parser#ReduceAction437#action on <self:Object(ReduceAction437)>*/
6361 /* method parser#ReduceAction439#action for (self: ReduceAction439, Parser) */
6362 void parser__ReduceAction439__action(val
* self
, val
* p0
) {
6363 val
* var_p
/* var p: Parser */;
6364 val
* var
/* : null */;
6365 val
* var_node_list
/* var node_list: nullable Object */;
6366 val
* var1
/* : nullable Object */;
6367 val
* var_nodearraylist3
/* var nodearraylist3: nullable Object */;
6368 val
* var2
/* : nullable Object */;
6369 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
6370 val
* var3
/* : nullable Object */;
6371 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
6372 val
* var_tidnode1
/* var tidnode1: nullable Object */;
6373 long var4
/* : Int */;
6374 long var5
/* : Int */;
6377 var_node_list
= var
;
6379 var1
= parser_work__Parser__pop(var_p
);
6381 var_nodearraylist3
= var1
;
6383 var2
= parser_work__Parser__pop(var_p
);
6385 var_nodearraylist2
= var2
;
6387 var3
= parser_work__Parser__pop(var_p
);
6389 var_nodearraylist1
= var3
;
6390 var_tidnode1
= var_nodearraylist1
;
6391 var_node_list
= var_tidnode1
;
6392 var4
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction439> */
6394 var5
= parser_work__Parser__go_to(var_p
, var4
);
6397 parser_work__Parser__push(var_p
, var5
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6401 /* method parser#ReduceAction439#action for (self: Object, Parser) */
6402 void VIRTUAL_parser__ReduceAction439__action(val
* self
, val
* p0
) {
6403 parser__ReduceAction439__action(self
, p0
); /* Direct call parser#ReduceAction439#action on <self:Object(ReduceAction439)>*/
6406 /* method parser#ReduceAction440#action for (self: ReduceAction440, Parser) */
6407 void parser__ReduceAction440__action(val
* self
, val
* p0
) {
6408 val
* var_p
/* var p: Parser */;
6409 val
* var
/* : null */;
6410 val
* var_node_list
/* var node_list: nullable Object */;
6411 val
* var1
/* : nullable Object */;
6412 val
* var_nodearraylist3
/* var nodearraylist3: nullable Object */;
6413 val
* var2
/* : nullable Object */;
6414 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
6415 val
* var3
/* : nullable Object */;
6416 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
6417 val
* var_tclassidnode1
/* var tclassidnode1: nullable Object */;
6418 long var4
/* : Int */;
6419 long var5
/* : Int */;
6422 var_node_list
= var
;
6424 var1
= parser_work__Parser__pop(var_p
);
6426 var_nodearraylist3
= var1
;
6428 var2
= parser_work__Parser__pop(var_p
);
6430 var_nodearraylist2
= var2
;
6432 var3
= parser_work__Parser__pop(var_p
);
6434 var_nodearraylist1
= var3
;
6435 var_tclassidnode1
= var_nodearraylist1
;
6436 var_node_list
= var_tclassidnode1
;
6437 var4
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction440> */
6439 var5
= parser_work__Parser__go_to(var_p
, var4
);
6442 parser_work__Parser__push(var_p
, var5
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6446 /* method parser#ReduceAction440#action for (self: Object, Parser) */
6447 void VIRTUAL_parser__ReduceAction440__action(val
* self
, val
* p0
) {
6448 parser__ReduceAction440__action(self
, p0
); /* Direct call parser#ReduceAction440#action on <self:Object(ReduceAction440)>*/
6451 /* method parser#ReduceAction442#action for (self: ReduceAction442, Parser) */
6452 void parser__ReduceAction442__action(val
* self
, val
* p0
) {
6453 val
* var_p
/* var p: Parser */;
6454 val
* var
/* : null */;
6455 val
* var_node_list
/* var node_list: nullable Object */;
6456 val
* var1
/* : nullable Object */;
6457 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
6458 val
* var_tkwendnode1
/* var tkwendnode1: nullable Object */;
6459 long var2
/* : Int */;
6460 long var3
/* : Int */;
6463 var_node_list
= var
;
6465 var1
= parser_work__Parser__pop(var_p
);
6467 var_nodearraylist1
= var1
;
6468 var_tkwendnode1
= var_nodearraylist1
;
6469 var_node_list
= var_tkwendnode1
;
6470 var2
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction442> */
6472 var3
= parser_work__Parser__go_to(var_p
, var2
);
6475 parser_work__Parser__push(var_p
, var3
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6479 /* method parser#ReduceAction442#action for (self: Object, Parser) */
6480 void VIRTUAL_parser__ReduceAction442__action(val
* self
, val
* p0
) {
6481 parser__ReduceAction442__action(self
, p0
); /* Direct call parser#ReduceAction442#action on <self:Object(ReduceAction442)>*/
6484 /* method parser#ReduceAction443#action for (self: ReduceAction443, Parser) */
6485 void parser__ReduceAction443__action(val
* self
, val
* p0
) {
6486 val
* var_p
/* var p: Parser */;
6487 val
* var
/* : null */;
6488 val
* var_node_list
/* var node_list: nullable Object */;
6489 val
* var1
/* : nullable Object */;
6490 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
6491 long var2
/* : Int */;
6492 long var3
/* : Int */;
6495 var_node_list
= var
;
6497 var1
= parser_work__Parser__pop(var_p
);
6499 var_nodearraylist1
= var1
;
6500 var2
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction443> */
6502 var3
= parser_work__Parser__go_to(var_p
, var2
);
6505 parser_work__Parser__push(var_p
, var3
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6509 /* method parser#ReduceAction443#action for (self: Object, Parser) */
6510 void VIRTUAL_parser__ReduceAction443__action(val
* self
, val
* p0
) {
6511 parser__ReduceAction443__action(self
, p0
); /* Direct call parser#ReduceAction443#action on <self:Object(ReduceAction443)>*/
6514 /* method parser#ReduceAction445#action for (self: ReduceAction445, Parser) */
6515 void parser__ReduceAction445__action(val
* self
, val
* p0
) {
6516 val
* var_p
/* var p: Parser */;
6517 val
* var
/* : null */;
6518 val
* var_node_list
/* var node_list: nullable Object */;
6519 val
* var1
/* : nullable Object */;
6520 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
6521 val
* var2
/* : Array[Object] */;
6522 val
* var_listnode3
/* var listnode3: Array[Object] */;
6523 val
* var_listnode2
/* var listnode2: nullable Object */;
6524 short int var3
/* : Bool */;
6527 val
* var4
/* : Array[Object] */;
6528 val
* var5
/* : ADoc */;
6529 val
* var_pdocnode1
/* var pdocnode1: nullable ADoc */;
6530 long var6
/* : Int */;
6531 long var7
/* : Int */;
6534 var_node_list
= var
;
6536 var1
= parser_work__Parser__pop(var_p
);
6538 var_nodearraylist1
= var1
;
6539 var2
= NEW_array__Array(&type_array__Arraykernel__Object
);
6541 ((void (*)(val
*))(var2
->class->vft
[COLOR_kernel__Object__init
]))(var2
) /* init on <var2:Array[Object]>*/;
6543 var_listnode3
= var2
;
6544 var_listnode2
= var_nodearraylist1
;
6545 /* <var_listnode2:nullable Object> isa Array[Object] */
6546 cltype
= type_array__Arraykernel__Object
.color
;
6547 idtype
= type_array__Arraykernel__Object
.id
;
6548 if(var_listnode2
== NULL
) {
6551 if(cltype
>= var_listnode2
->type
->table_size
) {
6554 var3
= var_listnode2
->type
->type_table
[cltype
] == idtype
;
6557 if (unlikely(!var3
)) {
6558 PRINT_ERROR("Runtime error: %s", "Assert failed");
6559 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 10562);
6563 var4
= parser_work__ReduceAction__concat(self
, var_listnode3
, var_listnode2
);
6565 var_listnode3
= var4
;
6566 var5
= NEW_parser_nodes__ADoc(&type_parser_nodes__ADoc
);
6568 parser_prod__ADoc__init_adoc(var5
, var_listnode3
); /* Direct call parser_prod#ADoc#init_adoc on <var5:ADoc>*/
6570 var_pdocnode1
= var5
;
6571 var_node_list
= var_pdocnode1
;
6572 var6
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction445> */
6574 var7
= parser_work__Parser__go_to(var_p
, var6
);
6577 parser_work__Parser__push(var_p
, var7
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6581 /* method parser#ReduceAction445#action for (self: Object, Parser) */
6582 void VIRTUAL_parser__ReduceAction445__action(val
* self
, val
* p0
) {
6583 parser__ReduceAction445__action(self
, p0
); /* Direct call parser#ReduceAction445#action on <self:Object(ReduceAction445)>*/
6586 /* method parser#ReduceAction446#action for (self: ReduceAction446, Parser) */
6587 void parser__ReduceAction446__action(val
* self
, val
* p0
) {
6588 val
* var_p
/* var p: Parser */;
6589 val
* var
/* : null */;
6590 val
* var_node_list
/* var node_list: nullable Object */;
6591 val
* var1
/* : nullable Object */;
6592 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
6593 val
* var2
/* : nullable Object */;
6594 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
6595 val
* var3
/* : Array[Object] */;
6596 val
* var_listnode3
/* var listnode3: Array[Object] */;
6597 val
* var_listnode2
/* var listnode2: nullable Object */;
6598 short int var4
/* : Bool */;
6601 val
* var5
/* : Array[Object] */;
6602 val
* var6
/* : ADoc */;
6603 val
* var_pdocnode1
/* var pdocnode1: nullable ADoc */;
6604 long var7
/* : Int */;
6605 long var8
/* : Int */;
6608 var_node_list
= var
;
6610 var1
= parser_work__Parser__pop(var_p
);
6612 var_nodearraylist2
= var1
;
6614 var2
= parser_work__Parser__pop(var_p
);
6616 var_nodearraylist1
= var2
;
6617 var3
= NEW_array__Array(&type_array__Arraykernel__Object
);
6619 ((void (*)(val
*))(var3
->class->vft
[COLOR_kernel__Object__init
]))(var3
) /* init on <var3:Array[Object]>*/;
6621 var_listnode3
= var3
;
6622 var_listnode2
= var_nodearraylist2
;
6623 /* <var_listnode2:nullable Object> isa Array[Object] */
6624 cltype
= type_array__Arraykernel__Object
.color
;
6625 idtype
= type_array__Arraykernel__Object
.id
;
6626 if(var_listnode2
== NULL
) {
6629 if(cltype
>= var_listnode2
->type
->table_size
) {
6632 var4
= var_listnode2
->type
->type_table
[cltype
] == idtype
;
6635 if (unlikely(!var4
)) {
6636 PRINT_ERROR("Runtime error: %s", "Assert failed");
6637 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 10580);
6641 var5
= parser_work__ReduceAction__concat(self
, var_listnode3
, var_listnode2
);
6643 var_listnode3
= var5
;
6644 var6
= NEW_parser_nodes__ADoc(&type_parser_nodes__ADoc
);
6646 parser_prod__ADoc__init_adoc(var6
, var_listnode3
); /* Direct call parser_prod#ADoc#init_adoc on <var6:ADoc>*/
6648 var_pdocnode1
= var6
;
6649 var_node_list
= var_pdocnode1
;
6650 var7
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction446> */
6652 var8
= parser_work__Parser__go_to(var_p
, var7
);
6655 parser_work__Parser__push(var_p
, var8
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6659 /* method parser#ReduceAction446#action for (self: Object, Parser) */
6660 void VIRTUAL_parser__ReduceAction446__action(val
* self
, val
* p0
) {
6661 parser__ReduceAction446__action(self
, p0
); /* Direct call parser#ReduceAction446#action on <self:Object(ReduceAction446)>*/
6664 /* method parser#ReduceAction449#action for (self: ReduceAction449, Parser) */
6665 void parser__ReduceAction449__action(val
* self
, val
* p0
) {
6666 val
* var_p
/* var p: Parser */;
6667 val
* var
/* : null */;
6668 val
* var_node_list
/* var node_list: nullable Object */;
6669 val
* var1
/* : nullable Object */;
6670 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
6671 val
* var_pdocnode1
/* var pdocnode1: nullable Object */;
6672 long var2
/* : Int */;
6673 long var3
/* : Int */;
6676 var_node_list
= var
;
6678 var1
= parser_work__Parser__pop(var_p
);
6680 var_nodearraylist1
= var1
;
6681 var_pdocnode1
= var_nodearraylist1
;
6682 var_node_list
= var_pdocnode1
;
6683 var2
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction449> */
6685 var3
= parser_work__Parser__go_to(var_p
, var2
);
6688 parser_work__Parser__push(var_p
, var3
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6692 /* method parser#ReduceAction449#action for (self: Object, Parser) */
6693 void VIRTUAL_parser__ReduceAction449__action(val
* self
, val
* p0
) {
6694 parser__ReduceAction449__action(self
, p0
); /* Direct call parser#ReduceAction449#action on <self:Object(ReduceAction449)>*/
6697 /* method parser#ReduceAction450#action for (self: ReduceAction450, Parser) */
6698 void parser__ReduceAction450__action(val
* self
, val
* p0
) {
6699 val
* var_p
/* var p: Parser */;
6700 val
* var
/* : null */;
6701 val
* var_node_list
/* var node_list: nullable Object */;
6702 val
* var1
/* : nullable Object */;
6703 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
6704 val
* var2
/* : nullable Object */;
6705 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
6706 long var3
/* : Int */;
6707 long var4
/* : Int */;
6710 var_node_list
= var
;
6712 var1
= parser_work__Parser__pop(var_p
);
6714 var_nodearraylist2
= var1
;
6716 var2
= parser_work__Parser__pop(var_p
);
6718 var_nodearraylist1
= var2
;
6719 var3
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction450> */
6721 var4
= parser_work__Parser__go_to(var_p
, var3
);
6724 parser_work__Parser__push(var_p
, var4
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6728 /* method parser#ReduceAction450#action for (self: Object, Parser) */
6729 void VIRTUAL_parser__ReduceAction450__action(val
* self
, val
* p0
) {
6730 parser__ReduceAction450__action(self
, p0
); /* Direct call parser#ReduceAction450#action on <self:Object(ReduceAction450)>*/
6733 /* method parser#ReduceAction451#action for (self: ReduceAction451, Parser) */
6734 void parser__ReduceAction451__action(val
* self
, val
* p0
) {
6735 val
* var_p
/* var p: Parser */;
6736 val
* var
/* : null */;
6737 val
* var_node_list
/* var node_list: nullable Object */;
6738 val
* var1
/* : nullable Object */;
6739 val
* var_nodearraylist3
/* var nodearraylist3: nullable Object */;
6740 val
* var2
/* : nullable Object */;
6741 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
6742 val
* var3
/* : nullable Object */;
6743 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
6744 long var4
/* : Int */;
6745 long var5
/* : Int */;
6748 var_node_list
= var
;
6750 var1
= parser_work__Parser__pop(var_p
);
6752 var_nodearraylist3
= var1
;
6754 var2
= parser_work__Parser__pop(var_p
);
6756 var_nodearraylist2
= var2
;
6758 var3
= parser_work__Parser__pop(var_p
);
6760 var_nodearraylist1
= var3
;
6761 var4
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction451> */
6763 var5
= parser_work__Parser__go_to(var_p
, var4
);
6766 parser_work__Parser__push(var_p
, var5
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6770 /* method parser#ReduceAction451#action for (self: Object, Parser) */
6771 void VIRTUAL_parser__ReduceAction451__action(val
* self
, val
* p0
) {
6772 parser__ReduceAction451__action(self
, p0
); /* Direct call parser#ReduceAction451#action on <self:Object(ReduceAction451)>*/
6775 /* method parser#ReduceAction780#action for (self: ReduceAction780, Parser) */
6776 void parser__ReduceAction780__action(val
* self
, val
* p0
) {
6777 val
* var_p
/* var p: Parser */;
6778 val
* var
/* : null */;
6779 val
* var_node_list
/* var node_list: nullable Object */;
6780 val
* var1
/* : nullable Object */;
6781 val
* var_nodearraylist4
/* var nodearraylist4: nullable Object */;
6782 val
* var2
/* : nullable Object */;
6783 val
* var_nodearraylist3
/* var nodearraylist3: nullable Object */;
6784 val
* var3
/* : nullable Object */;
6785 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
6786 val
* var4
/* : nullable Object */;
6787 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
6788 val
* var_tkwissetnode2
/* var tkwissetnode2: nullable Object */;
6789 short int var5
/* : Bool */;
6792 val
* var_pexprnode3
/* var pexprnode3: nullable Object */;
6793 short int var6
/* : Bool */;
6796 val
* var_tattridnode4
/* var tattridnode4: nullable Object */;
6797 short int var9
/* : Bool */;
6800 val
* var12
/* : AIssetAttrExpr */;
6801 val
* var_pexprnode1
/* var pexprnode1: nullable AIssetAttrExpr */;
6802 long var13
/* : Int */;
6803 long var14
/* : Int */;
6806 var_node_list
= var
;
6808 var1
= parser_work__Parser__pop(var_p
);
6810 var_nodearraylist4
= var1
;
6812 var2
= parser_work__Parser__pop(var_p
);
6814 var_nodearraylist3
= var2
;
6816 var3
= parser_work__Parser__pop(var_p
);
6818 var_nodearraylist2
= var3
;
6820 var4
= parser_work__Parser__pop(var_p
);
6822 var_nodearraylist1
= var4
;
6823 var_tkwissetnode2
= var_nodearraylist1
;
6824 /* <var_tkwissetnode2:nullable Object> isa nullable TKwisset */
6825 cltype
= type_nullable_parser_nodes__TKwisset
.color
;
6826 idtype
= type_nullable_parser_nodes__TKwisset
.id
;
6827 if(var_tkwissetnode2
== NULL
) {
6830 if(cltype
>= var_tkwissetnode2
->type
->table_size
) {
6833 var5
= var_tkwissetnode2
->type
->type_table
[cltype
] == idtype
;
6836 if (unlikely(!var5
)) {
6837 PRINT_ERROR("Runtime error: %s", "Assert failed");
6838 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 10631);
6841 var_pexprnode3
= var_nodearraylist2
;
6842 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
6843 cltype7
= type_nullable_parser_nodes__AExpr
.color
;
6844 idtype8
= type_nullable_parser_nodes__AExpr
.id
;
6845 if(var_pexprnode3
== NULL
) {
6848 if(cltype7
>= var_pexprnode3
->type
->table_size
) {
6851 var6
= var_pexprnode3
->type
->type_table
[cltype7
] == idtype8
;
6854 if (unlikely(!var6
)) {
6855 PRINT_ERROR("Runtime error: %s", "Assert failed");
6856 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 10633);
6859 var_tattridnode4
= var_nodearraylist4
;
6860 /* <var_tattridnode4:nullable Object> isa nullable TAttrid */
6861 cltype10
= type_nullable_parser_nodes__TAttrid
.color
;
6862 idtype11
= type_nullable_parser_nodes__TAttrid
.id
;
6863 if(var_tattridnode4
== NULL
) {
6866 if(cltype10
>= var_tattridnode4
->type
->table_size
) {
6869 var9
= var_tattridnode4
->type
->type_table
[cltype10
] == idtype11
;
6872 if (unlikely(!var9
)) {
6873 PRINT_ERROR("Runtime error: %s", "Assert failed");
6874 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 10635);
6877 var12
= NEW_parser_nodes__AIssetAttrExpr(&type_parser_nodes__AIssetAttrExpr
);
6879 parser_prod__AIssetAttrExpr__init_aissetattrexpr(var12
, var_tkwissetnode2
, var_pexprnode3
, var_tattridnode4
); /* Direct call parser_prod#AIssetAttrExpr#init_aissetattrexpr on <var12:AIssetAttrExpr>*/
6881 var_pexprnode1
= var12
;
6882 var_node_list
= var_pexprnode1
;
6883 var13
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction780> */
6885 var14
= parser_work__Parser__go_to(var_p
, var13
);
6888 parser_work__Parser__push(var_p
, var14
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6892 /* method parser#ReduceAction780#action for (self: Object, Parser) */
6893 void VIRTUAL_parser__ReduceAction780__action(val
* self
, val
* p0
) {
6894 parser__ReduceAction780__action(self
, p0
); /* Direct call parser#ReduceAction780#action on <self:Object(ReduceAction780)>*/
6897 /* method parser#ReduceAction782#action for (self: ReduceAction782, Parser) */
6898 void parser__ReduceAction782__action(val
* self
, val
* p0
) {
6899 val
* var_p
/* var p: Parser */;
6900 val
* var
/* : null */;
6901 val
* var_node_list
/* var node_list: nullable Object */;
6902 val
* var1
/* : nullable Object */;
6903 val
* var_nodearraylist3
/* var nodearraylist3: nullable Object */;
6904 val
* var2
/* : nullable Object */;
6905 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
6906 val
* var3
/* : nullable Object */;
6907 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
6908 val
* var_pexprnode2
/* var pexprnode2: nullable Object */;
6909 short int var4
/* : Bool */;
6912 val
* var_tattridnode3
/* var tattridnode3: nullable Object */;
6913 short int var5
/* : Bool */;
6916 val
* var8
/* : AAttrExpr */;
6917 val
* var_pexprnode1
/* var pexprnode1: nullable AAttrExpr */;
6918 long var9
/* : Int */;
6919 long var10
/* : Int */;
6922 var_node_list
= var
;
6924 var1
= parser_work__Parser__pop(var_p
);
6926 var_nodearraylist3
= var1
;
6928 var2
= parser_work__Parser__pop(var_p
);
6930 var_nodearraylist2
= var2
;
6932 var3
= parser_work__Parser__pop(var_p
);
6934 var_nodearraylist1
= var3
;
6935 var_pexprnode2
= var_nodearraylist1
;
6936 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
6937 cltype
= type_nullable_parser_nodes__AExpr
.color
;
6938 idtype
= type_nullable_parser_nodes__AExpr
.id
;
6939 if(var_pexprnode2
== NULL
) {
6942 if(cltype
>= var_pexprnode2
->type
->table_size
) {
6945 var4
= var_pexprnode2
->type
->type_table
[cltype
] == idtype
;
6948 if (unlikely(!var4
)) {
6949 PRINT_ERROR("Runtime error: %s", "Assert failed");
6950 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 10654);
6953 var_tattridnode3
= var_nodearraylist3
;
6954 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
6955 cltype6
= type_nullable_parser_nodes__TAttrid
.color
;
6956 idtype7
= type_nullable_parser_nodes__TAttrid
.id
;
6957 if(var_tattridnode3
== NULL
) {
6960 if(cltype6
>= var_tattridnode3
->type
->table_size
) {
6963 var5
= var_tattridnode3
->type
->type_table
[cltype6
] == idtype7
;
6966 if (unlikely(!var5
)) {
6967 PRINT_ERROR("Runtime error: %s", "Assert failed");
6968 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 10656);
6971 var8
= NEW_parser_nodes__AAttrExpr(&type_parser_nodes__AAttrExpr
);
6973 parser_prod__AAttrExpr__init_aattrexpr(var8
, var_pexprnode2
, var_tattridnode3
); /* Direct call parser_prod#AAttrExpr#init_aattrexpr on <var8:AAttrExpr>*/
6975 var_pexprnode1
= var8
;
6976 var_node_list
= var_pexprnode1
;
6977 var9
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction782> */
6979 var10
= parser_work__Parser__go_to(var_p
, var9
);
6982 parser_work__Parser__push(var_p
, var10
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
6986 /* method parser#ReduceAction782#action for (self: Object, Parser) */
6987 void VIRTUAL_parser__ReduceAction782__action(val
* self
, val
* p0
) {
6988 parser__ReduceAction782__action(self
, p0
); /* Direct call parser#ReduceAction782#action on <self:Object(ReduceAction782)>*/
6991 /* method parser#ReduceAction783#action for (self: ReduceAction783, Parser) */
6992 void parser__ReduceAction783__action(val
* self
, val
* p0
) {
6993 val
* var_p
/* var p: Parser */;
6994 val
* var
/* : null */;
6995 val
* var_node_list
/* var node_list: nullable Object */;
6996 val
* var1
/* : nullable Object */;
6997 val
* var_nodearraylist3
/* var nodearraylist3: nullable Object */;
6998 val
* var2
/* : nullable Object */;
6999 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
7000 val
* var3
/* : nullable Object */;
7001 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
7002 val
* var_pexprnode2
/* var pexprnode2: nullable Object */;
7003 short int var4
/* : Bool */;
7006 val
* var_tidnode3
/* var tidnode3: nullable Object */;
7007 short int var5
/* : Bool */;
7010 val
* var_pexprsnode4
/* var pexprsnode4: nullable Object */;
7011 short int var8
/* : Bool */;
7014 val
* var11
/* : ACallExpr */;
7015 val
* var_pexprnode1
/* var pexprnode1: nullable ACallExpr */;
7016 long var12
/* : Int */;
7017 long var13
/* : Int */;
7020 var_node_list
= var
;
7022 var1
= parser_work__Parser__pop(var_p
);
7024 var_nodearraylist3
= var1
;
7026 var2
= parser_work__Parser__pop(var_p
);
7028 var_nodearraylist2
= var2
;
7030 var3
= parser_work__Parser__pop(var_p
);
7032 var_nodearraylist1
= var3
;
7033 var_pexprnode2
= var_nodearraylist1
;
7034 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
7035 cltype
= type_nullable_parser_nodes__AExpr
.color
;
7036 idtype
= type_nullable_parser_nodes__AExpr
.id
;
7037 if(var_pexprnode2
== NULL
) {
7040 if(cltype
>= var_pexprnode2
->type
->table_size
) {
7043 var4
= var_pexprnode2
->type
->type_table
[cltype
] == idtype
;
7046 if (unlikely(!var4
)) {
7047 PRINT_ERROR("Runtime error: %s", "Assert failed");
7048 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 10674);
7051 var_tidnode3
= var_nodearraylist2
;
7052 /* <var_tidnode3:nullable Object> isa nullable TId */
7053 cltype6
= type_nullable_parser_nodes__TId
.color
;
7054 idtype7
= type_nullable_parser_nodes__TId
.id
;
7055 if(var_tidnode3
== NULL
) {
7058 if(cltype6
>= var_tidnode3
->type
->table_size
) {
7061 var5
= var_tidnode3
->type
->type_table
[cltype6
] == idtype7
;
7064 if (unlikely(!var5
)) {
7065 PRINT_ERROR("Runtime error: %s", "Assert failed");
7066 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 10676);
7069 var_pexprsnode4
= var_nodearraylist3
;
7070 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
7071 cltype9
= type_nullable_parser_nodes__AExprs
.color
;
7072 idtype10
= type_nullable_parser_nodes__AExprs
.id
;
7073 if(var_pexprsnode4
== NULL
) {
7076 if(cltype9
>= var_pexprsnode4
->type
->table_size
) {
7079 var8
= var_pexprsnode4
->type
->type_table
[cltype9
] == idtype10
;
7082 if (unlikely(!var8
)) {
7083 PRINT_ERROR("Runtime error: %s", "Assert failed");
7084 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 10678);
7087 var11
= NEW_parser_nodes__ACallExpr(&type_parser_nodes__ACallExpr
);
7089 parser_prod__ACallExpr__init_acallexpr(var11
, var_pexprnode2
, var_tidnode3
, var_pexprsnode4
); /* Direct call parser_prod#ACallExpr#init_acallexpr on <var11:ACallExpr>*/
7091 var_pexprnode1
= var11
;
7092 var_node_list
= var_pexprnode1
;
7093 var12
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction783> */
7095 var13
= parser_work__Parser__go_to(var_p
, var12
);
7098 parser_work__Parser__push(var_p
, var13
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
7102 /* method parser#ReduceAction783#action for (self: Object, Parser) */
7103 void VIRTUAL_parser__ReduceAction783__action(val
* self
, val
* p0
) {
7104 parser__ReduceAction783__action(self
, p0
); /* Direct call parser#ReduceAction783#action on <self:Object(ReduceAction783)>*/
7107 /* method parser#ReduceAction784#action for (self: ReduceAction784, Parser) */
7108 void parser__ReduceAction784__action(val
* self
, val
* p0
) {
7109 val
* var_p
/* var p: Parser */;
7110 val
* var
/* : null */;
7111 val
* var_node_list
/* var node_list: nullable Object */;
7112 val
* var1
/* : nullable Object */;
7113 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
7114 val
* var2
/* : nullable Object */;
7115 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
7116 val
* var_pexprnode2
/* var pexprnode2: nullable Object */;
7117 short int var3
/* : Bool */;
7120 val
* var_tidnode3
/* var tidnode3: nullable Object */;
7121 short int var4
/* : Bool */;
7124 val
* var7
/* : Array[Object] */;
7125 val
* var_listnode5
/* var listnode5: Array[Object] */;
7126 val
* var8
/* : AListExprs */;
7127 val
* var_pexprsnode4
/* var pexprsnode4: nullable AListExprs */;
7128 val
* var9
/* : ACallExpr */;
7129 val
* var_pexprnode1
/* var pexprnode1: nullable ACallExpr */;
7130 long var10
/* : Int */;
7131 long var11
/* : Int */;
7134 var_node_list
= var
;
7136 var1
= parser_work__Parser__pop(var_p
);
7138 var_nodearraylist2
= var1
;
7140 var2
= parser_work__Parser__pop(var_p
);
7142 var_nodearraylist1
= var2
;
7143 var_pexprnode2
= var_nodearraylist1
;
7144 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
7145 cltype
= type_nullable_parser_nodes__AExpr
.color
;
7146 idtype
= type_nullable_parser_nodes__AExpr
.id
;
7147 if(var_pexprnode2
== NULL
) {
7150 if(cltype
>= var_pexprnode2
->type
->table_size
) {
7153 var3
= var_pexprnode2
->type
->type_table
[cltype
] == idtype
;
7156 if (unlikely(!var3
)) {
7157 PRINT_ERROR("Runtime error: %s", "Assert failed");
7158 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 10696);
7161 var_tidnode3
= var_nodearraylist2
;
7162 /* <var_tidnode3:nullable Object> isa nullable TId */
7163 cltype5
= type_nullable_parser_nodes__TId
.color
;
7164 idtype6
= type_nullable_parser_nodes__TId
.id
;
7165 if(var_tidnode3
== NULL
) {
7168 if(cltype5
>= var_tidnode3
->type
->table_size
) {
7171 var4
= var_tidnode3
->type
->type_table
[cltype5
] == idtype6
;
7174 if (unlikely(!var4
)) {
7175 PRINT_ERROR("Runtime error: %s", "Assert failed");
7176 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 10698);
7179 var7
= NEW_array__Array(&type_array__Arraykernel__Object
);
7181 ((void (*)(val
*))(var7
->class->vft
[COLOR_kernel__Object__init
]))(var7
) /* init on <var7:Array[Object]>*/;
7183 var_listnode5
= var7
;
7184 var8
= NEW_parser_nodes__AListExprs(&type_parser_nodes__AListExprs
);
7186 parser_prod__AListExprs__init_alistexprs(var8
, var_listnode5
); /* Direct call parser_prod#AListExprs#init_alistexprs on <var8:AListExprs>*/
7188 var_pexprsnode4
= var8
;
7189 var9
= NEW_parser_nodes__ACallExpr(&type_parser_nodes__ACallExpr
);
7191 parser_prod__ACallExpr__init_acallexpr(var9
, var_pexprnode2
, var_tidnode3
, var_pexprsnode4
); /* Direct call parser_prod#ACallExpr#init_acallexpr on <var9:ACallExpr>*/
7193 var_pexprnode1
= var9
;
7194 var_node_list
= var_pexprnode1
;
7195 var10
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction784> */
7197 var11
= parser_work__Parser__go_to(var_p
, var10
);
7200 parser_work__Parser__push(var_p
, var11
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
7204 /* method parser#ReduceAction784#action for (self: Object, Parser) */
7205 void VIRTUAL_parser__ReduceAction784__action(val
* self
, val
* p0
) {
7206 parser__ReduceAction784__action(self
, p0
); /* Direct call parser#ReduceAction784#action on <self:Object(ReduceAction784)>*/
7209 /* method parser#ReduceAction785#action for (self: ReduceAction785, Parser) */
7210 void parser__ReduceAction785__action(val
* self
, val
* p0
) {
7211 val
* var_p
/* var p: Parser */;
7212 val
* var
/* : null */;
7213 val
* var_node_list
/* var node_list: nullable Object */;
7214 val
* var1
/* : nullable Object */;
7215 val
* var_nodearraylist4
/* var nodearraylist4: nullable Object */;
7216 val
* var2
/* : nullable Object */;
7217 val
* var_nodearraylist3
/* var nodearraylist3: nullable Object */;
7218 val
* var3
/* : nullable Object */;
7219 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
7220 val
* var4
/* : nullable Object */;
7221 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
7222 val
* var_pexprnode2
/* var pexprnode2: nullable Object */;
7223 short int var5
/* : Bool */;
7226 val
* var_tidnode3
/* var tidnode3: nullable Object */;
7227 short int var6
/* : Bool */;
7230 val
* var_pexprsnode4
/* var pexprsnode4: nullable Object */;
7231 short int var9
/* : Bool */;
7234 val
* var12
/* : ACallExpr */;
7235 val
* var_pexprnode1
/* var pexprnode1: nullable ACallExpr */;
7236 long var13
/* : Int */;
7237 long var14
/* : Int */;
7240 var_node_list
= var
;
7242 var1
= parser_work__Parser__pop(var_p
);
7244 var_nodearraylist4
= var1
;
7246 var2
= parser_work__Parser__pop(var_p
);
7248 var_nodearraylist3
= var2
;
7250 var3
= parser_work__Parser__pop(var_p
);
7252 var_nodearraylist2
= var3
;
7254 var4
= parser_work__Parser__pop(var_p
);
7256 var_nodearraylist1
= var4
;
7257 var_pexprnode2
= var_nodearraylist1
;
7258 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
7259 cltype
= type_nullable_parser_nodes__AExpr
.color
;
7260 idtype
= type_nullable_parser_nodes__AExpr
.id
;
7261 if(var_pexprnode2
== NULL
) {
7264 if(cltype
>= var_pexprnode2
->type
->table_size
) {
7267 var5
= var_pexprnode2
->type
->type_table
[cltype
] == idtype
;
7270 if (unlikely(!var5
)) {
7271 PRINT_ERROR("Runtime error: %s", "Assert failed");
7272 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 10722);
7275 var_tidnode3
= var_nodearraylist3
;
7276 /* <var_tidnode3:nullable Object> isa nullable TId */
7277 cltype7
= type_nullable_parser_nodes__TId
.color
;
7278 idtype8
= type_nullable_parser_nodes__TId
.id
;
7279 if(var_tidnode3
== NULL
) {
7282 if(cltype7
>= var_tidnode3
->type
->table_size
) {
7285 var6
= var_tidnode3
->type
->type_table
[cltype7
] == idtype8
;
7288 if (unlikely(!var6
)) {
7289 PRINT_ERROR("Runtime error: %s", "Assert failed");
7290 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 10724);
7293 var_pexprsnode4
= var_nodearraylist4
;
7294 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
7295 cltype10
= type_nullable_parser_nodes__AExprs
.color
;
7296 idtype11
= type_nullable_parser_nodes__AExprs
.id
;
7297 if(var_pexprsnode4
== NULL
) {
7300 if(cltype10
>= var_pexprsnode4
->type
->table_size
) {
7303 var9
= var_pexprsnode4
->type
->type_table
[cltype10
] == idtype11
;
7306 if (unlikely(!var9
)) {
7307 PRINT_ERROR("Runtime error: %s", "Assert failed");
7308 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 10726);
7311 var12
= NEW_parser_nodes__ACallExpr(&type_parser_nodes__ACallExpr
);
7313 parser_prod__ACallExpr__init_acallexpr(var12
, var_pexprnode2
, var_tidnode3
, var_pexprsnode4
); /* Direct call parser_prod#ACallExpr#init_acallexpr on <var12:ACallExpr>*/
7315 var_pexprnode1
= var12
;
7316 var_node_list
= var_pexprnode1
;
7317 var13
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction785> */
7319 var14
= parser_work__Parser__go_to(var_p
, var13
);
7322 parser_work__Parser__push(var_p
, var14
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
7326 /* method parser#ReduceAction785#action for (self: Object, Parser) */
7327 void VIRTUAL_parser__ReduceAction785__action(val
* self
, val
* p0
) {
7328 parser__ReduceAction785__action(self
, p0
); /* Direct call parser#ReduceAction785#action on <self:Object(ReduceAction785)>*/
7331 /* method parser#ReduceAction786#action for (self: ReduceAction786, Parser) */
7332 void parser__ReduceAction786__action(val
* self
, val
* p0
) {
7333 val
* var_p
/* var p: Parser */;
7334 val
* var
/* : null */;
7335 val
* var_node_list
/* var node_list: nullable Object */;
7336 val
* var1
/* : nullable Object */;
7337 val
* var_nodearraylist3
/* var nodearraylist3: nullable Object */;
7338 val
* var2
/* : nullable Object */;
7339 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
7340 val
* var3
/* : nullable Object */;
7341 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
7342 val
* var_pexprnode2
/* var pexprnode2: nullable Object */;
7343 short int var4
/* : Bool */;
7346 val
* var_tidnode3
/* var tidnode3: nullable Object */;
7347 short int var5
/* : Bool */;
7350 val
* var8
/* : Array[Object] */;
7351 val
* var_listnode5
/* var listnode5: Array[Object] */;
7352 val
* var9
/* : AListExprs */;
7353 val
* var_pexprsnode4
/* var pexprsnode4: nullable AListExprs */;
7354 val
* var10
/* : ACallExpr */;
7355 val
* var_pexprnode1
/* var pexprnode1: nullable ACallExpr */;
7356 long var11
/* : Int */;
7357 long var12
/* : Int */;
7360 var_node_list
= var
;
7362 var1
= parser_work__Parser__pop(var_p
);
7364 var_nodearraylist3
= var1
;
7366 var2
= parser_work__Parser__pop(var_p
);
7368 var_nodearraylist2
= var2
;
7370 var3
= parser_work__Parser__pop(var_p
);
7372 var_nodearraylist1
= var3
;
7373 var_pexprnode2
= var_nodearraylist1
;
7374 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
7375 cltype
= type_nullable_parser_nodes__AExpr
.color
;
7376 idtype
= type_nullable_parser_nodes__AExpr
.id
;
7377 if(var_pexprnode2
== NULL
) {
7380 if(cltype
>= var_pexprnode2
->type
->table_size
) {
7383 var4
= var_pexprnode2
->type
->type_table
[cltype
] == idtype
;
7386 if (unlikely(!var4
)) {
7387 PRINT_ERROR("Runtime error: %s", "Assert failed");
7388 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 10745);
7391 var_tidnode3
= var_nodearraylist3
;
7392 /* <var_tidnode3:nullable Object> isa nullable TId */
7393 cltype6
= type_nullable_parser_nodes__TId
.color
;
7394 idtype7
= type_nullable_parser_nodes__TId
.id
;
7395 if(var_tidnode3
== NULL
) {
7398 if(cltype6
>= var_tidnode3
->type
->table_size
) {
7401 var5
= var_tidnode3
->type
->type_table
[cltype6
] == idtype7
;
7404 if (unlikely(!var5
)) {
7405 PRINT_ERROR("Runtime error: %s", "Assert failed");
7406 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 10747);
7409 var8
= NEW_array__Array(&type_array__Arraykernel__Object
);
7411 ((void (*)(val
*))(var8
->class->vft
[COLOR_kernel__Object__init
]))(var8
) /* init on <var8:Array[Object]>*/;
7413 var_listnode5
= var8
;
7414 var9
= NEW_parser_nodes__AListExprs(&type_parser_nodes__AListExprs
);
7416 parser_prod__AListExprs__init_alistexprs(var9
, var_listnode5
); /* Direct call parser_prod#AListExprs#init_alistexprs on <var9:AListExprs>*/
7418 var_pexprsnode4
= var9
;
7419 var10
= NEW_parser_nodes__ACallExpr(&type_parser_nodes__ACallExpr
);
7421 parser_prod__ACallExpr__init_acallexpr(var10
, var_pexprnode2
, var_tidnode3
, var_pexprsnode4
); /* Direct call parser_prod#ACallExpr#init_acallexpr on <var10:ACallExpr>*/
7423 var_pexprnode1
= var10
;
7424 var_node_list
= var_pexprnode1
;
7425 var11
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction786> */
7427 var12
= parser_work__Parser__go_to(var_p
, var11
);
7430 parser_work__Parser__push(var_p
, var12
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
7434 /* method parser#ReduceAction786#action for (self: Object, Parser) */
7435 void VIRTUAL_parser__ReduceAction786__action(val
* self
, val
* p0
) {
7436 parser__ReduceAction786__action(self
, p0
); /* Direct call parser#ReduceAction786#action on <self:Object(ReduceAction786)>*/
7439 /* method parser#ReduceAction793#action for (self: ReduceAction793, Parser) */
7440 void parser__ReduceAction793__action(val
* self
, val
* p0
) {
7441 val
* var_p
/* var p: Parser */;
7442 val
* var
/* : null */;
7443 val
* var_node_list
/* var node_list: nullable Object */;
7444 val
* var1
/* : nullable Object */;
7445 val
* var_nodearraylist3
/* var nodearraylist3: nullable Object */;
7446 val
* var2
/* : nullable Object */;
7447 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
7448 val
* var3
/* : nullable Object */;
7449 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
7450 val
* var_pexprnode2
/* var pexprnode2: nullable Object */;
7451 short int var4
/* : Bool */;
7454 val
* var_tkwinitnode3
/* var tkwinitnode3: nullable Object */;
7455 short int var5
/* : Bool */;
7458 val
* var_pexprsnode4
/* var pexprsnode4: nullable Object */;
7459 short int var8
/* : Bool */;
7462 val
* var11
/* : AInitExpr */;
7463 val
* var_pexprnode1
/* var pexprnode1: nullable AInitExpr */;
7464 long var12
/* : Int */;
7465 long var13
/* : Int */;
7468 var_node_list
= var
;
7470 var1
= parser_work__Parser__pop(var_p
);
7472 var_nodearraylist3
= var1
;
7474 var2
= parser_work__Parser__pop(var_p
);
7476 var_nodearraylist2
= var2
;
7478 var3
= parser_work__Parser__pop(var_p
);
7480 var_nodearraylist1
= var3
;
7481 var_pexprnode2
= var_nodearraylist1
;
7482 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
7483 cltype
= type_nullable_parser_nodes__AExpr
.color
;
7484 idtype
= type_nullable_parser_nodes__AExpr
.id
;
7485 if(var_pexprnode2
== NULL
) {
7488 if(cltype
>= var_pexprnode2
->type
->table_size
) {
7491 var4
= var_pexprnode2
->type
->type_table
[cltype
] == idtype
;
7494 if (unlikely(!var4
)) {
7495 PRINT_ERROR("Runtime error: %s", "Assert failed");
7496 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 10770);
7499 var_tkwinitnode3
= var_nodearraylist2
;
7500 /* <var_tkwinitnode3:nullable Object> isa nullable TKwinit */
7501 cltype6
= type_nullable_parser_nodes__TKwinit
.color
;
7502 idtype7
= type_nullable_parser_nodes__TKwinit
.id
;
7503 if(var_tkwinitnode3
== NULL
) {
7506 if(cltype6
>= var_tkwinitnode3
->type
->table_size
) {
7509 var5
= var_tkwinitnode3
->type
->type_table
[cltype6
] == idtype7
;
7512 if (unlikely(!var5
)) {
7513 PRINT_ERROR("Runtime error: %s", "Assert failed");
7514 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 10772);
7517 var_pexprsnode4
= var_nodearraylist3
;
7518 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
7519 cltype9
= type_nullable_parser_nodes__AExprs
.color
;
7520 idtype10
= type_nullable_parser_nodes__AExprs
.id
;
7521 if(var_pexprsnode4
== NULL
) {
7524 if(cltype9
>= var_pexprsnode4
->type
->table_size
) {
7527 var8
= var_pexprsnode4
->type
->type_table
[cltype9
] == idtype10
;
7530 if (unlikely(!var8
)) {
7531 PRINT_ERROR("Runtime error: %s", "Assert failed");
7532 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 10774);
7535 var11
= NEW_parser_nodes__AInitExpr(&type_parser_nodes__AInitExpr
);
7537 parser_prod__AInitExpr__init_ainitexpr(var11
, var_pexprnode2
, var_tkwinitnode3
, var_pexprsnode4
); /* Direct call parser_prod#AInitExpr#init_ainitexpr on <var11:AInitExpr>*/
7539 var_pexprnode1
= var11
;
7540 var_node_list
= var_pexprnode1
;
7541 var12
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction793> */
7543 var13
= parser_work__Parser__go_to(var_p
, var12
);
7546 parser_work__Parser__push(var_p
, var13
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
7550 /* method parser#ReduceAction793#action for (self: Object, Parser) */
7551 void VIRTUAL_parser__ReduceAction793__action(val
* self
, val
* p0
) {
7552 parser__ReduceAction793__action(self
, p0
); /* Direct call parser#ReduceAction793#action on <self:Object(ReduceAction793)>*/
7555 /* method parser#ReduceAction794#action for (self: ReduceAction794, Parser) */
7556 void parser__ReduceAction794__action(val
* self
, val
* p0
) {
7557 val
* var_p
/* var p: Parser */;
7558 val
* var
/* : null */;
7559 val
* var_node_list
/* var node_list: nullable Object */;
7560 val
* var1
/* : nullable Object */;
7561 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
7562 val
* var2
/* : nullable Object */;
7563 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
7564 val
* var_pexprnode2
/* var pexprnode2: nullable Object */;
7565 short int var3
/* : Bool */;
7568 val
* var_tkwinitnode3
/* var tkwinitnode3: nullable Object */;
7569 short int var4
/* : Bool */;
7572 val
* var7
/* : Array[Object] */;
7573 val
* var_listnode5
/* var listnode5: Array[Object] */;
7574 val
* var8
/* : AListExprs */;
7575 val
* var_pexprsnode4
/* var pexprsnode4: nullable AListExprs */;
7576 val
* var9
/* : AInitExpr */;
7577 val
* var_pexprnode1
/* var pexprnode1: nullable AInitExpr */;
7578 long var10
/* : Int */;
7579 long var11
/* : Int */;
7582 var_node_list
= var
;
7584 var1
= parser_work__Parser__pop(var_p
);
7586 var_nodearraylist2
= var1
;
7588 var2
= parser_work__Parser__pop(var_p
);
7590 var_nodearraylist1
= var2
;
7591 var_pexprnode2
= var_nodearraylist1
;
7592 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
7593 cltype
= type_nullable_parser_nodes__AExpr
.color
;
7594 idtype
= type_nullable_parser_nodes__AExpr
.id
;
7595 if(var_pexprnode2
== NULL
) {
7598 if(cltype
>= var_pexprnode2
->type
->table_size
) {
7601 var3
= var_pexprnode2
->type
->type_table
[cltype
] == idtype
;
7604 if (unlikely(!var3
)) {
7605 PRINT_ERROR("Runtime error: %s", "Assert failed");
7606 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 10792);
7609 var_tkwinitnode3
= var_nodearraylist2
;
7610 /* <var_tkwinitnode3:nullable Object> isa nullable TKwinit */
7611 cltype5
= type_nullable_parser_nodes__TKwinit
.color
;
7612 idtype6
= type_nullable_parser_nodes__TKwinit
.id
;
7613 if(var_tkwinitnode3
== NULL
) {
7616 if(cltype5
>= var_tkwinitnode3
->type
->table_size
) {
7619 var4
= var_tkwinitnode3
->type
->type_table
[cltype5
] == idtype6
;
7622 if (unlikely(!var4
)) {
7623 PRINT_ERROR("Runtime error: %s", "Assert failed");
7624 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 10794);
7627 var7
= NEW_array__Array(&type_array__Arraykernel__Object
);
7629 ((void (*)(val
*))(var7
->class->vft
[COLOR_kernel__Object__init
]))(var7
) /* init on <var7:Array[Object]>*/;
7631 var_listnode5
= var7
;
7632 var8
= NEW_parser_nodes__AListExprs(&type_parser_nodes__AListExprs
);
7634 parser_prod__AListExprs__init_alistexprs(var8
, var_listnode5
); /* Direct call parser_prod#AListExprs#init_alistexprs on <var8:AListExprs>*/
7636 var_pexprsnode4
= var8
;
7637 var9
= NEW_parser_nodes__AInitExpr(&type_parser_nodes__AInitExpr
);
7639 parser_prod__AInitExpr__init_ainitexpr(var9
, var_pexprnode2
, var_tkwinitnode3
, var_pexprsnode4
); /* Direct call parser_prod#AInitExpr#init_ainitexpr on <var9:AInitExpr>*/
7641 var_pexprnode1
= var9
;
7642 var_node_list
= var_pexprnode1
;
7643 var10
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction794> */
7645 var11
= parser_work__Parser__go_to(var_p
, var10
);
7648 parser_work__Parser__push(var_p
, var11
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
7652 /* method parser#ReduceAction794#action for (self: Object, Parser) */
7653 void VIRTUAL_parser__ReduceAction794__action(val
* self
, val
* p0
) {
7654 parser__ReduceAction794__action(self
, p0
); /* Direct call parser#ReduceAction794#action on <self:Object(ReduceAction794)>*/
7657 /* method parser#ReduceAction817#action for (self: ReduceAction817, Parser) */
7658 void parser__ReduceAction817__action(val
* self
, val
* p0
) {
7659 val
* var_p
/* var p: Parser */;
7660 val
* var
/* : null */;
7661 val
* var_node_list
/* var node_list: nullable Object */;
7662 val
* var1
/* : nullable Object */;
7663 val
* var_nodearraylist3
/* var nodearraylist3: nullable Object */;
7664 val
* var2
/* : nullable Object */;
7665 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
7666 val
* var3
/* : nullable Object */;
7667 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
7668 val
* var_pexprnode1
/* var pexprnode1: nullable Object */;
7669 long var4
/* : Int */;
7670 long var5
/* : Int */;
7673 var_node_list
= var
;
7675 var1
= parser_work__Parser__pop(var_p
);
7677 var_nodearraylist3
= var1
;
7679 var2
= parser_work__Parser__pop(var_p
);
7681 var_nodearraylist2
= var2
;
7683 var3
= parser_work__Parser__pop(var_p
);
7685 var_nodearraylist1
= var3
;
7686 var_pexprnode1
= var_nodearraylist1
;
7687 var_node_list
= var_pexprnode1
;
7688 var4
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction817> */
7690 var5
= parser_work__Parser__go_to(var_p
, var4
);
7693 parser_work__Parser__push(var_p
, var5
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
7697 /* method parser#ReduceAction817#action for (self: Object, Parser) */
7698 void VIRTUAL_parser__ReduceAction817__action(val
* self
, val
* p0
) {
7699 parser__ReduceAction817__action(self
, p0
); /* Direct call parser#ReduceAction817#action on <self:Object(ReduceAction817)>*/
7702 /* method parser#ReduceAction818#action for (self: ReduceAction818, Parser) */
7703 void parser__ReduceAction818__action(val
* self
, val
* p0
) {
7704 val
* var_p
/* var p: Parser */;
7705 val
* var
/* : null */;
7706 val
* var_node_list
/* var node_list: nullable Object */;
7707 val
* var1
/* : AImplicitSelfExpr */;
7708 val
* var_pexprnode1
/* var pexprnode1: nullable AImplicitSelfExpr */;
7709 long var3
/* : Int */;
7710 long var4
/* : Int */;
7713 var_node_list
= var
;
7714 var1
= NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr
);
7716 { /* Inline parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr (var1) on <var1:AImplicitSelfExpr> */
7720 var_pexprnode1
= var1
;
7721 var_node_list
= var_pexprnode1
;
7722 var3
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction818> */
7724 var4
= parser_work__Parser__go_to(var_p
, var3
);
7727 parser_work__Parser__push(var_p
, var4
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
7731 /* method parser#ReduceAction818#action for (self: Object, Parser) */
7732 void VIRTUAL_parser__ReduceAction818__action(val
* self
, val
* p0
) {
7733 parser__ReduceAction818__action(self
, p0
); /* Direct call parser#ReduceAction818#action on <self:Object(ReduceAction818)>*/
7736 /* method parser#ReduceAction968#action for (self: ReduceAction968, Parser) */
7737 void parser__ReduceAction968__action(val
* self
, val
* p0
) {
7738 val
* var_p
/* var p: Parser */;
7739 val
* var
/* : null */;
7740 val
* var_node_list
/* var node_list: nullable Object */;
7741 val
* var1
/* : nullable Object */;
7742 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
7743 val
* var2
/* : Array[Object] */;
7744 val
* var_listnode2
/* var listnode2: Array[Object] */;
7745 val
* var_pimportnode1
/* var pimportnode1: nullable Object */;
7746 val
* var3
/* : null */;
7747 short int var4
/* : Bool */;
7748 short int var5
/* : Bool */;
7749 long var6
/* : Int */;
7750 long var7
/* : Int */;
7753 var_node_list
= var
;
7755 var1
= parser_work__Parser__pop(var_p
);
7757 var_nodearraylist1
= var1
;
7758 var2
= NEW_array__Array(&type_array__Arraykernel__Object
);
7760 ((void (*)(val
*))(var2
->class->vft
[COLOR_kernel__Object__init
]))(var2
) /* init on <var2:Array[Object]>*/;
7762 var_listnode2
= var2
;
7763 var_pimportnode1
= var_nodearraylist1
;
7765 if (var_pimportnode1
== NULL
) {
7766 var4
= 0; /* is null */
7768 var4
= 1; /* arg is null and recv is not */
7771 var5
= ((short int (*)(val
*, val
*))(var_pimportnode1
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_pimportnode1
, var3
) /* != on <var_pimportnode1:nullable Object>*/;
7776 array__Array__add(var_listnode2
, var_pimportnode1
); /* Direct call array#Array#add on <var_listnode2:Array[Object]>*/
7780 var_node_list
= var_listnode2
;
7781 var6
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction968> */
7783 var7
= parser_work__Parser__go_to(var_p
, var6
);
7786 parser_work__Parser__push(var_p
, var7
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
7790 /* method parser#ReduceAction968#action for (self: Object, Parser) */
7791 void VIRTUAL_parser__ReduceAction968__action(val
* self
, val
* p0
) {
7792 parser__ReduceAction968__action(self
, p0
); /* Direct call parser#ReduceAction968#action on <self:Object(ReduceAction968)>*/
7795 /* method parser#ReduceAction969#action for (self: ReduceAction969, Parser) */
7796 void parser__ReduceAction969__action(val
* self
, val
* p0
) {
7797 val
* var_p
/* var p: Parser */;
7798 val
* var
/* : null */;
7799 val
* var_node_list
/* var node_list: nullable Object */;
7800 val
* var1
/* : nullable Object */;
7801 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
7802 val
* var2
/* : nullable Object */;
7803 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
7804 val
* var3
/* : Array[Object] */;
7805 val
* var_listnode3
/* var listnode3: Array[Object] */;
7806 val
* var_listnode1
/* var listnode1: nullable Object */;
7807 short int var4
/* : Bool */;
7810 val
* var_pimportnode2
/* var pimportnode2: nullable Object */;
7811 val
* var5
/* : Array[Object] */;
7812 val
* var6
/* : null */;
7813 short int var7
/* : Bool */;
7814 short int var8
/* : Bool */;
7815 long var9
/* : Int */;
7816 long var10
/* : Int */;
7819 var_node_list
= var
;
7821 var1
= parser_work__Parser__pop(var_p
);
7823 var_nodearraylist2
= var1
;
7825 var2
= parser_work__Parser__pop(var_p
);
7827 var_nodearraylist1
= var2
;
7828 var3
= NEW_array__Array(&type_array__Arraykernel__Object
);
7830 ((void (*)(val
*))(var3
->class->vft
[COLOR_kernel__Object__init
]))(var3
) /* init on <var3:Array[Object]>*/;
7832 var_listnode3
= var3
;
7833 var_listnode1
= var_nodearraylist1
;
7834 /* <var_listnode1:nullable Object> isa Array[Object] */
7835 cltype
= type_array__Arraykernel__Object
.color
;
7836 idtype
= type_array__Arraykernel__Object
.id
;
7837 if(var_listnode1
== NULL
) {
7840 if(cltype
>= var_listnode1
->type
->table_size
) {
7843 var4
= var_listnode1
->type
->type_table
[cltype
] == idtype
;
7846 if (unlikely(!var4
)) {
7847 PRINT_ERROR("Runtime error: %s", "Assert failed");
7848 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 10855);
7851 var_pimportnode2
= var_nodearraylist2
;
7853 var5
= parser_work__ReduceAction__concat(self
, var_listnode3
, var_listnode1
);
7855 var_listnode3
= var5
;
7857 if (var_pimportnode2
== NULL
) {
7858 var7
= 0; /* is null */
7860 var7
= 1; /* arg is null and recv is not */
7863 var8
= ((short int (*)(val
*, val
*))(var_pimportnode2
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_pimportnode2
, var6
) /* != on <var_pimportnode2:nullable Object>*/;
7868 array__Array__add(var_listnode3
, var_pimportnode2
); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
7872 var_node_list
= var_listnode3
;
7873 var9
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction969> */
7875 var10
= parser_work__Parser__go_to(var_p
, var9
);
7878 parser_work__Parser__push(var_p
, var10
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
7882 /* method parser#ReduceAction969#action for (self: Object, Parser) */
7883 void VIRTUAL_parser__ReduceAction969__action(val
* self
, val
* p0
) {
7884 parser__ReduceAction969__action(self
, p0
); /* Direct call parser#ReduceAction969#action on <self:Object(ReduceAction969)>*/
7887 /* method parser#ReduceAction970#action for (self: ReduceAction970, Parser) */
7888 void parser__ReduceAction970__action(val
* self
, val
* p0
) {
7889 val
* var_p
/* var p: Parser */;
7890 val
* var
/* : null */;
7891 val
* var_node_list
/* var node_list: nullable Object */;
7892 val
* var1
/* : nullable Object */;
7893 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
7894 val
* var2
/* : Array[Object] */;
7895 val
* var_listnode2
/* var listnode2: Array[Object] */;
7896 val
* var_pexterncodeblocknode1
/* var pexterncodeblocknode1: nullable Object */;
7897 val
* var3
/* : null */;
7898 short int var4
/* : Bool */;
7899 short int var5
/* : Bool */;
7900 long var6
/* : Int */;
7901 long var7
/* : Int */;
7904 var_node_list
= var
;
7906 var1
= parser_work__Parser__pop(var_p
);
7908 var_nodearraylist1
= var1
;
7909 var2
= NEW_array__Array(&type_array__Arraykernel__Object
);
7911 ((void (*)(val
*))(var2
->class->vft
[COLOR_kernel__Object__init
]))(var2
) /* init on <var2:Array[Object]>*/;
7913 var_listnode2
= var2
;
7914 var_pexterncodeblocknode1
= var_nodearraylist1
;
7916 if (var_pexterncodeblocknode1
== NULL
) {
7917 var4
= 0; /* is null */
7919 var4
= 1; /* arg is null and recv is not */
7922 var5
= ((short int (*)(val
*, val
*))(var_pexterncodeblocknode1
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_pexterncodeblocknode1
, var3
) /* != on <var_pexterncodeblocknode1:nullable Object>*/;
7927 array__Array__add(var_listnode2
, var_pexterncodeblocknode1
); /* Direct call array#Array#add on <var_listnode2:Array[Object]>*/
7931 var_node_list
= var_listnode2
;
7932 var6
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction970> */
7934 var7
= parser_work__Parser__go_to(var_p
, var6
);
7937 parser_work__Parser__push(var_p
, var7
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
7941 /* method parser#ReduceAction970#action for (self: Object, Parser) */
7942 void VIRTUAL_parser__ReduceAction970__action(val
* self
, val
* p0
) {
7943 parser__ReduceAction970__action(self
, p0
); /* Direct call parser#ReduceAction970#action on <self:Object(ReduceAction970)>*/
7946 /* method parser#ReduceAction971#action for (self: ReduceAction971, Parser) */
7947 void parser__ReduceAction971__action(val
* self
, val
* p0
) {
7948 val
* var_p
/* var p: Parser */;
7949 val
* var
/* : null */;
7950 val
* var_node_list
/* var node_list: nullable Object */;
7951 val
* var1
/* : nullable Object */;
7952 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
7953 val
* var2
/* : nullable Object */;
7954 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
7955 val
* var3
/* : Array[Object] */;
7956 val
* var_listnode3
/* var listnode3: Array[Object] */;
7957 val
* var_listnode1
/* var listnode1: nullable Object */;
7958 short int var4
/* : Bool */;
7961 val
* var_pexterncodeblocknode2
/* var pexterncodeblocknode2: nullable Object */;
7962 val
* var5
/* : Array[Object] */;
7963 val
* var6
/* : null */;
7964 short int var7
/* : Bool */;
7965 short int var8
/* : Bool */;
7966 long var9
/* : Int */;
7967 long var10
/* : Int */;
7970 var_node_list
= var
;
7972 var1
= parser_work__Parser__pop(var_p
);
7974 var_nodearraylist2
= var1
;
7976 var2
= parser_work__Parser__pop(var_p
);
7978 var_nodearraylist1
= var2
;
7979 var3
= NEW_array__Array(&type_array__Arraykernel__Object
);
7981 ((void (*)(val
*))(var3
->class->vft
[COLOR_kernel__Object__init
]))(var3
) /* init on <var3:Array[Object]>*/;
7983 var_listnode3
= var3
;
7984 var_listnode1
= var_nodearraylist1
;
7985 /* <var_listnode1:nullable Object> isa Array[Object] */
7986 cltype
= type_array__Arraykernel__Object
.color
;
7987 idtype
= type_array__Arraykernel__Object
.id
;
7988 if(var_listnode1
== NULL
) {
7991 if(cltype
>= var_listnode1
->type
->table_size
) {
7994 var4
= var_listnode1
->type
->type_table
[cltype
] == idtype
;
7997 if (unlikely(!var4
)) {
7998 PRINT_ERROR("Runtime error: %s", "Assert failed");
7999 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 10889);
8002 var_pexterncodeblocknode2
= var_nodearraylist2
;
8004 var5
= parser_work__ReduceAction__concat(self
, var_listnode3
, var_listnode1
);
8006 var_listnode3
= var5
;
8008 if (var_pexterncodeblocknode2
== NULL
) {
8009 var7
= 0; /* is null */
8011 var7
= 1; /* arg is null and recv is not */
8014 var8
= ((short int (*)(val
*, val
*))(var_pexterncodeblocknode2
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_pexterncodeblocknode2
, var6
) /* != on <var_pexterncodeblocknode2:nullable Object>*/;
8019 array__Array__add(var_listnode3
, var_pexterncodeblocknode2
); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
8023 var_node_list
= var_listnode3
;
8024 var9
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction971> */
8026 var10
= parser_work__Parser__go_to(var_p
, var9
);
8029 parser_work__Parser__push(var_p
, var10
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
8033 /* method parser#ReduceAction971#action for (self: Object, Parser) */
8034 void VIRTUAL_parser__ReduceAction971__action(val
* self
, val
* p0
) {
8035 parser__ReduceAction971__action(self
, p0
); /* Direct call parser#ReduceAction971#action on <self:Object(ReduceAction971)>*/
8038 /* method parser#ReduceAction972#action for (self: ReduceAction972, Parser) */
8039 void parser__ReduceAction972__action(val
* self
, val
* p0
) {
8040 val
* var_p
/* var p: Parser */;
8041 val
* var
/* : null */;
8042 val
* var_node_list
/* var node_list: nullable Object */;
8043 val
* var1
/* : nullable Object */;
8044 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
8045 val
* var2
/* : Array[Object] */;
8046 val
* var_listnode2
/* var listnode2: Array[Object] */;
8047 val
* var_pclassdefnode1
/* var pclassdefnode1: nullable Object */;
8048 val
* var3
/* : null */;
8049 short int var4
/* : Bool */;
8050 short int var5
/* : Bool */;
8051 long var6
/* : Int */;
8052 long var7
/* : Int */;
8055 var_node_list
= var
;
8057 var1
= parser_work__Parser__pop(var_p
);
8059 var_nodearraylist1
= var1
;
8060 var2
= NEW_array__Array(&type_array__Arraykernel__Object
);
8062 ((void (*)(val
*))(var2
->class->vft
[COLOR_kernel__Object__init
]))(var2
) /* init on <var2:Array[Object]>*/;
8064 var_listnode2
= var2
;
8065 var_pclassdefnode1
= var_nodearraylist1
;
8067 if (var_pclassdefnode1
== NULL
) {
8068 var4
= 0; /* is null */
8070 var4
= 1; /* arg is null and recv is not */
8073 var5
= ((short int (*)(val
*, val
*))(var_pclassdefnode1
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_pclassdefnode1
, var3
) /* != on <var_pclassdefnode1:nullable Object>*/;
8078 array__Array__add(var_listnode2
, var_pclassdefnode1
); /* Direct call array#Array#add on <var_listnode2:Array[Object]>*/
8082 var_node_list
= var_listnode2
;
8083 var6
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction972> */
8085 var7
= parser_work__Parser__go_to(var_p
, var6
);
8088 parser_work__Parser__push(var_p
, var7
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
8092 /* method parser#ReduceAction972#action for (self: Object, Parser) */
8093 void VIRTUAL_parser__ReduceAction972__action(val
* self
, val
* p0
) {
8094 parser__ReduceAction972__action(self
, p0
); /* Direct call parser#ReduceAction972#action on <self:Object(ReduceAction972)>*/
8097 /* method parser#ReduceAction973#action for (self: ReduceAction973, Parser) */
8098 void parser__ReduceAction973__action(val
* self
, val
* p0
) {
8099 val
* var_p
/* var p: Parser */;
8100 val
* var
/* : null */;
8101 val
* var_node_list
/* var node_list: nullable Object */;
8102 val
* var1
/* : nullable Object */;
8103 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
8104 val
* var2
/* : nullable Object */;
8105 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
8106 val
* var3
/* : Array[Object] */;
8107 val
* var_listnode3
/* var listnode3: Array[Object] */;
8108 val
* var_listnode1
/* var listnode1: nullable Object */;
8109 short int var4
/* : Bool */;
8112 val
* var_pclassdefnode2
/* var pclassdefnode2: nullable Object */;
8113 val
* var5
/* : Array[Object] */;
8114 val
* var6
/* : null */;
8115 short int var7
/* : Bool */;
8116 short int var8
/* : Bool */;
8117 long var9
/* : Int */;
8118 long var10
/* : Int */;
8121 var_node_list
= var
;
8123 var1
= parser_work__Parser__pop(var_p
);
8125 var_nodearraylist2
= var1
;
8127 var2
= parser_work__Parser__pop(var_p
);
8129 var_nodearraylist1
= var2
;
8130 var3
= NEW_array__Array(&type_array__Arraykernel__Object
);
8132 ((void (*)(val
*))(var3
->class->vft
[COLOR_kernel__Object__init
]))(var3
) /* init on <var3:Array[Object]>*/;
8134 var_listnode3
= var3
;
8135 var_listnode1
= var_nodearraylist1
;
8136 /* <var_listnode1:nullable Object> isa Array[Object] */
8137 cltype
= type_array__Arraykernel__Object
.color
;
8138 idtype
= type_array__Arraykernel__Object
.id
;
8139 if(var_listnode1
== NULL
) {
8142 if(cltype
>= var_listnode1
->type
->table_size
) {
8145 var4
= var_listnode1
->type
->type_table
[cltype
] == idtype
;
8148 if (unlikely(!var4
)) {
8149 PRINT_ERROR("Runtime error: %s", "Assert failed");
8150 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 10923);
8153 var_pclassdefnode2
= var_nodearraylist2
;
8155 var5
= parser_work__ReduceAction__concat(self
, var_listnode3
, var_listnode1
);
8157 var_listnode3
= var5
;
8159 if (var_pclassdefnode2
== NULL
) {
8160 var7
= 0; /* is null */
8162 var7
= 1; /* arg is null and recv is not */
8165 var8
= ((short int (*)(val
*, val
*))(var_pclassdefnode2
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_pclassdefnode2
, var6
) /* != on <var_pclassdefnode2:nullable Object>*/;
8170 array__Array__add(var_listnode3
, var_pclassdefnode2
); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
8174 var_node_list
= var_listnode3
;
8175 var9
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction973> */
8177 var10
= parser_work__Parser__go_to(var_p
, var9
);
8180 parser_work__Parser__push(var_p
, var10
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
8184 /* method parser#ReduceAction973#action for (self: Object, Parser) */
8185 void VIRTUAL_parser__ReduceAction973__action(val
* self
, val
* p0
) {
8186 parser__ReduceAction973__action(self
, p0
); /* Direct call parser#ReduceAction973#action on <self:Object(ReduceAction973)>*/
8189 /* method parser#ReduceAction974#action for (self: ReduceAction974, Parser) */
8190 void parser__ReduceAction974__action(val
* self
, val
* p0
) {
8191 val
* var_p
/* var p: Parser */;
8192 val
* var
/* : null */;
8193 val
* var_node_list
/* var node_list: nullable Object */;
8194 val
* var1
/* : nullable Object */;
8195 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
8196 val
* var2
/* : Array[Object] */;
8197 val
* var_listnode2
/* var listnode2: Array[Object] */;
8198 val
* var_psuperclassnode1
/* var psuperclassnode1: nullable Object */;
8199 val
* var3
/* : null */;
8200 short int var4
/* : Bool */;
8201 short int var5
/* : Bool */;
8202 long var6
/* : Int */;
8203 long var7
/* : Int */;
8206 var_node_list
= var
;
8208 var1
= parser_work__Parser__pop(var_p
);
8210 var_nodearraylist1
= var1
;
8211 var2
= NEW_array__Array(&type_array__Arraykernel__Object
);
8213 ((void (*)(val
*))(var2
->class->vft
[COLOR_kernel__Object__init
]))(var2
) /* init on <var2:Array[Object]>*/;
8215 var_listnode2
= var2
;
8216 var_psuperclassnode1
= var_nodearraylist1
;
8218 if (var_psuperclassnode1
== NULL
) {
8219 var4
= 0; /* is null */
8221 var4
= 1; /* arg is null and recv is not */
8224 var5
= ((short int (*)(val
*, val
*))(var_psuperclassnode1
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_psuperclassnode1
, var3
) /* != on <var_psuperclassnode1:nullable Object>*/;
8229 array__Array__add(var_listnode2
, var_psuperclassnode1
); /* Direct call array#Array#add on <var_listnode2:Array[Object]>*/
8233 var_node_list
= var_listnode2
;
8234 var6
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction974> */
8236 var7
= parser_work__Parser__go_to(var_p
, var6
);
8239 parser_work__Parser__push(var_p
, var7
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
8243 /* method parser#ReduceAction974#action for (self: Object, Parser) */
8244 void VIRTUAL_parser__ReduceAction974__action(val
* self
, val
* p0
) {
8245 parser__ReduceAction974__action(self
, p0
); /* Direct call parser#ReduceAction974#action on <self:Object(ReduceAction974)>*/
8248 /* method parser#ReduceAction975#action for (self: ReduceAction975, Parser) */
8249 void parser__ReduceAction975__action(val
* self
, val
* p0
) {
8250 val
* var_p
/* var p: Parser */;
8251 val
* var
/* : null */;
8252 val
* var_node_list
/* var node_list: nullable Object */;
8253 val
* var1
/* : nullable Object */;
8254 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
8255 val
* var2
/* : nullable Object */;
8256 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
8257 val
* var3
/* : Array[Object] */;
8258 val
* var_listnode3
/* var listnode3: Array[Object] */;
8259 val
* var_listnode1
/* var listnode1: nullable Object */;
8260 short int var4
/* : Bool */;
8263 val
* var_psuperclassnode2
/* var psuperclassnode2: nullable Object */;
8264 val
* var5
/* : Array[Object] */;
8265 val
* var6
/* : null */;
8266 short int var7
/* : Bool */;
8267 short int var8
/* : Bool */;
8268 long var9
/* : Int */;
8269 long var10
/* : Int */;
8272 var_node_list
= var
;
8274 var1
= parser_work__Parser__pop(var_p
);
8276 var_nodearraylist2
= var1
;
8278 var2
= parser_work__Parser__pop(var_p
);
8280 var_nodearraylist1
= var2
;
8281 var3
= NEW_array__Array(&type_array__Arraykernel__Object
);
8283 ((void (*)(val
*))(var3
->class->vft
[COLOR_kernel__Object__init
]))(var3
) /* init on <var3:Array[Object]>*/;
8285 var_listnode3
= var3
;
8286 var_listnode1
= var_nodearraylist1
;
8287 /* <var_listnode1:nullable Object> isa Array[Object] */
8288 cltype
= type_array__Arraykernel__Object
.color
;
8289 idtype
= type_array__Arraykernel__Object
.id
;
8290 if(var_listnode1
== NULL
) {
8293 if(cltype
>= var_listnode1
->type
->table_size
) {
8296 var4
= var_listnode1
->type
->type_table
[cltype
] == idtype
;
8299 if (unlikely(!var4
)) {
8300 PRINT_ERROR("Runtime error: %s", "Assert failed");
8301 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 10957);
8304 var_psuperclassnode2
= var_nodearraylist2
;
8306 var5
= parser_work__ReduceAction__concat(self
, var_listnode3
, var_listnode1
);
8308 var_listnode3
= var5
;
8310 if (var_psuperclassnode2
== NULL
) {
8311 var7
= 0; /* is null */
8313 var7
= 1; /* arg is null and recv is not */
8316 var8
= ((short int (*)(val
*, val
*))(var_psuperclassnode2
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_psuperclassnode2
, var6
) /* != on <var_psuperclassnode2:nullable Object>*/;
8321 array__Array__add(var_listnode3
, var_psuperclassnode2
); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
8325 var_node_list
= var_listnode3
;
8326 var9
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction975> */
8328 var10
= parser_work__Parser__go_to(var_p
, var9
);
8331 parser_work__Parser__push(var_p
, var10
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
8335 /* method parser#ReduceAction975#action for (self: Object, Parser) */
8336 void VIRTUAL_parser__ReduceAction975__action(val
* self
, val
* p0
) {
8337 parser__ReduceAction975__action(self
, p0
); /* Direct call parser#ReduceAction975#action on <self:Object(ReduceAction975)>*/
8340 /* method parser#ReduceAction976#action for (self: ReduceAction976, Parser) */
8341 void parser__ReduceAction976__action(val
* self
, val
* p0
) {
8342 val
* var_p
/* var p: Parser */;
8343 val
* var
/* : null */;
8344 val
* var_node_list
/* var node_list: nullable Object */;
8345 val
* var1
/* : nullable Object */;
8346 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
8347 val
* var2
/* : Array[Object] */;
8348 val
* var_listnode2
/* var listnode2: Array[Object] */;
8349 val
* var_ppropdefnode1
/* var ppropdefnode1: nullable Object */;
8350 val
* var3
/* : null */;
8351 short int var4
/* : Bool */;
8352 short int var5
/* : Bool */;
8353 long var6
/* : Int */;
8354 long var7
/* : Int */;
8357 var_node_list
= var
;
8359 var1
= parser_work__Parser__pop(var_p
);
8361 var_nodearraylist1
= var1
;
8362 var2
= NEW_array__Array(&type_array__Arraykernel__Object
);
8364 ((void (*)(val
*))(var2
->class->vft
[COLOR_kernel__Object__init
]))(var2
) /* init on <var2:Array[Object]>*/;
8366 var_listnode2
= var2
;
8367 var_ppropdefnode1
= var_nodearraylist1
;
8369 if (var_ppropdefnode1
== NULL
) {
8370 var4
= 0; /* is null */
8372 var4
= 1; /* arg is null and recv is not */
8375 var5
= ((short int (*)(val
*, val
*))(var_ppropdefnode1
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_ppropdefnode1
, var3
) /* != on <var_ppropdefnode1:nullable Object>*/;
8380 array__Array__add(var_listnode2
, var_ppropdefnode1
); /* Direct call array#Array#add on <var_listnode2:Array[Object]>*/
8384 var_node_list
= var_listnode2
;
8385 var6
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction976> */
8387 var7
= parser_work__Parser__go_to(var_p
, var6
);
8390 parser_work__Parser__push(var_p
, var7
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
8394 /* method parser#ReduceAction976#action for (self: Object, Parser) */
8395 void VIRTUAL_parser__ReduceAction976__action(val
* self
, val
* p0
) {
8396 parser__ReduceAction976__action(self
, p0
); /* Direct call parser#ReduceAction976#action on <self:Object(ReduceAction976)>*/
8399 /* method parser#ReduceAction977#action for (self: ReduceAction977, Parser) */
8400 void parser__ReduceAction977__action(val
* self
, val
* p0
) {
8401 val
* var_p
/* var p: Parser */;
8402 val
* var
/* : null */;
8403 val
* var_node_list
/* var node_list: nullable Object */;
8404 val
* var1
/* : nullable Object */;
8405 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
8406 val
* var2
/* : nullable Object */;
8407 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
8408 val
* var3
/* : Array[Object] */;
8409 val
* var_listnode3
/* var listnode3: Array[Object] */;
8410 val
* var_listnode1
/* var listnode1: nullable Object */;
8411 short int var4
/* : Bool */;
8414 val
* var_ppropdefnode2
/* var ppropdefnode2: nullable Object */;
8415 val
* var5
/* : Array[Object] */;
8416 val
* var6
/* : null */;
8417 short int var7
/* : Bool */;
8418 short int var8
/* : Bool */;
8419 long var9
/* : Int */;
8420 long var10
/* : Int */;
8423 var_node_list
= var
;
8425 var1
= parser_work__Parser__pop(var_p
);
8427 var_nodearraylist2
= var1
;
8429 var2
= parser_work__Parser__pop(var_p
);
8431 var_nodearraylist1
= var2
;
8432 var3
= NEW_array__Array(&type_array__Arraykernel__Object
);
8434 ((void (*)(val
*))(var3
->class->vft
[COLOR_kernel__Object__init
]))(var3
) /* init on <var3:Array[Object]>*/;
8436 var_listnode3
= var3
;
8437 var_listnode1
= var_nodearraylist1
;
8438 /* <var_listnode1:nullable Object> isa Array[Object] */
8439 cltype
= type_array__Arraykernel__Object
.color
;
8440 idtype
= type_array__Arraykernel__Object
.id
;
8441 if(var_listnode1
== NULL
) {
8444 if(cltype
>= var_listnode1
->type
->table_size
) {
8447 var4
= var_listnode1
->type
->type_table
[cltype
] == idtype
;
8450 if (unlikely(!var4
)) {
8451 PRINT_ERROR("Runtime error: %s", "Assert failed");
8452 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 10991);
8455 var_ppropdefnode2
= var_nodearraylist2
;
8457 var5
= parser_work__ReduceAction__concat(self
, var_listnode3
, var_listnode1
);
8459 var_listnode3
= var5
;
8461 if (var_ppropdefnode2
== NULL
) {
8462 var7
= 0; /* is null */
8464 var7
= 1; /* arg is null and recv is not */
8467 var8
= ((short int (*)(val
*, val
*))(var_ppropdefnode2
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_ppropdefnode2
, var6
) /* != on <var_ppropdefnode2:nullable Object>*/;
8472 array__Array__add(var_listnode3
, var_ppropdefnode2
); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
8476 var_node_list
= var_listnode3
;
8477 var9
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction977> */
8479 var10
= parser_work__Parser__go_to(var_p
, var9
);
8482 parser_work__Parser__push(var_p
, var10
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
8486 /* method parser#ReduceAction977#action for (self: Object, Parser) */
8487 void VIRTUAL_parser__ReduceAction977__action(val
* self
, val
* p0
) {
8488 parser__ReduceAction977__action(self
, p0
); /* Direct call parser#ReduceAction977#action on <self:Object(ReduceAction977)>*/
8491 /* method parser#ReduceAction978#action for (self: ReduceAction978, Parser) */
8492 void parser__ReduceAction978__action(val
* self
, val
* p0
) {
8493 val
* var_p
/* var p: Parser */;
8494 val
* var
/* : null */;
8495 val
* var_node_list
/* var node_list: nullable Object */;
8496 val
* var1
/* : nullable Object */;
8497 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
8498 val
* var2
/* : Array[Object] */;
8499 val
* var_listnode2
/* var listnode2: Array[Object] */;
8500 val
* var_pformaldefnode1
/* var pformaldefnode1: nullable Object */;
8501 val
* var3
/* : null */;
8502 short int var4
/* : Bool */;
8503 short int var5
/* : Bool */;
8504 long var6
/* : Int */;
8505 long var7
/* : Int */;
8508 var_node_list
= var
;
8510 var1
= parser_work__Parser__pop(var_p
);
8512 var_nodearraylist1
= var1
;
8513 var2
= NEW_array__Array(&type_array__Arraykernel__Object
);
8515 ((void (*)(val
*))(var2
->class->vft
[COLOR_kernel__Object__init
]))(var2
) /* init on <var2:Array[Object]>*/;
8517 var_listnode2
= var2
;
8518 var_pformaldefnode1
= var_nodearraylist1
;
8520 if (var_pformaldefnode1
== NULL
) {
8521 var4
= 0; /* is null */
8523 var4
= 1; /* arg is null and recv is not */
8526 var5
= ((short int (*)(val
*, val
*))(var_pformaldefnode1
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_pformaldefnode1
, var3
) /* != on <var_pformaldefnode1:nullable Object>*/;
8531 array__Array__add(var_listnode2
, var_pformaldefnode1
); /* Direct call array#Array#add on <var_listnode2:Array[Object]>*/
8535 var_node_list
= var_listnode2
;
8536 var6
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction978> */
8538 var7
= parser_work__Parser__go_to(var_p
, var6
);
8541 parser_work__Parser__push(var_p
, var7
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
8545 /* method parser#ReduceAction978#action for (self: Object, Parser) */
8546 void VIRTUAL_parser__ReduceAction978__action(val
* self
, val
* p0
) {
8547 parser__ReduceAction978__action(self
, p0
); /* Direct call parser#ReduceAction978#action on <self:Object(ReduceAction978)>*/
8550 /* method parser#ReduceAction979#action for (self: ReduceAction979, Parser) */
8551 void parser__ReduceAction979__action(val
* self
, val
* p0
) {
8552 val
* var_p
/* var p: Parser */;
8553 val
* var
/* : null */;
8554 val
* var_node_list
/* var node_list: nullable Object */;
8555 val
* var1
/* : nullable Object */;
8556 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
8557 val
* var2
/* : nullable Object */;
8558 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
8559 val
* var3
/* : Array[Object] */;
8560 val
* var_listnode3
/* var listnode3: Array[Object] */;
8561 val
* var_listnode1
/* var listnode1: nullable Object */;
8562 short int var4
/* : Bool */;
8565 val
* var_pformaldefnode2
/* var pformaldefnode2: nullable Object */;
8566 val
* var5
/* : Array[Object] */;
8567 val
* var6
/* : null */;
8568 short int var7
/* : Bool */;
8569 short int var8
/* : Bool */;
8570 long var9
/* : Int */;
8571 long var10
/* : Int */;
8574 var_node_list
= var
;
8576 var1
= parser_work__Parser__pop(var_p
);
8578 var_nodearraylist2
= var1
;
8580 var2
= parser_work__Parser__pop(var_p
);
8582 var_nodearraylist1
= var2
;
8583 var3
= NEW_array__Array(&type_array__Arraykernel__Object
);
8585 ((void (*)(val
*))(var3
->class->vft
[COLOR_kernel__Object__init
]))(var3
) /* init on <var3:Array[Object]>*/;
8587 var_listnode3
= var3
;
8588 var_listnode1
= var_nodearraylist1
;
8589 /* <var_listnode1:nullable Object> isa Array[Object] */
8590 cltype
= type_array__Arraykernel__Object
.color
;
8591 idtype
= type_array__Arraykernel__Object
.id
;
8592 if(var_listnode1
== NULL
) {
8595 if(cltype
>= var_listnode1
->type
->table_size
) {
8598 var4
= var_listnode1
->type
->type_table
[cltype
] == idtype
;
8601 if (unlikely(!var4
)) {
8602 PRINT_ERROR("Runtime error: %s", "Assert failed");
8603 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 11025);
8606 var_pformaldefnode2
= var_nodearraylist2
;
8608 var5
= parser_work__ReduceAction__concat(self
, var_listnode3
, var_listnode1
);
8610 var_listnode3
= var5
;
8612 if (var_pformaldefnode2
== NULL
) {
8613 var7
= 0; /* is null */
8615 var7
= 1; /* arg is null and recv is not */
8618 var8
= ((short int (*)(val
*, val
*))(var_pformaldefnode2
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_pformaldefnode2
, var6
) /* != on <var_pformaldefnode2:nullable Object>*/;
8623 array__Array__add(var_listnode3
, var_pformaldefnode2
); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
8627 var_node_list
= var_listnode3
;
8628 var9
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction979> */
8630 var10
= parser_work__Parser__go_to(var_p
, var9
);
8633 parser_work__Parser__push(var_p
, var10
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
8637 /* method parser#ReduceAction979#action for (self: Object, Parser) */
8638 void VIRTUAL_parser__ReduceAction979__action(val
* self
, val
* p0
) {
8639 parser__ReduceAction979__action(self
, p0
); /* Direct call parser#ReduceAction979#action on <self:Object(ReduceAction979)>*/
8642 /* method parser#ReduceAction980#action for (self: ReduceAction980, Parser) */
8643 void parser__ReduceAction980__action(val
* self
, val
* p0
) {
8644 val
* var_p
/* var p: Parser */;
8645 val
* var
/* : null */;
8646 val
* var_node_list
/* var node_list: nullable Object */;
8647 val
* var1
/* : nullable Object */;
8648 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
8649 val
* var2
/* : Array[Object] */;
8650 val
* var_listnode2
/* var listnode2: Array[Object] */;
8651 val
* var_pparamnode1
/* var pparamnode1: nullable Object */;
8652 val
* var3
/* : null */;
8653 short int var4
/* : Bool */;
8654 short int var5
/* : Bool */;
8655 long var6
/* : Int */;
8656 long var7
/* : Int */;
8659 var_node_list
= var
;
8661 var1
= parser_work__Parser__pop(var_p
);
8663 var_nodearraylist1
= var1
;
8664 var2
= NEW_array__Array(&type_array__Arraykernel__Object
);
8666 ((void (*)(val
*))(var2
->class->vft
[COLOR_kernel__Object__init
]))(var2
) /* init on <var2:Array[Object]>*/;
8668 var_listnode2
= var2
;
8669 var_pparamnode1
= var_nodearraylist1
;
8671 if (var_pparamnode1
== NULL
) {
8672 var4
= 0; /* is null */
8674 var4
= 1; /* arg is null and recv is not */
8677 var5
= ((short int (*)(val
*, val
*))(var_pparamnode1
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_pparamnode1
, var3
) /* != on <var_pparamnode1:nullable Object>*/;
8682 array__Array__add(var_listnode2
, var_pparamnode1
); /* Direct call array#Array#add on <var_listnode2:Array[Object]>*/
8686 var_node_list
= var_listnode2
;
8687 var6
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction980> */
8689 var7
= parser_work__Parser__go_to(var_p
, var6
);
8692 parser_work__Parser__push(var_p
, var7
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
8696 /* method parser#ReduceAction980#action for (self: Object, Parser) */
8697 void VIRTUAL_parser__ReduceAction980__action(val
* self
, val
* p0
) {
8698 parser__ReduceAction980__action(self
, p0
); /* Direct call parser#ReduceAction980#action on <self:Object(ReduceAction980)>*/
8701 /* method parser#ReduceAction981#action for (self: ReduceAction981, Parser) */
8702 void parser__ReduceAction981__action(val
* self
, val
* p0
) {
8703 val
* var_p
/* var p: Parser */;
8704 val
* var
/* : null */;
8705 val
* var_node_list
/* var node_list: nullable Object */;
8706 val
* var1
/* : nullable Object */;
8707 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
8708 val
* var2
/* : nullable Object */;
8709 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
8710 val
* var3
/* : Array[Object] */;
8711 val
* var_listnode3
/* var listnode3: Array[Object] */;
8712 val
* var_listnode1
/* var listnode1: nullable Object */;
8713 short int var4
/* : Bool */;
8716 val
* var_pparamnode2
/* var pparamnode2: nullable Object */;
8717 val
* var5
/* : Array[Object] */;
8718 val
* var6
/* : null */;
8719 short int var7
/* : Bool */;
8720 short int var8
/* : Bool */;
8721 long var9
/* : Int */;
8722 long var10
/* : Int */;
8725 var_node_list
= var
;
8727 var1
= parser_work__Parser__pop(var_p
);
8729 var_nodearraylist2
= var1
;
8731 var2
= parser_work__Parser__pop(var_p
);
8733 var_nodearraylist1
= var2
;
8734 var3
= NEW_array__Array(&type_array__Arraykernel__Object
);
8736 ((void (*)(val
*))(var3
->class->vft
[COLOR_kernel__Object__init
]))(var3
) /* init on <var3:Array[Object]>*/;
8738 var_listnode3
= var3
;
8739 var_listnode1
= var_nodearraylist1
;
8740 /* <var_listnode1:nullable Object> isa Array[Object] */
8741 cltype
= type_array__Arraykernel__Object
.color
;
8742 idtype
= type_array__Arraykernel__Object
.id
;
8743 if(var_listnode1
== NULL
) {
8746 if(cltype
>= var_listnode1
->type
->table_size
) {
8749 var4
= var_listnode1
->type
->type_table
[cltype
] == idtype
;
8752 if (unlikely(!var4
)) {
8753 PRINT_ERROR("Runtime error: %s", "Assert failed");
8754 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 11059);
8757 var_pparamnode2
= var_nodearraylist2
;
8759 var5
= parser_work__ReduceAction__concat(self
, var_listnode3
, var_listnode1
);
8761 var_listnode3
= var5
;
8763 if (var_pparamnode2
== NULL
) {
8764 var7
= 0; /* is null */
8766 var7
= 1; /* arg is null and recv is not */
8769 var8
= ((short int (*)(val
*, val
*))(var_pparamnode2
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_pparamnode2
, var6
) /* != on <var_pparamnode2:nullable Object>*/;
8774 array__Array__add(var_listnode3
, var_pparamnode2
); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
8778 var_node_list
= var_listnode3
;
8779 var9
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction981> */
8781 var10
= parser_work__Parser__go_to(var_p
, var9
);
8784 parser_work__Parser__push(var_p
, var10
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
8788 /* method parser#ReduceAction981#action for (self: Object, Parser) */
8789 void VIRTUAL_parser__ReduceAction981__action(val
* self
, val
* p0
) {
8790 parser__ReduceAction981__action(self
, p0
); /* Direct call parser#ReduceAction981#action on <self:Object(ReduceAction981)>*/
8793 /* method parser#ReduceAction982#action for (self: ReduceAction982, Parser) */
8794 void parser__ReduceAction982__action(val
* self
, val
* p0
) {
8795 val
* var_p
/* var p: Parser */;
8796 val
* var
/* : null */;
8797 val
* var_node_list
/* var node_list: nullable Object */;
8798 val
* var1
/* : nullable Object */;
8799 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
8800 val
* var2
/* : Array[Object] */;
8801 val
* var_listnode2
/* var listnode2: Array[Object] */;
8802 val
* var_pexterncallnode1
/* var pexterncallnode1: nullable Object */;
8803 val
* var3
/* : null */;
8804 short int var4
/* : Bool */;
8805 short int var5
/* : Bool */;
8806 long var6
/* : Int */;
8807 long var7
/* : Int */;
8810 var_node_list
= var
;
8812 var1
= parser_work__Parser__pop(var_p
);
8814 var_nodearraylist1
= var1
;
8815 var2
= NEW_array__Array(&type_array__Arraykernel__Object
);
8817 ((void (*)(val
*))(var2
->class->vft
[COLOR_kernel__Object__init
]))(var2
) /* init on <var2:Array[Object]>*/;
8819 var_listnode2
= var2
;
8820 var_pexterncallnode1
= var_nodearraylist1
;
8822 if (var_pexterncallnode1
== NULL
) {
8823 var4
= 0; /* is null */
8825 var4
= 1; /* arg is null and recv is not */
8828 var5
= ((short int (*)(val
*, val
*))(var_pexterncallnode1
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_pexterncallnode1
, var3
) /* != on <var_pexterncallnode1:nullable Object>*/;
8833 array__Array__add(var_listnode2
, var_pexterncallnode1
); /* Direct call array#Array#add on <var_listnode2:Array[Object]>*/
8837 var_node_list
= var_listnode2
;
8838 var6
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction982> */
8840 var7
= parser_work__Parser__go_to(var_p
, var6
);
8843 parser_work__Parser__push(var_p
, var7
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
8847 /* method parser#ReduceAction982#action for (self: Object, Parser) */
8848 void VIRTUAL_parser__ReduceAction982__action(val
* self
, val
* p0
) {
8849 parser__ReduceAction982__action(self
, p0
); /* Direct call parser#ReduceAction982#action on <self:Object(ReduceAction982)>*/
8852 /* method parser#ReduceAction983#action for (self: ReduceAction983, Parser) */
8853 void parser__ReduceAction983__action(val
* self
, val
* p0
) {
8854 val
* var_p
/* var p: Parser */;
8855 val
* var
/* : null */;
8856 val
* var_node_list
/* var node_list: nullable Object */;
8857 val
* var1
/* : nullable Object */;
8858 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
8859 val
* var2
/* : nullable Object */;
8860 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
8861 val
* var3
/* : Array[Object] */;
8862 val
* var_listnode3
/* var listnode3: Array[Object] */;
8863 val
* var_listnode1
/* var listnode1: nullable Object */;
8864 short int var4
/* : Bool */;
8867 val
* var_pexterncallnode2
/* var pexterncallnode2: nullable Object */;
8868 val
* var5
/* : Array[Object] */;
8869 val
* var6
/* : null */;
8870 short int var7
/* : Bool */;
8871 short int var8
/* : Bool */;
8872 long var9
/* : Int */;
8873 long var10
/* : Int */;
8876 var_node_list
= var
;
8878 var1
= parser_work__Parser__pop(var_p
);
8880 var_nodearraylist2
= var1
;
8882 var2
= parser_work__Parser__pop(var_p
);
8884 var_nodearraylist1
= var2
;
8885 var3
= NEW_array__Array(&type_array__Arraykernel__Object
);
8887 ((void (*)(val
*))(var3
->class->vft
[COLOR_kernel__Object__init
]))(var3
) /* init on <var3:Array[Object]>*/;
8889 var_listnode3
= var3
;
8890 var_listnode1
= var_nodearraylist1
;
8891 /* <var_listnode1:nullable Object> isa Array[Object] */
8892 cltype
= type_array__Arraykernel__Object
.color
;
8893 idtype
= type_array__Arraykernel__Object
.id
;
8894 if(var_listnode1
== NULL
) {
8897 if(cltype
>= var_listnode1
->type
->table_size
) {
8900 var4
= var_listnode1
->type
->type_table
[cltype
] == idtype
;
8903 if (unlikely(!var4
)) {
8904 PRINT_ERROR("Runtime error: %s", "Assert failed");
8905 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 11093);
8908 var_pexterncallnode2
= var_nodearraylist2
;
8910 var5
= parser_work__ReduceAction__concat(self
, var_listnode3
, var_listnode1
);
8912 var_listnode3
= var5
;
8914 if (var_pexterncallnode2
== NULL
) {
8915 var7
= 0; /* is null */
8917 var7
= 1; /* arg is null and recv is not */
8920 var8
= ((short int (*)(val
*, val
*))(var_pexterncallnode2
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_pexterncallnode2
, var6
) /* != on <var_pexterncallnode2:nullable Object>*/;
8925 array__Array__add(var_listnode3
, var_pexterncallnode2
); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
8929 var_node_list
= var_listnode3
;
8930 var9
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction983> */
8932 var10
= parser_work__Parser__go_to(var_p
, var9
);
8935 parser_work__Parser__push(var_p
, var10
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
8939 /* method parser#ReduceAction983#action for (self: Object, Parser) */
8940 void VIRTUAL_parser__ReduceAction983__action(val
* self
, val
* p0
) {
8941 parser__ReduceAction983__action(self
, p0
); /* Direct call parser#ReduceAction983#action on <self:Object(ReduceAction983)>*/
8944 /* method parser#ReduceAction985#action for (self: ReduceAction985, Parser) */
8945 void parser__ReduceAction985__action(val
* self
, val
* p0
) {
8946 val
* var_p
/* var p: Parser */;
8947 val
* var
/* : null */;
8948 val
* var_node_list
/* var node_list: nullable Object */;
8949 val
* var1
/* : nullable Object */;
8950 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
8951 val
* var2
/* : nullable Object */;
8952 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
8953 val
* var3
/* : Array[Object] */;
8954 val
* var_listnode3
/* var listnode3: Array[Object] */;
8955 val
* var_listnode1
/* var listnode1: nullable Object */;
8956 short int var4
/* : Bool */;
8959 val
* var_ptypenode2
/* var ptypenode2: nullable Object */;
8960 val
* var5
/* : Array[Object] */;
8961 val
* var6
/* : null */;
8962 short int var7
/* : Bool */;
8963 short int var8
/* : Bool */;
8964 long var9
/* : Int */;
8965 long var10
/* : Int */;
8968 var_node_list
= var
;
8970 var1
= parser_work__Parser__pop(var_p
);
8972 var_nodearraylist2
= var1
;
8974 var2
= parser_work__Parser__pop(var_p
);
8976 var_nodearraylist1
= var2
;
8977 var3
= NEW_array__Array(&type_array__Arraykernel__Object
);
8979 ((void (*)(val
*))(var3
->class->vft
[COLOR_kernel__Object__init
]))(var3
) /* init on <var3:Array[Object]>*/;
8981 var_listnode3
= var3
;
8982 var_listnode1
= var_nodearraylist1
;
8983 /* <var_listnode1:nullable Object> isa Array[Object] */
8984 cltype
= type_array__Arraykernel__Object
.color
;
8985 idtype
= type_array__Arraykernel__Object
.id
;
8986 if(var_listnode1
== NULL
) {
8989 if(cltype
>= var_listnode1
->type
->table_size
) {
8992 var4
= var_listnode1
->type
->type_table
[cltype
] == idtype
;
8995 if (unlikely(!var4
)) {
8996 PRINT_ERROR("Runtime error: %s", "Assert failed");
8997 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 11112);
9000 var_ptypenode2
= var_nodearraylist2
;
9002 var5
= parser_work__ReduceAction__concat(self
, var_listnode3
, var_listnode1
);
9004 var_listnode3
= var5
;
9006 if (var_ptypenode2
== NULL
) {
9007 var7
= 0; /* is null */
9009 var7
= 1; /* arg is null and recv is not */
9012 var8
= ((short int (*)(val
*, val
*))(var_ptypenode2
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_ptypenode2
, var6
) /* != on <var_ptypenode2:nullable Object>*/;
9017 array__Array__add(var_listnode3
, var_ptypenode2
); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
9021 var_node_list
= var_listnode3
;
9022 var9
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction985> */
9024 var10
= parser_work__Parser__go_to(var_p
, var9
);
9027 parser_work__Parser__push(var_p
, var10
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
9031 /* method parser#ReduceAction985#action for (self: Object, Parser) */
9032 void VIRTUAL_parser__ReduceAction985__action(val
* self
, val
* p0
) {
9033 parser__ReduceAction985__action(self
, p0
); /* Direct call parser#ReduceAction985#action on <self:Object(ReduceAction985)>*/
9036 /* method parser#ReduceAction987#action for (self: ReduceAction987, Parser) */
9037 void parser__ReduceAction987__action(val
* self
, val
* p0
) {
9038 val
* var_p
/* var p: Parser */;
9039 val
* var
/* : null */;
9040 val
* var_node_list
/* var node_list: nullable Object */;
9041 val
* var1
/* : nullable Object */;
9042 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
9043 val
* var2
/* : nullable Object */;
9044 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
9045 val
* var3
/* : Array[Object] */;
9046 val
* var_listnode3
/* var listnode3: Array[Object] */;
9047 val
* var_listnode1
/* var listnode1: nullable Object */;
9048 short int var4
/* : Bool */;
9051 val
* var_pexprnode2
/* var pexprnode2: nullable Object */;
9052 val
* var5
/* : Array[Object] */;
9053 val
* var6
/* : null */;
9054 short int var7
/* : Bool */;
9055 short int var8
/* : Bool */;
9056 long var9
/* : Int */;
9057 long var10
/* : Int */;
9060 var_node_list
= var
;
9062 var1
= parser_work__Parser__pop(var_p
);
9064 var_nodearraylist2
= var1
;
9066 var2
= parser_work__Parser__pop(var_p
);
9068 var_nodearraylist1
= var2
;
9069 var3
= NEW_array__Array(&type_array__Arraykernel__Object
);
9071 ((void (*)(val
*))(var3
->class->vft
[COLOR_kernel__Object__init
]))(var3
) /* init on <var3:Array[Object]>*/;
9073 var_listnode3
= var3
;
9074 var_listnode1
= var_nodearraylist1
;
9075 /* <var_listnode1:nullable Object> isa Array[Object] */
9076 cltype
= type_array__Arraykernel__Object
.color
;
9077 idtype
= type_array__Arraykernel__Object
.id
;
9078 if(var_listnode1
== NULL
) {
9081 if(cltype
>= var_listnode1
->type
->table_size
) {
9084 var4
= var_listnode1
->type
->type_table
[cltype
] == idtype
;
9087 if (unlikely(!var4
)) {
9088 PRINT_ERROR("Runtime error: %s", "Assert failed");
9089 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 11131);
9092 var_pexprnode2
= var_nodearraylist2
;
9094 var5
= parser_work__ReduceAction__concat(self
, var_listnode3
, var_listnode1
);
9096 var_listnode3
= var5
;
9098 if (var_pexprnode2
== NULL
) {
9099 var7
= 0; /* is null */
9101 var7
= 1; /* arg is null and recv is not */
9104 var8
= ((short int (*)(val
*, val
*))(var_pexprnode2
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_pexprnode2
, var6
) /* != on <var_pexprnode2:nullable Object>*/;
9109 array__Array__add(var_listnode3
, var_pexprnode2
); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
9113 var_node_list
= var_listnode3
;
9114 var9
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction987> */
9116 var10
= parser_work__Parser__go_to(var_p
, var9
);
9119 parser_work__Parser__push(var_p
, var10
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
9123 /* method parser#ReduceAction987#action for (self: Object, Parser) */
9124 void VIRTUAL_parser__ReduceAction987__action(val
* self
, val
* p0
) {
9125 parser__ReduceAction987__action(self
, p0
); /* Direct call parser#ReduceAction987#action on <self:Object(ReduceAction987)>*/
9128 /* method parser#ReduceAction991#action for (self: ReduceAction991, Parser) */
9129 void parser__ReduceAction991__action(val
* self
, val
* p0
) {
9130 val
* var_p
/* var p: Parser */;
9131 val
* var
/* : null */;
9132 val
* var_node_list
/* var node_list: nullable Object */;
9133 val
* var1
/* : nullable Object */;
9134 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
9135 val
* var2
/* : nullable Object */;
9136 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
9137 val
* var3
/* : Array[Object] */;
9138 val
* var_listnode3
/* var listnode3: Array[Object] */;
9139 val
* var_listnode1
/* var listnode1: nullable Object */;
9140 short int var4
/* : Bool */;
9143 val
* var_listnode2
/* var listnode2: nullable Object */;
9144 short int var5
/* : Bool */;
9147 val
* var8
/* : Array[Object] */;
9148 val
* var9
/* : Array[Object] */;
9149 long var10
/* : Int */;
9150 long var11
/* : Int */;
9153 var_node_list
= var
;
9155 var1
= parser_work__Parser__pop(var_p
);
9157 var_nodearraylist2
= var1
;
9159 var2
= parser_work__Parser__pop(var_p
);
9161 var_nodearraylist1
= var2
;
9162 var3
= NEW_array__Array(&type_array__Arraykernel__Object
);
9164 ((void (*)(val
*))(var3
->class->vft
[COLOR_kernel__Object__init
]))(var3
) /* init on <var3:Array[Object]>*/;
9166 var_listnode3
= var3
;
9167 var_listnode1
= var_nodearraylist1
;
9168 /* <var_listnode1:nullable Object> isa Array[Object] */
9169 cltype
= type_array__Arraykernel__Object
.color
;
9170 idtype
= type_array__Arraykernel__Object
.id
;
9171 if(var_listnode1
== NULL
) {
9174 if(cltype
>= var_listnode1
->type
->table_size
) {
9177 var4
= var_listnode1
->type
->type_table
[cltype
] == idtype
;
9180 if (unlikely(!var4
)) {
9181 PRINT_ERROR("Runtime error: %s", "Assert failed");
9182 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 11150);
9185 var_listnode2
= var_nodearraylist2
;
9186 /* <var_listnode2:nullable Object> isa Array[Object] */
9187 cltype6
= type_array__Arraykernel__Object
.color
;
9188 idtype7
= type_array__Arraykernel__Object
.id
;
9189 if(var_listnode2
== NULL
) {
9192 if(cltype6
>= var_listnode2
->type
->table_size
) {
9195 var5
= var_listnode2
->type
->type_table
[cltype6
] == idtype7
;
9198 if (unlikely(!var5
)) {
9199 PRINT_ERROR("Runtime error: %s", "Assert failed");
9200 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 11152);
9204 var8
= parser_work__ReduceAction__concat(self
, var_listnode3
, var_listnode1
);
9206 var_listnode3
= var8
;
9208 var9
= parser_work__ReduceAction__concat(self
, var_listnode3
, var_listnode2
);
9210 var_listnode3
= var9
;
9211 var_node_list
= var_listnode3
;
9212 var10
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction991> */
9214 var11
= parser_work__Parser__go_to(var_p
, var10
);
9217 parser_work__Parser__push(var_p
, var11
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
9221 /* method parser#ReduceAction991#action for (self: Object, Parser) */
9222 void VIRTUAL_parser__ReduceAction991__action(val
* self
, val
* p0
) {
9223 parser__ReduceAction991__action(self
, p0
); /* Direct call parser#ReduceAction991#action on <self:Object(ReduceAction991)>*/
9226 /* method parser#ReduceAction993#action for (self: ReduceAction993, Parser) */
9227 void parser__ReduceAction993__action(val
* self
, val
* p0
) {
9228 val
* var_p
/* var p: Parser */;
9229 val
* var
/* : null */;
9230 val
* var_node_list
/* var node_list: nullable Object */;
9231 val
* var1
/* : nullable Object */;
9232 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
9233 val
* var2
/* : nullable Object */;
9234 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
9235 val
* var3
/* : Array[Object] */;
9236 val
* var_listnode3
/* var listnode3: Array[Object] */;
9237 val
* var_listnode1
/* var listnode1: nullable Object */;
9238 short int var4
/* : Bool */;
9241 val
* var_pannotationnode2
/* var pannotationnode2: nullable Object */;
9242 val
* var5
/* : Array[Object] */;
9243 val
* var6
/* : null */;
9244 short int var7
/* : Bool */;
9245 short int var8
/* : Bool */;
9246 long var9
/* : Int */;
9247 long var10
/* : Int */;
9250 var_node_list
= var
;
9252 var1
= parser_work__Parser__pop(var_p
);
9254 var_nodearraylist2
= var1
;
9256 var2
= parser_work__Parser__pop(var_p
);
9258 var_nodearraylist1
= var2
;
9259 var3
= NEW_array__Array(&type_array__Arraykernel__Object
);
9261 ((void (*)(val
*))(var3
->class->vft
[COLOR_kernel__Object__init
]))(var3
) /* init on <var3:Array[Object]>*/;
9263 var_listnode3
= var3
;
9264 var_listnode1
= var_nodearraylist1
;
9265 /* <var_listnode1:nullable Object> isa Array[Object] */
9266 cltype
= type_array__Arraykernel__Object
.color
;
9267 idtype
= type_array__Arraykernel__Object
.id
;
9268 if(var_listnode1
== NULL
) {
9271 if(cltype
>= var_listnode1
->type
->table_size
) {
9274 var4
= var_listnode1
->type
->type_table
[cltype
] == idtype
;
9277 if (unlikely(!var4
)) {
9278 PRINT_ERROR("Runtime error: %s", "Assert failed");
9279 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 11168);
9282 var_pannotationnode2
= var_nodearraylist2
;
9284 var5
= parser_work__ReduceAction__concat(self
, var_listnode3
, var_listnode1
);
9286 var_listnode3
= var5
;
9288 if (var_pannotationnode2
== NULL
) {
9289 var7
= 0; /* is null */
9291 var7
= 1; /* arg is null and recv is not */
9294 var8
= ((short int (*)(val
*, val
*))(var_pannotationnode2
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_pannotationnode2
, var6
) /* != on <var_pannotationnode2:nullable Object>*/;
9299 array__Array__add(var_listnode3
, var_pannotationnode2
); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
9303 var_node_list
= var_listnode3
;
9304 var9
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction993> */
9306 var10
= parser_work__Parser__go_to(var_p
, var9
);
9309 parser_work__Parser__push(var_p
, var10
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
9313 /* method parser#ReduceAction993#action for (self: Object, Parser) */
9314 void VIRTUAL_parser__ReduceAction993__action(val
* self
, val
* p0
) {
9315 parser__ReduceAction993__action(self
, p0
); /* Direct call parser#ReduceAction993#action on <self:Object(ReduceAction993)>*/
9318 /* method parser#ReduceAction1003#action for (self: ReduceAction1003, Parser) */
9319 void parser__ReduceAction1003__action(val
* self
, val
* p0
) {
9320 val
* var_p
/* var p: Parser */;
9321 val
* var
/* : null */;
9322 val
* var_node_list
/* var node_list: nullable Object */;
9323 val
* var1
/* : nullable Object */;
9324 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
9325 val
* var2
/* : nullable Object */;
9326 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
9327 val
* var3
/* : Array[Object] */;
9328 val
* var_listnode3
/* var listnode3: Array[Object] */;
9329 val
* var_listnode1
/* var listnode1: nullable Object */;
9330 short int var4
/* : Bool */;
9333 val
* var_tidnode2
/* var tidnode2: nullable Object */;
9334 val
* var5
/* : Array[Object] */;
9335 val
* var6
/* : null */;
9336 short int var7
/* : Bool */;
9337 short int var8
/* : Bool */;
9338 long var9
/* : Int */;
9339 long var10
/* : Int */;
9342 var_node_list
= var
;
9344 var1
= parser_work__Parser__pop(var_p
);
9346 var_nodearraylist2
= var1
;
9348 var2
= parser_work__Parser__pop(var_p
);
9350 var_nodearraylist1
= var2
;
9351 var3
= NEW_array__Array(&type_array__Arraykernel__Object
);
9353 ((void (*)(val
*))(var3
->class->vft
[COLOR_kernel__Object__init
]))(var3
) /* init on <var3:Array[Object]>*/;
9355 var_listnode3
= var3
;
9356 var_listnode1
= var_nodearraylist1
;
9357 /* <var_listnode1:nullable Object> isa Array[Object] */
9358 cltype
= type_array__Arraykernel__Object
.color
;
9359 idtype
= type_array__Arraykernel__Object
.id
;
9360 if(var_listnode1
== NULL
) {
9363 if(cltype
>= var_listnode1
->type
->table_size
) {
9366 var4
= var_listnode1
->type
->type_table
[cltype
] == idtype
;
9369 if (unlikely(!var4
)) {
9370 PRINT_ERROR("Runtime error: %s", "Assert failed");
9371 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 11187);
9374 var_tidnode2
= var_nodearraylist2
;
9376 var5
= parser_work__ReduceAction__concat(self
, var_listnode3
, var_listnode1
);
9378 var_listnode3
= var5
;
9380 if (var_tidnode2
== NULL
) {
9381 var7
= 0; /* is null */
9383 var7
= 1; /* arg is null and recv is not */
9386 var8
= ((short int (*)(val
*, val
*))(var_tidnode2
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_tidnode2
, var6
) /* != on <var_tidnode2:nullable Object>*/;
9391 array__Array__add(var_listnode3
, var_tidnode2
); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
9395 var_node_list
= var_listnode3
;
9396 var9
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction1003> */
9398 var10
= parser_work__Parser__go_to(var_p
, var9
);
9401 parser_work__Parser__push(var_p
, var10
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
9405 /* method parser#ReduceAction1003#action for (self: Object, Parser) */
9406 void VIRTUAL_parser__ReduceAction1003__action(val
* self
, val
* p0
) {
9407 parser__ReduceAction1003__action(self
, p0
); /* Direct call parser#ReduceAction1003#action on <self:Object(ReduceAction1003)>*/
9410 /* method parser#ReduceAction1004#action for (self: ReduceAction1004, Parser) */
9411 void parser__ReduceAction1004__action(val
* self
, val
* p0
) {
9412 val
* var_p
/* var p: Parser */;
9413 val
* var
/* : null */;
9414 val
* var_node_list
/* var node_list: nullable Object */;
9415 val
* var1
/* : nullable Object */;
9416 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
9417 val
* var2
/* : Array[Object] */;
9418 val
* var_listnode2
/* var listnode2: Array[Object] */;
9419 val
* var_tcommentnode1
/* var tcommentnode1: nullable Object */;
9420 val
* var3
/* : null */;
9421 short int var4
/* : Bool */;
9422 short int var5
/* : Bool */;
9423 long var6
/* : Int */;
9424 long var7
/* : Int */;
9427 var_node_list
= var
;
9429 var1
= parser_work__Parser__pop(var_p
);
9431 var_nodearraylist1
= var1
;
9432 var2
= NEW_array__Array(&type_array__Arraykernel__Object
);
9434 ((void (*)(val
*))(var2
->class->vft
[COLOR_kernel__Object__init
]))(var2
) /* init on <var2:Array[Object]>*/;
9436 var_listnode2
= var2
;
9437 var_tcommentnode1
= var_nodearraylist1
;
9439 if (var_tcommentnode1
== NULL
) {
9440 var4
= 0; /* is null */
9442 var4
= 1; /* arg is null and recv is not */
9445 var5
= ((short int (*)(val
*, val
*))(var_tcommentnode1
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_tcommentnode1
, var3
) /* != on <var_tcommentnode1:nullable Object>*/;
9450 array__Array__add(var_listnode2
, var_tcommentnode1
); /* Direct call array#Array#add on <var_listnode2:Array[Object]>*/
9454 var_node_list
= var_listnode2
;
9455 var6
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction1004> */
9457 var7
= parser_work__Parser__go_to(var_p
, var6
);
9460 parser_work__Parser__push(var_p
, var7
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
9464 /* method parser#ReduceAction1004#action for (self: Object, Parser) */
9465 void VIRTUAL_parser__ReduceAction1004__action(val
* self
, val
* p0
) {
9466 parser__ReduceAction1004__action(self
, p0
); /* Direct call parser#ReduceAction1004#action on <self:Object(ReduceAction1004)>*/
9469 /* method parser#ReduceAction1005#action for (self: ReduceAction1005, Parser) */
9470 void parser__ReduceAction1005__action(val
* self
, val
* p0
) {
9471 val
* var_p
/* var p: Parser */;
9472 val
* var
/* : null */;
9473 val
* var_node_list
/* var node_list: nullable Object */;
9474 val
* var1
/* : nullable Object */;
9475 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
9476 val
* var2
/* : nullable Object */;
9477 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
9478 val
* var3
/* : Array[Object] */;
9479 val
* var_listnode3
/* var listnode3: Array[Object] */;
9480 val
* var_listnode1
/* var listnode1: nullable Object */;
9481 short int var4
/* : Bool */;
9484 val
* var_tcommentnode2
/* var tcommentnode2: nullable Object */;
9485 val
* var5
/* : Array[Object] */;
9486 val
* var6
/* : null */;
9487 short int var7
/* : Bool */;
9488 short int var8
/* : Bool */;
9489 long var9
/* : Int */;
9490 long var10
/* : Int */;
9493 var_node_list
= var
;
9495 var1
= parser_work__Parser__pop(var_p
);
9497 var_nodearraylist2
= var1
;
9499 var2
= parser_work__Parser__pop(var_p
);
9501 var_nodearraylist1
= var2
;
9502 var3
= NEW_array__Array(&type_array__Arraykernel__Object
);
9504 ((void (*)(val
*))(var3
->class->vft
[COLOR_kernel__Object__init
]))(var3
) /* init on <var3:Array[Object]>*/;
9506 var_listnode3
= var3
;
9507 var_listnode1
= var_nodearraylist1
;
9508 /* <var_listnode1:nullable Object> isa Array[Object] */
9509 cltype
= type_array__Arraykernel__Object
.color
;
9510 idtype
= type_array__Arraykernel__Object
.id
;
9511 if(var_listnode1
== NULL
) {
9514 if(cltype
>= var_listnode1
->type
->table_size
) {
9517 var4
= var_listnode1
->type
->type_table
[cltype
] == idtype
;
9520 if (unlikely(!var4
)) {
9521 PRINT_ERROR("Runtime error: %s", "Assert failed");
9522 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 11221);
9525 var_tcommentnode2
= var_nodearraylist2
;
9527 var5
= parser_work__ReduceAction__concat(self
, var_listnode3
, var_listnode1
);
9529 var_listnode3
= var5
;
9531 if (var_tcommentnode2
== NULL
) {
9532 var7
= 0; /* is null */
9534 var7
= 1; /* arg is null and recv is not */
9537 var8
= ((short int (*)(val
*, val
*))(var_tcommentnode2
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_tcommentnode2
, var6
) /* != on <var_tcommentnode2:nullable Object>*/;
9542 array__Array__add(var_listnode3
, var_tcommentnode2
); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
9546 var_node_list
= var_listnode3
;
9547 var9
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction1005> */
9549 var10
= parser_work__Parser__go_to(var_p
, var9
);
9552 parser_work__Parser__push(var_p
, var10
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
9556 /* method parser#ReduceAction1005#action for (self: Object, Parser) */
9557 void VIRTUAL_parser__ReduceAction1005__action(val
* self
, val
* p0
) {
9558 parser__ReduceAction1005__action(self
, p0
); /* Direct call parser#ReduceAction1005#action on <self:Object(ReduceAction1005)>*/
9561 /* method parser#ReduceAction1006#action for (self: ReduceAction1006, Parser) */
9562 void parser__ReduceAction1006__action(val
* self
, val
* p0
) {
9563 val
* var_p
/* var p: Parser */;
9564 val
* var
/* : null */;
9565 val
* var_node_list
/* var node_list: nullable Object */;
9566 val
* var1
/* : nullable Object */;
9567 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
9568 val
* var2
/* : Array[Object] */;
9569 val
* var_listnode2
/* var listnode2: Array[Object] */;
9570 val
* var_teolnode1
/* var teolnode1: nullable Object */;
9571 val
* var3
/* : null */;
9572 short int var4
/* : Bool */;
9573 short int var5
/* : Bool */;
9574 long var6
/* : Int */;
9575 long var7
/* : Int */;
9578 var_node_list
= var
;
9580 var1
= parser_work__Parser__pop(var_p
);
9582 var_nodearraylist1
= var1
;
9583 var2
= NEW_array__Array(&type_array__Arraykernel__Object
);
9585 ((void (*)(val
*))(var2
->class->vft
[COLOR_kernel__Object__init
]))(var2
) /* init on <var2:Array[Object]>*/;
9587 var_listnode2
= var2
;
9588 var_teolnode1
= var_nodearraylist1
;
9590 if (var_teolnode1
== NULL
) {
9591 var4
= 0; /* is null */
9593 var4
= 1; /* arg is null and recv is not */
9596 var5
= ((short int (*)(val
*, val
*))(var_teolnode1
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_teolnode1
, var3
) /* != on <var_teolnode1:nullable Object>*/;
9601 array__Array__add(var_listnode2
, var_teolnode1
); /* Direct call array#Array#add on <var_listnode2:Array[Object]>*/
9605 var_node_list
= var_listnode2
;
9606 var6
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction1006> */
9608 var7
= parser_work__Parser__go_to(var_p
, var6
);
9611 parser_work__Parser__push(var_p
, var7
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
9615 /* method parser#ReduceAction1006#action for (self: Object, Parser) */
9616 void VIRTUAL_parser__ReduceAction1006__action(val
* self
, val
* p0
) {
9617 parser__ReduceAction1006__action(self
, p0
); /* Direct call parser#ReduceAction1006#action on <self:Object(ReduceAction1006)>*/
9620 /* method parser#ReduceAction1007#action for (self: ReduceAction1007, Parser) */
9621 void parser__ReduceAction1007__action(val
* self
, val
* p0
) {
9622 val
* var_p
/* var p: Parser */;
9623 val
* var
/* : null */;
9624 val
* var_node_list
/* var node_list: nullable Object */;
9625 val
* var1
/* : nullable Object */;
9626 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
9627 val
* var2
/* : nullable Object */;
9628 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
9629 val
* var3
/* : Array[Object] */;
9630 val
* var_listnode3
/* var listnode3: Array[Object] */;
9631 val
* var_listnode1
/* var listnode1: nullable Object */;
9632 short int var4
/* : Bool */;
9635 val
* var_teolnode2
/* var teolnode2: nullable Object */;
9636 val
* var5
/* : Array[Object] */;
9637 val
* var6
/* : null */;
9638 short int var7
/* : Bool */;
9639 short int var8
/* : Bool */;
9640 long var9
/* : Int */;
9641 long var10
/* : Int */;
9644 var_node_list
= var
;
9646 var1
= parser_work__Parser__pop(var_p
);
9648 var_nodearraylist2
= var1
;
9650 var2
= parser_work__Parser__pop(var_p
);
9652 var_nodearraylist1
= var2
;
9653 var3
= NEW_array__Array(&type_array__Arraykernel__Object
);
9655 ((void (*)(val
*))(var3
->class->vft
[COLOR_kernel__Object__init
]))(var3
) /* init on <var3:Array[Object]>*/;
9657 var_listnode3
= var3
;
9658 var_listnode1
= var_nodearraylist1
;
9659 /* <var_listnode1:nullable Object> isa Array[Object] */
9660 cltype
= type_array__Arraykernel__Object
.color
;
9661 idtype
= type_array__Arraykernel__Object
.id
;
9662 if(var_listnode1
== NULL
) {
9665 if(cltype
>= var_listnode1
->type
->table_size
) {
9668 var4
= var_listnode1
->type
->type_table
[cltype
] == idtype
;
9671 if (unlikely(!var4
)) {
9672 PRINT_ERROR("Runtime error: %s", "Assert failed");
9673 PRINT_ERROR(" (%s:%d)\n", "parser/parser.nit", 11255);
9676 var_teolnode2
= var_nodearraylist2
;
9678 var5
= parser_work__ReduceAction__concat(self
, var_listnode3
, var_listnode1
);
9680 var_listnode3
= var5
;
9682 if (var_teolnode2
== NULL
) {
9683 var7
= 0; /* is null */
9685 var7
= 1; /* arg is null and recv is not */
9688 var8
= ((short int (*)(val
*, val
*))(var_teolnode2
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_teolnode2
, var6
) /* != on <var_teolnode2:nullable Object>*/;
9693 array__Array__add(var_listnode3
, var_teolnode2
); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
9697 var_node_list
= var_listnode3
;
9698 var9
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction1007> */
9700 var10
= parser_work__Parser__go_to(var_p
, var9
);
9703 parser_work__Parser__push(var_p
, var10
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
9707 /* method parser#ReduceAction1007#action for (self: Object, Parser) */
9708 void VIRTUAL_parser__ReduceAction1007__action(val
* self
, val
* p0
) {
9709 parser__ReduceAction1007__action(self
, p0
); /* Direct call parser#ReduceAction1007#action on <self:Object(ReduceAction1007)>*/