1 #include "parser.sep.0.h"
2 /* method parser#ReduceAction1228#action for (self: ReduceAction1228, Parser) */
3 void parser__ReduceAction1228__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
* var_pexprnode2
/* var pexprnode2: nullable Object */;
14 short int var4
/* : Bool */;
17 val
* var_tattridnode3
/* var tattridnode3: nullable Object */;
18 short int var5
/* : Bool */;
21 val
* var8
/* : AAttrExpr */;
22 val
* var_pexprnode1
/* var pexprnode1: nullable AAttrExpr */;
23 long var9
/* : Int */;
24 long var10
/* : Int */;
28 var1
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_parser__Parser__pop
]))(var_p
) /* pop on <var_p:Parser>*/;
29 var_nodearraylist3
= var1
;
30 var2
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_parser__Parser__pop
]))(var_p
) /* pop on <var_p:Parser>*/;
31 var_nodearraylist2
= var2
;
32 var3
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_parser__Parser__pop
]))(var_p
) /* pop on <var_p:Parser>*/;
33 var_nodearraylist1
= var3
;
34 var_pexprnode2
= var_nodearraylist1
;
35 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
36 cltype
= type_nullable_parser_nodes__AExpr
.color
;
37 idtype
= type_nullable_parser_nodes__AExpr
.id
;
38 if(var_pexprnode2
== NULL
) {
41 if(cltype
>= var_pexprnode2
->type
->table_size
) {
44 var4
= var_pexprnode2
->type
->type_table
[cltype
] == idtype
;
48 fprintf(stderr
, "Runtime error: %s", "Assert failed");
49 fprintf(stderr
, " (%s:%d)\n", "src/parser/parser.nit", 29152);
52 var_tattridnode3
= var_nodearraylist3
;
53 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
54 cltype6
= type_nullable_parser_nodes__TAttrid
.color
;
55 idtype7
= type_nullable_parser_nodes__TAttrid
.id
;
56 if(var_tattridnode3
== NULL
) {
59 if(cltype6
>= var_tattridnode3
->type
->table_size
) {
62 var5
= var_tattridnode3
->type
->type_table
[cltype6
] == idtype7
;
66 fprintf(stderr
, "Runtime error: %s", "Assert failed");
67 fprintf(stderr
, " (%s:%d)\n", "src/parser/parser.nit", 29154);
70 var8
= NEW_parser_nodes__AAttrExpr(&type_parser_nodes__AAttrExpr
);
71 ((void (*)(val
*, val
*, val
*))(var8
->class->vft
[COLOR_parser_prod__AAttrExpr__init_aattrexpr
]))(var8
, var_pexprnode2
, var_tattridnode3
) /* init_aattrexpr on <var8:AAttrExpr>*/;
72 CHECK_NEW_parser_nodes__AAttrExpr(var8
);
73 var_pexprnode1
= var8
;
74 var_node_list
= var_pexprnode1
;
75 var9
= self
->attrs
[COLOR_parser__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction1228> */
76 var10
= ((long (*)(val
*, long))(var_p
->class->vft
[COLOR_parser__Parser__go_to
]))(var_p
, var9
) /* go_to on <var_p:Parser>*/;
77 ((void (*)(val
*, long, val
*))(var_p
->class->vft
[COLOR_parser__Parser__push
]))(var_p
, var10
, var_node_list
) /* push on <var_p:Parser>*/;
80 /* method parser#ReduceAction1228#action for (self: Object, Parser) */
81 void VIRTUAL_parser__ReduceAction1228__action(val
* self
, val
* p0
) {
82 parser__ReduceAction1228__action(self
, p0
);
85 /* method parser#ReduceAction1231#action for (self: ReduceAction1231, Parser) */
86 void parser__ReduceAction1231__action(val
* self
, val
* p0
) {
87 val
* var_p
/* var p: Parser */;
88 val
* var
/* : null */;
89 val
* var_node_list
/* var node_list: nullable Object */;
90 val
* var1
/* : nullable Object */;
91 val
* var_nodearraylist3
/* var nodearraylist3: nullable Object */;
92 val
* var2
/* : nullable Object */;
93 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
94 val
* var3
/* : nullable Object */;
95 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
96 val
* var_pexprnode2
/* var pexprnode2: nullable Object */;
97 short int var4
/* : Bool */;
100 val
* var_tidnode3
/* var tidnode3: nullable Object */;
101 short int var5
/* : Bool */;
104 val
* var_pexprsnode4
/* var pexprsnode4: nullable Object */;
105 short int var8
/* : Bool */;
108 val
* var11
/* : ACallExpr */;
109 val
* var_pexprnode1
/* var pexprnode1: nullable ACallExpr */;
110 long var12
/* : Int */;
111 long var13
/* : Int */;
115 var1
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_parser__Parser__pop
]))(var_p
) /* pop on <var_p:Parser>*/;
116 var_nodearraylist3
= var1
;
117 var2
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_parser__Parser__pop
]))(var_p
) /* pop on <var_p:Parser>*/;
118 var_nodearraylist2
= var2
;
119 var3
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_parser__Parser__pop
]))(var_p
) /* pop on <var_p:Parser>*/;
120 var_nodearraylist1
= var3
;
121 var_pexprnode2
= var_nodearraylist1
;
122 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
123 cltype
= type_nullable_parser_nodes__AExpr
.color
;
124 idtype
= type_nullable_parser_nodes__AExpr
.id
;
125 if(var_pexprnode2
== NULL
) {
128 if(cltype
>= var_pexprnode2
->type
->table_size
) {
131 var4
= var_pexprnode2
->type
->type_table
[cltype
] == idtype
;
135 fprintf(stderr
, "Runtime error: %s", "Assert failed");
136 fprintf(stderr
, " (%s:%d)\n", "src/parser/parser.nit", 29172);
139 var_tidnode3
= var_nodearraylist2
;
140 /* <var_tidnode3:nullable Object> isa nullable TId */
141 cltype6
= type_nullable_parser_nodes__TId
.color
;
142 idtype7
= type_nullable_parser_nodes__TId
.id
;
143 if(var_tidnode3
== NULL
) {
146 if(cltype6
>= var_tidnode3
->type
->table_size
) {
149 var5
= var_tidnode3
->type
->type_table
[cltype6
] == idtype7
;
153 fprintf(stderr
, "Runtime error: %s", "Assert failed");
154 fprintf(stderr
, " (%s:%d)\n", "src/parser/parser.nit", 29174);
157 var_pexprsnode4
= var_nodearraylist3
;
158 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
159 cltype9
= type_nullable_parser_nodes__AExprs
.color
;
160 idtype10
= type_nullable_parser_nodes__AExprs
.id
;
161 if(var_pexprsnode4
== NULL
) {
164 if(cltype9
>= var_pexprsnode4
->type
->table_size
) {
167 var8
= var_pexprsnode4
->type
->type_table
[cltype9
] == idtype10
;
171 fprintf(stderr
, "Runtime error: %s", "Assert failed");
172 fprintf(stderr
, " (%s:%d)\n", "src/parser/parser.nit", 29176);
175 var11
= NEW_parser_nodes__ACallExpr(&type_parser_nodes__ACallExpr
);
176 ((void (*)(val
*, val
*, val
*, val
*))(var11
->class->vft
[COLOR_parser_prod__ACallExpr__init_acallexpr
]))(var11
, var_pexprnode2
, var_tidnode3
, var_pexprsnode4
) /* init_acallexpr on <var11:ACallExpr>*/;
177 CHECK_NEW_parser_nodes__ACallExpr(var11
);
178 var_pexprnode1
= var11
;
179 var_node_list
= var_pexprnode1
;
180 var12
= self
->attrs
[COLOR_parser__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction1231> */
181 var13
= ((long (*)(val
*, long))(var_p
->class->vft
[COLOR_parser__Parser__go_to
]))(var_p
, var12
) /* go_to on <var_p:Parser>*/;
182 ((void (*)(val
*, long, val
*))(var_p
->class->vft
[COLOR_parser__Parser__push
]))(var_p
, var13
, var_node_list
) /* push on <var_p:Parser>*/;
185 /* method parser#ReduceAction1231#action for (self: Object, Parser) */
186 void VIRTUAL_parser__ReduceAction1231__action(val
* self
, val
* p0
) {
187 parser__ReduceAction1231__action(self
, p0
);
190 /* method parser#ReduceAction1232#action for (self: ReduceAction1232, Parser) */
191 void parser__ReduceAction1232__action(val
* self
, val
* p0
) {
192 val
* var_p
/* var p: Parser */;
193 val
* var
/* : null */;
194 val
* var_node_list
/* var node_list: nullable Object */;
195 val
* var1
/* : nullable Object */;
196 val
* var_nodearraylist4
/* var nodearraylist4: nullable Object */;
197 val
* var2
/* : nullable Object */;
198 val
* var_nodearraylist3
/* var nodearraylist3: nullable Object */;
199 val
* var3
/* : nullable Object */;
200 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
201 val
* var4
/* : nullable Object */;
202 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
203 val
* var_pexprnode2
/* var pexprnode2: nullable Object */;
204 short int var5
/* : Bool */;
207 val
* var_tidnode3
/* var tidnode3: nullable Object */;
208 short int var6
/* : Bool */;
211 val
* var_pexprsnode4
/* var pexprsnode4: nullable Object */;
212 short int var9
/* : Bool */;
215 val
* var12
/* : ACallExpr */;
216 val
* var_pexprnode1
/* var pexprnode1: nullable ACallExpr */;
217 long var13
/* : Int */;
218 long var14
/* : Int */;
222 var1
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_parser__Parser__pop
]))(var_p
) /* pop on <var_p:Parser>*/;
223 var_nodearraylist4
= var1
;
224 var2
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_parser__Parser__pop
]))(var_p
) /* pop on <var_p:Parser>*/;
225 var_nodearraylist3
= var2
;
226 var3
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_parser__Parser__pop
]))(var_p
) /* pop on <var_p:Parser>*/;
227 var_nodearraylist2
= var3
;
228 var4
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_parser__Parser__pop
]))(var_p
) /* pop on <var_p:Parser>*/;
229 var_nodearraylist1
= var4
;
230 var_pexprnode2
= var_nodearraylist1
;
231 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
232 cltype
= type_nullable_parser_nodes__AExpr
.color
;
233 idtype
= type_nullable_parser_nodes__AExpr
.id
;
234 if(var_pexprnode2
== NULL
) {
237 if(cltype
>= var_pexprnode2
->type
->table_size
) {
240 var5
= var_pexprnode2
->type
->type_table
[cltype
] == idtype
;
244 fprintf(stderr
, "Runtime error: %s", "Assert failed");
245 fprintf(stderr
, " (%s:%d)\n", "src/parser/parser.nit", 29196);
248 var_tidnode3
= var_nodearraylist3
;
249 /* <var_tidnode3:nullable Object> isa nullable TId */
250 cltype7
= type_nullable_parser_nodes__TId
.color
;
251 idtype8
= type_nullable_parser_nodes__TId
.id
;
252 if(var_tidnode3
== NULL
) {
255 if(cltype7
>= var_tidnode3
->type
->table_size
) {
258 var6
= var_tidnode3
->type
->type_table
[cltype7
] == idtype8
;
262 fprintf(stderr
, "Runtime error: %s", "Assert failed");
263 fprintf(stderr
, " (%s:%d)\n", "src/parser/parser.nit", 29198);
266 var_pexprsnode4
= var_nodearraylist4
;
267 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
268 cltype10
= type_nullable_parser_nodes__AExprs
.color
;
269 idtype11
= type_nullable_parser_nodes__AExprs
.id
;
270 if(var_pexprsnode4
== NULL
) {
273 if(cltype10
>= var_pexprsnode4
->type
->table_size
) {
276 var9
= var_pexprsnode4
->type
->type_table
[cltype10
] == idtype11
;
280 fprintf(stderr
, "Runtime error: %s", "Assert failed");
281 fprintf(stderr
, " (%s:%d)\n", "src/parser/parser.nit", 29200);
284 var12
= NEW_parser_nodes__ACallExpr(&type_parser_nodes__ACallExpr
);
285 ((void (*)(val
*, val
*, val
*, val
*))(var12
->class->vft
[COLOR_parser_prod__ACallExpr__init_acallexpr
]))(var12
, var_pexprnode2
, var_tidnode3
, var_pexprsnode4
) /* init_acallexpr on <var12:ACallExpr>*/;
286 CHECK_NEW_parser_nodes__ACallExpr(var12
);
287 var_pexprnode1
= var12
;
288 var_node_list
= var_pexprnode1
;
289 var13
= self
->attrs
[COLOR_parser__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction1232> */
290 var14
= ((long (*)(val
*, long))(var_p
->class->vft
[COLOR_parser__Parser__go_to
]))(var_p
, var13
) /* go_to on <var_p:Parser>*/;
291 ((void (*)(val
*, long, val
*))(var_p
->class->vft
[COLOR_parser__Parser__push
]))(var_p
, var14
, var_node_list
) /* push on <var_p:Parser>*/;
294 /* method parser#ReduceAction1232#action for (self: Object, Parser) */
295 void VIRTUAL_parser__ReduceAction1232__action(val
* self
, val
* p0
) {
296 parser__ReduceAction1232__action(self
, p0
);
299 /* method parser#ReduceAction1239#action for (self: ReduceAction1239, Parser) */
300 void parser__ReduceAction1239__action(val
* self
, val
* p0
) {
301 val
* var_p
/* var p: Parser */;
302 val
* var
/* : null */;
303 val
* var_node_list
/* var node_list: nullable Object */;
304 val
* var1
/* : nullable Object */;
305 val
* var_nodearraylist3
/* var nodearraylist3: nullable Object */;
306 val
* var2
/* : nullable Object */;
307 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
308 val
* var3
/* : nullable Object */;
309 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
310 val
* var_pexprnode2
/* var pexprnode2: nullable Object */;
311 short int var4
/* : Bool */;
314 val
* var_tkwinitnode3
/* var tkwinitnode3: nullable Object */;
315 short int var5
/* : Bool */;
318 val
* var_pexprsnode4
/* var pexprsnode4: nullable Object */;
319 short int var8
/* : Bool */;
322 val
* var11
/* : AInitExpr */;
323 val
* var_pexprnode1
/* var pexprnode1: nullable AInitExpr */;
324 long var12
/* : Int */;
325 long var13
/* : Int */;
329 var1
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_parser__Parser__pop
]))(var_p
) /* pop on <var_p:Parser>*/;
330 var_nodearraylist3
= var1
;
331 var2
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_parser__Parser__pop
]))(var_p
) /* pop on <var_p:Parser>*/;
332 var_nodearraylist2
= var2
;
333 var3
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_parser__Parser__pop
]))(var_p
) /* pop on <var_p:Parser>*/;
334 var_nodearraylist1
= var3
;
335 var_pexprnode2
= var_nodearraylist1
;
336 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
337 cltype
= type_nullable_parser_nodes__AExpr
.color
;
338 idtype
= type_nullable_parser_nodes__AExpr
.id
;
339 if(var_pexprnode2
== NULL
) {
342 if(cltype
>= var_pexprnode2
->type
->table_size
) {
345 var4
= var_pexprnode2
->type
->type_table
[cltype
] == idtype
;
349 fprintf(stderr
, "Runtime error: %s", "Assert failed");
350 fprintf(stderr
, " (%s:%d)\n", "src/parser/parser.nit", 29219);
353 var_tkwinitnode3
= var_nodearraylist2
;
354 /* <var_tkwinitnode3:nullable Object> isa nullable TKwinit */
355 cltype6
= type_nullable_parser_nodes__TKwinit
.color
;
356 idtype7
= type_nullable_parser_nodes__TKwinit
.id
;
357 if(var_tkwinitnode3
== NULL
) {
360 if(cltype6
>= var_tkwinitnode3
->type
->table_size
) {
363 var5
= var_tkwinitnode3
->type
->type_table
[cltype6
] == idtype7
;
367 fprintf(stderr
, "Runtime error: %s", "Assert failed");
368 fprintf(stderr
, " (%s:%d)\n", "src/parser/parser.nit", 29221);
371 var_pexprsnode4
= var_nodearraylist3
;
372 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
373 cltype9
= type_nullable_parser_nodes__AExprs
.color
;
374 idtype10
= type_nullable_parser_nodes__AExprs
.id
;
375 if(var_pexprsnode4
== NULL
) {
378 if(cltype9
>= var_pexprsnode4
->type
->table_size
) {
381 var8
= var_pexprsnode4
->type
->type_table
[cltype9
] == idtype10
;
385 fprintf(stderr
, "Runtime error: %s", "Assert failed");
386 fprintf(stderr
, " (%s:%d)\n", "src/parser/parser.nit", 29223);
389 var11
= NEW_parser_nodes__AInitExpr(&type_parser_nodes__AInitExpr
);
390 ((void (*)(val
*, val
*, val
*, val
*))(var11
->class->vft
[COLOR_parser_prod__AInitExpr__init_ainitexpr
]))(var11
, var_pexprnode2
, var_tkwinitnode3
, var_pexprsnode4
) /* init_ainitexpr on <var11:AInitExpr>*/;
391 CHECK_NEW_parser_nodes__AInitExpr(var11
);
392 var_pexprnode1
= var11
;
393 var_node_list
= var_pexprnode1
;
394 var12
= self
->attrs
[COLOR_parser__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction1239> */
395 var13
= ((long (*)(val
*, long))(var_p
->class->vft
[COLOR_parser__Parser__go_to
]))(var_p
, var12
) /* go_to on <var_p:Parser>*/;
396 ((void (*)(val
*, long, val
*))(var_p
->class->vft
[COLOR_parser__Parser__push
]))(var_p
, var13
, var_node_list
) /* push on <var_p:Parser>*/;
399 /* method parser#ReduceAction1239#action for (self: Object, Parser) */
400 void VIRTUAL_parser__ReduceAction1239__action(val
* self
, val
* p0
) {
401 parser__ReduceAction1239__action(self
, p0
);
404 /* method parser#ReduceAction1263#action for (self: ReduceAction1263, Parser) */
405 void parser__ReduceAction1263__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_nodearraylist3
/* var nodearraylist3: nullable Object */;
411 val
* var2
/* : nullable Object */;
412 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
413 val
* var3
/* : nullable Object */;
414 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
415 val
* var_pexprnode1
/* var pexprnode1: nullable Object */;
416 long var4
/* : Int */;
417 long var5
/* : Int */;
421 var1
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_parser__Parser__pop
]))(var_p
) /* pop on <var_p:Parser>*/;
422 var_nodearraylist3
= var1
;
423 var2
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_parser__Parser__pop
]))(var_p
) /* pop on <var_p:Parser>*/;
424 var_nodearraylist2
= var2
;
425 var3
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_parser__Parser__pop
]))(var_p
) /* pop on <var_p:Parser>*/;
426 var_nodearraylist1
= var3
;
427 var_pexprnode1
= var_nodearraylist1
;
428 var_node_list
= var_pexprnode1
;
429 var4
= self
->attrs
[COLOR_parser__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction1263> */
430 var5
= ((long (*)(val
*, long))(var_p
->class->vft
[COLOR_parser__Parser__go_to
]))(var_p
, var4
) /* go_to on <var_p:Parser>*/;
431 ((void (*)(val
*, long, val
*))(var_p
->class->vft
[COLOR_parser__Parser__push
]))(var_p
, var5
, var_node_list
) /* push on <var_p:Parser>*/;
434 /* method parser#ReduceAction1263#action for (self: Object, Parser) */
435 void VIRTUAL_parser__ReduceAction1263__action(val
* self
, val
* p0
) {
436 parser__ReduceAction1263__action(self
, p0
);
439 /* method parser#ReduceAction1264#action for (self: ReduceAction1264, Parser) */
440 void parser__ReduceAction1264__action(val
* self
, val
* p0
) {
441 val
* var_p
/* var p: Parser */;
442 val
* var
/* : null */;
443 val
* var_node_list
/* var node_list: nullable Object */;
444 val
* var1
/* : AImplicitSelfExpr */;
445 val
* var_pexprnode1
/* var pexprnode1: nullable AImplicitSelfExpr */;
446 long var2
/* : Int */;
447 long var3
/* : Int */;
451 var1
= NEW_parser_nodes__AImplicitSelfExpr(&type_parser_nodes__AImplicitSelfExpr
);
452 ((void (*)(val
*))(var1
->class->vft
[COLOR_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr
]))(var1
) /* init_aimplicitselfexpr on <var1:AImplicitSelfExpr>*/;
453 CHECK_NEW_parser_nodes__AImplicitSelfExpr(var1
);
454 var_pexprnode1
= var1
;
455 var_node_list
= var_pexprnode1
;
456 var2
= self
->attrs
[COLOR_parser__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction1264> */
457 var3
= ((long (*)(val
*, long))(var_p
->class->vft
[COLOR_parser__Parser__go_to
]))(var_p
, var2
) /* go_to on <var_p:Parser>*/;
458 ((void (*)(val
*, long, val
*))(var_p
->class->vft
[COLOR_parser__Parser__push
]))(var_p
, var3
, var_node_list
) /* push on <var_p:Parser>*/;
461 /* method parser#ReduceAction1264#action for (self: Object, Parser) */
462 void VIRTUAL_parser__ReduceAction1264__action(val
* self
, val
* p0
) {
463 parser__ReduceAction1264__action(self
, p0
);
466 /* method parser#ReduceAction1538#action for (self: ReduceAction1538, Parser) */
467 void parser__ReduceAction1538__action(val
* self
, val
* p0
) {
468 val
* var_p
/* var p: Parser */;
469 val
* var
/* : null */;
470 val
* var_node_list
/* var node_list: nullable Object */;
471 val
* var1
/* : nullable Object */;
472 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
473 val
* var2
/* : Array[Object] */;
474 val
* var_listnode2
/* var listnode2: Array[Object] */;
475 val
* var_pimportnode1
/* var pimportnode1: nullable Object */;
476 val
* var3
/* : null */;
477 short int var4
/* : Bool */;
478 long var5
/* : Int */;
479 long var6
/* : Int */;
483 var1
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_parser__Parser__pop
]))(var_p
) /* pop on <var_p:Parser>*/;
484 var_nodearraylist1
= var1
;
485 var2
= NEW_array__Array(&type_array__Arraykernel__Object
);
486 ((void (*)(val
*))(var2
->class->vft
[COLOR_array__Array__init
]))(var2
) /* init on <var2:Array[Object]>*/;
487 CHECK_NEW_array__Array(var2
);
488 var_listnode2
= var2
;
489 var_pimportnode1
= var_nodearraylist1
;
491 if (var_pimportnode1
== NULL
) {
492 var4
= 0; /* is null */
494 var4
= 1; /* arg is null and recv is not */
497 ((void (*)(val
*, val
*))(var_listnode2
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_listnode2
, var_pimportnode1
) /* add on <var_listnode2:Array[Object]>*/;
500 var_node_list
= var_listnode2
;
501 var5
= self
->attrs
[COLOR_parser__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction1538> */
502 var6
= ((long (*)(val
*, long))(var_p
->class->vft
[COLOR_parser__Parser__go_to
]))(var_p
, var5
) /* go_to on <var_p:Parser>*/;
503 ((void (*)(val
*, long, val
*))(var_p
->class->vft
[COLOR_parser__Parser__push
]))(var_p
, var6
, var_node_list
) /* push on <var_p:Parser>*/;
506 /* method parser#ReduceAction1538#action for (self: Object, Parser) */
507 void VIRTUAL_parser__ReduceAction1538__action(val
* self
, val
* p0
) {
508 parser__ReduceAction1538__action(self
, p0
);
511 /* method parser#ReduceAction1539#action for (self: ReduceAction1539, Parser) */
512 void parser__ReduceAction1539__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
* var3
/* : Array[Object] */;
521 val
* var_listnode3
/* var listnode3: Array[Object] */;
522 val
* var_listnode1
/* var listnode1: nullable Object */;
523 short int var4
/* : Bool */;
526 val
* var_pimportnode2
/* var pimportnode2: nullable Object */;
527 val
* var5
/* : Array[Object] */;
528 val
* var6
/* : null */;
529 short int var7
/* : Bool */;
530 long var8
/* : Int */;
531 long var9
/* : Int */;
535 var1
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_parser__Parser__pop
]))(var_p
) /* pop on <var_p:Parser>*/;
536 var_nodearraylist2
= var1
;
537 var2
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_parser__Parser__pop
]))(var_p
) /* pop on <var_p:Parser>*/;
538 var_nodearraylist1
= var2
;
539 var3
= NEW_array__Array(&type_array__Arraykernel__Object
);
540 ((void (*)(val
*))(var3
->class->vft
[COLOR_array__Array__init
]))(var3
) /* init on <var3:Array[Object]>*/;
541 CHECK_NEW_array__Array(var3
);
542 var_listnode3
= var3
;
543 var_listnode1
= var_nodearraylist1
;
544 /* <var_listnode1:nullable Object> isa Array[Object] */
545 cltype
= type_array__Arraykernel__Object
.color
;
546 idtype
= type_array__Arraykernel__Object
.id
;
547 if(var_listnode1
== NULL
) {
550 if(cltype
>= var_listnode1
->type
->table_size
) {
553 var4
= var_listnode1
->type
->type_table
[cltype
] == idtype
;
557 fprintf(stderr
, "Runtime error: %s", "Assert failed");
558 fprintf(stderr
, " (%s:%d)\n", "src/parser/parser.nit", 29280);
561 var_pimportnode2
= var_nodearraylist2
;
562 var5
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_parser__ReduceAction__concat
]))(self
, var_listnode3
, var_listnode1
) /* concat on <self:ReduceAction1539>*/;
563 var_listnode3
= var5
;
565 if (var_pimportnode2
== NULL
) {
566 var7
= 0; /* is null */
568 var7
= 1; /* arg is null and recv is not */
571 ((void (*)(val
*, val
*))(var_listnode3
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_listnode3
, var_pimportnode2
) /* add on <var_listnode3:Array[Object]>*/;
574 var_node_list
= var_listnode3
;
575 var8
= self
->attrs
[COLOR_parser__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction1539> */
576 var9
= ((long (*)(val
*, long))(var_p
->class->vft
[COLOR_parser__Parser__go_to
]))(var_p
, var8
) /* go_to on <var_p:Parser>*/;
577 ((void (*)(val
*, long, val
*))(var_p
->class->vft
[COLOR_parser__Parser__push
]))(var_p
, var9
, var_node_list
) /* push on <var_p:Parser>*/;
580 /* method parser#ReduceAction1539#action for (self: Object, Parser) */
581 void VIRTUAL_parser__ReduceAction1539__action(val
* self
, val
* p0
) {
582 parser__ReduceAction1539__action(self
, p0
);
585 /* method parser#ReduceAction1540#action for (self: ReduceAction1540, Parser) */
586 void parser__ReduceAction1540__action(val
* self
, val
* p0
) {
587 val
* var_p
/* var p: Parser */;
588 val
* var
/* : null */;
589 val
* var_node_list
/* var node_list: nullable Object */;
590 val
* var1
/* : nullable Object */;
591 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
592 val
* var2
/* : Array[Object] */;
593 val
* var_listnode2
/* var listnode2: Array[Object] */;
594 val
* var_pexterncodeblocknode1
/* var pexterncodeblocknode1: nullable Object */;
595 val
* var3
/* : null */;
596 short int var4
/* : Bool */;
597 long var5
/* : Int */;
598 long var6
/* : Int */;
602 var1
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_parser__Parser__pop
]))(var_p
) /* pop on <var_p:Parser>*/;
603 var_nodearraylist1
= var1
;
604 var2
= NEW_array__Array(&type_array__Arraykernel__Object
);
605 ((void (*)(val
*))(var2
->class->vft
[COLOR_array__Array__init
]))(var2
) /* init on <var2:Array[Object]>*/;
606 CHECK_NEW_array__Array(var2
);
607 var_listnode2
= var2
;
608 var_pexterncodeblocknode1
= var_nodearraylist1
;
610 if (var_pexterncodeblocknode1
== NULL
) {
611 var4
= 0; /* is null */
613 var4
= 1; /* arg is null and recv is not */
616 ((void (*)(val
*, val
*))(var_listnode2
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_listnode2
, var_pexterncodeblocknode1
) /* add on <var_listnode2:Array[Object]>*/;
619 var_node_list
= var_listnode2
;
620 var5
= self
->attrs
[COLOR_parser__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction1540> */
621 var6
= ((long (*)(val
*, long))(var_p
->class->vft
[COLOR_parser__Parser__go_to
]))(var_p
, var5
) /* go_to on <var_p:Parser>*/;
622 ((void (*)(val
*, long, val
*))(var_p
->class->vft
[COLOR_parser__Parser__push
]))(var_p
, var6
, var_node_list
) /* push on <var_p:Parser>*/;
625 /* method parser#ReduceAction1540#action for (self: Object, Parser) */
626 void VIRTUAL_parser__ReduceAction1540__action(val
* self
, val
* p0
) {
627 parser__ReduceAction1540__action(self
, p0
);
630 /* method parser#ReduceAction1541#action for (self: ReduceAction1541, Parser) */
631 void parser__ReduceAction1541__action(val
* self
, val
* p0
) {
632 val
* var_p
/* var p: Parser */;
633 val
* var
/* : null */;
634 val
* var_node_list
/* var node_list: nullable Object */;
635 val
* var1
/* : nullable Object */;
636 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
637 val
* var2
/* : nullable Object */;
638 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
639 val
* var3
/* : Array[Object] */;
640 val
* var_listnode3
/* var listnode3: Array[Object] */;
641 val
* var_listnode1
/* var listnode1: nullable Object */;
642 short int var4
/* : Bool */;
645 val
* var_pexterncodeblocknode2
/* var pexterncodeblocknode2: nullable Object */;
646 val
* var5
/* : Array[Object] */;
647 val
* var6
/* : null */;
648 short int var7
/* : Bool */;
649 long var8
/* : Int */;
650 long var9
/* : Int */;
654 var1
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_parser__Parser__pop
]))(var_p
) /* pop on <var_p:Parser>*/;
655 var_nodearraylist2
= var1
;
656 var2
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_parser__Parser__pop
]))(var_p
) /* pop on <var_p:Parser>*/;
657 var_nodearraylist1
= var2
;
658 var3
= NEW_array__Array(&type_array__Arraykernel__Object
);
659 ((void (*)(val
*))(var3
->class->vft
[COLOR_array__Array__init
]))(var3
) /* init on <var3:Array[Object]>*/;
660 CHECK_NEW_array__Array(var3
);
661 var_listnode3
= var3
;
662 var_listnode1
= var_nodearraylist1
;
663 /* <var_listnode1:nullable Object> isa Array[Object] */
664 cltype
= type_array__Arraykernel__Object
.color
;
665 idtype
= type_array__Arraykernel__Object
.id
;
666 if(var_listnode1
== NULL
) {
669 if(cltype
>= var_listnode1
->type
->table_size
) {
672 var4
= var_listnode1
->type
->type_table
[cltype
] == idtype
;
676 fprintf(stderr
, "Runtime error: %s", "Assert failed");
677 fprintf(stderr
, " (%s:%d)\n", "src/parser/parser.nit", 29314);
680 var_pexterncodeblocknode2
= var_nodearraylist2
;
681 var5
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_parser__ReduceAction__concat
]))(self
, var_listnode3
, var_listnode1
) /* concat on <self:ReduceAction1541>*/;
682 var_listnode3
= var5
;
684 if (var_pexterncodeblocknode2
== NULL
) {
685 var7
= 0; /* is null */
687 var7
= 1; /* arg is null and recv is not */
690 ((void (*)(val
*, val
*))(var_listnode3
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_listnode3
, var_pexterncodeblocknode2
) /* add on <var_listnode3:Array[Object]>*/;
693 var_node_list
= var_listnode3
;
694 var8
= self
->attrs
[COLOR_parser__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction1541> */
695 var9
= ((long (*)(val
*, long))(var_p
->class->vft
[COLOR_parser__Parser__go_to
]))(var_p
, var8
) /* go_to on <var_p:Parser>*/;
696 ((void (*)(val
*, long, val
*))(var_p
->class->vft
[COLOR_parser__Parser__push
]))(var_p
, var9
, var_node_list
) /* push on <var_p:Parser>*/;
699 /* method parser#ReduceAction1541#action for (self: Object, Parser) */
700 void VIRTUAL_parser__ReduceAction1541__action(val
* self
, val
* p0
) {
701 parser__ReduceAction1541__action(self
, p0
);
704 /* method parser#ReduceAction1542#action for (self: ReduceAction1542, Parser) */
705 void parser__ReduceAction1542__action(val
* self
, val
* p0
) {
706 val
* var_p
/* var p: Parser */;
707 val
* var
/* : null */;
708 val
* var_node_list
/* var node_list: nullable Object */;
709 val
* var1
/* : nullable Object */;
710 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
711 val
* var2
/* : Array[Object] */;
712 val
* var_listnode2
/* var listnode2: Array[Object] */;
713 val
* var_pclassdefnode1
/* var pclassdefnode1: nullable Object */;
714 val
* var3
/* : null */;
715 short int var4
/* : Bool */;
716 long var5
/* : Int */;
717 long var6
/* : Int */;
721 var1
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_parser__Parser__pop
]))(var_p
) /* pop on <var_p:Parser>*/;
722 var_nodearraylist1
= var1
;
723 var2
= NEW_array__Array(&type_array__Arraykernel__Object
);
724 ((void (*)(val
*))(var2
->class->vft
[COLOR_array__Array__init
]))(var2
) /* init on <var2:Array[Object]>*/;
725 CHECK_NEW_array__Array(var2
);
726 var_listnode2
= var2
;
727 var_pclassdefnode1
= var_nodearraylist1
;
729 if (var_pclassdefnode1
== NULL
) {
730 var4
= 0; /* is null */
732 var4
= 1; /* arg is null and recv is not */
735 ((void (*)(val
*, val
*))(var_listnode2
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_listnode2
, var_pclassdefnode1
) /* add on <var_listnode2:Array[Object]>*/;
738 var_node_list
= var_listnode2
;
739 var5
= self
->attrs
[COLOR_parser__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction1542> */
740 var6
= ((long (*)(val
*, long))(var_p
->class->vft
[COLOR_parser__Parser__go_to
]))(var_p
, var5
) /* go_to on <var_p:Parser>*/;
741 ((void (*)(val
*, long, val
*))(var_p
->class->vft
[COLOR_parser__Parser__push
]))(var_p
, var6
, var_node_list
) /* push on <var_p:Parser>*/;
744 /* method parser#ReduceAction1542#action for (self: Object, Parser) */
745 void VIRTUAL_parser__ReduceAction1542__action(val
* self
, val
* p0
) {
746 parser__ReduceAction1542__action(self
, p0
);
749 /* method parser#ReduceAction1543#action for (self: ReduceAction1543, Parser) */
750 void parser__ReduceAction1543__action(val
* self
, val
* p0
) {
751 val
* var_p
/* var p: Parser */;
752 val
* var
/* : null */;
753 val
* var_node_list
/* var node_list: nullable Object */;
754 val
* var1
/* : nullable Object */;
755 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
756 val
* var2
/* : nullable Object */;
757 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
758 val
* var3
/* : Array[Object] */;
759 val
* var_listnode3
/* var listnode3: Array[Object] */;
760 val
* var_listnode1
/* var listnode1: nullable Object */;
761 short int var4
/* : Bool */;
764 val
* var_pclassdefnode2
/* var pclassdefnode2: nullable Object */;
765 val
* var5
/* : Array[Object] */;
766 val
* var6
/* : null */;
767 short int var7
/* : Bool */;
768 long var8
/* : Int */;
769 long var9
/* : Int */;
773 var1
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_parser__Parser__pop
]))(var_p
) /* pop on <var_p:Parser>*/;
774 var_nodearraylist2
= var1
;
775 var2
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_parser__Parser__pop
]))(var_p
) /* pop on <var_p:Parser>*/;
776 var_nodearraylist1
= var2
;
777 var3
= NEW_array__Array(&type_array__Arraykernel__Object
);
778 ((void (*)(val
*))(var3
->class->vft
[COLOR_array__Array__init
]))(var3
) /* init on <var3:Array[Object]>*/;
779 CHECK_NEW_array__Array(var3
);
780 var_listnode3
= var3
;
781 var_listnode1
= var_nodearraylist1
;
782 /* <var_listnode1:nullable Object> isa Array[Object] */
783 cltype
= type_array__Arraykernel__Object
.color
;
784 idtype
= type_array__Arraykernel__Object
.id
;
785 if(var_listnode1
== NULL
) {
788 if(cltype
>= var_listnode1
->type
->table_size
) {
791 var4
= var_listnode1
->type
->type_table
[cltype
] == idtype
;
795 fprintf(stderr
, "Runtime error: %s", "Assert failed");
796 fprintf(stderr
, " (%s:%d)\n", "src/parser/parser.nit", 29348);
799 var_pclassdefnode2
= var_nodearraylist2
;
800 var5
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_parser__ReduceAction__concat
]))(self
, var_listnode3
, var_listnode1
) /* concat on <self:ReduceAction1543>*/;
801 var_listnode3
= var5
;
803 if (var_pclassdefnode2
== NULL
) {
804 var7
= 0; /* is null */
806 var7
= 1; /* arg is null and recv is not */
809 ((void (*)(val
*, val
*))(var_listnode3
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_listnode3
, var_pclassdefnode2
) /* add on <var_listnode3:Array[Object]>*/;
812 var_node_list
= var_listnode3
;
813 var8
= self
->attrs
[COLOR_parser__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction1543> */
814 var9
= ((long (*)(val
*, long))(var_p
->class->vft
[COLOR_parser__Parser__go_to
]))(var_p
, var8
) /* go_to on <var_p:Parser>*/;
815 ((void (*)(val
*, long, val
*))(var_p
->class->vft
[COLOR_parser__Parser__push
]))(var_p
, var9
, var_node_list
) /* push on <var_p:Parser>*/;
818 /* method parser#ReduceAction1543#action for (self: Object, Parser) */
819 void VIRTUAL_parser__ReduceAction1543__action(val
* self
, val
* p0
) {
820 parser__ReduceAction1543__action(self
, p0
);
823 /* method parser#ReduceAction1544#action for (self: ReduceAction1544, Parser) */
824 void parser__ReduceAction1544__action(val
* self
, val
* p0
) {
825 val
* var_p
/* var p: Parser */;
826 val
* var
/* : null */;
827 val
* var_node_list
/* var node_list: nullable Object */;
828 val
* var1
/* : nullable Object */;
829 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
830 val
* var2
/* : Array[Object] */;
831 val
* var_listnode2
/* var listnode2: Array[Object] */;
832 val
* var_ppropdefnode1
/* var ppropdefnode1: nullable Object */;
833 val
* var3
/* : null */;
834 short int var4
/* : Bool */;
835 long var5
/* : Int */;
836 long var6
/* : Int */;
840 var1
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_parser__Parser__pop
]))(var_p
) /* pop on <var_p:Parser>*/;
841 var_nodearraylist1
= var1
;
842 var2
= NEW_array__Array(&type_array__Arraykernel__Object
);
843 ((void (*)(val
*))(var2
->class->vft
[COLOR_array__Array__init
]))(var2
) /* init on <var2:Array[Object]>*/;
844 CHECK_NEW_array__Array(var2
);
845 var_listnode2
= var2
;
846 var_ppropdefnode1
= var_nodearraylist1
;
848 if (var_ppropdefnode1
== NULL
) {
849 var4
= 0; /* is null */
851 var4
= 1; /* arg is null and recv is not */
854 ((void (*)(val
*, val
*))(var_listnode2
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_listnode2
, var_ppropdefnode1
) /* add on <var_listnode2:Array[Object]>*/;
857 var_node_list
= var_listnode2
;
858 var5
= self
->attrs
[COLOR_parser__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction1544> */
859 var6
= ((long (*)(val
*, long))(var_p
->class->vft
[COLOR_parser__Parser__go_to
]))(var_p
, var5
) /* go_to on <var_p:Parser>*/;
860 ((void (*)(val
*, long, val
*))(var_p
->class->vft
[COLOR_parser__Parser__push
]))(var_p
, var6
, var_node_list
) /* push on <var_p:Parser>*/;
863 /* method parser#ReduceAction1544#action for (self: Object, Parser) */
864 void VIRTUAL_parser__ReduceAction1544__action(val
* self
, val
* p0
) {
865 parser__ReduceAction1544__action(self
, p0
);
868 /* method parser#ReduceAction1545#action for (self: ReduceAction1545, Parser) */
869 void parser__ReduceAction1545__action(val
* self
, val
* p0
) {
870 val
* var_p
/* var p: Parser */;
871 val
* var
/* : null */;
872 val
* var_node_list
/* var node_list: nullable Object */;
873 val
* var1
/* : nullable Object */;
874 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
875 val
* var2
/* : nullable Object */;
876 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
877 val
* var3
/* : Array[Object] */;
878 val
* var_listnode3
/* var listnode3: Array[Object] */;
879 val
* var_listnode1
/* var listnode1: nullable Object */;
880 short int var4
/* : Bool */;
883 val
* var_ppropdefnode2
/* var ppropdefnode2: nullable Object */;
884 val
* var5
/* : Array[Object] */;
885 val
* var6
/* : null */;
886 short int var7
/* : Bool */;
887 long var8
/* : Int */;
888 long var9
/* : Int */;
892 var1
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_parser__Parser__pop
]))(var_p
) /* pop on <var_p:Parser>*/;
893 var_nodearraylist2
= var1
;
894 var2
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_parser__Parser__pop
]))(var_p
) /* pop on <var_p:Parser>*/;
895 var_nodearraylist1
= var2
;
896 var3
= NEW_array__Array(&type_array__Arraykernel__Object
);
897 ((void (*)(val
*))(var3
->class->vft
[COLOR_array__Array__init
]))(var3
) /* init on <var3:Array[Object]>*/;
898 CHECK_NEW_array__Array(var3
);
899 var_listnode3
= var3
;
900 var_listnode1
= var_nodearraylist1
;
901 /* <var_listnode1:nullable Object> isa Array[Object] */
902 cltype
= type_array__Arraykernel__Object
.color
;
903 idtype
= type_array__Arraykernel__Object
.id
;
904 if(var_listnode1
== NULL
) {
907 if(cltype
>= var_listnode1
->type
->table_size
) {
910 var4
= var_listnode1
->type
->type_table
[cltype
] == idtype
;
914 fprintf(stderr
, "Runtime error: %s", "Assert failed");
915 fprintf(stderr
, " (%s:%d)\n", "src/parser/parser.nit", 29382);
918 var_ppropdefnode2
= var_nodearraylist2
;
919 var5
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_parser__ReduceAction__concat
]))(self
, var_listnode3
, var_listnode1
) /* concat on <self:ReduceAction1545>*/;
920 var_listnode3
= var5
;
922 if (var_ppropdefnode2
== NULL
) {
923 var7
= 0; /* is null */
925 var7
= 1; /* arg is null and recv is not */
928 ((void (*)(val
*, val
*))(var_listnode3
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_listnode3
, var_ppropdefnode2
) /* add on <var_listnode3:Array[Object]>*/;
931 var_node_list
= var_listnode3
;
932 var8
= self
->attrs
[COLOR_parser__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction1545> */
933 var9
= ((long (*)(val
*, long))(var_p
->class->vft
[COLOR_parser__Parser__go_to
]))(var_p
, var8
) /* go_to on <var_p:Parser>*/;
934 ((void (*)(val
*, long, val
*))(var_p
->class->vft
[COLOR_parser__Parser__push
]))(var_p
, var9
, var_node_list
) /* push on <var_p:Parser>*/;
937 /* method parser#ReduceAction1545#action for (self: Object, Parser) */
938 void VIRTUAL_parser__ReduceAction1545__action(val
* self
, val
* p0
) {
939 parser__ReduceAction1545__action(self
, p0
);
942 /* method parser#ReduceAction1546#action for (self: ReduceAction1546, Parser) */
943 void parser__ReduceAction1546__action(val
* self
, val
* p0
) {
944 val
* var_p
/* var p: Parser */;
945 val
* var
/* : null */;
946 val
* var_node_list
/* var node_list: nullable Object */;
947 val
* var1
/* : nullable Object */;
948 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
949 val
* var2
/* : Array[Object] */;
950 val
* var_listnode2
/* var listnode2: Array[Object] */;
951 val
* var_psuperclassnode1
/* var psuperclassnode1: nullable Object */;
952 val
* var3
/* : null */;
953 short int var4
/* : Bool */;
954 long var5
/* : Int */;
955 long var6
/* : Int */;
959 var1
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_parser__Parser__pop
]))(var_p
) /* pop on <var_p:Parser>*/;
960 var_nodearraylist1
= var1
;
961 var2
= NEW_array__Array(&type_array__Arraykernel__Object
);
962 ((void (*)(val
*))(var2
->class->vft
[COLOR_array__Array__init
]))(var2
) /* init on <var2:Array[Object]>*/;
963 CHECK_NEW_array__Array(var2
);
964 var_listnode2
= var2
;
965 var_psuperclassnode1
= var_nodearraylist1
;
967 if (var_psuperclassnode1
== NULL
) {
968 var4
= 0; /* is null */
970 var4
= 1; /* arg is null and recv is not */
973 ((void (*)(val
*, val
*))(var_listnode2
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_listnode2
, var_psuperclassnode1
) /* add on <var_listnode2:Array[Object]>*/;
976 var_node_list
= var_listnode2
;
977 var5
= self
->attrs
[COLOR_parser__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction1546> */
978 var6
= ((long (*)(val
*, long))(var_p
->class->vft
[COLOR_parser__Parser__go_to
]))(var_p
, var5
) /* go_to on <var_p:Parser>*/;
979 ((void (*)(val
*, long, val
*))(var_p
->class->vft
[COLOR_parser__Parser__push
]))(var_p
, var6
, var_node_list
) /* push on <var_p:Parser>*/;
982 /* method parser#ReduceAction1546#action for (self: Object, Parser) */
983 void VIRTUAL_parser__ReduceAction1546__action(val
* self
, val
* p0
) {
984 parser__ReduceAction1546__action(self
, p0
);
987 /* method parser#ReduceAction1547#action for (self: ReduceAction1547, Parser) */
988 void parser__ReduceAction1547__action(val
* self
, val
* p0
) {
989 val
* var_p
/* var p: Parser */;
990 val
* var
/* : null */;
991 val
* var_node_list
/* var node_list: nullable Object */;
992 val
* var1
/* : nullable Object */;
993 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
994 val
* var2
/* : nullable Object */;
995 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
996 val
* var3
/* : Array[Object] */;
997 val
* var_listnode3
/* var listnode3: Array[Object] */;
998 val
* var_listnode1
/* var listnode1: nullable Object */;
999 short int var4
/* : Bool */;
1002 val
* var_psuperclassnode2
/* var psuperclassnode2: nullable Object */;
1003 val
* var5
/* : Array[Object] */;
1004 val
* var6
/* : null */;
1005 short int var7
/* : Bool */;
1006 long var8
/* : Int */;
1007 long var9
/* : Int */;
1010 var_node_list
= var
;
1011 var1
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_parser__Parser__pop
]))(var_p
) /* pop on <var_p:Parser>*/;
1012 var_nodearraylist2
= var1
;
1013 var2
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_parser__Parser__pop
]))(var_p
) /* pop on <var_p:Parser>*/;
1014 var_nodearraylist1
= var2
;
1015 var3
= NEW_array__Array(&type_array__Arraykernel__Object
);
1016 ((void (*)(val
*))(var3
->class->vft
[COLOR_array__Array__init
]))(var3
) /* init on <var3:Array[Object]>*/;
1017 CHECK_NEW_array__Array(var3
);
1018 var_listnode3
= var3
;
1019 var_listnode1
= var_nodearraylist1
;
1020 /* <var_listnode1:nullable Object> isa Array[Object] */
1021 cltype
= type_array__Arraykernel__Object
.color
;
1022 idtype
= type_array__Arraykernel__Object
.id
;
1023 if(var_listnode1
== NULL
) {
1026 if(cltype
>= var_listnode1
->type
->table_size
) {
1029 var4
= var_listnode1
->type
->type_table
[cltype
] == idtype
;
1033 fprintf(stderr
, "Runtime error: %s", "Assert failed");
1034 fprintf(stderr
, " (%s:%d)\n", "src/parser/parser.nit", 29416);
1037 var_psuperclassnode2
= var_nodearraylist2
;
1038 var5
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_parser__ReduceAction__concat
]))(self
, var_listnode3
, var_listnode1
) /* concat on <self:ReduceAction1547>*/;
1039 var_listnode3
= var5
;
1041 if (var_psuperclassnode2
== NULL
) {
1042 var7
= 0; /* is null */
1044 var7
= 1; /* arg is null and recv is not */
1047 ((void (*)(val
*, val
*))(var_listnode3
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_listnode3
, var_psuperclassnode2
) /* add on <var_listnode3:Array[Object]>*/;
1050 var_node_list
= var_listnode3
;
1051 var8
= self
->attrs
[COLOR_parser__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction1547> */
1052 var9
= ((long (*)(val
*, long))(var_p
->class->vft
[COLOR_parser__Parser__go_to
]))(var_p
, var8
) /* go_to on <var_p:Parser>*/;
1053 ((void (*)(val
*, long, val
*))(var_p
->class->vft
[COLOR_parser__Parser__push
]))(var_p
, var9
, var_node_list
) /* push on <var_p:Parser>*/;
1056 /* method parser#ReduceAction1547#action for (self: Object, Parser) */
1057 void VIRTUAL_parser__ReduceAction1547__action(val
* self
, val
* p0
) {
1058 parser__ReduceAction1547__action(self
, p0
);
1061 /* method parser#ReduceAction1550#action for (self: ReduceAction1550, Parser) */
1062 void parser__ReduceAction1550__action(val
* self
, val
* p0
) {
1063 val
* var_p
/* var p: Parser */;
1064 val
* var
/* : null */;
1065 val
* var_node_list
/* var node_list: nullable Object */;
1066 val
* var1
/* : nullable Object */;
1067 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
1068 val
* var2
/* : Array[Object] */;
1069 val
* var_listnode2
/* var listnode2: Array[Object] */;
1070 val
* var_pformaldefnode1
/* var pformaldefnode1: nullable Object */;
1071 val
* var3
/* : null */;
1072 short int var4
/* : Bool */;
1073 long var5
/* : Int */;
1074 long var6
/* : Int */;
1077 var_node_list
= var
;
1078 var1
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_parser__Parser__pop
]))(var_p
) /* pop on <var_p:Parser>*/;
1079 var_nodearraylist1
= var1
;
1080 var2
= NEW_array__Array(&type_array__Arraykernel__Object
);
1081 ((void (*)(val
*))(var2
->class->vft
[COLOR_array__Array__init
]))(var2
) /* init on <var2:Array[Object]>*/;
1082 CHECK_NEW_array__Array(var2
);
1083 var_listnode2
= var2
;
1084 var_pformaldefnode1
= var_nodearraylist1
;
1086 if (var_pformaldefnode1
== NULL
) {
1087 var4
= 0; /* is null */
1089 var4
= 1; /* arg is null and recv is not */
1092 ((void (*)(val
*, val
*))(var_listnode2
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_listnode2
, var_pformaldefnode1
) /* add on <var_listnode2:Array[Object]>*/;
1095 var_node_list
= var_listnode2
;
1096 var5
= self
->attrs
[COLOR_parser__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction1550> */
1097 var6
= ((long (*)(val
*, long))(var_p
->class->vft
[COLOR_parser__Parser__go_to
]))(var_p
, var5
) /* go_to on <var_p:Parser>*/;
1098 ((void (*)(val
*, long, val
*))(var_p
->class->vft
[COLOR_parser__Parser__push
]))(var_p
, var6
, var_node_list
) /* push on <var_p:Parser>*/;
1101 /* method parser#ReduceAction1550#action for (self: Object, Parser) */
1102 void VIRTUAL_parser__ReduceAction1550__action(val
* self
, val
* p0
) {
1103 parser__ReduceAction1550__action(self
, p0
);
1106 /* method parser#ReduceAction1551#action for (self: ReduceAction1551, Parser) */
1107 void parser__ReduceAction1551__action(val
* self
, val
* p0
) {
1108 val
* var_p
/* var p: Parser */;
1109 val
* var
/* : null */;
1110 val
* var_node_list
/* var node_list: nullable Object */;
1111 val
* var1
/* : nullable Object */;
1112 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
1113 val
* var2
/* : nullable Object */;
1114 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
1115 val
* var3
/* : Array[Object] */;
1116 val
* var_listnode3
/* var listnode3: Array[Object] */;
1117 val
* var_listnode1
/* var listnode1: nullable Object */;
1118 short int var4
/* : Bool */;
1121 val
* var_pformaldefnode2
/* var pformaldefnode2: nullable Object */;
1122 val
* var5
/* : Array[Object] */;
1123 val
* var6
/* : null */;
1124 short int var7
/* : Bool */;
1125 long var8
/* : Int */;
1126 long var9
/* : Int */;
1129 var_node_list
= var
;
1130 var1
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_parser__Parser__pop
]))(var_p
) /* pop on <var_p:Parser>*/;
1131 var_nodearraylist2
= var1
;
1132 var2
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_parser__Parser__pop
]))(var_p
) /* pop on <var_p:Parser>*/;
1133 var_nodearraylist1
= var2
;
1134 var3
= NEW_array__Array(&type_array__Arraykernel__Object
);
1135 ((void (*)(val
*))(var3
->class->vft
[COLOR_array__Array__init
]))(var3
) /* init on <var3:Array[Object]>*/;
1136 CHECK_NEW_array__Array(var3
);
1137 var_listnode3
= var3
;
1138 var_listnode1
= var_nodearraylist1
;
1139 /* <var_listnode1:nullable Object> isa Array[Object] */
1140 cltype
= type_array__Arraykernel__Object
.color
;
1141 idtype
= type_array__Arraykernel__Object
.id
;
1142 if(var_listnode1
== NULL
) {
1145 if(cltype
>= var_listnode1
->type
->table_size
) {
1148 var4
= var_listnode1
->type
->type_table
[cltype
] == idtype
;
1152 fprintf(stderr
, "Runtime error: %s", "Assert failed");
1153 fprintf(stderr
, " (%s:%d)\n", "src/parser/parser.nit", 29450);
1156 var_pformaldefnode2
= var_nodearraylist2
;
1157 var5
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_parser__ReduceAction__concat
]))(self
, var_listnode3
, var_listnode1
) /* concat on <self:ReduceAction1551>*/;
1158 var_listnode3
= var5
;
1160 if (var_pformaldefnode2
== NULL
) {
1161 var7
= 0; /* is null */
1163 var7
= 1; /* arg is null and recv is not */
1166 ((void (*)(val
*, val
*))(var_listnode3
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_listnode3
, var_pformaldefnode2
) /* add on <var_listnode3:Array[Object]>*/;
1169 var_node_list
= var_listnode3
;
1170 var8
= self
->attrs
[COLOR_parser__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction1551> */
1171 var9
= ((long (*)(val
*, long))(var_p
->class->vft
[COLOR_parser__Parser__go_to
]))(var_p
, var8
) /* go_to on <var_p:Parser>*/;
1172 ((void (*)(val
*, long, val
*))(var_p
->class->vft
[COLOR_parser__Parser__push
]))(var_p
, var9
, var_node_list
) /* push on <var_p:Parser>*/;
1175 /* method parser#ReduceAction1551#action for (self: Object, Parser) */
1176 void VIRTUAL_parser__ReduceAction1551__action(val
* self
, val
* p0
) {
1177 parser__ReduceAction1551__action(self
, p0
);
1180 /* method parser#ReduceAction1552#action for (self: ReduceAction1552, Parser) */
1181 void parser__ReduceAction1552__action(val
* self
, val
* p0
) {
1182 val
* var_p
/* var p: Parser */;
1183 val
* var
/* : null */;
1184 val
* var_node_list
/* var node_list: nullable Object */;
1185 val
* var1
/* : nullable Object */;
1186 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
1187 val
* var2
/* : Array[Object] */;
1188 val
* var_listnode2
/* var listnode2: Array[Object] */;
1189 val
* var_pparamnode1
/* var pparamnode1: nullable Object */;
1190 val
* var3
/* : null */;
1191 short int var4
/* : Bool */;
1192 long var5
/* : Int */;
1193 long var6
/* : Int */;
1196 var_node_list
= var
;
1197 var1
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_parser__Parser__pop
]))(var_p
) /* pop on <var_p:Parser>*/;
1198 var_nodearraylist1
= var1
;
1199 var2
= NEW_array__Array(&type_array__Arraykernel__Object
);
1200 ((void (*)(val
*))(var2
->class->vft
[COLOR_array__Array__init
]))(var2
) /* init on <var2:Array[Object]>*/;
1201 CHECK_NEW_array__Array(var2
);
1202 var_listnode2
= var2
;
1203 var_pparamnode1
= var_nodearraylist1
;
1205 if (var_pparamnode1
== NULL
) {
1206 var4
= 0; /* is null */
1208 var4
= 1; /* arg is null and recv is not */
1211 ((void (*)(val
*, val
*))(var_listnode2
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_listnode2
, var_pparamnode1
) /* add on <var_listnode2:Array[Object]>*/;
1214 var_node_list
= var_listnode2
;
1215 var5
= self
->attrs
[COLOR_parser__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction1552> */
1216 var6
= ((long (*)(val
*, long))(var_p
->class->vft
[COLOR_parser__Parser__go_to
]))(var_p
, var5
) /* go_to on <var_p:Parser>*/;
1217 ((void (*)(val
*, long, val
*))(var_p
->class->vft
[COLOR_parser__Parser__push
]))(var_p
, var6
, var_node_list
) /* push on <var_p:Parser>*/;
1220 /* method parser#ReduceAction1552#action for (self: Object, Parser) */
1221 void VIRTUAL_parser__ReduceAction1552__action(val
* self
, val
* p0
) {
1222 parser__ReduceAction1552__action(self
, p0
);
1225 /* method parser#ReduceAction1553#action for (self: ReduceAction1553, Parser) */
1226 void parser__ReduceAction1553__action(val
* self
, val
* p0
) {
1227 val
* var_p
/* var p: Parser */;
1228 val
* var
/* : null */;
1229 val
* var_node_list
/* var node_list: nullable Object */;
1230 val
* var1
/* : nullable Object */;
1231 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
1232 val
* var2
/* : nullable Object */;
1233 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
1234 val
* var3
/* : Array[Object] */;
1235 val
* var_listnode3
/* var listnode3: Array[Object] */;
1236 val
* var_listnode1
/* var listnode1: nullable Object */;
1237 short int var4
/* : Bool */;
1240 val
* var_pparamnode2
/* var pparamnode2: nullable Object */;
1241 val
* var5
/* : Array[Object] */;
1242 val
* var6
/* : null */;
1243 short int var7
/* : Bool */;
1244 long var8
/* : Int */;
1245 long var9
/* : Int */;
1248 var_node_list
= var
;
1249 var1
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_parser__Parser__pop
]))(var_p
) /* pop on <var_p:Parser>*/;
1250 var_nodearraylist2
= var1
;
1251 var2
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_parser__Parser__pop
]))(var_p
) /* pop on <var_p:Parser>*/;
1252 var_nodearraylist1
= var2
;
1253 var3
= NEW_array__Array(&type_array__Arraykernel__Object
);
1254 ((void (*)(val
*))(var3
->class->vft
[COLOR_array__Array__init
]))(var3
) /* init on <var3:Array[Object]>*/;
1255 CHECK_NEW_array__Array(var3
);
1256 var_listnode3
= var3
;
1257 var_listnode1
= var_nodearraylist1
;
1258 /* <var_listnode1:nullable Object> isa Array[Object] */
1259 cltype
= type_array__Arraykernel__Object
.color
;
1260 idtype
= type_array__Arraykernel__Object
.id
;
1261 if(var_listnode1
== NULL
) {
1264 if(cltype
>= var_listnode1
->type
->table_size
) {
1267 var4
= var_listnode1
->type
->type_table
[cltype
] == idtype
;
1271 fprintf(stderr
, "Runtime error: %s", "Assert failed");
1272 fprintf(stderr
, " (%s:%d)\n", "src/parser/parser.nit", 29484);
1275 var_pparamnode2
= var_nodearraylist2
;
1276 var5
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_parser__ReduceAction__concat
]))(self
, var_listnode3
, var_listnode1
) /* concat on <self:ReduceAction1553>*/;
1277 var_listnode3
= var5
;
1279 if (var_pparamnode2
== NULL
) {
1280 var7
= 0; /* is null */
1282 var7
= 1; /* arg is null and recv is not */
1285 ((void (*)(val
*, val
*))(var_listnode3
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_listnode3
, var_pparamnode2
) /* add on <var_listnode3:Array[Object]>*/;
1288 var_node_list
= var_listnode3
;
1289 var8
= self
->attrs
[COLOR_parser__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction1553> */
1290 var9
= ((long (*)(val
*, long))(var_p
->class->vft
[COLOR_parser__Parser__go_to
]))(var_p
, var8
) /* go_to on <var_p:Parser>*/;
1291 ((void (*)(val
*, long, val
*))(var_p
->class->vft
[COLOR_parser__Parser__push
]))(var_p
, var9
, var_node_list
) /* push on <var_p:Parser>*/;
1294 /* method parser#ReduceAction1553#action for (self: Object, Parser) */
1295 void VIRTUAL_parser__ReduceAction1553__action(val
* self
, val
* p0
) {
1296 parser__ReduceAction1553__action(self
, p0
);
1299 /* method parser#ReduceAction1554#action for (self: ReduceAction1554, Parser) */
1300 void parser__ReduceAction1554__action(val
* self
, val
* p0
) {
1301 val
* var_p
/* var p: Parser */;
1302 val
* var
/* : null */;
1303 val
* var_node_list
/* var node_list: nullable Object */;
1304 val
* var1
/* : nullable Object */;
1305 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
1306 val
* var2
/* : Array[Object] */;
1307 val
* var_listnode2
/* var listnode2: Array[Object] */;
1308 val
* var_pexterncallnode1
/* var pexterncallnode1: nullable Object */;
1309 val
* var3
/* : null */;
1310 short int var4
/* : Bool */;
1311 long var5
/* : Int */;
1312 long var6
/* : Int */;
1315 var_node_list
= var
;
1316 var1
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_parser__Parser__pop
]))(var_p
) /* pop on <var_p:Parser>*/;
1317 var_nodearraylist1
= var1
;
1318 var2
= NEW_array__Array(&type_array__Arraykernel__Object
);
1319 ((void (*)(val
*))(var2
->class->vft
[COLOR_array__Array__init
]))(var2
) /* init on <var2:Array[Object]>*/;
1320 CHECK_NEW_array__Array(var2
);
1321 var_listnode2
= var2
;
1322 var_pexterncallnode1
= var_nodearraylist1
;
1324 if (var_pexterncallnode1
== NULL
) {
1325 var4
= 0; /* is null */
1327 var4
= 1; /* arg is null and recv is not */
1330 ((void (*)(val
*, val
*))(var_listnode2
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_listnode2
, var_pexterncallnode1
) /* add on <var_listnode2:Array[Object]>*/;
1333 var_node_list
= var_listnode2
;
1334 var5
= self
->attrs
[COLOR_parser__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction1554> */
1335 var6
= ((long (*)(val
*, long))(var_p
->class->vft
[COLOR_parser__Parser__go_to
]))(var_p
, var5
) /* go_to on <var_p:Parser>*/;
1336 ((void (*)(val
*, long, val
*))(var_p
->class->vft
[COLOR_parser__Parser__push
]))(var_p
, var6
, var_node_list
) /* push on <var_p:Parser>*/;
1339 /* method parser#ReduceAction1554#action for (self: Object, Parser) */
1340 void VIRTUAL_parser__ReduceAction1554__action(val
* self
, val
* p0
) {
1341 parser__ReduceAction1554__action(self
, p0
);
1344 /* method parser#ReduceAction1555#action for (self: ReduceAction1555, Parser) */
1345 void parser__ReduceAction1555__action(val
* self
, val
* p0
) {
1346 val
* var_p
/* var p: Parser */;
1347 val
* var
/* : null */;
1348 val
* var_node_list
/* var node_list: nullable Object */;
1349 val
* var1
/* : nullable Object */;
1350 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
1351 val
* var2
/* : nullable Object */;
1352 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
1353 val
* var3
/* : Array[Object] */;
1354 val
* var_listnode3
/* var listnode3: Array[Object] */;
1355 val
* var_listnode1
/* var listnode1: nullable Object */;
1356 short int var4
/* : Bool */;
1359 val
* var_pexterncallnode2
/* var pexterncallnode2: nullable Object */;
1360 val
* var5
/* : Array[Object] */;
1361 val
* var6
/* : null */;
1362 short int var7
/* : Bool */;
1363 long var8
/* : Int */;
1364 long var9
/* : Int */;
1367 var_node_list
= var
;
1368 var1
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_parser__Parser__pop
]))(var_p
) /* pop on <var_p:Parser>*/;
1369 var_nodearraylist2
= var1
;
1370 var2
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_parser__Parser__pop
]))(var_p
) /* pop on <var_p:Parser>*/;
1371 var_nodearraylist1
= var2
;
1372 var3
= NEW_array__Array(&type_array__Arraykernel__Object
);
1373 ((void (*)(val
*))(var3
->class->vft
[COLOR_array__Array__init
]))(var3
) /* init on <var3:Array[Object]>*/;
1374 CHECK_NEW_array__Array(var3
);
1375 var_listnode3
= var3
;
1376 var_listnode1
= var_nodearraylist1
;
1377 /* <var_listnode1:nullable Object> isa Array[Object] */
1378 cltype
= type_array__Arraykernel__Object
.color
;
1379 idtype
= type_array__Arraykernel__Object
.id
;
1380 if(var_listnode1
== NULL
) {
1383 if(cltype
>= var_listnode1
->type
->table_size
) {
1386 var4
= var_listnode1
->type
->type_table
[cltype
] == idtype
;
1390 fprintf(stderr
, "Runtime error: %s", "Assert failed");
1391 fprintf(stderr
, " (%s:%d)\n", "src/parser/parser.nit", 29518);
1394 var_pexterncallnode2
= var_nodearraylist2
;
1395 var5
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_parser__ReduceAction__concat
]))(self
, var_listnode3
, var_listnode1
) /* concat on <self:ReduceAction1555>*/;
1396 var_listnode3
= var5
;
1398 if (var_pexterncallnode2
== NULL
) {
1399 var7
= 0; /* is null */
1401 var7
= 1; /* arg is null and recv is not */
1404 ((void (*)(val
*, val
*))(var_listnode3
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_listnode3
, var_pexterncallnode2
) /* add on <var_listnode3:Array[Object]>*/;
1407 var_node_list
= var_listnode3
;
1408 var8
= self
->attrs
[COLOR_parser__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction1555> */
1409 var9
= ((long (*)(val
*, long))(var_p
->class->vft
[COLOR_parser__Parser__go_to
]))(var_p
, var8
) /* go_to on <var_p:Parser>*/;
1410 ((void (*)(val
*, long, val
*))(var_p
->class->vft
[COLOR_parser__Parser__push
]))(var_p
, var9
, var_node_list
) /* push on <var_p:Parser>*/;
1413 /* method parser#ReduceAction1555#action for (self: Object, Parser) */
1414 void VIRTUAL_parser__ReduceAction1555__action(val
* self
, val
* p0
) {
1415 parser__ReduceAction1555__action(self
, p0
);
1418 /* method parser#ReduceAction1557#action for (self: ReduceAction1557, Parser) */
1419 void parser__ReduceAction1557__action(val
* self
, val
* p0
) {
1420 val
* var_p
/* var p: Parser */;
1421 val
* var
/* : null */;
1422 val
* var_node_list
/* var node_list: nullable Object */;
1423 val
* var1
/* : nullable Object */;
1424 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
1425 val
* var2
/* : nullable Object */;
1426 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
1427 val
* var3
/* : Array[Object] */;
1428 val
* var_listnode3
/* var listnode3: Array[Object] */;
1429 val
* var_listnode1
/* var listnode1: nullable Object */;
1430 short int var4
/* : Bool */;
1433 val
* var_ptypenode2
/* var ptypenode2: nullable Object */;
1434 val
* var5
/* : Array[Object] */;
1435 val
* var6
/* : null */;
1436 short int var7
/* : Bool */;
1437 long var8
/* : Int */;
1438 long var9
/* : Int */;
1441 var_node_list
= var
;
1442 var1
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_parser__Parser__pop
]))(var_p
) /* pop on <var_p:Parser>*/;
1443 var_nodearraylist2
= var1
;
1444 var2
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_parser__Parser__pop
]))(var_p
) /* pop on <var_p:Parser>*/;
1445 var_nodearraylist1
= var2
;
1446 var3
= NEW_array__Array(&type_array__Arraykernel__Object
);
1447 ((void (*)(val
*))(var3
->class->vft
[COLOR_array__Array__init
]))(var3
) /* init on <var3:Array[Object]>*/;
1448 CHECK_NEW_array__Array(var3
);
1449 var_listnode3
= var3
;
1450 var_listnode1
= var_nodearraylist1
;
1451 /* <var_listnode1:nullable Object> isa Array[Object] */
1452 cltype
= type_array__Arraykernel__Object
.color
;
1453 idtype
= type_array__Arraykernel__Object
.id
;
1454 if(var_listnode1
== NULL
) {
1457 if(cltype
>= var_listnode1
->type
->table_size
) {
1460 var4
= var_listnode1
->type
->type_table
[cltype
] == idtype
;
1464 fprintf(stderr
, "Runtime error: %s", "Assert failed");
1465 fprintf(stderr
, " (%s:%d)\n", "src/parser/parser.nit", 29537);
1468 var_ptypenode2
= var_nodearraylist2
;
1469 var5
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_parser__ReduceAction__concat
]))(self
, var_listnode3
, var_listnode1
) /* concat on <self:ReduceAction1557>*/;
1470 var_listnode3
= var5
;
1472 if (var_ptypenode2
== NULL
) {
1473 var7
= 0; /* is null */
1475 var7
= 1; /* arg is null and recv is not */
1478 ((void (*)(val
*, val
*))(var_listnode3
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_listnode3
, var_ptypenode2
) /* add on <var_listnode3:Array[Object]>*/;
1481 var_node_list
= var_listnode3
;
1482 var8
= self
->attrs
[COLOR_parser__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction1557> */
1483 var9
= ((long (*)(val
*, long))(var_p
->class->vft
[COLOR_parser__Parser__go_to
]))(var_p
, var8
) /* go_to on <var_p:Parser>*/;
1484 ((void (*)(val
*, long, val
*))(var_p
->class->vft
[COLOR_parser__Parser__push
]))(var_p
, var9
, var_node_list
) /* push on <var_p:Parser>*/;
1487 /* method parser#ReduceAction1557#action for (self: Object, Parser) */
1488 void VIRTUAL_parser__ReduceAction1557__action(val
* self
, val
* p0
) {
1489 parser__ReduceAction1557__action(self
, p0
);
1492 /* method parser#ReduceAction1558#action for (self: ReduceAction1558, Parser) */
1493 void parser__ReduceAction1558__action(val
* self
, val
* p0
) {
1494 val
* var_p
/* var p: Parser */;
1495 val
* var
/* : null */;
1496 val
* var_node_list
/* var node_list: nullable Object */;
1497 val
* var1
/* : nullable Object */;
1498 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
1499 val
* var2
/* : Array[Object] */;
1500 val
* var_listnode2
/* var listnode2: Array[Object] */;
1501 val
* var_pexprnode1
/* var pexprnode1: nullable Object */;
1502 val
* var3
/* : null */;
1503 short int var4
/* : Bool */;
1504 long var5
/* : Int */;
1505 long var6
/* : Int */;
1508 var_node_list
= var
;
1509 var1
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_parser__Parser__pop
]))(var_p
) /* pop on <var_p:Parser>*/;
1510 var_nodearraylist1
= var1
;
1511 var2
= NEW_array__Array(&type_array__Arraykernel__Object
);
1512 ((void (*)(val
*))(var2
->class->vft
[COLOR_array__Array__init
]))(var2
) /* init on <var2:Array[Object]>*/;
1513 CHECK_NEW_array__Array(var2
);
1514 var_listnode2
= var2
;
1515 var_pexprnode1
= var_nodearraylist1
;
1517 if (var_pexprnode1
== NULL
) {
1518 var4
= 0; /* is null */
1520 var4
= 1; /* arg is null and recv is not */
1523 ((void (*)(val
*, val
*))(var_listnode2
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_listnode2
, var_pexprnode1
) /* add on <var_listnode2:Array[Object]>*/;
1526 var_node_list
= var_listnode2
;
1527 var5
= self
->attrs
[COLOR_parser__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction1558> */
1528 var6
= ((long (*)(val
*, long))(var_p
->class->vft
[COLOR_parser__Parser__go_to
]))(var_p
, var5
) /* go_to on <var_p:Parser>*/;
1529 ((void (*)(val
*, long, val
*))(var_p
->class->vft
[COLOR_parser__Parser__push
]))(var_p
, var6
, var_node_list
) /* push on <var_p:Parser>*/;
1532 /* method parser#ReduceAction1558#action for (self: Object, Parser) */
1533 void VIRTUAL_parser__ReduceAction1558__action(val
* self
, val
* p0
) {
1534 parser__ReduceAction1558__action(self
, p0
);
1537 /* method parser#ReduceAction1559#action for (self: ReduceAction1559, Parser) */
1538 void parser__ReduceAction1559__action(val
* self
, val
* p0
) {
1539 val
* var_p
/* var p: Parser */;
1540 val
* var
/* : null */;
1541 val
* var_node_list
/* var node_list: nullable Object */;
1542 val
* var1
/* : nullable Object */;
1543 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
1544 val
* var2
/* : nullable Object */;
1545 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
1546 val
* var3
/* : Array[Object] */;
1547 val
* var_listnode3
/* var listnode3: Array[Object] */;
1548 val
* var_listnode1
/* var listnode1: nullable Object */;
1549 short int var4
/* : Bool */;
1552 val
* var_pexprnode2
/* var pexprnode2: nullable Object */;
1553 val
* var5
/* : Array[Object] */;
1554 val
* var6
/* : null */;
1555 short int var7
/* : Bool */;
1556 long var8
/* : Int */;
1557 long var9
/* : Int */;
1560 var_node_list
= var
;
1561 var1
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_parser__Parser__pop
]))(var_p
) /* pop on <var_p:Parser>*/;
1562 var_nodearraylist2
= var1
;
1563 var2
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_parser__Parser__pop
]))(var_p
) /* pop on <var_p:Parser>*/;
1564 var_nodearraylist1
= var2
;
1565 var3
= NEW_array__Array(&type_array__Arraykernel__Object
);
1566 ((void (*)(val
*))(var3
->class->vft
[COLOR_array__Array__init
]))(var3
) /* init on <var3:Array[Object]>*/;
1567 CHECK_NEW_array__Array(var3
);
1568 var_listnode3
= var3
;
1569 var_listnode1
= var_nodearraylist1
;
1570 /* <var_listnode1:nullable Object> isa Array[Object] */
1571 cltype
= type_array__Arraykernel__Object
.color
;
1572 idtype
= type_array__Arraykernel__Object
.id
;
1573 if(var_listnode1
== NULL
) {
1576 if(cltype
>= var_listnode1
->type
->table_size
) {
1579 var4
= var_listnode1
->type
->type_table
[cltype
] == idtype
;
1583 fprintf(stderr
, "Runtime error: %s", "Assert failed");
1584 fprintf(stderr
, " (%s:%d)\n", "src/parser/parser.nit", 29571);
1587 var_pexprnode2
= var_nodearraylist2
;
1588 var5
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_parser__ReduceAction__concat
]))(self
, var_listnode3
, var_listnode1
) /* concat on <self:ReduceAction1559>*/;
1589 var_listnode3
= var5
;
1591 if (var_pexprnode2
== NULL
) {
1592 var7
= 0; /* is null */
1594 var7
= 1; /* arg is null and recv is not */
1597 ((void (*)(val
*, val
*))(var_listnode3
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_listnode3
, var_pexprnode2
) /* add on <var_listnode3:Array[Object]>*/;
1600 var_node_list
= var_listnode3
;
1601 var8
= self
->attrs
[COLOR_parser__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction1559> */
1602 var9
= ((long (*)(val
*, long))(var_p
->class->vft
[COLOR_parser__Parser__go_to
]))(var_p
, var8
) /* go_to on <var_p:Parser>*/;
1603 ((void (*)(val
*, long, val
*))(var_p
->class->vft
[COLOR_parser__Parser__push
]))(var_p
, var9
, var_node_list
) /* push on <var_p:Parser>*/;
1606 /* method parser#ReduceAction1559#action for (self: Object, Parser) */
1607 void VIRTUAL_parser__ReduceAction1559__action(val
* self
, val
* p0
) {
1608 parser__ReduceAction1559__action(self
, p0
);
1611 /* method parser#ReduceAction1560#action for (self: ReduceAction1560, Parser) */
1612 void parser__ReduceAction1560__action(val
* self
, val
* p0
) {
1613 val
* var_p
/* var p: Parser */;
1614 val
* var
/* : null */;
1615 val
* var_node_list
/* var node_list: nullable Object */;
1616 val
* var1
/* : nullable Object */;
1617 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
1618 val
* var2
/* : Array[Object] */;
1619 val
* var_listnode2
/* var listnode2: Array[Object] */;
1620 val
* var_listnode1
/* var listnode1: nullable Object */;
1621 short int var3
/* : Bool */;
1624 val
* var4
/* : Array[Object] */;
1625 long var5
/* : Int */;
1626 long var6
/* : Int */;
1629 var_node_list
= var
;
1630 var1
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_parser__Parser__pop
]))(var_p
) /* pop on <var_p:Parser>*/;
1631 var_nodearraylist1
= var1
;
1632 var2
= NEW_array__Array(&type_array__Arraykernel__Object
);
1633 ((void (*)(val
*))(var2
->class->vft
[COLOR_array__Array__init
]))(var2
) /* init on <var2:Array[Object]>*/;
1634 CHECK_NEW_array__Array(var2
);
1635 var_listnode2
= var2
;
1636 var_listnode1
= var_nodearraylist1
;
1637 /* <var_listnode1:nullable Object> isa Array[Object] */
1638 cltype
= type_array__Arraykernel__Object
.color
;
1639 idtype
= type_array__Arraykernel__Object
.id
;
1640 if(var_listnode1
== NULL
) {
1643 if(cltype
>= var_listnode1
->type
->table_size
) {
1646 var3
= var_listnode1
->type
->type_table
[cltype
] == idtype
;
1650 fprintf(stderr
, "Runtime error: %s", "Assert failed");
1651 fprintf(stderr
, " (%s:%d)\n", "src/parser/parser.nit", 29589);
1654 var4
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_parser__ReduceAction__concat
]))(self
, var_listnode2
, var_listnode1
) /* concat on <self:ReduceAction1560>*/;
1655 var_listnode2
= var4
;
1656 var_node_list
= var_listnode2
;
1657 var5
= self
->attrs
[COLOR_parser__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction1560> */
1658 var6
= ((long (*)(val
*, long))(var_p
->class->vft
[COLOR_parser__Parser__go_to
]))(var_p
, var5
) /* go_to on <var_p:Parser>*/;
1659 ((void (*)(val
*, long, val
*))(var_p
->class->vft
[COLOR_parser__Parser__push
]))(var_p
, var6
, var_node_list
) /* push on <var_p:Parser>*/;
1662 /* method parser#ReduceAction1560#action for (self: Object, Parser) */
1663 void VIRTUAL_parser__ReduceAction1560__action(val
* self
, val
* p0
) {
1664 parser__ReduceAction1560__action(self
, p0
);
1667 /* method parser#ReduceAction1561#action for (self: ReduceAction1561, Parser) */
1668 void parser__ReduceAction1561__action(val
* self
, val
* p0
) {
1669 val
* var_p
/* var p: Parser */;
1670 val
* var
/* : null */;
1671 val
* var_node_list
/* var node_list: nullable Object */;
1672 val
* var1
/* : nullable Object */;
1673 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
1674 val
* var2
/* : nullable Object */;
1675 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
1676 val
* var3
/* : Array[Object] */;
1677 val
* var_listnode3
/* var listnode3: Array[Object] */;
1678 val
* var_listnode1
/* var listnode1: nullable Object */;
1679 short int var4
/* : Bool */;
1682 val
* var_listnode2
/* var listnode2: nullable Object */;
1683 short int var5
/* : Bool */;
1686 val
* var8
/* : Array[Object] */;
1687 val
* var9
/* : Array[Object] */;
1688 long var10
/* : Int */;
1689 long var11
/* : Int */;
1692 var_node_list
= var
;
1693 var1
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_parser__Parser__pop
]))(var_p
) /* pop on <var_p:Parser>*/;
1694 var_nodearraylist2
= var1
;
1695 var2
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_parser__Parser__pop
]))(var_p
) /* pop on <var_p:Parser>*/;
1696 var_nodearraylist1
= var2
;
1697 var3
= NEW_array__Array(&type_array__Arraykernel__Object
);
1698 ((void (*)(val
*))(var3
->class->vft
[COLOR_array__Array__init
]))(var3
) /* init on <var3:Array[Object]>*/;
1699 CHECK_NEW_array__Array(var3
);
1700 var_listnode3
= var3
;
1701 var_listnode1
= var_nodearraylist1
;
1702 /* <var_listnode1:nullable Object> isa Array[Object] */
1703 cltype
= type_array__Arraykernel__Object
.color
;
1704 idtype
= type_array__Arraykernel__Object
.id
;
1705 if(var_listnode1
== NULL
) {
1708 if(cltype
>= var_listnode1
->type
->table_size
) {
1711 var4
= var_listnode1
->type
->type_table
[cltype
] == idtype
;
1715 fprintf(stderr
, "Runtime error: %s", "Assert failed");
1716 fprintf(stderr
, " (%s:%d)\n", "src/parser/parser.nit", 29604);
1719 var_listnode2
= var_nodearraylist2
;
1720 /* <var_listnode2:nullable Object> isa Array[Object] */
1721 cltype6
= type_array__Arraykernel__Object
.color
;
1722 idtype7
= type_array__Arraykernel__Object
.id
;
1723 if(var_listnode2
== NULL
) {
1726 if(cltype6
>= var_listnode2
->type
->table_size
) {
1729 var5
= var_listnode2
->type
->type_table
[cltype6
] == idtype7
;
1733 fprintf(stderr
, "Runtime error: %s", "Assert failed");
1734 fprintf(stderr
, " (%s:%d)\n", "src/parser/parser.nit", 29606);
1737 var8
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_parser__ReduceAction__concat
]))(self
, var_listnode3
, var_listnode1
) /* concat on <self:ReduceAction1561>*/;
1738 var_listnode3
= var8
;
1739 var9
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_parser__ReduceAction__concat
]))(self
, var_listnode3
, var_listnode2
) /* concat on <self:ReduceAction1561>*/;
1740 var_listnode3
= var9
;
1741 var_node_list
= var_listnode3
;
1742 var10
= self
->attrs
[COLOR_parser__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction1561> */
1743 var11
= ((long (*)(val
*, long))(var_p
->class->vft
[COLOR_parser__Parser__go_to
]))(var_p
, var10
) /* go_to on <var_p:Parser>*/;
1744 ((void (*)(val
*, long, val
*))(var_p
->class->vft
[COLOR_parser__Parser__push
]))(var_p
, var11
, var_node_list
) /* push on <var_p:Parser>*/;
1747 /* method parser#ReduceAction1561#action for (self: Object, Parser) */
1748 void VIRTUAL_parser__ReduceAction1561__action(val
* self
, val
* p0
) {
1749 parser__ReduceAction1561__action(self
, p0
);
1752 /* method parser#ReduceAction1563#action for (self: ReduceAction1563, Parser) */
1753 void parser__ReduceAction1563__action(val
* self
, val
* p0
) {
1754 val
* var_p
/* var p: Parser */;
1755 val
* var
/* : null */;
1756 val
* var_node_list
/* var node_list: nullable Object */;
1757 val
* var1
/* : nullable Object */;
1758 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
1759 val
* var2
/* : nullable Object */;
1760 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
1761 val
* var3
/* : Array[Object] */;
1762 val
* var_listnode3
/* var listnode3: Array[Object] */;
1763 val
* var_listnode1
/* var listnode1: nullable Object */;
1764 short int var4
/* : Bool */;
1767 val
* var_pannotationnode2
/* var pannotationnode2: nullable Object */;
1768 val
* var5
/* : Array[Object] */;
1769 val
* var6
/* : null */;
1770 short int var7
/* : Bool */;
1771 long var8
/* : Int */;
1772 long var9
/* : Int */;
1775 var_node_list
= var
;
1776 var1
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_parser__Parser__pop
]))(var_p
) /* pop on <var_p:Parser>*/;
1777 var_nodearraylist2
= var1
;
1778 var2
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_parser__Parser__pop
]))(var_p
) /* pop on <var_p:Parser>*/;
1779 var_nodearraylist1
= var2
;
1780 var3
= NEW_array__Array(&type_array__Arraykernel__Object
);
1781 ((void (*)(val
*))(var3
->class->vft
[COLOR_array__Array__init
]))(var3
) /* init on <var3:Array[Object]>*/;
1782 CHECK_NEW_array__Array(var3
);
1783 var_listnode3
= var3
;
1784 var_listnode1
= var_nodearraylist1
;
1785 /* <var_listnode1:nullable Object> isa Array[Object] */
1786 cltype
= type_array__Arraykernel__Object
.color
;
1787 idtype
= type_array__Arraykernel__Object
.id
;
1788 if(var_listnode1
== NULL
) {
1791 if(cltype
>= var_listnode1
->type
->table_size
) {
1794 var4
= var_listnode1
->type
->type_table
[cltype
] == idtype
;
1798 fprintf(stderr
, "Runtime error: %s", "Assert failed");
1799 fprintf(stderr
, " (%s:%d)\n", "src/parser/parser.nit", 29622);
1802 var_pannotationnode2
= var_nodearraylist2
;
1803 var5
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_parser__ReduceAction__concat
]))(self
, var_listnode3
, var_listnode1
) /* concat on <self:ReduceAction1563>*/;
1804 var_listnode3
= var5
;
1806 if (var_pannotationnode2
== NULL
) {
1807 var7
= 0; /* is null */
1809 var7
= 1; /* arg is null and recv is not */
1812 ((void (*)(val
*, val
*))(var_listnode3
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_listnode3
, var_pannotationnode2
) /* add on <var_listnode3:Array[Object]>*/;
1815 var_node_list
= var_listnode3
;
1816 var8
= self
->attrs
[COLOR_parser__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction1563> */
1817 var9
= ((long (*)(val
*, long))(var_p
->class->vft
[COLOR_parser__Parser__go_to
]))(var_p
, var8
) /* go_to on <var_p:Parser>*/;
1818 ((void (*)(val
*, long, val
*))(var_p
->class->vft
[COLOR_parser__Parser__push
]))(var_p
, var9
, var_node_list
) /* push on <var_p:Parser>*/;
1821 /* method parser#ReduceAction1563#action for (self: Object, Parser) */
1822 void VIRTUAL_parser__ReduceAction1563__action(val
* self
, val
* p0
) {
1823 parser__ReduceAction1563__action(self
, p0
);
1826 /* method parser#ReduceAction1567#action for (self: ReduceAction1567, Parser) */
1827 void parser__ReduceAction1567__action(val
* self
, val
* p0
) {
1828 val
* var_p
/* var p: Parser */;
1829 val
* var
/* : null */;
1830 val
* var_node_list
/* var node_list: nullable Object */;
1831 val
* var1
/* : nullable Object */;
1832 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
1833 val
* var2
/* : nullable Object */;
1834 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
1835 val
* var3
/* : Array[Object] */;
1836 val
* var_listnode3
/* var listnode3: Array[Object] */;
1837 val
* var_listnode1
/* var listnode1: nullable Object */;
1838 short int var4
/* : Bool */;
1841 val
* var_patargnode2
/* var patargnode2: nullable Object */;
1842 val
* var5
/* : Array[Object] */;
1843 val
* var6
/* : null */;
1844 short int var7
/* : Bool */;
1845 long var8
/* : Int */;
1846 long var9
/* : Int */;
1849 var_node_list
= var
;
1850 var1
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_parser__Parser__pop
]))(var_p
) /* pop on <var_p:Parser>*/;
1851 var_nodearraylist2
= var1
;
1852 var2
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_parser__Parser__pop
]))(var_p
) /* pop on <var_p:Parser>*/;
1853 var_nodearraylist1
= var2
;
1854 var3
= NEW_array__Array(&type_array__Arraykernel__Object
);
1855 ((void (*)(val
*))(var3
->class->vft
[COLOR_array__Array__init
]))(var3
) /* init on <var3:Array[Object]>*/;
1856 CHECK_NEW_array__Array(var3
);
1857 var_listnode3
= var3
;
1858 var_listnode1
= var_nodearraylist1
;
1859 /* <var_listnode1:nullable Object> isa Array[Object] */
1860 cltype
= type_array__Arraykernel__Object
.color
;
1861 idtype
= type_array__Arraykernel__Object
.id
;
1862 if(var_listnode1
== NULL
) {
1865 if(cltype
>= var_listnode1
->type
->table_size
) {
1868 var4
= var_listnode1
->type
->type_table
[cltype
] == idtype
;
1872 fprintf(stderr
, "Runtime error: %s", "Assert failed");
1873 fprintf(stderr
, " (%s:%d)\n", "src/parser/parser.nit", 29641);
1876 var_patargnode2
= var_nodearraylist2
;
1877 var5
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_parser__ReduceAction__concat
]))(self
, var_listnode3
, var_listnode1
) /* concat on <self:ReduceAction1567>*/;
1878 var_listnode3
= var5
;
1880 if (var_patargnode2
== NULL
) {
1881 var7
= 0; /* is null */
1883 var7
= 1; /* arg is null and recv is not */
1886 ((void (*)(val
*, val
*))(var_listnode3
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_listnode3
, var_patargnode2
) /* add on <var_listnode3:Array[Object]>*/;
1889 var_node_list
= var_listnode3
;
1890 var8
= self
->attrs
[COLOR_parser__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction1567> */
1891 var9
= ((long (*)(val
*, long))(var_p
->class->vft
[COLOR_parser__Parser__go_to
]))(var_p
, var8
) /* go_to on <var_p:Parser>*/;
1892 ((void (*)(val
*, long, val
*))(var_p
->class->vft
[COLOR_parser__Parser__push
]))(var_p
, var9
, var_node_list
) /* push on <var_p:Parser>*/;
1895 /* method parser#ReduceAction1567#action for (self: Object, Parser) */
1896 void VIRTUAL_parser__ReduceAction1567__action(val
* self
, val
* p0
) {
1897 parser__ReduceAction1567__action(self
, p0
);
1900 /* method parser#ReduceAction1571#action for (self: ReduceAction1571, Parser) */
1901 void parser__ReduceAction1571__action(val
* self
, val
* p0
) {
1902 val
* var_p
/* var p: Parser */;
1903 val
* var
/* : null */;
1904 val
* var_node_list
/* var node_list: nullable Object */;
1905 val
* var1
/* : nullable Object */;
1906 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
1907 val
* var2
/* : nullable Object */;
1908 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
1909 val
* var3
/* : Array[Object] */;
1910 val
* var_listnode3
/* var listnode3: Array[Object] */;
1911 val
* var_listnode1
/* var listnode1: nullable Object */;
1912 short int var4
/* : Bool */;
1915 val
* var_tidnode2
/* var tidnode2: nullable Object */;
1916 val
* var5
/* : Array[Object] */;
1917 val
* var6
/* : null */;
1918 short int var7
/* : Bool */;
1919 long var8
/* : Int */;
1920 long var9
/* : Int */;
1923 var_node_list
= var
;
1924 var1
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_parser__Parser__pop
]))(var_p
) /* pop on <var_p:Parser>*/;
1925 var_nodearraylist2
= var1
;
1926 var2
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_parser__Parser__pop
]))(var_p
) /* pop on <var_p:Parser>*/;
1927 var_nodearraylist1
= var2
;
1928 var3
= NEW_array__Array(&type_array__Arraykernel__Object
);
1929 ((void (*)(val
*))(var3
->class->vft
[COLOR_array__Array__init
]))(var3
) /* init on <var3:Array[Object]>*/;
1930 CHECK_NEW_array__Array(var3
);
1931 var_listnode3
= var3
;
1932 var_listnode1
= var_nodearraylist1
;
1933 /* <var_listnode1:nullable Object> isa Array[Object] */
1934 cltype
= type_array__Arraykernel__Object
.color
;
1935 idtype
= type_array__Arraykernel__Object
.id
;
1936 if(var_listnode1
== NULL
) {
1939 if(cltype
>= var_listnode1
->type
->table_size
) {
1942 var4
= var_listnode1
->type
->type_table
[cltype
] == idtype
;
1946 fprintf(stderr
, "Runtime error: %s", "Assert failed");
1947 fprintf(stderr
, " (%s:%d)\n", "src/parser/parser.nit", 29660);
1950 var_tidnode2
= var_nodearraylist2
;
1951 var5
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_parser__ReduceAction__concat
]))(self
, var_listnode3
, var_listnode1
) /* concat on <self:ReduceAction1571>*/;
1952 var_listnode3
= var5
;
1954 if (var_tidnode2
== NULL
) {
1955 var7
= 0; /* is null */
1957 var7
= 1; /* arg is null and recv is not */
1960 ((void (*)(val
*, val
*))(var_listnode3
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_listnode3
, var_tidnode2
) /* add on <var_listnode3:Array[Object]>*/;
1963 var_node_list
= var_listnode3
;
1964 var8
= self
->attrs
[COLOR_parser__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction1571> */
1965 var9
= ((long (*)(val
*, long))(var_p
->class->vft
[COLOR_parser__Parser__go_to
]))(var_p
, var8
) /* go_to on <var_p:Parser>*/;
1966 ((void (*)(val
*, long, val
*))(var_p
->class->vft
[COLOR_parser__Parser__push
]))(var_p
, var9
, var_node_list
) /* push on <var_p:Parser>*/;
1969 /* method parser#ReduceAction1571#action for (self: Object, Parser) */
1970 void VIRTUAL_parser__ReduceAction1571__action(val
* self
, val
* p0
) {
1971 parser__ReduceAction1571__action(self
, p0
);
1974 /* method parser#ReduceAction1572#action for (self: ReduceAction1572, Parser) */
1975 void parser__ReduceAction1572__action(val
* self
, val
* p0
) {
1976 val
* var_p
/* var p: Parser */;
1977 val
* var
/* : null */;
1978 val
* var_node_list
/* var node_list: nullable Object */;
1979 val
* var1
/* : nullable Object */;
1980 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
1981 val
* var2
/* : Array[Object] */;
1982 val
* var_listnode2
/* var listnode2: Array[Object] */;
1983 val
* var_tcommentnode1
/* var tcommentnode1: nullable Object */;
1984 val
* var3
/* : null */;
1985 short int var4
/* : Bool */;
1986 long var5
/* : Int */;
1987 long var6
/* : Int */;
1990 var_node_list
= var
;
1991 var1
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_parser__Parser__pop
]))(var_p
) /* pop on <var_p:Parser>*/;
1992 var_nodearraylist1
= var1
;
1993 var2
= NEW_array__Array(&type_array__Arraykernel__Object
);
1994 ((void (*)(val
*))(var2
->class->vft
[COLOR_array__Array__init
]))(var2
) /* init on <var2:Array[Object]>*/;
1995 CHECK_NEW_array__Array(var2
);
1996 var_listnode2
= var2
;
1997 var_tcommentnode1
= var_nodearraylist1
;
1999 if (var_tcommentnode1
== NULL
) {
2000 var4
= 0; /* is null */
2002 var4
= 1; /* arg is null and recv is not */
2005 ((void (*)(val
*, val
*))(var_listnode2
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_listnode2
, var_tcommentnode1
) /* add on <var_listnode2:Array[Object]>*/;
2008 var_node_list
= var_listnode2
;
2009 var5
= self
->attrs
[COLOR_parser__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction1572> */
2010 var6
= ((long (*)(val
*, long))(var_p
->class->vft
[COLOR_parser__Parser__go_to
]))(var_p
, var5
) /* go_to on <var_p:Parser>*/;
2011 ((void (*)(val
*, long, val
*))(var_p
->class->vft
[COLOR_parser__Parser__push
]))(var_p
, var6
, var_node_list
) /* push on <var_p:Parser>*/;
2014 /* method parser#ReduceAction1572#action for (self: Object, Parser) */
2015 void VIRTUAL_parser__ReduceAction1572__action(val
* self
, val
* p0
) {
2016 parser__ReduceAction1572__action(self
, p0
);
2019 /* method parser#ReduceAction1573#action for (self: ReduceAction1573, Parser) */
2020 void parser__ReduceAction1573__action(val
* self
, val
* p0
) {
2021 val
* var_p
/* var p: Parser */;
2022 val
* var
/* : null */;
2023 val
* var_node_list
/* var node_list: nullable Object */;
2024 val
* var1
/* : nullable Object */;
2025 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
2026 val
* var2
/* : nullable Object */;
2027 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
2028 val
* var3
/* : Array[Object] */;
2029 val
* var_listnode3
/* var listnode3: Array[Object] */;
2030 val
* var_listnode1
/* var listnode1: nullable Object */;
2031 short int var4
/* : Bool */;
2034 val
* var_tcommentnode2
/* var tcommentnode2: nullable Object */;
2035 val
* var5
/* : Array[Object] */;
2036 val
* var6
/* : null */;
2037 short int var7
/* : Bool */;
2038 long var8
/* : Int */;
2039 long var9
/* : Int */;
2042 var_node_list
= var
;
2043 var1
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_parser__Parser__pop
]))(var_p
) /* pop on <var_p:Parser>*/;
2044 var_nodearraylist2
= var1
;
2045 var2
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_parser__Parser__pop
]))(var_p
) /* pop on <var_p:Parser>*/;
2046 var_nodearraylist1
= var2
;
2047 var3
= NEW_array__Array(&type_array__Arraykernel__Object
);
2048 ((void (*)(val
*))(var3
->class->vft
[COLOR_array__Array__init
]))(var3
) /* init on <var3:Array[Object]>*/;
2049 CHECK_NEW_array__Array(var3
);
2050 var_listnode3
= var3
;
2051 var_listnode1
= var_nodearraylist1
;
2052 /* <var_listnode1:nullable Object> isa Array[Object] */
2053 cltype
= type_array__Arraykernel__Object
.color
;
2054 idtype
= type_array__Arraykernel__Object
.id
;
2055 if(var_listnode1
== NULL
) {
2058 if(cltype
>= var_listnode1
->type
->table_size
) {
2061 var4
= var_listnode1
->type
->type_table
[cltype
] == idtype
;
2065 fprintf(stderr
, "Runtime error: %s", "Assert failed");
2066 fprintf(stderr
, " (%s:%d)\n", "src/parser/parser.nit", 29694);
2069 var_tcommentnode2
= var_nodearraylist2
;
2070 var5
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_parser__ReduceAction__concat
]))(self
, var_listnode3
, var_listnode1
) /* concat on <self:ReduceAction1573>*/;
2071 var_listnode3
= var5
;
2073 if (var_tcommentnode2
== NULL
) {
2074 var7
= 0; /* is null */
2076 var7
= 1; /* arg is null and recv is not */
2079 ((void (*)(val
*, val
*))(var_listnode3
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_listnode3
, var_tcommentnode2
) /* add on <var_listnode3:Array[Object]>*/;
2082 var_node_list
= var_listnode3
;
2083 var8
= self
->attrs
[COLOR_parser__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction1573> */
2084 var9
= ((long (*)(val
*, long))(var_p
->class->vft
[COLOR_parser__Parser__go_to
]))(var_p
, var8
) /* go_to on <var_p:Parser>*/;
2085 ((void (*)(val
*, long, val
*))(var_p
->class->vft
[COLOR_parser__Parser__push
]))(var_p
, var9
, var_node_list
) /* push on <var_p:Parser>*/;
2088 /* method parser#ReduceAction1573#action for (self: Object, Parser) */
2089 void VIRTUAL_parser__ReduceAction1573__action(val
* self
, val
* p0
) {
2090 parser__ReduceAction1573__action(self
, p0
);
2093 /* method parser#ReduceAction1574#action for (self: ReduceAction1574, Parser) */
2094 void parser__ReduceAction1574__action(val
* self
, val
* p0
) {
2095 val
* var_p
/* var p: Parser */;
2096 val
* var
/* : null */;
2097 val
* var_node_list
/* var node_list: nullable Object */;
2098 val
* var1
/* : nullable Object */;
2099 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
2100 val
* var2
/* : Array[Object] */;
2101 val
* var_listnode2
/* var listnode2: Array[Object] */;
2102 val
* var_teolnode1
/* var teolnode1: nullable Object */;
2103 val
* var3
/* : null */;
2104 short int var4
/* : Bool */;
2105 long var5
/* : Int */;
2106 long var6
/* : Int */;
2109 var_node_list
= var
;
2110 var1
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_parser__Parser__pop
]))(var_p
) /* pop on <var_p:Parser>*/;
2111 var_nodearraylist1
= var1
;
2112 var2
= NEW_array__Array(&type_array__Arraykernel__Object
);
2113 ((void (*)(val
*))(var2
->class->vft
[COLOR_array__Array__init
]))(var2
) /* init on <var2:Array[Object]>*/;
2114 CHECK_NEW_array__Array(var2
);
2115 var_listnode2
= var2
;
2116 var_teolnode1
= var_nodearraylist1
;
2118 if (var_teolnode1
== NULL
) {
2119 var4
= 0; /* is null */
2121 var4
= 1; /* arg is null and recv is not */
2124 ((void (*)(val
*, val
*))(var_listnode2
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_listnode2
, var_teolnode1
) /* add on <var_listnode2:Array[Object]>*/;
2127 var_node_list
= var_listnode2
;
2128 var5
= self
->attrs
[COLOR_parser__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction1574> */
2129 var6
= ((long (*)(val
*, long))(var_p
->class->vft
[COLOR_parser__Parser__go_to
]))(var_p
, var5
) /* go_to on <var_p:Parser>*/;
2130 ((void (*)(val
*, long, val
*))(var_p
->class->vft
[COLOR_parser__Parser__push
]))(var_p
, var6
, var_node_list
) /* push on <var_p:Parser>*/;
2133 /* method parser#ReduceAction1574#action for (self: Object, Parser) */
2134 void VIRTUAL_parser__ReduceAction1574__action(val
* self
, val
* p0
) {
2135 parser__ReduceAction1574__action(self
, p0
);
2138 /* method parser#ReduceAction1575#action for (self: ReduceAction1575, Parser) */
2139 void parser__ReduceAction1575__action(val
* self
, val
* p0
) {
2140 val
* var_p
/* var p: Parser */;
2141 val
* var
/* : null */;
2142 val
* var_node_list
/* var node_list: nullable Object */;
2143 val
* var1
/* : nullable Object */;
2144 val
* var_nodearraylist2
/* var nodearraylist2: nullable Object */;
2145 val
* var2
/* : nullable Object */;
2146 val
* var_nodearraylist1
/* var nodearraylist1: nullable Object */;
2147 val
* var3
/* : Array[Object] */;
2148 val
* var_listnode3
/* var listnode3: Array[Object] */;
2149 val
* var_listnode1
/* var listnode1: nullable Object */;
2150 short int var4
/* : Bool */;
2153 val
* var_teolnode2
/* var teolnode2: nullable Object */;
2154 val
* var5
/* : Array[Object] */;
2155 val
* var6
/* : null */;
2156 short int var7
/* : Bool */;
2157 long var8
/* : Int */;
2158 long var9
/* : Int */;
2161 var_node_list
= var
;
2162 var1
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_parser__Parser__pop
]))(var_p
) /* pop on <var_p:Parser>*/;
2163 var_nodearraylist2
= var1
;
2164 var2
= ((val
* (*)(val
*))(var_p
->class->vft
[COLOR_parser__Parser__pop
]))(var_p
) /* pop on <var_p:Parser>*/;
2165 var_nodearraylist1
= var2
;
2166 var3
= NEW_array__Array(&type_array__Arraykernel__Object
);
2167 ((void (*)(val
*))(var3
->class->vft
[COLOR_array__Array__init
]))(var3
) /* init on <var3:Array[Object]>*/;
2168 CHECK_NEW_array__Array(var3
);
2169 var_listnode3
= var3
;
2170 var_listnode1
= var_nodearraylist1
;
2171 /* <var_listnode1:nullable Object> isa Array[Object] */
2172 cltype
= type_array__Arraykernel__Object
.color
;
2173 idtype
= type_array__Arraykernel__Object
.id
;
2174 if(var_listnode1
== NULL
) {
2177 if(cltype
>= var_listnode1
->type
->table_size
) {
2180 var4
= var_listnode1
->type
->type_table
[cltype
] == idtype
;
2184 fprintf(stderr
, "Runtime error: %s", "Assert failed");
2185 fprintf(stderr
, " (%s:%d)\n", "src/parser/parser.nit", 29728);
2188 var_teolnode2
= var_nodearraylist2
;
2189 var5
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_parser__ReduceAction__concat
]))(self
, var_listnode3
, var_listnode1
) /* concat on <self:ReduceAction1575>*/;
2190 var_listnode3
= var5
;
2192 if (var_teolnode2
== NULL
) {
2193 var7
= 0; /* is null */
2195 var7
= 1; /* arg is null and recv is not */
2198 ((void (*)(val
*, val
*))(var_listnode3
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_listnode3
, var_teolnode2
) /* add on <var_listnode3:Array[Object]>*/;
2201 var_node_list
= var_listnode3
;
2202 var8
= self
->attrs
[COLOR_parser__ReduceAction___goto
].l
; /* _goto on <self:ReduceAction1575> */
2203 var9
= ((long (*)(val
*, long))(var_p
->class->vft
[COLOR_parser__Parser__go_to
]))(var_p
, var8
) /* go_to on <var_p:Parser>*/;
2204 ((void (*)(val
*, long, val
*))(var_p
->class->vft
[COLOR_parser__Parser__push
]))(var_p
, var9
, var_node_list
) /* push on <var_p:Parser>*/;
2207 /* method parser#ReduceAction1575#action for (self: Object, Parser) */
2208 void VIRTUAL_parser__ReduceAction1575__action(val
* self
, val
* p0
) {
2209 parser__ReduceAction1575__action(self
, p0
);