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_listnode3
/* var listnode3: Array[Object] */;
15 val
* var_tquadnode2
/* var tquadnode2: nullable Object */;
16 short int var5
/* : Bool */;
19 val
* var_tidnode4
/* var tidnode4: nullable Object */;
20 short int var6
/* : Bool */;
23 val
* var9
/* : AModuleName */;
24 val
* var_pmodulenamenode1
/* var pmodulenamenode1: nullable AModuleName */;
25 long var10
/* : Int */;
26 long var11
/* : Int */;
31 var1
= parser_work__Parser__pop(var_p
);
33 var_nodearraylist3
= var1
;
35 var2
= parser_work__Parser__pop(var_p
);
37 var_nodearraylist2
= var2
;
39 var3
= parser_work__Parser__pop(var_p
);
41 var_nodearraylist1
= var3
;
42 var4
= NEW_array__Array(&type_array__Arraykernel__Object
);
44 array__Array__init(var4
); /* Direct call array#Array#init on <var4:Array[Object]>*/
47 var_tquadnode2
= var_nodearraylist1
;
48 /* <var_tquadnode2:nullable Object> isa nullable TQuad */
49 cltype
= type_nullable_parser_nodes__TQuad
.color
;
50 idtype
= type_nullable_parser_nodes__TQuad
.id
;
51 if(var_tquadnode2
== NULL
) {
54 if(cltype
>= var_tquadnode2
->type
->table_size
) {
57 var5
= var_tquadnode2
->type
->type_table
[cltype
] == idtype
;
60 if (unlikely(!var5
)) {
61 PRINT_ERROR("Runtime error: %s", "Assert failed");
62 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 9230);
65 var_tidnode4
= var_nodearraylist3
;
66 /* <var_tidnode4:nullable Object> isa nullable TId */
67 cltype7
= type_nullable_parser_nodes__TId
.color
;
68 idtype8
= type_nullable_parser_nodes__TId
.id
;
69 if(var_tidnode4
== NULL
) {
72 if(cltype7
>= var_tidnode4
->type
->table_size
) {
75 var6
= var_tidnode4
->type
->type_table
[cltype7
] == idtype8
;
78 if (unlikely(!var6
)) {
79 PRINT_ERROR("Runtime error: %s", "Assert failed");
80 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 9232);
83 var9
= NEW_parser_nodes__AModuleName(&type_parser_nodes__AModuleName
);
85 parser_prod__AModuleName__init_amodulename(var9
, var_tquadnode2
, var_listnode3
, var_tidnode4
); /* Direct call parser_prod#AModuleName#init_amodulename on <var9:AModuleName>*/
87 var_pmodulenamenode1
= var9
;
88 var_node_list
= var_pmodulenamenode1
;
89 var10
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction362> */
91 var11
= parser_work__Parser__go_to(var_p
, var10
);
94 parser_work__Parser__push(var_p
, var11
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
98 /* method parser#ReduceAction362#action for (self: Object, Parser) */
99 void VIRTUAL_parser__ReduceAction362__action(val
* self
, val
* p0
) {
100 parser__ReduceAction362__action(self
, p0
); /* Direct call parser#ReduceAction362#action on <self:Object(ReduceAction362)>*/
103 /* method parser#ReduceAction363#action for (self: ReduceAction363, Parser) */
104 void parser__ReduceAction363__action(val
* self
, val
* p0
) {
105 val
* var_p
/* var p: Parser */;
106 val
* var
/* : null */;
107 val
* var_node_list
/* var node_list: nullable Object */;
108 val
* var1
/* : nullable Object */;
109 val
* var_nodearraylist4
/* var nodearraylist4: nullable Object */;
110 val
* var2
/* : nullable Object */;
111 val
* var_nodearraylist3
/* var nodearraylist3: nullable Object */;
112 val
* var3
/* : nullable Object */;
113 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
114 val
* var4
/* : nullable Object */;
115 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
116 val
* var5
/* : Array[Object] */;
117 val
* var_listnode4
/* var listnode4: Array[Object] */;
118 val
* var_tquadnode2
/* var tquadnode2: nullable Object */;
119 short int var6
/* : Bool */;
122 val
* var_listnode3
/* var listnode3: nullable Object */;
123 short int var7
/* : Bool */;
126 val
* var10
/* : Array[Object] */;
127 val
* var_tidnode5
/* var tidnode5: nullable Object */;
128 short int var11
/* : Bool */;
131 val
* var14
/* : AModuleName */;
132 val
* var_pmodulenamenode1
/* var pmodulenamenode1: nullable AModuleName */;
133 long var15
/* : Int */;
134 long var16
/* : Int */;
139 var1
= parser_work__Parser__pop(var_p
);
141 var_nodearraylist4
= var1
;
143 var2
= parser_work__Parser__pop(var_p
);
145 var_nodearraylist3
= var2
;
147 var3
= parser_work__Parser__pop(var_p
);
149 var_nodearraylist2
= var3
;
151 var4
= parser_work__Parser__pop(var_p
);
153 var_nodearraylist1
= var4
;
154 var5
= NEW_array__Array(&type_array__Arraykernel__Object
);
156 array__Array__init(var5
); /* Direct call array#Array#init on <var5:Array[Object]>*/
158 var_listnode4
= var5
;
159 var_tquadnode2
= var_nodearraylist1
;
160 /* <var_tquadnode2:nullable Object> isa nullable TQuad */
161 cltype
= type_nullable_parser_nodes__TQuad
.color
;
162 idtype
= type_nullable_parser_nodes__TQuad
.id
;
163 if(var_tquadnode2
== NULL
) {
166 if(cltype
>= var_tquadnode2
->type
->table_size
) {
169 var6
= var_tquadnode2
->type
->type_table
[cltype
] == idtype
;
172 if (unlikely(!var6
)) {
173 PRINT_ERROR("Runtime error: %s", "Assert failed");
174 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 9253);
177 var_listnode3
= var_nodearraylist3
;
178 /* <var_listnode3:nullable Object> isa Array[Object] */
179 cltype8
= type_array__Arraykernel__Object
.color
;
180 idtype9
= type_array__Arraykernel__Object
.id
;
181 if(var_listnode3
== NULL
) {
184 if(cltype8
>= var_listnode3
->type
->table_size
) {
187 var7
= var_listnode3
->type
->type_table
[cltype8
] == idtype9
;
190 if (unlikely(!var7
)) {
191 PRINT_ERROR("Runtime error: %s", "Assert failed");
192 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 9255);
196 var10
= parser_work__ReduceAction__concat(self
, var_listnode4
, var_listnode3
);
198 var_listnode4
= var10
;
199 var_tidnode5
= var_nodearraylist4
;
200 /* <var_tidnode5:nullable Object> isa nullable TId */
201 cltype12
= type_nullable_parser_nodes__TId
.color
;
202 idtype13
= type_nullable_parser_nodes__TId
.id
;
203 if(var_tidnode5
== NULL
) {
206 if(cltype12
>= var_tidnode5
->type
->table_size
) {
209 var11
= var_tidnode5
->type
->type_table
[cltype12
] == idtype13
;
212 if (unlikely(!var11
)) {
213 PRINT_ERROR("Runtime error: %s", "Assert failed");
214 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 9258);
217 var14
= NEW_parser_nodes__AModuleName(&type_parser_nodes__AModuleName
);
219 parser_prod__AModuleName__init_amodulename(var14
, var_tquadnode2
, var_listnode4
, var_tidnode5
); /* Direct call parser_prod#AModuleName#init_amodulename on <var14:AModuleName>*/
221 var_pmodulenamenode1
= var14
;
222 var_node_list
= var_pmodulenamenode1
;
223 var15
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction363> */
225 var16
= parser_work__Parser__go_to(var_p
, var15
);
228 parser_work__Parser__push(var_p
, var16
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
232 /* method parser#ReduceAction363#action for (self: Object, Parser) */
233 void VIRTUAL_parser__ReduceAction363__action(val
* self
, val
* p0
) {
234 parser__ReduceAction363__action(self
, p0
); /* Direct call parser#ReduceAction363#action on <self:Object(ReduceAction363)>*/
237 /* method parser#ReduceAction364#action for (self: ReduceAction364, Parser) */
238 void parser__ReduceAction364__action(val
* self
, val
* p0
) {
239 val
* var_p
/* var p: Parser */;
240 val
* var
/* : null */;
241 val
* var_node_list
/* var node_list: nullable Object */;
242 val
* var1
/* : nullable Object */;
243 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
244 val
* var2
/* : Array[Object] */;
245 val
* var_listnode2
/* var listnode2: Array[Object] */;
246 val
* var_tclassidnode3
/* var tclassidnode3: nullable Object */;
247 short int var3
/* : Bool */;
250 val
* var4
/* : AQualified */;
251 val
* var_pqualifiednode1
/* var pqualifiednode1: nullable AQualified */;
252 long var5
/* : Int */;
253 long var6
/* : Int */;
258 var1
= parser_work__Parser__pop(var_p
);
260 var_nodearraylist1
= var1
;
261 var2
= NEW_array__Array(&type_array__Arraykernel__Object
);
263 array__Array__init(var2
); /* Direct call array#Array#init on <var2:Array[Object]>*/
265 var_listnode2
= var2
;
266 var_tclassidnode3
= var_nodearraylist1
;
267 /* <var_tclassidnode3:nullable Object> isa nullable TClassid */
268 cltype
= type_nullable_parser_nodes__TClassid
.color
;
269 idtype
= type_nullable_parser_nodes__TClassid
.id
;
270 if(var_tclassidnode3
== NULL
) {
273 if(cltype
>= var_tclassidnode3
->type
->table_size
) {
276 var3
= var_tclassidnode3
->type
->type_table
[cltype
] == idtype
;
279 if (unlikely(!var3
)) {
280 PRINT_ERROR("Runtime error: %s", "Assert failed");
281 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 9276);
284 var4
= NEW_parser_nodes__AQualified(&type_parser_nodes__AQualified
);
286 parser_prod__AQualified__init_aqualified(var4
, var_listnode2
, var_tclassidnode3
); /* Direct call parser_prod#AQualified#init_aqualified on <var4:AQualified>*/
288 var_pqualifiednode1
= var4
;
289 var_node_list
= var_pqualifiednode1
;
290 var5
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction364> */
292 var6
= parser_work__Parser__go_to(var_p
, var5
);
295 parser_work__Parser__push(var_p
, var6
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
299 /* method parser#ReduceAction364#action for (self: Object, Parser) */
300 void VIRTUAL_parser__ReduceAction364__action(val
* self
, val
* p0
) {
301 parser__ReduceAction364__action(self
, p0
); /* Direct call parser#ReduceAction364#action on <self:Object(ReduceAction364)>*/
304 /* method parser#ReduceAction365#action for (self: ReduceAction365, Parser) */
305 void parser__ReduceAction365__action(val
* self
, val
* p0
) {
306 val
* var_p
/* var p: Parser */;
307 val
* var
/* : null */;
308 val
* var_node_list
/* var node_list: nullable Object */;
309 val
* var1
/* : nullable Object */;
310 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
311 val
* var2
/* : nullable Object */;
312 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
313 val
* var3
/* : Array[Object] */;
314 val
* var_listnode3
/* var listnode3: Array[Object] */;
315 val
* var_listnode2
/* var listnode2: nullable Object */;
316 short int var4
/* : Bool */;
319 val
* var5
/* : Array[Object] */;
320 val
* var_tclassidnode4
/* var tclassidnode4: nullable Object */;
321 short int var6
/* : Bool */;
324 val
* var9
/* : AQualified */;
325 val
* var_pqualifiednode1
/* var pqualifiednode1: nullable AQualified */;
326 long var10
/* : Int */;
327 long var11
/* : Int */;
332 var1
= parser_work__Parser__pop(var_p
);
334 var_nodearraylist2
= var1
;
336 var2
= parser_work__Parser__pop(var_p
);
338 var_nodearraylist1
= var2
;
339 var3
= NEW_array__Array(&type_array__Arraykernel__Object
);
341 array__Array__init(var3
); /* Direct call array#Array#init on <var3:Array[Object]>*/
343 var_listnode3
= var3
;
344 var_listnode2
= var_nodearraylist1
;
345 /* <var_listnode2:nullable Object> isa Array[Object] */
346 cltype
= type_array__Arraykernel__Object
.color
;
347 idtype
= type_array__Arraykernel__Object
.id
;
348 if(var_listnode2
== NULL
) {
351 if(cltype
>= var_listnode2
->type
->table_size
) {
354 var4
= var_listnode2
->type
->type_table
[cltype
] == idtype
;
357 if (unlikely(!var4
)) {
358 PRINT_ERROR("Runtime error: %s", "Assert failed");
359 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 9294);
363 var5
= parser_work__ReduceAction__concat(self
, var_listnode3
, var_listnode2
);
365 var_listnode3
= var5
;
366 var_tclassidnode4
= var_nodearraylist2
;
367 /* <var_tclassidnode4:nullable Object> isa nullable TClassid */
368 cltype7
= type_nullable_parser_nodes__TClassid
.color
;
369 idtype8
= type_nullable_parser_nodes__TClassid
.id
;
370 if(var_tclassidnode4
== NULL
) {
373 if(cltype7
>= var_tclassidnode4
->type
->table_size
) {
376 var6
= var_tclassidnode4
->type
->type_table
[cltype7
] == idtype8
;
379 if (unlikely(!var6
)) {
380 PRINT_ERROR("Runtime error: %s", "Assert failed");
381 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 9297);
384 var9
= NEW_parser_nodes__AQualified(&type_parser_nodes__AQualified
);
386 parser_prod__AQualified__init_aqualified(var9
, var_listnode3
, var_tclassidnode4
); /* Direct call parser_prod#AQualified#init_aqualified on <var9:AQualified>*/
388 var_pqualifiednode1
= var9
;
389 var_node_list
= var_pqualifiednode1
;
390 var10
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction365> */
392 var11
= parser_work__Parser__go_to(var_p
, var10
);
395 parser_work__Parser__push(var_p
, var11
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
399 /* method parser#ReduceAction365#action for (self: Object, Parser) */
400 void VIRTUAL_parser__ReduceAction365__action(val
* self
, val
* p0
) {
401 parser__ReduceAction365__action(self
, p0
); /* Direct call parser#ReduceAction365#action on <self:Object(ReduceAction365)>*/
404 /* method parser#ReduceAction366#action for (self: ReduceAction366, Parser) */
405 void parser__ReduceAction366__action(val
* self
, val
* p0
) {
406 val
* var_p
/* var p: Parser */;
407 val
* var
/* : null */;
408 val
* var_node_list
/* var node_list: nullable Object */;
409 val
* var1
/* : nullable Object */;
410 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
411 val
* var2
/* : Array[Object] */;
412 val
* var_listnode3
/* var listnode3: Array[Object] */;
413 val
* var_listnode2
/* var listnode2: nullable Object */;
414 short int var3
/* : Bool */;
417 val
* var4
/* : Array[Object] */;
418 val
* var5
/* : AQualified */;
419 val
* var6
/* : null */;
420 val
* var_pqualifiednode1
/* var pqualifiednode1: nullable AQualified */;
421 long var7
/* : Int */;
422 long var8
/* : Int */;
427 var1
= parser_work__Parser__pop(var_p
);
429 var_nodearraylist1
= var1
;
430 var2
= NEW_array__Array(&type_array__Arraykernel__Object
);
432 array__Array__init(var2
); /* Direct call array#Array#init on <var2:Array[Object]>*/
434 var_listnode3
= var2
;
435 var_listnode2
= var_nodearraylist1
;
436 /* <var_listnode2:nullable Object> isa Array[Object] */
437 cltype
= type_array__Arraykernel__Object
.color
;
438 idtype
= type_array__Arraykernel__Object
.id
;
439 if(var_listnode2
== NULL
) {
442 if(cltype
>= var_listnode2
->type
->table_size
) {
445 var3
= var_listnode2
->type
->type_table
[cltype
] == idtype
;
448 if (unlikely(!var3
)) {
449 PRINT_ERROR("Runtime error: %s", "Assert failed");
450 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 9314);
454 var4
= parser_work__ReduceAction__concat(self
, var_listnode3
, var_listnode2
);
456 var_listnode3
= var4
;
457 var5
= NEW_parser_nodes__AQualified(&type_parser_nodes__AQualified
);
460 parser_prod__AQualified__init_aqualified(var5
, var_listnode3
, var6
); /* Direct call parser_prod#AQualified#init_aqualified on <var5:AQualified>*/
462 var_pqualifiednode1
= var5
;
463 var_node_list
= var_pqualifiednode1
;
464 var7
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction366> */
466 var8
= parser_work__Parser__go_to(var_p
, var7
);
469 parser_work__Parser__push(var_p
, var8
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
473 /* method parser#ReduceAction366#action for (self: Object, Parser) */
474 void VIRTUAL_parser__ReduceAction366__action(val
* self
, val
* p0
) {
475 parser__ReduceAction366__action(self
, p0
); /* Direct call parser#ReduceAction366#action on <self:Object(ReduceAction366)>*/
478 /* method parser#ReduceAction368#action for (self: ReduceAction368, Parser) */
479 void parser__ReduceAction368__action(val
* self
, val
* p0
) {
480 val
* var_p
/* var p: Parser */;
481 val
* var
/* : null */;
482 val
* var_node_list
/* var node_list: nullable Object */;
483 val
* var1
/* : nullable Object */;
484 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
485 val
* var_tidnode1
/* var tidnode1: nullable Object */;
486 long var2
/* : Int */;
487 long var3
/* : Int */;
492 var1
= parser_work__Parser__pop(var_p
);
494 var_nodearraylist1
= var1
;
495 var_tidnode1
= var_nodearraylist1
;
496 var_node_list
= var_tidnode1
;
497 var2
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction368> */
499 var3
= parser_work__Parser__go_to(var_p
, var2
);
502 parser_work__Parser__push(var_p
, var3
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
506 /* method parser#ReduceAction368#action for (self: Object, Parser) */
507 void VIRTUAL_parser__ReduceAction368__action(val
* self
, val
* p0
) {
508 parser__ReduceAction368__action(self
, p0
); /* Direct call parser#ReduceAction368#action on <self:Object(ReduceAction368)>*/
511 /* method parser#ReduceAction369#action for (self: ReduceAction369, Parser) */
512 void parser__ReduceAction369__action(val
* self
, val
* p0
) {
513 val
* var_p
/* var p: Parser */;
514 val
* var
/* : null */;
515 val
* var_node_list
/* var node_list: nullable Object */;
516 val
* var1
/* : nullable Object */;
517 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
518 val
* var2
/* : nullable Object */;
519 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
520 val
* var_tidnode1
/* var tidnode1: nullable Object */;
521 long var3
/* : Int */;
522 long var4
/* : Int */;
527 var1
= parser_work__Parser__pop(var_p
);
529 var_nodearraylist2
= var1
;
531 var2
= parser_work__Parser__pop(var_p
);
533 var_nodearraylist1
= var2
;
534 var_tidnode1
= var_nodearraylist2
;
535 var_node_list
= var_tidnode1
;
536 var3
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction369> */
538 var4
= parser_work__Parser__go_to(var_p
, var3
);
541 parser_work__Parser__push(var_p
, var4
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
545 /* method parser#ReduceAction369#action for (self: Object, Parser) */
546 void VIRTUAL_parser__ReduceAction369__action(val
* self
, val
* p0
) {
547 parser__ReduceAction369__action(self
, p0
); /* Direct call parser#ReduceAction369#action on <self:Object(ReduceAction369)>*/
550 /* method parser#ReduceAction370#action for (self: ReduceAction370, Parser) */
551 void parser__ReduceAction370__action(val
* self
, val
* p0
) {
552 val
* var_p
/* var p: Parser */;
553 val
* var
/* : null */;
554 val
* var_node_list
/* var node_list: nullable Object */;
555 val
* var1
/* : nullable Object */;
556 val
* var_nodearraylist3
/* var nodearraylist3: nullable Object */;
557 val
* var2
/* : nullable Object */;
558 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
559 val
* var3
/* : nullable Object */;
560 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
561 val
* var_tidnode1
/* var tidnode1: nullable Object */;
562 long var4
/* : Int */;
563 long var5
/* : Int */;
568 var1
= parser_work__Parser__pop(var_p
);
570 var_nodearraylist3
= var1
;
572 var2
= parser_work__Parser__pop(var_p
);
574 var_nodearraylist2
= var2
;
576 var3
= parser_work__Parser__pop(var_p
);
578 var_nodearraylist1
= var3
;
579 var_tidnode1
= var_nodearraylist3
;
580 var_node_list
= var_tidnode1
;
581 var4
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction370> */
583 var5
= parser_work__Parser__go_to(var_p
, var4
);
586 parser_work__Parser__push(var_p
, var5
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
590 /* method parser#ReduceAction370#action for (self: Object, Parser) */
591 void VIRTUAL_parser__ReduceAction370__action(val
* self
, val
* p0
) {
592 parser__ReduceAction370__action(self
, p0
); /* Direct call parser#ReduceAction370#action on <self:Object(ReduceAction370)>*/
595 /* method parser#ReduceAction372#action for (self: ReduceAction372, Parser) */
596 void parser__ReduceAction372__action(val
* self
, val
* p0
) {
597 val
* var_p
/* var p: Parser */;
598 val
* var
/* : null */;
599 val
* var_node_list
/* var node_list: nullable Object */;
600 val
* var1
/* : nullable Object */;
601 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
602 val
* var_tclassidnode1
/* var tclassidnode1: nullable Object */;
603 long var2
/* : Int */;
604 long var3
/* : Int */;
609 var1
= parser_work__Parser__pop(var_p
);
611 var_nodearraylist1
= var1
;
612 var_tclassidnode1
= var_nodearraylist1
;
613 var_node_list
= var_tclassidnode1
;
614 var2
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction372> */
616 var3
= parser_work__Parser__go_to(var_p
, var2
);
619 parser_work__Parser__push(var_p
, var3
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
623 /* method parser#ReduceAction372#action for (self: Object, Parser) */
624 void VIRTUAL_parser__ReduceAction372__action(val
* self
, val
* p0
) {
625 parser__ReduceAction372__action(self
, p0
); /* Direct call parser#ReduceAction372#action on <self:Object(ReduceAction372)>*/
628 /* method parser#ReduceAction373#action for (self: ReduceAction373, Parser) */
629 void parser__ReduceAction373__action(val
* self
, val
* p0
) {
630 val
* var_p
/* var p: Parser */;
631 val
* var
/* : null */;
632 val
* var_node_list
/* var node_list: nullable Object */;
633 val
* var1
/* : nullable Object */;
634 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
635 val
* var2
/* : nullable Object */;
636 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
637 val
* var_tclassidnode1
/* var tclassidnode1: nullable Object */;
638 long var3
/* : Int */;
639 long var4
/* : Int */;
644 var1
= parser_work__Parser__pop(var_p
);
646 var_nodearraylist2
= var1
;
648 var2
= parser_work__Parser__pop(var_p
);
650 var_nodearraylist1
= var2
;
651 var_tclassidnode1
= var_nodearraylist2
;
652 var_node_list
= var_tclassidnode1
;
653 var3
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction373> */
655 var4
= parser_work__Parser__go_to(var_p
, var3
);
658 parser_work__Parser__push(var_p
, var4
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
662 /* method parser#ReduceAction373#action for (self: Object, Parser) */
663 void VIRTUAL_parser__ReduceAction373__action(val
* self
, val
* p0
) {
664 parser__ReduceAction373__action(self
, p0
); /* Direct call parser#ReduceAction373#action on <self:Object(ReduceAction373)>*/
667 /* method parser#ReduceAction374#action for (self: ReduceAction374, Parser) */
668 void parser__ReduceAction374__action(val
* self
, val
* p0
) {
669 val
* var_p
/* var p: Parser */;
670 val
* var
/* : null */;
671 val
* var_node_list
/* var node_list: nullable Object */;
672 val
* var1
/* : nullable Object */;
673 val
* var_nodearraylist3
/* var nodearraylist3: nullable Object */;
674 val
* var2
/* : nullable Object */;
675 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
676 val
* var3
/* : nullable Object */;
677 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
678 val
* var_tclassidnode1
/* var tclassidnode1: nullable Object */;
679 long var4
/* : Int */;
680 long var5
/* : Int */;
685 var1
= parser_work__Parser__pop(var_p
);
687 var_nodearraylist3
= var1
;
689 var2
= parser_work__Parser__pop(var_p
);
691 var_nodearraylist2
= var2
;
693 var3
= parser_work__Parser__pop(var_p
);
695 var_nodearraylist1
= var3
;
696 var_tclassidnode1
= var_nodearraylist3
;
697 var_node_list
= var_tclassidnode1
;
698 var4
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction374> */
700 var5
= parser_work__Parser__go_to(var_p
, var4
);
703 parser_work__Parser__push(var_p
, var5
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
707 /* method parser#ReduceAction374#action for (self: Object, Parser) */
708 void VIRTUAL_parser__ReduceAction374__action(val
* self
, val
* p0
) {
709 parser__ReduceAction374__action(self
, p0
); /* Direct call parser#ReduceAction374#action on <self:Object(ReduceAction374)>*/
712 /* method parser#ReduceAction376#action for (self: ReduceAction376, Parser) */
713 void parser__ReduceAction376__action(val
* self
, val
* p0
) {
714 val
* var_p
/* var p: Parser */;
715 val
* var
/* : null */;
716 val
* var_node_list
/* var node_list: nullable Object */;
717 val
* var1
/* : nullable Object */;
718 val
* var_nodearraylist3
/* var nodearraylist3: nullable Object */;
719 val
* var2
/* : nullable Object */;
720 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
721 val
* var3
/* : nullable Object */;
722 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
723 val
* var_tidnode1
/* var tidnode1: nullable Object */;
724 long var4
/* : Int */;
725 long var5
/* : Int */;
730 var1
= parser_work__Parser__pop(var_p
);
732 var_nodearraylist3
= var1
;
734 var2
= parser_work__Parser__pop(var_p
);
736 var_nodearraylist2
= var2
;
738 var3
= parser_work__Parser__pop(var_p
);
740 var_nodearraylist1
= var3
;
741 var_tidnode1
= var_nodearraylist1
;
742 var_node_list
= var_tidnode1
;
743 var4
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction376> */
745 var5
= parser_work__Parser__go_to(var_p
, var4
);
748 parser_work__Parser__push(var_p
, var5
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
752 /* method parser#ReduceAction376#action for (self: Object, Parser) */
753 void VIRTUAL_parser__ReduceAction376__action(val
* self
, val
* p0
) {
754 parser__ReduceAction376__action(self
, p0
); /* Direct call parser#ReduceAction376#action on <self:Object(ReduceAction376)>*/
757 /* method parser#ReduceAction377#action for (self: ReduceAction377, Parser) */
758 void parser__ReduceAction377__action(val
* self
, val
* p0
) {
759 val
* var_p
/* var p: Parser */;
760 val
* var
/* : null */;
761 val
* var_node_list
/* var node_list: nullable Object */;
762 val
* var1
/* : nullable Object */;
763 val
* var_nodearraylist3
/* var nodearraylist3: nullable Object */;
764 val
* var2
/* : nullable Object */;
765 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
766 val
* var3
/* : nullable Object */;
767 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
768 val
* var_tclassidnode1
/* var tclassidnode1: nullable Object */;
769 long var4
/* : Int */;
770 long var5
/* : Int */;
775 var1
= parser_work__Parser__pop(var_p
);
777 var_nodearraylist3
= var1
;
779 var2
= parser_work__Parser__pop(var_p
);
781 var_nodearraylist2
= var2
;
783 var3
= parser_work__Parser__pop(var_p
);
785 var_nodearraylist1
= var3
;
786 var_tclassidnode1
= var_nodearraylist1
;
787 var_node_list
= var_tclassidnode1
;
788 var4
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction377> */
790 var5
= parser_work__Parser__go_to(var_p
, var4
);
793 parser_work__Parser__push(var_p
, var5
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
797 /* method parser#ReduceAction377#action for (self: Object, Parser) */
798 void VIRTUAL_parser__ReduceAction377__action(val
* self
, val
* p0
) {
799 parser__ReduceAction377__action(self
, p0
); /* Direct call parser#ReduceAction377#action on <self:Object(ReduceAction377)>*/
802 /* method parser#ReduceAction379#action for (self: ReduceAction379, Parser) */
803 void parser__ReduceAction379__action(val
* self
, val
* p0
) {
804 val
* var_p
/* var p: Parser */;
805 val
* var
/* : null */;
806 val
* var_node_list
/* var node_list: nullable Object */;
807 val
* var1
/* : nullable Object */;
808 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
809 val
* var_tkwendnode1
/* var tkwendnode1: nullable Object */;
810 long var2
/* : Int */;
811 long var3
/* : Int */;
816 var1
= parser_work__Parser__pop(var_p
);
818 var_nodearraylist1
= var1
;
819 var_tkwendnode1
= var_nodearraylist1
;
820 var_node_list
= var_tkwendnode1
;
821 var2
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction379> */
823 var3
= parser_work__Parser__go_to(var_p
, var2
);
826 parser_work__Parser__push(var_p
, var3
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
830 /* method parser#ReduceAction379#action for (self: Object, Parser) */
831 void VIRTUAL_parser__ReduceAction379__action(val
* self
, val
* p0
) {
832 parser__ReduceAction379__action(self
, p0
); /* Direct call parser#ReduceAction379#action on <self:Object(ReduceAction379)>*/
835 /* method parser#ReduceAction380#action for (self: ReduceAction380, Parser) */
836 void parser__ReduceAction380__action(val
* self
, val
* p0
) {
837 val
* var_p
/* var p: Parser */;
838 val
* var
/* : null */;
839 val
* var_node_list
/* var node_list: nullable Object */;
840 val
* var1
/* : nullable Object */;
841 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
842 long var2
/* : Int */;
843 long var3
/* : Int */;
848 var1
= parser_work__Parser__pop(var_p
);
850 var_nodearraylist1
= var1
;
851 var2
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction380> */
853 var3
= parser_work__Parser__go_to(var_p
, var2
);
856 parser_work__Parser__push(var_p
, var3
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
860 /* method parser#ReduceAction380#action for (self: Object, Parser) */
861 void VIRTUAL_parser__ReduceAction380__action(val
* self
, val
* p0
) {
862 parser__ReduceAction380__action(self
, p0
); /* Direct call parser#ReduceAction380#action on <self:Object(ReduceAction380)>*/
865 /* method parser#ReduceAction382#action for (self: ReduceAction382, Parser) */
866 void parser__ReduceAction382__action(val
* self
, val
* p0
) {
867 val
* var_p
/* var p: Parser */;
868 val
* var
/* : null */;
869 val
* var_node_list
/* var node_list: nullable Object */;
870 val
* var1
/* : nullable Object */;
871 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
872 val
* var2
/* : Array[Object] */;
873 val
* var_listnode3
/* var listnode3: Array[Object] */;
874 val
* var_listnode2
/* var listnode2: nullable Object */;
875 short int var3
/* : Bool */;
878 val
* var4
/* : Array[Object] */;
879 val
* var5
/* : ADoc */;
880 val
* var_pdocnode1
/* var pdocnode1: nullable ADoc */;
881 long var6
/* : Int */;
882 long var7
/* : Int */;
887 var1
= parser_work__Parser__pop(var_p
);
889 var_nodearraylist1
= var1
;
890 var2
= NEW_array__Array(&type_array__Arraykernel__Object
);
892 array__Array__init(var2
); /* Direct call array#Array#init on <var2:Array[Object]>*/
894 var_listnode3
= var2
;
895 var_listnode2
= var_nodearraylist1
;
896 /* <var_listnode2:nullable Object> isa Array[Object] */
897 cltype
= type_array__Arraykernel__Object
.color
;
898 idtype
= type_array__Arraykernel__Object
.id
;
899 if(var_listnode2
== NULL
) {
902 if(cltype
>= var_listnode2
->type
->table_size
) {
905 var3
= var_listnode2
->type
->type_table
[cltype
] == idtype
;
908 if (unlikely(!var3
)) {
909 PRINT_ERROR("Runtime error: %s", "Assert failed");
910 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 9450);
914 var4
= parser_work__ReduceAction__concat(self
, var_listnode3
, var_listnode2
);
916 var_listnode3
= var4
;
917 var5
= NEW_parser_nodes__ADoc(&type_parser_nodes__ADoc
);
919 parser_prod__ADoc__init_adoc(var5
, var_listnode3
); /* Direct call parser_prod#ADoc#init_adoc on <var5:ADoc>*/
921 var_pdocnode1
= var5
;
922 var_node_list
= var_pdocnode1
;
923 var6
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction382> */
925 var7
= parser_work__Parser__go_to(var_p
, var6
);
928 parser_work__Parser__push(var_p
, var7
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
932 /* method parser#ReduceAction382#action for (self: Object, Parser) */
933 void VIRTUAL_parser__ReduceAction382__action(val
* self
, val
* p0
) {
934 parser__ReduceAction382__action(self
, p0
); /* Direct call parser#ReduceAction382#action on <self:Object(ReduceAction382)>*/
937 /* method parser#ReduceAction383#action for (self: ReduceAction383, Parser) */
938 void parser__ReduceAction383__action(val
* self
, val
* p0
) {
939 val
* var_p
/* var p: Parser */;
940 val
* var
/* : null */;
941 val
* var_node_list
/* var node_list: nullable Object */;
942 val
* var1
/* : nullable Object */;
943 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
944 val
* var2
/* : nullable Object */;
945 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
946 val
* var3
/* : Array[Object] */;
947 val
* var_listnode3
/* var listnode3: Array[Object] */;
948 val
* var_listnode2
/* var listnode2: nullable Object */;
949 short int var4
/* : Bool */;
952 val
* var5
/* : Array[Object] */;
953 val
* var6
/* : ADoc */;
954 val
* var_pdocnode1
/* var pdocnode1: nullable ADoc */;
955 long var7
/* : Int */;
956 long var8
/* : Int */;
961 var1
= parser_work__Parser__pop(var_p
);
963 var_nodearraylist2
= var1
;
965 var2
= parser_work__Parser__pop(var_p
);
967 var_nodearraylist1
= var2
;
968 var3
= NEW_array__Array(&type_array__Arraykernel__Object
);
970 array__Array__init(var3
); /* Direct call array#Array#init on <var3:Array[Object]>*/
972 var_listnode3
= var3
;
973 var_listnode2
= var_nodearraylist2
;
974 /* <var_listnode2:nullable Object> isa Array[Object] */
975 cltype
= type_array__Arraykernel__Object
.color
;
976 idtype
= type_array__Arraykernel__Object
.id
;
977 if(var_listnode2
== NULL
) {
980 if(cltype
>= var_listnode2
->type
->table_size
) {
983 var4
= var_listnode2
->type
->type_table
[cltype
] == idtype
;
986 if (unlikely(!var4
)) {
987 PRINT_ERROR("Runtime error: %s", "Assert failed");
988 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 9468);
992 var5
= parser_work__ReduceAction__concat(self
, var_listnode3
, var_listnode2
);
994 var_listnode3
= var5
;
995 var6
= NEW_parser_nodes__ADoc(&type_parser_nodes__ADoc
);
997 parser_prod__ADoc__init_adoc(var6
, var_listnode3
); /* Direct call parser_prod#ADoc#init_adoc on <var6:ADoc>*/
999 var_pdocnode1
= var6
;
1000 var_node_list
= var_pdocnode1
;
1001 var7
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction383> */
1003 var8
= parser_work__Parser__go_to(var_p
, var7
);
1006 parser_work__Parser__push(var_p
, var8
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
1010 /* method parser#ReduceAction383#action for (self: Object, Parser) */
1011 void VIRTUAL_parser__ReduceAction383__action(val
* self
, val
* p0
) {
1012 parser__ReduceAction383__action(self
, p0
); /* Direct call parser#ReduceAction383#action on <self:Object(ReduceAction383)>*/
1015 /* method parser#ReduceAction386#action for (self: ReduceAction386, Parser) */
1016 void parser__ReduceAction386__action(val
* self
, val
* p0
) {
1017 val
* var_p
/* var p: Parser */;
1018 val
* var
/* : null */;
1019 val
* var_node_list
/* var node_list: nullable Object */;
1020 val
* var1
/* : nullable Object */;
1021 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
1022 val
* var_pdocnode1
/* var pdocnode1: nullable Object */;
1023 long var2
/* : Int */;
1024 long var3
/* : Int */;
1027 var_node_list
= var
;
1029 var1
= parser_work__Parser__pop(var_p
);
1031 var_nodearraylist1
= var1
;
1032 var_pdocnode1
= var_nodearraylist1
;
1033 var_node_list
= var_pdocnode1
;
1034 var2
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction386> */
1036 var3
= parser_work__Parser__go_to(var_p
, var2
);
1039 parser_work__Parser__push(var_p
, var3
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
1043 /* method parser#ReduceAction386#action for (self: Object, Parser) */
1044 void VIRTUAL_parser__ReduceAction386__action(val
* self
, val
* p0
) {
1045 parser__ReduceAction386__action(self
, p0
); /* Direct call parser#ReduceAction386#action on <self:Object(ReduceAction386)>*/
1048 /* method parser#ReduceAction387#action for (self: ReduceAction387, Parser) */
1049 void parser__ReduceAction387__action(val
* self
, val
* p0
) {
1050 val
* var_p
/* var p: Parser */;
1051 val
* var
/* : null */;
1052 val
* var_node_list
/* var node_list: nullable Object */;
1053 val
* var1
/* : nullable Object */;
1054 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
1055 val
* var2
/* : nullable Object */;
1056 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
1057 long var3
/* : Int */;
1058 long var4
/* : Int */;
1061 var_node_list
= var
;
1063 var1
= parser_work__Parser__pop(var_p
);
1065 var_nodearraylist2
= var1
;
1067 var2
= parser_work__Parser__pop(var_p
);
1069 var_nodearraylist1
= var2
;
1070 var3
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction387> */
1072 var4
= parser_work__Parser__go_to(var_p
, var3
);
1075 parser_work__Parser__push(var_p
, var4
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
1079 /* method parser#ReduceAction387#action for (self: Object, Parser) */
1080 void VIRTUAL_parser__ReduceAction387__action(val
* self
, val
* p0
) {
1081 parser__ReduceAction387__action(self
, p0
); /* Direct call parser#ReduceAction387#action on <self:Object(ReduceAction387)>*/
1084 /* method parser#ReduceAction388#action for (self: ReduceAction388, Parser) */
1085 void parser__ReduceAction388__action(val
* self
, val
* p0
) {
1086 val
* var_p
/* var p: Parser */;
1087 val
* var
/* : null */;
1088 val
* var_node_list
/* var node_list: nullable Object */;
1089 val
* var1
/* : nullable Object */;
1090 val
* var_nodearraylist3
/* var nodearraylist3: nullable Object */;
1091 val
* var2
/* : nullable Object */;
1092 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
1093 val
* var3
/* : nullable Object */;
1094 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
1095 long var4
/* : Int */;
1096 long var5
/* : Int */;
1099 var_node_list
= var
;
1101 var1
= parser_work__Parser__pop(var_p
);
1103 var_nodearraylist3
= var1
;
1105 var2
= parser_work__Parser__pop(var_p
);
1107 var_nodearraylist2
= var2
;
1109 var3
= parser_work__Parser__pop(var_p
);
1111 var_nodearraylist1
= var3
;
1112 var4
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction388> */
1114 var5
= parser_work__Parser__go_to(var_p
, var4
);
1117 parser_work__Parser__push(var_p
, var5
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
1121 /* method parser#ReduceAction388#action for (self: Object, Parser) */
1122 void VIRTUAL_parser__ReduceAction388__action(val
* self
, val
* p0
) {
1123 parser__ReduceAction388__action(self
, p0
); /* Direct call parser#ReduceAction388#action on <self:Object(ReduceAction388)>*/
1126 /* method parser#ReduceAction604#action for (self: ReduceAction604, Parser) */
1127 void parser__ReduceAction604__action(val
* self
, val
* p0
) {
1128 val
* var_p
/* var p: Parser */;
1129 val
* var
/* : null */;
1130 val
* var_node_list
/* var node_list: nullable Object */;
1131 val
* var1
/* : nullable Object */;
1132 val
* var_nodearraylist4
/* var nodearraylist4: nullable Object */;
1133 val
* var2
/* : nullable Object */;
1134 val
* var_nodearraylist3
/* var nodearraylist3: nullable Object */;
1135 val
* var3
/* : nullable Object */;
1136 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
1137 val
* var4
/* : nullable Object */;
1138 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
1139 val
* var_tkwissetnode2
/* var tkwissetnode2: nullable Object */;
1140 short int var5
/* : Bool */;
1143 val
* var_pexprnode3
/* var pexprnode3: nullable Object */;
1144 short int var6
/* : Bool */;
1147 val
* var_tattridnode4
/* var tattridnode4: nullable Object */;
1148 short int var9
/* : Bool */;
1151 val
* var12
/* : AIssetAttrExpr */;
1152 val
* var_pexprnode1
/* var pexprnode1: nullable AIssetAttrExpr */;
1153 long var13
/* : Int */;
1154 long var14
/* : Int */;
1157 var_node_list
= var
;
1159 var1
= parser_work__Parser__pop(var_p
);
1161 var_nodearraylist4
= var1
;
1163 var2
= parser_work__Parser__pop(var_p
);
1165 var_nodearraylist3
= var2
;
1167 var3
= parser_work__Parser__pop(var_p
);
1169 var_nodearraylist2
= var3
;
1171 var4
= parser_work__Parser__pop(var_p
);
1173 var_nodearraylist1
= var4
;
1174 var_tkwissetnode2
= var_nodearraylist1
;
1175 /* <var_tkwissetnode2:nullable Object> isa nullable TKwisset */
1176 cltype
= type_nullable_parser_nodes__TKwisset
.color
;
1177 idtype
= type_nullable_parser_nodes__TKwisset
.id
;
1178 if(var_tkwissetnode2
== NULL
) {
1181 if(cltype
>= var_tkwissetnode2
->type
->table_size
) {
1184 var5
= var_tkwissetnode2
->type
->type_table
[cltype
] == idtype
;
1187 if (unlikely(!var5
)) {
1188 PRINT_ERROR("Runtime error: %s", "Assert failed");
1189 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 9519);
1192 var_pexprnode3
= var_nodearraylist2
;
1193 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
1194 cltype7
= type_nullable_parser_nodes__AExpr
.color
;
1195 idtype8
= type_nullable_parser_nodes__AExpr
.id
;
1196 if(var_pexprnode3
== NULL
) {
1199 if(cltype7
>= var_pexprnode3
->type
->table_size
) {
1202 var6
= var_pexprnode3
->type
->type_table
[cltype7
] == idtype8
;
1205 if (unlikely(!var6
)) {
1206 PRINT_ERROR("Runtime error: %s", "Assert failed");
1207 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 9521);
1210 var_tattridnode4
= var_nodearraylist4
;
1211 /* <var_tattridnode4:nullable Object> isa nullable TAttrid */
1212 cltype10
= type_nullable_parser_nodes__TAttrid
.color
;
1213 idtype11
= type_nullable_parser_nodes__TAttrid
.id
;
1214 if(var_tattridnode4
== NULL
) {
1217 if(cltype10
>= var_tattridnode4
->type
->table_size
) {
1220 var9
= var_tattridnode4
->type
->type_table
[cltype10
] == idtype11
;
1223 if (unlikely(!var9
)) {
1224 PRINT_ERROR("Runtime error: %s", "Assert failed");
1225 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 9523);
1228 var12
= NEW_parser_nodes__AIssetAttrExpr(&type_parser_nodes__AIssetAttrExpr
);
1230 parser_prod__AIssetAttrExpr__init_aissetattrexpr(var12
, var_tkwissetnode2
, var_pexprnode3
, var_tattridnode4
); /* Direct call parser_prod#AIssetAttrExpr#init_aissetattrexpr on <var12:AIssetAttrExpr>*/
1232 var_pexprnode1
= var12
;
1233 var_node_list
= var_pexprnode1
;
1234 var13
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction604> */
1236 var14
= parser_work__Parser__go_to(var_p
, var13
);
1239 parser_work__Parser__push(var_p
, var14
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
1243 /* method parser#ReduceAction604#action for (self: Object, Parser) */
1244 void VIRTUAL_parser__ReduceAction604__action(val
* self
, val
* p0
) {
1245 parser__ReduceAction604__action(self
, p0
); /* Direct call parser#ReduceAction604#action on <self:Object(ReduceAction604)>*/
1248 /* method parser#ReduceAction605#action for (self: ReduceAction605, Parser) */
1249 void parser__ReduceAction605__action(val
* self
, val
* p0
) {
1250 val
* var_p
/* var p: Parser */;
1251 val
* var
/* : null */;
1252 val
* var_node_list
/* var node_list: nullable Object */;
1253 val
* var1
/* : nullable Object */;
1254 val
* var_nodearraylist3
/* var nodearraylist3: nullable Object */;
1255 val
* var2
/* : nullable Object */;
1256 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
1257 val
* var3
/* : nullable Object */;
1258 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
1259 val
* var_pexprnode2
/* var pexprnode2: nullable Object */;
1260 short int var4
/* : Bool */;
1263 val
* var_tattridnode3
/* var tattridnode3: nullable Object */;
1264 short int var5
/* : Bool */;
1267 val
* var8
/* : AAttrExpr */;
1268 val
* var_pexprnode1
/* var pexprnode1: nullable AAttrExpr */;
1269 long var9
/* : Int */;
1270 long var10
/* : Int */;
1273 var_node_list
= var
;
1275 var1
= parser_work__Parser__pop(var_p
);
1277 var_nodearraylist3
= var1
;
1279 var2
= parser_work__Parser__pop(var_p
);
1281 var_nodearraylist2
= var2
;
1283 var3
= parser_work__Parser__pop(var_p
);
1285 var_nodearraylist1
= var3
;
1286 var_pexprnode2
= var_nodearraylist1
;
1287 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
1288 cltype
= type_nullable_parser_nodes__AExpr
.color
;
1289 idtype
= type_nullable_parser_nodes__AExpr
.id
;
1290 if(var_pexprnode2
== NULL
) {
1293 if(cltype
>= var_pexprnode2
->type
->table_size
) {
1296 var4
= var_pexprnode2
->type
->type_table
[cltype
] == idtype
;
1299 if (unlikely(!var4
)) {
1300 PRINT_ERROR("Runtime error: %s", "Assert failed");
1301 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 9542);
1304 var_tattridnode3
= var_nodearraylist3
;
1305 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
1306 cltype6
= type_nullable_parser_nodes__TAttrid
.color
;
1307 idtype7
= type_nullable_parser_nodes__TAttrid
.id
;
1308 if(var_tattridnode3
== NULL
) {
1311 if(cltype6
>= var_tattridnode3
->type
->table_size
) {
1314 var5
= var_tattridnode3
->type
->type_table
[cltype6
] == idtype7
;
1317 if (unlikely(!var5
)) {
1318 PRINT_ERROR("Runtime error: %s", "Assert failed");
1319 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 9544);
1322 var8
= NEW_parser_nodes__AAttrExpr(&type_parser_nodes__AAttrExpr
);
1324 parser_prod__AAttrExpr__init_aattrexpr(var8
, var_pexprnode2
, var_tattridnode3
); /* Direct call parser_prod#AAttrExpr#init_aattrexpr on <var8:AAttrExpr>*/
1326 var_pexprnode1
= var8
;
1327 var_node_list
= var_pexprnode1
;
1328 var9
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction605> */
1330 var10
= parser_work__Parser__go_to(var_p
, var9
);
1333 parser_work__Parser__push(var_p
, var10
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
1337 /* method parser#ReduceAction605#action for (self: Object, Parser) */
1338 void VIRTUAL_parser__ReduceAction605__action(val
* self
, val
* p0
) {
1339 parser__ReduceAction605__action(self
, p0
); /* Direct call parser#ReduceAction605#action on <self:Object(ReduceAction605)>*/
1342 /* method parser#ReduceAction606#action for (self: ReduceAction606, Parser) */
1343 void parser__ReduceAction606__action(val
* self
, val
* p0
) {
1344 val
* var_p
/* var p: Parser */;
1345 val
* var
/* : null */;
1346 val
* var_node_list
/* var node_list: nullable Object */;
1347 val
* var1
/* : nullable Object */;
1348 val
* var_nodearraylist3
/* var nodearraylist3: nullable Object */;
1349 val
* var2
/* : nullable Object */;
1350 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
1351 val
* var3
/* : nullable Object */;
1352 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
1353 val
* var_pexprnode2
/* var pexprnode2: nullable Object */;
1354 short int var4
/* : Bool */;
1357 val
* var_tidnode3
/* var tidnode3: nullable Object */;
1358 short int var5
/* : Bool */;
1361 val
* var_pexprsnode4
/* var pexprsnode4: nullable Object */;
1362 short int var8
/* : Bool */;
1365 val
* var11
/* : ACallExpr */;
1366 val
* var_pexprnode1
/* var pexprnode1: nullable ACallExpr */;
1367 long var12
/* : Int */;
1368 long var13
/* : Int */;
1371 var_node_list
= var
;
1373 var1
= parser_work__Parser__pop(var_p
);
1375 var_nodearraylist3
= var1
;
1377 var2
= parser_work__Parser__pop(var_p
);
1379 var_nodearraylist2
= var2
;
1381 var3
= parser_work__Parser__pop(var_p
);
1383 var_nodearraylist1
= var3
;
1384 var_pexprnode2
= var_nodearraylist1
;
1385 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
1386 cltype
= type_nullable_parser_nodes__AExpr
.color
;
1387 idtype
= type_nullable_parser_nodes__AExpr
.id
;
1388 if(var_pexprnode2
== NULL
) {
1391 if(cltype
>= var_pexprnode2
->type
->table_size
) {
1394 var4
= var_pexprnode2
->type
->type_table
[cltype
] == idtype
;
1397 if (unlikely(!var4
)) {
1398 PRINT_ERROR("Runtime error: %s", "Assert failed");
1399 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 9562);
1402 var_tidnode3
= var_nodearraylist2
;
1403 /* <var_tidnode3:nullable Object> isa nullable TId */
1404 cltype6
= type_nullable_parser_nodes__TId
.color
;
1405 idtype7
= type_nullable_parser_nodes__TId
.id
;
1406 if(var_tidnode3
== NULL
) {
1409 if(cltype6
>= var_tidnode3
->type
->table_size
) {
1412 var5
= var_tidnode3
->type
->type_table
[cltype6
] == idtype7
;
1415 if (unlikely(!var5
)) {
1416 PRINT_ERROR("Runtime error: %s", "Assert failed");
1417 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 9564);
1420 var_pexprsnode4
= var_nodearraylist3
;
1421 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
1422 cltype9
= type_nullable_parser_nodes__AExprs
.color
;
1423 idtype10
= type_nullable_parser_nodes__AExprs
.id
;
1424 if(var_pexprsnode4
== NULL
) {
1427 if(cltype9
>= var_pexprsnode4
->type
->table_size
) {
1430 var8
= var_pexprsnode4
->type
->type_table
[cltype9
] == idtype10
;
1433 if (unlikely(!var8
)) {
1434 PRINT_ERROR("Runtime error: %s", "Assert failed");
1435 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 9566);
1438 var11
= NEW_parser_nodes__ACallExpr(&type_parser_nodes__ACallExpr
);
1440 parser_prod__ACallExpr__init_acallexpr(var11
, var_pexprnode2
, var_tidnode3
, var_pexprsnode4
); /* Direct call parser_prod#ACallExpr#init_acallexpr on <var11:ACallExpr>*/
1442 var_pexprnode1
= var11
;
1443 var_node_list
= var_pexprnode1
;
1444 var12
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction606> */
1446 var13
= parser_work__Parser__go_to(var_p
, var12
);
1449 parser_work__Parser__push(var_p
, var13
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
1453 /* method parser#ReduceAction606#action for (self: Object, Parser) */
1454 void VIRTUAL_parser__ReduceAction606__action(val
* self
, val
* p0
) {
1455 parser__ReduceAction606__action(self
, p0
); /* Direct call parser#ReduceAction606#action on <self:Object(ReduceAction606)>*/
1458 /* method parser#ReduceAction608#action for (self: ReduceAction608, Parser) */
1459 void parser__ReduceAction608__action(val
* self
, val
* p0
) {
1460 val
* var_p
/* var p: Parser */;
1461 val
* var
/* : null */;
1462 val
* var_node_list
/* var node_list: nullable Object */;
1463 val
* var1
/* : nullable Object */;
1464 val
* var_nodearraylist3
/* var nodearraylist3: nullable Object */;
1465 val
* var2
/* : nullable Object */;
1466 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
1467 val
* var3
/* : nullable Object */;
1468 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
1469 val
* var_pexprnode2
/* var pexprnode2: nullable Object */;
1470 short int var4
/* : Bool */;
1473 val
* var_tkwinitnode3
/* var tkwinitnode3: nullable Object */;
1474 short int var5
/* : Bool */;
1477 val
* var_pexprsnode4
/* var pexprsnode4: nullable Object */;
1478 short int var8
/* : Bool */;
1481 val
* var11
/* : AInitExpr */;
1482 val
* var_pexprnode1
/* var pexprnode1: nullable AInitExpr */;
1483 long var12
/* : Int */;
1484 long var13
/* : Int */;
1487 var_node_list
= var
;
1489 var1
= parser_work__Parser__pop(var_p
);
1491 var_nodearraylist3
= var1
;
1493 var2
= parser_work__Parser__pop(var_p
);
1495 var_nodearraylist2
= var2
;
1497 var3
= parser_work__Parser__pop(var_p
);
1499 var_nodearraylist1
= var3
;
1500 var_pexprnode2
= var_nodearraylist1
;
1501 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
1502 cltype
= type_nullable_parser_nodes__AExpr
.color
;
1503 idtype
= type_nullable_parser_nodes__AExpr
.id
;
1504 if(var_pexprnode2
== NULL
) {
1507 if(cltype
>= var_pexprnode2
->type
->table_size
) {
1510 var4
= var_pexprnode2
->type
->type_table
[cltype
] == idtype
;
1513 if (unlikely(!var4
)) {
1514 PRINT_ERROR("Runtime error: %s", "Assert failed");
1515 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 9585);
1518 var_tkwinitnode3
= var_nodearraylist2
;
1519 /* <var_tkwinitnode3:nullable Object> isa nullable TKwinit */
1520 cltype6
= type_nullable_parser_nodes__TKwinit
.color
;
1521 idtype7
= type_nullable_parser_nodes__TKwinit
.id
;
1522 if(var_tkwinitnode3
== NULL
) {
1525 if(cltype6
>= var_tkwinitnode3
->type
->table_size
) {
1528 var5
= var_tkwinitnode3
->type
->type_table
[cltype6
] == idtype7
;
1531 if (unlikely(!var5
)) {
1532 PRINT_ERROR("Runtime error: %s", "Assert failed");
1533 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 9587);
1536 var_pexprsnode4
= var_nodearraylist3
;
1537 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
1538 cltype9
= type_nullable_parser_nodes__AExprs
.color
;
1539 idtype10
= type_nullable_parser_nodes__AExprs
.id
;
1540 if(var_pexprsnode4
== NULL
) {
1543 if(cltype9
>= var_pexprsnode4
->type
->table_size
) {
1546 var8
= var_pexprsnode4
->type
->type_table
[cltype9
] == idtype10
;
1549 if (unlikely(!var8
)) {
1550 PRINT_ERROR("Runtime error: %s", "Assert failed");
1551 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 9589);
1554 var11
= NEW_parser_nodes__AInitExpr(&type_parser_nodes__AInitExpr
);
1556 parser_prod__AInitExpr__init_ainitexpr(var11
, var_pexprnode2
, var_tkwinitnode3
, var_pexprsnode4
); /* Direct call parser_prod#AInitExpr#init_ainitexpr on <var11:AInitExpr>*/
1558 var_pexprnode1
= var11
;
1559 var_node_list
= var_pexprnode1
;
1560 var12
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction608> */
1562 var13
= parser_work__Parser__go_to(var_p
, var12
);
1565 parser_work__Parser__push(var_p
, var13
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
1569 /* method parser#ReduceAction608#action for (self: Object, Parser) */
1570 void VIRTUAL_parser__ReduceAction608__action(val
* self
, val
* p0
) {
1571 parser__ReduceAction608__action(self
, p0
); /* Direct call parser#ReduceAction608#action on <self:Object(ReduceAction608)>*/
1574 /* method parser#ReduceAction624#action for (self: ReduceAction624, Parser) */
1575 void parser__ReduceAction624__action(val
* self
, val
* p0
) {
1576 val
* var_p
/* var p: Parser */;
1577 val
* var
/* : null */;
1578 val
* var_node_list
/* var node_list: nullable Object */;
1579 val
* var1
/* : nullable Object */;
1580 val
* var_nodearraylist3
/* var nodearraylist3: nullable Object */;
1581 val
* var2
/* : nullable Object */;
1582 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
1583 val
* var3
/* : nullable Object */;
1584 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
1585 val
* var_pexprnode1
/* var pexprnode1: nullable Object */;
1586 long var4
/* : Int */;
1587 long var5
/* : Int */;
1590 var_node_list
= var
;
1592 var1
= parser_work__Parser__pop(var_p
);
1594 var_nodearraylist3
= var1
;
1596 var2
= parser_work__Parser__pop(var_p
);
1598 var_nodearraylist2
= var2
;
1600 var3
= parser_work__Parser__pop(var_p
);
1602 var_nodearraylist1
= var3
;
1603 var_pexprnode1
= var_nodearraylist1
;
1604 var_node_list
= var_pexprnode1
;
1605 var4
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction624> */
1607 var5
= parser_work__Parser__go_to(var_p
, var4
);
1610 parser_work__Parser__push(var_p
, var5
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
1614 /* method parser#ReduceAction624#action for (self: Object, Parser) */
1615 void VIRTUAL_parser__ReduceAction624__action(val
* self
, val
* p0
) {
1616 parser__ReduceAction624__action(self
, p0
); /* Direct call parser#ReduceAction624#action on <self:Object(ReduceAction624)>*/
1619 /* method parser#ReduceAction625#action for (self: ReduceAction625, Parser) */
1620 void parser__ReduceAction625__action(val
* self
, val
* p0
) {
1621 val
* var_p
/* var p: Parser */;
1622 val
* var
/* : null */;
1623 val
* var_node_list
/* var node_list: nullable Object */;
1624 val
* var1
/* : AImplicitSelfExpr */;
1625 val
* var_pexprnode1
/* var pexprnode1: nullable AImplicitSelfExpr */;
1626 long var3
/* : Int */;
1627 long var4
/* : Int */;
1630 var_node_list
= var
;
1631 var1
= NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr
);
1633 { /* Inline parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr (var1) on <var1:AImplicitSelfExpr> */
1637 var_pexprnode1
= var1
;
1638 var_node_list
= var_pexprnode1
;
1639 var3
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction625> */
1641 var4
= parser_work__Parser__go_to(var_p
, var3
);
1644 parser_work__Parser__push(var_p
, var4
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
1648 /* method parser#ReduceAction625#action for (self: Object, Parser) */
1649 void VIRTUAL_parser__ReduceAction625__action(val
* self
, val
* p0
) {
1650 parser__ReduceAction625__action(self
, p0
); /* Direct call parser#ReduceAction625#action on <self:Object(ReduceAction625)>*/
1653 /* method parser#ReduceAction792#action for (self: ReduceAction792, Parser) */
1654 void parser__ReduceAction792__action(val
* self
, val
* p0
) {
1655 val
* var_p
/* var p: Parser */;
1656 val
* var
/* : null */;
1657 val
* var_node_list
/* var node_list: nullable Object */;
1658 val
* var1
/* : nullable Object */;
1659 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
1660 val
* var2
/* : Array[Object] */;
1661 val
* var_listnode2
/* var listnode2: Array[Object] */;
1662 val
* var_pimportnode1
/* var pimportnode1: nullable Object */;
1663 val
* var3
/* : null */;
1664 short int var4
/* : Bool */;
1665 short int var5
/* : Bool */;
1666 long var6
/* : Int */;
1667 long var7
/* : Int */;
1670 var_node_list
= var
;
1672 var1
= parser_work__Parser__pop(var_p
);
1674 var_nodearraylist1
= var1
;
1675 var2
= NEW_array__Array(&type_array__Arraykernel__Object
);
1677 array__Array__init(var2
); /* Direct call array#Array#init on <var2:Array[Object]>*/
1679 var_listnode2
= var2
;
1680 var_pimportnode1
= var_nodearraylist1
;
1682 if (var_pimportnode1
== NULL
) {
1683 var4
= 0; /* is null */
1685 var4
= 1; /* arg is null and recv is not */
1688 var5
= ((short int (*)(val
*, val
*))(var_pimportnode1
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_pimportnode1
, var3
) /* != on <var_pimportnode1:nullable Object>*/;
1693 array__Array__add(var_listnode2
, var_pimportnode1
); /* Direct call array#Array#add on <var_listnode2:Array[Object]>*/
1697 var_node_list
= var_listnode2
;
1698 var6
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction792> */
1700 var7
= parser_work__Parser__go_to(var_p
, var6
);
1703 parser_work__Parser__push(var_p
, var7
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
1707 /* method parser#ReduceAction792#action for (self: Object, Parser) */
1708 void VIRTUAL_parser__ReduceAction792__action(val
* self
, val
* p0
) {
1709 parser__ReduceAction792__action(self
, p0
); /* Direct call parser#ReduceAction792#action on <self:Object(ReduceAction792)>*/
1712 /* method parser#ReduceAction793#action for (self: ReduceAction793, Parser) */
1713 void parser__ReduceAction793__action(val
* self
, val
* p0
) {
1714 val
* var_p
/* var p: Parser */;
1715 val
* var
/* : null */;
1716 val
* var_node_list
/* var node_list: nullable Object */;
1717 val
* var1
/* : nullable Object */;
1718 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
1719 val
* var2
/* : nullable Object */;
1720 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
1721 val
* var3
/* : Array[Object] */;
1722 val
* var_listnode3
/* var listnode3: Array[Object] */;
1723 val
* var_listnode1
/* var listnode1: nullable Object */;
1724 short int var4
/* : Bool */;
1727 val
* var_pimportnode2
/* var pimportnode2: nullable Object */;
1728 val
* var5
/* : Array[Object] */;
1729 val
* var6
/* : null */;
1730 short int var7
/* : Bool */;
1731 short int var8
/* : Bool */;
1732 long var9
/* : Int */;
1733 long var10
/* : Int */;
1736 var_node_list
= var
;
1738 var1
= parser_work__Parser__pop(var_p
);
1740 var_nodearraylist2
= var1
;
1742 var2
= parser_work__Parser__pop(var_p
);
1744 var_nodearraylist1
= var2
;
1745 var3
= NEW_array__Array(&type_array__Arraykernel__Object
);
1747 array__Array__init(var3
); /* Direct call array#Array#init on <var3:Array[Object]>*/
1749 var_listnode3
= var3
;
1750 var_listnode1
= var_nodearraylist1
;
1751 /* <var_listnode1:nullable Object> isa Array[Object] */
1752 cltype
= type_array__Arraykernel__Object
.color
;
1753 idtype
= type_array__Arraykernel__Object
.id
;
1754 if(var_listnode1
== NULL
) {
1757 if(cltype
>= var_listnode1
->type
->table_size
) {
1760 var4
= var_listnode1
->type
->type_table
[cltype
] == idtype
;
1763 if (unlikely(!var4
)) {
1764 PRINT_ERROR("Runtime error: %s", "Assert failed");
1765 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 9646);
1768 var_pimportnode2
= var_nodearraylist2
;
1770 var5
= parser_work__ReduceAction__concat(self
, var_listnode3
, var_listnode1
);
1772 var_listnode3
= var5
;
1774 if (var_pimportnode2
== NULL
) {
1775 var7
= 0; /* is null */
1777 var7
= 1; /* arg is null and recv is not */
1780 var8
= ((short int (*)(val
*, val
*))(var_pimportnode2
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_pimportnode2
, var6
) /* != on <var_pimportnode2:nullable Object>*/;
1785 array__Array__add(var_listnode3
, var_pimportnode2
); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
1789 var_node_list
= var_listnode3
;
1790 var9
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction793> */
1792 var10
= parser_work__Parser__go_to(var_p
, var9
);
1795 parser_work__Parser__push(var_p
, var10
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
1799 /* method parser#ReduceAction793#action for (self: Object, Parser) */
1800 void VIRTUAL_parser__ReduceAction793__action(val
* self
, val
* p0
) {
1801 parser__ReduceAction793__action(self
, p0
); /* Direct call parser#ReduceAction793#action on <self:Object(ReduceAction793)>*/
1804 /* method parser#ReduceAction794#action for (self: ReduceAction794, Parser) */
1805 void parser__ReduceAction794__action(val
* self
, val
* p0
) {
1806 val
* var_p
/* var p: Parser */;
1807 val
* var
/* : null */;
1808 val
* var_node_list
/* var node_list: nullable Object */;
1809 val
* var1
/* : nullable Object */;
1810 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
1811 val
* var2
/* : Array[Object] */;
1812 val
* var_listnode2
/* var listnode2: Array[Object] */;
1813 val
* var_pexterncodeblocknode1
/* var pexterncodeblocknode1: nullable Object */;
1814 val
* var3
/* : null */;
1815 short int var4
/* : Bool */;
1816 short int var5
/* : Bool */;
1817 long var6
/* : Int */;
1818 long var7
/* : Int */;
1821 var_node_list
= var
;
1823 var1
= parser_work__Parser__pop(var_p
);
1825 var_nodearraylist1
= var1
;
1826 var2
= NEW_array__Array(&type_array__Arraykernel__Object
);
1828 array__Array__init(var2
); /* Direct call array#Array#init on <var2:Array[Object]>*/
1830 var_listnode2
= var2
;
1831 var_pexterncodeblocknode1
= var_nodearraylist1
;
1833 if (var_pexterncodeblocknode1
== NULL
) {
1834 var4
= 0; /* is null */
1836 var4
= 1; /* arg is null and recv is not */
1839 var5
= ((short int (*)(val
*, val
*))(var_pexterncodeblocknode1
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_pexterncodeblocknode1
, var3
) /* != on <var_pexterncodeblocknode1:nullable Object>*/;
1844 array__Array__add(var_listnode2
, var_pexterncodeblocknode1
); /* Direct call array#Array#add on <var_listnode2:Array[Object]>*/
1848 var_node_list
= var_listnode2
;
1849 var6
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction794> */
1851 var7
= parser_work__Parser__go_to(var_p
, var6
);
1854 parser_work__Parser__push(var_p
, var7
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
1858 /* method parser#ReduceAction794#action for (self: Object, Parser) */
1859 void VIRTUAL_parser__ReduceAction794__action(val
* self
, val
* p0
) {
1860 parser__ReduceAction794__action(self
, p0
); /* Direct call parser#ReduceAction794#action on <self:Object(ReduceAction794)>*/
1863 /* method parser#ReduceAction795#action for (self: ReduceAction795, Parser) */
1864 void parser__ReduceAction795__action(val
* self
, val
* p0
) {
1865 val
* var_p
/* var p: Parser */;
1866 val
* var
/* : null */;
1867 val
* var_node_list
/* var node_list: nullable Object */;
1868 val
* var1
/* : nullable Object */;
1869 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
1870 val
* var2
/* : nullable Object */;
1871 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
1872 val
* var3
/* : Array[Object] */;
1873 val
* var_listnode3
/* var listnode3: Array[Object] */;
1874 val
* var_listnode1
/* var listnode1: nullable Object */;
1875 short int var4
/* : Bool */;
1878 val
* var_pexterncodeblocknode2
/* var pexterncodeblocknode2: nullable Object */;
1879 val
* var5
/* : Array[Object] */;
1880 val
* var6
/* : null */;
1881 short int var7
/* : Bool */;
1882 short int var8
/* : Bool */;
1883 long var9
/* : Int */;
1884 long var10
/* : Int */;
1887 var_node_list
= var
;
1889 var1
= parser_work__Parser__pop(var_p
);
1891 var_nodearraylist2
= var1
;
1893 var2
= parser_work__Parser__pop(var_p
);
1895 var_nodearraylist1
= var2
;
1896 var3
= NEW_array__Array(&type_array__Arraykernel__Object
);
1898 array__Array__init(var3
); /* Direct call array#Array#init on <var3:Array[Object]>*/
1900 var_listnode3
= var3
;
1901 var_listnode1
= var_nodearraylist1
;
1902 /* <var_listnode1:nullable Object> isa Array[Object] */
1903 cltype
= type_array__Arraykernel__Object
.color
;
1904 idtype
= type_array__Arraykernel__Object
.id
;
1905 if(var_listnode1
== NULL
) {
1908 if(cltype
>= var_listnode1
->type
->table_size
) {
1911 var4
= var_listnode1
->type
->type_table
[cltype
] == idtype
;
1914 if (unlikely(!var4
)) {
1915 PRINT_ERROR("Runtime error: %s", "Assert failed");
1916 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 9680);
1919 var_pexterncodeblocknode2
= var_nodearraylist2
;
1921 var5
= parser_work__ReduceAction__concat(self
, var_listnode3
, var_listnode1
);
1923 var_listnode3
= var5
;
1925 if (var_pexterncodeblocknode2
== NULL
) {
1926 var7
= 0; /* is null */
1928 var7
= 1; /* arg is null and recv is not */
1931 var8
= ((short int (*)(val
*, val
*))(var_pexterncodeblocknode2
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_pexterncodeblocknode2
, var6
) /* != on <var_pexterncodeblocknode2:nullable Object>*/;
1936 array__Array__add(var_listnode3
, var_pexterncodeblocknode2
); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
1940 var_node_list
= var_listnode3
;
1941 var9
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction795> */
1943 var10
= parser_work__Parser__go_to(var_p
, var9
);
1946 parser_work__Parser__push(var_p
, var10
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
1950 /* method parser#ReduceAction795#action for (self: Object, Parser) */
1951 void VIRTUAL_parser__ReduceAction795__action(val
* self
, val
* p0
) {
1952 parser__ReduceAction795__action(self
, p0
); /* Direct call parser#ReduceAction795#action on <self:Object(ReduceAction795)>*/
1955 /* method parser#ReduceAction796#action for (self: ReduceAction796, Parser) */
1956 void parser__ReduceAction796__action(val
* self
, val
* p0
) {
1957 val
* var_p
/* var p: Parser */;
1958 val
* var
/* : null */;
1959 val
* var_node_list
/* var node_list: nullable Object */;
1960 val
* var1
/* : nullable Object */;
1961 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
1962 val
* var2
/* : Array[Object] */;
1963 val
* var_listnode2
/* var listnode2: Array[Object] */;
1964 val
* var_pclassdefnode1
/* var pclassdefnode1: nullable Object */;
1965 val
* var3
/* : null */;
1966 short int var4
/* : Bool */;
1967 short int var5
/* : Bool */;
1968 long var6
/* : Int */;
1969 long var7
/* : Int */;
1972 var_node_list
= var
;
1974 var1
= parser_work__Parser__pop(var_p
);
1976 var_nodearraylist1
= var1
;
1977 var2
= NEW_array__Array(&type_array__Arraykernel__Object
);
1979 array__Array__init(var2
); /* Direct call array#Array#init on <var2:Array[Object]>*/
1981 var_listnode2
= var2
;
1982 var_pclassdefnode1
= var_nodearraylist1
;
1984 if (var_pclassdefnode1
== NULL
) {
1985 var4
= 0; /* is null */
1987 var4
= 1; /* arg is null and recv is not */
1990 var5
= ((short int (*)(val
*, val
*))(var_pclassdefnode1
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_pclassdefnode1
, var3
) /* != on <var_pclassdefnode1:nullable Object>*/;
1995 array__Array__add(var_listnode2
, var_pclassdefnode1
); /* Direct call array#Array#add on <var_listnode2:Array[Object]>*/
1999 var_node_list
= var_listnode2
;
2000 var6
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction796> */
2002 var7
= parser_work__Parser__go_to(var_p
, var6
);
2005 parser_work__Parser__push(var_p
, var7
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
2009 /* method parser#ReduceAction796#action for (self: Object, Parser) */
2010 void VIRTUAL_parser__ReduceAction796__action(val
* self
, val
* p0
) {
2011 parser__ReduceAction796__action(self
, p0
); /* Direct call parser#ReduceAction796#action on <self:Object(ReduceAction796)>*/
2014 /* method parser#ReduceAction797#action for (self: ReduceAction797, Parser) */
2015 void parser__ReduceAction797__action(val
* self
, val
* p0
) {
2016 val
* var_p
/* var p: Parser */;
2017 val
* var
/* : null */;
2018 val
* var_node_list
/* var node_list: nullable Object */;
2019 val
* var1
/* : nullable Object */;
2020 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
2021 val
* var2
/* : nullable Object */;
2022 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
2023 val
* var3
/* : Array[Object] */;
2024 val
* var_listnode3
/* var listnode3: Array[Object] */;
2025 val
* var_listnode1
/* var listnode1: nullable Object */;
2026 short int var4
/* : Bool */;
2029 val
* var_pclassdefnode2
/* var pclassdefnode2: nullable Object */;
2030 val
* var5
/* : Array[Object] */;
2031 val
* var6
/* : null */;
2032 short int var7
/* : Bool */;
2033 short int var8
/* : Bool */;
2034 long var9
/* : Int */;
2035 long var10
/* : Int */;
2038 var_node_list
= var
;
2040 var1
= parser_work__Parser__pop(var_p
);
2042 var_nodearraylist2
= var1
;
2044 var2
= parser_work__Parser__pop(var_p
);
2046 var_nodearraylist1
= var2
;
2047 var3
= NEW_array__Array(&type_array__Arraykernel__Object
);
2049 array__Array__init(var3
); /* Direct call array#Array#init on <var3:Array[Object]>*/
2051 var_listnode3
= var3
;
2052 var_listnode1
= var_nodearraylist1
;
2053 /* <var_listnode1:nullable Object> isa Array[Object] */
2054 cltype
= type_array__Arraykernel__Object
.color
;
2055 idtype
= type_array__Arraykernel__Object
.id
;
2056 if(var_listnode1
== NULL
) {
2059 if(cltype
>= var_listnode1
->type
->table_size
) {
2062 var4
= var_listnode1
->type
->type_table
[cltype
] == idtype
;
2065 if (unlikely(!var4
)) {
2066 PRINT_ERROR("Runtime error: %s", "Assert failed");
2067 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 9714);
2070 var_pclassdefnode2
= var_nodearraylist2
;
2072 var5
= parser_work__ReduceAction__concat(self
, var_listnode3
, var_listnode1
);
2074 var_listnode3
= var5
;
2076 if (var_pclassdefnode2
== NULL
) {
2077 var7
= 0; /* is null */
2079 var7
= 1; /* arg is null and recv is not */
2082 var8
= ((short int (*)(val
*, val
*))(var_pclassdefnode2
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_pclassdefnode2
, var6
) /* != on <var_pclassdefnode2:nullable Object>*/;
2087 array__Array__add(var_listnode3
, var_pclassdefnode2
); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
2091 var_node_list
= var_listnode3
;
2092 var9
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction797> */
2094 var10
= parser_work__Parser__go_to(var_p
, var9
);
2097 parser_work__Parser__push(var_p
, var10
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
2101 /* method parser#ReduceAction797#action for (self: Object, Parser) */
2102 void VIRTUAL_parser__ReduceAction797__action(val
* self
, val
* p0
) {
2103 parser__ReduceAction797__action(self
, p0
); /* Direct call parser#ReduceAction797#action on <self:Object(ReduceAction797)>*/
2106 /* method parser#ReduceAction798#action for (self: ReduceAction798, Parser) */
2107 void parser__ReduceAction798__action(val
* self
, val
* p0
) {
2108 val
* var_p
/* var p: Parser */;
2109 val
* var
/* : null */;
2110 val
* var_node_list
/* var node_list: nullable Object */;
2111 val
* var1
/* : nullable Object */;
2112 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
2113 val
* var2
/* : Array[Object] */;
2114 val
* var_listnode2
/* var listnode2: Array[Object] */;
2115 val
* var_psuperclassnode1
/* var psuperclassnode1: nullable Object */;
2116 val
* var3
/* : null */;
2117 short int var4
/* : Bool */;
2118 short int var5
/* : Bool */;
2119 long var6
/* : Int */;
2120 long var7
/* : Int */;
2123 var_node_list
= var
;
2125 var1
= parser_work__Parser__pop(var_p
);
2127 var_nodearraylist1
= var1
;
2128 var2
= NEW_array__Array(&type_array__Arraykernel__Object
);
2130 array__Array__init(var2
); /* Direct call array#Array#init on <var2:Array[Object]>*/
2132 var_listnode2
= var2
;
2133 var_psuperclassnode1
= var_nodearraylist1
;
2135 if (var_psuperclassnode1
== NULL
) {
2136 var4
= 0; /* is null */
2138 var4
= 1; /* arg is null and recv is not */
2141 var5
= ((short int (*)(val
*, val
*))(var_psuperclassnode1
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_psuperclassnode1
, var3
) /* != on <var_psuperclassnode1:nullable Object>*/;
2146 array__Array__add(var_listnode2
, var_psuperclassnode1
); /* Direct call array#Array#add on <var_listnode2:Array[Object]>*/
2150 var_node_list
= var_listnode2
;
2151 var6
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction798> */
2153 var7
= parser_work__Parser__go_to(var_p
, var6
);
2156 parser_work__Parser__push(var_p
, var7
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
2160 /* method parser#ReduceAction798#action for (self: Object, Parser) */
2161 void VIRTUAL_parser__ReduceAction798__action(val
* self
, val
* p0
) {
2162 parser__ReduceAction798__action(self
, p0
); /* Direct call parser#ReduceAction798#action on <self:Object(ReduceAction798)>*/
2165 /* method parser#ReduceAction799#action for (self: ReduceAction799, Parser) */
2166 void parser__ReduceAction799__action(val
* self
, val
* p0
) {
2167 val
* var_p
/* var p: Parser */;
2168 val
* var
/* : null */;
2169 val
* var_node_list
/* var node_list: nullable Object */;
2170 val
* var1
/* : nullable Object */;
2171 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
2172 val
* var2
/* : nullable Object */;
2173 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
2174 val
* var3
/* : Array[Object] */;
2175 val
* var_listnode3
/* var listnode3: Array[Object] */;
2176 val
* var_listnode1
/* var listnode1: nullable Object */;
2177 short int var4
/* : Bool */;
2180 val
* var_psuperclassnode2
/* var psuperclassnode2: nullable Object */;
2181 val
* var5
/* : Array[Object] */;
2182 val
* var6
/* : null */;
2183 short int var7
/* : Bool */;
2184 short int var8
/* : Bool */;
2185 long var9
/* : Int */;
2186 long var10
/* : Int */;
2189 var_node_list
= var
;
2191 var1
= parser_work__Parser__pop(var_p
);
2193 var_nodearraylist2
= var1
;
2195 var2
= parser_work__Parser__pop(var_p
);
2197 var_nodearraylist1
= var2
;
2198 var3
= NEW_array__Array(&type_array__Arraykernel__Object
);
2200 array__Array__init(var3
); /* Direct call array#Array#init on <var3:Array[Object]>*/
2202 var_listnode3
= var3
;
2203 var_listnode1
= var_nodearraylist1
;
2204 /* <var_listnode1:nullable Object> isa Array[Object] */
2205 cltype
= type_array__Arraykernel__Object
.color
;
2206 idtype
= type_array__Arraykernel__Object
.id
;
2207 if(var_listnode1
== NULL
) {
2210 if(cltype
>= var_listnode1
->type
->table_size
) {
2213 var4
= var_listnode1
->type
->type_table
[cltype
] == idtype
;
2216 if (unlikely(!var4
)) {
2217 PRINT_ERROR("Runtime error: %s", "Assert failed");
2218 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 9748);
2221 var_psuperclassnode2
= var_nodearraylist2
;
2223 var5
= parser_work__ReduceAction__concat(self
, var_listnode3
, var_listnode1
);
2225 var_listnode3
= var5
;
2227 if (var_psuperclassnode2
== NULL
) {
2228 var7
= 0; /* is null */
2230 var7
= 1; /* arg is null and recv is not */
2233 var8
= ((short int (*)(val
*, val
*))(var_psuperclassnode2
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_psuperclassnode2
, var6
) /* != on <var_psuperclassnode2:nullable Object>*/;
2238 array__Array__add(var_listnode3
, var_psuperclassnode2
); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
2242 var_node_list
= var_listnode3
;
2243 var9
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction799> */
2245 var10
= parser_work__Parser__go_to(var_p
, var9
);
2248 parser_work__Parser__push(var_p
, var10
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
2252 /* method parser#ReduceAction799#action for (self: Object, Parser) */
2253 void VIRTUAL_parser__ReduceAction799__action(val
* self
, val
* p0
) {
2254 parser__ReduceAction799__action(self
, p0
); /* Direct call parser#ReduceAction799#action on <self:Object(ReduceAction799)>*/
2257 /* method parser#ReduceAction800#action for (self: ReduceAction800, Parser) */
2258 void parser__ReduceAction800__action(val
* self
, val
* p0
) {
2259 val
* var_p
/* var p: Parser */;
2260 val
* var
/* : null */;
2261 val
* var_node_list
/* var node_list: nullable Object */;
2262 val
* var1
/* : nullable Object */;
2263 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
2264 val
* var2
/* : Array[Object] */;
2265 val
* var_listnode2
/* var listnode2: Array[Object] */;
2266 val
* var_ppropdefnode1
/* var ppropdefnode1: nullable Object */;
2267 val
* var3
/* : null */;
2268 short int var4
/* : Bool */;
2269 short int var5
/* : Bool */;
2270 long var6
/* : Int */;
2271 long var7
/* : Int */;
2274 var_node_list
= var
;
2276 var1
= parser_work__Parser__pop(var_p
);
2278 var_nodearraylist1
= var1
;
2279 var2
= NEW_array__Array(&type_array__Arraykernel__Object
);
2281 array__Array__init(var2
); /* Direct call array#Array#init on <var2:Array[Object]>*/
2283 var_listnode2
= var2
;
2284 var_ppropdefnode1
= var_nodearraylist1
;
2286 if (var_ppropdefnode1
== NULL
) {
2287 var4
= 0; /* is null */
2289 var4
= 1; /* arg is null and recv is not */
2292 var5
= ((short int (*)(val
*, val
*))(var_ppropdefnode1
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_ppropdefnode1
, var3
) /* != on <var_ppropdefnode1:nullable Object>*/;
2297 array__Array__add(var_listnode2
, var_ppropdefnode1
); /* Direct call array#Array#add on <var_listnode2:Array[Object]>*/
2301 var_node_list
= var_listnode2
;
2302 var6
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction800> */
2304 var7
= parser_work__Parser__go_to(var_p
, var6
);
2307 parser_work__Parser__push(var_p
, var7
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
2311 /* method parser#ReduceAction800#action for (self: Object, Parser) */
2312 void VIRTUAL_parser__ReduceAction800__action(val
* self
, val
* p0
) {
2313 parser__ReduceAction800__action(self
, p0
); /* Direct call parser#ReduceAction800#action on <self:Object(ReduceAction800)>*/
2316 /* method parser#ReduceAction801#action for (self: ReduceAction801, Parser) */
2317 void parser__ReduceAction801__action(val
* self
, val
* p0
) {
2318 val
* var_p
/* var p: Parser */;
2319 val
* var
/* : null */;
2320 val
* var_node_list
/* var node_list: nullable Object */;
2321 val
* var1
/* : nullable Object */;
2322 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
2323 val
* var2
/* : nullable Object */;
2324 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
2325 val
* var3
/* : Array[Object] */;
2326 val
* var_listnode3
/* var listnode3: Array[Object] */;
2327 val
* var_listnode1
/* var listnode1: nullable Object */;
2328 short int var4
/* : Bool */;
2331 val
* var_ppropdefnode2
/* var ppropdefnode2: nullable Object */;
2332 val
* var5
/* : Array[Object] */;
2333 val
* var6
/* : null */;
2334 short int var7
/* : Bool */;
2335 short int var8
/* : Bool */;
2336 long var9
/* : Int */;
2337 long var10
/* : Int */;
2340 var_node_list
= var
;
2342 var1
= parser_work__Parser__pop(var_p
);
2344 var_nodearraylist2
= var1
;
2346 var2
= parser_work__Parser__pop(var_p
);
2348 var_nodearraylist1
= var2
;
2349 var3
= NEW_array__Array(&type_array__Arraykernel__Object
);
2351 array__Array__init(var3
); /* Direct call array#Array#init on <var3:Array[Object]>*/
2353 var_listnode3
= var3
;
2354 var_listnode1
= var_nodearraylist1
;
2355 /* <var_listnode1:nullable Object> isa Array[Object] */
2356 cltype
= type_array__Arraykernel__Object
.color
;
2357 idtype
= type_array__Arraykernel__Object
.id
;
2358 if(var_listnode1
== NULL
) {
2361 if(cltype
>= var_listnode1
->type
->table_size
) {
2364 var4
= var_listnode1
->type
->type_table
[cltype
] == idtype
;
2367 if (unlikely(!var4
)) {
2368 PRINT_ERROR("Runtime error: %s", "Assert failed");
2369 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 9782);
2372 var_ppropdefnode2
= var_nodearraylist2
;
2374 var5
= parser_work__ReduceAction__concat(self
, var_listnode3
, var_listnode1
);
2376 var_listnode3
= var5
;
2378 if (var_ppropdefnode2
== NULL
) {
2379 var7
= 0; /* is null */
2381 var7
= 1; /* arg is null and recv is not */
2384 var8
= ((short int (*)(val
*, val
*))(var_ppropdefnode2
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_ppropdefnode2
, var6
) /* != on <var_ppropdefnode2:nullable Object>*/;
2389 array__Array__add(var_listnode3
, var_ppropdefnode2
); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
2393 var_node_list
= var_listnode3
;
2394 var9
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction801> */
2396 var10
= parser_work__Parser__go_to(var_p
, var9
);
2399 parser_work__Parser__push(var_p
, var10
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
2403 /* method parser#ReduceAction801#action for (self: Object, Parser) */
2404 void VIRTUAL_parser__ReduceAction801__action(val
* self
, val
* p0
) {
2405 parser__ReduceAction801__action(self
, p0
); /* Direct call parser#ReduceAction801#action on <self:Object(ReduceAction801)>*/
2408 /* method parser#ReduceAction802#action for (self: ReduceAction802, Parser) */
2409 void parser__ReduceAction802__action(val
* self
, val
* p0
) {
2410 val
* var_p
/* var p: Parser */;
2411 val
* var
/* : null */;
2412 val
* var_node_list
/* var node_list: nullable Object */;
2413 val
* var1
/* : nullable Object */;
2414 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
2415 val
* var2
/* : Array[Object] */;
2416 val
* var_listnode2
/* var listnode2: Array[Object] */;
2417 val
* var_pformaldefnode1
/* var pformaldefnode1: nullable Object */;
2418 val
* var3
/* : null */;
2419 short int var4
/* : Bool */;
2420 short int var5
/* : Bool */;
2421 long var6
/* : Int */;
2422 long var7
/* : Int */;
2425 var_node_list
= var
;
2427 var1
= parser_work__Parser__pop(var_p
);
2429 var_nodearraylist1
= var1
;
2430 var2
= NEW_array__Array(&type_array__Arraykernel__Object
);
2432 array__Array__init(var2
); /* Direct call array#Array#init on <var2:Array[Object]>*/
2434 var_listnode2
= var2
;
2435 var_pformaldefnode1
= var_nodearraylist1
;
2437 if (var_pformaldefnode1
== NULL
) {
2438 var4
= 0; /* is null */
2440 var4
= 1; /* arg is null and recv is not */
2443 var5
= ((short int (*)(val
*, val
*))(var_pformaldefnode1
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_pformaldefnode1
, var3
) /* != on <var_pformaldefnode1:nullable Object>*/;
2448 array__Array__add(var_listnode2
, var_pformaldefnode1
); /* Direct call array#Array#add on <var_listnode2:Array[Object]>*/
2452 var_node_list
= var_listnode2
;
2453 var6
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction802> */
2455 var7
= parser_work__Parser__go_to(var_p
, var6
);
2458 parser_work__Parser__push(var_p
, var7
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
2462 /* method parser#ReduceAction802#action for (self: Object, Parser) */
2463 void VIRTUAL_parser__ReduceAction802__action(val
* self
, val
* p0
) {
2464 parser__ReduceAction802__action(self
, p0
); /* Direct call parser#ReduceAction802#action on <self:Object(ReduceAction802)>*/
2467 /* method parser#ReduceAction803#action for (self: ReduceAction803, Parser) */
2468 void parser__ReduceAction803__action(val
* self
, val
* p0
) {
2469 val
* var_p
/* var p: Parser */;
2470 val
* var
/* : null */;
2471 val
* var_node_list
/* var node_list: nullable Object */;
2472 val
* var1
/* : nullable Object */;
2473 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
2474 val
* var2
/* : nullable Object */;
2475 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
2476 val
* var3
/* : Array[Object] */;
2477 val
* var_listnode3
/* var listnode3: Array[Object] */;
2478 val
* var_listnode1
/* var listnode1: nullable Object */;
2479 short int var4
/* : Bool */;
2482 val
* var_pformaldefnode2
/* var pformaldefnode2: nullable Object */;
2483 val
* var5
/* : Array[Object] */;
2484 val
* var6
/* : null */;
2485 short int var7
/* : Bool */;
2486 short int var8
/* : Bool */;
2487 long var9
/* : Int */;
2488 long var10
/* : Int */;
2491 var_node_list
= var
;
2493 var1
= parser_work__Parser__pop(var_p
);
2495 var_nodearraylist2
= var1
;
2497 var2
= parser_work__Parser__pop(var_p
);
2499 var_nodearraylist1
= var2
;
2500 var3
= NEW_array__Array(&type_array__Arraykernel__Object
);
2502 array__Array__init(var3
); /* Direct call array#Array#init on <var3:Array[Object]>*/
2504 var_listnode3
= var3
;
2505 var_listnode1
= var_nodearraylist1
;
2506 /* <var_listnode1:nullable Object> isa Array[Object] */
2507 cltype
= type_array__Arraykernel__Object
.color
;
2508 idtype
= type_array__Arraykernel__Object
.id
;
2509 if(var_listnode1
== NULL
) {
2512 if(cltype
>= var_listnode1
->type
->table_size
) {
2515 var4
= var_listnode1
->type
->type_table
[cltype
] == idtype
;
2518 if (unlikely(!var4
)) {
2519 PRINT_ERROR("Runtime error: %s", "Assert failed");
2520 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 9816);
2523 var_pformaldefnode2
= var_nodearraylist2
;
2525 var5
= parser_work__ReduceAction__concat(self
, var_listnode3
, var_listnode1
);
2527 var_listnode3
= var5
;
2529 if (var_pformaldefnode2
== NULL
) {
2530 var7
= 0; /* is null */
2532 var7
= 1; /* arg is null and recv is not */
2535 var8
= ((short int (*)(val
*, val
*))(var_pformaldefnode2
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_pformaldefnode2
, var6
) /* != on <var_pformaldefnode2:nullable Object>*/;
2540 array__Array__add(var_listnode3
, var_pformaldefnode2
); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
2544 var_node_list
= var_listnode3
;
2545 var9
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction803> */
2547 var10
= parser_work__Parser__go_to(var_p
, var9
);
2550 parser_work__Parser__push(var_p
, var10
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
2554 /* method parser#ReduceAction803#action for (self: Object, Parser) */
2555 void VIRTUAL_parser__ReduceAction803__action(val
* self
, val
* p0
) {
2556 parser__ReduceAction803__action(self
, p0
); /* Direct call parser#ReduceAction803#action on <self:Object(ReduceAction803)>*/
2559 /* method parser#ReduceAction804#action for (self: ReduceAction804, Parser) */
2560 void parser__ReduceAction804__action(val
* self
, val
* p0
) {
2561 val
* var_p
/* var p: Parser */;
2562 val
* var
/* : null */;
2563 val
* var_node_list
/* var node_list: nullable Object */;
2564 val
* var1
/* : nullable Object */;
2565 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
2566 val
* var2
/* : Array[Object] */;
2567 val
* var_listnode2
/* var listnode2: Array[Object] */;
2568 val
* var_pparamnode1
/* var pparamnode1: nullable Object */;
2569 val
* var3
/* : null */;
2570 short int var4
/* : Bool */;
2571 short int var5
/* : Bool */;
2572 long var6
/* : Int */;
2573 long var7
/* : Int */;
2576 var_node_list
= var
;
2578 var1
= parser_work__Parser__pop(var_p
);
2580 var_nodearraylist1
= var1
;
2581 var2
= NEW_array__Array(&type_array__Arraykernel__Object
);
2583 array__Array__init(var2
); /* Direct call array#Array#init on <var2:Array[Object]>*/
2585 var_listnode2
= var2
;
2586 var_pparamnode1
= var_nodearraylist1
;
2588 if (var_pparamnode1
== NULL
) {
2589 var4
= 0; /* is null */
2591 var4
= 1; /* arg is null and recv is not */
2594 var5
= ((short int (*)(val
*, val
*))(var_pparamnode1
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_pparamnode1
, var3
) /* != on <var_pparamnode1:nullable Object>*/;
2599 array__Array__add(var_listnode2
, var_pparamnode1
); /* Direct call array#Array#add on <var_listnode2:Array[Object]>*/
2603 var_node_list
= var_listnode2
;
2604 var6
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction804> */
2606 var7
= parser_work__Parser__go_to(var_p
, var6
);
2609 parser_work__Parser__push(var_p
, var7
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
2613 /* method parser#ReduceAction804#action for (self: Object, Parser) */
2614 void VIRTUAL_parser__ReduceAction804__action(val
* self
, val
* p0
) {
2615 parser__ReduceAction804__action(self
, p0
); /* Direct call parser#ReduceAction804#action on <self:Object(ReduceAction804)>*/
2618 /* method parser#ReduceAction805#action for (self: ReduceAction805, Parser) */
2619 void parser__ReduceAction805__action(val
* self
, val
* p0
) {
2620 val
* var_p
/* var p: Parser */;
2621 val
* var
/* : null */;
2622 val
* var_node_list
/* var node_list: nullable Object */;
2623 val
* var1
/* : nullable Object */;
2624 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
2625 val
* var2
/* : nullable Object */;
2626 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
2627 val
* var3
/* : Array[Object] */;
2628 val
* var_listnode3
/* var listnode3: Array[Object] */;
2629 val
* var_listnode1
/* var listnode1: nullable Object */;
2630 short int var4
/* : Bool */;
2633 val
* var_pparamnode2
/* var pparamnode2: nullable Object */;
2634 val
* var5
/* : Array[Object] */;
2635 val
* var6
/* : null */;
2636 short int var7
/* : Bool */;
2637 short int var8
/* : Bool */;
2638 long var9
/* : Int */;
2639 long var10
/* : Int */;
2642 var_node_list
= var
;
2644 var1
= parser_work__Parser__pop(var_p
);
2646 var_nodearraylist2
= var1
;
2648 var2
= parser_work__Parser__pop(var_p
);
2650 var_nodearraylist1
= var2
;
2651 var3
= NEW_array__Array(&type_array__Arraykernel__Object
);
2653 array__Array__init(var3
); /* Direct call array#Array#init on <var3:Array[Object]>*/
2655 var_listnode3
= var3
;
2656 var_listnode1
= var_nodearraylist1
;
2657 /* <var_listnode1:nullable Object> isa Array[Object] */
2658 cltype
= type_array__Arraykernel__Object
.color
;
2659 idtype
= type_array__Arraykernel__Object
.id
;
2660 if(var_listnode1
== NULL
) {
2663 if(cltype
>= var_listnode1
->type
->table_size
) {
2666 var4
= var_listnode1
->type
->type_table
[cltype
] == idtype
;
2669 if (unlikely(!var4
)) {
2670 PRINT_ERROR("Runtime error: %s", "Assert failed");
2671 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 9850);
2674 var_pparamnode2
= var_nodearraylist2
;
2676 var5
= parser_work__ReduceAction__concat(self
, var_listnode3
, var_listnode1
);
2678 var_listnode3
= var5
;
2680 if (var_pparamnode2
== NULL
) {
2681 var7
= 0; /* is null */
2683 var7
= 1; /* arg is null and recv is not */
2686 var8
= ((short int (*)(val
*, val
*))(var_pparamnode2
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_pparamnode2
, var6
) /* != on <var_pparamnode2:nullable Object>*/;
2691 array__Array__add(var_listnode3
, var_pparamnode2
); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
2695 var_node_list
= var_listnode3
;
2696 var9
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction805> */
2698 var10
= parser_work__Parser__go_to(var_p
, var9
);
2701 parser_work__Parser__push(var_p
, var10
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
2705 /* method parser#ReduceAction805#action for (self: Object, Parser) */
2706 void VIRTUAL_parser__ReduceAction805__action(val
* self
, val
* p0
) {
2707 parser__ReduceAction805__action(self
, p0
); /* Direct call parser#ReduceAction805#action on <self:Object(ReduceAction805)>*/
2710 /* method parser#ReduceAction806#action for (self: ReduceAction806, Parser) */
2711 void parser__ReduceAction806__action(val
* self
, val
* p0
) {
2712 val
* var_p
/* var p: Parser */;
2713 val
* var
/* : null */;
2714 val
* var_node_list
/* var node_list: nullable Object */;
2715 val
* var1
/* : nullable Object */;
2716 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
2717 val
* var2
/* : Array[Object] */;
2718 val
* var_listnode2
/* var listnode2: Array[Object] */;
2719 val
* var_pexterncallnode1
/* var pexterncallnode1: nullable Object */;
2720 val
* var3
/* : null */;
2721 short int var4
/* : Bool */;
2722 short int var5
/* : Bool */;
2723 long var6
/* : Int */;
2724 long var7
/* : Int */;
2727 var_node_list
= var
;
2729 var1
= parser_work__Parser__pop(var_p
);
2731 var_nodearraylist1
= var1
;
2732 var2
= NEW_array__Array(&type_array__Arraykernel__Object
);
2734 array__Array__init(var2
); /* Direct call array#Array#init on <var2:Array[Object]>*/
2736 var_listnode2
= var2
;
2737 var_pexterncallnode1
= var_nodearraylist1
;
2739 if (var_pexterncallnode1
== NULL
) {
2740 var4
= 0; /* is null */
2742 var4
= 1; /* arg is null and recv is not */
2745 var5
= ((short int (*)(val
*, val
*))(var_pexterncallnode1
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_pexterncallnode1
, var3
) /* != on <var_pexterncallnode1:nullable Object>*/;
2750 array__Array__add(var_listnode2
, var_pexterncallnode1
); /* Direct call array#Array#add on <var_listnode2:Array[Object]>*/
2754 var_node_list
= var_listnode2
;
2755 var6
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction806> */
2757 var7
= parser_work__Parser__go_to(var_p
, var6
);
2760 parser_work__Parser__push(var_p
, var7
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
2764 /* method parser#ReduceAction806#action for (self: Object, Parser) */
2765 void VIRTUAL_parser__ReduceAction806__action(val
* self
, val
* p0
) {
2766 parser__ReduceAction806__action(self
, p0
); /* Direct call parser#ReduceAction806#action on <self:Object(ReduceAction806)>*/
2769 /* method parser#ReduceAction807#action for (self: ReduceAction807, Parser) */
2770 void parser__ReduceAction807__action(val
* self
, val
* p0
) {
2771 val
* var_p
/* var p: Parser */;
2772 val
* var
/* : null */;
2773 val
* var_node_list
/* var node_list: nullable Object */;
2774 val
* var1
/* : nullable Object */;
2775 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
2776 val
* var2
/* : nullable Object */;
2777 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
2778 val
* var3
/* : Array[Object] */;
2779 val
* var_listnode3
/* var listnode3: Array[Object] */;
2780 val
* var_listnode1
/* var listnode1: nullable Object */;
2781 short int var4
/* : Bool */;
2784 val
* var_pexterncallnode2
/* var pexterncallnode2: nullable Object */;
2785 val
* var5
/* : Array[Object] */;
2786 val
* var6
/* : null */;
2787 short int var7
/* : Bool */;
2788 short int var8
/* : Bool */;
2789 long var9
/* : Int */;
2790 long var10
/* : Int */;
2793 var_node_list
= var
;
2795 var1
= parser_work__Parser__pop(var_p
);
2797 var_nodearraylist2
= var1
;
2799 var2
= parser_work__Parser__pop(var_p
);
2801 var_nodearraylist1
= var2
;
2802 var3
= NEW_array__Array(&type_array__Arraykernel__Object
);
2804 array__Array__init(var3
); /* Direct call array#Array#init on <var3:Array[Object]>*/
2806 var_listnode3
= var3
;
2807 var_listnode1
= var_nodearraylist1
;
2808 /* <var_listnode1:nullable Object> isa Array[Object] */
2809 cltype
= type_array__Arraykernel__Object
.color
;
2810 idtype
= type_array__Arraykernel__Object
.id
;
2811 if(var_listnode1
== NULL
) {
2814 if(cltype
>= var_listnode1
->type
->table_size
) {
2817 var4
= var_listnode1
->type
->type_table
[cltype
] == idtype
;
2820 if (unlikely(!var4
)) {
2821 PRINT_ERROR("Runtime error: %s", "Assert failed");
2822 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 9884);
2825 var_pexterncallnode2
= var_nodearraylist2
;
2827 var5
= parser_work__ReduceAction__concat(self
, var_listnode3
, var_listnode1
);
2829 var_listnode3
= var5
;
2831 if (var_pexterncallnode2
== NULL
) {
2832 var7
= 0; /* is null */
2834 var7
= 1; /* arg is null and recv is not */
2837 var8
= ((short int (*)(val
*, val
*))(var_pexterncallnode2
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_pexterncallnode2
, var6
) /* != on <var_pexterncallnode2:nullable Object>*/;
2842 array__Array__add(var_listnode3
, var_pexterncallnode2
); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
2846 var_node_list
= var_listnode3
;
2847 var9
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction807> */
2849 var10
= parser_work__Parser__go_to(var_p
, var9
);
2852 parser_work__Parser__push(var_p
, var10
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
2856 /* method parser#ReduceAction807#action for (self: Object, Parser) */
2857 void VIRTUAL_parser__ReduceAction807__action(val
* self
, val
* p0
) {
2858 parser__ReduceAction807__action(self
, p0
); /* Direct call parser#ReduceAction807#action on <self:Object(ReduceAction807)>*/
2861 /* method parser#ReduceAction809#action for (self: ReduceAction809, Parser) */
2862 void parser__ReduceAction809__action(val
* self
, val
* p0
) {
2863 val
* var_p
/* var p: Parser */;
2864 val
* var
/* : null */;
2865 val
* var_node_list
/* var node_list: nullable Object */;
2866 val
* var1
/* : nullable Object */;
2867 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
2868 val
* var2
/* : nullable Object */;
2869 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
2870 val
* var3
/* : Array[Object] */;
2871 val
* var_listnode3
/* var listnode3: Array[Object] */;
2872 val
* var_listnode1
/* var listnode1: nullable Object */;
2873 short int var4
/* : Bool */;
2876 val
* var_ptypenode2
/* var ptypenode2: nullable Object */;
2877 val
* var5
/* : Array[Object] */;
2878 val
* var6
/* : null */;
2879 short int var7
/* : Bool */;
2880 short int var8
/* : Bool */;
2881 long var9
/* : Int */;
2882 long var10
/* : Int */;
2885 var_node_list
= var
;
2887 var1
= parser_work__Parser__pop(var_p
);
2889 var_nodearraylist2
= var1
;
2891 var2
= parser_work__Parser__pop(var_p
);
2893 var_nodearraylist1
= var2
;
2894 var3
= NEW_array__Array(&type_array__Arraykernel__Object
);
2896 array__Array__init(var3
); /* Direct call array#Array#init on <var3:Array[Object]>*/
2898 var_listnode3
= var3
;
2899 var_listnode1
= var_nodearraylist1
;
2900 /* <var_listnode1:nullable Object> isa Array[Object] */
2901 cltype
= type_array__Arraykernel__Object
.color
;
2902 idtype
= type_array__Arraykernel__Object
.id
;
2903 if(var_listnode1
== NULL
) {
2906 if(cltype
>= var_listnode1
->type
->table_size
) {
2909 var4
= var_listnode1
->type
->type_table
[cltype
] == idtype
;
2912 if (unlikely(!var4
)) {
2913 PRINT_ERROR("Runtime error: %s", "Assert failed");
2914 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 9903);
2917 var_ptypenode2
= var_nodearraylist2
;
2919 var5
= parser_work__ReduceAction__concat(self
, var_listnode3
, var_listnode1
);
2921 var_listnode3
= var5
;
2923 if (var_ptypenode2
== NULL
) {
2924 var7
= 0; /* is null */
2926 var7
= 1; /* arg is null and recv is not */
2929 var8
= ((short int (*)(val
*, val
*))(var_ptypenode2
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_ptypenode2
, var6
) /* != on <var_ptypenode2:nullable Object>*/;
2934 array__Array__add(var_listnode3
, var_ptypenode2
); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
2938 var_node_list
= var_listnode3
;
2939 var9
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction809> */
2941 var10
= parser_work__Parser__go_to(var_p
, var9
);
2944 parser_work__Parser__push(var_p
, var10
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
2948 /* method parser#ReduceAction809#action for (self: Object, Parser) */
2949 void VIRTUAL_parser__ReduceAction809__action(val
* self
, val
* p0
) {
2950 parser__ReduceAction809__action(self
, p0
); /* Direct call parser#ReduceAction809#action on <self:Object(ReduceAction809)>*/
2953 /* method parser#ReduceAction810#action for (self: ReduceAction810, Parser) */
2954 void parser__ReduceAction810__action(val
* self
, val
* p0
) {
2955 val
* var_p
/* var p: Parser */;
2956 val
* var
/* : null */;
2957 val
* var_node_list
/* var node_list: nullable Object */;
2958 val
* var1
/* : nullable Object */;
2959 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
2960 val
* var2
/* : Array[Object] */;
2961 val
* var_listnode2
/* var listnode2: Array[Object] */;
2962 val
* var_pexprnode1
/* var pexprnode1: nullable Object */;
2963 val
* var3
/* : null */;
2964 short int var4
/* : Bool */;
2965 short int var5
/* : Bool */;
2966 long var6
/* : Int */;
2967 long var7
/* : Int */;
2970 var_node_list
= var
;
2972 var1
= parser_work__Parser__pop(var_p
);
2974 var_nodearraylist1
= var1
;
2975 var2
= NEW_array__Array(&type_array__Arraykernel__Object
);
2977 array__Array__init(var2
); /* Direct call array#Array#init on <var2:Array[Object]>*/
2979 var_listnode2
= var2
;
2980 var_pexprnode1
= var_nodearraylist1
;
2982 if (var_pexprnode1
== NULL
) {
2983 var4
= 0; /* is null */
2985 var4
= 1; /* arg is null and recv is not */
2988 var5
= ((short int (*)(val
*, val
*))(var_pexprnode1
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_pexprnode1
, var3
) /* != on <var_pexprnode1:nullable Object>*/;
2993 array__Array__add(var_listnode2
, var_pexprnode1
); /* Direct call array#Array#add on <var_listnode2:Array[Object]>*/
2997 var_node_list
= var_listnode2
;
2998 var6
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction810> */
3000 var7
= parser_work__Parser__go_to(var_p
, var6
);
3003 parser_work__Parser__push(var_p
, var7
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
3007 /* method parser#ReduceAction810#action for (self: Object, Parser) */
3008 void VIRTUAL_parser__ReduceAction810__action(val
* self
, val
* p0
) {
3009 parser__ReduceAction810__action(self
, p0
); /* Direct call parser#ReduceAction810#action on <self:Object(ReduceAction810)>*/
3012 /* method parser#ReduceAction811#action for (self: ReduceAction811, Parser) */
3013 void parser__ReduceAction811__action(val
* self
, val
* p0
) {
3014 val
* var_p
/* var p: Parser */;
3015 val
* var
/* : null */;
3016 val
* var_node_list
/* var node_list: nullable Object */;
3017 val
* var1
/* : nullable Object */;
3018 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
3019 val
* var2
/* : nullable Object */;
3020 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
3021 val
* var3
/* : Array[Object] */;
3022 val
* var_listnode3
/* var listnode3: Array[Object] */;
3023 val
* var_listnode1
/* var listnode1: nullable Object */;
3024 short int var4
/* : Bool */;
3027 val
* var_pexprnode2
/* var pexprnode2: nullable Object */;
3028 val
* var5
/* : Array[Object] */;
3029 val
* var6
/* : null */;
3030 short int var7
/* : Bool */;
3031 short int var8
/* : Bool */;
3032 long var9
/* : Int */;
3033 long var10
/* : Int */;
3036 var_node_list
= var
;
3038 var1
= parser_work__Parser__pop(var_p
);
3040 var_nodearraylist2
= var1
;
3042 var2
= parser_work__Parser__pop(var_p
);
3044 var_nodearraylist1
= var2
;
3045 var3
= NEW_array__Array(&type_array__Arraykernel__Object
);
3047 array__Array__init(var3
); /* Direct call array#Array#init on <var3:Array[Object]>*/
3049 var_listnode3
= var3
;
3050 var_listnode1
= var_nodearraylist1
;
3051 /* <var_listnode1:nullable Object> isa Array[Object] */
3052 cltype
= type_array__Arraykernel__Object
.color
;
3053 idtype
= type_array__Arraykernel__Object
.id
;
3054 if(var_listnode1
== NULL
) {
3057 if(cltype
>= var_listnode1
->type
->table_size
) {
3060 var4
= var_listnode1
->type
->type_table
[cltype
] == idtype
;
3063 if (unlikely(!var4
)) {
3064 PRINT_ERROR("Runtime error: %s", "Assert failed");
3065 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 9937);
3068 var_pexprnode2
= var_nodearraylist2
;
3070 var5
= parser_work__ReduceAction__concat(self
, var_listnode3
, var_listnode1
);
3072 var_listnode3
= var5
;
3074 if (var_pexprnode2
== NULL
) {
3075 var7
= 0; /* is null */
3077 var7
= 1; /* arg is null and recv is not */
3080 var8
= ((short int (*)(val
*, val
*))(var_pexprnode2
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_pexprnode2
, var6
) /* != on <var_pexprnode2:nullable Object>*/;
3085 array__Array__add(var_listnode3
, var_pexprnode2
); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
3089 var_node_list
= var_listnode3
;
3090 var9
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction811> */
3092 var10
= parser_work__Parser__go_to(var_p
, var9
);
3095 parser_work__Parser__push(var_p
, var10
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
3099 /* method parser#ReduceAction811#action for (self: Object, Parser) */
3100 void VIRTUAL_parser__ReduceAction811__action(val
* self
, val
* p0
) {
3101 parser__ReduceAction811__action(self
, p0
); /* Direct call parser#ReduceAction811#action on <self:Object(ReduceAction811)>*/
3104 /* method parser#ReduceAction812#action for (self: ReduceAction812, Parser) */
3105 void parser__ReduceAction812__action(val
* self
, val
* p0
) {
3106 val
* var_p
/* var p: Parser */;
3107 val
* var
/* : null */;
3108 val
* var_node_list
/* var node_list: nullable Object */;
3109 val
* var1
/* : nullable Object */;
3110 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
3111 val
* var2
/* : Array[Object] */;
3112 val
* var_listnode2
/* var listnode2: Array[Object] */;
3113 val
* var_listnode1
/* var listnode1: nullable Object */;
3114 short int var3
/* : Bool */;
3117 val
* var4
/* : Array[Object] */;
3118 long var5
/* : Int */;
3119 long var6
/* : Int */;
3122 var_node_list
= var
;
3124 var1
= parser_work__Parser__pop(var_p
);
3126 var_nodearraylist1
= var1
;
3127 var2
= NEW_array__Array(&type_array__Arraykernel__Object
);
3129 array__Array__init(var2
); /* Direct call array#Array#init on <var2:Array[Object]>*/
3131 var_listnode2
= var2
;
3132 var_listnode1
= var_nodearraylist1
;
3133 /* <var_listnode1:nullable Object> isa Array[Object] */
3134 cltype
= type_array__Arraykernel__Object
.color
;
3135 idtype
= type_array__Arraykernel__Object
.id
;
3136 if(var_listnode1
== NULL
) {
3139 if(cltype
>= var_listnode1
->type
->table_size
) {
3142 var3
= var_listnode1
->type
->type_table
[cltype
] == idtype
;
3145 if (unlikely(!var3
)) {
3146 PRINT_ERROR("Runtime error: %s", "Assert failed");
3147 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 9955);
3151 var4
= parser_work__ReduceAction__concat(self
, var_listnode2
, var_listnode1
);
3153 var_listnode2
= var4
;
3154 var_node_list
= var_listnode2
;
3155 var5
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction812> */
3157 var6
= parser_work__Parser__go_to(var_p
, var5
);
3160 parser_work__Parser__push(var_p
, var6
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
3164 /* method parser#ReduceAction812#action for (self: Object, Parser) */
3165 void VIRTUAL_parser__ReduceAction812__action(val
* self
, val
* p0
) {
3166 parser__ReduceAction812__action(self
, p0
); /* Direct call parser#ReduceAction812#action on <self:Object(ReduceAction812)>*/
3169 /* method parser#ReduceAction813#action for (self: ReduceAction813, Parser) */
3170 void parser__ReduceAction813__action(val
* self
, val
* p0
) {
3171 val
* var_p
/* var p: Parser */;
3172 val
* var
/* : null */;
3173 val
* var_node_list
/* var node_list: nullable Object */;
3174 val
* var1
/* : nullable Object */;
3175 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
3176 val
* var2
/* : nullable Object */;
3177 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
3178 val
* var3
/* : Array[Object] */;
3179 val
* var_listnode3
/* var listnode3: Array[Object] */;
3180 val
* var_listnode1
/* var listnode1: nullable Object */;
3181 short int var4
/* : Bool */;
3184 val
* var_listnode2
/* var listnode2: nullable Object */;
3185 short int var5
/* : Bool */;
3188 val
* var8
/* : Array[Object] */;
3189 val
* var9
/* : Array[Object] */;
3190 long var10
/* : Int */;
3191 long var11
/* : Int */;
3194 var_node_list
= var
;
3196 var1
= parser_work__Parser__pop(var_p
);
3198 var_nodearraylist2
= var1
;
3200 var2
= parser_work__Parser__pop(var_p
);
3202 var_nodearraylist1
= var2
;
3203 var3
= NEW_array__Array(&type_array__Arraykernel__Object
);
3205 array__Array__init(var3
); /* Direct call array#Array#init on <var3:Array[Object]>*/
3207 var_listnode3
= var3
;
3208 var_listnode1
= var_nodearraylist1
;
3209 /* <var_listnode1:nullable Object> isa Array[Object] */
3210 cltype
= type_array__Arraykernel__Object
.color
;
3211 idtype
= type_array__Arraykernel__Object
.id
;
3212 if(var_listnode1
== NULL
) {
3215 if(cltype
>= var_listnode1
->type
->table_size
) {
3218 var4
= var_listnode1
->type
->type_table
[cltype
] == idtype
;
3221 if (unlikely(!var4
)) {
3222 PRINT_ERROR("Runtime error: %s", "Assert failed");
3223 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 9970);
3226 var_listnode2
= var_nodearraylist2
;
3227 /* <var_listnode2:nullable Object> isa Array[Object] */
3228 cltype6
= type_array__Arraykernel__Object
.color
;
3229 idtype7
= type_array__Arraykernel__Object
.id
;
3230 if(var_listnode2
== NULL
) {
3233 if(cltype6
>= var_listnode2
->type
->table_size
) {
3236 var5
= var_listnode2
->type
->type_table
[cltype6
] == idtype7
;
3239 if (unlikely(!var5
)) {
3240 PRINT_ERROR("Runtime error: %s", "Assert failed");
3241 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 9972);
3245 var8
= parser_work__ReduceAction__concat(self
, var_listnode3
, var_listnode1
);
3247 var_listnode3
= var8
;
3249 var9
= parser_work__ReduceAction__concat(self
, var_listnode3
, var_listnode2
);
3251 var_listnode3
= var9
;
3252 var_node_list
= var_listnode3
;
3253 var10
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction813> */
3255 var11
= parser_work__Parser__go_to(var_p
, var10
);
3258 parser_work__Parser__push(var_p
, var11
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
3262 /* method parser#ReduceAction813#action for (self: Object, Parser) */
3263 void VIRTUAL_parser__ReduceAction813__action(val
* self
, val
* p0
) {
3264 parser__ReduceAction813__action(self
, p0
); /* Direct call parser#ReduceAction813#action on <self:Object(ReduceAction813)>*/
3267 /* method parser#ReduceAction815#action for (self: ReduceAction815, Parser) */
3268 void parser__ReduceAction815__action(val
* self
, val
* p0
) {
3269 val
* var_p
/* var p: Parser */;
3270 val
* var
/* : null */;
3271 val
* var_node_list
/* var node_list: nullable Object */;
3272 val
* var1
/* : nullable Object */;
3273 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
3274 val
* var2
/* : nullable Object */;
3275 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
3276 val
* var3
/* : Array[Object] */;
3277 val
* var_listnode3
/* var listnode3: Array[Object] */;
3278 val
* var_listnode1
/* var listnode1: nullable Object */;
3279 short int var4
/* : Bool */;
3282 val
* var_pannotationnode2
/* var pannotationnode2: nullable Object */;
3283 val
* var5
/* : Array[Object] */;
3284 val
* var6
/* : null */;
3285 short int var7
/* : Bool */;
3286 short int var8
/* : Bool */;
3287 long var9
/* : Int */;
3288 long var10
/* : Int */;
3291 var_node_list
= var
;
3293 var1
= parser_work__Parser__pop(var_p
);
3295 var_nodearraylist2
= var1
;
3297 var2
= parser_work__Parser__pop(var_p
);
3299 var_nodearraylist1
= var2
;
3300 var3
= NEW_array__Array(&type_array__Arraykernel__Object
);
3302 array__Array__init(var3
); /* Direct call array#Array#init on <var3:Array[Object]>*/
3304 var_listnode3
= var3
;
3305 var_listnode1
= var_nodearraylist1
;
3306 /* <var_listnode1:nullable Object> isa Array[Object] */
3307 cltype
= type_array__Arraykernel__Object
.color
;
3308 idtype
= type_array__Arraykernel__Object
.id
;
3309 if(var_listnode1
== NULL
) {
3312 if(cltype
>= var_listnode1
->type
->table_size
) {
3315 var4
= var_listnode1
->type
->type_table
[cltype
] == idtype
;
3318 if (unlikely(!var4
)) {
3319 PRINT_ERROR("Runtime error: %s", "Assert failed");
3320 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 9988);
3323 var_pannotationnode2
= var_nodearraylist2
;
3325 var5
= parser_work__ReduceAction__concat(self
, var_listnode3
, var_listnode1
);
3327 var_listnode3
= var5
;
3329 if (var_pannotationnode2
== NULL
) {
3330 var7
= 0; /* is null */
3332 var7
= 1; /* arg is null and recv is not */
3335 var8
= ((short int (*)(val
*, val
*))(var_pannotationnode2
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_pannotationnode2
, var6
) /* != on <var_pannotationnode2:nullable Object>*/;
3340 array__Array__add(var_listnode3
, var_pannotationnode2
); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
3344 var_node_list
= var_listnode3
;
3345 var9
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction815> */
3347 var10
= parser_work__Parser__go_to(var_p
, var9
);
3350 parser_work__Parser__push(var_p
, var10
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
3354 /* method parser#ReduceAction815#action for (self: Object, Parser) */
3355 void VIRTUAL_parser__ReduceAction815__action(val
* self
, val
* p0
) {
3356 parser__ReduceAction815__action(self
, p0
); /* Direct call parser#ReduceAction815#action on <self:Object(ReduceAction815)>*/
3359 /* method parser#ReduceAction821#action for (self: ReduceAction821, Parser) */
3360 void parser__ReduceAction821__action(val
* self
, val
* p0
) {
3361 val
* var_p
/* var p: Parser */;
3362 val
* var
/* : null */;
3363 val
* var_node_list
/* var node_list: nullable Object */;
3364 val
* var1
/* : nullable Object */;
3365 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
3366 val
* var2
/* : nullable Object */;
3367 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
3368 val
* var3
/* : Array[Object] */;
3369 val
* var_listnode3
/* var listnode3: Array[Object] */;
3370 val
* var_listnode1
/* var listnode1: nullable Object */;
3371 short int var4
/* : Bool */;
3374 val
* var_patargnode2
/* var patargnode2: nullable Object */;
3375 val
* var5
/* : Array[Object] */;
3376 val
* var6
/* : null */;
3377 short int var7
/* : Bool */;
3378 short int var8
/* : Bool */;
3379 long var9
/* : Int */;
3380 long var10
/* : Int */;
3383 var_node_list
= var
;
3385 var1
= parser_work__Parser__pop(var_p
);
3387 var_nodearraylist2
= var1
;
3389 var2
= parser_work__Parser__pop(var_p
);
3391 var_nodearraylist1
= var2
;
3392 var3
= NEW_array__Array(&type_array__Arraykernel__Object
);
3394 array__Array__init(var3
); /* Direct call array#Array#init on <var3:Array[Object]>*/
3396 var_listnode3
= var3
;
3397 var_listnode1
= var_nodearraylist1
;
3398 /* <var_listnode1:nullable Object> isa Array[Object] */
3399 cltype
= type_array__Arraykernel__Object
.color
;
3400 idtype
= type_array__Arraykernel__Object
.id
;
3401 if(var_listnode1
== NULL
) {
3404 if(cltype
>= var_listnode1
->type
->table_size
) {
3407 var4
= var_listnode1
->type
->type_table
[cltype
] == idtype
;
3410 if (unlikely(!var4
)) {
3411 PRINT_ERROR("Runtime error: %s", "Assert failed");
3412 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 10007);
3415 var_patargnode2
= var_nodearraylist2
;
3417 var5
= parser_work__ReduceAction__concat(self
, var_listnode3
, var_listnode1
);
3419 var_listnode3
= var5
;
3421 if (var_patargnode2
== NULL
) {
3422 var7
= 0; /* is null */
3424 var7
= 1; /* arg is null and recv is not */
3427 var8
= ((short int (*)(val
*, val
*))(var_patargnode2
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_patargnode2
, var6
) /* != on <var_patargnode2:nullable Object>*/;
3432 array__Array__add(var_listnode3
, var_patargnode2
); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
3436 var_node_list
= var_listnode3
;
3437 var9
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction821> */
3439 var10
= parser_work__Parser__go_to(var_p
, var9
);
3442 parser_work__Parser__push(var_p
, var10
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
3446 /* method parser#ReduceAction821#action for (self: Object, Parser) */
3447 void VIRTUAL_parser__ReduceAction821__action(val
* self
, val
* p0
) {
3448 parser__ReduceAction821__action(self
, p0
); /* Direct call parser#ReduceAction821#action on <self:Object(ReduceAction821)>*/
3451 /* method parser#ReduceAction825#action for (self: ReduceAction825, Parser) */
3452 void parser__ReduceAction825__action(val
* self
, val
* p0
) {
3453 val
* var_p
/* var p: Parser */;
3454 val
* var
/* : null */;
3455 val
* var_node_list
/* var node_list: nullable Object */;
3456 val
* var1
/* : nullable Object */;
3457 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
3458 val
* var2
/* : nullable Object */;
3459 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
3460 val
* var3
/* : Array[Object] */;
3461 val
* var_listnode3
/* var listnode3: Array[Object] */;
3462 val
* var_listnode1
/* var listnode1: nullable Object */;
3463 short int var4
/* : Bool */;
3466 val
* var_tidnode2
/* var tidnode2: nullable Object */;
3467 val
* var5
/* : Array[Object] */;
3468 val
* var6
/* : null */;
3469 short int var7
/* : Bool */;
3470 short int var8
/* : Bool */;
3471 long var9
/* : Int */;
3472 long var10
/* : Int */;
3475 var_node_list
= var
;
3477 var1
= parser_work__Parser__pop(var_p
);
3479 var_nodearraylist2
= var1
;
3481 var2
= parser_work__Parser__pop(var_p
);
3483 var_nodearraylist1
= var2
;
3484 var3
= NEW_array__Array(&type_array__Arraykernel__Object
);
3486 array__Array__init(var3
); /* Direct call array#Array#init on <var3:Array[Object]>*/
3488 var_listnode3
= var3
;
3489 var_listnode1
= var_nodearraylist1
;
3490 /* <var_listnode1:nullable Object> isa Array[Object] */
3491 cltype
= type_array__Arraykernel__Object
.color
;
3492 idtype
= type_array__Arraykernel__Object
.id
;
3493 if(var_listnode1
== NULL
) {
3496 if(cltype
>= var_listnode1
->type
->table_size
) {
3499 var4
= var_listnode1
->type
->type_table
[cltype
] == idtype
;
3502 if (unlikely(!var4
)) {
3503 PRINT_ERROR("Runtime error: %s", "Assert failed");
3504 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 10026);
3507 var_tidnode2
= var_nodearraylist2
;
3509 var5
= parser_work__ReduceAction__concat(self
, var_listnode3
, var_listnode1
);
3511 var_listnode3
= var5
;
3513 if (var_tidnode2
== NULL
) {
3514 var7
= 0; /* is null */
3516 var7
= 1; /* arg is null and recv is not */
3519 var8
= ((short int (*)(val
*, val
*))(var_tidnode2
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_tidnode2
, var6
) /* != on <var_tidnode2:nullable Object>*/;
3524 array__Array__add(var_listnode3
, var_tidnode2
); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
3528 var_node_list
= var_listnode3
;
3529 var9
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction825> */
3531 var10
= parser_work__Parser__go_to(var_p
, var9
);
3534 parser_work__Parser__push(var_p
, var10
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
3538 /* method parser#ReduceAction825#action for (self: Object, Parser) */
3539 void VIRTUAL_parser__ReduceAction825__action(val
* self
, val
* p0
) {
3540 parser__ReduceAction825__action(self
, p0
); /* Direct call parser#ReduceAction825#action on <self:Object(ReduceAction825)>*/
3543 /* method parser#ReduceAction826#action for (self: ReduceAction826, Parser) */
3544 void parser__ReduceAction826__action(val
* self
, val
* p0
) {
3545 val
* var_p
/* var p: Parser */;
3546 val
* var
/* : null */;
3547 val
* var_node_list
/* var node_list: nullable Object */;
3548 val
* var1
/* : nullable Object */;
3549 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
3550 val
* var2
/* : Array[Object] */;
3551 val
* var_listnode2
/* var listnode2: Array[Object] */;
3552 val
* var_tcommentnode1
/* var tcommentnode1: nullable Object */;
3553 val
* var3
/* : null */;
3554 short int var4
/* : Bool */;
3555 short int var5
/* : Bool */;
3556 long var6
/* : Int */;
3557 long var7
/* : Int */;
3560 var_node_list
= var
;
3562 var1
= parser_work__Parser__pop(var_p
);
3564 var_nodearraylist1
= var1
;
3565 var2
= NEW_array__Array(&type_array__Arraykernel__Object
);
3567 array__Array__init(var2
); /* Direct call array#Array#init on <var2:Array[Object]>*/
3569 var_listnode2
= var2
;
3570 var_tcommentnode1
= var_nodearraylist1
;
3572 if (var_tcommentnode1
== NULL
) {
3573 var4
= 0; /* is null */
3575 var4
= 1; /* arg is null and recv is not */
3578 var5
= ((short int (*)(val
*, val
*))(var_tcommentnode1
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_tcommentnode1
, var3
) /* != on <var_tcommentnode1:nullable Object>*/;
3583 array__Array__add(var_listnode2
, var_tcommentnode1
); /* Direct call array#Array#add on <var_listnode2:Array[Object]>*/
3587 var_node_list
= var_listnode2
;
3588 var6
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction826> */
3590 var7
= parser_work__Parser__go_to(var_p
, var6
);
3593 parser_work__Parser__push(var_p
, var7
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
3597 /* method parser#ReduceAction826#action for (self: Object, Parser) */
3598 void VIRTUAL_parser__ReduceAction826__action(val
* self
, val
* p0
) {
3599 parser__ReduceAction826__action(self
, p0
); /* Direct call parser#ReduceAction826#action on <self:Object(ReduceAction826)>*/
3602 /* method parser#ReduceAction827#action for (self: ReduceAction827, Parser) */
3603 void parser__ReduceAction827__action(val
* self
, val
* p0
) {
3604 val
* var_p
/* var p: Parser */;
3605 val
* var
/* : null */;
3606 val
* var_node_list
/* var node_list: nullable Object */;
3607 val
* var1
/* : nullable Object */;
3608 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
3609 val
* var2
/* : nullable Object */;
3610 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
3611 val
* var3
/* : Array[Object] */;
3612 val
* var_listnode3
/* var listnode3: Array[Object] */;
3613 val
* var_listnode1
/* var listnode1: nullable Object */;
3614 short int var4
/* : Bool */;
3617 val
* var_tcommentnode2
/* var tcommentnode2: nullable Object */;
3618 val
* var5
/* : Array[Object] */;
3619 val
* var6
/* : null */;
3620 short int var7
/* : Bool */;
3621 short int var8
/* : Bool */;
3622 long var9
/* : Int */;
3623 long var10
/* : Int */;
3626 var_node_list
= var
;
3628 var1
= parser_work__Parser__pop(var_p
);
3630 var_nodearraylist2
= var1
;
3632 var2
= parser_work__Parser__pop(var_p
);
3634 var_nodearraylist1
= var2
;
3635 var3
= NEW_array__Array(&type_array__Arraykernel__Object
);
3637 array__Array__init(var3
); /* Direct call array#Array#init on <var3:Array[Object]>*/
3639 var_listnode3
= var3
;
3640 var_listnode1
= var_nodearraylist1
;
3641 /* <var_listnode1:nullable Object> isa Array[Object] */
3642 cltype
= type_array__Arraykernel__Object
.color
;
3643 idtype
= type_array__Arraykernel__Object
.id
;
3644 if(var_listnode1
== NULL
) {
3647 if(cltype
>= var_listnode1
->type
->table_size
) {
3650 var4
= var_listnode1
->type
->type_table
[cltype
] == idtype
;
3653 if (unlikely(!var4
)) {
3654 PRINT_ERROR("Runtime error: %s", "Assert failed");
3655 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 10060);
3658 var_tcommentnode2
= var_nodearraylist2
;
3660 var5
= parser_work__ReduceAction__concat(self
, var_listnode3
, var_listnode1
);
3662 var_listnode3
= var5
;
3664 if (var_tcommentnode2
== NULL
) {
3665 var7
= 0; /* is null */
3667 var7
= 1; /* arg is null and recv is not */
3670 var8
= ((short int (*)(val
*, val
*))(var_tcommentnode2
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_tcommentnode2
, var6
) /* != on <var_tcommentnode2:nullable Object>*/;
3675 array__Array__add(var_listnode3
, var_tcommentnode2
); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
3679 var_node_list
= var_listnode3
;
3680 var9
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction827> */
3682 var10
= parser_work__Parser__go_to(var_p
, var9
);
3685 parser_work__Parser__push(var_p
, var10
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
3689 /* method parser#ReduceAction827#action for (self: Object, Parser) */
3690 void VIRTUAL_parser__ReduceAction827__action(val
* self
, val
* p0
) {
3691 parser__ReduceAction827__action(self
, p0
); /* Direct call parser#ReduceAction827#action on <self:Object(ReduceAction827)>*/
3694 /* method parser#ReduceAction828#action for (self: ReduceAction828, Parser) */
3695 void parser__ReduceAction828__action(val
* self
, val
* p0
) {
3696 val
* var_p
/* var p: Parser */;
3697 val
* var
/* : null */;
3698 val
* var_node_list
/* var node_list: nullable Object */;
3699 val
* var1
/* : nullable Object */;
3700 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
3701 val
* var2
/* : Array[Object] */;
3702 val
* var_listnode2
/* var listnode2: Array[Object] */;
3703 val
* var_teolnode1
/* var teolnode1: nullable Object */;
3704 val
* var3
/* : null */;
3705 short int var4
/* : Bool */;
3706 short int var5
/* : Bool */;
3707 long var6
/* : Int */;
3708 long var7
/* : Int */;
3711 var_node_list
= var
;
3713 var1
= parser_work__Parser__pop(var_p
);
3715 var_nodearraylist1
= var1
;
3716 var2
= NEW_array__Array(&type_array__Arraykernel__Object
);
3718 array__Array__init(var2
); /* Direct call array#Array#init on <var2:Array[Object]>*/
3720 var_listnode2
= var2
;
3721 var_teolnode1
= var_nodearraylist1
;
3723 if (var_teolnode1
== NULL
) {
3724 var4
= 0; /* is null */
3726 var4
= 1; /* arg is null and recv is not */
3729 var5
= ((short int (*)(val
*, val
*))(var_teolnode1
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_teolnode1
, var3
) /* != on <var_teolnode1:nullable Object>*/;
3734 array__Array__add(var_listnode2
, var_teolnode1
); /* Direct call array#Array#add on <var_listnode2:Array[Object]>*/
3738 var_node_list
= var_listnode2
;
3739 var6
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction828> */
3741 var7
= parser_work__Parser__go_to(var_p
, var6
);
3744 parser_work__Parser__push(var_p
, var7
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
3748 /* method parser#ReduceAction828#action for (self: Object, Parser) */
3749 void VIRTUAL_parser__ReduceAction828__action(val
* self
, val
* p0
) {
3750 parser__ReduceAction828__action(self
, p0
); /* Direct call parser#ReduceAction828#action on <self:Object(ReduceAction828)>*/
3753 /* method parser#ReduceAction829#action for (self: ReduceAction829, Parser) */
3754 void parser__ReduceAction829__action(val
* self
, val
* p0
) {
3755 val
* var_p
/* var p: Parser */;
3756 val
* var
/* : null */;
3757 val
* var_node_list
/* var node_list: nullable Object */;
3758 val
* var1
/* : nullable Object */;
3759 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
3760 val
* var2
/* : nullable Object */;
3761 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
3762 val
* var3
/* : Array[Object] */;
3763 val
* var_listnode3
/* var listnode3: Array[Object] */;
3764 val
* var_listnode1
/* var listnode1: nullable Object */;
3765 short int var4
/* : Bool */;
3768 val
* var_teolnode2
/* var teolnode2: nullable Object */;
3769 val
* var5
/* : Array[Object] */;
3770 val
* var6
/* : null */;
3771 short int var7
/* : Bool */;
3772 short int var8
/* : Bool */;
3773 long var9
/* : Int */;
3774 long var10
/* : Int */;
3777 var_node_list
= var
;
3779 var1
= parser_work__Parser__pop(var_p
);
3781 var_nodearraylist2
= var1
;
3783 var2
= parser_work__Parser__pop(var_p
);
3785 var_nodearraylist1
= var2
;
3786 var3
= NEW_array__Array(&type_array__Arraykernel__Object
);
3788 array__Array__init(var3
); /* Direct call array#Array#init on <var3:Array[Object]>*/
3790 var_listnode3
= var3
;
3791 var_listnode1
= var_nodearraylist1
;
3792 /* <var_listnode1:nullable Object> isa Array[Object] */
3793 cltype
= type_array__Arraykernel__Object
.color
;
3794 idtype
= type_array__Arraykernel__Object
.id
;
3795 if(var_listnode1
== NULL
) {
3798 if(cltype
>= var_listnode1
->type
->table_size
) {
3801 var4
= var_listnode1
->type
->type_table
[cltype
] == idtype
;
3804 if (unlikely(!var4
)) {
3805 PRINT_ERROR("Runtime error: %s", "Assert failed");
3806 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser.nit", 10094);
3809 var_teolnode2
= var_nodearraylist2
;
3811 var5
= parser_work__ReduceAction__concat(self
, var_listnode3
, var_listnode1
);
3813 var_listnode3
= var5
;
3815 if (var_teolnode2
== NULL
) {
3816 var7
= 0; /* is null */
3818 var7
= 1; /* arg is null and recv is not */
3821 var8
= ((short int (*)(val
*, val
*))(var_teolnode2
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_teolnode2
, var6
) /* != on <var_teolnode2:nullable Object>*/;
3826 array__Array__add(var_listnode3
, var_teolnode2
); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
3830 var_node_list
= var_listnode3
;
3831 var9
= self
->attrs
[COLOR_parser_work__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction829> */
3833 var10
= parser_work__Parser__go_to(var_p
, var9
);
3836 parser_work__Parser__push(var_p
, var10
, var_node_list
); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
3840 /* method parser#ReduceAction829#action for (self: Object, Parser) */
3841 void VIRTUAL_parser__ReduceAction829__action(val
* self
, val
* p0
) {
3842 parser__ReduceAction829__action(self
, p0
); /* Direct call parser#ReduceAction829#action on <self:Object(ReduceAction829)>*/