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