Merge: doc: fixed some typos and other misc. corrections
[nit.git] / c_src / nitc__parser.sep.5.c
1 #include "nitc__parser.sep.0.h"
2 /* method parser$ReduceAction234$action for (self: ReduceAction234, Parser) */
3 void nitc__parser___nitc__parser__ReduceAction234___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_nodearraylist8 /* var nodearraylist8: nullable Object */;
8 val* var1 /* : nullable Object */;
9 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
10 val* var2 /* : nullable Object */;
11 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
12 val* var3 /* : nullable Object */;
13 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
14 val* var4 /* : nullable Object */;
15 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
16 val* var5 /* : nullable Object */;
17 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
18 val* var6 /* : nullable Object */;
19 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
20 val* var7 /* : nullable Object */;
21 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
22 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
23 short int var8 /* : Bool */;
24 int cltype;
25 int idtype;
26 val* var9 /* : Array[Object] */;
27 val* var_listnode6 /* var listnode6: Array[Object] */;
28 val* var_listnode5 /* var listnode5: nullable Object */;
29 short int var10 /* : Bool */;
30 int cltype11;
31 int idtype12;
32 val* var13 /* : Array[Object] */;
33 val* var_tclassidnode7 /* var tclassidnode7: nullable Object */;
34 short int var14 /* : Bool */;
35 int cltype15;
36 int idtype16;
37 val* var17 /* : AQualified */;
38 val* var_pqualifiednode4 /* var pqualifiednode4: nullable AQualified */;
39 val* var_tidnode8 /* var tidnode8: nullable Object */;
40 short int var18 /* : Bool */;
41 int cltype19;
42 int idtype20;
43 val* var21 /* : AQid */;
44 val* var_pqidnode3 /* var pqidnode3: nullable AQid */;
45 val* var22 /* : Array[Object] */;
46 val* var_listnode10 /* var listnode10: Array[Object] */;
47 val* var23 /* : AListExprs */;
48 val* var_pexprsnode9 /* var pexprsnode9: nullable AListExprs */;
49 val* var_passignopnode11 /* var passignopnode11: nullable Object */;
50 short int var24 /* : Bool */;
51 int cltype25;
52 int idtype26;
53 val* var_pexprnode12 /* var pexprnode12: nullable Object */;
54 short int var27 /* : Bool */;
55 int cltype28;
56 int idtype29;
57 val* var30 /* : ACallReassignExpr */;
58 val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */;
59 long var31 /* : Int */;
60 long var32 /* : Int */;
61 var_p = p0;
62 var_node_list = ((val*)NULL);
63 {
64 var = nitc___nitc__Parser___pop(var_p);
65 }
66 var_nodearraylist8 = var;
67 {
68 var1 = nitc___nitc__Parser___pop(var_p);
69 }
70 var_nodearraylist7 = var1;
71 {
72 var2 = nitc___nitc__Parser___pop(var_p);
73 }
74 var_nodearraylist6 = var2;
75 {
76 var3 = nitc___nitc__Parser___pop(var_p);
77 }
78 var_nodearraylist5 = var3;
79 {
80 var4 = nitc___nitc__Parser___pop(var_p);
81 }
82 var_nodearraylist4 = var4;
83 {
84 var5 = nitc___nitc__Parser___pop(var_p);
85 }
86 var_nodearraylist3 = var5;
87 {
88 var6 = nitc___nitc__Parser___pop(var_p);
89 }
90 var_nodearraylist2 = var6;
91 {
92 var7 = nitc___nitc__Parser___pop(var_p);
93 }
94 var_nodearraylist1 = var7;
95 var_pexprnode2 = var_nodearraylist1;
96 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
97 cltype = type_nullable__nitc__AExpr.color;
98 idtype = type_nullable__nitc__AExpr.id;
99 if(var_pexprnode2 == NULL) {
100 var8 = 1;
101 } else {
102 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
103 var8 = 0;
104 } else {
105 var8 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
106 }
107 }
108 if (unlikely(!var8)) {
109 if(catchStack.cursor >= 0){
110 longjmp(catchStack.envs[catchStack.cursor], 1);
111 }
112 PRINT_ERROR("Runtime error: %s", "Assert failed");
113 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 6987);
114 fatal_exit(1);
115 }
116 var9 = NEW_core__Array(&type_core__Array__core__Object);
117 {
118 core___core__Array___core__kernel__Object__init(var9); /* Direct call array$Array$init on <var9:Array[Object]>*/
119 }
120 var_listnode6 = var9;
121 var_listnode5 = var_nodearraylist4;
122 /* <var_listnode5:nullable Object> isa Array[Object] */
123 cltype11 = type_core__Array__core__Object.color;
124 idtype12 = type_core__Array__core__Object.id;
125 if(var_listnode5 == NULL) {
126 var10 = 0;
127 } else {
128 if(cltype11 >= (((long)var_listnode5&3)?type_info[((long)var_listnode5&3)]:var_listnode5->type)->table_size) {
129 var10 = 0;
130 } else {
131 var10 = (((long)var_listnode5&3)?type_info[((long)var_listnode5&3)]:var_listnode5->type)->type_table[cltype11] == idtype12;
132 }
133 }
134 if (unlikely(!var10)) {
135 if(catchStack.cursor >= 0){
136 longjmp(catchStack.envs[catchStack.cursor], 1);
137 }
138 PRINT_ERROR("Runtime error: %s", "Assert failed");
139 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 6990);
140 fatal_exit(1);
141 }
142 {
143 var13 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode6, var_listnode5);
144 }
145 var_listnode6 = var13;
146 var_tclassidnode7 = var_nodearraylist5;
147 /* <var_tclassidnode7:nullable Object> isa nullable TClassid */
148 cltype15 = type_nullable__nitc__TClassid.color;
149 idtype16 = type_nullable__nitc__TClassid.id;
150 if(var_tclassidnode7 == NULL) {
151 var14 = 1;
152 } else {
153 if(cltype15 >= (((long)var_tclassidnode7&3)?type_info[((long)var_tclassidnode7&3)]:var_tclassidnode7->type)->table_size) {
154 var14 = 0;
155 } else {
156 var14 = (((long)var_tclassidnode7&3)?type_info[((long)var_tclassidnode7&3)]:var_tclassidnode7->type)->type_table[cltype15] == idtype16;
157 }
158 }
159 if (unlikely(!var14)) {
160 if(catchStack.cursor >= 0){
161 longjmp(catchStack.envs[catchStack.cursor], 1);
162 }
163 PRINT_ERROR("Runtime error: %s", "Assert failed");
164 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 6993);
165 fatal_exit(1);
166 }
167 var17 = NEW_nitc__AQualified(&type_nitc__AQualified);
168 {
169 nitc__parser_prod___AQualified___init_aqualified(var17, var_listnode6, var_tclassidnode7); /* Direct call parser_prod$AQualified$init_aqualified on <var17:AQualified>*/
170 }
171 var_pqualifiednode4 = var17;
172 var_tidnode8 = var_nodearraylist6;
173 /* <var_tidnode8:nullable Object> isa nullable TId */
174 cltype19 = type_nullable__nitc__TId.color;
175 idtype20 = type_nullable__nitc__TId.id;
176 if(var_tidnode8 == NULL) {
177 var18 = 1;
178 } else {
179 if(cltype19 >= (((long)var_tidnode8&3)?type_info[((long)var_tidnode8&3)]:var_tidnode8->type)->table_size) {
180 var18 = 0;
181 } else {
182 var18 = (((long)var_tidnode8&3)?type_info[((long)var_tidnode8&3)]:var_tidnode8->type)->type_table[cltype19] == idtype20;
183 }
184 }
185 if (unlikely(!var18)) {
186 if(catchStack.cursor >= 0){
187 longjmp(catchStack.envs[catchStack.cursor], 1);
188 }
189 PRINT_ERROR("Runtime error: %s", "Assert failed");
190 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 6999);
191 fatal_exit(1);
192 }
193 var21 = NEW_nitc__AQid(&type_nitc__AQid);
194 {
195 nitc__parser_prod___AQid___init_aqid(var21, var_pqualifiednode4, var_tidnode8); /* Direct call parser_prod$AQid$init_aqid on <var21:AQid>*/
196 }
197 var_pqidnode3 = var21;
198 var22 = NEW_core__Array(&type_core__Array__core__Object);
199 {
200 core___core__Array___core__kernel__Object__init(var22); /* Direct call array$Array$init on <var22:Array[Object]>*/
201 }
202 var_listnode10 = var22;
203 var23 = NEW_nitc__AListExprs(&type_nitc__AListExprs);
204 {
205 nitc__parser_prod___AListExprs___init_alistexprs(var23, var_listnode10); /* Direct call parser_prod$AListExprs$init_alistexprs on <var23:AListExprs>*/
206 }
207 var_pexprsnode9 = var23;
208 var_passignopnode11 = var_nodearraylist7;
209 /* <var_passignopnode11:nullable Object> isa nullable AAssignOp */
210 cltype25 = type_nullable__nitc__AAssignOp.color;
211 idtype26 = type_nullable__nitc__AAssignOp.id;
212 if(var_passignopnode11 == NULL) {
213 var24 = 1;
214 } else {
215 if(cltype25 >= (((long)var_passignopnode11&3)?type_info[((long)var_passignopnode11&3)]:var_passignopnode11->type)->table_size) {
216 var24 = 0;
217 } else {
218 var24 = (((long)var_passignopnode11&3)?type_info[((long)var_passignopnode11&3)]:var_passignopnode11->type)->type_table[cltype25] == idtype26;
219 }
220 }
221 if (unlikely(!var24)) {
222 if(catchStack.cursor >= 0){
223 longjmp(catchStack.envs[catchStack.cursor], 1);
224 }
225 PRINT_ERROR("Runtime error: %s", "Assert failed");
226 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7009);
227 fatal_exit(1);
228 }
229 var_pexprnode12 = var_nodearraylist8;
230 /* <var_pexprnode12:nullable Object> isa nullable AExpr */
231 cltype28 = type_nullable__nitc__AExpr.color;
232 idtype29 = type_nullable__nitc__AExpr.id;
233 if(var_pexprnode12 == NULL) {
234 var27 = 1;
235 } else {
236 if(cltype28 >= (((long)var_pexprnode12&3)?type_info[((long)var_pexprnode12&3)]:var_pexprnode12->type)->table_size) {
237 var27 = 0;
238 } else {
239 var27 = (((long)var_pexprnode12&3)?type_info[((long)var_pexprnode12&3)]:var_pexprnode12->type)->type_table[cltype28] == idtype29;
240 }
241 }
242 if (unlikely(!var27)) {
243 if(catchStack.cursor >= 0){
244 longjmp(catchStack.envs[catchStack.cursor], 1);
245 }
246 PRINT_ERROR("Runtime error: %s", "Assert failed");
247 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7011);
248 fatal_exit(1);
249 }
250 var30 = NEW_nitc__ACallReassignExpr(&type_nitc__ACallReassignExpr);
251 {
252 nitc__parser_prod___ACallReassignExpr___init_acallreassignexpr(var30, var_pexprnode2, var_pqidnode3, var_pexprsnode9, var_passignopnode11, var_pexprnode12); /* Direct call parser_prod$ACallReassignExpr$init_acallreassignexpr on <var30:ACallReassignExpr>*/
253 }
254 var_pexprnode1 = var30;
255 var_node_list = var_pexprnode1;
256 var31 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction234> */
257 {
258 var32 = nitc___nitc__Parser___go_to(var_p, var31);
259 }
260 {
261 nitc___nitc__Parser___push(var_p, var32, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
262 }
263 RET_LABEL:;
264 }
265 /* method parser$ReduceAction235$action for (self: ReduceAction235, Parser) */
266 void nitc__parser___nitc__parser__ReduceAction235___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
267 val* var_p /* var p: Parser */;
268 val* var_node_list /* var node_list: nullable Object */;
269 val* var /* : nullable Object */;
270 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
271 val* var1 /* : nullable Object */;
272 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
273 val* var2 /* : nullable Object */;
274 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
275 val* var3 /* : nullable Object */;
276 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
277 val* var4 /* : nullable Object */;
278 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
279 val* var5 /* : nullable Object */;
280 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
281 val* var6 /* : nullable Object */;
282 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
283 val* var7 /* : nullable Object */;
284 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
285 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
286 short int var8 /* : Bool */;
287 int cltype;
288 int idtype;
289 val* var9 /* : Array[Object] */;
290 val* var_listnode6 /* var listnode6: Array[Object] */;
291 val* var_listnode5 /* var listnode5: nullable Object */;
292 short int var10 /* : Bool */;
293 int cltype11;
294 int idtype12;
295 val* var13 /* : Array[Object] */;
296 val* var14 /* : AQualified */;
297 val* var_pqualifiednode4 /* var pqualifiednode4: nullable AQualified */;
298 val* var_tidnode8 /* var tidnode8: nullable Object */;
299 short int var15 /* : Bool */;
300 int cltype16;
301 int idtype17;
302 val* var18 /* : AQid */;
303 val* var_pqidnode3 /* var pqidnode3: nullable AQid */;
304 val* var_pexprsnode9 /* var pexprsnode9: nullable Object */;
305 short int var19 /* : Bool */;
306 int cltype20;
307 int idtype21;
308 val* var_passignopnode10 /* var passignopnode10: nullable Object */;
309 short int var22 /* : Bool */;
310 int cltype23;
311 int idtype24;
312 val* var_pexprnode11 /* var pexprnode11: nullable Object */;
313 short int var25 /* : Bool */;
314 int cltype26;
315 int idtype27;
316 val* var28 /* : ACallReassignExpr */;
317 val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */;
318 long var29 /* : Int */;
319 long var30 /* : Int */;
320 var_p = p0;
321 var_node_list = ((val*)NULL);
322 {
323 var = nitc___nitc__Parser___pop(var_p);
324 }
325 var_nodearraylist8 = var;
326 {
327 var1 = nitc___nitc__Parser___pop(var_p);
328 }
329 var_nodearraylist7 = var1;
330 {
331 var2 = nitc___nitc__Parser___pop(var_p);
332 }
333 var_nodearraylist6 = var2;
334 {
335 var3 = nitc___nitc__Parser___pop(var_p);
336 }
337 var_nodearraylist5 = var3;
338 {
339 var4 = nitc___nitc__Parser___pop(var_p);
340 }
341 var_nodearraylist4 = var4;
342 {
343 var5 = nitc___nitc__Parser___pop(var_p);
344 }
345 var_nodearraylist3 = var5;
346 {
347 var6 = nitc___nitc__Parser___pop(var_p);
348 }
349 var_nodearraylist2 = var6;
350 {
351 var7 = nitc___nitc__Parser___pop(var_p);
352 }
353 var_nodearraylist1 = var7;
354 var_pexprnode2 = var_nodearraylist1;
355 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
356 cltype = type_nullable__nitc__AExpr.color;
357 idtype = type_nullable__nitc__AExpr.id;
358 if(var_pexprnode2 == NULL) {
359 var8 = 1;
360 } else {
361 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
362 var8 = 0;
363 } else {
364 var8 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
365 }
366 }
367 if (unlikely(!var8)) {
368 if(catchStack.cursor >= 0){
369 longjmp(catchStack.envs[catchStack.cursor], 1);
370 }
371 PRINT_ERROR("Runtime error: %s", "Assert failed");
372 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7037);
373 fatal_exit(1);
374 }
375 var9 = NEW_core__Array(&type_core__Array__core__Object);
376 {
377 core___core__Array___core__kernel__Object__init(var9); /* Direct call array$Array$init on <var9:Array[Object]>*/
378 }
379 var_listnode6 = var9;
380 var_listnode5 = var_nodearraylist4;
381 /* <var_listnode5:nullable Object> isa Array[Object] */
382 cltype11 = type_core__Array__core__Object.color;
383 idtype12 = type_core__Array__core__Object.id;
384 if(var_listnode5 == NULL) {
385 var10 = 0;
386 } else {
387 if(cltype11 >= (((long)var_listnode5&3)?type_info[((long)var_listnode5&3)]:var_listnode5->type)->table_size) {
388 var10 = 0;
389 } else {
390 var10 = (((long)var_listnode5&3)?type_info[((long)var_listnode5&3)]:var_listnode5->type)->type_table[cltype11] == idtype12;
391 }
392 }
393 if (unlikely(!var10)) {
394 if(catchStack.cursor >= 0){
395 longjmp(catchStack.envs[catchStack.cursor], 1);
396 }
397 PRINT_ERROR("Runtime error: %s", "Assert failed");
398 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7040);
399 fatal_exit(1);
400 }
401 {
402 var13 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode6, var_listnode5);
403 }
404 var_listnode6 = var13;
405 var14 = NEW_nitc__AQualified(&type_nitc__AQualified);
406 {
407 nitc__parser_prod___AQualified___init_aqualified(var14, var_listnode6, ((val*)NULL)); /* Direct call parser_prod$AQualified$init_aqualified on <var14:AQualified>*/
408 }
409 var_pqualifiednode4 = var14;
410 var_tidnode8 = var_nodearraylist5;
411 /* <var_tidnode8:nullable Object> isa nullable TId */
412 cltype16 = type_nullable__nitc__TId.color;
413 idtype17 = type_nullable__nitc__TId.id;
414 if(var_tidnode8 == NULL) {
415 var15 = 1;
416 } else {
417 if(cltype16 >= (((long)var_tidnode8&3)?type_info[((long)var_tidnode8&3)]:var_tidnode8->type)->table_size) {
418 var15 = 0;
419 } else {
420 var15 = (((long)var_tidnode8&3)?type_info[((long)var_tidnode8&3)]:var_tidnode8->type)->type_table[cltype16] == idtype17;
421 }
422 }
423 if (unlikely(!var15)) {
424 if(catchStack.cursor >= 0){
425 longjmp(catchStack.envs[catchStack.cursor], 1);
426 }
427 PRINT_ERROR("Runtime error: %s", "Assert failed");
428 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7047);
429 fatal_exit(1);
430 }
431 var18 = NEW_nitc__AQid(&type_nitc__AQid);
432 {
433 nitc__parser_prod___AQid___init_aqid(var18, var_pqualifiednode4, var_tidnode8); /* Direct call parser_prod$AQid$init_aqid on <var18:AQid>*/
434 }
435 var_pqidnode3 = var18;
436 var_pexprsnode9 = var_nodearraylist6;
437 /* <var_pexprsnode9:nullable Object> isa nullable AExprs */
438 cltype20 = type_nullable__nitc__AExprs.color;
439 idtype21 = type_nullable__nitc__AExprs.id;
440 if(var_pexprsnode9 == NULL) {
441 var19 = 1;
442 } else {
443 if(cltype20 >= (((long)var_pexprsnode9&3)?type_info[((long)var_pexprsnode9&3)]:var_pexprsnode9->type)->table_size) {
444 var19 = 0;
445 } else {
446 var19 = (((long)var_pexprsnode9&3)?type_info[((long)var_pexprsnode9&3)]:var_pexprsnode9->type)->type_table[cltype20] == idtype21;
447 }
448 }
449 if (unlikely(!var19)) {
450 if(catchStack.cursor >= 0){
451 longjmp(catchStack.envs[catchStack.cursor], 1);
452 }
453 PRINT_ERROR("Runtime error: %s", "Assert failed");
454 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7053);
455 fatal_exit(1);
456 }
457 var_passignopnode10 = var_nodearraylist7;
458 /* <var_passignopnode10:nullable Object> isa nullable AAssignOp */
459 cltype23 = type_nullable__nitc__AAssignOp.color;
460 idtype24 = type_nullable__nitc__AAssignOp.id;
461 if(var_passignopnode10 == NULL) {
462 var22 = 1;
463 } else {
464 if(cltype23 >= (((long)var_passignopnode10&3)?type_info[((long)var_passignopnode10&3)]:var_passignopnode10->type)->table_size) {
465 var22 = 0;
466 } else {
467 var22 = (((long)var_passignopnode10&3)?type_info[((long)var_passignopnode10&3)]:var_passignopnode10->type)->type_table[cltype23] == idtype24;
468 }
469 }
470 if (unlikely(!var22)) {
471 if(catchStack.cursor >= 0){
472 longjmp(catchStack.envs[catchStack.cursor], 1);
473 }
474 PRINT_ERROR("Runtime error: %s", "Assert failed");
475 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7055);
476 fatal_exit(1);
477 }
478 var_pexprnode11 = var_nodearraylist8;
479 /* <var_pexprnode11:nullable Object> isa nullable AExpr */
480 cltype26 = type_nullable__nitc__AExpr.color;
481 idtype27 = type_nullable__nitc__AExpr.id;
482 if(var_pexprnode11 == NULL) {
483 var25 = 1;
484 } else {
485 if(cltype26 >= (((long)var_pexprnode11&3)?type_info[((long)var_pexprnode11&3)]:var_pexprnode11->type)->table_size) {
486 var25 = 0;
487 } else {
488 var25 = (((long)var_pexprnode11&3)?type_info[((long)var_pexprnode11&3)]:var_pexprnode11->type)->type_table[cltype26] == idtype27;
489 }
490 }
491 if (unlikely(!var25)) {
492 if(catchStack.cursor >= 0){
493 longjmp(catchStack.envs[catchStack.cursor], 1);
494 }
495 PRINT_ERROR("Runtime error: %s", "Assert failed");
496 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7057);
497 fatal_exit(1);
498 }
499 var28 = NEW_nitc__ACallReassignExpr(&type_nitc__ACallReassignExpr);
500 {
501 nitc__parser_prod___ACallReassignExpr___init_acallreassignexpr(var28, var_pexprnode2, var_pqidnode3, var_pexprsnode9, var_passignopnode10, var_pexprnode11); /* Direct call parser_prod$ACallReassignExpr$init_acallreassignexpr on <var28:ACallReassignExpr>*/
502 }
503 var_pexprnode1 = var28;
504 var_node_list = var_pexprnode1;
505 var29 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction235> */
506 {
507 var30 = nitc___nitc__Parser___go_to(var_p, var29);
508 }
509 {
510 nitc___nitc__Parser___push(var_p, var30, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
511 }
512 RET_LABEL:;
513 }
514 /* method parser$ReduceAction236$action for (self: ReduceAction236, Parser) */
515 void nitc__parser___nitc__parser__ReduceAction236___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
516 val* var_p /* var p: Parser */;
517 val* var_node_list /* var node_list: nullable Object */;
518 val* var /* : nullable Object */;
519 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
520 val* var1 /* : nullable Object */;
521 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
522 val* var2 /* : nullable Object */;
523 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
524 val* var3 /* : nullable Object */;
525 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
526 val* var4 /* : nullable Object */;
527 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
528 val* var5 /* : nullable Object */;
529 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
530 val* var6 /* : nullable Object */;
531 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
532 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
533 short int var7 /* : Bool */;
534 int cltype;
535 int idtype;
536 val* var8 /* : Array[Object] */;
537 val* var_listnode6 /* var listnode6: Array[Object] */;
538 val* var_listnode5 /* var listnode5: nullable Object */;
539 short int var9 /* : Bool */;
540 int cltype10;
541 int idtype11;
542 val* var12 /* : Array[Object] */;
543 val* var13 /* : AQualified */;
544 val* var_pqualifiednode4 /* var pqualifiednode4: nullable AQualified */;
545 val* var_tidnode8 /* var tidnode8: nullable Object */;
546 short int var14 /* : Bool */;
547 int cltype15;
548 int idtype16;
549 val* var17 /* : AQid */;
550 val* var_pqidnode3 /* var pqidnode3: nullable AQid */;
551 val* var18 /* : Array[Object] */;
552 val* var_listnode10 /* var listnode10: Array[Object] */;
553 val* var19 /* : AListExprs */;
554 val* var_pexprsnode9 /* var pexprsnode9: nullable AListExprs */;
555 val* var_passignopnode11 /* var passignopnode11: nullable Object */;
556 short int var20 /* : Bool */;
557 int cltype21;
558 int idtype22;
559 val* var_pexprnode12 /* var pexprnode12: nullable Object */;
560 short int var23 /* : Bool */;
561 int cltype24;
562 int idtype25;
563 val* var26 /* : ACallReassignExpr */;
564 val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */;
565 long var27 /* : Int */;
566 long var28 /* : Int */;
567 var_p = p0;
568 var_node_list = ((val*)NULL);
569 {
570 var = nitc___nitc__Parser___pop(var_p);
571 }
572 var_nodearraylist7 = var;
573 {
574 var1 = nitc___nitc__Parser___pop(var_p);
575 }
576 var_nodearraylist6 = var1;
577 {
578 var2 = nitc___nitc__Parser___pop(var_p);
579 }
580 var_nodearraylist5 = var2;
581 {
582 var3 = nitc___nitc__Parser___pop(var_p);
583 }
584 var_nodearraylist4 = var3;
585 {
586 var4 = nitc___nitc__Parser___pop(var_p);
587 }
588 var_nodearraylist3 = var4;
589 {
590 var5 = nitc___nitc__Parser___pop(var_p);
591 }
592 var_nodearraylist2 = var5;
593 {
594 var6 = nitc___nitc__Parser___pop(var_p);
595 }
596 var_nodearraylist1 = var6;
597 var_pexprnode2 = var_nodearraylist1;
598 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
599 cltype = type_nullable__nitc__AExpr.color;
600 idtype = type_nullable__nitc__AExpr.id;
601 if(var_pexprnode2 == NULL) {
602 var7 = 1;
603 } else {
604 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
605 var7 = 0;
606 } else {
607 var7 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
608 }
609 }
610 if (unlikely(!var7)) {
611 if(catchStack.cursor >= 0){
612 longjmp(catchStack.envs[catchStack.cursor], 1);
613 }
614 PRINT_ERROR("Runtime error: %s", "Assert failed");
615 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7082);
616 fatal_exit(1);
617 }
618 var8 = NEW_core__Array(&type_core__Array__core__Object);
619 {
620 core___core__Array___core__kernel__Object__init(var8); /* Direct call array$Array$init on <var8:Array[Object]>*/
621 }
622 var_listnode6 = var8;
623 var_listnode5 = var_nodearraylist4;
624 /* <var_listnode5:nullable Object> isa Array[Object] */
625 cltype10 = type_core__Array__core__Object.color;
626 idtype11 = type_core__Array__core__Object.id;
627 if(var_listnode5 == NULL) {
628 var9 = 0;
629 } else {
630 if(cltype10 >= (((long)var_listnode5&3)?type_info[((long)var_listnode5&3)]:var_listnode5->type)->table_size) {
631 var9 = 0;
632 } else {
633 var9 = (((long)var_listnode5&3)?type_info[((long)var_listnode5&3)]:var_listnode5->type)->type_table[cltype10] == idtype11;
634 }
635 }
636 if (unlikely(!var9)) {
637 if(catchStack.cursor >= 0){
638 longjmp(catchStack.envs[catchStack.cursor], 1);
639 }
640 PRINT_ERROR("Runtime error: %s", "Assert failed");
641 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7085);
642 fatal_exit(1);
643 }
644 {
645 var12 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode6, var_listnode5);
646 }
647 var_listnode6 = var12;
648 var13 = NEW_nitc__AQualified(&type_nitc__AQualified);
649 {
650 nitc__parser_prod___AQualified___init_aqualified(var13, var_listnode6, ((val*)NULL)); /* Direct call parser_prod$AQualified$init_aqualified on <var13:AQualified>*/
651 }
652 var_pqualifiednode4 = var13;
653 var_tidnode8 = var_nodearraylist5;
654 /* <var_tidnode8:nullable Object> isa nullable TId */
655 cltype15 = type_nullable__nitc__TId.color;
656 idtype16 = type_nullable__nitc__TId.id;
657 if(var_tidnode8 == NULL) {
658 var14 = 1;
659 } else {
660 if(cltype15 >= (((long)var_tidnode8&3)?type_info[((long)var_tidnode8&3)]:var_tidnode8->type)->table_size) {
661 var14 = 0;
662 } else {
663 var14 = (((long)var_tidnode8&3)?type_info[((long)var_tidnode8&3)]:var_tidnode8->type)->type_table[cltype15] == idtype16;
664 }
665 }
666 if (unlikely(!var14)) {
667 if(catchStack.cursor >= 0){
668 longjmp(catchStack.envs[catchStack.cursor], 1);
669 }
670 PRINT_ERROR("Runtime error: %s", "Assert failed");
671 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7092);
672 fatal_exit(1);
673 }
674 var17 = NEW_nitc__AQid(&type_nitc__AQid);
675 {
676 nitc__parser_prod___AQid___init_aqid(var17, var_pqualifiednode4, var_tidnode8); /* Direct call parser_prod$AQid$init_aqid on <var17:AQid>*/
677 }
678 var_pqidnode3 = var17;
679 var18 = NEW_core__Array(&type_core__Array__core__Object);
680 {
681 core___core__Array___core__kernel__Object__init(var18); /* Direct call array$Array$init on <var18:Array[Object]>*/
682 }
683 var_listnode10 = var18;
684 var19 = NEW_nitc__AListExprs(&type_nitc__AListExprs);
685 {
686 nitc__parser_prod___AListExprs___init_alistexprs(var19, var_listnode10); /* Direct call parser_prod$AListExprs$init_alistexprs on <var19:AListExprs>*/
687 }
688 var_pexprsnode9 = var19;
689 var_passignopnode11 = var_nodearraylist6;
690 /* <var_passignopnode11:nullable Object> isa nullable AAssignOp */
691 cltype21 = type_nullable__nitc__AAssignOp.color;
692 idtype22 = type_nullable__nitc__AAssignOp.id;
693 if(var_passignopnode11 == NULL) {
694 var20 = 1;
695 } else {
696 if(cltype21 >= (((long)var_passignopnode11&3)?type_info[((long)var_passignopnode11&3)]:var_passignopnode11->type)->table_size) {
697 var20 = 0;
698 } else {
699 var20 = (((long)var_passignopnode11&3)?type_info[((long)var_passignopnode11&3)]:var_passignopnode11->type)->type_table[cltype21] == idtype22;
700 }
701 }
702 if (unlikely(!var20)) {
703 if(catchStack.cursor >= 0){
704 longjmp(catchStack.envs[catchStack.cursor], 1);
705 }
706 PRINT_ERROR("Runtime error: %s", "Assert failed");
707 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7102);
708 fatal_exit(1);
709 }
710 var_pexprnode12 = var_nodearraylist7;
711 /* <var_pexprnode12:nullable Object> isa nullable AExpr */
712 cltype24 = type_nullable__nitc__AExpr.color;
713 idtype25 = type_nullable__nitc__AExpr.id;
714 if(var_pexprnode12 == NULL) {
715 var23 = 1;
716 } else {
717 if(cltype24 >= (((long)var_pexprnode12&3)?type_info[((long)var_pexprnode12&3)]:var_pexprnode12->type)->table_size) {
718 var23 = 0;
719 } else {
720 var23 = (((long)var_pexprnode12&3)?type_info[((long)var_pexprnode12&3)]:var_pexprnode12->type)->type_table[cltype24] == idtype25;
721 }
722 }
723 if (unlikely(!var23)) {
724 if(catchStack.cursor >= 0){
725 longjmp(catchStack.envs[catchStack.cursor], 1);
726 }
727 PRINT_ERROR("Runtime error: %s", "Assert failed");
728 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7104);
729 fatal_exit(1);
730 }
731 var26 = NEW_nitc__ACallReassignExpr(&type_nitc__ACallReassignExpr);
732 {
733 nitc__parser_prod___ACallReassignExpr___init_acallreassignexpr(var26, var_pexprnode2, var_pqidnode3, var_pexprsnode9, var_passignopnode11, var_pexprnode12); /* Direct call parser_prod$ACallReassignExpr$init_acallreassignexpr on <var26:ACallReassignExpr>*/
734 }
735 var_pexprnode1 = var26;
736 var_node_list = var_pexprnode1;
737 var27 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction236> */
738 {
739 var28 = nitc___nitc__Parser___go_to(var_p, var27);
740 }
741 {
742 nitc___nitc__Parser___push(var_p, var28, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
743 }
744 RET_LABEL:;
745 }
746 /* method parser$ReduceAction237$action for (self: ReduceAction237, Parser) */
747 void nitc__parser___nitc__parser__ReduceAction237___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
748 val* var_p /* var p: Parser */;
749 val* var_node_list /* var node_list: nullable Object */;
750 val* var /* : nullable Object */;
751 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
752 val* var1 /* : nullable Object */;
753 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
754 val* var2 /* : nullable Object */;
755 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
756 val* var3 /* : nullable Object */;
757 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
758 val* var4 /* : AImplicitSelfExpr */;
759 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
760 val* var_tidnode5 /* var tidnode5: nullable Object */;
761 short int var5 /* : Bool */;
762 int cltype;
763 int idtype;
764 val* var6 /* : AQid */;
765 val* var_pqidnode3 /* var pqidnode3: nullable AQid */;
766 val* var_pexprsnode6 /* var pexprsnode6: nullable Object */;
767 short int var7 /* : Bool */;
768 int cltype8;
769 int idtype9;
770 val* var_passignopnode7 /* var passignopnode7: nullable Object */;
771 short int var10 /* : Bool */;
772 int cltype11;
773 int idtype12;
774 val* var_pexprnode8 /* var pexprnode8: nullable Object */;
775 short int var13 /* : Bool */;
776 int cltype14;
777 int idtype15;
778 val* var16 /* : ACallReassignExpr */;
779 val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */;
780 long var17 /* : Int */;
781 long var18 /* : Int */;
782 var_p = p0;
783 var_node_list = ((val*)NULL);
784 {
785 var = nitc___nitc__Parser___pop(var_p);
786 }
787 var_nodearraylist4 = var;
788 {
789 var1 = nitc___nitc__Parser___pop(var_p);
790 }
791 var_nodearraylist3 = var1;
792 {
793 var2 = nitc___nitc__Parser___pop(var_p);
794 }
795 var_nodearraylist2 = var2;
796 {
797 var3 = nitc___nitc__Parser___pop(var_p);
798 }
799 var_nodearraylist1 = var3;
800 var4 = NEW_nitc__AImplicitSelfExpr(&type_nitc__AImplicitSelfExpr);
801 {
802 nitc__parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(var4); /* Direct call parser_prod$AImplicitSelfExpr$init_aimplicitselfexpr on <var4:AImplicitSelfExpr>*/
803 }
804 var_pexprnode2 = var4;
805 var_tidnode5 = var_nodearraylist1;
806 /* <var_tidnode5:nullable Object> isa nullable TId */
807 cltype = type_nullable__nitc__TId.color;
808 idtype = type_nullable__nitc__TId.id;
809 if(var_tidnode5 == NULL) {
810 var5 = 1;
811 } else {
812 if(cltype >= (((long)var_tidnode5&3)?type_info[((long)var_tidnode5&3)]:var_tidnode5->type)->table_size) {
813 var5 = 0;
814 } else {
815 var5 = (((long)var_tidnode5&3)?type_info[((long)var_tidnode5&3)]:var_tidnode5->type)->type_table[cltype] == idtype;
816 }
817 }
818 if (unlikely(!var5)) {
819 if(catchStack.cursor >= 0){
820 longjmp(catchStack.envs[catchStack.cursor], 1);
821 }
822 PRINT_ERROR("Runtime error: %s", "Assert failed");
823 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7127);
824 fatal_exit(1);
825 }
826 var6 = NEW_nitc__AQid(&type_nitc__AQid);
827 {
828 nitc__parser_prod___AQid___init_aqid(var6, ((val*)NULL), var_tidnode5); /* Direct call parser_prod$AQid$init_aqid on <var6:AQid>*/
829 }
830 var_pqidnode3 = var6;
831 var_pexprsnode6 = var_nodearraylist2;
832 /* <var_pexprsnode6:nullable Object> isa nullable AExprs */
833 cltype8 = type_nullable__nitc__AExprs.color;
834 idtype9 = type_nullable__nitc__AExprs.id;
835 if(var_pexprsnode6 == NULL) {
836 var7 = 1;
837 } else {
838 if(cltype8 >= (((long)var_pexprsnode6&3)?type_info[((long)var_pexprsnode6&3)]:var_pexprsnode6->type)->table_size) {
839 var7 = 0;
840 } else {
841 var7 = (((long)var_pexprsnode6&3)?type_info[((long)var_pexprsnode6&3)]:var_pexprsnode6->type)->type_table[cltype8] == idtype9;
842 }
843 }
844 if (unlikely(!var7)) {
845 if(catchStack.cursor >= 0){
846 longjmp(catchStack.envs[catchStack.cursor], 1);
847 }
848 PRINT_ERROR("Runtime error: %s", "Assert failed");
849 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7133);
850 fatal_exit(1);
851 }
852 var_passignopnode7 = var_nodearraylist3;
853 /* <var_passignopnode7:nullable Object> isa nullable AAssignOp */
854 cltype11 = type_nullable__nitc__AAssignOp.color;
855 idtype12 = type_nullable__nitc__AAssignOp.id;
856 if(var_passignopnode7 == NULL) {
857 var10 = 1;
858 } else {
859 if(cltype11 >= (((long)var_passignopnode7&3)?type_info[((long)var_passignopnode7&3)]:var_passignopnode7->type)->table_size) {
860 var10 = 0;
861 } else {
862 var10 = (((long)var_passignopnode7&3)?type_info[((long)var_passignopnode7&3)]:var_passignopnode7->type)->type_table[cltype11] == idtype12;
863 }
864 }
865 if (unlikely(!var10)) {
866 if(catchStack.cursor >= 0){
867 longjmp(catchStack.envs[catchStack.cursor], 1);
868 }
869 PRINT_ERROR("Runtime error: %s", "Assert failed");
870 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7135);
871 fatal_exit(1);
872 }
873 var_pexprnode8 = var_nodearraylist4;
874 /* <var_pexprnode8:nullable Object> isa nullable AExpr */
875 cltype14 = type_nullable__nitc__AExpr.color;
876 idtype15 = type_nullable__nitc__AExpr.id;
877 if(var_pexprnode8 == NULL) {
878 var13 = 1;
879 } else {
880 if(cltype14 >= (((long)var_pexprnode8&3)?type_info[((long)var_pexprnode8&3)]:var_pexprnode8->type)->table_size) {
881 var13 = 0;
882 } else {
883 var13 = (((long)var_pexprnode8&3)?type_info[((long)var_pexprnode8&3)]:var_pexprnode8->type)->type_table[cltype14] == idtype15;
884 }
885 }
886 if (unlikely(!var13)) {
887 if(catchStack.cursor >= 0){
888 longjmp(catchStack.envs[catchStack.cursor], 1);
889 }
890 PRINT_ERROR("Runtime error: %s", "Assert failed");
891 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7137);
892 fatal_exit(1);
893 }
894 var16 = NEW_nitc__ACallReassignExpr(&type_nitc__ACallReassignExpr);
895 {
896 nitc__parser_prod___ACallReassignExpr___init_acallreassignexpr(var16, var_pexprnode2, var_pqidnode3, var_pexprsnode6, var_passignopnode7, var_pexprnode8); /* Direct call parser_prod$ACallReassignExpr$init_acallreassignexpr on <var16:ACallReassignExpr>*/
897 }
898 var_pexprnode1 = var16;
899 var_node_list = var_pexprnode1;
900 var17 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction237> */
901 {
902 var18 = nitc___nitc__Parser___go_to(var_p, var17);
903 }
904 {
905 nitc___nitc__Parser___push(var_p, var18, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
906 }
907 RET_LABEL:;
908 }
909 /* method parser$ReduceAction238$action for (self: ReduceAction238, Parser) */
910 void nitc__parser___nitc__parser__ReduceAction238___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
911 val* var_p /* var p: Parser */;
912 val* var_node_list /* var node_list: nullable Object */;
913 val* var /* : nullable Object */;
914 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
915 val* var1 /* : nullable Object */;
916 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
917 val* var2 /* : nullable Object */;
918 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
919 val* var3 /* : AImplicitSelfExpr */;
920 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
921 val* var_tidnode5 /* var tidnode5: nullable Object */;
922 short int var4 /* : Bool */;
923 int cltype;
924 int idtype;
925 val* var5 /* : AQid */;
926 val* var_pqidnode3 /* var pqidnode3: nullable AQid */;
927 val* var6 /* : Array[Object] */;
928 val* var_listnode7 /* var listnode7: Array[Object] */;
929 val* var7 /* : AListExprs */;
930 val* var_pexprsnode6 /* var pexprsnode6: nullable AListExprs */;
931 val* var_passignopnode8 /* var passignopnode8: nullable Object */;
932 short int var8 /* : Bool */;
933 int cltype9;
934 int idtype10;
935 val* var_pexprnode9 /* var pexprnode9: nullable Object */;
936 short int var11 /* : Bool */;
937 int cltype12;
938 int idtype13;
939 val* var14 /* : ACallReassignExpr */;
940 val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */;
941 long var15 /* : Int */;
942 long var16 /* : Int */;
943 var_p = p0;
944 var_node_list = ((val*)NULL);
945 {
946 var = nitc___nitc__Parser___pop(var_p);
947 }
948 var_nodearraylist3 = var;
949 {
950 var1 = nitc___nitc__Parser___pop(var_p);
951 }
952 var_nodearraylist2 = var1;
953 {
954 var2 = nitc___nitc__Parser___pop(var_p);
955 }
956 var_nodearraylist1 = var2;
957 var3 = NEW_nitc__AImplicitSelfExpr(&type_nitc__AImplicitSelfExpr);
958 {
959 nitc__parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(var3); /* Direct call parser_prod$AImplicitSelfExpr$init_aimplicitselfexpr on <var3:AImplicitSelfExpr>*/
960 }
961 var_pexprnode2 = var3;
962 var_tidnode5 = var_nodearraylist1;
963 /* <var_tidnode5:nullable Object> isa nullable TId */
964 cltype = type_nullable__nitc__TId.color;
965 idtype = type_nullable__nitc__TId.id;
966 if(var_tidnode5 == NULL) {
967 var4 = 1;
968 } else {
969 if(cltype >= (((long)var_tidnode5&3)?type_info[((long)var_tidnode5&3)]:var_tidnode5->type)->table_size) {
970 var4 = 0;
971 } else {
972 var4 = (((long)var_tidnode5&3)?type_info[((long)var_tidnode5&3)]:var_tidnode5->type)->type_table[cltype] == idtype;
973 }
974 }
975 if (unlikely(!var4)) {
976 if(catchStack.cursor >= 0){
977 longjmp(catchStack.envs[catchStack.cursor], 1);
978 }
979 PRINT_ERROR("Runtime error: %s", "Assert failed");
980 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7159);
981 fatal_exit(1);
982 }
983 var5 = NEW_nitc__AQid(&type_nitc__AQid);
984 {
985 nitc__parser_prod___AQid___init_aqid(var5, ((val*)NULL), var_tidnode5); /* Direct call parser_prod$AQid$init_aqid on <var5:AQid>*/
986 }
987 var_pqidnode3 = var5;
988 var6 = NEW_core__Array(&type_core__Array__core__Object);
989 {
990 core___core__Array___core__kernel__Object__init(var6); /* Direct call array$Array$init on <var6:Array[Object]>*/
991 }
992 var_listnode7 = var6;
993 var7 = NEW_nitc__AListExprs(&type_nitc__AListExprs);
994 {
995 nitc__parser_prod___AListExprs___init_alistexprs(var7, var_listnode7); /* Direct call parser_prod$AListExprs$init_alistexprs on <var7:AListExprs>*/
996 }
997 var_pexprsnode6 = var7;
998 var_passignopnode8 = var_nodearraylist2;
999 /* <var_passignopnode8:nullable Object> isa nullable AAssignOp */
1000 cltype9 = type_nullable__nitc__AAssignOp.color;
1001 idtype10 = type_nullable__nitc__AAssignOp.id;
1002 if(var_passignopnode8 == NULL) {
1003 var8 = 1;
1004 } else {
1005 if(cltype9 >= (((long)var_passignopnode8&3)?type_info[((long)var_passignopnode8&3)]:var_passignopnode8->type)->table_size) {
1006 var8 = 0;
1007 } else {
1008 var8 = (((long)var_passignopnode8&3)?type_info[((long)var_passignopnode8&3)]:var_passignopnode8->type)->type_table[cltype9] == idtype10;
1009 }
1010 }
1011 if (unlikely(!var8)) {
1012 if(catchStack.cursor >= 0){
1013 longjmp(catchStack.envs[catchStack.cursor], 1);
1014 }
1015 PRINT_ERROR("Runtime error: %s", "Assert failed");
1016 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7169);
1017 fatal_exit(1);
1018 }
1019 var_pexprnode9 = var_nodearraylist3;
1020 /* <var_pexprnode9:nullable Object> isa nullable AExpr */
1021 cltype12 = type_nullable__nitc__AExpr.color;
1022 idtype13 = type_nullable__nitc__AExpr.id;
1023 if(var_pexprnode9 == NULL) {
1024 var11 = 1;
1025 } else {
1026 if(cltype12 >= (((long)var_pexprnode9&3)?type_info[((long)var_pexprnode9&3)]:var_pexprnode9->type)->table_size) {
1027 var11 = 0;
1028 } else {
1029 var11 = (((long)var_pexprnode9&3)?type_info[((long)var_pexprnode9&3)]:var_pexprnode9->type)->type_table[cltype12] == idtype13;
1030 }
1031 }
1032 if (unlikely(!var11)) {
1033 if(catchStack.cursor >= 0){
1034 longjmp(catchStack.envs[catchStack.cursor], 1);
1035 }
1036 PRINT_ERROR("Runtime error: %s", "Assert failed");
1037 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7171);
1038 fatal_exit(1);
1039 }
1040 var14 = NEW_nitc__ACallReassignExpr(&type_nitc__ACallReassignExpr);
1041 {
1042 nitc__parser_prod___ACallReassignExpr___init_acallreassignexpr(var14, var_pexprnode2, var_pqidnode3, var_pexprsnode6, var_passignopnode8, var_pexprnode9); /* Direct call parser_prod$ACallReassignExpr$init_acallreassignexpr on <var14:ACallReassignExpr>*/
1043 }
1044 var_pexprnode1 = var14;
1045 var_node_list = var_pexprnode1;
1046 var15 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction238> */
1047 {
1048 var16 = nitc___nitc__Parser___go_to(var_p, var15);
1049 }
1050 {
1051 nitc___nitc__Parser___push(var_p, var16, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
1052 }
1053 RET_LABEL:;
1054 }
1055 /* method parser$ReduceAction239$action for (self: ReduceAction239, Parser) */
1056 void nitc__parser___nitc__parser__ReduceAction239___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
1057 val* var_p /* var p: Parser */;
1058 val* var_node_list /* var node_list: nullable Object */;
1059 val* var /* : nullable Object */;
1060 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
1061 val* var1 /* : nullable Object */;
1062 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1063 val* var2 /* : nullable Object */;
1064 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1065 val* var3 /* : nullable Object */;
1066 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1067 val* var4 /* : nullable Object */;
1068 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1069 val* var5 /* : AImplicitSelfExpr */;
1070 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
1071 val* var6 /* : Array[Object] */;
1072 val* var_listnode5 /* var listnode5: Array[Object] */;
1073 val* var_tclassidnode6 /* var tclassidnode6: nullable Object */;
1074 short int var7 /* : Bool */;
1075 int cltype;
1076 int idtype;
1077 val* var8 /* : AQualified */;
1078 val* var_pqualifiednode4 /* var pqualifiednode4: nullable AQualified */;
1079 val* var_tidnode7 /* var tidnode7: nullable Object */;
1080 short int var9 /* : Bool */;
1081 int cltype10;
1082 int idtype11;
1083 val* var12 /* : AQid */;
1084 val* var_pqidnode3 /* var pqidnode3: nullable AQid */;
1085 val* var_pexprsnode8 /* var pexprsnode8: nullable Object */;
1086 short int var13 /* : Bool */;
1087 int cltype14;
1088 int idtype15;
1089 val* var_passignopnode9 /* var passignopnode9: nullable Object */;
1090 short int var16 /* : Bool */;
1091 int cltype17;
1092 int idtype18;
1093 val* var_pexprnode10 /* var pexprnode10: nullable Object */;
1094 short int var19 /* : Bool */;
1095 int cltype20;
1096 int idtype21;
1097 val* var22 /* : ACallReassignExpr */;
1098 val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */;
1099 long var23 /* : Int */;
1100 long var24 /* : Int */;
1101 var_p = p0;
1102 var_node_list = ((val*)NULL);
1103 {
1104 var = nitc___nitc__Parser___pop(var_p);
1105 }
1106 var_nodearraylist5 = var;
1107 {
1108 var1 = nitc___nitc__Parser___pop(var_p);
1109 }
1110 var_nodearraylist4 = var1;
1111 {
1112 var2 = nitc___nitc__Parser___pop(var_p);
1113 }
1114 var_nodearraylist3 = var2;
1115 {
1116 var3 = nitc___nitc__Parser___pop(var_p);
1117 }
1118 var_nodearraylist2 = var3;
1119 {
1120 var4 = nitc___nitc__Parser___pop(var_p);
1121 }
1122 var_nodearraylist1 = var4;
1123 var5 = NEW_nitc__AImplicitSelfExpr(&type_nitc__AImplicitSelfExpr);
1124 {
1125 nitc__parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(var5); /* Direct call parser_prod$AImplicitSelfExpr$init_aimplicitselfexpr on <var5:AImplicitSelfExpr>*/
1126 }
1127 var_pexprnode2 = var5;
1128 var6 = NEW_core__Array(&type_core__Array__core__Object);
1129 {
1130 core___core__Array___core__kernel__Object__init(var6); /* Direct call array$Array$init on <var6:Array[Object]>*/
1131 }
1132 var_listnode5 = var6;
1133 var_tclassidnode6 = var_nodearraylist1;
1134 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
1135 cltype = type_nullable__nitc__TClassid.color;
1136 idtype = type_nullable__nitc__TClassid.id;
1137 if(var_tclassidnode6 == NULL) {
1138 var7 = 1;
1139 } else {
1140 if(cltype >= (((long)var_tclassidnode6&3)?type_info[((long)var_tclassidnode6&3)]:var_tclassidnode6->type)->table_size) {
1141 var7 = 0;
1142 } else {
1143 var7 = (((long)var_tclassidnode6&3)?type_info[((long)var_tclassidnode6&3)]:var_tclassidnode6->type)->type_table[cltype] == idtype;
1144 }
1145 }
1146 if (unlikely(!var7)) {
1147 if(catchStack.cursor >= 0){
1148 longjmp(catchStack.envs[catchStack.cursor], 1);
1149 }
1150 PRINT_ERROR("Runtime error: %s", "Assert failed");
1151 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7196);
1152 fatal_exit(1);
1153 }
1154 var8 = NEW_nitc__AQualified(&type_nitc__AQualified);
1155 {
1156 nitc__parser_prod___AQualified___init_aqualified(var8, var_listnode5, var_tclassidnode6); /* Direct call parser_prod$AQualified$init_aqualified on <var8:AQualified>*/
1157 }
1158 var_pqualifiednode4 = var8;
1159 var_tidnode7 = var_nodearraylist2;
1160 /* <var_tidnode7:nullable Object> isa nullable TId */
1161 cltype10 = type_nullable__nitc__TId.color;
1162 idtype11 = type_nullable__nitc__TId.id;
1163 if(var_tidnode7 == NULL) {
1164 var9 = 1;
1165 } else {
1166 if(cltype10 >= (((long)var_tidnode7&3)?type_info[((long)var_tidnode7&3)]:var_tidnode7->type)->table_size) {
1167 var9 = 0;
1168 } else {
1169 var9 = (((long)var_tidnode7&3)?type_info[((long)var_tidnode7&3)]:var_tidnode7->type)->type_table[cltype10] == idtype11;
1170 }
1171 }
1172 if (unlikely(!var9)) {
1173 if(catchStack.cursor >= 0){
1174 longjmp(catchStack.envs[catchStack.cursor], 1);
1175 }
1176 PRINT_ERROR("Runtime error: %s", "Assert failed");
1177 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7202);
1178 fatal_exit(1);
1179 }
1180 var12 = NEW_nitc__AQid(&type_nitc__AQid);
1181 {
1182 nitc__parser_prod___AQid___init_aqid(var12, var_pqualifiednode4, var_tidnode7); /* Direct call parser_prod$AQid$init_aqid on <var12:AQid>*/
1183 }
1184 var_pqidnode3 = var12;
1185 var_pexprsnode8 = var_nodearraylist3;
1186 /* <var_pexprsnode8:nullable Object> isa nullable AExprs */
1187 cltype14 = type_nullable__nitc__AExprs.color;
1188 idtype15 = type_nullable__nitc__AExprs.id;
1189 if(var_pexprsnode8 == NULL) {
1190 var13 = 1;
1191 } else {
1192 if(cltype14 >= (((long)var_pexprsnode8&3)?type_info[((long)var_pexprsnode8&3)]:var_pexprsnode8->type)->table_size) {
1193 var13 = 0;
1194 } else {
1195 var13 = (((long)var_pexprsnode8&3)?type_info[((long)var_pexprsnode8&3)]:var_pexprsnode8->type)->type_table[cltype14] == idtype15;
1196 }
1197 }
1198 if (unlikely(!var13)) {
1199 if(catchStack.cursor >= 0){
1200 longjmp(catchStack.envs[catchStack.cursor], 1);
1201 }
1202 PRINT_ERROR("Runtime error: %s", "Assert failed");
1203 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7208);
1204 fatal_exit(1);
1205 }
1206 var_passignopnode9 = var_nodearraylist4;
1207 /* <var_passignopnode9:nullable Object> isa nullable AAssignOp */
1208 cltype17 = type_nullable__nitc__AAssignOp.color;
1209 idtype18 = type_nullable__nitc__AAssignOp.id;
1210 if(var_passignopnode9 == NULL) {
1211 var16 = 1;
1212 } else {
1213 if(cltype17 >= (((long)var_passignopnode9&3)?type_info[((long)var_passignopnode9&3)]:var_passignopnode9->type)->table_size) {
1214 var16 = 0;
1215 } else {
1216 var16 = (((long)var_passignopnode9&3)?type_info[((long)var_passignopnode9&3)]:var_passignopnode9->type)->type_table[cltype17] == idtype18;
1217 }
1218 }
1219 if (unlikely(!var16)) {
1220 if(catchStack.cursor >= 0){
1221 longjmp(catchStack.envs[catchStack.cursor], 1);
1222 }
1223 PRINT_ERROR("Runtime error: %s", "Assert failed");
1224 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7210);
1225 fatal_exit(1);
1226 }
1227 var_pexprnode10 = var_nodearraylist5;
1228 /* <var_pexprnode10:nullable Object> isa nullable AExpr */
1229 cltype20 = type_nullable__nitc__AExpr.color;
1230 idtype21 = type_nullable__nitc__AExpr.id;
1231 if(var_pexprnode10 == NULL) {
1232 var19 = 1;
1233 } else {
1234 if(cltype20 >= (((long)var_pexprnode10&3)?type_info[((long)var_pexprnode10&3)]:var_pexprnode10->type)->table_size) {
1235 var19 = 0;
1236 } else {
1237 var19 = (((long)var_pexprnode10&3)?type_info[((long)var_pexprnode10&3)]:var_pexprnode10->type)->type_table[cltype20] == idtype21;
1238 }
1239 }
1240 if (unlikely(!var19)) {
1241 if(catchStack.cursor >= 0){
1242 longjmp(catchStack.envs[catchStack.cursor], 1);
1243 }
1244 PRINT_ERROR("Runtime error: %s", "Assert failed");
1245 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7212);
1246 fatal_exit(1);
1247 }
1248 var22 = NEW_nitc__ACallReassignExpr(&type_nitc__ACallReassignExpr);
1249 {
1250 nitc__parser_prod___ACallReassignExpr___init_acallreassignexpr(var22, var_pexprnode2, var_pqidnode3, var_pexprsnode8, var_passignopnode9, var_pexprnode10); /* Direct call parser_prod$ACallReassignExpr$init_acallreassignexpr on <var22:ACallReassignExpr>*/
1251 }
1252 var_pexprnode1 = var22;
1253 var_node_list = var_pexprnode1;
1254 var23 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction239> */
1255 {
1256 var24 = nitc___nitc__Parser___go_to(var_p, var23);
1257 }
1258 {
1259 nitc___nitc__Parser___push(var_p, var24, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
1260 }
1261 RET_LABEL:;
1262 }
1263 /* method parser$ReduceAction240$action for (self: ReduceAction240, Parser) */
1264 void nitc__parser___nitc__parser__ReduceAction240___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
1265 val* var_p /* var p: Parser */;
1266 val* var_node_list /* var node_list: nullable Object */;
1267 val* var /* : nullable Object */;
1268 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1269 val* var1 /* : nullable Object */;
1270 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1271 val* var2 /* : nullable Object */;
1272 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1273 val* var3 /* : nullable Object */;
1274 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1275 val* var4 /* : AImplicitSelfExpr */;
1276 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
1277 val* var5 /* : Array[Object] */;
1278 val* var_listnode5 /* var listnode5: Array[Object] */;
1279 val* var_tclassidnode6 /* var tclassidnode6: nullable Object */;
1280 short int var6 /* : Bool */;
1281 int cltype;
1282 int idtype;
1283 val* var7 /* : AQualified */;
1284 val* var_pqualifiednode4 /* var pqualifiednode4: nullable AQualified */;
1285 val* var_tidnode7 /* var tidnode7: nullable Object */;
1286 short int var8 /* : Bool */;
1287 int cltype9;
1288 int idtype10;
1289 val* var11 /* : AQid */;
1290 val* var_pqidnode3 /* var pqidnode3: nullable AQid */;
1291 val* var12 /* : Array[Object] */;
1292 val* var_listnode9 /* var listnode9: Array[Object] */;
1293 val* var13 /* : AListExprs */;
1294 val* var_pexprsnode8 /* var pexprsnode8: nullable AListExprs */;
1295 val* var_passignopnode10 /* var passignopnode10: nullable Object */;
1296 short int var14 /* : Bool */;
1297 int cltype15;
1298 int idtype16;
1299 val* var_pexprnode11 /* var pexprnode11: nullable Object */;
1300 short int var17 /* : Bool */;
1301 int cltype18;
1302 int idtype19;
1303 val* var20 /* : ACallReassignExpr */;
1304 val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */;
1305 long var21 /* : Int */;
1306 long var22 /* : Int */;
1307 var_p = p0;
1308 var_node_list = ((val*)NULL);
1309 {
1310 var = nitc___nitc__Parser___pop(var_p);
1311 }
1312 var_nodearraylist4 = var;
1313 {
1314 var1 = nitc___nitc__Parser___pop(var_p);
1315 }
1316 var_nodearraylist3 = var1;
1317 {
1318 var2 = nitc___nitc__Parser___pop(var_p);
1319 }
1320 var_nodearraylist2 = var2;
1321 {
1322 var3 = nitc___nitc__Parser___pop(var_p);
1323 }
1324 var_nodearraylist1 = var3;
1325 var4 = NEW_nitc__AImplicitSelfExpr(&type_nitc__AImplicitSelfExpr);
1326 {
1327 nitc__parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(var4); /* Direct call parser_prod$AImplicitSelfExpr$init_aimplicitselfexpr on <var4:AImplicitSelfExpr>*/
1328 }
1329 var_pexprnode2 = var4;
1330 var5 = NEW_core__Array(&type_core__Array__core__Object);
1331 {
1332 core___core__Array___core__kernel__Object__init(var5); /* Direct call array$Array$init on <var5:Array[Object]>*/
1333 }
1334 var_listnode5 = var5;
1335 var_tclassidnode6 = var_nodearraylist1;
1336 /* <var_tclassidnode6:nullable Object> isa nullable TClassid */
1337 cltype = type_nullable__nitc__TClassid.color;
1338 idtype = type_nullable__nitc__TClassid.id;
1339 if(var_tclassidnode6 == NULL) {
1340 var6 = 1;
1341 } else {
1342 if(cltype >= (((long)var_tclassidnode6&3)?type_info[((long)var_tclassidnode6&3)]:var_tclassidnode6->type)->table_size) {
1343 var6 = 0;
1344 } else {
1345 var6 = (((long)var_tclassidnode6&3)?type_info[((long)var_tclassidnode6&3)]:var_tclassidnode6->type)->type_table[cltype] == idtype;
1346 }
1347 }
1348 if (unlikely(!var6)) {
1349 if(catchStack.cursor >= 0){
1350 longjmp(catchStack.envs[catchStack.cursor], 1);
1351 }
1352 PRINT_ERROR("Runtime error: %s", "Assert failed");
1353 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7236);
1354 fatal_exit(1);
1355 }
1356 var7 = NEW_nitc__AQualified(&type_nitc__AQualified);
1357 {
1358 nitc__parser_prod___AQualified___init_aqualified(var7, var_listnode5, var_tclassidnode6); /* Direct call parser_prod$AQualified$init_aqualified on <var7:AQualified>*/
1359 }
1360 var_pqualifiednode4 = var7;
1361 var_tidnode7 = var_nodearraylist2;
1362 /* <var_tidnode7:nullable Object> isa nullable TId */
1363 cltype9 = type_nullable__nitc__TId.color;
1364 idtype10 = type_nullable__nitc__TId.id;
1365 if(var_tidnode7 == NULL) {
1366 var8 = 1;
1367 } else {
1368 if(cltype9 >= (((long)var_tidnode7&3)?type_info[((long)var_tidnode7&3)]:var_tidnode7->type)->table_size) {
1369 var8 = 0;
1370 } else {
1371 var8 = (((long)var_tidnode7&3)?type_info[((long)var_tidnode7&3)]:var_tidnode7->type)->type_table[cltype9] == idtype10;
1372 }
1373 }
1374 if (unlikely(!var8)) {
1375 if(catchStack.cursor >= 0){
1376 longjmp(catchStack.envs[catchStack.cursor], 1);
1377 }
1378 PRINT_ERROR("Runtime error: %s", "Assert failed");
1379 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7242);
1380 fatal_exit(1);
1381 }
1382 var11 = NEW_nitc__AQid(&type_nitc__AQid);
1383 {
1384 nitc__parser_prod___AQid___init_aqid(var11, var_pqualifiednode4, var_tidnode7); /* Direct call parser_prod$AQid$init_aqid on <var11:AQid>*/
1385 }
1386 var_pqidnode3 = var11;
1387 var12 = NEW_core__Array(&type_core__Array__core__Object);
1388 {
1389 core___core__Array___core__kernel__Object__init(var12); /* Direct call array$Array$init on <var12:Array[Object]>*/
1390 }
1391 var_listnode9 = var12;
1392 var13 = NEW_nitc__AListExprs(&type_nitc__AListExprs);
1393 {
1394 nitc__parser_prod___AListExprs___init_alistexprs(var13, var_listnode9); /* Direct call parser_prod$AListExprs$init_alistexprs on <var13:AListExprs>*/
1395 }
1396 var_pexprsnode8 = var13;
1397 var_passignopnode10 = var_nodearraylist3;
1398 /* <var_passignopnode10:nullable Object> isa nullable AAssignOp */
1399 cltype15 = type_nullable__nitc__AAssignOp.color;
1400 idtype16 = type_nullable__nitc__AAssignOp.id;
1401 if(var_passignopnode10 == NULL) {
1402 var14 = 1;
1403 } else {
1404 if(cltype15 >= (((long)var_passignopnode10&3)?type_info[((long)var_passignopnode10&3)]:var_passignopnode10->type)->table_size) {
1405 var14 = 0;
1406 } else {
1407 var14 = (((long)var_passignopnode10&3)?type_info[((long)var_passignopnode10&3)]:var_passignopnode10->type)->type_table[cltype15] == idtype16;
1408 }
1409 }
1410 if (unlikely(!var14)) {
1411 if(catchStack.cursor >= 0){
1412 longjmp(catchStack.envs[catchStack.cursor], 1);
1413 }
1414 PRINT_ERROR("Runtime error: %s", "Assert failed");
1415 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7252);
1416 fatal_exit(1);
1417 }
1418 var_pexprnode11 = var_nodearraylist4;
1419 /* <var_pexprnode11:nullable Object> isa nullable AExpr */
1420 cltype18 = type_nullable__nitc__AExpr.color;
1421 idtype19 = type_nullable__nitc__AExpr.id;
1422 if(var_pexprnode11 == NULL) {
1423 var17 = 1;
1424 } else {
1425 if(cltype18 >= (((long)var_pexprnode11&3)?type_info[((long)var_pexprnode11&3)]:var_pexprnode11->type)->table_size) {
1426 var17 = 0;
1427 } else {
1428 var17 = (((long)var_pexprnode11&3)?type_info[((long)var_pexprnode11&3)]:var_pexprnode11->type)->type_table[cltype18] == idtype19;
1429 }
1430 }
1431 if (unlikely(!var17)) {
1432 if(catchStack.cursor >= 0){
1433 longjmp(catchStack.envs[catchStack.cursor], 1);
1434 }
1435 PRINT_ERROR("Runtime error: %s", "Assert failed");
1436 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7254);
1437 fatal_exit(1);
1438 }
1439 var20 = NEW_nitc__ACallReassignExpr(&type_nitc__ACallReassignExpr);
1440 {
1441 nitc__parser_prod___ACallReassignExpr___init_acallreassignexpr(var20, var_pexprnode2, var_pqidnode3, var_pexprsnode8, var_passignopnode10, var_pexprnode11); /* Direct call parser_prod$ACallReassignExpr$init_acallreassignexpr on <var20:ACallReassignExpr>*/
1442 }
1443 var_pexprnode1 = var20;
1444 var_node_list = var_pexprnode1;
1445 var21 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction240> */
1446 {
1447 var22 = nitc___nitc__Parser___go_to(var_p, var21);
1448 }
1449 {
1450 nitc___nitc__Parser___push(var_p, var22, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
1451 }
1452 RET_LABEL:;
1453 }
1454 /* method parser$ReduceAction241$action for (self: ReduceAction241, Parser) */
1455 void nitc__parser___nitc__parser__ReduceAction241___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
1456 val* var_p /* var p: Parser */;
1457 val* var_node_list /* var node_list: nullable Object */;
1458 val* var /* : nullable Object */;
1459 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
1460 val* var1 /* : nullable Object */;
1461 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
1462 val* var2 /* : nullable Object */;
1463 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1464 val* var3 /* : nullable Object */;
1465 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1466 val* var4 /* : nullable Object */;
1467 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1468 val* var5 /* : nullable Object */;
1469 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1470 val* var6 /* : AImplicitSelfExpr */;
1471 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
1472 val* var7 /* : Array[Object] */;
1473 val* var_listnode6 /* var listnode6: Array[Object] */;
1474 val* var_listnode5 /* var listnode5: nullable Object */;
1475 short int var8 /* : Bool */;
1476 int cltype;
1477 int idtype;
1478 val* var9 /* : Array[Object] */;
1479 val* var_tclassidnode7 /* var tclassidnode7: nullable Object */;
1480 short int var10 /* : Bool */;
1481 int cltype11;
1482 int idtype12;
1483 val* var13 /* : AQualified */;
1484 val* var_pqualifiednode4 /* var pqualifiednode4: nullable AQualified */;
1485 val* var_tidnode8 /* var tidnode8: nullable Object */;
1486 short int var14 /* : Bool */;
1487 int cltype15;
1488 int idtype16;
1489 val* var17 /* : AQid */;
1490 val* var_pqidnode3 /* var pqidnode3: nullable AQid */;
1491 val* var_pexprsnode9 /* var pexprsnode9: nullable Object */;
1492 short int var18 /* : Bool */;
1493 int cltype19;
1494 int idtype20;
1495 val* var_passignopnode10 /* var passignopnode10: nullable Object */;
1496 short int var21 /* : Bool */;
1497 int cltype22;
1498 int idtype23;
1499 val* var_pexprnode11 /* var pexprnode11: nullable Object */;
1500 short int var24 /* : Bool */;
1501 int cltype25;
1502 int idtype26;
1503 val* var27 /* : ACallReassignExpr */;
1504 val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */;
1505 long var28 /* : Int */;
1506 long var29 /* : Int */;
1507 var_p = p0;
1508 var_node_list = ((val*)NULL);
1509 {
1510 var = nitc___nitc__Parser___pop(var_p);
1511 }
1512 var_nodearraylist6 = var;
1513 {
1514 var1 = nitc___nitc__Parser___pop(var_p);
1515 }
1516 var_nodearraylist5 = var1;
1517 {
1518 var2 = nitc___nitc__Parser___pop(var_p);
1519 }
1520 var_nodearraylist4 = var2;
1521 {
1522 var3 = nitc___nitc__Parser___pop(var_p);
1523 }
1524 var_nodearraylist3 = var3;
1525 {
1526 var4 = nitc___nitc__Parser___pop(var_p);
1527 }
1528 var_nodearraylist2 = var4;
1529 {
1530 var5 = nitc___nitc__Parser___pop(var_p);
1531 }
1532 var_nodearraylist1 = var5;
1533 var6 = NEW_nitc__AImplicitSelfExpr(&type_nitc__AImplicitSelfExpr);
1534 {
1535 nitc__parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(var6); /* Direct call parser_prod$AImplicitSelfExpr$init_aimplicitselfexpr on <var6:AImplicitSelfExpr>*/
1536 }
1537 var_pexprnode2 = var6;
1538 var7 = NEW_core__Array(&type_core__Array__core__Object);
1539 {
1540 core___core__Array___core__kernel__Object__init(var7); /* Direct call array$Array$init on <var7:Array[Object]>*/
1541 }
1542 var_listnode6 = var7;
1543 var_listnode5 = var_nodearraylist1;
1544 /* <var_listnode5:nullable Object> isa Array[Object] */
1545 cltype = type_core__Array__core__Object.color;
1546 idtype = type_core__Array__core__Object.id;
1547 if(var_listnode5 == NULL) {
1548 var8 = 0;
1549 } else {
1550 if(cltype >= (((long)var_listnode5&3)?type_info[((long)var_listnode5&3)]:var_listnode5->type)->table_size) {
1551 var8 = 0;
1552 } else {
1553 var8 = (((long)var_listnode5&3)?type_info[((long)var_listnode5&3)]:var_listnode5->type)->type_table[cltype] == idtype;
1554 }
1555 }
1556 if (unlikely(!var8)) {
1557 if(catchStack.cursor >= 0){
1558 longjmp(catchStack.envs[catchStack.cursor], 1);
1559 }
1560 PRINT_ERROR("Runtime error: %s", "Assert failed");
1561 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7280);
1562 fatal_exit(1);
1563 }
1564 {
1565 var9 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode6, var_listnode5);
1566 }
1567 var_listnode6 = var9;
1568 var_tclassidnode7 = var_nodearraylist2;
1569 /* <var_tclassidnode7:nullable Object> isa nullable TClassid */
1570 cltype11 = type_nullable__nitc__TClassid.color;
1571 idtype12 = type_nullable__nitc__TClassid.id;
1572 if(var_tclassidnode7 == NULL) {
1573 var10 = 1;
1574 } else {
1575 if(cltype11 >= (((long)var_tclassidnode7&3)?type_info[((long)var_tclassidnode7&3)]:var_tclassidnode7->type)->table_size) {
1576 var10 = 0;
1577 } else {
1578 var10 = (((long)var_tclassidnode7&3)?type_info[((long)var_tclassidnode7&3)]:var_tclassidnode7->type)->type_table[cltype11] == idtype12;
1579 }
1580 }
1581 if (unlikely(!var10)) {
1582 if(catchStack.cursor >= 0){
1583 longjmp(catchStack.envs[catchStack.cursor], 1);
1584 }
1585 PRINT_ERROR("Runtime error: %s", "Assert failed");
1586 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7283);
1587 fatal_exit(1);
1588 }
1589 var13 = NEW_nitc__AQualified(&type_nitc__AQualified);
1590 {
1591 nitc__parser_prod___AQualified___init_aqualified(var13, var_listnode6, var_tclassidnode7); /* Direct call parser_prod$AQualified$init_aqualified on <var13:AQualified>*/
1592 }
1593 var_pqualifiednode4 = var13;
1594 var_tidnode8 = var_nodearraylist3;
1595 /* <var_tidnode8:nullable Object> isa nullable TId */
1596 cltype15 = type_nullable__nitc__TId.color;
1597 idtype16 = type_nullable__nitc__TId.id;
1598 if(var_tidnode8 == NULL) {
1599 var14 = 1;
1600 } else {
1601 if(cltype15 >= (((long)var_tidnode8&3)?type_info[((long)var_tidnode8&3)]:var_tidnode8->type)->table_size) {
1602 var14 = 0;
1603 } else {
1604 var14 = (((long)var_tidnode8&3)?type_info[((long)var_tidnode8&3)]:var_tidnode8->type)->type_table[cltype15] == idtype16;
1605 }
1606 }
1607 if (unlikely(!var14)) {
1608 if(catchStack.cursor >= 0){
1609 longjmp(catchStack.envs[catchStack.cursor], 1);
1610 }
1611 PRINT_ERROR("Runtime error: %s", "Assert failed");
1612 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7289);
1613 fatal_exit(1);
1614 }
1615 var17 = NEW_nitc__AQid(&type_nitc__AQid);
1616 {
1617 nitc__parser_prod___AQid___init_aqid(var17, var_pqualifiednode4, var_tidnode8); /* Direct call parser_prod$AQid$init_aqid on <var17:AQid>*/
1618 }
1619 var_pqidnode3 = var17;
1620 var_pexprsnode9 = var_nodearraylist4;
1621 /* <var_pexprsnode9:nullable Object> isa nullable AExprs */
1622 cltype19 = type_nullable__nitc__AExprs.color;
1623 idtype20 = type_nullable__nitc__AExprs.id;
1624 if(var_pexprsnode9 == NULL) {
1625 var18 = 1;
1626 } else {
1627 if(cltype19 >= (((long)var_pexprsnode9&3)?type_info[((long)var_pexprsnode9&3)]:var_pexprsnode9->type)->table_size) {
1628 var18 = 0;
1629 } else {
1630 var18 = (((long)var_pexprsnode9&3)?type_info[((long)var_pexprsnode9&3)]:var_pexprsnode9->type)->type_table[cltype19] == idtype20;
1631 }
1632 }
1633 if (unlikely(!var18)) {
1634 if(catchStack.cursor >= 0){
1635 longjmp(catchStack.envs[catchStack.cursor], 1);
1636 }
1637 PRINT_ERROR("Runtime error: %s", "Assert failed");
1638 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7295);
1639 fatal_exit(1);
1640 }
1641 var_passignopnode10 = var_nodearraylist5;
1642 /* <var_passignopnode10:nullable Object> isa nullable AAssignOp */
1643 cltype22 = type_nullable__nitc__AAssignOp.color;
1644 idtype23 = type_nullable__nitc__AAssignOp.id;
1645 if(var_passignopnode10 == NULL) {
1646 var21 = 1;
1647 } else {
1648 if(cltype22 >= (((long)var_passignopnode10&3)?type_info[((long)var_passignopnode10&3)]:var_passignopnode10->type)->table_size) {
1649 var21 = 0;
1650 } else {
1651 var21 = (((long)var_passignopnode10&3)?type_info[((long)var_passignopnode10&3)]:var_passignopnode10->type)->type_table[cltype22] == idtype23;
1652 }
1653 }
1654 if (unlikely(!var21)) {
1655 if(catchStack.cursor >= 0){
1656 longjmp(catchStack.envs[catchStack.cursor], 1);
1657 }
1658 PRINT_ERROR("Runtime error: %s", "Assert failed");
1659 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7297);
1660 fatal_exit(1);
1661 }
1662 var_pexprnode11 = var_nodearraylist6;
1663 /* <var_pexprnode11:nullable Object> isa nullable AExpr */
1664 cltype25 = type_nullable__nitc__AExpr.color;
1665 idtype26 = type_nullable__nitc__AExpr.id;
1666 if(var_pexprnode11 == NULL) {
1667 var24 = 1;
1668 } else {
1669 if(cltype25 >= (((long)var_pexprnode11&3)?type_info[((long)var_pexprnode11&3)]:var_pexprnode11->type)->table_size) {
1670 var24 = 0;
1671 } else {
1672 var24 = (((long)var_pexprnode11&3)?type_info[((long)var_pexprnode11&3)]:var_pexprnode11->type)->type_table[cltype25] == idtype26;
1673 }
1674 }
1675 if (unlikely(!var24)) {
1676 if(catchStack.cursor >= 0){
1677 longjmp(catchStack.envs[catchStack.cursor], 1);
1678 }
1679 PRINT_ERROR("Runtime error: %s", "Assert failed");
1680 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7299);
1681 fatal_exit(1);
1682 }
1683 var27 = NEW_nitc__ACallReassignExpr(&type_nitc__ACallReassignExpr);
1684 {
1685 nitc__parser_prod___ACallReassignExpr___init_acallreassignexpr(var27, var_pexprnode2, var_pqidnode3, var_pexprsnode9, var_passignopnode10, var_pexprnode11); /* Direct call parser_prod$ACallReassignExpr$init_acallreassignexpr on <var27:ACallReassignExpr>*/
1686 }
1687 var_pexprnode1 = var27;
1688 var_node_list = var_pexprnode1;
1689 var28 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction241> */
1690 {
1691 var29 = nitc___nitc__Parser___go_to(var_p, var28);
1692 }
1693 {
1694 nitc___nitc__Parser___push(var_p, var29, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
1695 }
1696 RET_LABEL:;
1697 }
1698 /* method parser$ReduceAction242$action for (self: ReduceAction242, Parser) */
1699 void nitc__parser___nitc__parser__ReduceAction242___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
1700 val* var_p /* var p: Parser */;
1701 val* var_node_list /* var node_list: nullable Object */;
1702 val* var /* : nullable Object */;
1703 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
1704 val* var1 /* : nullable Object */;
1705 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1706 val* var2 /* : nullable Object */;
1707 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1708 val* var3 /* : nullable Object */;
1709 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1710 val* var4 /* : nullable Object */;
1711 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1712 val* var5 /* : AImplicitSelfExpr */;
1713 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
1714 val* var6 /* : Array[Object] */;
1715 val* var_listnode6 /* var listnode6: Array[Object] */;
1716 val* var_listnode5 /* var listnode5: nullable Object */;
1717 short int var7 /* : Bool */;
1718 int cltype;
1719 int idtype;
1720 val* var8 /* : Array[Object] */;
1721 val* var_tclassidnode7 /* var tclassidnode7: nullable Object */;
1722 short int var9 /* : Bool */;
1723 int cltype10;
1724 int idtype11;
1725 val* var12 /* : AQualified */;
1726 val* var_pqualifiednode4 /* var pqualifiednode4: nullable AQualified */;
1727 val* var_tidnode8 /* var tidnode8: nullable Object */;
1728 short int var13 /* : Bool */;
1729 int cltype14;
1730 int idtype15;
1731 val* var16 /* : AQid */;
1732 val* var_pqidnode3 /* var pqidnode3: nullable AQid */;
1733 val* var17 /* : Array[Object] */;
1734 val* var_listnode10 /* var listnode10: Array[Object] */;
1735 val* var18 /* : AListExprs */;
1736 val* var_pexprsnode9 /* var pexprsnode9: nullable AListExprs */;
1737 val* var_passignopnode11 /* var passignopnode11: nullable Object */;
1738 short int var19 /* : Bool */;
1739 int cltype20;
1740 int idtype21;
1741 val* var_pexprnode12 /* var pexprnode12: nullable Object */;
1742 short int var22 /* : Bool */;
1743 int cltype23;
1744 int idtype24;
1745 val* var25 /* : ACallReassignExpr */;
1746 val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */;
1747 long var26 /* : Int */;
1748 long var27 /* : Int */;
1749 var_p = p0;
1750 var_node_list = ((val*)NULL);
1751 {
1752 var = nitc___nitc__Parser___pop(var_p);
1753 }
1754 var_nodearraylist5 = var;
1755 {
1756 var1 = nitc___nitc__Parser___pop(var_p);
1757 }
1758 var_nodearraylist4 = var1;
1759 {
1760 var2 = nitc___nitc__Parser___pop(var_p);
1761 }
1762 var_nodearraylist3 = var2;
1763 {
1764 var3 = nitc___nitc__Parser___pop(var_p);
1765 }
1766 var_nodearraylist2 = var3;
1767 {
1768 var4 = nitc___nitc__Parser___pop(var_p);
1769 }
1770 var_nodearraylist1 = var4;
1771 var5 = NEW_nitc__AImplicitSelfExpr(&type_nitc__AImplicitSelfExpr);
1772 {
1773 nitc__parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(var5); /* Direct call parser_prod$AImplicitSelfExpr$init_aimplicitselfexpr on <var5:AImplicitSelfExpr>*/
1774 }
1775 var_pexprnode2 = var5;
1776 var6 = NEW_core__Array(&type_core__Array__core__Object);
1777 {
1778 core___core__Array___core__kernel__Object__init(var6); /* Direct call array$Array$init on <var6:Array[Object]>*/
1779 }
1780 var_listnode6 = var6;
1781 var_listnode5 = var_nodearraylist1;
1782 /* <var_listnode5:nullable Object> isa Array[Object] */
1783 cltype = type_core__Array__core__Object.color;
1784 idtype = type_core__Array__core__Object.id;
1785 if(var_listnode5 == NULL) {
1786 var7 = 0;
1787 } else {
1788 if(cltype >= (((long)var_listnode5&3)?type_info[((long)var_listnode5&3)]:var_listnode5->type)->table_size) {
1789 var7 = 0;
1790 } else {
1791 var7 = (((long)var_listnode5&3)?type_info[((long)var_listnode5&3)]:var_listnode5->type)->type_table[cltype] == idtype;
1792 }
1793 }
1794 if (unlikely(!var7)) {
1795 if(catchStack.cursor >= 0){
1796 longjmp(catchStack.envs[catchStack.cursor], 1);
1797 }
1798 PRINT_ERROR("Runtime error: %s", "Assert failed");
1799 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7324);
1800 fatal_exit(1);
1801 }
1802 {
1803 var8 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode6, var_listnode5);
1804 }
1805 var_listnode6 = var8;
1806 var_tclassidnode7 = var_nodearraylist2;
1807 /* <var_tclassidnode7:nullable Object> isa nullable TClassid */
1808 cltype10 = type_nullable__nitc__TClassid.color;
1809 idtype11 = type_nullable__nitc__TClassid.id;
1810 if(var_tclassidnode7 == NULL) {
1811 var9 = 1;
1812 } else {
1813 if(cltype10 >= (((long)var_tclassidnode7&3)?type_info[((long)var_tclassidnode7&3)]:var_tclassidnode7->type)->table_size) {
1814 var9 = 0;
1815 } else {
1816 var9 = (((long)var_tclassidnode7&3)?type_info[((long)var_tclassidnode7&3)]:var_tclassidnode7->type)->type_table[cltype10] == idtype11;
1817 }
1818 }
1819 if (unlikely(!var9)) {
1820 if(catchStack.cursor >= 0){
1821 longjmp(catchStack.envs[catchStack.cursor], 1);
1822 }
1823 PRINT_ERROR("Runtime error: %s", "Assert failed");
1824 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7327);
1825 fatal_exit(1);
1826 }
1827 var12 = NEW_nitc__AQualified(&type_nitc__AQualified);
1828 {
1829 nitc__parser_prod___AQualified___init_aqualified(var12, var_listnode6, var_tclassidnode7); /* Direct call parser_prod$AQualified$init_aqualified on <var12:AQualified>*/
1830 }
1831 var_pqualifiednode4 = var12;
1832 var_tidnode8 = var_nodearraylist3;
1833 /* <var_tidnode8:nullable Object> isa nullable TId */
1834 cltype14 = type_nullable__nitc__TId.color;
1835 idtype15 = type_nullable__nitc__TId.id;
1836 if(var_tidnode8 == NULL) {
1837 var13 = 1;
1838 } else {
1839 if(cltype14 >= (((long)var_tidnode8&3)?type_info[((long)var_tidnode8&3)]:var_tidnode8->type)->table_size) {
1840 var13 = 0;
1841 } else {
1842 var13 = (((long)var_tidnode8&3)?type_info[((long)var_tidnode8&3)]:var_tidnode8->type)->type_table[cltype14] == idtype15;
1843 }
1844 }
1845 if (unlikely(!var13)) {
1846 if(catchStack.cursor >= 0){
1847 longjmp(catchStack.envs[catchStack.cursor], 1);
1848 }
1849 PRINT_ERROR("Runtime error: %s", "Assert failed");
1850 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7333);
1851 fatal_exit(1);
1852 }
1853 var16 = NEW_nitc__AQid(&type_nitc__AQid);
1854 {
1855 nitc__parser_prod___AQid___init_aqid(var16, var_pqualifiednode4, var_tidnode8); /* Direct call parser_prod$AQid$init_aqid on <var16:AQid>*/
1856 }
1857 var_pqidnode3 = var16;
1858 var17 = NEW_core__Array(&type_core__Array__core__Object);
1859 {
1860 core___core__Array___core__kernel__Object__init(var17); /* Direct call array$Array$init on <var17:Array[Object]>*/
1861 }
1862 var_listnode10 = var17;
1863 var18 = NEW_nitc__AListExprs(&type_nitc__AListExprs);
1864 {
1865 nitc__parser_prod___AListExprs___init_alistexprs(var18, var_listnode10); /* Direct call parser_prod$AListExprs$init_alistexprs on <var18:AListExprs>*/
1866 }
1867 var_pexprsnode9 = var18;
1868 var_passignopnode11 = var_nodearraylist4;
1869 /* <var_passignopnode11:nullable Object> isa nullable AAssignOp */
1870 cltype20 = type_nullable__nitc__AAssignOp.color;
1871 idtype21 = type_nullable__nitc__AAssignOp.id;
1872 if(var_passignopnode11 == NULL) {
1873 var19 = 1;
1874 } else {
1875 if(cltype20 >= (((long)var_passignopnode11&3)?type_info[((long)var_passignopnode11&3)]:var_passignopnode11->type)->table_size) {
1876 var19 = 0;
1877 } else {
1878 var19 = (((long)var_passignopnode11&3)?type_info[((long)var_passignopnode11&3)]:var_passignopnode11->type)->type_table[cltype20] == idtype21;
1879 }
1880 }
1881 if (unlikely(!var19)) {
1882 if(catchStack.cursor >= 0){
1883 longjmp(catchStack.envs[catchStack.cursor], 1);
1884 }
1885 PRINT_ERROR("Runtime error: %s", "Assert failed");
1886 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7343);
1887 fatal_exit(1);
1888 }
1889 var_pexprnode12 = var_nodearraylist5;
1890 /* <var_pexprnode12:nullable Object> isa nullable AExpr */
1891 cltype23 = type_nullable__nitc__AExpr.color;
1892 idtype24 = type_nullable__nitc__AExpr.id;
1893 if(var_pexprnode12 == NULL) {
1894 var22 = 1;
1895 } else {
1896 if(cltype23 >= (((long)var_pexprnode12&3)?type_info[((long)var_pexprnode12&3)]:var_pexprnode12->type)->table_size) {
1897 var22 = 0;
1898 } else {
1899 var22 = (((long)var_pexprnode12&3)?type_info[((long)var_pexprnode12&3)]:var_pexprnode12->type)->type_table[cltype23] == idtype24;
1900 }
1901 }
1902 if (unlikely(!var22)) {
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, 7345);
1908 fatal_exit(1);
1909 }
1910 var25 = NEW_nitc__ACallReassignExpr(&type_nitc__ACallReassignExpr);
1911 {
1912 nitc__parser_prod___ACallReassignExpr___init_acallreassignexpr(var25, var_pexprnode2, var_pqidnode3, var_pexprsnode9, var_passignopnode11, var_pexprnode12); /* Direct call parser_prod$ACallReassignExpr$init_acallreassignexpr on <var25:ACallReassignExpr>*/
1913 }
1914 var_pexprnode1 = var25;
1915 var_node_list = var_pexprnode1;
1916 var26 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction242> */
1917 {
1918 var27 = nitc___nitc__Parser___go_to(var_p, var26);
1919 }
1920 {
1921 nitc___nitc__Parser___push(var_p, var27, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
1922 }
1923 RET_LABEL:;
1924 }
1925 /* method parser$ReduceAction243$action for (self: ReduceAction243, Parser) */
1926 void nitc__parser___nitc__parser__ReduceAction243___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_nodearraylist5 /* var nodearraylist5: nullable Object */;
1931 val* var1 /* : nullable Object */;
1932 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
1933 val* var2 /* : nullable Object */;
1934 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
1935 val* var3 /* : nullable Object */;
1936 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
1937 val* var4 /* : nullable Object */;
1938 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
1939 val* var5 /* : AImplicitSelfExpr */;
1940 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
1941 val* var6 /* : Array[Object] */;
1942 val* var_listnode6 /* var listnode6: Array[Object] */;
1943 val* var_listnode5 /* var listnode5: nullable Object */;
1944 short int var7 /* : Bool */;
1945 int cltype;
1946 int idtype;
1947 val* var8 /* : Array[Object] */;
1948 val* var9 /* : AQualified */;
1949 val* var_pqualifiednode4 /* var pqualifiednode4: nullable AQualified */;
1950 val* var_tidnode8 /* var tidnode8: nullable Object */;
1951 short int var10 /* : Bool */;
1952 int cltype11;
1953 int idtype12;
1954 val* var13 /* : AQid */;
1955 val* var_pqidnode3 /* var pqidnode3: nullable AQid */;
1956 val* var_pexprsnode9 /* var pexprsnode9: nullable Object */;
1957 short int var14 /* : Bool */;
1958 int cltype15;
1959 int idtype16;
1960 val* var_passignopnode10 /* var passignopnode10: nullable Object */;
1961 short int var17 /* : Bool */;
1962 int cltype18;
1963 int idtype19;
1964 val* var_pexprnode11 /* var pexprnode11: nullable Object */;
1965 short int var20 /* : Bool */;
1966 int cltype21;
1967 int idtype22;
1968 val* var23 /* : ACallReassignExpr */;
1969 val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */;
1970 long var24 /* : Int */;
1971 long var25 /* : Int */;
1972 var_p = p0;
1973 var_node_list = ((val*)NULL);
1974 {
1975 var = nitc___nitc__Parser___pop(var_p);
1976 }
1977 var_nodearraylist5 = var;
1978 {
1979 var1 = nitc___nitc__Parser___pop(var_p);
1980 }
1981 var_nodearraylist4 = var1;
1982 {
1983 var2 = nitc___nitc__Parser___pop(var_p);
1984 }
1985 var_nodearraylist3 = var2;
1986 {
1987 var3 = nitc___nitc__Parser___pop(var_p);
1988 }
1989 var_nodearraylist2 = var3;
1990 {
1991 var4 = nitc___nitc__Parser___pop(var_p);
1992 }
1993 var_nodearraylist1 = var4;
1994 var5 = NEW_nitc__AImplicitSelfExpr(&type_nitc__AImplicitSelfExpr);
1995 {
1996 nitc__parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(var5); /* Direct call parser_prod$AImplicitSelfExpr$init_aimplicitselfexpr on <var5:AImplicitSelfExpr>*/
1997 }
1998 var_pexprnode2 = var5;
1999 var6 = NEW_core__Array(&type_core__Array__core__Object);
2000 {
2001 core___core__Array___core__kernel__Object__init(var6); /* Direct call array$Array$init on <var6:Array[Object]>*/
2002 }
2003 var_listnode6 = var6;
2004 var_listnode5 = var_nodearraylist1;
2005 /* <var_listnode5:nullable Object> isa Array[Object] */
2006 cltype = type_core__Array__core__Object.color;
2007 idtype = type_core__Array__core__Object.id;
2008 if(var_listnode5 == NULL) {
2009 var7 = 0;
2010 } else {
2011 if(cltype >= (((long)var_listnode5&3)?type_info[((long)var_listnode5&3)]:var_listnode5->type)->table_size) {
2012 var7 = 0;
2013 } else {
2014 var7 = (((long)var_listnode5&3)?type_info[((long)var_listnode5&3)]:var_listnode5->type)->type_table[cltype] == idtype;
2015 }
2016 }
2017 if (unlikely(!var7)) {
2018 if(catchStack.cursor >= 0){
2019 longjmp(catchStack.envs[catchStack.cursor], 1);
2020 }
2021 PRINT_ERROR("Runtime error: %s", "Assert failed");
2022 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7370);
2023 fatal_exit(1);
2024 }
2025 {
2026 var8 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode6, var_listnode5);
2027 }
2028 var_listnode6 = var8;
2029 var9 = NEW_nitc__AQualified(&type_nitc__AQualified);
2030 {
2031 nitc__parser_prod___AQualified___init_aqualified(var9, var_listnode6, ((val*)NULL)); /* Direct call parser_prod$AQualified$init_aqualified on <var9:AQualified>*/
2032 }
2033 var_pqualifiednode4 = var9;
2034 var_tidnode8 = var_nodearraylist2;
2035 /* <var_tidnode8:nullable Object> isa nullable TId */
2036 cltype11 = type_nullable__nitc__TId.color;
2037 idtype12 = type_nullable__nitc__TId.id;
2038 if(var_tidnode8 == NULL) {
2039 var10 = 1;
2040 } else {
2041 if(cltype11 >= (((long)var_tidnode8&3)?type_info[((long)var_tidnode8&3)]:var_tidnode8->type)->table_size) {
2042 var10 = 0;
2043 } else {
2044 var10 = (((long)var_tidnode8&3)?type_info[((long)var_tidnode8&3)]:var_tidnode8->type)->type_table[cltype11] == idtype12;
2045 }
2046 }
2047 if (unlikely(!var10)) {
2048 if(catchStack.cursor >= 0){
2049 longjmp(catchStack.envs[catchStack.cursor], 1);
2050 }
2051 PRINT_ERROR("Runtime error: %s", "Assert failed");
2052 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7377);
2053 fatal_exit(1);
2054 }
2055 var13 = NEW_nitc__AQid(&type_nitc__AQid);
2056 {
2057 nitc__parser_prod___AQid___init_aqid(var13, var_pqualifiednode4, var_tidnode8); /* Direct call parser_prod$AQid$init_aqid on <var13:AQid>*/
2058 }
2059 var_pqidnode3 = var13;
2060 var_pexprsnode9 = var_nodearraylist3;
2061 /* <var_pexprsnode9:nullable Object> isa nullable AExprs */
2062 cltype15 = type_nullable__nitc__AExprs.color;
2063 idtype16 = type_nullable__nitc__AExprs.id;
2064 if(var_pexprsnode9 == NULL) {
2065 var14 = 1;
2066 } else {
2067 if(cltype15 >= (((long)var_pexprsnode9&3)?type_info[((long)var_pexprsnode9&3)]:var_pexprsnode9->type)->table_size) {
2068 var14 = 0;
2069 } else {
2070 var14 = (((long)var_pexprsnode9&3)?type_info[((long)var_pexprsnode9&3)]:var_pexprsnode9->type)->type_table[cltype15] == idtype16;
2071 }
2072 }
2073 if (unlikely(!var14)) {
2074 if(catchStack.cursor >= 0){
2075 longjmp(catchStack.envs[catchStack.cursor], 1);
2076 }
2077 PRINT_ERROR("Runtime error: %s", "Assert failed");
2078 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7383);
2079 fatal_exit(1);
2080 }
2081 var_passignopnode10 = var_nodearraylist4;
2082 /* <var_passignopnode10:nullable Object> isa nullable AAssignOp */
2083 cltype18 = type_nullable__nitc__AAssignOp.color;
2084 idtype19 = type_nullable__nitc__AAssignOp.id;
2085 if(var_passignopnode10 == NULL) {
2086 var17 = 1;
2087 } else {
2088 if(cltype18 >= (((long)var_passignopnode10&3)?type_info[((long)var_passignopnode10&3)]:var_passignopnode10->type)->table_size) {
2089 var17 = 0;
2090 } else {
2091 var17 = (((long)var_passignopnode10&3)?type_info[((long)var_passignopnode10&3)]:var_passignopnode10->type)->type_table[cltype18] == idtype19;
2092 }
2093 }
2094 if (unlikely(!var17)) {
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, 7385);
2100 fatal_exit(1);
2101 }
2102 var_pexprnode11 = var_nodearraylist5;
2103 /* <var_pexprnode11:nullable Object> isa nullable AExpr */
2104 cltype21 = type_nullable__nitc__AExpr.color;
2105 idtype22 = type_nullable__nitc__AExpr.id;
2106 if(var_pexprnode11 == NULL) {
2107 var20 = 1;
2108 } else {
2109 if(cltype21 >= (((long)var_pexprnode11&3)?type_info[((long)var_pexprnode11&3)]:var_pexprnode11->type)->table_size) {
2110 var20 = 0;
2111 } else {
2112 var20 = (((long)var_pexprnode11&3)?type_info[((long)var_pexprnode11&3)]:var_pexprnode11->type)->type_table[cltype21] == idtype22;
2113 }
2114 }
2115 if (unlikely(!var20)) {
2116 if(catchStack.cursor >= 0){
2117 longjmp(catchStack.envs[catchStack.cursor], 1);
2118 }
2119 PRINT_ERROR("Runtime error: %s", "Assert failed");
2120 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7387);
2121 fatal_exit(1);
2122 }
2123 var23 = NEW_nitc__ACallReassignExpr(&type_nitc__ACallReassignExpr);
2124 {
2125 nitc__parser_prod___ACallReassignExpr___init_acallreassignexpr(var23, var_pexprnode2, var_pqidnode3, var_pexprsnode9, var_passignopnode10, var_pexprnode11); /* Direct call parser_prod$ACallReassignExpr$init_acallreassignexpr on <var23:ACallReassignExpr>*/
2126 }
2127 var_pexprnode1 = var23;
2128 var_node_list = var_pexprnode1;
2129 var24 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction243> */
2130 {
2131 var25 = nitc___nitc__Parser___go_to(var_p, var24);
2132 }
2133 {
2134 nitc___nitc__Parser___push(var_p, var25, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
2135 }
2136 RET_LABEL:;
2137 }
2138 /* method parser$ReduceAction244$action for (self: ReduceAction244, Parser) */
2139 void nitc__parser___nitc__parser__ReduceAction244___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
2140 val* var_p /* var p: Parser */;
2141 val* var_node_list /* var node_list: nullable Object */;
2142 val* var /* : nullable Object */;
2143 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2144 val* var1 /* : nullable Object */;
2145 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2146 val* var2 /* : nullable Object */;
2147 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2148 val* var3 /* : nullable Object */;
2149 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2150 val* var4 /* : AImplicitSelfExpr */;
2151 val* var_pexprnode2 /* var pexprnode2: nullable AImplicitSelfExpr */;
2152 val* var5 /* : Array[Object] */;
2153 val* var_listnode6 /* var listnode6: Array[Object] */;
2154 val* var_listnode5 /* var listnode5: nullable Object */;
2155 short int var6 /* : Bool */;
2156 int cltype;
2157 int idtype;
2158 val* var7 /* : Array[Object] */;
2159 val* var8 /* : AQualified */;
2160 val* var_pqualifiednode4 /* var pqualifiednode4: nullable AQualified */;
2161 val* var_tidnode8 /* var tidnode8: nullable Object */;
2162 short int var9 /* : Bool */;
2163 int cltype10;
2164 int idtype11;
2165 val* var12 /* : AQid */;
2166 val* var_pqidnode3 /* var pqidnode3: nullable AQid */;
2167 val* var13 /* : Array[Object] */;
2168 val* var_listnode10 /* var listnode10: Array[Object] */;
2169 val* var14 /* : AListExprs */;
2170 val* var_pexprsnode9 /* var pexprsnode9: nullable AListExprs */;
2171 val* var_passignopnode11 /* var passignopnode11: nullable Object */;
2172 short int var15 /* : Bool */;
2173 int cltype16;
2174 int idtype17;
2175 val* var_pexprnode12 /* var pexprnode12: nullable Object */;
2176 short int var18 /* : Bool */;
2177 int cltype19;
2178 int idtype20;
2179 val* var21 /* : ACallReassignExpr */;
2180 val* var_pexprnode1 /* var pexprnode1: nullable ACallReassignExpr */;
2181 long var22 /* : Int */;
2182 long var23 /* : Int */;
2183 var_p = p0;
2184 var_node_list = ((val*)NULL);
2185 {
2186 var = nitc___nitc__Parser___pop(var_p);
2187 }
2188 var_nodearraylist4 = var;
2189 {
2190 var1 = nitc___nitc__Parser___pop(var_p);
2191 }
2192 var_nodearraylist3 = var1;
2193 {
2194 var2 = nitc___nitc__Parser___pop(var_p);
2195 }
2196 var_nodearraylist2 = var2;
2197 {
2198 var3 = nitc___nitc__Parser___pop(var_p);
2199 }
2200 var_nodearraylist1 = var3;
2201 var4 = NEW_nitc__AImplicitSelfExpr(&type_nitc__AImplicitSelfExpr);
2202 {
2203 nitc__parser_prod___AImplicitSelfExpr___init_aimplicitselfexpr(var4); /* Direct call parser_prod$AImplicitSelfExpr$init_aimplicitselfexpr on <var4:AImplicitSelfExpr>*/
2204 }
2205 var_pexprnode2 = var4;
2206 var5 = NEW_core__Array(&type_core__Array__core__Object);
2207 {
2208 core___core__Array___core__kernel__Object__init(var5); /* Direct call array$Array$init on <var5:Array[Object]>*/
2209 }
2210 var_listnode6 = var5;
2211 var_listnode5 = var_nodearraylist1;
2212 /* <var_listnode5:nullable Object> isa Array[Object] */
2213 cltype = type_core__Array__core__Object.color;
2214 idtype = type_core__Array__core__Object.id;
2215 if(var_listnode5 == NULL) {
2216 var6 = 0;
2217 } else {
2218 if(cltype >= (((long)var_listnode5&3)?type_info[((long)var_listnode5&3)]:var_listnode5->type)->table_size) {
2219 var6 = 0;
2220 } else {
2221 var6 = (((long)var_listnode5&3)?type_info[((long)var_listnode5&3)]:var_listnode5->type)->type_table[cltype] == idtype;
2222 }
2223 }
2224 if (unlikely(!var6)) {
2225 if(catchStack.cursor >= 0){
2226 longjmp(catchStack.envs[catchStack.cursor], 1);
2227 }
2228 PRINT_ERROR("Runtime error: %s", "Assert failed");
2229 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7411);
2230 fatal_exit(1);
2231 }
2232 {
2233 var7 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode6, var_listnode5);
2234 }
2235 var_listnode6 = var7;
2236 var8 = NEW_nitc__AQualified(&type_nitc__AQualified);
2237 {
2238 nitc__parser_prod___AQualified___init_aqualified(var8, var_listnode6, ((val*)NULL)); /* Direct call parser_prod$AQualified$init_aqualified on <var8:AQualified>*/
2239 }
2240 var_pqualifiednode4 = var8;
2241 var_tidnode8 = var_nodearraylist2;
2242 /* <var_tidnode8:nullable Object> isa nullable TId */
2243 cltype10 = type_nullable__nitc__TId.color;
2244 idtype11 = type_nullable__nitc__TId.id;
2245 if(var_tidnode8 == NULL) {
2246 var9 = 1;
2247 } else {
2248 if(cltype10 >= (((long)var_tidnode8&3)?type_info[((long)var_tidnode8&3)]:var_tidnode8->type)->table_size) {
2249 var9 = 0;
2250 } else {
2251 var9 = (((long)var_tidnode8&3)?type_info[((long)var_tidnode8&3)]:var_tidnode8->type)->type_table[cltype10] == idtype11;
2252 }
2253 }
2254 if (unlikely(!var9)) {
2255 if(catchStack.cursor >= 0){
2256 longjmp(catchStack.envs[catchStack.cursor], 1);
2257 }
2258 PRINT_ERROR("Runtime error: %s", "Assert failed");
2259 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7418);
2260 fatal_exit(1);
2261 }
2262 var12 = NEW_nitc__AQid(&type_nitc__AQid);
2263 {
2264 nitc__parser_prod___AQid___init_aqid(var12, var_pqualifiednode4, var_tidnode8); /* Direct call parser_prod$AQid$init_aqid on <var12:AQid>*/
2265 }
2266 var_pqidnode3 = var12;
2267 var13 = NEW_core__Array(&type_core__Array__core__Object);
2268 {
2269 core___core__Array___core__kernel__Object__init(var13); /* Direct call array$Array$init on <var13:Array[Object]>*/
2270 }
2271 var_listnode10 = var13;
2272 var14 = NEW_nitc__AListExprs(&type_nitc__AListExprs);
2273 {
2274 nitc__parser_prod___AListExprs___init_alistexprs(var14, var_listnode10); /* Direct call parser_prod$AListExprs$init_alistexprs on <var14:AListExprs>*/
2275 }
2276 var_pexprsnode9 = var14;
2277 var_passignopnode11 = var_nodearraylist3;
2278 /* <var_passignopnode11:nullable Object> isa nullable AAssignOp */
2279 cltype16 = type_nullable__nitc__AAssignOp.color;
2280 idtype17 = type_nullable__nitc__AAssignOp.id;
2281 if(var_passignopnode11 == NULL) {
2282 var15 = 1;
2283 } else {
2284 if(cltype16 >= (((long)var_passignopnode11&3)?type_info[((long)var_passignopnode11&3)]:var_passignopnode11->type)->table_size) {
2285 var15 = 0;
2286 } else {
2287 var15 = (((long)var_passignopnode11&3)?type_info[((long)var_passignopnode11&3)]:var_passignopnode11->type)->type_table[cltype16] == idtype17;
2288 }
2289 }
2290 if (unlikely(!var15)) {
2291 if(catchStack.cursor >= 0){
2292 longjmp(catchStack.envs[catchStack.cursor], 1);
2293 }
2294 PRINT_ERROR("Runtime error: %s", "Assert failed");
2295 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7428);
2296 fatal_exit(1);
2297 }
2298 var_pexprnode12 = var_nodearraylist4;
2299 /* <var_pexprnode12:nullable Object> isa nullable AExpr */
2300 cltype19 = type_nullable__nitc__AExpr.color;
2301 idtype20 = type_nullable__nitc__AExpr.id;
2302 if(var_pexprnode12 == NULL) {
2303 var18 = 1;
2304 } else {
2305 if(cltype19 >= (((long)var_pexprnode12&3)?type_info[((long)var_pexprnode12&3)]:var_pexprnode12->type)->table_size) {
2306 var18 = 0;
2307 } else {
2308 var18 = (((long)var_pexprnode12&3)?type_info[((long)var_pexprnode12&3)]:var_pexprnode12->type)->type_table[cltype19] == idtype20;
2309 }
2310 }
2311 if (unlikely(!var18)) {
2312 if(catchStack.cursor >= 0){
2313 longjmp(catchStack.envs[catchStack.cursor], 1);
2314 }
2315 PRINT_ERROR("Runtime error: %s", "Assert failed");
2316 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7430);
2317 fatal_exit(1);
2318 }
2319 var21 = NEW_nitc__ACallReassignExpr(&type_nitc__ACallReassignExpr);
2320 {
2321 nitc__parser_prod___ACallReassignExpr___init_acallreassignexpr(var21, var_pexprnode2, var_pqidnode3, var_pexprsnode9, var_passignopnode11, var_pexprnode12); /* Direct call parser_prod$ACallReassignExpr$init_acallreassignexpr on <var21:ACallReassignExpr>*/
2322 }
2323 var_pexprnode1 = var21;
2324 var_node_list = var_pexprnode1;
2325 var22 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction244> */
2326 {
2327 var23 = nitc___nitc__Parser___go_to(var_p, var22);
2328 }
2329 {
2330 nitc___nitc__Parser___push(var_p, var23, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
2331 }
2332 RET_LABEL:;
2333 }
2334 /* method parser$ReduceAction245$action for (self: ReduceAction245, Parser) */
2335 void nitc__parser___nitc__parser__ReduceAction245___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
2336 val* var_p /* var p: Parser */;
2337 val* var_node_list /* var node_list: nullable Object */;
2338 val* var /* : nullable Object */;
2339 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
2340 val* var1 /* : nullable Object */;
2341 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
2342 val* var2 /* : nullable Object */;
2343 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
2344 val* var3 /* : nullable Object */;
2345 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2346 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
2347 short int var4 /* : Bool */;
2348 int cltype;
2349 int idtype;
2350 val* var_pexprsnode3 /* var pexprsnode3: nullable Object */;
2351 short int var5 /* : Bool */;
2352 int cltype6;
2353 int idtype7;
2354 val* var_passignopnode4 /* var passignopnode4: nullable Object */;
2355 short int var8 /* : Bool */;
2356 int cltype9;
2357 int idtype10;
2358 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
2359 short int var11 /* : Bool */;
2360 int cltype12;
2361 int idtype13;
2362 val* var14 /* : ABraReassignExpr */;
2363 val* var_pexprnode1 /* var pexprnode1: nullable ABraReassignExpr */;
2364 long var15 /* : Int */;
2365 long var16 /* : Int */;
2366 var_p = p0;
2367 var_node_list = ((val*)NULL);
2368 {
2369 var = nitc___nitc__Parser___pop(var_p);
2370 }
2371 var_nodearraylist4 = var;
2372 {
2373 var1 = nitc___nitc__Parser___pop(var_p);
2374 }
2375 var_nodearraylist3 = var1;
2376 {
2377 var2 = nitc___nitc__Parser___pop(var_p);
2378 }
2379 var_nodearraylist2 = var2;
2380 {
2381 var3 = nitc___nitc__Parser___pop(var_p);
2382 }
2383 var_nodearraylist1 = var3;
2384 var_pexprnode2 = var_nodearraylist1;
2385 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
2386 cltype = type_nullable__nitc__AExpr.color;
2387 idtype = type_nullable__nitc__AExpr.id;
2388 if(var_pexprnode2 == NULL) {
2389 var4 = 1;
2390 } else {
2391 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
2392 var4 = 0;
2393 } else {
2394 var4 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
2395 }
2396 }
2397 if (unlikely(!var4)) {
2398 if(catchStack.cursor >= 0){
2399 longjmp(catchStack.envs[catchStack.cursor], 1);
2400 }
2401 PRINT_ERROR("Runtime error: %s", "Assert failed");
2402 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7452);
2403 fatal_exit(1);
2404 }
2405 var_pexprsnode3 = var_nodearraylist2;
2406 /* <var_pexprsnode3:nullable Object> isa nullable AExprs */
2407 cltype6 = type_nullable__nitc__AExprs.color;
2408 idtype7 = type_nullable__nitc__AExprs.id;
2409 if(var_pexprsnode3 == NULL) {
2410 var5 = 1;
2411 } else {
2412 if(cltype6 >= (((long)var_pexprsnode3&3)?type_info[((long)var_pexprsnode3&3)]:var_pexprsnode3->type)->table_size) {
2413 var5 = 0;
2414 } else {
2415 var5 = (((long)var_pexprsnode3&3)?type_info[((long)var_pexprsnode3&3)]:var_pexprsnode3->type)->type_table[cltype6] == idtype7;
2416 }
2417 }
2418 if (unlikely(!var5)) {
2419 if(catchStack.cursor >= 0){
2420 longjmp(catchStack.envs[catchStack.cursor], 1);
2421 }
2422 PRINT_ERROR("Runtime error: %s", "Assert failed");
2423 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7454);
2424 fatal_exit(1);
2425 }
2426 var_passignopnode4 = var_nodearraylist3;
2427 /* <var_passignopnode4:nullable Object> isa nullable AAssignOp */
2428 cltype9 = type_nullable__nitc__AAssignOp.color;
2429 idtype10 = type_nullable__nitc__AAssignOp.id;
2430 if(var_passignopnode4 == NULL) {
2431 var8 = 1;
2432 } else {
2433 if(cltype9 >= (((long)var_passignopnode4&3)?type_info[((long)var_passignopnode4&3)]:var_passignopnode4->type)->table_size) {
2434 var8 = 0;
2435 } else {
2436 var8 = (((long)var_passignopnode4&3)?type_info[((long)var_passignopnode4&3)]:var_passignopnode4->type)->type_table[cltype9] == idtype10;
2437 }
2438 }
2439 if (unlikely(!var8)) {
2440 if(catchStack.cursor >= 0){
2441 longjmp(catchStack.envs[catchStack.cursor], 1);
2442 }
2443 PRINT_ERROR("Runtime error: %s", "Assert failed");
2444 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7456);
2445 fatal_exit(1);
2446 }
2447 var_pexprnode5 = var_nodearraylist4;
2448 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
2449 cltype12 = type_nullable__nitc__AExpr.color;
2450 idtype13 = type_nullable__nitc__AExpr.id;
2451 if(var_pexprnode5 == NULL) {
2452 var11 = 1;
2453 } else {
2454 if(cltype12 >= (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->table_size) {
2455 var11 = 0;
2456 } else {
2457 var11 = (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->type_table[cltype12] == idtype13;
2458 }
2459 }
2460 if (unlikely(!var11)) {
2461 if(catchStack.cursor >= 0){
2462 longjmp(catchStack.envs[catchStack.cursor], 1);
2463 }
2464 PRINT_ERROR("Runtime error: %s", "Assert failed");
2465 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7458);
2466 fatal_exit(1);
2467 }
2468 var14 = NEW_nitc__ABraReassignExpr(&type_nitc__ABraReassignExpr);
2469 {
2470 nitc__parser_prod___ABraReassignExpr___init_abrareassignexpr(var14, var_pexprnode2, var_pexprsnode3, var_passignopnode4, var_pexprnode5); /* Direct call parser_prod$ABraReassignExpr$init_abrareassignexpr on <var14:ABraReassignExpr>*/
2471 }
2472 var_pexprnode1 = var14;
2473 var_node_list = var_pexprnode1;
2474 var15 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction245> */
2475 {
2476 var16 = nitc___nitc__Parser___go_to(var_p, var15);
2477 }
2478 {
2479 nitc___nitc__Parser___push(var_p, var16, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
2480 }
2481 RET_LABEL:;
2482 }
2483 /* method parser$ReduceAction246$action for (self: ReduceAction246, Parser) */
2484 void nitc__parser___nitc__parser__ReduceAction246___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
2485 val* var_p /* var p: Parser */;
2486 val* var_node_list /* var node_list: nullable Object */;
2487 val* var /* : nullable Object */;
2488 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2489 val* var_tpluseqnode2 /* var tpluseqnode2: nullable Object */;
2490 short int var1 /* : Bool */;
2491 int cltype;
2492 int idtype;
2493 val* var2 /* : APlusAssignOp */;
2494 val* var_passignopnode1 /* var passignopnode1: nullable APlusAssignOp */;
2495 long var3 /* : Int */;
2496 long var4 /* : Int */;
2497 var_p = p0;
2498 var_node_list = ((val*)NULL);
2499 {
2500 var = nitc___nitc__Parser___pop(var_p);
2501 }
2502 var_nodearraylist1 = var;
2503 var_tpluseqnode2 = var_nodearraylist1;
2504 /* <var_tpluseqnode2:nullable Object> isa nullable TPluseq */
2505 cltype = type_nullable__nitc__TPluseq.color;
2506 idtype = type_nullable__nitc__TPluseq.id;
2507 if(var_tpluseqnode2 == NULL) {
2508 var1 = 1;
2509 } else {
2510 if(cltype >= (((long)var_tpluseqnode2&3)?type_info[((long)var_tpluseqnode2&3)]:var_tpluseqnode2->type)->table_size) {
2511 var1 = 0;
2512 } else {
2513 var1 = (((long)var_tpluseqnode2&3)?type_info[((long)var_tpluseqnode2&3)]:var_tpluseqnode2->type)->type_table[cltype] == idtype;
2514 }
2515 }
2516 if (unlikely(!var1)) {
2517 if(catchStack.cursor >= 0){
2518 longjmp(catchStack.envs[catchStack.cursor], 1);
2519 }
2520 PRINT_ERROR("Runtime error: %s", "Assert failed");
2521 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7476);
2522 fatal_exit(1);
2523 }
2524 var2 = NEW_nitc__APlusAssignOp(&type_nitc__APlusAssignOp);
2525 {
2526 nitc__parser_prod___APlusAssignOp___init_aplusassignop(var2, var_tpluseqnode2); /* Direct call parser_prod$APlusAssignOp$init_aplusassignop on <var2:APlusAssignOp>*/
2527 }
2528 var_passignopnode1 = var2;
2529 var_node_list = var_passignopnode1;
2530 var3 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction246> */
2531 {
2532 var4 = nitc___nitc__Parser___go_to(var_p, var3);
2533 }
2534 {
2535 nitc___nitc__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
2536 }
2537 RET_LABEL:;
2538 }
2539 /* method parser$ReduceAction247$action for (self: ReduceAction247, Parser) */
2540 void nitc__parser___nitc__parser__ReduceAction247___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
2541 val* var_p /* var p: Parser */;
2542 val* var_node_list /* var node_list: nullable Object */;
2543 val* var /* : nullable Object */;
2544 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2545 val* var_tminuseqnode2 /* var tminuseqnode2: nullable Object */;
2546 short int var1 /* : Bool */;
2547 int cltype;
2548 int idtype;
2549 val* var2 /* : AMinusAssignOp */;
2550 val* var_passignopnode1 /* var passignopnode1: nullable AMinusAssignOp */;
2551 long var3 /* : Int */;
2552 long var4 /* : Int */;
2553 var_p = p0;
2554 var_node_list = ((val*)NULL);
2555 {
2556 var = nitc___nitc__Parser___pop(var_p);
2557 }
2558 var_nodearraylist1 = var;
2559 var_tminuseqnode2 = var_nodearraylist1;
2560 /* <var_tminuseqnode2:nullable Object> isa nullable TMinuseq */
2561 cltype = type_nullable__nitc__TMinuseq.color;
2562 idtype = type_nullable__nitc__TMinuseq.id;
2563 if(var_tminuseqnode2 == NULL) {
2564 var1 = 1;
2565 } else {
2566 if(cltype >= (((long)var_tminuseqnode2&3)?type_info[((long)var_tminuseqnode2&3)]:var_tminuseqnode2->type)->table_size) {
2567 var1 = 0;
2568 } else {
2569 var1 = (((long)var_tminuseqnode2&3)?type_info[((long)var_tminuseqnode2&3)]:var_tminuseqnode2->type)->type_table[cltype] == idtype;
2570 }
2571 }
2572 if (unlikely(!var1)) {
2573 if(catchStack.cursor >= 0){
2574 longjmp(catchStack.envs[catchStack.cursor], 1);
2575 }
2576 PRINT_ERROR("Runtime error: %s", "Assert failed");
2577 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7491);
2578 fatal_exit(1);
2579 }
2580 var2 = NEW_nitc__AMinusAssignOp(&type_nitc__AMinusAssignOp);
2581 {
2582 nitc__parser_prod___AMinusAssignOp___init_aminusassignop(var2, var_tminuseqnode2); /* Direct call parser_prod$AMinusAssignOp$init_aminusassignop on <var2:AMinusAssignOp>*/
2583 }
2584 var_passignopnode1 = var2;
2585 var_node_list = var_passignopnode1;
2586 var3 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction247> */
2587 {
2588 var4 = nitc___nitc__Parser___go_to(var_p, var3);
2589 }
2590 {
2591 nitc___nitc__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
2592 }
2593 RET_LABEL:;
2594 }
2595 /* method parser$ReduceAction248$action for (self: ReduceAction248, Parser) */
2596 void nitc__parser___nitc__parser__ReduceAction248___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
2597 val* var_p /* var p: Parser */;
2598 val* var_node_list /* var node_list: nullable Object */;
2599 val* var /* : nullable Object */;
2600 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2601 val* var_tstareqnode2 /* var tstareqnode2: nullable Object */;
2602 short int var1 /* : Bool */;
2603 int cltype;
2604 int idtype;
2605 val* var2 /* : AStarAssignOp */;
2606 val* var_passignopnode1 /* var passignopnode1: nullable AStarAssignOp */;
2607 long var3 /* : Int */;
2608 long var4 /* : Int */;
2609 var_p = p0;
2610 var_node_list = ((val*)NULL);
2611 {
2612 var = nitc___nitc__Parser___pop(var_p);
2613 }
2614 var_nodearraylist1 = var;
2615 var_tstareqnode2 = var_nodearraylist1;
2616 /* <var_tstareqnode2:nullable Object> isa nullable TStareq */
2617 cltype = type_nullable__nitc__TStareq.color;
2618 idtype = type_nullable__nitc__TStareq.id;
2619 if(var_tstareqnode2 == NULL) {
2620 var1 = 1;
2621 } else {
2622 if(cltype >= (((long)var_tstareqnode2&3)?type_info[((long)var_tstareqnode2&3)]:var_tstareqnode2->type)->table_size) {
2623 var1 = 0;
2624 } else {
2625 var1 = (((long)var_tstareqnode2&3)?type_info[((long)var_tstareqnode2&3)]:var_tstareqnode2->type)->type_table[cltype] == idtype;
2626 }
2627 }
2628 if (unlikely(!var1)) {
2629 if(catchStack.cursor >= 0){
2630 longjmp(catchStack.envs[catchStack.cursor], 1);
2631 }
2632 PRINT_ERROR("Runtime error: %s", "Assert failed");
2633 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7506);
2634 fatal_exit(1);
2635 }
2636 var2 = NEW_nitc__AStarAssignOp(&type_nitc__AStarAssignOp);
2637 {
2638 nitc__parser_prod___AStarAssignOp___init_astarassignop(var2, var_tstareqnode2); /* Direct call parser_prod$AStarAssignOp$init_astarassignop on <var2:AStarAssignOp>*/
2639 }
2640 var_passignopnode1 = var2;
2641 var_node_list = var_passignopnode1;
2642 var3 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction248> */
2643 {
2644 var4 = nitc___nitc__Parser___go_to(var_p, var3);
2645 }
2646 {
2647 nitc___nitc__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
2648 }
2649 RET_LABEL:;
2650 }
2651 /* method parser$ReduceAction249$action for (self: ReduceAction249, Parser) */
2652 void nitc__parser___nitc__parser__ReduceAction249___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
2653 val* var_p /* var p: Parser */;
2654 val* var_node_list /* var node_list: nullable Object */;
2655 val* var /* : nullable Object */;
2656 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2657 val* var_tslasheqnode2 /* var tslasheqnode2: nullable Object */;
2658 short int var1 /* : Bool */;
2659 int cltype;
2660 int idtype;
2661 val* var2 /* : ASlashAssignOp */;
2662 val* var_passignopnode1 /* var passignopnode1: nullable ASlashAssignOp */;
2663 long var3 /* : Int */;
2664 long var4 /* : Int */;
2665 var_p = p0;
2666 var_node_list = ((val*)NULL);
2667 {
2668 var = nitc___nitc__Parser___pop(var_p);
2669 }
2670 var_nodearraylist1 = var;
2671 var_tslasheqnode2 = var_nodearraylist1;
2672 /* <var_tslasheqnode2:nullable Object> isa nullable TSlasheq */
2673 cltype = type_nullable__nitc__TSlasheq.color;
2674 idtype = type_nullable__nitc__TSlasheq.id;
2675 if(var_tslasheqnode2 == NULL) {
2676 var1 = 1;
2677 } else {
2678 if(cltype >= (((long)var_tslasheqnode2&3)?type_info[((long)var_tslasheqnode2&3)]:var_tslasheqnode2->type)->table_size) {
2679 var1 = 0;
2680 } else {
2681 var1 = (((long)var_tslasheqnode2&3)?type_info[((long)var_tslasheqnode2&3)]:var_tslasheqnode2->type)->type_table[cltype] == idtype;
2682 }
2683 }
2684 if (unlikely(!var1)) {
2685 if(catchStack.cursor >= 0){
2686 longjmp(catchStack.envs[catchStack.cursor], 1);
2687 }
2688 PRINT_ERROR("Runtime error: %s", "Assert failed");
2689 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7521);
2690 fatal_exit(1);
2691 }
2692 var2 = NEW_nitc__ASlashAssignOp(&type_nitc__ASlashAssignOp);
2693 {
2694 nitc__parser_prod___ASlashAssignOp___init_aslashassignop(var2, var_tslasheqnode2); /* Direct call parser_prod$ASlashAssignOp$init_aslashassignop on <var2:ASlashAssignOp>*/
2695 }
2696 var_passignopnode1 = var2;
2697 var_node_list = var_passignopnode1;
2698 var3 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction249> */
2699 {
2700 var4 = nitc___nitc__Parser___go_to(var_p, var3);
2701 }
2702 {
2703 nitc___nitc__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
2704 }
2705 RET_LABEL:;
2706 }
2707 /* method parser$ReduceAction250$action for (self: ReduceAction250, Parser) */
2708 void nitc__parser___nitc__parser__ReduceAction250___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
2709 val* var_p /* var p: Parser */;
2710 val* var_node_list /* var node_list: nullable Object */;
2711 val* var /* : nullable Object */;
2712 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2713 val* var_tpercenteqnode2 /* var tpercenteqnode2: nullable Object */;
2714 short int var1 /* : Bool */;
2715 int cltype;
2716 int idtype;
2717 val* var2 /* : APercentAssignOp */;
2718 val* var_passignopnode1 /* var passignopnode1: nullable APercentAssignOp */;
2719 long var3 /* : Int */;
2720 long var4 /* : Int */;
2721 var_p = p0;
2722 var_node_list = ((val*)NULL);
2723 {
2724 var = nitc___nitc__Parser___pop(var_p);
2725 }
2726 var_nodearraylist1 = var;
2727 var_tpercenteqnode2 = var_nodearraylist1;
2728 /* <var_tpercenteqnode2:nullable Object> isa nullable TPercenteq */
2729 cltype = type_nullable__nitc__TPercenteq.color;
2730 idtype = type_nullable__nitc__TPercenteq.id;
2731 if(var_tpercenteqnode2 == NULL) {
2732 var1 = 1;
2733 } else {
2734 if(cltype >= (((long)var_tpercenteqnode2&3)?type_info[((long)var_tpercenteqnode2&3)]:var_tpercenteqnode2->type)->table_size) {
2735 var1 = 0;
2736 } else {
2737 var1 = (((long)var_tpercenteqnode2&3)?type_info[((long)var_tpercenteqnode2&3)]:var_tpercenteqnode2->type)->type_table[cltype] == idtype;
2738 }
2739 }
2740 if (unlikely(!var1)) {
2741 if(catchStack.cursor >= 0){
2742 longjmp(catchStack.envs[catchStack.cursor], 1);
2743 }
2744 PRINT_ERROR("Runtime error: %s", "Assert failed");
2745 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7536);
2746 fatal_exit(1);
2747 }
2748 var2 = NEW_nitc__APercentAssignOp(&type_nitc__APercentAssignOp);
2749 {
2750 nitc__parser_prod___APercentAssignOp___init_apercentassignop(var2, var_tpercenteqnode2); /* Direct call parser_prod$APercentAssignOp$init_apercentassignop on <var2:APercentAssignOp>*/
2751 }
2752 var_passignopnode1 = var2;
2753 var_node_list = var_passignopnode1;
2754 var3 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction250> */
2755 {
2756 var4 = nitc___nitc__Parser___go_to(var_p, var3);
2757 }
2758 {
2759 nitc___nitc__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
2760 }
2761 RET_LABEL:;
2762 }
2763 /* method parser$ReduceAction251$action for (self: ReduceAction251, Parser) */
2764 void nitc__parser___nitc__parser__ReduceAction251___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
2765 val* var_p /* var p: Parser */;
2766 val* var_node_list /* var node_list: nullable Object */;
2767 val* var /* : nullable Object */;
2768 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2769 val* var_tstarstareqnode2 /* var tstarstareqnode2: nullable Object */;
2770 short int var1 /* : Bool */;
2771 int cltype;
2772 int idtype;
2773 val* var2 /* : AStarstarAssignOp */;
2774 val* var_passignopnode1 /* var passignopnode1: nullable AStarstarAssignOp */;
2775 long var3 /* : Int */;
2776 long var4 /* : Int */;
2777 var_p = p0;
2778 var_node_list = ((val*)NULL);
2779 {
2780 var = nitc___nitc__Parser___pop(var_p);
2781 }
2782 var_nodearraylist1 = var;
2783 var_tstarstareqnode2 = var_nodearraylist1;
2784 /* <var_tstarstareqnode2:nullable Object> isa nullable TStarstareq */
2785 cltype = type_nullable__nitc__TStarstareq.color;
2786 idtype = type_nullable__nitc__TStarstareq.id;
2787 if(var_tstarstareqnode2 == NULL) {
2788 var1 = 1;
2789 } else {
2790 if(cltype >= (((long)var_tstarstareqnode2&3)?type_info[((long)var_tstarstareqnode2&3)]:var_tstarstareqnode2->type)->table_size) {
2791 var1 = 0;
2792 } else {
2793 var1 = (((long)var_tstarstareqnode2&3)?type_info[((long)var_tstarstareqnode2&3)]:var_tstarstareqnode2->type)->type_table[cltype] == idtype;
2794 }
2795 }
2796 if (unlikely(!var1)) {
2797 if(catchStack.cursor >= 0){
2798 longjmp(catchStack.envs[catchStack.cursor], 1);
2799 }
2800 PRINT_ERROR("Runtime error: %s", "Assert failed");
2801 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7551);
2802 fatal_exit(1);
2803 }
2804 var2 = NEW_nitc__AStarstarAssignOp(&type_nitc__AStarstarAssignOp);
2805 {
2806 nitc__parser_prod___AStarstarAssignOp___init_astarstarassignop(var2, var_tstarstareqnode2); /* Direct call parser_prod$AStarstarAssignOp$init_astarstarassignop on <var2:AStarstarAssignOp>*/
2807 }
2808 var_passignopnode1 = var2;
2809 var_node_list = var_passignopnode1;
2810 var3 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction251> */
2811 {
2812 var4 = nitc___nitc__Parser___go_to(var_p, var3);
2813 }
2814 {
2815 nitc___nitc__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
2816 }
2817 RET_LABEL:;
2818 }
2819 /* method parser$ReduceAction252$action for (self: ReduceAction252, Parser) */
2820 void nitc__parser___nitc__parser__ReduceAction252___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
2821 val* var_p /* var p: Parser */;
2822 val* var_node_list /* var node_list: nullable Object */;
2823 val* var /* : nullable Object */;
2824 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2825 val* var_tpipeeqnode2 /* var tpipeeqnode2: nullable Object */;
2826 short int var1 /* : Bool */;
2827 int cltype;
2828 int idtype;
2829 val* var2 /* : APipeAssignOp */;
2830 val* var_passignopnode1 /* var passignopnode1: nullable APipeAssignOp */;
2831 long var3 /* : Int */;
2832 long var4 /* : Int */;
2833 var_p = p0;
2834 var_node_list = ((val*)NULL);
2835 {
2836 var = nitc___nitc__Parser___pop(var_p);
2837 }
2838 var_nodearraylist1 = var;
2839 var_tpipeeqnode2 = var_nodearraylist1;
2840 /* <var_tpipeeqnode2:nullable Object> isa nullable TPipeeq */
2841 cltype = type_nullable__nitc__TPipeeq.color;
2842 idtype = type_nullable__nitc__TPipeeq.id;
2843 if(var_tpipeeqnode2 == NULL) {
2844 var1 = 1;
2845 } else {
2846 if(cltype >= (((long)var_tpipeeqnode2&3)?type_info[((long)var_tpipeeqnode2&3)]:var_tpipeeqnode2->type)->table_size) {
2847 var1 = 0;
2848 } else {
2849 var1 = (((long)var_tpipeeqnode2&3)?type_info[((long)var_tpipeeqnode2&3)]:var_tpipeeqnode2->type)->type_table[cltype] == idtype;
2850 }
2851 }
2852 if (unlikely(!var1)) {
2853 if(catchStack.cursor >= 0){
2854 longjmp(catchStack.envs[catchStack.cursor], 1);
2855 }
2856 PRINT_ERROR("Runtime error: %s", "Assert failed");
2857 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7566);
2858 fatal_exit(1);
2859 }
2860 var2 = NEW_nitc__APipeAssignOp(&type_nitc__APipeAssignOp);
2861 {
2862 nitc__parser_prod___APipeAssignOp___init_apipeassignop(var2, var_tpipeeqnode2); /* Direct call parser_prod$APipeAssignOp$init_apipeassignop on <var2:APipeAssignOp>*/
2863 }
2864 var_passignopnode1 = var2;
2865 var_node_list = var_passignopnode1;
2866 var3 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction252> */
2867 {
2868 var4 = nitc___nitc__Parser___go_to(var_p, var3);
2869 }
2870 {
2871 nitc___nitc__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
2872 }
2873 RET_LABEL:;
2874 }
2875 /* method parser$ReduceAction253$action for (self: ReduceAction253, Parser) */
2876 void nitc__parser___nitc__parser__ReduceAction253___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
2877 val* var_p /* var p: Parser */;
2878 val* var_node_list /* var node_list: nullable Object */;
2879 val* var /* : nullable Object */;
2880 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2881 val* var_tcareteqnode2 /* var tcareteqnode2: nullable Object */;
2882 short int var1 /* : Bool */;
2883 int cltype;
2884 int idtype;
2885 val* var2 /* : ACaretAssignOp */;
2886 val* var_passignopnode1 /* var passignopnode1: nullable ACaretAssignOp */;
2887 long var3 /* : Int */;
2888 long var4 /* : Int */;
2889 var_p = p0;
2890 var_node_list = ((val*)NULL);
2891 {
2892 var = nitc___nitc__Parser___pop(var_p);
2893 }
2894 var_nodearraylist1 = var;
2895 var_tcareteqnode2 = var_nodearraylist1;
2896 /* <var_tcareteqnode2:nullable Object> isa nullable TCareteq */
2897 cltype = type_nullable__nitc__TCareteq.color;
2898 idtype = type_nullable__nitc__TCareteq.id;
2899 if(var_tcareteqnode2 == NULL) {
2900 var1 = 1;
2901 } else {
2902 if(cltype >= (((long)var_tcareteqnode2&3)?type_info[((long)var_tcareteqnode2&3)]:var_tcareteqnode2->type)->table_size) {
2903 var1 = 0;
2904 } else {
2905 var1 = (((long)var_tcareteqnode2&3)?type_info[((long)var_tcareteqnode2&3)]:var_tcareteqnode2->type)->type_table[cltype] == idtype;
2906 }
2907 }
2908 if (unlikely(!var1)) {
2909 if(catchStack.cursor >= 0){
2910 longjmp(catchStack.envs[catchStack.cursor], 1);
2911 }
2912 PRINT_ERROR("Runtime error: %s", "Assert failed");
2913 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7581);
2914 fatal_exit(1);
2915 }
2916 var2 = NEW_nitc__ACaretAssignOp(&type_nitc__ACaretAssignOp);
2917 {
2918 nitc__parser_prod___ACaretAssignOp___init_acaretassignop(var2, var_tcareteqnode2); /* Direct call parser_prod$ACaretAssignOp$init_acaretassignop on <var2:ACaretAssignOp>*/
2919 }
2920 var_passignopnode1 = var2;
2921 var_node_list = var_passignopnode1;
2922 var3 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction253> */
2923 {
2924 var4 = nitc___nitc__Parser___go_to(var_p, var3);
2925 }
2926 {
2927 nitc___nitc__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
2928 }
2929 RET_LABEL:;
2930 }
2931 /* method parser$ReduceAction254$action for (self: ReduceAction254, Parser) */
2932 void nitc__parser___nitc__parser__ReduceAction254___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
2933 val* var_p /* var p: Parser */;
2934 val* var_node_list /* var node_list: nullable Object */;
2935 val* var /* : nullable Object */;
2936 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2937 val* var_tampeqnode2 /* var tampeqnode2: nullable Object */;
2938 short int var1 /* : Bool */;
2939 int cltype;
2940 int idtype;
2941 val* var2 /* : AAmpAssignOp */;
2942 val* var_passignopnode1 /* var passignopnode1: nullable AAmpAssignOp */;
2943 long var3 /* : Int */;
2944 long var4 /* : Int */;
2945 var_p = p0;
2946 var_node_list = ((val*)NULL);
2947 {
2948 var = nitc___nitc__Parser___pop(var_p);
2949 }
2950 var_nodearraylist1 = var;
2951 var_tampeqnode2 = var_nodearraylist1;
2952 /* <var_tampeqnode2:nullable Object> isa nullable TAmpeq */
2953 cltype = type_nullable__nitc__TAmpeq.color;
2954 idtype = type_nullable__nitc__TAmpeq.id;
2955 if(var_tampeqnode2 == NULL) {
2956 var1 = 1;
2957 } else {
2958 if(cltype >= (((long)var_tampeqnode2&3)?type_info[((long)var_tampeqnode2&3)]:var_tampeqnode2->type)->table_size) {
2959 var1 = 0;
2960 } else {
2961 var1 = (((long)var_tampeqnode2&3)?type_info[((long)var_tampeqnode2&3)]:var_tampeqnode2->type)->type_table[cltype] == idtype;
2962 }
2963 }
2964 if (unlikely(!var1)) {
2965 if(catchStack.cursor >= 0){
2966 longjmp(catchStack.envs[catchStack.cursor], 1);
2967 }
2968 PRINT_ERROR("Runtime error: %s", "Assert failed");
2969 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7596);
2970 fatal_exit(1);
2971 }
2972 var2 = NEW_nitc__AAmpAssignOp(&type_nitc__AAmpAssignOp);
2973 {
2974 nitc__parser_prod___AAmpAssignOp___init_aampassignop(var2, var_tampeqnode2); /* Direct call parser_prod$AAmpAssignOp$init_aampassignop on <var2:AAmpAssignOp>*/
2975 }
2976 var_passignopnode1 = var2;
2977 var_node_list = var_passignopnode1;
2978 var3 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction254> */
2979 {
2980 var4 = nitc___nitc__Parser___go_to(var_p, var3);
2981 }
2982 {
2983 nitc___nitc__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
2984 }
2985 RET_LABEL:;
2986 }
2987 /* method parser$ReduceAction255$action for (self: ReduceAction255, Parser) */
2988 void nitc__parser___nitc__parser__ReduceAction255___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
2989 val* var_p /* var p: Parser */;
2990 val* var_node_list /* var node_list: nullable Object */;
2991 val* var /* : nullable Object */;
2992 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
2993 val* var_tlleqnode2 /* var tlleqnode2: nullable Object */;
2994 short int var1 /* : Bool */;
2995 int cltype;
2996 int idtype;
2997 val* var2 /* : ALlAssignOp */;
2998 val* var_passignopnode1 /* var passignopnode1: nullable ALlAssignOp */;
2999 long var3 /* : Int */;
3000 long var4 /* : Int */;
3001 var_p = p0;
3002 var_node_list = ((val*)NULL);
3003 {
3004 var = nitc___nitc__Parser___pop(var_p);
3005 }
3006 var_nodearraylist1 = var;
3007 var_tlleqnode2 = var_nodearraylist1;
3008 /* <var_tlleqnode2:nullable Object> isa nullable TLleq */
3009 cltype = type_nullable__nitc__TLleq.color;
3010 idtype = type_nullable__nitc__TLleq.id;
3011 if(var_tlleqnode2 == NULL) {
3012 var1 = 1;
3013 } else {
3014 if(cltype >= (((long)var_tlleqnode2&3)?type_info[((long)var_tlleqnode2&3)]:var_tlleqnode2->type)->table_size) {
3015 var1 = 0;
3016 } else {
3017 var1 = (((long)var_tlleqnode2&3)?type_info[((long)var_tlleqnode2&3)]:var_tlleqnode2->type)->type_table[cltype] == idtype;
3018 }
3019 }
3020 if (unlikely(!var1)) {
3021 if(catchStack.cursor >= 0){
3022 longjmp(catchStack.envs[catchStack.cursor], 1);
3023 }
3024 PRINT_ERROR("Runtime error: %s", "Assert failed");
3025 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7611);
3026 fatal_exit(1);
3027 }
3028 var2 = NEW_nitc__ALlAssignOp(&type_nitc__ALlAssignOp);
3029 {
3030 nitc__parser_prod___ALlAssignOp___init_allassignop(var2, var_tlleqnode2); /* Direct call parser_prod$ALlAssignOp$init_allassignop on <var2:ALlAssignOp>*/
3031 }
3032 var_passignopnode1 = var2;
3033 var_node_list = var_passignopnode1;
3034 var3 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction255> */
3035 {
3036 var4 = nitc___nitc__Parser___go_to(var_p, var3);
3037 }
3038 {
3039 nitc___nitc__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
3040 }
3041 RET_LABEL:;
3042 }
3043 /* method parser$ReduceAction256$action for (self: ReduceAction256, Parser) */
3044 void nitc__parser___nitc__parser__ReduceAction256___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
3045 val* var_p /* var p: Parser */;
3046 val* var_node_list /* var node_list: nullable Object */;
3047 val* var /* : nullable Object */;
3048 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3049 val* var_tggeqnode2 /* var tggeqnode2: nullable Object */;
3050 short int var1 /* : Bool */;
3051 int cltype;
3052 int idtype;
3053 val* var2 /* : AGgAssignOp */;
3054 val* var_passignopnode1 /* var passignopnode1: nullable AGgAssignOp */;
3055 long var3 /* : Int */;
3056 long var4 /* : Int */;
3057 var_p = p0;
3058 var_node_list = ((val*)NULL);
3059 {
3060 var = nitc___nitc__Parser___pop(var_p);
3061 }
3062 var_nodearraylist1 = var;
3063 var_tggeqnode2 = var_nodearraylist1;
3064 /* <var_tggeqnode2:nullable Object> isa nullable TGgeq */
3065 cltype = type_nullable__nitc__TGgeq.color;
3066 idtype = type_nullable__nitc__TGgeq.id;
3067 if(var_tggeqnode2 == NULL) {
3068 var1 = 1;
3069 } else {
3070 if(cltype >= (((long)var_tggeqnode2&3)?type_info[((long)var_tggeqnode2&3)]:var_tggeqnode2->type)->table_size) {
3071 var1 = 0;
3072 } else {
3073 var1 = (((long)var_tggeqnode2&3)?type_info[((long)var_tggeqnode2&3)]:var_tggeqnode2->type)->type_table[cltype] == idtype;
3074 }
3075 }
3076 if (unlikely(!var1)) {
3077 if(catchStack.cursor >= 0){
3078 longjmp(catchStack.envs[catchStack.cursor], 1);
3079 }
3080 PRINT_ERROR("Runtime error: %s", "Assert failed");
3081 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7626);
3082 fatal_exit(1);
3083 }
3084 var2 = NEW_nitc__AGgAssignOp(&type_nitc__AGgAssignOp);
3085 {
3086 nitc__parser_prod___AGgAssignOp___init_aggassignop(var2, var_tggeqnode2); /* Direct call parser_prod$AGgAssignOp$init_aggassignop on <var2:AGgAssignOp>*/
3087 }
3088 var_passignopnode1 = var2;
3089 var_node_list = var_passignopnode1;
3090 var3 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction256> */
3091 {
3092 var4 = nitc___nitc__Parser___go_to(var_p, var3);
3093 }
3094 {
3095 nitc___nitc__Parser___push(var_p, var4, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
3096 }
3097 RET_LABEL:;
3098 }
3099 /* method parser$ReduceAction257$action for (self: ReduceAction257, Parser) */
3100 void nitc__parser___nitc__parser__ReduceAction257___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
3101 val* var_p /* var p: Parser */;
3102 val* var_node_list /* var node_list: nullable Object */;
3103 val* var /* : nullable Object */;
3104 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3105 val* var1 /* : nullable Object */;
3106 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3107 val* var2 /* : nullable Object */;
3108 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3109 val* var_tkwdonode2 /* var tkwdonode2: nullable Object */;
3110 short int var3 /* : Bool */;
3111 int cltype;
3112 int idtype;
3113 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
3114 short int var4 /* : Bool */;
3115 int cltype5;
3116 int idtype6;
3117 val* var_plabelnode6 /* var plabelnode6: nullable Object */;
3118 short int var7 /* : Bool */;
3119 int cltype8;
3120 int idtype9;
3121 val* var10 /* : ADoExpr */;
3122 val* var_pexprnode1 /* var pexprnode1: nullable ADoExpr */;
3123 long var11 /* : Int */;
3124 long var12 /* : Int */;
3125 var_p = p0;
3126 var_node_list = ((val*)NULL);
3127 {
3128 var = nitc___nitc__Parser___pop(var_p);
3129 }
3130 var_nodearraylist3 = var;
3131 {
3132 var1 = nitc___nitc__Parser___pop(var_p);
3133 }
3134 var_nodearraylist2 = var1;
3135 {
3136 var2 = nitc___nitc__Parser___pop(var_p);
3137 }
3138 var_nodearraylist1 = var2;
3139 var_tkwdonode2 = var_nodearraylist1;
3140 /* <var_tkwdonode2:nullable Object> isa nullable TKwdo */
3141 cltype = type_nullable__nitc__TKwdo.color;
3142 idtype = type_nullable__nitc__TKwdo.id;
3143 if(var_tkwdonode2 == NULL) {
3144 var3 = 1;
3145 } else {
3146 if(cltype >= (((long)var_tkwdonode2&3)?type_info[((long)var_tkwdonode2&3)]:var_tkwdonode2->type)->table_size) {
3147 var3 = 0;
3148 } else {
3149 var3 = (((long)var_tkwdonode2&3)?type_info[((long)var_tkwdonode2&3)]:var_tkwdonode2->type)->type_table[cltype] == idtype;
3150 }
3151 }
3152 if (unlikely(!var3)) {
3153 if(catchStack.cursor >= 0){
3154 longjmp(catchStack.envs[catchStack.cursor], 1);
3155 }
3156 PRINT_ERROR("Runtime error: %s", "Assert failed");
3157 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7643);
3158 fatal_exit(1);
3159 }
3160 var_pexprnode3 = var_nodearraylist2;
3161 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
3162 cltype5 = type_nullable__nitc__AExpr.color;
3163 idtype6 = type_nullable__nitc__AExpr.id;
3164 if(var_pexprnode3 == NULL) {
3165 var4 = 1;
3166 } else {
3167 if(cltype5 >= (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->table_size) {
3168 var4 = 0;
3169 } else {
3170 var4 = (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->type_table[cltype5] == idtype6;
3171 }
3172 }
3173 if (unlikely(!var4)) {
3174 if(catchStack.cursor >= 0){
3175 longjmp(catchStack.envs[catchStack.cursor], 1);
3176 }
3177 PRINT_ERROR("Runtime error: %s", "Assert failed");
3178 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7645);
3179 fatal_exit(1);
3180 }
3181 var_plabelnode6 = var_nodearraylist3;
3182 /* <var_plabelnode6:nullable Object> isa nullable ALabel */
3183 cltype8 = type_nullable__nitc__ALabel.color;
3184 idtype9 = type_nullable__nitc__ALabel.id;
3185 if(var_plabelnode6 == NULL) {
3186 var7 = 1;
3187 } else {
3188 if(cltype8 >= (((long)var_plabelnode6&3)?type_info[((long)var_plabelnode6&3)]:var_plabelnode6->type)->table_size) {
3189 var7 = 0;
3190 } else {
3191 var7 = (((long)var_plabelnode6&3)?type_info[((long)var_plabelnode6&3)]:var_plabelnode6->type)->type_table[cltype8] == idtype9;
3192 }
3193 }
3194 if (unlikely(!var7)) {
3195 if(catchStack.cursor >= 0){
3196 longjmp(catchStack.envs[catchStack.cursor], 1);
3197 }
3198 PRINT_ERROR("Runtime error: %s", "Assert failed");
3199 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7647);
3200 fatal_exit(1);
3201 }
3202 var10 = NEW_nitc__ADoExpr(&type_nitc__ADoExpr);
3203 {
3204 nitc__parser_prod___ADoExpr___init_adoexpr(var10, var_tkwdonode2, var_pexprnode3, ((val*)NULL), ((val*)NULL), var_plabelnode6); /* Direct call parser_prod$ADoExpr$init_adoexpr on <var10:ADoExpr>*/
3205 }
3206 var_pexprnode1 = var10;
3207 var_node_list = var_pexprnode1;
3208 var11 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction257> */
3209 {
3210 var12 = nitc___nitc__Parser___go_to(var_p, var11);
3211 }
3212 {
3213 nitc___nitc__Parser___push(var_p, var12, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
3214 }
3215 RET_LABEL:;
3216 }
3217 /* method parser$ReduceAction258$action for (self: ReduceAction258, Parser) */
3218 void nitc__parser___nitc__parser__ReduceAction258___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
3219 val* var_p /* var p: Parser */;
3220 val* var_node_list /* var node_list: nullable Object */;
3221 val* var /* : nullable Object */;
3222 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3223 val* var1 /* : nullable Object */;
3224 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3225 val* var_tkwdonode2 /* var tkwdonode2: nullable Object */;
3226 short int var2 /* : Bool */;
3227 int cltype;
3228 int idtype;
3229 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
3230 short int var3 /* : Bool */;
3231 int cltype4;
3232 int idtype5;
3233 val* var6 /* : ADoExpr */;
3234 val* var_pexprnode1 /* var pexprnode1: nullable ADoExpr */;
3235 long var7 /* : Int */;
3236 long var8 /* : Int */;
3237 var_p = p0;
3238 var_node_list = ((val*)NULL);
3239 {
3240 var = nitc___nitc__Parser___pop(var_p);
3241 }
3242 var_nodearraylist2 = var;
3243 {
3244 var1 = nitc___nitc__Parser___pop(var_p);
3245 }
3246 var_nodearraylist1 = var1;
3247 var_tkwdonode2 = var_nodearraylist1;
3248 /* <var_tkwdonode2:nullable Object> isa nullable TKwdo */
3249 cltype = type_nullable__nitc__TKwdo.color;
3250 idtype = type_nullable__nitc__TKwdo.id;
3251 if(var_tkwdonode2 == NULL) {
3252 var2 = 1;
3253 } else {
3254 if(cltype >= (((long)var_tkwdonode2&3)?type_info[((long)var_tkwdonode2&3)]:var_tkwdonode2->type)->table_size) {
3255 var2 = 0;
3256 } else {
3257 var2 = (((long)var_tkwdonode2&3)?type_info[((long)var_tkwdonode2&3)]:var_tkwdonode2->type)->type_table[cltype] == idtype;
3258 }
3259 }
3260 if (unlikely(!var2)) {
3261 if(catchStack.cursor >= 0){
3262 longjmp(catchStack.envs[catchStack.cursor], 1);
3263 }
3264 PRINT_ERROR("Runtime error: %s", "Assert failed");
3265 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7667);
3266 fatal_exit(1);
3267 }
3268 var_pexprnode3 = var_nodearraylist2;
3269 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
3270 cltype4 = type_nullable__nitc__AExpr.color;
3271 idtype5 = type_nullable__nitc__AExpr.id;
3272 if(var_pexprnode3 == NULL) {
3273 var3 = 1;
3274 } else {
3275 if(cltype4 >= (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->table_size) {
3276 var3 = 0;
3277 } else {
3278 var3 = (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->type_table[cltype4] == idtype5;
3279 }
3280 }
3281 if (unlikely(!var3)) {
3282 if(catchStack.cursor >= 0){
3283 longjmp(catchStack.envs[catchStack.cursor], 1);
3284 }
3285 PRINT_ERROR("Runtime error: %s", "Assert failed");
3286 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7669);
3287 fatal_exit(1);
3288 }
3289 var6 = NEW_nitc__ADoExpr(&type_nitc__ADoExpr);
3290 {
3291 nitc__parser_prod___ADoExpr___init_adoexpr(var6, var_tkwdonode2, var_pexprnode3, ((val*)NULL), ((val*)NULL), ((val*)NULL)); /* Direct call parser_prod$ADoExpr$init_adoexpr on <var6:ADoExpr>*/
3292 }
3293 var_pexprnode1 = var6;
3294 var_node_list = var_pexprnode1;
3295 var7 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction258> */
3296 {
3297 var8 = nitc___nitc__Parser___go_to(var_p, var7);
3298 }
3299 {
3300 nitc___nitc__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
3301 }
3302 RET_LABEL:;
3303 }
3304 /* method parser$ReduceAction259$action for (self: ReduceAction259, Parser) */
3305 void nitc__parser___nitc__parser__ReduceAction259___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
3306 val* var_p /* var p: Parser */;
3307 val* var_node_list /* var node_list: nullable Object */;
3308 val* var /* : nullable Object */;
3309 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
3310 val* var1 /* : nullable Object */;
3311 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3312 val* var2 /* : nullable Object */;
3313 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3314 val* var3 /* : nullable Object */;
3315 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3316 val* var4 /* : nullable Object */;
3317 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3318 val* var_tkwdonode2 /* var tkwdonode2: nullable Object */;
3319 short int var5 /* : Bool */;
3320 int cltype;
3321 int idtype;
3322 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
3323 short int var6 /* : Bool */;
3324 int cltype7;
3325 int idtype8;
3326 val* var_tkwcatchnode4 /* var tkwcatchnode4: nullable Object */;
3327 short int var9 /* : Bool */;
3328 int cltype10;
3329 int idtype11;
3330 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
3331 short int var12 /* : Bool */;
3332 int cltype13;
3333 int idtype14;
3334 val* var15 /* : ADoExpr */;
3335 val* var_pexprnode1 /* var pexprnode1: nullable ADoExpr */;
3336 long var16 /* : Int */;
3337 long var17 /* : Int */;
3338 var_p = p0;
3339 var_node_list = ((val*)NULL);
3340 {
3341 var = nitc___nitc__Parser___pop(var_p);
3342 }
3343 var_nodearraylist5 = var;
3344 {
3345 var1 = nitc___nitc__Parser___pop(var_p);
3346 }
3347 var_nodearraylist4 = var1;
3348 {
3349 var2 = nitc___nitc__Parser___pop(var_p);
3350 }
3351 var_nodearraylist3 = var2;
3352 {
3353 var3 = nitc___nitc__Parser___pop(var_p);
3354 }
3355 var_nodearraylist2 = var3;
3356 {
3357 var4 = nitc___nitc__Parser___pop(var_p);
3358 }
3359 var_nodearraylist1 = var4;
3360 var_tkwdonode2 = var_nodearraylist1;
3361 /* <var_tkwdonode2:nullable Object> isa nullable TKwdo */
3362 cltype = type_nullable__nitc__TKwdo.color;
3363 idtype = type_nullable__nitc__TKwdo.id;
3364 if(var_tkwdonode2 == NULL) {
3365 var5 = 1;
3366 } else {
3367 if(cltype >= (((long)var_tkwdonode2&3)?type_info[((long)var_tkwdonode2&3)]:var_tkwdonode2->type)->table_size) {
3368 var5 = 0;
3369 } else {
3370 var5 = (((long)var_tkwdonode2&3)?type_info[((long)var_tkwdonode2&3)]:var_tkwdonode2->type)->type_table[cltype] == idtype;
3371 }
3372 }
3373 if (unlikely(!var5)) {
3374 if(catchStack.cursor >= 0){
3375 longjmp(catchStack.envs[catchStack.cursor], 1);
3376 }
3377 PRINT_ERROR("Runtime error: %s", "Assert failed");
3378 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7692);
3379 fatal_exit(1);
3380 }
3381 var_pexprnode3 = var_nodearraylist3;
3382 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
3383 cltype7 = type_nullable__nitc__AExpr.color;
3384 idtype8 = type_nullable__nitc__AExpr.id;
3385 if(var_pexprnode3 == NULL) {
3386 var6 = 1;
3387 } else {
3388 if(cltype7 >= (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->table_size) {
3389 var6 = 0;
3390 } else {
3391 var6 = (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->type_table[cltype7] == idtype8;
3392 }
3393 }
3394 if (unlikely(!var6)) {
3395 if(catchStack.cursor >= 0){
3396 longjmp(catchStack.envs[catchStack.cursor], 1);
3397 }
3398 PRINT_ERROR("Runtime error: %s", "Assert failed");
3399 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7694);
3400 fatal_exit(1);
3401 }
3402 var_tkwcatchnode4 = var_nodearraylist4;
3403 /* <var_tkwcatchnode4:nullable Object> isa nullable TKwcatch */
3404 cltype10 = type_nullable__nitc__TKwcatch.color;
3405 idtype11 = type_nullable__nitc__TKwcatch.id;
3406 if(var_tkwcatchnode4 == NULL) {
3407 var9 = 1;
3408 } else {
3409 if(cltype10 >= (((long)var_tkwcatchnode4&3)?type_info[((long)var_tkwcatchnode4&3)]:var_tkwcatchnode4->type)->table_size) {
3410 var9 = 0;
3411 } else {
3412 var9 = (((long)var_tkwcatchnode4&3)?type_info[((long)var_tkwcatchnode4&3)]:var_tkwcatchnode4->type)->type_table[cltype10] == idtype11;
3413 }
3414 }
3415 if (unlikely(!var9)) {
3416 if(catchStack.cursor >= 0){
3417 longjmp(catchStack.envs[catchStack.cursor], 1);
3418 }
3419 PRINT_ERROR("Runtime error: %s", "Assert failed");
3420 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7696);
3421 fatal_exit(1);
3422 }
3423 var_pexprnode5 = var_nodearraylist5;
3424 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
3425 cltype13 = type_nullable__nitc__AExpr.color;
3426 idtype14 = type_nullable__nitc__AExpr.id;
3427 if(var_pexprnode5 == NULL) {
3428 var12 = 1;
3429 } else {
3430 if(cltype13 >= (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->table_size) {
3431 var12 = 0;
3432 } else {
3433 var12 = (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->type_table[cltype13] == idtype14;
3434 }
3435 }
3436 if (unlikely(!var12)) {
3437 if(catchStack.cursor >= 0){
3438 longjmp(catchStack.envs[catchStack.cursor], 1);
3439 }
3440 PRINT_ERROR("Runtime error: %s", "Assert failed");
3441 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7698);
3442 fatal_exit(1);
3443 }
3444 var15 = NEW_nitc__ADoExpr(&type_nitc__ADoExpr);
3445 {
3446 nitc__parser_prod___ADoExpr___init_adoexpr(var15, var_tkwdonode2, var_pexprnode3, var_tkwcatchnode4, var_pexprnode5, ((val*)NULL)); /* Direct call parser_prod$ADoExpr$init_adoexpr on <var15:ADoExpr>*/
3447 }
3448 var_pexprnode1 = var15;
3449 var_node_list = var_pexprnode1;
3450 var16 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction259> */
3451 {
3452 var17 = nitc___nitc__Parser___go_to(var_p, var16);
3453 }
3454 {
3455 nitc___nitc__Parser___push(var_p, var17, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
3456 }
3457 RET_LABEL:;
3458 }
3459 /* method parser$ReduceAction260$action for (self: ReduceAction260, Parser) */
3460 void nitc__parser___nitc__parser__ReduceAction260___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
3461 val* var_p /* var p: Parser */;
3462 val* var_node_list /* var node_list: nullable Object */;
3463 val* var /* : nullable Object */;
3464 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
3465 val* var1 /* : nullable Object */;
3466 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
3467 val* var2 /* : nullable Object */;
3468 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
3469 val* var3 /* : nullable Object */;
3470 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
3471 val* var4 /* : nullable Object */;
3472 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3473 val* var5 /* : nullable Object */;
3474 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3475 val* var6 /* : nullable Object */;
3476 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3477 val* var7 /* : nullable Object */;
3478 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3479 val* var_tkwifnode2 /* var tkwifnode2: nullable Object */;
3480 short int var8 /* : Bool */;
3481 int cltype;
3482 int idtype;
3483 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
3484 short int var9 /* : Bool */;
3485 int cltype10;
3486 int idtype11;
3487 val* var_tkwthennode4 /* var tkwthennode4: nullable Object */;
3488 short int var12 /* : Bool */;
3489 int cltype13;
3490 int idtype14;
3491 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
3492 short int var15 /* : Bool */;
3493 int cltype16;
3494 int idtype17;
3495 val* var_tkwelsenode6 /* var tkwelsenode6: nullable Object */;
3496 short int var18 /* : Bool */;
3497 int cltype19;
3498 int idtype20;
3499 val* var_pexprnode7 /* var pexprnode7: nullable Object */;
3500 short int var21 /* : Bool */;
3501 int cltype22;
3502 int idtype23;
3503 val* var24 /* : AIfExpr */;
3504 val* var_pexprnode1 /* var pexprnode1: nullable AIfExpr */;
3505 long var25 /* : Int */;
3506 long var26 /* : Int */;
3507 var_p = p0;
3508 var_node_list = ((val*)NULL);
3509 {
3510 var = nitc___nitc__Parser___pop(var_p);
3511 }
3512 var_nodearraylist8 = var;
3513 {
3514 var1 = nitc___nitc__Parser___pop(var_p);
3515 }
3516 var_nodearraylist7 = var1;
3517 {
3518 var2 = nitc___nitc__Parser___pop(var_p);
3519 }
3520 var_nodearraylist6 = var2;
3521 {
3522 var3 = nitc___nitc__Parser___pop(var_p);
3523 }
3524 var_nodearraylist5 = var3;
3525 {
3526 var4 = nitc___nitc__Parser___pop(var_p);
3527 }
3528 var_nodearraylist4 = var4;
3529 {
3530 var5 = nitc___nitc__Parser___pop(var_p);
3531 }
3532 var_nodearraylist3 = var5;
3533 {
3534 var6 = nitc___nitc__Parser___pop(var_p);
3535 }
3536 var_nodearraylist2 = var6;
3537 {
3538 var7 = nitc___nitc__Parser___pop(var_p);
3539 }
3540 var_nodearraylist1 = var7;
3541 var_tkwifnode2 = var_nodearraylist1;
3542 /* <var_tkwifnode2:nullable Object> isa nullable TKwif */
3543 cltype = type_nullable__nitc__TKwif.color;
3544 idtype = type_nullable__nitc__TKwif.id;
3545 if(var_tkwifnode2 == NULL) {
3546 var8 = 1;
3547 } else {
3548 if(cltype >= (((long)var_tkwifnode2&3)?type_info[((long)var_tkwifnode2&3)]:var_tkwifnode2->type)->table_size) {
3549 var8 = 0;
3550 } else {
3551 var8 = (((long)var_tkwifnode2&3)?type_info[((long)var_tkwifnode2&3)]:var_tkwifnode2->type)->type_table[cltype] == idtype;
3552 }
3553 }
3554 if (unlikely(!var8)) {
3555 if(catchStack.cursor >= 0){
3556 longjmp(catchStack.envs[catchStack.cursor], 1);
3557 }
3558 PRINT_ERROR("Runtime error: %s", "Assert failed");
3559 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7724);
3560 fatal_exit(1);
3561 }
3562 var_pexprnode3 = var_nodearraylist3;
3563 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
3564 cltype10 = type_nullable__nitc__AExpr.color;
3565 idtype11 = type_nullable__nitc__AExpr.id;
3566 if(var_pexprnode3 == NULL) {
3567 var9 = 1;
3568 } else {
3569 if(cltype10 >= (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->table_size) {
3570 var9 = 0;
3571 } else {
3572 var9 = (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->type_table[cltype10] == idtype11;
3573 }
3574 }
3575 if (unlikely(!var9)) {
3576 if(catchStack.cursor >= 0){
3577 longjmp(catchStack.envs[catchStack.cursor], 1);
3578 }
3579 PRINT_ERROR("Runtime error: %s", "Assert failed");
3580 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7726);
3581 fatal_exit(1);
3582 }
3583 var_tkwthennode4 = var_nodearraylist5;
3584 /* <var_tkwthennode4:nullable Object> isa nullable TKwthen */
3585 cltype13 = type_nullable__nitc__TKwthen.color;
3586 idtype14 = type_nullable__nitc__TKwthen.id;
3587 if(var_tkwthennode4 == NULL) {
3588 var12 = 1;
3589 } else {
3590 if(cltype13 >= (((long)var_tkwthennode4&3)?type_info[((long)var_tkwthennode4&3)]:var_tkwthennode4->type)->table_size) {
3591 var12 = 0;
3592 } else {
3593 var12 = (((long)var_tkwthennode4&3)?type_info[((long)var_tkwthennode4&3)]:var_tkwthennode4->type)->type_table[cltype13] == idtype14;
3594 }
3595 }
3596 if (unlikely(!var12)) {
3597 if(catchStack.cursor >= 0){
3598 longjmp(catchStack.envs[catchStack.cursor], 1);
3599 }
3600 PRINT_ERROR("Runtime error: %s", "Assert failed");
3601 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7728);
3602 fatal_exit(1);
3603 }
3604 var_pexprnode5 = var_nodearraylist6;
3605 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
3606 cltype16 = type_nullable__nitc__AExpr.color;
3607 idtype17 = type_nullable__nitc__AExpr.id;
3608 if(var_pexprnode5 == NULL) {
3609 var15 = 1;
3610 } else {
3611 if(cltype16 >= (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->table_size) {
3612 var15 = 0;
3613 } else {
3614 var15 = (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->type_table[cltype16] == idtype17;
3615 }
3616 }
3617 if (unlikely(!var15)) {
3618 if(catchStack.cursor >= 0){
3619 longjmp(catchStack.envs[catchStack.cursor], 1);
3620 }
3621 PRINT_ERROR("Runtime error: %s", "Assert failed");
3622 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7730);
3623 fatal_exit(1);
3624 }
3625 var_tkwelsenode6 = var_nodearraylist7;
3626 /* <var_tkwelsenode6:nullable Object> isa nullable TKwelse */
3627 cltype19 = type_nullable__nitc__TKwelse.color;
3628 idtype20 = type_nullable__nitc__TKwelse.id;
3629 if(var_tkwelsenode6 == NULL) {
3630 var18 = 1;
3631 } else {
3632 if(cltype19 >= (((long)var_tkwelsenode6&3)?type_info[((long)var_tkwelsenode6&3)]:var_tkwelsenode6->type)->table_size) {
3633 var18 = 0;
3634 } else {
3635 var18 = (((long)var_tkwelsenode6&3)?type_info[((long)var_tkwelsenode6&3)]:var_tkwelsenode6->type)->type_table[cltype19] == idtype20;
3636 }
3637 }
3638 if (unlikely(!var18)) {
3639 if(catchStack.cursor >= 0){
3640 longjmp(catchStack.envs[catchStack.cursor], 1);
3641 }
3642 PRINT_ERROR("Runtime error: %s", "Assert failed");
3643 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7732);
3644 fatal_exit(1);
3645 }
3646 var_pexprnode7 = var_nodearraylist8;
3647 /* <var_pexprnode7:nullable Object> isa nullable AExpr */
3648 cltype22 = type_nullable__nitc__AExpr.color;
3649 idtype23 = type_nullable__nitc__AExpr.id;
3650 if(var_pexprnode7 == NULL) {
3651 var21 = 1;
3652 } else {
3653 if(cltype22 >= (((long)var_pexprnode7&3)?type_info[((long)var_pexprnode7&3)]:var_pexprnode7->type)->table_size) {
3654 var21 = 0;
3655 } else {
3656 var21 = (((long)var_pexprnode7&3)?type_info[((long)var_pexprnode7&3)]:var_pexprnode7->type)->type_table[cltype22] == idtype23;
3657 }
3658 }
3659 if (unlikely(!var21)) {
3660 if(catchStack.cursor >= 0){
3661 longjmp(catchStack.envs[catchStack.cursor], 1);
3662 }
3663 PRINT_ERROR("Runtime error: %s", "Assert failed");
3664 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7734);
3665 fatal_exit(1);
3666 }
3667 var24 = NEW_nitc__AIfExpr(&type_nitc__AIfExpr);
3668 {
3669 nitc__parser_prod___AIfExpr___init_aifexpr(var24, var_tkwifnode2, var_pexprnode3, var_tkwthennode4, var_pexprnode5, var_tkwelsenode6, var_pexprnode7); /* Direct call parser_prod$AIfExpr$init_aifexpr on <var24:AIfExpr>*/
3670 }
3671 var_pexprnode1 = var24;
3672 var_node_list = var_pexprnode1;
3673 var25 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction260> */
3674 {
3675 var26 = nitc___nitc__Parser___go_to(var_p, var25);
3676 }
3677 {
3678 nitc___nitc__Parser___push(var_p, var26, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
3679 }
3680 RET_LABEL:;
3681 }
3682 /* method parser$ReduceAction261$action for (self: ReduceAction261, Parser) */
3683 void nitc__parser___nitc__parser__ReduceAction261___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
3684 val* var_p /* var p: Parser */;
3685 val* var_node_list /* var node_list: nullable Object */;
3686 val* var /* : nullable Object */;
3687 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
3688 val* var1 /* : nullable Object */;
3689 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
3690 val* var2 /* : nullable Object */;
3691 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3692 val* var3 /* : nullable Object */;
3693 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3694 val* var4 /* : nullable Object */;
3695 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3696 val* var5 /* : nullable Object */;
3697 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3698 val* var_tkwifnode2 /* var tkwifnode2: nullable Object */;
3699 short int var6 /* : Bool */;
3700 int cltype;
3701 int idtype;
3702 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
3703 short int var7 /* : Bool */;
3704 int cltype8;
3705 int idtype9;
3706 val* var_tkwthennode4 /* var tkwthennode4: nullable Object */;
3707 short int var10 /* : Bool */;
3708 int cltype11;
3709 int idtype12;
3710 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
3711 short int var13 /* : Bool */;
3712 int cltype14;
3713 int idtype15;
3714 val* var16 /* : AIfExpr */;
3715 val* var_pexprnode1 /* var pexprnode1: nullable AIfExpr */;
3716 long var17 /* : Int */;
3717 long var18 /* : Int */;
3718 var_p = p0;
3719 var_node_list = ((val*)NULL);
3720 {
3721 var = nitc___nitc__Parser___pop(var_p);
3722 }
3723 var_nodearraylist6 = var;
3724 {
3725 var1 = nitc___nitc__Parser___pop(var_p);
3726 }
3727 var_nodearraylist5 = var1;
3728 {
3729 var2 = nitc___nitc__Parser___pop(var_p);
3730 }
3731 var_nodearraylist4 = var2;
3732 {
3733 var3 = nitc___nitc__Parser___pop(var_p);
3734 }
3735 var_nodearraylist3 = var3;
3736 {
3737 var4 = nitc___nitc__Parser___pop(var_p);
3738 }
3739 var_nodearraylist2 = var4;
3740 {
3741 var5 = nitc___nitc__Parser___pop(var_p);
3742 }
3743 var_nodearraylist1 = var5;
3744 var_tkwifnode2 = var_nodearraylist1;
3745 /* <var_tkwifnode2:nullable Object> isa nullable TKwif */
3746 cltype = type_nullable__nitc__TKwif.color;
3747 idtype = type_nullable__nitc__TKwif.id;
3748 if(var_tkwifnode2 == NULL) {
3749 var6 = 1;
3750 } else {
3751 if(cltype >= (((long)var_tkwifnode2&3)?type_info[((long)var_tkwifnode2&3)]:var_tkwifnode2->type)->table_size) {
3752 var6 = 0;
3753 } else {
3754 var6 = (((long)var_tkwifnode2&3)?type_info[((long)var_tkwifnode2&3)]:var_tkwifnode2->type)->type_table[cltype] == idtype;
3755 }
3756 }
3757 if (unlikely(!var6)) {
3758 if(catchStack.cursor >= 0){
3759 longjmp(catchStack.envs[catchStack.cursor], 1);
3760 }
3761 PRINT_ERROR("Runtime error: %s", "Assert failed");
3762 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7759);
3763 fatal_exit(1);
3764 }
3765 var_pexprnode3 = var_nodearraylist3;
3766 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
3767 cltype8 = type_nullable__nitc__AExpr.color;
3768 idtype9 = type_nullable__nitc__AExpr.id;
3769 if(var_pexprnode3 == NULL) {
3770 var7 = 1;
3771 } else {
3772 if(cltype8 >= (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->table_size) {
3773 var7 = 0;
3774 } else {
3775 var7 = (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->type_table[cltype8] == idtype9;
3776 }
3777 }
3778 if (unlikely(!var7)) {
3779 if(catchStack.cursor >= 0){
3780 longjmp(catchStack.envs[catchStack.cursor], 1);
3781 }
3782 PRINT_ERROR("Runtime error: %s", "Assert failed");
3783 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7761);
3784 fatal_exit(1);
3785 }
3786 var_tkwthennode4 = var_nodearraylist5;
3787 /* <var_tkwthennode4:nullable Object> isa nullable TKwthen */
3788 cltype11 = type_nullable__nitc__TKwthen.color;
3789 idtype12 = type_nullable__nitc__TKwthen.id;
3790 if(var_tkwthennode4 == NULL) {
3791 var10 = 1;
3792 } else {
3793 if(cltype11 >= (((long)var_tkwthennode4&3)?type_info[((long)var_tkwthennode4&3)]:var_tkwthennode4->type)->table_size) {
3794 var10 = 0;
3795 } else {
3796 var10 = (((long)var_tkwthennode4&3)?type_info[((long)var_tkwthennode4&3)]:var_tkwthennode4->type)->type_table[cltype11] == idtype12;
3797 }
3798 }
3799 if (unlikely(!var10)) {
3800 if(catchStack.cursor >= 0){
3801 longjmp(catchStack.envs[catchStack.cursor], 1);
3802 }
3803 PRINT_ERROR("Runtime error: %s", "Assert failed");
3804 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7763);
3805 fatal_exit(1);
3806 }
3807 var_pexprnode5 = var_nodearraylist6;
3808 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
3809 cltype14 = type_nullable__nitc__AExpr.color;
3810 idtype15 = type_nullable__nitc__AExpr.id;
3811 if(var_pexprnode5 == NULL) {
3812 var13 = 1;
3813 } else {
3814 if(cltype14 >= (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->table_size) {
3815 var13 = 0;
3816 } else {
3817 var13 = (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->type_table[cltype14] == idtype15;
3818 }
3819 }
3820 if (unlikely(!var13)) {
3821 if(catchStack.cursor >= 0){
3822 longjmp(catchStack.envs[catchStack.cursor], 1);
3823 }
3824 PRINT_ERROR("Runtime error: %s", "Assert failed");
3825 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7765);
3826 fatal_exit(1);
3827 }
3828 var16 = NEW_nitc__AIfExpr(&type_nitc__AIfExpr);
3829 {
3830 nitc__parser_prod___AIfExpr___init_aifexpr(var16, var_tkwifnode2, var_pexprnode3, var_tkwthennode4, var_pexprnode5, ((val*)NULL), ((val*)NULL)); /* Direct call parser_prod$AIfExpr$init_aifexpr on <var16:AIfExpr>*/
3831 }
3832 var_pexprnode1 = var16;
3833 var_node_list = var_pexprnode1;
3834 var17 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction261> */
3835 {
3836 var18 = nitc___nitc__Parser___go_to(var_p, var17);
3837 }
3838 {
3839 nitc___nitc__Parser___push(var_p, var18, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
3840 }
3841 RET_LABEL:;
3842 }
3843 /* method parser$ReduceAction262$action for (self: ReduceAction262, Parser) */
3844 void nitc__parser___nitc__parser__ReduceAction262___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
3845 val* var_p /* var p: Parser */;
3846 val* var_node_list /* var node_list: nullable Object */;
3847 val* var /* : nullable Object */;
3848 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
3849 val* var1 /* : nullable Object */;
3850 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
3851 val* var2 /* : nullable Object */;
3852 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
3853 val* var3 /* : nullable Object */;
3854 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
3855 val* var4 /* : nullable Object */;
3856 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
3857 val* var5 /* : nullable Object */;
3858 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
3859 val* var6 /* : nullable Object */;
3860 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
3861 val* var7 /* : nullable Object */;
3862 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
3863 val* var8 /* : nullable Object */;
3864 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
3865 val* var_tkwifnode2 /* var tkwifnode2: nullable Object */;
3866 short int var9 /* : Bool */;
3867 int cltype;
3868 int idtype;
3869 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
3870 short int var10 /* : Bool */;
3871 int cltype11;
3872 int idtype12;
3873 val* var_tkwthennode4 /* var tkwthennode4: nullable Object */;
3874 short int var13 /* : Bool */;
3875 int cltype14;
3876 int idtype15;
3877 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
3878 short int var16 /* : Bool */;
3879 int cltype17;
3880 int idtype18;
3881 val* var_tkwelsenode6 /* var tkwelsenode6: nullable Object */;
3882 short int var19 /* : Bool */;
3883 int cltype20;
3884 int idtype21;
3885 val* var_pexprnode7 /* var pexprnode7: nullable Object */;
3886 short int var22 /* : Bool */;
3887 int cltype23;
3888 int idtype24;
3889 val* var25 /* : AIfExpr */;
3890 val* var_pexprnode1 /* var pexprnode1: nullable AIfExpr */;
3891 long var26 /* : Int */;
3892 long var27 /* : Int */;
3893 var_p = p0;
3894 var_node_list = ((val*)NULL);
3895 {
3896 var = nitc___nitc__Parser___pop(var_p);
3897 }
3898 var_nodearraylist9 = var;
3899 {
3900 var1 = nitc___nitc__Parser___pop(var_p);
3901 }
3902 var_nodearraylist8 = var1;
3903 {
3904 var2 = nitc___nitc__Parser___pop(var_p);
3905 }
3906 var_nodearraylist7 = var2;
3907 {
3908 var3 = nitc___nitc__Parser___pop(var_p);
3909 }
3910 var_nodearraylist6 = var3;
3911 {
3912 var4 = nitc___nitc__Parser___pop(var_p);
3913 }
3914 var_nodearraylist5 = var4;
3915 {
3916 var5 = nitc___nitc__Parser___pop(var_p);
3917 }
3918 var_nodearraylist4 = var5;
3919 {
3920 var6 = nitc___nitc__Parser___pop(var_p);
3921 }
3922 var_nodearraylist3 = var6;
3923 {
3924 var7 = nitc___nitc__Parser___pop(var_p);
3925 }
3926 var_nodearraylist2 = var7;
3927 {
3928 var8 = nitc___nitc__Parser___pop(var_p);
3929 }
3930 var_nodearraylist1 = var8;
3931 var_tkwifnode2 = var_nodearraylist1;
3932 /* <var_tkwifnode2:nullable Object> isa nullable TKwif */
3933 cltype = type_nullable__nitc__TKwif.color;
3934 idtype = type_nullable__nitc__TKwif.id;
3935 if(var_tkwifnode2 == NULL) {
3936 var9 = 1;
3937 } else {
3938 if(cltype >= (((long)var_tkwifnode2&3)?type_info[((long)var_tkwifnode2&3)]:var_tkwifnode2->type)->table_size) {
3939 var9 = 0;
3940 } else {
3941 var9 = (((long)var_tkwifnode2&3)?type_info[((long)var_tkwifnode2&3)]:var_tkwifnode2->type)->type_table[cltype] == idtype;
3942 }
3943 }
3944 if (unlikely(!var9)) {
3945 if(catchStack.cursor >= 0){
3946 longjmp(catchStack.envs[catchStack.cursor], 1);
3947 }
3948 PRINT_ERROR("Runtime error: %s", "Assert failed");
3949 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7793);
3950 fatal_exit(1);
3951 }
3952 var_pexprnode3 = var_nodearraylist3;
3953 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
3954 cltype11 = type_nullable__nitc__AExpr.color;
3955 idtype12 = type_nullable__nitc__AExpr.id;
3956 if(var_pexprnode3 == NULL) {
3957 var10 = 1;
3958 } else {
3959 if(cltype11 >= (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->table_size) {
3960 var10 = 0;
3961 } else {
3962 var10 = (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->type_table[cltype11] == idtype12;
3963 }
3964 }
3965 if (unlikely(!var10)) {
3966 if(catchStack.cursor >= 0){
3967 longjmp(catchStack.envs[catchStack.cursor], 1);
3968 }
3969 PRINT_ERROR("Runtime error: %s", "Assert failed");
3970 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7795);
3971 fatal_exit(1);
3972 }
3973 var_tkwthennode4 = var_nodearraylist5;
3974 /* <var_tkwthennode4:nullable Object> isa nullable TKwthen */
3975 cltype14 = type_nullable__nitc__TKwthen.color;
3976 idtype15 = type_nullable__nitc__TKwthen.id;
3977 if(var_tkwthennode4 == NULL) {
3978 var13 = 1;
3979 } else {
3980 if(cltype14 >= (((long)var_tkwthennode4&3)?type_info[((long)var_tkwthennode4&3)]:var_tkwthennode4->type)->table_size) {
3981 var13 = 0;
3982 } else {
3983 var13 = (((long)var_tkwthennode4&3)?type_info[((long)var_tkwthennode4&3)]:var_tkwthennode4->type)->type_table[cltype14] == idtype15;
3984 }
3985 }
3986 if (unlikely(!var13)) {
3987 if(catchStack.cursor >= 0){
3988 longjmp(catchStack.envs[catchStack.cursor], 1);
3989 }
3990 PRINT_ERROR("Runtime error: %s", "Assert failed");
3991 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7797);
3992 fatal_exit(1);
3993 }
3994 var_pexprnode5 = var_nodearraylist7;
3995 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
3996 cltype17 = type_nullable__nitc__AExpr.color;
3997 idtype18 = type_nullable__nitc__AExpr.id;
3998 if(var_pexprnode5 == NULL) {
3999 var16 = 1;
4000 } else {
4001 if(cltype17 >= (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->table_size) {
4002 var16 = 0;
4003 } else {
4004 var16 = (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->type_table[cltype17] == idtype18;
4005 }
4006 }
4007 if (unlikely(!var16)) {
4008 if(catchStack.cursor >= 0){
4009 longjmp(catchStack.envs[catchStack.cursor], 1);
4010 }
4011 PRINT_ERROR("Runtime error: %s", "Assert failed");
4012 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7799);
4013 fatal_exit(1);
4014 }
4015 var_tkwelsenode6 = var_nodearraylist8;
4016 /* <var_tkwelsenode6:nullable Object> isa nullable TKwelse */
4017 cltype20 = type_nullable__nitc__TKwelse.color;
4018 idtype21 = type_nullable__nitc__TKwelse.id;
4019 if(var_tkwelsenode6 == NULL) {
4020 var19 = 1;
4021 } else {
4022 if(cltype20 >= (((long)var_tkwelsenode6&3)?type_info[((long)var_tkwelsenode6&3)]:var_tkwelsenode6->type)->table_size) {
4023 var19 = 0;
4024 } else {
4025 var19 = (((long)var_tkwelsenode6&3)?type_info[((long)var_tkwelsenode6&3)]:var_tkwelsenode6->type)->type_table[cltype20] == idtype21;
4026 }
4027 }
4028 if (unlikely(!var19)) {
4029 if(catchStack.cursor >= 0){
4030 longjmp(catchStack.envs[catchStack.cursor], 1);
4031 }
4032 PRINT_ERROR("Runtime error: %s", "Assert failed");
4033 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7801);
4034 fatal_exit(1);
4035 }
4036 var_pexprnode7 = var_nodearraylist9;
4037 /* <var_pexprnode7:nullable Object> isa nullable AExpr */
4038 cltype23 = type_nullable__nitc__AExpr.color;
4039 idtype24 = type_nullable__nitc__AExpr.id;
4040 if(var_pexprnode7 == NULL) {
4041 var22 = 1;
4042 } else {
4043 if(cltype23 >= (((long)var_pexprnode7&3)?type_info[((long)var_pexprnode7&3)]:var_pexprnode7->type)->table_size) {
4044 var22 = 0;
4045 } else {
4046 var22 = (((long)var_pexprnode7&3)?type_info[((long)var_pexprnode7&3)]:var_pexprnode7->type)->type_table[cltype23] == idtype24;
4047 }
4048 }
4049 if (unlikely(!var22)) {
4050 if(catchStack.cursor >= 0){
4051 longjmp(catchStack.envs[catchStack.cursor], 1);
4052 }
4053 PRINT_ERROR("Runtime error: %s", "Assert failed");
4054 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7803);
4055 fatal_exit(1);
4056 }
4057 var25 = NEW_nitc__AIfExpr(&type_nitc__AIfExpr);
4058 {
4059 nitc__parser_prod___AIfExpr___init_aifexpr(var25, var_tkwifnode2, var_pexprnode3, var_tkwthennode4, var_pexprnode5, var_tkwelsenode6, var_pexprnode7); /* Direct call parser_prod$AIfExpr$init_aifexpr on <var25:AIfExpr>*/
4060 }
4061 var_pexprnode1 = var25;
4062 var_node_list = var_pexprnode1;
4063 var26 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction262> */
4064 {
4065 var27 = nitc___nitc__Parser___go_to(var_p, var26);
4066 }
4067 {
4068 nitc___nitc__Parser___push(var_p, var27, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
4069 }
4070 RET_LABEL:;
4071 }
4072 /* method parser$ReduceAction263$action for (self: ReduceAction263, Parser) */
4073 void nitc__parser___nitc__parser__ReduceAction263___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
4074 val* var_p /* var p: Parser */;
4075 val* var_node_list /* var node_list: nullable Object */;
4076 val* var /* : nullable Object */;
4077 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
4078 val* var1 /* : nullable Object */;
4079 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
4080 val* var2 /* : nullable Object */;
4081 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
4082 val* var3 /* : nullable Object */;
4083 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4084 val* var4 /* : nullable Object */;
4085 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4086 val* var5 /* : nullable Object */;
4087 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4088 val* var6 /* : nullable Object */;
4089 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4090 val* var_tkwifnode2 /* var tkwifnode2: nullable Object */;
4091 short int var7 /* : Bool */;
4092 int cltype;
4093 int idtype;
4094 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
4095 short int var8 /* : Bool */;
4096 int cltype9;
4097 int idtype10;
4098 val* var_tkwthennode4 /* var tkwthennode4: nullable Object */;
4099 short int var11 /* : Bool */;
4100 int cltype12;
4101 int idtype13;
4102 val* var_tkwelsenode6 /* var tkwelsenode6: nullable Object */;
4103 short int var14 /* : Bool */;
4104 int cltype15;
4105 int idtype16;
4106 val* var_pexprnode7 /* var pexprnode7: nullable Object */;
4107 short int var17 /* : Bool */;
4108 int cltype18;
4109 int idtype19;
4110 val* var20 /* : AIfExpr */;
4111 val* var_pexprnode1 /* var pexprnode1: nullable AIfExpr */;
4112 long var21 /* : Int */;
4113 long var22 /* : Int */;
4114 var_p = p0;
4115 var_node_list = ((val*)NULL);
4116 {
4117 var = nitc___nitc__Parser___pop(var_p);
4118 }
4119 var_nodearraylist7 = var;
4120 {
4121 var1 = nitc___nitc__Parser___pop(var_p);
4122 }
4123 var_nodearraylist6 = var1;
4124 {
4125 var2 = nitc___nitc__Parser___pop(var_p);
4126 }
4127 var_nodearraylist5 = var2;
4128 {
4129 var3 = nitc___nitc__Parser___pop(var_p);
4130 }
4131 var_nodearraylist4 = var3;
4132 {
4133 var4 = nitc___nitc__Parser___pop(var_p);
4134 }
4135 var_nodearraylist3 = var4;
4136 {
4137 var5 = nitc___nitc__Parser___pop(var_p);
4138 }
4139 var_nodearraylist2 = var5;
4140 {
4141 var6 = nitc___nitc__Parser___pop(var_p);
4142 }
4143 var_nodearraylist1 = var6;
4144 var_tkwifnode2 = var_nodearraylist1;
4145 /* <var_tkwifnode2:nullable Object> isa nullable TKwif */
4146 cltype = type_nullable__nitc__TKwif.color;
4147 idtype = type_nullable__nitc__TKwif.id;
4148 if(var_tkwifnode2 == NULL) {
4149 var7 = 1;
4150 } else {
4151 if(cltype >= (((long)var_tkwifnode2&3)?type_info[((long)var_tkwifnode2&3)]:var_tkwifnode2->type)->table_size) {
4152 var7 = 0;
4153 } else {
4154 var7 = (((long)var_tkwifnode2&3)?type_info[((long)var_tkwifnode2&3)]:var_tkwifnode2->type)->type_table[cltype] == idtype;
4155 }
4156 }
4157 if (unlikely(!var7)) {
4158 if(catchStack.cursor >= 0){
4159 longjmp(catchStack.envs[catchStack.cursor], 1);
4160 }
4161 PRINT_ERROR("Runtime error: %s", "Assert failed");
4162 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7829);
4163 fatal_exit(1);
4164 }
4165 var_pexprnode3 = var_nodearraylist3;
4166 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
4167 cltype9 = type_nullable__nitc__AExpr.color;
4168 idtype10 = type_nullable__nitc__AExpr.id;
4169 if(var_pexprnode3 == NULL) {
4170 var8 = 1;
4171 } else {
4172 if(cltype9 >= (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->table_size) {
4173 var8 = 0;
4174 } else {
4175 var8 = (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->type_table[cltype9] == idtype10;
4176 }
4177 }
4178 if (unlikely(!var8)) {
4179 if(catchStack.cursor >= 0){
4180 longjmp(catchStack.envs[catchStack.cursor], 1);
4181 }
4182 PRINT_ERROR("Runtime error: %s", "Assert failed");
4183 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7831);
4184 fatal_exit(1);
4185 }
4186 var_tkwthennode4 = var_nodearraylist5;
4187 /* <var_tkwthennode4:nullable Object> isa nullable TKwthen */
4188 cltype12 = type_nullable__nitc__TKwthen.color;
4189 idtype13 = type_nullable__nitc__TKwthen.id;
4190 if(var_tkwthennode4 == NULL) {
4191 var11 = 1;
4192 } else {
4193 if(cltype12 >= (((long)var_tkwthennode4&3)?type_info[((long)var_tkwthennode4&3)]:var_tkwthennode4->type)->table_size) {
4194 var11 = 0;
4195 } else {
4196 var11 = (((long)var_tkwthennode4&3)?type_info[((long)var_tkwthennode4&3)]:var_tkwthennode4->type)->type_table[cltype12] == idtype13;
4197 }
4198 }
4199 if (unlikely(!var11)) {
4200 if(catchStack.cursor >= 0){
4201 longjmp(catchStack.envs[catchStack.cursor], 1);
4202 }
4203 PRINT_ERROR("Runtime error: %s", "Assert failed");
4204 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7833);
4205 fatal_exit(1);
4206 }
4207 var_tkwelsenode6 = var_nodearraylist6;
4208 /* <var_tkwelsenode6:nullable Object> isa nullable TKwelse */
4209 cltype15 = type_nullable__nitc__TKwelse.color;
4210 idtype16 = type_nullable__nitc__TKwelse.id;
4211 if(var_tkwelsenode6 == NULL) {
4212 var14 = 1;
4213 } else {
4214 if(cltype15 >= (((long)var_tkwelsenode6&3)?type_info[((long)var_tkwelsenode6&3)]:var_tkwelsenode6->type)->table_size) {
4215 var14 = 0;
4216 } else {
4217 var14 = (((long)var_tkwelsenode6&3)?type_info[((long)var_tkwelsenode6&3)]:var_tkwelsenode6->type)->type_table[cltype15] == idtype16;
4218 }
4219 }
4220 if (unlikely(!var14)) {
4221 if(catchStack.cursor >= 0){
4222 longjmp(catchStack.envs[catchStack.cursor], 1);
4223 }
4224 PRINT_ERROR("Runtime error: %s", "Assert failed");
4225 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7835);
4226 fatal_exit(1);
4227 }
4228 var_pexprnode7 = var_nodearraylist7;
4229 /* <var_pexprnode7:nullable Object> isa nullable AExpr */
4230 cltype18 = type_nullable__nitc__AExpr.color;
4231 idtype19 = type_nullable__nitc__AExpr.id;
4232 if(var_pexprnode7 == NULL) {
4233 var17 = 1;
4234 } else {
4235 if(cltype18 >= (((long)var_pexprnode7&3)?type_info[((long)var_pexprnode7&3)]:var_pexprnode7->type)->table_size) {
4236 var17 = 0;
4237 } else {
4238 var17 = (((long)var_pexprnode7&3)?type_info[((long)var_pexprnode7&3)]:var_pexprnode7->type)->type_table[cltype18] == idtype19;
4239 }
4240 }
4241 if (unlikely(!var17)) {
4242 if(catchStack.cursor >= 0){
4243 longjmp(catchStack.envs[catchStack.cursor], 1);
4244 }
4245 PRINT_ERROR("Runtime error: %s", "Assert failed");
4246 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7837);
4247 fatal_exit(1);
4248 }
4249 var20 = NEW_nitc__AIfExpr(&type_nitc__AIfExpr);
4250 {
4251 nitc__parser_prod___AIfExpr___init_aifexpr(var20, var_tkwifnode2, var_pexprnode3, var_tkwthennode4, ((val*)NULL), var_tkwelsenode6, var_pexprnode7); /* Direct call parser_prod$AIfExpr$init_aifexpr on <var20:AIfExpr>*/
4252 }
4253 var_pexprnode1 = var20;
4254 var_node_list = var_pexprnode1;
4255 var21 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction263> */
4256 {
4257 var22 = nitc___nitc__Parser___go_to(var_p, var21);
4258 }
4259 {
4260 nitc___nitc__Parser___push(var_p, var22, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
4261 }
4262 RET_LABEL:;
4263 }
4264 /* method parser$ReduceAction264$action for (self: ReduceAction264, Parser) */
4265 void nitc__parser___nitc__parser__ReduceAction264___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
4266 val* var_p /* var p: Parser */;
4267 val* var_node_list /* var node_list: nullable Object */;
4268 val* var /* : nullable Object */;
4269 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
4270 val* var1 /* : nullable Object */;
4271 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
4272 val* var2 /* : nullable Object */;
4273 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
4274 val* var3 /* : nullable Object */;
4275 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
4276 val* var4 /* : nullable Object */;
4277 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4278 val* var5 /* : nullable Object */;
4279 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4280 val* var6 /* : nullable Object */;
4281 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4282 val* var7 /* : nullable Object */;
4283 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4284 val* var_tkwifnode2 /* var tkwifnode2: nullable Object */;
4285 short int var8 /* : Bool */;
4286 int cltype;
4287 int idtype;
4288 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
4289 short int var9 /* : Bool */;
4290 int cltype10;
4291 int idtype11;
4292 val* var_tkwthennode4 /* var tkwthennode4: nullable Object */;
4293 short int var12 /* : Bool */;
4294 int cltype13;
4295 int idtype14;
4296 val* var_tkwelsenode6 /* var tkwelsenode6: nullable Object */;
4297 short int var15 /* : Bool */;
4298 int cltype16;
4299 int idtype17;
4300 val* var_pexprnode7 /* var pexprnode7: nullable Object */;
4301 short int var18 /* : Bool */;
4302 int cltype19;
4303 int idtype20;
4304 val* var21 /* : AIfExpr */;
4305 val* var_pexprnode1 /* var pexprnode1: nullable AIfExpr */;
4306 long var22 /* : Int */;
4307 long var23 /* : Int */;
4308 var_p = p0;
4309 var_node_list = ((val*)NULL);
4310 {
4311 var = nitc___nitc__Parser___pop(var_p);
4312 }
4313 var_nodearraylist8 = var;
4314 {
4315 var1 = nitc___nitc__Parser___pop(var_p);
4316 }
4317 var_nodearraylist7 = var1;
4318 {
4319 var2 = nitc___nitc__Parser___pop(var_p);
4320 }
4321 var_nodearraylist6 = var2;
4322 {
4323 var3 = nitc___nitc__Parser___pop(var_p);
4324 }
4325 var_nodearraylist5 = var3;
4326 {
4327 var4 = nitc___nitc__Parser___pop(var_p);
4328 }
4329 var_nodearraylist4 = var4;
4330 {
4331 var5 = nitc___nitc__Parser___pop(var_p);
4332 }
4333 var_nodearraylist3 = var5;
4334 {
4335 var6 = nitc___nitc__Parser___pop(var_p);
4336 }
4337 var_nodearraylist2 = var6;
4338 {
4339 var7 = nitc___nitc__Parser___pop(var_p);
4340 }
4341 var_nodearraylist1 = var7;
4342 var_tkwifnode2 = var_nodearraylist1;
4343 /* <var_tkwifnode2:nullable Object> isa nullable TKwif */
4344 cltype = type_nullable__nitc__TKwif.color;
4345 idtype = type_nullable__nitc__TKwif.id;
4346 if(var_tkwifnode2 == NULL) {
4347 var8 = 1;
4348 } else {
4349 if(cltype >= (((long)var_tkwifnode2&3)?type_info[((long)var_tkwifnode2&3)]:var_tkwifnode2->type)->table_size) {
4350 var8 = 0;
4351 } else {
4352 var8 = (((long)var_tkwifnode2&3)?type_info[((long)var_tkwifnode2&3)]:var_tkwifnode2->type)->type_table[cltype] == idtype;
4353 }
4354 }
4355 if (unlikely(!var8)) {
4356 if(catchStack.cursor >= 0){
4357 longjmp(catchStack.envs[catchStack.cursor], 1);
4358 }
4359 PRINT_ERROR("Runtime error: %s", "Assert failed");
4360 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7864);
4361 fatal_exit(1);
4362 }
4363 var_pexprnode3 = var_nodearraylist3;
4364 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
4365 cltype10 = type_nullable__nitc__AExpr.color;
4366 idtype11 = type_nullable__nitc__AExpr.id;
4367 if(var_pexprnode3 == NULL) {
4368 var9 = 1;
4369 } else {
4370 if(cltype10 >= (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->table_size) {
4371 var9 = 0;
4372 } else {
4373 var9 = (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->type_table[cltype10] == idtype11;
4374 }
4375 }
4376 if (unlikely(!var9)) {
4377 if(catchStack.cursor >= 0){
4378 longjmp(catchStack.envs[catchStack.cursor], 1);
4379 }
4380 PRINT_ERROR("Runtime error: %s", "Assert failed");
4381 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7866);
4382 fatal_exit(1);
4383 }
4384 var_tkwthennode4 = var_nodearraylist5;
4385 /* <var_tkwthennode4:nullable Object> isa nullable TKwthen */
4386 cltype13 = type_nullable__nitc__TKwthen.color;
4387 idtype14 = type_nullable__nitc__TKwthen.id;
4388 if(var_tkwthennode4 == NULL) {
4389 var12 = 1;
4390 } else {
4391 if(cltype13 >= (((long)var_tkwthennode4&3)?type_info[((long)var_tkwthennode4&3)]:var_tkwthennode4->type)->table_size) {
4392 var12 = 0;
4393 } else {
4394 var12 = (((long)var_tkwthennode4&3)?type_info[((long)var_tkwthennode4&3)]:var_tkwthennode4->type)->type_table[cltype13] == idtype14;
4395 }
4396 }
4397 if (unlikely(!var12)) {
4398 if(catchStack.cursor >= 0){
4399 longjmp(catchStack.envs[catchStack.cursor], 1);
4400 }
4401 PRINT_ERROR("Runtime error: %s", "Assert failed");
4402 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7868);
4403 fatal_exit(1);
4404 }
4405 var_tkwelsenode6 = var_nodearraylist7;
4406 /* <var_tkwelsenode6:nullable Object> isa nullable TKwelse */
4407 cltype16 = type_nullable__nitc__TKwelse.color;
4408 idtype17 = type_nullable__nitc__TKwelse.id;
4409 if(var_tkwelsenode6 == NULL) {
4410 var15 = 1;
4411 } else {
4412 if(cltype16 >= (((long)var_tkwelsenode6&3)?type_info[((long)var_tkwelsenode6&3)]:var_tkwelsenode6->type)->table_size) {
4413 var15 = 0;
4414 } else {
4415 var15 = (((long)var_tkwelsenode6&3)?type_info[((long)var_tkwelsenode6&3)]:var_tkwelsenode6->type)->type_table[cltype16] == idtype17;
4416 }
4417 }
4418 if (unlikely(!var15)) {
4419 if(catchStack.cursor >= 0){
4420 longjmp(catchStack.envs[catchStack.cursor], 1);
4421 }
4422 PRINT_ERROR("Runtime error: %s", "Assert failed");
4423 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7870);
4424 fatal_exit(1);
4425 }
4426 var_pexprnode7 = var_nodearraylist8;
4427 /* <var_pexprnode7:nullable Object> isa nullable AExpr */
4428 cltype19 = type_nullable__nitc__AExpr.color;
4429 idtype20 = type_nullable__nitc__AExpr.id;
4430 if(var_pexprnode7 == NULL) {
4431 var18 = 1;
4432 } else {
4433 if(cltype19 >= (((long)var_pexprnode7&3)?type_info[((long)var_pexprnode7&3)]:var_pexprnode7->type)->table_size) {
4434 var18 = 0;
4435 } else {
4436 var18 = (((long)var_pexprnode7&3)?type_info[((long)var_pexprnode7&3)]:var_pexprnode7->type)->type_table[cltype19] == idtype20;
4437 }
4438 }
4439 if (unlikely(!var18)) {
4440 if(catchStack.cursor >= 0){
4441 longjmp(catchStack.envs[catchStack.cursor], 1);
4442 }
4443 PRINT_ERROR("Runtime error: %s", "Assert failed");
4444 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7872);
4445 fatal_exit(1);
4446 }
4447 var21 = NEW_nitc__AIfExpr(&type_nitc__AIfExpr);
4448 {
4449 nitc__parser_prod___AIfExpr___init_aifexpr(var21, var_tkwifnode2, var_pexprnode3, var_tkwthennode4, ((val*)NULL), var_tkwelsenode6, var_pexprnode7); /* Direct call parser_prod$AIfExpr$init_aifexpr on <var21:AIfExpr>*/
4450 }
4451 var_pexprnode1 = var21;
4452 var_node_list = var_pexprnode1;
4453 var22 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction264> */
4454 {
4455 var23 = nitc___nitc__Parser___go_to(var_p, var22);
4456 }
4457 {
4458 nitc___nitc__Parser___push(var_p, var23, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
4459 }
4460 RET_LABEL:;
4461 }
4462 /* method parser$ReduceAction265$action for (self: ReduceAction265, Parser) */
4463 void nitc__parser___nitc__parser__ReduceAction265___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
4464 val* var_p /* var p: Parser */;
4465 val* var_node_list /* var node_list: nullable Object */;
4466 val* var /* : nullable Object */;
4467 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
4468 val* var1 /* : nullable Object */;
4469 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
4470 val* var2 /* : nullable Object */;
4471 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
4472 val* var3 /* : nullable Object */;
4473 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
4474 val* var4 /* : nullable Object */;
4475 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4476 val* var5 /* : nullable Object */;
4477 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4478 val* var6 /* : nullable Object */;
4479 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4480 val* var7 /* : nullable Object */;
4481 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4482 val* var_tkwifnode2 /* var tkwifnode2: nullable Object */;
4483 short int var8 /* : Bool */;
4484 int cltype;
4485 int idtype;
4486 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
4487 short int var9 /* : Bool */;
4488 int cltype10;
4489 int idtype11;
4490 val* var_tkwthennode4 /* var tkwthennode4: nullable Object */;
4491 short int var12 /* : Bool */;
4492 int cltype13;
4493 int idtype14;
4494 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
4495 short int var15 /* : Bool */;
4496 int cltype16;
4497 int idtype17;
4498 val* var_pexprnode7 /* var pexprnode7: nullable Object */;
4499 short int var18 /* : Bool */;
4500 int cltype19;
4501 int idtype20;
4502 val* var21 /* : AIfExpr */;
4503 val* var_pexprnode1 /* var pexprnode1: nullable AIfExpr */;
4504 long var22 /* : Int */;
4505 long var23 /* : Int */;
4506 var_p = p0;
4507 var_node_list = ((val*)NULL);
4508 {
4509 var = nitc___nitc__Parser___pop(var_p);
4510 }
4511 var_nodearraylist8 = var;
4512 {
4513 var1 = nitc___nitc__Parser___pop(var_p);
4514 }
4515 var_nodearraylist7 = var1;
4516 {
4517 var2 = nitc___nitc__Parser___pop(var_p);
4518 }
4519 var_nodearraylist6 = var2;
4520 {
4521 var3 = nitc___nitc__Parser___pop(var_p);
4522 }
4523 var_nodearraylist5 = var3;
4524 {
4525 var4 = nitc___nitc__Parser___pop(var_p);
4526 }
4527 var_nodearraylist4 = var4;
4528 {
4529 var5 = nitc___nitc__Parser___pop(var_p);
4530 }
4531 var_nodearraylist3 = var5;
4532 {
4533 var6 = nitc___nitc__Parser___pop(var_p);
4534 }
4535 var_nodearraylist2 = var6;
4536 {
4537 var7 = nitc___nitc__Parser___pop(var_p);
4538 }
4539 var_nodearraylist1 = var7;
4540 var_tkwifnode2 = var_nodearraylist1;
4541 /* <var_tkwifnode2:nullable Object> isa nullable TKwif */
4542 cltype = type_nullable__nitc__TKwif.color;
4543 idtype = type_nullable__nitc__TKwif.id;
4544 if(var_tkwifnode2 == NULL) {
4545 var8 = 1;
4546 } else {
4547 if(cltype >= (((long)var_tkwifnode2&3)?type_info[((long)var_tkwifnode2&3)]:var_tkwifnode2->type)->table_size) {
4548 var8 = 0;
4549 } else {
4550 var8 = (((long)var_tkwifnode2&3)?type_info[((long)var_tkwifnode2&3)]:var_tkwifnode2->type)->type_table[cltype] == idtype;
4551 }
4552 }
4553 if (unlikely(!var8)) {
4554 if(catchStack.cursor >= 0){
4555 longjmp(catchStack.envs[catchStack.cursor], 1);
4556 }
4557 PRINT_ERROR("Runtime error: %s", "Assert failed");
4558 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7899);
4559 fatal_exit(1);
4560 }
4561 var_pexprnode3 = var_nodearraylist3;
4562 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
4563 cltype10 = type_nullable__nitc__AExpr.color;
4564 idtype11 = type_nullable__nitc__AExpr.id;
4565 if(var_pexprnode3 == NULL) {
4566 var9 = 1;
4567 } else {
4568 if(cltype10 >= (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->table_size) {
4569 var9 = 0;
4570 } else {
4571 var9 = (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->type_table[cltype10] == idtype11;
4572 }
4573 }
4574 if (unlikely(!var9)) {
4575 if(catchStack.cursor >= 0){
4576 longjmp(catchStack.envs[catchStack.cursor], 1);
4577 }
4578 PRINT_ERROR("Runtime error: %s", "Assert failed");
4579 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7901);
4580 fatal_exit(1);
4581 }
4582 var_tkwthennode4 = var_nodearraylist5;
4583 /* <var_tkwthennode4:nullable Object> isa nullable TKwthen */
4584 cltype13 = type_nullable__nitc__TKwthen.color;
4585 idtype14 = type_nullable__nitc__TKwthen.id;
4586 if(var_tkwthennode4 == NULL) {
4587 var12 = 1;
4588 } else {
4589 if(cltype13 >= (((long)var_tkwthennode4&3)?type_info[((long)var_tkwthennode4&3)]:var_tkwthennode4->type)->table_size) {
4590 var12 = 0;
4591 } else {
4592 var12 = (((long)var_tkwthennode4&3)?type_info[((long)var_tkwthennode4&3)]:var_tkwthennode4->type)->type_table[cltype13] == idtype14;
4593 }
4594 }
4595 if (unlikely(!var12)) {
4596 if(catchStack.cursor >= 0){
4597 longjmp(catchStack.envs[catchStack.cursor], 1);
4598 }
4599 PRINT_ERROR("Runtime error: %s", "Assert failed");
4600 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7903);
4601 fatal_exit(1);
4602 }
4603 var_pexprnode5 = var_nodearraylist7;
4604 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
4605 cltype16 = type_nullable__nitc__AExpr.color;
4606 idtype17 = type_nullable__nitc__AExpr.id;
4607 if(var_pexprnode5 == NULL) {
4608 var15 = 1;
4609 } else {
4610 if(cltype16 >= (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->table_size) {
4611 var15 = 0;
4612 } else {
4613 var15 = (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->type_table[cltype16] == idtype17;
4614 }
4615 }
4616 if (unlikely(!var15)) {
4617 if(catchStack.cursor >= 0){
4618 longjmp(catchStack.envs[catchStack.cursor], 1);
4619 }
4620 PRINT_ERROR("Runtime error: %s", "Assert failed");
4621 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7905);
4622 fatal_exit(1);
4623 }
4624 var_pexprnode7 = var_nodearraylist8;
4625 /* <var_pexprnode7:nullable Object> isa nullable AExpr */
4626 cltype19 = type_nullable__nitc__AExpr.color;
4627 idtype20 = type_nullable__nitc__AExpr.id;
4628 if(var_pexprnode7 == NULL) {
4629 var18 = 1;
4630 } else {
4631 if(cltype19 >= (((long)var_pexprnode7&3)?type_info[((long)var_pexprnode7&3)]:var_pexprnode7->type)->table_size) {
4632 var18 = 0;
4633 } else {
4634 var18 = (((long)var_pexprnode7&3)?type_info[((long)var_pexprnode7&3)]:var_pexprnode7->type)->type_table[cltype19] == idtype20;
4635 }
4636 }
4637 if (unlikely(!var18)) {
4638 if(catchStack.cursor >= 0){
4639 longjmp(catchStack.envs[catchStack.cursor], 1);
4640 }
4641 PRINT_ERROR("Runtime error: %s", "Assert failed");
4642 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7907);
4643 fatal_exit(1);
4644 }
4645 var21 = NEW_nitc__AIfExpr(&type_nitc__AIfExpr);
4646 {
4647 nitc__parser_prod___AIfExpr___init_aifexpr(var21, var_tkwifnode2, var_pexprnode3, var_tkwthennode4, var_pexprnode5, ((val*)NULL), var_pexprnode7); /* Direct call parser_prod$AIfExpr$init_aifexpr on <var21:AIfExpr>*/
4648 }
4649 var_pexprnode1 = var21;
4650 var_node_list = var_pexprnode1;
4651 var22 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction265> */
4652 {
4653 var23 = nitc___nitc__Parser___go_to(var_p, var22);
4654 }
4655 {
4656 nitc___nitc__Parser___push(var_p, var23, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
4657 }
4658 RET_LABEL:;
4659 }
4660 /* method parser$ReduceAction266$action for (self: ReduceAction266, Parser) */
4661 void nitc__parser___nitc__parser__ReduceAction266___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
4662 val* var_p /* var p: Parser */;
4663 val* var_node_list /* var node_list: nullable Object */;
4664 val* var /* : nullable Object */;
4665 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
4666 val* var1 /* : nullable Object */;
4667 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
4668 val* var2 /* : nullable Object */;
4669 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4670 val* var3 /* : nullable Object */;
4671 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4672 val* var4 /* : nullable Object */;
4673 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4674 val* var5 /* : nullable Object */;
4675 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4676 val* var_tkwifnode2 /* var tkwifnode2: nullable Object */;
4677 short int var6 /* : Bool */;
4678 int cltype;
4679 int idtype;
4680 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
4681 short int var7 /* : Bool */;
4682 int cltype8;
4683 int idtype9;
4684 val* var_tkwthennode4 /* var tkwthennode4: nullable Object */;
4685 short int var10 /* : Bool */;
4686 int cltype11;
4687 int idtype12;
4688 val* var_pexprnode7 /* var pexprnode7: nullable Object */;
4689 short int var13 /* : Bool */;
4690 int cltype14;
4691 int idtype15;
4692 val* var16 /* : AIfExpr */;
4693 val* var_pexprnode1 /* var pexprnode1: nullable AIfExpr */;
4694 long var17 /* : Int */;
4695 long var18 /* : Int */;
4696 var_p = p0;
4697 var_node_list = ((val*)NULL);
4698 {
4699 var = nitc___nitc__Parser___pop(var_p);
4700 }
4701 var_nodearraylist6 = var;
4702 {
4703 var1 = nitc___nitc__Parser___pop(var_p);
4704 }
4705 var_nodearraylist5 = var1;
4706 {
4707 var2 = nitc___nitc__Parser___pop(var_p);
4708 }
4709 var_nodearraylist4 = var2;
4710 {
4711 var3 = nitc___nitc__Parser___pop(var_p);
4712 }
4713 var_nodearraylist3 = var3;
4714 {
4715 var4 = nitc___nitc__Parser___pop(var_p);
4716 }
4717 var_nodearraylist2 = var4;
4718 {
4719 var5 = nitc___nitc__Parser___pop(var_p);
4720 }
4721 var_nodearraylist1 = var5;
4722 var_tkwifnode2 = var_nodearraylist1;
4723 /* <var_tkwifnode2:nullable Object> isa nullable TKwif */
4724 cltype = type_nullable__nitc__TKwif.color;
4725 idtype = type_nullable__nitc__TKwif.id;
4726 if(var_tkwifnode2 == NULL) {
4727 var6 = 1;
4728 } else {
4729 if(cltype >= (((long)var_tkwifnode2&3)?type_info[((long)var_tkwifnode2&3)]:var_tkwifnode2->type)->table_size) {
4730 var6 = 0;
4731 } else {
4732 var6 = (((long)var_tkwifnode2&3)?type_info[((long)var_tkwifnode2&3)]:var_tkwifnode2->type)->type_table[cltype] == idtype;
4733 }
4734 }
4735 if (unlikely(!var6)) {
4736 if(catchStack.cursor >= 0){
4737 longjmp(catchStack.envs[catchStack.cursor], 1);
4738 }
4739 PRINT_ERROR("Runtime error: %s", "Assert failed");
4740 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7932);
4741 fatal_exit(1);
4742 }
4743 var_pexprnode3 = var_nodearraylist3;
4744 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
4745 cltype8 = type_nullable__nitc__AExpr.color;
4746 idtype9 = type_nullable__nitc__AExpr.id;
4747 if(var_pexprnode3 == NULL) {
4748 var7 = 1;
4749 } else {
4750 if(cltype8 >= (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->table_size) {
4751 var7 = 0;
4752 } else {
4753 var7 = (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->type_table[cltype8] == idtype9;
4754 }
4755 }
4756 if (unlikely(!var7)) {
4757 if(catchStack.cursor >= 0){
4758 longjmp(catchStack.envs[catchStack.cursor], 1);
4759 }
4760 PRINT_ERROR("Runtime error: %s", "Assert failed");
4761 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7934);
4762 fatal_exit(1);
4763 }
4764 var_tkwthennode4 = var_nodearraylist5;
4765 /* <var_tkwthennode4:nullable Object> isa nullable TKwthen */
4766 cltype11 = type_nullable__nitc__TKwthen.color;
4767 idtype12 = type_nullable__nitc__TKwthen.id;
4768 if(var_tkwthennode4 == NULL) {
4769 var10 = 1;
4770 } else {
4771 if(cltype11 >= (((long)var_tkwthennode4&3)?type_info[((long)var_tkwthennode4&3)]:var_tkwthennode4->type)->table_size) {
4772 var10 = 0;
4773 } else {
4774 var10 = (((long)var_tkwthennode4&3)?type_info[((long)var_tkwthennode4&3)]:var_tkwthennode4->type)->type_table[cltype11] == idtype12;
4775 }
4776 }
4777 if (unlikely(!var10)) {
4778 if(catchStack.cursor >= 0){
4779 longjmp(catchStack.envs[catchStack.cursor], 1);
4780 }
4781 PRINT_ERROR("Runtime error: %s", "Assert failed");
4782 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7936);
4783 fatal_exit(1);
4784 }
4785 var_pexprnode7 = var_nodearraylist6;
4786 /* <var_pexprnode7:nullable Object> isa nullable AExpr */
4787 cltype14 = type_nullable__nitc__AExpr.color;
4788 idtype15 = type_nullable__nitc__AExpr.id;
4789 if(var_pexprnode7 == NULL) {
4790 var13 = 1;
4791 } else {
4792 if(cltype14 >= (((long)var_pexprnode7&3)?type_info[((long)var_pexprnode7&3)]:var_pexprnode7->type)->table_size) {
4793 var13 = 0;
4794 } else {
4795 var13 = (((long)var_pexprnode7&3)?type_info[((long)var_pexprnode7&3)]:var_pexprnode7->type)->type_table[cltype14] == idtype15;
4796 }
4797 }
4798 if (unlikely(!var13)) {
4799 if(catchStack.cursor >= 0){
4800 longjmp(catchStack.envs[catchStack.cursor], 1);
4801 }
4802 PRINT_ERROR("Runtime error: %s", "Assert failed");
4803 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7938);
4804 fatal_exit(1);
4805 }
4806 var16 = NEW_nitc__AIfExpr(&type_nitc__AIfExpr);
4807 {
4808 nitc__parser_prod___AIfExpr___init_aifexpr(var16, var_tkwifnode2, var_pexprnode3, var_tkwthennode4, ((val*)NULL), ((val*)NULL), var_pexprnode7); /* Direct call parser_prod$AIfExpr$init_aifexpr on <var16:AIfExpr>*/
4809 }
4810 var_pexprnode1 = var16;
4811 var_node_list = var_pexprnode1;
4812 var17 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction266> */
4813 {
4814 var18 = nitc___nitc__Parser___go_to(var_p, var17);
4815 }
4816 {
4817 nitc___nitc__Parser___push(var_p, var18, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
4818 }
4819 RET_LABEL:;
4820 }
4821 /* method parser$ReduceAction267$action for (self: ReduceAction267, Parser) */
4822 void nitc__parser___nitc__parser__ReduceAction267___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
4823 val* var_p /* var p: Parser */;
4824 val* var_node_list /* var node_list: nullable Object */;
4825 val* var /* : nullable Object */;
4826 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
4827 val* var1 /* : nullable Object */;
4828 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
4829 val* var2 /* : nullable Object */;
4830 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
4831 val* var3 /* : nullable Object */;
4832 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
4833 val* var4 /* : nullable Object */;
4834 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4835 val* var5 /* : nullable Object */;
4836 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4837 val* var6 /* : nullable Object */;
4838 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4839 val* var_tkwifnode2 /* var tkwifnode2: nullable Object */;
4840 short int var7 /* : Bool */;
4841 int cltype;
4842 int idtype;
4843 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
4844 short int var8 /* : Bool */;
4845 int cltype9;
4846 int idtype10;
4847 val* var_tkwthennode4 /* var tkwthennode4: nullable Object */;
4848 short int var11 /* : Bool */;
4849 int cltype12;
4850 int idtype13;
4851 val* var_pexprnode7 /* var pexprnode7: nullable Object */;
4852 short int var14 /* : Bool */;
4853 int cltype15;
4854 int idtype16;
4855 val* var17 /* : AIfExpr */;
4856 val* var_pexprnode1 /* var pexprnode1: nullable AIfExpr */;
4857 long var18 /* : Int */;
4858 long var19 /* : Int */;
4859 var_p = p0;
4860 var_node_list = ((val*)NULL);
4861 {
4862 var = nitc___nitc__Parser___pop(var_p);
4863 }
4864 var_nodearraylist7 = var;
4865 {
4866 var1 = nitc___nitc__Parser___pop(var_p);
4867 }
4868 var_nodearraylist6 = var1;
4869 {
4870 var2 = nitc___nitc__Parser___pop(var_p);
4871 }
4872 var_nodearraylist5 = var2;
4873 {
4874 var3 = nitc___nitc__Parser___pop(var_p);
4875 }
4876 var_nodearraylist4 = var3;
4877 {
4878 var4 = nitc___nitc__Parser___pop(var_p);
4879 }
4880 var_nodearraylist3 = var4;
4881 {
4882 var5 = nitc___nitc__Parser___pop(var_p);
4883 }
4884 var_nodearraylist2 = var5;
4885 {
4886 var6 = nitc___nitc__Parser___pop(var_p);
4887 }
4888 var_nodearraylist1 = var6;
4889 var_tkwifnode2 = var_nodearraylist1;
4890 /* <var_tkwifnode2:nullable Object> isa nullable TKwif */
4891 cltype = type_nullable__nitc__TKwif.color;
4892 idtype = type_nullable__nitc__TKwif.id;
4893 if(var_tkwifnode2 == NULL) {
4894 var7 = 1;
4895 } else {
4896 if(cltype >= (((long)var_tkwifnode2&3)?type_info[((long)var_tkwifnode2&3)]:var_tkwifnode2->type)->table_size) {
4897 var7 = 0;
4898 } else {
4899 var7 = (((long)var_tkwifnode2&3)?type_info[((long)var_tkwifnode2&3)]:var_tkwifnode2->type)->type_table[cltype] == idtype;
4900 }
4901 }
4902 if (unlikely(!var7)) {
4903 if(catchStack.cursor >= 0){
4904 longjmp(catchStack.envs[catchStack.cursor], 1);
4905 }
4906 PRINT_ERROR("Runtime error: %s", "Assert failed");
4907 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7964);
4908 fatal_exit(1);
4909 }
4910 var_pexprnode3 = var_nodearraylist3;
4911 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
4912 cltype9 = type_nullable__nitc__AExpr.color;
4913 idtype10 = type_nullable__nitc__AExpr.id;
4914 if(var_pexprnode3 == NULL) {
4915 var8 = 1;
4916 } else {
4917 if(cltype9 >= (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->table_size) {
4918 var8 = 0;
4919 } else {
4920 var8 = (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->type_table[cltype9] == idtype10;
4921 }
4922 }
4923 if (unlikely(!var8)) {
4924 if(catchStack.cursor >= 0){
4925 longjmp(catchStack.envs[catchStack.cursor], 1);
4926 }
4927 PRINT_ERROR("Runtime error: %s", "Assert failed");
4928 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7966);
4929 fatal_exit(1);
4930 }
4931 var_tkwthennode4 = var_nodearraylist5;
4932 /* <var_tkwthennode4:nullable Object> isa nullable TKwthen */
4933 cltype12 = type_nullable__nitc__TKwthen.color;
4934 idtype13 = type_nullable__nitc__TKwthen.id;
4935 if(var_tkwthennode4 == NULL) {
4936 var11 = 1;
4937 } else {
4938 if(cltype12 >= (((long)var_tkwthennode4&3)?type_info[((long)var_tkwthennode4&3)]:var_tkwthennode4->type)->table_size) {
4939 var11 = 0;
4940 } else {
4941 var11 = (((long)var_tkwthennode4&3)?type_info[((long)var_tkwthennode4&3)]:var_tkwthennode4->type)->type_table[cltype12] == idtype13;
4942 }
4943 }
4944 if (unlikely(!var11)) {
4945 if(catchStack.cursor >= 0){
4946 longjmp(catchStack.envs[catchStack.cursor], 1);
4947 }
4948 PRINT_ERROR("Runtime error: %s", "Assert failed");
4949 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7968);
4950 fatal_exit(1);
4951 }
4952 var_pexprnode7 = var_nodearraylist7;
4953 /* <var_pexprnode7:nullable Object> isa nullable AExpr */
4954 cltype15 = type_nullable__nitc__AExpr.color;
4955 idtype16 = type_nullable__nitc__AExpr.id;
4956 if(var_pexprnode7 == NULL) {
4957 var14 = 1;
4958 } else {
4959 if(cltype15 >= (((long)var_pexprnode7&3)?type_info[((long)var_pexprnode7&3)]:var_pexprnode7->type)->table_size) {
4960 var14 = 0;
4961 } else {
4962 var14 = (((long)var_pexprnode7&3)?type_info[((long)var_pexprnode7&3)]:var_pexprnode7->type)->type_table[cltype15] == idtype16;
4963 }
4964 }
4965 if (unlikely(!var14)) {
4966 if(catchStack.cursor >= 0){
4967 longjmp(catchStack.envs[catchStack.cursor], 1);
4968 }
4969 PRINT_ERROR("Runtime error: %s", "Assert failed");
4970 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7970);
4971 fatal_exit(1);
4972 }
4973 var17 = NEW_nitc__AIfExpr(&type_nitc__AIfExpr);
4974 {
4975 nitc__parser_prod___AIfExpr___init_aifexpr(var17, var_tkwifnode2, var_pexprnode3, var_tkwthennode4, ((val*)NULL), ((val*)NULL), var_pexprnode7); /* Direct call parser_prod$AIfExpr$init_aifexpr on <var17:AIfExpr>*/
4976 }
4977 var_pexprnode1 = var17;
4978 var_node_list = var_pexprnode1;
4979 var18 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction267> */
4980 {
4981 var19 = nitc___nitc__Parser___go_to(var_p, var18);
4982 }
4983 {
4984 nitc___nitc__Parser___push(var_p, var19, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
4985 }
4986 RET_LABEL:;
4987 }
4988 /* method parser$ReduceAction269$action for (self: ReduceAction269, Parser) */
4989 void nitc__parser___nitc__parser__ReduceAction269___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
4990 val* var_p /* var p: Parser */;
4991 val* var_node_list /* var node_list: nullable Object */;
4992 val* var /* : nullable Object */;
4993 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
4994 val* var1 /* : nullable Object */;
4995 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
4996 val* var2 /* : nullable Object */;
4997 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
4998 val* var_tkwloopnode2 /* var tkwloopnode2: nullable Object */;
4999 short int var3 /* : Bool */;
5000 int cltype;
5001 int idtype;
5002 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
5003 short int var4 /* : Bool */;
5004 int cltype5;
5005 int idtype6;
5006 val* var_plabelnode4 /* var plabelnode4: nullable Object */;
5007 short int var7 /* : Bool */;
5008 int cltype8;
5009 int idtype9;
5010 val* var10 /* : ALoopExpr */;
5011 val* var_pexprnode1 /* var pexprnode1: nullable ALoopExpr */;
5012 long var11 /* : Int */;
5013 long var12 /* : Int */;
5014 var_p = p0;
5015 var_node_list = ((val*)NULL);
5016 {
5017 var = nitc___nitc__Parser___pop(var_p);
5018 }
5019 var_nodearraylist3 = var;
5020 {
5021 var1 = nitc___nitc__Parser___pop(var_p);
5022 }
5023 var_nodearraylist2 = var1;
5024 {
5025 var2 = nitc___nitc__Parser___pop(var_p);
5026 }
5027 var_nodearraylist1 = var2;
5028 var_tkwloopnode2 = var_nodearraylist1;
5029 /* <var_tkwloopnode2:nullable Object> isa nullable TKwloop */
5030 cltype = type_nullable__nitc__TKwloop.color;
5031 idtype = type_nullable__nitc__TKwloop.id;
5032 if(var_tkwloopnode2 == NULL) {
5033 var3 = 1;
5034 } else {
5035 if(cltype >= (((long)var_tkwloopnode2&3)?type_info[((long)var_tkwloopnode2&3)]:var_tkwloopnode2->type)->table_size) {
5036 var3 = 0;
5037 } else {
5038 var3 = (((long)var_tkwloopnode2&3)?type_info[((long)var_tkwloopnode2&3)]:var_tkwloopnode2->type)->type_table[cltype] == idtype;
5039 }
5040 }
5041 if (unlikely(!var3)) {
5042 if(catchStack.cursor >= 0){
5043 longjmp(catchStack.envs[catchStack.cursor], 1);
5044 }
5045 PRINT_ERROR("Runtime error: %s", "Assert failed");
5046 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7992);
5047 fatal_exit(1);
5048 }
5049 var_pexprnode3 = var_nodearraylist2;
5050 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
5051 cltype5 = type_nullable__nitc__AExpr.color;
5052 idtype6 = type_nullable__nitc__AExpr.id;
5053 if(var_pexprnode3 == NULL) {
5054 var4 = 1;
5055 } else {
5056 if(cltype5 >= (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->table_size) {
5057 var4 = 0;
5058 } else {
5059 var4 = (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->type_table[cltype5] == idtype6;
5060 }
5061 }
5062 if (unlikely(!var4)) {
5063 if(catchStack.cursor >= 0){
5064 longjmp(catchStack.envs[catchStack.cursor], 1);
5065 }
5066 PRINT_ERROR("Runtime error: %s", "Assert failed");
5067 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7994);
5068 fatal_exit(1);
5069 }
5070 var_plabelnode4 = var_nodearraylist3;
5071 /* <var_plabelnode4:nullable Object> isa nullable ALabel */
5072 cltype8 = type_nullable__nitc__ALabel.color;
5073 idtype9 = type_nullable__nitc__ALabel.id;
5074 if(var_plabelnode4 == NULL) {
5075 var7 = 1;
5076 } else {
5077 if(cltype8 >= (((long)var_plabelnode4&3)?type_info[((long)var_plabelnode4&3)]:var_plabelnode4->type)->table_size) {
5078 var7 = 0;
5079 } else {
5080 var7 = (((long)var_plabelnode4&3)?type_info[((long)var_plabelnode4&3)]:var_plabelnode4->type)->type_table[cltype8] == idtype9;
5081 }
5082 }
5083 if (unlikely(!var7)) {
5084 if(catchStack.cursor >= 0){
5085 longjmp(catchStack.envs[catchStack.cursor], 1);
5086 }
5087 PRINT_ERROR("Runtime error: %s", "Assert failed");
5088 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 7996);
5089 fatal_exit(1);
5090 }
5091 var10 = NEW_nitc__ALoopExpr(&type_nitc__ALoopExpr);
5092 {
5093 nitc__parser_prod___ALoopExpr___init_aloopexpr(var10, var_tkwloopnode2, var_pexprnode3, var_plabelnode4); /* Direct call parser_prod$ALoopExpr$init_aloopexpr on <var10:ALoopExpr>*/
5094 }
5095 var_pexprnode1 = var10;
5096 var_node_list = var_pexprnode1;
5097 var11 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction269> */
5098 {
5099 var12 = nitc___nitc__Parser___go_to(var_p, var11);
5100 }
5101 {
5102 nitc___nitc__Parser___push(var_p, var12, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
5103 }
5104 RET_LABEL:;
5105 }
5106 /* method parser$ReduceAction270$action for (self: ReduceAction270, Parser) */
5107 void nitc__parser___nitc__parser__ReduceAction270___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
5108 val* var_p /* var p: Parser */;
5109 val* var_node_list /* var node_list: nullable Object */;
5110 val* var /* : nullable Object */;
5111 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5112 val* var1 /* : nullable Object */;
5113 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5114 val* var_tkwloopnode2 /* var tkwloopnode2: nullable Object */;
5115 short int var2 /* : Bool */;
5116 int cltype;
5117 int idtype;
5118 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
5119 short int var3 /* : Bool */;
5120 int cltype4;
5121 int idtype5;
5122 val* var6 /* : ALoopExpr */;
5123 val* var_pexprnode1 /* var pexprnode1: nullable ALoopExpr */;
5124 long var7 /* : Int */;
5125 long var8 /* : Int */;
5126 var_p = p0;
5127 var_node_list = ((val*)NULL);
5128 {
5129 var = nitc___nitc__Parser___pop(var_p);
5130 }
5131 var_nodearraylist2 = var;
5132 {
5133 var1 = nitc___nitc__Parser___pop(var_p);
5134 }
5135 var_nodearraylist1 = var1;
5136 var_tkwloopnode2 = var_nodearraylist1;
5137 /* <var_tkwloopnode2:nullable Object> isa nullable TKwloop */
5138 cltype = type_nullable__nitc__TKwloop.color;
5139 idtype = type_nullable__nitc__TKwloop.id;
5140 if(var_tkwloopnode2 == NULL) {
5141 var2 = 1;
5142 } else {
5143 if(cltype >= (((long)var_tkwloopnode2&3)?type_info[((long)var_tkwloopnode2&3)]:var_tkwloopnode2->type)->table_size) {
5144 var2 = 0;
5145 } else {
5146 var2 = (((long)var_tkwloopnode2&3)?type_info[((long)var_tkwloopnode2&3)]:var_tkwloopnode2->type)->type_table[cltype] == idtype;
5147 }
5148 }
5149 if (unlikely(!var2)) {
5150 if(catchStack.cursor >= 0){
5151 longjmp(catchStack.envs[catchStack.cursor], 1);
5152 }
5153 PRINT_ERROR("Runtime error: %s", "Assert failed");
5154 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8014);
5155 fatal_exit(1);
5156 }
5157 var_pexprnode3 = var_nodearraylist2;
5158 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
5159 cltype4 = type_nullable__nitc__AExpr.color;
5160 idtype5 = type_nullable__nitc__AExpr.id;
5161 if(var_pexprnode3 == NULL) {
5162 var3 = 1;
5163 } else {
5164 if(cltype4 >= (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->table_size) {
5165 var3 = 0;
5166 } else {
5167 var3 = (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->type_table[cltype4] == idtype5;
5168 }
5169 }
5170 if (unlikely(!var3)) {
5171 if(catchStack.cursor >= 0){
5172 longjmp(catchStack.envs[catchStack.cursor], 1);
5173 }
5174 PRINT_ERROR("Runtime error: %s", "Assert failed");
5175 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8016);
5176 fatal_exit(1);
5177 }
5178 var6 = NEW_nitc__ALoopExpr(&type_nitc__ALoopExpr);
5179 {
5180 nitc__parser_prod___ALoopExpr___init_aloopexpr(var6, var_tkwloopnode2, var_pexprnode3, ((val*)NULL)); /* Direct call parser_prod$ALoopExpr$init_aloopexpr on <var6:ALoopExpr>*/
5181 }
5182 var_pexprnode1 = var6;
5183 var_node_list = var_pexprnode1;
5184 var7 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction270> */
5185 {
5186 var8 = nitc___nitc__Parser___go_to(var_p, var7);
5187 }
5188 {
5189 nitc___nitc__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
5190 }
5191 RET_LABEL:;
5192 }
5193 /* method parser$ReduceAction271$action for (self: ReduceAction271, Parser) */
5194 void nitc__parser___nitc__parser__ReduceAction271___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
5195 val* var_p /* var p: Parser */;
5196 val* var_node_list /* var node_list: nullable Object */;
5197 val* var /* : nullable Object */;
5198 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
5199 val* var1 /* : nullable Object */;
5200 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
5201 val* var2 /* : nullable Object */;
5202 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
5203 val* var3 /* : nullable Object */;
5204 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5205 val* var4 /* : nullable Object */;
5206 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5207 val* var5 /* : nullable Object */;
5208 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5209 val* var6 /* : nullable Object */;
5210 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5211 val* var_tkwwhilenode2 /* var tkwwhilenode2: nullable Object */;
5212 short int var7 /* : Bool */;
5213 int cltype;
5214 int idtype;
5215 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
5216 short int var8 /* : Bool */;
5217 int cltype9;
5218 int idtype10;
5219 val* var_tkwdonode4 /* var tkwdonode4: nullable Object */;
5220 short int var11 /* : Bool */;
5221 int cltype12;
5222 int idtype13;
5223 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
5224 short int var14 /* : Bool */;
5225 int cltype15;
5226 int idtype16;
5227 val* var_plabelnode6 /* var plabelnode6: nullable Object */;
5228 short int var17 /* : Bool */;
5229 int cltype18;
5230 int idtype19;
5231 val* var20 /* : AWhileExpr */;
5232 val* var_pexprnode1 /* var pexprnode1: nullable AWhileExpr */;
5233 long var21 /* : Int */;
5234 long var22 /* : Int */;
5235 var_p = p0;
5236 var_node_list = ((val*)NULL);
5237 {
5238 var = nitc___nitc__Parser___pop(var_p);
5239 }
5240 var_nodearraylist7 = var;
5241 {
5242 var1 = nitc___nitc__Parser___pop(var_p);
5243 }
5244 var_nodearraylist6 = var1;
5245 {
5246 var2 = nitc___nitc__Parser___pop(var_p);
5247 }
5248 var_nodearraylist5 = var2;
5249 {
5250 var3 = nitc___nitc__Parser___pop(var_p);
5251 }
5252 var_nodearraylist4 = var3;
5253 {
5254 var4 = nitc___nitc__Parser___pop(var_p);
5255 }
5256 var_nodearraylist3 = var4;
5257 {
5258 var5 = nitc___nitc__Parser___pop(var_p);
5259 }
5260 var_nodearraylist2 = var5;
5261 {
5262 var6 = nitc___nitc__Parser___pop(var_p);
5263 }
5264 var_nodearraylist1 = var6;
5265 var_tkwwhilenode2 = var_nodearraylist1;
5266 /* <var_tkwwhilenode2:nullable Object> isa nullable TKwwhile */
5267 cltype = type_nullable__nitc__TKwwhile.color;
5268 idtype = type_nullable__nitc__TKwwhile.id;
5269 if(var_tkwwhilenode2 == NULL) {
5270 var7 = 1;
5271 } else {
5272 if(cltype >= (((long)var_tkwwhilenode2&3)?type_info[((long)var_tkwwhilenode2&3)]:var_tkwwhilenode2->type)->table_size) {
5273 var7 = 0;
5274 } else {
5275 var7 = (((long)var_tkwwhilenode2&3)?type_info[((long)var_tkwwhilenode2&3)]:var_tkwwhilenode2->type)->type_table[cltype] == idtype;
5276 }
5277 }
5278 if (unlikely(!var7)) {
5279 if(catchStack.cursor >= 0){
5280 longjmp(catchStack.envs[catchStack.cursor], 1);
5281 }
5282 PRINT_ERROR("Runtime error: %s", "Assert failed");
5283 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8039);
5284 fatal_exit(1);
5285 }
5286 var_pexprnode3 = var_nodearraylist3;
5287 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
5288 cltype9 = type_nullable__nitc__AExpr.color;
5289 idtype10 = type_nullable__nitc__AExpr.id;
5290 if(var_pexprnode3 == NULL) {
5291 var8 = 1;
5292 } else {
5293 if(cltype9 >= (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->table_size) {
5294 var8 = 0;
5295 } else {
5296 var8 = (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->type_table[cltype9] == idtype10;
5297 }
5298 }
5299 if (unlikely(!var8)) {
5300 if(catchStack.cursor >= 0){
5301 longjmp(catchStack.envs[catchStack.cursor], 1);
5302 }
5303 PRINT_ERROR("Runtime error: %s", "Assert failed");
5304 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8041);
5305 fatal_exit(1);
5306 }
5307 var_tkwdonode4 = var_nodearraylist5;
5308 /* <var_tkwdonode4:nullable Object> isa nullable TKwdo */
5309 cltype12 = type_nullable__nitc__TKwdo.color;
5310 idtype13 = type_nullable__nitc__TKwdo.id;
5311 if(var_tkwdonode4 == NULL) {
5312 var11 = 1;
5313 } else {
5314 if(cltype12 >= (((long)var_tkwdonode4&3)?type_info[((long)var_tkwdonode4&3)]:var_tkwdonode4->type)->table_size) {
5315 var11 = 0;
5316 } else {
5317 var11 = (((long)var_tkwdonode4&3)?type_info[((long)var_tkwdonode4&3)]:var_tkwdonode4->type)->type_table[cltype12] == idtype13;
5318 }
5319 }
5320 if (unlikely(!var11)) {
5321 if(catchStack.cursor >= 0){
5322 longjmp(catchStack.envs[catchStack.cursor], 1);
5323 }
5324 PRINT_ERROR("Runtime error: %s", "Assert failed");
5325 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8043);
5326 fatal_exit(1);
5327 }
5328 var_pexprnode5 = var_nodearraylist6;
5329 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
5330 cltype15 = type_nullable__nitc__AExpr.color;
5331 idtype16 = type_nullable__nitc__AExpr.id;
5332 if(var_pexprnode5 == NULL) {
5333 var14 = 1;
5334 } else {
5335 if(cltype15 >= (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->table_size) {
5336 var14 = 0;
5337 } else {
5338 var14 = (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->type_table[cltype15] == idtype16;
5339 }
5340 }
5341 if (unlikely(!var14)) {
5342 if(catchStack.cursor >= 0){
5343 longjmp(catchStack.envs[catchStack.cursor], 1);
5344 }
5345 PRINT_ERROR("Runtime error: %s", "Assert failed");
5346 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8045);
5347 fatal_exit(1);
5348 }
5349 var_plabelnode6 = var_nodearraylist7;
5350 /* <var_plabelnode6:nullable Object> isa nullable ALabel */
5351 cltype18 = type_nullable__nitc__ALabel.color;
5352 idtype19 = type_nullable__nitc__ALabel.id;
5353 if(var_plabelnode6 == NULL) {
5354 var17 = 1;
5355 } else {
5356 if(cltype18 >= (((long)var_plabelnode6&3)?type_info[((long)var_plabelnode6&3)]:var_plabelnode6->type)->table_size) {
5357 var17 = 0;
5358 } else {
5359 var17 = (((long)var_plabelnode6&3)?type_info[((long)var_plabelnode6&3)]:var_plabelnode6->type)->type_table[cltype18] == idtype19;
5360 }
5361 }
5362 if (unlikely(!var17)) {
5363 if(catchStack.cursor >= 0){
5364 longjmp(catchStack.envs[catchStack.cursor], 1);
5365 }
5366 PRINT_ERROR("Runtime error: %s", "Assert failed");
5367 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8047);
5368 fatal_exit(1);
5369 }
5370 var20 = NEW_nitc__AWhileExpr(&type_nitc__AWhileExpr);
5371 {
5372 nitc__parser_prod___AWhileExpr___init_awhileexpr(var20, var_tkwwhilenode2, var_pexprnode3, var_tkwdonode4, var_pexprnode5, var_plabelnode6); /* Direct call parser_prod$AWhileExpr$init_awhileexpr on <var20:AWhileExpr>*/
5373 }
5374 var_pexprnode1 = var20;
5375 var_node_list = var_pexprnode1;
5376 var21 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction271> */
5377 {
5378 var22 = nitc___nitc__Parser___go_to(var_p, var21);
5379 }
5380 {
5381 nitc___nitc__Parser___push(var_p, var22, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
5382 }
5383 RET_LABEL:;
5384 }
5385 /* method parser$ReduceAction272$action for (self: ReduceAction272, Parser) */
5386 void nitc__parser___nitc__parser__ReduceAction272___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
5387 val* var_p /* var p: Parser */;
5388 val* var_node_list /* var node_list: nullable Object */;
5389 val* var /* : nullable Object */;
5390 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
5391 val* var1 /* : nullable Object */;
5392 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
5393 val* var2 /* : nullable Object */;
5394 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5395 val* var3 /* : nullable Object */;
5396 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5397 val* var4 /* : nullable Object */;
5398 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5399 val* var5 /* : nullable Object */;
5400 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5401 val* var_tkwwhilenode2 /* var tkwwhilenode2: nullable Object */;
5402 short int var6 /* : Bool */;
5403 int cltype;
5404 int idtype;
5405 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
5406 short int var7 /* : Bool */;
5407 int cltype8;
5408 int idtype9;
5409 val* var_tkwdonode4 /* var tkwdonode4: nullable Object */;
5410 short int var10 /* : Bool */;
5411 int cltype11;
5412 int idtype12;
5413 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
5414 short int var13 /* : Bool */;
5415 int cltype14;
5416 int idtype15;
5417 val* var16 /* : AWhileExpr */;
5418 val* var_pexprnode1 /* var pexprnode1: nullable AWhileExpr */;
5419 long var17 /* : Int */;
5420 long var18 /* : Int */;
5421 var_p = p0;
5422 var_node_list = ((val*)NULL);
5423 {
5424 var = nitc___nitc__Parser___pop(var_p);
5425 }
5426 var_nodearraylist6 = var;
5427 {
5428 var1 = nitc___nitc__Parser___pop(var_p);
5429 }
5430 var_nodearraylist5 = var1;
5431 {
5432 var2 = nitc___nitc__Parser___pop(var_p);
5433 }
5434 var_nodearraylist4 = var2;
5435 {
5436 var3 = nitc___nitc__Parser___pop(var_p);
5437 }
5438 var_nodearraylist3 = var3;
5439 {
5440 var4 = nitc___nitc__Parser___pop(var_p);
5441 }
5442 var_nodearraylist2 = var4;
5443 {
5444 var5 = nitc___nitc__Parser___pop(var_p);
5445 }
5446 var_nodearraylist1 = var5;
5447 var_tkwwhilenode2 = var_nodearraylist1;
5448 /* <var_tkwwhilenode2:nullable Object> isa nullable TKwwhile */
5449 cltype = type_nullable__nitc__TKwwhile.color;
5450 idtype = type_nullable__nitc__TKwwhile.id;
5451 if(var_tkwwhilenode2 == NULL) {
5452 var6 = 1;
5453 } else {
5454 if(cltype >= (((long)var_tkwwhilenode2&3)?type_info[((long)var_tkwwhilenode2&3)]:var_tkwwhilenode2->type)->table_size) {
5455 var6 = 0;
5456 } else {
5457 var6 = (((long)var_tkwwhilenode2&3)?type_info[((long)var_tkwwhilenode2&3)]:var_tkwwhilenode2->type)->type_table[cltype] == idtype;
5458 }
5459 }
5460 if (unlikely(!var6)) {
5461 if(catchStack.cursor >= 0){
5462 longjmp(catchStack.envs[catchStack.cursor], 1);
5463 }
5464 PRINT_ERROR("Runtime error: %s", "Assert failed");
5465 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8071);
5466 fatal_exit(1);
5467 }
5468 var_pexprnode3 = var_nodearraylist3;
5469 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
5470 cltype8 = type_nullable__nitc__AExpr.color;
5471 idtype9 = type_nullable__nitc__AExpr.id;
5472 if(var_pexprnode3 == NULL) {
5473 var7 = 1;
5474 } else {
5475 if(cltype8 >= (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->table_size) {
5476 var7 = 0;
5477 } else {
5478 var7 = (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->type_table[cltype8] == idtype9;
5479 }
5480 }
5481 if (unlikely(!var7)) {
5482 if(catchStack.cursor >= 0){
5483 longjmp(catchStack.envs[catchStack.cursor], 1);
5484 }
5485 PRINT_ERROR("Runtime error: %s", "Assert failed");
5486 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8073);
5487 fatal_exit(1);
5488 }
5489 var_tkwdonode4 = var_nodearraylist5;
5490 /* <var_tkwdonode4:nullable Object> isa nullable TKwdo */
5491 cltype11 = type_nullable__nitc__TKwdo.color;
5492 idtype12 = type_nullable__nitc__TKwdo.id;
5493 if(var_tkwdonode4 == NULL) {
5494 var10 = 1;
5495 } else {
5496 if(cltype11 >= (((long)var_tkwdonode4&3)?type_info[((long)var_tkwdonode4&3)]:var_tkwdonode4->type)->table_size) {
5497 var10 = 0;
5498 } else {
5499 var10 = (((long)var_tkwdonode4&3)?type_info[((long)var_tkwdonode4&3)]:var_tkwdonode4->type)->type_table[cltype11] == idtype12;
5500 }
5501 }
5502 if (unlikely(!var10)) {
5503 if(catchStack.cursor >= 0){
5504 longjmp(catchStack.envs[catchStack.cursor], 1);
5505 }
5506 PRINT_ERROR("Runtime error: %s", "Assert failed");
5507 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8075);
5508 fatal_exit(1);
5509 }
5510 var_pexprnode5 = var_nodearraylist6;
5511 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
5512 cltype14 = type_nullable__nitc__AExpr.color;
5513 idtype15 = type_nullable__nitc__AExpr.id;
5514 if(var_pexprnode5 == NULL) {
5515 var13 = 1;
5516 } else {
5517 if(cltype14 >= (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->table_size) {
5518 var13 = 0;
5519 } else {
5520 var13 = (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->type_table[cltype14] == idtype15;
5521 }
5522 }
5523 if (unlikely(!var13)) {
5524 if(catchStack.cursor >= 0){
5525 longjmp(catchStack.envs[catchStack.cursor], 1);
5526 }
5527 PRINT_ERROR("Runtime error: %s", "Assert failed");
5528 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8077);
5529 fatal_exit(1);
5530 }
5531 var16 = NEW_nitc__AWhileExpr(&type_nitc__AWhileExpr);
5532 {
5533 nitc__parser_prod___AWhileExpr___init_awhileexpr(var16, var_tkwwhilenode2, var_pexprnode3, var_tkwdonode4, var_pexprnode5, ((val*)NULL)); /* Direct call parser_prod$AWhileExpr$init_awhileexpr on <var16:AWhileExpr>*/
5534 }
5535 var_pexprnode1 = var16;
5536 var_node_list = var_pexprnode1;
5537 var17 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction272> */
5538 {
5539 var18 = nitc___nitc__Parser___go_to(var_p, var17);
5540 }
5541 {
5542 nitc___nitc__Parser___push(var_p, var18, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
5543 }
5544 RET_LABEL:;
5545 }
5546 /* method parser$ReduceAction273$action for (self: ReduceAction273, Parser) */
5547 void nitc__parser___nitc__parser__ReduceAction273___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
5548 val* var_p /* var p: Parser */;
5549 val* var_node_list /* var node_list: nullable Object */;
5550 val* var /* : nullable Object */;
5551 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
5552 val* var1 /* : nullable Object */;
5553 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
5554 val* var2 /* : nullable Object */;
5555 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
5556 val* var3 /* : nullable Object */;
5557 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5558 val* var4 /* : nullable Object */;
5559 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5560 val* var5 /* : nullable Object */;
5561 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5562 val* var6 /* : nullable Object */;
5563 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5564 val* var7 /* : Array[Object] */;
5565 val* var_listnode4 /* var listnode4: Array[Object] */;
5566 val* var_tkwfornode2 /* var tkwfornode2: nullable Object */;
5567 short int var8 /* : Bool */;
5568 int cltype;
5569 int idtype;
5570 val* var_listnode3 /* var listnode3: nullable Object */;
5571 short int var9 /* : Bool */;
5572 int cltype10;
5573 int idtype11;
5574 val* var12 /* : Array[Object] */;
5575 val* var_tkwdonode5 /* var tkwdonode5: nullable Object */;
5576 short int var13 /* : Bool */;
5577 int cltype14;
5578 int idtype15;
5579 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
5580 short int var16 /* : Bool */;
5581 int cltype17;
5582 int idtype18;
5583 val* var_plabelnode7 /* var plabelnode7: nullable Object */;
5584 short int var19 /* : Bool */;
5585 int cltype20;
5586 int idtype21;
5587 val* var22 /* : AForExpr */;
5588 val* var_pexprnode1 /* var pexprnode1: nullable AForExpr */;
5589 long var23 /* : Int */;
5590 long var24 /* : Int */;
5591 var_p = p0;
5592 var_node_list = ((val*)NULL);
5593 {
5594 var = nitc___nitc__Parser___pop(var_p);
5595 }
5596 var_nodearraylist7 = var;
5597 {
5598 var1 = nitc___nitc__Parser___pop(var_p);
5599 }
5600 var_nodearraylist6 = var1;
5601 {
5602 var2 = nitc___nitc__Parser___pop(var_p);
5603 }
5604 var_nodearraylist5 = var2;
5605 {
5606 var3 = nitc___nitc__Parser___pop(var_p);
5607 }
5608 var_nodearraylist4 = var3;
5609 {
5610 var4 = nitc___nitc__Parser___pop(var_p);
5611 }
5612 var_nodearraylist3 = var4;
5613 {
5614 var5 = nitc___nitc__Parser___pop(var_p);
5615 }
5616 var_nodearraylist2 = var5;
5617 {
5618 var6 = nitc___nitc__Parser___pop(var_p);
5619 }
5620 var_nodearraylist1 = var6;
5621 var7 = NEW_core__Array(&type_core__Array__core__Object);
5622 {
5623 core___core__Array___core__kernel__Object__init(var7); /* Direct call array$Array$init on <var7:Array[Object]>*/
5624 }
5625 var_listnode4 = var7;
5626 var_tkwfornode2 = var_nodearraylist1;
5627 /* <var_tkwfornode2:nullable Object> isa nullable TKwfor */
5628 cltype = type_nullable__nitc__TKwfor.color;
5629 idtype = type_nullable__nitc__TKwfor.id;
5630 if(var_tkwfornode2 == NULL) {
5631 var8 = 1;
5632 } else {
5633 if(cltype >= (((long)var_tkwfornode2&3)?type_info[((long)var_tkwfornode2&3)]:var_tkwfornode2->type)->table_size) {
5634 var8 = 0;
5635 } else {
5636 var8 = (((long)var_tkwfornode2&3)?type_info[((long)var_tkwfornode2&3)]:var_tkwfornode2->type)->type_table[cltype] == idtype;
5637 }
5638 }
5639 if (unlikely(!var8)) {
5640 if(catchStack.cursor >= 0){
5641 longjmp(catchStack.envs[catchStack.cursor], 1);
5642 }
5643 PRINT_ERROR("Runtime error: %s", "Assert failed");
5644 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8103);
5645 fatal_exit(1);
5646 }
5647 var_listnode3 = var_nodearraylist3;
5648 /* <var_listnode3:nullable Object> isa Array[Object] */
5649 cltype10 = type_core__Array__core__Object.color;
5650 idtype11 = type_core__Array__core__Object.id;
5651 if(var_listnode3 == NULL) {
5652 var9 = 0;
5653 } else {
5654 if(cltype10 >= (((long)var_listnode3&3)?type_info[((long)var_listnode3&3)]:var_listnode3->type)->table_size) {
5655 var9 = 0;
5656 } else {
5657 var9 = (((long)var_listnode3&3)?type_info[((long)var_listnode3&3)]:var_listnode3->type)->type_table[cltype10] == idtype11;
5658 }
5659 }
5660 if (unlikely(!var9)) {
5661 if(catchStack.cursor >= 0){
5662 longjmp(catchStack.envs[catchStack.cursor], 1);
5663 }
5664 PRINT_ERROR("Runtime error: %s", "Assert failed");
5665 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8105);
5666 fatal_exit(1);
5667 }
5668 {
5669 var12 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode4, var_listnode3);
5670 }
5671 var_listnode4 = var12;
5672 var_tkwdonode5 = var_nodearraylist5;
5673 /* <var_tkwdonode5:nullable Object> isa nullable TKwdo */
5674 cltype14 = type_nullable__nitc__TKwdo.color;
5675 idtype15 = type_nullable__nitc__TKwdo.id;
5676 if(var_tkwdonode5 == NULL) {
5677 var13 = 1;
5678 } else {
5679 if(cltype14 >= (((long)var_tkwdonode5&3)?type_info[((long)var_tkwdonode5&3)]:var_tkwdonode5->type)->table_size) {
5680 var13 = 0;
5681 } else {
5682 var13 = (((long)var_tkwdonode5&3)?type_info[((long)var_tkwdonode5&3)]:var_tkwdonode5->type)->type_table[cltype14] == idtype15;
5683 }
5684 }
5685 if (unlikely(!var13)) {
5686 if(catchStack.cursor >= 0){
5687 longjmp(catchStack.envs[catchStack.cursor], 1);
5688 }
5689 PRINT_ERROR("Runtime error: %s", "Assert failed");
5690 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8108);
5691 fatal_exit(1);
5692 }
5693 var_pexprnode6 = var_nodearraylist6;
5694 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
5695 cltype17 = type_nullable__nitc__AExpr.color;
5696 idtype18 = type_nullable__nitc__AExpr.id;
5697 if(var_pexprnode6 == NULL) {
5698 var16 = 1;
5699 } else {
5700 if(cltype17 >= (((long)var_pexprnode6&3)?type_info[((long)var_pexprnode6&3)]:var_pexprnode6->type)->table_size) {
5701 var16 = 0;
5702 } else {
5703 var16 = (((long)var_pexprnode6&3)?type_info[((long)var_pexprnode6&3)]:var_pexprnode6->type)->type_table[cltype17] == idtype18;
5704 }
5705 }
5706 if (unlikely(!var16)) {
5707 if(catchStack.cursor >= 0){
5708 longjmp(catchStack.envs[catchStack.cursor], 1);
5709 }
5710 PRINT_ERROR("Runtime error: %s", "Assert failed");
5711 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8110);
5712 fatal_exit(1);
5713 }
5714 var_plabelnode7 = var_nodearraylist7;
5715 /* <var_plabelnode7:nullable Object> isa nullable ALabel */
5716 cltype20 = type_nullable__nitc__ALabel.color;
5717 idtype21 = type_nullable__nitc__ALabel.id;
5718 if(var_plabelnode7 == NULL) {
5719 var19 = 1;
5720 } else {
5721 if(cltype20 >= (((long)var_plabelnode7&3)?type_info[((long)var_plabelnode7&3)]:var_plabelnode7->type)->table_size) {
5722 var19 = 0;
5723 } else {
5724 var19 = (((long)var_plabelnode7&3)?type_info[((long)var_plabelnode7&3)]:var_plabelnode7->type)->type_table[cltype20] == idtype21;
5725 }
5726 }
5727 if (unlikely(!var19)) {
5728 if(catchStack.cursor >= 0){
5729 longjmp(catchStack.envs[catchStack.cursor], 1);
5730 }
5731 PRINT_ERROR("Runtime error: %s", "Assert failed");
5732 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8112);
5733 fatal_exit(1);
5734 }
5735 var22 = NEW_nitc__AForExpr(&type_nitc__AForExpr);
5736 {
5737 nitc__parser_prod___AForExpr___init_aforexpr(var22, var_tkwfornode2, var_listnode4, var_tkwdonode5, var_pexprnode6, var_plabelnode7); /* Direct call parser_prod$AForExpr$init_aforexpr on <var22:AForExpr>*/
5738 }
5739 var_pexprnode1 = var22;
5740 var_node_list = var_pexprnode1;
5741 var23 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction273> */
5742 {
5743 var24 = nitc___nitc__Parser___go_to(var_p, var23);
5744 }
5745 {
5746 nitc___nitc__Parser___push(var_p, var24, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
5747 }
5748 RET_LABEL:;
5749 }
5750 /* method parser$ReduceAction274$action for (self: ReduceAction274, Parser) */
5751 void nitc__parser___nitc__parser__ReduceAction274___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
5752 val* var_p /* var p: Parser */;
5753 val* var_node_list /* var node_list: nullable Object */;
5754 val* var /* : nullable Object */;
5755 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
5756 val* var1 /* : nullable Object */;
5757 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
5758 val* var2 /* : nullable Object */;
5759 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5760 val* var3 /* : nullable Object */;
5761 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5762 val* var4 /* : nullable Object */;
5763 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5764 val* var5 /* : nullable Object */;
5765 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5766 val* var6 /* : Array[Object] */;
5767 val* var_listnode4 /* var listnode4: Array[Object] */;
5768 val* var_tkwfornode2 /* var tkwfornode2: nullable Object */;
5769 short int var7 /* : Bool */;
5770 int cltype;
5771 int idtype;
5772 val* var_listnode3 /* var listnode3: nullable Object */;
5773 short int var8 /* : Bool */;
5774 int cltype9;
5775 int idtype10;
5776 val* var11 /* : Array[Object] */;
5777 val* var_tkwdonode5 /* var tkwdonode5: nullable Object */;
5778 short int var12 /* : Bool */;
5779 int cltype13;
5780 int idtype14;
5781 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
5782 short int var15 /* : Bool */;
5783 int cltype16;
5784 int idtype17;
5785 val* var18 /* : AForExpr */;
5786 val* var_pexprnode1 /* var pexprnode1: nullable AForExpr */;
5787 long var19 /* : Int */;
5788 long var20 /* : Int */;
5789 var_p = p0;
5790 var_node_list = ((val*)NULL);
5791 {
5792 var = nitc___nitc__Parser___pop(var_p);
5793 }
5794 var_nodearraylist6 = var;
5795 {
5796 var1 = nitc___nitc__Parser___pop(var_p);
5797 }
5798 var_nodearraylist5 = var1;
5799 {
5800 var2 = nitc___nitc__Parser___pop(var_p);
5801 }
5802 var_nodearraylist4 = var2;
5803 {
5804 var3 = nitc___nitc__Parser___pop(var_p);
5805 }
5806 var_nodearraylist3 = var3;
5807 {
5808 var4 = nitc___nitc__Parser___pop(var_p);
5809 }
5810 var_nodearraylist2 = var4;
5811 {
5812 var5 = nitc___nitc__Parser___pop(var_p);
5813 }
5814 var_nodearraylist1 = var5;
5815 var6 = NEW_core__Array(&type_core__Array__core__Object);
5816 {
5817 core___core__Array___core__kernel__Object__init(var6); /* Direct call array$Array$init on <var6:Array[Object]>*/
5818 }
5819 var_listnode4 = var6;
5820 var_tkwfornode2 = var_nodearraylist1;
5821 /* <var_tkwfornode2:nullable Object> isa nullable TKwfor */
5822 cltype = type_nullable__nitc__TKwfor.color;
5823 idtype = type_nullable__nitc__TKwfor.id;
5824 if(var_tkwfornode2 == NULL) {
5825 var7 = 1;
5826 } else {
5827 if(cltype >= (((long)var_tkwfornode2&3)?type_info[((long)var_tkwfornode2&3)]:var_tkwfornode2->type)->table_size) {
5828 var7 = 0;
5829 } else {
5830 var7 = (((long)var_tkwfornode2&3)?type_info[((long)var_tkwfornode2&3)]:var_tkwfornode2->type)->type_table[cltype] == idtype;
5831 }
5832 }
5833 if (unlikely(!var7)) {
5834 if(catchStack.cursor >= 0){
5835 longjmp(catchStack.envs[catchStack.cursor], 1);
5836 }
5837 PRINT_ERROR("Runtime error: %s", "Assert failed");
5838 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8137);
5839 fatal_exit(1);
5840 }
5841 var_listnode3 = var_nodearraylist3;
5842 /* <var_listnode3:nullable Object> isa Array[Object] */
5843 cltype9 = type_core__Array__core__Object.color;
5844 idtype10 = type_core__Array__core__Object.id;
5845 if(var_listnode3 == NULL) {
5846 var8 = 0;
5847 } else {
5848 if(cltype9 >= (((long)var_listnode3&3)?type_info[((long)var_listnode3&3)]:var_listnode3->type)->table_size) {
5849 var8 = 0;
5850 } else {
5851 var8 = (((long)var_listnode3&3)?type_info[((long)var_listnode3&3)]:var_listnode3->type)->type_table[cltype9] == idtype10;
5852 }
5853 }
5854 if (unlikely(!var8)) {
5855 if(catchStack.cursor >= 0){
5856 longjmp(catchStack.envs[catchStack.cursor], 1);
5857 }
5858 PRINT_ERROR("Runtime error: %s", "Assert failed");
5859 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8139);
5860 fatal_exit(1);
5861 }
5862 {
5863 var11 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode4, var_listnode3);
5864 }
5865 var_listnode4 = var11;
5866 var_tkwdonode5 = var_nodearraylist5;
5867 /* <var_tkwdonode5:nullable Object> isa nullable TKwdo */
5868 cltype13 = type_nullable__nitc__TKwdo.color;
5869 idtype14 = type_nullable__nitc__TKwdo.id;
5870 if(var_tkwdonode5 == NULL) {
5871 var12 = 1;
5872 } else {
5873 if(cltype13 >= (((long)var_tkwdonode5&3)?type_info[((long)var_tkwdonode5&3)]:var_tkwdonode5->type)->table_size) {
5874 var12 = 0;
5875 } else {
5876 var12 = (((long)var_tkwdonode5&3)?type_info[((long)var_tkwdonode5&3)]:var_tkwdonode5->type)->type_table[cltype13] == idtype14;
5877 }
5878 }
5879 if (unlikely(!var12)) {
5880 if(catchStack.cursor >= 0){
5881 longjmp(catchStack.envs[catchStack.cursor], 1);
5882 }
5883 PRINT_ERROR("Runtime error: %s", "Assert failed");
5884 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8142);
5885 fatal_exit(1);
5886 }
5887 var_pexprnode6 = var_nodearraylist6;
5888 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
5889 cltype16 = type_nullable__nitc__AExpr.color;
5890 idtype17 = type_nullable__nitc__AExpr.id;
5891 if(var_pexprnode6 == NULL) {
5892 var15 = 1;
5893 } else {
5894 if(cltype16 >= (((long)var_pexprnode6&3)?type_info[((long)var_pexprnode6&3)]:var_pexprnode6->type)->table_size) {
5895 var15 = 0;
5896 } else {
5897 var15 = (((long)var_pexprnode6&3)?type_info[((long)var_pexprnode6&3)]:var_pexprnode6->type)->type_table[cltype16] == idtype17;
5898 }
5899 }
5900 if (unlikely(!var15)) {
5901 if(catchStack.cursor >= 0){
5902 longjmp(catchStack.envs[catchStack.cursor], 1);
5903 }
5904 PRINT_ERROR("Runtime error: %s", "Assert failed");
5905 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8144);
5906 fatal_exit(1);
5907 }
5908 var18 = NEW_nitc__AForExpr(&type_nitc__AForExpr);
5909 {
5910 nitc__parser_prod___AForExpr___init_aforexpr(var18, var_tkwfornode2, var_listnode4, var_tkwdonode5, var_pexprnode6, ((val*)NULL)); /* Direct call parser_prod$AForExpr$init_aforexpr on <var18:AForExpr>*/
5911 }
5912 var_pexprnode1 = var18;
5913 var_node_list = var_pexprnode1;
5914 var19 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction274> */
5915 {
5916 var20 = nitc___nitc__Parser___go_to(var_p, var19);
5917 }
5918 {
5919 nitc___nitc__Parser___push(var_p, var20, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
5920 }
5921 RET_LABEL:;
5922 }
5923 /* method parser$ReduceAction275$action for (self: ReduceAction275, Parser) */
5924 void nitc__parser___nitc__parser__ReduceAction275___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
5925 val* var_p /* var p: Parser */;
5926 val* var_node_list /* var node_list: nullable Object */;
5927 val* var /* : nullable Object */;
5928 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5929 val* var1 /* : Array[Object] */;
5930 val* var_listnode2 /* var listnode2: Array[Object] */;
5931 val* var_pforgroupnode1 /* var pforgroupnode1: nullable Object */;
5932 short int var2 /* : Bool */;
5933 short int var3 /* : Bool */;
5934 long var4 /* : Int */;
5935 long var5 /* : Int */;
5936 var_p = p0;
5937 var_node_list = ((val*)NULL);
5938 {
5939 var = nitc___nitc__Parser___pop(var_p);
5940 }
5941 var_nodearraylist1 = var;
5942 var1 = NEW_core__Array(&type_core__Array__core__Object);
5943 {
5944 core___core__Array___core__kernel__Object__init(var1); /* Direct call array$Array$init on <var1:Array[Object]>*/
5945 }
5946 var_listnode2 = var1;
5947 var_pforgroupnode1 = var_nodearraylist1;
5948 if (var_pforgroupnode1 == NULL) {
5949 var2 = 0; /* is null */
5950 } else {
5951 var2 = 1; /* arg is null and recv is not */
5952 }
5953 if (0) {
5954 var3 = ((short int(*)(val* self, val* p0))((((long)var_pforgroupnode1&3)?class_info[((long)var_pforgroupnode1&3)]:var_pforgroupnode1->class)->vft[COLOR_core__kernel__Object___33d_61d]))(var_pforgroupnode1, ((val*)NULL)); /* != on <var_pforgroupnode1:nullable Object>*/
5955 var2 = var3;
5956 }
5957 if (var2){
5958 {
5959 core___core__Array___core__abstract_collection__SimpleCollection__add(var_listnode2, var_pforgroupnode1); /* Direct call array$Array$add on <var_listnode2:Array[Object]>*/
5960 }
5961 } else {
5962 }
5963 var_node_list = var_listnode2;
5964 var4 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction275> */
5965 {
5966 var5 = nitc___nitc__Parser___go_to(var_p, var4);
5967 }
5968 {
5969 nitc___nitc__Parser___push(var_p, var5, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
5970 }
5971 RET_LABEL:;
5972 }
5973 /* method parser$ReduceAction276$action for (self: ReduceAction276, Parser) */
5974 void nitc__parser___nitc__parser__ReduceAction276___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
5975 val* var_p /* var p: Parser */;
5976 val* var_node_list /* var node_list: nullable Object */;
5977 val* var /* : nullable Object */;
5978 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
5979 val* var1 /* : nullable Object */;
5980 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
5981 val* var2 /* : nullable Object */;
5982 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
5983 val* var3 /* : nullable Object */;
5984 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
5985 val* var4 /* : nullable Object */;
5986 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
5987 val* var5 /* : Array[Object] */;
5988 val* var_listnode3 /* var listnode3: Array[Object] */;
5989 val* var_listnode1 /* var listnode1: nullable Object */;
5990 short int var6 /* : Bool */;
5991 int cltype;
5992 int idtype;
5993 val* var_pforgroupnode2 /* var pforgroupnode2: nullable Object */;
5994 val* var7 /* : Array[Object] */;
5995 short int var8 /* : Bool */;
5996 short int var9 /* : Bool */;
5997 long var10 /* : Int */;
5998 long var11 /* : Int */;
5999 var_p = p0;
6000 var_node_list = ((val*)NULL);
6001 {
6002 var = nitc___nitc__Parser___pop(var_p);
6003 }
6004 var_nodearraylist5 = var;
6005 {
6006 var1 = nitc___nitc__Parser___pop(var_p);
6007 }
6008 var_nodearraylist4 = var1;
6009 {
6010 var2 = nitc___nitc__Parser___pop(var_p);
6011 }
6012 var_nodearraylist3 = var2;
6013 {
6014 var3 = nitc___nitc__Parser___pop(var_p);
6015 }
6016 var_nodearraylist2 = var3;
6017 {
6018 var4 = nitc___nitc__Parser___pop(var_p);
6019 }
6020 var_nodearraylist1 = var4;
6021 var5 = NEW_core__Array(&type_core__Array__core__Object);
6022 {
6023 core___core__Array___core__kernel__Object__init(var5); /* Direct call array$Array$init on <var5:Array[Object]>*/
6024 }
6025 var_listnode3 = var5;
6026 var_listnode1 = var_nodearraylist1;
6027 /* <var_listnode1:nullable Object> isa Array[Object] */
6028 cltype = type_core__Array__core__Object.color;
6029 idtype = type_core__Array__core__Object.id;
6030 if(var_listnode1 == NULL) {
6031 var6 = 0;
6032 } else {
6033 if(cltype >= (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->table_size) {
6034 var6 = 0;
6035 } else {
6036 var6 = (((long)var_listnode1&3)?type_info[((long)var_listnode1&3)]:var_listnode1->type)->type_table[cltype] == idtype;
6037 }
6038 }
6039 if (unlikely(!var6)) {
6040 if(catchStack.cursor >= 0){
6041 longjmp(catchStack.envs[catchStack.cursor], 1);
6042 }
6043 PRINT_ERROR("Runtime error: %s", "Assert failed");
6044 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8183);
6045 fatal_exit(1);
6046 }
6047 var_pforgroupnode2 = var_nodearraylist5;
6048 {
6049 var7 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode1);
6050 }
6051 var_listnode3 = var7;
6052 if (var_pforgroupnode2 == NULL) {
6053 var8 = 0; /* is null */
6054 } else {
6055 var8 = 1; /* arg is null and recv is not */
6056 }
6057 if (0) {
6058 var9 = ((short int(*)(val* self, val* p0))((((long)var_pforgroupnode2&3)?class_info[((long)var_pforgroupnode2&3)]:var_pforgroupnode2->class)->vft[COLOR_core__kernel__Object___33d_61d]))(var_pforgroupnode2, ((val*)NULL)); /* != on <var_pforgroupnode2:nullable Object>*/
6059 var8 = var9;
6060 }
6061 if (var8){
6062 {
6063 core___core__Array___core__abstract_collection__SimpleCollection__add(var_listnode3, var_pforgroupnode2); /* Direct call array$Array$add on <var_listnode3:Array[Object]>*/
6064 }
6065 } else {
6066 }
6067 var_node_list = var_listnode3;
6068 var10 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction276> */
6069 {
6070 var11 = nitc___nitc__Parser___go_to(var_p, var10);
6071 }
6072 {
6073 nitc___nitc__Parser___push(var_p, var11, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
6074 }
6075 RET_LABEL:;
6076 }
6077 /* method parser$ReduceAction277$action for (self: ReduceAction277, Parser) */
6078 void nitc__parser___nitc__parser__ReduceAction277___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
6079 val* var_p /* var p: Parser */;
6080 val* var_node_list /* var node_list: nullable Object */;
6081 val* var /* : nullable Object */;
6082 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
6083 val* var1 /* : nullable Object */;
6084 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6085 val* var2 /* : nullable Object */;
6086 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6087 val* var3 /* : nullable Object */;
6088 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6089 val* var4 /* : nullable Object */;
6090 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6091 val* var5 /* : Array[Object] */;
6092 val* var_listnode3 /* var listnode3: Array[Object] */;
6093 val* var_listnode2 /* var listnode2: nullable Object */;
6094 short int var6 /* : Bool */;
6095 int cltype;
6096 int idtype;
6097 val* var7 /* : Array[Object] */;
6098 val* var_tkwinnode4 /* var tkwinnode4: nullable Object */;
6099 short int var8 /* : Bool */;
6100 int cltype9;
6101 int idtype10;
6102 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
6103 short int var11 /* : Bool */;
6104 int cltype12;
6105 int idtype13;
6106 val* var14 /* : AForGroup */;
6107 val* var_pforgroupnode1 /* var pforgroupnode1: nullable AForGroup */;
6108 long var15 /* : Int */;
6109 long var16 /* : Int */;
6110 var_p = p0;
6111 var_node_list = ((val*)NULL);
6112 {
6113 var = nitc___nitc__Parser___pop(var_p);
6114 }
6115 var_nodearraylist5 = var;
6116 {
6117 var1 = nitc___nitc__Parser___pop(var_p);
6118 }
6119 var_nodearraylist4 = var1;
6120 {
6121 var2 = nitc___nitc__Parser___pop(var_p);
6122 }
6123 var_nodearraylist3 = var2;
6124 {
6125 var3 = nitc___nitc__Parser___pop(var_p);
6126 }
6127 var_nodearraylist2 = var3;
6128 {
6129 var4 = nitc___nitc__Parser___pop(var_p);
6130 }
6131 var_nodearraylist1 = var4;
6132 var5 = NEW_core__Array(&type_core__Array__core__Object);
6133 {
6134 core___core__Array___core__kernel__Object__init(var5); /* Direct call array$Array$init on <var5:Array[Object]>*/
6135 }
6136 var_listnode3 = var5;
6137 var_listnode2 = var_nodearraylist1;
6138 /* <var_listnode2:nullable Object> isa Array[Object] */
6139 cltype = type_core__Array__core__Object.color;
6140 idtype = type_core__Array__core__Object.id;
6141 if(var_listnode2 == NULL) {
6142 var6 = 0;
6143 } else {
6144 if(cltype >= (((long)var_listnode2&3)?type_info[((long)var_listnode2&3)]:var_listnode2->type)->table_size) {
6145 var6 = 0;
6146 } else {
6147 var6 = (((long)var_listnode2&3)?type_info[((long)var_listnode2&3)]:var_listnode2->type)->type_table[cltype] == idtype;
6148 }
6149 }
6150 if (unlikely(!var6)) {
6151 if(catchStack.cursor >= 0){
6152 longjmp(catchStack.envs[catchStack.cursor], 1);
6153 }
6154 PRINT_ERROR("Runtime error: %s", "Assert failed");
6155 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8205);
6156 fatal_exit(1);
6157 }
6158 {
6159 var7 = nitc__parser_work___nitc__parser_work__ReduceAction___concat(self, var_listnode3, var_listnode2);
6160 }
6161 var_listnode3 = var7;
6162 var_tkwinnode4 = var_nodearraylist3;
6163 /* <var_tkwinnode4:nullable Object> isa nullable TKwin */
6164 cltype9 = type_nullable__nitc__TKwin.color;
6165 idtype10 = type_nullable__nitc__TKwin.id;
6166 if(var_tkwinnode4 == NULL) {
6167 var8 = 1;
6168 } else {
6169 if(cltype9 >= (((long)var_tkwinnode4&3)?type_info[((long)var_tkwinnode4&3)]:var_tkwinnode4->type)->table_size) {
6170 var8 = 0;
6171 } else {
6172 var8 = (((long)var_tkwinnode4&3)?type_info[((long)var_tkwinnode4&3)]:var_tkwinnode4->type)->type_table[cltype9] == idtype10;
6173 }
6174 }
6175 if (unlikely(!var8)) {
6176 if(catchStack.cursor >= 0){
6177 longjmp(catchStack.envs[catchStack.cursor], 1);
6178 }
6179 PRINT_ERROR("Runtime error: %s", "Assert failed");
6180 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8208);
6181 fatal_exit(1);
6182 }
6183 var_pexprnode5 = var_nodearraylist5;
6184 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
6185 cltype12 = type_nullable__nitc__AExpr.color;
6186 idtype13 = type_nullable__nitc__AExpr.id;
6187 if(var_pexprnode5 == NULL) {
6188 var11 = 1;
6189 } else {
6190 if(cltype12 >= (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->table_size) {
6191 var11 = 0;
6192 } else {
6193 var11 = (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->type_table[cltype12] == idtype13;
6194 }
6195 }
6196 if (unlikely(!var11)) {
6197 if(catchStack.cursor >= 0){
6198 longjmp(catchStack.envs[catchStack.cursor], 1);
6199 }
6200 PRINT_ERROR("Runtime error: %s", "Assert failed");
6201 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8210);
6202 fatal_exit(1);
6203 }
6204 var14 = NEW_nitc__AForGroup(&type_nitc__AForGroup);
6205 {
6206 nitc__parser_prod___AForGroup___init_aforgroup(var14, var_listnode3, var_tkwinnode4, var_pexprnode5); /* Direct call parser_prod$AForGroup$init_aforgroup on <var14:AForGroup>*/
6207 }
6208 var_pforgroupnode1 = var14;
6209 var_node_list = var_pforgroupnode1;
6210 var15 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction277> */
6211 {
6212 var16 = nitc___nitc__Parser___go_to(var_p, var15);
6213 }
6214 {
6215 nitc___nitc__Parser___push(var_p, var16, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
6216 }
6217 RET_LABEL:;
6218 }
6219 /* method parser$ReduceAction278$action for (self: ReduceAction278, Parser) */
6220 void nitc__parser___nitc__parser__ReduceAction278___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
6221 val* var_p /* var p: Parser */;
6222 val* var_node_list /* var node_list: nullable Object */;
6223 val* var /* : nullable Object */;
6224 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
6225 val* var1 /* : nullable Object */;
6226 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
6227 val* var2 /* : nullable Object */;
6228 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
6229 val* var3 /* : nullable Object */;
6230 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6231 val* var4 /* : nullable Object */;
6232 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6233 val* var5 /* : nullable Object */;
6234 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6235 val* var6 /* : nullable Object */;
6236 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6237 val* var_tkwwithnode2 /* var tkwwithnode2: nullable Object */;
6238 short int var7 /* : Bool */;
6239 int cltype;
6240 int idtype;
6241 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
6242 short int var8 /* : Bool */;
6243 int cltype9;
6244 int idtype10;
6245 val* var_tkwdonode4 /* var tkwdonode4: nullable Object */;
6246 short int var11 /* : Bool */;
6247 int cltype12;
6248 int idtype13;
6249 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
6250 short int var14 /* : Bool */;
6251 int cltype15;
6252 int idtype16;
6253 val* var_plabelnode6 /* var plabelnode6: nullable Object */;
6254 short int var17 /* : Bool */;
6255 int cltype18;
6256 int idtype19;
6257 val* var20 /* : AWithExpr */;
6258 val* var_pexprnode1 /* var pexprnode1: nullable AWithExpr */;
6259 long var21 /* : Int */;
6260 long var22 /* : Int */;
6261 var_p = p0;
6262 var_node_list = ((val*)NULL);
6263 {
6264 var = nitc___nitc__Parser___pop(var_p);
6265 }
6266 var_nodearraylist7 = var;
6267 {
6268 var1 = nitc___nitc__Parser___pop(var_p);
6269 }
6270 var_nodearraylist6 = var1;
6271 {
6272 var2 = nitc___nitc__Parser___pop(var_p);
6273 }
6274 var_nodearraylist5 = var2;
6275 {
6276 var3 = nitc___nitc__Parser___pop(var_p);
6277 }
6278 var_nodearraylist4 = var3;
6279 {
6280 var4 = nitc___nitc__Parser___pop(var_p);
6281 }
6282 var_nodearraylist3 = var4;
6283 {
6284 var5 = nitc___nitc__Parser___pop(var_p);
6285 }
6286 var_nodearraylist2 = var5;
6287 {
6288 var6 = nitc___nitc__Parser___pop(var_p);
6289 }
6290 var_nodearraylist1 = var6;
6291 var_tkwwithnode2 = var_nodearraylist1;
6292 /* <var_tkwwithnode2:nullable Object> isa nullable TKwwith */
6293 cltype = type_nullable__nitc__TKwwith.color;
6294 idtype = type_nullable__nitc__TKwwith.id;
6295 if(var_tkwwithnode2 == NULL) {
6296 var7 = 1;
6297 } else {
6298 if(cltype >= (((long)var_tkwwithnode2&3)?type_info[((long)var_tkwwithnode2&3)]:var_tkwwithnode2->type)->table_size) {
6299 var7 = 0;
6300 } else {
6301 var7 = (((long)var_tkwwithnode2&3)?type_info[((long)var_tkwwithnode2&3)]:var_tkwwithnode2->type)->type_table[cltype] == idtype;
6302 }
6303 }
6304 if (unlikely(!var7)) {
6305 if(catchStack.cursor >= 0){
6306 longjmp(catchStack.envs[catchStack.cursor], 1);
6307 }
6308 PRINT_ERROR("Runtime error: %s", "Assert failed");
6309 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8233);
6310 fatal_exit(1);
6311 }
6312 var_pexprnode3 = var_nodearraylist3;
6313 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
6314 cltype9 = type_nullable__nitc__AExpr.color;
6315 idtype10 = type_nullable__nitc__AExpr.id;
6316 if(var_pexprnode3 == NULL) {
6317 var8 = 1;
6318 } else {
6319 if(cltype9 >= (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->table_size) {
6320 var8 = 0;
6321 } else {
6322 var8 = (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->type_table[cltype9] == idtype10;
6323 }
6324 }
6325 if (unlikely(!var8)) {
6326 if(catchStack.cursor >= 0){
6327 longjmp(catchStack.envs[catchStack.cursor], 1);
6328 }
6329 PRINT_ERROR("Runtime error: %s", "Assert failed");
6330 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8235);
6331 fatal_exit(1);
6332 }
6333 var_tkwdonode4 = var_nodearraylist5;
6334 /* <var_tkwdonode4:nullable Object> isa nullable TKwdo */
6335 cltype12 = type_nullable__nitc__TKwdo.color;
6336 idtype13 = type_nullable__nitc__TKwdo.id;
6337 if(var_tkwdonode4 == NULL) {
6338 var11 = 1;
6339 } else {
6340 if(cltype12 >= (((long)var_tkwdonode4&3)?type_info[((long)var_tkwdonode4&3)]:var_tkwdonode4->type)->table_size) {
6341 var11 = 0;
6342 } else {
6343 var11 = (((long)var_tkwdonode4&3)?type_info[((long)var_tkwdonode4&3)]:var_tkwdonode4->type)->type_table[cltype12] == idtype13;
6344 }
6345 }
6346 if (unlikely(!var11)) {
6347 if(catchStack.cursor >= 0){
6348 longjmp(catchStack.envs[catchStack.cursor], 1);
6349 }
6350 PRINT_ERROR("Runtime error: %s", "Assert failed");
6351 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8237);
6352 fatal_exit(1);
6353 }
6354 var_pexprnode5 = var_nodearraylist6;
6355 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
6356 cltype15 = type_nullable__nitc__AExpr.color;
6357 idtype16 = type_nullable__nitc__AExpr.id;
6358 if(var_pexprnode5 == NULL) {
6359 var14 = 1;
6360 } else {
6361 if(cltype15 >= (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->table_size) {
6362 var14 = 0;
6363 } else {
6364 var14 = (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->type_table[cltype15] == idtype16;
6365 }
6366 }
6367 if (unlikely(!var14)) {
6368 if(catchStack.cursor >= 0){
6369 longjmp(catchStack.envs[catchStack.cursor], 1);
6370 }
6371 PRINT_ERROR("Runtime error: %s", "Assert failed");
6372 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8239);
6373 fatal_exit(1);
6374 }
6375 var_plabelnode6 = var_nodearraylist7;
6376 /* <var_plabelnode6:nullable Object> isa nullable ALabel */
6377 cltype18 = type_nullable__nitc__ALabel.color;
6378 idtype19 = type_nullable__nitc__ALabel.id;
6379 if(var_plabelnode6 == NULL) {
6380 var17 = 1;
6381 } else {
6382 if(cltype18 >= (((long)var_plabelnode6&3)?type_info[((long)var_plabelnode6&3)]:var_plabelnode6->type)->table_size) {
6383 var17 = 0;
6384 } else {
6385 var17 = (((long)var_plabelnode6&3)?type_info[((long)var_plabelnode6&3)]:var_plabelnode6->type)->type_table[cltype18] == idtype19;
6386 }
6387 }
6388 if (unlikely(!var17)) {
6389 if(catchStack.cursor >= 0){
6390 longjmp(catchStack.envs[catchStack.cursor], 1);
6391 }
6392 PRINT_ERROR("Runtime error: %s", "Assert failed");
6393 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8241);
6394 fatal_exit(1);
6395 }
6396 var20 = NEW_nitc__AWithExpr(&type_nitc__AWithExpr);
6397 {
6398 nitc__parser_prod___AWithExpr___init_awithexpr(var20, var_tkwwithnode2, var_pexprnode3, var_tkwdonode4, var_pexprnode5, var_plabelnode6); /* Direct call parser_prod$AWithExpr$init_awithexpr on <var20:AWithExpr>*/
6399 }
6400 var_pexprnode1 = var20;
6401 var_node_list = var_pexprnode1;
6402 var21 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction278> */
6403 {
6404 var22 = nitc___nitc__Parser___go_to(var_p, var21);
6405 }
6406 {
6407 nitc___nitc__Parser___push(var_p, var22, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
6408 }
6409 RET_LABEL:;
6410 }
6411 /* method parser$ReduceAction279$action for (self: ReduceAction279, Parser) */
6412 void nitc__parser___nitc__parser__ReduceAction279___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
6413 val* var_p /* var p: Parser */;
6414 val* var_node_list /* var node_list: nullable Object */;
6415 val* var /* : nullable Object */;
6416 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
6417 val* var1 /* : nullable Object */;
6418 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
6419 val* var2 /* : nullable Object */;
6420 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6421 val* var3 /* : nullable Object */;
6422 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6423 val* var4 /* : nullable Object */;
6424 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6425 val* var5 /* : nullable Object */;
6426 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6427 val* var_tkwwithnode2 /* var tkwwithnode2: nullable Object */;
6428 short int var6 /* : Bool */;
6429 int cltype;
6430 int idtype;
6431 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
6432 short int var7 /* : Bool */;
6433 int cltype8;
6434 int idtype9;
6435 val* var_tkwdonode4 /* var tkwdonode4: nullable Object */;
6436 short int var10 /* : Bool */;
6437 int cltype11;
6438 int idtype12;
6439 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
6440 short int var13 /* : Bool */;
6441 int cltype14;
6442 int idtype15;
6443 val* var16 /* : AWithExpr */;
6444 val* var_pexprnode1 /* var pexprnode1: nullable AWithExpr */;
6445 long var17 /* : Int */;
6446 long var18 /* : Int */;
6447 var_p = p0;
6448 var_node_list = ((val*)NULL);
6449 {
6450 var = nitc___nitc__Parser___pop(var_p);
6451 }
6452 var_nodearraylist6 = var;
6453 {
6454 var1 = nitc___nitc__Parser___pop(var_p);
6455 }
6456 var_nodearraylist5 = var1;
6457 {
6458 var2 = nitc___nitc__Parser___pop(var_p);
6459 }
6460 var_nodearraylist4 = var2;
6461 {
6462 var3 = nitc___nitc__Parser___pop(var_p);
6463 }
6464 var_nodearraylist3 = var3;
6465 {
6466 var4 = nitc___nitc__Parser___pop(var_p);
6467 }
6468 var_nodearraylist2 = var4;
6469 {
6470 var5 = nitc___nitc__Parser___pop(var_p);
6471 }
6472 var_nodearraylist1 = var5;
6473 var_tkwwithnode2 = var_nodearraylist1;
6474 /* <var_tkwwithnode2:nullable Object> isa nullable TKwwith */
6475 cltype = type_nullable__nitc__TKwwith.color;
6476 idtype = type_nullable__nitc__TKwwith.id;
6477 if(var_tkwwithnode2 == NULL) {
6478 var6 = 1;
6479 } else {
6480 if(cltype >= (((long)var_tkwwithnode2&3)?type_info[((long)var_tkwwithnode2&3)]:var_tkwwithnode2->type)->table_size) {
6481 var6 = 0;
6482 } else {
6483 var6 = (((long)var_tkwwithnode2&3)?type_info[((long)var_tkwwithnode2&3)]:var_tkwwithnode2->type)->type_table[cltype] == idtype;
6484 }
6485 }
6486 if (unlikely(!var6)) {
6487 if(catchStack.cursor >= 0){
6488 longjmp(catchStack.envs[catchStack.cursor], 1);
6489 }
6490 PRINT_ERROR("Runtime error: %s", "Assert failed");
6491 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8265);
6492 fatal_exit(1);
6493 }
6494 var_pexprnode3 = var_nodearraylist3;
6495 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
6496 cltype8 = type_nullable__nitc__AExpr.color;
6497 idtype9 = type_nullable__nitc__AExpr.id;
6498 if(var_pexprnode3 == NULL) {
6499 var7 = 1;
6500 } else {
6501 if(cltype8 >= (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->table_size) {
6502 var7 = 0;
6503 } else {
6504 var7 = (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->type_table[cltype8] == idtype9;
6505 }
6506 }
6507 if (unlikely(!var7)) {
6508 if(catchStack.cursor >= 0){
6509 longjmp(catchStack.envs[catchStack.cursor], 1);
6510 }
6511 PRINT_ERROR("Runtime error: %s", "Assert failed");
6512 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8267);
6513 fatal_exit(1);
6514 }
6515 var_tkwdonode4 = var_nodearraylist5;
6516 /* <var_tkwdonode4:nullable Object> isa nullable TKwdo */
6517 cltype11 = type_nullable__nitc__TKwdo.color;
6518 idtype12 = type_nullable__nitc__TKwdo.id;
6519 if(var_tkwdonode4 == NULL) {
6520 var10 = 1;
6521 } else {
6522 if(cltype11 >= (((long)var_tkwdonode4&3)?type_info[((long)var_tkwdonode4&3)]:var_tkwdonode4->type)->table_size) {
6523 var10 = 0;
6524 } else {
6525 var10 = (((long)var_tkwdonode4&3)?type_info[((long)var_tkwdonode4&3)]:var_tkwdonode4->type)->type_table[cltype11] == idtype12;
6526 }
6527 }
6528 if (unlikely(!var10)) {
6529 if(catchStack.cursor >= 0){
6530 longjmp(catchStack.envs[catchStack.cursor], 1);
6531 }
6532 PRINT_ERROR("Runtime error: %s", "Assert failed");
6533 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8269);
6534 fatal_exit(1);
6535 }
6536 var_pexprnode5 = var_nodearraylist6;
6537 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
6538 cltype14 = type_nullable__nitc__AExpr.color;
6539 idtype15 = type_nullable__nitc__AExpr.id;
6540 if(var_pexprnode5 == NULL) {
6541 var13 = 1;
6542 } else {
6543 if(cltype14 >= (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->table_size) {
6544 var13 = 0;
6545 } else {
6546 var13 = (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->type_table[cltype14] == idtype15;
6547 }
6548 }
6549 if (unlikely(!var13)) {
6550 if(catchStack.cursor >= 0){
6551 longjmp(catchStack.envs[catchStack.cursor], 1);
6552 }
6553 PRINT_ERROR("Runtime error: %s", "Assert failed");
6554 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8271);
6555 fatal_exit(1);
6556 }
6557 var16 = NEW_nitc__AWithExpr(&type_nitc__AWithExpr);
6558 {
6559 nitc__parser_prod___AWithExpr___init_awithexpr(var16, var_tkwwithnode2, var_pexprnode3, var_tkwdonode4, var_pexprnode5, ((val*)NULL)); /* Direct call parser_prod$AWithExpr$init_awithexpr on <var16:AWithExpr>*/
6560 }
6561 var_pexprnode1 = var16;
6562 var_node_list = var_pexprnode1;
6563 var17 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction279> */
6564 {
6565 var18 = nitc___nitc__Parser___go_to(var_p, var17);
6566 }
6567 {
6568 nitc___nitc__Parser___push(var_p, var18, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
6569 }
6570 RET_LABEL:;
6571 }
6572 /* method parser$ReduceAction280$action for (self: ReduceAction280, Parser) */
6573 void nitc__parser___nitc__parser__ReduceAction280___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
6574 val* var_p /* var p: Parser */;
6575 val* var_node_list /* var node_list: nullable Object */;
6576 val* var /* : nullable Object */;
6577 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
6578 val* var1 /* : nullable Object */;
6579 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6580 val* var2 /* : nullable Object */;
6581 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6582 val* var3 /* : nullable Object */;
6583 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6584 val* var4 /* : nullable Object */;
6585 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6586 val* var_tidnode3 /* var tidnode3: nullable Object */;
6587 short int var5 /* : Bool */;
6588 int cltype;
6589 int idtype;
6590 val* var_ptypenode4 /* var ptypenode4: nullable Object */;
6591 short int var6 /* : Bool */;
6592 int cltype7;
6593 int idtype8;
6594 val* var_tassignnode5 /* var tassignnode5: nullable Object */;
6595 short int var9 /* : Bool */;
6596 int cltype10;
6597 int idtype11;
6598 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
6599 short int var12 /* : Bool */;
6600 int cltype13;
6601 int idtype14;
6602 val* var15 /* : AVardeclExpr */;
6603 val* var_pexprnode1 /* var pexprnode1: nullable AVardeclExpr */;
6604 long var16 /* : Int */;
6605 long var17 /* : Int */;
6606 var_p = p0;
6607 var_node_list = ((val*)NULL);
6608 {
6609 var = nitc___nitc__Parser___pop(var_p);
6610 }
6611 var_nodearraylist5 = var;
6612 {
6613 var1 = nitc___nitc__Parser___pop(var_p);
6614 }
6615 var_nodearraylist4 = var1;
6616 {
6617 var2 = nitc___nitc__Parser___pop(var_p);
6618 }
6619 var_nodearraylist3 = var2;
6620 {
6621 var3 = nitc___nitc__Parser___pop(var_p);
6622 }
6623 var_nodearraylist2 = var3;
6624 {
6625 var4 = nitc___nitc__Parser___pop(var_p);
6626 }
6627 var_nodearraylist1 = var4;
6628 var_tidnode3 = var_nodearraylist1;
6629 /* <var_tidnode3:nullable Object> isa nullable TId */
6630 cltype = type_nullable__nitc__TId.color;
6631 idtype = type_nullable__nitc__TId.id;
6632 if(var_tidnode3 == NULL) {
6633 var5 = 1;
6634 } else {
6635 if(cltype >= (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->table_size) {
6636 var5 = 0;
6637 } else {
6638 var5 = (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->type_table[cltype] == idtype;
6639 }
6640 }
6641 if (unlikely(!var5)) {
6642 if(catchStack.cursor >= 0){
6643 longjmp(catchStack.envs[catchStack.cursor], 1);
6644 }
6645 PRINT_ERROR("Runtime error: %s", "Assert failed");
6646 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8294);
6647 fatal_exit(1);
6648 }
6649 var_ptypenode4 = var_nodearraylist2;
6650 /* <var_ptypenode4:nullable Object> isa nullable AType */
6651 cltype7 = type_nullable__nitc__AType.color;
6652 idtype8 = type_nullable__nitc__AType.id;
6653 if(var_ptypenode4 == NULL) {
6654 var6 = 1;
6655 } else {
6656 if(cltype7 >= (((long)var_ptypenode4&3)?type_info[((long)var_ptypenode4&3)]:var_ptypenode4->type)->table_size) {
6657 var6 = 0;
6658 } else {
6659 var6 = (((long)var_ptypenode4&3)?type_info[((long)var_ptypenode4&3)]:var_ptypenode4->type)->type_table[cltype7] == idtype8;
6660 }
6661 }
6662 if (unlikely(!var6)) {
6663 if(catchStack.cursor >= 0){
6664 longjmp(catchStack.envs[catchStack.cursor], 1);
6665 }
6666 PRINT_ERROR("Runtime error: %s", "Assert failed");
6667 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8296);
6668 fatal_exit(1);
6669 }
6670 var_tassignnode5 = var_nodearraylist3;
6671 /* <var_tassignnode5:nullable Object> isa nullable TAssign */
6672 cltype10 = type_nullable__nitc__TAssign.color;
6673 idtype11 = type_nullable__nitc__TAssign.id;
6674 if(var_tassignnode5 == NULL) {
6675 var9 = 1;
6676 } else {
6677 if(cltype10 >= (((long)var_tassignnode5&3)?type_info[((long)var_tassignnode5&3)]:var_tassignnode5->type)->table_size) {
6678 var9 = 0;
6679 } else {
6680 var9 = (((long)var_tassignnode5&3)?type_info[((long)var_tassignnode5&3)]:var_tassignnode5->type)->type_table[cltype10] == idtype11;
6681 }
6682 }
6683 if (unlikely(!var9)) {
6684 if(catchStack.cursor >= 0){
6685 longjmp(catchStack.envs[catchStack.cursor], 1);
6686 }
6687 PRINT_ERROR("Runtime error: %s", "Assert failed");
6688 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8298);
6689 fatal_exit(1);
6690 }
6691 var_pexprnode6 = var_nodearraylist5;
6692 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
6693 cltype13 = type_nullable__nitc__AExpr.color;
6694 idtype14 = type_nullable__nitc__AExpr.id;
6695 if(var_pexprnode6 == NULL) {
6696 var12 = 1;
6697 } else {
6698 if(cltype13 >= (((long)var_pexprnode6&3)?type_info[((long)var_pexprnode6&3)]:var_pexprnode6->type)->table_size) {
6699 var12 = 0;
6700 } else {
6701 var12 = (((long)var_pexprnode6&3)?type_info[((long)var_pexprnode6&3)]:var_pexprnode6->type)->type_table[cltype13] == idtype14;
6702 }
6703 }
6704 if (unlikely(!var12)) {
6705 if(catchStack.cursor >= 0){
6706 longjmp(catchStack.envs[catchStack.cursor], 1);
6707 }
6708 PRINT_ERROR("Runtime error: %s", "Assert failed");
6709 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8300);
6710 fatal_exit(1);
6711 }
6712 var15 = NEW_nitc__AVardeclExpr(&type_nitc__AVardeclExpr);
6713 {
6714 nitc__parser_prod___AVardeclExpr___init_avardeclexpr(var15, ((val*)NULL), var_tidnode3, var_ptypenode4, var_tassignnode5, var_pexprnode6, ((val*)NULL)); /* Direct call parser_prod$AVardeclExpr$init_avardeclexpr on <var15:AVardeclExpr>*/
6715 }
6716 var_pexprnode1 = var15;
6717 var_node_list = var_pexprnode1;
6718 var16 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction280> */
6719 {
6720 var17 = nitc___nitc__Parser___go_to(var_p, var16);
6721 }
6722 {
6723 nitc___nitc__Parser___push(var_p, var17, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
6724 }
6725 RET_LABEL:;
6726 }
6727 /* method parser$ReduceAction281$action for (self: ReduceAction281, Parser) */
6728 void nitc__parser___nitc__parser__ReduceAction281___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
6729 val* var_p /* var p: Parser */;
6730 val* var_node_list /* var node_list: nullable Object */;
6731 val* var /* : nullable Object */;
6732 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
6733 val* var1 /* : nullable Object */;
6734 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
6735 val* var2 /* : nullable Object */;
6736 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
6737 val* var3 /* : nullable Object */;
6738 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6739 val* var4 /* : nullable Object */;
6740 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6741 val* var5 /* : nullable Object */;
6742 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6743 val* var_tidnode3 /* var tidnode3: nullable Object */;
6744 short int var6 /* : Bool */;
6745 int cltype;
6746 int idtype;
6747 val* var_ptypenode4 /* var ptypenode4: nullable Object */;
6748 short int var7 /* : Bool */;
6749 int cltype8;
6750 int idtype9;
6751 val* var_tassignnode5 /* var tassignnode5: nullable Object */;
6752 short int var10 /* : Bool */;
6753 int cltype11;
6754 int idtype12;
6755 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
6756 short int var13 /* : Bool */;
6757 int cltype14;
6758 int idtype15;
6759 val* var_pannotationsnode7 /* var pannotationsnode7: nullable Object */;
6760 short int var16 /* : Bool */;
6761 int cltype17;
6762 int idtype18;
6763 val* var19 /* : AVardeclExpr */;
6764 val* var_pexprnode1 /* var pexprnode1: nullable AVardeclExpr */;
6765 long var20 /* : Int */;
6766 long var21 /* : Int */;
6767 var_p = p0;
6768 var_node_list = ((val*)NULL);
6769 {
6770 var = nitc___nitc__Parser___pop(var_p);
6771 }
6772 var_nodearraylist6 = var;
6773 {
6774 var1 = nitc___nitc__Parser___pop(var_p);
6775 }
6776 var_nodearraylist5 = var1;
6777 {
6778 var2 = nitc___nitc__Parser___pop(var_p);
6779 }
6780 var_nodearraylist4 = var2;
6781 {
6782 var3 = nitc___nitc__Parser___pop(var_p);
6783 }
6784 var_nodearraylist3 = var3;
6785 {
6786 var4 = nitc___nitc__Parser___pop(var_p);
6787 }
6788 var_nodearraylist2 = var4;
6789 {
6790 var5 = nitc___nitc__Parser___pop(var_p);
6791 }
6792 var_nodearraylist1 = var5;
6793 var_tidnode3 = var_nodearraylist1;
6794 /* <var_tidnode3:nullable Object> isa nullable TId */
6795 cltype = type_nullable__nitc__TId.color;
6796 idtype = type_nullable__nitc__TId.id;
6797 if(var_tidnode3 == NULL) {
6798 var6 = 1;
6799 } else {
6800 if(cltype >= (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->table_size) {
6801 var6 = 0;
6802 } else {
6803 var6 = (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->type_table[cltype] == idtype;
6804 }
6805 }
6806 if (unlikely(!var6)) {
6807 if(catchStack.cursor >= 0){
6808 longjmp(catchStack.envs[catchStack.cursor], 1);
6809 }
6810 PRINT_ERROR("Runtime error: %s", "Assert failed");
6811 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8325);
6812 fatal_exit(1);
6813 }
6814 var_ptypenode4 = var_nodearraylist3;
6815 /* <var_ptypenode4:nullable Object> isa nullable AType */
6816 cltype8 = type_nullable__nitc__AType.color;
6817 idtype9 = type_nullable__nitc__AType.id;
6818 if(var_ptypenode4 == NULL) {
6819 var7 = 1;
6820 } else {
6821 if(cltype8 >= (((long)var_ptypenode4&3)?type_info[((long)var_ptypenode4&3)]:var_ptypenode4->type)->table_size) {
6822 var7 = 0;
6823 } else {
6824 var7 = (((long)var_ptypenode4&3)?type_info[((long)var_ptypenode4&3)]:var_ptypenode4->type)->type_table[cltype8] == idtype9;
6825 }
6826 }
6827 if (unlikely(!var7)) {
6828 if(catchStack.cursor >= 0){
6829 longjmp(catchStack.envs[catchStack.cursor], 1);
6830 }
6831 PRINT_ERROR("Runtime error: %s", "Assert failed");
6832 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8327);
6833 fatal_exit(1);
6834 }
6835 var_tassignnode5 = var_nodearraylist4;
6836 /* <var_tassignnode5:nullable Object> isa nullable TAssign */
6837 cltype11 = type_nullable__nitc__TAssign.color;
6838 idtype12 = type_nullable__nitc__TAssign.id;
6839 if(var_tassignnode5 == NULL) {
6840 var10 = 1;
6841 } else {
6842 if(cltype11 >= (((long)var_tassignnode5&3)?type_info[((long)var_tassignnode5&3)]:var_tassignnode5->type)->table_size) {
6843 var10 = 0;
6844 } else {
6845 var10 = (((long)var_tassignnode5&3)?type_info[((long)var_tassignnode5&3)]:var_tassignnode5->type)->type_table[cltype11] == idtype12;
6846 }
6847 }
6848 if (unlikely(!var10)) {
6849 if(catchStack.cursor >= 0){
6850 longjmp(catchStack.envs[catchStack.cursor], 1);
6851 }
6852 PRINT_ERROR("Runtime error: %s", "Assert failed");
6853 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8329);
6854 fatal_exit(1);
6855 }
6856 var_pexprnode6 = var_nodearraylist6;
6857 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
6858 cltype14 = type_nullable__nitc__AExpr.color;
6859 idtype15 = type_nullable__nitc__AExpr.id;
6860 if(var_pexprnode6 == NULL) {
6861 var13 = 1;
6862 } else {
6863 if(cltype14 >= (((long)var_pexprnode6&3)?type_info[((long)var_pexprnode6&3)]:var_pexprnode6->type)->table_size) {
6864 var13 = 0;
6865 } else {
6866 var13 = (((long)var_pexprnode6&3)?type_info[((long)var_pexprnode6&3)]:var_pexprnode6->type)->type_table[cltype14] == idtype15;
6867 }
6868 }
6869 if (unlikely(!var13)) {
6870 if(catchStack.cursor >= 0){
6871 longjmp(catchStack.envs[catchStack.cursor], 1);
6872 }
6873 PRINT_ERROR("Runtime error: %s", "Assert failed");
6874 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8331);
6875 fatal_exit(1);
6876 }
6877 var_pannotationsnode7 = var_nodearraylist2;
6878 /* <var_pannotationsnode7:nullable Object> isa nullable AAnnotations */
6879 cltype17 = type_nullable__nitc__AAnnotations.color;
6880 idtype18 = type_nullable__nitc__AAnnotations.id;
6881 if(var_pannotationsnode7 == NULL) {
6882 var16 = 1;
6883 } else {
6884 if(cltype17 >= (((long)var_pannotationsnode7&3)?type_info[((long)var_pannotationsnode7&3)]:var_pannotationsnode7->type)->table_size) {
6885 var16 = 0;
6886 } else {
6887 var16 = (((long)var_pannotationsnode7&3)?type_info[((long)var_pannotationsnode7&3)]:var_pannotationsnode7->type)->type_table[cltype17] == idtype18;
6888 }
6889 }
6890 if (unlikely(!var16)) {
6891 if(catchStack.cursor >= 0){
6892 longjmp(catchStack.envs[catchStack.cursor], 1);
6893 }
6894 PRINT_ERROR("Runtime error: %s", "Assert failed");
6895 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8333);
6896 fatal_exit(1);
6897 }
6898 var19 = NEW_nitc__AVardeclExpr(&type_nitc__AVardeclExpr);
6899 {
6900 nitc__parser_prod___AVardeclExpr___init_avardeclexpr(var19, ((val*)NULL), var_tidnode3, var_ptypenode4, var_tassignnode5, var_pexprnode6, var_pannotationsnode7); /* Direct call parser_prod$AVardeclExpr$init_avardeclexpr on <var19:AVardeclExpr>*/
6901 }
6902 var_pexprnode1 = var19;
6903 var_node_list = var_pexprnode1;
6904 var20 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction281> */
6905 {
6906 var21 = nitc___nitc__Parser___go_to(var_p, var20);
6907 }
6908 {
6909 nitc___nitc__Parser___push(var_p, var21, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
6910 }
6911 RET_LABEL:;
6912 }
6913 /* method parser$ReduceAction283$action for (self: ReduceAction283, Parser) */
6914 void nitc__parser___nitc__parser__ReduceAction283___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_nodearraylist4 /* var nodearraylist4: nullable Object */;
6919 val* var1 /* : nullable Object */;
6920 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
6921 val* var2 /* : nullable Object */;
6922 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
6923 val* var3 /* : nullable Object */;
6924 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
6925 val* var_tkwassertnode2 /* var tkwassertnode2: nullable Object */;
6926 short int var4 /* : Bool */;
6927 int cltype;
6928 int idtype;
6929 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
6930 short int var5 /* : Bool */;
6931 int cltype6;
6932 int idtype7;
6933 val* var_tkwelsenode5 /* var tkwelsenode5: nullable Object */;
6934 short int var8 /* : Bool */;
6935 int cltype9;
6936 int idtype10;
6937 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
6938 short int var11 /* : Bool */;
6939 int cltype12;
6940 int idtype13;
6941 val* var14 /* : AAssertExpr */;
6942 val* var_pexprnode1 /* var pexprnode1: nullable AAssertExpr */;
6943 long var15 /* : Int */;
6944 long var16 /* : Int */;
6945 var_p = p0;
6946 var_node_list = ((val*)NULL);
6947 {
6948 var = nitc___nitc__Parser___pop(var_p);
6949 }
6950 var_nodearraylist4 = var;
6951 {
6952 var1 = nitc___nitc__Parser___pop(var_p);
6953 }
6954 var_nodearraylist3 = var1;
6955 {
6956 var2 = nitc___nitc__Parser___pop(var_p);
6957 }
6958 var_nodearraylist2 = var2;
6959 {
6960 var3 = nitc___nitc__Parser___pop(var_p);
6961 }
6962 var_nodearraylist1 = var3;
6963 var_tkwassertnode2 = var_nodearraylist1;
6964 /* <var_tkwassertnode2:nullable Object> isa nullable TKwassert */
6965 cltype = type_nullable__nitc__TKwassert.color;
6966 idtype = type_nullable__nitc__TKwassert.id;
6967 if(var_tkwassertnode2 == NULL) {
6968 var4 = 1;
6969 } else {
6970 if(cltype >= (((long)var_tkwassertnode2&3)?type_info[((long)var_tkwassertnode2&3)]:var_tkwassertnode2->type)->table_size) {
6971 var4 = 0;
6972 } else {
6973 var4 = (((long)var_tkwassertnode2&3)?type_info[((long)var_tkwassertnode2&3)]:var_tkwassertnode2->type)->type_table[cltype] == idtype;
6974 }
6975 }
6976 if (unlikely(!var4)) {
6977 if(catchStack.cursor >= 0){
6978 longjmp(catchStack.envs[catchStack.cursor], 1);
6979 }
6980 PRINT_ERROR("Runtime error: %s", "Assert failed");
6981 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8356);
6982 fatal_exit(1);
6983 }
6984 var_pexprnode4 = var_nodearraylist2;
6985 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
6986 cltype6 = type_nullable__nitc__AExpr.color;
6987 idtype7 = type_nullable__nitc__AExpr.id;
6988 if(var_pexprnode4 == NULL) {
6989 var5 = 1;
6990 } else {
6991 if(cltype6 >= (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->table_size) {
6992 var5 = 0;
6993 } else {
6994 var5 = (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->type_table[cltype6] == idtype7;
6995 }
6996 }
6997 if (unlikely(!var5)) {
6998 if(catchStack.cursor >= 0){
6999 longjmp(catchStack.envs[catchStack.cursor], 1);
7000 }
7001 PRINT_ERROR("Runtime error: %s", "Assert failed");
7002 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8358);
7003 fatal_exit(1);
7004 }
7005 var_tkwelsenode5 = var_nodearraylist3;
7006 /* <var_tkwelsenode5:nullable Object> isa nullable TKwelse */
7007 cltype9 = type_nullable__nitc__TKwelse.color;
7008 idtype10 = type_nullable__nitc__TKwelse.id;
7009 if(var_tkwelsenode5 == NULL) {
7010 var8 = 1;
7011 } else {
7012 if(cltype9 >= (((long)var_tkwelsenode5&3)?type_info[((long)var_tkwelsenode5&3)]:var_tkwelsenode5->type)->table_size) {
7013 var8 = 0;
7014 } else {
7015 var8 = (((long)var_tkwelsenode5&3)?type_info[((long)var_tkwelsenode5&3)]:var_tkwelsenode5->type)->type_table[cltype9] == idtype10;
7016 }
7017 }
7018 if (unlikely(!var8)) {
7019 if(catchStack.cursor >= 0){
7020 longjmp(catchStack.envs[catchStack.cursor], 1);
7021 }
7022 PRINT_ERROR("Runtime error: %s", "Assert failed");
7023 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8360);
7024 fatal_exit(1);
7025 }
7026 var_pexprnode6 = var_nodearraylist4;
7027 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
7028 cltype12 = type_nullable__nitc__AExpr.color;
7029 idtype13 = type_nullable__nitc__AExpr.id;
7030 if(var_pexprnode6 == NULL) {
7031 var11 = 1;
7032 } else {
7033 if(cltype12 >= (((long)var_pexprnode6&3)?type_info[((long)var_pexprnode6&3)]:var_pexprnode6->type)->table_size) {
7034 var11 = 0;
7035 } else {
7036 var11 = (((long)var_pexprnode6&3)?type_info[((long)var_pexprnode6&3)]:var_pexprnode6->type)->type_table[cltype12] == idtype13;
7037 }
7038 }
7039 if (unlikely(!var11)) {
7040 if(catchStack.cursor >= 0){
7041 longjmp(catchStack.envs[catchStack.cursor], 1);
7042 }
7043 PRINT_ERROR("Runtime error: %s", "Assert failed");
7044 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8362);
7045 fatal_exit(1);
7046 }
7047 var14 = NEW_nitc__AAssertExpr(&type_nitc__AAssertExpr);
7048 {
7049 nitc__parser_prod___AAssertExpr___init_aassertexpr(var14, var_tkwassertnode2, ((val*)NULL), var_pexprnode4, var_tkwelsenode5, var_pexprnode6); /* Direct call parser_prod$AAssertExpr$init_aassertexpr on <var14:AAssertExpr>*/
7050 }
7051 var_pexprnode1 = var14;
7052 var_node_list = var_pexprnode1;
7053 var15 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction283> */
7054 {
7055 var16 = nitc___nitc__Parser___go_to(var_p, var15);
7056 }
7057 {
7058 nitc___nitc__Parser___push(var_p, var16, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
7059 }
7060 RET_LABEL:;
7061 }
7062 /* method parser$ReduceAction284$action for (self: ReduceAction284, Parser) */
7063 void nitc__parser___nitc__parser__ReduceAction284___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
7064 val* var_p /* var p: Parser */;
7065 val* var_node_list /* var node_list: nullable Object */;
7066 val* var /* : nullable Object */;
7067 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
7068 val* var1 /* : nullable Object */;
7069 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7070 val* var2 /* : nullable Object */;
7071 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7072 val* var3 /* : nullable Object */;
7073 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7074 val* var4 /* : nullable Object */;
7075 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7076 val* var_tkwassertnode2 /* var tkwassertnode2: nullable Object */;
7077 short int var5 /* : Bool */;
7078 int cltype;
7079 int idtype;
7080 val* var_tidnode3 /* var tidnode3: nullable Object */;
7081 short int var6 /* : Bool */;
7082 int cltype7;
7083 int idtype8;
7084 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
7085 short int var9 /* : Bool */;
7086 int cltype10;
7087 int idtype11;
7088 val* var_tkwelsenode5 /* var tkwelsenode5: nullable Object */;
7089 short int var12 /* : Bool */;
7090 int cltype13;
7091 int idtype14;
7092 val* var_pexprnode6 /* var pexprnode6: nullable Object */;
7093 short int var15 /* : Bool */;
7094 int cltype16;
7095 int idtype17;
7096 val* var18 /* : AAssertExpr */;
7097 val* var_pexprnode1 /* var pexprnode1: nullable AAssertExpr */;
7098 long var19 /* : Int */;
7099 long var20 /* : Int */;
7100 var_p = p0;
7101 var_node_list = ((val*)NULL);
7102 {
7103 var = nitc___nitc__Parser___pop(var_p);
7104 }
7105 var_nodearraylist5 = var;
7106 {
7107 var1 = nitc___nitc__Parser___pop(var_p);
7108 }
7109 var_nodearraylist4 = var1;
7110 {
7111 var2 = nitc___nitc__Parser___pop(var_p);
7112 }
7113 var_nodearraylist3 = var2;
7114 {
7115 var3 = nitc___nitc__Parser___pop(var_p);
7116 }
7117 var_nodearraylist2 = var3;
7118 {
7119 var4 = nitc___nitc__Parser___pop(var_p);
7120 }
7121 var_nodearraylist1 = var4;
7122 var_tkwassertnode2 = var_nodearraylist1;
7123 /* <var_tkwassertnode2:nullable Object> isa nullable TKwassert */
7124 cltype = type_nullable__nitc__TKwassert.color;
7125 idtype = type_nullable__nitc__TKwassert.id;
7126 if(var_tkwassertnode2 == NULL) {
7127 var5 = 1;
7128 } else {
7129 if(cltype >= (((long)var_tkwassertnode2&3)?type_info[((long)var_tkwassertnode2&3)]:var_tkwassertnode2->type)->table_size) {
7130 var5 = 0;
7131 } else {
7132 var5 = (((long)var_tkwassertnode2&3)?type_info[((long)var_tkwassertnode2&3)]:var_tkwassertnode2->type)->type_table[cltype] == idtype;
7133 }
7134 }
7135 if (unlikely(!var5)) {
7136 if(catchStack.cursor >= 0){
7137 longjmp(catchStack.envs[catchStack.cursor], 1);
7138 }
7139 PRINT_ERROR("Runtime error: %s", "Assert failed");
7140 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8385);
7141 fatal_exit(1);
7142 }
7143 var_tidnode3 = var_nodearraylist2;
7144 /* <var_tidnode3:nullable Object> isa nullable TId */
7145 cltype7 = type_nullable__nitc__TId.color;
7146 idtype8 = type_nullable__nitc__TId.id;
7147 if(var_tidnode3 == NULL) {
7148 var6 = 1;
7149 } else {
7150 if(cltype7 >= (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->table_size) {
7151 var6 = 0;
7152 } else {
7153 var6 = (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->type_table[cltype7] == idtype8;
7154 }
7155 }
7156 if (unlikely(!var6)) {
7157 if(catchStack.cursor >= 0){
7158 longjmp(catchStack.envs[catchStack.cursor], 1);
7159 }
7160 PRINT_ERROR("Runtime error: %s", "Assert failed");
7161 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8387);
7162 fatal_exit(1);
7163 }
7164 var_pexprnode4 = var_nodearraylist3;
7165 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
7166 cltype10 = type_nullable__nitc__AExpr.color;
7167 idtype11 = type_nullable__nitc__AExpr.id;
7168 if(var_pexprnode4 == NULL) {
7169 var9 = 1;
7170 } else {
7171 if(cltype10 >= (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->table_size) {
7172 var9 = 0;
7173 } else {
7174 var9 = (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->type_table[cltype10] == idtype11;
7175 }
7176 }
7177 if (unlikely(!var9)) {
7178 if(catchStack.cursor >= 0){
7179 longjmp(catchStack.envs[catchStack.cursor], 1);
7180 }
7181 PRINT_ERROR("Runtime error: %s", "Assert failed");
7182 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8389);
7183 fatal_exit(1);
7184 }
7185 var_tkwelsenode5 = var_nodearraylist4;
7186 /* <var_tkwelsenode5:nullable Object> isa nullable TKwelse */
7187 cltype13 = type_nullable__nitc__TKwelse.color;
7188 idtype14 = type_nullable__nitc__TKwelse.id;
7189 if(var_tkwelsenode5 == NULL) {
7190 var12 = 1;
7191 } else {
7192 if(cltype13 >= (((long)var_tkwelsenode5&3)?type_info[((long)var_tkwelsenode5&3)]:var_tkwelsenode5->type)->table_size) {
7193 var12 = 0;
7194 } else {
7195 var12 = (((long)var_tkwelsenode5&3)?type_info[((long)var_tkwelsenode5&3)]:var_tkwelsenode5->type)->type_table[cltype13] == idtype14;
7196 }
7197 }
7198 if (unlikely(!var12)) {
7199 if(catchStack.cursor >= 0){
7200 longjmp(catchStack.envs[catchStack.cursor], 1);
7201 }
7202 PRINT_ERROR("Runtime error: %s", "Assert failed");
7203 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8391);
7204 fatal_exit(1);
7205 }
7206 var_pexprnode6 = var_nodearraylist5;
7207 /* <var_pexprnode6:nullable Object> isa nullable AExpr */
7208 cltype16 = type_nullable__nitc__AExpr.color;
7209 idtype17 = type_nullable__nitc__AExpr.id;
7210 if(var_pexprnode6 == NULL) {
7211 var15 = 1;
7212 } else {
7213 if(cltype16 >= (((long)var_pexprnode6&3)?type_info[((long)var_pexprnode6&3)]:var_pexprnode6->type)->table_size) {
7214 var15 = 0;
7215 } else {
7216 var15 = (((long)var_pexprnode6&3)?type_info[((long)var_pexprnode6&3)]:var_pexprnode6->type)->type_table[cltype16] == idtype17;
7217 }
7218 }
7219 if (unlikely(!var15)) {
7220 if(catchStack.cursor >= 0){
7221 longjmp(catchStack.envs[catchStack.cursor], 1);
7222 }
7223 PRINT_ERROR("Runtime error: %s", "Assert failed");
7224 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8393);
7225 fatal_exit(1);
7226 }
7227 var18 = NEW_nitc__AAssertExpr(&type_nitc__AAssertExpr);
7228 {
7229 nitc__parser_prod___AAssertExpr___init_aassertexpr(var18, var_tkwassertnode2, var_tidnode3, var_pexprnode4, var_tkwelsenode5, var_pexprnode6); /* Direct call parser_prod$AAssertExpr$init_aassertexpr on <var18:AAssertExpr>*/
7230 }
7231 var_pexprnode1 = var18;
7232 var_node_list = var_pexprnode1;
7233 var19 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction284> */
7234 {
7235 var20 = nitc___nitc__Parser___go_to(var_p, var19);
7236 }
7237 {
7238 nitc___nitc__Parser___push(var_p, var20, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
7239 }
7240 RET_LABEL:;
7241 }
7242 /* method parser$ReduceAction285$action for (self: ReduceAction285, Parser) */
7243 void nitc__parser___nitc__parser__ReduceAction285___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
7244 val* var_p /* var p: Parser */;
7245 val* var_node_list /* var node_list: nullable Object */;
7246 val* var /* : nullable Object */;
7247 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7248 val* var1 /* : nullable Object */;
7249 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7250 val* var_tkwassertnode2 /* var tkwassertnode2: nullable Object */;
7251 short int var2 /* : Bool */;
7252 int cltype;
7253 int idtype;
7254 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
7255 short int var3 /* : Bool */;
7256 int cltype4;
7257 int idtype5;
7258 val* var6 /* : AAssertExpr */;
7259 val* var_pexprnode1 /* var pexprnode1: nullable AAssertExpr */;
7260 long var7 /* : Int */;
7261 long var8 /* : Int */;
7262 var_p = p0;
7263 var_node_list = ((val*)NULL);
7264 {
7265 var = nitc___nitc__Parser___pop(var_p);
7266 }
7267 var_nodearraylist2 = var;
7268 {
7269 var1 = nitc___nitc__Parser___pop(var_p);
7270 }
7271 var_nodearraylist1 = var1;
7272 var_tkwassertnode2 = var_nodearraylist1;
7273 /* <var_tkwassertnode2:nullable Object> isa nullable TKwassert */
7274 cltype = type_nullable__nitc__TKwassert.color;
7275 idtype = type_nullable__nitc__TKwassert.id;
7276 if(var_tkwassertnode2 == NULL) {
7277 var2 = 1;
7278 } else {
7279 if(cltype >= (((long)var_tkwassertnode2&3)?type_info[((long)var_tkwassertnode2&3)]:var_tkwassertnode2->type)->table_size) {
7280 var2 = 0;
7281 } else {
7282 var2 = (((long)var_tkwassertnode2&3)?type_info[((long)var_tkwassertnode2&3)]:var_tkwassertnode2->type)->type_table[cltype] == idtype;
7283 }
7284 }
7285 if (unlikely(!var2)) {
7286 if(catchStack.cursor >= 0){
7287 longjmp(catchStack.envs[catchStack.cursor], 1);
7288 }
7289 PRINT_ERROR("Runtime error: %s", "Assert failed");
7290 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8413);
7291 fatal_exit(1);
7292 }
7293 var_pexprnode4 = var_nodearraylist2;
7294 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
7295 cltype4 = type_nullable__nitc__AExpr.color;
7296 idtype5 = type_nullable__nitc__AExpr.id;
7297 if(var_pexprnode4 == NULL) {
7298 var3 = 1;
7299 } else {
7300 if(cltype4 >= (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->table_size) {
7301 var3 = 0;
7302 } else {
7303 var3 = (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->type_table[cltype4] == idtype5;
7304 }
7305 }
7306 if (unlikely(!var3)) {
7307 if(catchStack.cursor >= 0){
7308 longjmp(catchStack.envs[catchStack.cursor], 1);
7309 }
7310 PRINT_ERROR("Runtime error: %s", "Assert failed");
7311 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8415);
7312 fatal_exit(1);
7313 }
7314 var6 = NEW_nitc__AAssertExpr(&type_nitc__AAssertExpr);
7315 {
7316 nitc__parser_prod___AAssertExpr___init_aassertexpr(var6, var_tkwassertnode2, ((val*)NULL), var_pexprnode4, ((val*)NULL), ((val*)NULL)); /* Direct call parser_prod$AAssertExpr$init_aassertexpr on <var6:AAssertExpr>*/
7317 }
7318 var_pexprnode1 = var6;
7319 var_node_list = var_pexprnode1;
7320 var7 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction285> */
7321 {
7322 var8 = nitc___nitc__Parser___go_to(var_p, var7);
7323 }
7324 {
7325 nitc___nitc__Parser___push(var_p, var8, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
7326 }
7327 RET_LABEL:;
7328 }
7329 /* method parser$ReduceAction286$action for (self: ReduceAction286, Parser) */
7330 void nitc__parser___nitc__parser__ReduceAction286___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
7331 val* var_p /* var p: Parser */;
7332 val* var_node_list /* var node_list: nullable Object */;
7333 val* var /* : nullable Object */;
7334 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7335 val* var1 /* : nullable Object */;
7336 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7337 val* var2 /* : nullable Object */;
7338 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7339 val* var_tkwassertnode2 /* var tkwassertnode2: nullable Object */;
7340 short int var3 /* : Bool */;
7341 int cltype;
7342 int idtype;
7343 val* var_tidnode3 /* var tidnode3: nullable Object */;
7344 short int var4 /* : Bool */;
7345 int cltype5;
7346 int idtype6;
7347 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
7348 short int var7 /* : Bool */;
7349 int cltype8;
7350 int idtype9;
7351 val* var10 /* : AAssertExpr */;
7352 val* var_pexprnode1 /* var pexprnode1: nullable AAssertExpr */;
7353 long var11 /* : Int */;
7354 long var12 /* : Int */;
7355 var_p = p0;
7356 var_node_list = ((val*)NULL);
7357 {
7358 var = nitc___nitc__Parser___pop(var_p);
7359 }
7360 var_nodearraylist3 = var;
7361 {
7362 var1 = nitc___nitc__Parser___pop(var_p);
7363 }
7364 var_nodearraylist2 = var1;
7365 {
7366 var2 = nitc___nitc__Parser___pop(var_p);
7367 }
7368 var_nodearraylist1 = var2;
7369 var_tkwassertnode2 = var_nodearraylist1;
7370 /* <var_tkwassertnode2:nullable Object> isa nullable TKwassert */
7371 cltype = type_nullable__nitc__TKwassert.color;
7372 idtype = type_nullable__nitc__TKwassert.id;
7373 if(var_tkwassertnode2 == NULL) {
7374 var3 = 1;
7375 } else {
7376 if(cltype >= (((long)var_tkwassertnode2&3)?type_info[((long)var_tkwassertnode2&3)]:var_tkwassertnode2->type)->table_size) {
7377 var3 = 0;
7378 } else {
7379 var3 = (((long)var_tkwassertnode2&3)?type_info[((long)var_tkwassertnode2&3)]:var_tkwassertnode2->type)->type_table[cltype] == idtype;
7380 }
7381 }
7382 if (unlikely(!var3)) {
7383 if(catchStack.cursor >= 0){
7384 longjmp(catchStack.envs[catchStack.cursor], 1);
7385 }
7386 PRINT_ERROR("Runtime error: %s", "Assert failed");
7387 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8436);
7388 fatal_exit(1);
7389 }
7390 var_tidnode3 = var_nodearraylist2;
7391 /* <var_tidnode3:nullable Object> isa nullable TId */
7392 cltype5 = type_nullable__nitc__TId.color;
7393 idtype6 = type_nullable__nitc__TId.id;
7394 if(var_tidnode3 == NULL) {
7395 var4 = 1;
7396 } else {
7397 if(cltype5 >= (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->table_size) {
7398 var4 = 0;
7399 } else {
7400 var4 = (((long)var_tidnode3&3)?type_info[((long)var_tidnode3&3)]:var_tidnode3->type)->type_table[cltype5] == idtype6;
7401 }
7402 }
7403 if (unlikely(!var4)) {
7404 if(catchStack.cursor >= 0){
7405 longjmp(catchStack.envs[catchStack.cursor], 1);
7406 }
7407 PRINT_ERROR("Runtime error: %s", "Assert failed");
7408 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8438);
7409 fatal_exit(1);
7410 }
7411 var_pexprnode4 = var_nodearraylist3;
7412 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
7413 cltype8 = type_nullable__nitc__AExpr.color;
7414 idtype9 = type_nullable__nitc__AExpr.id;
7415 if(var_pexprnode4 == NULL) {
7416 var7 = 1;
7417 } else {
7418 if(cltype8 >= (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->table_size) {
7419 var7 = 0;
7420 } else {
7421 var7 = (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->type_table[cltype8] == idtype9;
7422 }
7423 }
7424 if (unlikely(!var7)) {
7425 if(catchStack.cursor >= 0){
7426 longjmp(catchStack.envs[catchStack.cursor], 1);
7427 }
7428 PRINT_ERROR("Runtime error: %s", "Assert failed");
7429 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8440);
7430 fatal_exit(1);
7431 }
7432 var10 = NEW_nitc__AAssertExpr(&type_nitc__AAssertExpr);
7433 {
7434 nitc__parser_prod___AAssertExpr___init_aassertexpr(var10, var_tkwassertnode2, var_tidnode3, var_pexprnode4, ((val*)NULL), ((val*)NULL)); /* Direct call parser_prod$AAssertExpr$init_aassertexpr on <var10:AAssertExpr>*/
7435 }
7436 var_pexprnode1 = var10;
7437 var_node_list = var_pexprnode1;
7438 var11 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction286> */
7439 {
7440 var12 = nitc___nitc__Parser___go_to(var_p, var11);
7441 }
7442 {
7443 nitc___nitc__Parser___push(var_p, var12, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
7444 }
7445 RET_LABEL:;
7446 }
7447 /* method parser$ReduceAction287$action for (self: ReduceAction287, Parser) */
7448 void nitc__parser___nitc__parser__ReduceAction287___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
7449 val* var_p /* var p: Parser */;
7450 val* var_node_list /* var node_list: nullable Object */;
7451 val* var /* : nullable Object */;
7452 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7453 val* var1 /* : nullable Object */;
7454 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7455 val* var_tidnode1 /* var tidnode1: nullable Object */;
7456 long var2 /* : Int */;
7457 long var3 /* : Int */;
7458 var_p = p0;
7459 var_node_list = ((val*)NULL);
7460 {
7461 var = nitc___nitc__Parser___pop(var_p);
7462 }
7463 var_nodearraylist2 = var;
7464 {
7465 var1 = nitc___nitc__Parser___pop(var_p);
7466 }
7467 var_nodearraylist1 = var1;
7468 var_tidnode1 = var_nodearraylist1;
7469 var_node_list = var_tidnode1;
7470 var2 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction287> */
7471 {
7472 var3 = nitc___nitc__Parser___go_to(var_p, var2);
7473 }
7474 {
7475 nitc___nitc__Parser___push(var_p, var3, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
7476 }
7477 RET_LABEL:;
7478 }
7479 /* method parser$ReduceAction289$action for (self: ReduceAction289, Parser) */
7480 void nitc__parser___nitc__parser__ReduceAction289___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
7481 val* var_p /* var p: Parser */;
7482 val* var_node_list /* var node_list: nullable Object */;
7483 val* var /* : nullable Object */;
7484 val* var_nodearraylist11 /* var nodearraylist11: nullable Object */;
7485 val* var1 /* : nullable Object */;
7486 val* var_nodearraylist10 /* var nodearraylist10: nullable Object */;
7487 val* var2 /* : nullable Object */;
7488 val* var_nodearraylist9 /* var nodearraylist9: nullable Object */;
7489 val* var3 /* : nullable Object */;
7490 val* var_nodearraylist8 /* var nodearraylist8: nullable Object */;
7491 val* var4 /* : nullable Object */;
7492 val* var_nodearraylist7 /* var nodearraylist7: nullable Object */;
7493 val* var5 /* : nullable Object */;
7494 val* var_nodearraylist6 /* var nodearraylist6: nullable Object */;
7495 val* var6 /* : nullable Object */;
7496 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
7497 val* var7 /* : nullable Object */;
7498 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7499 val* var8 /* : nullable Object */;
7500 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7501 val* var9 /* : nullable Object */;
7502 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7503 val* var10 /* : nullable Object */;
7504 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7505 val* var_tkwifnode2 /* var tkwifnode2: nullable Object */;
7506 short int var11 /* : Bool */;
7507 int cltype;
7508 int idtype;
7509 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
7510 short int var12 /* : Bool */;
7511 int cltype13;
7512 int idtype14;
7513 val* var_tkwthennode4 /* var tkwthennode4: nullable Object */;
7514 short int var15 /* : Bool */;
7515 int cltype16;
7516 int idtype17;
7517 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
7518 short int var18 /* : Bool */;
7519 int cltype19;
7520 int idtype20;
7521 val* var_tkwelsenode6 /* var tkwelsenode6: nullable Object */;
7522 short int var21 /* : Bool */;
7523 int cltype22;
7524 int idtype23;
7525 val* var_pexprnode7 /* var pexprnode7: nullable Object */;
7526 short int var24 /* : Bool */;
7527 int cltype25;
7528 int idtype26;
7529 val* var27 /* : AIfexprExpr */;
7530 val* var_pexprnode1 /* var pexprnode1: nullable AIfexprExpr */;
7531 long var28 /* : Int */;
7532 long var29 /* : Int */;
7533 var_p = p0;
7534 var_node_list = ((val*)NULL);
7535 {
7536 var = nitc___nitc__Parser___pop(var_p);
7537 }
7538 var_nodearraylist11 = var;
7539 {
7540 var1 = nitc___nitc__Parser___pop(var_p);
7541 }
7542 var_nodearraylist10 = var1;
7543 {
7544 var2 = nitc___nitc__Parser___pop(var_p);
7545 }
7546 var_nodearraylist9 = var2;
7547 {
7548 var3 = nitc___nitc__Parser___pop(var_p);
7549 }
7550 var_nodearraylist8 = var3;
7551 {
7552 var4 = nitc___nitc__Parser___pop(var_p);
7553 }
7554 var_nodearraylist7 = var4;
7555 {
7556 var5 = nitc___nitc__Parser___pop(var_p);
7557 }
7558 var_nodearraylist6 = var5;
7559 {
7560 var6 = nitc___nitc__Parser___pop(var_p);
7561 }
7562 var_nodearraylist5 = var6;
7563 {
7564 var7 = nitc___nitc__Parser___pop(var_p);
7565 }
7566 var_nodearraylist4 = var7;
7567 {
7568 var8 = nitc___nitc__Parser___pop(var_p);
7569 }
7570 var_nodearraylist3 = var8;
7571 {
7572 var9 = nitc___nitc__Parser___pop(var_p);
7573 }
7574 var_nodearraylist2 = var9;
7575 {
7576 var10 = nitc___nitc__Parser___pop(var_p);
7577 }
7578 var_nodearraylist1 = var10;
7579 var_tkwifnode2 = var_nodearraylist1;
7580 /* <var_tkwifnode2:nullable Object> isa nullable TKwif */
7581 cltype = type_nullable__nitc__TKwif.color;
7582 idtype = type_nullable__nitc__TKwif.id;
7583 if(var_tkwifnode2 == NULL) {
7584 var11 = 1;
7585 } else {
7586 if(cltype >= (((long)var_tkwifnode2&3)?type_info[((long)var_tkwifnode2&3)]:var_tkwifnode2->type)->table_size) {
7587 var11 = 0;
7588 } else {
7589 var11 = (((long)var_tkwifnode2&3)?type_info[((long)var_tkwifnode2&3)]:var_tkwifnode2->type)->type_table[cltype] == idtype;
7590 }
7591 }
7592 if (unlikely(!var11)) {
7593 if(catchStack.cursor >= 0){
7594 longjmp(catchStack.envs[catchStack.cursor], 1);
7595 }
7596 PRINT_ERROR("Runtime error: %s", "Assert failed");
7597 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8481);
7598 fatal_exit(1);
7599 }
7600 var_pexprnode3 = var_nodearraylist3;
7601 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
7602 cltype13 = type_nullable__nitc__AExpr.color;
7603 idtype14 = type_nullable__nitc__AExpr.id;
7604 if(var_pexprnode3 == NULL) {
7605 var12 = 1;
7606 } else {
7607 if(cltype13 >= (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->table_size) {
7608 var12 = 0;
7609 } else {
7610 var12 = (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->type_table[cltype13] == idtype14;
7611 }
7612 }
7613 if (unlikely(!var12)) {
7614 if(catchStack.cursor >= 0){
7615 longjmp(catchStack.envs[catchStack.cursor], 1);
7616 }
7617 PRINT_ERROR("Runtime error: %s", "Assert failed");
7618 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8483);
7619 fatal_exit(1);
7620 }
7621 var_tkwthennode4 = var_nodearraylist5;
7622 /* <var_tkwthennode4:nullable Object> isa nullable TKwthen */
7623 cltype16 = type_nullable__nitc__TKwthen.color;
7624 idtype17 = type_nullable__nitc__TKwthen.id;
7625 if(var_tkwthennode4 == NULL) {
7626 var15 = 1;
7627 } else {
7628 if(cltype16 >= (((long)var_tkwthennode4&3)?type_info[((long)var_tkwthennode4&3)]:var_tkwthennode4->type)->table_size) {
7629 var15 = 0;
7630 } else {
7631 var15 = (((long)var_tkwthennode4&3)?type_info[((long)var_tkwthennode4&3)]:var_tkwthennode4->type)->type_table[cltype16] == idtype17;
7632 }
7633 }
7634 if (unlikely(!var15)) {
7635 if(catchStack.cursor >= 0){
7636 longjmp(catchStack.envs[catchStack.cursor], 1);
7637 }
7638 PRINT_ERROR("Runtime error: %s", "Assert failed");
7639 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8485);
7640 fatal_exit(1);
7641 }
7642 var_pexprnode5 = var_nodearraylist7;
7643 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
7644 cltype19 = type_nullable__nitc__AExpr.color;
7645 idtype20 = type_nullable__nitc__AExpr.id;
7646 if(var_pexprnode5 == NULL) {
7647 var18 = 1;
7648 } else {
7649 if(cltype19 >= (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->table_size) {
7650 var18 = 0;
7651 } else {
7652 var18 = (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->type_table[cltype19] == idtype20;
7653 }
7654 }
7655 if (unlikely(!var18)) {
7656 if(catchStack.cursor >= 0){
7657 longjmp(catchStack.envs[catchStack.cursor], 1);
7658 }
7659 PRINT_ERROR("Runtime error: %s", "Assert failed");
7660 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8487);
7661 fatal_exit(1);
7662 }
7663 var_tkwelsenode6 = var_nodearraylist9;
7664 /* <var_tkwelsenode6:nullable Object> isa nullable TKwelse */
7665 cltype22 = type_nullable__nitc__TKwelse.color;
7666 idtype23 = type_nullable__nitc__TKwelse.id;
7667 if(var_tkwelsenode6 == NULL) {
7668 var21 = 1;
7669 } else {
7670 if(cltype22 >= (((long)var_tkwelsenode6&3)?type_info[((long)var_tkwelsenode6&3)]:var_tkwelsenode6->type)->table_size) {
7671 var21 = 0;
7672 } else {
7673 var21 = (((long)var_tkwelsenode6&3)?type_info[((long)var_tkwelsenode6&3)]:var_tkwelsenode6->type)->type_table[cltype22] == idtype23;
7674 }
7675 }
7676 if (unlikely(!var21)) {
7677 if(catchStack.cursor >= 0){
7678 longjmp(catchStack.envs[catchStack.cursor], 1);
7679 }
7680 PRINT_ERROR("Runtime error: %s", "Assert failed");
7681 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8489);
7682 fatal_exit(1);
7683 }
7684 var_pexprnode7 = var_nodearraylist11;
7685 /* <var_pexprnode7:nullable Object> isa nullable AExpr */
7686 cltype25 = type_nullable__nitc__AExpr.color;
7687 idtype26 = type_nullable__nitc__AExpr.id;
7688 if(var_pexprnode7 == NULL) {
7689 var24 = 1;
7690 } else {
7691 if(cltype25 >= (((long)var_pexprnode7&3)?type_info[((long)var_pexprnode7&3)]:var_pexprnode7->type)->table_size) {
7692 var24 = 0;
7693 } else {
7694 var24 = (((long)var_pexprnode7&3)?type_info[((long)var_pexprnode7&3)]:var_pexprnode7->type)->type_table[cltype25] == idtype26;
7695 }
7696 }
7697 if (unlikely(!var24)) {
7698 if(catchStack.cursor >= 0){
7699 longjmp(catchStack.envs[catchStack.cursor], 1);
7700 }
7701 PRINT_ERROR("Runtime error: %s", "Assert failed");
7702 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8491);
7703 fatal_exit(1);
7704 }
7705 var27 = NEW_nitc__AIfexprExpr(&type_nitc__AIfexprExpr);
7706 {
7707 nitc__parser_prod___AIfexprExpr___init_aifexprexpr(var27, var_tkwifnode2, var_pexprnode3, var_tkwthennode4, var_pexprnode5, var_tkwelsenode6, var_pexprnode7); /* Direct call parser_prod$AIfexprExpr$init_aifexprexpr on <var27:AIfexprExpr>*/
7708 }
7709 var_pexprnode1 = var27;
7710 var_node_list = var_pexprnode1;
7711 var28 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction289> */
7712 {
7713 var29 = nitc___nitc__Parser___go_to(var_p, var28);
7714 }
7715 {
7716 nitc___nitc__Parser___push(var_p, var29, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
7717 }
7718 RET_LABEL:;
7719 }
7720 /* method parser$ReduceAction291$action for (self: ReduceAction291, Parser) */
7721 void nitc__parser___nitc__parser__ReduceAction291___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
7722 val* var_p /* var p: Parser */;
7723 val* var_node_list /* var node_list: nullable Object */;
7724 val* var /* : nullable Object */;
7725 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7726 val* var1 /* : nullable Object */;
7727 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7728 val* var2 /* : nullable Object */;
7729 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7730 val* var3 /* : nullable Object */;
7731 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7732 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
7733 short int var4 /* : Bool */;
7734 int cltype;
7735 int idtype;
7736 val* var_tkwornode3 /* var tkwornode3: nullable Object */;
7737 short int var5 /* : Bool */;
7738 int cltype6;
7739 int idtype7;
7740 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
7741 short int var8 /* : Bool */;
7742 int cltype9;
7743 int idtype10;
7744 val* var11 /* : AOrExpr */;
7745 val* var_pexprnode1 /* var pexprnode1: nullable AOrExpr */;
7746 long var12 /* : Int */;
7747 long var13 /* : Int */;
7748 var_p = p0;
7749 var_node_list = ((val*)NULL);
7750 {
7751 var = nitc___nitc__Parser___pop(var_p);
7752 }
7753 var_nodearraylist4 = var;
7754 {
7755 var1 = nitc___nitc__Parser___pop(var_p);
7756 }
7757 var_nodearraylist3 = var1;
7758 {
7759 var2 = nitc___nitc__Parser___pop(var_p);
7760 }
7761 var_nodearraylist2 = var2;
7762 {
7763 var3 = nitc___nitc__Parser___pop(var_p);
7764 }
7765 var_nodearraylist1 = var3;
7766 var_pexprnode2 = var_nodearraylist1;
7767 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
7768 cltype = type_nullable__nitc__AExpr.color;
7769 idtype = type_nullable__nitc__AExpr.id;
7770 if(var_pexprnode2 == NULL) {
7771 var4 = 1;
7772 } else {
7773 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
7774 var4 = 0;
7775 } else {
7776 var4 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
7777 }
7778 }
7779 if (unlikely(!var4)) {
7780 if(catchStack.cursor >= 0){
7781 longjmp(catchStack.envs[catchStack.cursor], 1);
7782 }
7783 PRINT_ERROR("Runtime error: %s", "Assert failed");
7784 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8514);
7785 fatal_exit(1);
7786 }
7787 var_tkwornode3 = var_nodearraylist2;
7788 /* <var_tkwornode3:nullable Object> isa nullable TKwor */
7789 cltype6 = type_nullable__nitc__TKwor.color;
7790 idtype7 = type_nullable__nitc__TKwor.id;
7791 if(var_tkwornode3 == NULL) {
7792 var5 = 1;
7793 } else {
7794 if(cltype6 >= (((long)var_tkwornode3&3)?type_info[((long)var_tkwornode3&3)]:var_tkwornode3->type)->table_size) {
7795 var5 = 0;
7796 } else {
7797 var5 = (((long)var_tkwornode3&3)?type_info[((long)var_tkwornode3&3)]:var_tkwornode3->type)->type_table[cltype6] == idtype7;
7798 }
7799 }
7800 if (unlikely(!var5)) {
7801 if(catchStack.cursor >= 0){
7802 longjmp(catchStack.envs[catchStack.cursor], 1);
7803 }
7804 PRINT_ERROR("Runtime error: %s", "Assert failed");
7805 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8516);
7806 fatal_exit(1);
7807 }
7808 var_pexprnode4 = var_nodearraylist4;
7809 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
7810 cltype9 = type_nullable__nitc__AExpr.color;
7811 idtype10 = type_nullable__nitc__AExpr.id;
7812 if(var_pexprnode4 == NULL) {
7813 var8 = 1;
7814 } else {
7815 if(cltype9 >= (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->table_size) {
7816 var8 = 0;
7817 } else {
7818 var8 = (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->type_table[cltype9] == idtype10;
7819 }
7820 }
7821 if (unlikely(!var8)) {
7822 if(catchStack.cursor >= 0){
7823 longjmp(catchStack.envs[catchStack.cursor], 1);
7824 }
7825 PRINT_ERROR("Runtime error: %s", "Assert failed");
7826 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8518);
7827 fatal_exit(1);
7828 }
7829 var11 = NEW_nitc__AOrExpr(&type_nitc__AOrExpr);
7830 {
7831 nitc__parser_prod___AOrExpr___init_aorexpr(var11, var_pexprnode2, var_tkwornode3, var_pexprnode4); /* Direct call parser_prod$AOrExpr$init_aorexpr on <var11:AOrExpr>*/
7832 }
7833 var_pexprnode1 = var11;
7834 var_node_list = var_pexprnode1;
7835 var12 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction291> */
7836 {
7837 var13 = nitc___nitc__Parser___go_to(var_p, var12);
7838 }
7839 {
7840 nitc___nitc__Parser___push(var_p, var13, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
7841 }
7842 RET_LABEL:;
7843 }
7844 /* method parser$ReduceAction292$action for (self: ReduceAction292, Parser) */
7845 void nitc__parser___nitc__parser__ReduceAction292___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
7846 val* var_p /* var p: Parser */;
7847 val* var_node_list /* var node_list: nullable Object */;
7848 val* var /* : nullable Object */;
7849 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7850 val* var1 /* : nullable Object */;
7851 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7852 val* var2 /* : nullable Object */;
7853 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7854 val* var3 /* : nullable Object */;
7855 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7856 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
7857 short int var4 /* : Bool */;
7858 int cltype;
7859 int idtype;
7860 val* var_tkwandnode3 /* var tkwandnode3: nullable Object */;
7861 short int var5 /* : Bool */;
7862 int cltype6;
7863 int idtype7;
7864 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
7865 short int var8 /* : Bool */;
7866 int cltype9;
7867 int idtype10;
7868 val* var11 /* : AAndExpr */;
7869 val* var_pexprnode1 /* var pexprnode1: nullable AAndExpr */;
7870 long var12 /* : Int */;
7871 long var13 /* : Int */;
7872 var_p = p0;
7873 var_node_list = ((val*)NULL);
7874 {
7875 var = nitc___nitc__Parser___pop(var_p);
7876 }
7877 var_nodearraylist4 = var;
7878 {
7879 var1 = nitc___nitc__Parser___pop(var_p);
7880 }
7881 var_nodearraylist3 = var1;
7882 {
7883 var2 = nitc___nitc__Parser___pop(var_p);
7884 }
7885 var_nodearraylist2 = var2;
7886 {
7887 var3 = nitc___nitc__Parser___pop(var_p);
7888 }
7889 var_nodearraylist1 = var3;
7890 var_pexprnode2 = var_nodearraylist1;
7891 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
7892 cltype = type_nullable__nitc__AExpr.color;
7893 idtype = type_nullable__nitc__AExpr.id;
7894 if(var_pexprnode2 == NULL) {
7895 var4 = 1;
7896 } else {
7897 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
7898 var4 = 0;
7899 } else {
7900 var4 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
7901 }
7902 }
7903 if (unlikely(!var4)) {
7904 if(catchStack.cursor >= 0){
7905 longjmp(catchStack.envs[catchStack.cursor], 1);
7906 }
7907 PRINT_ERROR("Runtime error: %s", "Assert failed");
7908 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8538);
7909 fatal_exit(1);
7910 }
7911 var_tkwandnode3 = var_nodearraylist2;
7912 /* <var_tkwandnode3:nullable Object> isa nullable TKwand */
7913 cltype6 = type_nullable__nitc__TKwand.color;
7914 idtype7 = type_nullable__nitc__TKwand.id;
7915 if(var_tkwandnode3 == NULL) {
7916 var5 = 1;
7917 } else {
7918 if(cltype6 >= (((long)var_tkwandnode3&3)?type_info[((long)var_tkwandnode3&3)]:var_tkwandnode3->type)->table_size) {
7919 var5 = 0;
7920 } else {
7921 var5 = (((long)var_tkwandnode3&3)?type_info[((long)var_tkwandnode3&3)]:var_tkwandnode3->type)->type_table[cltype6] == idtype7;
7922 }
7923 }
7924 if (unlikely(!var5)) {
7925 if(catchStack.cursor >= 0){
7926 longjmp(catchStack.envs[catchStack.cursor], 1);
7927 }
7928 PRINT_ERROR("Runtime error: %s", "Assert failed");
7929 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8540);
7930 fatal_exit(1);
7931 }
7932 var_pexprnode4 = var_nodearraylist4;
7933 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
7934 cltype9 = type_nullable__nitc__AExpr.color;
7935 idtype10 = type_nullable__nitc__AExpr.id;
7936 if(var_pexprnode4 == NULL) {
7937 var8 = 1;
7938 } else {
7939 if(cltype9 >= (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->table_size) {
7940 var8 = 0;
7941 } else {
7942 var8 = (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->type_table[cltype9] == idtype10;
7943 }
7944 }
7945 if (unlikely(!var8)) {
7946 if(catchStack.cursor >= 0){
7947 longjmp(catchStack.envs[catchStack.cursor], 1);
7948 }
7949 PRINT_ERROR("Runtime error: %s", "Assert failed");
7950 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8542);
7951 fatal_exit(1);
7952 }
7953 var11 = NEW_nitc__AAndExpr(&type_nitc__AAndExpr);
7954 {
7955 nitc__parser_prod___AAndExpr___init_aandexpr(var11, var_pexprnode2, var_tkwandnode3, var_pexprnode4); /* Direct call parser_prod$AAndExpr$init_aandexpr on <var11:AAndExpr>*/
7956 }
7957 var_pexprnode1 = var11;
7958 var_node_list = var_pexprnode1;
7959 var12 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction292> */
7960 {
7961 var13 = nitc___nitc__Parser___go_to(var_p, var12);
7962 }
7963 {
7964 nitc___nitc__Parser___push(var_p, var13, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
7965 }
7966 RET_LABEL:;
7967 }
7968 /* method parser$ReduceAction293$action for (self: ReduceAction293, Parser) */
7969 void nitc__parser___nitc__parser__ReduceAction293___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
7970 val* var_p /* var p: Parser */;
7971 val* var_node_list /* var node_list: nullable Object */;
7972 val* var /* : nullable Object */;
7973 val* var_nodearraylist5 /* var nodearraylist5: nullable Object */;
7974 val* var1 /* : nullable Object */;
7975 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
7976 val* var2 /* : nullable Object */;
7977 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
7978 val* var3 /* : nullable Object */;
7979 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
7980 val* var4 /* : nullable Object */;
7981 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
7982 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
7983 short int var5 /* : Bool */;
7984 int cltype;
7985 int idtype;
7986 val* var_tkwornode3 /* var tkwornode3: nullable Object */;
7987 short int var6 /* : Bool */;
7988 int cltype7;
7989 int idtype8;
7990 val* var_tkwelsenode4 /* var tkwelsenode4: nullable Object */;
7991 short int var9 /* : Bool */;
7992 int cltype10;
7993 int idtype11;
7994 val* var_pexprnode5 /* var pexprnode5: nullable Object */;
7995 short int var12 /* : Bool */;
7996 int cltype13;
7997 int idtype14;
7998 val* var15 /* : AOrElseExpr */;
7999 val* var_pexprnode1 /* var pexprnode1: nullable AOrElseExpr */;
8000 long var16 /* : Int */;
8001 long var17 /* : Int */;
8002 var_p = p0;
8003 var_node_list = ((val*)NULL);
8004 {
8005 var = nitc___nitc__Parser___pop(var_p);
8006 }
8007 var_nodearraylist5 = var;
8008 {
8009 var1 = nitc___nitc__Parser___pop(var_p);
8010 }
8011 var_nodearraylist4 = var1;
8012 {
8013 var2 = nitc___nitc__Parser___pop(var_p);
8014 }
8015 var_nodearraylist3 = var2;
8016 {
8017 var3 = nitc___nitc__Parser___pop(var_p);
8018 }
8019 var_nodearraylist2 = var3;
8020 {
8021 var4 = nitc___nitc__Parser___pop(var_p);
8022 }
8023 var_nodearraylist1 = var4;
8024 var_pexprnode2 = var_nodearraylist1;
8025 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
8026 cltype = type_nullable__nitc__AExpr.color;
8027 idtype = type_nullable__nitc__AExpr.id;
8028 if(var_pexprnode2 == NULL) {
8029 var5 = 1;
8030 } else {
8031 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
8032 var5 = 0;
8033 } else {
8034 var5 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
8035 }
8036 }
8037 if (unlikely(!var5)) {
8038 if(catchStack.cursor >= 0){
8039 longjmp(catchStack.envs[catchStack.cursor], 1);
8040 }
8041 PRINT_ERROR("Runtime error: %s", "Assert failed");
8042 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8563);
8043 fatal_exit(1);
8044 }
8045 var_tkwornode3 = var_nodearraylist2;
8046 /* <var_tkwornode3:nullable Object> isa nullable TKwor */
8047 cltype7 = type_nullable__nitc__TKwor.color;
8048 idtype8 = type_nullable__nitc__TKwor.id;
8049 if(var_tkwornode3 == NULL) {
8050 var6 = 1;
8051 } else {
8052 if(cltype7 >= (((long)var_tkwornode3&3)?type_info[((long)var_tkwornode3&3)]:var_tkwornode3->type)->table_size) {
8053 var6 = 0;
8054 } else {
8055 var6 = (((long)var_tkwornode3&3)?type_info[((long)var_tkwornode3&3)]:var_tkwornode3->type)->type_table[cltype7] == idtype8;
8056 }
8057 }
8058 if (unlikely(!var6)) {
8059 if(catchStack.cursor >= 0){
8060 longjmp(catchStack.envs[catchStack.cursor], 1);
8061 }
8062 PRINT_ERROR("Runtime error: %s", "Assert failed");
8063 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8565);
8064 fatal_exit(1);
8065 }
8066 var_tkwelsenode4 = var_nodearraylist3;
8067 /* <var_tkwelsenode4:nullable Object> isa nullable TKwelse */
8068 cltype10 = type_nullable__nitc__TKwelse.color;
8069 idtype11 = type_nullable__nitc__TKwelse.id;
8070 if(var_tkwelsenode4 == NULL) {
8071 var9 = 1;
8072 } else {
8073 if(cltype10 >= (((long)var_tkwelsenode4&3)?type_info[((long)var_tkwelsenode4&3)]:var_tkwelsenode4->type)->table_size) {
8074 var9 = 0;
8075 } else {
8076 var9 = (((long)var_tkwelsenode4&3)?type_info[((long)var_tkwelsenode4&3)]:var_tkwelsenode4->type)->type_table[cltype10] == idtype11;
8077 }
8078 }
8079 if (unlikely(!var9)) {
8080 if(catchStack.cursor >= 0){
8081 longjmp(catchStack.envs[catchStack.cursor], 1);
8082 }
8083 PRINT_ERROR("Runtime error: %s", "Assert failed");
8084 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8567);
8085 fatal_exit(1);
8086 }
8087 var_pexprnode5 = var_nodearraylist5;
8088 /* <var_pexprnode5:nullable Object> isa nullable AExpr */
8089 cltype13 = type_nullable__nitc__AExpr.color;
8090 idtype14 = type_nullable__nitc__AExpr.id;
8091 if(var_pexprnode5 == NULL) {
8092 var12 = 1;
8093 } else {
8094 if(cltype13 >= (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->table_size) {
8095 var12 = 0;
8096 } else {
8097 var12 = (((long)var_pexprnode5&3)?type_info[((long)var_pexprnode5&3)]:var_pexprnode5->type)->type_table[cltype13] == idtype14;
8098 }
8099 }
8100 if (unlikely(!var12)) {
8101 if(catchStack.cursor >= 0){
8102 longjmp(catchStack.envs[catchStack.cursor], 1);
8103 }
8104 PRINT_ERROR("Runtime error: %s", "Assert failed");
8105 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8569);
8106 fatal_exit(1);
8107 }
8108 var15 = NEW_nitc__AOrElseExpr(&type_nitc__AOrElseExpr);
8109 {
8110 nitc__parser_prod___AOrElseExpr___init_aorelseexpr(var15, var_pexprnode2, var_tkwornode3, var_tkwelsenode4, var_pexprnode5); /* Direct call parser_prod$AOrElseExpr$init_aorelseexpr on <var15:AOrElseExpr>*/
8111 }
8112 var_pexprnode1 = var15;
8113 var_node_list = var_pexprnode1;
8114 var16 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction293> */
8115 {
8116 var17 = nitc___nitc__Parser___go_to(var_p, var16);
8117 }
8118 {
8119 nitc___nitc__Parser___push(var_p, var17, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
8120 }
8121 RET_LABEL:;
8122 }
8123 /* method parser$ReduceAction294$action for (self: ReduceAction294, Parser) */
8124 void nitc__parser___nitc__parser__ReduceAction294___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
8125 val* var_p /* var p: Parser */;
8126 val* var_node_list /* var node_list: nullable Object */;
8127 val* var /* : nullable Object */;
8128 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8129 val* var1 /* : nullable Object */;
8130 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8131 val* var2 /* : nullable Object */;
8132 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8133 val* var3 /* : nullable Object */;
8134 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8135 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
8136 short int var4 /* : Bool */;
8137 int cltype;
8138 int idtype;
8139 val* var_tkwimpliesnode3 /* var tkwimpliesnode3: nullable Object */;
8140 short int var5 /* : Bool */;
8141 int cltype6;
8142 int idtype7;
8143 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
8144 short int var8 /* : Bool */;
8145 int cltype9;
8146 int idtype10;
8147 val* var11 /* : AImpliesExpr */;
8148 val* var_pexprnode1 /* var pexprnode1: nullable AImpliesExpr */;
8149 long var12 /* : Int */;
8150 long var13 /* : Int */;
8151 var_p = p0;
8152 var_node_list = ((val*)NULL);
8153 {
8154 var = nitc___nitc__Parser___pop(var_p);
8155 }
8156 var_nodearraylist4 = var;
8157 {
8158 var1 = nitc___nitc__Parser___pop(var_p);
8159 }
8160 var_nodearraylist3 = var1;
8161 {
8162 var2 = nitc___nitc__Parser___pop(var_p);
8163 }
8164 var_nodearraylist2 = var2;
8165 {
8166 var3 = nitc___nitc__Parser___pop(var_p);
8167 }
8168 var_nodearraylist1 = var3;
8169 var_pexprnode2 = var_nodearraylist1;
8170 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
8171 cltype = type_nullable__nitc__AExpr.color;
8172 idtype = type_nullable__nitc__AExpr.id;
8173 if(var_pexprnode2 == NULL) {
8174 var4 = 1;
8175 } else {
8176 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
8177 var4 = 0;
8178 } else {
8179 var4 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
8180 }
8181 }
8182 if (unlikely(!var4)) {
8183 if(catchStack.cursor >= 0){
8184 longjmp(catchStack.envs[catchStack.cursor], 1);
8185 }
8186 PRINT_ERROR("Runtime error: %s", "Assert failed");
8187 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8590);
8188 fatal_exit(1);
8189 }
8190 var_tkwimpliesnode3 = var_nodearraylist2;
8191 /* <var_tkwimpliesnode3:nullable Object> isa nullable TKwimplies */
8192 cltype6 = type_nullable__nitc__TKwimplies.color;
8193 idtype7 = type_nullable__nitc__TKwimplies.id;
8194 if(var_tkwimpliesnode3 == NULL) {
8195 var5 = 1;
8196 } else {
8197 if(cltype6 >= (((long)var_tkwimpliesnode3&3)?type_info[((long)var_tkwimpliesnode3&3)]:var_tkwimpliesnode3->type)->table_size) {
8198 var5 = 0;
8199 } else {
8200 var5 = (((long)var_tkwimpliesnode3&3)?type_info[((long)var_tkwimpliesnode3&3)]:var_tkwimpliesnode3->type)->type_table[cltype6] == idtype7;
8201 }
8202 }
8203 if (unlikely(!var5)) {
8204 if(catchStack.cursor >= 0){
8205 longjmp(catchStack.envs[catchStack.cursor], 1);
8206 }
8207 PRINT_ERROR("Runtime error: %s", "Assert failed");
8208 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8592);
8209 fatal_exit(1);
8210 }
8211 var_pexprnode4 = var_nodearraylist4;
8212 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
8213 cltype9 = type_nullable__nitc__AExpr.color;
8214 idtype10 = type_nullable__nitc__AExpr.id;
8215 if(var_pexprnode4 == NULL) {
8216 var8 = 1;
8217 } else {
8218 if(cltype9 >= (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->table_size) {
8219 var8 = 0;
8220 } else {
8221 var8 = (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->type_table[cltype9] == idtype10;
8222 }
8223 }
8224 if (unlikely(!var8)) {
8225 if(catchStack.cursor >= 0){
8226 longjmp(catchStack.envs[catchStack.cursor], 1);
8227 }
8228 PRINT_ERROR("Runtime error: %s", "Assert failed");
8229 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8594);
8230 fatal_exit(1);
8231 }
8232 var11 = NEW_nitc__AImpliesExpr(&type_nitc__AImpliesExpr);
8233 {
8234 nitc__parser_prod___AImpliesExpr___init_aimpliesexpr(var11, var_pexprnode2, var_tkwimpliesnode3, var_pexprnode4); /* Direct call parser_prod$AImpliesExpr$init_aimpliesexpr on <var11:AImpliesExpr>*/
8235 }
8236 var_pexprnode1 = var11;
8237 var_node_list = var_pexprnode1;
8238 var12 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction294> */
8239 {
8240 var13 = nitc___nitc__Parser___go_to(var_p, var12);
8241 }
8242 {
8243 nitc___nitc__Parser___push(var_p, var13, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
8244 }
8245 RET_LABEL:;
8246 }
8247 /* method parser$ReduceAction296$action for (self: ReduceAction296, Parser) */
8248 void nitc__parser___nitc__parser__ReduceAction296___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
8249 val* var_p /* var p: Parser */;
8250 val* var_node_list /* var node_list: nullable Object */;
8251 val* var /* : nullable Object */;
8252 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8253 val* var1 /* : nullable Object */;
8254 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8255 val* var2 /* : nullable Object */;
8256 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8257 val* var_tkwnotnode2 /* var tkwnotnode2: nullable Object */;
8258 short int var3 /* : Bool */;
8259 int cltype;
8260 int idtype;
8261 val* var_pexprnode3 /* var pexprnode3: nullable Object */;
8262 short int var4 /* : Bool */;
8263 int cltype5;
8264 int idtype6;
8265 val* var7 /* : ANotExpr */;
8266 val* var_pexprnode1 /* var pexprnode1: nullable ANotExpr */;
8267 long var8 /* : Int */;
8268 long var9 /* : Int */;
8269 var_p = p0;
8270 var_node_list = ((val*)NULL);
8271 {
8272 var = nitc___nitc__Parser___pop(var_p);
8273 }
8274 var_nodearraylist3 = var;
8275 {
8276 var1 = nitc___nitc__Parser___pop(var_p);
8277 }
8278 var_nodearraylist2 = var1;
8279 {
8280 var2 = nitc___nitc__Parser___pop(var_p);
8281 }
8282 var_nodearraylist1 = var2;
8283 var_tkwnotnode2 = var_nodearraylist1;
8284 /* <var_tkwnotnode2:nullable Object> isa nullable TKwnot */
8285 cltype = type_nullable__nitc__TKwnot.color;
8286 idtype = type_nullable__nitc__TKwnot.id;
8287 if(var_tkwnotnode2 == NULL) {
8288 var3 = 1;
8289 } else {
8290 if(cltype >= (((long)var_tkwnotnode2&3)?type_info[((long)var_tkwnotnode2&3)]:var_tkwnotnode2->type)->table_size) {
8291 var3 = 0;
8292 } else {
8293 var3 = (((long)var_tkwnotnode2&3)?type_info[((long)var_tkwnotnode2&3)]:var_tkwnotnode2->type)->type_table[cltype] == idtype;
8294 }
8295 }
8296 if (unlikely(!var3)) {
8297 if(catchStack.cursor >= 0){
8298 longjmp(catchStack.envs[catchStack.cursor], 1);
8299 }
8300 PRINT_ERROR("Runtime error: %s", "Assert failed");
8301 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8613);
8302 fatal_exit(1);
8303 }
8304 var_pexprnode3 = var_nodearraylist3;
8305 /* <var_pexprnode3:nullable Object> isa nullable AExpr */
8306 cltype5 = type_nullable__nitc__AExpr.color;
8307 idtype6 = type_nullable__nitc__AExpr.id;
8308 if(var_pexprnode3 == NULL) {
8309 var4 = 1;
8310 } else {
8311 if(cltype5 >= (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->table_size) {
8312 var4 = 0;
8313 } else {
8314 var4 = (((long)var_pexprnode3&3)?type_info[((long)var_pexprnode3&3)]:var_pexprnode3->type)->type_table[cltype5] == idtype6;
8315 }
8316 }
8317 if (unlikely(!var4)) {
8318 if(catchStack.cursor >= 0){
8319 longjmp(catchStack.envs[catchStack.cursor], 1);
8320 }
8321 PRINT_ERROR("Runtime error: %s", "Assert failed");
8322 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8615);
8323 fatal_exit(1);
8324 }
8325 var7 = NEW_nitc__ANotExpr(&type_nitc__ANotExpr);
8326 {
8327 nitc__parser_prod___ANotExpr___init_anotexpr(var7, var_tkwnotnode2, var_pexprnode3); /* Direct call parser_prod$ANotExpr$init_anotexpr on <var7:ANotExpr>*/
8328 }
8329 var_pexprnode1 = var7;
8330 var_node_list = var_pexprnode1;
8331 var8 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction296> */
8332 {
8333 var9 = nitc___nitc__Parser___go_to(var_p, var8);
8334 }
8335 {
8336 nitc___nitc__Parser___push(var_p, var9, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
8337 }
8338 RET_LABEL:;
8339 }
8340 /* method parser$ReduceAction298$action for (self: ReduceAction298, Parser) */
8341 void nitc__parser___nitc__parser__ReduceAction298___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
8342 val* var_p /* var p: Parser */;
8343 val* var_node_list /* var node_list: nullable Object */;
8344 val* var /* : nullable Object */;
8345 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8346 val* var1 /* : nullable Object */;
8347 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8348 val* var2 /* : nullable Object */;
8349 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8350 val* var3 /* : nullable Object */;
8351 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8352 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
8353 short int var4 /* : Bool */;
8354 int cltype;
8355 int idtype;
8356 val* var_teqnode3 /* var teqnode3: nullable Object */;
8357 short int var5 /* : Bool */;
8358 int cltype6;
8359 int idtype7;
8360 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
8361 short int var8 /* : Bool */;
8362 int cltype9;
8363 int idtype10;
8364 val* var11 /* : AEqExpr */;
8365 val* var_pexprnode1 /* var pexprnode1: nullable AEqExpr */;
8366 long var12 /* : Int */;
8367 long var13 /* : Int */;
8368 var_p = p0;
8369 var_node_list = ((val*)NULL);
8370 {
8371 var = nitc___nitc__Parser___pop(var_p);
8372 }
8373 var_nodearraylist4 = var;
8374 {
8375 var1 = nitc___nitc__Parser___pop(var_p);
8376 }
8377 var_nodearraylist3 = var1;
8378 {
8379 var2 = nitc___nitc__Parser___pop(var_p);
8380 }
8381 var_nodearraylist2 = var2;
8382 {
8383 var3 = nitc___nitc__Parser___pop(var_p);
8384 }
8385 var_nodearraylist1 = var3;
8386 var_pexprnode2 = var_nodearraylist1;
8387 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
8388 cltype = type_nullable__nitc__AExpr.color;
8389 idtype = type_nullable__nitc__AExpr.id;
8390 if(var_pexprnode2 == NULL) {
8391 var4 = 1;
8392 } else {
8393 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
8394 var4 = 0;
8395 } else {
8396 var4 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
8397 }
8398 }
8399 if (unlikely(!var4)) {
8400 if(catchStack.cursor >= 0){
8401 longjmp(catchStack.envs[catchStack.cursor], 1);
8402 }
8403 PRINT_ERROR("Runtime error: %s", "Assert failed");
8404 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8634);
8405 fatal_exit(1);
8406 }
8407 var_teqnode3 = var_nodearraylist2;
8408 /* <var_teqnode3:nullable Object> isa nullable TEq */
8409 cltype6 = type_nullable__nitc__TEq.color;
8410 idtype7 = type_nullable__nitc__TEq.id;
8411 if(var_teqnode3 == NULL) {
8412 var5 = 1;
8413 } else {
8414 if(cltype6 >= (((long)var_teqnode3&3)?type_info[((long)var_teqnode3&3)]:var_teqnode3->type)->table_size) {
8415 var5 = 0;
8416 } else {
8417 var5 = (((long)var_teqnode3&3)?type_info[((long)var_teqnode3&3)]:var_teqnode3->type)->type_table[cltype6] == idtype7;
8418 }
8419 }
8420 if (unlikely(!var5)) {
8421 if(catchStack.cursor >= 0){
8422 longjmp(catchStack.envs[catchStack.cursor], 1);
8423 }
8424 PRINT_ERROR("Runtime error: %s", "Assert failed");
8425 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8636);
8426 fatal_exit(1);
8427 }
8428 var_pexprnode4 = var_nodearraylist4;
8429 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
8430 cltype9 = type_nullable__nitc__AExpr.color;
8431 idtype10 = type_nullable__nitc__AExpr.id;
8432 if(var_pexprnode4 == NULL) {
8433 var8 = 1;
8434 } else {
8435 if(cltype9 >= (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->table_size) {
8436 var8 = 0;
8437 } else {
8438 var8 = (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->type_table[cltype9] == idtype10;
8439 }
8440 }
8441 if (unlikely(!var8)) {
8442 if(catchStack.cursor >= 0){
8443 longjmp(catchStack.envs[catchStack.cursor], 1);
8444 }
8445 PRINT_ERROR("Runtime error: %s", "Assert failed");
8446 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8638);
8447 fatal_exit(1);
8448 }
8449 var11 = NEW_nitc__AEqExpr(&type_nitc__AEqExpr);
8450 {
8451 nitc__parser_prod___AEqExpr___init_aeqexpr(var11, var_pexprnode2, var_teqnode3, var_pexprnode4); /* Direct call parser_prod$AEqExpr$init_aeqexpr on <var11:AEqExpr>*/
8452 }
8453 var_pexprnode1 = var11;
8454 var_node_list = var_pexprnode1;
8455 var12 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction298> */
8456 {
8457 var13 = nitc___nitc__Parser___go_to(var_p, var12);
8458 }
8459 {
8460 nitc___nitc__Parser___push(var_p, var13, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
8461 }
8462 RET_LABEL:;
8463 }
8464 /* method parser$ReduceAction299$action for (self: ReduceAction299, Parser) */
8465 void nitc__parser___nitc__parser__ReduceAction299___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
8466 val* var_p /* var p: Parser */;
8467 val* var_node_list /* var node_list: nullable Object */;
8468 val* var /* : nullable Object */;
8469 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8470 val* var1 /* : nullable Object */;
8471 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8472 val* var2 /* : nullable Object */;
8473 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8474 val* var3 /* : nullable Object */;
8475 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8476 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
8477 short int var4 /* : Bool */;
8478 int cltype;
8479 int idtype;
8480 val* var_tnenode3 /* var tnenode3: nullable Object */;
8481 short int var5 /* : Bool */;
8482 int cltype6;
8483 int idtype7;
8484 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
8485 short int var8 /* : Bool */;
8486 int cltype9;
8487 int idtype10;
8488 val* var11 /* : ANeExpr */;
8489 val* var_pexprnode1 /* var pexprnode1: nullable ANeExpr */;
8490 long var12 /* : Int */;
8491 long var13 /* : Int */;
8492 var_p = p0;
8493 var_node_list = ((val*)NULL);
8494 {
8495 var = nitc___nitc__Parser___pop(var_p);
8496 }
8497 var_nodearraylist4 = var;
8498 {
8499 var1 = nitc___nitc__Parser___pop(var_p);
8500 }
8501 var_nodearraylist3 = var1;
8502 {
8503 var2 = nitc___nitc__Parser___pop(var_p);
8504 }
8505 var_nodearraylist2 = var2;
8506 {
8507 var3 = nitc___nitc__Parser___pop(var_p);
8508 }
8509 var_nodearraylist1 = var3;
8510 var_pexprnode2 = var_nodearraylist1;
8511 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
8512 cltype = type_nullable__nitc__AExpr.color;
8513 idtype = type_nullable__nitc__AExpr.id;
8514 if(var_pexprnode2 == NULL) {
8515 var4 = 1;
8516 } else {
8517 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
8518 var4 = 0;
8519 } else {
8520 var4 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
8521 }
8522 }
8523 if (unlikely(!var4)) {
8524 if(catchStack.cursor >= 0){
8525 longjmp(catchStack.envs[catchStack.cursor], 1);
8526 }
8527 PRINT_ERROR("Runtime error: %s", "Assert failed");
8528 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8658);
8529 fatal_exit(1);
8530 }
8531 var_tnenode3 = var_nodearraylist2;
8532 /* <var_tnenode3:nullable Object> isa nullable TNe */
8533 cltype6 = type_nullable__nitc__TNe.color;
8534 idtype7 = type_nullable__nitc__TNe.id;
8535 if(var_tnenode3 == NULL) {
8536 var5 = 1;
8537 } else {
8538 if(cltype6 >= (((long)var_tnenode3&3)?type_info[((long)var_tnenode3&3)]:var_tnenode3->type)->table_size) {
8539 var5 = 0;
8540 } else {
8541 var5 = (((long)var_tnenode3&3)?type_info[((long)var_tnenode3&3)]:var_tnenode3->type)->type_table[cltype6] == idtype7;
8542 }
8543 }
8544 if (unlikely(!var5)) {
8545 if(catchStack.cursor >= 0){
8546 longjmp(catchStack.envs[catchStack.cursor], 1);
8547 }
8548 PRINT_ERROR("Runtime error: %s", "Assert failed");
8549 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8660);
8550 fatal_exit(1);
8551 }
8552 var_pexprnode4 = var_nodearraylist4;
8553 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
8554 cltype9 = type_nullable__nitc__AExpr.color;
8555 idtype10 = type_nullable__nitc__AExpr.id;
8556 if(var_pexprnode4 == NULL) {
8557 var8 = 1;
8558 } else {
8559 if(cltype9 >= (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->table_size) {
8560 var8 = 0;
8561 } else {
8562 var8 = (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->type_table[cltype9] == idtype10;
8563 }
8564 }
8565 if (unlikely(!var8)) {
8566 if(catchStack.cursor >= 0){
8567 longjmp(catchStack.envs[catchStack.cursor], 1);
8568 }
8569 PRINT_ERROR("Runtime error: %s", "Assert failed");
8570 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8662);
8571 fatal_exit(1);
8572 }
8573 var11 = NEW_nitc__ANeExpr(&type_nitc__ANeExpr);
8574 {
8575 nitc__parser_prod___ANeExpr___init_aneexpr(var11, var_pexprnode2, var_tnenode3, var_pexprnode4); /* Direct call parser_prod$ANeExpr$init_aneexpr on <var11:ANeExpr>*/
8576 }
8577 var_pexprnode1 = var11;
8578 var_node_list = var_pexprnode1;
8579 var12 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction299> */
8580 {
8581 var13 = nitc___nitc__Parser___go_to(var_p, var12);
8582 }
8583 {
8584 nitc___nitc__Parser___push(var_p, var13, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
8585 }
8586 RET_LABEL:;
8587 }
8588 /* method parser$ReduceAction300$action for (self: ReduceAction300, Parser) */
8589 void nitc__parser___nitc__parser__ReduceAction300___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
8590 val* var_p /* var p: Parser */;
8591 val* var_node_list /* var node_list: nullable Object */;
8592 val* var /* : nullable Object */;
8593 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8594 val* var1 /* : nullable Object */;
8595 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8596 val* var2 /* : nullable Object */;
8597 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8598 val* var3 /* : nullable Object */;
8599 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8600 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
8601 short int var4 /* : Bool */;
8602 int cltype;
8603 int idtype;
8604 val* var_tltnode3 /* var tltnode3: nullable Object */;
8605 short int var5 /* : Bool */;
8606 int cltype6;
8607 int idtype7;
8608 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
8609 short int var8 /* : Bool */;
8610 int cltype9;
8611 int idtype10;
8612 val* var11 /* : ALtExpr */;
8613 val* var_pexprnode1 /* var pexprnode1: nullable ALtExpr */;
8614 long var12 /* : Int */;
8615 long var13 /* : Int */;
8616 var_p = p0;
8617 var_node_list = ((val*)NULL);
8618 {
8619 var = nitc___nitc__Parser___pop(var_p);
8620 }
8621 var_nodearraylist4 = var;
8622 {
8623 var1 = nitc___nitc__Parser___pop(var_p);
8624 }
8625 var_nodearraylist3 = var1;
8626 {
8627 var2 = nitc___nitc__Parser___pop(var_p);
8628 }
8629 var_nodearraylist2 = var2;
8630 {
8631 var3 = nitc___nitc__Parser___pop(var_p);
8632 }
8633 var_nodearraylist1 = var3;
8634 var_pexprnode2 = var_nodearraylist1;
8635 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
8636 cltype = type_nullable__nitc__AExpr.color;
8637 idtype = type_nullable__nitc__AExpr.id;
8638 if(var_pexprnode2 == NULL) {
8639 var4 = 1;
8640 } else {
8641 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
8642 var4 = 0;
8643 } else {
8644 var4 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
8645 }
8646 }
8647 if (unlikely(!var4)) {
8648 if(catchStack.cursor >= 0){
8649 longjmp(catchStack.envs[catchStack.cursor], 1);
8650 }
8651 PRINT_ERROR("Runtime error: %s", "Assert failed");
8652 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8682);
8653 fatal_exit(1);
8654 }
8655 var_tltnode3 = var_nodearraylist2;
8656 /* <var_tltnode3:nullable Object> isa nullable TLt */
8657 cltype6 = type_nullable__nitc__TLt.color;
8658 idtype7 = type_nullable__nitc__TLt.id;
8659 if(var_tltnode3 == NULL) {
8660 var5 = 1;
8661 } else {
8662 if(cltype6 >= (((long)var_tltnode3&3)?type_info[((long)var_tltnode3&3)]:var_tltnode3->type)->table_size) {
8663 var5 = 0;
8664 } else {
8665 var5 = (((long)var_tltnode3&3)?type_info[((long)var_tltnode3&3)]:var_tltnode3->type)->type_table[cltype6] == idtype7;
8666 }
8667 }
8668 if (unlikely(!var5)) {
8669 if(catchStack.cursor >= 0){
8670 longjmp(catchStack.envs[catchStack.cursor], 1);
8671 }
8672 PRINT_ERROR("Runtime error: %s", "Assert failed");
8673 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8684);
8674 fatal_exit(1);
8675 }
8676 var_pexprnode4 = var_nodearraylist4;
8677 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
8678 cltype9 = type_nullable__nitc__AExpr.color;
8679 idtype10 = type_nullable__nitc__AExpr.id;
8680 if(var_pexprnode4 == NULL) {
8681 var8 = 1;
8682 } else {
8683 if(cltype9 >= (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->table_size) {
8684 var8 = 0;
8685 } else {
8686 var8 = (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->type_table[cltype9] == idtype10;
8687 }
8688 }
8689 if (unlikely(!var8)) {
8690 if(catchStack.cursor >= 0){
8691 longjmp(catchStack.envs[catchStack.cursor], 1);
8692 }
8693 PRINT_ERROR("Runtime error: %s", "Assert failed");
8694 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8686);
8695 fatal_exit(1);
8696 }
8697 var11 = NEW_nitc__ALtExpr(&type_nitc__ALtExpr);
8698 {
8699 nitc__parser_prod___ALtExpr___init_altexpr(var11, var_pexprnode2, var_tltnode3, var_pexprnode4); /* Direct call parser_prod$ALtExpr$init_altexpr on <var11:ALtExpr>*/
8700 }
8701 var_pexprnode1 = var11;
8702 var_node_list = var_pexprnode1;
8703 var12 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction300> */
8704 {
8705 var13 = nitc___nitc__Parser___go_to(var_p, var12);
8706 }
8707 {
8708 nitc___nitc__Parser___push(var_p, var13, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
8709 }
8710 RET_LABEL:;
8711 }
8712 /* method parser$ReduceAction301$action for (self: ReduceAction301, Parser) */
8713 void nitc__parser___nitc__parser__ReduceAction301___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
8714 val* var_p /* var p: Parser */;
8715 val* var_node_list /* var node_list: nullable Object */;
8716 val* var /* : nullable Object */;
8717 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8718 val* var1 /* : nullable Object */;
8719 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8720 val* var2 /* : nullable Object */;
8721 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8722 val* var3 /* : nullable Object */;
8723 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8724 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
8725 short int var4 /* : Bool */;
8726 int cltype;
8727 int idtype;
8728 val* var_tlenode3 /* var tlenode3: nullable Object */;
8729 short int var5 /* : Bool */;
8730 int cltype6;
8731 int idtype7;
8732 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
8733 short int var8 /* : Bool */;
8734 int cltype9;
8735 int idtype10;
8736 val* var11 /* : ALeExpr */;
8737 val* var_pexprnode1 /* var pexprnode1: nullable ALeExpr */;
8738 long var12 /* : Int */;
8739 long var13 /* : Int */;
8740 var_p = p0;
8741 var_node_list = ((val*)NULL);
8742 {
8743 var = nitc___nitc__Parser___pop(var_p);
8744 }
8745 var_nodearraylist4 = var;
8746 {
8747 var1 = nitc___nitc__Parser___pop(var_p);
8748 }
8749 var_nodearraylist3 = var1;
8750 {
8751 var2 = nitc___nitc__Parser___pop(var_p);
8752 }
8753 var_nodearraylist2 = var2;
8754 {
8755 var3 = nitc___nitc__Parser___pop(var_p);
8756 }
8757 var_nodearraylist1 = var3;
8758 var_pexprnode2 = var_nodearraylist1;
8759 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
8760 cltype = type_nullable__nitc__AExpr.color;
8761 idtype = type_nullable__nitc__AExpr.id;
8762 if(var_pexprnode2 == NULL) {
8763 var4 = 1;
8764 } else {
8765 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
8766 var4 = 0;
8767 } else {
8768 var4 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
8769 }
8770 }
8771 if (unlikely(!var4)) {
8772 if(catchStack.cursor >= 0){
8773 longjmp(catchStack.envs[catchStack.cursor], 1);
8774 }
8775 PRINT_ERROR("Runtime error: %s", "Assert failed");
8776 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8706);
8777 fatal_exit(1);
8778 }
8779 var_tlenode3 = var_nodearraylist2;
8780 /* <var_tlenode3:nullable Object> isa nullable TLe */
8781 cltype6 = type_nullable__nitc__TLe.color;
8782 idtype7 = type_nullable__nitc__TLe.id;
8783 if(var_tlenode3 == NULL) {
8784 var5 = 1;
8785 } else {
8786 if(cltype6 >= (((long)var_tlenode3&3)?type_info[((long)var_tlenode3&3)]:var_tlenode3->type)->table_size) {
8787 var5 = 0;
8788 } else {
8789 var5 = (((long)var_tlenode3&3)?type_info[((long)var_tlenode3&3)]:var_tlenode3->type)->type_table[cltype6] == idtype7;
8790 }
8791 }
8792 if (unlikely(!var5)) {
8793 if(catchStack.cursor >= 0){
8794 longjmp(catchStack.envs[catchStack.cursor], 1);
8795 }
8796 PRINT_ERROR("Runtime error: %s", "Assert failed");
8797 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8708);
8798 fatal_exit(1);
8799 }
8800 var_pexprnode4 = var_nodearraylist4;
8801 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
8802 cltype9 = type_nullable__nitc__AExpr.color;
8803 idtype10 = type_nullable__nitc__AExpr.id;
8804 if(var_pexprnode4 == NULL) {
8805 var8 = 1;
8806 } else {
8807 if(cltype9 >= (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->table_size) {
8808 var8 = 0;
8809 } else {
8810 var8 = (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->type_table[cltype9] == idtype10;
8811 }
8812 }
8813 if (unlikely(!var8)) {
8814 if(catchStack.cursor >= 0){
8815 longjmp(catchStack.envs[catchStack.cursor], 1);
8816 }
8817 PRINT_ERROR("Runtime error: %s", "Assert failed");
8818 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8710);
8819 fatal_exit(1);
8820 }
8821 var11 = NEW_nitc__ALeExpr(&type_nitc__ALeExpr);
8822 {
8823 nitc__parser_prod___ALeExpr___init_aleexpr(var11, var_pexprnode2, var_tlenode3, var_pexprnode4); /* Direct call parser_prod$ALeExpr$init_aleexpr on <var11:ALeExpr>*/
8824 }
8825 var_pexprnode1 = var11;
8826 var_node_list = var_pexprnode1;
8827 var12 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction301> */
8828 {
8829 var13 = nitc___nitc__Parser___go_to(var_p, var12);
8830 }
8831 {
8832 nitc___nitc__Parser___push(var_p, var13, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
8833 }
8834 RET_LABEL:;
8835 }
8836 /* method parser$ReduceAction302$action for (self: ReduceAction302, Parser) */
8837 void nitc__parser___nitc__parser__ReduceAction302___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
8838 val* var_p /* var p: Parser */;
8839 val* var_node_list /* var node_list: nullable Object */;
8840 val* var /* : nullable Object */;
8841 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8842 val* var1 /* : nullable Object */;
8843 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8844 val* var2 /* : nullable Object */;
8845 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8846 val* var3 /* : nullable Object */;
8847 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8848 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
8849 short int var4 /* : Bool */;
8850 int cltype;
8851 int idtype;
8852 val* var_tgtnode3 /* var tgtnode3: nullable Object */;
8853 short int var5 /* : Bool */;
8854 int cltype6;
8855 int idtype7;
8856 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
8857 short int var8 /* : Bool */;
8858 int cltype9;
8859 int idtype10;
8860 val* var11 /* : AGtExpr */;
8861 val* var_pexprnode1 /* var pexprnode1: nullable AGtExpr */;
8862 long var12 /* : Int */;
8863 long var13 /* : Int */;
8864 var_p = p0;
8865 var_node_list = ((val*)NULL);
8866 {
8867 var = nitc___nitc__Parser___pop(var_p);
8868 }
8869 var_nodearraylist4 = var;
8870 {
8871 var1 = nitc___nitc__Parser___pop(var_p);
8872 }
8873 var_nodearraylist3 = var1;
8874 {
8875 var2 = nitc___nitc__Parser___pop(var_p);
8876 }
8877 var_nodearraylist2 = var2;
8878 {
8879 var3 = nitc___nitc__Parser___pop(var_p);
8880 }
8881 var_nodearraylist1 = var3;
8882 var_pexprnode2 = var_nodearraylist1;
8883 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
8884 cltype = type_nullable__nitc__AExpr.color;
8885 idtype = type_nullable__nitc__AExpr.id;
8886 if(var_pexprnode2 == NULL) {
8887 var4 = 1;
8888 } else {
8889 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
8890 var4 = 0;
8891 } else {
8892 var4 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
8893 }
8894 }
8895 if (unlikely(!var4)) {
8896 if(catchStack.cursor >= 0){
8897 longjmp(catchStack.envs[catchStack.cursor], 1);
8898 }
8899 PRINT_ERROR("Runtime error: %s", "Assert failed");
8900 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8730);
8901 fatal_exit(1);
8902 }
8903 var_tgtnode3 = var_nodearraylist2;
8904 /* <var_tgtnode3:nullable Object> isa nullable TGt */
8905 cltype6 = type_nullable__nitc__TGt.color;
8906 idtype7 = type_nullable__nitc__TGt.id;
8907 if(var_tgtnode3 == NULL) {
8908 var5 = 1;
8909 } else {
8910 if(cltype6 >= (((long)var_tgtnode3&3)?type_info[((long)var_tgtnode3&3)]:var_tgtnode3->type)->table_size) {
8911 var5 = 0;
8912 } else {
8913 var5 = (((long)var_tgtnode3&3)?type_info[((long)var_tgtnode3&3)]:var_tgtnode3->type)->type_table[cltype6] == idtype7;
8914 }
8915 }
8916 if (unlikely(!var5)) {
8917 if(catchStack.cursor >= 0){
8918 longjmp(catchStack.envs[catchStack.cursor], 1);
8919 }
8920 PRINT_ERROR("Runtime error: %s", "Assert failed");
8921 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8732);
8922 fatal_exit(1);
8923 }
8924 var_pexprnode4 = var_nodearraylist4;
8925 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
8926 cltype9 = type_nullable__nitc__AExpr.color;
8927 idtype10 = type_nullable__nitc__AExpr.id;
8928 if(var_pexprnode4 == NULL) {
8929 var8 = 1;
8930 } else {
8931 if(cltype9 >= (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->table_size) {
8932 var8 = 0;
8933 } else {
8934 var8 = (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->type_table[cltype9] == idtype10;
8935 }
8936 }
8937 if (unlikely(!var8)) {
8938 if(catchStack.cursor >= 0){
8939 longjmp(catchStack.envs[catchStack.cursor], 1);
8940 }
8941 PRINT_ERROR("Runtime error: %s", "Assert failed");
8942 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8734);
8943 fatal_exit(1);
8944 }
8945 var11 = NEW_nitc__AGtExpr(&type_nitc__AGtExpr);
8946 {
8947 nitc__parser_prod___AGtExpr___init_agtexpr(var11, var_pexprnode2, var_tgtnode3, var_pexprnode4); /* Direct call parser_prod$AGtExpr$init_agtexpr on <var11:AGtExpr>*/
8948 }
8949 var_pexprnode1 = var11;
8950 var_node_list = var_pexprnode1;
8951 var12 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction302> */
8952 {
8953 var13 = nitc___nitc__Parser___go_to(var_p, var12);
8954 }
8955 {
8956 nitc___nitc__Parser___push(var_p, var13, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
8957 }
8958 RET_LABEL:;
8959 }
8960 /* method parser$ReduceAction303$action for (self: ReduceAction303, Parser) */
8961 void nitc__parser___nitc__parser__ReduceAction303___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
8962 val* var_p /* var p: Parser */;
8963 val* var_node_list /* var node_list: nullable Object */;
8964 val* var /* : nullable Object */;
8965 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
8966 val* var1 /* : nullable Object */;
8967 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
8968 val* var2 /* : nullable Object */;
8969 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
8970 val* var3 /* : nullable Object */;
8971 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
8972 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
8973 short int var4 /* : Bool */;
8974 int cltype;
8975 int idtype;
8976 val* var_tgenode3 /* var tgenode3: nullable Object */;
8977 short int var5 /* : Bool */;
8978 int cltype6;
8979 int idtype7;
8980 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
8981 short int var8 /* : Bool */;
8982 int cltype9;
8983 int idtype10;
8984 val* var11 /* : AGeExpr */;
8985 val* var_pexprnode1 /* var pexprnode1: nullable AGeExpr */;
8986 long var12 /* : Int */;
8987 long var13 /* : Int */;
8988 var_p = p0;
8989 var_node_list = ((val*)NULL);
8990 {
8991 var = nitc___nitc__Parser___pop(var_p);
8992 }
8993 var_nodearraylist4 = var;
8994 {
8995 var1 = nitc___nitc__Parser___pop(var_p);
8996 }
8997 var_nodearraylist3 = var1;
8998 {
8999 var2 = nitc___nitc__Parser___pop(var_p);
9000 }
9001 var_nodearraylist2 = var2;
9002 {
9003 var3 = nitc___nitc__Parser___pop(var_p);
9004 }
9005 var_nodearraylist1 = var3;
9006 var_pexprnode2 = var_nodearraylist1;
9007 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
9008 cltype = type_nullable__nitc__AExpr.color;
9009 idtype = type_nullable__nitc__AExpr.id;
9010 if(var_pexprnode2 == NULL) {
9011 var4 = 1;
9012 } else {
9013 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
9014 var4 = 0;
9015 } else {
9016 var4 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
9017 }
9018 }
9019 if (unlikely(!var4)) {
9020 if(catchStack.cursor >= 0){
9021 longjmp(catchStack.envs[catchStack.cursor], 1);
9022 }
9023 PRINT_ERROR("Runtime error: %s", "Assert failed");
9024 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8754);
9025 fatal_exit(1);
9026 }
9027 var_tgenode3 = var_nodearraylist2;
9028 /* <var_tgenode3:nullable Object> isa nullable TGe */
9029 cltype6 = type_nullable__nitc__TGe.color;
9030 idtype7 = type_nullable__nitc__TGe.id;
9031 if(var_tgenode3 == NULL) {
9032 var5 = 1;
9033 } else {
9034 if(cltype6 >= (((long)var_tgenode3&3)?type_info[((long)var_tgenode3&3)]:var_tgenode3->type)->table_size) {
9035 var5 = 0;
9036 } else {
9037 var5 = (((long)var_tgenode3&3)?type_info[((long)var_tgenode3&3)]:var_tgenode3->type)->type_table[cltype6] == idtype7;
9038 }
9039 }
9040 if (unlikely(!var5)) {
9041 if(catchStack.cursor >= 0){
9042 longjmp(catchStack.envs[catchStack.cursor], 1);
9043 }
9044 PRINT_ERROR("Runtime error: %s", "Assert failed");
9045 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8756);
9046 fatal_exit(1);
9047 }
9048 var_pexprnode4 = var_nodearraylist4;
9049 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
9050 cltype9 = type_nullable__nitc__AExpr.color;
9051 idtype10 = type_nullable__nitc__AExpr.id;
9052 if(var_pexprnode4 == NULL) {
9053 var8 = 1;
9054 } else {
9055 if(cltype9 >= (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->table_size) {
9056 var8 = 0;
9057 } else {
9058 var8 = (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->type_table[cltype9] == idtype10;
9059 }
9060 }
9061 if (unlikely(!var8)) {
9062 if(catchStack.cursor >= 0){
9063 longjmp(catchStack.envs[catchStack.cursor], 1);
9064 }
9065 PRINT_ERROR("Runtime error: %s", "Assert failed");
9066 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8758);
9067 fatal_exit(1);
9068 }
9069 var11 = NEW_nitc__AGeExpr(&type_nitc__AGeExpr);
9070 {
9071 nitc__parser_prod___AGeExpr___init_ageexpr(var11, var_pexprnode2, var_tgenode3, var_pexprnode4); /* Direct call parser_prod$AGeExpr$init_ageexpr on <var11:AGeExpr>*/
9072 }
9073 var_pexprnode1 = var11;
9074 var_node_list = var_pexprnode1;
9075 var12 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction303> */
9076 {
9077 var13 = nitc___nitc__Parser___go_to(var_p, var12);
9078 }
9079 {
9080 nitc___nitc__Parser___push(var_p, var13, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
9081 }
9082 RET_LABEL:;
9083 }
9084 /* method parser$ReduceAction304$action for (self: ReduceAction304, Parser) */
9085 void nitc__parser___nitc__parser__ReduceAction304___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
9086 val* var_p /* var p: Parser */;
9087 val* var_node_list /* var node_list: nullable Object */;
9088 val* var /* : nullable Object */;
9089 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9090 val* var1 /* : nullable Object */;
9091 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9092 val* var2 /* : nullable Object */;
9093 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9094 val* var3 /* : nullable Object */;
9095 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9096 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
9097 short int var4 /* : Bool */;
9098 int cltype;
9099 int idtype;
9100 val* var_tstarshipnode3 /* var tstarshipnode3: nullable Object */;
9101 short int var5 /* : Bool */;
9102 int cltype6;
9103 int idtype7;
9104 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
9105 short int var8 /* : Bool */;
9106 int cltype9;
9107 int idtype10;
9108 val* var11 /* : AStarshipExpr */;
9109 val* var_pexprnode1 /* var pexprnode1: nullable AStarshipExpr */;
9110 long var12 /* : Int */;
9111 long var13 /* : Int */;
9112 var_p = p0;
9113 var_node_list = ((val*)NULL);
9114 {
9115 var = nitc___nitc__Parser___pop(var_p);
9116 }
9117 var_nodearraylist4 = var;
9118 {
9119 var1 = nitc___nitc__Parser___pop(var_p);
9120 }
9121 var_nodearraylist3 = var1;
9122 {
9123 var2 = nitc___nitc__Parser___pop(var_p);
9124 }
9125 var_nodearraylist2 = var2;
9126 {
9127 var3 = nitc___nitc__Parser___pop(var_p);
9128 }
9129 var_nodearraylist1 = var3;
9130 var_pexprnode2 = var_nodearraylist1;
9131 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
9132 cltype = type_nullable__nitc__AExpr.color;
9133 idtype = type_nullable__nitc__AExpr.id;
9134 if(var_pexprnode2 == NULL) {
9135 var4 = 1;
9136 } else {
9137 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
9138 var4 = 0;
9139 } else {
9140 var4 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
9141 }
9142 }
9143 if (unlikely(!var4)) {
9144 if(catchStack.cursor >= 0){
9145 longjmp(catchStack.envs[catchStack.cursor], 1);
9146 }
9147 PRINT_ERROR("Runtime error: %s", "Assert failed");
9148 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8778);
9149 fatal_exit(1);
9150 }
9151 var_tstarshipnode3 = var_nodearraylist2;
9152 /* <var_tstarshipnode3:nullable Object> isa nullable TStarship */
9153 cltype6 = type_nullable__nitc__TStarship.color;
9154 idtype7 = type_nullable__nitc__TStarship.id;
9155 if(var_tstarshipnode3 == NULL) {
9156 var5 = 1;
9157 } else {
9158 if(cltype6 >= (((long)var_tstarshipnode3&3)?type_info[((long)var_tstarshipnode3&3)]:var_tstarshipnode3->type)->table_size) {
9159 var5 = 0;
9160 } else {
9161 var5 = (((long)var_tstarshipnode3&3)?type_info[((long)var_tstarshipnode3&3)]:var_tstarshipnode3->type)->type_table[cltype6] == idtype7;
9162 }
9163 }
9164 if (unlikely(!var5)) {
9165 if(catchStack.cursor >= 0){
9166 longjmp(catchStack.envs[catchStack.cursor], 1);
9167 }
9168 PRINT_ERROR("Runtime error: %s", "Assert failed");
9169 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8780);
9170 fatal_exit(1);
9171 }
9172 var_pexprnode4 = var_nodearraylist4;
9173 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
9174 cltype9 = type_nullable__nitc__AExpr.color;
9175 idtype10 = type_nullable__nitc__AExpr.id;
9176 if(var_pexprnode4 == NULL) {
9177 var8 = 1;
9178 } else {
9179 if(cltype9 >= (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->table_size) {
9180 var8 = 0;
9181 } else {
9182 var8 = (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->type_table[cltype9] == idtype10;
9183 }
9184 }
9185 if (unlikely(!var8)) {
9186 if(catchStack.cursor >= 0){
9187 longjmp(catchStack.envs[catchStack.cursor], 1);
9188 }
9189 PRINT_ERROR("Runtime error: %s", "Assert failed");
9190 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8782);
9191 fatal_exit(1);
9192 }
9193 var11 = NEW_nitc__AStarshipExpr(&type_nitc__AStarshipExpr);
9194 {
9195 nitc__parser_prod___AStarshipExpr___init_astarshipexpr(var11, var_pexprnode2, var_tstarshipnode3, var_pexprnode4); /* Direct call parser_prod$AStarshipExpr$init_astarshipexpr on <var11:AStarshipExpr>*/
9196 }
9197 var_pexprnode1 = var11;
9198 var_node_list = var_pexprnode1;
9199 var12 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction304> */
9200 {
9201 var13 = nitc___nitc__Parser___go_to(var_p, var12);
9202 }
9203 {
9204 nitc___nitc__Parser___push(var_p, var13, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
9205 }
9206 RET_LABEL:;
9207 }
9208 /* method parser$ReduceAction305$action for (self: ReduceAction305, Parser) */
9209 void nitc__parser___nitc__parser__ReduceAction305___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
9210 val* var_p /* var p: Parser */;
9211 val* var_node_list /* var node_list: nullable Object */;
9212 val* var /* : nullable Object */;
9213 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9214 val* var1 /* : nullable Object */;
9215 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9216 val* var2 /* : nullable Object */;
9217 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9218 val* var3 /* : nullable Object */;
9219 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9220 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
9221 short int var4 /* : Bool */;
9222 int cltype;
9223 int idtype;
9224 val* var_tkwisanode3 /* var tkwisanode3: nullable Object */;
9225 short int var5 /* : Bool */;
9226 int cltype6;
9227 int idtype7;
9228 val* var_ptypenode4 /* var ptypenode4: nullable Object */;
9229 short int var8 /* : Bool */;
9230 int cltype9;
9231 int idtype10;
9232 val* var11 /* : AIsaExpr */;
9233 val* var_pexprnode1 /* var pexprnode1: nullable AIsaExpr */;
9234 long var12 /* : Int */;
9235 long var13 /* : Int */;
9236 var_p = p0;
9237 var_node_list = ((val*)NULL);
9238 {
9239 var = nitc___nitc__Parser___pop(var_p);
9240 }
9241 var_nodearraylist4 = var;
9242 {
9243 var1 = nitc___nitc__Parser___pop(var_p);
9244 }
9245 var_nodearraylist3 = var1;
9246 {
9247 var2 = nitc___nitc__Parser___pop(var_p);
9248 }
9249 var_nodearraylist2 = var2;
9250 {
9251 var3 = nitc___nitc__Parser___pop(var_p);
9252 }
9253 var_nodearraylist1 = var3;
9254 var_pexprnode2 = var_nodearraylist1;
9255 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
9256 cltype = type_nullable__nitc__AExpr.color;
9257 idtype = type_nullable__nitc__AExpr.id;
9258 if(var_pexprnode2 == NULL) {
9259 var4 = 1;
9260 } else {
9261 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
9262 var4 = 0;
9263 } else {
9264 var4 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
9265 }
9266 }
9267 if (unlikely(!var4)) {
9268 if(catchStack.cursor >= 0){
9269 longjmp(catchStack.envs[catchStack.cursor], 1);
9270 }
9271 PRINT_ERROR("Runtime error: %s", "Assert failed");
9272 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8802);
9273 fatal_exit(1);
9274 }
9275 var_tkwisanode3 = var_nodearraylist2;
9276 /* <var_tkwisanode3:nullable Object> isa nullable TKwisa */
9277 cltype6 = type_nullable__nitc__TKwisa.color;
9278 idtype7 = type_nullable__nitc__TKwisa.id;
9279 if(var_tkwisanode3 == NULL) {
9280 var5 = 1;
9281 } else {
9282 if(cltype6 >= (((long)var_tkwisanode3&3)?type_info[((long)var_tkwisanode3&3)]:var_tkwisanode3->type)->table_size) {
9283 var5 = 0;
9284 } else {
9285 var5 = (((long)var_tkwisanode3&3)?type_info[((long)var_tkwisanode3&3)]:var_tkwisanode3->type)->type_table[cltype6] == idtype7;
9286 }
9287 }
9288 if (unlikely(!var5)) {
9289 if(catchStack.cursor >= 0){
9290 longjmp(catchStack.envs[catchStack.cursor], 1);
9291 }
9292 PRINT_ERROR("Runtime error: %s", "Assert failed");
9293 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8804);
9294 fatal_exit(1);
9295 }
9296 var_ptypenode4 = var_nodearraylist4;
9297 /* <var_ptypenode4:nullable Object> isa nullable AType */
9298 cltype9 = type_nullable__nitc__AType.color;
9299 idtype10 = type_nullable__nitc__AType.id;
9300 if(var_ptypenode4 == NULL) {
9301 var8 = 1;
9302 } else {
9303 if(cltype9 >= (((long)var_ptypenode4&3)?type_info[((long)var_ptypenode4&3)]:var_ptypenode4->type)->table_size) {
9304 var8 = 0;
9305 } else {
9306 var8 = (((long)var_ptypenode4&3)?type_info[((long)var_ptypenode4&3)]:var_ptypenode4->type)->type_table[cltype9] == idtype10;
9307 }
9308 }
9309 if (unlikely(!var8)) {
9310 if(catchStack.cursor >= 0){
9311 longjmp(catchStack.envs[catchStack.cursor], 1);
9312 }
9313 PRINT_ERROR("Runtime error: %s", "Assert failed");
9314 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8806);
9315 fatal_exit(1);
9316 }
9317 var11 = NEW_nitc__AIsaExpr(&type_nitc__AIsaExpr);
9318 {
9319 nitc__parser_prod___AIsaExpr___init_aisaexpr(var11, var_pexprnode2, var_tkwisanode3, var_ptypenode4); /* Direct call parser_prod$AIsaExpr$init_aisaexpr on <var11:AIsaExpr>*/
9320 }
9321 var_pexprnode1 = var11;
9322 var_node_list = var_pexprnode1;
9323 var12 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction305> */
9324 {
9325 var13 = nitc___nitc__Parser___go_to(var_p, var12);
9326 }
9327 {
9328 nitc___nitc__Parser___push(var_p, var13, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
9329 }
9330 RET_LABEL:;
9331 }
9332 /* method parser$ReduceAction307$action for (self: ReduceAction307, Parser) */
9333 void nitc__parser___nitc__parser__ReduceAction307___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
9334 val* var_p /* var p: Parser */;
9335 val* var_node_list /* var node_list: nullable Object */;
9336 val* var /* : nullable Object */;
9337 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9338 val* var1 /* : nullable Object */;
9339 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9340 val* var2 /* : nullable Object */;
9341 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9342 val* var3 /* : nullable Object */;
9343 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9344 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
9345 short int var4 /* : Bool */;
9346 int cltype;
9347 int idtype;
9348 val* var_tpipenode3 /* var tpipenode3: nullable Object */;
9349 short int var5 /* : Bool */;
9350 int cltype6;
9351 int idtype7;
9352 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
9353 short int var8 /* : Bool */;
9354 int cltype9;
9355 int idtype10;
9356 val* var11 /* : APipeExpr */;
9357 val* var_pexprnode1 /* var pexprnode1: nullable APipeExpr */;
9358 long var12 /* : Int */;
9359 long var13 /* : Int */;
9360 var_p = p0;
9361 var_node_list = ((val*)NULL);
9362 {
9363 var = nitc___nitc__Parser___pop(var_p);
9364 }
9365 var_nodearraylist4 = var;
9366 {
9367 var1 = nitc___nitc__Parser___pop(var_p);
9368 }
9369 var_nodearraylist3 = var1;
9370 {
9371 var2 = nitc___nitc__Parser___pop(var_p);
9372 }
9373 var_nodearraylist2 = var2;
9374 {
9375 var3 = nitc___nitc__Parser___pop(var_p);
9376 }
9377 var_nodearraylist1 = var3;
9378 var_pexprnode2 = var_nodearraylist1;
9379 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
9380 cltype = type_nullable__nitc__AExpr.color;
9381 idtype = type_nullable__nitc__AExpr.id;
9382 if(var_pexprnode2 == NULL) {
9383 var4 = 1;
9384 } else {
9385 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
9386 var4 = 0;
9387 } else {
9388 var4 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
9389 }
9390 }
9391 if (unlikely(!var4)) {
9392 if(catchStack.cursor >= 0){
9393 longjmp(catchStack.envs[catchStack.cursor], 1);
9394 }
9395 PRINT_ERROR("Runtime error: %s", "Assert failed");
9396 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8826);
9397 fatal_exit(1);
9398 }
9399 var_tpipenode3 = var_nodearraylist2;
9400 /* <var_tpipenode3:nullable Object> isa nullable TPipe */
9401 cltype6 = type_nullable__nitc__TPipe.color;
9402 idtype7 = type_nullable__nitc__TPipe.id;
9403 if(var_tpipenode3 == NULL) {
9404 var5 = 1;
9405 } else {
9406 if(cltype6 >= (((long)var_tpipenode3&3)?type_info[((long)var_tpipenode3&3)]:var_tpipenode3->type)->table_size) {
9407 var5 = 0;
9408 } else {
9409 var5 = (((long)var_tpipenode3&3)?type_info[((long)var_tpipenode3&3)]:var_tpipenode3->type)->type_table[cltype6] == idtype7;
9410 }
9411 }
9412 if (unlikely(!var5)) {
9413 if(catchStack.cursor >= 0){
9414 longjmp(catchStack.envs[catchStack.cursor], 1);
9415 }
9416 PRINT_ERROR("Runtime error: %s", "Assert failed");
9417 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8828);
9418 fatal_exit(1);
9419 }
9420 var_pexprnode4 = var_nodearraylist4;
9421 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
9422 cltype9 = type_nullable__nitc__AExpr.color;
9423 idtype10 = type_nullable__nitc__AExpr.id;
9424 if(var_pexprnode4 == NULL) {
9425 var8 = 1;
9426 } else {
9427 if(cltype9 >= (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->table_size) {
9428 var8 = 0;
9429 } else {
9430 var8 = (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->type_table[cltype9] == idtype10;
9431 }
9432 }
9433 if (unlikely(!var8)) {
9434 if(catchStack.cursor >= 0){
9435 longjmp(catchStack.envs[catchStack.cursor], 1);
9436 }
9437 PRINT_ERROR("Runtime error: %s", "Assert failed");
9438 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8830);
9439 fatal_exit(1);
9440 }
9441 var11 = NEW_nitc__APipeExpr(&type_nitc__APipeExpr);
9442 {
9443 nitc__parser_prod___APipeExpr___init_apipeexpr(var11, var_pexprnode2, var_tpipenode3, var_pexprnode4); /* Direct call parser_prod$APipeExpr$init_apipeexpr on <var11:APipeExpr>*/
9444 }
9445 var_pexprnode1 = var11;
9446 var_node_list = var_pexprnode1;
9447 var12 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction307> */
9448 {
9449 var13 = nitc___nitc__Parser___go_to(var_p, var12);
9450 }
9451 {
9452 nitc___nitc__Parser___push(var_p, var13, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
9453 }
9454 RET_LABEL:;
9455 }
9456 /* method parser$ReduceAction309$action for (self: ReduceAction309, Parser) */
9457 void nitc__parser___nitc__parser__ReduceAction309___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
9458 val* var_p /* var p: Parser */;
9459 val* var_node_list /* var node_list: nullable Object */;
9460 val* var /* : nullable Object */;
9461 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9462 val* var1 /* : nullable Object */;
9463 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9464 val* var2 /* : nullable Object */;
9465 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9466 val* var3 /* : nullable Object */;
9467 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9468 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
9469 short int var4 /* : Bool */;
9470 int cltype;
9471 int idtype;
9472 val* var_tcaretnode3 /* var tcaretnode3: nullable Object */;
9473 short int var5 /* : Bool */;
9474 int cltype6;
9475 int idtype7;
9476 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
9477 short int var8 /* : Bool */;
9478 int cltype9;
9479 int idtype10;
9480 val* var11 /* : ACaretExpr */;
9481 val* var_pexprnode1 /* var pexprnode1: nullable ACaretExpr */;
9482 long var12 /* : Int */;
9483 long var13 /* : Int */;
9484 var_p = p0;
9485 var_node_list = ((val*)NULL);
9486 {
9487 var = nitc___nitc__Parser___pop(var_p);
9488 }
9489 var_nodearraylist4 = var;
9490 {
9491 var1 = nitc___nitc__Parser___pop(var_p);
9492 }
9493 var_nodearraylist3 = var1;
9494 {
9495 var2 = nitc___nitc__Parser___pop(var_p);
9496 }
9497 var_nodearraylist2 = var2;
9498 {
9499 var3 = nitc___nitc__Parser___pop(var_p);
9500 }
9501 var_nodearraylist1 = var3;
9502 var_pexprnode2 = var_nodearraylist1;
9503 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
9504 cltype = type_nullable__nitc__AExpr.color;
9505 idtype = type_nullable__nitc__AExpr.id;
9506 if(var_pexprnode2 == NULL) {
9507 var4 = 1;
9508 } else {
9509 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
9510 var4 = 0;
9511 } else {
9512 var4 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
9513 }
9514 }
9515 if (unlikely(!var4)) {
9516 if(catchStack.cursor >= 0){
9517 longjmp(catchStack.envs[catchStack.cursor], 1);
9518 }
9519 PRINT_ERROR("Runtime error: %s", "Assert failed");
9520 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8850);
9521 fatal_exit(1);
9522 }
9523 var_tcaretnode3 = var_nodearraylist2;
9524 /* <var_tcaretnode3:nullable Object> isa nullable TCaret */
9525 cltype6 = type_nullable__nitc__TCaret.color;
9526 idtype7 = type_nullable__nitc__TCaret.id;
9527 if(var_tcaretnode3 == NULL) {
9528 var5 = 1;
9529 } else {
9530 if(cltype6 >= (((long)var_tcaretnode3&3)?type_info[((long)var_tcaretnode3&3)]:var_tcaretnode3->type)->table_size) {
9531 var5 = 0;
9532 } else {
9533 var5 = (((long)var_tcaretnode3&3)?type_info[((long)var_tcaretnode3&3)]:var_tcaretnode3->type)->type_table[cltype6] == idtype7;
9534 }
9535 }
9536 if (unlikely(!var5)) {
9537 if(catchStack.cursor >= 0){
9538 longjmp(catchStack.envs[catchStack.cursor], 1);
9539 }
9540 PRINT_ERROR("Runtime error: %s", "Assert failed");
9541 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8852);
9542 fatal_exit(1);
9543 }
9544 var_pexprnode4 = var_nodearraylist4;
9545 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
9546 cltype9 = type_nullable__nitc__AExpr.color;
9547 idtype10 = type_nullable__nitc__AExpr.id;
9548 if(var_pexprnode4 == NULL) {
9549 var8 = 1;
9550 } else {
9551 if(cltype9 >= (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->table_size) {
9552 var8 = 0;
9553 } else {
9554 var8 = (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->type_table[cltype9] == idtype10;
9555 }
9556 }
9557 if (unlikely(!var8)) {
9558 if(catchStack.cursor >= 0){
9559 longjmp(catchStack.envs[catchStack.cursor], 1);
9560 }
9561 PRINT_ERROR("Runtime error: %s", "Assert failed");
9562 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8854);
9563 fatal_exit(1);
9564 }
9565 var11 = NEW_nitc__ACaretExpr(&type_nitc__ACaretExpr);
9566 {
9567 nitc__parser_prod___ACaretExpr___init_acaretexpr(var11, var_pexprnode2, var_tcaretnode3, var_pexprnode4); /* Direct call parser_prod$ACaretExpr$init_acaretexpr on <var11:ACaretExpr>*/
9568 }
9569 var_pexprnode1 = var11;
9570 var_node_list = var_pexprnode1;
9571 var12 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction309> */
9572 {
9573 var13 = nitc___nitc__Parser___go_to(var_p, var12);
9574 }
9575 {
9576 nitc___nitc__Parser___push(var_p, var13, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
9577 }
9578 RET_LABEL:;
9579 }
9580 /* method parser$ReduceAction311$action for (self: ReduceAction311, Parser) */
9581 void nitc__parser___nitc__parser__ReduceAction311___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
9582 val* var_p /* var p: Parser */;
9583 val* var_node_list /* var node_list: nullable Object */;
9584 val* var /* : nullable Object */;
9585 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9586 val* var1 /* : nullable Object */;
9587 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9588 val* var2 /* : nullable Object */;
9589 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9590 val* var3 /* : nullable Object */;
9591 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9592 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
9593 short int var4 /* : Bool */;
9594 int cltype;
9595 int idtype;
9596 val* var_tampnode3 /* var tampnode3: nullable Object */;
9597 short int var5 /* : Bool */;
9598 int cltype6;
9599 int idtype7;
9600 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
9601 short int var8 /* : Bool */;
9602 int cltype9;
9603 int idtype10;
9604 val* var11 /* : AAmpExpr */;
9605 val* var_pexprnode1 /* var pexprnode1: nullable AAmpExpr */;
9606 long var12 /* : Int */;
9607 long var13 /* : Int */;
9608 var_p = p0;
9609 var_node_list = ((val*)NULL);
9610 {
9611 var = nitc___nitc__Parser___pop(var_p);
9612 }
9613 var_nodearraylist4 = var;
9614 {
9615 var1 = nitc___nitc__Parser___pop(var_p);
9616 }
9617 var_nodearraylist3 = var1;
9618 {
9619 var2 = nitc___nitc__Parser___pop(var_p);
9620 }
9621 var_nodearraylist2 = var2;
9622 {
9623 var3 = nitc___nitc__Parser___pop(var_p);
9624 }
9625 var_nodearraylist1 = var3;
9626 var_pexprnode2 = var_nodearraylist1;
9627 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
9628 cltype = type_nullable__nitc__AExpr.color;
9629 idtype = type_nullable__nitc__AExpr.id;
9630 if(var_pexprnode2 == NULL) {
9631 var4 = 1;
9632 } else {
9633 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
9634 var4 = 0;
9635 } else {
9636 var4 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
9637 }
9638 }
9639 if (unlikely(!var4)) {
9640 if(catchStack.cursor >= 0){
9641 longjmp(catchStack.envs[catchStack.cursor], 1);
9642 }
9643 PRINT_ERROR("Runtime error: %s", "Assert failed");
9644 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8874);
9645 fatal_exit(1);
9646 }
9647 var_tampnode3 = var_nodearraylist2;
9648 /* <var_tampnode3:nullable Object> isa nullable TAmp */
9649 cltype6 = type_nullable__nitc__TAmp.color;
9650 idtype7 = type_nullable__nitc__TAmp.id;
9651 if(var_tampnode3 == NULL) {
9652 var5 = 1;
9653 } else {
9654 if(cltype6 >= (((long)var_tampnode3&3)?type_info[((long)var_tampnode3&3)]:var_tampnode3->type)->table_size) {
9655 var5 = 0;
9656 } else {
9657 var5 = (((long)var_tampnode3&3)?type_info[((long)var_tampnode3&3)]:var_tampnode3->type)->type_table[cltype6] == idtype7;
9658 }
9659 }
9660 if (unlikely(!var5)) {
9661 if(catchStack.cursor >= 0){
9662 longjmp(catchStack.envs[catchStack.cursor], 1);
9663 }
9664 PRINT_ERROR("Runtime error: %s", "Assert failed");
9665 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8876);
9666 fatal_exit(1);
9667 }
9668 var_pexprnode4 = var_nodearraylist4;
9669 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
9670 cltype9 = type_nullable__nitc__AExpr.color;
9671 idtype10 = type_nullable__nitc__AExpr.id;
9672 if(var_pexprnode4 == NULL) {
9673 var8 = 1;
9674 } else {
9675 if(cltype9 >= (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->table_size) {
9676 var8 = 0;
9677 } else {
9678 var8 = (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->type_table[cltype9] == idtype10;
9679 }
9680 }
9681 if (unlikely(!var8)) {
9682 if(catchStack.cursor >= 0){
9683 longjmp(catchStack.envs[catchStack.cursor], 1);
9684 }
9685 PRINT_ERROR("Runtime error: %s", "Assert failed");
9686 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8878);
9687 fatal_exit(1);
9688 }
9689 var11 = NEW_nitc__AAmpExpr(&type_nitc__AAmpExpr);
9690 {
9691 nitc__parser_prod___AAmpExpr___init_aampexpr(var11, var_pexprnode2, var_tampnode3, var_pexprnode4); /* Direct call parser_prod$AAmpExpr$init_aampexpr on <var11:AAmpExpr>*/
9692 }
9693 var_pexprnode1 = var11;
9694 var_node_list = var_pexprnode1;
9695 var12 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction311> */
9696 {
9697 var13 = nitc___nitc__Parser___go_to(var_p, var12);
9698 }
9699 {
9700 nitc___nitc__Parser___push(var_p, var13, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
9701 }
9702 RET_LABEL:;
9703 }
9704 /* method parser$ReduceAction313$action for (self: ReduceAction313, Parser) */
9705 void nitc__parser___nitc__parser__ReduceAction313___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
9706 val* var_p /* var p: Parser */;
9707 val* var_node_list /* var node_list: nullable Object */;
9708 val* var /* : nullable Object */;
9709 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9710 val* var1 /* : nullable Object */;
9711 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9712 val* var2 /* : nullable Object */;
9713 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9714 val* var3 /* : nullable Object */;
9715 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9716 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
9717 short int var4 /* : Bool */;
9718 int cltype;
9719 int idtype;
9720 val* var_tllnode3 /* var tllnode3: nullable Object */;
9721 short int var5 /* : Bool */;
9722 int cltype6;
9723 int idtype7;
9724 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
9725 short int var8 /* : Bool */;
9726 int cltype9;
9727 int idtype10;
9728 val* var11 /* : ALlExpr */;
9729 val* var_pexprnode1 /* var pexprnode1: nullable ALlExpr */;
9730 long var12 /* : Int */;
9731 long var13 /* : Int */;
9732 var_p = p0;
9733 var_node_list = ((val*)NULL);
9734 {
9735 var = nitc___nitc__Parser___pop(var_p);
9736 }
9737 var_nodearraylist4 = var;
9738 {
9739 var1 = nitc___nitc__Parser___pop(var_p);
9740 }
9741 var_nodearraylist3 = var1;
9742 {
9743 var2 = nitc___nitc__Parser___pop(var_p);
9744 }
9745 var_nodearraylist2 = var2;
9746 {
9747 var3 = nitc___nitc__Parser___pop(var_p);
9748 }
9749 var_nodearraylist1 = var3;
9750 var_pexprnode2 = var_nodearraylist1;
9751 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
9752 cltype = type_nullable__nitc__AExpr.color;
9753 idtype = type_nullable__nitc__AExpr.id;
9754 if(var_pexprnode2 == NULL) {
9755 var4 = 1;
9756 } else {
9757 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
9758 var4 = 0;
9759 } else {
9760 var4 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
9761 }
9762 }
9763 if (unlikely(!var4)) {
9764 if(catchStack.cursor >= 0){
9765 longjmp(catchStack.envs[catchStack.cursor], 1);
9766 }
9767 PRINT_ERROR("Runtime error: %s", "Assert failed");
9768 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8898);
9769 fatal_exit(1);
9770 }
9771 var_tllnode3 = var_nodearraylist2;
9772 /* <var_tllnode3:nullable Object> isa nullable TLl */
9773 cltype6 = type_nullable__nitc__TLl.color;
9774 idtype7 = type_nullable__nitc__TLl.id;
9775 if(var_tllnode3 == NULL) {
9776 var5 = 1;
9777 } else {
9778 if(cltype6 >= (((long)var_tllnode3&3)?type_info[((long)var_tllnode3&3)]:var_tllnode3->type)->table_size) {
9779 var5 = 0;
9780 } else {
9781 var5 = (((long)var_tllnode3&3)?type_info[((long)var_tllnode3&3)]:var_tllnode3->type)->type_table[cltype6] == idtype7;
9782 }
9783 }
9784 if (unlikely(!var5)) {
9785 if(catchStack.cursor >= 0){
9786 longjmp(catchStack.envs[catchStack.cursor], 1);
9787 }
9788 PRINT_ERROR("Runtime error: %s", "Assert failed");
9789 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8900);
9790 fatal_exit(1);
9791 }
9792 var_pexprnode4 = var_nodearraylist4;
9793 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
9794 cltype9 = type_nullable__nitc__AExpr.color;
9795 idtype10 = type_nullable__nitc__AExpr.id;
9796 if(var_pexprnode4 == NULL) {
9797 var8 = 1;
9798 } else {
9799 if(cltype9 >= (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->table_size) {
9800 var8 = 0;
9801 } else {
9802 var8 = (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->type_table[cltype9] == idtype10;
9803 }
9804 }
9805 if (unlikely(!var8)) {
9806 if(catchStack.cursor >= 0){
9807 longjmp(catchStack.envs[catchStack.cursor], 1);
9808 }
9809 PRINT_ERROR("Runtime error: %s", "Assert failed");
9810 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8902);
9811 fatal_exit(1);
9812 }
9813 var11 = NEW_nitc__ALlExpr(&type_nitc__ALlExpr);
9814 {
9815 nitc__parser_prod___ALlExpr___init_allexpr(var11, var_pexprnode2, var_tllnode3, var_pexprnode4); /* Direct call parser_prod$ALlExpr$init_allexpr on <var11:ALlExpr>*/
9816 }
9817 var_pexprnode1 = var11;
9818 var_node_list = var_pexprnode1;
9819 var12 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction313> */
9820 {
9821 var13 = nitc___nitc__Parser___go_to(var_p, var12);
9822 }
9823 {
9824 nitc___nitc__Parser___push(var_p, var13, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
9825 }
9826 RET_LABEL:;
9827 }
9828 /* method parser$ReduceAction314$action for (self: ReduceAction314, Parser) */
9829 void nitc__parser___nitc__parser__ReduceAction314___nitc__parser_work__ReduceAction__action(val* self, val* p0) {
9830 val* var_p /* var p: Parser */;
9831 val* var_node_list /* var node_list: nullable Object */;
9832 val* var /* : nullable Object */;
9833 val* var_nodearraylist4 /* var nodearraylist4: nullable Object */;
9834 val* var1 /* : nullable Object */;
9835 val* var_nodearraylist3 /* var nodearraylist3: nullable Object */;
9836 val* var2 /* : nullable Object */;
9837 val* var_nodearraylist2 /* var nodearraylist2: nullable Object */;
9838 val* var3 /* : nullable Object */;
9839 val* var_nodearraylist1 /* var nodearraylist1: nullable Object */;
9840 val* var_pexprnode2 /* var pexprnode2: nullable Object */;
9841 short int var4 /* : Bool */;
9842 int cltype;
9843 int idtype;
9844 val* var_tggnode3 /* var tggnode3: nullable Object */;
9845 short int var5 /* : Bool */;
9846 int cltype6;
9847 int idtype7;
9848 val* var_pexprnode4 /* var pexprnode4: nullable Object */;
9849 short int var8 /* : Bool */;
9850 int cltype9;
9851 int idtype10;
9852 val* var11 /* : AGgExpr */;
9853 val* var_pexprnode1 /* var pexprnode1: nullable AGgExpr */;
9854 long var12 /* : Int */;
9855 long var13 /* : Int */;
9856 var_p = p0;
9857 var_node_list = ((val*)NULL);
9858 {
9859 var = nitc___nitc__Parser___pop(var_p);
9860 }
9861 var_nodearraylist4 = var;
9862 {
9863 var1 = nitc___nitc__Parser___pop(var_p);
9864 }
9865 var_nodearraylist3 = var1;
9866 {
9867 var2 = nitc___nitc__Parser___pop(var_p);
9868 }
9869 var_nodearraylist2 = var2;
9870 {
9871 var3 = nitc___nitc__Parser___pop(var_p);
9872 }
9873 var_nodearraylist1 = var3;
9874 var_pexprnode2 = var_nodearraylist1;
9875 /* <var_pexprnode2:nullable Object> isa nullable AExpr */
9876 cltype = type_nullable__nitc__AExpr.color;
9877 idtype = type_nullable__nitc__AExpr.id;
9878 if(var_pexprnode2 == NULL) {
9879 var4 = 1;
9880 } else {
9881 if(cltype >= (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->table_size) {
9882 var4 = 0;
9883 } else {
9884 var4 = (((long)var_pexprnode2&3)?type_info[((long)var_pexprnode2&3)]:var_pexprnode2->type)->type_table[cltype] == idtype;
9885 }
9886 }
9887 if (unlikely(!var4)) {
9888 if(catchStack.cursor >= 0){
9889 longjmp(catchStack.envs[catchStack.cursor], 1);
9890 }
9891 PRINT_ERROR("Runtime error: %s", "Assert failed");
9892 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8922);
9893 fatal_exit(1);
9894 }
9895 var_tggnode3 = var_nodearraylist2;
9896 /* <var_tggnode3:nullable Object> isa nullable TGg */
9897 cltype6 = type_nullable__nitc__TGg.color;
9898 idtype7 = type_nullable__nitc__TGg.id;
9899 if(var_tggnode3 == NULL) {
9900 var5 = 1;
9901 } else {
9902 if(cltype6 >= (((long)var_tggnode3&3)?type_info[((long)var_tggnode3&3)]:var_tggnode3->type)->table_size) {
9903 var5 = 0;
9904 } else {
9905 var5 = (((long)var_tggnode3&3)?type_info[((long)var_tggnode3&3)]:var_tggnode3->type)->type_table[cltype6] == idtype7;
9906 }
9907 }
9908 if (unlikely(!var5)) {
9909 if(catchStack.cursor >= 0){
9910 longjmp(catchStack.envs[catchStack.cursor], 1);
9911 }
9912 PRINT_ERROR("Runtime error: %s", "Assert failed");
9913 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8924);
9914 fatal_exit(1);
9915 }
9916 var_pexprnode4 = var_nodearraylist4;
9917 /* <var_pexprnode4:nullable Object> isa nullable AExpr */
9918 cltype9 = type_nullable__nitc__AExpr.color;
9919 idtype10 = type_nullable__nitc__AExpr.id;
9920 if(var_pexprnode4 == NULL) {
9921 var8 = 1;
9922 } else {
9923 if(cltype9 >= (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->table_size) {
9924 var8 = 0;
9925 } else {
9926 var8 = (((long)var_pexprnode4&3)?type_info[((long)var_pexprnode4&3)]:var_pexprnode4->type)->type_table[cltype9] == idtype10;
9927 }
9928 }
9929 if (unlikely(!var8)) {
9930 if(catchStack.cursor >= 0){
9931 longjmp(catchStack.envs[catchStack.cursor], 1);
9932 }
9933 PRINT_ERROR("Runtime error: %s", "Assert failed");
9934 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser, 8926);
9935 fatal_exit(1);
9936 }
9937 var11 = NEW_nitc__AGgExpr(&type_nitc__AGgExpr);
9938 {
9939 nitc__parser_prod___AGgExpr___init_aggexpr(var11, var_pexprnode2, var_tggnode3, var_pexprnode4); /* Direct call parser_prod$AGgExpr$init_aggexpr on <var11:AGgExpr>*/
9940 }
9941 var_pexprnode1 = var11;
9942 var_node_list = var_pexprnode1;
9943 var12 = self->attrs[COLOR_nitc__parser_work__ReduceAction___goto].l; /* _goto on <self:ReduceAction314> */
9944 {
9945 var13 = nitc___nitc__Parser___go_to(var_p, var12);
9946 }
9947 {
9948 nitc___nitc__Parser___push(var_p, var13, var_node_list); /* Direct call parser_work$Parser$push on <var_p:Parser>*/
9949 }
9950 RET_LABEL:;
9951 }