Merge: doc: fixed some typos and other misc. corrections
[nit.git] / c_src / nitc__parser.sep.7.c
1 #include "nitc__parser.sep.0.h"
2 /* method parser$ReduceAction421$action for (self: ReduceAction421, Parser) */
3 void nitc__parser___nitc__parser__ReduceAction421___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_nodearraylist9 /* var nodearraylist9: nullable Object */;
8 val* var1 /* : nullable Object */;
9 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
10 val* var2 /* : nullable Object */;
11 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
12 val* var3 /* : nullable Object */;
13 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
14 val* var4 /* : nullable Object */;
15 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
16 val* var5 /* : nullable Object */;
17 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
18 val* var6 /* : nullable Object */;
19 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
20 val* var7 /* : nullable Object */;
21 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
22 val* var8 /* : nullable Object */;
23 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
24 val* var9 /* : Array[Object] */;
25 val* var_listnode8 /* var listnode8: Array[Object] */;
26 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
27 short int var10 /* : Bool */;
28 int cltype;
29 int idtype;
30 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
31 short int var11 /* : Bool */;
32 int cltype12;
33 int idtype13;
34 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
35 short int var14 /* : Bool */;
36 int cltype15;
37 int idtype16;
38 val* var_patidnode5 /* var patidnode5: nullable Object */;
39 short int var17 /* : Bool */;
40 int cltype18;
41 int idtype19;
42 val* var_toparnode6 /* var toparnode6: nullable Object */;
43 short int var20 /* : Bool */;
44 int cltype21;
45 int idtype22;
46 val* var_listnode7 /* var listnode7: nullable Object */;
47 short int var23 /* : Bool */;
48 int cltype24;
49 int idtype25;
50 val* var26 /* : Array[Object] */;
51 val* var_tcparnode9 /* var tcparnode9: nullable Object */;
52 short int var27 /* : Bool */;
53 int cltype28;
54 int idtype29;
55 val* var30 /* : AAnnotation */;
56 val* var_pannotationnode1 /* var pannotationnode1: nullable AAnnotation */;
57 long var31 /* : Int */;
58 long var32 /* : Int */;
59 var_p = p0;
60 var_node_list = ((val*)NULL);
61 {
62 var = nitc___nitc__Parser___pop(var_p);
63 }
64 var_nodearraylist9 = var;
65 {
66 var1 = nitc___nitc__Parser___pop(var_p);
67 }
68 var_nodearraylist8 = var1;
69 {
70 var2 = nitc___nitc__Parser___pop(var_p);
71 }
72 var_nodearraylist7 = var2;
73 {
74 var3 = nitc___nitc__Parser___pop(var_p);
75 }
76 var_nodearraylist6 = var3;
77 {
78 var4 = nitc___nitc__Parser___pop(var_p);
79 }
80 var_nodearraylist5 = var4;
81 {
82 var5 = nitc___nitc__Parser___pop(var_p);
83 }
84 var_nodearraylist4 = var5;
85 {
86 var6 = nitc___nitc__Parser___pop(var_p);
87 }
88 var_nodearraylist3 = var6;
89 {
90 var7 = nitc___nitc__Parser___pop(var_p);
91 }
92 var_nodearraylist2 = var7;
93 {
94 var8 = nitc___nitc__Parser___pop(var_p);
95 }
96 var_nodearraylist1 = var8;
97 var9 = NEW_core__Array(&type_core__Array__core__Object);
98 {
99 core___core__Array___core__kernel__Object__init(var9); /* Direct call array$Array$init on <var9:Array[Object]>*/
100 }
101 var_listnode8 = var9;
102 var_pdocnode2 = var_nodearraylist1;
103 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
104 cltype = type_nullable__nitc__ADoc.color;
105 idtype = type_nullable__nitc__ADoc.id;
106 if(var_pdocnode2 == NULL) {
107 var10 = 1;
108 } else {
109 if(cltype >= (((long)var_pdocnode2&3)?type_info[((long)var_pdocnode2&3)]:var_pdocnode2->type)->table_size) {
110 var10 = 0;
111 } else {
112 var10 = (((long)var_pdocnode2&3)?type_info[((long)var_pdocnode2&3)]:var_pdocnode2->type)->type_table[cltype] == idtype;
113 }
114 }
115 if (unlikely(!var10)) {
116 if(catchStack.cursor >= 0){
117 longjmp(catchStack.envs[catchStack.cursor], 1);
118 }
119 PRINT_ERROR("Runtime error: %s", "Assert failed");
120 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11017);
121 fatal_exit(1);
122 }
123 var_tkwredefnode3 = var_nodearraylist2;
124 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
125 cltype12 = type_nullable__nitc__TKwredef.color;
126 idtype13 = type_nullable__nitc__TKwredef.id;
127 if(var_tkwredefnode3 == NULL) {
128 var11 = 1;
129 } else {
130 if(cltype12 >= (((long)var_tkwredefnode3&3)?type_info[((long)var_tkwredefnode3&3)]:var_tkwredefnode3->type)->table_size) {
131 var11 = 0;
132 } else {
133 var11 = (((long)var_tkwredefnode3&3)?type_info[((long)var_tkwredefnode3&3)]:var_tkwredefnode3->type)->type_table[cltype12] == idtype13;
134 }
135 }
136 if (unlikely(!var11)) {
137 if(catchStack.cursor >= 0){
138 longjmp(catchStack.envs[catchStack.cursor], 1);
139 }
140 PRINT_ERROR("Runtime error: %s", "Assert failed");
141 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11019);
142 fatal_exit(1);
143 }
144 var_pvisibilitynode4 = var_nodearraylist3;
145 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
146 cltype15 = type_nullable__nitc__AVisibility.color;
147 idtype16 = type_nullable__nitc__AVisibility.id;
148 if(var_pvisibilitynode4 == NULL) {
149 var14 = 1;
150 } else {
151 if(cltype15 >= (((long)var_pvisibilitynode4&3)?type_info[((long)var_pvisibilitynode4&3)]:var_pvisibilitynode4->type)->table_size) {
152 var14 = 0;
153 } else {
154 var14 = (((long)var_pvisibilitynode4&3)?type_info[((long)var_pvisibilitynode4&3)]:var_pvisibilitynode4->type)->type_table[cltype15] == idtype16;
155 }
156 }
157 if (unlikely(!var14)) {
158 if(catchStack.cursor >= 0){
159 longjmp(catchStack.envs[catchStack.cursor], 1);
160 }
161 PRINT_ERROR("Runtime error: %s", "Assert failed");
162 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11021);
163 fatal_exit(1);
164 }
165 var_patidnode5 = var_nodearraylist4;
166 /* <var_patidnode5:nullable Object> isa nullable AAtid */
167 cltype18 = type_nullable__nitc__AAtid.color;
168 idtype19 = type_nullable__nitc__AAtid.id;
169 if(var_patidnode5 == NULL) {
170 var17 = 1;
171 } else {
172 if(cltype18 >= (((long)var_patidnode5&3)?type_info[((long)var_patidnode5&3)]:var_patidnode5->type)->table_size) {
173 var17 = 0;
174 } else {
175 var17 = (((long)var_patidnode5&3)?type_info[((long)var_patidnode5&3)]:var_patidnode5->type)->type_table[cltype18] == idtype19;
176 }
177 }
178 if (unlikely(!var17)) {
179 if(catchStack.cursor >= 0){
180 longjmp(catchStack.envs[catchStack.cursor], 1);
181 }
182 PRINT_ERROR("Runtime error: %s", "Assert failed");
183 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11023);
184 fatal_exit(1);
185 }
186 var_toparnode6 = var_nodearraylist5;
187 /* <var_toparnode6:nullable Object> isa nullable TOpar */
188 cltype21 = type_nullable__nitc__TOpar.color;
189 idtype22 = type_nullable__nitc__TOpar.id;
190 if(var_toparnode6 == NULL) {
191 var20 = 1;
192 } else {
193 if(cltype21 >= (((long)var_toparnode6&3)?type_info[((long)var_toparnode6&3)]:var_toparnode6->type)->table_size) {
194 var20 = 0;
195 } else {
196 var20 = (((long)var_toparnode6&3)?type_info[((long)var_toparnode6&3)]:var_toparnode6->type)->type_table[cltype21] == idtype22;
197 }
198 }
199 if (unlikely(!var20)) {
200 if(catchStack.cursor >= 0){
201 longjmp(catchStack.envs[catchStack.cursor], 1);
202 }
203 PRINT_ERROR("Runtime error: %s", "Assert failed");
204 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11025);
205 fatal_exit(1);
206 }
207 var_listnode7 = var_nodearraylist7;
208 /* <var_listnode7:nullable Object> isa Array[Object] */
209 cltype24 = type_core__Array__core__Object.color;
210 idtype25 = type_core__Array__core__Object.id;
211 if(var_listnode7 == NULL) {
212 var23 = 0;
213 } else {
214 if(cltype24 >= (((long)var_listnode7&3)?type_info[((long)var_listnode7&3)]:var_listnode7->type)->table_size) {
215 var23 = 0;
216 } else {
217 var23 = (((long)var_listnode7&3)?type_info[((long)var_listnode7&3)]:var_listnode7->type)->type_table[cltype24] == idtype25;
218 }
219 }
220 if (unlikely(!var23)) {
221 if(catchStack.cursor >= 0){
222 longjmp(catchStack.envs[catchStack.cursor], 1);
223 }
224 PRINT_ERROR("Runtime error: %s", "Assert failed");
225 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11027);
226 fatal_exit(1);
227 }
228 {
229 var26 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode8, var_listnode7);
230 }
231 var_listnode8 = var26;
232 var_tcparnode9 = var_nodearraylist8;
233 /* <var_tcparnode9:nullable Object> isa nullable TCpar */
234 cltype28 = type_nullable__nitc__TCpar.color;
235 idtype29 = type_nullable__nitc__TCpar.id;
236 if(var_tcparnode9 == NULL) {
237 var27 = 1;
238 } else {
239 if(cltype28 >= (((long)var_tcparnode9&3)?type_info[((long)var_tcparnode9&3)]:var_tcparnode9->type)->table_size) {
240 var27 = 0;
241 } else {
242 var27 = (((long)var_tcparnode9&3)?type_info[((long)var_tcparnode9&3)]:var_tcparnode9->type)->type_table[cltype28] == idtype29;
243 }
244 }
245 if (unlikely(!var27)) {
246 if(catchStack.cursor >= 0){
247 longjmp(catchStack.envs[catchStack.cursor], 1);
248 }
249 PRINT_ERROR("Runtime error: %s", "Assert failed");
250 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11030);
251 fatal_exit(1);
252 }
253 var30 = NEW_nitc__AAnnotation(&type_nitc__AAnnotation);
254 {
255 nitc__parser_prod___AAnnotation___init_aannotation(var30, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_patidnode5, var_toparnode6, var_listnode8, var_tcparnode9, ((val*)NULL)); /* Direct call parser_prod$AAnnotation$init_aannotation on <var30:AAnnotation>*/
256 }
257 var_pannotationnode1 = var30;
258 var_node_list = var_pannotationnode1;
259 var31 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction421> */
260 {
261 var32 = nitc___nitc__Parser___go_to(var_p, var31);
262 }
263 {
264 nitc___nitc__Parser___push(var_p, var32, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
265 }
266 RET_LABEL:;
267 }
268 /* method parser$ReduceAction422$action for (self: ReduceAction422, Parser) */
269 void nitc__parser___nitc__parser__ReduceAction422___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
270 val* var_p /* var p: Parser */;
271 val* var_node_list /* var node_list: nullable Object */;
272 val* var /* : nullable Object */;
273 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
274 val* var1 /* : nullable Object */;
275 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
276 val* var2 /* : nullable Object */;
277 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
278 val* var3 /* : nullable Object */;
279 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
280 val* var4 /* : nullable Object */;
281 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
282 val* var5 /* : nullable Object */;
283 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
284 val* var6 /* : nullable Object */;
285 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
286 val* var7 /* : nullable Object */;
287 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
288 val* var8 /* : nullable Object */;
289 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
290 val* var9 /* : nullable Object */;
291 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
292 val* var10 /* : Array[Object] */;
293 val* var_listnode8 /* var listnode8: Array[Object] */;
294 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
295 short int var11 /* : Bool */;
296 int cltype;
297 int idtype;
298 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
299 short int var12 /* : Bool */;
300 int cltype13;
301 int idtype14;
302 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
303 short int var15 /* : Bool */;
304 int cltype16;
305 int idtype17;
306 val* var_patidnode5 /* var patidnode5: nullable Object */;
307 short int var18 /* : Bool */;
308 int cltype19;
309 int idtype20;
310 val* var_toparnode6 /* var toparnode6: nullable Object */;
311 short int var21 /* : Bool */;
312 int cltype22;
313 int idtype23;
314 val* var_listnode7 /* var listnode7: nullable Object */;
315 short int var24 /* : Bool */;
316 int cltype25;
317 int idtype26;
318 val* var27 /* : Array[Object] */;
319 val* var_tcparnode9 /* var tcparnode9: nullable Object */;
320 short int var28 /* : Bool */;
321 int cltype29;
322 int idtype30;
323 val* var_pannotationsnode10 /* var pannotationsnode10: nullable Object */;
324 short int var31 /* : Bool */;
325 int cltype32;
326 int idtype33;
327 val* var34 /* : AAnnotation */;
328 val* var_pannotationnode1 /* var pannotationnode1: nullable AAnnotation */;
329 long var35 /* : Int */;
330 long var36 /* : Int */;
331 var_p = p0;
332 var_node_list = ((val*)NULL);
333 {
334 var = nitc___nitc__Parser___pop(var_p);
335 }
336 var_nodearraylist10 = var;
337 {
338 var1 = nitc___nitc__Parser___pop(var_p);
339 }
340 var_nodearraylist9 = var1;
341 {
342 var2 = nitc___nitc__Parser___pop(var_p);
343 }
344 var_nodearraylist8 = var2;
345 {
346 var3 = nitc___nitc__Parser___pop(var_p);
347 }
348 var_nodearraylist7 = var3;
349 {
350 var4 = nitc___nitc__Parser___pop(var_p);
351 }
352 var_nodearraylist6 = var4;
353 {
354 var5 = nitc___nitc__Parser___pop(var_p);
355 }
356 var_nodearraylist5 = var5;
357 {
358 var6 = nitc___nitc__Parser___pop(var_p);
359 }
360 var_nodearraylist4 = var6;
361 {
362 var7 = nitc___nitc__Parser___pop(var_p);
363 }
364 var_nodearraylist3 = var7;
365 {
366 var8 = nitc___nitc__Parser___pop(var_p);
367 }
368 var_nodearraylist2 = var8;
369 {
370 var9 = nitc___nitc__Parser___pop(var_p);
371 }
372 var_nodearraylist1 = var9;
373 var10 = NEW_core__Array(&type_core__Array__core__Object);
374 {
375 core___core__Array___core__kernel__Object__init(var10); /* Direct call array$Array$init on <var10:Array[Object]>*/
376 }
377 var_listnode8 = var10;
378 var_pdocnode2 = var_nodearraylist1;
379 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
380 cltype = type_nullable__nitc__ADoc.color;
381 idtype = type_nullable__nitc__ADoc.id;
382 if(var_pdocnode2 == NULL) {
383 var11 = 1;
384 } else {
385 if(cltype >= (((long)var_pdocnode2&3)?type_info[((long)var_pdocnode2&3)]:var_pdocnode2->type)->table_size) {
386 var11 = 0;
387 } else {
388 var11 = (((long)var_pdocnode2&3)?type_info[((long)var_pdocnode2&3)]:var_pdocnode2->type)->type_table[cltype] == idtype;
389 }
390 }
391 if (unlikely(!var11)) {
392 if(catchStack.cursor >= 0){
393 longjmp(catchStack.envs[catchStack.cursor], 1);
394 }
395 PRINT_ERROR("Runtime error: %s", "Assert failed");
396 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11062);
397 fatal_exit(1);
398 }
399 var_tkwredefnode3 = var_nodearraylist2;
400 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
401 cltype13 = type_nullable__nitc__TKwredef.color;
402 idtype14 = type_nullable__nitc__TKwredef.id;
403 if(var_tkwredefnode3 == NULL) {
404 var12 = 1;
405 } else {
406 if(cltype13 >= (((long)var_tkwredefnode3&3)?type_info[((long)var_tkwredefnode3&3)]:var_tkwredefnode3->type)->table_size) {
407 var12 = 0;
408 } else {
409 var12 = (((long)var_tkwredefnode3&3)?type_info[((long)var_tkwredefnode3&3)]:var_tkwredefnode3->type)->type_table[cltype13] == idtype14;
410 }
411 }
412 if (unlikely(!var12)) {
413 if(catchStack.cursor >= 0){
414 longjmp(catchStack.envs[catchStack.cursor], 1);
415 }
416 PRINT_ERROR("Runtime error: %s", "Assert failed");
417 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11064);
418 fatal_exit(1);
419 }
420 var_pvisibilitynode4 = var_nodearraylist3;
421 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
422 cltype16 = type_nullable__nitc__AVisibility.color;
423 idtype17 = type_nullable__nitc__AVisibility.id;
424 if(var_pvisibilitynode4 == NULL) {
425 var15 = 1;
426 } else {
427 if(cltype16 >= (((long)var_pvisibilitynode4&3)?type_info[((long)var_pvisibilitynode4&3)]:var_pvisibilitynode4->type)->table_size) {
428 var15 = 0;
429 } else {
430 var15 = (((long)var_pvisibilitynode4&3)?type_info[((long)var_pvisibilitynode4&3)]:var_pvisibilitynode4->type)->type_table[cltype16] == idtype17;
431 }
432 }
433 if (unlikely(!var15)) {
434 if(catchStack.cursor >= 0){
435 longjmp(catchStack.envs[catchStack.cursor], 1);
436 }
437 PRINT_ERROR("Runtime error: %s", "Assert failed");
438 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11066);
439 fatal_exit(1);
440 }
441 var_patidnode5 = var_nodearraylist4;
442 /* <var_patidnode5:nullable Object> isa nullable AAtid */
443 cltype19 = type_nullable__nitc__AAtid.color;
444 idtype20 = type_nullable__nitc__AAtid.id;
445 if(var_patidnode5 == NULL) {
446 var18 = 1;
447 } else {
448 if(cltype19 >= (((long)var_patidnode5&3)?type_info[((long)var_patidnode5&3)]:var_patidnode5->type)->table_size) {
449 var18 = 0;
450 } else {
451 var18 = (((long)var_patidnode5&3)?type_info[((long)var_patidnode5&3)]:var_patidnode5->type)->type_table[cltype19] == idtype20;
452 }
453 }
454 if (unlikely(!var18)) {
455 if(catchStack.cursor >= 0){
456 longjmp(catchStack.envs[catchStack.cursor], 1);
457 }
458 PRINT_ERROR("Runtime error: %s", "Assert failed");
459 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11068);
460 fatal_exit(1);
461 }
462 var_toparnode6 = var_nodearraylist5;
463 /* <var_toparnode6:nullable Object> isa nullable TOpar */
464 cltype22 = type_nullable__nitc__TOpar.color;
465 idtype23 = type_nullable__nitc__TOpar.id;
466 if(var_toparnode6 == NULL) {
467 var21 = 1;
468 } else {
469 if(cltype22 >= (((long)var_toparnode6&3)?type_info[((long)var_toparnode6&3)]:var_toparnode6->type)->table_size) {
470 var21 = 0;
471 } else {
472 var21 = (((long)var_toparnode6&3)?type_info[((long)var_toparnode6&3)]:var_toparnode6->type)->type_table[cltype22] == idtype23;
473 }
474 }
475 if (unlikely(!var21)) {
476 if(catchStack.cursor >= 0){
477 longjmp(catchStack.envs[catchStack.cursor], 1);
478 }
479 PRINT_ERROR("Runtime error: %s", "Assert failed");
480 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11070);
481 fatal_exit(1);
482 }
483 var_listnode7 = var_nodearraylist7;
484 /* <var_listnode7:nullable Object> isa Array[Object] */
485 cltype25 = type_core__Array__core__Object.color;
486 idtype26 = type_core__Array__core__Object.id;
487 if(var_listnode7 == NULL) {
488 var24 = 0;
489 } else {
490 if(cltype25 >= (((long)var_listnode7&3)?type_info[((long)var_listnode7&3)]:var_listnode7->type)->table_size) {
491 var24 = 0;
492 } else {
493 var24 = (((long)var_listnode7&3)?type_info[((long)var_listnode7&3)]:var_listnode7->type)->type_table[cltype25] == idtype26;
494 }
495 }
496 if (unlikely(!var24)) {
497 if(catchStack.cursor >= 0){
498 longjmp(catchStack.envs[catchStack.cursor], 1);
499 }
500 PRINT_ERROR("Runtime error: %s", "Assert failed");
501 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11072);
502 fatal_exit(1);
503 }
504 {
505 var27 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode8, var_listnode7);
506 }
507 var_listnode8 = var27;
508 var_tcparnode9 = var_nodearraylist8;
509 /* <var_tcparnode9:nullable Object> isa nullable TCpar */
510 cltype29 = type_nullable__nitc__TCpar.color;
511 idtype30 = type_nullable__nitc__TCpar.id;
512 if(var_tcparnode9 == NULL) {
513 var28 = 1;
514 } else {
515 if(cltype29 >= (((long)var_tcparnode9&3)?type_info[((long)var_tcparnode9&3)]:var_tcparnode9->type)->table_size) {
516 var28 = 0;
517 } else {
518 var28 = (((long)var_tcparnode9&3)?type_info[((long)var_tcparnode9&3)]:var_tcparnode9->type)->type_table[cltype29] == idtype30;
519 }
520 }
521 if (unlikely(!var28)) {
522 if(catchStack.cursor >= 0){
523 longjmp(catchStack.envs[catchStack.cursor], 1);
524 }
525 PRINT_ERROR("Runtime error: %s", "Assert failed");
526 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11075);
527 fatal_exit(1);
528 }
529 var_pannotationsnode10 = var_nodearraylist9;
530 /* <var_pannotationsnode10:nullable Object> isa nullable AAnnotations */
531 cltype32 = type_nullable__nitc__AAnnotations.color;
532 idtype33 = type_nullable__nitc__AAnnotations.id;
533 if(var_pannotationsnode10 == NULL) {
534 var31 = 1;
535 } else {
536 if(cltype32 >= (((long)var_pannotationsnode10&3)?type_info[((long)var_pannotationsnode10&3)]:var_pannotationsnode10->type)->table_size) {
537 var31 = 0;
538 } else {
539 var31 = (((long)var_pannotationsnode10&3)?type_info[((long)var_pannotationsnode10&3)]:var_pannotationsnode10->type)->type_table[cltype32] == idtype33;
540 }
541 }
542 if (unlikely(!var31)) {
543 if(catchStack.cursor >= 0){
544 longjmp(catchStack.envs[catchStack.cursor], 1);
545 }
546 PRINT_ERROR("Runtime error: %s", "Assert failed");
547 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11077);
548 fatal_exit(1);
549 }
550 var34 = NEW_nitc__AAnnotation(&type_nitc__AAnnotation);
551 {
552 nitc__parser_prod___AAnnotation___init_aannotation(var34, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_patidnode5, var_toparnode6, var_listnode8, var_tcparnode9, var_pannotationsnode10); /* Direct call parser_prod$AAnnotation$init_aannotation on <var34:AAnnotation>*/
553 }
554 var_pannotationnode1 = var34;
555 var_node_list = var_pannotationnode1;
556 var35 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction422> */
557 {
558 var36 = nitc___nitc__Parser___go_to(var_p, var35);
559 }
560 {
561 nitc___nitc__Parser___push(var_p, var36, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
562 }
563 RET_LABEL:;
564 }
565 /* method parser$ReduceAction423$action for (self: ReduceAction423, Parser) */
566 void nitc__parser___nitc__parser__ReduceAction423___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
567 val* var_p /* var p: Parser */;
568 val* var_node_list /* var node_list: nullable Object */;
569 val* var /* : nullable Object */;
570 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
571 val* var1 /* : nullable Object */;
572 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
573 val* var2 /* : nullable Object */;
574 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
575 val* var3 /* : nullable Object */;
576 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
577 val* var4 /* : nullable Object */;
578 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
579 val* var5 /* : nullable Object */;
580 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
581 val* var6 /* : Array[Object] */;
582 val* var_listnode8 /* var listnode8: Array[Object] */;
583 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
584 short int var7 /* : Bool */;
585 int cltype;
586 int idtype;
587 val* var_tkwredefnode3 /* var tkwredefnode3: nullable Object */;
588 short int var8 /* : Bool */;
589 int cltype9;
590 int idtype10;
591 val* var_pvisibilitynode4 /* var pvisibilitynode4: nullable Object */;
592 short int var11 /* : Bool */;
593 int cltype12;
594 int idtype13;
595 val* var_patidnode5 /* var patidnode5: nullable Object */;
596 short int var14 /* : Bool */;
597 int cltype15;
598 int idtype16;
599 val* var_listnode7 /* var listnode7: nullable Object */;
600 short int var17 /* : Bool */;
601 int cltype18;
602 int idtype19;
603 val* var20 /* : Array[Object] */;
604 val* var21 /* : AAnnotation */;
605 val* var_pannotationnode1 /* var pannotationnode1: nullable AAnnotation */;
606 long var22 /* : Int */;
607 long var23 /* : Int */;
608 var_p = p0;
609 var_node_list = ((val*)NULL);
610 {
611 var = nitc___nitc__Parser___pop(var_p);
612 }
613 var_nodearraylist6 = var;
614 {
615 var1 = nitc___nitc__Parser___pop(var_p);
616 }
617 var_nodearraylist5 = var1;
618 {
619 var2 = nitc___nitc__Parser___pop(var_p);
620 }
621 var_nodearraylist4 = var2;
622 {
623 var3 = nitc___nitc__Parser___pop(var_p);
624 }
625 var_nodearraylist3 = var3;
626 {
627 var4 = nitc___nitc__Parser___pop(var_p);
628 }
629 var_nodearraylist2 = var4;
630 {
631 var5 = nitc___nitc__Parser___pop(var_p);
632 }
633 var_nodearraylist1 = var5;
634 var6 = NEW_core__Array(&type_core__Array__core__Object);
635 {
636 core___core__Array___core__kernel__Object__init(var6); /* Direct call array$Array$init on <var6:Array[Object]>*/
637 }
638 var_listnode8 = var6;
639 var_pdocnode2 = var_nodearraylist1;
640 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
641 cltype = type_nullable__nitc__ADoc.color;
642 idtype = type_nullable__nitc__ADoc.id;
643 if(var_pdocnode2 == NULL) {
644 var7 = 1;
645 } else {
646 if(cltype >= (((long)var_pdocnode2&3)?type_info[((long)var_pdocnode2&3)]:var_pdocnode2->type)->table_size) {
647 var7 = 0;
648 } else {
649 var7 = (((long)var_pdocnode2&3)?type_info[((long)var_pdocnode2&3)]:var_pdocnode2->type)->type_table[cltype] == idtype;
650 }
651 }
652 if (unlikely(!var7)) {
653 if(catchStack.cursor >= 0){
654 longjmp(catchStack.envs[catchStack.cursor], 1);
655 }
656 PRINT_ERROR("Runtime error: %s", "Assert failed");
657 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11105);
658 fatal_exit(1);
659 }
660 var_tkwredefnode3 = var_nodearraylist2;
661 /* <var_tkwredefnode3:nullable Object> isa nullable TKwredef */
662 cltype9 = type_nullable__nitc__TKwredef.color;
663 idtype10 = type_nullable__nitc__TKwredef.id;
664 if(var_tkwredefnode3 == NULL) {
665 var8 = 1;
666 } else {
667 if(cltype9 >= (((long)var_tkwredefnode3&3)?type_info[((long)var_tkwredefnode3&3)]:var_tkwredefnode3->type)->table_size) {
668 var8 = 0;
669 } else {
670 var8 = (((long)var_tkwredefnode3&3)?type_info[((long)var_tkwredefnode3&3)]:var_tkwredefnode3->type)->type_table[cltype9] == idtype10;
671 }
672 }
673 if (unlikely(!var8)) {
674 if(catchStack.cursor >= 0){
675 longjmp(catchStack.envs[catchStack.cursor], 1);
676 }
677 PRINT_ERROR("Runtime error: %s", "Assert failed");
678 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11107);
679 fatal_exit(1);
680 }
681 var_pvisibilitynode4 = var_nodearraylist3;
682 /* <var_pvisibilitynode4:nullable Object> isa nullable AVisibility */
683 cltype12 = type_nullable__nitc__AVisibility.color;
684 idtype13 = type_nullable__nitc__AVisibility.id;
685 if(var_pvisibilitynode4 == NULL) {
686 var11 = 1;
687 } else {
688 if(cltype12 >= (((long)var_pvisibilitynode4&3)?type_info[((long)var_pvisibilitynode4&3)]:var_pvisibilitynode4->type)->table_size) {
689 var11 = 0;
690 } else {
691 var11 = (((long)var_pvisibilitynode4&3)?type_info[((long)var_pvisibilitynode4&3)]:var_pvisibilitynode4->type)->type_table[cltype12] == idtype13;
692 }
693 }
694 if (unlikely(!var11)) {
695 if(catchStack.cursor >= 0){
696 longjmp(catchStack.envs[catchStack.cursor], 1);
697 }
698 PRINT_ERROR("Runtime error: %s", "Assert failed");
699 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11109);
700 fatal_exit(1);
701 }
702 var_patidnode5 = var_nodearraylist4;
703 /* <var_patidnode5:nullable Object> isa nullable AAtid */
704 cltype15 = type_nullable__nitc__AAtid.color;
705 idtype16 = type_nullable__nitc__AAtid.id;
706 if(var_patidnode5 == NULL) {
707 var14 = 1;
708 } else {
709 if(cltype15 >= (((long)var_patidnode5&3)?type_info[((long)var_patidnode5&3)]:var_patidnode5->type)->table_size) {
710 var14 = 0;
711 } else {
712 var14 = (((long)var_patidnode5&3)?type_info[((long)var_patidnode5&3)]:var_patidnode5->type)->type_table[cltype15] == idtype16;
713 }
714 }
715 if (unlikely(!var14)) {
716 if(catchStack.cursor >= 0){
717 longjmp(catchStack.envs[catchStack.cursor], 1);
718 }
719 PRINT_ERROR("Runtime error: %s", "Assert failed");
720 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11111);
721 fatal_exit(1);
722 }
723 var_listnode7 = var_nodearraylist5;
724 /* <var_listnode7:nullable Object> isa Array[Object] */
725 cltype18 = type_core__Array__core__Object.color;
726 idtype19 = type_core__Array__core__Object.id;
727 if(var_listnode7 == NULL) {
728 var17 = 0;
729 } else {
730 if(cltype18 >= (((long)var_listnode7&3)?type_info[((long)var_listnode7&3)]:var_listnode7->type)->table_size) {
731 var17 = 0;
732 } else {
733 var17 = (((long)var_listnode7&3)?type_info[((long)var_listnode7&3)]:var_listnode7->type)->type_table[cltype18] == idtype19;
734 }
735 }
736 if (unlikely(!var17)) {
737 if(catchStack.cursor >= 0){
738 longjmp(catchStack.envs[catchStack.cursor], 1);
739 }
740 PRINT_ERROR("Runtime error: %s", "Assert failed");
741 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11113);
742 fatal_exit(1);
743 }
744 {
745 var20 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode8, var_listnode7);
746 }
747 var_listnode8 = var20;
748 var21 = NEW_nitc__AAnnotation(&type_nitc__AAnnotation);
749 {
750 nitc__parser_prod___AAnnotation___init_aannotation(var21, var_pdocnode2, var_tkwredefnode3, var_pvisibilitynode4, var_patidnode5, ((val*)NULL), var_listnode8, ((val*)NULL), ((val*)NULL)); /* Direct call parser_prod$AAnnotation$init_aannotation on <var21:AAnnotation>*/
751 }
752 var_pannotationnode1 = var21;
753 var_node_list = var_pannotationnode1;
754 var22 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction423> */
755 {
756 var23 = nitc___nitc__Parser___go_to(var_p, var22);
757 }
758 {
759 nitc___nitc__Parser___push(var_p, var23, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
760 }
761 RET_LABEL:;
762 }
763 /* method parser$ReduceAction424$action for (self: ReduceAction424, Parser) */
764 void nitc__parser___nitc__parser__ReduceAction424___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
765 val* var_p /* var p: Parser */;
766 val* var_node_list /* var node_list: nullable Object */;
767 val* var /* : nullable Object */;
768 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
769 val* var1 /* : nullable Object */;
770 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
771 val* var2 /* : Array[Object] */;
772 val* var_listnode7 /* var listnode7: Array[Object] */;
773 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
774 short int var3 /* : Bool */;
775 int cltype;
776 int idtype;
777 val* var_patidnode5 /* var patidnode5: nullable Object */;
778 short int var4 /* : Bool */;
779 int cltype5;
780 int idtype6;
781 val* var7 /* : AAnnotPropdef */;
782 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AAnnotPropdef */;
783 long var8 /* : Int */;
784 long var9 /* : Int */;
785 var_p = p0;
786 var_node_list = ((val*)NULL);
787 {
788 var = nitc___nitc__Parser___pop(var_p);
789 }
790 var_nodearraylist2 = var;
791 {
792 var1 = nitc___nitc__Parser___pop(var_p);
793 }
794 var_nodearraylist1 = var1;
795 var2 = NEW_core__Array(&type_core__Array__core__Object);
796 {
797 core___core__Array___core__kernel__Object__init(var2); /* Direct call array$Array$init on <var2:Array[Object]>*/
798 }
799 var_listnode7 = var2;
800 var_pdocnode2 = var_nodearraylist1;
801 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
802 cltype = type_nullable__nitc__ADoc.color;
803 idtype = type_nullable__nitc__ADoc.id;
804 if(var_pdocnode2 == NULL) {
805 var3 = 1;
806 } else {
807 if(cltype >= (((long)var_pdocnode2&3)?type_info[((long)var_pdocnode2&3)]:var_pdocnode2->type)->table_size) {
808 var3 = 0;
809 } else {
810 var3 = (((long)var_pdocnode2&3)?type_info[((long)var_pdocnode2&3)]:var_pdocnode2->type)->type_table[cltype] == idtype;
811 }
812 }
813 if (unlikely(!var3)) {
814 if(catchStack.cursor >= 0){
815 longjmp(catchStack.envs[catchStack.cursor], 1);
816 }
817 PRINT_ERROR("Runtime error: %s", "Assert failed");
818 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11138);
819 fatal_exit(1);
820 }
821 var_patidnode5 = var_nodearraylist2;
822 /* <var_patidnode5:nullable Object> isa nullable AAtid */
823 cltype5 = type_nullable__nitc__AAtid.color;
824 idtype6 = type_nullable__nitc__AAtid.id;
825 if(var_patidnode5 == NULL) {
826 var4 = 1;
827 } else {
828 if(cltype5 >= (((long)var_patidnode5&3)?type_info[((long)var_patidnode5&3)]:var_patidnode5->type)->table_size) {
829 var4 = 0;
830 } else {
831 var4 = (((long)var_patidnode5&3)?type_info[((long)var_patidnode5&3)]:var_patidnode5->type)->type_table[cltype5] == idtype6;
832 }
833 }
834 if (unlikely(!var4)) {
835 if(catchStack.cursor >= 0){
836 longjmp(catchStack.envs[catchStack.cursor], 1);
837 }
838 PRINT_ERROR("Runtime error: %s", "Assert failed");
839 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11140);
840 fatal_exit(1);
841 }
842 var7 = NEW_nitc__AAnnotPropdef(&type_nitc__AAnnotPropdef);
843 {
844 nitc__parser_prod___AAnnotPropdef___init_aannotpropdef(var7, var_pdocnode2, ((val*)NULL), ((val*)NULL), var_patidnode5, ((val*)NULL), var_listnode7, ((val*)NULL), ((val*)NULL)); /* Direct call parser_prod$AAnnotPropdef$init_aannotpropdef on <var7:AAnnotPropdef>*/
845 }
846 var_ppropdefnode1 = var7;
847 var_node_list = var_ppropdefnode1;
848 var8 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction424> */
849 {
850 var9 = nitc___nitc__Parser___go_to(var_p, var8);
851 }
852 {
853 nitc___nitc__Parser___push(var_p, var9, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
854 }
855 RET_LABEL:;
856 }
857 /* method parser$ReduceAction425$action for (self: ReduceAction425, Parser) */
858 void nitc__parser___nitc__parser__ReduceAction425___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
859 val* var_p /* var p: Parser */;
860 val* var_node_list /* var node_list: nullable Object */;
861 val* var /* : nullable Object */;
862 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
863 val* var1 /* : nullable Object */;
864 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
865 val* var2 /* : nullable Object */;
866 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
867 val* var3 /* : Array[Object] */;
868 val* var_listnode7 /* var listnode7: Array[Object] */;
869 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
870 short int var4 /* : Bool */;
871 int cltype;
872 int idtype;
873 val* var_patidnode5 /* var patidnode5: nullable Object */;
874 short int var5 /* : Bool */;
875 int cltype6;
876 int idtype7;
877 val* var_pannotationsnode9 /* var pannotationsnode9: nullable Object */;
878 short int var8 /* : Bool */;
879 int cltype9;
880 int idtype10;
881 val* var11 /* : AAnnotPropdef */;
882 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AAnnotPropdef */;
883 long var12 /* : Int */;
884 long var13 /* : Int */;
885 var_p = p0;
886 var_node_list = ((val*)NULL);
887 {
888 var = nitc___nitc__Parser___pop(var_p);
889 }
890 var_nodearraylist3 = var;
891 {
892 var1 = nitc___nitc__Parser___pop(var_p);
893 }
894 var_nodearraylist2 = var1;
895 {
896 var2 = nitc___nitc__Parser___pop(var_p);
897 }
898 var_nodearraylist1 = var2;
899 var3 = NEW_core__Array(&type_core__Array__core__Object);
900 {
901 core___core__Array___core__kernel__Object__init(var3); /* Direct call array$Array$init on <var3:Array[Object]>*/
902 }
903 var_listnode7 = var3;
904 var_pdocnode2 = var_nodearraylist1;
905 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
906 cltype = type_nullable__nitc__ADoc.color;
907 idtype = type_nullable__nitc__ADoc.id;
908 if(var_pdocnode2 == NULL) {
909 var4 = 1;
910 } else {
911 if(cltype >= (((long)var_pdocnode2&3)?type_info[((long)var_pdocnode2&3)]:var_pdocnode2->type)->table_size) {
912 var4 = 0;
913 } else {
914 var4 = (((long)var_pdocnode2&3)?type_info[((long)var_pdocnode2&3)]:var_pdocnode2->type)->type_table[cltype] == idtype;
915 }
916 }
917 if (unlikely(!var4)) {
918 if(catchStack.cursor >= 0){
919 longjmp(catchStack.envs[catchStack.cursor], 1);
920 }
921 PRINT_ERROR("Runtime error: %s", "Assert failed");
922 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11165);
923 fatal_exit(1);
924 }
925 var_patidnode5 = var_nodearraylist2;
926 /* <var_patidnode5:nullable Object> isa nullable AAtid */
927 cltype6 = type_nullable__nitc__AAtid.color;
928 idtype7 = type_nullable__nitc__AAtid.id;
929 if(var_patidnode5 == NULL) {
930 var5 = 1;
931 } else {
932 if(cltype6 >= (((long)var_patidnode5&3)?type_info[((long)var_patidnode5&3)]:var_patidnode5->type)->table_size) {
933 var5 = 0;
934 } else {
935 var5 = (((long)var_patidnode5&3)?type_info[((long)var_patidnode5&3)]:var_patidnode5->type)->type_table[cltype6] == idtype7;
936 }
937 }
938 if (unlikely(!var5)) {
939 if(catchStack.cursor >= 0){
940 longjmp(catchStack.envs[catchStack.cursor], 1);
941 }
942 PRINT_ERROR("Runtime error: %s", "Assert failed");
943 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11167);
944 fatal_exit(1);
945 }
946 var_pannotationsnode9 = var_nodearraylist3;
947 /* <var_pannotationsnode9:nullable Object> isa nullable AAnnotations */
948 cltype9 = type_nullable__nitc__AAnnotations.color;
949 idtype10 = type_nullable__nitc__AAnnotations.id;
950 if(var_pannotationsnode9 == NULL) {
951 var8 = 1;
952 } else {
953 if(cltype9 >= (((long)var_pannotationsnode9&3)?type_info[((long)var_pannotationsnode9&3)]:var_pannotationsnode9->type)->table_size) {
954 var8 = 0;
955 } else {
956 var8 = (((long)var_pannotationsnode9&3)?type_info[((long)var_pannotationsnode9&3)]:var_pannotationsnode9->type)->type_table[cltype9] == idtype10;
957 }
958 }
959 if (unlikely(!var8)) {
960 if(catchStack.cursor >= 0){
961 longjmp(catchStack.envs[catchStack.cursor], 1);
962 }
963 PRINT_ERROR("Runtime error: %s", "Assert failed");
964 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11169);
965 fatal_exit(1);
966 }
967 var11 = NEW_nitc__AAnnotPropdef(&type_nitc__AAnnotPropdef);
968 {
969 nitc__parser_prod___AAnnotPropdef___init_aannotpropdef(var11, var_pdocnode2, ((val*)NULL), ((val*)NULL), var_patidnode5, ((val*)NULL), var_listnode7, ((val*)NULL), var_pannotationsnode9); /* Direct call parser_prod$AAnnotPropdef$init_aannotpropdef on <var11:AAnnotPropdef>*/
970 }
971 var_ppropdefnode1 = var11;
972 var_node_list = var_ppropdefnode1;
973 var12 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction425> */
974 {
975 var13 = nitc___nitc__Parser___go_to(var_p, var12);
976 }
977 {
978 nitc___nitc__Parser___push(var_p, var13, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
979 }
980 RET_LABEL:;
981 }
982 /* method parser$ReduceAction426$action for (self: ReduceAction426, Parser) */
983 void nitc__parser___nitc__parser__ReduceAction426___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
984 val* var_p /* var p: Parser */;
985 val* var_node_list /* var node_list: nullable Object */;
986 val* var /* : nullable Object */;
987 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
988 val* var1 /* : nullable Object */;
989 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
990 val* var2 /* : nullable Object */;
991 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
992 val* var3 /* : nullable Object */;
993 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
994 val* var4 /* : nullable Object */;
995 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
996 val* var5 /* : nullable Object */;
997 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
998 val* var6 /* : Array[Object] */;
999 val* var_listnode8 /* var listnode8: Array[Object] */;
1000 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
1001 short int var7 /* : Bool */;
1002 int cltype;
1003 int idtype;
1004 val* var_patidnode5 /* var patidnode5: nullable Object */;
1005 short int var8 /* : Bool */;
1006 int cltype9;
1007 int idtype10;
1008 val* var_toparnode6 /* var toparnode6: nullable Object */;
1009 short int var11 /* : Bool */;
1010 int cltype12;
1011 int idtype13;
1012 val* var_listnode7 /* var listnode7: nullable Object */;
1013 short int var14 /* : Bool */;
1014 int cltype15;
1015 int idtype16;
1016 val* var17 /* : Array[Object] */;
1017 val* var_tcparnode9 /* var tcparnode9: nullable Object */;
1018 short int var18 /* : Bool */;
1019 int cltype19;
1020 int idtype20;
1021 val* var21 /* : AAnnotPropdef */;
1022 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AAnnotPropdef */;
1023 long var22 /* : Int */;
1024 long var23 /* : Int */;
1025 var_p = p0;
1026 var_node_list = ((val*)NULL);
1027 {
1028 var = nitc___nitc__Parser___pop(var_p);
1029 }
1030 var_nodearraylist6 = var;
1031 {
1032 var1 = nitc___nitc__Parser___pop(var_p);
1033 }
1034 var_nodearraylist5 = var1;
1035 {
1036 var2 = nitc___nitc__Parser___pop(var_p);
1037 }
1038 var_nodearraylist4 = var2;
1039 {
1040 var3 = nitc___nitc__Parser___pop(var_p);
1041 }
1042 var_nodearraylist3 = var3;
1043 {
1044 var4 = nitc___nitc__Parser___pop(var_p);
1045 }
1046 var_nodearraylist2 = var4;
1047 {
1048 var5 = nitc___nitc__Parser___pop(var_p);
1049 }
1050 var_nodearraylist1 = var5;
1051 var6 = NEW_core__Array(&type_core__Array__core__Object);
1052 {
1053 core___core__Array___core__kernel__Object__init(var6); /* Direct call array$Array$init on <var6:Array[Object]>*/
1054 }
1055 var_listnode8 = var6;
1056 var_pdocnode2 = var_nodearraylist1;
1057 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
1058 cltype = type_nullable__nitc__ADoc.color;
1059 idtype = type_nullable__nitc__ADoc.id;
1060 if(var_pdocnode2 == NULL) {
1061 var7 = 1;
1062 } else {
1063 if(cltype >= (((long)var_pdocnode2&3)?type_info[((long)var_pdocnode2&3)]:var_pdocnode2->type)->table_size) {
1064 var7 = 0;
1065 } else {
1066 var7 = (((long)var_pdocnode2&3)?type_info[((long)var_pdocnode2&3)]:var_pdocnode2->type)->type_table[cltype] == idtype;
1067 }
1068 }
1069 if (unlikely(!var7)) {
1070 if(catchStack.cursor >= 0){
1071 longjmp(catchStack.envs[catchStack.cursor], 1);
1072 }
1073 PRINT_ERROR("Runtime error: %s", "Assert failed");
1074 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11197);
1075 fatal_exit(1);
1076 }
1077 var_patidnode5 = var_nodearraylist2;
1078 /* <var_patidnode5:nullable Object> isa nullable AAtid */
1079 cltype9 = type_nullable__nitc__AAtid.color;
1080 idtype10 = type_nullable__nitc__AAtid.id;
1081 if(var_patidnode5 == NULL) {
1082 var8 = 1;
1083 } else {
1084 if(cltype9 >= (((long)var_patidnode5&3)?type_info[((long)var_patidnode5&3)]:var_patidnode5->type)->table_size) {
1085 var8 = 0;
1086 } else {
1087 var8 = (((long)var_patidnode5&3)?type_info[((long)var_patidnode5&3)]:var_patidnode5->type)->type_table[cltype9] == idtype10;
1088 }
1089 }
1090 if (unlikely(!var8)) {
1091 if(catchStack.cursor >= 0){
1092 longjmp(catchStack.envs[catchStack.cursor], 1);
1093 }
1094 PRINT_ERROR("Runtime error: %s", "Assert failed");
1095 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11199);
1096 fatal_exit(1);
1097 }
1098 var_toparnode6 = var_nodearraylist3;
1099 /* <var_toparnode6:nullable Object> isa nullable TOpar */
1100 cltype12 = type_nullable__nitc__TOpar.color;
1101 idtype13 = type_nullable__nitc__TOpar.id;
1102 if(var_toparnode6 == NULL) {
1103 var11 = 1;
1104 } else {
1105 if(cltype12 >= (((long)var_toparnode6&3)?type_info[((long)var_toparnode6&3)]:var_toparnode6->type)->table_size) {
1106 var11 = 0;
1107 } else {
1108 var11 = (((long)var_toparnode6&3)?type_info[((long)var_toparnode6&3)]:var_toparnode6->type)->type_table[cltype12] == idtype13;
1109 }
1110 }
1111 if (unlikely(!var11)) {
1112 if(catchStack.cursor >= 0){
1113 longjmp(catchStack.envs[catchStack.cursor], 1);
1114 }
1115 PRINT_ERROR("Runtime error: %s", "Assert failed");
1116 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11201);
1117 fatal_exit(1);
1118 }
1119 var_listnode7 = var_nodearraylist5;
1120 /* <var_listnode7:nullable Object> isa Array[Object] */
1121 cltype15 = type_core__Array__core__Object.color;
1122 idtype16 = type_core__Array__core__Object.id;
1123 if(var_listnode7 == NULL) {
1124 var14 = 0;
1125 } else {
1126 if(cltype15 >= (((long)var_listnode7&3)?type_info[((long)var_listnode7&3)]:var_listnode7->type)->table_size) {
1127 var14 = 0;
1128 } else {
1129 var14 = (((long)var_listnode7&3)?type_info[((long)var_listnode7&3)]:var_listnode7->type)->type_table[cltype15] == idtype16;
1130 }
1131 }
1132 if (unlikely(!var14)) {
1133 if(catchStack.cursor >= 0){
1134 longjmp(catchStack.envs[catchStack.cursor], 1);
1135 }
1136 PRINT_ERROR("Runtime error: %s", "Assert failed");
1137 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11203);
1138 fatal_exit(1);
1139 }
1140 {
1141 var17 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode8, var_listnode7);
1142 }
1143 var_listnode8 = var17;
1144 var_tcparnode9 = var_nodearraylist6;
1145 /* <var_tcparnode9:nullable Object> isa nullable TCpar */
1146 cltype19 = type_nullable__nitc__TCpar.color;
1147 idtype20 = type_nullable__nitc__TCpar.id;
1148 if(var_tcparnode9 == NULL) {
1149 var18 = 1;
1150 } else {
1151 if(cltype19 >= (((long)var_tcparnode9&3)?type_info[((long)var_tcparnode9&3)]:var_tcparnode9->type)->table_size) {
1152 var18 = 0;
1153 } else {
1154 var18 = (((long)var_tcparnode9&3)?type_info[((long)var_tcparnode9&3)]:var_tcparnode9->type)->type_table[cltype19] == idtype20;
1155 }
1156 }
1157 if (unlikely(!var18)) {
1158 if(catchStack.cursor >= 0){
1159 longjmp(catchStack.envs[catchStack.cursor], 1);
1160 }
1161 PRINT_ERROR("Runtime error: %s", "Assert failed");
1162 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11206);
1163 fatal_exit(1);
1164 }
1165 var21 = NEW_nitc__AAnnotPropdef(&type_nitc__AAnnotPropdef);
1166 {
1167 nitc__parser_prod___AAnnotPropdef___init_aannotpropdef(var21, var_pdocnode2, ((val*)NULL), ((val*)NULL), var_patidnode5, var_toparnode6, var_listnode8, var_tcparnode9, ((val*)NULL)); /* Direct call parser_prod$AAnnotPropdef$init_aannotpropdef on <var21:AAnnotPropdef>*/
1168 }
1169 var_ppropdefnode1 = var21;
1170 var_node_list = var_ppropdefnode1;
1171 var22 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction426> */
1172 {
1173 var23 = nitc___nitc__Parser___go_to(var_p, var22);
1174 }
1175 {
1176 nitc___nitc__Parser___push(var_p, var23, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
1177 }
1178 RET_LABEL:;
1179 }
1180 /* method parser$ReduceAction427$action for (self: ReduceAction427, Parser) */
1181 void nitc__parser___nitc__parser__ReduceAction427___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
1182 val* var_p /* var p: Parser */;
1183 val* var_node_list /* var node_list: nullable Object */;
1184 val* var /* : nullable Object */;
1185 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
1186 val* var1 /* : nullable Object */;
1187 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
1188 val* var2 /* : nullable Object */;
1189 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
1190 val* var3 /* : nullable Object */;
1191 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1192 val* var4 /* : nullable Object */;
1193 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1194 val* var5 /* : nullable Object */;
1195 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1196 val* var6 /* : nullable Object */;
1197 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1198 val* var7 /* : Array[Object] */;
1199 val* var_listnode8 /* var listnode8: Array[Object] */;
1200 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
1201 short int var8 /* : Bool */;
1202 int cltype;
1203 int idtype;
1204 val* var_patidnode5 /* var patidnode5: nullable Object */;
1205 short int var9 /* : Bool */;
1206 int cltype10;
1207 int idtype11;
1208 val* var_toparnode6 /* var toparnode6: nullable Object */;
1209 short int var12 /* : Bool */;
1210 int cltype13;
1211 int idtype14;
1212 val* var_listnode7 /* var listnode7: nullable Object */;
1213 short int var15 /* : Bool */;
1214 int cltype16;
1215 int idtype17;
1216 val* var18 /* : Array[Object] */;
1217 val* var_tcparnode9 /* var tcparnode9: nullable Object */;
1218 short int var19 /* : Bool */;
1219 int cltype20;
1220 int idtype21;
1221 val* var_pannotationsnode10 /* var pannotationsnode10: nullable Object */;
1222 short int var22 /* : Bool */;
1223 int cltype23;
1224 int idtype24;
1225 val* var25 /* : AAnnotPropdef */;
1226 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AAnnotPropdef */;
1227 long var26 /* : Int */;
1228 long var27 /* : Int */;
1229 var_p = p0;
1230 var_node_list = ((val*)NULL);
1231 {
1232 var = nitc___nitc__Parser___pop(var_p);
1233 }
1234 var_nodearraylist7 = var;
1235 {
1236 var1 = nitc___nitc__Parser___pop(var_p);
1237 }
1238 var_nodearraylist6 = var1;
1239 {
1240 var2 = nitc___nitc__Parser___pop(var_p);
1241 }
1242 var_nodearraylist5 = var2;
1243 {
1244 var3 = nitc___nitc__Parser___pop(var_p);
1245 }
1246 var_nodearraylist4 = var3;
1247 {
1248 var4 = nitc___nitc__Parser___pop(var_p);
1249 }
1250 var_nodearraylist3 = var4;
1251 {
1252 var5 = nitc___nitc__Parser___pop(var_p);
1253 }
1254 var_nodearraylist2 = var5;
1255 {
1256 var6 = nitc___nitc__Parser___pop(var_p);
1257 }
1258 var_nodearraylist1 = var6;
1259 var7 = NEW_core__Array(&type_core__Array__core__Object);
1260 {
1261 core___core__Array___core__kernel__Object__init(var7); /* Direct call array$Array$init on <var7:Array[Object]>*/
1262 }
1263 var_listnode8 = var7;
1264 var_pdocnode2 = var_nodearraylist1;
1265 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
1266 cltype = type_nullable__nitc__ADoc.color;
1267 idtype = type_nullable__nitc__ADoc.id;
1268 if(var_pdocnode2 == NULL) {
1269 var8 = 1;
1270 } else {
1271 if(cltype >= (((long)var_pdocnode2&3)?type_info[((long)var_pdocnode2&3)]:var_pdocnode2->type)->table_size) {
1272 var8 = 0;
1273 } else {
1274 var8 = (((long)var_pdocnode2&3)?type_info[((long)var_pdocnode2&3)]:var_pdocnode2->type)->type_table[cltype] == idtype;
1275 }
1276 }
1277 if (unlikely(!var8)) {
1278 if(catchStack.cursor >= 0){
1279 longjmp(catchStack.envs[catchStack.cursor], 1);
1280 }
1281 PRINT_ERROR("Runtime error: %s", "Assert failed");
1282 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11235);
1283 fatal_exit(1);
1284 }
1285 var_patidnode5 = var_nodearraylist2;
1286 /* <var_patidnode5:nullable Object> isa nullable AAtid */
1287 cltype10 = type_nullable__nitc__AAtid.color;
1288 idtype11 = type_nullable__nitc__AAtid.id;
1289 if(var_patidnode5 == NULL) {
1290 var9 = 1;
1291 } else {
1292 if(cltype10 >= (((long)var_patidnode5&3)?type_info[((long)var_patidnode5&3)]:var_patidnode5->type)->table_size) {
1293 var9 = 0;
1294 } else {
1295 var9 = (((long)var_patidnode5&3)?type_info[((long)var_patidnode5&3)]:var_patidnode5->type)->type_table[cltype10] == idtype11;
1296 }
1297 }
1298 if (unlikely(!var9)) {
1299 if(catchStack.cursor >= 0){
1300 longjmp(catchStack.envs[catchStack.cursor], 1);
1301 }
1302 PRINT_ERROR("Runtime error: %s", "Assert failed");
1303 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11237);
1304 fatal_exit(1);
1305 }
1306 var_toparnode6 = var_nodearraylist3;
1307 /* <var_toparnode6:nullable Object> isa nullable TOpar */
1308 cltype13 = type_nullable__nitc__TOpar.color;
1309 idtype14 = type_nullable__nitc__TOpar.id;
1310 if(var_toparnode6 == NULL) {
1311 var12 = 1;
1312 } else {
1313 if(cltype13 >= (((long)var_toparnode6&3)?type_info[((long)var_toparnode6&3)]:var_toparnode6->type)->table_size) {
1314 var12 = 0;
1315 } else {
1316 var12 = (((long)var_toparnode6&3)?type_info[((long)var_toparnode6&3)]:var_toparnode6->type)->type_table[cltype13] == idtype14;
1317 }
1318 }
1319 if (unlikely(!var12)) {
1320 if(catchStack.cursor >= 0){
1321 longjmp(catchStack.envs[catchStack.cursor], 1);
1322 }
1323 PRINT_ERROR("Runtime error: %s", "Assert failed");
1324 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11239);
1325 fatal_exit(1);
1326 }
1327 var_listnode7 = var_nodearraylist5;
1328 /* <var_listnode7:nullable Object> isa Array[Object] */
1329 cltype16 = type_core__Array__core__Object.color;
1330 idtype17 = type_core__Array__core__Object.id;
1331 if(var_listnode7 == NULL) {
1332 var15 = 0;
1333 } else {
1334 if(cltype16 >= (((long)var_listnode7&3)?type_info[((long)var_listnode7&3)]:var_listnode7->type)->table_size) {
1335 var15 = 0;
1336 } else {
1337 var15 = (((long)var_listnode7&3)?type_info[((long)var_listnode7&3)]:var_listnode7->type)->type_table[cltype16] == idtype17;
1338 }
1339 }
1340 if (unlikely(!var15)) {
1341 if(catchStack.cursor >= 0){
1342 longjmp(catchStack.envs[catchStack.cursor], 1);
1343 }
1344 PRINT_ERROR("Runtime error: %s", "Assert failed");
1345 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11241);
1346 fatal_exit(1);
1347 }
1348 {
1349 var18 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode8, var_listnode7);
1350 }
1351 var_listnode8 = var18;
1352 var_tcparnode9 = var_nodearraylist6;
1353 /* <var_tcparnode9:nullable Object> isa nullable TCpar */
1354 cltype20 = type_nullable__nitc__TCpar.color;
1355 idtype21 = type_nullable__nitc__TCpar.id;
1356 if(var_tcparnode9 == NULL) {
1357 var19 = 1;
1358 } else {
1359 if(cltype20 >= (((long)var_tcparnode9&3)?type_info[((long)var_tcparnode9&3)]:var_tcparnode9->type)->table_size) {
1360 var19 = 0;
1361 } else {
1362 var19 = (((long)var_tcparnode9&3)?type_info[((long)var_tcparnode9&3)]:var_tcparnode9->type)->type_table[cltype20] == idtype21;
1363 }
1364 }
1365 if (unlikely(!var19)) {
1366 if(catchStack.cursor >= 0){
1367 longjmp(catchStack.envs[catchStack.cursor], 1);
1368 }
1369 PRINT_ERROR("Runtime error: %s", "Assert failed");
1370 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11244);
1371 fatal_exit(1);
1372 }
1373 var_pannotationsnode10 = var_nodearraylist7;
1374 /* <var_pannotationsnode10:nullable Object> isa nullable AAnnotations */
1375 cltype23 = type_nullable__nitc__AAnnotations.color;
1376 idtype24 = type_nullable__nitc__AAnnotations.id;
1377 if(var_pannotationsnode10 == NULL) {
1378 var22 = 1;
1379 } else {
1380 if(cltype23 >= (((long)var_pannotationsnode10&3)?type_info[((long)var_pannotationsnode10&3)]:var_pannotationsnode10->type)->table_size) {
1381 var22 = 0;
1382 } else {
1383 var22 = (((long)var_pannotationsnode10&3)?type_info[((long)var_pannotationsnode10&3)]:var_pannotationsnode10->type)->type_table[cltype23] == idtype24;
1384 }
1385 }
1386 if (unlikely(!var22)) {
1387 if(catchStack.cursor >= 0){
1388 longjmp(catchStack.envs[catchStack.cursor], 1);
1389 }
1390 PRINT_ERROR("Runtime error: %s", "Assert failed");
1391 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11246);
1392 fatal_exit(1);
1393 }
1394 var25 = NEW_nitc__AAnnotPropdef(&type_nitc__AAnnotPropdef);
1395 {
1396 nitc__parser_prod___AAnnotPropdef___init_aannotpropdef(var25, var_pdocnode2, ((val*)NULL), ((val*)NULL), var_patidnode5, var_toparnode6, var_listnode8, var_tcparnode9, var_pannotationsnode10); /* Direct call parser_prod$AAnnotPropdef$init_aannotpropdef on <var25:AAnnotPropdef>*/
1397 }
1398 var_ppropdefnode1 = var25;
1399 var_node_list = var_ppropdefnode1;
1400 var26 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction427> */
1401 {
1402 var27 = nitc___nitc__Parser___go_to(var_p, var26);
1403 }
1404 {
1405 nitc___nitc__Parser___push(var_p, var27, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
1406 }
1407 RET_LABEL:;
1408 }
1409 /* method parser$ReduceAction428$action for (self: ReduceAction428, Parser) */
1410 void nitc__parser___nitc__parser__ReduceAction428___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
1411 val* var_p /* var p: Parser */;
1412 val* var_node_list /* var node_list: nullable Object */;
1413 val* var /* : nullable Object */;
1414 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1415 val* var1 /* : nullable Object */;
1416 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1417 val* var2 /* : nullable Object */;
1418 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1419 val* var3 /* : Array[Object] */;
1420 val* var_listnode8 /* var listnode8: Array[Object] */;
1421 val* var_pdocnode2 /* var pdocnode2: nullable Object */;
1422 short int var4 /* : Bool */;
1423 int cltype;
1424 int idtype;
1425 val* var_patidnode5 /* var patidnode5: nullable Object */;
1426 short int var5 /* : Bool */;
1427 int cltype6;
1428 int idtype7;
1429 val* var_listnode7 /* var listnode7: nullable Object */;
1430 short int var8 /* : Bool */;
1431 int cltype9;
1432 int idtype10;
1433 val* var11 /* : Array[Object] */;
1434 val* var12 /* : AAnnotPropdef */;
1435 val* var_ppropdefnode1 /* var ppropdefnode1: nullable AAnnotPropdef */;
1436 long var13 /* : Int */;
1437 long var14 /* : Int */;
1438 var_p = p0;
1439 var_node_list = ((val*)NULL);
1440 {
1441 var = nitc___nitc__Parser___pop(var_p);
1442 }
1443 var_nodearraylist3 = var;
1444 {
1445 var1 = nitc___nitc__Parser___pop(var_p);
1446 }
1447 var_nodearraylist2 = var1;
1448 {
1449 var2 = nitc___nitc__Parser___pop(var_p);
1450 }
1451 var_nodearraylist1 = var2;
1452 var3 = NEW_core__Array(&type_core__Array__core__Object);
1453 {
1454 core___core__Array___core__kernel__Object__init(var3); /* Direct call array$Array$init on <var3:Array[Object]>*/
1455 }
1456 var_listnode8 = var3;
1457 var_pdocnode2 = var_nodearraylist1;
1458 /* <var_pdocnode2:nullable Object> isa nullable ADoc */
1459 cltype = type_nullable__nitc__ADoc.color;
1460 idtype = type_nullable__nitc__ADoc.id;
1461 if(var_pdocnode2 == NULL) {
1462 var4 = 1;
1463 } else {
1464 if(cltype >= (((long)var_pdocnode2&3)?type_info[((long)var_pdocnode2&3)]:var_pdocnode2->type)->table_size) {
1465 var4 = 0;
1466 } else {
1467 var4 = (((long)var_pdocnode2&3)?type_info[((long)var_pdocnode2&3)]:var_pdocnode2->type)->type_table[cltype] == idtype;
1468 }
1469 }
1470 if (unlikely(!var4)) {
1471 if(catchStack.cursor >= 0){
1472 longjmp(catchStack.envs[catchStack.cursor], 1);
1473 }
1474 PRINT_ERROR("Runtime error: %s", "Assert failed");
1475 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11271);
1476 fatal_exit(1);
1477 }
1478 var_patidnode5 = var_nodearraylist2;
1479 /* <var_patidnode5:nullable Object> isa nullable AAtid */
1480 cltype6 = type_nullable__nitc__AAtid.color;
1481 idtype7 = type_nullable__nitc__AAtid.id;
1482 if(var_patidnode5 == NULL) {
1483 var5 = 1;
1484 } else {
1485 if(cltype6 >= (((long)var_patidnode5&3)?type_info[((long)var_patidnode5&3)]:var_patidnode5->type)->table_size) {
1486 var5 = 0;
1487 } else {
1488 var5 = (((long)var_patidnode5&3)?type_info[((long)var_patidnode5&3)]:var_patidnode5->type)->type_table[cltype6] == idtype7;
1489 }
1490 }
1491 if (unlikely(!var5)) {
1492 if(catchStack.cursor >= 0){
1493 longjmp(catchStack.envs[catchStack.cursor], 1);
1494 }
1495 PRINT_ERROR("Runtime error: %s", "Assert failed");
1496 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11273);
1497 fatal_exit(1);
1498 }
1499 var_listnode7 = var_nodearraylist3;
1500 /* <var_listnode7:nullable Object> isa Array[Object] */
1501 cltype9 = type_core__Array__core__Object.color;
1502 idtype10 = type_core__Array__core__Object.id;
1503 if(var_listnode7 == NULL) {
1504 var8 = 0;
1505 } else {
1506 if(cltype9 >= (((long)var_listnode7&3)?type_info[((long)var_listnode7&3)]:var_listnode7->type)->table_size) {
1507 var8 = 0;
1508 } else {
1509 var8 = (((long)var_listnode7&3)?type_info[((long)var_listnode7&3)]:var_listnode7->type)->type_table[cltype9] == idtype10;
1510 }
1511 }
1512 if (unlikely(!var8)) {
1513 if(catchStack.cursor >= 0){
1514 longjmp(catchStack.envs[catchStack.cursor], 1);
1515 }
1516 PRINT_ERROR("Runtime error: %s", "Assert failed");
1517 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11275);
1518 fatal_exit(1);
1519 }
1520 {
1521 var11 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode8, var_listnode7);
1522 }
1523 var_listnode8 = var11;
1524 var12 = NEW_nitc__AAnnotPropdef(&type_nitc__AAnnotPropdef);
1525 {
1526 nitc__parser_prod___AAnnotPropdef___init_aannotpropdef(var12, var_pdocnode2, ((val*)NULL), ((val*)NULL), var_patidnode5, ((val*)NULL), var_listnode8, ((val*)NULL), ((val*)NULL)); /* Direct call parser_prod$AAnnotPropdef$init_aannotpropdef on <var12:AAnnotPropdef>*/
1527 }
1528 var_ppropdefnode1 = var12;
1529 var_node_list = var_ppropdefnode1;
1530 var13 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction428> */
1531 {
1532 var14 = nitc___nitc__Parser___go_to(var_p, var13);
1533 }
1534 {
1535 nitc___nitc__Parser___push(var_p, var14, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
1536 }
1537 RET_LABEL:;
1538 }
1539 /* method parser$ReduceAction432$action for (self: ReduceAction432, Parser) */
1540 void nitc__parser___nitc__parser__ReduceAction432___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
1541 val* var_p /* var p: Parser */;
1542 val* var_node_list /* var node_list: nullable Object */;
1543 val* var /* : nullable Object */;
1544 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1545 val* var_ptypenode2 /* var ptypenode2: nullable Object */;
1546 short int var1 /* : Bool */;
1547 int cltype;
1548 int idtype;
1549 val* var2 /* : ATypeExpr */;
1550 val* var_pexprnode1 /* var pexprnode1: nullable ATypeExpr */;
1551 long var3 /* : Int */;
1552 long var4 /* : Int */;
1553 var_p = p0;
1554 var_node_list = ((val*)NULL);
1555 {
1556 var = nitc___nitc__Parser___pop(var_p);
1557 }
1558 var_nodearraylist1 = var;
1559 var_ptypenode2 = var_nodearraylist1;
1560 /* <var_ptypenode2:nullable Object> isa nullable AType */
1561 cltype = type_nullable__nitc__AType.color;
1562 idtype = type_nullable__nitc__AType.id;
1563 if(var_ptypenode2 == NULL) {
1564 var1 = 1;
1565 } else {
1566 if(cltype >= (((long)var_ptypenode2&3)?type_info[((long)var_ptypenode2&3)]:var_ptypenode2->type)->table_size) {
1567 var1 = 0;
1568 } else {
1569 var1 = (((long)var_ptypenode2&3)?type_info[((long)var_ptypenode2&3)]:var_ptypenode2->type)->type_table[cltype] == idtype;
1570 }
1571 }
1572 if (unlikely(!var1)) {
1573 if(catchStack.cursor >= 0){
1574 longjmp(catchStack.envs[catchStack.cursor], 1);
1575 }
1576 PRINT_ERROR("Runtime error: %s", "Assert failed");
1577 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11298);
1578 fatal_exit(1);
1579 }
1580 var2 = NEW_nitc__ATypeExpr(&type_nitc__ATypeExpr);
1581 {
1582 nitc__parser_prod___ATypeExpr___init_atypeexpr(var2, var_ptypenode2); /* Direct call parser_prod$ATypeExpr$init_atypeexpr on <var2:ATypeExpr>*/
1583 }
1584 var_pexprnode1 = var2;
1585 var_node_list = var_pexprnode1;
1586 var3 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction432> */
1587 {
1588 var4 = nitc___nitc__Parser___go_to(var_p, var3);
1589 }
1590 {
1591 nitc___nitc__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
1592 }
1593 RET_LABEL:;
1594 }
1595 /* method parser$ReduceAction435$action for (self: ReduceAction435, Parser) */
1596 void nitc__parser___nitc__parser__ReduceAction435___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
1597 val* var_p /* var p: Parser */;
1598 val* var_node_list /* var node_list: nullable Object */;
1599 val* var /* : nullable Object */;
1600 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1601 val* var1 /* : nullable Object */;
1602 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1603 val* var2 /* : nullable Object */;
1604 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1605 val* var3 /* : nullable Object */;
1606 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1607 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
1608 short int var4 /* : Bool */;
1609 int cltype;
1610 int idtype;
1611 val* var_pmethidnode3 /* var pmethidnode3: nullable Object */;
1612 short int var5 /* : Bool */;
1613 int cltype6;
1614 int idtype7;
1615 val* var8 /* : AMethidExpr */;
1616 val* var_pexprnode1 /* var pexprnode1: nullable AMethidExpr */;
1617 long var9 /* : Int */;
1618 long var10 /* : Int */;
1619 var_p = p0;
1620 var_node_list = ((val*)NULL);
1621 {
1622 var = nitc___nitc__Parser___pop(var_p);
1623 }
1624 var_nodearraylist4 = var;
1625 {
1626 var1 = nitc___nitc__Parser___pop(var_p);
1627 }
1628 var_nodearraylist3 = var1;
1629 {
1630 var2 = nitc___nitc__Parser___pop(var_p);
1631 }
1632 var_nodearraylist2 = var2;
1633 {
1634 var3 = nitc___nitc__Parser___pop(var_p);
1635 }
1636 var_nodearraylist1 = var3;
1637 var_pexprnode2 = var_nodearraylist1;
1638 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
1639 cltype = type_nullable__nitc__AExpr.color;
1640 idtype = type_nullable__nitc__AExpr.id;
1641 if(var_pexprnode2 == NULL) {
1642 var4 = 1;
1643 } else {
1644 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
1645 var4 = 0;
1646 } else {
1647 var4 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
1648 }
1649 }
1650 if (unlikely(!var4)) {
1651 if(catchStack.cursor >= 0){
1652 longjmp(catchStack.envs[catchStack.cursor], 1);
1653 }
1654 PRINT_ERROR("Runtime error: %s", "Assert failed");
1655 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11316);
1656 fatal_exit(1);
1657 }
1658 var_pmethidnode3 = var_nodearraylist4;
1659 /* <var_pmethidnode3:nullable Object> isa nullable AMethid */
1660 cltype6 = type_nullable__nitc__AMethid.color;
1661 idtype7 = type_nullable__nitc__AMethid.id;
1662 if(var_pmethidnode3 == NULL) {
1663 var5 = 1;
1664 } else {
1665 if(cltype6 >= (((long)var_pmethidnode3&3)?type_info[((long)var_pmethidnode3&3)]:var_pmethidnode3->type)->table_size) {
1666 var5 = 0;
1667 } else {
1668 var5 = (((long)var_pmethidnode3&3)?type_info[((long)var_pmethidnode3&3)]:var_pmethidnode3->type)->type_table[cltype6] == idtype7;
1669 }
1670 }
1671 if (unlikely(!var5)) {
1672 if(catchStack.cursor >= 0){
1673 longjmp(catchStack.envs[catchStack.cursor], 1);
1674 }
1675 PRINT_ERROR("Runtime error: %s", "Assert failed");
1676 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11318);
1677 fatal_exit(1);
1678 }
1679 var8 = NEW_nitc__AMethidExpr(&type_nitc__AMethidExpr);
1680 {
1681 nitc__parser_prod___AMethidExpr___init_amethidexpr(var8, var_pexprnode2, var_pmethidnode3); /* Direct call parser_prod$AMethidExpr$init_amethidexpr on <var8:AMethidExpr>*/
1682 }
1683 var_pexprnode1 = var8;
1684 var_node_list = var_pexprnode1;
1685 var9 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction435> */
1686 {
1687 var10 = nitc___nitc__Parser___go_to(var_p, var9);
1688 }
1689 {
1690 nitc___nitc__Parser___push(var_p, var10, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
1691 }
1692 RET_LABEL:;
1693 }
1694 /* method parser$ReduceAction436$action for (self: ReduceAction436, Parser) */
1695 void nitc__parser___nitc__parser__ReduceAction436___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
1696 val* var_p /* var p: Parser */;
1697 val* var_node_list /* var node_list: nullable Object */;
1698 val* var /* : nullable Object */;
1699 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1700 val* var1 /* : AImplicitSelfExpr */;
1701 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
1702 val* var_pmethidnode3 /* var pmethidnode3: nullable Object */;
1703 short int var2 /* : Bool */;
1704 int cltype;
1705 int idtype;
1706 val* var3 /* : AMethidExpr */;
1707 val* var_pexprnode1 /* var pexprnode1: nullable AMethidExpr */;
1708 long var4 /* : Int */;
1709 long var5 /* : Int */;
1710 var_p = p0;
1711 var_node_list = ((val*)NULL);
1712 {
1713 var = nitc___nitc__Parser___pop(var_p);
1714 }
1715 var_nodearraylist1 = var;
1716 var1 = NEW_nitc__AImplicitSelfExpr(&type_nitc__AImplicitSelfExpr);
1717 {
1718 nitc__parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(var1); /* Direct call parser_prod$AImplicitSelfExpr$init_aimplicitselfexpr on <var1:AImplicitSelfExpr>*/
1719 }
1720 var_pexprnode2 = var1;
1721 var_pmethidnode3 = var_nodearraylist1;
1722 /* <var_pmethidnode3:nullable Object> isa nullable AMethid */
1723 cltype = type_nullable__nitc__AMethid.color;
1724 idtype = type_nullable__nitc__AMethid.id;
1725 if(var_pmethidnode3 == NULL) {
1726 var2 = 1;
1727 } else {
1728 if(cltype >= (((long)var_pmethidnode3&3)?type_info[((long)var_pmethidnode3&3)]:var_pmethidnode3->type)->table_size) {
1729 var2 = 0;
1730 } else {
1731 var2 = (((long)var_pmethidnode3&3)?type_info[((long)var_pmethidnode3&3)]:var_pmethidnode3->type)->type_table[cltype] == idtype;
1732 }
1733 }
1734 if (unlikely(!var2)) {
1735 if(catchStack.cursor >= 0){
1736 longjmp(catchStack.envs[catchStack.cursor], 1);
1737 }
1738 PRINT_ERROR("Runtime error: %s", "Assert failed");
1739 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11335);
1740 fatal_exit(1);
1741 }
1742 var3 = NEW_nitc__AMethidExpr(&type_nitc__AMethidExpr);
1743 {
1744 nitc__parser_prod___AMethidExpr___init_amethidexpr(var3, var_pexprnode2, var_pmethidnode3); /* Direct call parser_prod$AMethidExpr$init_amethidexpr on <var3:AMethidExpr>*/
1745 }
1746 var_pexprnode1 = var3;
1747 var_node_list = var_pexprnode1;
1748 var4 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction436> */
1749 {
1750 var5 = nitc___nitc__Parser___go_to(var_p, var4);
1751 }
1752 {
1753 nitc___nitc__Parser___push(var_p, var5, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
1754 }
1755 RET_LABEL:;
1756 }
1757 /* method parser$ReduceAction437$action for (self: ReduceAction437, Parser) */
1758 void nitc__parser___nitc__parser__ReduceAction437___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
1759 val* var_p /* var p: Parser */;
1760 val* var_node_list /* var node_list: nullable Object */;
1761 val* var /* : nullable Object */;
1762 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1763 val* var_pannotationsnode2 /* var pannotationsnode2: nullable Object */;
1764 short int var1 /* : Bool */;
1765 int cltype;
1766 int idtype;
1767 val* var2 /* : AAtExpr */;
1768 val* var_pexprnode1 /* var pexprnode1: nullable AAtExpr */;
1769 long var3 /* : Int */;
1770 long var4 /* : Int */;
1771 var_p = p0;
1772 var_node_list = ((val*)NULL);
1773 {
1774 var = nitc___nitc__Parser___pop(var_p);
1775 }
1776 var_nodearraylist1 = var;
1777 var_pannotationsnode2 = var_nodearraylist1;
1778 /* <var_pannotationsnode2:nullable Object> isa nullable AAnnotations */
1779 cltype = type_nullable__nitc__AAnnotations.color;
1780 idtype = type_nullable__nitc__AAnnotations.id;
1781 if(var_pannotationsnode2 == NULL) {
1782 var1 = 1;
1783 } else {
1784 if(cltype >= (((long)var_pannotationsnode2&3)?type_info[((long)var_pannotationsnode2&3)]:var_pannotationsnode2->type)->table_size) {
1785 var1 = 0;
1786 } else {
1787 var1 = (((long)var_pannotationsnode2&3)?type_info[((long)var_pannotationsnode2&3)]:var_pannotationsnode2->type)->type_table[cltype] == idtype;
1788 }
1789 }
1790 if (unlikely(!var1)) {
1791 if(catchStack.cursor >= 0){
1792 longjmp(catchStack.envs[catchStack.cursor], 1);
1793 }
1794 PRINT_ERROR("Runtime error: %s", "Assert failed");
1795 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11351);
1796 fatal_exit(1);
1797 }
1798 var2 = NEW_nitc__AAtExpr(&type_nitc__AAtExpr);
1799 {
1800 nitc__parser_prod___AAtExpr___init_aatexpr(var2, var_pannotationsnode2); /* Direct call parser_prod$AAtExpr$init_aatexpr on <var2:AAtExpr>*/
1801 }
1802 var_pexprnode1 = var2;
1803 var_node_list = var_pexprnode1;
1804 var3 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction437> */
1805 {
1806 var4 = nitc___nitc__Parser___go_to(var_p, var3);
1807 }
1808 {
1809 nitc___nitc__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
1810 }
1811 RET_LABEL:;
1812 }
1813 /* method parser$ReduceAction438$action for (self: ReduceAction438, Parser) */
1814 void nitc__parser___nitc__parser__ReduceAction438___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
1815 val* var_p /* var p: Parser */;
1816 val* var_node_list /* var node_list: nullable Object */;
1817 val* var /* : nullable Object */;
1818 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1819 val* var_tidnode2 /* var tidnode2: nullable Object */;
1820 short int var1 /* : Bool */;
1821 int cltype;
1822 int idtype;
1823 val* var2 /* : AIdAtid */;
1824 val* var_patidnode1 /* var patidnode1: nullable AIdAtid */;
1825 long var3 /* : Int */;
1826 long var4 /* : Int */;
1827 var_p = p0;
1828 var_node_list = ((val*)NULL);
1829 {
1830 var = nitc___nitc__Parser___pop(var_p);
1831 }
1832 var_nodearraylist1 = var;
1833 var_tidnode2 = var_nodearraylist1;
1834 /* <var_tidnode2:nullable Object> isa nullable TId */
1835 cltype = type_nullable__nitc__TId.color;
1836 idtype = type_nullable__nitc__TId.id;
1837 if(var_tidnode2 == NULL) {
1838 var1 = 1;
1839 } else {
1840 if(cltype >= (((long)var_tidnode2&3)?type_info[((long)var_tidnode2&3)]:var_tidnode2->type)->table_size) {
1841 var1 = 0;
1842 } else {
1843 var1 = (((long)var_tidnode2&3)?type_info[((long)var_tidnode2&3)]:var_tidnode2->type)->type_table[cltype] == idtype;
1844 }
1845 }
1846 if (unlikely(!var1)) {
1847 if(catchStack.cursor >= 0){
1848 longjmp(catchStack.envs[catchStack.cursor], 1);
1849 }
1850 PRINT_ERROR("Runtime error: %s", "Assert failed");
1851 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11366);
1852 fatal_exit(1);
1853 }
1854 var2 = NEW_nitc__AIdAtid(&type_nitc__AIdAtid);
1855 {
1856 nitc__parser_prod___AIdAtid___init_aidatid(var2, var_tidnode2); /* Direct call parser_prod$AIdAtid$init_aidatid on <var2:AIdAtid>*/
1857 }
1858 var_patidnode1 = var2;
1859 var_node_list = var_patidnode1;
1860 var3 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction438> */
1861 {
1862 var4 = nitc___nitc__Parser___go_to(var_p, var3);
1863 }
1864 {
1865 nitc___nitc__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
1866 }
1867 RET_LABEL:;
1868 }
1869 /* method parser$ReduceAction439$action for (self: ReduceAction439, Parser) */
1870 void nitc__parser___nitc__parser__ReduceAction439___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
1871 val* var_p /* var p: Parser */;
1872 val* var_node_list /* var node_list: nullable Object */;
1873 val* var /* : nullable Object */;
1874 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1875 val* var_tkwexternnode2 /* var tkwexternnode2: nullable Object */;
1876 short int var1 /* : Bool */;
1877 int cltype;
1878 int idtype;
1879 val* var2 /* : AKwexternAtid */;
1880 val* var_patidnode1 /* var patidnode1: nullable AKwexternAtid */;
1881 long var3 /* : Int */;
1882 long var4 /* : Int */;
1883 var_p = p0;
1884 var_node_list = ((val*)NULL);
1885 {
1886 var = nitc___nitc__Parser___pop(var_p);
1887 }
1888 var_nodearraylist1 = var;
1889 var_tkwexternnode2 = var_nodearraylist1;
1890 /* <var_tkwexternnode2:nullable Object> isa nullable TKwextern */
1891 cltype = type_nullable__nitc__TKwextern.color;
1892 idtype = type_nullable__nitc__TKwextern.id;
1893 if(var_tkwexternnode2 == NULL) {
1894 var1 = 1;
1895 } else {
1896 if(cltype >= (((long)var_tkwexternnode2&3)?type_info[((long)var_tkwexternnode2&3)]:var_tkwexternnode2->type)->table_size) {
1897 var1 = 0;
1898 } else {
1899 var1 = (((long)var_tkwexternnode2&3)?type_info[((long)var_tkwexternnode2&3)]:var_tkwexternnode2->type)->type_table[cltype] == idtype;
1900 }
1901 }
1902 if (unlikely(!var1)) {
1903 if(catchStack.cursor >= 0){
1904 longjmp(catchStack.envs[catchStack.cursor], 1);
1905 }
1906 PRINT_ERROR("Runtime error: %s", "Assert failed");
1907 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11381);
1908 fatal_exit(1);
1909 }
1910 var2 = NEW_nitc__AKwexternAtid(&type_nitc__AKwexternAtid);
1911 {
1912 nitc__parser_prod___AKwexternAtid___init_akwexternatid(var2, var_tkwexternnode2); /* Direct call parser_prod$AKwexternAtid$init_akwexternatid on <var2:AKwexternAtid>*/
1913 }
1914 var_patidnode1 = var2;
1915 var_node_list = var_patidnode1;
1916 var3 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction439> */
1917 {
1918 var4 = nitc___nitc__Parser___go_to(var_p, var3);
1919 }
1920 {
1921 nitc___nitc__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
1922 }
1923 RET_LABEL:;
1924 }
1925 /* method parser$ReduceAction440$action for (self: ReduceAction440, Parser) */
1926 void nitc__parser___nitc__parser__ReduceAction440___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
1927 val* var_p /* var p: Parser */;
1928 val* var_node_list /* var node_list: nullable Object */;
1929 val* var /* : nullable Object */;
1930 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1931 val* var_tkwabstractnode2 /* var tkwabstractnode2: nullable Object */;
1932 short int var1 /* : Bool */;
1933 int cltype;
1934 int idtype;
1935 val* var2 /* : AKwabstractAtid */;
1936 val* var_patidnode1 /* var patidnode1: nullable AKwabstractAtid */;
1937 long var3 /* : Int */;
1938 long var4 /* : Int */;
1939 var_p = p0;
1940 var_node_list = ((val*)NULL);
1941 {
1942 var = nitc___nitc__Parser___pop(var_p);
1943 }
1944 var_nodearraylist1 = var;
1945 var_tkwabstractnode2 = var_nodearraylist1;
1946 /* <var_tkwabstractnode2:nullable Object> isa nullable TKwabstract */
1947 cltype = type_nullable__nitc__TKwabstract.color;
1948 idtype = type_nullable__nitc__TKwabstract.id;
1949 if(var_tkwabstractnode2 == NULL) {
1950 var1 = 1;
1951 } else {
1952 if(cltype >= (((long)var_tkwabstractnode2&3)?type_info[((long)var_tkwabstractnode2&3)]:var_tkwabstractnode2->type)->table_size) {
1953 var1 = 0;
1954 } else {
1955 var1 = (((long)var_tkwabstractnode2&3)?type_info[((long)var_tkwabstractnode2&3)]:var_tkwabstractnode2->type)->type_table[cltype] == idtype;
1956 }
1957 }
1958 if (unlikely(!var1)) {
1959 if(catchStack.cursor >= 0){
1960 longjmp(catchStack.envs[catchStack.cursor], 1);
1961 }
1962 PRINT_ERROR("Runtime error: %s", "Assert failed");
1963 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11396);
1964 fatal_exit(1);
1965 }
1966 var2 = NEW_nitc__AKwabstractAtid(&type_nitc__AKwabstractAtid);
1967 {
1968 nitc__parser_prod___AKwabstractAtid___init_akwabstractatid(var2, var_tkwabstractnode2); /* Direct call parser_prod$AKwabstractAtid$init_akwabstractatid on <var2:AKwabstractAtid>*/
1969 }
1970 var_patidnode1 = var2;
1971 var_node_list = var_patidnode1;
1972 var3 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction440> */
1973 {
1974 var4 = nitc___nitc__Parser___go_to(var_p, var3);
1975 }
1976 {
1977 nitc___nitc__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
1978 }
1979 RET_LABEL:;
1980 }
1981 /* method parser$ReduceAction441$action for (self: ReduceAction441, Parser) */
1982 void nitc__parser___nitc__parser__ReduceAction441___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
1983 val* var_p /* var p: Parser */;
1984 val* var_node_list /* var node_list: nullable Object */;
1985 val* var /* : nullable Object */;
1986 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1987 val* var1 /* : nullable Object */;
1988 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1989 val* var2 /* : nullable Object */;
1990 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1991 val* var3 /* : nullable Object */;
1992 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1993 val* var4 /* : Array[Object] */;
1994 val* var_listnode4 /* var listnode4: Array[Object] */;
1995 val* var_toparnode2 /* var toparnode2: nullable Object */;
1996 short int var5 /* : Bool */;
1997 int cltype;
1998 int idtype;
1999 val* var_listnode3 /* var listnode3: nullable Object */;
2000 short int var6 /* : Bool */;
2001 int cltype7;
2002 int idtype8;
2003 val* var9 /* : Array[Object] */;
2004 val* var_tcparnode5 /* var tcparnode5: nullable Object */;
2005 short int var10 /* : Bool */;
2006 int cltype11;
2007 int idtype12;
2008 val* var13 /* : AParExprs */;
2009 val* var_pexprsnode1 /* var pexprsnode1: nullable AParExprs */;
2010 long var14 /* : Int */;
2011 long var15 /* : Int */;
2012 var_p = p0;
2013 var_node_list = ((val*)NULL);
2014 {
2015 var = nitc___nitc__Parser___pop(var_p);
2016 }
2017 var_nodearraylist4 = var;
2018 {
2019 var1 = nitc___nitc__Parser___pop(var_p);
2020 }
2021 var_nodearraylist3 = var1;
2022 {
2023 var2 = nitc___nitc__Parser___pop(var_p);
2024 }
2025 var_nodearraylist2 = var2;
2026 {
2027 var3 = nitc___nitc__Parser___pop(var_p);
2028 }
2029 var_nodearraylist1 = var3;
2030 var4 = NEW_core__Array(&type_core__Array__core__Object);
2031 {
2032 core___core__Array___core__kernel__Object__init(var4); /* Direct call array$Array$init on <var4:Array[Object]>*/
2033 }
2034 var_listnode4 = var4;
2035 var_toparnode2 = var_nodearraylist1;
2036 /* <var_toparnode2:nullable Object> isa nullable TOpar */
2037 cltype = type_nullable__nitc__TOpar.color;
2038 idtype = type_nullable__nitc__TOpar.id;
2039 if(var_toparnode2 == NULL) {
2040 var5 = 1;
2041 } else {
2042 if(cltype >= (((long)var_toparnode2&3)?type_info[((long)var_toparnode2&3)]:var_toparnode2->type)->table_size) {
2043 var5 = 0;
2044 } else {
2045 var5 = (((long)var_toparnode2&3)?type_info[((long)var_toparnode2&3)]:var_toparnode2->type)->type_table[cltype] == idtype;
2046 }
2047 }
2048 if (unlikely(!var5)) {
2049 if(catchStack.cursor >= 0){
2050 longjmp(catchStack.envs[catchStack.cursor], 1);
2051 }
2052 PRINT_ERROR("Runtime error: %s", "Assert failed");
2053 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11415);
2054 fatal_exit(1);
2055 }
2056 var_listnode3 = var_nodearraylist3;
2057 /* <var_listnode3:nullable Object> isa Array[Object] */
2058 cltype7 = type_core__Array__core__Object.color;
2059 idtype8 = type_core__Array__core__Object.id;
2060 if(var_listnode3 == NULL) {
2061 var6 = 0;
2062 } else {
2063 if(cltype7 >= (((long)var_listnode3&3)?type_info[((long)var_listnode3&3)]:var_listnode3->type)->table_size) {
2064 var6 = 0;
2065 } else {
2066 var6 = (((long)var_listnode3&3)?type_info[((long)var_listnode3&3)]:var_listnode3->type)->type_table[cltype7] == idtype8;
2067 }
2068 }
2069 if (unlikely(!var6)) {
2070 if(catchStack.cursor >= 0){
2071 longjmp(catchStack.envs[catchStack.cursor], 1);
2072 }
2073 PRINT_ERROR("Runtime error: %s", "Assert failed");
2074 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11417);
2075 fatal_exit(1);
2076 }
2077 {
2078 var9 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode4, var_listnode3);
2079 }
2080 var_listnode4 = var9;
2081 var_tcparnode5 = var_nodearraylist4;
2082 /* <var_tcparnode5:nullable Object> isa nullable TCpar */
2083 cltype11 = type_nullable__nitc__TCpar.color;
2084 idtype12 = type_nullable__nitc__TCpar.id;
2085 if(var_tcparnode5 == NULL) {
2086 var10 = 1;
2087 } else {
2088 if(cltype11 >= (((long)var_tcparnode5&3)?type_info[((long)var_tcparnode5&3)]:var_tcparnode5->type)->table_size) {
2089 var10 = 0;
2090 } else {
2091 var10 = (((long)var_tcparnode5&3)?type_info[((long)var_tcparnode5&3)]:var_tcparnode5->type)->type_table[cltype11] == idtype12;
2092 }
2093 }
2094 if (unlikely(!var10)) {
2095 if(catchStack.cursor >= 0){
2096 longjmp(catchStack.envs[catchStack.cursor], 1);
2097 }
2098 PRINT_ERROR("Runtime error: %s", "Assert failed");
2099 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11420);
2100 fatal_exit(1);
2101 }
2102 var13 = NEW_nitc__AParExprs(&type_nitc__AParExprs);
2103 {
2104 nitc__parser_prod___AParExprs___init_aparexprs(var13, var_toparnode2, var_listnode4, var_tcparnode5); /* Direct call parser_prod$AParExprs$init_aparexprs on <var13:AParExprs>*/
2105 }
2106 var_pexprsnode1 = var13;
2107 var_node_list = var_pexprsnode1;
2108 var14 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction441> */
2109 {
2110 var15 = nitc___nitc__Parser___go_to(var_p, var14);
2111 }
2112 {
2113 nitc___nitc__Parser___push(var_p, var15, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
2114 }
2115 RET_LABEL:;
2116 }
2117 /* method parser$ReduceAction442$action for (self: ReduceAction442, Parser) */
2118 void nitc__parser___nitc__parser__ReduceAction442___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
2119 val* var_p /* var p: Parser */;
2120 val* var_node_list /* var node_list: nullable Object */;
2121 val* var /* : nullable Object */;
2122 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2123 val* var1 /* : nullable Object */;
2124 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2125 val* var2 /* : nullable Object */;
2126 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2127 val* var3 /* : Array[Object] */;
2128 val* var_listnode3 /* var listnode3: Array[Object] */;
2129 val* var_toparnode2 /* var toparnode2: nullable Object */;
2130 short int var4 /* : Bool */;
2131 int cltype;
2132 int idtype;
2133 val* var_tcparnode4 /* var tcparnode4: nullable Object */;
2134 short int var5 /* : Bool */;
2135 int cltype6;
2136 int idtype7;
2137 val* var8 /* : AParExprs */;
2138 val* var_pexprsnode1 /* var pexprsnode1: nullable AParExprs */;
2139 long var9 /* : Int */;
2140 long var10 /* : Int */;
2141 var_p = p0;
2142 var_node_list = ((val*)NULL);
2143 {
2144 var = nitc___nitc__Parser___pop(var_p);
2145 }
2146 var_nodearraylist3 = var;
2147 {
2148 var1 = nitc___nitc__Parser___pop(var_p);
2149 }
2150 var_nodearraylist2 = var1;
2151 {
2152 var2 = nitc___nitc__Parser___pop(var_p);
2153 }
2154 var_nodearraylist1 = var2;
2155 var3 = NEW_core__Array(&type_core__Array__core__Object);
2156 {
2157 core___core__Array___core__kernel__Object__init(var3); /* Direct call array$Array$init on <var3:Array[Object]>*/
2158 }
2159 var_listnode3 = var3;
2160 var_toparnode2 = var_nodearraylist1;
2161 /* <var_toparnode2:nullable Object> isa nullable TOpar */
2162 cltype = type_nullable__nitc__TOpar.color;
2163 idtype = type_nullable__nitc__TOpar.id;
2164 if(var_toparnode2 == NULL) {
2165 var4 = 1;
2166 } else {
2167 if(cltype >= (((long)var_toparnode2&3)?type_info[((long)var_toparnode2&3)]:var_toparnode2->type)->table_size) {
2168 var4 = 0;
2169 } else {
2170 var4 = (((long)var_toparnode2&3)?type_info[((long)var_toparnode2&3)]:var_toparnode2->type)->type_table[cltype] == idtype;
2171 }
2172 }
2173 if (unlikely(!var4)) {
2174 if(catchStack.cursor >= 0){
2175 longjmp(catchStack.envs[catchStack.cursor], 1);
2176 }
2177 PRINT_ERROR("Runtime error: %s", "Assert failed");
2178 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11440);
2179 fatal_exit(1);
2180 }
2181 var_tcparnode4 = var_nodearraylist3;
2182 /* <var_tcparnode4:nullable Object> isa nullable TCpar */
2183 cltype6 = type_nullable__nitc__TCpar.color;
2184 idtype7 = type_nullable__nitc__TCpar.id;
2185 if(var_tcparnode4 == NULL) {
2186 var5 = 1;
2187 } else {
2188 if(cltype6 >= (((long)var_tcparnode4&3)?type_info[((long)var_tcparnode4&3)]:var_tcparnode4->type)->table_size) {
2189 var5 = 0;
2190 } else {
2191 var5 = (((long)var_tcparnode4&3)?type_info[((long)var_tcparnode4&3)]:var_tcparnode4->type)->type_table[cltype6] == idtype7;
2192 }
2193 }
2194 if (unlikely(!var5)) {
2195 if(catchStack.cursor >= 0){
2196 longjmp(catchStack.envs[catchStack.cursor], 1);
2197 }
2198 PRINT_ERROR("Runtime error: %s", "Assert failed");
2199 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11442);
2200 fatal_exit(1);
2201 }
2202 var8 = NEW_nitc__AParExprs(&type_nitc__AParExprs);
2203 {
2204 nitc__parser_prod___AParExprs___init_aparexprs(var8, var_toparnode2, var_listnode3, var_tcparnode4); /* Direct call parser_prod$AParExprs$init_aparexprs on <var8:AParExprs>*/
2205 }
2206 var_pexprsnode1 = var8;
2207 var_node_list = var_pexprsnode1;
2208 var9 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction442> */
2209 {
2210 var10 = nitc___nitc__Parser___go_to(var_p, var9);
2211 }
2212 {
2213 nitc___nitc__Parser___push(var_p, var10, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
2214 }
2215 RET_LABEL:;
2216 }
2217 /* method parser$ReduceAction444$action for (self: ReduceAction444, Parser) */
2218 void nitc__parser___nitc__parser__ReduceAction444___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
2219 val* var_p /* var p: Parser */;
2220 val* var_node_list /* var node_list: nullable Object */;
2221 val* var /* : nullable Object */;
2222 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2223 val* var1 /* : Array[Object] */;
2224 val* var_listnode3 /* var listnode3: Array[Object] */;
2225 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
2226 short int var2 /* : Bool */;
2227 int cltype;
2228 int idtype;
2229 short int var3 /* : Bool */;
2230 short int var4 /* : Bool */;
2231 val* var_other /* var other: nullable Object */;
2232 short int var6 /* : Bool */;
2233 short int var7 /* : Bool */;
2234 val* var8 /* : AListExprs */;
2235 val* var_pexprsnode1 /* var pexprsnode1: nullable AListExprs */;
2236 long var9 /* : Int */;
2237 long var10 /* : Int */;
2238 var_p = p0;
2239 var_node_list = ((val*)NULL);
2240 {
2241 var = nitc___nitc__Parser___pop(var_p);
2242 }
2243 var_nodearraylist1 = var;
2244 var1 = NEW_core__Array(&type_core__Array__core__Object);
2245 {
2246 core___core__Array___core__kernel__Object__init(var1); /* Direct call array$Array$init on <var1:Array[Object]>*/
2247 }
2248 var_listnode3 = var1;
2249 var_pexprnode2 = var_nodearraylist1;
2250 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
2251 cltype = type_nullable__nitc__AExpr.color;
2252 idtype = type_nullable__nitc__AExpr.id;
2253 if(var_pexprnode2 == NULL) {
2254 var2 = 1;
2255 } else {
2256 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
2257 var2 = 0;
2258 } else {
2259 var2 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
2260 }
2261 }
2262 if (unlikely(!var2)) {
2263 if(catchStack.cursor >= 0){
2264 longjmp(catchStack.envs[catchStack.cursor], 1);
2265 }
2266 PRINT_ERROR("Runtime error: %s", "Assert failed");
2267 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11460);
2268 fatal_exit(1);
2269 }
2270 if (var_pexprnode2 == NULL) {
2271 var3 = 0; /* is null */
2272 } else {
2273 var3 = 1; /* arg is null and recv is not */
2274 }
2275 if (0) {
2276 { /* Inline kernel$Object$!= (var_pexprnode2,((val*)NULL)) on <var_pexprnode2:nullable Object(nullable AExpr)> */
2277 var_other = ((val*)NULL);
2278 {
2279 var6 = ((short int(*)(val* self, val* p0))(var_pexprnode2->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_pexprnode2, var_other); /* == on <var_pexprnode2:nullable Object(AExpr)>*/
2280 }
2281 var7 = !var6;
2282 var4 = var7;
2283 goto RET_LABEL5;
2284 RET_LABEL5:(void)0;
2285 }
2286 var3 = var4;
2287 }
2288 if (var3){
2289 {
2290 core___core__Array___core__abstract_collection__SimpleCollection__add(var_listnode3, var_pexprnode2); /* Direct call array$Array$add on <var_listnode3:Array[Object]>*/
2291 }
2292 } else {
2293 }
2294 var8 = NEW_nitc__AListExprs(&type_nitc__AListExprs);
2295 {
2296 nitc__parser_prod___AListExprs___init_alistexprs(var8, var_listnode3); /* Direct call parser_prod$AListExprs$init_alistexprs on <var8:AListExprs>*/
2297 }
2298 var_pexprsnode1 = var8;
2299 var_node_list = var_pexprsnode1;
2300 var9 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction444> */
2301 {
2302 var10 = nitc___nitc__Parser___go_to(var_p, var9);
2303 }
2304 {
2305 nitc___nitc__Parser___push(var_p, var10, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
2306 }
2307 RET_LABEL:;
2308 }
2309 /* method parser$ReduceAction446$action for (self: ReduceAction446, Parser) */
2310 void nitc__parser___nitc__parser__ReduceAction446___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
2311 val* var_p /* var p: Parser */;
2312 val* var_node_list /* var node_list: nullable Object */;
2313 val* var /* : Array[Object] */;
2314 val* var_listnode2 /* var listnode2: Array[Object] */;
2315 val* var1 /* : AListExprs */;
2316 val* var_pexprsnode1 /* var pexprsnode1: nullable AListExprs */;
2317 long var2 /* : Int */;
2318 long var3 /* : Int */;
2319 var_p = p0;
2320 var_node_list = ((val*)NULL);
2321 var = NEW_core__Array(&type_core__Array__core__Object);
2322 {
2323 core___core__Array___core__kernel__Object__init(var); /* Direct call array$Array$init on <var:Array[Object]>*/
2324 }
2325 var_listnode2 = var;
2326 var1 = NEW_nitc__AListExprs(&type_nitc__AListExprs);
2327 {
2328 nitc__parser_prod___AListExprs___init_alistexprs(var1, var_listnode2); /* Direct call parser_prod$AListExprs$init_alistexprs on <var1:AListExprs>*/
2329 }
2330 var_pexprsnode1 = var1;
2331 var_node_list = var_pexprsnode1;
2332 var2 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction446> */
2333 {
2334 var3 = nitc___nitc__Parser___go_to(var_p, var2);
2335 }
2336 {
2337 nitc___nitc__Parser___push(var_p, var3, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
2338 }
2339 RET_LABEL:;
2340 }
2341 /* method parser$ReduceAction447$action for (self: ReduceAction447, Parser) */
2342 void nitc__parser___nitc__parser__ReduceAction447___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
2343 val* var_p /* var p: Parser */;
2344 val* var_node_list /* var node_list: nullable Object */;
2345 val* var /* : nullable Object */;
2346 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2347 val* var1 /* : nullable Object */;
2348 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2349 val* var2 /* : nullable Object */;
2350 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2351 val* var3 /* : nullable Object */;
2352 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2353 val* var4 /* : Array[Object] */;
2354 val* var_listnode4 /* var listnode4: Array[Object] */;
2355 val* var_tobranode2 /* var tobranode2: nullable Object */;
2356 short int var5 /* : Bool */;
2357 int cltype;
2358 int idtype;
2359 val* var_listnode3 /* var listnode3: nullable Object */;
2360 short int var6 /* : Bool */;
2361 int cltype7;
2362 int idtype8;
2363 val* var9 /* : Array[Object] */;
2364 val* var_tcbranode5 /* var tcbranode5: nullable Object */;
2365 short int var10 /* : Bool */;
2366 int cltype11;
2367 int idtype12;
2368 val* var13 /* : ABraExprs */;
2369 val* var_pexprsnode1 /* var pexprsnode1: nullable ABraExprs */;
2370 long var14 /* : Int */;
2371 long var15 /* : Int */;
2372 var_p = p0;
2373 var_node_list = ((val*)NULL);
2374 {
2375 var = nitc___nitc__Parser___pop(var_p);
2376 }
2377 var_nodearraylist4 = var;
2378 {
2379 var1 = nitc___nitc__Parser___pop(var_p);
2380 }
2381 var_nodearraylist3 = var1;
2382 {
2383 var2 = nitc___nitc__Parser___pop(var_p);
2384 }
2385 var_nodearraylist2 = var2;
2386 {
2387 var3 = nitc___nitc__Parser___pop(var_p);
2388 }
2389 var_nodearraylist1 = var3;
2390 var4 = NEW_core__Array(&type_core__Array__core__Object);
2391 {
2392 core___core__Array___core__kernel__Object__init(var4); /* Direct call array$Array$init on <var4:Array[Object]>*/
2393 }
2394 var_listnode4 = var4;
2395 var_tobranode2 = var_nodearraylist1;
2396 /* <var_tobranode2:nullable Object> isa nullable TObra */
2397 cltype = type_nullable__nitc__TObra.color;
2398 idtype = type_nullable__nitc__TObra.id;
2399 if(var_tobranode2 == NULL) {
2400 var5 = 1;
2401 } else {
2402 if(cltype >= (((long)var_tobranode2&3)?type_info[((long)var_tobranode2&3)]:var_tobranode2->type)->table_size) {
2403 var5 = 0;
2404 } else {
2405 var5 = (((long)var_tobranode2&3)?type_info[((long)var_tobranode2&3)]:var_tobranode2->type)->type_table[cltype] == idtype;
2406 }
2407 }
2408 if (unlikely(!var5)) {
2409 if(catchStack.cursor >= 0){
2410 longjmp(catchStack.envs[catchStack.cursor], 1);
2411 }
2412 PRINT_ERROR("Runtime error: %s", "Assert failed");
2413 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11495);
2414 fatal_exit(1);
2415 }
2416 var_listnode3 = var_nodearraylist3;
2417 /* <var_listnode3:nullable Object> isa Array[Object] */
2418 cltype7 = type_core__Array__core__Object.color;
2419 idtype8 = type_core__Array__core__Object.id;
2420 if(var_listnode3 == NULL) {
2421 var6 = 0;
2422 } else {
2423 if(cltype7 >= (((long)var_listnode3&3)?type_info[((long)var_listnode3&3)]:var_listnode3->type)->table_size) {
2424 var6 = 0;
2425 } else {
2426 var6 = (((long)var_listnode3&3)?type_info[((long)var_listnode3&3)]:var_listnode3->type)->type_table[cltype7] == idtype8;
2427 }
2428 }
2429 if (unlikely(!var6)) {
2430 if(catchStack.cursor >= 0){
2431 longjmp(catchStack.envs[catchStack.cursor], 1);
2432 }
2433 PRINT_ERROR("Runtime error: %s", "Assert failed");
2434 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11497);
2435 fatal_exit(1);
2436 }
2437 {
2438 var9 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode4, var_listnode3);
2439 }
2440 var_listnode4 = var9;
2441 var_tcbranode5 = var_nodearraylist4;
2442 /* <var_tcbranode5:nullable Object> isa nullable TCbra */
2443 cltype11 = type_nullable__nitc__TCbra.color;
2444 idtype12 = type_nullable__nitc__TCbra.id;
2445 if(var_tcbranode5 == NULL) {
2446 var10 = 1;
2447 } else {
2448 if(cltype11 >= (((long)var_tcbranode5&3)?type_info[((long)var_tcbranode5&3)]:var_tcbranode5->type)->table_size) {
2449 var10 = 0;
2450 } else {
2451 var10 = (((long)var_tcbranode5&3)?type_info[((long)var_tcbranode5&3)]:var_tcbranode5->type)->type_table[cltype11] == idtype12;
2452 }
2453 }
2454 if (unlikely(!var10)) {
2455 if(catchStack.cursor >= 0){
2456 longjmp(catchStack.envs[catchStack.cursor], 1);
2457 }
2458 PRINT_ERROR("Runtime error: %s", "Assert failed");
2459 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11500);
2460 fatal_exit(1);
2461 }
2462 var13 = NEW_nitc__ABraExprs(&type_nitc__ABraExprs);
2463 {
2464 nitc__parser_prod___ABraExprs___init_abraexprs(var13, var_tobranode2, var_listnode4, var_tcbranode5); /* Direct call parser_prod$ABraExprs$init_abraexprs on <var13:ABraExprs>*/
2465 }
2466 var_pexprsnode1 = var13;
2467 var_node_list = var_pexprsnode1;
2468 var14 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction447> */
2469 {
2470 var15 = nitc___nitc__Parser___go_to(var_p, var14);
2471 }
2472 {
2473 nitc___nitc__Parser___push(var_p, var15, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
2474 }
2475 RET_LABEL:;
2476 }
2477 /* method parser$ReduceAction449$action for (self: ReduceAction449, Parser) */
2478 void nitc__parser___nitc__parser__ReduceAction449___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
2479 val* var_p /* var p: Parser */;
2480 val* var_node_list /* var node_list: nullable Object */;
2481 val* var /* : nullable Object */;
2482 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2483 val* var1 /* : nullable Object */;
2484 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2485 val* var2 /* : nullable Object */;
2486 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2487 val* var3 /* : Array[Object] */;
2488 val* var_listnode3 /* var listnode3: Array[Object] */;
2489 val* var_pexprnode1 /* var pexprnode1: nullable Object */;
2490 val* var_listnode2 /* var listnode2: nullable Object */;
2491 short int var4 /* : Bool */;
2492 int cltype;
2493 int idtype;
2494 short int var5 /* : Bool */;
2495 short int var6 /* : Bool */;
2496 val* var7 /* : Array[Object] */;
2497 long var8 /* : Int */;
2498 long var9 /* : Int */;
2499 var_p = p0;
2500 var_node_list = ((val*)NULL);
2501 {
2502 var = nitc___nitc__Parser___pop(var_p);
2503 }
2504 var_nodearraylist3 = var;
2505 {
2506 var1 = nitc___nitc__Parser___pop(var_p);
2507 }
2508 var_nodearraylist2 = var1;
2509 {
2510 var2 = nitc___nitc__Parser___pop(var_p);
2511 }
2512 var_nodearraylist1 = var2;
2513 var3 = NEW_core__Array(&type_core__Array__core__Object);
2514 {
2515 core___core__Array___core__kernel__Object__init(var3); /* Direct call array$Array$init on <var3:Array[Object]>*/
2516 }
2517 var_listnode3 = var3;
2518 var_pexprnode1 = var_nodearraylist1;
2519 var_listnode2 = var_nodearraylist3;
2520 /* <var_listnode2:nullable Object> isa Array[Object] */
2521 cltype = type_core__Array__core__Object.color;
2522 idtype = type_core__Array__core__Object.id;
2523 if(var_listnode2 == NULL) {
2524 var4 = 0;
2525 } else {
2526 if(cltype >= (((long)var_listnode2&3)?type_info[((long)var_listnode2&3)]:var_listnode2->type)->table_size) {
2527 var4 = 0;
2528 } else {
2529 var4 = (((long)var_listnode2&3)?type_info[((long)var_listnode2&3)]:var_listnode2->type)->type_table[cltype] == idtype;
2530 }
2531 }
2532 if (unlikely(!var4)) {
2533 if(catchStack.cursor >= 0){
2534 longjmp(catchStack.envs[catchStack.cursor], 1);
2535 }
2536 PRINT_ERROR("Runtime error: %s", "Assert failed");
2537 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11521);
2538 fatal_exit(1);
2539 }
2540 if (var_pexprnode1 == NULL) {
2541 var5 = 0; /* is null */
2542 } else {
2543 var5 = 1; /* arg is null and recv is not */
2544 }
2545 if (0) {
2546 var6 = ((short int(*)(val* self, val* p0))((((long)var_pexprnode1&3)?class_info[((long)var_pexprnode1&3)]:var_pexprnode1->class)->vft[COLOR_core__kernel__Object___33d_61d]))(var_pexprnode1, ((val*)NULL)); /* != on <var_pexprnode1:nullable Object>*/
2547 var5 = var6;
2548 }
2549 if (var5){
2550 {
2551 core___core__Array___core__abstract_collection__SimpleCollection__add(var_listnode3, var_pexprnode1); /* Direct call array$Array$add on <var_listnode3:Array[Object]>*/
2552 }
2553 } else {
2554 }
2555 {
2556 var7 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode2);
2557 }
2558 var_listnode3 = var7;
2559 var_node_list = var_listnode3;
2560 var8 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction449> */
2561 {
2562 var9 = nitc___nitc__Parser___go_to(var_p, var8);
2563 }
2564 {
2565 nitc___nitc__Parser___push(var_p, var9, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
2566 }
2567 RET_LABEL:;
2568 }
2569 /* method parser$ReduceAction450$action for (self: ReduceAction450, Parser) */
2570 void nitc__parser___nitc__parser__ReduceAction450___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
2571 val* var_p /* var p: Parser */;
2572 val* var_node_list /* var node_list: nullable Object */;
2573 val* var /* : nullable Object */;
2574 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2575 val* var1 /* : nullable Object */;
2576 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2577 val* var2 /* : nullable Object */;
2578 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2579 val* var3 /* : nullable Object */;
2580 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2581 val* var_pexprnode1 /* var pexprnode1: nullable Object */;
2582 long var4 /* : Int */;
2583 long var5 /* : Int */;
2584 var_p = p0;
2585 var_node_list = ((val*)NULL);
2586 {
2587 var = nitc___nitc__Parser___pop(var_p);
2588 }
2589 var_nodearraylist4 = var;
2590 {
2591 var1 = nitc___nitc__Parser___pop(var_p);
2592 }
2593 var_nodearraylist3 = var1;
2594 {
2595 var2 = nitc___nitc__Parser___pop(var_p);
2596 }
2597 var_nodearraylist2 = var2;
2598 {
2599 var3 = nitc___nitc__Parser___pop(var_p);
2600 }
2601 var_nodearraylist1 = var3;
2602 var_pexprnode1 = var_nodearraylist3;
2603 var_node_list = var_pexprnode1;
2604 var4 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction450> */
2605 {
2606 var5 = nitc___nitc__Parser___go_to(var_p, var4);
2607 }
2608 {
2609 nitc___nitc__Parser___push(var_p, var5, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
2610 }
2611 RET_LABEL:;
2612 }
2613 /* method parser$ReduceAction451$action for (self: ReduceAction451, Parser) */
2614 void nitc__parser___nitc__parser__ReduceAction451___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
2615 val* var_p /* var p: Parser */;
2616 val* var_node_list /* var node_list: nullable Object */;
2617 val* var /* : nullable Object */;
2618 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
2619 val* var1 /* : nullable Object */;
2620 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2621 val* var2 /* : nullable Object */;
2622 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2623 val* var3 /* : nullable Object */;
2624 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2625 val* var4 /* : nullable Object */;
2626 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2627 val* var5 /* : Array[Object] */;
2628 val* var_listnode2 /* var listnode2: Array[Object] */;
2629 val* var_listnode1 /* var listnode1: nullable Object */;
2630 short int var6 /* : Bool */;
2631 int cltype;
2632 int idtype;
2633 val* var7 /* : Array[Object] */;
2634 long var8 /* : Int */;
2635 long var9 /* : Int */;
2636 var_p = p0;
2637 var_node_list = ((val*)NULL);
2638 {
2639 var = nitc___nitc__Parser___pop(var_p);
2640 }
2641 var_nodearraylist5 = var;
2642 {
2643 var1 = nitc___nitc__Parser___pop(var_p);
2644 }
2645 var_nodearraylist4 = var1;
2646 {
2647 var2 = nitc___nitc__Parser___pop(var_p);
2648 }
2649 var_nodearraylist3 = var2;
2650 {
2651 var3 = nitc___nitc__Parser___pop(var_p);
2652 }
2653 var_nodearraylist2 = var3;
2654 {
2655 var4 = nitc___nitc__Parser___pop(var_p);
2656 }
2657 var_nodearraylist1 = var4;
2658 var5 = NEW_core__Array(&type_core__Array__core__Object);
2659 {
2660 core___core__Array___core__kernel__Object__init(var5); /* Direct call array$Array$init on <var5:Array[Object]>*/
2661 }
2662 var_listnode2 = var5;
2663 var_listnode1 = var_nodearraylist3;
2664 /* <var_listnode1:nullable Object> isa Array[Object] */
2665 cltype = type_core__Array__core__Object.color;
2666 idtype = type_core__Array__core__Object.id;
2667 if(var_listnode1 == NULL) {
2668 var6 = 0;
2669 } else {
2670 if(cltype >= (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->table_size) {
2671 var6 = 0;
2672 } else {
2673 var6 = (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->type_table[cltype] == idtype;
2674 }
2675 }
2676 if (unlikely(!var6)) {
2677 if(catchStack.cursor >= 0){
2678 longjmp(catchStack.envs[catchStack.cursor], 1);
2679 }
2680 PRINT_ERROR("Runtime error: %s", "Assert failed");
2681 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11556);
2682 fatal_exit(1);
2683 }
2684 {
2685 var7 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode2, var_listnode1);
2686 }
2687 var_listnode2 = var7;
2688 var_node_list = var_listnode2;
2689 var8 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction451> */
2690 {
2691 var9 = nitc___nitc__Parser___go_to(var_p, var8);
2692 }
2693 {
2694 nitc___nitc__Parser___push(var_p, var9, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
2695 }
2696 RET_LABEL:;
2697 }
2698 /* method parser$ReduceAction452$action for (self: ReduceAction452, Parser) */
2699 void nitc__parser___nitc__parser__ReduceAction452___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
2700 val* var_p /* var p: Parser */;
2701 val* var_node_list /* var node_list: nullable Object */;
2702 val* var /* : nullable Object */;
2703 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2704 val* var1 /* : Array[Object] */;
2705 val* var_listnode2 /* var listnode2: Array[Object] */;
2706 val* var_listnode1 /* var listnode1: nullable Object */;
2707 short int var2 /* : Bool */;
2708 int cltype;
2709 int idtype;
2710 val* var3 /* : Array[Object] */;
2711 long var4 /* : Int */;
2712 long var5 /* : Int */;
2713 var_p = p0;
2714 var_node_list = ((val*)NULL);
2715 {
2716 var = nitc___nitc__Parser___pop(var_p);
2717 }
2718 var_nodearraylist1 = var;
2719 var1 = NEW_core__Array(&type_core__Array__core__Object);
2720 {
2721 core___core__Array___core__kernel__Object__init(var1); /* Direct call array$Array$init on <var1:Array[Object]>*/
2722 }
2723 var_listnode2 = var1;
2724 var_listnode1 = var_nodearraylist1;
2725 /* <var_listnode1:nullable Object> isa Array[Object] */
2726 cltype = type_core__Array__core__Object.color;
2727 idtype = type_core__Array__core__Object.id;
2728 if(var_listnode1 == NULL) {
2729 var2 = 0;
2730 } else {
2731 if(cltype >= (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->table_size) {
2732 var2 = 0;
2733 } else {
2734 var2 = (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->type_table[cltype] == idtype;
2735 }
2736 }
2737 if (unlikely(!var2)) {
2738 if(catchStack.cursor >= 0){
2739 longjmp(catchStack.envs[catchStack.cursor], 1);
2740 }
2741 PRINT_ERROR("Runtime error: %s", "Assert failed");
2742 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11570);
2743 fatal_exit(1);
2744 }
2745 {
2746 var3 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode2, var_listnode1);
2747 }
2748 var_listnode2 = var3;
2749 var_node_list = var_listnode2;
2750 var4 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction452> */
2751 {
2752 var5 = nitc___nitc__Parser___go_to(var_p, var4);
2753 }
2754 {
2755 nitc___nitc__Parser___push(var_p, var5, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
2756 }
2757 RET_LABEL:;
2758 }
2759 /* method parser$ReduceAction453$action for (self: ReduceAction453, Parser) */
2760 void nitc__parser___nitc__parser__ReduceAction453___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
2761 val* var_p /* var p: Parser */;
2762 val* var_node_list /* var node_list: nullable Object */;
2763 val* var /* : nullable Object */;
2764 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2765 val* var1 /* : Array[Object] */;
2766 val* var_listnode2 /* var listnode2: Array[Object] */;
2767 val* var_tidnode1 /* var tidnode1: nullable Object */;
2768 short int var2 /* : Bool */;
2769 short int var3 /* : Bool */;
2770 long var4 /* : Int */;
2771 long var5 /* : Int */;
2772 var_p = p0;
2773 var_node_list = ((val*)NULL);
2774 {
2775 var = nitc___nitc__Parser___pop(var_p);
2776 }
2777 var_nodearraylist1 = var;
2778 var1 = NEW_core__Array(&type_core__Array__core__Object);
2779 {
2780 core___core__Array___core__kernel__Object__init(var1); /* Direct call array$Array$init on <var1:Array[Object]>*/
2781 }
2782 var_listnode2 = var1;
2783 var_tidnode1 = var_nodearraylist1;
2784 if (var_tidnode1 == NULL) {
2785 var2 = 0; /* is null */
2786 } else {
2787 var2 = 1; /* arg is null and recv is not */
2788 }
2789 if (0) {
2790 var3 = ((short int(*)(val* self, val* p0))((((long)var_tidnode1&3)?class_info[((long)var_tidnode1&3)]:var_tidnode1->class)->vft[COLOR_core__kernel__Object___33d_61d]))(var_tidnode1, ((val*)NULL)); /* != on <var_tidnode1:nullable Object>*/
2791 var2 = var3;
2792 }
2793 if (var2){
2794 {
2795 core___core__Array___core__abstract_collection__SimpleCollection__add(var_listnode2, var_tidnode1); /* Direct call array$Array$add on <var_listnode2:Array[Object]>*/
2796 }
2797 } else {
2798 }
2799 var_node_list = var_listnode2;
2800 var4 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction453> */
2801 {
2802 var5 = nitc___nitc__Parser___go_to(var_p, var4);
2803 }
2804 {
2805 nitc___nitc__Parser___push(var_p, var5, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
2806 }
2807 RET_LABEL:;
2808 }
2809 /* method parser$ReduceAction454$action for (self: ReduceAction454, Parser) */
2810 void nitc__parser___nitc__parser__ReduceAction454___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
2811 val* var_p /* var p: Parser */;
2812 val* var_node_list /* var node_list: nullable Object */;
2813 val* var /* : nullable Object */;
2814 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2815 val* var1 /* : nullable Object */;
2816 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2817 val* var2 /* : nullable Object */;
2818 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2819 val* var3 /* : nullable Object */;
2820 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2821 val* var4 /* : Array[Object] */;
2822 val* var_listnode3 /* var listnode3: Array[Object] */;
2823 val* var_listnode1 /* var listnode1: nullable Object */;
2824 short int var5 /* : Bool */;
2825 int cltype;
2826 int idtype;
2827 val* var_tidnode2 /* var tidnode2: nullable Object */;
2828 val* var6 /* : Array[Object] */;
2829 short int var7 /* : Bool */;
2830 short int var8 /* : Bool */;
2831 long var9 /* : Int */;
2832 long var10 /* : Int */;
2833 var_p = p0;
2834 var_node_list = ((val*)NULL);
2835 {
2836 var = nitc___nitc__Parser___pop(var_p);
2837 }
2838 var_nodearraylist4 = var;
2839 {
2840 var1 = nitc___nitc__Parser___pop(var_p);
2841 }
2842 var_nodearraylist3 = var1;
2843 {
2844 var2 = nitc___nitc__Parser___pop(var_p);
2845 }
2846 var_nodearraylist2 = var2;
2847 {
2848 var3 = nitc___nitc__Parser___pop(var_p);
2849 }
2850 var_nodearraylist1 = var3;
2851 var4 = NEW_core__Array(&type_core__Array__core__Object);
2852 {
2853 core___core__Array___core__kernel__Object__init(var4); /* Direct call array$Array$init on <var4:Array[Object]>*/
2854 }
2855 var_listnode3 = var4;
2856 var_listnode1 = var_nodearraylist1;
2857 /* <var_listnode1:nullable Object> isa Array[Object] */
2858 cltype = type_core__Array__core__Object.color;
2859 idtype = type_core__Array__core__Object.id;
2860 if(var_listnode1 == NULL) {
2861 var5 = 0;
2862 } else {
2863 if(cltype >= (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->table_size) {
2864 var5 = 0;
2865 } else {
2866 var5 = (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->type_table[cltype] == idtype;
2867 }
2868 }
2869 if (unlikely(!var5)) {
2870 if(catchStack.cursor >= 0){
2871 longjmp(catchStack.envs[catchStack.cursor], 1);
2872 }
2873 PRINT_ERROR("Runtime error: %s", "Assert failed");
2874 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11602);
2875 fatal_exit(1);
2876 }
2877 var_tidnode2 = var_nodearraylist4;
2878 {
2879 var6 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode1);
2880 }
2881 var_listnode3 = var6;
2882 if (var_tidnode2 == NULL) {
2883 var7 = 0; /* is null */
2884 } else {
2885 var7 = 1; /* arg is null and recv is not */
2886 }
2887 if (0) {
2888 var8 = ((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>*/
2889 var7 = var8;
2890 }
2891 if (var7){
2892 {
2893 core___core__Array___core__abstract_collection__SimpleCollection__add(var_listnode3, var_tidnode2); /* Direct call array$Array$add on <var_listnode3:Array[Object]>*/
2894 }
2895 } else {
2896 }
2897 var_node_list = var_listnode3;
2898 var9 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction454> */
2899 {
2900 var10 = nitc___nitc__Parser___go_to(var_p, var9);
2901 }
2902 {
2903 nitc___nitc__Parser___push(var_p, var10, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
2904 }
2905 RET_LABEL:;
2906 }
2907 /* method parser$ReduceAction455$action for (self: ReduceAction455, Parser) */
2908 void nitc__parser___nitc__parser__ReduceAction455___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
2909 val* var_p /* var p: Parser */;
2910 val* var_node_list /* var node_list: nullable Object */;
2911 val* var /* : nullable Object */;
2912 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2913 val* var1 /* : Array[Object] */;
2914 val* var_listnode3 /* var listnode3: Array[Object] */;
2915 val* var_tidnode4 /* var tidnode4: nullable Object */;
2916 short int var2 /* : Bool */;
2917 int cltype;
2918 int idtype;
2919 val* var3 /* : AModuleName */;
2920 val* var_pmodulenamenode1 /* var pmodulenamenode1: nullable AModuleName */;
2921 long var4 /* : Int */;
2922 long var5 /* : Int */;
2923 var_p = p0;
2924 var_node_list = ((val*)NULL);
2925 {
2926 var = nitc___nitc__Parser___pop(var_p);
2927 }
2928 var_nodearraylist1 = var;
2929 var1 = NEW_core__Array(&type_core__Array__core__Object);
2930 {
2931 core___core__Array___core__kernel__Object__init(var1); /* Direct call array$Array$init on <var1:Array[Object]>*/
2932 }
2933 var_listnode3 = var1;
2934 var_tidnode4 = var_nodearraylist1;
2935 /* <var_tidnode4:nullable Object> isa nullable TId */
2936 cltype = type_nullable__nitc__TId.color;
2937 idtype = type_nullable__nitc__TId.id;
2938 if(var_tidnode4 == NULL) {
2939 var2 = 1;
2940 } else {
2941 if(cltype >= (((long)var_tidnode4&3)?type_info[((long)var_tidnode4&3)]:var_tidnode4->type)->table_size) {
2942 var2 = 0;
2943 } else {
2944 var2 = (((long)var_tidnode4&3)?type_info[((long)var_tidnode4&3)]:var_tidnode4->type)->type_table[cltype] == idtype;
2945 }
2946 }
2947 if (unlikely(!var2)) {
2948 if(catchStack.cursor >= 0){
2949 longjmp(catchStack.envs[catchStack.cursor], 1);
2950 }
2951 PRINT_ERROR("Runtime error: %s", "Assert failed");
2952 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11620);
2953 fatal_exit(1);
2954 }
2955 var3 = NEW_nitc__AModuleName(&type_nitc__AModuleName);
2956 {
2957 nitc__parser_prod___AModuleName___init_amodulename(var3, ((val*)NULL), var_listnode3, var_tidnode4); /* Direct call parser_prod$AModuleName$init_amodulename on <var3:AModuleName>*/
2958 }
2959 var_pmodulenamenode1 = var3;
2960 var_node_list = var_pmodulenamenode1;
2961 var4 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction455> */
2962 {
2963 var5 = nitc___nitc__Parser___go_to(var_p, var4);
2964 }
2965 {
2966 nitc___nitc__Parser___push(var_p, var5, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
2967 }
2968 RET_LABEL:;
2969 }
2970 /* method parser$ReduceAction456$action for (self: ReduceAction456, Parser) */
2971 void nitc__parser___nitc__parser__ReduceAction456___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
2972 val* var_p /* var p: Parser */;
2973 val* var_node_list /* var node_list: nullable Object */;
2974 val* var /* : nullable Object */;
2975 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2976 val* var1 /* : nullable Object */;
2977 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2978 val* var2 /* : Array[Object] */;
2979 val* var_listnode4 /* var listnode4: Array[Object] */;
2980 val* var_listnode3 /* var listnode3: nullable Object */;
2981 short int var3 /* : Bool */;
2982 int cltype;
2983 int idtype;
2984 val* var4 /* : Array[Object] */;
2985 val* var_tidnode5 /* var tidnode5: nullable Object */;
2986 short int var5 /* : Bool */;
2987 int cltype6;
2988 int idtype7;
2989 val* var8 /* : AModuleName */;
2990 val* var_pmodulenamenode1 /* var pmodulenamenode1: nullable AModuleName */;
2991 long var9 /* : Int */;
2992 long var10 /* : 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_listnode4 = var2;
3008 var_listnode3 = var_nodearraylist1;
3009 /* <var_listnode3:nullable Object> isa Array[Object] */
3010 cltype = type_core__Array__core__Object.color;
3011 idtype = type_core__Array__core__Object.id;
3012 if(var_listnode3 == NULL) {
3013 var3 = 0;
3014 } else {
3015 if(cltype >= (((long)var_listnode3&3)?type_info[((long)var_listnode3&3)]:var_listnode3->type)->table_size) {
3016 var3 = 0;
3017 } else {
3018 var3 = (((long)var_listnode3&3)?type_info[((long)var_listnode3&3)]:var_listnode3->type)->type_table[cltype] == idtype;
3019 }
3020 }
3021 if (unlikely(!var3)) {
3022 if(catchStack.cursor >= 0){
3023 longjmp(catchStack.envs[catchStack.cursor], 1);
3024 }
3025 PRINT_ERROR("Runtime error: %s", "Assert failed");
3026 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11639);
3027 fatal_exit(1);
3028 }
3029 {
3030 var4 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode4, var_listnode3);
3031 }
3032 var_listnode4 = var4;
3033 var_tidnode5 = var_nodearraylist2;
3034 /* <var_tidnode5:nullable Object> isa nullable TId */
3035 cltype6 = type_nullable__nitc__TId.color;
3036 idtype7 = type_nullable__nitc__TId.id;
3037 if(var_tidnode5 == NULL) {
3038 var5 = 1;
3039 } else {
3040 if(cltype6 >= (((long)var_tidnode5&3)?type_info[((long)var_tidnode5&3)]:var_tidnode5->type)->table_size) {
3041 var5 = 0;
3042 } else {
3043 var5 = (((long)var_tidnode5&3)?type_info[((long)var_tidnode5&3)]:var_tidnode5->type)->type_table[cltype6] == idtype7;
3044 }
3045 }
3046 if (unlikely(!var5)) {
3047 if(catchStack.cursor >= 0){
3048 longjmp(catchStack.envs[catchStack.cursor], 1);
3049 }
3050 PRINT_ERROR("Runtime error: %s", "Assert failed");
3051 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11642);
3052 fatal_exit(1);
3053 }
3054 var8 = NEW_nitc__AModuleName(&type_nitc__AModuleName);
3055 {
3056 nitc__parser_prod___AModuleName___init_amodulename(var8, ((val*)NULL), var_listnode4, var_tidnode5); /* Direct call parser_prod$AModuleName$init_amodulename on <var8:AModuleName>*/
3057 }
3058 var_pmodulenamenode1 = var8;
3059 var_node_list = var_pmodulenamenode1;
3060 var9 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction456> */
3061 {
3062 var10 = nitc___nitc__Parser___go_to(var_p, var9);
3063 }
3064 {
3065 nitc___nitc__Parser___push(var_p, var10, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
3066 }
3067 RET_LABEL:;
3068 }
3069 /* method parser$ReduceAction457$action for (self: ReduceAction457, Parser) */
3070 void nitc__parser___nitc__parser__ReduceAction457___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
3071 val* var_p /* var p: Parser */;
3072 val* var_node_list /* var node_list: nullable Object */;
3073 val* var /* : nullable Object */;
3074 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3075 val* var1 /* : nullable Object */;
3076 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3077 val* var2 /* : nullable Object */;
3078 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3079 val* var3 /* : Array[Object] */;
3080 val* var_listnode3 /* var listnode3: Array[Object] */;
3081 val* var_tquadnode2 /* var tquadnode2: nullable Object */;
3082 short int var4 /* : Bool */;
3083 int cltype;
3084 int idtype;
3085 val* var_tidnode4 /* var tidnode4: nullable Object */;
3086 short int var5 /* : Bool */;
3087 int cltype6;
3088 int idtype7;
3089 val* var8 /* : AModuleName */;
3090 val* var_pmodulenamenode1 /* var pmodulenamenode1: nullable AModuleName */;
3091 long var9 /* : Int */;
3092 long var10 /* : Int */;
3093 var_p = p0;
3094 var_node_list = ((val*)NULL);
3095 {
3096 var = nitc___nitc__Parser___pop(var_p);
3097 }
3098 var_nodearraylist3 = var;
3099 {
3100 var1 = nitc___nitc__Parser___pop(var_p);
3101 }
3102 var_nodearraylist2 = var1;
3103 {
3104 var2 = nitc___nitc__Parser___pop(var_p);
3105 }
3106 var_nodearraylist1 = var2;
3107 var3 = NEW_core__Array(&type_core__Array__core__Object);
3108 {
3109 core___core__Array___core__kernel__Object__init(var3); /* Direct call array$Array$init on <var3:Array[Object]>*/
3110 }
3111 var_listnode3 = var3;
3112 var_tquadnode2 = var_nodearraylist1;
3113 /* <var_tquadnode2:nullable Object> isa nullable TQuad */
3114 cltype = type_nullable__nitc__TQuad.color;
3115 idtype = type_nullable__nitc__TQuad.id;
3116 if(var_tquadnode2 == NULL) {
3117 var4 = 1;
3118 } else {
3119 if(cltype >= (((long)var_tquadnode2&3)?type_info[((long)var_tquadnode2&3)]:var_tquadnode2->type)->table_size) {
3120 var4 = 0;
3121 } else {
3122 var4 = (((long)var_tquadnode2&3)?type_info[((long)var_tquadnode2&3)]:var_tquadnode2->type)->type_table[cltype] == idtype;
3123 }
3124 }
3125 if (unlikely(!var4)) {
3126 if(catchStack.cursor >= 0){
3127 longjmp(catchStack.envs[catchStack.cursor], 1);
3128 }
3129 PRINT_ERROR("Runtime error: %s", "Assert failed");
3130 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11662);
3131 fatal_exit(1);
3132 }
3133 var_tidnode4 = var_nodearraylist3;
3134 /* <var_tidnode4:nullable Object> isa nullable TId */
3135 cltype6 = type_nullable__nitc__TId.color;
3136 idtype7 = type_nullable__nitc__TId.id;
3137 if(var_tidnode4 == NULL) {
3138 var5 = 1;
3139 } else {
3140 if(cltype6 >= (((long)var_tidnode4&3)?type_info[((long)var_tidnode4&3)]:var_tidnode4->type)->table_size) {
3141 var5 = 0;
3142 } else {
3143 var5 = (((long)var_tidnode4&3)?type_info[((long)var_tidnode4&3)]:var_tidnode4->type)->type_table[cltype6] == idtype7;
3144 }
3145 }
3146 if (unlikely(!var5)) {
3147 if(catchStack.cursor >= 0){
3148 longjmp(catchStack.envs[catchStack.cursor], 1);
3149 }
3150 PRINT_ERROR("Runtime error: %s", "Assert failed");
3151 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11664);
3152 fatal_exit(1);
3153 }
3154 var8 = NEW_nitc__AModuleName(&type_nitc__AModuleName);
3155 {
3156 nitc__parser_prod___AModuleName___init_amodulename(var8, var_tquadnode2, var_listnode3, var_tidnode4); /* Direct call parser_prod$AModuleName$init_amodulename on <var8:AModuleName>*/
3157 }
3158 var_pmodulenamenode1 = var8;
3159 var_node_list = var_pmodulenamenode1;
3160 var9 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction457> */
3161 {
3162 var10 = nitc___nitc__Parser___go_to(var_p, var9);
3163 }
3164 {
3165 nitc___nitc__Parser___push(var_p, var10, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
3166 }
3167 RET_LABEL:;
3168 }
3169 /* method parser$ReduceAction458$action for (self: ReduceAction458, Parser) */
3170 void nitc__parser___nitc__parser__ReduceAction458___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
3171 val* var_p /* var p: Parser */;
3172 val* var_node_list /* var node_list: nullable Object */;
3173 val* var /* : nullable Object */;
3174 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3175 val* var1 /* : nullable Object */;
3176 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3177 val* var2 /* : nullable Object */;
3178 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3179 val* var3 /* : nullable Object */;
3180 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3181 val* var4 /* : Array[Object] */;
3182 val* var_listnode4 /* var listnode4: Array[Object] */;
3183 val* var_tquadnode2 /* var tquadnode2: nullable Object */;
3184 short int var5 /* : Bool */;
3185 int cltype;
3186 int idtype;
3187 val* var_listnode3 /* var listnode3: nullable Object */;
3188 short int var6 /* : Bool */;
3189 int cltype7;
3190 int idtype8;
3191 val* var9 /* : Array[Object] */;
3192 val* var_tidnode5 /* var tidnode5: nullable Object */;
3193 short int var10 /* : Bool */;
3194 int cltype11;
3195 int idtype12;
3196 val* var13 /* : AModuleName */;
3197 val* var_pmodulenamenode1 /* var pmodulenamenode1: nullable AModuleName */;
3198 long var14 /* : Int */;
3199 long var15 /* : Int */;
3200 var_p = p0;
3201 var_node_list = ((val*)NULL);
3202 {
3203 var = nitc___nitc__Parser___pop(var_p);
3204 }
3205 var_nodearraylist4 = var;
3206 {
3207 var1 = nitc___nitc__Parser___pop(var_p);
3208 }
3209 var_nodearraylist3 = var1;
3210 {
3211 var2 = nitc___nitc__Parser___pop(var_p);
3212 }
3213 var_nodearraylist2 = var2;
3214 {
3215 var3 = nitc___nitc__Parser___pop(var_p);
3216 }
3217 var_nodearraylist1 = var3;
3218 var4 = NEW_core__Array(&type_core__Array__core__Object);
3219 {
3220 core___core__Array___core__kernel__Object__init(var4); /* Direct call array$Array$init on <var4:Array[Object]>*/
3221 }
3222 var_listnode4 = var4;
3223 var_tquadnode2 = var_nodearraylist1;
3224 /* <var_tquadnode2:nullable Object> isa nullable TQuad */
3225 cltype = type_nullable__nitc__TQuad.color;
3226 idtype = type_nullable__nitc__TQuad.id;
3227 if(var_tquadnode2 == NULL) {
3228 var5 = 1;
3229 } else {
3230 if(cltype >= (((long)var_tquadnode2&3)?type_info[((long)var_tquadnode2&3)]:var_tquadnode2->type)->table_size) {
3231 var5 = 0;
3232 } else {
3233 var5 = (((long)var_tquadnode2&3)?type_info[((long)var_tquadnode2&3)]:var_tquadnode2->type)->type_table[cltype] == idtype;
3234 }
3235 }
3236 if (unlikely(!var5)) {
3237 if(catchStack.cursor >= 0){
3238 longjmp(catchStack.envs[catchStack.cursor], 1);
3239 }
3240 PRINT_ERROR("Runtime error: %s", "Assert failed");
3241 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11685);
3242 fatal_exit(1);
3243 }
3244 var_listnode3 = var_nodearraylist3;
3245 /* <var_listnode3:nullable Object> isa Array[Object] */
3246 cltype7 = type_core__Array__core__Object.color;
3247 idtype8 = type_core__Array__core__Object.id;
3248 if(var_listnode3 == NULL) {
3249 var6 = 0;
3250 } else {
3251 if(cltype7 >= (((long)var_listnode3&3)?type_info[((long)var_listnode3&3)]:var_listnode3->type)->table_size) {
3252 var6 = 0;
3253 } else {
3254 var6 = (((long)var_listnode3&3)?type_info[((long)var_listnode3&3)]:var_listnode3->type)->type_table[cltype7] == idtype8;
3255 }
3256 }
3257 if (unlikely(!var6)) {
3258 if(catchStack.cursor >= 0){
3259 longjmp(catchStack.envs[catchStack.cursor], 1);
3260 }
3261 PRINT_ERROR("Runtime error: %s", "Assert failed");
3262 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11687);
3263 fatal_exit(1);
3264 }
3265 {
3266 var9 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode4, var_listnode3);
3267 }
3268 var_listnode4 = var9;
3269 var_tidnode5 = var_nodearraylist4;
3270 /* <var_tidnode5:nullable Object> isa nullable TId */
3271 cltype11 = type_nullable__nitc__TId.color;
3272 idtype12 = type_nullable__nitc__TId.id;
3273 if(var_tidnode5 == NULL) {
3274 var10 = 1;
3275 } else {
3276 if(cltype11 >= (((long)var_tidnode5&3)?type_info[((long)var_tidnode5&3)]:var_tidnode5->type)->table_size) {
3277 var10 = 0;
3278 } else {
3279 var10 = (((long)var_tidnode5&3)?type_info[((long)var_tidnode5&3)]:var_tidnode5->type)->type_table[cltype11] == idtype12;
3280 }
3281 }
3282 if (unlikely(!var10)) {
3283 if(catchStack.cursor >= 0){
3284 longjmp(catchStack.envs[catchStack.cursor], 1);
3285 }
3286 PRINT_ERROR("Runtime error: %s", "Assert failed");
3287 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11690);
3288 fatal_exit(1);
3289 }
3290 var13 = NEW_nitc__AModuleName(&type_nitc__AModuleName);
3291 {
3292 nitc__parser_prod___AModuleName___init_amodulename(var13, var_tquadnode2, var_listnode4, var_tidnode5); /* Direct call parser_prod$AModuleName$init_amodulename on <var13:AModuleName>*/
3293 }
3294 var_pmodulenamenode1 = var13;
3295 var_node_list = var_pmodulenamenode1;
3296 var14 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction458> */
3297 {
3298 var15 = nitc___nitc__Parser___go_to(var_p, var14);
3299 }
3300 {
3301 nitc___nitc__Parser___push(var_p, var15, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
3302 }
3303 RET_LABEL:;
3304 }
3305 /* method parser$ReduceAction459$action for (self: ReduceAction459, Parser) */
3306 void nitc__parser___nitc__parser__ReduceAction459___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
3307 val* var_p /* var p: Parser */;
3308 val* var_node_list /* var node_list: nullable Object */;
3309 val* var /* : nullable Object */;
3310 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3311 val* var1 /* : Array[Object] */;
3312 val* var_listnode2 /* var listnode2: Array[Object] */;
3313 val* var_tclassidnode3 /* var tclassidnode3: nullable Object */;
3314 short int var2 /* : Bool */;
3315 int cltype;
3316 int idtype;
3317 val* var3 /* : AQualified */;
3318 val* var_pqualifiednode1 /* var pqualifiednode1: nullable AQualified */;
3319 long var4 /* : Int */;
3320 long var5 /* : Int */;
3321 var_p = p0;
3322 var_node_list = ((val*)NULL);
3323 {
3324 var = nitc___nitc__Parser___pop(var_p);
3325 }
3326 var_nodearraylist1 = var;
3327 var1 = NEW_core__Array(&type_core__Array__core__Object);
3328 {
3329 core___core__Array___core__kernel__Object__init(var1); /* Direct call array$Array$init on <var1:Array[Object]>*/
3330 }
3331 var_listnode2 = var1;
3332 var_tclassidnode3 = var_nodearraylist1;
3333 /* <var_tclassidnode3:nullable Object> isa nullable TClassid */
3334 cltype = type_nullable__nitc__TClassid.color;
3335 idtype = type_nullable__nitc__TClassid.id;
3336 if(var_tclassidnode3 == NULL) {
3337 var2 = 1;
3338 } else {
3339 if(cltype >= (((long)var_tclassidnode3&3)?type_info[((long)var_tclassidnode3&3)]:var_tclassidnode3->type)->table_size) {
3340 var2 = 0;
3341 } else {
3342 var2 = (((long)var_tclassidnode3&3)?type_info[((long)var_tclassidnode3&3)]:var_tclassidnode3->type)->type_table[cltype] == idtype;
3343 }
3344 }
3345 if (unlikely(!var2)) {
3346 if(catchStack.cursor >= 0){
3347 longjmp(catchStack.envs[catchStack.cursor], 1);
3348 }
3349 PRINT_ERROR("Runtime error: %s", "Assert failed");
3350 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11708);
3351 fatal_exit(1);
3352 }
3353 var3 = NEW_nitc__AQualified(&type_nitc__AQualified);
3354 {
3355 nitc__parser_prod___AQualified___init_aqualified(var3, var_listnode2, var_tclassidnode3); /* Direct call parser_prod$AQualified$init_aqualified on <var3:AQualified>*/
3356 }
3357 var_pqualifiednode1 = var3;
3358 var_node_list = var_pqualifiednode1;
3359 var4 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction459> */
3360 {
3361 var5 = nitc___nitc__Parser___go_to(var_p, var4);
3362 }
3363 {
3364 nitc___nitc__Parser___push(var_p, var5, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
3365 }
3366 RET_LABEL:;
3367 }
3368 /* method parser$ReduceAction460$action for (self: ReduceAction460, Parser) */
3369 void nitc__parser___nitc__parser__ReduceAction460___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
3370 val* var_p /* var p: Parser */;
3371 val* var_node_list /* var node_list: nullable Object */;
3372 val* var /* : nullable Object */;
3373 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3374 val* var1 /* : nullable Object */;
3375 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3376 val* var2 /* : Array[Object] */;
3377 val* var_listnode3 /* var listnode3: Array[Object] */;
3378 val* var_listnode2 /* var listnode2: nullable Object */;
3379 short int var3 /* : Bool */;
3380 int cltype;
3381 int idtype;
3382 val* var4 /* : Array[Object] */;
3383 val* var_tclassidnode4 /* var tclassidnode4: nullable Object */;
3384 short int var5 /* : Bool */;
3385 int cltype6;
3386 int idtype7;
3387 val* var8 /* : AQualified */;
3388 val* var_pqualifiednode1 /* var pqualifiednode1: nullable AQualified */;
3389 long var9 /* : Int */;
3390 long var10 /* : Int */;
3391 var_p = p0;
3392 var_node_list = ((val*)NULL);
3393 {
3394 var = nitc___nitc__Parser___pop(var_p);
3395 }
3396 var_nodearraylist2 = var;
3397 {
3398 var1 = nitc___nitc__Parser___pop(var_p);
3399 }
3400 var_nodearraylist1 = var1;
3401 var2 = NEW_core__Array(&type_core__Array__core__Object);
3402 {
3403 core___core__Array___core__kernel__Object__init(var2); /* Direct call array$Array$init on <var2:Array[Object]>*/
3404 }
3405 var_listnode3 = var2;
3406 var_listnode2 = var_nodearraylist1;
3407 /* <var_listnode2:nullable Object> isa Array[Object] */
3408 cltype = type_core__Array__core__Object.color;
3409 idtype = type_core__Array__core__Object.id;
3410 if(var_listnode2 == NULL) {
3411 var3 = 0;
3412 } else {
3413 if(cltype >= (((long)var_listnode2&3)?type_info[((long)var_listnode2&3)]:var_listnode2->type)->table_size) {
3414 var3 = 0;
3415 } else {
3416 var3 = (((long)var_listnode2&3)?type_info[((long)var_listnode2&3)]:var_listnode2->type)->type_table[cltype] == idtype;
3417 }
3418 }
3419 if (unlikely(!var3)) {
3420 if(catchStack.cursor >= 0){
3421 longjmp(catchStack.envs[catchStack.cursor], 1);
3422 }
3423 PRINT_ERROR("Runtime error: %s", "Assert failed");
3424 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11726);
3425 fatal_exit(1);
3426 }
3427 {
3428 var4 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode2);
3429 }
3430 var_listnode3 = var4;
3431 var_tclassidnode4 = var_nodearraylist2;
3432 /* <var_tclassidnode4:nullable Object> isa nullable TClassid */
3433 cltype6 = type_nullable__nitc__TClassid.color;
3434 idtype7 = type_nullable__nitc__TClassid.id;
3435 if(var_tclassidnode4 == NULL) {
3436 var5 = 1;
3437 } else {
3438 if(cltype6 >= (((long)var_tclassidnode4&3)?type_info[((long)var_tclassidnode4&3)]:var_tclassidnode4->type)->table_size) {
3439 var5 = 0;
3440 } else {
3441 var5 = (((long)var_tclassidnode4&3)?type_info[((long)var_tclassidnode4&3)]:var_tclassidnode4->type)->type_table[cltype6] == idtype7;
3442 }
3443 }
3444 if (unlikely(!var5)) {
3445 if(catchStack.cursor >= 0){
3446 longjmp(catchStack.envs[catchStack.cursor], 1);
3447 }
3448 PRINT_ERROR("Runtime error: %s", "Assert failed");
3449 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11729);
3450 fatal_exit(1);
3451 }
3452 var8 = NEW_nitc__AQualified(&type_nitc__AQualified);
3453 {
3454 nitc__parser_prod___AQualified___init_aqualified(var8, var_listnode3, var_tclassidnode4); /* Direct call parser_prod$AQualified$init_aqualified on <var8:AQualified>*/
3455 }
3456 var_pqualifiednode1 = var8;
3457 var_node_list = var_pqualifiednode1;
3458 var9 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction460> */
3459 {
3460 var10 = nitc___nitc__Parser___go_to(var_p, var9);
3461 }
3462 {
3463 nitc___nitc__Parser___push(var_p, var10, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
3464 }
3465 RET_LABEL:;
3466 }
3467 /* method parser$ReduceAction461$action for (self: ReduceAction461, Parser) */
3468 void nitc__parser___nitc__parser__ReduceAction461___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
3469 val* var_p /* var p: Parser */;
3470 val* var_node_list /* var node_list: nullable Object */;
3471 val* var /* : nullable Object */;
3472 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3473 val* var1 /* : Array[Object] */;
3474 val* var_listnode3 /* var listnode3: Array[Object] */;
3475 val* var_listnode2 /* var listnode2: nullable Object */;
3476 short int var2 /* : Bool */;
3477 int cltype;
3478 int idtype;
3479 val* var3 /* : Array[Object] */;
3480 val* var4 /* : AQualified */;
3481 val* var_pqualifiednode1 /* var pqualifiednode1: nullable AQualified */;
3482 long var5 /* : Int */;
3483 long var6 /* : Int */;
3484 var_p = p0;
3485 var_node_list = ((val*)NULL);
3486 {
3487 var = nitc___nitc__Parser___pop(var_p);
3488 }
3489 var_nodearraylist1 = var;
3490 var1 = NEW_core__Array(&type_core__Array__core__Object);
3491 {
3492 core___core__Array___core__kernel__Object__init(var1); /* Direct call array$Array$init on <var1:Array[Object]>*/
3493 }
3494 var_listnode3 = var1;
3495 var_listnode2 = var_nodearraylist1;
3496 /* <var_listnode2:nullable Object> isa Array[Object] */
3497 cltype = type_core__Array__core__Object.color;
3498 idtype = type_core__Array__core__Object.id;
3499 if(var_listnode2 == NULL) {
3500 var2 = 0;
3501 } else {
3502 if(cltype >= (((long)var_listnode2&3)?type_info[((long)var_listnode2&3)]:var_listnode2->type)->table_size) {
3503 var2 = 0;
3504 } else {
3505 var2 = (((long)var_listnode2&3)?type_info[((long)var_listnode2&3)]:var_listnode2->type)->type_table[cltype] == idtype;
3506 }
3507 }
3508 if (unlikely(!var2)) {
3509 if(catchStack.cursor >= 0){
3510 longjmp(catchStack.envs[catchStack.cursor], 1);
3511 }
3512 PRINT_ERROR("Runtime error: %s", "Assert failed");
3513 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11746);
3514 fatal_exit(1);
3515 }
3516 {
3517 var3 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode2);
3518 }
3519 var_listnode3 = var3;
3520 var4 = NEW_nitc__AQualified(&type_nitc__AQualified);
3521 {
3522 nitc__parser_prod___AQualified___init_aqualified(var4, var_listnode3, ((val*)NULL)); /* Direct call parser_prod$AQualified$init_aqualified on <var4:AQualified>*/
3523 }
3524 var_pqualifiednode1 = var4;
3525 var_node_list = var_pqualifiednode1;
3526 var5 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction461> */
3527 {
3528 var6 = nitc___nitc__Parser___go_to(var_p, var5);
3529 }
3530 {
3531 nitc___nitc__Parser___push(var_p, var6, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
3532 }
3533 RET_LABEL:;
3534 }
3535 /* method parser$ReduceAction463$action for (self: ReduceAction463, Parser) */
3536 void nitc__parser___nitc__parser__ReduceAction463___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
3537 val* var_p /* var p: Parser */;
3538 val* var_node_list /* var node_list: nullable Object */;
3539 val* var /* : nullable Object */;
3540 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3541 val* var_tclassidnode3 /* var tclassidnode3: nullable Object */;
3542 short int var1 /* : Bool */;
3543 int cltype;
3544 int idtype;
3545 val* var2 /* : AQclassid */;
3546 val* var_pqclassidnode1 /* var pqclassidnode1: nullable AQclassid */;
3547 long var3 /* : Int */;
3548 long var4 /* : Int */;
3549 var_p = p0;
3550 var_node_list = ((val*)NULL);
3551 {
3552 var = nitc___nitc__Parser___pop(var_p);
3553 }
3554 var_nodearraylist1 = var;
3555 var_tclassidnode3 = var_nodearraylist1;
3556 /* <var_tclassidnode3:nullable Object> isa nullable TClassid */
3557 cltype = type_nullable__nitc__TClassid.color;
3558 idtype = type_nullable__nitc__TClassid.id;
3559 if(var_tclassidnode3 == NULL) {
3560 var1 = 1;
3561 } else {
3562 if(cltype >= (((long)var_tclassidnode3&3)?type_info[((long)var_tclassidnode3&3)]:var_tclassidnode3->type)->table_size) {
3563 var1 = 0;
3564 } else {
3565 var1 = (((long)var_tclassidnode3&3)?type_info[((long)var_tclassidnode3&3)]:var_tclassidnode3->type)->type_table[cltype] == idtype;
3566 }
3567 }
3568 if (unlikely(!var1)) {
3569 if(catchStack.cursor >= 0){
3570 longjmp(catchStack.envs[catchStack.cursor], 1);
3571 }
3572 PRINT_ERROR("Runtime error: %s", "Assert failed");
3573 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11763);
3574 fatal_exit(1);
3575 }
3576 var2 = NEW_nitc__AQclassid(&type_nitc__AQclassid);
3577 {
3578 nitc__parser_prod___AQclassid___init_aqclassid(var2, ((val*)NULL), var_tclassidnode3); /* Direct call parser_prod$AQclassid$init_aqclassid on <var2:AQclassid>*/
3579 }
3580 var_pqclassidnode1 = var2;
3581 var_node_list = var_pqclassidnode1;
3582 var3 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction463> */
3583 {
3584 var4 = nitc___nitc__Parser___go_to(var_p, var3);
3585 }
3586 {
3587 nitc___nitc__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
3588 }
3589 RET_LABEL:;
3590 }
3591 /* method parser$ReduceAction464$action for (self: ReduceAction464, Parser) */
3592 void nitc__parser___nitc__parser__ReduceAction464___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
3593 val* var_p /* var p: Parser */;
3594 val* var_node_list /* var node_list: nullable Object */;
3595 val* var /* : nullable Object */;
3596 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3597 val* var1 /* : nullable Object */;
3598 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3599 val* var2 /* : Array[Object] */;
3600 val* var_listnode3 /* var listnode3: Array[Object] */;
3601 val* var_tclassidnode4 /* var tclassidnode4: nullable Object */;
3602 short int var3 /* : Bool */;
3603 int cltype;
3604 int idtype;
3605 val* var4 /* : AQualified */;
3606 val* var_pqualifiednode2 /* var pqualifiednode2: nullable AQualified */;
3607 val* var_tclassidnode5 /* var tclassidnode5: nullable Object */;
3608 short int var5 /* : Bool */;
3609 int cltype6;
3610 int idtype7;
3611 val* var8 /* : AQclassid */;
3612 val* var_pqclassidnode1 /* var pqclassidnode1: nullable AQclassid */;
3613 long var9 /* : Int */;
3614 long var10 /* : Int */;
3615 var_p = p0;
3616 var_node_list = ((val*)NULL);
3617 {
3618 var = nitc___nitc__Parser___pop(var_p);
3619 }
3620 var_nodearraylist2 = var;
3621 {
3622 var1 = nitc___nitc__Parser___pop(var_p);
3623 }
3624 var_nodearraylist1 = var1;
3625 var2 = NEW_core__Array(&type_core__Array__core__Object);
3626 {
3627 core___core__Array___core__kernel__Object__init(var2); /* Direct call array$Array$init on <var2:Array[Object]>*/
3628 }
3629 var_listnode3 = var2;
3630 var_tclassidnode4 = var_nodearraylist1;
3631 /* <var_tclassidnode4:nullable Object> isa nullable TClassid */
3632 cltype = type_nullable__nitc__TClassid.color;
3633 idtype = type_nullable__nitc__TClassid.id;
3634 if(var_tclassidnode4 == NULL) {
3635 var3 = 1;
3636 } else {
3637 if(cltype >= (((long)var_tclassidnode4&3)?type_info[((long)var_tclassidnode4&3)]:var_tclassidnode4->type)->table_size) {
3638 var3 = 0;
3639 } else {
3640 var3 = (((long)var_tclassidnode4&3)?type_info[((long)var_tclassidnode4&3)]:var_tclassidnode4->type)->type_table[cltype] == idtype;
3641 }
3642 }
3643 if (unlikely(!var3)) {
3644 if(catchStack.cursor >= 0){
3645 longjmp(catchStack.envs[catchStack.cursor], 1);
3646 }
3647 PRINT_ERROR("Runtime error: %s", "Assert failed");
3648 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11781);
3649 fatal_exit(1);
3650 }
3651 var4 = NEW_nitc__AQualified(&type_nitc__AQualified);
3652 {
3653 nitc__parser_prod___AQualified___init_aqualified(var4, var_listnode3, var_tclassidnode4); /* Direct call parser_prod$AQualified$init_aqualified on <var4:AQualified>*/
3654 }
3655 var_pqualifiednode2 = var4;
3656 var_tclassidnode5 = var_nodearraylist2;
3657 /* <var_tclassidnode5:nullable Object> isa nullable TClassid */
3658 cltype6 = type_nullable__nitc__TClassid.color;
3659 idtype7 = type_nullable__nitc__TClassid.id;
3660 if(var_tclassidnode5 == NULL) {
3661 var5 = 1;
3662 } else {
3663 if(cltype6 >= (((long)var_tclassidnode5&3)?type_info[((long)var_tclassidnode5&3)]:var_tclassidnode5->type)->table_size) {
3664 var5 = 0;
3665 } else {
3666 var5 = (((long)var_tclassidnode5&3)?type_info[((long)var_tclassidnode5&3)]:var_tclassidnode5->type)->type_table[cltype6] == idtype7;
3667 }
3668 }
3669 if (unlikely(!var5)) {
3670 if(catchStack.cursor >= 0){
3671 longjmp(catchStack.envs[catchStack.cursor], 1);
3672 }
3673 PRINT_ERROR("Runtime error: %s", "Assert failed");
3674 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11787);
3675 fatal_exit(1);
3676 }
3677 var8 = NEW_nitc__AQclassid(&type_nitc__AQclassid);
3678 {
3679 nitc__parser_prod___AQclassid___init_aqclassid(var8, var_pqualifiednode2, var_tclassidnode5); /* Direct call parser_prod$AQclassid$init_aqclassid on <var8:AQclassid>*/
3680 }
3681 var_pqclassidnode1 = var8;
3682 var_node_list = var_pqclassidnode1;
3683 var9 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction464> */
3684 {
3685 var10 = nitc___nitc__Parser___go_to(var_p, var9);
3686 }
3687 {
3688 nitc___nitc__Parser___push(var_p, var10, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
3689 }
3690 RET_LABEL:;
3691 }
3692 /* method parser$ReduceAction465$action for (self: ReduceAction465, Parser) */
3693 void nitc__parser___nitc__parser__ReduceAction465___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
3694 val* var_p /* var p: Parser */;
3695 val* var_node_list /* var node_list: nullable Object */;
3696 val* var /* : nullable Object */;
3697 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3698 val* var1 /* : nullable Object */;
3699 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3700 val* var2 /* : nullable Object */;
3701 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3702 val* var3 /* : Array[Object] */;
3703 val* var_listnode4 /* var listnode4: Array[Object] */;
3704 val* var_listnode3 /* var listnode3: nullable Object */;
3705 short int var4 /* : Bool */;
3706 int cltype;
3707 int idtype;
3708 val* var5 /* : Array[Object] */;
3709 val* var_tclassidnode5 /* var tclassidnode5: nullable Object */;
3710 short int var6 /* : Bool */;
3711 int cltype7;
3712 int idtype8;
3713 val* var9 /* : AQualified */;
3714 val* var_pqualifiednode2 /* var pqualifiednode2: nullable AQualified */;
3715 val* var_tclassidnode6 /* var tclassidnode6: nullable Object */;
3716 short int var10 /* : Bool */;
3717 int cltype11;
3718 int idtype12;
3719 val* var13 /* : AQclassid */;
3720 val* var_pqclassidnode1 /* var pqclassidnode1: nullable AQclassid */;
3721 long var14 /* : Int */;
3722 long var15 /* : Int */;
3723 var_p = p0;
3724 var_node_list = ((val*)NULL);
3725 {
3726 var = nitc___nitc__Parser___pop(var_p);
3727 }
3728 var_nodearraylist3 = var;
3729 {
3730 var1 = nitc___nitc__Parser___pop(var_p);
3731 }
3732 var_nodearraylist2 = var1;
3733 {
3734 var2 = nitc___nitc__Parser___pop(var_p);
3735 }
3736 var_nodearraylist1 = var2;
3737 var3 = NEW_core__Array(&type_core__Array__core__Object);
3738 {
3739 core___core__Array___core__kernel__Object__init(var3); /* Direct call array$Array$init on <var3:Array[Object]>*/
3740 }
3741 var_listnode4 = var3;
3742 var_listnode3 = var_nodearraylist1;
3743 /* <var_listnode3:nullable Object> isa Array[Object] */
3744 cltype = type_core__Array__core__Object.color;
3745 idtype = type_core__Array__core__Object.id;
3746 if(var_listnode3 == NULL) {
3747 var4 = 0;
3748 } else {
3749 if(cltype >= (((long)var_listnode3&3)?type_info[((long)var_listnode3&3)]:var_listnode3->type)->table_size) {
3750 var4 = 0;
3751 } else {
3752 var4 = (((long)var_listnode3&3)?type_info[((long)var_listnode3&3)]:var_listnode3->type)->type_table[cltype] == idtype;
3753 }
3754 }
3755 if (unlikely(!var4)) {
3756 if(catchStack.cursor >= 0){
3757 longjmp(catchStack.envs[catchStack.cursor], 1);
3758 }
3759 PRINT_ERROR("Runtime error: %s", "Assert failed");
3760 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11806);
3761 fatal_exit(1);
3762 }
3763 {
3764 var5 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode4, var_listnode3);
3765 }
3766 var_listnode4 = var5;
3767 var_tclassidnode5 = var_nodearraylist2;
3768 /* <var_tclassidnode5:nullable Object> isa nullable TClassid */
3769 cltype7 = type_nullable__nitc__TClassid.color;
3770 idtype8 = type_nullable__nitc__TClassid.id;
3771 if(var_tclassidnode5 == NULL) {
3772 var6 = 1;
3773 } else {
3774 if(cltype7 >= (((long)var_tclassidnode5&3)?type_info[((long)var_tclassidnode5&3)]:var_tclassidnode5->type)->table_size) {
3775 var6 = 0;
3776 } else {
3777 var6 = (((long)var_tclassidnode5&3)?type_info[((long)var_tclassidnode5&3)]:var_tclassidnode5->type)->type_table[cltype7] == idtype8;
3778 }
3779 }
3780 if (unlikely(!var6)) {
3781 if(catchStack.cursor >= 0){
3782 longjmp(catchStack.envs[catchStack.cursor], 1);
3783 }
3784 PRINT_ERROR("Runtime error: %s", "Assert failed");
3785 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11809);
3786 fatal_exit(1);
3787 }
3788 var9 = NEW_nitc__AQualified(&type_nitc__AQualified);
3789 {
3790 nitc__parser_prod___AQualified___init_aqualified(var9, var_listnode4, var_tclassidnode5); /* Direct call parser_prod$AQualified$init_aqualified on <var9:AQualified>*/
3791 }
3792 var_pqualifiednode2 = var9;
3793 var_tclassidnode6 = var_nodearraylist3;
3794 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
3795 cltype11 = type_nullable__nitc__TClassid.color;
3796 idtype12 = type_nullable__nitc__TClassid.id;
3797 if(var_tclassidnode6 == NULL) {
3798 var10 = 1;
3799 } else {
3800 if(cltype11 >= (((long)var_tclassidnode6&3)?type_info[((long)var_tclassidnode6&3)]:var_tclassidnode6->type)->table_size) {
3801 var10 = 0;
3802 } else {
3803 var10 = (((long)var_tclassidnode6&3)?type_info[((long)var_tclassidnode6&3)]:var_tclassidnode6->type)->type_table[cltype11] == idtype12;
3804 }
3805 }
3806 if (unlikely(!var10)) {
3807 if(catchStack.cursor >= 0){
3808 longjmp(catchStack.envs[catchStack.cursor], 1);
3809 }
3810 PRINT_ERROR("Runtime error: %s", "Assert failed");
3811 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11815);
3812 fatal_exit(1);
3813 }
3814 var13 = NEW_nitc__AQclassid(&type_nitc__AQclassid);
3815 {
3816 nitc__parser_prod___AQclassid___init_aqclassid(var13, var_pqualifiednode2, var_tclassidnode6); /* Direct call parser_prod$AQclassid$init_aqclassid on <var13:AQclassid>*/
3817 }
3818 var_pqclassidnode1 = var13;
3819 var_node_list = var_pqclassidnode1;
3820 var14 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction465> */
3821 {
3822 var15 = nitc___nitc__Parser___go_to(var_p, var14);
3823 }
3824 {
3825 nitc___nitc__Parser___push(var_p, var15, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
3826 }
3827 RET_LABEL:;
3828 }
3829 /* method parser$ReduceAction466$action for (self: ReduceAction466, Parser) */
3830 void nitc__parser___nitc__parser__ReduceAction466___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
3831 val* var_p /* var p: Parser */;
3832 val* var_node_list /* var node_list: nullable Object */;
3833 val* var /* : nullable Object */;
3834 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3835 val* var1 /* : nullable Object */;
3836 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3837 val* var2 /* : Array[Object] */;
3838 val* var_listnode4 /* var listnode4: Array[Object] */;
3839 val* var_listnode3 /* var listnode3: nullable Object */;
3840 short int var3 /* : Bool */;
3841 int cltype;
3842 int idtype;
3843 val* var4 /* : Array[Object] */;
3844 val* var5 /* : AQualified */;
3845 val* var_pqualifiednode2 /* var pqualifiednode2: nullable AQualified */;
3846 val* var_tclassidnode6 /* var tclassidnode6: nullable Object */;
3847 short int var6 /* : Bool */;
3848 int cltype7;
3849 int idtype8;
3850 val* var9 /* : AQclassid */;
3851 val* var_pqclassidnode1 /* var pqclassidnode1: nullable AQclassid */;
3852 long var10 /* : Int */;
3853 long var11 /* : Int */;
3854 var_p = p0;
3855 var_node_list = ((val*)NULL);
3856 {
3857 var = nitc___nitc__Parser___pop(var_p);
3858 }
3859 var_nodearraylist2 = var;
3860 {
3861 var1 = nitc___nitc__Parser___pop(var_p);
3862 }
3863 var_nodearraylist1 = var1;
3864 var2 = NEW_core__Array(&type_core__Array__core__Object);
3865 {
3866 core___core__Array___core__kernel__Object__init(var2); /* Direct call array$Array$init on <var2:Array[Object]>*/
3867 }
3868 var_listnode4 = var2;
3869 var_listnode3 = var_nodearraylist1;
3870 /* <var_listnode3:nullable Object> isa Array[Object] */
3871 cltype = type_core__Array__core__Object.color;
3872 idtype = type_core__Array__core__Object.id;
3873 if(var_listnode3 == NULL) {
3874 var3 = 0;
3875 } else {
3876 if(cltype >= (((long)var_listnode3&3)?type_info[((long)var_listnode3&3)]:var_listnode3->type)->table_size) {
3877 var3 = 0;
3878 } else {
3879 var3 = (((long)var_listnode3&3)?type_info[((long)var_listnode3&3)]:var_listnode3->type)->type_table[cltype] == idtype;
3880 }
3881 }
3882 if (unlikely(!var3)) {
3883 if(catchStack.cursor >= 0){
3884 longjmp(catchStack.envs[catchStack.cursor], 1);
3885 }
3886 PRINT_ERROR("Runtime error: %s", "Assert failed");
3887 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11833);
3888 fatal_exit(1);
3889 }
3890 {
3891 var4 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode4, var_listnode3);
3892 }
3893 var_listnode4 = var4;
3894 var5 = NEW_nitc__AQualified(&type_nitc__AQualified);
3895 {
3896 nitc__parser_prod___AQualified___init_aqualified(var5, var_listnode4, ((val*)NULL)); /* Direct call parser_prod$AQualified$init_aqualified on <var5:AQualified>*/
3897 }
3898 var_pqualifiednode2 = var5;
3899 var_tclassidnode6 = var_nodearraylist2;
3900 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
3901 cltype7 = type_nullable__nitc__TClassid.color;
3902 idtype8 = type_nullable__nitc__TClassid.id;
3903 if(var_tclassidnode6 == NULL) {
3904 var6 = 1;
3905 } else {
3906 if(cltype7 >= (((long)var_tclassidnode6&3)?type_info[((long)var_tclassidnode6&3)]:var_tclassidnode6->type)->table_size) {
3907 var6 = 0;
3908 } else {
3909 var6 = (((long)var_tclassidnode6&3)?type_info[((long)var_tclassidnode6&3)]:var_tclassidnode6->type)->type_table[cltype7] == idtype8;
3910 }
3911 }
3912 if (unlikely(!var6)) {
3913 if(catchStack.cursor >= 0){
3914 longjmp(catchStack.envs[catchStack.cursor], 1);
3915 }
3916 PRINT_ERROR("Runtime error: %s", "Assert failed");
3917 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11840);
3918 fatal_exit(1);
3919 }
3920 var9 = NEW_nitc__AQclassid(&type_nitc__AQclassid);
3921 {
3922 nitc__parser_prod___AQclassid___init_aqclassid(var9, var_pqualifiednode2, var_tclassidnode6); /* Direct call parser_prod$AQclassid$init_aqclassid on <var9:AQclassid>*/
3923 }
3924 var_pqclassidnode1 = var9;
3925 var_node_list = var_pqclassidnode1;
3926 var10 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction466> */
3927 {
3928 var11 = nitc___nitc__Parser___go_to(var_p, var10);
3929 }
3930 {
3931 nitc___nitc__Parser___push(var_p, var11, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
3932 }
3933 RET_LABEL:;
3934 }
3935 /* method parser$ReduceAction467$action for (self: ReduceAction467, Parser) */
3936 void nitc__parser___nitc__parser__ReduceAction467___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
3937 val* var_p /* var p: Parser */;
3938 val* var_node_list /* var node_list: nullable Object */;
3939 val* var /* : nullable Object */;
3940 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3941 val* var_pmethidnode1 /* var pmethidnode1: nullable Object */;
3942 long var1 /* : Int */;
3943 long var2 /* : Int */;
3944 var_p = p0;
3945 var_node_list = ((val*)NULL);
3946 {
3947 var = nitc___nitc__Parser___pop(var_p);
3948 }
3949 var_nodearraylist1 = var;
3950 var_pmethidnode1 = var_nodearraylist1;
3951 var_node_list = var_pmethidnode1;
3952 var1 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction467> */
3953 {
3954 var2 = nitc___nitc__Parser___go_to(var_p, var1);
3955 }
3956 {
3957 nitc___nitc__Parser___push(var_p, var2, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
3958 }
3959 RET_LABEL:;
3960 }
3961 /* method parser$ReduceAction468$action for (self: ReduceAction468, Parser) */
3962 void nitc__parser___nitc__parser__ReduceAction468___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
3963 val* var_p /* var p: Parser */;
3964 val* var_node_list /* var node_list: nullable Object */;
3965 val* var /* : nullable Object */;
3966 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3967 val* var1 /* : nullable Object */;
3968 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3969 val* var_pmethidnode1 /* var pmethidnode1: nullable Object */;
3970 long var2 /* : Int */;
3971 long var3 /* : Int */;
3972 var_p = p0;
3973 var_node_list = ((val*)NULL);
3974 {
3975 var = nitc___nitc__Parser___pop(var_p);
3976 }
3977 var_nodearraylist2 = var;
3978 {
3979 var1 = nitc___nitc__Parser___pop(var_p);
3980 }
3981 var_nodearraylist1 = var1;
3982 var_pmethidnode1 = var_nodearraylist2;
3983 var_node_list = var_pmethidnode1;
3984 var2 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction468> */
3985 {
3986 var3 = nitc___nitc__Parser___go_to(var_p, var2);
3987 }
3988 {
3989 nitc___nitc__Parser___push(var_p, var3, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
3990 }
3991 RET_LABEL:;
3992 }
3993 /* method parser$ReduceAction469$action for (self: ReduceAction469, Parser) */
3994 void nitc__parser___nitc__parser__ReduceAction469___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
3995 val* var_p /* var p: Parser */;
3996 val* var_node_list /* var node_list: nullable Object */;
3997 val* var /* : nullable Object */;
3998 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3999 val* var1 /* : nullable Object */;
4000 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4001 val* var2 /* : nullable Object */;
4002 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4003 val* var_pmethidnode1 /* var pmethidnode1: nullable Object */;
4004 long var3 /* : Int */;
4005 long var4 /* : Int */;
4006 var_p = p0;
4007 var_node_list = ((val*)NULL);
4008 {
4009 var = nitc___nitc__Parser___pop(var_p);
4010 }
4011 var_nodearraylist3 = var;
4012 {
4013 var1 = nitc___nitc__Parser___pop(var_p);
4014 }
4015 var_nodearraylist2 = var1;
4016 {
4017 var2 = nitc___nitc__Parser___pop(var_p);
4018 }
4019 var_nodearraylist1 = var2;
4020 var_pmethidnode1 = var_nodearraylist3;
4021 var_node_list = var_pmethidnode1;
4022 var3 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction469> */
4023 {
4024 var4 = nitc___nitc__Parser___go_to(var_p, var3);
4025 }
4026 {
4027 nitc___nitc__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
4028 }
4029 RET_LABEL:;
4030 }
4031 /* method parser$ReduceAction471$action for (self: ReduceAction471, Parser) */
4032 void nitc__parser___nitc__parser__ReduceAction471___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
4033 val* var_p /* var p: Parser */;
4034 val* var_node_list /* var node_list: nullable Object */;
4035 val* var /* : nullable Object */;
4036 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4037 val* var1 /* : nullable Object */;
4038 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4039 val* var2 /* : nullable Object */;
4040 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4041 val* var_tidnode1 /* var tidnode1: nullable Object */;
4042 long var3 /* : Int */;
4043 long var4 /* : Int */;
4044 var_p = p0;
4045 var_node_list = ((val*)NULL);
4046 {
4047 var = nitc___nitc__Parser___pop(var_p);
4048 }
4049 var_nodearraylist3 = var;
4050 {
4051 var1 = nitc___nitc__Parser___pop(var_p);
4052 }
4053 var_nodearraylist2 = var1;
4054 {
4055 var2 = nitc___nitc__Parser___pop(var_p);
4056 }
4057 var_nodearraylist1 = var2;
4058 var_tidnode1 = var_nodearraylist1;
4059 var_node_list = var_tidnode1;
4060 var3 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction471> */
4061 {
4062 var4 = nitc___nitc__Parser___go_to(var_p, var3);
4063 }
4064 {
4065 nitc___nitc__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
4066 }
4067 RET_LABEL:;
4068 }
4069 /* method parser$ReduceAction472$action for (self: ReduceAction472, Parser) */
4070 void nitc__parser___nitc__parser__ReduceAction472___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
4071 val* var_p /* var p: Parser */;
4072 val* var_node_list /* var node_list: nullable Object */;
4073 val* var /* : nullable Object */;
4074 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4075 val* var1 /* : nullable Object */;
4076 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4077 val* var2 /* : nullable Object */;
4078 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4079 val* var_tclassidnode1 /* var tclassidnode1: nullable Object */;
4080 long var3 /* : Int */;
4081 long var4 /* : Int */;
4082 var_p = p0;
4083 var_node_list = ((val*)NULL);
4084 {
4085 var = nitc___nitc__Parser___pop(var_p);
4086 }
4087 var_nodearraylist3 = var;
4088 {
4089 var1 = nitc___nitc__Parser___pop(var_p);
4090 }
4091 var_nodearraylist2 = var1;
4092 {
4093 var2 = nitc___nitc__Parser___pop(var_p);
4094 }
4095 var_nodearraylist1 = var2;
4096 var_tclassidnode1 = var_nodearraylist1;
4097 var_node_list = var_tclassidnode1;
4098 var3 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction472> */
4099 {
4100 var4 = nitc___nitc__Parser___go_to(var_p, var3);
4101 }
4102 {
4103 nitc___nitc__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
4104 }
4105 RET_LABEL:;
4106 }
4107 /* method parser$ReduceAction474$action for (self: ReduceAction474, Parser) */
4108 void nitc__parser___nitc__parser__ReduceAction474___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
4109 val* var_p /* var p: Parser */;
4110 val* var_node_list /* var node_list: nullable Object */;
4111 val* var /* : nullable Object */;
4112 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4113 val* var_tkwendnode1 /* var tkwendnode1: nullable Object */;
4114 long var1 /* : Int */;
4115 long var2 /* : Int */;
4116 var_p = p0;
4117 var_node_list = ((val*)NULL);
4118 {
4119 var = nitc___nitc__Parser___pop(var_p);
4120 }
4121 var_nodearraylist1 = var;
4122 var_tkwendnode1 = var_nodearraylist1;
4123 var_node_list = var_tkwendnode1;
4124 var1 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction474> */
4125 {
4126 var2 = nitc___nitc__Parser___go_to(var_p, var1);
4127 }
4128 {
4129 nitc___nitc__Parser___push(var_p, var2, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
4130 }
4131 RET_LABEL:;
4132 }
4133 /* method parser$ReduceAction475$action for (self: ReduceAction475, Parser) */
4134 void nitc__parser___nitc__parser__ReduceAction475___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
4135 val* var_p /* var p: Parser */;
4136 val* var_node_list /* var node_list: nullable Object */;
4137 val* var /* : nullable Object */;
4138 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4139 long var1 /* : Int */;
4140 long var2 /* : Int */;
4141 var_p = p0;
4142 var_node_list = ((val*)NULL);
4143 {
4144 var = nitc___nitc__Parser___pop(var_p);
4145 }
4146 var_nodearraylist1 = var;
4147 var1 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction475> */
4148 {
4149 var2 = nitc___nitc__Parser___go_to(var_p, var1);
4150 }
4151 {
4152 nitc___nitc__Parser___push(var_p, var2, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
4153 }
4154 RET_LABEL:;
4155 }
4156 /* method parser$ReduceAction478$action for (self: ReduceAction478, Parser) */
4157 void nitc__parser___nitc__parser__ReduceAction478___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
4158 val* var_p /* var p: Parser */;
4159 val* var_node_list /* var node_list: nullable Object */;
4160 val* var /* : nullable Object */;
4161 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4162 val* var1 /* : Array[Object] */;
4163 val* var_listnode3 /* var listnode3: Array[Object] */;
4164 val* var_listnode2 /* var listnode2: nullable Object */;
4165 short int var2 /* : Bool */;
4166 int cltype;
4167 int idtype;
4168 val* var3 /* : Array[Object] */;
4169 val* var4 /* : ADoc */;
4170 val* var_pdocnode1 /* var pdocnode1: nullable ADoc */;
4171 long var5 /* : Int */;
4172 long var6 /* : Int */;
4173 var_p = p0;
4174 var_node_list = ((val*)NULL);
4175 {
4176 var = nitc___nitc__Parser___pop(var_p);
4177 }
4178 var_nodearraylist1 = var;
4179 var1 = NEW_core__Array(&type_core__Array__core__Object);
4180 {
4181 core___core__Array___core__kernel__Object__init(var1); /* Direct call array$Array$init on <var1:Array[Object]>*/
4182 }
4183 var_listnode3 = var1;
4184 var_listnode2 = var_nodearraylist1;
4185 /* <var_listnode2:nullable Object> isa Array[Object] */
4186 cltype = type_core__Array__core__Object.color;
4187 idtype = type_core__Array__core__Object.id;
4188 if(var_listnode2 == NULL) {
4189 var2 = 0;
4190 } else {
4191 if(cltype >= (((long)var_listnode2&3)?type_info[((long)var_listnode2&3)]:var_listnode2->type)->table_size) {
4192 var2 = 0;
4193 } else {
4194 var2 = (((long)var_listnode2&3)?type_info[((long)var_listnode2&3)]:var_listnode2->type)->type_table[cltype] == idtype;
4195 }
4196 }
4197 if (unlikely(!var2)) {
4198 if(catchStack.cursor >= 0){
4199 longjmp(catchStack.envs[catchStack.cursor], 1);
4200 }
4201 PRINT_ERROR("Runtime error: %s", "Assert failed");
4202 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11939);
4203 fatal_exit(1);
4204 }
4205 {
4206 var3 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode2);
4207 }
4208 var_listnode3 = var3;
4209 var4 = NEW_nitc__ADoc(&type_nitc__ADoc);
4210 {
4211 nitc__parser_prod___ADoc___init_adoc(var4, var_listnode3); /* Direct call parser_prod$ADoc$init_adoc on <var4:ADoc>*/
4212 }
4213 var_pdocnode1 = var4;
4214 var_node_list = var_pdocnode1;
4215 var5 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction478> */
4216 {
4217 var6 = nitc___nitc__Parser___go_to(var_p, var5);
4218 }
4219 {
4220 nitc___nitc__Parser___push(var_p, var6, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
4221 }
4222 RET_LABEL:;
4223 }
4224 /* method parser$ReduceAction479$action for (self: ReduceAction479, Parser) */
4225 void nitc__parser___nitc__parser__ReduceAction479___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
4226 val* var_p /* var p: Parser */;
4227 val* var_node_list /* var node_list: nullable Object */;
4228 val* var /* : nullable Object */;
4229 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4230 val* var1 /* : nullable Object */;
4231 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4232 val* var2 /* : Array[Object] */;
4233 val* var_listnode3 /* var listnode3: Array[Object] */;
4234 val* var_listnode2 /* var listnode2: nullable Object */;
4235 short int var3 /* : Bool */;
4236 int cltype;
4237 int idtype;
4238 val* var4 /* : Array[Object] */;
4239 val* var5 /* : ADoc */;
4240 val* var_pdocnode1 /* var pdocnode1: nullable ADoc */;
4241 long var6 /* : Int */;
4242 long var7 /* : Int */;
4243 var_p = p0;
4244 var_node_list = ((val*)NULL);
4245 {
4246 var = nitc___nitc__Parser___pop(var_p);
4247 }
4248 var_nodearraylist2 = var;
4249 {
4250 var1 = nitc___nitc__Parser___pop(var_p);
4251 }
4252 var_nodearraylist1 = var1;
4253 var2 = NEW_core__Array(&type_core__Array__core__Object);
4254 {
4255 core___core__Array___core__kernel__Object__init(var2); /* Direct call array$Array$init on <var2:Array[Object]>*/
4256 }
4257 var_listnode3 = var2;
4258 var_listnode2 = var_nodearraylist2;
4259 /* <var_listnode2:nullable Object> isa Array[Object] */
4260 cltype = type_core__Array__core__Object.color;
4261 idtype = type_core__Array__core__Object.id;
4262 if(var_listnode2 == NULL) {
4263 var3 = 0;
4264 } else {
4265 if(cltype >= (((long)var_listnode2&3)?type_info[((long)var_listnode2&3)]:var_listnode2->type)->table_size) {
4266 var3 = 0;
4267 } else {
4268 var3 = (((long)var_listnode2&3)?type_info[((long)var_listnode2&3)]:var_listnode2->type)->type_table[cltype] == idtype;
4269 }
4270 }
4271 if (unlikely(!var3)) {
4272 if(catchStack.cursor >= 0){
4273 longjmp(catchStack.envs[catchStack.cursor], 1);
4274 }
4275 PRINT_ERROR("Runtime error: %s", "Assert failed");
4276 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 11957);
4277 fatal_exit(1);
4278 }
4279 {
4280 var4 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode2);
4281 }
4282 var_listnode3 = var4;
4283 var5 = NEW_nitc__ADoc(&type_nitc__ADoc);
4284 {
4285 nitc__parser_prod___ADoc___init_adoc(var5, var_listnode3); /* Direct call parser_prod$ADoc$init_adoc on <var5:ADoc>*/
4286 }
4287 var_pdocnode1 = var5;
4288 var_node_list = var_pdocnode1;
4289 var6 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction479> */
4290 {
4291 var7 = nitc___nitc__Parser___go_to(var_p, var6);
4292 }
4293 {
4294 nitc___nitc__Parser___push(var_p, var7, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
4295 }
4296 RET_LABEL:;
4297 }
4298 /* method parser$ReduceAction482$action for (self: ReduceAction482, Parser) */
4299 void nitc__parser___nitc__parser__ReduceAction482___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
4300 val* var_p /* var p: Parser */;
4301 val* var_node_list /* var node_list: nullable Object */;
4302 val* var /* : nullable Object */;
4303 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4304 val* var1 /* : nullable Object */;
4305 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4306 long var2 /* : Int */;
4307 long var3 /* : Int */;
4308 var_p = p0;
4309 var_node_list = ((val*)NULL);
4310 {
4311 var = nitc___nitc__Parser___pop(var_p);
4312 }
4313 var_nodearraylist2 = var;
4314 {
4315 var1 = nitc___nitc__Parser___pop(var_p);
4316 }
4317 var_nodearraylist1 = var1;
4318 var_node_list = ((val*)NULL);
4319 var2 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction482> */
4320 {
4321 var3 = nitc___nitc__Parser___go_to(var_p, var2);
4322 }
4323 {
4324 nitc___nitc__Parser___push(var_p, var3, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
4325 }
4326 RET_LABEL:;
4327 }
4328 /* method parser$ReduceAction484$action for (self: ReduceAction484, Parser) */
4329 void nitc__parser___nitc__parser__ReduceAction484___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
4330 val* var_p /* var p: Parser */;
4331 val* var_node_list /* var node_list: nullable Object */;
4332 val* var /* : nullable Object */;
4333 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4334 val* var1 /* : nullable Object */;
4335 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4336 val* var2 /* : nullable Object */;
4337 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4338 long var3 /* : Int */;
4339 long var4 /* : Int */;
4340 var_p = p0;
4341 var_node_list = ((val*)NULL);
4342 {
4343 var = nitc___nitc__Parser___pop(var_p);
4344 }
4345 var_nodearraylist3 = var;
4346 {
4347 var1 = nitc___nitc__Parser___pop(var_p);
4348 }
4349 var_nodearraylist2 = var1;
4350 {
4351 var2 = nitc___nitc__Parser___pop(var_p);
4352 }
4353 var_nodearraylist1 = var2;
4354 var_node_list = ((val*)NULL);
4355 var3 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction484> */
4356 {
4357 var4 = nitc___nitc__Parser___go_to(var_p, var3);
4358 }
4359 {
4360 nitc___nitc__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
4361 }
4362 RET_LABEL:;
4363 }
4364 /* method parser$ReduceAction485$action for (self: ReduceAction485, Parser) */
4365 void nitc__parser___nitc__parser__ReduceAction485___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
4366 val* var_p /* var p: Parser */;
4367 val* var_node_list /* var node_list: nullable Object */;
4368 val* var /* : nullable Object */;
4369 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4370 val* var1 /* : nullable Object */;
4371 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4372 val* var_pdocnode1 /* var pdocnode1: nullable Object */;
4373 long var2 /* : Int */;
4374 long var3 /* : Int */;
4375 var_p = p0;
4376 var_node_list = ((val*)NULL);
4377 {
4378 var = nitc___nitc__Parser___pop(var_p);
4379 }
4380 var_nodearraylist2 = var;
4381 {
4382 var1 = nitc___nitc__Parser___pop(var_p);
4383 }
4384 var_nodearraylist1 = var1;
4385 var_pdocnode1 = var_nodearraylist2;
4386 var_node_list = var_pdocnode1;
4387 var2 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction485> */
4388 {
4389 var3 = nitc___nitc__Parser___go_to(var_p, var2);
4390 }
4391 {
4392 nitc___nitc__Parser___push(var_p, var3, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
4393 }
4394 RET_LABEL:;
4395 }
4396 /* method parser$ReduceAction486$action for (self: ReduceAction486, Parser) */
4397 void nitc__parser___nitc__parser__ReduceAction486___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
4398 val* var_p /* var p: Parser */;
4399 val* var_node_list /* var node_list: nullable Object */;
4400 val* var /* : nullable Object */;
4401 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4402 val* var1 /* : nullable Object */;
4403 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4404 val* var2 /* : nullable Object */;
4405 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4406 val* var_pdocnode1 /* var pdocnode1: nullable Object */;
4407 long var3 /* : Int */;
4408 long var4 /* : Int */;
4409 var_p = p0;
4410 var_node_list = ((val*)NULL);
4411 {
4412 var = nitc___nitc__Parser___pop(var_p);
4413 }
4414 var_nodearraylist3 = var;
4415 {
4416 var1 = nitc___nitc__Parser___pop(var_p);
4417 }
4418 var_nodearraylist2 = var1;
4419 {
4420 var2 = nitc___nitc__Parser___pop(var_p);
4421 }
4422 var_nodearraylist1 = var2;
4423 var_pdocnode1 = var_nodearraylist3;
4424 var_node_list = var_pdocnode1;
4425 var3 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction486> */
4426 {
4427 var4 = nitc___nitc__Parser___go_to(var_p, var3);
4428 }
4429 {
4430 nitc___nitc__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
4431 }
4432 RET_LABEL:;
4433 }
4434 /* method parser$ReduceAction488$action for (self: ReduceAction488, Parser) */
4435 void nitc__parser___nitc__parser__ReduceAction488___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
4436 val* var_p /* var p: Parser */;
4437 val* var_node_list /* var node_list: nullable Object */;
4438 val* var /* : nullable Object */;
4439 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4440 val* var1 /* : nullable Object */;
4441 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4442 val* var2 /* : nullable Object */;
4443 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4444 val* var3 /* : nullable Object */;
4445 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4446 val* var_pdocnode1 /* var pdocnode1: nullable Object */;
4447 long var4 /* : Int */;
4448 long var5 /* : Int */;
4449 var_p = p0;
4450 var_node_list = ((val*)NULL);
4451 {
4452 var = nitc___nitc__Parser___pop(var_p);
4453 }
4454 var_nodearraylist4 = var;
4455 {
4456 var1 = nitc___nitc__Parser___pop(var_p);
4457 }
4458 var_nodearraylist3 = var1;
4459 {
4460 var2 = nitc___nitc__Parser___pop(var_p);
4461 }
4462 var_nodearraylist2 = var2;
4463 {
4464 var3 = nitc___nitc__Parser___pop(var_p);
4465 }
4466 var_nodearraylist1 = var3;
4467 var_pdocnode1 = var_nodearraylist4;
4468 var_node_list = var_pdocnode1;
4469 var4 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction488> */
4470 {
4471 var5 = nitc___nitc__Parser___go_to(var_p, var4);
4472 }
4473 {
4474 nitc___nitc__Parser___push(var_p, var5, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
4475 }
4476 RET_LABEL:;
4477 }
4478 /* method parser$ReduceAction490$action for (self: ReduceAction490, Parser) */
4479 void nitc__parser___nitc__parser__ReduceAction490___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
4480 val* var_p /* var p: Parser */;
4481 val* var_node_list /* var node_list: nullable Object */;
4482 val* var /* : nullable Object */;
4483 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4484 val* var_pdocnode1 /* var pdocnode1: nullable Object */;
4485 long var1 /* : Int */;
4486 long var2 /* : Int */;
4487 var_p = p0;
4488 var_node_list = ((val*)NULL);
4489 {
4490 var = nitc___nitc__Parser___pop(var_p);
4491 }
4492 var_nodearraylist1 = var;
4493 var_pdocnode1 = var_nodearraylist1;
4494 var_node_list = var_pdocnode1;
4495 var1 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction490> */
4496 {
4497 var2 = nitc___nitc__Parser___go_to(var_p, var1);
4498 }
4499 {
4500 nitc___nitc__Parser___push(var_p, var2, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
4501 }
4502 RET_LABEL:;
4503 }
4504 /* method parser$ReduceAction491$action for (self: ReduceAction491, Parser) */
4505 void nitc__parser___nitc__parser__ReduceAction491___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
4506 val* var_p /* var p: Parser */;
4507 val* var_node_list /* var node_list: nullable Object */;
4508 long var /* : Int */;
4509 long var1 /* : Int */;
4510 var_p = p0;
4511 var_node_list = ((val*)NULL);
4512 var = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction491> */
4513 {
4514 var1 = nitc___nitc__Parser___go_to(var_p, var);
4515 }
4516 {
4517 nitc___nitc__Parser___push(var_p, var1, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
4518 }
4519 RET_LABEL:;
4520 }
4521 /* method parser$ReduceAction494$action for (self: ReduceAction494, Parser) */
4522 void nitc__parser___nitc__parser__ReduceAction494___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
4523 val* var_p /* var p: Parser */;
4524 val* var_node_list /* var node_list: nullable Object */;
4525 val* var /* : nullable Object */;
4526 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4527 val* var1 /* : nullable Object */;
4528 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4529 long var2 /* : Int */;
4530 long var3 /* : Int */;
4531 var_p = p0;
4532 var_node_list = ((val*)NULL);
4533 {
4534 var = nitc___nitc__Parser___pop(var_p);
4535 }
4536 var_nodearraylist2 = var;
4537 {
4538 var1 = nitc___nitc__Parser___pop(var_p);
4539 }
4540 var_nodearraylist1 = var1;
4541 var2 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction494> */
4542 {
4543 var3 = nitc___nitc__Parser___go_to(var_p, var2);
4544 }
4545 {
4546 nitc___nitc__Parser___push(var_p, var3, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
4547 }
4548 RET_LABEL:;
4549 }
4550 /* method parser$ReduceAction856$action for (self: ReduceAction856, Parser) */
4551 void nitc__parser___nitc__parser__ReduceAction856___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
4552 val* var_p /* var p: Parser */;
4553 val* var_node_list /* var node_list: nullable Object */;
4554 val* var /* : nullable Object */;
4555 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4556 val* var1 /* : nullable Object */;
4557 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4558 val* var2 /* : nullable Object */;
4559 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4560 val* var3 /* : nullable Object */;
4561 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4562 val* var_tkwissetnode2 /* var tkwissetnode2: nullable Object */;
4563 short int var4 /* : Bool */;
4564 int cltype;
4565 int idtype;
4566 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
4567 short int var5 /* : Bool */;
4568 int cltype6;
4569 int idtype7;
4570 val* var_tattridnode4 /* var tattridnode4: nullable Object */;
4571 short int var8 /* : Bool */;
4572 int cltype9;
4573 int idtype10;
4574 val* var11 /* : AIssetAttrExpr */;
4575 val* var_pexprnode1 /* var pexprnode1: nullable AIssetAttrExpr */;
4576 long var12 /* : Int */;
4577 long var13 /* : Int */;
4578 var_p = p0;
4579 var_node_list = ((val*)NULL);
4580 {
4581 var = nitc___nitc__Parser___pop(var_p);
4582 }
4583 var_nodearraylist4 = var;
4584 {
4585 var1 = nitc___nitc__Parser___pop(var_p);
4586 }
4587 var_nodearraylist3 = var1;
4588 {
4589 var2 = nitc___nitc__Parser___pop(var_p);
4590 }
4591 var_nodearraylist2 = var2;
4592 {
4593 var3 = nitc___nitc__Parser___pop(var_p);
4594 }
4595 var_nodearraylist1 = var3;
4596 var_tkwissetnode2 = var_nodearraylist1;
4597 /* <var_tkwissetnode2:nullable Object> isa nullable TKwisset */
4598 cltype = type_nullable__nitc__TKwisset.color;
4599 idtype = type_nullable__nitc__TKwisset.id;
4600 if(var_tkwissetnode2 == NULL) {
4601 var4 = 1;
4602 } else {
4603 if(cltype >= (((long)var_tkwissetnode2&3)?type_info[((long)var_tkwissetnode2&3)]:var_tkwissetnode2->type)->table_size) {
4604 var4 = 0;
4605 } else {
4606 var4 = (((long)var_tkwissetnode2&3)?type_info[((long)var_tkwissetnode2&3)]:var_tkwissetnode2->type)->type_table[cltype] == idtype;
4607 }
4608 }
4609 if (unlikely(!var4)) {
4610 if(catchStack.cursor >= 0){
4611 longjmp(catchStack.envs[catchStack.cursor], 1);
4612 }
4613 PRINT_ERROR("Runtime error: %s", "Assert failed");
4614 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12067);
4615 fatal_exit(1);
4616 }
4617 var_pexprnode3 = var_nodearraylist2;
4618 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
4619 cltype6 = type_nullable__nitc__AExpr.color;
4620 idtype7 = type_nullable__nitc__AExpr.id;
4621 if(var_pexprnode3 == NULL) {
4622 var5 = 1;
4623 } else {
4624 if(cltype6 >= (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->table_size) {
4625 var5 = 0;
4626 } else {
4627 var5 = (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->type_table[cltype6] == idtype7;
4628 }
4629 }
4630 if (unlikely(!var5)) {
4631 if(catchStack.cursor >= 0){
4632 longjmp(catchStack.envs[catchStack.cursor], 1);
4633 }
4634 PRINT_ERROR("Runtime error: %s", "Assert failed");
4635 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12069);
4636 fatal_exit(1);
4637 }
4638 var_tattridnode4 = var_nodearraylist4;
4639 /* <var_tattridnode4:nullable Object> isa nullable TAttrid */
4640 cltype9 = type_nullable__nitc__TAttrid.color;
4641 idtype10 = type_nullable__nitc__TAttrid.id;
4642 if(var_tattridnode4 == NULL) {
4643 var8 = 1;
4644 } else {
4645 if(cltype9 >= (((long)var_tattridnode4&3)?type_info[((long)var_tattridnode4&3)]:var_tattridnode4->type)->table_size) {
4646 var8 = 0;
4647 } else {
4648 var8 = (((long)var_tattridnode4&3)?type_info[((long)var_tattridnode4&3)]:var_tattridnode4->type)->type_table[cltype9] == idtype10;
4649 }
4650 }
4651 if (unlikely(!var8)) {
4652 if(catchStack.cursor >= 0){
4653 longjmp(catchStack.envs[catchStack.cursor], 1);
4654 }
4655 PRINT_ERROR("Runtime error: %s", "Assert failed");
4656 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12071);
4657 fatal_exit(1);
4658 }
4659 var11 = NEW_nitc__AIssetAttrExpr(&type_nitc__AIssetAttrExpr);
4660 {
4661 nitc__parser_prod___AIssetAttrExpr___init_aissetattrexpr(var11, var_tkwissetnode2, var_pexprnode3, var_tattridnode4); /* Direct call parser_prod$AIssetAttrExpr$init_aissetattrexpr on <var11:AIssetAttrExpr>*/
4662 }
4663 var_pexprnode1 = var11;
4664 var_node_list = var_pexprnode1;
4665 var12 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction856> */
4666 {
4667 var13 = nitc___nitc__Parser___go_to(var_p, var12);
4668 }
4669 {
4670 nitc___nitc__Parser___push(var_p, var13, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
4671 }
4672 RET_LABEL:;
4673 }
4674 /* method parser$ReduceAction858$action for (self: ReduceAction858, Parser) */
4675 void nitc__parser___nitc__parser__ReduceAction858___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
4676 val* var_p /* var p: Parser */;
4677 val* var_node_list /* var node_list: nullable Object */;
4678 val* var /* : nullable Object */;
4679 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4680 val* var1 /* : nullable Object */;
4681 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4682 val* var2 /* : nullable Object */;
4683 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4684 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
4685 short int var3 /* : Bool */;
4686 int cltype;
4687 int idtype;
4688 val* var_tattridnode3 /* var tattridnode3: nullable Object */;
4689 short int var4 /* : Bool */;
4690 int cltype5;
4691 int idtype6;
4692 val* var7 /* : AAttrExpr */;
4693 val* var_pexprnode1 /* var pexprnode1: nullable AAttrExpr */;
4694 long var8 /* : Int */;
4695 long var9 /* : Int */;
4696 var_p = p0;
4697 var_node_list = ((val*)NULL);
4698 {
4699 var = nitc___nitc__Parser___pop(var_p);
4700 }
4701 var_nodearraylist3 = var;
4702 {
4703 var1 = nitc___nitc__Parser___pop(var_p);
4704 }
4705 var_nodearraylist2 = var1;
4706 {
4707 var2 = nitc___nitc__Parser___pop(var_p);
4708 }
4709 var_nodearraylist1 = var2;
4710 var_pexprnode2 = var_nodearraylist1;
4711 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
4712 cltype = type_nullable__nitc__AExpr.color;
4713 idtype = type_nullable__nitc__AExpr.id;
4714 if(var_pexprnode2 == NULL) {
4715 var3 = 1;
4716 } else {
4717 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
4718 var3 = 0;
4719 } else {
4720 var3 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
4721 }
4722 }
4723 if (unlikely(!var3)) {
4724 if(catchStack.cursor >= 0){
4725 longjmp(catchStack.envs[catchStack.cursor], 1);
4726 }
4727 PRINT_ERROR("Runtime error: %s", "Assert failed");
4728 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12090);
4729 fatal_exit(1);
4730 }
4731 var_tattridnode3 = var_nodearraylist3;
4732 /* <var_tattridnode3:nullable Object> isa nullable TAttrid */
4733 cltype5 = type_nullable__nitc__TAttrid.color;
4734 idtype6 = type_nullable__nitc__TAttrid.id;
4735 if(var_tattridnode3 == NULL) {
4736 var4 = 1;
4737 } else {
4738 if(cltype5 >= (((long)var_tattridnode3&3)?type_info[((long)var_tattridnode3&3)]:var_tattridnode3->type)->table_size) {
4739 var4 = 0;
4740 } else {
4741 var4 = (((long)var_tattridnode3&3)?type_info[((long)var_tattridnode3&3)]:var_tattridnode3->type)->type_table[cltype5] == idtype6;
4742 }
4743 }
4744 if (unlikely(!var4)) {
4745 if(catchStack.cursor >= 0){
4746 longjmp(catchStack.envs[catchStack.cursor], 1);
4747 }
4748 PRINT_ERROR("Runtime error: %s", "Assert failed");
4749 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12092);
4750 fatal_exit(1);
4751 }
4752 var7 = NEW_nitc__AAttrExpr(&type_nitc__AAttrExpr);
4753 {
4754 nitc__parser_prod___AAttrExpr___init_aattrexpr(var7, var_pexprnode2, var_tattridnode3); /* Direct call parser_prod$AAttrExpr$init_aattrexpr on <var7:AAttrExpr>*/
4755 }
4756 var_pexprnode1 = var7;
4757 var_node_list = var_pexprnode1;
4758 var8 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction858> */
4759 {
4760 var9 = nitc___nitc__Parser___go_to(var_p, var8);
4761 }
4762 {
4763 nitc___nitc__Parser___push(var_p, var9, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
4764 }
4765 RET_LABEL:;
4766 }
4767 /* method parser$ReduceAction859$action for (self: ReduceAction859, Parser) */
4768 void nitc__parser___nitc__parser__ReduceAction859___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
4769 val* var_p /* var p: Parser */;
4770 val* var_node_list /* var node_list: nullable Object */;
4771 val* var /* : nullable Object */;
4772 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4773 val* var1 /* : nullable Object */;
4774 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4775 val* var2 /* : nullable Object */;
4776 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4777 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
4778 short int var3 /* : Bool */;
4779 int cltype;
4780 int idtype;
4781 val* var_tidnode5 /* var tidnode5: nullable Object */;
4782 short int var4 /* : Bool */;
4783 int cltype5;
4784 int idtype6;
4785 val* var7 /* : AQid */;
4786 val* var_pqidnode3 /* var pqidnode3: nullable AQid */;
4787 val* var_pexprsnode6 /* var pexprsnode6: nullable Object */;
4788 short int var8 /* : Bool */;
4789 int cltype9;
4790 int idtype10;
4791 val* var11 /* : ACallExpr */;
4792 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
4793 long var12 /* : Int */;
4794 long var13 /* : Int */;
4795 var_p = p0;
4796 var_node_list = ((val*)NULL);
4797 {
4798 var = nitc___nitc__Parser___pop(var_p);
4799 }
4800 var_nodearraylist3 = var;
4801 {
4802 var1 = nitc___nitc__Parser___pop(var_p);
4803 }
4804 var_nodearraylist2 = var1;
4805 {
4806 var2 = nitc___nitc__Parser___pop(var_p);
4807 }
4808 var_nodearraylist1 = var2;
4809 var_pexprnode2 = var_nodearraylist1;
4810 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
4811 cltype = type_nullable__nitc__AExpr.color;
4812 idtype = type_nullable__nitc__AExpr.id;
4813 if(var_pexprnode2 == NULL) {
4814 var3 = 1;
4815 } else {
4816 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
4817 var3 = 0;
4818 } else {
4819 var3 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
4820 }
4821 }
4822 if (unlikely(!var3)) {
4823 if(catchStack.cursor >= 0){
4824 longjmp(catchStack.envs[catchStack.cursor], 1);
4825 }
4826 PRINT_ERROR("Runtime error: %s", "Assert failed");
4827 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12110);
4828 fatal_exit(1);
4829 }
4830 var_tidnode5 = var_nodearraylist2;
4831 /* <var_tidnode5:nullable Object> isa nullable TId */
4832 cltype5 = type_nullable__nitc__TId.color;
4833 idtype6 = type_nullable__nitc__TId.id;
4834 if(var_tidnode5 == NULL) {
4835 var4 = 1;
4836 } else {
4837 if(cltype5 >= (((long)var_tidnode5&3)?type_info[((long)var_tidnode5&3)]:var_tidnode5->type)->table_size) {
4838 var4 = 0;
4839 } else {
4840 var4 = (((long)var_tidnode5&3)?type_info[((long)var_tidnode5&3)]:var_tidnode5->type)->type_table[cltype5] == idtype6;
4841 }
4842 }
4843 if (unlikely(!var4)) {
4844 if(catchStack.cursor >= 0){
4845 longjmp(catchStack.envs[catchStack.cursor], 1);
4846 }
4847 PRINT_ERROR("Runtime error: %s", "Assert failed");
4848 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12112);
4849 fatal_exit(1);
4850 }
4851 var7 = NEW_nitc__AQid(&type_nitc__AQid);
4852 {
4853 nitc__parser_prod___AQid___init_aqid(var7, ((val*)NULL), var_tidnode5); /* Direct call parser_prod$AQid$init_aqid on <var7:AQid>*/
4854 }
4855 var_pqidnode3 = var7;
4856 var_pexprsnode6 = var_nodearraylist3;
4857 /* <var_pexprsnode6:nullable Object> isa nullable AExprs */
4858 cltype9 = type_nullable__nitc__AExprs.color;
4859 idtype10 = type_nullable__nitc__AExprs.id;
4860 if(var_pexprsnode6 == NULL) {
4861 var8 = 1;
4862 } else {
4863 if(cltype9 >= (((long)var_pexprsnode6&3)?type_info[((long)var_pexprsnode6&3)]:var_pexprsnode6->type)->table_size) {
4864 var8 = 0;
4865 } else {
4866 var8 = (((long)var_pexprsnode6&3)?type_info[((long)var_pexprsnode6&3)]:var_pexprsnode6->type)->type_table[cltype9] == idtype10;
4867 }
4868 }
4869 if (unlikely(!var8)) {
4870 if(catchStack.cursor >= 0){
4871 longjmp(catchStack.envs[catchStack.cursor], 1);
4872 }
4873 PRINT_ERROR("Runtime error: %s", "Assert failed");
4874 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12118);
4875 fatal_exit(1);
4876 }
4877 var11 = NEW_nitc__ACallExpr(&type_nitc__ACallExpr);
4878 {
4879 nitc__parser_prod___ACallExpr___init_acallexpr(var11, var_pexprnode2, var_pqidnode3, var_pexprsnode6); /* Direct call parser_prod$ACallExpr$init_acallexpr on <var11:ACallExpr>*/
4880 }
4881 var_pexprnode1 = var11;
4882 var_node_list = var_pexprnode1;
4883 var12 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction859> */
4884 {
4885 var13 = nitc___nitc__Parser___go_to(var_p, var12);
4886 }
4887 {
4888 nitc___nitc__Parser___push(var_p, var13, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
4889 }
4890 RET_LABEL:;
4891 }
4892 /* method parser$ReduceAction860$action for (self: ReduceAction860, Parser) */
4893 void nitc__parser___nitc__parser__ReduceAction860___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
4894 val* var_p /* var p: Parser */;
4895 val* var_node_list /* var node_list: nullable Object */;
4896 val* var /* : nullable Object */;
4897 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4898 val* var1 /* : nullable Object */;
4899 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4900 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
4901 short int var2 /* : Bool */;
4902 int cltype;
4903 int idtype;
4904 val* var_tidnode5 /* var tidnode5: nullable Object */;
4905 short int var3 /* : Bool */;
4906 int cltype4;
4907 int idtype5;
4908 val* var6 /* : AQid */;
4909 val* var_pqidnode3 /* var pqidnode3: nullable AQid */;
4910 val* var7 /* : Array[Object] */;
4911 val* var_listnode7 /* var listnode7: Array[Object] */;
4912 val* var8 /* : AListExprs */;
4913 val* var_pexprsnode6 /* var pexprsnode6: nullable AListExprs */;
4914 val* var9 /* : ACallExpr */;
4915 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
4916 long var10 /* : Int */;
4917 long var11 /* : Int */;
4918 var_p = p0;
4919 var_node_list = ((val*)NULL);
4920 {
4921 var = nitc___nitc__Parser___pop(var_p);
4922 }
4923 var_nodearraylist2 = var;
4924 {
4925 var1 = nitc___nitc__Parser___pop(var_p);
4926 }
4927 var_nodearraylist1 = var1;
4928 var_pexprnode2 = var_nodearraylist1;
4929 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
4930 cltype = type_nullable__nitc__AExpr.color;
4931 idtype = type_nullable__nitc__AExpr.id;
4932 if(var_pexprnode2 == NULL) {
4933 var2 = 1;
4934 } else {
4935 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
4936 var2 = 0;
4937 } else {
4938 var2 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
4939 }
4940 }
4941 if (unlikely(!var2)) {
4942 if(catchStack.cursor >= 0){
4943 longjmp(catchStack.envs[catchStack.cursor], 1);
4944 }
4945 PRINT_ERROR("Runtime error: %s", "Assert failed");
4946 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12136);
4947 fatal_exit(1);
4948 }
4949 var_tidnode5 = var_nodearraylist2;
4950 /* <var_tidnode5:nullable Object> isa nullable TId */
4951 cltype4 = type_nullable__nitc__TId.color;
4952 idtype5 = type_nullable__nitc__TId.id;
4953 if(var_tidnode5 == NULL) {
4954 var3 = 1;
4955 } else {
4956 if(cltype4 >= (((long)var_tidnode5&3)?type_info[((long)var_tidnode5&3)]:var_tidnode5->type)->table_size) {
4957 var3 = 0;
4958 } else {
4959 var3 = (((long)var_tidnode5&3)?type_info[((long)var_tidnode5&3)]:var_tidnode5->type)->type_table[cltype4] == idtype5;
4960 }
4961 }
4962 if (unlikely(!var3)) {
4963 if(catchStack.cursor >= 0){
4964 longjmp(catchStack.envs[catchStack.cursor], 1);
4965 }
4966 PRINT_ERROR("Runtime error: %s", "Assert failed");
4967 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12138);
4968 fatal_exit(1);
4969 }
4970 var6 = NEW_nitc__AQid(&type_nitc__AQid);
4971 {
4972 nitc__parser_prod___AQid___init_aqid(var6, ((val*)NULL), var_tidnode5); /* Direct call parser_prod$AQid$init_aqid on <var6:AQid>*/
4973 }
4974 var_pqidnode3 = var6;
4975 var7 = NEW_core__Array(&type_core__Array__core__Object);
4976 {
4977 core___core__Array___core__kernel__Object__init(var7); /* Direct call array$Array$init on <var7:Array[Object]>*/
4978 }
4979 var_listnode7 = var7;
4980 var8 = NEW_nitc__AListExprs(&type_nitc__AListExprs);
4981 {
4982 nitc__parser_prod___AListExprs___init_alistexprs(var8, var_listnode7); /* Direct call parser_prod$AListExprs$init_alistexprs on <var8:AListExprs>*/
4983 }
4984 var_pexprsnode6 = var8;
4985 var9 = NEW_nitc__ACallExpr(&type_nitc__ACallExpr);
4986 {
4987 nitc__parser_prod___ACallExpr___init_acallexpr(var9, var_pexprnode2, var_pqidnode3, var_pexprsnode6); /* Direct call parser_prod$ACallExpr$init_acallexpr on <var9:ACallExpr>*/
4988 }
4989 var_pexprnode1 = var9;
4990 var_node_list = var_pexprnode1;
4991 var10 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction860> */
4992 {
4993 var11 = nitc___nitc__Parser___go_to(var_p, var10);
4994 }
4995 {
4996 nitc___nitc__Parser___push(var_p, var11, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
4997 }
4998 RET_LABEL:;
4999 }
5000 /* method parser$ReduceAction861$action for (self: ReduceAction861, Parser) */
5001 void nitc__parser___nitc__parser__ReduceAction861___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
5002 val* var_p /* var p: Parser */;
5003 val* var_node_list /* var node_list: nullable Object */;
5004 val* var /* : nullable Object */;
5005 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5006 val* var1 /* : nullable Object */;
5007 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5008 val* var2 /* : nullable Object */;
5009 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5010 val* var3 /* : nullable Object */;
5011 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5012 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
5013 short int var4 /* : Bool */;
5014 int cltype;
5015 int idtype;
5016 val* var5 /* : Array[Object] */;
5017 val* var_listnode5 /* var listnode5: Array[Object] */;
5018 val* var_tclassidnode6 /* var tclassidnode6: nullable Object */;
5019 short int var6 /* : Bool */;
5020 int cltype7;
5021 int idtype8;
5022 val* var9 /* : AQualified */;
5023 val* var_pqualifiednode4 /* var pqualifiednode4: nullable AQualified */;
5024 val* var_tidnode7 /* var tidnode7: nullable Object */;
5025 short int var10 /* : Bool */;
5026 int cltype11;
5027 int idtype12;
5028 val* var13 /* : AQid */;
5029 val* var_pqidnode3 /* var pqidnode3: nullable AQid */;
5030 val* var_pexprsnode8 /* var pexprsnode8: nullable Object */;
5031 short int var14 /* : Bool */;
5032 int cltype15;
5033 int idtype16;
5034 val* var17 /* : ACallExpr */;
5035 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
5036 long var18 /* : Int */;
5037 long var19 /* : Int */;
5038 var_p = p0;
5039 var_node_list = ((val*)NULL);
5040 {
5041 var = nitc___nitc__Parser___pop(var_p);
5042 }
5043 var_nodearraylist4 = var;
5044 {
5045 var1 = nitc___nitc__Parser___pop(var_p);
5046 }
5047 var_nodearraylist3 = var1;
5048 {
5049 var2 = nitc___nitc__Parser___pop(var_p);
5050 }
5051 var_nodearraylist2 = var2;
5052 {
5053 var3 = nitc___nitc__Parser___pop(var_p);
5054 }
5055 var_nodearraylist1 = var3;
5056 var_pexprnode2 = var_nodearraylist1;
5057 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
5058 cltype = type_nullable__nitc__AExpr.color;
5059 idtype = type_nullable__nitc__AExpr.id;
5060 if(var_pexprnode2 == NULL) {
5061 var4 = 1;
5062 } else {
5063 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
5064 var4 = 0;
5065 } else {
5066 var4 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
5067 }
5068 }
5069 if (unlikely(!var4)) {
5070 if(catchStack.cursor >= 0){
5071 longjmp(catchStack.envs[catchStack.cursor], 1);
5072 }
5073 PRINT_ERROR("Runtime error: %s", "Assert failed");
5074 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12166);
5075 fatal_exit(1);
5076 }
5077 var5 = NEW_core__Array(&type_core__Array__core__Object);
5078 {
5079 core___core__Array___core__kernel__Object__init(var5); /* Direct call array$Array$init on <var5:Array[Object]>*/
5080 }
5081 var_listnode5 = var5;
5082 var_tclassidnode6 = var_nodearraylist2;
5083 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
5084 cltype7 = type_nullable__nitc__TClassid.color;
5085 idtype8 = type_nullable__nitc__TClassid.id;
5086 if(var_tclassidnode6 == NULL) {
5087 var6 = 1;
5088 } else {
5089 if(cltype7 >= (((long)var_tclassidnode6&3)?type_info[((long)var_tclassidnode6&3)]:var_tclassidnode6->type)->table_size) {
5090 var6 = 0;
5091 } else {
5092 var6 = (((long)var_tclassidnode6&3)?type_info[((long)var_tclassidnode6&3)]:var_tclassidnode6->type)->type_table[cltype7] == idtype8;
5093 }
5094 }
5095 if (unlikely(!var6)) {
5096 if(catchStack.cursor >= 0){
5097 longjmp(catchStack.envs[catchStack.cursor], 1);
5098 }
5099 PRINT_ERROR("Runtime error: %s", "Assert failed");
5100 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12169);
5101 fatal_exit(1);
5102 }
5103 var9 = NEW_nitc__AQualified(&type_nitc__AQualified);
5104 {
5105 nitc__parser_prod___AQualified___init_aqualified(var9, var_listnode5, var_tclassidnode6); /* Direct call parser_prod$AQualified$init_aqualified on <var9:AQualified>*/
5106 }
5107 var_pqualifiednode4 = var9;
5108 var_tidnode7 = var_nodearraylist3;
5109 /* <var_tidnode7:nullable Object> isa nullable TId */
5110 cltype11 = type_nullable__nitc__TId.color;
5111 idtype12 = type_nullable__nitc__TId.id;
5112 if(var_tidnode7 == NULL) {
5113 var10 = 1;
5114 } else {
5115 if(cltype11 >= (((long)var_tidnode7&3)?type_info[((long)var_tidnode7&3)]:var_tidnode7->type)->table_size) {
5116 var10 = 0;
5117 } else {
5118 var10 = (((long)var_tidnode7&3)?type_info[((long)var_tidnode7&3)]:var_tidnode7->type)->type_table[cltype11] == idtype12;
5119 }
5120 }
5121 if (unlikely(!var10)) {
5122 if(catchStack.cursor >= 0){
5123 longjmp(catchStack.envs[catchStack.cursor], 1);
5124 }
5125 PRINT_ERROR("Runtime error: %s", "Assert failed");
5126 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12175);
5127 fatal_exit(1);
5128 }
5129 var13 = NEW_nitc__AQid(&type_nitc__AQid);
5130 {
5131 nitc__parser_prod___AQid___init_aqid(var13, var_pqualifiednode4, var_tidnode7); /* Direct call parser_prod$AQid$init_aqid on <var13:AQid>*/
5132 }
5133 var_pqidnode3 = var13;
5134 var_pexprsnode8 = var_nodearraylist4;
5135 /* <var_pexprsnode8:nullable Object> isa nullable AExprs */
5136 cltype15 = type_nullable__nitc__AExprs.color;
5137 idtype16 = type_nullable__nitc__AExprs.id;
5138 if(var_pexprsnode8 == NULL) {
5139 var14 = 1;
5140 } else {
5141 if(cltype15 >= (((long)var_pexprsnode8&3)?type_info[((long)var_pexprsnode8&3)]:var_pexprsnode8->type)->table_size) {
5142 var14 = 0;
5143 } else {
5144 var14 = (((long)var_pexprsnode8&3)?type_info[((long)var_pexprsnode8&3)]:var_pexprsnode8->type)->type_table[cltype15] == idtype16;
5145 }
5146 }
5147 if (unlikely(!var14)) {
5148 if(catchStack.cursor >= 0){
5149 longjmp(catchStack.envs[catchStack.cursor], 1);
5150 }
5151 PRINT_ERROR("Runtime error: %s", "Assert failed");
5152 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12181);
5153 fatal_exit(1);
5154 }
5155 var17 = NEW_nitc__ACallExpr(&type_nitc__ACallExpr);
5156 {
5157 nitc__parser_prod___ACallExpr___init_acallexpr(var17, var_pexprnode2, var_pqidnode3, var_pexprsnode8); /* Direct call parser_prod$ACallExpr$init_acallexpr on <var17:ACallExpr>*/
5158 }
5159 var_pexprnode1 = var17;
5160 var_node_list = var_pexprnode1;
5161 var18 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction861> */
5162 {
5163 var19 = nitc___nitc__Parser___go_to(var_p, var18);
5164 }
5165 {
5166 nitc___nitc__Parser___push(var_p, var19, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
5167 }
5168 RET_LABEL:;
5169 }
5170 /* method parser$ReduceAction862$action for (self: ReduceAction862, Parser) */
5171 void nitc__parser___nitc__parser__ReduceAction862___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
5172 val* var_p /* var p: Parser */;
5173 val* var_node_list /* var node_list: nullable Object */;
5174 val* var /* : nullable Object */;
5175 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5176 val* var1 /* : nullable Object */;
5177 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5178 val* var2 /* : nullable Object */;
5179 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5180 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
5181 short int var3 /* : Bool */;
5182 int cltype;
5183 int idtype;
5184 val* var4 /* : Array[Object] */;
5185 val* var_listnode5 /* var listnode5: Array[Object] */;
5186 val* var_tclassidnode6 /* var tclassidnode6: nullable Object */;
5187 short int var5 /* : Bool */;
5188 int cltype6;
5189 int idtype7;
5190 val* var8 /* : AQualified */;
5191 val* var_pqualifiednode4 /* var pqualifiednode4: nullable AQualified */;
5192 val* var_tidnode7 /* var tidnode7: nullable Object */;
5193 short int var9 /* : Bool */;
5194 int cltype10;
5195 int idtype11;
5196 val* var12 /* : AQid */;
5197 val* var_pqidnode3 /* var pqidnode3: nullable AQid */;
5198 val* var13 /* : Array[Object] */;
5199 val* var_listnode9 /* var listnode9: Array[Object] */;
5200 val* var14 /* : AListExprs */;
5201 val* var_pexprsnode8 /* var pexprsnode8: nullable AListExprs */;
5202 val* var15 /* : ACallExpr */;
5203 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
5204 long var16 /* : Int */;
5205 long var17 /* : Int */;
5206 var_p = p0;
5207 var_node_list = ((val*)NULL);
5208 {
5209 var = nitc___nitc__Parser___pop(var_p);
5210 }
5211 var_nodearraylist3 = var;
5212 {
5213 var1 = nitc___nitc__Parser___pop(var_p);
5214 }
5215 var_nodearraylist2 = var1;
5216 {
5217 var2 = nitc___nitc__Parser___pop(var_p);
5218 }
5219 var_nodearraylist1 = var2;
5220 var_pexprnode2 = var_nodearraylist1;
5221 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
5222 cltype = type_nullable__nitc__AExpr.color;
5223 idtype = type_nullable__nitc__AExpr.id;
5224 if(var_pexprnode2 == NULL) {
5225 var3 = 1;
5226 } else {
5227 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
5228 var3 = 0;
5229 } else {
5230 var3 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
5231 }
5232 }
5233 if (unlikely(!var3)) {
5234 if(catchStack.cursor >= 0){
5235 longjmp(catchStack.envs[catchStack.cursor], 1);
5236 }
5237 PRINT_ERROR("Runtime error: %s", "Assert failed");
5238 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12200);
5239 fatal_exit(1);
5240 }
5241 var4 = NEW_core__Array(&type_core__Array__core__Object);
5242 {
5243 core___core__Array___core__kernel__Object__init(var4); /* Direct call array$Array$init on <var4:Array[Object]>*/
5244 }
5245 var_listnode5 = var4;
5246 var_tclassidnode6 = var_nodearraylist2;
5247 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
5248 cltype6 = type_nullable__nitc__TClassid.color;
5249 idtype7 = type_nullable__nitc__TClassid.id;
5250 if(var_tclassidnode6 == NULL) {
5251 var5 = 1;
5252 } else {
5253 if(cltype6 >= (((long)var_tclassidnode6&3)?type_info[((long)var_tclassidnode6&3)]:var_tclassidnode6->type)->table_size) {
5254 var5 = 0;
5255 } else {
5256 var5 = (((long)var_tclassidnode6&3)?type_info[((long)var_tclassidnode6&3)]:var_tclassidnode6->type)->type_table[cltype6] == idtype7;
5257 }
5258 }
5259 if (unlikely(!var5)) {
5260 if(catchStack.cursor >= 0){
5261 longjmp(catchStack.envs[catchStack.cursor], 1);
5262 }
5263 PRINT_ERROR("Runtime error: %s", "Assert failed");
5264 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12203);
5265 fatal_exit(1);
5266 }
5267 var8 = NEW_nitc__AQualified(&type_nitc__AQualified);
5268 {
5269 nitc__parser_prod___AQualified___init_aqualified(var8, var_listnode5, var_tclassidnode6); /* Direct call parser_prod$AQualified$init_aqualified on <var8:AQualified>*/
5270 }
5271 var_pqualifiednode4 = var8;
5272 var_tidnode7 = var_nodearraylist3;
5273 /* <var_tidnode7:nullable Object> isa nullable TId */
5274 cltype10 = type_nullable__nitc__TId.color;
5275 idtype11 = type_nullable__nitc__TId.id;
5276 if(var_tidnode7 == NULL) {
5277 var9 = 1;
5278 } else {
5279 if(cltype10 >= (((long)var_tidnode7&3)?type_info[((long)var_tidnode7&3)]:var_tidnode7->type)->table_size) {
5280 var9 = 0;
5281 } else {
5282 var9 = (((long)var_tidnode7&3)?type_info[((long)var_tidnode7&3)]:var_tidnode7->type)->type_table[cltype10] == idtype11;
5283 }
5284 }
5285 if (unlikely(!var9)) {
5286 if(catchStack.cursor >= 0){
5287 longjmp(catchStack.envs[catchStack.cursor], 1);
5288 }
5289 PRINT_ERROR("Runtime error: %s", "Assert failed");
5290 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12209);
5291 fatal_exit(1);
5292 }
5293 var12 = NEW_nitc__AQid(&type_nitc__AQid);
5294 {
5295 nitc__parser_prod___AQid___init_aqid(var12, var_pqualifiednode4, var_tidnode7); /* Direct call parser_prod$AQid$init_aqid on <var12:AQid>*/
5296 }
5297 var_pqidnode3 = var12;
5298 var13 = NEW_core__Array(&type_core__Array__core__Object);
5299 {
5300 core___core__Array___core__kernel__Object__init(var13); /* Direct call array$Array$init on <var13:Array[Object]>*/
5301 }
5302 var_listnode9 = var13;
5303 var14 = NEW_nitc__AListExprs(&type_nitc__AListExprs);
5304 {
5305 nitc__parser_prod___AListExprs___init_alistexprs(var14, var_listnode9); /* Direct call parser_prod$AListExprs$init_alistexprs on <var14:AListExprs>*/
5306 }
5307 var_pexprsnode8 = var14;
5308 var15 = NEW_nitc__ACallExpr(&type_nitc__ACallExpr);
5309 {
5310 nitc__parser_prod___ACallExpr___init_acallexpr(var15, var_pexprnode2, var_pqidnode3, var_pexprsnode8); /* Direct call parser_prod$ACallExpr$init_acallexpr on <var15:ACallExpr>*/
5311 }
5312 var_pexprnode1 = var15;
5313 var_node_list = var_pexprnode1;
5314 var16 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction862> */
5315 {
5316 var17 = nitc___nitc__Parser___go_to(var_p, var16);
5317 }
5318 {
5319 nitc___nitc__Parser___push(var_p, var17, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
5320 }
5321 RET_LABEL:;
5322 }
5323 /* method parser$ReduceAction863$action for (self: ReduceAction863, Parser) */
5324 void nitc__parser___nitc__parser__ReduceAction863___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
5325 val* var_p /* var p: Parser */;
5326 val* var_node_list /* var node_list: nullable Object */;
5327 val* var /* : nullable Object */;
5328 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
5329 val* var1 /* : nullable Object */;
5330 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5331 val* var2 /* : nullable Object */;
5332 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5333 val* var3 /* : nullable Object */;
5334 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5335 val* var4 /* : nullable Object */;
5336 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5337 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
5338 short int var5 /* : Bool */;
5339 int cltype;
5340 int idtype;
5341 val* var6 /* : Array[Object] */;
5342 val* var_listnode6 /* var listnode6: Array[Object] */;
5343 val* var_listnode5 /* var listnode5: nullable Object */;
5344 short int var7 /* : Bool */;
5345 int cltype8;
5346 int idtype9;
5347 val* var10 /* : Array[Object] */;
5348 val* var_tclassidnode7 /* var tclassidnode7: nullable Object */;
5349 short int var11 /* : Bool */;
5350 int cltype12;
5351 int idtype13;
5352 val* var14 /* : AQualified */;
5353 val* var_pqualifiednode4 /* var pqualifiednode4: nullable AQualified */;
5354 val* var_tidnode8 /* var tidnode8: nullable Object */;
5355 short int var15 /* : Bool */;
5356 int cltype16;
5357 int idtype17;
5358 val* var18 /* : AQid */;
5359 val* var_pqidnode3 /* var pqidnode3: nullable AQid */;
5360 val* var_pexprsnode9 /* var pexprsnode9: nullable Object */;
5361 short int var19 /* : Bool */;
5362 int cltype20;
5363 int idtype21;
5364 val* var22 /* : ACallExpr */;
5365 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
5366 long var23 /* : Int */;
5367 long var24 /* : Int */;
5368 var_p = p0;
5369 var_node_list = ((val*)NULL);
5370 {
5371 var = nitc___nitc__Parser___pop(var_p);
5372 }
5373 var_nodearraylist5 = var;
5374 {
5375 var1 = nitc___nitc__Parser___pop(var_p);
5376 }
5377 var_nodearraylist4 = var1;
5378 {
5379 var2 = nitc___nitc__Parser___pop(var_p);
5380 }
5381 var_nodearraylist3 = var2;
5382 {
5383 var3 = nitc___nitc__Parser___pop(var_p);
5384 }
5385 var_nodearraylist2 = var3;
5386 {
5387 var4 = nitc___nitc__Parser___pop(var_p);
5388 }
5389 var_nodearraylist1 = var4;
5390 var_pexprnode2 = var_nodearraylist1;
5391 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
5392 cltype = type_nullable__nitc__AExpr.color;
5393 idtype = type_nullable__nitc__AExpr.id;
5394 if(var_pexprnode2 == NULL) {
5395 var5 = 1;
5396 } else {
5397 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
5398 var5 = 0;
5399 } else {
5400 var5 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
5401 }
5402 }
5403 if (unlikely(!var5)) {
5404 if(catchStack.cursor >= 0){
5405 longjmp(catchStack.envs[catchStack.cursor], 1);
5406 }
5407 PRINT_ERROR("Runtime error: %s", "Assert failed");
5408 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12238);
5409 fatal_exit(1);
5410 }
5411 var6 = NEW_core__Array(&type_core__Array__core__Object);
5412 {
5413 core___core__Array___core__kernel__Object__init(var6); /* Direct call array$Array$init on <var6:Array[Object]>*/
5414 }
5415 var_listnode6 = var6;
5416 var_listnode5 = var_nodearraylist2;
5417 /* <var_listnode5:nullable Object> isa Array[Object] */
5418 cltype8 = type_core__Array__core__Object.color;
5419 idtype9 = type_core__Array__core__Object.id;
5420 if(var_listnode5 == NULL) {
5421 var7 = 0;
5422 } else {
5423 if(cltype8 >= (((long)var_listnode5&3)?type_info[((long)var_listnode5&3)]:var_listnode5->type)->table_size) {
5424 var7 = 0;
5425 } else {
5426 var7 = (((long)var_listnode5&3)?type_info[((long)var_listnode5&3)]:var_listnode5->type)->type_table[cltype8] == idtype9;
5427 }
5428 }
5429 if (unlikely(!var7)) {
5430 if(catchStack.cursor >= 0){
5431 longjmp(catchStack.envs[catchStack.cursor], 1);
5432 }
5433 PRINT_ERROR("Runtime error: %s", "Assert failed");
5434 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12241);
5435 fatal_exit(1);
5436 }
5437 {
5438 var10 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode6, var_listnode5);
5439 }
5440 var_listnode6 = var10;
5441 var_tclassidnode7 = var_nodearraylist3;
5442 /* <var_tclassidnode7:nullable Object> isa nullable TClassid */
5443 cltype12 = type_nullable__nitc__TClassid.color;
5444 idtype13 = type_nullable__nitc__TClassid.id;
5445 if(var_tclassidnode7 == NULL) {
5446 var11 = 1;
5447 } else {
5448 if(cltype12 >= (((long)var_tclassidnode7&3)?type_info[((long)var_tclassidnode7&3)]:var_tclassidnode7->type)->table_size) {
5449 var11 = 0;
5450 } else {
5451 var11 = (((long)var_tclassidnode7&3)?type_info[((long)var_tclassidnode7&3)]:var_tclassidnode7->type)->type_table[cltype12] == idtype13;
5452 }
5453 }
5454 if (unlikely(!var11)) {
5455 if(catchStack.cursor >= 0){
5456 longjmp(catchStack.envs[catchStack.cursor], 1);
5457 }
5458 PRINT_ERROR("Runtime error: %s", "Assert failed");
5459 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12244);
5460 fatal_exit(1);
5461 }
5462 var14 = NEW_nitc__AQualified(&type_nitc__AQualified);
5463 {
5464 nitc__parser_prod___AQualified___init_aqualified(var14, var_listnode6, var_tclassidnode7); /* Direct call parser_prod$AQualified$init_aqualified on <var14:AQualified>*/
5465 }
5466 var_pqualifiednode4 = var14;
5467 var_tidnode8 = var_nodearraylist4;
5468 /* <var_tidnode8:nullable Object> isa nullable TId */
5469 cltype16 = type_nullable__nitc__TId.color;
5470 idtype17 = type_nullable__nitc__TId.id;
5471 if(var_tidnode8 == NULL) {
5472 var15 = 1;
5473 } else {
5474 if(cltype16 >= (((long)var_tidnode8&3)?type_info[((long)var_tidnode8&3)]:var_tidnode8->type)->table_size) {
5475 var15 = 0;
5476 } else {
5477 var15 = (((long)var_tidnode8&3)?type_info[((long)var_tidnode8&3)]:var_tidnode8->type)->type_table[cltype16] == idtype17;
5478 }
5479 }
5480 if (unlikely(!var15)) {
5481 if(catchStack.cursor >= 0){
5482 longjmp(catchStack.envs[catchStack.cursor], 1);
5483 }
5484 PRINT_ERROR("Runtime error: %s", "Assert failed");
5485 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12250);
5486 fatal_exit(1);
5487 }
5488 var18 = NEW_nitc__AQid(&type_nitc__AQid);
5489 {
5490 nitc__parser_prod___AQid___init_aqid(var18, var_pqualifiednode4, var_tidnode8); /* Direct call parser_prod$AQid$init_aqid on <var18:AQid>*/
5491 }
5492 var_pqidnode3 = var18;
5493 var_pexprsnode9 = var_nodearraylist5;
5494 /* <var_pexprsnode9:nullable Object> isa nullable AExprs */
5495 cltype20 = type_nullable__nitc__AExprs.color;
5496 idtype21 = type_nullable__nitc__AExprs.id;
5497 if(var_pexprsnode9 == NULL) {
5498 var19 = 1;
5499 } else {
5500 if(cltype20 >= (((long)var_pexprsnode9&3)?type_info[((long)var_pexprsnode9&3)]:var_pexprsnode9->type)->table_size) {
5501 var19 = 0;
5502 } else {
5503 var19 = (((long)var_pexprsnode9&3)?type_info[((long)var_pexprsnode9&3)]:var_pexprsnode9->type)->type_table[cltype20] == idtype21;
5504 }
5505 }
5506 if (unlikely(!var19)) {
5507 if(catchStack.cursor >= 0){
5508 longjmp(catchStack.envs[catchStack.cursor], 1);
5509 }
5510 PRINT_ERROR("Runtime error: %s", "Assert failed");
5511 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12256);
5512 fatal_exit(1);
5513 }
5514 var22 = NEW_nitc__ACallExpr(&type_nitc__ACallExpr);
5515 {
5516 nitc__parser_prod___ACallExpr___init_acallexpr(var22, var_pexprnode2, var_pqidnode3, var_pexprsnode9); /* Direct call parser_prod$ACallExpr$init_acallexpr on <var22:ACallExpr>*/
5517 }
5518 var_pexprnode1 = var22;
5519 var_node_list = var_pexprnode1;
5520 var23 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction863> */
5521 {
5522 var24 = nitc___nitc__Parser___go_to(var_p, var23);
5523 }
5524 {
5525 nitc___nitc__Parser___push(var_p, var24, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
5526 }
5527 RET_LABEL:;
5528 }
5529 /* method parser$ReduceAction864$action for (self: ReduceAction864, Parser) */
5530 void nitc__parser___nitc__parser__ReduceAction864___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
5531 val* var_p /* var p: Parser */;
5532 val* var_node_list /* var node_list: nullable Object */;
5533 val* var /* : nullable Object */;
5534 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5535 val* var1 /* : nullable Object */;
5536 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5537 val* var2 /* : nullable Object */;
5538 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5539 val* var3 /* : nullable Object */;
5540 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5541 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
5542 short int var4 /* : Bool */;
5543 int cltype;
5544 int idtype;
5545 val* var5 /* : Array[Object] */;
5546 val* var_listnode6 /* var listnode6: Array[Object] */;
5547 val* var_listnode5 /* var listnode5: nullable Object */;
5548 short int var6 /* : Bool */;
5549 int cltype7;
5550 int idtype8;
5551 val* var9 /* : Array[Object] */;
5552 val* var_tclassidnode7 /* var tclassidnode7: nullable Object */;
5553 short int var10 /* : Bool */;
5554 int cltype11;
5555 int idtype12;
5556 val* var13 /* : AQualified */;
5557 val* var_pqualifiednode4 /* var pqualifiednode4: nullable AQualified */;
5558 val* var_tidnode8 /* var tidnode8: nullable Object */;
5559 short int var14 /* : Bool */;
5560 int cltype15;
5561 int idtype16;
5562 val* var17 /* : AQid */;
5563 val* var_pqidnode3 /* var pqidnode3: nullable AQid */;
5564 val* var18 /* : Array[Object] */;
5565 val* var_listnode10 /* var listnode10: Array[Object] */;
5566 val* var19 /* : AListExprs */;
5567 val* var_pexprsnode9 /* var pexprsnode9: nullable AListExprs */;
5568 val* var20 /* : ACallExpr */;
5569 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
5570 long var21 /* : Int */;
5571 long var22 /* : Int */;
5572 var_p = p0;
5573 var_node_list = ((val*)NULL);
5574 {
5575 var = nitc___nitc__Parser___pop(var_p);
5576 }
5577 var_nodearraylist4 = var;
5578 {
5579 var1 = nitc___nitc__Parser___pop(var_p);
5580 }
5581 var_nodearraylist3 = var1;
5582 {
5583 var2 = nitc___nitc__Parser___pop(var_p);
5584 }
5585 var_nodearraylist2 = var2;
5586 {
5587 var3 = nitc___nitc__Parser___pop(var_p);
5588 }
5589 var_nodearraylist1 = var3;
5590 var_pexprnode2 = var_nodearraylist1;
5591 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
5592 cltype = type_nullable__nitc__AExpr.color;
5593 idtype = type_nullable__nitc__AExpr.id;
5594 if(var_pexprnode2 == NULL) {
5595 var4 = 1;
5596 } else {
5597 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
5598 var4 = 0;
5599 } else {
5600 var4 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
5601 }
5602 }
5603 if (unlikely(!var4)) {
5604 if(catchStack.cursor >= 0){
5605 longjmp(catchStack.envs[catchStack.cursor], 1);
5606 }
5607 PRINT_ERROR("Runtime error: %s", "Assert failed");
5608 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12276);
5609 fatal_exit(1);
5610 }
5611 var5 = NEW_core__Array(&type_core__Array__core__Object);
5612 {
5613 core___core__Array___core__kernel__Object__init(var5); /* Direct call array$Array$init on <var5:Array[Object]>*/
5614 }
5615 var_listnode6 = var5;
5616 var_listnode5 = var_nodearraylist2;
5617 /* <var_listnode5:nullable Object> isa Array[Object] */
5618 cltype7 = type_core__Array__core__Object.color;
5619 idtype8 = type_core__Array__core__Object.id;
5620 if(var_listnode5 == NULL) {
5621 var6 = 0;
5622 } else {
5623 if(cltype7 >= (((long)var_listnode5&3)?type_info[((long)var_listnode5&3)]:var_listnode5->type)->table_size) {
5624 var6 = 0;
5625 } else {
5626 var6 = (((long)var_listnode5&3)?type_info[((long)var_listnode5&3)]:var_listnode5->type)->type_table[cltype7] == idtype8;
5627 }
5628 }
5629 if (unlikely(!var6)) {
5630 if(catchStack.cursor >= 0){
5631 longjmp(catchStack.envs[catchStack.cursor], 1);
5632 }
5633 PRINT_ERROR("Runtime error: %s", "Assert failed");
5634 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12279);
5635 fatal_exit(1);
5636 }
5637 {
5638 var9 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode6, var_listnode5);
5639 }
5640 var_listnode6 = var9;
5641 var_tclassidnode7 = var_nodearraylist3;
5642 /* <var_tclassidnode7:nullable Object> isa nullable TClassid */
5643 cltype11 = type_nullable__nitc__TClassid.color;
5644 idtype12 = type_nullable__nitc__TClassid.id;
5645 if(var_tclassidnode7 == NULL) {
5646 var10 = 1;
5647 } else {
5648 if(cltype11 >= (((long)var_tclassidnode7&3)?type_info[((long)var_tclassidnode7&3)]:var_tclassidnode7->type)->table_size) {
5649 var10 = 0;
5650 } else {
5651 var10 = (((long)var_tclassidnode7&3)?type_info[((long)var_tclassidnode7&3)]:var_tclassidnode7->type)->type_table[cltype11] == idtype12;
5652 }
5653 }
5654 if (unlikely(!var10)) {
5655 if(catchStack.cursor >= 0){
5656 longjmp(catchStack.envs[catchStack.cursor], 1);
5657 }
5658 PRINT_ERROR("Runtime error: %s", "Assert failed");
5659 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12282);
5660 fatal_exit(1);
5661 }
5662 var13 = NEW_nitc__AQualified(&type_nitc__AQualified);
5663 {
5664 nitc__parser_prod___AQualified___init_aqualified(var13, var_listnode6, var_tclassidnode7); /* Direct call parser_prod$AQualified$init_aqualified on <var13:AQualified>*/
5665 }
5666 var_pqualifiednode4 = var13;
5667 var_tidnode8 = var_nodearraylist4;
5668 /* <var_tidnode8:nullable Object> isa nullable TId */
5669 cltype15 = type_nullable__nitc__TId.color;
5670 idtype16 = type_nullable__nitc__TId.id;
5671 if(var_tidnode8 == NULL) {
5672 var14 = 1;
5673 } else {
5674 if(cltype15 >= (((long)var_tidnode8&3)?type_info[((long)var_tidnode8&3)]:var_tidnode8->type)->table_size) {
5675 var14 = 0;
5676 } else {
5677 var14 = (((long)var_tidnode8&3)?type_info[((long)var_tidnode8&3)]:var_tidnode8->type)->type_table[cltype15] == idtype16;
5678 }
5679 }
5680 if (unlikely(!var14)) {
5681 if(catchStack.cursor >= 0){
5682 longjmp(catchStack.envs[catchStack.cursor], 1);
5683 }
5684 PRINT_ERROR("Runtime error: %s", "Assert failed");
5685 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12288);
5686 fatal_exit(1);
5687 }
5688 var17 = NEW_nitc__AQid(&type_nitc__AQid);
5689 {
5690 nitc__parser_prod___AQid___init_aqid(var17, var_pqualifiednode4, var_tidnode8); /* Direct call parser_prod$AQid$init_aqid on <var17:AQid>*/
5691 }
5692 var_pqidnode3 = var17;
5693 var18 = NEW_core__Array(&type_core__Array__core__Object);
5694 {
5695 core___core__Array___core__kernel__Object__init(var18); /* Direct call array$Array$init on <var18:Array[Object]>*/
5696 }
5697 var_listnode10 = var18;
5698 var19 = NEW_nitc__AListExprs(&type_nitc__AListExprs);
5699 {
5700 nitc__parser_prod___AListExprs___init_alistexprs(var19, var_listnode10); /* Direct call parser_prod$AListExprs$init_alistexprs on <var19:AListExprs>*/
5701 }
5702 var_pexprsnode9 = var19;
5703 var20 = NEW_nitc__ACallExpr(&type_nitc__ACallExpr);
5704 {
5705 nitc__parser_prod___ACallExpr___init_acallexpr(var20, var_pexprnode2, var_pqidnode3, var_pexprsnode9); /* Direct call parser_prod$ACallExpr$init_acallexpr on <var20:ACallExpr>*/
5706 }
5707 var_pexprnode1 = var20;
5708 var_node_list = var_pexprnode1;
5709 var21 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction864> */
5710 {
5711 var22 = nitc___nitc__Parser___go_to(var_p, var21);
5712 }
5713 {
5714 nitc___nitc__Parser___push(var_p, var22, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
5715 }
5716 RET_LABEL:;
5717 }
5718 /* method parser$ReduceAction865$action for (self: ReduceAction865, Parser) */
5719 void nitc__parser___nitc__parser__ReduceAction865___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
5720 val* var_p /* var p: Parser */;
5721 val* var_node_list /* var node_list: nullable Object */;
5722 val* var /* : nullable Object */;
5723 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5724 val* var1 /* : nullable Object */;
5725 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5726 val* var2 /* : nullable Object */;
5727 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5728 val* var3 /* : nullable Object */;
5729 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5730 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
5731 short int var4 /* : Bool */;
5732 int cltype;
5733 int idtype;
5734 val* var5 /* : Array[Object] */;
5735 val* var_listnode6 /* var listnode6: Array[Object] */;
5736 val* var_listnode5 /* var listnode5: nullable Object */;
5737 short int var6 /* : Bool */;
5738 int cltype7;
5739 int idtype8;
5740 val* var9 /* : Array[Object] */;
5741 val* var10 /* : AQualified */;
5742 val* var_pqualifiednode4 /* var pqualifiednode4: nullable AQualified */;
5743 val* var_tidnode8 /* var tidnode8: nullable Object */;
5744 short int var11 /* : Bool */;
5745 int cltype12;
5746 int idtype13;
5747 val* var14 /* : AQid */;
5748 val* var_pqidnode3 /* var pqidnode3: nullable AQid */;
5749 val* var_pexprsnode9 /* var pexprsnode9: nullable Object */;
5750 short int var15 /* : Bool */;
5751 int cltype16;
5752 int idtype17;
5753 val* var18 /* : ACallExpr */;
5754 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
5755 long var19 /* : Int */;
5756 long var20 /* : Int */;
5757 var_p = p0;
5758 var_node_list = ((val*)NULL);
5759 {
5760 var = nitc___nitc__Parser___pop(var_p);
5761 }
5762 var_nodearraylist4 = var;
5763 {
5764 var1 = nitc___nitc__Parser___pop(var_p);
5765 }
5766 var_nodearraylist3 = var1;
5767 {
5768 var2 = nitc___nitc__Parser___pop(var_p);
5769 }
5770 var_nodearraylist2 = var2;
5771 {
5772 var3 = nitc___nitc__Parser___pop(var_p);
5773 }
5774 var_nodearraylist1 = var3;
5775 var_pexprnode2 = var_nodearraylist1;
5776 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
5777 cltype = type_nullable__nitc__AExpr.color;
5778 idtype = type_nullable__nitc__AExpr.id;
5779 if(var_pexprnode2 == NULL) {
5780 var4 = 1;
5781 } else {
5782 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
5783 var4 = 0;
5784 } else {
5785 var4 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
5786 }
5787 }
5788 if (unlikely(!var4)) {
5789 if(catchStack.cursor >= 0){
5790 longjmp(catchStack.envs[catchStack.cursor], 1);
5791 }
5792 PRINT_ERROR("Runtime error: %s", "Assert failed");
5793 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12316);
5794 fatal_exit(1);
5795 }
5796 var5 = NEW_core__Array(&type_core__Array__core__Object);
5797 {
5798 core___core__Array___core__kernel__Object__init(var5); /* Direct call array$Array$init on <var5:Array[Object]>*/
5799 }
5800 var_listnode6 = var5;
5801 var_listnode5 = var_nodearraylist2;
5802 /* <var_listnode5:nullable Object> isa Array[Object] */
5803 cltype7 = type_core__Array__core__Object.color;
5804 idtype8 = type_core__Array__core__Object.id;
5805 if(var_listnode5 == NULL) {
5806 var6 = 0;
5807 } else {
5808 if(cltype7 >= (((long)var_listnode5&3)?type_info[((long)var_listnode5&3)]:var_listnode5->type)->table_size) {
5809 var6 = 0;
5810 } else {
5811 var6 = (((long)var_listnode5&3)?type_info[((long)var_listnode5&3)]:var_listnode5->type)->type_table[cltype7] == idtype8;
5812 }
5813 }
5814 if (unlikely(!var6)) {
5815 if(catchStack.cursor >= 0){
5816 longjmp(catchStack.envs[catchStack.cursor], 1);
5817 }
5818 PRINT_ERROR("Runtime error: %s", "Assert failed");
5819 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12319);
5820 fatal_exit(1);
5821 }
5822 {
5823 var9 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode6, var_listnode5);
5824 }
5825 var_listnode6 = var9;
5826 var10 = NEW_nitc__AQualified(&type_nitc__AQualified);
5827 {
5828 nitc__parser_prod___AQualified___init_aqualified(var10, var_listnode6, ((val*)NULL)); /* Direct call parser_prod$AQualified$init_aqualified on <var10:AQualified>*/
5829 }
5830 var_pqualifiednode4 = var10;
5831 var_tidnode8 = var_nodearraylist3;
5832 /* <var_tidnode8:nullable Object> isa nullable TId */
5833 cltype12 = type_nullable__nitc__TId.color;
5834 idtype13 = type_nullable__nitc__TId.id;
5835 if(var_tidnode8 == NULL) {
5836 var11 = 1;
5837 } else {
5838 if(cltype12 >= (((long)var_tidnode8&3)?type_info[((long)var_tidnode8&3)]:var_tidnode8->type)->table_size) {
5839 var11 = 0;
5840 } else {
5841 var11 = (((long)var_tidnode8&3)?type_info[((long)var_tidnode8&3)]:var_tidnode8->type)->type_table[cltype12] == idtype13;
5842 }
5843 }
5844 if (unlikely(!var11)) {
5845 if(catchStack.cursor >= 0){
5846 longjmp(catchStack.envs[catchStack.cursor], 1);
5847 }
5848 PRINT_ERROR("Runtime error: %s", "Assert failed");
5849 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12326);
5850 fatal_exit(1);
5851 }
5852 var14 = NEW_nitc__AQid(&type_nitc__AQid);
5853 {
5854 nitc__parser_prod___AQid___init_aqid(var14, var_pqualifiednode4, var_tidnode8); /* Direct call parser_prod$AQid$init_aqid on <var14:AQid>*/
5855 }
5856 var_pqidnode3 = var14;
5857 var_pexprsnode9 = var_nodearraylist4;
5858 /* <var_pexprsnode9:nullable Object> isa nullable AExprs */
5859 cltype16 = type_nullable__nitc__AExprs.color;
5860 idtype17 = type_nullable__nitc__AExprs.id;
5861 if(var_pexprsnode9 == NULL) {
5862 var15 = 1;
5863 } else {
5864 if(cltype16 >= (((long)var_pexprsnode9&3)?type_info[((long)var_pexprsnode9&3)]:var_pexprsnode9->type)->table_size) {
5865 var15 = 0;
5866 } else {
5867 var15 = (((long)var_pexprsnode9&3)?type_info[((long)var_pexprsnode9&3)]:var_pexprsnode9->type)->type_table[cltype16] == idtype17;
5868 }
5869 }
5870 if (unlikely(!var15)) {
5871 if(catchStack.cursor >= 0){
5872 longjmp(catchStack.envs[catchStack.cursor], 1);
5873 }
5874 PRINT_ERROR("Runtime error: %s", "Assert failed");
5875 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12332);
5876 fatal_exit(1);
5877 }
5878 var18 = NEW_nitc__ACallExpr(&type_nitc__ACallExpr);
5879 {
5880 nitc__parser_prod___ACallExpr___init_acallexpr(var18, var_pexprnode2, var_pqidnode3, var_pexprsnode9); /* Direct call parser_prod$ACallExpr$init_acallexpr on <var18:ACallExpr>*/
5881 }
5882 var_pexprnode1 = var18;
5883 var_node_list = var_pexprnode1;
5884 var19 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction865> */
5885 {
5886 var20 = nitc___nitc__Parser___go_to(var_p, var19);
5887 }
5888 {
5889 nitc___nitc__Parser___push(var_p, var20, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
5890 }
5891 RET_LABEL:;
5892 }
5893 /* method parser$ReduceAction866$action for (self: ReduceAction866, Parser) */
5894 void nitc__parser___nitc__parser__ReduceAction866___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
5895 val* var_p /* var p: Parser */;
5896 val* var_node_list /* var node_list: nullable Object */;
5897 val* var /* : nullable Object */;
5898 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5899 val* var1 /* : nullable Object */;
5900 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5901 val* var2 /* : nullable Object */;
5902 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5903 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
5904 short int var3 /* : Bool */;
5905 int cltype;
5906 int idtype;
5907 val* var4 /* : Array[Object] */;
5908 val* var_listnode6 /* var listnode6: Array[Object] */;
5909 val* var_listnode5 /* var listnode5: nullable Object */;
5910 short int var5 /* : Bool */;
5911 int cltype6;
5912 int idtype7;
5913 val* var8 /* : Array[Object] */;
5914 val* var9 /* : AQualified */;
5915 val* var_pqualifiednode4 /* var pqualifiednode4: nullable AQualified */;
5916 val* var_tidnode8 /* var tidnode8: nullable Object */;
5917 short int var10 /* : Bool */;
5918 int cltype11;
5919 int idtype12;
5920 val* var13 /* : AQid */;
5921 val* var_pqidnode3 /* var pqidnode3: nullable AQid */;
5922 val* var14 /* : Array[Object] */;
5923 val* var_listnode10 /* var listnode10: Array[Object] */;
5924 val* var15 /* : AListExprs */;
5925 val* var_pexprsnode9 /* var pexprsnode9: nullable AListExprs */;
5926 val* var16 /* : ACallExpr */;
5927 val* var_pexprnode1 /* var pexprnode1: nullable ACallExpr */;
5928 long var17 /* : Int */;
5929 long var18 /* : Int */;
5930 var_p = p0;
5931 var_node_list = ((val*)NULL);
5932 {
5933 var = nitc___nitc__Parser___pop(var_p);
5934 }
5935 var_nodearraylist3 = var;
5936 {
5937 var1 = nitc___nitc__Parser___pop(var_p);
5938 }
5939 var_nodearraylist2 = var1;
5940 {
5941 var2 = nitc___nitc__Parser___pop(var_p);
5942 }
5943 var_nodearraylist1 = var2;
5944 var_pexprnode2 = var_nodearraylist1;
5945 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
5946 cltype = type_nullable__nitc__AExpr.color;
5947 idtype = type_nullable__nitc__AExpr.id;
5948 if(var_pexprnode2 == NULL) {
5949 var3 = 1;
5950 } else {
5951 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
5952 var3 = 0;
5953 } else {
5954 var3 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
5955 }
5956 }
5957 if (unlikely(!var3)) {
5958 if(catchStack.cursor >= 0){
5959 longjmp(catchStack.envs[catchStack.cursor], 1);
5960 }
5961 PRINT_ERROR("Runtime error: %s", "Assert failed");
5962 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12351);
5963 fatal_exit(1);
5964 }
5965 var4 = NEW_core__Array(&type_core__Array__core__Object);
5966 {
5967 core___core__Array___core__kernel__Object__init(var4); /* Direct call array$Array$init on <var4:Array[Object]>*/
5968 }
5969 var_listnode6 = var4;
5970 var_listnode5 = var_nodearraylist2;
5971 /* <var_listnode5:nullable Object> isa Array[Object] */
5972 cltype6 = type_core__Array__core__Object.color;
5973 idtype7 = type_core__Array__core__Object.id;
5974 if(var_listnode5 == NULL) {
5975 var5 = 0;
5976 } else {
5977 if(cltype6 >= (((long)var_listnode5&3)?type_info[((long)var_listnode5&3)]:var_listnode5->type)->table_size) {
5978 var5 = 0;
5979 } else {
5980 var5 = (((long)var_listnode5&3)?type_info[((long)var_listnode5&3)]:var_listnode5->type)->type_table[cltype6] == idtype7;
5981 }
5982 }
5983 if (unlikely(!var5)) {
5984 if(catchStack.cursor >= 0){
5985 longjmp(catchStack.envs[catchStack.cursor], 1);
5986 }
5987 PRINT_ERROR("Runtime error: %s", "Assert failed");
5988 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12354);
5989 fatal_exit(1);
5990 }
5991 {
5992 var8 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode6, var_listnode5);
5993 }
5994 var_listnode6 = var8;
5995 var9 = NEW_nitc__AQualified(&type_nitc__AQualified);
5996 {
5997 nitc__parser_prod___AQualified___init_aqualified(var9, var_listnode6, ((val*)NULL)); /* Direct call parser_prod$AQualified$init_aqualified on <var9:AQualified>*/
5998 }
5999 var_pqualifiednode4 = var9;
6000 var_tidnode8 = var_nodearraylist3;
6001 /* <var_tidnode8:nullable Object> isa nullable TId */
6002 cltype11 = type_nullable__nitc__TId.color;
6003 idtype12 = type_nullable__nitc__TId.id;
6004 if(var_tidnode8 == NULL) {
6005 var10 = 1;
6006 } else {
6007 if(cltype11 >= (((long)var_tidnode8&3)?type_info[((long)var_tidnode8&3)]:var_tidnode8->type)->table_size) {
6008 var10 = 0;
6009 } else {
6010 var10 = (((long)var_tidnode8&3)?type_info[((long)var_tidnode8&3)]:var_tidnode8->type)->type_table[cltype11] == idtype12;
6011 }
6012 }
6013 if (unlikely(!var10)) {
6014 if(catchStack.cursor >= 0){
6015 longjmp(catchStack.envs[catchStack.cursor], 1);
6016 }
6017 PRINT_ERROR("Runtime error: %s", "Assert failed");
6018 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12361);
6019 fatal_exit(1);
6020 }
6021 var13 = NEW_nitc__AQid(&type_nitc__AQid);
6022 {
6023 nitc__parser_prod___AQid___init_aqid(var13, var_pqualifiednode4, var_tidnode8); /* Direct call parser_prod$AQid$init_aqid on <var13:AQid>*/
6024 }
6025 var_pqidnode3 = var13;
6026 var14 = NEW_core__Array(&type_core__Array__core__Object);
6027 {
6028 core___core__Array___core__kernel__Object__init(var14); /* Direct call array$Array$init on <var14:Array[Object]>*/
6029 }
6030 var_listnode10 = var14;
6031 var15 = NEW_nitc__AListExprs(&type_nitc__AListExprs);
6032 {
6033 nitc__parser_prod___AListExprs___init_alistexprs(var15, var_listnode10); /* Direct call parser_prod$AListExprs$init_alistexprs on <var15:AListExprs>*/
6034 }
6035 var_pexprsnode9 = var15;
6036 var16 = NEW_nitc__ACallExpr(&type_nitc__ACallExpr);
6037 {
6038 nitc__parser_prod___ACallExpr___init_acallexpr(var16, var_pexprnode2, var_pqidnode3, var_pexprsnode9); /* Direct call parser_prod$ACallExpr$init_acallexpr on <var16:ACallExpr>*/
6039 }
6040 var_pexprnode1 = var16;
6041 var_node_list = var_pexprnode1;
6042 var17 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction866> */
6043 {
6044 var18 = nitc___nitc__Parser___go_to(var_p, var17);
6045 }
6046 {
6047 nitc___nitc__Parser___push(var_p, var18, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
6048 }
6049 RET_LABEL:;
6050 }
6051 /* method parser$ReduceAction869$action for (self: ReduceAction869, Parser) */
6052 void nitc__parser___nitc__parser__ReduceAction869___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
6053 val* var_p /* var p: Parser */;
6054 val* var_node_list /* var node_list: nullable Object */;
6055 val* var /* : nullable Object */;
6056 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6057 val* var1 /* : nullable Object */;
6058 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6059 val* var2 /* : nullable Object */;
6060 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6061 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
6062 short int var3 /* : Bool */;
6063 int cltype;
6064 int idtype;
6065 val* var_tkwinitnode3 /* var tkwinitnode3: nullable Object */;
6066 short int var4 /* : Bool */;
6067 int cltype5;
6068 int idtype6;
6069 val* var_pexprsnode4 /* var pexprsnode4: nullable Object */;
6070 short int var7 /* : Bool */;
6071 int cltype8;
6072 int idtype9;
6073 val* var10 /* : AInitExpr */;
6074 val* var_pexprnode1 /* var pexprnode1: nullable AInitExpr */;
6075 long var11 /* : Int */;
6076 long var12 /* : Int */;
6077 var_p = p0;
6078 var_node_list = ((val*)NULL);
6079 {
6080 var = nitc___nitc__Parser___pop(var_p);
6081 }
6082 var_nodearraylist3 = var;
6083 {
6084 var1 = nitc___nitc__Parser___pop(var_p);
6085 }
6086 var_nodearraylist2 = var1;
6087 {
6088 var2 = nitc___nitc__Parser___pop(var_p);
6089 }
6090 var_nodearraylist1 = var2;
6091 var_pexprnode2 = var_nodearraylist1;
6092 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
6093 cltype = type_nullable__nitc__AExpr.color;
6094 idtype = type_nullable__nitc__AExpr.id;
6095 if(var_pexprnode2 == NULL) {
6096 var3 = 1;
6097 } else {
6098 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
6099 var3 = 0;
6100 } else {
6101 var3 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
6102 }
6103 }
6104 if (unlikely(!var3)) {
6105 if(catchStack.cursor >= 0){
6106 longjmp(catchStack.envs[catchStack.cursor], 1);
6107 }
6108 PRINT_ERROR("Runtime error: %s", "Assert failed");
6109 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12388);
6110 fatal_exit(1);
6111 }
6112 var_tkwinitnode3 = var_nodearraylist2;
6113 /* <var_tkwinitnode3:nullable Object> isa nullable TKwinit */
6114 cltype5 = type_nullable__nitc__TKwinit.color;
6115 idtype6 = type_nullable__nitc__TKwinit.id;
6116 if(var_tkwinitnode3 == NULL) {
6117 var4 = 1;
6118 } else {
6119 if(cltype5 >= (((long)var_tkwinitnode3&3)?type_info[((long)var_tkwinitnode3&3)]:var_tkwinitnode3->type)->table_size) {
6120 var4 = 0;
6121 } else {
6122 var4 = (((long)var_tkwinitnode3&3)?type_info[((long)var_tkwinitnode3&3)]:var_tkwinitnode3->type)->type_table[cltype5] == idtype6;
6123 }
6124 }
6125 if (unlikely(!var4)) {
6126 if(catchStack.cursor >= 0){
6127 longjmp(catchStack.envs[catchStack.cursor], 1);
6128 }
6129 PRINT_ERROR("Runtime error: %s", "Assert failed");
6130 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12390);
6131 fatal_exit(1);
6132 }
6133 var_pexprsnode4 = var_nodearraylist3;
6134 /* <var_pexprsnode4:nullable Object> isa nullable AExprs */
6135 cltype8 = type_nullable__nitc__AExprs.color;
6136 idtype9 = type_nullable__nitc__AExprs.id;
6137 if(var_pexprsnode4 == NULL) {
6138 var7 = 1;
6139 } else {
6140 if(cltype8 >= (((long)var_pexprsnode4&3)?type_info[((long)var_pexprsnode4&3)]:var_pexprsnode4->type)->table_size) {
6141 var7 = 0;
6142 } else {
6143 var7 = (((long)var_pexprsnode4&3)?type_info[((long)var_pexprsnode4&3)]:var_pexprsnode4->type)->type_table[cltype8] == idtype9;
6144 }
6145 }
6146 if (unlikely(!var7)) {
6147 if(catchStack.cursor >= 0){
6148 longjmp(catchStack.envs[catchStack.cursor], 1);
6149 }
6150 PRINT_ERROR("Runtime error: %s", "Assert failed");
6151 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12392);
6152 fatal_exit(1);
6153 }
6154 var10 = NEW_nitc__AInitExpr(&type_nitc__AInitExpr);
6155 {
6156 nitc__parser_prod___AInitExpr___init_ainitexpr(var10, var_pexprnode2, var_tkwinitnode3, var_pexprsnode4); /* Direct call parser_prod$AInitExpr$init_ainitexpr on <var10:AInitExpr>*/
6157 }
6158 var_pexprnode1 = var10;
6159 var_node_list = var_pexprnode1;
6160 var11 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction869> */
6161 {
6162 var12 = nitc___nitc__Parser___go_to(var_p, var11);
6163 }
6164 {
6165 nitc___nitc__Parser___push(var_p, var12, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
6166 }
6167 RET_LABEL:;
6168 }
6169 /* method parser$ReduceAction870$action for (self: ReduceAction870, Parser) */
6170 void nitc__parser___nitc__parser__ReduceAction870___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
6171 val* var_p /* var p: Parser */;
6172 val* var_node_list /* var node_list: nullable Object */;
6173 val* var /* : nullable Object */;
6174 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6175 val* var1 /* : nullable Object */;
6176 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6177 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
6178 short int var2 /* : Bool */;
6179 int cltype;
6180 int idtype;
6181 val* var_tkwinitnode3 /* var tkwinitnode3: nullable Object */;
6182 short int var3 /* : Bool */;
6183 int cltype4;
6184 int idtype5;
6185 val* var6 /* : Array[Object] */;
6186 val* var_listnode5 /* var listnode5: Array[Object] */;
6187 val* var7 /* : AListExprs */;
6188 val* var_pexprsnode4 /* var pexprsnode4: nullable AListExprs */;
6189 val* var8 /* : AInitExpr */;
6190 val* var_pexprnode1 /* var pexprnode1: nullable AInitExpr */;
6191 long var9 /* : Int */;
6192 long var10 /* : Int */;
6193 var_p = p0;
6194 var_node_list = ((val*)NULL);
6195 {
6196 var = nitc___nitc__Parser___pop(var_p);
6197 }
6198 var_nodearraylist2 = var;
6199 {
6200 var1 = nitc___nitc__Parser___pop(var_p);
6201 }
6202 var_nodearraylist1 = var1;
6203 var_pexprnode2 = var_nodearraylist1;
6204 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
6205 cltype = type_nullable__nitc__AExpr.color;
6206 idtype = type_nullable__nitc__AExpr.id;
6207 if(var_pexprnode2 == NULL) {
6208 var2 = 1;
6209 } else {
6210 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
6211 var2 = 0;
6212 } else {
6213 var2 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
6214 }
6215 }
6216 if (unlikely(!var2)) {
6217 if(catchStack.cursor >= 0){
6218 longjmp(catchStack.envs[catchStack.cursor], 1);
6219 }
6220 PRINT_ERROR("Runtime error: %s", "Assert failed");
6221 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12410);
6222 fatal_exit(1);
6223 }
6224 var_tkwinitnode3 = var_nodearraylist2;
6225 /* <var_tkwinitnode3:nullable Object> isa nullable TKwinit */
6226 cltype4 = type_nullable__nitc__TKwinit.color;
6227 idtype5 = type_nullable__nitc__TKwinit.id;
6228 if(var_tkwinitnode3 == NULL) {
6229 var3 = 1;
6230 } else {
6231 if(cltype4 >= (((long)var_tkwinitnode3&3)?type_info[((long)var_tkwinitnode3&3)]:var_tkwinitnode3->type)->table_size) {
6232 var3 = 0;
6233 } else {
6234 var3 = (((long)var_tkwinitnode3&3)?type_info[((long)var_tkwinitnode3&3)]:var_tkwinitnode3->type)->type_table[cltype4] == idtype5;
6235 }
6236 }
6237 if (unlikely(!var3)) {
6238 if(catchStack.cursor >= 0){
6239 longjmp(catchStack.envs[catchStack.cursor], 1);
6240 }
6241 PRINT_ERROR("Runtime error: %s", "Assert failed");
6242 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12412);
6243 fatal_exit(1);
6244 }
6245 var6 = NEW_core__Array(&type_core__Array__core__Object);
6246 {
6247 core___core__Array___core__kernel__Object__init(var6); /* Direct call array$Array$init on <var6:Array[Object]>*/
6248 }
6249 var_listnode5 = var6;
6250 var7 = NEW_nitc__AListExprs(&type_nitc__AListExprs);
6251 {
6252 nitc__parser_prod___AListExprs___init_alistexprs(var7, var_listnode5); /* Direct call parser_prod$AListExprs$init_alistexprs on <var7:AListExprs>*/
6253 }
6254 var_pexprsnode4 = var7;
6255 var8 = NEW_nitc__AInitExpr(&type_nitc__AInitExpr);
6256 {
6257 nitc__parser_prod___AInitExpr___init_ainitexpr(var8, var_pexprnode2, var_tkwinitnode3, var_pexprsnode4); /* Direct call parser_prod$AInitExpr$init_ainitexpr on <var8:AInitExpr>*/
6258 }
6259 var_pexprnode1 = var8;
6260 var_node_list = var_pexprnode1;
6261 var9 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction870> */
6262 {
6263 var10 = nitc___nitc__Parser___go_to(var_p, var9);
6264 }
6265 {
6266 nitc___nitc__Parser___push(var_p, var10, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
6267 }
6268 RET_LABEL:;
6269 }
6270 /* method parser$ReduceAction894$action for (self: ReduceAction894, Parser) */
6271 void nitc__parser___nitc__parser__ReduceAction894___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
6272 val* var_p /* var p: Parser */;
6273 val* var_node_list /* var node_list: nullable Object */;
6274 val* var /* : nullable Object */;
6275 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6276 val* var1 /* : nullable Object */;
6277 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6278 val* var2 /* : nullable Object */;
6279 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6280 val* var_pexprnode1 /* var pexprnode1: nullable Object */;
6281 long var3 /* : Int */;
6282 long var4 /* : Int */;
6283 var_p = p0;
6284 var_node_list = ((val*)NULL);
6285 {
6286 var = nitc___nitc__Parser___pop(var_p);
6287 }
6288 var_nodearraylist3 = var;
6289 {
6290 var1 = nitc___nitc__Parser___pop(var_p);
6291 }
6292 var_nodearraylist2 = var1;
6293 {
6294 var2 = nitc___nitc__Parser___pop(var_p);
6295 }
6296 var_nodearraylist1 = var2;
6297 var_pexprnode1 = var_nodearraylist1;
6298 var_node_list = var_pexprnode1;
6299 var3 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction894> */
6300 {
6301 var4 = nitc___nitc__Parser___go_to(var_p, var3);
6302 }
6303 {
6304 nitc___nitc__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
6305 }
6306 RET_LABEL:;
6307 }
6308 /* method parser$ReduceAction895$action for (self: ReduceAction895, Parser) */
6309 void nitc__parser___nitc__parser__ReduceAction895___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
6310 val* var_p /* var p: Parser */;
6311 val* var_node_list /* var node_list: nullable Object */;
6312 val* var /* : AImplicitSelfExpr */;
6313 val* var_pexprnode1 /* var pexprnode1: nullable AImplicitSelfExpr */;
6314 long var1 /* : Int */;
6315 long var2 /* : Int */;
6316 var_p = p0;
6317 var_node_list = ((val*)NULL);
6318 var = NEW_nitc__AImplicitSelfExpr(&type_nitc__AImplicitSelfExpr);
6319 {
6320 nitc__parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(var); /* Direct call parser_prod$AImplicitSelfExpr$init_aimplicitselfexpr on <var:AImplicitSelfExpr>*/
6321 }
6322 var_pexprnode1 = var;
6323 var_node_list = var_pexprnode1;
6324 var1 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction895> */
6325 {
6326 var2 = nitc___nitc__Parser___go_to(var_p, var1);
6327 }
6328 {
6329 nitc___nitc__Parser___push(var_p, var2, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
6330 }
6331 RET_LABEL:;
6332 }
6333 /* method parser$ReduceAction1063$action for (self: ReduceAction1063, Parser) */
6334 void nitc__parser___nitc__parser__ReduceAction1063___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
6335 val* var_p /* var p: Parser */;
6336 val* var_node_list /* var node_list: nullable Object */;
6337 val* var /* : nullable Object */;
6338 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6339 val* var1 /* : Array[Object] */;
6340 val* var_listnode2 /* var listnode2: Array[Object] */;
6341 val* var_pimportnode1 /* var pimportnode1: nullable Object */;
6342 short int var2 /* : Bool */;
6343 short int var3 /* : Bool */;
6344 long var4 /* : Int */;
6345 long var5 /* : Int */;
6346 var_p = p0;
6347 var_node_list = ((val*)NULL);
6348 {
6349 var = nitc___nitc__Parser___pop(var_p);
6350 }
6351 var_nodearraylist1 = var;
6352 var1 = NEW_core__Array(&type_core__Array__core__Object);
6353 {
6354 core___core__Array___core__kernel__Object__init(var1); /* Direct call array$Array$init on <var1:Array[Object]>*/
6355 }
6356 var_listnode2 = var1;
6357 var_pimportnode1 = var_nodearraylist1;
6358 if (var_pimportnode1 == NULL) {
6359 var2 = 0; /* is null */
6360 } else {
6361 var2 = 1; /* arg is null and recv is not */
6362 }
6363 if (0) {
6364 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>*/
6365 var2 = var3;
6366 }
6367 if (var2){
6368 {
6369 core___core__Array___core__abstract_collection__SimpleCollection__add(var_listnode2, var_pimportnode1); /* Direct call array$Array$add on <var_listnode2:Array[Object]>*/
6370 }
6371 } else {
6372 }
6373 var_node_list = var_listnode2;
6374 var4 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction1063> */
6375 {
6376 var5 = nitc___nitc__Parser___go_to(var_p, var4);
6377 }
6378 {
6379 nitc___nitc__Parser___push(var_p, var5, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
6380 }
6381 RET_LABEL:;
6382 }
6383 /* method parser$ReduceAction1064$action for (self: ReduceAction1064, Parser) */
6384 void nitc__parser___nitc__parser__ReduceAction1064___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
6385 val* var_p /* var p: Parser */;
6386 val* var_node_list /* var node_list: nullable Object */;
6387 val* var /* : nullable Object */;
6388 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6389 val* var1 /* : nullable Object */;
6390 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6391 val* var2 /* : Array[Object] */;
6392 val* var_listnode3 /* var listnode3: Array[Object] */;
6393 val* var_listnode1 /* var listnode1: nullable Object */;
6394 short int var3 /* : Bool */;
6395 int cltype;
6396 int idtype;
6397 val* var_pimportnode2 /* var pimportnode2: nullable Object */;
6398 val* var4 /* : Array[Object] */;
6399 short int var5 /* : Bool */;
6400 short int var6 /* : Bool */;
6401 long var7 /* : Int */;
6402 long var8 /* : Int */;
6403 var_p = p0;
6404 var_node_list = ((val*)NULL);
6405 {
6406 var = nitc___nitc__Parser___pop(var_p);
6407 }
6408 var_nodearraylist2 = var;
6409 {
6410 var1 = nitc___nitc__Parser___pop(var_p);
6411 }
6412 var_nodearraylist1 = var1;
6413 var2 = NEW_core__Array(&type_core__Array__core__Object);
6414 {
6415 core___core__Array___core__kernel__Object__init(var2); /* Direct call array$Array$init on <var2:Array[Object]>*/
6416 }
6417 var_listnode3 = var2;
6418 var_listnode1 = var_nodearraylist1;
6419 /* <var_listnode1:nullable Object> isa Array[Object] */
6420 cltype = type_core__Array__core__Object.color;
6421 idtype = type_core__Array__core__Object.id;
6422 if(var_listnode1 == NULL) {
6423 var3 = 0;
6424 } else {
6425 if(cltype >= (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->table_size) {
6426 var3 = 0;
6427 } else {
6428 var3 = (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->type_table[cltype] == idtype;
6429 }
6430 }
6431 if (unlikely(!var3)) {
6432 if(catchStack.cursor >= 0){
6433 longjmp(catchStack.envs[catchStack.cursor], 1);
6434 }
6435 PRINT_ERROR("Runtime error: %s", "Assert failed");
6436 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12473);
6437 fatal_exit(1);
6438 }
6439 var_pimportnode2 = var_nodearraylist2;
6440 {
6441 var4 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode1);
6442 }
6443 var_listnode3 = var4;
6444 if (var_pimportnode2 == NULL) {
6445 var5 = 0; /* is null */
6446 } else {
6447 var5 = 1; /* arg is null and recv is not */
6448 }
6449 if (0) {
6450 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>*/
6451 var5 = var6;
6452 }
6453 if (var5){
6454 {
6455 core___core__Array___core__abstract_collection__SimpleCollection__add(var_listnode3, var_pimportnode2); /* Direct call array$Array$add on <var_listnode3:Array[Object]>*/
6456 }
6457 } else {
6458 }
6459 var_node_list = var_listnode3;
6460 var7 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction1064> */
6461 {
6462 var8 = nitc___nitc__Parser___go_to(var_p, var7);
6463 }
6464 {
6465 nitc___nitc__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
6466 }
6467 RET_LABEL:;
6468 }
6469 /* method parser$ReduceAction1065$action for (self: ReduceAction1065, Parser) */
6470 void nitc__parser___nitc__parser__ReduceAction1065___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
6471 val* var_p /* var p: Parser */;
6472 val* var_node_list /* var node_list: nullable Object */;
6473 val* var /* : nullable Object */;
6474 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6475 val* var1 /* : Array[Object] */;
6476 val* var_listnode2 /* var listnode2: Array[Object] */;
6477 val* var_pexterncodeblocknode1 /* var pexterncodeblocknode1: nullable Object */;
6478 short int var2 /* : Bool */;
6479 short int var3 /* : Bool */;
6480 long var4 /* : Int */;
6481 long var5 /* : Int */;
6482 var_p = p0;
6483 var_node_list = ((val*)NULL);
6484 {
6485 var = nitc___nitc__Parser___pop(var_p);
6486 }
6487 var_nodearraylist1 = var;
6488 var1 = NEW_core__Array(&type_core__Array__core__Object);
6489 {
6490 core___core__Array___core__kernel__Object__init(var1); /* Direct call array$Array$init on <var1:Array[Object]>*/
6491 }
6492 var_listnode2 = var1;
6493 var_pexterncodeblocknode1 = var_nodearraylist1;
6494 if (var_pexterncodeblocknode1 == NULL) {
6495 var2 = 0; /* is null */
6496 } else {
6497 var2 = 1; /* arg is null and recv is not */
6498 }
6499 if (0) {
6500 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>*/
6501 var2 = var3;
6502 }
6503 if (var2){
6504 {
6505 core___core__Array___core__abstract_collection__SimpleCollection__add(var_listnode2, var_pexterncodeblocknode1); /* Direct call array$Array$add on <var_listnode2:Array[Object]>*/
6506 }
6507 } else {
6508 }
6509 var_node_list = var_listnode2;
6510 var4 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction1065> */
6511 {
6512 var5 = nitc___nitc__Parser___go_to(var_p, var4);
6513 }
6514 {
6515 nitc___nitc__Parser___push(var_p, var5, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
6516 }
6517 RET_LABEL:;
6518 }
6519 /* method parser$ReduceAction1066$action for (self: ReduceAction1066, Parser) */
6520 void nitc__parser___nitc__parser__ReduceAction1066___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
6521 val* var_p /* var p: Parser */;
6522 val* var_node_list /* var node_list: nullable Object */;
6523 val* var /* : nullable Object */;
6524 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6525 val* var1 /* : nullable Object */;
6526 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6527 val* var2 /* : Array[Object] */;
6528 val* var_listnode3 /* var listnode3: Array[Object] */;
6529 val* var_listnode1 /* var listnode1: nullable Object */;
6530 short int var3 /* : Bool */;
6531 int cltype;
6532 int idtype;
6533 val* var_pexterncodeblocknode2 /* var pexterncodeblocknode2: nullable Object */;
6534 val* var4 /* : Array[Object] */;
6535 short int var5 /* : Bool */;
6536 short int var6 /* : Bool */;
6537 long var7 /* : Int */;
6538 long var8 /* : Int */;
6539 var_p = p0;
6540 var_node_list = ((val*)NULL);
6541 {
6542 var = nitc___nitc__Parser___pop(var_p);
6543 }
6544 var_nodearraylist2 = var;
6545 {
6546 var1 = nitc___nitc__Parser___pop(var_p);
6547 }
6548 var_nodearraylist1 = var1;
6549 var2 = NEW_core__Array(&type_core__Array__core__Object);
6550 {
6551 core___core__Array___core__kernel__Object__init(var2); /* Direct call array$Array$init on <var2:Array[Object]>*/
6552 }
6553 var_listnode3 = var2;
6554 var_listnode1 = var_nodearraylist1;
6555 /* <var_listnode1:nullable Object> isa Array[Object] */
6556 cltype = type_core__Array__core__Object.color;
6557 idtype = type_core__Array__core__Object.id;
6558 if(var_listnode1 == NULL) {
6559 var3 = 0;
6560 } else {
6561 if(cltype >= (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->table_size) {
6562 var3 = 0;
6563 } else {
6564 var3 = (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->type_table[cltype] == idtype;
6565 }
6566 }
6567 if (unlikely(!var3)) {
6568 if(catchStack.cursor >= 0){
6569 longjmp(catchStack.envs[catchStack.cursor], 1);
6570 }
6571 PRINT_ERROR("Runtime error: %s", "Assert failed");
6572 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12507);
6573 fatal_exit(1);
6574 }
6575 var_pexterncodeblocknode2 = var_nodearraylist2;
6576 {
6577 var4 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode1);
6578 }
6579 var_listnode3 = var4;
6580 if (var_pexterncodeblocknode2 == NULL) {
6581 var5 = 0; /* is null */
6582 } else {
6583 var5 = 1; /* arg is null and recv is not */
6584 }
6585 if (0) {
6586 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>*/
6587 var5 = var6;
6588 }
6589 if (var5){
6590 {
6591 core___core__Array___core__abstract_collection__SimpleCollection__add(var_listnode3, var_pexterncodeblocknode2); /* Direct call array$Array$add on <var_listnode3:Array[Object]>*/
6592 }
6593 } else {
6594 }
6595 var_node_list = var_listnode3;
6596 var7 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction1066> */
6597 {
6598 var8 = nitc___nitc__Parser___go_to(var_p, var7);
6599 }
6600 {
6601 nitc___nitc__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
6602 }
6603 RET_LABEL:;
6604 }
6605 /* method parser$ReduceAction1067$action for (self: ReduceAction1067, Parser) */
6606 void nitc__parser___nitc__parser__ReduceAction1067___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
6607 val* var_p /* var p: Parser */;
6608 val* var_node_list /* var node_list: nullable Object */;
6609 val* var /* : nullable Object */;
6610 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6611 val* var1 /* : Array[Object] */;
6612 val* var_listnode2 /* var listnode2: Array[Object] */;
6613 val* var_pclassdefnode1 /* var pclassdefnode1: nullable Object */;
6614 short int var2 /* : Bool */;
6615 short int var3 /* : Bool */;
6616 long var4 /* : Int */;
6617 long var5 /* : Int */;
6618 var_p = p0;
6619 var_node_list = ((val*)NULL);
6620 {
6621 var = nitc___nitc__Parser___pop(var_p);
6622 }
6623 var_nodearraylist1 = var;
6624 var1 = NEW_core__Array(&type_core__Array__core__Object);
6625 {
6626 core___core__Array___core__kernel__Object__init(var1); /* Direct call array$Array$init on <var1:Array[Object]>*/
6627 }
6628 var_listnode2 = var1;
6629 var_pclassdefnode1 = var_nodearraylist1;
6630 if (var_pclassdefnode1 == NULL) {
6631 var2 = 0; /* is null */
6632 } else {
6633 var2 = 1; /* arg is null and recv is not */
6634 }
6635 if (0) {
6636 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>*/
6637 var2 = var3;
6638 }
6639 if (var2){
6640 {
6641 core___core__Array___core__abstract_collection__SimpleCollection__add(var_listnode2, var_pclassdefnode1); /* Direct call array$Array$add on <var_listnode2:Array[Object]>*/
6642 }
6643 } else {
6644 }
6645 var_node_list = var_listnode2;
6646 var4 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction1067> */
6647 {
6648 var5 = nitc___nitc__Parser___go_to(var_p, var4);
6649 }
6650 {
6651 nitc___nitc__Parser___push(var_p, var5, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
6652 }
6653 RET_LABEL:;
6654 }
6655 /* method parser$ReduceAction1068$action for (self: ReduceAction1068, Parser) */
6656 void nitc__parser___nitc__parser__ReduceAction1068___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
6657 val* var_p /* var p: Parser */;
6658 val* var_node_list /* var node_list: nullable Object */;
6659 val* var /* : nullable Object */;
6660 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6661 val* var1 /* : nullable Object */;
6662 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6663 val* var2 /* : Array[Object] */;
6664 val* var_listnode3 /* var listnode3: Array[Object] */;
6665 val* var_listnode1 /* var listnode1: nullable Object */;
6666 short int var3 /* : Bool */;
6667 int cltype;
6668 int idtype;
6669 val* var_pclassdefnode2 /* var pclassdefnode2: nullable Object */;
6670 val* var4 /* : Array[Object] */;
6671 short int var5 /* : Bool */;
6672 short int var6 /* : Bool */;
6673 long var7 /* : Int */;
6674 long var8 /* : Int */;
6675 var_p = p0;
6676 var_node_list = ((val*)NULL);
6677 {
6678 var = nitc___nitc__Parser___pop(var_p);
6679 }
6680 var_nodearraylist2 = var;
6681 {
6682 var1 = nitc___nitc__Parser___pop(var_p);
6683 }
6684 var_nodearraylist1 = var1;
6685 var2 = NEW_core__Array(&type_core__Array__core__Object);
6686 {
6687 core___core__Array___core__kernel__Object__init(var2); /* Direct call array$Array$init on <var2:Array[Object]>*/
6688 }
6689 var_listnode3 = var2;
6690 var_listnode1 = var_nodearraylist1;
6691 /* <var_listnode1:nullable Object> isa Array[Object] */
6692 cltype = type_core__Array__core__Object.color;
6693 idtype = type_core__Array__core__Object.id;
6694 if(var_listnode1 == NULL) {
6695 var3 = 0;
6696 } else {
6697 if(cltype >= (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->table_size) {
6698 var3 = 0;
6699 } else {
6700 var3 = (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->type_table[cltype] == idtype;
6701 }
6702 }
6703 if (unlikely(!var3)) {
6704 if(catchStack.cursor >= 0){
6705 longjmp(catchStack.envs[catchStack.cursor], 1);
6706 }
6707 PRINT_ERROR("Runtime error: %s", "Assert failed");
6708 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12541);
6709 fatal_exit(1);
6710 }
6711 var_pclassdefnode2 = var_nodearraylist2;
6712 {
6713 var4 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode1);
6714 }
6715 var_listnode3 = var4;
6716 if (var_pclassdefnode2 == NULL) {
6717 var5 = 0; /* is null */
6718 } else {
6719 var5 = 1; /* arg is null and recv is not */
6720 }
6721 if (0) {
6722 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>*/
6723 var5 = var6;
6724 }
6725 if (var5){
6726 {
6727 core___core__Array___core__abstract_collection__SimpleCollection__add(var_listnode3, var_pclassdefnode2); /* Direct call array$Array$add on <var_listnode3:Array[Object]>*/
6728 }
6729 } else {
6730 }
6731 var_node_list = var_listnode3;
6732 var7 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction1068> */
6733 {
6734 var8 = nitc___nitc__Parser___go_to(var_p, var7);
6735 }
6736 {
6737 nitc___nitc__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
6738 }
6739 RET_LABEL:;
6740 }
6741 /* method parser$ReduceAction1070$action for (self: ReduceAction1070, Parser) */
6742 void nitc__parser___nitc__parser__ReduceAction1070___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
6743 val* var_p /* var p: Parser */;
6744 val* var_node_list /* var node_list: nullable Object */;
6745 val* var /* : nullable Object */;
6746 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6747 val* var1 /* : nullable Object */;
6748 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6749 val* var2 /* : Array[Object] */;
6750 val* var_listnode3 /* var listnode3: Array[Object] */;
6751 val* var_listnode1 /* var listnode1: nullable Object */;
6752 short int var3 /* : Bool */;
6753 int cltype;
6754 int idtype;
6755 val* var_pformaldefnode2 /* var pformaldefnode2: nullable Object */;
6756 val* var4 /* : Array[Object] */;
6757 short int var5 /* : Bool */;
6758 short int var6 /* : Bool */;
6759 long var7 /* : Int */;
6760 long var8 /* : Int */;
6761 var_p = p0;
6762 var_node_list = ((val*)NULL);
6763 {
6764 var = nitc___nitc__Parser___pop(var_p);
6765 }
6766 var_nodearraylist2 = var;
6767 {
6768 var1 = nitc___nitc__Parser___pop(var_p);
6769 }
6770 var_nodearraylist1 = var1;
6771 var2 = NEW_core__Array(&type_core__Array__core__Object);
6772 {
6773 core___core__Array___core__kernel__Object__init(var2); /* Direct call array$Array$init on <var2:Array[Object]>*/
6774 }
6775 var_listnode3 = var2;
6776 var_listnode1 = var_nodearraylist1;
6777 /* <var_listnode1:nullable Object> isa Array[Object] */
6778 cltype = type_core__Array__core__Object.color;
6779 idtype = type_core__Array__core__Object.id;
6780 if(var_listnode1 == NULL) {
6781 var3 = 0;
6782 } else {
6783 if(cltype >= (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->table_size) {
6784 var3 = 0;
6785 } else {
6786 var3 = (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->type_table[cltype] == idtype;
6787 }
6788 }
6789 if (unlikely(!var3)) {
6790 if(catchStack.cursor >= 0){
6791 longjmp(catchStack.envs[catchStack.cursor], 1);
6792 }
6793 PRINT_ERROR("Runtime error: %s", "Assert failed");
6794 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12560);
6795 fatal_exit(1);
6796 }
6797 var_pformaldefnode2 = var_nodearraylist2;
6798 {
6799 var4 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode1);
6800 }
6801 var_listnode3 = var4;
6802 if (var_pformaldefnode2 == NULL) {
6803 var5 = 0; /* is null */
6804 } else {
6805 var5 = 1; /* arg is null and recv is not */
6806 }
6807 if (0) {
6808 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>*/
6809 var5 = var6;
6810 }
6811 if (var5){
6812 {
6813 core___core__Array___core__abstract_collection__SimpleCollection__add(var_listnode3, var_pformaldefnode2); /* Direct call array$Array$add on <var_listnode3:Array[Object]>*/
6814 }
6815 } else {
6816 }
6817 var_node_list = var_listnode3;
6818 var7 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction1070> */
6819 {
6820 var8 = nitc___nitc__Parser___go_to(var_p, var7);
6821 }
6822 {
6823 nitc___nitc__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
6824 }
6825 RET_LABEL:;
6826 }
6827 /* method parser$ReduceAction1072$action for (self: ReduceAction1072, Parser) */
6828 void nitc__parser___nitc__parser__ReduceAction1072___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
6829 val* var_p /* var p: Parser */;
6830 val* var_node_list /* var node_list: nullable Object */;
6831 val* var /* : nullable Object */;
6832 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6833 val* var1 /* : nullable Object */;
6834 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6835 val* var2 /* : Array[Object] */;
6836 val* var_listnode3 /* var listnode3: Array[Object] */;
6837 val* var_listnode1 /* var listnode1: nullable Object */;
6838 short int var3 /* : Bool */;
6839 int cltype;
6840 int idtype;
6841 val* var_ppropdefnode2 /* var ppropdefnode2: nullable Object */;
6842 val* var4 /* : Array[Object] */;
6843 short int var5 /* : Bool */;
6844 short int var6 /* : Bool */;
6845 long var7 /* : Int */;
6846 long var8 /* : Int */;
6847 var_p = p0;
6848 var_node_list = ((val*)NULL);
6849 {
6850 var = nitc___nitc__Parser___pop(var_p);
6851 }
6852 var_nodearraylist2 = var;
6853 {
6854 var1 = nitc___nitc__Parser___pop(var_p);
6855 }
6856 var_nodearraylist1 = var1;
6857 var2 = NEW_core__Array(&type_core__Array__core__Object);
6858 {
6859 core___core__Array___core__kernel__Object__init(var2); /* Direct call array$Array$init on <var2:Array[Object]>*/
6860 }
6861 var_listnode3 = var2;
6862 var_listnode1 = var_nodearraylist1;
6863 /* <var_listnode1:nullable Object> isa Array[Object] */
6864 cltype = type_core__Array__core__Object.color;
6865 idtype = type_core__Array__core__Object.id;
6866 if(var_listnode1 == NULL) {
6867 var3 = 0;
6868 } else {
6869 if(cltype >= (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->table_size) {
6870 var3 = 0;
6871 } else {
6872 var3 = (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->type_table[cltype] == idtype;
6873 }
6874 }
6875 if (unlikely(!var3)) {
6876 if(catchStack.cursor >= 0){
6877 longjmp(catchStack.envs[catchStack.cursor], 1);
6878 }
6879 PRINT_ERROR("Runtime error: %s", "Assert failed");
6880 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12579);
6881 fatal_exit(1);
6882 }
6883 var_ppropdefnode2 = var_nodearraylist2;
6884 {
6885 var4 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode1);
6886 }
6887 var_listnode3 = var4;
6888 if (var_ppropdefnode2 == NULL) {
6889 var5 = 0; /* is null */
6890 } else {
6891 var5 = 1; /* arg is null and recv is not */
6892 }
6893 if (0) {
6894 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>*/
6895 var5 = var6;
6896 }
6897 if (var5){
6898 {
6899 core___core__Array___core__abstract_collection__SimpleCollection__add(var_listnode3, var_ppropdefnode2); /* Direct call array$Array$add on <var_listnode3:Array[Object]>*/
6900 }
6901 } else {
6902 }
6903 var_node_list = var_listnode3;
6904 var7 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction1072> */
6905 {
6906 var8 = nitc___nitc__Parser___go_to(var_p, var7);
6907 }
6908 {
6909 nitc___nitc__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
6910 }
6911 RET_LABEL:;
6912 }
6913 /* method parser$ReduceAction1074$action for (self: ReduceAction1074, Parser) */
6914 void nitc__parser___nitc__parser__ReduceAction1074___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
6915 val* var_p /* var p: Parser */;
6916 val* var_node_list /* var node_list: nullable Object */;
6917 val* var /* : nullable Object */;
6918 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6919 val* var1 /* : nullable Object */;
6920 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6921 val* var2 /* : Array[Object] */;
6922 val* var_listnode3 /* var listnode3: Array[Object] */;
6923 val* var_listnode1 /* var listnode1: nullable Object */;
6924 short int var3 /* : Bool */;
6925 int cltype;
6926 int idtype;
6927 val* var_pannotationnode2 /* var pannotationnode2: nullable Object */;
6928 val* var4 /* : Array[Object] */;
6929 short int var5 /* : Bool */;
6930 short int var6 /* : Bool */;
6931 long var7 /* : Int */;
6932 long var8 /* : Int */;
6933 var_p = p0;
6934 var_node_list = ((val*)NULL);
6935 {
6936 var = nitc___nitc__Parser___pop(var_p);
6937 }
6938 var_nodearraylist2 = var;
6939 {
6940 var1 = nitc___nitc__Parser___pop(var_p);
6941 }
6942 var_nodearraylist1 = var1;
6943 var2 = NEW_core__Array(&type_core__Array__core__Object);
6944 {
6945 core___core__Array___core__kernel__Object__init(var2); /* Direct call array$Array$init on <var2:Array[Object]>*/
6946 }
6947 var_listnode3 = var2;
6948 var_listnode1 = var_nodearraylist1;
6949 /* <var_listnode1:nullable Object> isa Array[Object] */
6950 cltype = type_core__Array__core__Object.color;
6951 idtype = type_core__Array__core__Object.id;
6952 if(var_listnode1 == NULL) {
6953 var3 = 0;
6954 } else {
6955 if(cltype >= (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->table_size) {
6956 var3 = 0;
6957 } else {
6958 var3 = (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->type_table[cltype] == idtype;
6959 }
6960 }
6961 if (unlikely(!var3)) {
6962 if(catchStack.cursor >= 0){
6963 longjmp(catchStack.envs[catchStack.cursor], 1);
6964 }
6965 PRINT_ERROR("Runtime error: %s", "Assert failed");
6966 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12598);
6967 fatal_exit(1);
6968 }
6969 var_pannotationnode2 = var_nodearraylist2;
6970 {
6971 var4 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode1);
6972 }
6973 var_listnode3 = var4;
6974 if (var_pannotationnode2 == NULL) {
6975 var5 = 0; /* is null */
6976 } else {
6977 var5 = 1; /* arg is null and recv is not */
6978 }
6979 if (0) {
6980 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>*/
6981 var5 = var6;
6982 }
6983 if (var5){
6984 {
6985 core___core__Array___core__abstract_collection__SimpleCollection__add(var_listnode3, var_pannotationnode2); /* Direct call array$Array$add on <var_listnode3:Array[Object]>*/
6986 }
6987 } else {
6988 }
6989 var_node_list = var_listnode3;
6990 var7 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction1074> */
6991 {
6992 var8 = nitc___nitc__Parser___go_to(var_p, var7);
6993 }
6994 {
6995 nitc___nitc__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
6996 }
6997 RET_LABEL:;
6998 }
6999 /* method parser$ReduceAction1075$action for (self: ReduceAction1075, Parser) */
7000 void nitc__parser___nitc__parser__ReduceAction1075___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
7001 val* var_p /* var p: Parser */;
7002 val* var_node_list /* var node_list: nullable Object */;
7003 val* var /* : nullable Object */;
7004 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7005 val* var1 /* : Array[Object] */;
7006 val* var_listnode2 /* var listnode2: Array[Object] */;
7007 val* var_pparamnode1 /* var pparamnode1: nullable Object */;
7008 short int var2 /* : Bool */;
7009 short int var3 /* : Bool */;
7010 long var4 /* : Int */;
7011 long var5 /* : Int */;
7012 var_p = p0;
7013 var_node_list = ((val*)NULL);
7014 {
7015 var = nitc___nitc__Parser___pop(var_p);
7016 }
7017 var_nodearraylist1 = var;
7018 var1 = NEW_core__Array(&type_core__Array__core__Object);
7019 {
7020 core___core__Array___core__kernel__Object__init(var1); /* Direct call array$Array$init on <var1:Array[Object]>*/
7021 }
7022 var_listnode2 = var1;
7023 var_pparamnode1 = var_nodearraylist1;
7024 if (var_pparamnode1 == NULL) {
7025 var2 = 0; /* is null */
7026 } else {
7027 var2 = 1; /* arg is null and recv is not */
7028 }
7029 if (0) {
7030 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>*/
7031 var2 = var3;
7032 }
7033 if (var2){
7034 {
7035 core___core__Array___core__abstract_collection__SimpleCollection__add(var_listnode2, var_pparamnode1); /* Direct call array$Array$add on <var_listnode2:Array[Object]>*/
7036 }
7037 } else {
7038 }
7039 var_node_list = var_listnode2;
7040 var4 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction1075> */
7041 {
7042 var5 = nitc___nitc__Parser___go_to(var_p, var4);
7043 }
7044 {
7045 nitc___nitc__Parser___push(var_p, var5, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
7046 }
7047 RET_LABEL:;
7048 }
7049 /* method parser$ReduceAction1076$action for (self: ReduceAction1076, Parser) */
7050 void nitc__parser___nitc__parser__ReduceAction1076___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
7051 val* var_p /* var p: Parser */;
7052 val* var_node_list /* var node_list: nullable Object */;
7053 val* var /* : nullable Object */;
7054 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7055 val* var1 /* : nullable Object */;
7056 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7057 val* var2 /* : Array[Object] */;
7058 val* var_listnode3 /* var listnode3: Array[Object] */;
7059 val* var_listnode1 /* var listnode1: nullable Object */;
7060 short int var3 /* : Bool */;
7061 int cltype;
7062 int idtype;
7063 val* var_pparamnode2 /* var pparamnode2: nullable Object */;
7064 val* var4 /* : Array[Object] */;
7065 short int var5 /* : Bool */;
7066 short int var6 /* : Bool */;
7067 long var7 /* : Int */;
7068 long var8 /* : Int */;
7069 var_p = p0;
7070 var_node_list = ((val*)NULL);
7071 {
7072 var = nitc___nitc__Parser___pop(var_p);
7073 }
7074 var_nodearraylist2 = var;
7075 {
7076 var1 = nitc___nitc__Parser___pop(var_p);
7077 }
7078 var_nodearraylist1 = var1;
7079 var2 = NEW_core__Array(&type_core__Array__core__Object);
7080 {
7081 core___core__Array___core__kernel__Object__init(var2); /* Direct call array$Array$init on <var2:Array[Object]>*/
7082 }
7083 var_listnode3 = var2;
7084 var_listnode1 = var_nodearraylist1;
7085 /* <var_listnode1:nullable Object> isa Array[Object] */
7086 cltype = type_core__Array__core__Object.color;
7087 idtype = type_core__Array__core__Object.id;
7088 if(var_listnode1 == NULL) {
7089 var3 = 0;
7090 } else {
7091 if(cltype >= (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->table_size) {
7092 var3 = 0;
7093 } else {
7094 var3 = (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->type_table[cltype] == idtype;
7095 }
7096 }
7097 if (unlikely(!var3)) {
7098 if(catchStack.cursor >= 0){
7099 longjmp(catchStack.envs[catchStack.cursor], 1);
7100 }
7101 PRINT_ERROR("Runtime error: %s", "Assert failed");
7102 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12632);
7103 fatal_exit(1);
7104 }
7105 var_pparamnode2 = var_nodearraylist2;
7106 {
7107 var4 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode1);
7108 }
7109 var_listnode3 = var4;
7110 if (var_pparamnode2 == NULL) {
7111 var5 = 0; /* is null */
7112 } else {
7113 var5 = 1; /* arg is null and recv is not */
7114 }
7115 if (0) {
7116 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>*/
7117 var5 = var6;
7118 }
7119 if (var5){
7120 {
7121 core___core__Array___core__abstract_collection__SimpleCollection__add(var_listnode3, var_pparamnode2); /* Direct call array$Array$add on <var_listnode3:Array[Object]>*/
7122 }
7123 } else {
7124 }
7125 var_node_list = var_listnode3;
7126 var7 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction1076> */
7127 {
7128 var8 = nitc___nitc__Parser___go_to(var_p, var7);
7129 }
7130 {
7131 nitc___nitc__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
7132 }
7133 RET_LABEL:;
7134 }
7135 /* method parser$ReduceAction1077$action for (self: ReduceAction1077, Parser) */
7136 void nitc__parser___nitc__parser__ReduceAction1077___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
7137 val* var_p /* var p: Parser */;
7138 val* var_node_list /* var node_list: nullable Object */;
7139 val* var /* : nullable Object */;
7140 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7141 val* var1 /* : Array[Object] */;
7142 val* var_listnode2 /* var listnode2: Array[Object] */;
7143 val* var_pexterncallnode1 /* var pexterncallnode1: nullable Object */;
7144 short int var2 /* : Bool */;
7145 short int var3 /* : Bool */;
7146 long var4 /* : Int */;
7147 long var5 /* : Int */;
7148 var_p = p0;
7149 var_node_list = ((val*)NULL);
7150 {
7151 var = nitc___nitc__Parser___pop(var_p);
7152 }
7153 var_nodearraylist1 = var;
7154 var1 = NEW_core__Array(&type_core__Array__core__Object);
7155 {
7156 core___core__Array___core__kernel__Object__init(var1); /* Direct call array$Array$init on <var1:Array[Object]>*/
7157 }
7158 var_listnode2 = var1;
7159 var_pexterncallnode1 = var_nodearraylist1;
7160 if (var_pexterncallnode1 == NULL) {
7161 var2 = 0; /* is null */
7162 } else {
7163 var2 = 1; /* arg is null and recv is not */
7164 }
7165 if (0) {
7166 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>*/
7167 var2 = var3;
7168 }
7169 if (var2){
7170 {
7171 core___core__Array___core__abstract_collection__SimpleCollection__add(var_listnode2, var_pexterncallnode1); /* Direct call array$Array$add on <var_listnode2:Array[Object]>*/
7172 }
7173 } else {
7174 }
7175 var_node_list = var_listnode2;
7176 var4 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction1077> */
7177 {
7178 var5 = nitc___nitc__Parser___go_to(var_p, var4);
7179 }
7180 {
7181 nitc___nitc__Parser___push(var_p, var5, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
7182 }
7183 RET_LABEL:;
7184 }
7185 /* method parser$ReduceAction1078$action for (self: ReduceAction1078, Parser) */
7186 void nitc__parser___nitc__parser__ReduceAction1078___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
7187 val* var_p /* var p: Parser */;
7188 val* var_node_list /* var node_list: nullable Object */;
7189 val* var /* : nullable Object */;
7190 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7191 val* var1 /* : nullable Object */;
7192 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7193 val* var2 /* : Array[Object] */;
7194 val* var_listnode3 /* var listnode3: Array[Object] */;
7195 val* var_listnode1 /* var listnode1: nullable Object */;
7196 short int var3 /* : Bool */;
7197 int cltype;
7198 int idtype;
7199 val* var_pexterncallnode2 /* var pexterncallnode2: nullable Object */;
7200 val* var4 /* : Array[Object] */;
7201 short int var5 /* : Bool */;
7202 short int var6 /* : Bool */;
7203 long var7 /* : Int */;
7204 long var8 /* : Int */;
7205 var_p = p0;
7206 var_node_list = ((val*)NULL);
7207 {
7208 var = nitc___nitc__Parser___pop(var_p);
7209 }
7210 var_nodearraylist2 = var;
7211 {
7212 var1 = nitc___nitc__Parser___pop(var_p);
7213 }
7214 var_nodearraylist1 = var1;
7215 var2 = NEW_core__Array(&type_core__Array__core__Object);
7216 {
7217 core___core__Array___core__kernel__Object__init(var2); /* Direct call array$Array$init on <var2:Array[Object]>*/
7218 }
7219 var_listnode3 = var2;
7220 var_listnode1 = var_nodearraylist1;
7221 /* <var_listnode1:nullable Object> isa Array[Object] */
7222 cltype = type_core__Array__core__Object.color;
7223 idtype = type_core__Array__core__Object.id;
7224 if(var_listnode1 == NULL) {
7225 var3 = 0;
7226 } else {
7227 if(cltype >= (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->table_size) {
7228 var3 = 0;
7229 } else {
7230 var3 = (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->type_table[cltype] == idtype;
7231 }
7232 }
7233 if (unlikely(!var3)) {
7234 if(catchStack.cursor >= 0){
7235 longjmp(catchStack.envs[catchStack.cursor], 1);
7236 }
7237 PRINT_ERROR("Runtime error: %s", "Assert failed");
7238 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12666);
7239 fatal_exit(1);
7240 }
7241 var_pexterncallnode2 = var_nodearraylist2;
7242 {
7243 var4 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode1);
7244 }
7245 var_listnode3 = var4;
7246 if (var_pexterncallnode2 == NULL) {
7247 var5 = 0; /* is null */
7248 } else {
7249 var5 = 1; /* arg is null and recv is not */
7250 }
7251 if (0) {
7252 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>*/
7253 var5 = var6;
7254 }
7255 if (var5){
7256 {
7257 core___core__Array___core__abstract_collection__SimpleCollection__add(var_listnode3, var_pexterncallnode2); /* Direct call array$Array$add on <var_listnode3:Array[Object]>*/
7258 }
7259 } else {
7260 }
7261 var_node_list = var_listnode3;
7262 var7 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction1078> */
7263 {
7264 var8 = nitc___nitc__Parser___go_to(var_p, var7);
7265 }
7266 {
7267 nitc___nitc__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
7268 }
7269 RET_LABEL:;
7270 }
7271 /* method parser$ReduceAction1080$action for (self: ReduceAction1080, Parser) */
7272 void nitc__parser___nitc__parser__ReduceAction1080___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
7273 val* var_p /* var p: Parser */;
7274 val* var_node_list /* var node_list: nullable Object */;
7275 val* var /* : nullable Object */;
7276 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7277 val* var1 /* : nullable Object */;
7278 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7279 val* var2 /* : Array[Object] */;
7280 val* var_listnode3 /* var listnode3: Array[Object] */;
7281 val* var_listnode1 /* var listnode1: nullable Object */;
7282 short int var3 /* : Bool */;
7283 int cltype;
7284 int idtype;
7285 val* var_ptypenode2 /* var ptypenode2: nullable Object */;
7286 val* var4 /* : Array[Object] */;
7287 short int var5 /* : Bool */;
7288 short int var6 /* : Bool */;
7289 long var7 /* : Int */;
7290 long var8 /* : Int */;
7291 var_p = p0;
7292 var_node_list = ((val*)NULL);
7293 {
7294 var = nitc___nitc__Parser___pop(var_p);
7295 }
7296 var_nodearraylist2 = var;
7297 {
7298 var1 = nitc___nitc__Parser___pop(var_p);
7299 }
7300 var_nodearraylist1 = var1;
7301 var2 = NEW_core__Array(&type_core__Array__core__Object);
7302 {
7303 core___core__Array___core__kernel__Object__init(var2); /* Direct call array$Array$init on <var2:Array[Object]>*/
7304 }
7305 var_listnode3 = var2;
7306 var_listnode1 = var_nodearraylist1;
7307 /* <var_listnode1:nullable Object> isa Array[Object] */
7308 cltype = type_core__Array__core__Object.color;
7309 idtype = type_core__Array__core__Object.id;
7310 if(var_listnode1 == NULL) {
7311 var3 = 0;
7312 } else {
7313 if(cltype >= (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->table_size) {
7314 var3 = 0;
7315 } else {
7316 var3 = (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->type_table[cltype] == idtype;
7317 }
7318 }
7319 if (unlikely(!var3)) {
7320 if(catchStack.cursor >= 0){
7321 longjmp(catchStack.envs[catchStack.cursor], 1);
7322 }
7323 PRINT_ERROR("Runtime error: %s", "Assert failed");
7324 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12685);
7325 fatal_exit(1);
7326 }
7327 var_ptypenode2 = var_nodearraylist2;
7328 {
7329 var4 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode1);
7330 }
7331 var_listnode3 = var4;
7332 if (var_ptypenode2 == NULL) {
7333 var5 = 0; /* is null */
7334 } else {
7335 var5 = 1; /* arg is null and recv is not */
7336 }
7337 if (0) {
7338 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>*/
7339 var5 = var6;
7340 }
7341 if (var5){
7342 {
7343 core___core__Array___core__abstract_collection__SimpleCollection__add(var_listnode3, var_ptypenode2); /* Direct call array$Array$add on <var_listnode3:Array[Object]>*/
7344 }
7345 } else {
7346 }
7347 var_node_list = var_listnode3;
7348 var7 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction1080> */
7349 {
7350 var8 = nitc___nitc__Parser___go_to(var_p, var7);
7351 }
7352 {
7353 nitc___nitc__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
7354 }
7355 RET_LABEL:;
7356 }
7357 /* method parser$ReduceAction1082$action for (self: ReduceAction1082, Parser) */
7358 void nitc__parser___nitc__parser__ReduceAction1082___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
7359 val* var_p /* var p: Parser */;
7360 val* var_node_list /* var node_list: nullable Object */;
7361 val* var /* : nullable Object */;
7362 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7363 val* var1 /* : nullable Object */;
7364 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7365 val* var2 /* : Array[Object] */;
7366 val* var_listnode3 /* var listnode3: Array[Object] */;
7367 val* var_listnode1 /* var listnode1: nullable Object */;
7368 short int var3 /* : Bool */;
7369 int cltype;
7370 int idtype;
7371 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
7372 val* var4 /* : Array[Object] */;
7373 short int var5 /* : Bool */;
7374 short int var6 /* : Bool */;
7375 long var7 /* : Int */;
7376 long var8 /* : Int */;
7377 var_p = p0;
7378 var_node_list = ((val*)NULL);
7379 {
7380 var = nitc___nitc__Parser___pop(var_p);
7381 }
7382 var_nodearraylist2 = var;
7383 {
7384 var1 = nitc___nitc__Parser___pop(var_p);
7385 }
7386 var_nodearraylist1 = var1;
7387 var2 = NEW_core__Array(&type_core__Array__core__Object);
7388 {
7389 core___core__Array___core__kernel__Object__init(var2); /* Direct call array$Array$init on <var2:Array[Object]>*/
7390 }
7391 var_listnode3 = var2;
7392 var_listnode1 = var_nodearraylist1;
7393 /* <var_listnode1:nullable Object> isa Array[Object] */
7394 cltype = type_core__Array__core__Object.color;
7395 idtype = type_core__Array__core__Object.id;
7396 if(var_listnode1 == NULL) {
7397 var3 = 0;
7398 } else {
7399 if(cltype >= (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->table_size) {
7400 var3 = 0;
7401 } else {
7402 var3 = (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->type_table[cltype] == idtype;
7403 }
7404 }
7405 if (unlikely(!var3)) {
7406 if(catchStack.cursor >= 0){
7407 longjmp(catchStack.envs[catchStack.cursor], 1);
7408 }
7409 PRINT_ERROR("Runtime error: %s", "Assert failed");
7410 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12704);
7411 fatal_exit(1);
7412 }
7413 var_pexprnode2 = var_nodearraylist2;
7414 {
7415 var4 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode1);
7416 }
7417 var_listnode3 = var4;
7418 if (var_pexprnode2 == NULL) {
7419 var5 = 0; /* is null */
7420 } else {
7421 var5 = 1; /* arg is null and recv is not */
7422 }
7423 if (0) {
7424 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>*/
7425 var5 = var6;
7426 }
7427 if (var5){
7428 {
7429 core___core__Array___core__abstract_collection__SimpleCollection__add(var_listnode3, var_pexprnode2); /* Direct call array$Array$add on <var_listnode3:Array[Object]>*/
7430 }
7431 } else {
7432 }
7433 var_node_list = var_listnode3;
7434 var7 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction1082> */
7435 {
7436 var8 = nitc___nitc__Parser___go_to(var_p, var7);
7437 }
7438 {
7439 nitc___nitc__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
7440 }
7441 RET_LABEL:;
7442 }
7443 /* method parser$ReduceAction1088$action for (self: ReduceAction1088, Parser) */
7444 void nitc__parser___nitc__parser__ReduceAction1088___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
7445 val* var_p /* var p: Parser */;
7446 val* var_node_list /* var node_list: nullable Object */;
7447 val* var /* : nullable Object */;
7448 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7449 val* var1 /* : nullable Object */;
7450 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7451 val* var2 /* : Array[Object] */;
7452 val* var_listnode3 /* var listnode3: Array[Object] */;
7453 val* var_listnode1 /* var listnode1: nullable Object */;
7454 short int var3 /* : Bool */;
7455 int cltype;
7456 int idtype;
7457 val* var_listnode2 /* var listnode2: nullable Object */;
7458 short int var4 /* : Bool */;
7459 int cltype5;
7460 int idtype6;
7461 val* var7 /* : Array[Object] */;
7462 val* var8 /* : Array[Object] */;
7463 long var9 /* : Int */;
7464 long var10 /* : Int */;
7465 var_p = p0;
7466 var_node_list = ((val*)NULL);
7467 {
7468 var = nitc___nitc__Parser___pop(var_p);
7469 }
7470 var_nodearraylist2 = var;
7471 {
7472 var1 = nitc___nitc__Parser___pop(var_p);
7473 }
7474 var_nodearraylist1 = var1;
7475 var2 = NEW_core__Array(&type_core__Array__core__Object);
7476 {
7477 core___core__Array___core__kernel__Object__init(var2); /* Direct call array$Array$init on <var2:Array[Object]>*/
7478 }
7479 var_listnode3 = var2;
7480 var_listnode1 = var_nodearraylist1;
7481 /* <var_listnode1:nullable Object> isa Array[Object] */
7482 cltype = type_core__Array__core__Object.color;
7483 idtype = type_core__Array__core__Object.id;
7484 if(var_listnode1 == NULL) {
7485 var3 = 0;
7486 } else {
7487 if(cltype >= (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->table_size) {
7488 var3 = 0;
7489 } else {
7490 var3 = (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->type_table[cltype] == idtype;
7491 }
7492 }
7493 if (unlikely(!var3)) {
7494 if(catchStack.cursor >= 0){
7495 longjmp(catchStack.envs[catchStack.cursor], 1);
7496 }
7497 PRINT_ERROR("Runtime error: %s", "Assert failed");
7498 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12723);
7499 fatal_exit(1);
7500 }
7501 var_listnode2 = var_nodearraylist2;
7502 /* <var_listnode2:nullable Object> isa Array[Object] */
7503 cltype5 = type_core__Array__core__Object.color;
7504 idtype6 = type_core__Array__core__Object.id;
7505 if(var_listnode2 == NULL) {
7506 var4 = 0;
7507 } else {
7508 if(cltype5 >= (((long)var_listnode2&3)?type_info[((long)var_listnode2&3)]:var_listnode2->type)->table_size) {
7509 var4 = 0;
7510 } else {
7511 var4 = (((long)var_listnode2&3)?type_info[((long)var_listnode2&3)]:var_listnode2->type)->type_table[cltype5] == idtype6;
7512 }
7513 }
7514 if (unlikely(!var4)) {
7515 if(catchStack.cursor >= 0){
7516 longjmp(catchStack.envs[catchStack.cursor], 1);
7517 }
7518 PRINT_ERROR("Runtime error: %s", "Assert failed");
7519 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12725);
7520 fatal_exit(1);
7521 }
7522 {
7523 var7 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode1);
7524 }
7525 var_listnode3 = var7;
7526 {
7527 var8 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode2);
7528 }
7529 var_listnode3 = var8;
7530 var_node_list = var_listnode3;
7531 var9 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction1088> */
7532 {
7533 var10 = nitc___nitc__Parser___go_to(var_p, var9);
7534 }
7535 {
7536 nitc___nitc__Parser___push(var_p, var10, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
7537 }
7538 RET_LABEL:;
7539 }
7540 /* method parser$ReduceAction1096$action for (self: ReduceAction1096, Parser) */
7541 void nitc__parser___nitc__parser__ReduceAction1096___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
7542 val* var_p /* var p: Parser */;
7543 val* var_node_list /* var node_list: nullable Object */;
7544 val* var /* : nullable Object */;
7545 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7546 val* var1 /* : nullable Object */;
7547 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7548 val* var2 /* : Array[Object] */;
7549 val* var_listnode3 /* var listnode3: Array[Object] */;
7550 val* var_listnode1 /* var listnode1: nullable Object */;
7551 short int var3 /* : Bool */;
7552 int cltype;
7553 int idtype;
7554 val* var_tidnode2 /* var tidnode2: nullable Object */;
7555 val* var4 /* : Array[Object] */;
7556 short int var5 /* : Bool */;
7557 short int var6 /* : Bool */;
7558 long var7 /* : Int */;
7559 long var8 /* : Int */;
7560 var_p = p0;
7561 var_node_list = ((val*)NULL);
7562 {
7563 var = nitc___nitc__Parser___pop(var_p);
7564 }
7565 var_nodearraylist2 = var;
7566 {
7567 var1 = nitc___nitc__Parser___pop(var_p);
7568 }
7569 var_nodearraylist1 = var1;
7570 var2 = NEW_core__Array(&type_core__Array__core__Object);
7571 {
7572 core___core__Array___core__kernel__Object__init(var2); /* Direct call array$Array$init on <var2:Array[Object]>*/
7573 }
7574 var_listnode3 = var2;
7575 var_listnode1 = var_nodearraylist1;
7576 /* <var_listnode1:nullable Object> isa Array[Object] */
7577 cltype = type_core__Array__core__Object.color;
7578 idtype = type_core__Array__core__Object.id;
7579 if(var_listnode1 == NULL) {
7580 var3 = 0;
7581 } else {
7582 if(cltype >= (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->table_size) {
7583 var3 = 0;
7584 } else {
7585 var3 = (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->type_table[cltype] == idtype;
7586 }
7587 }
7588 if (unlikely(!var3)) {
7589 if(catchStack.cursor >= 0){
7590 longjmp(catchStack.envs[catchStack.cursor], 1);
7591 }
7592 PRINT_ERROR("Runtime error: %s", "Assert failed");
7593 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12741);
7594 fatal_exit(1);
7595 }
7596 var_tidnode2 = var_nodearraylist2;
7597 {
7598 var4 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode1);
7599 }
7600 var_listnode3 = var4;
7601 if (var_tidnode2 == NULL) {
7602 var5 = 0; /* is null */
7603 } else {
7604 var5 = 1; /* arg is null and recv is not */
7605 }
7606 if (0) {
7607 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>*/
7608 var5 = var6;
7609 }
7610 if (var5){
7611 {
7612 core___core__Array___core__abstract_collection__SimpleCollection__add(var_listnode3, var_tidnode2); /* Direct call array$Array$add on <var_listnode3:Array[Object]>*/
7613 }
7614 } else {
7615 }
7616 var_node_list = var_listnode3;
7617 var7 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction1096> */
7618 {
7619 var8 = nitc___nitc__Parser___go_to(var_p, var7);
7620 }
7621 {
7622 nitc___nitc__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
7623 }
7624 RET_LABEL:;
7625 }
7626 /* method parser$ReduceAction1097$action for (self: ReduceAction1097, Parser) */
7627 void nitc__parser___nitc__parser__ReduceAction1097___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
7628 val* var_p /* var p: Parser */;
7629 val* var_node_list /* var node_list: nullable Object */;
7630 val* var /* : nullable Object */;
7631 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7632 val* var1 /* : Array[Object] */;
7633 val* var_listnode2 /* var listnode2: Array[Object] */;
7634 val* var_tcommentnode1 /* var tcommentnode1: nullable Object */;
7635 short int var2 /* : Bool */;
7636 short int var3 /* : Bool */;
7637 long var4 /* : Int */;
7638 long var5 /* : Int */;
7639 var_p = p0;
7640 var_node_list = ((val*)NULL);
7641 {
7642 var = nitc___nitc__Parser___pop(var_p);
7643 }
7644 var_nodearraylist1 = var;
7645 var1 = NEW_core__Array(&type_core__Array__core__Object);
7646 {
7647 core___core__Array___core__kernel__Object__init(var1); /* Direct call array$Array$init on <var1:Array[Object]>*/
7648 }
7649 var_listnode2 = var1;
7650 var_tcommentnode1 = var_nodearraylist1;
7651 if (var_tcommentnode1 == NULL) {
7652 var2 = 0; /* is null */
7653 } else {
7654 var2 = 1; /* arg is null and recv is not */
7655 }
7656 if (0) {
7657 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>*/
7658 var2 = var3;
7659 }
7660 if (var2){
7661 {
7662 core___core__Array___core__abstract_collection__SimpleCollection__add(var_listnode2, var_tcommentnode1); /* Direct call array$Array$add on <var_listnode2:Array[Object]>*/
7663 }
7664 } else {
7665 }
7666 var_node_list = var_listnode2;
7667 var4 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction1097> */
7668 {
7669 var5 = nitc___nitc__Parser___go_to(var_p, var4);
7670 }
7671 {
7672 nitc___nitc__Parser___push(var_p, var5, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
7673 }
7674 RET_LABEL:;
7675 }
7676 /* method parser$ReduceAction1098$action for (self: ReduceAction1098, Parser) */
7677 void nitc__parser___nitc__parser__ReduceAction1098___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
7678 val* var_p /* var p: Parser */;
7679 val* var_node_list /* var node_list: nullable Object */;
7680 val* var /* : nullable Object */;
7681 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7682 val* var1 /* : nullable Object */;
7683 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7684 val* var2 /* : Array[Object] */;
7685 val* var_listnode3 /* var listnode3: Array[Object] */;
7686 val* var_listnode1 /* var listnode1: nullable Object */;
7687 short int var3 /* : Bool */;
7688 int cltype;
7689 int idtype;
7690 val* var_tcommentnode2 /* var tcommentnode2: nullable Object */;
7691 val* var4 /* : Array[Object] */;
7692 short int var5 /* : Bool */;
7693 short int var6 /* : Bool */;
7694 long var7 /* : Int */;
7695 long var8 /* : Int */;
7696 var_p = p0;
7697 var_node_list = ((val*)NULL);
7698 {
7699 var = nitc___nitc__Parser___pop(var_p);
7700 }
7701 var_nodearraylist2 = var;
7702 {
7703 var1 = nitc___nitc__Parser___pop(var_p);
7704 }
7705 var_nodearraylist1 = var1;
7706 var2 = NEW_core__Array(&type_core__Array__core__Object);
7707 {
7708 core___core__Array___core__kernel__Object__init(var2); /* Direct call array$Array$init on <var2:Array[Object]>*/
7709 }
7710 var_listnode3 = var2;
7711 var_listnode1 = var_nodearraylist1;
7712 /* <var_listnode1:nullable Object> isa Array[Object] */
7713 cltype = type_core__Array__core__Object.color;
7714 idtype = type_core__Array__core__Object.id;
7715 if(var_listnode1 == NULL) {
7716 var3 = 0;
7717 } else {
7718 if(cltype >= (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->table_size) {
7719 var3 = 0;
7720 } else {
7721 var3 = (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->type_table[cltype] == idtype;
7722 }
7723 }
7724 if (unlikely(!var3)) {
7725 if(catchStack.cursor >= 0){
7726 longjmp(catchStack.envs[catchStack.cursor], 1);
7727 }
7728 PRINT_ERROR("Runtime error: %s", "Assert failed");
7729 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 12775);
7730 fatal_exit(1);
7731 }
7732 var_tcommentnode2 = var_nodearraylist2;
7733 {
7734 var4 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode1);
7735 }
7736 var_listnode3 = var4;
7737 if (var_tcommentnode2 == NULL) {
7738 var5 = 0; /* is null */
7739 } else {
7740 var5 = 1; /* arg is null and recv is not */
7741 }
7742 if (0) {
7743 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>*/
7744 var5 = var6;
7745 }
7746 if (var5){
7747 {
7748 core___core__Array___core__abstract_collection__SimpleCollection__add(var_listnode3, var_tcommentnode2); /* Direct call array$Array$add on <var_listnode3:Array[Object]>*/
7749 }
7750 } else {
7751 }
7752 var_node_list = var_listnode3;
7753 var7 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction1098> */
7754 {
7755 var8 = nitc___nitc__Parser___go_to(var_p, var7);
7756 }
7757 {
7758 nitc___nitc__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
7759 }
7760 RET_LABEL:;
7761 }