nitc: let CC, CXX and NO_STACKTRACE use env value
[nit.git] / c_src / nitc__parser.sep.7.c
1 #include "nitc__parser.sep.0.h"
2 /* method parser#ReduceAction476#action for (self: ReduceAction476, Parser) */
3 void nitc__parser___nitc__parser__ReduceAction476___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
4 val* var_p /* var p: Parser */;
5 val* var_node_list /* var node_list: nullable Object */;
6 val* var /* : nullable Object */;
7 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8 val* var1 /* : Array[Object] */;
9 val* var_listnode3 /* var listnode3: Array[Object] */;
10 val* var_listnode2 /* var listnode2: nullable Object */;
11 short int var2 /* : Bool */;
12 int cltype;
13 int idtype;
14 val* var3 /* : Array[Object] */;
15 val* var4 /* : ADoc */;
16 val* var_pdocnode1 /* var pdocnode1: nullable ADoc */;
17 long var5 /* : Int */;
18 long var6 /* : Int */;
19 var_p = p0;
20 var_node_list = ((val*)NULL);
21 {
22 var = nitc___nitc__Parser___pop(var_p);
23 }
24 var_nodearraylist1 = var;
25 var1 = NEW_core__Array(&type_core__Array__core__Object);
26 {
27 core___core__Array___core__kernel__Object__init(var1); /* Direct call array#Array#init on <var1:Array[Object]>*/
28 }
29 var_listnode3 = var1;
30 var_listnode2 = var_nodearraylist1;
31 /* <var_listnode2:nullable Object> isa Array[Object] */
32 cltype = type_core__Array__core__Object.color;
33 idtype = type_core__Array__core__Object.id;
34 if(var_listnode2 == NULL) {
35 var2 = 0;
36 } else {
37 if(cltype >= (((long)var_listnode2&3)?type_info[((long)var_listnode2&3)]:var_listnode2->type)->table_size) {
38 var2 = 0;
39 } else {
40 var2 = (((long)var_listnode2&3)?type_info[((long)var_listnode2&3)]:var_listnode2->type)->type_table[cltype] == idtype;
41 }
42 }
43 if (unlikely(!var2)) {
44 PRINT_ERROR("Runtime error: %s", "Assert failed");
45 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11877);
46 fatal_exit(1);
47 }
48 {
49 var3 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode2);
50 }
51 var_listnode3 = var3;
52 var4 = NEW_nitc__ADoc(&type_nitc__ADoc);
53 {
54 nitc__parser_prod___ADoc___init_adoc(var4, var_listnode3); /* Direct call parser_prod#ADoc#init_adoc on <var4:ADoc>*/
55 }
56 var_pdocnode1 = var4;
57 var_node_list = var_pdocnode1;
58 var5 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction476> */
59 {
60 var6 = nitc___nitc__Parser___go_to(var_p, var5);
61 }
62 {
63 nitc___nitc__Parser___push(var_p, var6, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
64 }
65 RET_LABEL:;
66 }
67 /* method parser#ReduceAction477#action for (self: ReduceAction477, Parser) */
68 void nitc__parser___nitc__parser__ReduceAction477___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
69 val* var_p /* var p: Parser */;
70 val* var_node_list /* var node_list: nullable Object */;
71 val* var /* : nullable Object */;
72 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
73 val* var1 /* : nullable Object */;
74 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
75 val* var2 /* : Array[Object] */;
76 val* var_listnode3 /* var listnode3: Array[Object] */;
77 val* var_listnode2 /* var listnode2: nullable Object */;
78 short int var3 /* : Bool */;
79 int cltype;
80 int idtype;
81 val* var4 /* : Array[Object] */;
82 val* var5 /* : ADoc */;
83 val* var_pdocnode1 /* var pdocnode1: nullable ADoc */;
84 long var6 /* : Int */;
85 long var7 /* : Int */;
86 var_p = p0;
87 var_node_list = ((val*)NULL);
88 {
89 var = nitc___nitc__Parser___pop(var_p);
90 }
91 var_nodearraylist2 = var;
92 {
93 var1 = nitc___nitc__Parser___pop(var_p);
94 }
95 var_nodearraylist1 = var1;
96 var2 = NEW_core__Array(&type_core__Array__core__Object);
97 {
98 core___core__Array___core__kernel__Object__init(var2); /* Direct call array#Array#init on <var2:Array[Object]>*/
99 }
100 var_listnode3 = var2;
101 var_listnode2 = var_nodearraylist2;
102 /* <var_listnode2:nullable Object> isa Array[Object] */
103 cltype = type_core__Array__core__Object.color;
104 idtype = type_core__Array__core__Object.id;
105 if(var_listnode2 == NULL) {
106 var3 = 0;
107 } else {
108 if(cltype >= (((long)var_listnode2&3)?type_info[((long)var_listnode2&3)]:var_listnode2->type)->table_size) {
109 var3 = 0;
110 } else {
111 var3 = (((long)var_listnode2&3)?type_info[((long)var_listnode2&3)]:var_listnode2->type)->type_table[cltype] == idtype;
112 }
113 }
114 if (unlikely(!var3)) {
115 PRINT_ERROR("Runtime error: %s", "Assert failed");
116 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11895);
117 fatal_exit(1);
118 }
119 {
120 var4 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode2);
121 }
122 var_listnode3 = var4;
123 var5 = NEW_nitc__ADoc(&type_nitc__ADoc);
124 {
125 nitc__parser_prod___ADoc___init_adoc(var5, var_listnode3); /* Direct call parser_prod#ADoc#init_adoc on <var5:ADoc>*/
126 }
127 var_pdocnode1 = var5;
128 var_node_list = var_pdocnode1;
129 var6 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction477> */
130 {
131 var7 = nitc___nitc__Parser___go_to(var_p, var6);
132 }
133 {
134 nitc___nitc__Parser___push(var_p, var7, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
135 }
136 RET_LABEL:;
137 }
138 /* method parser#ReduceAction480#action for (self: ReduceAction480, Parser) */
139 void nitc__parser___nitc__parser__ReduceAction480___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
140 val* var_p /* var p: Parser */;
141 val* var_node_list /* var node_list: nullable Object */;
142 val* var /* : nullable Object */;
143 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
144 val* var1 /* : nullable Object */;
145 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
146 long var2 /* : Int */;
147 long var3 /* : Int */;
148 var_p = p0;
149 var_node_list = ((val*)NULL);
150 {
151 var = nitc___nitc__Parser___pop(var_p);
152 }
153 var_nodearraylist2 = var;
154 {
155 var1 = nitc___nitc__Parser___pop(var_p);
156 }
157 var_nodearraylist1 = var1;
158 var_node_list = ((val*)NULL);
159 var2 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction480> */
160 {
161 var3 = nitc___nitc__Parser___go_to(var_p, var2);
162 }
163 {
164 nitc___nitc__Parser___push(var_p, var3, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
165 }
166 RET_LABEL:;
167 }
168 /* method parser#ReduceAction482#action for (self: ReduceAction482, Parser) */
169 void nitc__parser___nitc__parser__ReduceAction482___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
170 val* var_p /* var p: Parser */;
171 val* var_node_list /* var node_list: nullable Object */;
172 val* var /* : nullable Object */;
173 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
174 val* var1 /* : nullable Object */;
175 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
176 val* var2 /* : nullable Object */;
177 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
178 long var3 /* : Int */;
179 long var4 /* : Int */;
180 var_p = p0;
181 var_node_list = ((val*)NULL);
182 {
183 var = nitc___nitc__Parser___pop(var_p);
184 }
185 var_nodearraylist3 = var;
186 {
187 var1 = nitc___nitc__Parser___pop(var_p);
188 }
189 var_nodearraylist2 = var1;
190 {
191 var2 = nitc___nitc__Parser___pop(var_p);
192 }
193 var_nodearraylist1 = var2;
194 var_node_list = ((val*)NULL);
195 var3 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction482> */
196 {
197 var4 = nitc___nitc__Parser___go_to(var_p, var3);
198 }
199 {
200 nitc___nitc__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
201 }
202 RET_LABEL:;
203 }
204 /* method parser#ReduceAction483#action for (self: ReduceAction483, Parser) */
205 void nitc__parser___nitc__parser__ReduceAction483___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
206 val* var_p /* var p: Parser */;
207 val* var_node_list /* var node_list: nullable Object */;
208 val* var /* : nullable Object */;
209 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
210 val* var1 /* : nullable Object */;
211 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
212 val* var_pdocnode1 /* var pdocnode1: nullable Object */;
213 long var2 /* : Int */;
214 long var3 /* : Int */;
215 var_p = p0;
216 var_node_list = ((val*)NULL);
217 {
218 var = nitc___nitc__Parser___pop(var_p);
219 }
220 var_nodearraylist2 = var;
221 {
222 var1 = nitc___nitc__Parser___pop(var_p);
223 }
224 var_nodearraylist1 = var1;
225 var_pdocnode1 = var_nodearraylist2;
226 var_node_list = var_pdocnode1;
227 var2 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction483> */
228 {
229 var3 = nitc___nitc__Parser___go_to(var_p, var2);
230 }
231 {
232 nitc___nitc__Parser___push(var_p, var3, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
233 }
234 RET_LABEL:;
235 }
236 /* method parser#ReduceAction484#action for (self: ReduceAction484, Parser) */
237 void nitc__parser___nitc__parser__ReduceAction484___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
238 val* var_p /* var p: Parser */;
239 val* var_node_list /* var node_list: nullable Object */;
240 val* var /* : nullable Object */;
241 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
242 val* var1 /* : nullable Object */;
243 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
244 val* var2 /* : nullable Object */;
245 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
246 val* var_pdocnode1 /* var pdocnode1: nullable Object */;
247 long var3 /* : Int */;
248 long var4 /* : Int */;
249 var_p = p0;
250 var_node_list = ((val*)NULL);
251 {
252 var = nitc___nitc__Parser___pop(var_p);
253 }
254 var_nodearraylist3 = var;
255 {
256 var1 = nitc___nitc__Parser___pop(var_p);
257 }
258 var_nodearraylist2 = var1;
259 {
260 var2 = nitc___nitc__Parser___pop(var_p);
261 }
262 var_nodearraylist1 = var2;
263 var_pdocnode1 = var_nodearraylist3;
264 var_node_list = var_pdocnode1;
265 var3 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction484> */
266 {
267 var4 = nitc___nitc__Parser___go_to(var_p, var3);
268 }
269 {
270 nitc___nitc__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
271 }
272 RET_LABEL:;
273 }
274 /* method parser#ReduceAction486#action for (self: ReduceAction486, Parser) */
275 void nitc__parser___nitc__parser__ReduceAction486___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
276 val* var_p /* var p: Parser */;
277 val* var_node_list /* var node_list: nullable Object */;
278 val* var /* : nullable Object */;
279 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
280 val* var1 /* : nullable Object */;
281 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
282 val* var2 /* : nullable Object */;
283 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
284 val* var3 /* : nullable Object */;
285 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
286 val* var_pdocnode1 /* var pdocnode1: nullable Object */;
287 long var4 /* : Int */;
288 long var5 /* : Int */;
289 var_p = p0;
290 var_node_list = ((val*)NULL);
291 {
292 var = nitc___nitc__Parser___pop(var_p);
293 }
294 var_nodearraylist4 = var;
295 {
296 var1 = nitc___nitc__Parser___pop(var_p);
297 }
298 var_nodearraylist3 = var1;
299 {
300 var2 = nitc___nitc__Parser___pop(var_p);
301 }
302 var_nodearraylist2 = var2;
303 {
304 var3 = nitc___nitc__Parser___pop(var_p);
305 }
306 var_nodearraylist1 = var3;
307 var_pdocnode1 = var_nodearraylist4;
308 var_node_list = var_pdocnode1;
309 var4 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction486> */
310 {
311 var5 = nitc___nitc__Parser___go_to(var_p, var4);
312 }
313 {
314 nitc___nitc__Parser___push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
315 }
316 RET_LABEL:;
317 }
318 /* method parser#ReduceAction488#action for (self: ReduceAction488, Parser) */
319 void nitc__parser___nitc__parser__ReduceAction488___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
320 val* var_p /* var p: Parser */;
321 val* var_node_list /* var node_list: nullable Object */;
322 val* var /* : nullable Object */;
323 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
324 val* var_pdocnode1 /* var pdocnode1: nullable Object */;
325 long var1 /* : Int */;
326 long var2 /* : Int */;
327 var_p = p0;
328 var_node_list = ((val*)NULL);
329 {
330 var = nitc___nitc__Parser___pop(var_p);
331 }
332 var_nodearraylist1 = var;
333 var_pdocnode1 = var_nodearraylist1;
334 var_node_list = var_pdocnode1;
335 var1 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction488> */
336 {
337 var2 = nitc___nitc__Parser___go_to(var_p, var1);
338 }
339 {
340 nitc___nitc__Parser___push(var_p, var2, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
341 }
342 RET_LABEL:;
343 }
344 /* method parser#ReduceAction489#action for (self: ReduceAction489, Parser) */
345 void nitc__parser___nitc__parser__ReduceAction489___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
346 val* var_p /* var p: Parser */;
347 val* var_node_list /* var node_list: nullable Object */;
348 long var /* : Int */;
349 long var1 /* : Int */;
350 var_p = p0;
351 var_node_list = ((val*)NULL);
352 var = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction489> */
353 {
354 var1 = nitc___nitc__Parser___go_to(var_p, var);
355 }
356 {
357 nitc___nitc__Parser___push(var_p, var1, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
358 }
359 RET_LABEL:;
360 }
361 /* method parser#ReduceAction492#action for (self: ReduceAction492, Parser) */
362 void nitc__parser___nitc__parser__ReduceAction492___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
363 val* var_p /* var p: Parser */;
364 val* var_node_list /* var node_list: nullable Object */;
365 val* var /* : nullable Object */;
366 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
367 val* var1 /* : nullable Object */;
368 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
369 long var2 /* : Int */;
370 long var3 /* : Int */;
371 var_p = p0;
372 var_node_list = ((val*)NULL);
373 {
374 var = nitc___nitc__Parser___pop(var_p);
375 }
376 var_nodearraylist2 = var;
377 {
378 var1 = nitc___nitc__Parser___pop(var_p);
379 }
380 var_nodearraylist1 = var1;
381 var2 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction492> */
382 {
383 var3 = nitc___nitc__Parser___go_to(var_p, var2);
384 }
385 {
386 nitc___nitc__Parser___push(var_p, var3, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
387 }
388 RET_LABEL:;
389 }
390 /* method parser#ReduceAction853#action for (self: ReduceAction853, Parser) */
391 void nitc__parser___nitc__parser__ReduceAction853___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
392 val* var_p /* var p: Parser */;
393 val* var_node_list /* var node_list: nullable Object */;
394 val* var /* : nullable Object */;
395 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
396 val* var1 /* : nullable Object */;
397 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
398 val* var2 /* : nullable Object */;
399 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
400 val* var3 /* : nullable Object */;
401 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
402 val* var_tkwissetnode2 /* var tkwissetnode2: nullable Object */;
403 short int var4 /* : Bool */;
404 int cltype;
405 int idtype;
406 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
407 short int var5 /* : Bool */;
408 int cltype6;
409 int idtype7;
410 val* var_tattridnode4 /* var tattridnode4: nullable Object */;
411 short int var8 /* : Bool */;
412 int cltype9;
413 int idtype10;
414 val* var11 /* : AIssetAttrExpr */;
415 val* var_pexprnode1 /* var pexprnode1: nullable AIssetAttrExpr */;
416 long var12 /* : Int */;
417 long var13 /* : Int */;
418 var_p = p0;
419 var_node_list = ((val*)NULL);
420 {
421 var = nitc___nitc__Parser___pop(var_p);
422 }
423 var_nodearraylist4 = var;
424 {
425 var1 = nitc___nitc__Parser___pop(var_p);
426 }
427 var_nodearraylist3 = var1;
428 {
429 var2 = nitc___nitc__Parser___pop(var_p);
430 }
431 var_nodearraylist2 = var2;
432 {
433 var3 = nitc___nitc__Parser___pop(var_p);
434 }
435 var_nodearraylist1 = var3;
436 var_tkwissetnode2 = var_nodearraylist1;
437 /* <var_tkwissetnode2:nullable Object> isa nullable TKwisset */
438 cltype = type_nullable__nitc__TKwisset.color;
439 idtype = type_nullable__nitc__TKwisset.id;
440 if(var_tkwissetnode2 == NULL) {
441 var4 = 1;
442 } else {
443 if(cltype >= (((long)var_tkwissetnode2&3)?type_info[((long)var_tkwissetnode2&3)]:var_tkwissetnode2->type)->table_size) {
444 var4 = 0;
445 } else {
446 var4 = (((long)var_tkwissetnode2&3)?type_info[((long)var_tkwissetnode2&3)]:var_tkwissetnode2->type)->type_table[cltype] == idtype;
447 }
448 }
449 if (unlikely(!var4)) {
450 PRINT_ERROR("Runtime error: %s", "Assert failed");
451 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12005);
452 fatal_exit(1);
453 }
454 var_pexprnode3 = var_nodearraylist2;
455 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
456 cltype6 = type_nullable__nitc__AExpr.color;
457 idtype7 = type_nullable__nitc__AExpr.id;
458 if(var_pexprnode3 == NULL) {
459 var5 = 1;
460 } else {
461 if(cltype6 >= (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->table_size) {
462 var5 = 0;
463 } else {
464 var5 = (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->type_table[cltype6] == idtype7;
465 }
466 }
467 if (unlikely(!var5)) {
468 PRINT_ERROR("Runtime error: %s", "Assert failed");
469 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12007);
470 fatal_exit(1);
471 }
472 var_tattridnode4 = var_nodearraylist4;
473 /* <var_tattridnode4:nullable Object> isa nullable TAttrid */
474 cltype9 = type_nullable__nitc__TAttrid.color;
475 idtype10 = type_nullable__nitc__TAttrid.id;
476 if(var_tattridnode4 == NULL) {
477 var8 = 1;
478 } else {
479 if(cltype9 >= (((long)var_tattridnode4&3)?type_info[((long)var_tattridnode4&3)]:var_tattridnode4->type)->table_size) {
480 var8 = 0;
481 } else {
482 var8 = (((long)var_tattridnode4&3)?type_info[((long)var_tattridnode4&3)]:var_tattridnode4->type)->type_table[cltype9] == idtype10;
483 }
484 }
485 if (unlikely(!var8)) {
486 PRINT_ERROR("Runtime error: %s", "Assert failed");
487 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12009);
488 fatal_exit(1);
489 }
490 var11 = NEW_nitc__AIssetAttrExpr(&type_nitc__AIssetAttrExpr);
491 {
492 nitc__parser_prod___AIssetAttrExpr___init_aissetattrexpr(var11, var_tkwissetnode2, var_pexprnode3, var_tattridnode4); /* Direct call parser_prod#AIssetAttrExpr#init_aissetattrexpr on <var11:AIssetAttrExpr>*/
493 }
494 var_pexprnode1 = var11;
495 var_node_list = var_pexprnode1;
496 var12 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction853> */
497 {
498 var13 = nitc___nitc__Parser___go_to(var_p, var12);
499 }
500 {
501 nitc___nitc__Parser___push(var_p, var13, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
502 }
503 RET_LABEL:;
504 }
505 /* method parser#ReduceAction855#action for (self: ReduceAction855, Parser) */
506 void nitc__parser___nitc__parser__ReduceAction855___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
507 val* var_p /* var p: Parser */;
508 val* var_node_list /* var node_list: nullable Object */;
509 val* var /* : nullable Object */;
510 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
511 val* var1 /* : nullable Object */;
512 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
513 val* var2 /* : nullable Object */;
514 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
515 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
516 short int var3 /* : Bool */;
517 int cltype;
518 int idtype;
519 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
520 short int var4 /* : Bool */;
521 int cltype5;
522 int idtype6;
523 val* var7 /* : AAttrExpr */;
524 val* var_pexprnode1 /* var pexprnode1: nullable AAttrExpr */;
525 long var8 /* : Int */;
526 long var9 /* : Int */;
527 var_p = p0;
528 var_node_list = ((val*)NULL);
529 {
530 var = nitc___nitc__Parser___pop(var_p);
531 }
532 var_nodearraylist3 = var;
533 {
534 var1 = nitc___nitc__Parser___pop(var_p);
535 }
536 var_nodearraylist2 = var1;
537 {
538 var2 = nitc___nitc__Parser___pop(var_p);
539 }
540 var_nodearraylist1 = var2;
541 var_pexprnode2 = var_nodearraylist1;
542 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
543 cltype = type_nullable__nitc__AExpr.color;
544 idtype = type_nullable__nitc__AExpr.id;
545 if(var_pexprnode2 == NULL) {
546 var3 = 1;
547 } else {
548 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
549 var3 = 0;
550 } else {
551 var3 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
552 }
553 }
554 if (unlikely(!var3)) {
555 PRINT_ERROR("Runtime error: %s", "Assert failed");
556 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12028);
557 fatal_exit(1);
558 }
559 var_tattridnode3 = var_nodearraylist3;
560 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
561 cltype5 = type_nullable__nitc__TAttrid.color;
562 idtype6 = type_nullable__nitc__TAttrid.id;
563 if(var_tattridnode3 == NULL) {
564 var4 = 1;
565 } else {
566 if(cltype5 >= (((long)var_tattridnode3&3)?type_info[((long)var_tattridnode3&3)]:var_tattridnode3->type)->table_size) {
567 var4 = 0;
568 } else {
569 var4 = (((long)var_tattridnode3&3)?type_info[((long)var_tattridnode3&3)]:var_tattridnode3->type)->type_table[cltype5] == idtype6;
570 }
571 }
572 if (unlikely(!var4)) {
573 PRINT_ERROR("Runtime error: %s", "Assert failed");
574 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12030);
575 fatal_exit(1);
576 }
577 var7 = NEW_nitc__AAttrExpr(&type_nitc__AAttrExpr);
578 {
579 nitc__parser_prod___AAttrExpr___init_aattrexpr(var7, var_pexprnode2, var_tattridnode3); /* Direct call parser_prod#AAttrExpr#init_aattrexpr on <var7:AAttrExpr>*/
580 }
581 var_pexprnode1 = var7;
582 var_node_list = var_pexprnode1;
583 var8 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction855> */
584 {
585 var9 = nitc___nitc__Parser___go_to(var_p, var8);
586 }
587 {
588 nitc___nitc__Parser___push(var_p, var9, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
589 }
590 RET_LABEL:;
591 }
592 /* method parser#ReduceAction856#action for (self: ReduceAction856, Parser) */
593 void nitc__parser___nitc__parser__ReduceAction856___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
594 val* var_p /* var p: Parser */;
595 val* var_node_list /* var node_list: nullable Object */;
596 val* var /* : nullable Object */;
597 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
598 val* var1 /* : nullable Object */;
599 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
600 val* var2 /* : nullable Object */;
601 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
602 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
603 short int var3 /* : Bool */;
604 int cltype;
605 int idtype;
606 val* var_tidnode5 /* var tidnode5: nullable Object */;
607 short int var4 /* : Bool */;
608 int cltype5;
609 int idtype6;
610 val* var7 /* : AQid */;
611 val* var_pqidnode3 /* var pqidnode3: nullable AQid */;
612 val* var_pexprsnode6 /* var pexprsnode6: nullable Object */;
613 short int var8 /* : Bool */;
614 int cltype9;
615 int idtype10;
616 val* var11 /* : ACallExpr */;
617 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
618 long var12 /* : Int */;
619 long var13 /* : Int */;
620 var_p = p0;
621 var_node_list = ((val*)NULL);
622 {
623 var = nitc___nitc__Parser___pop(var_p);
624 }
625 var_nodearraylist3 = var;
626 {
627 var1 = nitc___nitc__Parser___pop(var_p);
628 }
629 var_nodearraylist2 = var1;
630 {
631 var2 = nitc___nitc__Parser___pop(var_p);
632 }
633 var_nodearraylist1 = var2;
634 var_pexprnode2 = var_nodearraylist1;
635 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
636 cltype = type_nullable__nitc__AExpr.color;
637 idtype = type_nullable__nitc__AExpr.id;
638 if(var_pexprnode2 == NULL) {
639 var3 = 1;
640 } else {
641 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
642 var3 = 0;
643 } else {
644 var3 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
645 }
646 }
647 if (unlikely(!var3)) {
648 PRINT_ERROR("Runtime error: %s", "Assert failed");
649 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12048);
650 fatal_exit(1);
651 }
652 var_tidnode5 = var_nodearraylist2;
653 /* <var_tidnode5:nullable Object> isa nullable TId */
654 cltype5 = type_nullable__nitc__TId.color;
655 idtype6 = type_nullable__nitc__TId.id;
656 if(var_tidnode5 == NULL) {
657 var4 = 1;
658 } else {
659 if(cltype5 >= (((long)var_tidnode5&3)?type_info[((long)var_tidnode5&3)]:var_tidnode5->type)->table_size) {
660 var4 = 0;
661 } else {
662 var4 = (((long)var_tidnode5&3)?type_info[((long)var_tidnode5&3)]:var_tidnode5->type)->type_table[cltype5] == idtype6;
663 }
664 }
665 if (unlikely(!var4)) {
666 PRINT_ERROR("Runtime error: %s", "Assert failed");
667 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12050);
668 fatal_exit(1);
669 }
670 var7 = NEW_nitc__AQid(&type_nitc__AQid);
671 {
672 nitc__parser_prod___AQid___init_aqid(var7, ((val*)NULL), var_tidnode5); /* Direct call parser_prod#AQid#init_aqid on <var7:AQid>*/
673 }
674 var_pqidnode3 = var7;
675 var_pexprsnode6 = var_nodearraylist3;
676 /* <var_pexprsnode6:nullable Object> isa nullable AExprs */
677 cltype9 = type_nullable__nitc__AExprs.color;
678 idtype10 = type_nullable__nitc__AExprs.id;
679 if(var_pexprsnode6 == NULL) {
680 var8 = 1;
681 } else {
682 if(cltype9 >= (((long)var_pexprsnode6&3)?type_info[((long)var_pexprsnode6&3)]:var_pexprsnode6->type)->table_size) {
683 var8 = 0;
684 } else {
685 var8 = (((long)var_pexprsnode6&3)?type_info[((long)var_pexprsnode6&3)]:var_pexprsnode6->type)->type_table[cltype9] == idtype10;
686 }
687 }
688 if (unlikely(!var8)) {
689 PRINT_ERROR("Runtime error: %s", "Assert failed");
690 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12056);
691 fatal_exit(1);
692 }
693 var11 = NEW_nitc__ACallExpr(&type_nitc__ACallExpr);
694 {
695 nitc__parser_prod___ACallExpr___init_acallexpr(var11, var_pexprnode2, var_pqidnode3, var_pexprsnode6); /* Direct call parser_prod#ACallExpr#init_acallexpr on <var11:ACallExpr>*/
696 }
697 var_pexprnode1 = var11;
698 var_node_list = var_pexprnode1;
699 var12 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction856> */
700 {
701 var13 = nitc___nitc__Parser___go_to(var_p, var12);
702 }
703 {
704 nitc___nitc__Parser___push(var_p, var13, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
705 }
706 RET_LABEL:;
707 }
708 /* method parser#ReduceAction857#action for (self: ReduceAction857, Parser) */
709 void nitc__parser___nitc__parser__ReduceAction857___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
710 val* var_p /* var p: Parser */;
711 val* var_node_list /* var node_list: nullable Object */;
712 val* var /* : nullable Object */;
713 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
714 val* var1 /* : nullable Object */;
715 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
716 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
717 short int var2 /* : Bool */;
718 int cltype;
719 int idtype;
720 val* var_tidnode5 /* var tidnode5: nullable Object */;
721 short int var3 /* : Bool */;
722 int cltype4;
723 int idtype5;
724 val* var6 /* : AQid */;
725 val* var_pqidnode3 /* var pqidnode3: nullable AQid */;
726 val* var7 /* : Array[Object] */;
727 val* var_listnode7 /* var listnode7: Array[Object] */;
728 val* var8 /* : AListExprs */;
729 val* var_pexprsnode6 /* var pexprsnode6: nullable AListExprs */;
730 val* var9 /* : ACallExpr */;
731 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
732 long var10 /* : Int */;
733 long var11 /* : Int */;
734 var_p = p0;
735 var_node_list = ((val*)NULL);
736 {
737 var = nitc___nitc__Parser___pop(var_p);
738 }
739 var_nodearraylist2 = var;
740 {
741 var1 = nitc___nitc__Parser___pop(var_p);
742 }
743 var_nodearraylist1 = var1;
744 var_pexprnode2 = var_nodearraylist1;
745 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
746 cltype = type_nullable__nitc__AExpr.color;
747 idtype = type_nullable__nitc__AExpr.id;
748 if(var_pexprnode2 == NULL) {
749 var2 = 1;
750 } else {
751 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
752 var2 = 0;
753 } else {
754 var2 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
755 }
756 }
757 if (unlikely(!var2)) {
758 PRINT_ERROR("Runtime error: %s", "Assert failed");
759 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12074);
760 fatal_exit(1);
761 }
762 var_tidnode5 = var_nodearraylist2;
763 /* <var_tidnode5:nullable Object> isa nullable TId */
764 cltype4 = type_nullable__nitc__TId.color;
765 idtype5 = type_nullable__nitc__TId.id;
766 if(var_tidnode5 == NULL) {
767 var3 = 1;
768 } else {
769 if(cltype4 >= (((long)var_tidnode5&3)?type_info[((long)var_tidnode5&3)]:var_tidnode5->type)->table_size) {
770 var3 = 0;
771 } else {
772 var3 = (((long)var_tidnode5&3)?type_info[((long)var_tidnode5&3)]:var_tidnode5->type)->type_table[cltype4] == idtype5;
773 }
774 }
775 if (unlikely(!var3)) {
776 PRINT_ERROR("Runtime error: %s", "Assert failed");
777 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12076);
778 fatal_exit(1);
779 }
780 var6 = NEW_nitc__AQid(&type_nitc__AQid);
781 {
782 nitc__parser_prod___AQid___init_aqid(var6, ((val*)NULL), var_tidnode5); /* Direct call parser_prod#AQid#init_aqid on <var6:AQid>*/
783 }
784 var_pqidnode3 = var6;
785 var7 = NEW_core__Array(&type_core__Array__core__Object);
786 {
787 core___core__Array___core__kernel__Object__init(var7); /* Direct call array#Array#init on <var7:Array[Object]>*/
788 }
789 var_listnode7 = var7;
790 var8 = NEW_nitc__AListExprs(&type_nitc__AListExprs);
791 {
792 nitc__parser_prod___AListExprs___init_alistexprs(var8, var_listnode7); /* Direct call parser_prod#AListExprs#init_alistexprs on <var8:AListExprs>*/
793 }
794 var_pexprsnode6 = var8;
795 var9 = NEW_nitc__ACallExpr(&type_nitc__ACallExpr);
796 {
797 nitc__parser_prod___ACallExpr___init_acallexpr(var9, var_pexprnode2, var_pqidnode3, var_pexprsnode6); /* Direct call parser_prod#ACallExpr#init_acallexpr on <var9:ACallExpr>*/
798 }
799 var_pexprnode1 = var9;
800 var_node_list = var_pexprnode1;
801 var10 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction857> */
802 {
803 var11 = nitc___nitc__Parser___go_to(var_p, var10);
804 }
805 {
806 nitc___nitc__Parser___push(var_p, var11, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
807 }
808 RET_LABEL:;
809 }
810 /* method parser#ReduceAction858#action for (self: ReduceAction858, Parser) */
811 void nitc__parser___nitc__parser__ReduceAction858___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
812 val* var_p /* var p: Parser */;
813 val* var_node_list /* var node_list: nullable Object */;
814 val* var /* : nullable Object */;
815 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
816 val* var1 /* : nullable Object */;
817 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
818 val* var2 /* : nullable Object */;
819 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
820 val* var3 /* : nullable Object */;
821 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
822 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
823 short int var4 /* : Bool */;
824 int cltype;
825 int idtype;
826 val* var5 /* : Array[Object] */;
827 val* var_listnode5 /* var listnode5: Array[Object] */;
828 val* var_tclassidnode6 /* var tclassidnode6: nullable Object */;
829 short int var6 /* : Bool */;
830 int cltype7;
831 int idtype8;
832 val* var9 /* : AQualified */;
833 val* var_pqualifiednode4 /* var pqualifiednode4: nullable AQualified */;
834 val* var_tidnode7 /* var tidnode7: nullable Object */;
835 short int var10 /* : Bool */;
836 int cltype11;
837 int idtype12;
838 val* var13 /* : AQid */;
839 val* var_pqidnode3 /* var pqidnode3: nullable AQid */;
840 val* var_pexprsnode8 /* var pexprsnode8: nullable Object */;
841 short int var14 /* : Bool */;
842 int cltype15;
843 int idtype16;
844 val* var17 /* : ACallExpr */;
845 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
846 long var18 /* : Int */;
847 long var19 /* : Int */;
848 var_p = p0;
849 var_node_list = ((val*)NULL);
850 {
851 var = nitc___nitc__Parser___pop(var_p);
852 }
853 var_nodearraylist4 = var;
854 {
855 var1 = nitc___nitc__Parser___pop(var_p);
856 }
857 var_nodearraylist3 = var1;
858 {
859 var2 = nitc___nitc__Parser___pop(var_p);
860 }
861 var_nodearraylist2 = var2;
862 {
863 var3 = nitc___nitc__Parser___pop(var_p);
864 }
865 var_nodearraylist1 = var3;
866 var_pexprnode2 = var_nodearraylist1;
867 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
868 cltype = type_nullable__nitc__AExpr.color;
869 idtype = type_nullable__nitc__AExpr.id;
870 if(var_pexprnode2 == NULL) {
871 var4 = 1;
872 } else {
873 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
874 var4 = 0;
875 } else {
876 var4 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
877 }
878 }
879 if (unlikely(!var4)) {
880 PRINT_ERROR("Runtime error: %s", "Assert failed");
881 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12104);
882 fatal_exit(1);
883 }
884 var5 = NEW_core__Array(&type_core__Array__core__Object);
885 {
886 core___core__Array___core__kernel__Object__init(var5); /* Direct call array#Array#init on <var5:Array[Object]>*/
887 }
888 var_listnode5 = var5;
889 var_tclassidnode6 = var_nodearraylist2;
890 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
891 cltype7 = type_nullable__nitc__TClassid.color;
892 idtype8 = type_nullable__nitc__TClassid.id;
893 if(var_tclassidnode6 == NULL) {
894 var6 = 1;
895 } else {
896 if(cltype7 >= (((long)var_tclassidnode6&3)?type_info[((long)var_tclassidnode6&3)]:var_tclassidnode6->type)->table_size) {
897 var6 = 0;
898 } else {
899 var6 = (((long)var_tclassidnode6&3)?type_info[((long)var_tclassidnode6&3)]:var_tclassidnode6->type)->type_table[cltype7] == idtype8;
900 }
901 }
902 if (unlikely(!var6)) {
903 PRINT_ERROR("Runtime error: %s", "Assert failed");
904 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12107);
905 fatal_exit(1);
906 }
907 var9 = NEW_nitc__AQualified(&type_nitc__AQualified);
908 {
909 nitc__parser_prod___AQualified___init_aqualified(var9, var_listnode5, var_tclassidnode6); /* Direct call parser_prod#AQualified#init_aqualified on <var9:AQualified>*/
910 }
911 var_pqualifiednode4 = var9;
912 var_tidnode7 = var_nodearraylist3;
913 /* <var_tidnode7:nullable Object> isa nullable TId */
914 cltype11 = type_nullable__nitc__TId.color;
915 idtype12 = type_nullable__nitc__TId.id;
916 if(var_tidnode7 == NULL) {
917 var10 = 1;
918 } else {
919 if(cltype11 >= (((long)var_tidnode7&3)?type_info[((long)var_tidnode7&3)]:var_tidnode7->type)->table_size) {
920 var10 = 0;
921 } else {
922 var10 = (((long)var_tidnode7&3)?type_info[((long)var_tidnode7&3)]:var_tidnode7->type)->type_table[cltype11] == idtype12;
923 }
924 }
925 if (unlikely(!var10)) {
926 PRINT_ERROR("Runtime error: %s", "Assert failed");
927 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12113);
928 fatal_exit(1);
929 }
930 var13 = NEW_nitc__AQid(&type_nitc__AQid);
931 {
932 nitc__parser_prod___AQid___init_aqid(var13, var_pqualifiednode4, var_tidnode7); /* Direct call parser_prod#AQid#init_aqid on <var13:AQid>*/
933 }
934 var_pqidnode3 = var13;
935 var_pexprsnode8 = var_nodearraylist4;
936 /* <var_pexprsnode8:nullable Object> isa nullable AExprs */
937 cltype15 = type_nullable__nitc__AExprs.color;
938 idtype16 = type_nullable__nitc__AExprs.id;
939 if(var_pexprsnode8 == NULL) {
940 var14 = 1;
941 } else {
942 if(cltype15 >= (((long)var_pexprsnode8&3)?type_info[((long)var_pexprsnode8&3)]:var_pexprsnode8->type)->table_size) {
943 var14 = 0;
944 } else {
945 var14 = (((long)var_pexprsnode8&3)?type_info[((long)var_pexprsnode8&3)]:var_pexprsnode8->type)->type_table[cltype15] == idtype16;
946 }
947 }
948 if (unlikely(!var14)) {
949 PRINT_ERROR("Runtime error: %s", "Assert failed");
950 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12119);
951 fatal_exit(1);
952 }
953 var17 = NEW_nitc__ACallExpr(&type_nitc__ACallExpr);
954 {
955 nitc__parser_prod___ACallExpr___init_acallexpr(var17, var_pexprnode2, var_pqidnode3, var_pexprsnode8); /* Direct call parser_prod#ACallExpr#init_acallexpr on <var17:ACallExpr>*/
956 }
957 var_pexprnode1 = var17;
958 var_node_list = var_pexprnode1;
959 var18 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction858> */
960 {
961 var19 = nitc___nitc__Parser___go_to(var_p, var18);
962 }
963 {
964 nitc___nitc__Parser___push(var_p, var19, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
965 }
966 RET_LABEL:;
967 }
968 /* method parser#ReduceAction859#action for (self: ReduceAction859, Parser) */
969 void nitc__parser___nitc__parser__ReduceAction859___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
970 val* var_p /* var p: Parser */;
971 val* var_node_list /* var node_list: nullable Object */;
972 val* var /* : nullable Object */;
973 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
974 val* var1 /* : nullable Object */;
975 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
976 val* var2 /* : nullable Object */;
977 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
978 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
979 short int var3 /* : Bool */;
980 int cltype;
981 int idtype;
982 val* var4 /* : Array[Object] */;
983 val* var_listnode5 /* var listnode5: Array[Object] */;
984 val* var_tclassidnode6 /* var tclassidnode6: nullable Object */;
985 short int var5 /* : Bool */;
986 int cltype6;
987 int idtype7;
988 val* var8 /* : AQualified */;
989 val* var_pqualifiednode4 /* var pqualifiednode4: nullable AQualified */;
990 val* var_tidnode7 /* var tidnode7: nullable Object */;
991 short int var9 /* : Bool */;
992 int cltype10;
993 int idtype11;
994 val* var12 /* : AQid */;
995 val* var_pqidnode3 /* var pqidnode3: nullable AQid */;
996 val* var13 /* : Array[Object] */;
997 val* var_listnode9 /* var listnode9: Array[Object] */;
998 val* var14 /* : AListExprs */;
999 val* var_pexprsnode8 /* var pexprsnode8: nullable AListExprs */;
1000 val* var15 /* : ACallExpr */;
1001 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
1002 long var16 /* : Int */;
1003 long var17 /* : Int */;
1004 var_p = p0;
1005 var_node_list = ((val*)NULL);
1006 {
1007 var = nitc___nitc__Parser___pop(var_p);
1008 }
1009 var_nodearraylist3 = var;
1010 {
1011 var1 = nitc___nitc__Parser___pop(var_p);
1012 }
1013 var_nodearraylist2 = var1;
1014 {
1015 var2 = nitc___nitc__Parser___pop(var_p);
1016 }
1017 var_nodearraylist1 = var2;
1018 var_pexprnode2 = var_nodearraylist1;
1019 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
1020 cltype = type_nullable__nitc__AExpr.color;
1021 idtype = type_nullable__nitc__AExpr.id;
1022 if(var_pexprnode2 == NULL) {
1023 var3 = 1;
1024 } else {
1025 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
1026 var3 = 0;
1027 } else {
1028 var3 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
1029 }
1030 }
1031 if (unlikely(!var3)) {
1032 PRINT_ERROR("Runtime error: %s", "Assert failed");
1033 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12138);
1034 fatal_exit(1);
1035 }
1036 var4 = NEW_core__Array(&type_core__Array__core__Object);
1037 {
1038 core___core__Array___core__kernel__Object__init(var4); /* Direct call array#Array#init on <var4:Array[Object]>*/
1039 }
1040 var_listnode5 = var4;
1041 var_tclassidnode6 = var_nodearraylist2;
1042 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
1043 cltype6 = type_nullable__nitc__TClassid.color;
1044 idtype7 = type_nullable__nitc__TClassid.id;
1045 if(var_tclassidnode6 == NULL) {
1046 var5 = 1;
1047 } else {
1048 if(cltype6 >= (((long)var_tclassidnode6&3)?type_info[((long)var_tclassidnode6&3)]:var_tclassidnode6->type)->table_size) {
1049 var5 = 0;
1050 } else {
1051 var5 = (((long)var_tclassidnode6&3)?type_info[((long)var_tclassidnode6&3)]:var_tclassidnode6->type)->type_table[cltype6] == idtype7;
1052 }
1053 }
1054 if (unlikely(!var5)) {
1055 PRINT_ERROR("Runtime error: %s", "Assert failed");
1056 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12141);
1057 fatal_exit(1);
1058 }
1059 var8 = NEW_nitc__AQualified(&type_nitc__AQualified);
1060 {
1061 nitc__parser_prod___AQualified___init_aqualified(var8, var_listnode5, var_tclassidnode6); /* Direct call parser_prod#AQualified#init_aqualified on <var8:AQualified>*/
1062 }
1063 var_pqualifiednode4 = var8;
1064 var_tidnode7 = var_nodearraylist3;
1065 /* <var_tidnode7:nullable Object> isa nullable TId */
1066 cltype10 = type_nullable__nitc__TId.color;
1067 idtype11 = type_nullable__nitc__TId.id;
1068 if(var_tidnode7 == NULL) {
1069 var9 = 1;
1070 } else {
1071 if(cltype10 >= (((long)var_tidnode7&3)?type_info[((long)var_tidnode7&3)]:var_tidnode7->type)->table_size) {
1072 var9 = 0;
1073 } else {
1074 var9 = (((long)var_tidnode7&3)?type_info[((long)var_tidnode7&3)]:var_tidnode7->type)->type_table[cltype10] == idtype11;
1075 }
1076 }
1077 if (unlikely(!var9)) {
1078 PRINT_ERROR("Runtime error: %s", "Assert failed");
1079 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12147);
1080 fatal_exit(1);
1081 }
1082 var12 = NEW_nitc__AQid(&type_nitc__AQid);
1083 {
1084 nitc__parser_prod___AQid___init_aqid(var12, var_pqualifiednode4, var_tidnode7); /* Direct call parser_prod#AQid#init_aqid on <var12:AQid>*/
1085 }
1086 var_pqidnode3 = var12;
1087 var13 = NEW_core__Array(&type_core__Array__core__Object);
1088 {
1089 core___core__Array___core__kernel__Object__init(var13); /* Direct call array#Array#init on <var13:Array[Object]>*/
1090 }
1091 var_listnode9 = var13;
1092 var14 = NEW_nitc__AListExprs(&type_nitc__AListExprs);
1093 {
1094 nitc__parser_prod___AListExprs___init_alistexprs(var14, var_listnode9); /* Direct call parser_prod#AListExprs#init_alistexprs on <var14:AListExprs>*/
1095 }
1096 var_pexprsnode8 = var14;
1097 var15 = NEW_nitc__ACallExpr(&type_nitc__ACallExpr);
1098 {
1099 nitc__parser_prod___ACallExpr___init_acallexpr(var15, var_pexprnode2, var_pqidnode3, var_pexprsnode8); /* Direct call parser_prod#ACallExpr#init_acallexpr on <var15:ACallExpr>*/
1100 }
1101 var_pexprnode1 = var15;
1102 var_node_list = var_pexprnode1;
1103 var16 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction859> */
1104 {
1105 var17 = nitc___nitc__Parser___go_to(var_p, var16);
1106 }
1107 {
1108 nitc___nitc__Parser___push(var_p, var17, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
1109 }
1110 RET_LABEL:;
1111 }
1112 /* method parser#ReduceAction860#action for (self: ReduceAction860, Parser) */
1113 void nitc__parser___nitc__parser__ReduceAction860___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
1114 val* var_p /* var p: Parser */;
1115 val* var_node_list /* var node_list: nullable Object */;
1116 val* var /* : nullable Object */;
1117 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
1118 val* var1 /* : nullable Object */;
1119 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1120 val* var2 /* : nullable Object */;
1121 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1122 val* var3 /* : nullable Object */;
1123 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1124 val* var4 /* : nullable Object */;
1125 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1126 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
1127 short int var5 /* : Bool */;
1128 int cltype;
1129 int idtype;
1130 val* var6 /* : Array[Object] */;
1131 val* var_listnode6 /* var listnode6: Array[Object] */;
1132 val* var_listnode5 /* var listnode5: nullable Object */;
1133 short int var7 /* : Bool */;
1134 int cltype8;
1135 int idtype9;
1136 val* var10 /* : Array[Object] */;
1137 val* var_tclassidnode7 /* var tclassidnode7: nullable Object */;
1138 short int var11 /* : Bool */;
1139 int cltype12;
1140 int idtype13;
1141 val* var14 /* : AQualified */;
1142 val* var_pqualifiednode4 /* var pqualifiednode4: nullable AQualified */;
1143 val* var_tidnode8 /* var tidnode8: nullable Object */;
1144 short int var15 /* : Bool */;
1145 int cltype16;
1146 int idtype17;
1147 val* var18 /* : AQid */;
1148 val* var_pqidnode3 /* var pqidnode3: nullable AQid */;
1149 val* var_pexprsnode9 /* var pexprsnode9: nullable Object */;
1150 short int var19 /* : Bool */;
1151 int cltype20;
1152 int idtype21;
1153 val* var22 /* : ACallExpr */;
1154 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
1155 long var23 /* : Int */;
1156 long var24 /* : Int */;
1157 var_p = p0;
1158 var_node_list = ((val*)NULL);
1159 {
1160 var = nitc___nitc__Parser___pop(var_p);
1161 }
1162 var_nodearraylist5 = var;
1163 {
1164 var1 = nitc___nitc__Parser___pop(var_p);
1165 }
1166 var_nodearraylist4 = var1;
1167 {
1168 var2 = nitc___nitc__Parser___pop(var_p);
1169 }
1170 var_nodearraylist3 = var2;
1171 {
1172 var3 = nitc___nitc__Parser___pop(var_p);
1173 }
1174 var_nodearraylist2 = var3;
1175 {
1176 var4 = nitc___nitc__Parser___pop(var_p);
1177 }
1178 var_nodearraylist1 = var4;
1179 var_pexprnode2 = var_nodearraylist1;
1180 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
1181 cltype = type_nullable__nitc__AExpr.color;
1182 idtype = type_nullable__nitc__AExpr.id;
1183 if(var_pexprnode2 == NULL) {
1184 var5 = 1;
1185 } else {
1186 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
1187 var5 = 0;
1188 } else {
1189 var5 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
1190 }
1191 }
1192 if (unlikely(!var5)) {
1193 PRINT_ERROR("Runtime error: %s", "Assert failed");
1194 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12176);
1195 fatal_exit(1);
1196 }
1197 var6 = NEW_core__Array(&type_core__Array__core__Object);
1198 {
1199 core___core__Array___core__kernel__Object__init(var6); /* Direct call array#Array#init on <var6:Array[Object]>*/
1200 }
1201 var_listnode6 = var6;
1202 var_listnode5 = var_nodearraylist2;
1203 /* <var_listnode5:nullable Object> isa Array[Object] */
1204 cltype8 = type_core__Array__core__Object.color;
1205 idtype9 = type_core__Array__core__Object.id;
1206 if(var_listnode5 == NULL) {
1207 var7 = 0;
1208 } else {
1209 if(cltype8 >= (((long)var_listnode5&3)?type_info[((long)var_listnode5&3)]:var_listnode5->type)->table_size) {
1210 var7 = 0;
1211 } else {
1212 var7 = (((long)var_listnode5&3)?type_info[((long)var_listnode5&3)]:var_listnode5->type)->type_table[cltype8] == idtype9;
1213 }
1214 }
1215 if (unlikely(!var7)) {
1216 PRINT_ERROR("Runtime error: %s", "Assert failed");
1217 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12179);
1218 fatal_exit(1);
1219 }
1220 {
1221 var10 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode6, var_listnode5);
1222 }
1223 var_listnode6 = var10;
1224 var_tclassidnode7 = var_nodearraylist3;
1225 /* <var_tclassidnode7:nullable Object> isa nullable TClassid */
1226 cltype12 = type_nullable__nitc__TClassid.color;
1227 idtype13 = type_nullable__nitc__TClassid.id;
1228 if(var_tclassidnode7 == NULL) {
1229 var11 = 1;
1230 } else {
1231 if(cltype12 >= (((long)var_tclassidnode7&3)?type_info[((long)var_tclassidnode7&3)]:var_tclassidnode7->type)->table_size) {
1232 var11 = 0;
1233 } else {
1234 var11 = (((long)var_tclassidnode7&3)?type_info[((long)var_tclassidnode7&3)]:var_tclassidnode7->type)->type_table[cltype12] == idtype13;
1235 }
1236 }
1237 if (unlikely(!var11)) {
1238 PRINT_ERROR("Runtime error: %s", "Assert failed");
1239 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12182);
1240 fatal_exit(1);
1241 }
1242 var14 = NEW_nitc__AQualified(&type_nitc__AQualified);
1243 {
1244 nitc__parser_prod___AQualified___init_aqualified(var14, var_listnode6, var_tclassidnode7); /* Direct call parser_prod#AQualified#init_aqualified on <var14:AQualified>*/
1245 }
1246 var_pqualifiednode4 = var14;
1247 var_tidnode8 = var_nodearraylist4;
1248 /* <var_tidnode8:nullable Object> isa nullable TId */
1249 cltype16 = type_nullable__nitc__TId.color;
1250 idtype17 = type_nullable__nitc__TId.id;
1251 if(var_tidnode8 == NULL) {
1252 var15 = 1;
1253 } else {
1254 if(cltype16 >= (((long)var_tidnode8&3)?type_info[((long)var_tidnode8&3)]:var_tidnode8->type)->table_size) {
1255 var15 = 0;
1256 } else {
1257 var15 = (((long)var_tidnode8&3)?type_info[((long)var_tidnode8&3)]:var_tidnode8->type)->type_table[cltype16] == idtype17;
1258 }
1259 }
1260 if (unlikely(!var15)) {
1261 PRINT_ERROR("Runtime error: %s", "Assert failed");
1262 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12188);
1263 fatal_exit(1);
1264 }
1265 var18 = NEW_nitc__AQid(&type_nitc__AQid);
1266 {
1267 nitc__parser_prod___AQid___init_aqid(var18, var_pqualifiednode4, var_tidnode8); /* Direct call parser_prod#AQid#init_aqid on <var18:AQid>*/
1268 }
1269 var_pqidnode3 = var18;
1270 var_pexprsnode9 = var_nodearraylist5;
1271 /* <var_pexprsnode9:nullable Object> isa nullable AExprs */
1272 cltype20 = type_nullable__nitc__AExprs.color;
1273 idtype21 = type_nullable__nitc__AExprs.id;
1274 if(var_pexprsnode9 == NULL) {
1275 var19 = 1;
1276 } else {
1277 if(cltype20 >= (((long)var_pexprsnode9&3)?type_info[((long)var_pexprsnode9&3)]:var_pexprsnode9->type)->table_size) {
1278 var19 = 0;
1279 } else {
1280 var19 = (((long)var_pexprsnode9&3)?type_info[((long)var_pexprsnode9&3)]:var_pexprsnode9->type)->type_table[cltype20] == idtype21;
1281 }
1282 }
1283 if (unlikely(!var19)) {
1284 PRINT_ERROR("Runtime error: %s", "Assert failed");
1285 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12194);
1286 fatal_exit(1);
1287 }
1288 var22 = NEW_nitc__ACallExpr(&type_nitc__ACallExpr);
1289 {
1290 nitc__parser_prod___ACallExpr___init_acallexpr(var22, var_pexprnode2, var_pqidnode3, var_pexprsnode9); /* Direct call parser_prod#ACallExpr#init_acallexpr on <var22:ACallExpr>*/
1291 }
1292 var_pexprnode1 = var22;
1293 var_node_list = var_pexprnode1;
1294 var23 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction860> */
1295 {
1296 var24 = nitc___nitc__Parser___go_to(var_p, var23);
1297 }
1298 {
1299 nitc___nitc__Parser___push(var_p, var24, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
1300 }
1301 RET_LABEL:;
1302 }
1303 /* method parser#ReduceAction861#action for (self: ReduceAction861, Parser) */
1304 void nitc__parser___nitc__parser__ReduceAction861___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
1305 val* var_p /* var p: Parser */;
1306 val* var_node_list /* var node_list: nullable Object */;
1307 val* var /* : nullable Object */;
1308 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1309 val* var1 /* : nullable Object */;
1310 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1311 val* var2 /* : nullable Object */;
1312 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1313 val* var3 /* : nullable Object */;
1314 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1315 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
1316 short int var4 /* : Bool */;
1317 int cltype;
1318 int idtype;
1319 val* var5 /* : Array[Object] */;
1320 val* var_listnode6 /* var listnode6: Array[Object] */;
1321 val* var_listnode5 /* var listnode5: nullable Object */;
1322 short int var6 /* : Bool */;
1323 int cltype7;
1324 int idtype8;
1325 val* var9 /* : Array[Object] */;
1326 val* var_tclassidnode7 /* var tclassidnode7: nullable Object */;
1327 short int var10 /* : Bool */;
1328 int cltype11;
1329 int idtype12;
1330 val* var13 /* : AQualified */;
1331 val* var_pqualifiednode4 /* var pqualifiednode4: nullable AQualified */;
1332 val* var_tidnode8 /* var tidnode8: nullable Object */;
1333 short int var14 /* : Bool */;
1334 int cltype15;
1335 int idtype16;
1336 val* var17 /* : AQid */;
1337 val* var_pqidnode3 /* var pqidnode3: nullable AQid */;
1338 val* var18 /* : Array[Object] */;
1339 val* var_listnode10 /* var listnode10: Array[Object] */;
1340 val* var19 /* : AListExprs */;
1341 val* var_pexprsnode9 /* var pexprsnode9: nullable AListExprs */;
1342 val* var20 /* : ACallExpr */;
1343 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
1344 long var21 /* : Int */;
1345 long var22 /* : Int */;
1346 var_p = p0;
1347 var_node_list = ((val*)NULL);
1348 {
1349 var = nitc___nitc__Parser___pop(var_p);
1350 }
1351 var_nodearraylist4 = var;
1352 {
1353 var1 = nitc___nitc__Parser___pop(var_p);
1354 }
1355 var_nodearraylist3 = var1;
1356 {
1357 var2 = nitc___nitc__Parser___pop(var_p);
1358 }
1359 var_nodearraylist2 = var2;
1360 {
1361 var3 = nitc___nitc__Parser___pop(var_p);
1362 }
1363 var_nodearraylist1 = var3;
1364 var_pexprnode2 = var_nodearraylist1;
1365 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
1366 cltype = type_nullable__nitc__AExpr.color;
1367 idtype = type_nullable__nitc__AExpr.id;
1368 if(var_pexprnode2 == NULL) {
1369 var4 = 1;
1370 } else {
1371 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
1372 var4 = 0;
1373 } else {
1374 var4 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
1375 }
1376 }
1377 if (unlikely(!var4)) {
1378 PRINT_ERROR("Runtime error: %s", "Assert failed");
1379 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12214);
1380 fatal_exit(1);
1381 }
1382 var5 = NEW_core__Array(&type_core__Array__core__Object);
1383 {
1384 core___core__Array___core__kernel__Object__init(var5); /* Direct call array#Array#init on <var5:Array[Object]>*/
1385 }
1386 var_listnode6 = var5;
1387 var_listnode5 = var_nodearraylist2;
1388 /* <var_listnode5:nullable Object> isa Array[Object] */
1389 cltype7 = type_core__Array__core__Object.color;
1390 idtype8 = type_core__Array__core__Object.id;
1391 if(var_listnode5 == NULL) {
1392 var6 = 0;
1393 } else {
1394 if(cltype7 >= (((long)var_listnode5&3)?type_info[((long)var_listnode5&3)]:var_listnode5->type)->table_size) {
1395 var6 = 0;
1396 } else {
1397 var6 = (((long)var_listnode5&3)?type_info[((long)var_listnode5&3)]:var_listnode5->type)->type_table[cltype7] == idtype8;
1398 }
1399 }
1400 if (unlikely(!var6)) {
1401 PRINT_ERROR("Runtime error: %s", "Assert failed");
1402 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12217);
1403 fatal_exit(1);
1404 }
1405 {
1406 var9 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode6, var_listnode5);
1407 }
1408 var_listnode6 = var9;
1409 var_tclassidnode7 = var_nodearraylist3;
1410 /* <var_tclassidnode7:nullable Object> isa nullable TClassid */
1411 cltype11 = type_nullable__nitc__TClassid.color;
1412 idtype12 = type_nullable__nitc__TClassid.id;
1413 if(var_tclassidnode7 == NULL) {
1414 var10 = 1;
1415 } else {
1416 if(cltype11 >= (((long)var_tclassidnode7&3)?type_info[((long)var_tclassidnode7&3)]:var_tclassidnode7->type)->table_size) {
1417 var10 = 0;
1418 } else {
1419 var10 = (((long)var_tclassidnode7&3)?type_info[((long)var_tclassidnode7&3)]:var_tclassidnode7->type)->type_table[cltype11] == idtype12;
1420 }
1421 }
1422 if (unlikely(!var10)) {
1423 PRINT_ERROR("Runtime error: %s", "Assert failed");
1424 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12220);
1425 fatal_exit(1);
1426 }
1427 var13 = NEW_nitc__AQualified(&type_nitc__AQualified);
1428 {
1429 nitc__parser_prod___AQualified___init_aqualified(var13, var_listnode6, var_tclassidnode7); /* Direct call parser_prod#AQualified#init_aqualified on <var13:AQualified>*/
1430 }
1431 var_pqualifiednode4 = var13;
1432 var_tidnode8 = var_nodearraylist4;
1433 /* <var_tidnode8:nullable Object> isa nullable TId */
1434 cltype15 = type_nullable__nitc__TId.color;
1435 idtype16 = type_nullable__nitc__TId.id;
1436 if(var_tidnode8 == NULL) {
1437 var14 = 1;
1438 } else {
1439 if(cltype15 >= (((long)var_tidnode8&3)?type_info[((long)var_tidnode8&3)]:var_tidnode8->type)->table_size) {
1440 var14 = 0;
1441 } else {
1442 var14 = (((long)var_tidnode8&3)?type_info[((long)var_tidnode8&3)]:var_tidnode8->type)->type_table[cltype15] == idtype16;
1443 }
1444 }
1445 if (unlikely(!var14)) {
1446 PRINT_ERROR("Runtime error: %s", "Assert failed");
1447 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12226);
1448 fatal_exit(1);
1449 }
1450 var17 = NEW_nitc__AQid(&type_nitc__AQid);
1451 {
1452 nitc__parser_prod___AQid___init_aqid(var17, var_pqualifiednode4, var_tidnode8); /* Direct call parser_prod#AQid#init_aqid on <var17:AQid>*/
1453 }
1454 var_pqidnode3 = var17;
1455 var18 = NEW_core__Array(&type_core__Array__core__Object);
1456 {
1457 core___core__Array___core__kernel__Object__init(var18); /* Direct call array#Array#init on <var18:Array[Object]>*/
1458 }
1459 var_listnode10 = var18;
1460 var19 = NEW_nitc__AListExprs(&type_nitc__AListExprs);
1461 {
1462 nitc__parser_prod___AListExprs___init_alistexprs(var19, var_listnode10); /* Direct call parser_prod#AListExprs#init_alistexprs on <var19:AListExprs>*/
1463 }
1464 var_pexprsnode9 = var19;
1465 var20 = NEW_nitc__ACallExpr(&type_nitc__ACallExpr);
1466 {
1467 nitc__parser_prod___ACallExpr___init_acallexpr(var20, var_pexprnode2, var_pqidnode3, var_pexprsnode9); /* Direct call parser_prod#ACallExpr#init_acallexpr on <var20:ACallExpr>*/
1468 }
1469 var_pexprnode1 = var20;
1470 var_node_list = var_pexprnode1;
1471 var21 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction861> */
1472 {
1473 var22 = nitc___nitc__Parser___go_to(var_p, var21);
1474 }
1475 {
1476 nitc___nitc__Parser___push(var_p, var22, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
1477 }
1478 RET_LABEL:;
1479 }
1480 /* method parser#ReduceAction862#action for (self: ReduceAction862, Parser) */
1481 void nitc__parser___nitc__parser__ReduceAction862___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
1482 val* var_p /* var p: Parser */;
1483 val* var_node_list /* var node_list: nullable Object */;
1484 val* var /* : nullable Object */;
1485 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1486 val* var1 /* : nullable Object */;
1487 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1488 val* var2 /* : nullable Object */;
1489 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1490 val* var3 /* : nullable Object */;
1491 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1492 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
1493 short int var4 /* : Bool */;
1494 int cltype;
1495 int idtype;
1496 val* var5 /* : Array[Object] */;
1497 val* var_listnode6 /* var listnode6: Array[Object] */;
1498 val* var_listnode5 /* var listnode5: nullable Object */;
1499 short int var6 /* : Bool */;
1500 int cltype7;
1501 int idtype8;
1502 val* var9 /* : Array[Object] */;
1503 val* var10 /* : AQualified */;
1504 val* var_pqualifiednode4 /* var pqualifiednode4: nullable AQualified */;
1505 val* var_tidnode8 /* var tidnode8: nullable Object */;
1506 short int var11 /* : Bool */;
1507 int cltype12;
1508 int idtype13;
1509 val* var14 /* : AQid */;
1510 val* var_pqidnode3 /* var pqidnode3: nullable AQid */;
1511 val* var_pexprsnode9 /* var pexprsnode9: nullable Object */;
1512 short int var15 /* : Bool */;
1513 int cltype16;
1514 int idtype17;
1515 val* var18 /* : ACallExpr */;
1516 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
1517 long var19 /* : Int */;
1518 long var20 /* : Int */;
1519 var_p = p0;
1520 var_node_list = ((val*)NULL);
1521 {
1522 var = nitc___nitc__Parser___pop(var_p);
1523 }
1524 var_nodearraylist4 = var;
1525 {
1526 var1 = nitc___nitc__Parser___pop(var_p);
1527 }
1528 var_nodearraylist3 = var1;
1529 {
1530 var2 = nitc___nitc__Parser___pop(var_p);
1531 }
1532 var_nodearraylist2 = var2;
1533 {
1534 var3 = nitc___nitc__Parser___pop(var_p);
1535 }
1536 var_nodearraylist1 = var3;
1537 var_pexprnode2 = var_nodearraylist1;
1538 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
1539 cltype = type_nullable__nitc__AExpr.color;
1540 idtype = type_nullable__nitc__AExpr.id;
1541 if(var_pexprnode2 == NULL) {
1542 var4 = 1;
1543 } else {
1544 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
1545 var4 = 0;
1546 } else {
1547 var4 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
1548 }
1549 }
1550 if (unlikely(!var4)) {
1551 PRINT_ERROR("Runtime error: %s", "Assert failed");
1552 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12254);
1553 fatal_exit(1);
1554 }
1555 var5 = NEW_core__Array(&type_core__Array__core__Object);
1556 {
1557 core___core__Array___core__kernel__Object__init(var5); /* Direct call array#Array#init on <var5:Array[Object]>*/
1558 }
1559 var_listnode6 = var5;
1560 var_listnode5 = var_nodearraylist2;
1561 /* <var_listnode5:nullable Object> isa Array[Object] */
1562 cltype7 = type_core__Array__core__Object.color;
1563 idtype8 = type_core__Array__core__Object.id;
1564 if(var_listnode5 == NULL) {
1565 var6 = 0;
1566 } else {
1567 if(cltype7 >= (((long)var_listnode5&3)?type_info[((long)var_listnode5&3)]:var_listnode5->type)->table_size) {
1568 var6 = 0;
1569 } else {
1570 var6 = (((long)var_listnode5&3)?type_info[((long)var_listnode5&3)]:var_listnode5->type)->type_table[cltype7] == idtype8;
1571 }
1572 }
1573 if (unlikely(!var6)) {
1574 PRINT_ERROR("Runtime error: %s", "Assert failed");
1575 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12257);
1576 fatal_exit(1);
1577 }
1578 {
1579 var9 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode6, var_listnode5);
1580 }
1581 var_listnode6 = var9;
1582 var10 = NEW_nitc__AQualified(&type_nitc__AQualified);
1583 {
1584 nitc__parser_prod___AQualified___init_aqualified(var10, var_listnode6, ((val*)NULL)); /* Direct call parser_prod#AQualified#init_aqualified on <var10:AQualified>*/
1585 }
1586 var_pqualifiednode4 = var10;
1587 var_tidnode8 = var_nodearraylist3;
1588 /* <var_tidnode8:nullable Object> isa nullable TId */
1589 cltype12 = type_nullable__nitc__TId.color;
1590 idtype13 = type_nullable__nitc__TId.id;
1591 if(var_tidnode8 == NULL) {
1592 var11 = 1;
1593 } else {
1594 if(cltype12 >= (((long)var_tidnode8&3)?type_info[((long)var_tidnode8&3)]:var_tidnode8->type)->table_size) {
1595 var11 = 0;
1596 } else {
1597 var11 = (((long)var_tidnode8&3)?type_info[((long)var_tidnode8&3)]:var_tidnode8->type)->type_table[cltype12] == idtype13;
1598 }
1599 }
1600 if (unlikely(!var11)) {
1601 PRINT_ERROR("Runtime error: %s", "Assert failed");
1602 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12264);
1603 fatal_exit(1);
1604 }
1605 var14 = NEW_nitc__AQid(&type_nitc__AQid);
1606 {
1607 nitc__parser_prod___AQid___init_aqid(var14, var_pqualifiednode4, var_tidnode8); /* Direct call parser_prod#AQid#init_aqid on <var14:AQid>*/
1608 }
1609 var_pqidnode3 = var14;
1610 var_pexprsnode9 = var_nodearraylist4;
1611 /* <var_pexprsnode9:nullable Object> isa nullable AExprs */
1612 cltype16 = type_nullable__nitc__AExprs.color;
1613 idtype17 = type_nullable__nitc__AExprs.id;
1614 if(var_pexprsnode9 == NULL) {
1615 var15 = 1;
1616 } else {
1617 if(cltype16 >= (((long)var_pexprsnode9&3)?type_info[((long)var_pexprsnode9&3)]:var_pexprsnode9->type)->table_size) {
1618 var15 = 0;
1619 } else {
1620 var15 = (((long)var_pexprsnode9&3)?type_info[((long)var_pexprsnode9&3)]:var_pexprsnode9->type)->type_table[cltype16] == idtype17;
1621 }
1622 }
1623 if (unlikely(!var15)) {
1624 PRINT_ERROR("Runtime error: %s", "Assert failed");
1625 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12270);
1626 fatal_exit(1);
1627 }
1628 var18 = NEW_nitc__ACallExpr(&type_nitc__ACallExpr);
1629 {
1630 nitc__parser_prod___ACallExpr___init_acallexpr(var18, var_pexprnode2, var_pqidnode3, var_pexprsnode9); /* Direct call parser_prod#ACallExpr#init_acallexpr on <var18:ACallExpr>*/
1631 }
1632 var_pexprnode1 = var18;
1633 var_node_list = var_pexprnode1;
1634 var19 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction862> */
1635 {
1636 var20 = nitc___nitc__Parser___go_to(var_p, var19);
1637 }
1638 {
1639 nitc___nitc__Parser___push(var_p, var20, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
1640 }
1641 RET_LABEL:;
1642 }
1643 /* method parser#ReduceAction863#action for (self: ReduceAction863, Parser) */
1644 void nitc__parser___nitc__parser__ReduceAction863___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
1645 val* var_p /* var p: Parser */;
1646 val* var_node_list /* var node_list: nullable Object */;
1647 val* var /* : nullable Object */;
1648 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1649 val* var1 /* : nullable Object */;
1650 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1651 val* var2 /* : nullable Object */;
1652 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1653 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
1654 short int var3 /* : Bool */;
1655 int cltype;
1656 int idtype;
1657 val* var4 /* : Array[Object] */;
1658 val* var_listnode6 /* var listnode6: Array[Object] */;
1659 val* var_listnode5 /* var listnode5: nullable Object */;
1660 short int var5 /* : Bool */;
1661 int cltype6;
1662 int idtype7;
1663 val* var8 /* : Array[Object] */;
1664 val* var9 /* : AQualified */;
1665 val* var_pqualifiednode4 /* var pqualifiednode4: nullable AQualified */;
1666 val* var_tidnode8 /* var tidnode8: nullable Object */;
1667 short int var10 /* : Bool */;
1668 int cltype11;
1669 int idtype12;
1670 val* var13 /* : AQid */;
1671 val* var_pqidnode3 /* var pqidnode3: nullable AQid */;
1672 val* var14 /* : Array[Object] */;
1673 val* var_listnode10 /* var listnode10: Array[Object] */;
1674 val* var15 /* : AListExprs */;
1675 val* var_pexprsnode9 /* var pexprsnode9: nullable AListExprs */;
1676 val* var16 /* : ACallExpr */;
1677 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
1678 long var17 /* : Int */;
1679 long var18 /* : Int */;
1680 var_p = p0;
1681 var_node_list = ((val*)NULL);
1682 {
1683 var = nitc___nitc__Parser___pop(var_p);
1684 }
1685 var_nodearraylist3 = var;
1686 {
1687 var1 = nitc___nitc__Parser___pop(var_p);
1688 }
1689 var_nodearraylist2 = var1;
1690 {
1691 var2 = nitc___nitc__Parser___pop(var_p);
1692 }
1693 var_nodearraylist1 = var2;
1694 var_pexprnode2 = var_nodearraylist1;
1695 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
1696 cltype = type_nullable__nitc__AExpr.color;
1697 idtype = type_nullable__nitc__AExpr.id;
1698 if(var_pexprnode2 == NULL) {
1699 var3 = 1;
1700 } else {
1701 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
1702 var3 = 0;
1703 } else {
1704 var3 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
1705 }
1706 }
1707 if (unlikely(!var3)) {
1708 PRINT_ERROR("Runtime error: %s", "Assert failed");
1709 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12289);
1710 fatal_exit(1);
1711 }
1712 var4 = NEW_core__Array(&type_core__Array__core__Object);
1713 {
1714 core___core__Array___core__kernel__Object__init(var4); /* Direct call array#Array#init on <var4:Array[Object]>*/
1715 }
1716 var_listnode6 = var4;
1717 var_listnode5 = var_nodearraylist2;
1718 /* <var_listnode5:nullable Object> isa Array[Object] */
1719 cltype6 = type_core__Array__core__Object.color;
1720 idtype7 = type_core__Array__core__Object.id;
1721 if(var_listnode5 == NULL) {
1722 var5 = 0;
1723 } else {
1724 if(cltype6 >= (((long)var_listnode5&3)?type_info[((long)var_listnode5&3)]:var_listnode5->type)->table_size) {
1725 var5 = 0;
1726 } else {
1727 var5 = (((long)var_listnode5&3)?type_info[((long)var_listnode5&3)]:var_listnode5->type)->type_table[cltype6] == idtype7;
1728 }
1729 }
1730 if (unlikely(!var5)) {
1731 PRINT_ERROR("Runtime error: %s", "Assert failed");
1732 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12292);
1733 fatal_exit(1);
1734 }
1735 {
1736 var8 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode6, var_listnode5);
1737 }
1738 var_listnode6 = var8;
1739 var9 = NEW_nitc__AQualified(&type_nitc__AQualified);
1740 {
1741 nitc__parser_prod___AQualified___init_aqualified(var9, var_listnode6, ((val*)NULL)); /* Direct call parser_prod#AQualified#init_aqualified on <var9:AQualified>*/
1742 }
1743 var_pqualifiednode4 = var9;
1744 var_tidnode8 = var_nodearraylist3;
1745 /* <var_tidnode8:nullable Object> isa nullable TId */
1746 cltype11 = type_nullable__nitc__TId.color;
1747 idtype12 = type_nullable__nitc__TId.id;
1748 if(var_tidnode8 == NULL) {
1749 var10 = 1;
1750 } else {
1751 if(cltype11 >= (((long)var_tidnode8&3)?type_info[((long)var_tidnode8&3)]:var_tidnode8->type)->table_size) {
1752 var10 = 0;
1753 } else {
1754 var10 = (((long)var_tidnode8&3)?type_info[((long)var_tidnode8&3)]:var_tidnode8->type)->type_table[cltype11] == idtype12;
1755 }
1756 }
1757 if (unlikely(!var10)) {
1758 PRINT_ERROR("Runtime error: %s", "Assert failed");
1759 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12299);
1760 fatal_exit(1);
1761 }
1762 var13 = NEW_nitc__AQid(&type_nitc__AQid);
1763 {
1764 nitc__parser_prod___AQid___init_aqid(var13, var_pqualifiednode4, var_tidnode8); /* Direct call parser_prod#AQid#init_aqid on <var13:AQid>*/
1765 }
1766 var_pqidnode3 = var13;
1767 var14 = NEW_core__Array(&type_core__Array__core__Object);
1768 {
1769 core___core__Array___core__kernel__Object__init(var14); /* Direct call array#Array#init on <var14:Array[Object]>*/
1770 }
1771 var_listnode10 = var14;
1772 var15 = NEW_nitc__AListExprs(&type_nitc__AListExprs);
1773 {
1774 nitc__parser_prod___AListExprs___init_alistexprs(var15, var_listnode10); /* Direct call parser_prod#AListExprs#init_alistexprs on <var15:AListExprs>*/
1775 }
1776 var_pexprsnode9 = var15;
1777 var16 = NEW_nitc__ACallExpr(&type_nitc__ACallExpr);
1778 {
1779 nitc__parser_prod___ACallExpr___init_acallexpr(var16, var_pexprnode2, var_pqidnode3, var_pexprsnode9); /* Direct call parser_prod#ACallExpr#init_acallexpr on <var16:ACallExpr>*/
1780 }
1781 var_pexprnode1 = var16;
1782 var_node_list = var_pexprnode1;
1783 var17 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction863> */
1784 {
1785 var18 = nitc___nitc__Parser___go_to(var_p, var17);
1786 }
1787 {
1788 nitc___nitc__Parser___push(var_p, var18, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
1789 }
1790 RET_LABEL:;
1791 }
1792 /* method parser#ReduceAction866#action for (self: ReduceAction866, Parser) */
1793 void nitc__parser___nitc__parser__ReduceAction866___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
1794 val* var_p /* var p: Parser */;
1795 val* var_node_list /* var node_list: nullable Object */;
1796 val* var /* : nullable Object */;
1797 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1798 val* var1 /* : nullable Object */;
1799 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1800 val* var2 /* : nullable Object */;
1801 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1802 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
1803 short int var3 /* : Bool */;
1804 int cltype;
1805 int idtype;
1806 val* var_tkwinitnode3 /* var tkwinitnode3: nullable Object */;
1807 short int var4 /* : Bool */;
1808 int cltype5;
1809 int idtype6;
1810 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
1811 short int var7 /* : Bool */;
1812 int cltype8;
1813 int idtype9;
1814 val* var10 /* : AInitExpr */;
1815 val* var_pexprnode1 /* var pexprnode1: nullable AInitExpr */;
1816 long var11 /* : Int */;
1817 long var12 /* : Int */;
1818 var_p = p0;
1819 var_node_list = ((val*)NULL);
1820 {
1821 var = nitc___nitc__Parser___pop(var_p);
1822 }
1823 var_nodearraylist3 = var;
1824 {
1825 var1 = nitc___nitc__Parser___pop(var_p);
1826 }
1827 var_nodearraylist2 = var1;
1828 {
1829 var2 = nitc___nitc__Parser___pop(var_p);
1830 }
1831 var_nodearraylist1 = var2;
1832 var_pexprnode2 = var_nodearraylist1;
1833 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
1834 cltype = type_nullable__nitc__AExpr.color;
1835 idtype = type_nullable__nitc__AExpr.id;
1836 if(var_pexprnode2 == NULL) {
1837 var3 = 1;
1838 } else {
1839 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
1840 var3 = 0;
1841 } else {
1842 var3 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
1843 }
1844 }
1845 if (unlikely(!var3)) {
1846 PRINT_ERROR("Runtime error: %s", "Assert failed");
1847 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12326);
1848 fatal_exit(1);
1849 }
1850 var_tkwinitnode3 = var_nodearraylist2;
1851 /* <var_tkwinitnode3:nullable Object> isa nullable TKwinit */
1852 cltype5 = type_nullable__nitc__TKwinit.color;
1853 idtype6 = type_nullable__nitc__TKwinit.id;
1854 if(var_tkwinitnode3 == NULL) {
1855 var4 = 1;
1856 } else {
1857 if(cltype5 >= (((long)var_tkwinitnode3&3)?type_info[((long)var_tkwinitnode3&3)]:var_tkwinitnode3->type)->table_size) {
1858 var4 = 0;
1859 } else {
1860 var4 = (((long)var_tkwinitnode3&3)?type_info[((long)var_tkwinitnode3&3)]:var_tkwinitnode3->type)->type_table[cltype5] == idtype6;
1861 }
1862 }
1863 if (unlikely(!var4)) {
1864 PRINT_ERROR("Runtime error: %s", "Assert failed");
1865 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12328);
1866 fatal_exit(1);
1867 }
1868 var_pexprsnode4 = var_nodearraylist3;
1869 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
1870 cltype8 = type_nullable__nitc__AExprs.color;
1871 idtype9 = type_nullable__nitc__AExprs.id;
1872 if(var_pexprsnode4 == NULL) {
1873 var7 = 1;
1874 } else {
1875 if(cltype8 >= (((long)var_pexprsnode4&3)?type_info[((long)var_pexprsnode4&3)]:var_pexprsnode4->type)->table_size) {
1876 var7 = 0;
1877 } else {
1878 var7 = (((long)var_pexprsnode4&3)?type_info[((long)var_pexprsnode4&3)]:var_pexprsnode4->type)->type_table[cltype8] == idtype9;
1879 }
1880 }
1881 if (unlikely(!var7)) {
1882 PRINT_ERROR("Runtime error: %s", "Assert failed");
1883 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12330);
1884 fatal_exit(1);
1885 }
1886 var10 = NEW_nitc__AInitExpr(&type_nitc__AInitExpr);
1887 {
1888 nitc__parser_prod___AInitExpr___init_ainitexpr(var10, var_pexprnode2, var_tkwinitnode3, var_pexprsnode4); /* Direct call parser_prod#AInitExpr#init_ainitexpr on <var10:AInitExpr>*/
1889 }
1890 var_pexprnode1 = var10;
1891 var_node_list = var_pexprnode1;
1892 var11 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction866> */
1893 {
1894 var12 = nitc___nitc__Parser___go_to(var_p, var11);
1895 }
1896 {
1897 nitc___nitc__Parser___push(var_p, var12, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
1898 }
1899 RET_LABEL:;
1900 }
1901 /* method parser#ReduceAction867#action for (self: ReduceAction867, Parser) */
1902 void nitc__parser___nitc__parser__ReduceAction867___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
1903 val* var_p /* var p: Parser */;
1904 val* var_node_list /* var node_list: nullable Object */;
1905 val* var /* : nullable Object */;
1906 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1907 val* var1 /* : nullable Object */;
1908 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1909 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
1910 short int var2 /* : Bool */;
1911 int cltype;
1912 int idtype;
1913 val* var_tkwinitnode3 /* var tkwinitnode3: nullable Object */;
1914 short int var3 /* : Bool */;
1915 int cltype4;
1916 int idtype5;
1917 val* var6 /* : Array[Object] */;
1918 val* var_listnode5 /* var listnode5: Array[Object] */;
1919 val* var7 /* : AListExprs */;
1920 val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */;
1921 val* var8 /* : AInitExpr */;
1922 val* var_pexprnode1 /* var pexprnode1: nullable AInitExpr */;
1923 long var9 /* : Int */;
1924 long var10 /* : Int */;
1925 var_p = p0;
1926 var_node_list = ((val*)NULL);
1927 {
1928 var = nitc___nitc__Parser___pop(var_p);
1929 }
1930 var_nodearraylist2 = var;
1931 {
1932 var1 = nitc___nitc__Parser___pop(var_p);
1933 }
1934 var_nodearraylist1 = var1;
1935 var_pexprnode2 = var_nodearraylist1;
1936 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
1937 cltype = type_nullable__nitc__AExpr.color;
1938 idtype = type_nullable__nitc__AExpr.id;
1939 if(var_pexprnode2 == NULL) {
1940 var2 = 1;
1941 } else {
1942 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
1943 var2 = 0;
1944 } else {
1945 var2 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
1946 }
1947 }
1948 if (unlikely(!var2)) {
1949 PRINT_ERROR("Runtime error: %s", "Assert failed");
1950 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12348);
1951 fatal_exit(1);
1952 }
1953 var_tkwinitnode3 = var_nodearraylist2;
1954 /* <var_tkwinitnode3:nullable Object> isa nullable TKwinit */
1955 cltype4 = type_nullable__nitc__TKwinit.color;
1956 idtype5 = type_nullable__nitc__TKwinit.id;
1957 if(var_tkwinitnode3 == NULL) {
1958 var3 = 1;
1959 } else {
1960 if(cltype4 >= (((long)var_tkwinitnode3&3)?type_info[((long)var_tkwinitnode3&3)]:var_tkwinitnode3->type)->table_size) {
1961 var3 = 0;
1962 } else {
1963 var3 = (((long)var_tkwinitnode3&3)?type_info[((long)var_tkwinitnode3&3)]:var_tkwinitnode3->type)->type_table[cltype4] == idtype5;
1964 }
1965 }
1966 if (unlikely(!var3)) {
1967 PRINT_ERROR("Runtime error: %s", "Assert failed");
1968 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12350);
1969 fatal_exit(1);
1970 }
1971 var6 = NEW_core__Array(&type_core__Array__core__Object);
1972 {
1973 core___core__Array___core__kernel__Object__init(var6); /* Direct call array#Array#init on <var6:Array[Object]>*/
1974 }
1975 var_listnode5 = var6;
1976 var7 = NEW_nitc__AListExprs(&type_nitc__AListExprs);
1977 {
1978 nitc__parser_prod___AListExprs___init_alistexprs(var7, var_listnode5); /* Direct call parser_prod#AListExprs#init_alistexprs on <var7:AListExprs>*/
1979 }
1980 var_pexprsnode4 = var7;
1981 var8 = NEW_nitc__AInitExpr(&type_nitc__AInitExpr);
1982 {
1983 nitc__parser_prod___AInitExpr___init_ainitexpr(var8, var_pexprnode2, var_tkwinitnode3, var_pexprsnode4); /* Direct call parser_prod#AInitExpr#init_ainitexpr on <var8:AInitExpr>*/
1984 }
1985 var_pexprnode1 = var8;
1986 var_node_list = var_pexprnode1;
1987 var9 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction867> */
1988 {
1989 var10 = nitc___nitc__Parser___go_to(var_p, var9);
1990 }
1991 {
1992 nitc___nitc__Parser___push(var_p, var10, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
1993 }
1994 RET_LABEL:;
1995 }
1996 /* method parser#ReduceAction891#action for (self: ReduceAction891, Parser) */
1997 void nitc__parser___nitc__parser__ReduceAction891___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
1998 val* var_p /* var p: Parser */;
1999 val* var_node_list /* var node_list: nullable Object */;
2000 val* var /* : nullable Object */;
2001 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2002 val* var1 /* : nullable Object */;
2003 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2004 val* var2 /* : nullable Object */;
2005 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2006 val* var_pexprnode1 /* var pexprnode1: nullable Object */;
2007 long var3 /* : Int */;
2008 long var4 /* : Int */;
2009 var_p = p0;
2010 var_node_list = ((val*)NULL);
2011 {
2012 var = nitc___nitc__Parser___pop(var_p);
2013 }
2014 var_nodearraylist3 = var;
2015 {
2016 var1 = nitc___nitc__Parser___pop(var_p);
2017 }
2018 var_nodearraylist2 = var1;
2019 {
2020 var2 = nitc___nitc__Parser___pop(var_p);
2021 }
2022 var_nodearraylist1 = var2;
2023 var_pexprnode1 = var_nodearraylist1;
2024 var_node_list = var_pexprnode1;
2025 var3 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction891> */
2026 {
2027 var4 = nitc___nitc__Parser___go_to(var_p, var3);
2028 }
2029 {
2030 nitc___nitc__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
2031 }
2032 RET_LABEL:;
2033 }
2034 /* method parser#ReduceAction892#action for (self: ReduceAction892, Parser) */
2035 void nitc__parser___nitc__parser__ReduceAction892___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
2036 val* var_p /* var p: Parser */;
2037 val* var_node_list /* var node_list: nullable Object */;
2038 val* var /* : AImplicitSelfExpr */;
2039 val* var_pexprnode1 /* var pexprnode1: nullable AImplicitSelfExpr */;
2040 long var1 /* : Int */;
2041 long var2 /* : Int */;
2042 var_p = p0;
2043 var_node_list = ((val*)NULL);
2044 var = NEW_nitc__AImplicitSelfExpr(&type_nitc__AImplicitSelfExpr);
2045 {
2046 nitc__parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(var); /* Direct call parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr on <var:AImplicitSelfExpr>*/
2047 }
2048 var_pexprnode1 = var;
2049 var_node_list = var_pexprnode1;
2050 var1 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction892> */
2051 {
2052 var2 = nitc___nitc__Parser___go_to(var_p, var1);
2053 }
2054 {
2055 nitc___nitc__Parser___push(var_p, var2, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
2056 }
2057 RET_LABEL:;
2058 }
2059 /* method parser#ReduceAction1053#action for (self: ReduceAction1053, Parser) */
2060 void nitc__parser___nitc__parser__ReduceAction1053___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
2061 val* var_p /* var p: Parser */;
2062 val* var_node_list /* var node_list: nullable Object */;
2063 val* var /* : nullable Object */;
2064 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2065 val* var1 /* : Array[Object] */;
2066 val* var_listnode2 /* var listnode2: Array[Object] */;
2067 val* var_pimportnode1 /* var pimportnode1: nullable Object */;
2068 short int var2 /* : Bool */;
2069 short int var3 /* : Bool */;
2070 long var4 /* : Int */;
2071 long var5 /* : Int */;
2072 var_p = p0;
2073 var_node_list = ((val*)NULL);
2074 {
2075 var = nitc___nitc__Parser___pop(var_p);
2076 }
2077 var_nodearraylist1 = var;
2078 var1 = NEW_core__Array(&type_core__Array__core__Object);
2079 {
2080 core___core__Array___core__kernel__Object__init(var1); /* Direct call array#Array#init on <var1:Array[Object]>*/
2081 }
2082 var_listnode2 = var1;
2083 var_pimportnode1 = var_nodearraylist1;
2084 if (var_pimportnode1 == NULL) {
2085 var2 = 0; /* is null */
2086 } else {
2087 var2 = 1; /* arg is null and recv is not */
2088 }
2089 if (0) {
2090 var3 = ((short int(*)(val* self, val* p0))((((long)var_pimportnode1&3)?class_info[((long)var_pimportnode1&3)]:var_pimportnode1->class)->vft[COLOR_core__kernel__Object___33d_61d]))(var_pimportnode1, ((val*)NULL)); /* != on <var_pimportnode1:nullable Object>*/
2091 var2 = var3;
2092 }
2093 if (var2){
2094 {
2095 core___core__Array___core__abstract_collection__SimpleCollection__add(var_listnode2, var_pimportnode1); /* Direct call array#Array#add on <var_listnode2:Array[Object]>*/
2096 }
2097 } else {
2098 }
2099 var_node_list = var_listnode2;
2100 var4 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction1053> */
2101 {
2102 var5 = nitc___nitc__Parser___go_to(var_p, var4);
2103 }
2104 {
2105 nitc___nitc__Parser___push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
2106 }
2107 RET_LABEL:;
2108 }
2109 /* method parser#ReduceAction1054#action for (self: ReduceAction1054, Parser) */
2110 void nitc__parser___nitc__parser__ReduceAction1054___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
2111 val* var_p /* var p: Parser */;
2112 val* var_node_list /* var node_list: nullable Object */;
2113 val* var /* : nullable Object */;
2114 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2115 val* var1 /* : nullable Object */;
2116 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2117 val* var2 /* : Array[Object] */;
2118 val* var_listnode3 /* var listnode3: Array[Object] */;
2119 val* var_listnode1 /* var listnode1: nullable Object */;
2120 short int var3 /* : Bool */;
2121 int cltype;
2122 int idtype;
2123 val* var_pimportnode2 /* var pimportnode2: nullable Object */;
2124 val* var4 /* : Array[Object] */;
2125 short int var5 /* : Bool */;
2126 short int var6 /* : Bool */;
2127 long var7 /* : Int */;
2128 long var8 /* : Int */;
2129 var_p = p0;
2130 var_node_list = ((val*)NULL);
2131 {
2132 var = nitc___nitc__Parser___pop(var_p);
2133 }
2134 var_nodearraylist2 = var;
2135 {
2136 var1 = nitc___nitc__Parser___pop(var_p);
2137 }
2138 var_nodearraylist1 = var1;
2139 var2 = NEW_core__Array(&type_core__Array__core__Object);
2140 {
2141 core___core__Array___core__kernel__Object__init(var2); /* Direct call array#Array#init on <var2:Array[Object]>*/
2142 }
2143 var_listnode3 = var2;
2144 var_listnode1 = var_nodearraylist1;
2145 /* <var_listnode1:nullable Object> isa Array[Object] */
2146 cltype = type_core__Array__core__Object.color;
2147 idtype = type_core__Array__core__Object.id;
2148 if(var_listnode1 == NULL) {
2149 var3 = 0;
2150 } else {
2151 if(cltype >= (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->table_size) {
2152 var3 = 0;
2153 } else {
2154 var3 = (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->type_table[cltype] == idtype;
2155 }
2156 }
2157 if (unlikely(!var3)) {
2158 PRINT_ERROR("Runtime error: %s", "Assert failed");
2159 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12411);
2160 fatal_exit(1);
2161 }
2162 var_pimportnode2 = var_nodearraylist2;
2163 {
2164 var4 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode1);
2165 }
2166 var_listnode3 = var4;
2167 if (var_pimportnode2 == NULL) {
2168 var5 = 0; /* is null */
2169 } else {
2170 var5 = 1; /* arg is null and recv is not */
2171 }
2172 if (0) {
2173 var6 = ((short int(*)(val* self, val* p0))((((long)var_pimportnode2&3)?class_info[((long)var_pimportnode2&3)]:var_pimportnode2->class)->vft[COLOR_core__kernel__Object___33d_61d]))(var_pimportnode2, ((val*)NULL)); /* != on <var_pimportnode2:nullable Object>*/
2174 var5 = var6;
2175 }
2176 if (var5){
2177 {
2178 core___core__Array___core__abstract_collection__SimpleCollection__add(var_listnode3, var_pimportnode2); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
2179 }
2180 } else {
2181 }
2182 var_node_list = var_listnode3;
2183 var7 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction1054> */
2184 {
2185 var8 = nitc___nitc__Parser___go_to(var_p, var7);
2186 }
2187 {
2188 nitc___nitc__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
2189 }
2190 RET_LABEL:;
2191 }
2192 /* method parser#ReduceAction1055#action for (self: ReduceAction1055, Parser) */
2193 void nitc__parser___nitc__parser__ReduceAction1055___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
2194 val* var_p /* var p: Parser */;
2195 val* var_node_list /* var node_list: nullable Object */;
2196 val* var /* : nullable Object */;
2197 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2198 val* var1 /* : Array[Object] */;
2199 val* var_listnode2 /* var listnode2: Array[Object] */;
2200 val* var_pexterncodeblocknode1 /* var pexterncodeblocknode1: nullable Object */;
2201 short int var2 /* : Bool */;
2202 short int var3 /* : Bool */;
2203 long var4 /* : Int */;
2204 long var5 /* : Int */;
2205 var_p = p0;
2206 var_node_list = ((val*)NULL);
2207 {
2208 var = nitc___nitc__Parser___pop(var_p);
2209 }
2210 var_nodearraylist1 = var;
2211 var1 = NEW_core__Array(&type_core__Array__core__Object);
2212 {
2213 core___core__Array___core__kernel__Object__init(var1); /* Direct call array#Array#init on <var1:Array[Object]>*/
2214 }
2215 var_listnode2 = var1;
2216 var_pexterncodeblocknode1 = var_nodearraylist1;
2217 if (var_pexterncodeblocknode1 == NULL) {
2218 var2 = 0; /* is null */
2219 } else {
2220 var2 = 1; /* arg is null and recv is not */
2221 }
2222 if (0) {
2223 var3 = ((short int(*)(val* self, val* p0))((((long)var_pexterncodeblocknode1&3)?class_info[((long)var_pexterncodeblocknode1&3)]:var_pexterncodeblocknode1->class)->vft[COLOR_core__kernel__Object___33d_61d]))(var_pexterncodeblocknode1, ((val*)NULL)); /* != on <var_pexterncodeblocknode1:nullable Object>*/
2224 var2 = var3;
2225 }
2226 if (var2){
2227 {
2228 core___core__Array___core__abstract_collection__SimpleCollection__add(var_listnode2, var_pexterncodeblocknode1); /* Direct call array#Array#add on <var_listnode2:Array[Object]>*/
2229 }
2230 } else {
2231 }
2232 var_node_list = var_listnode2;
2233 var4 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction1055> */
2234 {
2235 var5 = nitc___nitc__Parser___go_to(var_p, var4);
2236 }
2237 {
2238 nitc___nitc__Parser___push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
2239 }
2240 RET_LABEL:;
2241 }
2242 /* method parser#ReduceAction1056#action for (self: ReduceAction1056, Parser) */
2243 void nitc__parser___nitc__parser__ReduceAction1056___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
2244 val* var_p /* var p: Parser */;
2245 val* var_node_list /* var node_list: nullable Object */;
2246 val* var /* : nullable Object */;
2247 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2248 val* var1 /* : nullable Object */;
2249 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2250 val* var2 /* : Array[Object] */;
2251 val* var_listnode3 /* var listnode3: Array[Object] */;
2252 val* var_listnode1 /* var listnode1: nullable Object */;
2253 short int var3 /* : Bool */;
2254 int cltype;
2255 int idtype;
2256 val* var_pexterncodeblocknode2 /* var pexterncodeblocknode2: nullable Object */;
2257 val* var4 /* : Array[Object] */;
2258 short int var5 /* : Bool */;
2259 short int var6 /* : Bool */;
2260 long var7 /* : Int */;
2261 long var8 /* : Int */;
2262 var_p = p0;
2263 var_node_list = ((val*)NULL);
2264 {
2265 var = nitc___nitc__Parser___pop(var_p);
2266 }
2267 var_nodearraylist2 = var;
2268 {
2269 var1 = nitc___nitc__Parser___pop(var_p);
2270 }
2271 var_nodearraylist1 = var1;
2272 var2 = NEW_core__Array(&type_core__Array__core__Object);
2273 {
2274 core___core__Array___core__kernel__Object__init(var2); /* Direct call array#Array#init on <var2:Array[Object]>*/
2275 }
2276 var_listnode3 = var2;
2277 var_listnode1 = var_nodearraylist1;
2278 /* <var_listnode1:nullable Object> isa Array[Object] */
2279 cltype = type_core__Array__core__Object.color;
2280 idtype = type_core__Array__core__Object.id;
2281 if(var_listnode1 == NULL) {
2282 var3 = 0;
2283 } else {
2284 if(cltype >= (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->table_size) {
2285 var3 = 0;
2286 } else {
2287 var3 = (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->type_table[cltype] == idtype;
2288 }
2289 }
2290 if (unlikely(!var3)) {
2291 PRINT_ERROR("Runtime error: %s", "Assert failed");
2292 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12445);
2293 fatal_exit(1);
2294 }
2295 var_pexterncodeblocknode2 = var_nodearraylist2;
2296 {
2297 var4 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode1);
2298 }
2299 var_listnode3 = var4;
2300 if (var_pexterncodeblocknode2 == NULL) {
2301 var5 = 0; /* is null */
2302 } else {
2303 var5 = 1; /* arg is null and recv is not */
2304 }
2305 if (0) {
2306 var6 = ((short int(*)(val* self, val* p0))((((long)var_pexterncodeblocknode2&3)?class_info[((long)var_pexterncodeblocknode2&3)]:var_pexterncodeblocknode2->class)->vft[COLOR_core__kernel__Object___33d_61d]))(var_pexterncodeblocknode2, ((val*)NULL)); /* != on <var_pexterncodeblocknode2:nullable Object>*/
2307 var5 = var6;
2308 }
2309 if (var5){
2310 {
2311 core___core__Array___core__abstract_collection__SimpleCollection__add(var_listnode3, var_pexterncodeblocknode2); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
2312 }
2313 } else {
2314 }
2315 var_node_list = var_listnode3;
2316 var7 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction1056> */
2317 {
2318 var8 = nitc___nitc__Parser___go_to(var_p, var7);
2319 }
2320 {
2321 nitc___nitc__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
2322 }
2323 RET_LABEL:;
2324 }
2325 /* method parser#ReduceAction1057#action for (self: ReduceAction1057, Parser) */
2326 void nitc__parser___nitc__parser__ReduceAction1057___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
2327 val* var_p /* var p: Parser */;
2328 val* var_node_list /* var node_list: nullable Object */;
2329 val* var /* : nullable Object */;
2330 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2331 val* var1 /* : Array[Object] */;
2332 val* var_listnode2 /* var listnode2: Array[Object] */;
2333 val* var_pclassdefnode1 /* var pclassdefnode1: nullable Object */;
2334 short int var2 /* : Bool */;
2335 short int var3 /* : Bool */;
2336 long var4 /* : Int */;
2337 long var5 /* : Int */;
2338 var_p = p0;
2339 var_node_list = ((val*)NULL);
2340 {
2341 var = nitc___nitc__Parser___pop(var_p);
2342 }
2343 var_nodearraylist1 = var;
2344 var1 = NEW_core__Array(&type_core__Array__core__Object);
2345 {
2346 core___core__Array___core__kernel__Object__init(var1); /* Direct call array#Array#init on <var1:Array[Object]>*/
2347 }
2348 var_listnode2 = var1;
2349 var_pclassdefnode1 = var_nodearraylist1;
2350 if (var_pclassdefnode1 == NULL) {
2351 var2 = 0; /* is null */
2352 } else {
2353 var2 = 1; /* arg is null and recv is not */
2354 }
2355 if (0) {
2356 var3 = ((short int(*)(val* self, val* p0))((((long)var_pclassdefnode1&3)?class_info[((long)var_pclassdefnode1&3)]:var_pclassdefnode1->class)->vft[COLOR_core__kernel__Object___33d_61d]))(var_pclassdefnode1, ((val*)NULL)); /* != on <var_pclassdefnode1:nullable Object>*/
2357 var2 = var3;
2358 }
2359 if (var2){
2360 {
2361 core___core__Array___core__abstract_collection__SimpleCollection__add(var_listnode2, var_pclassdefnode1); /* Direct call array#Array#add on <var_listnode2:Array[Object]>*/
2362 }
2363 } else {
2364 }
2365 var_node_list = var_listnode2;
2366 var4 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction1057> */
2367 {
2368 var5 = nitc___nitc__Parser___go_to(var_p, var4);
2369 }
2370 {
2371 nitc___nitc__Parser___push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
2372 }
2373 RET_LABEL:;
2374 }
2375 /* method parser#ReduceAction1058#action for (self: ReduceAction1058, Parser) */
2376 void nitc__parser___nitc__parser__ReduceAction1058___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
2377 val* var_p /* var p: Parser */;
2378 val* var_node_list /* var node_list: nullable Object */;
2379 val* var /* : nullable Object */;
2380 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2381 val* var1 /* : nullable Object */;
2382 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2383 val* var2 /* : Array[Object] */;
2384 val* var_listnode3 /* var listnode3: Array[Object] */;
2385 val* var_listnode1 /* var listnode1: nullable Object */;
2386 short int var3 /* : Bool */;
2387 int cltype;
2388 int idtype;
2389 val* var_pclassdefnode2 /* var pclassdefnode2: nullable Object */;
2390 val* var4 /* : Array[Object] */;
2391 short int var5 /* : Bool */;
2392 short int var6 /* : Bool */;
2393 long var7 /* : Int */;
2394 long var8 /* : Int */;
2395 var_p = p0;
2396 var_node_list = ((val*)NULL);
2397 {
2398 var = nitc___nitc__Parser___pop(var_p);
2399 }
2400 var_nodearraylist2 = var;
2401 {
2402 var1 = nitc___nitc__Parser___pop(var_p);
2403 }
2404 var_nodearraylist1 = var1;
2405 var2 = NEW_core__Array(&type_core__Array__core__Object);
2406 {
2407 core___core__Array___core__kernel__Object__init(var2); /* Direct call array#Array#init on <var2:Array[Object]>*/
2408 }
2409 var_listnode3 = var2;
2410 var_listnode1 = var_nodearraylist1;
2411 /* <var_listnode1:nullable Object> isa Array[Object] */
2412 cltype = type_core__Array__core__Object.color;
2413 idtype = type_core__Array__core__Object.id;
2414 if(var_listnode1 == NULL) {
2415 var3 = 0;
2416 } else {
2417 if(cltype >= (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->table_size) {
2418 var3 = 0;
2419 } else {
2420 var3 = (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->type_table[cltype] == idtype;
2421 }
2422 }
2423 if (unlikely(!var3)) {
2424 PRINT_ERROR("Runtime error: %s", "Assert failed");
2425 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12479);
2426 fatal_exit(1);
2427 }
2428 var_pclassdefnode2 = var_nodearraylist2;
2429 {
2430 var4 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode1);
2431 }
2432 var_listnode3 = var4;
2433 if (var_pclassdefnode2 == NULL) {
2434 var5 = 0; /* is null */
2435 } else {
2436 var5 = 1; /* arg is null and recv is not */
2437 }
2438 if (0) {
2439 var6 = ((short int(*)(val* self, val* p0))((((long)var_pclassdefnode2&3)?class_info[((long)var_pclassdefnode2&3)]:var_pclassdefnode2->class)->vft[COLOR_core__kernel__Object___33d_61d]))(var_pclassdefnode2, ((val*)NULL)); /* != on <var_pclassdefnode2:nullable Object>*/
2440 var5 = var6;
2441 }
2442 if (var5){
2443 {
2444 core___core__Array___core__abstract_collection__SimpleCollection__add(var_listnode3, var_pclassdefnode2); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
2445 }
2446 } else {
2447 }
2448 var_node_list = var_listnode3;
2449 var7 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction1058> */
2450 {
2451 var8 = nitc___nitc__Parser___go_to(var_p, var7);
2452 }
2453 {
2454 nitc___nitc__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
2455 }
2456 RET_LABEL:;
2457 }
2458 /* method parser#ReduceAction1060#action for (self: ReduceAction1060, Parser) */
2459 void nitc__parser___nitc__parser__ReduceAction1060___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
2460 val* var_p /* var p: Parser */;
2461 val* var_node_list /* var node_list: nullable Object */;
2462 val* var /* : nullable Object */;
2463 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2464 val* var1 /* : nullable Object */;
2465 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2466 val* var2 /* : Array[Object] */;
2467 val* var_listnode3 /* var listnode3: Array[Object] */;
2468 val* var_listnode1 /* var listnode1: nullable Object */;
2469 short int var3 /* : Bool */;
2470 int cltype;
2471 int idtype;
2472 val* var_pformaldefnode2 /* var pformaldefnode2: nullable Object */;
2473 val* var4 /* : Array[Object] */;
2474 short int var5 /* : Bool */;
2475 short int var6 /* : Bool */;
2476 long var7 /* : Int */;
2477 long var8 /* : Int */;
2478 var_p = p0;
2479 var_node_list = ((val*)NULL);
2480 {
2481 var = nitc___nitc__Parser___pop(var_p);
2482 }
2483 var_nodearraylist2 = var;
2484 {
2485 var1 = nitc___nitc__Parser___pop(var_p);
2486 }
2487 var_nodearraylist1 = var1;
2488 var2 = NEW_core__Array(&type_core__Array__core__Object);
2489 {
2490 core___core__Array___core__kernel__Object__init(var2); /* Direct call array#Array#init on <var2:Array[Object]>*/
2491 }
2492 var_listnode3 = var2;
2493 var_listnode1 = var_nodearraylist1;
2494 /* <var_listnode1:nullable Object> isa Array[Object] */
2495 cltype = type_core__Array__core__Object.color;
2496 idtype = type_core__Array__core__Object.id;
2497 if(var_listnode1 == NULL) {
2498 var3 = 0;
2499 } else {
2500 if(cltype >= (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->table_size) {
2501 var3 = 0;
2502 } else {
2503 var3 = (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->type_table[cltype] == idtype;
2504 }
2505 }
2506 if (unlikely(!var3)) {
2507 PRINT_ERROR("Runtime error: %s", "Assert failed");
2508 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12498);
2509 fatal_exit(1);
2510 }
2511 var_pformaldefnode2 = var_nodearraylist2;
2512 {
2513 var4 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode1);
2514 }
2515 var_listnode3 = var4;
2516 if (var_pformaldefnode2 == NULL) {
2517 var5 = 0; /* is null */
2518 } else {
2519 var5 = 1; /* arg is null and recv is not */
2520 }
2521 if (0) {
2522 var6 = ((short int(*)(val* self, val* p0))((((long)var_pformaldefnode2&3)?class_info[((long)var_pformaldefnode2&3)]:var_pformaldefnode2->class)->vft[COLOR_core__kernel__Object___33d_61d]))(var_pformaldefnode2, ((val*)NULL)); /* != on <var_pformaldefnode2:nullable Object>*/
2523 var5 = var6;
2524 }
2525 if (var5){
2526 {
2527 core___core__Array___core__abstract_collection__SimpleCollection__add(var_listnode3, var_pformaldefnode2); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
2528 }
2529 } else {
2530 }
2531 var_node_list = var_listnode3;
2532 var7 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction1060> */
2533 {
2534 var8 = nitc___nitc__Parser___go_to(var_p, var7);
2535 }
2536 {
2537 nitc___nitc__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
2538 }
2539 RET_LABEL:;
2540 }
2541 /* method parser#ReduceAction1062#action for (self: ReduceAction1062, Parser) */
2542 void nitc__parser___nitc__parser__ReduceAction1062___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
2543 val* var_p /* var p: Parser */;
2544 val* var_node_list /* var node_list: nullable Object */;
2545 val* var /* : nullable Object */;
2546 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2547 val* var1 /* : nullable Object */;
2548 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2549 val* var2 /* : Array[Object] */;
2550 val* var_listnode3 /* var listnode3: Array[Object] */;
2551 val* var_listnode1 /* var listnode1: nullable Object */;
2552 short int var3 /* : Bool */;
2553 int cltype;
2554 int idtype;
2555 val* var_ppropdefnode2 /* var ppropdefnode2: nullable Object */;
2556 val* var4 /* : Array[Object] */;
2557 short int var5 /* : Bool */;
2558 short int var6 /* : Bool */;
2559 long var7 /* : Int */;
2560 long var8 /* : Int */;
2561 var_p = p0;
2562 var_node_list = ((val*)NULL);
2563 {
2564 var = nitc___nitc__Parser___pop(var_p);
2565 }
2566 var_nodearraylist2 = var;
2567 {
2568 var1 = nitc___nitc__Parser___pop(var_p);
2569 }
2570 var_nodearraylist1 = var1;
2571 var2 = NEW_core__Array(&type_core__Array__core__Object);
2572 {
2573 core___core__Array___core__kernel__Object__init(var2); /* Direct call array#Array#init on <var2:Array[Object]>*/
2574 }
2575 var_listnode3 = var2;
2576 var_listnode1 = var_nodearraylist1;
2577 /* <var_listnode1:nullable Object> isa Array[Object] */
2578 cltype = type_core__Array__core__Object.color;
2579 idtype = type_core__Array__core__Object.id;
2580 if(var_listnode1 == NULL) {
2581 var3 = 0;
2582 } else {
2583 if(cltype >= (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->table_size) {
2584 var3 = 0;
2585 } else {
2586 var3 = (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->type_table[cltype] == idtype;
2587 }
2588 }
2589 if (unlikely(!var3)) {
2590 PRINT_ERROR("Runtime error: %s", "Assert failed");
2591 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12517);
2592 fatal_exit(1);
2593 }
2594 var_ppropdefnode2 = var_nodearraylist2;
2595 {
2596 var4 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode1);
2597 }
2598 var_listnode3 = var4;
2599 if (var_ppropdefnode2 == NULL) {
2600 var5 = 0; /* is null */
2601 } else {
2602 var5 = 1; /* arg is null and recv is not */
2603 }
2604 if (0) {
2605 var6 = ((short int(*)(val* self, val* p0))((((long)var_ppropdefnode2&3)?class_info[((long)var_ppropdefnode2&3)]:var_ppropdefnode2->class)->vft[COLOR_core__kernel__Object___33d_61d]))(var_ppropdefnode2, ((val*)NULL)); /* != on <var_ppropdefnode2:nullable Object>*/
2606 var5 = var6;
2607 }
2608 if (var5){
2609 {
2610 core___core__Array___core__abstract_collection__SimpleCollection__add(var_listnode3, var_ppropdefnode2); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
2611 }
2612 } else {
2613 }
2614 var_node_list = var_listnode3;
2615 var7 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction1062> */
2616 {
2617 var8 = nitc___nitc__Parser___go_to(var_p, var7);
2618 }
2619 {
2620 nitc___nitc__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
2621 }
2622 RET_LABEL:;
2623 }
2624 /* method parser#ReduceAction1064#action for (self: ReduceAction1064, Parser) */
2625 void nitc__parser___nitc__parser__ReduceAction1064___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
2626 val* var_p /* var p: Parser */;
2627 val* var_node_list /* var node_list: nullable Object */;
2628 val* var /* : nullable Object */;
2629 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2630 val* var1 /* : nullable Object */;
2631 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2632 val* var2 /* : Array[Object] */;
2633 val* var_listnode3 /* var listnode3: Array[Object] */;
2634 val* var_listnode1 /* var listnode1: nullable Object */;
2635 short int var3 /* : Bool */;
2636 int cltype;
2637 int idtype;
2638 val* var_pannotationnode2 /* var pannotationnode2: nullable Object */;
2639 val* var4 /* : Array[Object] */;
2640 short int var5 /* : Bool */;
2641 short int var6 /* : Bool */;
2642 long var7 /* : Int */;
2643 long var8 /* : Int */;
2644 var_p = p0;
2645 var_node_list = ((val*)NULL);
2646 {
2647 var = nitc___nitc__Parser___pop(var_p);
2648 }
2649 var_nodearraylist2 = var;
2650 {
2651 var1 = nitc___nitc__Parser___pop(var_p);
2652 }
2653 var_nodearraylist1 = var1;
2654 var2 = NEW_core__Array(&type_core__Array__core__Object);
2655 {
2656 core___core__Array___core__kernel__Object__init(var2); /* Direct call array#Array#init on <var2:Array[Object]>*/
2657 }
2658 var_listnode3 = var2;
2659 var_listnode1 = var_nodearraylist1;
2660 /* <var_listnode1:nullable Object> isa Array[Object] */
2661 cltype = type_core__Array__core__Object.color;
2662 idtype = type_core__Array__core__Object.id;
2663 if(var_listnode1 == NULL) {
2664 var3 = 0;
2665 } else {
2666 if(cltype >= (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->table_size) {
2667 var3 = 0;
2668 } else {
2669 var3 = (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->type_table[cltype] == idtype;
2670 }
2671 }
2672 if (unlikely(!var3)) {
2673 PRINT_ERROR("Runtime error: %s", "Assert failed");
2674 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12536);
2675 fatal_exit(1);
2676 }
2677 var_pannotationnode2 = var_nodearraylist2;
2678 {
2679 var4 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode1);
2680 }
2681 var_listnode3 = var4;
2682 if (var_pannotationnode2 == NULL) {
2683 var5 = 0; /* is null */
2684 } else {
2685 var5 = 1; /* arg is null and recv is not */
2686 }
2687 if (0) {
2688 var6 = ((short int(*)(val* self, val* p0))((((long)var_pannotationnode2&3)?class_info[((long)var_pannotationnode2&3)]:var_pannotationnode2->class)->vft[COLOR_core__kernel__Object___33d_61d]))(var_pannotationnode2, ((val*)NULL)); /* != on <var_pannotationnode2:nullable Object>*/
2689 var5 = var6;
2690 }
2691 if (var5){
2692 {
2693 core___core__Array___core__abstract_collection__SimpleCollection__add(var_listnode3, var_pannotationnode2); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
2694 }
2695 } else {
2696 }
2697 var_node_list = var_listnode3;
2698 var7 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction1064> */
2699 {
2700 var8 = nitc___nitc__Parser___go_to(var_p, var7);
2701 }
2702 {
2703 nitc___nitc__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
2704 }
2705 RET_LABEL:;
2706 }
2707 /* method parser#ReduceAction1065#action for (self: ReduceAction1065, Parser) */
2708 void nitc__parser___nitc__parser__ReduceAction1065___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
2709 val* var_p /* var p: Parser */;
2710 val* var_node_list /* var node_list: nullable Object */;
2711 val* var /* : nullable Object */;
2712 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2713 val* var1 /* : Array[Object] */;
2714 val* var_listnode2 /* var listnode2: Array[Object] */;
2715 val* var_pparamnode1 /* var pparamnode1: nullable Object */;
2716 short int var2 /* : Bool */;
2717 short int var3 /* : Bool */;
2718 long var4 /* : Int */;
2719 long var5 /* : Int */;
2720 var_p = p0;
2721 var_node_list = ((val*)NULL);
2722 {
2723 var = nitc___nitc__Parser___pop(var_p);
2724 }
2725 var_nodearraylist1 = var;
2726 var1 = NEW_core__Array(&type_core__Array__core__Object);
2727 {
2728 core___core__Array___core__kernel__Object__init(var1); /* Direct call array#Array#init on <var1:Array[Object]>*/
2729 }
2730 var_listnode2 = var1;
2731 var_pparamnode1 = var_nodearraylist1;
2732 if (var_pparamnode1 == NULL) {
2733 var2 = 0; /* is null */
2734 } else {
2735 var2 = 1; /* arg is null and recv is not */
2736 }
2737 if (0) {
2738 var3 = ((short int(*)(val* self, val* p0))((((long)var_pparamnode1&3)?class_info[((long)var_pparamnode1&3)]:var_pparamnode1->class)->vft[COLOR_core__kernel__Object___33d_61d]))(var_pparamnode1, ((val*)NULL)); /* != on <var_pparamnode1:nullable Object>*/
2739 var2 = var3;
2740 }
2741 if (var2){
2742 {
2743 core___core__Array___core__abstract_collection__SimpleCollection__add(var_listnode2, var_pparamnode1); /* Direct call array#Array#add on <var_listnode2:Array[Object]>*/
2744 }
2745 } else {
2746 }
2747 var_node_list = var_listnode2;
2748 var4 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction1065> */
2749 {
2750 var5 = nitc___nitc__Parser___go_to(var_p, var4);
2751 }
2752 {
2753 nitc___nitc__Parser___push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
2754 }
2755 RET_LABEL:;
2756 }
2757 /* method parser#ReduceAction1066#action for (self: ReduceAction1066, Parser) */
2758 void nitc__parser___nitc__parser__ReduceAction1066___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
2759 val* var_p /* var p: Parser */;
2760 val* var_node_list /* var node_list: nullable Object */;
2761 val* var /* : nullable Object */;
2762 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2763 val* var1 /* : nullable Object */;
2764 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2765 val* var2 /* : Array[Object] */;
2766 val* var_listnode3 /* var listnode3: Array[Object] */;
2767 val* var_listnode1 /* var listnode1: nullable Object */;
2768 short int var3 /* : Bool */;
2769 int cltype;
2770 int idtype;
2771 val* var_pparamnode2 /* var pparamnode2: nullable Object */;
2772 val* var4 /* : Array[Object] */;
2773 short int var5 /* : Bool */;
2774 short int var6 /* : Bool */;
2775 long var7 /* : Int */;
2776 long var8 /* : Int */;
2777 var_p = p0;
2778 var_node_list = ((val*)NULL);
2779 {
2780 var = nitc___nitc__Parser___pop(var_p);
2781 }
2782 var_nodearraylist2 = var;
2783 {
2784 var1 = nitc___nitc__Parser___pop(var_p);
2785 }
2786 var_nodearraylist1 = var1;
2787 var2 = NEW_core__Array(&type_core__Array__core__Object);
2788 {
2789 core___core__Array___core__kernel__Object__init(var2); /* Direct call array#Array#init on <var2:Array[Object]>*/
2790 }
2791 var_listnode3 = var2;
2792 var_listnode1 = var_nodearraylist1;
2793 /* <var_listnode1:nullable Object> isa Array[Object] */
2794 cltype = type_core__Array__core__Object.color;
2795 idtype = type_core__Array__core__Object.id;
2796 if(var_listnode1 == NULL) {
2797 var3 = 0;
2798 } else {
2799 if(cltype >= (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->table_size) {
2800 var3 = 0;
2801 } else {
2802 var3 = (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->type_table[cltype] == idtype;
2803 }
2804 }
2805 if (unlikely(!var3)) {
2806 PRINT_ERROR("Runtime error: %s", "Assert failed");
2807 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12570);
2808 fatal_exit(1);
2809 }
2810 var_pparamnode2 = var_nodearraylist2;
2811 {
2812 var4 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode1);
2813 }
2814 var_listnode3 = var4;
2815 if (var_pparamnode2 == NULL) {
2816 var5 = 0; /* is null */
2817 } else {
2818 var5 = 1; /* arg is null and recv is not */
2819 }
2820 if (0) {
2821 var6 = ((short int(*)(val* self, val* p0))((((long)var_pparamnode2&3)?class_info[((long)var_pparamnode2&3)]:var_pparamnode2->class)->vft[COLOR_core__kernel__Object___33d_61d]))(var_pparamnode2, ((val*)NULL)); /* != on <var_pparamnode2:nullable Object>*/
2822 var5 = var6;
2823 }
2824 if (var5){
2825 {
2826 core___core__Array___core__abstract_collection__SimpleCollection__add(var_listnode3, var_pparamnode2); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
2827 }
2828 } else {
2829 }
2830 var_node_list = var_listnode3;
2831 var7 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction1066> */
2832 {
2833 var8 = nitc___nitc__Parser___go_to(var_p, var7);
2834 }
2835 {
2836 nitc___nitc__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
2837 }
2838 RET_LABEL:;
2839 }
2840 /* method parser#ReduceAction1067#action for (self: ReduceAction1067, Parser) */
2841 void nitc__parser___nitc__parser__ReduceAction1067___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
2842 val* var_p /* var p: Parser */;
2843 val* var_node_list /* var node_list: nullable Object */;
2844 val* var /* : nullable Object */;
2845 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2846 val* var1 /* : Array[Object] */;
2847 val* var_listnode2 /* var listnode2: Array[Object] */;
2848 val* var_pexterncallnode1 /* var pexterncallnode1: nullable Object */;
2849 short int var2 /* : Bool */;
2850 short int var3 /* : Bool */;
2851 long var4 /* : Int */;
2852 long var5 /* : Int */;
2853 var_p = p0;
2854 var_node_list = ((val*)NULL);
2855 {
2856 var = nitc___nitc__Parser___pop(var_p);
2857 }
2858 var_nodearraylist1 = var;
2859 var1 = NEW_core__Array(&type_core__Array__core__Object);
2860 {
2861 core___core__Array___core__kernel__Object__init(var1); /* Direct call array#Array#init on <var1:Array[Object]>*/
2862 }
2863 var_listnode2 = var1;
2864 var_pexterncallnode1 = var_nodearraylist1;
2865 if (var_pexterncallnode1 == NULL) {
2866 var2 = 0; /* is null */
2867 } else {
2868 var2 = 1; /* arg is null and recv is not */
2869 }
2870 if (0) {
2871 var3 = ((short int(*)(val* self, val* p0))((((long)var_pexterncallnode1&3)?class_info[((long)var_pexterncallnode1&3)]:var_pexterncallnode1->class)->vft[COLOR_core__kernel__Object___33d_61d]))(var_pexterncallnode1, ((val*)NULL)); /* != on <var_pexterncallnode1:nullable Object>*/
2872 var2 = var3;
2873 }
2874 if (var2){
2875 {
2876 core___core__Array___core__abstract_collection__SimpleCollection__add(var_listnode2, var_pexterncallnode1); /* Direct call array#Array#add on <var_listnode2:Array[Object]>*/
2877 }
2878 } else {
2879 }
2880 var_node_list = var_listnode2;
2881 var4 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction1067> */
2882 {
2883 var5 = nitc___nitc__Parser___go_to(var_p, var4);
2884 }
2885 {
2886 nitc___nitc__Parser___push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
2887 }
2888 RET_LABEL:;
2889 }
2890 /* method parser#ReduceAction1068#action for (self: ReduceAction1068, Parser) */
2891 void nitc__parser___nitc__parser__ReduceAction1068___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
2892 val* var_p /* var p: Parser */;
2893 val* var_node_list /* var node_list: nullable Object */;
2894 val* var /* : nullable Object */;
2895 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2896 val* var1 /* : nullable Object */;
2897 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2898 val* var2 /* : Array[Object] */;
2899 val* var_listnode3 /* var listnode3: Array[Object] */;
2900 val* var_listnode1 /* var listnode1: nullable Object */;
2901 short int var3 /* : Bool */;
2902 int cltype;
2903 int idtype;
2904 val* var_pexterncallnode2 /* var pexterncallnode2: nullable Object */;
2905 val* var4 /* : Array[Object] */;
2906 short int var5 /* : Bool */;
2907 short int var6 /* : Bool */;
2908 long var7 /* : Int */;
2909 long var8 /* : Int */;
2910 var_p = p0;
2911 var_node_list = ((val*)NULL);
2912 {
2913 var = nitc___nitc__Parser___pop(var_p);
2914 }
2915 var_nodearraylist2 = var;
2916 {
2917 var1 = nitc___nitc__Parser___pop(var_p);
2918 }
2919 var_nodearraylist1 = var1;
2920 var2 = NEW_core__Array(&type_core__Array__core__Object);
2921 {
2922 core___core__Array___core__kernel__Object__init(var2); /* Direct call array#Array#init on <var2:Array[Object]>*/
2923 }
2924 var_listnode3 = var2;
2925 var_listnode1 = var_nodearraylist1;
2926 /* <var_listnode1:nullable Object> isa Array[Object] */
2927 cltype = type_core__Array__core__Object.color;
2928 idtype = type_core__Array__core__Object.id;
2929 if(var_listnode1 == NULL) {
2930 var3 = 0;
2931 } else {
2932 if(cltype >= (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->table_size) {
2933 var3 = 0;
2934 } else {
2935 var3 = (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->type_table[cltype] == idtype;
2936 }
2937 }
2938 if (unlikely(!var3)) {
2939 PRINT_ERROR("Runtime error: %s", "Assert failed");
2940 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12604);
2941 fatal_exit(1);
2942 }
2943 var_pexterncallnode2 = var_nodearraylist2;
2944 {
2945 var4 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode1);
2946 }
2947 var_listnode3 = var4;
2948 if (var_pexterncallnode2 == NULL) {
2949 var5 = 0; /* is null */
2950 } else {
2951 var5 = 1; /* arg is null and recv is not */
2952 }
2953 if (0) {
2954 var6 = ((short int(*)(val* self, val* p0))((((long)var_pexterncallnode2&3)?class_info[((long)var_pexterncallnode2&3)]:var_pexterncallnode2->class)->vft[COLOR_core__kernel__Object___33d_61d]))(var_pexterncallnode2, ((val*)NULL)); /* != on <var_pexterncallnode2:nullable Object>*/
2955 var5 = var6;
2956 }
2957 if (var5){
2958 {
2959 core___core__Array___core__abstract_collection__SimpleCollection__add(var_listnode3, var_pexterncallnode2); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
2960 }
2961 } else {
2962 }
2963 var_node_list = var_listnode3;
2964 var7 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction1068> */
2965 {
2966 var8 = nitc___nitc__Parser___go_to(var_p, var7);
2967 }
2968 {
2969 nitc___nitc__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
2970 }
2971 RET_LABEL:;
2972 }
2973 /* method parser#ReduceAction1070#action for (self: ReduceAction1070, Parser) */
2974 void nitc__parser___nitc__parser__ReduceAction1070___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
2975 val* var_p /* var p: Parser */;
2976 val* var_node_list /* var node_list: nullable Object */;
2977 val* var /* : nullable Object */;
2978 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2979 val* var1 /* : nullable Object */;
2980 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2981 val* var2 /* : Array[Object] */;
2982 val* var_listnode3 /* var listnode3: Array[Object] */;
2983 val* var_listnode1 /* var listnode1: nullable Object */;
2984 short int var3 /* : Bool */;
2985 int cltype;
2986 int idtype;
2987 val* var_ptypenode2 /* var ptypenode2: nullable Object */;
2988 val* var4 /* : Array[Object] */;
2989 short int var5 /* : Bool */;
2990 short int var6 /* : Bool */;
2991 long var7 /* : Int */;
2992 long var8 /* : Int */;
2993 var_p = p0;
2994 var_node_list = ((val*)NULL);
2995 {
2996 var = nitc___nitc__Parser___pop(var_p);
2997 }
2998 var_nodearraylist2 = var;
2999 {
3000 var1 = nitc___nitc__Parser___pop(var_p);
3001 }
3002 var_nodearraylist1 = var1;
3003 var2 = NEW_core__Array(&type_core__Array__core__Object);
3004 {
3005 core___core__Array___core__kernel__Object__init(var2); /* Direct call array#Array#init on <var2:Array[Object]>*/
3006 }
3007 var_listnode3 = var2;
3008 var_listnode1 = var_nodearraylist1;
3009 /* <var_listnode1:nullable Object> isa Array[Object] */
3010 cltype = type_core__Array__core__Object.color;
3011 idtype = type_core__Array__core__Object.id;
3012 if(var_listnode1 == NULL) {
3013 var3 = 0;
3014 } else {
3015 if(cltype >= (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->table_size) {
3016 var3 = 0;
3017 } else {
3018 var3 = (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->type_table[cltype] == idtype;
3019 }
3020 }
3021 if (unlikely(!var3)) {
3022 PRINT_ERROR("Runtime error: %s", "Assert failed");
3023 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12623);
3024 fatal_exit(1);
3025 }
3026 var_ptypenode2 = var_nodearraylist2;
3027 {
3028 var4 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode1);
3029 }
3030 var_listnode3 = var4;
3031 if (var_ptypenode2 == NULL) {
3032 var5 = 0; /* is null */
3033 } else {
3034 var5 = 1; /* arg is null and recv is not */
3035 }
3036 if (0) {
3037 var6 = ((short int(*)(val* self, val* p0))((((long)var_ptypenode2&3)?class_info[((long)var_ptypenode2&3)]:var_ptypenode2->class)->vft[COLOR_core__kernel__Object___33d_61d]))(var_ptypenode2, ((val*)NULL)); /* != on <var_ptypenode2:nullable Object>*/
3038 var5 = var6;
3039 }
3040 if (var5){
3041 {
3042 core___core__Array___core__abstract_collection__SimpleCollection__add(var_listnode3, var_ptypenode2); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
3043 }
3044 } else {
3045 }
3046 var_node_list = var_listnode3;
3047 var7 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction1070> */
3048 {
3049 var8 = nitc___nitc__Parser___go_to(var_p, var7);
3050 }
3051 {
3052 nitc___nitc__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
3053 }
3054 RET_LABEL:;
3055 }
3056 /* method parser#ReduceAction1072#action for (self: ReduceAction1072, Parser) */
3057 void nitc__parser___nitc__parser__ReduceAction1072___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
3058 val* var_p /* var p: Parser */;
3059 val* var_node_list /* var node_list: nullable Object */;
3060 val* var /* : nullable Object */;
3061 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3062 val* var1 /* : nullable Object */;
3063 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3064 val* var2 /* : Array[Object] */;
3065 val* var_listnode3 /* var listnode3: Array[Object] */;
3066 val* var_listnode1 /* var listnode1: nullable Object */;
3067 short int var3 /* : Bool */;
3068 int cltype;
3069 int idtype;
3070 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
3071 val* var4 /* : Array[Object] */;
3072 short int var5 /* : Bool */;
3073 short int var6 /* : Bool */;
3074 long var7 /* : Int */;
3075 long var8 /* : Int */;
3076 var_p = p0;
3077 var_node_list = ((val*)NULL);
3078 {
3079 var = nitc___nitc__Parser___pop(var_p);
3080 }
3081 var_nodearraylist2 = var;
3082 {
3083 var1 = nitc___nitc__Parser___pop(var_p);
3084 }
3085 var_nodearraylist1 = var1;
3086 var2 = NEW_core__Array(&type_core__Array__core__Object);
3087 {
3088 core___core__Array___core__kernel__Object__init(var2); /* Direct call array#Array#init on <var2:Array[Object]>*/
3089 }
3090 var_listnode3 = var2;
3091 var_listnode1 = var_nodearraylist1;
3092 /* <var_listnode1:nullable Object> isa Array[Object] */
3093 cltype = type_core__Array__core__Object.color;
3094 idtype = type_core__Array__core__Object.id;
3095 if(var_listnode1 == NULL) {
3096 var3 = 0;
3097 } else {
3098 if(cltype >= (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->table_size) {
3099 var3 = 0;
3100 } else {
3101 var3 = (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->type_table[cltype] == idtype;
3102 }
3103 }
3104 if (unlikely(!var3)) {
3105 PRINT_ERROR("Runtime error: %s", "Assert failed");
3106 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12642);
3107 fatal_exit(1);
3108 }
3109 var_pexprnode2 = var_nodearraylist2;
3110 {
3111 var4 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode1);
3112 }
3113 var_listnode3 = var4;
3114 if (var_pexprnode2 == NULL) {
3115 var5 = 0; /* is null */
3116 } else {
3117 var5 = 1; /* arg is null and recv is not */
3118 }
3119 if (0) {
3120 var6 = ((short int(*)(val* self, val* p0))((((long)var_pexprnode2&3)?class_info[((long)var_pexprnode2&3)]:var_pexprnode2->class)->vft[COLOR_core__kernel__Object___33d_61d]))(var_pexprnode2, ((val*)NULL)); /* != on <var_pexprnode2:nullable Object>*/
3121 var5 = var6;
3122 }
3123 if (var5){
3124 {
3125 core___core__Array___core__abstract_collection__SimpleCollection__add(var_listnode3, var_pexprnode2); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
3126 }
3127 } else {
3128 }
3129 var_node_list = var_listnode3;
3130 var7 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction1072> */
3131 {
3132 var8 = nitc___nitc__Parser___go_to(var_p, var7);
3133 }
3134 {
3135 nitc___nitc__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
3136 }
3137 RET_LABEL:;
3138 }
3139 /* method parser#ReduceAction1078#action for (self: ReduceAction1078, Parser) */
3140 void nitc__parser___nitc__parser__ReduceAction1078___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
3141 val* var_p /* var p: Parser */;
3142 val* var_node_list /* var node_list: nullable Object */;
3143 val* var /* : nullable Object */;
3144 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3145 val* var1 /* : nullable Object */;
3146 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3147 val* var2 /* : Array[Object] */;
3148 val* var_listnode3 /* var listnode3: Array[Object] */;
3149 val* var_listnode1 /* var listnode1: nullable Object */;
3150 short int var3 /* : Bool */;
3151 int cltype;
3152 int idtype;
3153 val* var_listnode2 /* var listnode2: nullable Object */;
3154 short int var4 /* : Bool */;
3155 int cltype5;
3156 int idtype6;
3157 val* var7 /* : Array[Object] */;
3158 val* var8 /* : Array[Object] */;
3159 long var9 /* : Int */;
3160 long var10 /* : Int */;
3161 var_p = p0;
3162 var_node_list = ((val*)NULL);
3163 {
3164 var = nitc___nitc__Parser___pop(var_p);
3165 }
3166 var_nodearraylist2 = var;
3167 {
3168 var1 = nitc___nitc__Parser___pop(var_p);
3169 }
3170 var_nodearraylist1 = var1;
3171 var2 = NEW_core__Array(&type_core__Array__core__Object);
3172 {
3173 core___core__Array___core__kernel__Object__init(var2); /* Direct call array#Array#init on <var2:Array[Object]>*/
3174 }
3175 var_listnode3 = var2;
3176 var_listnode1 = var_nodearraylist1;
3177 /* <var_listnode1:nullable Object> isa Array[Object] */
3178 cltype = type_core__Array__core__Object.color;
3179 idtype = type_core__Array__core__Object.id;
3180 if(var_listnode1 == NULL) {
3181 var3 = 0;
3182 } else {
3183 if(cltype >= (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->table_size) {
3184 var3 = 0;
3185 } else {
3186 var3 = (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->type_table[cltype] == idtype;
3187 }
3188 }
3189 if (unlikely(!var3)) {
3190 PRINT_ERROR("Runtime error: %s", "Assert failed");
3191 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12661);
3192 fatal_exit(1);
3193 }
3194 var_listnode2 = var_nodearraylist2;
3195 /* <var_listnode2:nullable Object> isa Array[Object] */
3196 cltype5 = type_core__Array__core__Object.color;
3197 idtype6 = type_core__Array__core__Object.id;
3198 if(var_listnode2 == NULL) {
3199 var4 = 0;
3200 } else {
3201 if(cltype5 >= (((long)var_listnode2&3)?type_info[((long)var_listnode2&3)]:var_listnode2->type)->table_size) {
3202 var4 = 0;
3203 } else {
3204 var4 = (((long)var_listnode2&3)?type_info[((long)var_listnode2&3)]:var_listnode2->type)->type_table[cltype5] == idtype6;
3205 }
3206 }
3207 if (unlikely(!var4)) {
3208 PRINT_ERROR("Runtime error: %s", "Assert failed");
3209 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12663);
3210 fatal_exit(1);
3211 }
3212 {
3213 var7 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode1);
3214 }
3215 var_listnode3 = var7;
3216 {
3217 var8 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode2);
3218 }
3219 var_listnode3 = var8;
3220 var_node_list = var_listnode3;
3221 var9 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction1078> */
3222 {
3223 var10 = nitc___nitc__Parser___go_to(var_p, var9);
3224 }
3225 {
3226 nitc___nitc__Parser___push(var_p, var10, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
3227 }
3228 RET_LABEL:;
3229 }
3230 /* method parser#ReduceAction1086#action for (self: ReduceAction1086, Parser) */
3231 void nitc__parser___nitc__parser__ReduceAction1086___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
3232 val* var_p /* var p: Parser */;
3233 val* var_node_list /* var node_list: nullable Object */;
3234 val* var /* : nullable Object */;
3235 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3236 val* var1 /* : nullable Object */;
3237 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3238 val* var2 /* : Array[Object] */;
3239 val* var_listnode3 /* var listnode3: Array[Object] */;
3240 val* var_listnode1 /* var listnode1: nullable Object */;
3241 short int var3 /* : Bool */;
3242 int cltype;
3243 int idtype;
3244 val* var_tidnode2 /* var tidnode2: nullable Object */;
3245 val* var4 /* : Array[Object] */;
3246 short int var5 /* : Bool */;
3247 short int var6 /* : Bool */;
3248 long var7 /* : Int */;
3249 long var8 /* : Int */;
3250 var_p = p0;
3251 var_node_list = ((val*)NULL);
3252 {
3253 var = nitc___nitc__Parser___pop(var_p);
3254 }
3255 var_nodearraylist2 = var;
3256 {
3257 var1 = nitc___nitc__Parser___pop(var_p);
3258 }
3259 var_nodearraylist1 = var1;
3260 var2 = NEW_core__Array(&type_core__Array__core__Object);
3261 {
3262 core___core__Array___core__kernel__Object__init(var2); /* Direct call array#Array#init on <var2:Array[Object]>*/
3263 }
3264 var_listnode3 = var2;
3265 var_listnode1 = var_nodearraylist1;
3266 /* <var_listnode1:nullable Object> isa Array[Object] */
3267 cltype = type_core__Array__core__Object.color;
3268 idtype = type_core__Array__core__Object.id;
3269 if(var_listnode1 == NULL) {
3270 var3 = 0;
3271 } else {
3272 if(cltype >= (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->table_size) {
3273 var3 = 0;
3274 } else {
3275 var3 = (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->type_table[cltype] == idtype;
3276 }
3277 }
3278 if (unlikely(!var3)) {
3279 PRINT_ERROR("Runtime error: %s", "Assert failed");
3280 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12679);
3281 fatal_exit(1);
3282 }
3283 var_tidnode2 = var_nodearraylist2;
3284 {
3285 var4 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode1);
3286 }
3287 var_listnode3 = var4;
3288 if (var_tidnode2 == NULL) {
3289 var5 = 0; /* is null */
3290 } else {
3291 var5 = 1; /* arg is null and recv is not */
3292 }
3293 if (0) {
3294 var6 = ((short int(*)(val* self, val* p0))((((long)var_tidnode2&3)?class_info[((long)var_tidnode2&3)]:var_tidnode2->class)->vft[COLOR_core__kernel__Object___33d_61d]))(var_tidnode2, ((val*)NULL)); /* != on <var_tidnode2:nullable Object>*/
3295 var5 = var6;
3296 }
3297 if (var5){
3298 {
3299 core___core__Array___core__abstract_collection__SimpleCollection__add(var_listnode3, var_tidnode2); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
3300 }
3301 } else {
3302 }
3303 var_node_list = var_listnode3;
3304 var7 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction1086> */
3305 {
3306 var8 = nitc___nitc__Parser___go_to(var_p, var7);
3307 }
3308 {
3309 nitc___nitc__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
3310 }
3311 RET_LABEL:;
3312 }
3313 /* method parser#ReduceAction1087#action for (self: ReduceAction1087, Parser) */
3314 void nitc__parser___nitc__parser__ReduceAction1087___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
3315 val* var_p /* var p: Parser */;
3316 val* var_node_list /* var node_list: nullable Object */;
3317 val* var /* : nullable Object */;
3318 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3319 val* var1 /* : Array[Object] */;
3320 val* var_listnode2 /* var listnode2: Array[Object] */;
3321 val* var_tcommentnode1 /* var tcommentnode1: nullable Object */;
3322 short int var2 /* : Bool */;
3323 short int var3 /* : Bool */;
3324 long var4 /* : Int */;
3325 long var5 /* : Int */;
3326 var_p = p0;
3327 var_node_list = ((val*)NULL);
3328 {
3329 var = nitc___nitc__Parser___pop(var_p);
3330 }
3331 var_nodearraylist1 = var;
3332 var1 = NEW_core__Array(&type_core__Array__core__Object);
3333 {
3334 core___core__Array___core__kernel__Object__init(var1); /* Direct call array#Array#init on <var1:Array[Object]>*/
3335 }
3336 var_listnode2 = var1;
3337 var_tcommentnode1 = var_nodearraylist1;
3338 if (var_tcommentnode1 == NULL) {
3339 var2 = 0; /* is null */
3340 } else {
3341 var2 = 1; /* arg is null and recv is not */
3342 }
3343 if (0) {
3344 var3 = ((short int(*)(val* self, val* p0))((((long)var_tcommentnode1&3)?class_info[((long)var_tcommentnode1&3)]:var_tcommentnode1->class)->vft[COLOR_core__kernel__Object___33d_61d]))(var_tcommentnode1, ((val*)NULL)); /* != on <var_tcommentnode1:nullable Object>*/
3345 var2 = var3;
3346 }
3347 if (var2){
3348 {
3349 core___core__Array___core__abstract_collection__SimpleCollection__add(var_listnode2, var_tcommentnode1); /* Direct call array#Array#add on <var_listnode2:Array[Object]>*/
3350 }
3351 } else {
3352 }
3353 var_node_list = var_listnode2;
3354 var4 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction1087> */
3355 {
3356 var5 = nitc___nitc__Parser___go_to(var_p, var4);
3357 }
3358 {
3359 nitc___nitc__Parser___push(var_p, var5, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
3360 }
3361 RET_LABEL:;
3362 }
3363 /* method parser#ReduceAction1088#action for (self: ReduceAction1088, Parser) */
3364 void nitc__parser___nitc__parser__ReduceAction1088___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
3365 val* var_p /* var p: Parser */;
3366 val* var_node_list /* var node_list: nullable Object */;
3367 val* var /* : nullable Object */;
3368 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3369 val* var1 /* : nullable Object */;
3370 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3371 val* var2 /* : Array[Object] */;
3372 val* var_listnode3 /* var listnode3: Array[Object] */;
3373 val* var_listnode1 /* var listnode1: nullable Object */;
3374 short int var3 /* : Bool */;
3375 int cltype;
3376 int idtype;
3377 val* var_tcommentnode2 /* var tcommentnode2: nullable Object */;
3378 val* var4 /* : Array[Object] */;
3379 short int var5 /* : Bool */;
3380 short int var6 /* : Bool */;
3381 long var7 /* : Int */;
3382 long var8 /* : Int */;
3383 var_p = p0;
3384 var_node_list = ((val*)NULL);
3385 {
3386 var = nitc___nitc__Parser___pop(var_p);
3387 }
3388 var_nodearraylist2 = var;
3389 {
3390 var1 = nitc___nitc__Parser___pop(var_p);
3391 }
3392 var_nodearraylist1 = var1;
3393 var2 = NEW_core__Array(&type_core__Array__core__Object);
3394 {
3395 core___core__Array___core__kernel__Object__init(var2); /* Direct call array#Array#init on <var2:Array[Object]>*/
3396 }
3397 var_listnode3 = var2;
3398 var_listnode1 = var_nodearraylist1;
3399 /* <var_listnode1:nullable Object> isa Array[Object] */
3400 cltype = type_core__Array__core__Object.color;
3401 idtype = type_core__Array__core__Object.id;
3402 if(var_listnode1 == NULL) {
3403 var3 = 0;
3404 } else {
3405 if(cltype >= (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->table_size) {
3406 var3 = 0;
3407 } else {
3408 var3 = (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->type_table[cltype] == idtype;
3409 }
3410 }
3411 if (unlikely(!var3)) {
3412 PRINT_ERROR("Runtime error: %s", "Assert failed");
3413 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12713);
3414 fatal_exit(1);
3415 }
3416 var_tcommentnode2 = var_nodearraylist2;
3417 {
3418 var4 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode1);
3419 }
3420 var_listnode3 = var4;
3421 if (var_tcommentnode2 == NULL) {
3422 var5 = 0; /* is null */
3423 } else {
3424 var5 = 1; /* arg is null and recv is not */
3425 }
3426 if (0) {
3427 var6 = ((short int(*)(val* self, val* p0))((((long)var_tcommentnode2&3)?class_info[((long)var_tcommentnode2&3)]:var_tcommentnode2->class)->vft[COLOR_core__kernel__Object___33d_61d]))(var_tcommentnode2, ((val*)NULL)); /* != on <var_tcommentnode2:nullable Object>*/
3428 var5 = var6;
3429 }
3430 if (var5){
3431 {
3432 core___core__Array___core__abstract_collection__SimpleCollection__add(var_listnode3, var_tcommentnode2); /* Direct call array#Array#add on <var_listnode3:Array[Object]>*/
3433 }
3434 } else {
3435 }
3436 var_node_list = var_listnode3;
3437 var7 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction1088> */
3438 {
3439 var8 = nitc___nitc__Parser___go_to(var_p, var7);
3440 }
3441 {
3442 nitc___nitc__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work#Parser#push on <var_p:Parser>*/
3443 }
3444 RET_LABEL:;
3445 }