nitc: let CC, CXX and NO_STACKTRACE use env value
[nit.git] / c_src / nitc__parser_prod.sep.3.c
1 #include "nitc__parser_prod.sep.0.h"
2 /* method parser_prod#AIfExpr#visit_all for (self: AIfExpr, Visitor) */
3 void nitc__parser_prod___AIfExpr___nitc__parser_nodes__ANode__visit_all(val* self, val* p0) {
4 val* var_v /* var v: Visitor */;
5 val* var /* : TKwif */;
6 val* var1 /* : AExpr */;
7 val* var2 /* : TKwthen */;
8 val* var3 /* : nullable AExpr */;
9 val* var4 /* : nullable TKwelse */;
10 val* var5 /* : nullable AExpr */;
11 var_v = p0;
12 var = self->attrs[COLOR_nitc__parser_nodes__AIfExpr___n_kwif].val; /* _n_kwif on <self:AIfExpr> */
13 if (unlikely(var == NULL)) {
14 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwif");
15 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 2994);
16 fatal_exit(1);
17 }
18 {
19 nitc___nitc__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
20 }
21 var1 = self->attrs[COLOR_nitc__parser_nodes__AIfExpr___n_expr].val; /* _n_expr on <self:AIfExpr> */
22 if (unlikely(var1 == NULL)) {
23 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
24 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 2995);
25 fatal_exit(1);
26 }
27 {
28 nitc___nitc__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
29 }
30 var2 = self->attrs[COLOR_nitc__parser_nodes__AIfExpr___n_kwthen].val; /* _n_kwthen on <self:AIfExpr> */
31 if (unlikely(var2 == NULL)) {
32 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwthen");
33 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 2996);
34 fatal_exit(1);
35 }
36 {
37 nitc___nitc__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
38 }
39 var3 = self->attrs[COLOR_nitc__parser_nodes__AIfExpr___n_then].val; /* _n_then on <self:AIfExpr> */
40 {
41 nitc___nitc__Visitor___enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
42 }
43 var4 = self->attrs[COLOR_nitc__parser_nodes__AIfExpr___n_kwelse].val; /* _n_kwelse on <self:AIfExpr> */
44 {
45 nitc___nitc__Visitor___enter_visit(var_v, var4); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
46 }
47 var5 = self->attrs[COLOR_nitc__parser_nodes__AIfExpr___n_else].val; /* _n_else on <self:AIfExpr> */
48 {
49 nitc___nitc__Visitor___enter_visit(var_v, var5); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
50 }
51 RET_LABEL:;
52 }
53 /* method parser_prod#AIfexprExpr#init_aifexprexpr for (self: AIfexprExpr, nullable TKwif, nullable AExpr, nullable TKwthen, nullable AExpr, nullable TKwelse, nullable AExpr) */
54 void nitc__parser_prod___AIfexprExpr___init_aifexprexpr(val* self, val* p0, val* p1, val* p2, val* p3, val* p4, val* p5) {
55 val* var_n_kwif /* var n_kwif: nullable TKwif */;
56 val* var_n_expr /* var n_expr: nullable AExpr */;
57 val* var_n_kwthen /* var n_kwthen: nullable TKwthen */;
58 val* var_n_then /* var n_then: nullable AExpr */;
59 val* var_n_kwelse /* var n_kwelse: nullable TKwelse */;
60 val* var_n_else /* var n_else: nullable AExpr */;
61 {
62 { /* Inline kernel#Object#init (self) on <self:AIfexprExpr> */
63 RET_LABEL1:(void)0;
64 }
65 }
66 var_n_kwif = p0;
67 var_n_expr = p1;
68 var_n_kwthen = p2;
69 var_n_then = p3;
70 var_n_kwelse = p4;
71 var_n_else = p5;
72 if (unlikely(var_n_kwif == NULL)) {
73 PRINT_ERROR("Runtime error: %s", "Cast failed");
74 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3012);
75 fatal_exit(1);
76 }
77 self->attrs[COLOR_nitc__parser_nodes__AIfexprExpr___n_kwif].val = var_n_kwif; /* _n_kwif on <self:AIfexprExpr> */
78 if (var_n_kwif == NULL) {
79 PRINT_ERROR("Runtime error: %s", "Receiver is null");
80 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3013);
81 fatal_exit(1);
82 } else {
83 { /* Inline parser_nodes#ANode#parent= (var_n_kwif,self) on <var_n_kwif:nullable TKwif> */
84 if (unlikely(var_n_kwif == NULL)) {
85 PRINT_ERROR("Runtime error: %s", "Receiver is null");
86 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
87 fatal_exit(1);
88 }
89 var_n_kwif->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwif:nullable TKwif> */
90 RET_LABEL2:(void)0;
91 }
92 }
93 if (unlikely(var_n_expr == NULL)) {
94 PRINT_ERROR("Runtime error: %s", "Cast failed");
95 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3014);
96 fatal_exit(1);
97 }
98 self->attrs[COLOR_nitc__parser_nodes__AIfexprExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AIfexprExpr> */
99 if (var_n_expr == NULL) {
100 PRINT_ERROR("Runtime error: %s", "Receiver is null");
101 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3015);
102 fatal_exit(1);
103 } else {
104 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
105 if (unlikely(var_n_expr == NULL)) {
106 PRINT_ERROR("Runtime error: %s", "Receiver is null");
107 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
108 fatal_exit(1);
109 }
110 var_n_expr->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
111 RET_LABEL3:(void)0;
112 }
113 }
114 if (unlikely(var_n_kwthen == NULL)) {
115 PRINT_ERROR("Runtime error: %s", "Cast failed");
116 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3016);
117 fatal_exit(1);
118 }
119 self->attrs[COLOR_nitc__parser_nodes__AIfexprExpr___n_kwthen].val = var_n_kwthen; /* _n_kwthen on <self:AIfexprExpr> */
120 if (var_n_kwthen == NULL) {
121 PRINT_ERROR("Runtime error: %s", "Receiver is null");
122 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3017);
123 fatal_exit(1);
124 } else {
125 { /* Inline parser_nodes#ANode#parent= (var_n_kwthen,self) on <var_n_kwthen:nullable TKwthen> */
126 if (unlikely(var_n_kwthen == NULL)) {
127 PRINT_ERROR("Runtime error: %s", "Receiver is null");
128 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
129 fatal_exit(1);
130 }
131 var_n_kwthen->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwthen:nullable TKwthen> */
132 RET_LABEL4:(void)0;
133 }
134 }
135 if (unlikely(var_n_then == NULL)) {
136 PRINT_ERROR("Runtime error: %s", "Cast failed");
137 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3018);
138 fatal_exit(1);
139 }
140 self->attrs[COLOR_nitc__parser_nodes__AIfexprExpr___n_then].val = var_n_then; /* _n_then on <self:AIfexprExpr> */
141 if (var_n_then == NULL) {
142 PRINT_ERROR("Runtime error: %s", "Receiver is null");
143 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3019);
144 fatal_exit(1);
145 } else {
146 { /* Inline parser_nodes#ANode#parent= (var_n_then,self) on <var_n_then:nullable AExpr> */
147 if (unlikely(var_n_then == NULL)) {
148 PRINT_ERROR("Runtime error: %s", "Receiver is null");
149 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
150 fatal_exit(1);
151 }
152 var_n_then->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_then:nullable AExpr> */
153 RET_LABEL5:(void)0;
154 }
155 }
156 if (unlikely(var_n_kwelse == NULL)) {
157 PRINT_ERROR("Runtime error: %s", "Cast failed");
158 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3020);
159 fatal_exit(1);
160 }
161 self->attrs[COLOR_nitc__parser_nodes__AIfexprExpr___n_kwelse].val = var_n_kwelse; /* _n_kwelse on <self:AIfexprExpr> */
162 if (var_n_kwelse == NULL) {
163 PRINT_ERROR("Runtime error: %s", "Receiver is null");
164 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3021);
165 fatal_exit(1);
166 } else {
167 { /* Inline parser_nodes#ANode#parent= (var_n_kwelse,self) on <var_n_kwelse:nullable TKwelse> */
168 if (unlikely(var_n_kwelse == NULL)) {
169 PRINT_ERROR("Runtime error: %s", "Receiver is null");
170 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
171 fatal_exit(1);
172 }
173 var_n_kwelse->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwelse:nullable TKwelse> */
174 RET_LABEL6:(void)0;
175 }
176 }
177 if (unlikely(var_n_else == NULL)) {
178 PRINT_ERROR("Runtime error: %s", "Cast failed");
179 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3022);
180 fatal_exit(1);
181 }
182 self->attrs[COLOR_nitc__parser_nodes__AIfexprExpr___n_else].val = var_n_else; /* _n_else on <self:AIfexprExpr> */
183 if (var_n_else == NULL) {
184 PRINT_ERROR("Runtime error: %s", "Receiver is null");
185 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3023);
186 fatal_exit(1);
187 } else {
188 { /* Inline parser_nodes#ANode#parent= (var_n_else,self) on <var_n_else:nullable AExpr> */
189 if (unlikely(var_n_else == NULL)) {
190 PRINT_ERROR("Runtime error: %s", "Receiver is null");
191 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
192 fatal_exit(1);
193 }
194 var_n_else->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_else:nullable AExpr> */
195 RET_LABEL7:(void)0;
196 }
197 }
198 RET_LABEL:;
199 }
200 /* method parser_prod#AIfexprExpr#replace_child for (self: AIfexprExpr, ANode, nullable ANode) */
201 void nitc__parser_prod___AIfexprExpr___nitc__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
202 val* var_old_child /* var old_child: ANode */;
203 val* var_new_child /* var new_child: nullable ANode */;
204 val* var /* : TKwif */;
205 short int var1 /* : Bool */;
206 val* var_other /* var other: nullable Object */;
207 short int var3 /* : Bool */;
208 short int var5 /* : Bool */;
209 short int var6 /* : Bool */;
210 int cltype;
211 int idtype;
212 const char* var_class_name;
213 val* var7 /* : AExpr */;
214 short int var8 /* : Bool */;
215 short int var10 /* : Bool */;
216 short int var12 /* : Bool */;
217 short int var13 /* : Bool */;
218 int cltype14;
219 int idtype15;
220 const char* var_class_name16;
221 val* var17 /* : TKwthen */;
222 short int var18 /* : Bool */;
223 short int var20 /* : Bool */;
224 short int var22 /* : Bool */;
225 short int var23 /* : Bool */;
226 int cltype24;
227 int idtype25;
228 const char* var_class_name26;
229 val* var27 /* : AExpr */;
230 short int var28 /* : Bool */;
231 short int var30 /* : Bool */;
232 short int var32 /* : Bool */;
233 short int var33 /* : Bool */;
234 int cltype34;
235 int idtype35;
236 const char* var_class_name36;
237 val* var37 /* : TKwelse */;
238 short int var38 /* : Bool */;
239 short int var40 /* : Bool */;
240 short int var42 /* : Bool */;
241 short int var43 /* : Bool */;
242 int cltype44;
243 int idtype45;
244 const char* var_class_name46;
245 val* var47 /* : AExpr */;
246 short int var48 /* : Bool */;
247 short int var50 /* : Bool */;
248 short int var52 /* : Bool */;
249 short int var53 /* : Bool */;
250 int cltype54;
251 int idtype55;
252 const char* var_class_name56;
253 var_old_child = p0;
254 var_new_child = p1;
255 var = self->attrs[COLOR_nitc__parser_nodes__AIfexprExpr___n_kwif].val; /* _n_kwif on <self:AIfexprExpr> */
256 if (unlikely(var == NULL)) {
257 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwif");
258 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3028);
259 fatal_exit(1);
260 }
261 {
262 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwif> */
263 var_other = var_old_child;
264 {
265 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TKwif> */
266 var5 = var == var_other;
267 var3 = var5;
268 goto RET_LABEL4;
269 RET_LABEL4:(void)0;
270 }
271 }
272 var1 = var3;
273 goto RET_LABEL2;
274 RET_LABEL2:(void)0;
275 }
276 }
277 if (var1){
278 /* <var_new_child:nullable ANode> isa TKwif */
279 cltype = type_nitc__TKwif.color;
280 idtype = type_nitc__TKwif.id;
281 if(var_new_child == NULL) {
282 var6 = 0;
283 } else {
284 if(cltype >= var_new_child->type->table_size) {
285 var6 = 0;
286 } else {
287 var6 = var_new_child->type->type_table[cltype] == idtype;
288 }
289 }
290 if (unlikely(!var6)) {
291 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
292 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwif", var_class_name);
293 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3029);
294 fatal_exit(1);
295 }
296 {
297 nitc__parser_prod___AIfexprExpr___n_kwif_61d(self, var_new_child); /* Direct call parser_prod#AIfexprExpr#n_kwif= on <self:AIfexprExpr>*/
298 }
299 goto RET_LABEL;
300 } else {
301 }
302 var7 = self->attrs[COLOR_nitc__parser_nodes__AIfexprExpr___n_expr].val; /* _n_expr on <self:AIfexprExpr> */
303 if (unlikely(var7 == NULL)) {
304 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
305 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3032);
306 fatal_exit(1);
307 }
308 {
309 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:AExpr> */
310 var_other = var_old_child;
311 {
312 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:AExpr> */
313 var12 = var7 == var_other;
314 var10 = var12;
315 goto RET_LABEL11;
316 RET_LABEL11:(void)0;
317 }
318 }
319 var8 = var10;
320 goto RET_LABEL9;
321 RET_LABEL9:(void)0;
322 }
323 }
324 if (var8){
325 /* <var_new_child:nullable ANode> isa AExpr */
326 cltype14 = type_nitc__AExpr.color;
327 idtype15 = type_nitc__AExpr.id;
328 if(var_new_child == NULL) {
329 var13 = 0;
330 } else {
331 if(cltype14 >= var_new_child->type->table_size) {
332 var13 = 0;
333 } else {
334 var13 = var_new_child->type->type_table[cltype14] == idtype15;
335 }
336 }
337 if (unlikely(!var13)) {
338 var_class_name16 = var_new_child == NULL ? "null" : var_new_child->type->name;
339 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name16);
340 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3033);
341 fatal_exit(1);
342 }
343 {
344 nitc__parser_prod___AIfexprExpr___n_expr_61d(self, var_new_child); /* Direct call parser_prod#AIfexprExpr#n_expr= on <self:AIfexprExpr>*/
345 }
346 goto RET_LABEL;
347 } else {
348 }
349 var17 = self->attrs[COLOR_nitc__parser_nodes__AIfexprExpr___n_kwthen].val; /* _n_kwthen on <self:AIfexprExpr> */
350 if (unlikely(var17 == NULL)) {
351 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwthen");
352 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3036);
353 fatal_exit(1);
354 }
355 {
356 { /* Inline kernel#Object#== (var17,var_old_child) on <var17:TKwthen> */
357 var_other = var_old_child;
358 {
359 { /* Inline kernel#Object#is_same_instance (var17,var_other) on <var17:TKwthen> */
360 var22 = var17 == var_other;
361 var20 = var22;
362 goto RET_LABEL21;
363 RET_LABEL21:(void)0;
364 }
365 }
366 var18 = var20;
367 goto RET_LABEL19;
368 RET_LABEL19:(void)0;
369 }
370 }
371 if (var18){
372 /* <var_new_child:nullable ANode> isa TKwthen */
373 cltype24 = type_nitc__TKwthen.color;
374 idtype25 = type_nitc__TKwthen.id;
375 if(var_new_child == NULL) {
376 var23 = 0;
377 } else {
378 if(cltype24 >= var_new_child->type->table_size) {
379 var23 = 0;
380 } else {
381 var23 = var_new_child->type->type_table[cltype24] == idtype25;
382 }
383 }
384 if (unlikely(!var23)) {
385 var_class_name26 = var_new_child == NULL ? "null" : var_new_child->type->name;
386 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwthen", var_class_name26);
387 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3037);
388 fatal_exit(1);
389 }
390 {
391 nitc__parser_prod___AIfexprExpr___n_kwthen_61d(self, var_new_child); /* Direct call parser_prod#AIfexprExpr#n_kwthen= on <self:AIfexprExpr>*/
392 }
393 goto RET_LABEL;
394 } else {
395 }
396 var27 = self->attrs[COLOR_nitc__parser_nodes__AIfexprExpr___n_then].val; /* _n_then on <self:AIfexprExpr> */
397 if (unlikely(var27 == NULL)) {
398 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_then");
399 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3040);
400 fatal_exit(1);
401 }
402 {
403 { /* Inline kernel#Object#== (var27,var_old_child) on <var27:AExpr> */
404 var_other = var_old_child;
405 {
406 { /* Inline kernel#Object#is_same_instance (var27,var_other) on <var27:AExpr> */
407 var32 = var27 == var_other;
408 var30 = var32;
409 goto RET_LABEL31;
410 RET_LABEL31:(void)0;
411 }
412 }
413 var28 = var30;
414 goto RET_LABEL29;
415 RET_LABEL29:(void)0;
416 }
417 }
418 if (var28){
419 /* <var_new_child:nullable ANode> isa AExpr */
420 cltype34 = type_nitc__AExpr.color;
421 idtype35 = type_nitc__AExpr.id;
422 if(var_new_child == NULL) {
423 var33 = 0;
424 } else {
425 if(cltype34 >= var_new_child->type->table_size) {
426 var33 = 0;
427 } else {
428 var33 = var_new_child->type->type_table[cltype34] == idtype35;
429 }
430 }
431 if (unlikely(!var33)) {
432 var_class_name36 = var_new_child == NULL ? "null" : var_new_child->type->name;
433 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name36);
434 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3041);
435 fatal_exit(1);
436 }
437 {
438 nitc__parser_prod___AIfexprExpr___n_then_61d(self, var_new_child); /* Direct call parser_prod#AIfexprExpr#n_then= on <self:AIfexprExpr>*/
439 }
440 goto RET_LABEL;
441 } else {
442 }
443 var37 = self->attrs[COLOR_nitc__parser_nodes__AIfexprExpr___n_kwelse].val; /* _n_kwelse on <self:AIfexprExpr> */
444 if (unlikely(var37 == NULL)) {
445 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwelse");
446 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3044);
447 fatal_exit(1);
448 }
449 {
450 { /* Inline kernel#Object#== (var37,var_old_child) on <var37:TKwelse> */
451 var_other = var_old_child;
452 {
453 { /* Inline kernel#Object#is_same_instance (var37,var_other) on <var37:TKwelse> */
454 var42 = var37 == var_other;
455 var40 = var42;
456 goto RET_LABEL41;
457 RET_LABEL41:(void)0;
458 }
459 }
460 var38 = var40;
461 goto RET_LABEL39;
462 RET_LABEL39:(void)0;
463 }
464 }
465 if (var38){
466 /* <var_new_child:nullable ANode> isa TKwelse */
467 cltype44 = type_nitc__TKwelse.color;
468 idtype45 = type_nitc__TKwelse.id;
469 if(var_new_child == NULL) {
470 var43 = 0;
471 } else {
472 if(cltype44 >= var_new_child->type->table_size) {
473 var43 = 0;
474 } else {
475 var43 = var_new_child->type->type_table[cltype44] == idtype45;
476 }
477 }
478 if (unlikely(!var43)) {
479 var_class_name46 = var_new_child == NULL ? "null" : var_new_child->type->name;
480 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwelse", var_class_name46);
481 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3045);
482 fatal_exit(1);
483 }
484 {
485 nitc__parser_prod___AIfexprExpr___n_kwelse_61d(self, var_new_child); /* Direct call parser_prod#AIfexprExpr#n_kwelse= on <self:AIfexprExpr>*/
486 }
487 goto RET_LABEL;
488 } else {
489 }
490 var47 = self->attrs[COLOR_nitc__parser_nodes__AIfexprExpr___n_else].val; /* _n_else on <self:AIfexprExpr> */
491 if (unlikely(var47 == NULL)) {
492 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_else");
493 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3048);
494 fatal_exit(1);
495 }
496 {
497 { /* Inline kernel#Object#== (var47,var_old_child) on <var47:AExpr> */
498 var_other = var_old_child;
499 {
500 { /* Inline kernel#Object#is_same_instance (var47,var_other) on <var47:AExpr> */
501 var52 = var47 == var_other;
502 var50 = var52;
503 goto RET_LABEL51;
504 RET_LABEL51:(void)0;
505 }
506 }
507 var48 = var50;
508 goto RET_LABEL49;
509 RET_LABEL49:(void)0;
510 }
511 }
512 if (var48){
513 /* <var_new_child:nullable ANode> isa AExpr */
514 cltype54 = type_nitc__AExpr.color;
515 idtype55 = type_nitc__AExpr.id;
516 if(var_new_child == NULL) {
517 var53 = 0;
518 } else {
519 if(cltype54 >= var_new_child->type->table_size) {
520 var53 = 0;
521 } else {
522 var53 = var_new_child->type->type_table[cltype54] == idtype55;
523 }
524 }
525 if (unlikely(!var53)) {
526 var_class_name56 = var_new_child == NULL ? "null" : var_new_child->type->name;
527 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name56);
528 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3049);
529 fatal_exit(1);
530 }
531 {
532 nitc__parser_prod___AIfexprExpr___n_else_61d(self, var_new_child); /* Direct call parser_prod#AIfexprExpr#n_else= on <self:AIfexprExpr>*/
533 }
534 goto RET_LABEL;
535 } else {
536 }
537 RET_LABEL:;
538 }
539 /* method parser_prod#AIfexprExpr#n_kwif= for (self: AIfexprExpr, TKwif) */
540 void nitc__parser_prod___AIfexprExpr___n_kwif_61d(val* self, val* p0) {
541 val* var_node /* var node: TKwif */;
542 var_node = p0;
543 self->attrs[COLOR_nitc__parser_nodes__AIfexprExpr___n_kwif].val = var_node; /* _n_kwif on <self:AIfexprExpr> */
544 {
545 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwif> */
546 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwif> */
547 RET_LABEL1:(void)0;
548 }
549 }
550 RET_LABEL:;
551 }
552 /* method parser_prod#AIfexprExpr#n_expr= for (self: AIfexprExpr, AExpr) */
553 void nitc__parser_prod___AIfexprExpr___n_expr_61d(val* self, val* p0) {
554 val* var_node /* var node: AExpr */;
555 var_node = p0;
556 self->attrs[COLOR_nitc__parser_nodes__AIfexprExpr___n_expr].val = var_node; /* _n_expr on <self:AIfexprExpr> */
557 {
558 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
559 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
560 RET_LABEL1:(void)0;
561 }
562 }
563 RET_LABEL:;
564 }
565 /* method parser_prod#AIfexprExpr#n_kwthen= for (self: AIfexprExpr, TKwthen) */
566 void nitc__parser_prod___AIfexprExpr___n_kwthen_61d(val* self, val* p0) {
567 val* var_node /* var node: TKwthen */;
568 var_node = p0;
569 self->attrs[COLOR_nitc__parser_nodes__AIfexprExpr___n_kwthen].val = var_node; /* _n_kwthen on <self:AIfexprExpr> */
570 {
571 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwthen> */
572 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwthen> */
573 RET_LABEL1:(void)0;
574 }
575 }
576 RET_LABEL:;
577 }
578 /* method parser_prod#AIfexprExpr#n_then= for (self: AIfexprExpr, AExpr) */
579 void nitc__parser_prod___AIfexprExpr___n_then_61d(val* self, val* p0) {
580 val* var_node /* var node: AExpr */;
581 var_node = p0;
582 self->attrs[COLOR_nitc__parser_nodes__AIfexprExpr___n_then].val = var_node; /* _n_then on <self:AIfexprExpr> */
583 {
584 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
585 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
586 RET_LABEL1:(void)0;
587 }
588 }
589 RET_LABEL:;
590 }
591 /* method parser_prod#AIfexprExpr#n_kwelse= for (self: AIfexprExpr, TKwelse) */
592 void nitc__parser_prod___AIfexprExpr___n_kwelse_61d(val* self, val* p0) {
593 val* var_node /* var node: TKwelse */;
594 var_node = p0;
595 self->attrs[COLOR_nitc__parser_nodes__AIfexprExpr___n_kwelse].val = var_node; /* _n_kwelse on <self:AIfexprExpr> */
596 {
597 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwelse> */
598 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwelse> */
599 RET_LABEL1:(void)0;
600 }
601 }
602 RET_LABEL:;
603 }
604 /* method parser_prod#AIfexprExpr#n_else= for (self: AIfexprExpr, AExpr) */
605 void nitc__parser_prod___AIfexprExpr___n_else_61d(val* self, val* p0) {
606 val* var_node /* var node: AExpr */;
607 var_node = p0;
608 self->attrs[COLOR_nitc__parser_nodes__AIfexprExpr___n_else].val = var_node; /* _n_else on <self:AIfexprExpr> */
609 {
610 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
611 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
612 RET_LABEL1:(void)0;
613 }
614 }
615 RET_LABEL:;
616 }
617 /* method parser_prod#AIfexprExpr#visit_all for (self: AIfexprExpr, Visitor) */
618 void nitc__parser_prod___AIfexprExpr___nitc__parser_nodes__ANode__visit_all(val* self, val* p0) {
619 val* var_v /* var v: Visitor */;
620 val* var /* : TKwif */;
621 val* var1 /* : AExpr */;
622 val* var2 /* : TKwthen */;
623 val* var3 /* : AExpr */;
624 val* var4 /* : TKwelse */;
625 val* var5 /* : AExpr */;
626 var_v = p0;
627 var = self->attrs[COLOR_nitc__parser_nodes__AIfexprExpr___n_kwif].val; /* _n_kwif on <self:AIfexprExpr> */
628 if (unlikely(var == NULL)) {
629 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwif");
630 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3088);
631 fatal_exit(1);
632 }
633 {
634 nitc___nitc__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
635 }
636 var1 = self->attrs[COLOR_nitc__parser_nodes__AIfexprExpr___n_expr].val; /* _n_expr on <self:AIfexprExpr> */
637 if (unlikely(var1 == NULL)) {
638 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
639 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3089);
640 fatal_exit(1);
641 }
642 {
643 nitc___nitc__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
644 }
645 var2 = self->attrs[COLOR_nitc__parser_nodes__AIfexprExpr___n_kwthen].val; /* _n_kwthen on <self:AIfexprExpr> */
646 if (unlikely(var2 == NULL)) {
647 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwthen");
648 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3090);
649 fatal_exit(1);
650 }
651 {
652 nitc___nitc__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
653 }
654 var3 = self->attrs[COLOR_nitc__parser_nodes__AIfexprExpr___n_then].val; /* _n_then on <self:AIfexprExpr> */
655 if (unlikely(var3 == NULL)) {
656 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_then");
657 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3091);
658 fatal_exit(1);
659 }
660 {
661 nitc___nitc__Visitor___enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
662 }
663 var4 = self->attrs[COLOR_nitc__parser_nodes__AIfexprExpr___n_kwelse].val; /* _n_kwelse on <self:AIfexprExpr> */
664 if (unlikely(var4 == NULL)) {
665 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwelse");
666 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3092);
667 fatal_exit(1);
668 }
669 {
670 nitc___nitc__Visitor___enter_visit(var_v, var4); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
671 }
672 var5 = self->attrs[COLOR_nitc__parser_nodes__AIfexprExpr___n_else].val; /* _n_else on <self:AIfexprExpr> */
673 if (unlikely(var5 == NULL)) {
674 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_else");
675 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3093);
676 fatal_exit(1);
677 }
678 {
679 nitc___nitc__Visitor___enter_visit(var_v, var5); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
680 }
681 RET_LABEL:;
682 }
683 /* method parser_prod#AWhileExpr#init_awhileexpr for (self: AWhileExpr, nullable TKwwhile, nullable AExpr, nullable TKwdo, nullable AExpr, nullable ALabel) */
684 void nitc__parser_prod___AWhileExpr___init_awhileexpr(val* self, val* p0, val* p1, val* p2, val* p3, val* p4) {
685 val* var_n_kwwhile /* var n_kwwhile: nullable TKwwhile */;
686 val* var_n_expr /* var n_expr: nullable AExpr */;
687 val* var_n_kwdo /* var n_kwdo: nullable TKwdo */;
688 val* var_n_block /* var n_block: nullable AExpr */;
689 val* var_n_label /* var n_label: nullable ALabel */;
690 short int var /* : Bool */;
691 short int var5 /* : Bool */;
692 val* var_other /* var other: nullable Object */;
693 short int var7 /* : Bool */;
694 short int var8 /* : Bool */;
695 short int var10 /* : Bool */;
696 short int var11 /* : Bool */;
697 short int var13 /* : Bool */;
698 short int var14 /* : Bool */;
699 {
700 { /* Inline kernel#Object#init (self) on <self:AWhileExpr> */
701 RET_LABEL1:(void)0;
702 }
703 }
704 var_n_kwwhile = p0;
705 var_n_expr = p1;
706 var_n_kwdo = p2;
707 var_n_block = p3;
708 var_n_label = p4;
709 if (unlikely(var_n_kwwhile == NULL)) {
710 PRINT_ERROR("Runtime error: %s", "Cast failed");
711 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3105);
712 fatal_exit(1);
713 }
714 self->attrs[COLOR_nitc__parser_nodes__AWhileExpr___n_kwwhile].val = var_n_kwwhile; /* _n_kwwhile on <self:AWhileExpr> */
715 if (var_n_kwwhile == NULL) {
716 PRINT_ERROR("Runtime error: %s", "Receiver is null");
717 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3106);
718 fatal_exit(1);
719 } else {
720 { /* Inline parser_nodes#ANode#parent= (var_n_kwwhile,self) on <var_n_kwwhile:nullable TKwwhile> */
721 if (unlikely(var_n_kwwhile == NULL)) {
722 PRINT_ERROR("Runtime error: %s", "Receiver is null");
723 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
724 fatal_exit(1);
725 }
726 var_n_kwwhile->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwwhile:nullable TKwwhile> */
727 RET_LABEL2:(void)0;
728 }
729 }
730 if (unlikely(var_n_expr == NULL)) {
731 PRINT_ERROR("Runtime error: %s", "Cast failed");
732 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3107);
733 fatal_exit(1);
734 }
735 self->attrs[COLOR_nitc__parser_nodes__AWhileExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AWhileExpr> */
736 if (var_n_expr == NULL) {
737 PRINT_ERROR("Runtime error: %s", "Receiver is null");
738 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3108);
739 fatal_exit(1);
740 } else {
741 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
742 if (unlikely(var_n_expr == NULL)) {
743 PRINT_ERROR("Runtime error: %s", "Receiver is null");
744 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
745 fatal_exit(1);
746 }
747 var_n_expr->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
748 RET_LABEL3:(void)0;
749 }
750 }
751 if (unlikely(var_n_kwdo == NULL)) {
752 PRINT_ERROR("Runtime error: %s", "Cast failed");
753 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3109);
754 fatal_exit(1);
755 }
756 self->attrs[COLOR_nitc__parser_nodes__AWhileExpr___n_kwdo].val = var_n_kwdo; /* _n_kwdo on <self:AWhileExpr> */
757 if (var_n_kwdo == NULL) {
758 PRINT_ERROR("Runtime error: %s", "Receiver is null");
759 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3110);
760 fatal_exit(1);
761 } else {
762 { /* Inline parser_nodes#ANode#parent= (var_n_kwdo,self) on <var_n_kwdo:nullable TKwdo> */
763 if (unlikely(var_n_kwdo == NULL)) {
764 PRINT_ERROR("Runtime error: %s", "Receiver is null");
765 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
766 fatal_exit(1);
767 }
768 var_n_kwdo->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwdo:nullable TKwdo> */
769 RET_LABEL4:(void)0;
770 }
771 }
772 self->attrs[COLOR_nitc__parser_nodes__AWhileExpr___n_block].val = var_n_block; /* _n_block on <self:AWhileExpr> */
773 if (var_n_block == NULL) {
774 var = 0; /* is null */
775 } else {
776 var = 1; /* arg is null and recv is not */
777 }
778 if (0) {
779 { /* Inline kernel#Object#!= (var_n_block,((val*)NULL)) on <var_n_block:nullable AExpr> */
780 var_other = ((val*)NULL);
781 {
782 var7 = ((short int(*)(val* self, val* p0))(var_n_block->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_n_block, var_other); /* == on <var_n_block:nullable AExpr(AExpr)>*/
783 }
784 var8 = !var7;
785 var5 = var8;
786 goto RET_LABEL6;
787 RET_LABEL6:(void)0;
788 }
789 var = var5;
790 }
791 if (var){
792 {
793 { /* Inline parser_nodes#ANode#parent= (var_n_block,self) on <var_n_block:nullable AExpr(AExpr)> */
794 var_n_block->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_block:nullable AExpr(AExpr)> */
795 RET_LABEL9:(void)0;
796 }
797 }
798 } else {
799 }
800 self->attrs[COLOR_nitc__parser_nodes__ALabelable___n_label].val = var_n_label; /* _n_label on <self:AWhileExpr> */
801 if (var_n_label == NULL) {
802 var10 = 0; /* is null */
803 } else {
804 var10 = 1; /* arg is null and recv is not */
805 }
806 if (0) {
807 { /* Inline kernel#Object#!= (var_n_label,((val*)NULL)) on <var_n_label:nullable ALabel> */
808 var_other = ((val*)NULL);
809 {
810 var13 = ((short int(*)(val* self, val* p0))(var_n_label->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_n_label, var_other); /* == on <var_n_label:nullable ALabel(ALabel)>*/
811 }
812 var14 = !var13;
813 var11 = var14;
814 goto RET_LABEL12;
815 RET_LABEL12:(void)0;
816 }
817 var10 = var11;
818 }
819 if (var10){
820 {
821 { /* Inline parser_nodes#ANode#parent= (var_n_label,self) on <var_n_label:nullable ALabel(ALabel)> */
822 var_n_label->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_label:nullable ALabel(ALabel)> */
823 RET_LABEL15:(void)0;
824 }
825 }
826 } else {
827 }
828 RET_LABEL:;
829 }
830 /* method parser_prod#AWhileExpr#replace_child for (self: AWhileExpr, ANode, nullable ANode) */
831 void nitc__parser_prod___AWhileExpr___nitc__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
832 val* var_old_child /* var old_child: ANode */;
833 val* var_new_child /* var new_child: nullable ANode */;
834 val* var /* : TKwwhile */;
835 short int var1 /* : Bool */;
836 val* var_other /* var other: nullable Object */;
837 short int var3 /* : Bool */;
838 short int var5 /* : Bool */;
839 short int var6 /* : Bool */;
840 int cltype;
841 int idtype;
842 const char* var_class_name;
843 val* var7 /* : AExpr */;
844 short int var8 /* : Bool */;
845 short int var10 /* : Bool */;
846 short int var12 /* : Bool */;
847 short int var13 /* : Bool */;
848 int cltype14;
849 int idtype15;
850 const char* var_class_name16;
851 val* var17 /* : TKwdo */;
852 short int var18 /* : Bool */;
853 short int var20 /* : Bool */;
854 short int var22 /* : Bool */;
855 short int var23 /* : Bool */;
856 int cltype24;
857 int idtype25;
858 const char* var_class_name26;
859 val* var27 /* : nullable AExpr */;
860 short int var28 /* : Bool */;
861 short int var29 /* : Bool */;
862 short int var31 /* : Bool */;
863 short int var33 /* : Bool */;
864 short int var34 /* : Bool */;
865 int cltype35;
866 int idtype36;
867 const char* var_class_name37;
868 val* var38 /* : nullable ALabel */;
869 short int var39 /* : Bool */;
870 short int var40 /* : Bool */;
871 short int var42 /* : Bool */;
872 short int var44 /* : Bool */;
873 short int var45 /* : Bool */;
874 int cltype46;
875 int idtype47;
876 const char* var_class_name48;
877 var_old_child = p0;
878 var_new_child = p1;
879 var = self->attrs[COLOR_nitc__parser_nodes__AWhileExpr___n_kwwhile].val; /* _n_kwwhile on <self:AWhileExpr> */
880 if (unlikely(var == NULL)) {
881 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwwhile");
882 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3119);
883 fatal_exit(1);
884 }
885 {
886 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwwhile> */
887 var_other = var_old_child;
888 {
889 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TKwwhile> */
890 var5 = var == var_other;
891 var3 = var5;
892 goto RET_LABEL4;
893 RET_LABEL4:(void)0;
894 }
895 }
896 var1 = var3;
897 goto RET_LABEL2;
898 RET_LABEL2:(void)0;
899 }
900 }
901 if (var1){
902 /* <var_new_child:nullable ANode> isa TKwwhile */
903 cltype = type_nitc__TKwwhile.color;
904 idtype = type_nitc__TKwwhile.id;
905 if(var_new_child == NULL) {
906 var6 = 0;
907 } else {
908 if(cltype >= var_new_child->type->table_size) {
909 var6 = 0;
910 } else {
911 var6 = var_new_child->type->type_table[cltype] == idtype;
912 }
913 }
914 if (unlikely(!var6)) {
915 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
916 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwwhile", var_class_name);
917 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3120);
918 fatal_exit(1);
919 }
920 {
921 nitc__parser_prod___AWhileExpr___n_kwwhile_61d(self, var_new_child); /* Direct call parser_prod#AWhileExpr#n_kwwhile= on <self:AWhileExpr>*/
922 }
923 goto RET_LABEL;
924 } else {
925 }
926 var7 = self->attrs[COLOR_nitc__parser_nodes__AWhileExpr___n_expr].val; /* _n_expr on <self:AWhileExpr> */
927 if (unlikely(var7 == NULL)) {
928 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
929 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3123);
930 fatal_exit(1);
931 }
932 {
933 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:AExpr> */
934 var_other = var_old_child;
935 {
936 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:AExpr> */
937 var12 = var7 == var_other;
938 var10 = var12;
939 goto RET_LABEL11;
940 RET_LABEL11:(void)0;
941 }
942 }
943 var8 = var10;
944 goto RET_LABEL9;
945 RET_LABEL9:(void)0;
946 }
947 }
948 if (var8){
949 /* <var_new_child:nullable ANode> isa AExpr */
950 cltype14 = type_nitc__AExpr.color;
951 idtype15 = type_nitc__AExpr.id;
952 if(var_new_child == NULL) {
953 var13 = 0;
954 } else {
955 if(cltype14 >= var_new_child->type->table_size) {
956 var13 = 0;
957 } else {
958 var13 = var_new_child->type->type_table[cltype14] == idtype15;
959 }
960 }
961 if (unlikely(!var13)) {
962 var_class_name16 = var_new_child == NULL ? "null" : var_new_child->type->name;
963 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name16);
964 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3124);
965 fatal_exit(1);
966 }
967 {
968 nitc__parser_prod___AWhileExpr___n_expr_61d(self, var_new_child); /* Direct call parser_prod#AWhileExpr#n_expr= on <self:AWhileExpr>*/
969 }
970 goto RET_LABEL;
971 } else {
972 }
973 var17 = self->attrs[COLOR_nitc__parser_nodes__AWhileExpr___n_kwdo].val; /* _n_kwdo on <self:AWhileExpr> */
974 if (unlikely(var17 == NULL)) {
975 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwdo");
976 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3127);
977 fatal_exit(1);
978 }
979 {
980 { /* Inline kernel#Object#== (var17,var_old_child) on <var17:TKwdo> */
981 var_other = var_old_child;
982 {
983 { /* Inline kernel#Object#is_same_instance (var17,var_other) on <var17:TKwdo> */
984 var22 = var17 == var_other;
985 var20 = var22;
986 goto RET_LABEL21;
987 RET_LABEL21:(void)0;
988 }
989 }
990 var18 = var20;
991 goto RET_LABEL19;
992 RET_LABEL19:(void)0;
993 }
994 }
995 if (var18){
996 /* <var_new_child:nullable ANode> isa TKwdo */
997 cltype24 = type_nitc__TKwdo.color;
998 idtype25 = type_nitc__TKwdo.id;
999 if(var_new_child == NULL) {
1000 var23 = 0;
1001 } else {
1002 if(cltype24 >= var_new_child->type->table_size) {
1003 var23 = 0;
1004 } else {
1005 var23 = var_new_child->type->type_table[cltype24] == idtype25;
1006 }
1007 }
1008 if (unlikely(!var23)) {
1009 var_class_name26 = var_new_child == NULL ? "null" : var_new_child->type->name;
1010 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwdo", var_class_name26);
1011 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3128);
1012 fatal_exit(1);
1013 }
1014 {
1015 nitc__parser_prod___AWhileExpr___n_kwdo_61d(self, var_new_child); /* Direct call parser_prod#AWhileExpr#n_kwdo= on <self:AWhileExpr>*/
1016 }
1017 goto RET_LABEL;
1018 } else {
1019 }
1020 var27 = self->attrs[COLOR_nitc__parser_nodes__AWhileExpr___n_block].val; /* _n_block on <self:AWhileExpr> */
1021 if (var27 == NULL) {
1022 var28 = 0; /* <var_old_child:ANode> cannot be null */
1023 } else {
1024 { /* Inline kernel#Object#== (var27,var_old_child) on <var27:nullable AExpr> */
1025 var_other = var_old_child;
1026 {
1027 { /* Inline kernel#Object#is_same_instance (var27,var_other) on <var27:nullable AExpr(AExpr)> */
1028 var33 = var27 == var_other;
1029 var31 = var33;
1030 goto RET_LABEL32;
1031 RET_LABEL32:(void)0;
1032 }
1033 }
1034 var29 = var31;
1035 goto RET_LABEL30;
1036 RET_LABEL30:(void)0;
1037 }
1038 var28 = var29;
1039 }
1040 if (var28){
1041 /* <var_new_child:nullable ANode> isa nullable AExpr */
1042 cltype35 = type_nullable__nitc__AExpr.color;
1043 idtype36 = type_nullable__nitc__AExpr.id;
1044 if(var_new_child == NULL) {
1045 var34 = 1;
1046 } else {
1047 if(cltype35 >= var_new_child->type->table_size) {
1048 var34 = 0;
1049 } else {
1050 var34 = var_new_child->type->type_table[cltype35] == idtype36;
1051 }
1052 }
1053 if (unlikely(!var34)) {
1054 var_class_name37 = var_new_child == NULL ? "null" : var_new_child->type->name;
1055 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AExpr", var_class_name37);
1056 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3132);
1057 fatal_exit(1);
1058 }
1059 {
1060 nitc__parser_prod___AWhileExpr___n_block_61d(self, var_new_child); /* Direct call parser_prod#AWhileExpr#n_block= on <self:AWhileExpr>*/
1061 }
1062 goto RET_LABEL;
1063 } else {
1064 }
1065 var38 = self->attrs[COLOR_nitc__parser_nodes__ALabelable___n_label].val; /* _n_label on <self:AWhileExpr> */
1066 if (var38 == NULL) {
1067 var39 = 0; /* <var_old_child:ANode> cannot be null */
1068 } else {
1069 { /* Inline kernel#Object#== (var38,var_old_child) on <var38:nullable ALabel> */
1070 var_other = var_old_child;
1071 {
1072 { /* Inline kernel#Object#is_same_instance (var38,var_other) on <var38:nullable ALabel(ALabel)> */
1073 var44 = var38 == var_other;
1074 var42 = var44;
1075 goto RET_LABEL43;
1076 RET_LABEL43:(void)0;
1077 }
1078 }
1079 var40 = var42;
1080 goto RET_LABEL41;
1081 RET_LABEL41:(void)0;
1082 }
1083 var39 = var40;
1084 }
1085 if (var39){
1086 /* <var_new_child:nullable ANode> isa nullable ALabel */
1087 cltype46 = type_nullable__nitc__ALabel.color;
1088 idtype47 = type_nullable__nitc__ALabel.id;
1089 if(var_new_child == NULL) {
1090 var45 = 1;
1091 } else {
1092 if(cltype46 >= var_new_child->type->table_size) {
1093 var45 = 0;
1094 } else {
1095 var45 = var_new_child->type->type_table[cltype46] == idtype47;
1096 }
1097 }
1098 if (unlikely(!var45)) {
1099 var_class_name48 = var_new_child == NULL ? "null" : var_new_child->type->name;
1100 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ALabel", var_class_name48);
1101 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3136);
1102 fatal_exit(1);
1103 }
1104 {
1105 nitc__parser_prod___AWhileExpr___nitc__parser_nodes__ALabelable__n_label_61d(self, var_new_child); /* Direct call parser_prod#AWhileExpr#n_label= on <self:AWhileExpr>*/
1106 }
1107 goto RET_LABEL;
1108 } else {
1109 }
1110 RET_LABEL:;
1111 }
1112 /* method parser_prod#AWhileExpr#n_kwwhile= for (self: AWhileExpr, TKwwhile) */
1113 void nitc__parser_prod___AWhileExpr___n_kwwhile_61d(val* self, val* p0) {
1114 val* var_node /* var node: TKwwhile */;
1115 var_node = p0;
1116 self->attrs[COLOR_nitc__parser_nodes__AWhileExpr___n_kwwhile].val = var_node; /* _n_kwwhile on <self:AWhileExpr> */
1117 {
1118 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwwhile> */
1119 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwwhile> */
1120 RET_LABEL1:(void)0;
1121 }
1122 }
1123 RET_LABEL:;
1124 }
1125 /* method parser_prod#AWhileExpr#n_expr= for (self: AWhileExpr, AExpr) */
1126 void nitc__parser_prod___AWhileExpr___n_expr_61d(val* self, val* p0) {
1127 val* var_node /* var node: AExpr */;
1128 var_node = p0;
1129 self->attrs[COLOR_nitc__parser_nodes__AWhileExpr___n_expr].val = var_node; /* _n_expr on <self:AWhileExpr> */
1130 {
1131 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
1132 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
1133 RET_LABEL1:(void)0;
1134 }
1135 }
1136 RET_LABEL:;
1137 }
1138 /* method parser_prod#AWhileExpr#n_kwdo= for (self: AWhileExpr, TKwdo) */
1139 void nitc__parser_prod___AWhileExpr___n_kwdo_61d(val* self, val* p0) {
1140 val* var_node /* var node: TKwdo */;
1141 var_node = p0;
1142 self->attrs[COLOR_nitc__parser_nodes__AWhileExpr___n_kwdo].val = var_node; /* _n_kwdo on <self:AWhileExpr> */
1143 {
1144 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwdo> */
1145 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwdo> */
1146 RET_LABEL1:(void)0;
1147 }
1148 }
1149 RET_LABEL:;
1150 }
1151 /* method parser_prod#AWhileExpr#n_block= for (self: AWhileExpr, nullable AExpr) */
1152 void nitc__parser_prod___AWhileExpr___n_block_61d(val* self, val* p0) {
1153 val* var_node /* var node: nullable AExpr */;
1154 short int var /* : Bool */;
1155 short int var1 /* : Bool */;
1156 val* var_other /* var other: nullable Object */;
1157 short int var3 /* : Bool */;
1158 short int var4 /* : Bool */;
1159 var_node = p0;
1160 self->attrs[COLOR_nitc__parser_nodes__AWhileExpr___n_block].val = var_node; /* _n_block on <self:AWhileExpr> */
1161 if (var_node == NULL) {
1162 var = 0; /* is null */
1163 } else {
1164 var = 1; /* arg is null and recv is not */
1165 }
1166 if (0) {
1167 { /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable AExpr> */
1168 var_other = ((val*)NULL);
1169 {
1170 var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable AExpr(AExpr)>*/
1171 }
1172 var4 = !var3;
1173 var1 = var4;
1174 goto RET_LABEL2;
1175 RET_LABEL2:(void)0;
1176 }
1177 var = var1;
1178 }
1179 if (var){
1180 {
1181 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AExpr(AExpr)> */
1182 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AExpr(AExpr)> */
1183 RET_LABEL5:(void)0;
1184 }
1185 }
1186 } else {
1187 }
1188 RET_LABEL:;
1189 }
1190 /* method parser_prod#AWhileExpr#n_label= for (self: AWhileExpr, nullable ALabel) */
1191 void nitc__parser_prod___AWhileExpr___nitc__parser_nodes__ALabelable__n_label_61d(val* self, val* p0) {
1192 val* var_node /* var node: nullable ALabel */;
1193 short int var /* : Bool */;
1194 short int var1 /* : Bool */;
1195 val* var_other /* var other: nullable Object */;
1196 short int var3 /* : Bool */;
1197 short int var4 /* : Bool */;
1198 var_node = p0;
1199 self->attrs[COLOR_nitc__parser_nodes__ALabelable___n_label].val = var_node; /* _n_label on <self:AWhileExpr> */
1200 if (var_node == NULL) {
1201 var = 0; /* is null */
1202 } else {
1203 var = 1; /* arg is null and recv is not */
1204 }
1205 if (0) {
1206 { /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable ALabel> */
1207 var_other = ((val*)NULL);
1208 {
1209 var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable ALabel(ALabel)>*/
1210 }
1211 var4 = !var3;
1212 var1 = var4;
1213 goto RET_LABEL2;
1214 RET_LABEL2:(void)0;
1215 }
1216 var = var1;
1217 }
1218 if (var){
1219 {
1220 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable ALabel(ALabel)> */
1221 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable ALabel(ALabel)> */
1222 RET_LABEL5:(void)0;
1223 }
1224 }
1225 } else {
1226 }
1227 RET_LABEL:;
1228 }
1229 /* method parser_prod#AWhileExpr#visit_all for (self: AWhileExpr, Visitor) */
1230 void nitc__parser_prod___AWhileExpr___nitc__parser_nodes__ANode__visit_all(val* self, val* p0) {
1231 val* var_v /* var v: Visitor */;
1232 val* var /* : TKwwhile */;
1233 val* var1 /* : AExpr */;
1234 val* var2 /* : TKwdo */;
1235 val* var3 /* : nullable AExpr */;
1236 val* var4 /* : nullable ALabel */;
1237 var_v = p0;
1238 var = self->attrs[COLOR_nitc__parser_nodes__AWhileExpr___n_kwwhile].val; /* _n_kwwhile on <self:AWhileExpr> */
1239 if (unlikely(var == NULL)) {
1240 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwwhile");
1241 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3170);
1242 fatal_exit(1);
1243 }
1244 {
1245 nitc___nitc__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1246 }
1247 var1 = self->attrs[COLOR_nitc__parser_nodes__AWhileExpr___n_expr].val; /* _n_expr on <self:AWhileExpr> */
1248 if (unlikely(var1 == NULL)) {
1249 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1250 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3171);
1251 fatal_exit(1);
1252 }
1253 {
1254 nitc___nitc__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1255 }
1256 var2 = self->attrs[COLOR_nitc__parser_nodes__AWhileExpr___n_kwdo].val; /* _n_kwdo on <self:AWhileExpr> */
1257 if (unlikely(var2 == NULL)) {
1258 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwdo");
1259 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3172);
1260 fatal_exit(1);
1261 }
1262 {
1263 nitc___nitc__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1264 }
1265 var3 = self->attrs[COLOR_nitc__parser_nodes__AWhileExpr___n_block].val; /* _n_block on <self:AWhileExpr> */
1266 {
1267 nitc___nitc__Visitor___enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1268 }
1269 var4 = self->attrs[COLOR_nitc__parser_nodes__ALabelable___n_label].val; /* _n_label on <self:AWhileExpr> */
1270 {
1271 nitc___nitc__Visitor___enter_visit(var_v, var4); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1272 }
1273 RET_LABEL:;
1274 }
1275 /* method parser_prod#ALoopExpr#init_aloopexpr for (self: ALoopExpr, nullable TKwloop, nullable AExpr, nullable ALabel) */
1276 void nitc__parser_prod___ALoopExpr___init_aloopexpr(val* self, val* p0, val* p1, val* p2) {
1277 val* var_n_kwloop /* var n_kwloop: nullable TKwloop */;
1278 val* var_n_block /* var n_block: nullable AExpr */;
1279 val* var_n_label /* var n_label: nullable ALabel */;
1280 short int var /* : Bool */;
1281 short int var3 /* : Bool */;
1282 val* var_other /* var other: nullable Object */;
1283 short int var5 /* : Bool */;
1284 short int var6 /* : Bool */;
1285 short int var8 /* : Bool */;
1286 short int var9 /* : Bool */;
1287 short int var11 /* : Bool */;
1288 short int var12 /* : Bool */;
1289 {
1290 { /* Inline kernel#Object#init (self) on <self:ALoopExpr> */
1291 RET_LABEL1:(void)0;
1292 }
1293 }
1294 var_n_kwloop = p0;
1295 var_n_block = p1;
1296 var_n_label = p2;
1297 if (unlikely(var_n_kwloop == NULL)) {
1298 PRINT_ERROR("Runtime error: %s", "Cast failed");
1299 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3184);
1300 fatal_exit(1);
1301 }
1302 self->attrs[COLOR_nitc__parser_nodes__ALoopExpr___n_kwloop].val = var_n_kwloop; /* _n_kwloop on <self:ALoopExpr> */
1303 if (var_n_kwloop == NULL) {
1304 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1305 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3185);
1306 fatal_exit(1);
1307 } else {
1308 { /* Inline parser_nodes#ANode#parent= (var_n_kwloop,self) on <var_n_kwloop:nullable TKwloop> */
1309 if (unlikely(var_n_kwloop == NULL)) {
1310 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1311 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
1312 fatal_exit(1);
1313 }
1314 var_n_kwloop->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwloop:nullable TKwloop> */
1315 RET_LABEL2:(void)0;
1316 }
1317 }
1318 self->attrs[COLOR_nitc__parser_nodes__ALoopExpr___n_block].val = var_n_block; /* _n_block on <self:ALoopExpr> */
1319 if (var_n_block == NULL) {
1320 var = 0; /* is null */
1321 } else {
1322 var = 1; /* arg is null and recv is not */
1323 }
1324 if (0) {
1325 { /* Inline kernel#Object#!= (var_n_block,((val*)NULL)) on <var_n_block:nullable AExpr> */
1326 var_other = ((val*)NULL);
1327 {
1328 var5 = ((short int(*)(val* self, val* p0))(var_n_block->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_n_block, var_other); /* == on <var_n_block:nullable AExpr(AExpr)>*/
1329 }
1330 var6 = !var5;
1331 var3 = var6;
1332 goto RET_LABEL4;
1333 RET_LABEL4:(void)0;
1334 }
1335 var = var3;
1336 }
1337 if (var){
1338 {
1339 { /* Inline parser_nodes#ANode#parent= (var_n_block,self) on <var_n_block:nullable AExpr(AExpr)> */
1340 var_n_block->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_block:nullable AExpr(AExpr)> */
1341 RET_LABEL7:(void)0;
1342 }
1343 }
1344 } else {
1345 }
1346 self->attrs[COLOR_nitc__parser_nodes__ALabelable___n_label].val = var_n_label; /* _n_label on <self:ALoopExpr> */
1347 if (var_n_label == NULL) {
1348 var8 = 0; /* is null */
1349 } else {
1350 var8 = 1; /* arg is null and recv is not */
1351 }
1352 if (0) {
1353 { /* Inline kernel#Object#!= (var_n_label,((val*)NULL)) on <var_n_label:nullable ALabel> */
1354 var_other = ((val*)NULL);
1355 {
1356 var11 = ((short int(*)(val* self, val* p0))(var_n_label->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_n_label, var_other); /* == on <var_n_label:nullable ALabel(ALabel)>*/
1357 }
1358 var12 = !var11;
1359 var9 = var12;
1360 goto RET_LABEL10;
1361 RET_LABEL10:(void)0;
1362 }
1363 var8 = var9;
1364 }
1365 if (var8){
1366 {
1367 { /* Inline parser_nodes#ANode#parent= (var_n_label,self) on <var_n_label:nullable ALabel(ALabel)> */
1368 var_n_label->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_label:nullable ALabel(ALabel)> */
1369 RET_LABEL13:(void)0;
1370 }
1371 }
1372 } else {
1373 }
1374 RET_LABEL:;
1375 }
1376 /* method parser_prod#ALoopExpr#replace_child for (self: ALoopExpr, ANode, nullable ANode) */
1377 void nitc__parser_prod___ALoopExpr___nitc__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
1378 val* var_old_child /* var old_child: ANode */;
1379 val* var_new_child /* var new_child: nullable ANode */;
1380 val* var /* : TKwloop */;
1381 short int var1 /* : Bool */;
1382 val* var_other /* var other: nullable Object */;
1383 short int var3 /* : Bool */;
1384 short int var5 /* : Bool */;
1385 short int var6 /* : Bool */;
1386 int cltype;
1387 int idtype;
1388 const char* var_class_name;
1389 val* var7 /* : nullable AExpr */;
1390 short int var8 /* : Bool */;
1391 short int var9 /* : Bool */;
1392 short int var11 /* : Bool */;
1393 short int var13 /* : Bool */;
1394 short int var14 /* : Bool */;
1395 int cltype15;
1396 int idtype16;
1397 const char* var_class_name17;
1398 val* var18 /* : nullable ALabel */;
1399 short int var19 /* : Bool */;
1400 short int var20 /* : Bool */;
1401 short int var22 /* : Bool */;
1402 short int var24 /* : Bool */;
1403 short int var25 /* : Bool */;
1404 int cltype26;
1405 int idtype27;
1406 const char* var_class_name28;
1407 var_old_child = p0;
1408 var_new_child = p1;
1409 var = self->attrs[COLOR_nitc__parser_nodes__ALoopExpr___n_kwloop].val; /* _n_kwloop on <self:ALoopExpr> */
1410 if (unlikely(var == NULL)) {
1411 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwloop");
1412 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3194);
1413 fatal_exit(1);
1414 }
1415 {
1416 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwloop> */
1417 var_other = var_old_child;
1418 {
1419 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TKwloop> */
1420 var5 = var == var_other;
1421 var3 = var5;
1422 goto RET_LABEL4;
1423 RET_LABEL4:(void)0;
1424 }
1425 }
1426 var1 = var3;
1427 goto RET_LABEL2;
1428 RET_LABEL2:(void)0;
1429 }
1430 }
1431 if (var1){
1432 /* <var_new_child:nullable ANode> isa TKwloop */
1433 cltype = type_nitc__TKwloop.color;
1434 idtype = type_nitc__TKwloop.id;
1435 if(var_new_child == NULL) {
1436 var6 = 0;
1437 } else {
1438 if(cltype >= var_new_child->type->table_size) {
1439 var6 = 0;
1440 } else {
1441 var6 = var_new_child->type->type_table[cltype] == idtype;
1442 }
1443 }
1444 if (unlikely(!var6)) {
1445 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
1446 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwloop", var_class_name);
1447 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3195);
1448 fatal_exit(1);
1449 }
1450 {
1451 nitc__parser_prod___ALoopExpr___n_kwloop_61d(self, var_new_child); /* Direct call parser_prod#ALoopExpr#n_kwloop= on <self:ALoopExpr>*/
1452 }
1453 goto RET_LABEL;
1454 } else {
1455 }
1456 var7 = self->attrs[COLOR_nitc__parser_nodes__ALoopExpr___n_block].val; /* _n_block on <self:ALoopExpr> */
1457 if (var7 == NULL) {
1458 var8 = 0; /* <var_old_child:ANode> cannot be null */
1459 } else {
1460 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:nullable AExpr> */
1461 var_other = var_old_child;
1462 {
1463 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:nullable AExpr(AExpr)> */
1464 var13 = var7 == var_other;
1465 var11 = var13;
1466 goto RET_LABEL12;
1467 RET_LABEL12:(void)0;
1468 }
1469 }
1470 var9 = var11;
1471 goto RET_LABEL10;
1472 RET_LABEL10:(void)0;
1473 }
1474 var8 = var9;
1475 }
1476 if (var8){
1477 /* <var_new_child:nullable ANode> isa nullable AExpr */
1478 cltype15 = type_nullable__nitc__AExpr.color;
1479 idtype16 = type_nullable__nitc__AExpr.id;
1480 if(var_new_child == NULL) {
1481 var14 = 1;
1482 } else {
1483 if(cltype15 >= var_new_child->type->table_size) {
1484 var14 = 0;
1485 } else {
1486 var14 = var_new_child->type->type_table[cltype15] == idtype16;
1487 }
1488 }
1489 if (unlikely(!var14)) {
1490 var_class_name17 = var_new_child == NULL ? "null" : var_new_child->type->name;
1491 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AExpr", var_class_name17);
1492 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3199);
1493 fatal_exit(1);
1494 }
1495 {
1496 nitc__parser_prod___ALoopExpr___n_block_61d(self, var_new_child); /* Direct call parser_prod#ALoopExpr#n_block= on <self:ALoopExpr>*/
1497 }
1498 goto RET_LABEL;
1499 } else {
1500 }
1501 var18 = self->attrs[COLOR_nitc__parser_nodes__ALabelable___n_label].val; /* _n_label on <self:ALoopExpr> */
1502 if (var18 == NULL) {
1503 var19 = 0; /* <var_old_child:ANode> cannot be null */
1504 } else {
1505 { /* Inline kernel#Object#== (var18,var_old_child) on <var18:nullable ALabel> */
1506 var_other = var_old_child;
1507 {
1508 { /* Inline kernel#Object#is_same_instance (var18,var_other) on <var18:nullable ALabel(ALabel)> */
1509 var24 = var18 == var_other;
1510 var22 = var24;
1511 goto RET_LABEL23;
1512 RET_LABEL23:(void)0;
1513 }
1514 }
1515 var20 = var22;
1516 goto RET_LABEL21;
1517 RET_LABEL21:(void)0;
1518 }
1519 var19 = var20;
1520 }
1521 if (var19){
1522 /* <var_new_child:nullable ANode> isa nullable ALabel */
1523 cltype26 = type_nullable__nitc__ALabel.color;
1524 idtype27 = type_nullable__nitc__ALabel.id;
1525 if(var_new_child == NULL) {
1526 var25 = 1;
1527 } else {
1528 if(cltype26 >= var_new_child->type->table_size) {
1529 var25 = 0;
1530 } else {
1531 var25 = var_new_child->type->type_table[cltype26] == idtype27;
1532 }
1533 }
1534 if (unlikely(!var25)) {
1535 var_class_name28 = var_new_child == NULL ? "null" : var_new_child->type->name;
1536 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ALabel", var_class_name28);
1537 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3203);
1538 fatal_exit(1);
1539 }
1540 {
1541 nitc__parser_prod___ALoopExpr___nitc__parser_nodes__ALabelable__n_label_61d(self, var_new_child); /* Direct call parser_prod#ALoopExpr#n_label= on <self:ALoopExpr>*/
1542 }
1543 goto RET_LABEL;
1544 } else {
1545 }
1546 RET_LABEL:;
1547 }
1548 /* method parser_prod#ALoopExpr#n_kwloop= for (self: ALoopExpr, TKwloop) */
1549 void nitc__parser_prod___ALoopExpr___n_kwloop_61d(val* self, val* p0) {
1550 val* var_node /* var node: TKwloop */;
1551 var_node = p0;
1552 self->attrs[COLOR_nitc__parser_nodes__ALoopExpr___n_kwloop].val = var_node; /* _n_kwloop on <self:ALoopExpr> */
1553 {
1554 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwloop> */
1555 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwloop> */
1556 RET_LABEL1:(void)0;
1557 }
1558 }
1559 RET_LABEL:;
1560 }
1561 /* method parser_prod#ALoopExpr#n_block= for (self: ALoopExpr, nullable AExpr) */
1562 void nitc__parser_prod___ALoopExpr___n_block_61d(val* self, val* p0) {
1563 val* var_node /* var node: nullable AExpr */;
1564 short int var /* : Bool */;
1565 short int var1 /* : Bool */;
1566 val* var_other /* var other: nullable Object */;
1567 short int var3 /* : Bool */;
1568 short int var4 /* : Bool */;
1569 var_node = p0;
1570 self->attrs[COLOR_nitc__parser_nodes__ALoopExpr___n_block].val = var_node; /* _n_block on <self:ALoopExpr> */
1571 if (var_node == NULL) {
1572 var = 0; /* is null */
1573 } else {
1574 var = 1; /* arg is null and recv is not */
1575 }
1576 if (0) {
1577 { /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable AExpr> */
1578 var_other = ((val*)NULL);
1579 {
1580 var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable AExpr(AExpr)>*/
1581 }
1582 var4 = !var3;
1583 var1 = var4;
1584 goto RET_LABEL2;
1585 RET_LABEL2:(void)0;
1586 }
1587 var = var1;
1588 }
1589 if (var){
1590 {
1591 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AExpr(AExpr)> */
1592 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AExpr(AExpr)> */
1593 RET_LABEL5:(void)0;
1594 }
1595 }
1596 } else {
1597 }
1598 RET_LABEL:;
1599 }
1600 /* method parser_prod#ALoopExpr#n_label= for (self: ALoopExpr, nullable ALabel) */
1601 void nitc__parser_prod___ALoopExpr___nitc__parser_nodes__ALabelable__n_label_61d(val* self, val* p0) {
1602 val* var_node /* var node: nullable ALabel */;
1603 short int var /* : Bool */;
1604 short int var1 /* : Bool */;
1605 val* var_other /* var other: nullable Object */;
1606 short int var3 /* : Bool */;
1607 short int var4 /* : Bool */;
1608 var_node = p0;
1609 self->attrs[COLOR_nitc__parser_nodes__ALabelable___n_label].val = var_node; /* _n_label on <self:ALoopExpr> */
1610 if (var_node == NULL) {
1611 var = 0; /* is null */
1612 } else {
1613 var = 1; /* arg is null and recv is not */
1614 }
1615 if (0) {
1616 { /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable ALabel> */
1617 var_other = ((val*)NULL);
1618 {
1619 var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable ALabel(ALabel)>*/
1620 }
1621 var4 = !var3;
1622 var1 = var4;
1623 goto RET_LABEL2;
1624 RET_LABEL2:(void)0;
1625 }
1626 var = var1;
1627 }
1628 if (var){
1629 {
1630 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable ALabel(ALabel)> */
1631 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable ALabel(ALabel)> */
1632 RET_LABEL5:(void)0;
1633 }
1634 }
1635 } else {
1636 }
1637 RET_LABEL:;
1638 }
1639 /* method parser_prod#ALoopExpr#visit_all for (self: ALoopExpr, Visitor) */
1640 void nitc__parser_prod___ALoopExpr___nitc__parser_nodes__ANode__visit_all(val* self, val* p0) {
1641 val* var_v /* var v: Visitor */;
1642 val* var /* : TKwloop */;
1643 val* var1 /* : nullable AExpr */;
1644 val* var2 /* : nullable ALabel */;
1645 var_v = p0;
1646 var = self->attrs[COLOR_nitc__parser_nodes__ALoopExpr___n_kwloop].val; /* _n_kwloop on <self:ALoopExpr> */
1647 if (unlikely(var == NULL)) {
1648 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwloop");
1649 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3227);
1650 fatal_exit(1);
1651 }
1652 {
1653 nitc___nitc__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1654 }
1655 var1 = self->attrs[COLOR_nitc__parser_nodes__ALoopExpr___n_block].val; /* _n_block on <self:ALoopExpr> */
1656 {
1657 nitc___nitc__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1658 }
1659 var2 = self->attrs[COLOR_nitc__parser_nodes__ALabelable___n_label].val; /* _n_label on <self:ALoopExpr> */
1660 {
1661 nitc___nitc__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1662 }
1663 RET_LABEL:;
1664 }
1665 /* method parser_prod#AForExpr#init_aforexpr for (self: AForExpr, nullable TKwfor, Collection[Object], nullable TKwdo, nullable AExpr, nullable ALabel) */
1666 void nitc__parser_prod___AForExpr___init_aforexpr(val* self, val* p0, val* p1, val* p2, val* p3, val* p4) {
1667 val* var_n_kwfor /* var n_kwfor: nullable TKwfor */;
1668 val* var_n_groups /* var n_groups: Collection[Object] */;
1669 val* var_n_kwdo /* var n_kwdo: nullable TKwdo */;
1670 val* var_n_block /* var n_block: nullable AExpr */;
1671 val* var_n_label /* var n_label: nullable ALabel */;
1672 val* var /* : ANodes[AForGroup] */;
1673 val* var4 /* : ANodes[AForGroup] */;
1674 short int var6 /* : Bool */;
1675 short int var7 /* : Bool */;
1676 val* var_other /* var other: nullable Object */;
1677 short int var9 /* : Bool */;
1678 short int var10 /* : Bool */;
1679 short int var12 /* : Bool */;
1680 short int var13 /* : Bool */;
1681 short int var15 /* : Bool */;
1682 short int var16 /* : Bool */;
1683 {
1684 { /* Inline kernel#Object#init (self) on <self:AForExpr> */
1685 RET_LABEL1:(void)0;
1686 }
1687 }
1688 var_n_kwfor = p0;
1689 var_n_groups = p1;
1690 var_n_kwdo = p2;
1691 var_n_block = p3;
1692 var_n_label = p4;
1693 if (unlikely(var_n_kwfor == NULL)) {
1694 PRINT_ERROR("Runtime error: %s", "Cast failed");
1695 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3241);
1696 fatal_exit(1);
1697 }
1698 self->attrs[COLOR_nitc__parser_nodes__AForExpr___n_kwfor].val = var_n_kwfor; /* _n_kwfor on <self:AForExpr> */
1699 if (var_n_kwfor == NULL) {
1700 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1701 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3242);
1702 fatal_exit(1);
1703 } else {
1704 { /* Inline parser_nodes#ANode#parent= (var_n_kwfor,self) on <var_n_kwfor:nullable TKwfor> */
1705 if (unlikely(var_n_kwfor == NULL)) {
1706 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1707 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
1708 fatal_exit(1);
1709 }
1710 var_n_kwfor->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwfor:nullable TKwfor> */
1711 RET_LABEL2:(void)0;
1712 }
1713 }
1714 {
1715 { /* Inline parser_nodes#AForExpr#n_groups (self) on <self:AForExpr> */
1716 var4 = self->attrs[COLOR_nitc__parser_nodes__AForExpr___n_groups].val; /* _n_groups on <self:AForExpr> */
1717 if (unlikely(var4 == NULL)) {
1718 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_groups");
1719 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1920);
1720 fatal_exit(1);
1721 }
1722 var = var4;
1723 RET_LABEL3:(void)0;
1724 }
1725 }
1726 {
1727 nitc___nitc__ANodes___unsafe_add_all(var, var_n_groups); /* Direct call parser_nodes#ANodes#unsafe_add_all on <var:ANodes[AForGroup]>*/
1728 }
1729 if (unlikely(var_n_kwdo == NULL)) {
1730 PRINT_ERROR("Runtime error: %s", "Cast failed");
1731 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3244);
1732 fatal_exit(1);
1733 }
1734 self->attrs[COLOR_nitc__parser_nodes__AForExpr___n_kwdo].val = var_n_kwdo; /* _n_kwdo on <self:AForExpr> */
1735 if (var_n_kwdo == NULL) {
1736 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1737 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3245);
1738 fatal_exit(1);
1739 } else {
1740 { /* Inline parser_nodes#ANode#parent= (var_n_kwdo,self) on <var_n_kwdo:nullable TKwdo> */
1741 if (unlikely(var_n_kwdo == NULL)) {
1742 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1743 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
1744 fatal_exit(1);
1745 }
1746 var_n_kwdo->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwdo:nullable TKwdo> */
1747 RET_LABEL5:(void)0;
1748 }
1749 }
1750 self->attrs[COLOR_nitc__parser_nodes__AForExpr___n_block].val = var_n_block; /* _n_block on <self:AForExpr> */
1751 if (var_n_block == NULL) {
1752 var6 = 0; /* is null */
1753 } else {
1754 var6 = 1; /* arg is null and recv is not */
1755 }
1756 if (0) {
1757 { /* Inline kernel#Object#!= (var_n_block,((val*)NULL)) on <var_n_block:nullable AExpr> */
1758 var_other = ((val*)NULL);
1759 {
1760 var9 = ((short int(*)(val* self, val* p0))(var_n_block->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_n_block, var_other); /* == on <var_n_block:nullable AExpr(AExpr)>*/
1761 }
1762 var10 = !var9;
1763 var7 = var10;
1764 goto RET_LABEL8;
1765 RET_LABEL8:(void)0;
1766 }
1767 var6 = var7;
1768 }
1769 if (var6){
1770 {
1771 { /* Inline parser_nodes#ANode#parent= (var_n_block,self) on <var_n_block:nullable AExpr(AExpr)> */
1772 var_n_block->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_block:nullable AExpr(AExpr)> */
1773 RET_LABEL11:(void)0;
1774 }
1775 }
1776 } else {
1777 }
1778 self->attrs[COLOR_nitc__parser_nodes__ALabelable___n_label].val = var_n_label; /* _n_label on <self:AForExpr> */
1779 if (var_n_label == NULL) {
1780 var12 = 0; /* is null */
1781 } else {
1782 var12 = 1; /* arg is null and recv is not */
1783 }
1784 if (0) {
1785 { /* Inline kernel#Object#!= (var_n_label,((val*)NULL)) on <var_n_label:nullable ALabel> */
1786 var_other = ((val*)NULL);
1787 {
1788 var15 = ((short int(*)(val* self, val* p0))(var_n_label->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_n_label, var_other); /* == on <var_n_label:nullable ALabel(ALabel)>*/
1789 }
1790 var16 = !var15;
1791 var13 = var16;
1792 goto RET_LABEL14;
1793 RET_LABEL14:(void)0;
1794 }
1795 var12 = var13;
1796 }
1797 if (var12){
1798 {
1799 { /* Inline parser_nodes#ANode#parent= (var_n_label,self) on <var_n_label:nullable ALabel(ALabel)> */
1800 var_n_label->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_label:nullable ALabel(ALabel)> */
1801 RET_LABEL17:(void)0;
1802 }
1803 }
1804 } else {
1805 }
1806 RET_LABEL:;
1807 }
1808 /* method parser_prod#AForExpr#replace_child for (self: AForExpr, ANode, nullable ANode) */
1809 void nitc__parser_prod___AForExpr___nitc__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
1810 val* var_old_child /* var old_child: ANode */;
1811 val* var_new_child /* var new_child: nullable ANode */;
1812 val* var /* : TKwfor */;
1813 short int var1 /* : Bool */;
1814 val* var_other /* var other: nullable Object */;
1815 short int var3 /* : Bool */;
1816 short int var5 /* : Bool */;
1817 short int var6 /* : Bool */;
1818 int cltype;
1819 int idtype;
1820 const char* var_class_name;
1821 val* var7 /* : ANodes[AForGroup] */;
1822 val* var9 /* : ANodes[AForGroup] */;
1823 short int var10 /* : Bool */;
1824 val* var11 /* : TKwdo */;
1825 short int var12 /* : Bool */;
1826 short int var14 /* : Bool */;
1827 short int var16 /* : Bool */;
1828 short int var17 /* : Bool */;
1829 int cltype18;
1830 int idtype19;
1831 const char* var_class_name20;
1832 val* var21 /* : nullable AExpr */;
1833 short int var22 /* : Bool */;
1834 short int var23 /* : Bool */;
1835 short int var25 /* : Bool */;
1836 short int var27 /* : Bool */;
1837 short int var28 /* : Bool */;
1838 int cltype29;
1839 int idtype30;
1840 const char* var_class_name31;
1841 val* var32 /* : nullable ALabel */;
1842 short int var33 /* : Bool */;
1843 short int var34 /* : Bool */;
1844 short int var36 /* : Bool */;
1845 short int var38 /* : Bool */;
1846 short int var39 /* : Bool */;
1847 int cltype40;
1848 int idtype41;
1849 const char* var_class_name42;
1850 var_old_child = p0;
1851 var_new_child = p1;
1852 var = self->attrs[COLOR_nitc__parser_nodes__AForExpr___n_kwfor].val; /* _n_kwfor on <self:AForExpr> */
1853 if (unlikely(var == NULL)) {
1854 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwfor");
1855 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3254);
1856 fatal_exit(1);
1857 }
1858 {
1859 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwfor> */
1860 var_other = var_old_child;
1861 {
1862 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TKwfor> */
1863 var5 = var == var_other;
1864 var3 = var5;
1865 goto RET_LABEL4;
1866 RET_LABEL4:(void)0;
1867 }
1868 }
1869 var1 = var3;
1870 goto RET_LABEL2;
1871 RET_LABEL2:(void)0;
1872 }
1873 }
1874 if (var1){
1875 /* <var_new_child:nullable ANode> isa TKwfor */
1876 cltype = type_nitc__TKwfor.color;
1877 idtype = type_nitc__TKwfor.id;
1878 if(var_new_child == NULL) {
1879 var6 = 0;
1880 } else {
1881 if(cltype >= var_new_child->type->table_size) {
1882 var6 = 0;
1883 } else {
1884 var6 = var_new_child->type->type_table[cltype] == idtype;
1885 }
1886 }
1887 if (unlikely(!var6)) {
1888 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
1889 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwfor", var_class_name);
1890 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3255);
1891 fatal_exit(1);
1892 }
1893 {
1894 nitc__parser_prod___AForExpr___n_kwfor_61d(self, var_new_child); /* Direct call parser_prod#AForExpr#n_kwfor= on <self:AForExpr>*/
1895 }
1896 goto RET_LABEL;
1897 } else {
1898 }
1899 {
1900 { /* Inline parser_nodes#AForExpr#n_groups (self) on <self:AForExpr> */
1901 var9 = self->attrs[COLOR_nitc__parser_nodes__AForExpr___n_groups].val; /* _n_groups on <self:AForExpr> */
1902 if (unlikely(var9 == NULL)) {
1903 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_groups");
1904 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1920);
1905 fatal_exit(1);
1906 }
1907 var7 = var9;
1908 RET_LABEL8:(void)0;
1909 }
1910 }
1911 {
1912 var10 = nitc___nitc__ANodes___replace_child(var7, var_old_child, var_new_child);
1913 }
1914 if (var10){
1915 goto RET_LABEL;
1916 } else {
1917 }
1918 var11 = self->attrs[COLOR_nitc__parser_nodes__AForExpr___n_kwdo].val; /* _n_kwdo on <self:AForExpr> */
1919 if (unlikely(var11 == NULL)) {
1920 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwdo");
1921 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3259);
1922 fatal_exit(1);
1923 }
1924 {
1925 { /* Inline kernel#Object#== (var11,var_old_child) on <var11:TKwdo> */
1926 var_other = var_old_child;
1927 {
1928 { /* Inline kernel#Object#is_same_instance (var11,var_other) on <var11:TKwdo> */
1929 var16 = var11 == var_other;
1930 var14 = var16;
1931 goto RET_LABEL15;
1932 RET_LABEL15:(void)0;
1933 }
1934 }
1935 var12 = var14;
1936 goto RET_LABEL13;
1937 RET_LABEL13:(void)0;
1938 }
1939 }
1940 if (var12){
1941 /* <var_new_child:nullable ANode> isa TKwdo */
1942 cltype18 = type_nitc__TKwdo.color;
1943 idtype19 = type_nitc__TKwdo.id;
1944 if(var_new_child == NULL) {
1945 var17 = 0;
1946 } else {
1947 if(cltype18 >= var_new_child->type->table_size) {
1948 var17 = 0;
1949 } else {
1950 var17 = var_new_child->type->type_table[cltype18] == idtype19;
1951 }
1952 }
1953 if (unlikely(!var17)) {
1954 var_class_name20 = var_new_child == NULL ? "null" : var_new_child->type->name;
1955 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwdo", var_class_name20);
1956 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3260);
1957 fatal_exit(1);
1958 }
1959 {
1960 nitc__parser_prod___AForExpr___n_kwdo_61d(self, var_new_child); /* Direct call parser_prod#AForExpr#n_kwdo= on <self:AForExpr>*/
1961 }
1962 goto RET_LABEL;
1963 } else {
1964 }
1965 var21 = self->attrs[COLOR_nitc__parser_nodes__AForExpr___n_block].val; /* _n_block on <self:AForExpr> */
1966 if (var21 == NULL) {
1967 var22 = 0; /* <var_old_child:ANode> cannot be null */
1968 } else {
1969 { /* Inline kernel#Object#== (var21,var_old_child) on <var21:nullable AExpr> */
1970 var_other = var_old_child;
1971 {
1972 { /* Inline kernel#Object#is_same_instance (var21,var_other) on <var21:nullable AExpr(AExpr)> */
1973 var27 = var21 == var_other;
1974 var25 = var27;
1975 goto RET_LABEL26;
1976 RET_LABEL26:(void)0;
1977 }
1978 }
1979 var23 = var25;
1980 goto RET_LABEL24;
1981 RET_LABEL24:(void)0;
1982 }
1983 var22 = var23;
1984 }
1985 if (var22){
1986 /* <var_new_child:nullable ANode> isa nullable AExpr */
1987 cltype29 = type_nullable__nitc__AExpr.color;
1988 idtype30 = type_nullable__nitc__AExpr.id;
1989 if(var_new_child == NULL) {
1990 var28 = 1;
1991 } else {
1992 if(cltype29 >= var_new_child->type->table_size) {
1993 var28 = 0;
1994 } else {
1995 var28 = var_new_child->type->type_table[cltype29] == idtype30;
1996 }
1997 }
1998 if (unlikely(!var28)) {
1999 var_class_name31 = var_new_child == NULL ? "null" : var_new_child->type->name;
2000 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AExpr", var_class_name31);
2001 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3264);
2002 fatal_exit(1);
2003 }
2004 {
2005 nitc__parser_prod___AForExpr___n_block_61d(self, var_new_child); /* Direct call parser_prod#AForExpr#n_block= on <self:AForExpr>*/
2006 }
2007 goto RET_LABEL;
2008 } else {
2009 }
2010 var32 = self->attrs[COLOR_nitc__parser_nodes__ALabelable___n_label].val; /* _n_label on <self:AForExpr> */
2011 if (var32 == NULL) {
2012 var33 = 0; /* <var_old_child:ANode> cannot be null */
2013 } else {
2014 { /* Inline kernel#Object#== (var32,var_old_child) on <var32:nullable ALabel> */
2015 var_other = var_old_child;
2016 {
2017 { /* Inline kernel#Object#is_same_instance (var32,var_other) on <var32:nullable ALabel(ALabel)> */
2018 var38 = var32 == var_other;
2019 var36 = var38;
2020 goto RET_LABEL37;
2021 RET_LABEL37:(void)0;
2022 }
2023 }
2024 var34 = var36;
2025 goto RET_LABEL35;
2026 RET_LABEL35:(void)0;
2027 }
2028 var33 = var34;
2029 }
2030 if (var33){
2031 /* <var_new_child:nullable ANode> isa nullable ALabel */
2032 cltype40 = type_nullable__nitc__ALabel.color;
2033 idtype41 = type_nullable__nitc__ALabel.id;
2034 if(var_new_child == NULL) {
2035 var39 = 1;
2036 } else {
2037 if(cltype40 >= var_new_child->type->table_size) {
2038 var39 = 0;
2039 } else {
2040 var39 = var_new_child->type->type_table[cltype40] == idtype41;
2041 }
2042 }
2043 if (unlikely(!var39)) {
2044 var_class_name42 = var_new_child == NULL ? "null" : var_new_child->type->name;
2045 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ALabel", var_class_name42);
2046 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3268);
2047 fatal_exit(1);
2048 }
2049 {
2050 nitc__parser_prod___AForExpr___nitc__parser_nodes__ALabelable__n_label_61d(self, var_new_child); /* Direct call parser_prod#AForExpr#n_label= on <self:AForExpr>*/
2051 }
2052 goto RET_LABEL;
2053 } else {
2054 }
2055 RET_LABEL:;
2056 }
2057 /* method parser_prod#AForExpr#n_kwfor= for (self: AForExpr, TKwfor) */
2058 void nitc__parser_prod___AForExpr___n_kwfor_61d(val* self, val* p0) {
2059 val* var_node /* var node: TKwfor */;
2060 var_node = p0;
2061 self->attrs[COLOR_nitc__parser_nodes__AForExpr___n_kwfor].val = var_node; /* _n_kwfor on <self:AForExpr> */
2062 {
2063 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwfor> */
2064 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwfor> */
2065 RET_LABEL1:(void)0;
2066 }
2067 }
2068 RET_LABEL:;
2069 }
2070 /* method parser_prod#AForExpr#n_kwdo= for (self: AForExpr, TKwdo) */
2071 void nitc__parser_prod___AForExpr___n_kwdo_61d(val* self, val* p0) {
2072 val* var_node /* var node: TKwdo */;
2073 var_node = p0;
2074 self->attrs[COLOR_nitc__parser_nodes__AForExpr___n_kwdo].val = var_node; /* _n_kwdo on <self:AForExpr> */
2075 {
2076 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwdo> */
2077 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwdo> */
2078 RET_LABEL1:(void)0;
2079 }
2080 }
2081 RET_LABEL:;
2082 }
2083 /* method parser_prod#AForExpr#n_block= for (self: AForExpr, nullable AExpr) */
2084 void nitc__parser_prod___AForExpr___n_block_61d(val* self, val* p0) {
2085 val* var_node /* var node: nullable AExpr */;
2086 short int var /* : Bool */;
2087 short int var1 /* : Bool */;
2088 val* var_other /* var other: nullable Object */;
2089 short int var3 /* : Bool */;
2090 short int var4 /* : Bool */;
2091 var_node = p0;
2092 self->attrs[COLOR_nitc__parser_nodes__AForExpr___n_block].val = var_node; /* _n_block on <self:AForExpr> */
2093 if (var_node == NULL) {
2094 var = 0; /* is null */
2095 } else {
2096 var = 1; /* arg is null and recv is not */
2097 }
2098 if (0) {
2099 { /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable AExpr> */
2100 var_other = ((val*)NULL);
2101 {
2102 var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable AExpr(AExpr)>*/
2103 }
2104 var4 = !var3;
2105 var1 = var4;
2106 goto RET_LABEL2;
2107 RET_LABEL2:(void)0;
2108 }
2109 var = var1;
2110 }
2111 if (var){
2112 {
2113 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AExpr(AExpr)> */
2114 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AExpr(AExpr)> */
2115 RET_LABEL5:(void)0;
2116 }
2117 }
2118 } else {
2119 }
2120 RET_LABEL:;
2121 }
2122 /* method parser_prod#AForExpr#n_label= for (self: AForExpr, nullable ALabel) */
2123 void nitc__parser_prod___AForExpr___nitc__parser_nodes__ALabelable__n_label_61d(val* self, val* p0) {
2124 val* var_node /* var node: nullable ALabel */;
2125 short int var /* : Bool */;
2126 short int var1 /* : Bool */;
2127 val* var_other /* var other: nullable Object */;
2128 short int var3 /* : Bool */;
2129 short int var4 /* : Bool */;
2130 var_node = p0;
2131 self->attrs[COLOR_nitc__parser_nodes__ALabelable___n_label].val = var_node; /* _n_label on <self:AForExpr> */
2132 if (var_node == NULL) {
2133 var = 0; /* is null */
2134 } else {
2135 var = 1; /* arg is null and recv is not */
2136 }
2137 if (0) {
2138 { /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable ALabel> */
2139 var_other = ((val*)NULL);
2140 {
2141 var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable ALabel(ALabel)>*/
2142 }
2143 var4 = !var3;
2144 var1 = var4;
2145 goto RET_LABEL2;
2146 RET_LABEL2:(void)0;
2147 }
2148 var = var1;
2149 }
2150 if (var){
2151 {
2152 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable ALabel(ALabel)> */
2153 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable ALabel(ALabel)> */
2154 RET_LABEL5:(void)0;
2155 }
2156 }
2157 } else {
2158 }
2159 RET_LABEL:;
2160 }
2161 /* method parser_prod#AForExpr#visit_all for (self: AForExpr, Visitor) */
2162 void nitc__parser_prod___AForExpr___nitc__parser_nodes__ANode__visit_all(val* self, val* p0) {
2163 val* var_v /* var v: Visitor */;
2164 val* var /* : TKwfor */;
2165 val* var1 /* : ANodes[AForGroup] */;
2166 val* var3 /* : ANodes[AForGroup] */;
2167 val* var4 /* : TKwdo */;
2168 val* var5 /* : nullable AExpr */;
2169 val* var6 /* : nullable ALabel */;
2170 var_v = p0;
2171 var = self->attrs[COLOR_nitc__parser_nodes__AForExpr___n_kwfor].val; /* _n_kwfor on <self:AForExpr> */
2172 if (unlikely(var == NULL)) {
2173 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwfor");
2174 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3297);
2175 fatal_exit(1);
2176 }
2177 {
2178 nitc___nitc__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2179 }
2180 {
2181 { /* Inline parser_nodes#AForExpr#n_groups (self) on <self:AForExpr> */
2182 var3 = self->attrs[COLOR_nitc__parser_nodes__AForExpr___n_groups].val; /* _n_groups on <self:AForExpr> */
2183 if (unlikely(var3 == NULL)) {
2184 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_groups");
2185 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1920);
2186 fatal_exit(1);
2187 }
2188 var1 = var3;
2189 RET_LABEL2:(void)0;
2190 }
2191 }
2192 {
2193 nitc___nitc__ANodes___visit_all(var1, var_v); /* Direct call parser_nodes#ANodes#visit_all on <var1:ANodes[AForGroup]>*/
2194 }
2195 var4 = self->attrs[COLOR_nitc__parser_nodes__AForExpr___n_kwdo].val; /* _n_kwdo on <self:AForExpr> */
2196 if (unlikely(var4 == NULL)) {
2197 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwdo");
2198 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3299);
2199 fatal_exit(1);
2200 }
2201 {
2202 nitc___nitc__Visitor___enter_visit(var_v, var4); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2203 }
2204 var5 = self->attrs[COLOR_nitc__parser_nodes__AForExpr___n_block].val; /* _n_block on <self:AForExpr> */
2205 {
2206 nitc___nitc__Visitor___enter_visit(var_v, var5); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2207 }
2208 var6 = self->attrs[COLOR_nitc__parser_nodes__ALabelable___n_label].val; /* _n_label on <self:AForExpr> */
2209 {
2210 nitc___nitc__Visitor___enter_visit(var_v, var6); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2211 }
2212 RET_LABEL:;
2213 }
2214 /* method parser_prod#AWithExpr#init_awithexpr for (self: AWithExpr, nullable TKwwith, nullable AExpr, nullable TKwdo, nullable AExpr, nullable ALabel) */
2215 void nitc__parser_prod___AWithExpr___init_awithexpr(val* self, val* p0, val* p1, val* p2, val* p3, val* p4) {
2216 val* var_n_kwwith /* var n_kwwith: nullable TKwwith */;
2217 val* var_n_expr /* var n_expr: nullable AExpr */;
2218 val* var_n_kwdo /* var n_kwdo: nullable TKwdo */;
2219 val* var_n_block /* var n_block: nullable AExpr */;
2220 val* var_n_label /* var n_label: nullable ALabel */;
2221 short int var /* : Bool */;
2222 short int var5 /* : Bool */;
2223 val* var_other /* var other: nullable Object */;
2224 short int var7 /* : Bool */;
2225 short int var8 /* : Bool */;
2226 short int var10 /* : Bool */;
2227 short int var11 /* : Bool */;
2228 short int var13 /* : Bool */;
2229 short int var14 /* : Bool */;
2230 {
2231 { /* Inline kernel#Object#init (self) on <self:AWithExpr> */
2232 RET_LABEL1:(void)0;
2233 }
2234 }
2235 var_n_kwwith = p0;
2236 var_n_expr = p1;
2237 var_n_kwdo = p2;
2238 var_n_block = p3;
2239 var_n_label = p4;
2240 if (unlikely(var_n_kwwith == NULL)) {
2241 PRINT_ERROR("Runtime error: %s", "Cast failed");
2242 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3313);
2243 fatal_exit(1);
2244 }
2245 self->attrs[COLOR_nitc__parser_nodes__AWithExpr___n_kwwith].val = var_n_kwwith; /* _n_kwwith on <self:AWithExpr> */
2246 if (var_n_kwwith == NULL) {
2247 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2248 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3314);
2249 fatal_exit(1);
2250 } else {
2251 { /* Inline parser_nodes#ANode#parent= (var_n_kwwith,self) on <var_n_kwwith:nullable TKwwith> */
2252 if (unlikely(var_n_kwwith == NULL)) {
2253 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2254 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
2255 fatal_exit(1);
2256 }
2257 var_n_kwwith->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwwith:nullable TKwwith> */
2258 RET_LABEL2:(void)0;
2259 }
2260 }
2261 if (unlikely(var_n_expr == NULL)) {
2262 PRINT_ERROR("Runtime error: %s", "Cast failed");
2263 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3315);
2264 fatal_exit(1);
2265 }
2266 self->attrs[COLOR_nitc__parser_nodes__AWithExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AWithExpr> */
2267 if (var_n_expr == NULL) {
2268 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2269 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3316);
2270 fatal_exit(1);
2271 } else {
2272 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
2273 if (unlikely(var_n_expr == NULL)) {
2274 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2275 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
2276 fatal_exit(1);
2277 }
2278 var_n_expr->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
2279 RET_LABEL3:(void)0;
2280 }
2281 }
2282 if (unlikely(var_n_kwdo == NULL)) {
2283 PRINT_ERROR("Runtime error: %s", "Cast failed");
2284 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3317);
2285 fatal_exit(1);
2286 }
2287 self->attrs[COLOR_nitc__parser_nodes__AWithExpr___n_kwdo].val = var_n_kwdo; /* _n_kwdo on <self:AWithExpr> */
2288 if (var_n_kwdo == NULL) {
2289 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2290 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3318);
2291 fatal_exit(1);
2292 } else {
2293 { /* Inline parser_nodes#ANode#parent= (var_n_kwdo,self) on <var_n_kwdo:nullable TKwdo> */
2294 if (unlikely(var_n_kwdo == NULL)) {
2295 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2296 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
2297 fatal_exit(1);
2298 }
2299 var_n_kwdo->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwdo:nullable TKwdo> */
2300 RET_LABEL4:(void)0;
2301 }
2302 }
2303 self->attrs[COLOR_nitc__parser_nodes__AWithExpr___n_block].val = var_n_block; /* _n_block on <self:AWithExpr> */
2304 if (var_n_block == NULL) {
2305 var = 0; /* is null */
2306 } else {
2307 var = 1; /* arg is null and recv is not */
2308 }
2309 if (0) {
2310 { /* Inline kernel#Object#!= (var_n_block,((val*)NULL)) on <var_n_block:nullable AExpr> */
2311 var_other = ((val*)NULL);
2312 {
2313 var7 = ((short int(*)(val* self, val* p0))(var_n_block->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_n_block, var_other); /* == on <var_n_block:nullable AExpr(AExpr)>*/
2314 }
2315 var8 = !var7;
2316 var5 = var8;
2317 goto RET_LABEL6;
2318 RET_LABEL6:(void)0;
2319 }
2320 var = var5;
2321 }
2322 if (var){
2323 {
2324 { /* Inline parser_nodes#ANode#parent= (var_n_block,self) on <var_n_block:nullable AExpr(AExpr)> */
2325 var_n_block->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_block:nullable AExpr(AExpr)> */
2326 RET_LABEL9:(void)0;
2327 }
2328 }
2329 } else {
2330 }
2331 self->attrs[COLOR_nitc__parser_nodes__ALabelable___n_label].val = var_n_label; /* _n_label on <self:AWithExpr> */
2332 if (var_n_label == NULL) {
2333 var10 = 0; /* is null */
2334 } else {
2335 var10 = 1; /* arg is null and recv is not */
2336 }
2337 if (0) {
2338 { /* Inline kernel#Object#!= (var_n_label,((val*)NULL)) on <var_n_label:nullable ALabel> */
2339 var_other = ((val*)NULL);
2340 {
2341 var13 = ((short int(*)(val* self, val* p0))(var_n_label->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_n_label, var_other); /* == on <var_n_label:nullable ALabel(ALabel)>*/
2342 }
2343 var14 = !var13;
2344 var11 = var14;
2345 goto RET_LABEL12;
2346 RET_LABEL12:(void)0;
2347 }
2348 var10 = var11;
2349 }
2350 if (var10){
2351 {
2352 { /* Inline parser_nodes#ANode#parent= (var_n_label,self) on <var_n_label:nullable ALabel(ALabel)> */
2353 var_n_label->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_label:nullable ALabel(ALabel)> */
2354 RET_LABEL15:(void)0;
2355 }
2356 }
2357 } else {
2358 }
2359 RET_LABEL:;
2360 }
2361 /* method parser_prod#AWithExpr#replace_child for (self: AWithExpr, ANode, nullable ANode) */
2362 void nitc__parser_prod___AWithExpr___nitc__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
2363 val* var_old_child /* var old_child: ANode */;
2364 val* var_new_child /* var new_child: nullable ANode */;
2365 val* var /* : TKwwith */;
2366 short int var1 /* : Bool */;
2367 val* var_other /* var other: nullable Object */;
2368 short int var3 /* : Bool */;
2369 short int var5 /* : Bool */;
2370 short int var6 /* : Bool */;
2371 int cltype;
2372 int idtype;
2373 const char* var_class_name;
2374 val* var7 /* : AExpr */;
2375 short int var8 /* : Bool */;
2376 short int var10 /* : Bool */;
2377 short int var12 /* : Bool */;
2378 short int var13 /* : Bool */;
2379 int cltype14;
2380 int idtype15;
2381 const char* var_class_name16;
2382 val* var17 /* : TKwdo */;
2383 short int var18 /* : Bool */;
2384 short int var20 /* : Bool */;
2385 short int var22 /* : Bool */;
2386 short int var23 /* : Bool */;
2387 int cltype24;
2388 int idtype25;
2389 const char* var_class_name26;
2390 val* var27 /* : nullable AExpr */;
2391 short int var28 /* : Bool */;
2392 short int var29 /* : Bool */;
2393 short int var31 /* : Bool */;
2394 short int var33 /* : Bool */;
2395 short int var34 /* : Bool */;
2396 int cltype35;
2397 int idtype36;
2398 const char* var_class_name37;
2399 val* var38 /* : nullable ALabel */;
2400 short int var39 /* : Bool */;
2401 short int var40 /* : Bool */;
2402 short int var42 /* : Bool */;
2403 short int var44 /* : Bool */;
2404 short int var45 /* : Bool */;
2405 int cltype46;
2406 int idtype47;
2407 const char* var_class_name48;
2408 var_old_child = p0;
2409 var_new_child = p1;
2410 var = self->attrs[COLOR_nitc__parser_nodes__AWithExpr___n_kwwith].val; /* _n_kwwith on <self:AWithExpr> */
2411 if (unlikely(var == NULL)) {
2412 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwwith");
2413 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3327);
2414 fatal_exit(1);
2415 }
2416 {
2417 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwwith> */
2418 var_other = var_old_child;
2419 {
2420 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TKwwith> */
2421 var5 = var == var_other;
2422 var3 = var5;
2423 goto RET_LABEL4;
2424 RET_LABEL4:(void)0;
2425 }
2426 }
2427 var1 = var3;
2428 goto RET_LABEL2;
2429 RET_LABEL2:(void)0;
2430 }
2431 }
2432 if (var1){
2433 /* <var_new_child:nullable ANode> isa TKwwith */
2434 cltype = type_nitc__TKwwith.color;
2435 idtype = type_nitc__TKwwith.id;
2436 if(var_new_child == NULL) {
2437 var6 = 0;
2438 } else {
2439 if(cltype >= var_new_child->type->table_size) {
2440 var6 = 0;
2441 } else {
2442 var6 = var_new_child->type->type_table[cltype] == idtype;
2443 }
2444 }
2445 if (unlikely(!var6)) {
2446 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
2447 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwwith", var_class_name);
2448 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3328);
2449 fatal_exit(1);
2450 }
2451 {
2452 nitc__parser_prod___AWithExpr___n_kwwith_61d(self, var_new_child); /* Direct call parser_prod#AWithExpr#n_kwwith= on <self:AWithExpr>*/
2453 }
2454 goto RET_LABEL;
2455 } else {
2456 }
2457 var7 = self->attrs[COLOR_nitc__parser_nodes__AWithExpr___n_expr].val; /* _n_expr on <self:AWithExpr> */
2458 if (unlikely(var7 == NULL)) {
2459 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2460 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3331);
2461 fatal_exit(1);
2462 }
2463 {
2464 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:AExpr> */
2465 var_other = var_old_child;
2466 {
2467 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:AExpr> */
2468 var12 = var7 == var_other;
2469 var10 = var12;
2470 goto RET_LABEL11;
2471 RET_LABEL11:(void)0;
2472 }
2473 }
2474 var8 = var10;
2475 goto RET_LABEL9;
2476 RET_LABEL9:(void)0;
2477 }
2478 }
2479 if (var8){
2480 /* <var_new_child:nullable ANode> isa AExpr */
2481 cltype14 = type_nitc__AExpr.color;
2482 idtype15 = type_nitc__AExpr.id;
2483 if(var_new_child == NULL) {
2484 var13 = 0;
2485 } else {
2486 if(cltype14 >= var_new_child->type->table_size) {
2487 var13 = 0;
2488 } else {
2489 var13 = var_new_child->type->type_table[cltype14] == idtype15;
2490 }
2491 }
2492 if (unlikely(!var13)) {
2493 var_class_name16 = var_new_child == NULL ? "null" : var_new_child->type->name;
2494 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name16);
2495 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3332);
2496 fatal_exit(1);
2497 }
2498 {
2499 nitc__parser_prod___AWithExpr___n_expr_61d(self, var_new_child); /* Direct call parser_prod#AWithExpr#n_expr= on <self:AWithExpr>*/
2500 }
2501 goto RET_LABEL;
2502 } else {
2503 }
2504 var17 = self->attrs[COLOR_nitc__parser_nodes__AWithExpr___n_kwdo].val; /* _n_kwdo on <self:AWithExpr> */
2505 if (unlikely(var17 == NULL)) {
2506 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwdo");
2507 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3335);
2508 fatal_exit(1);
2509 }
2510 {
2511 { /* Inline kernel#Object#== (var17,var_old_child) on <var17:TKwdo> */
2512 var_other = var_old_child;
2513 {
2514 { /* Inline kernel#Object#is_same_instance (var17,var_other) on <var17:TKwdo> */
2515 var22 = var17 == var_other;
2516 var20 = var22;
2517 goto RET_LABEL21;
2518 RET_LABEL21:(void)0;
2519 }
2520 }
2521 var18 = var20;
2522 goto RET_LABEL19;
2523 RET_LABEL19:(void)0;
2524 }
2525 }
2526 if (var18){
2527 /* <var_new_child:nullable ANode> isa TKwdo */
2528 cltype24 = type_nitc__TKwdo.color;
2529 idtype25 = type_nitc__TKwdo.id;
2530 if(var_new_child == NULL) {
2531 var23 = 0;
2532 } else {
2533 if(cltype24 >= var_new_child->type->table_size) {
2534 var23 = 0;
2535 } else {
2536 var23 = var_new_child->type->type_table[cltype24] == idtype25;
2537 }
2538 }
2539 if (unlikely(!var23)) {
2540 var_class_name26 = var_new_child == NULL ? "null" : var_new_child->type->name;
2541 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwdo", var_class_name26);
2542 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3336);
2543 fatal_exit(1);
2544 }
2545 {
2546 nitc__parser_prod___AWithExpr___n_kwdo_61d(self, var_new_child); /* Direct call parser_prod#AWithExpr#n_kwdo= on <self:AWithExpr>*/
2547 }
2548 goto RET_LABEL;
2549 } else {
2550 }
2551 var27 = self->attrs[COLOR_nitc__parser_nodes__AWithExpr___n_block].val; /* _n_block on <self:AWithExpr> */
2552 if (var27 == NULL) {
2553 var28 = 0; /* <var_old_child:ANode> cannot be null */
2554 } else {
2555 { /* Inline kernel#Object#== (var27,var_old_child) on <var27:nullable AExpr> */
2556 var_other = var_old_child;
2557 {
2558 { /* Inline kernel#Object#is_same_instance (var27,var_other) on <var27:nullable AExpr(AExpr)> */
2559 var33 = var27 == var_other;
2560 var31 = var33;
2561 goto RET_LABEL32;
2562 RET_LABEL32:(void)0;
2563 }
2564 }
2565 var29 = var31;
2566 goto RET_LABEL30;
2567 RET_LABEL30:(void)0;
2568 }
2569 var28 = var29;
2570 }
2571 if (var28){
2572 /* <var_new_child:nullable ANode> isa nullable AExpr */
2573 cltype35 = type_nullable__nitc__AExpr.color;
2574 idtype36 = type_nullable__nitc__AExpr.id;
2575 if(var_new_child == NULL) {
2576 var34 = 1;
2577 } else {
2578 if(cltype35 >= var_new_child->type->table_size) {
2579 var34 = 0;
2580 } else {
2581 var34 = var_new_child->type->type_table[cltype35] == idtype36;
2582 }
2583 }
2584 if (unlikely(!var34)) {
2585 var_class_name37 = var_new_child == NULL ? "null" : var_new_child->type->name;
2586 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AExpr", var_class_name37);
2587 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3340);
2588 fatal_exit(1);
2589 }
2590 {
2591 nitc__parser_prod___AWithExpr___n_block_61d(self, var_new_child); /* Direct call parser_prod#AWithExpr#n_block= on <self:AWithExpr>*/
2592 }
2593 goto RET_LABEL;
2594 } else {
2595 }
2596 var38 = self->attrs[COLOR_nitc__parser_nodes__ALabelable___n_label].val; /* _n_label on <self:AWithExpr> */
2597 if (var38 == NULL) {
2598 var39 = 0; /* <var_old_child:ANode> cannot be null */
2599 } else {
2600 { /* Inline kernel#Object#== (var38,var_old_child) on <var38:nullable ALabel> */
2601 var_other = var_old_child;
2602 {
2603 { /* Inline kernel#Object#is_same_instance (var38,var_other) on <var38:nullable ALabel(ALabel)> */
2604 var44 = var38 == var_other;
2605 var42 = var44;
2606 goto RET_LABEL43;
2607 RET_LABEL43:(void)0;
2608 }
2609 }
2610 var40 = var42;
2611 goto RET_LABEL41;
2612 RET_LABEL41:(void)0;
2613 }
2614 var39 = var40;
2615 }
2616 if (var39){
2617 /* <var_new_child:nullable ANode> isa nullable ALabel */
2618 cltype46 = type_nullable__nitc__ALabel.color;
2619 idtype47 = type_nullable__nitc__ALabel.id;
2620 if(var_new_child == NULL) {
2621 var45 = 1;
2622 } else {
2623 if(cltype46 >= var_new_child->type->table_size) {
2624 var45 = 0;
2625 } else {
2626 var45 = var_new_child->type->type_table[cltype46] == idtype47;
2627 }
2628 }
2629 if (unlikely(!var45)) {
2630 var_class_name48 = var_new_child == NULL ? "null" : var_new_child->type->name;
2631 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ALabel", var_class_name48);
2632 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3344);
2633 fatal_exit(1);
2634 }
2635 {
2636 nitc__parser_prod___AWithExpr___nitc__parser_nodes__ALabelable__n_label_61d(self, var_new_child); /* Direct call parser_prod#AWithExpr#n_label= on <self:AWithExpr>*/
2637 }
2638 goto RET_LABEL;
2639 } else {
2640 }
2641 RET_LABEL:;
2642 }
2643 /* method parser_prod#AWithExpr#n_kwwith= for (self: AWithExpr, TKwwith) */
2644 void nitc__parser_prod___AWithExpr___n_kwwith_61d(val* self, val* p0) {
2645 val* var_node /* var node: TKwwith */;
2646 var_node = p0;
2647 self->attrs[COLOR_nitc__parser_nodes__AWithExpr___n_kwwith].val = var_node; /* _n_kwwith on <self:AWithExpr> */
2648 {
2649 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwwith> */
2650 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwwith> */
2651 RET_LABEL1:(void)0;
2652 }
2653 }
2654 RET_LABEL:;
2655 }
2656 /* method parser_prod#AWithExpr#n_expr= for (self: AWithExpr, AExpr) */
2657 void nitc__parser_prod___AWithExpr___n_expr_61d(val* self, val* p0) {
2658 val* var_node /* var node: AExpr */;
2659 var_node = p0;
2660 self->attrs[COLOR_nitc__parser_nodes__AWithExpr___n_expr].val = var_node; /* _n_expr on <self:AWithExpr> */
2661 {
2662 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
2663 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
2664 RET_LABEL1:(void)0;
2665 }
2666 }
2667 RET_LABEL:;
2668 }
2669 /* method parser_prod#AWithExpr#n_kwdo= for (self: AWithExpr, TKwdo) */
2670 void nitc__parser_prod___AWithExpr___n_kwdo_61d(val* self, val* p0) {
2671 val* var_node /* var node: TKwdo */;
2672 var_node = p0;
2673 self->attrs[COLOR_nitc__parser_nodes__AWithExpr___n_kwdo].val = var_node; /* _n_kwdo on <self:AWithExpr> */
2674 {
2675 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwdo> */
2676 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwdo> */
2677 RET_LABEL1:(void)0;
2678 }
2679 }
2680 RET_LABEL:;
2681 }
2682 /* method parser_prod#AWithExpr#n_block= for (self: AWithExpr, nullable AExpr) */
2683 void nitc__parser_prod___AWithExpr___n_block_61d(val* self, val* p0) {
2684 val* var_node /* var node: nullable AExpr */;
2685 short int var /* : Bool */;
2686 short int var1 /* : Bool */;
2687 val* var_other /* var other: nullable Object */;
2688 short int var3 /* : Bool */;
2689 short int var4 /* : Bool */;
2690 var_node = p0;
2691 self->attrs[COLOR_nitc__parser_nodes__AWithExpr___n_block].val = var_node; /* _n_block on <self:AWithExpr> */
2692 if (var_node == NULL) {
2693 var = 0; /* is null */
2694 } else {
2695 var = 1; /* arg is null and recv is not */
2696 }
2697 if (0) {
2698 { /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable AExpr> */
2699 var_other = ((val*)NULL);
2700 {
2701 var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable AExpr(AExpr)>*/
2702 }
2703 var4 = !var3;
2704 var1 = var4;
2705 goto RET_LABEL2;
2706 RET_LABEL2:(void)0;
2707 }
2708 var = var1;
2709 }
2710 if (var){
2711 {
2712 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AExpr(AExpr)> */
2713 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AExpr(AExpr)> */
2714 RET_LABEL5:(void)0;
2715 }
2716 }
2717 } else {
2718 }
2719 RET_LABEL:;
2720 }
2721 /* method parser_prod#AWithExpr#n_label= for (self: AWithExpr, nullable ALabel) */
2722 void nitc__parser_prod___AWithExpr___nitc__parser_nodes__ALabelable__n_label_61d(val* self, val* p0) {
2723 val* var_node /* var node: nullable ALabel */;
2724 short int var /* : Bool */;
2725 short int var1 /* : Bool */;
2726 val* var_other /* var other: nullable Object */;
2727 short int var3 /* : Bool */;
2728 short int var4 /* : Bool */;
2729 var_node = p0;
2730 self->attrs[COLOR_nitc__parser_nodes__ALabelable___n_label].val = var_node; /* _n_label on <self:AWithExpr> */
2731 if (var_node == NULL) {
2732 var = 0; /* is null */
2733 } else {
2734 var = 1; /* arg is null and recv is not */
2735 }
2736 if (0) {
2737 { /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable ALabel> */
2738 var_other = ((val*)NULL);
2739 {
2740 var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable ALabel(ALabel)>*/
2741 }
2742 var4 = !var3;
2743 var1 = var4;
2744 goto RET_LABEL2;
2745 RET_LABEL2:(void)0;
2746 }
2747 var = var1;
2748 }
2749 if (var){
2750 {
2751 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable ALabel(ALabel)> */
2752 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable ALabel(ALabel)> */
2753 RET_LABEL5:(void)0;
2754 }
2755 }
2756 } else {
2757 }
2758 RET_LABEL:;
2759 }
2760 /* method parser_prod#AWithExpr#visit_all for (self: AWithExpr, Visitor) */
2761 void nitc__parser_prod___AWithExpr___nitc__parser_nodes__ANode__visit_all(val* self, val* p0) {
2762 val* var_v /* var v: Visitor */;
2763 val* var /* : TKwwith */;
2764 val* var1 /* : AExpr */;
2765 val* var2 /* : TKwdo */;
2766 val* var3 /* : nullable AExpr */;
2767 val* var4 /* : nullable ALabel */;
2768 var_v = p0;
2769 var = self->attrs[COLOR_nitc__parser_nodes__AWithExpr___n_kwwith].val; /* _n_kwwith on <self:AWithExpr> */
2770 if (unlikely(var == NULL)) {
2771 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwwith");
2772 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3378);
2773 fatal_exit(1);
2774 }
2775 {
2776 nitc___nitc__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2777 }
2778 var1 = self->attrs[COLOR_nitc__parser_nodes__AWithExpr___n_expr].val; /* _n_expr on <self:AWithExpr> */
2779 if (unlikely(var1 == NULL)) {
2780 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2781 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3379);
2782 fatal_exit(1);
2783 }
2784 {
2785 nitc___nitc__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2786 }
2787 var2 = self->attrs[COLOR_nitc__parser_nodes__AWithExpr___n_kwdo].val; /* _n_kwdo on <self:AWithExpr> */
2788 if (unlikely(var2 == NULL)) {
2789 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwdo");
2790 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3380);
2791 fatal_exit(1);
2792 }
2793 {
2794 nitc___nitc__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2795 }
2796 var3 = self->attrs[COLOR_nitc__parser_nodes__AWithExpr___n_block].val; /* _n_block on <self:AWithExpr> */
2797 {
2798 nitc___nitc__Visitor___enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2799 }
2800 var4 = self->attrs[COLOR_nitc__parser_nodes__ALabelable___n_label].val; /* _n_label on <self:AWithExpr> */
2801 {
2802 nitc___nitc__Visitor___enter_visit(var_v, var4); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2803 }
2804 RET_LABEL:;
2805 }
2806 /* method parser_prod#AAssertExpr#init_aassertexpr for (self: AAssertExpr, nullable TKwassert, nullable TId, nullable AExpr, nullable TKwelse, nullable AExpr) */
2807 void nitc__parser_prod___AAssertExpr___init_aassertexpr(val* self, val* p0, val* p1, val* p2, val* p3, val* p4) {
2808 val* var_n_kwassert /* var n_kwassert: nullable TKwassert */;
2809 val* var_n_id /* var n_id: nullable TId */;
2810 val* var_n_expr /* var n_expr: nullable AExpr */;
2811 val* var_n_kwelse /* var n_kwelse: nullable TKwelse */;
2812 val* var_n_else /* var n_else: nullable AExpr */;
2813 short int var /* : Bool */;
2814 short int var3 /* : Bool */;
2815 val* var_other /* var other: nullable Object */;
2816 short int var5 /* : Bool */;
2817 short int var6 /* : Bool */;
2818 short int var9 /* : Bool */;
2819 short int var10 /* : Bool */;
2820 short int var12 /* : Bool */;
2821 short int var13 /* : Bool */;
2822 short int var15 /* : Bool */;
2823 short int var16 /* : Bool */;
2824 short int var18 /* : Bool */;
2825 short int var19 /* : Bool */;
2826 {
2827 { /* Inline kernel#Object#init (self) on <self:AAssertExpr> */
2828 RET_LABEL1:(void)0;
2829 }
2830 }
2831 var_n_kwassert = p0;
2832 var_n_id = p1;
2833 var_n_expr = p2;
2834 var_n_kwelse = p3;
2835 var_n_else = p4;
2836 if (unlikely(var_n_kwassert == NULL)) {
2837 PRINT_ERROR("Runtime error: %s", "Cast failed");
2838 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3394);
2839 fatal_exit(1);
2840 }
2841 self->attrs[COLOR_nitc__parser_nodes__AAssertExpr___n_kwassert].val = var_n_kwassert; /* _n_kwassert on <self:AAssertExpr> */
2842 if (var_n_kwassert == NULL) {
2843 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2844 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3395);
2845 fatal_exit(1);
2846 } else {
2847 { /* Inline parser_nodes#ANode#parent= (var_n_kwassert,self) on <var_n_kwassert:nullable TKwassert> */
2848 if (unlikely(var_n_kwassert == NULL)) {
2849 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2850 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
2851 fatal_exit(1);
2852 }
2853 var_n_kwassert->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwassert:nullable TKwassert> */
2854 RET_LABEL2:(void)0;
2855 }
2856 }
2857 self->attrs[COLOR_nitc__parser_nodes__AAssertExpr___n_id].val = var_n_id; /* _n_id on <self:AAssertExpr> */
2858 if (var_n_id == NULL) {
2859 var = 0; /* is null */
2860 } else {
2861 var = 1; /* arg is null and recv is not */
2862 }
2863 if (0) {
2864 { /* Inline kernel#Object#!= (var_n_id,((val*)NULL)) on <var_n_id:nullable TId> */
2865 var_other = ((val*)NULL);
2866 {
2867 var5 = ((short int(*)(val* self, val* p0))(var_n_id->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_n_id, var_other); /* == on <var_n_id:nullable TId(TId)>*/
2868 }
2869 var6 = !var5;
2870 var3 = var6;
2871 goto RET_LABEL4;
2872 RET_LABEL4:(void)0;
2873 }
2874 var = var3;
2875 }
2876 if (var){
2877 {
2878 { /* Inline parser_nodes#ANode#parent= (var_n_id,self) on <var_n_id:nullable TId(TId)> */
2879 var_n_id->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_id:nullable TId(TId)> */
2880 RET_LABEL7:(void)0;
2881 }
2882 }
2883 } else {
2884 }
2885 if (unlikely(var_n_expr == NULL)) {
2886 PRINT_ERROR("Runtime error: %s", "Cast failed");
2887 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3398);
2888 fatal_exit(1);
2889 }
2890 self->attrs[COLOR_nitc__parser_nodes__AAssertExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AAssertExpr> */
2891 if (var_n_expr == NULL) {
2892 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2893 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3399);
2894 fatal_exit(1);
2895 } else {
2896 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
2897 if (unlikely(var_n_expr == NULL)) {
2898 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2899 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
2900 fatal_exit(1);
2901 }
2902 var_n_expr->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
2903 RET_LABEL8:(void)0;
2904 }
2905 }
2906 self->attrs[COLOR_nitc__parser_nodes__AAssertExpr___n_kwelse].val = var_n_kwelse; /* _n_kwelse on <self:AAssertExpr> */
2907 if (var_n_kwelse == NULL) {
2908 var9 = 0; /* is null */
2909 } else {
2910 var9 = 1; /* arg is null and recv is not */
2911 }
2912 if (0) {
2913 { /* Inline kernel#Object#!= (var_n_kwelse,((val*)NULL)) on <var_n_kwelse:nullable TKwelse> */
2914 var_other = ((val*)NULL);
2915 {
2916 var12 = ((short int(*)(val* self, val* p0))(var_n_kwelse->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_n_kwelse, var_other); /* == on <var_n_kwelse:nullable TKwelse(TKwelse)>*/
2917 }
2918 var13 = !var12;
2919 var10 = var13;
2920 goto RET_LABEL11;
2921 RET_LABEL11:(void)0;
2922 }
2923 var9 = var10;
2924 }
2925 if (var9){
2926 {
2927 { /* Inline parser_nodes#ANode#parent= (var_n_kwelse,self) on <var_n_kwelse:nullable TKwelse(TKwelse)> */
2928 var_n_kwelse->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwelse:nullable TKwelse(TKwelse)> */
2929 RET_LABEL14:(void)0;
2930 }
2931 }
2932 } else {
2933 }
2934 self->attrs[COLOR_nitc__parser_nodes__AAssertExpr___n_else].val = var_n_else; /* _n_else on <self:AAssertExpr> */
2935 if (var_n_else == NULL) {
2936 var15 = 0; /* is null */
2937 } else {
2938 var15 = 1; /* arg is null and recv is not */
2939 }
2940 if (0) {
2941 { /* Inline kernel#Object#!= (var_n_else,((val*)NULL)) on <var_n_else:nullable AExpr> */
2942 var_other = ((val*)NULL);
2943 {
2944 var18 = ((short int(*)(val* self, val* p0))(var_n_else->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_n_else, var_other); /* == on <var_n_else:nullable AExpr(AExpr)>*/
2945 }
2946 var19 = !var18;
2947 var16 = var19;
2948 goto RET_LABEL17;
2949 RET_LABEL17:(void)0;
2950 }
2951 var15 = var16;
2952 }
2953 if (var15){
2954 {
2955 { /* Inline parser_nodes#ANode#parent= (var_n_else,self) on <var_n_else:nullable AExpr(AExpr)> */
2956 var_n_else->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_else:nullable AExpr(AExpr)> */
2957 RET_LABEL20:(void)0;
2958 }
2959 }
2960 } else {
2961 }
2962 RET_LABEL:;
2963 }
2964 /* method parser_prod#AAssertExpr#replace_child for (self: AAssertExpr, ANode, nullable ANode) */
2965 void nitc__parser_prod___AAssertExpr___nitc__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
2966 val* var_old_child /* var old_child: ANode */;
2967 val* var_new_child /* var new_child: nullable ANode */;
2968 val* var /* : TKwassert */;
2969 short int var1 /* : Bool */;
2970 val* var_other /* var other: nullable Object */;
2971 short int var3 /* : Bool */;
2972 short int var5 /* : Bool */;
2973 short int var6 /* : Bool */;
2974 int cltype;
2975 int idtype;
2976 const char* var_class_name;
2977 val* var7 /* : nullable TId */;
2978 short int var8 /* : Bool */;
2979 short int var9 /* : Bool */;
2980 short int var11 /* : Bool */;
2981 short int var13 /* : Bool */;
2982 short int var14 /* : Bool */;
2983 int cltype15;
2984 int idtype16;
2985 const char* var_class_name17;
2986 val* var18 /* : AExpr */;
2987 short int var19 /* : Bool */;
2988 short int var21 /* : Bool */;
2989 short int var23 /* : Bool */;
2990 short int var24 /* : Bool */;
2991 int cltype25;
2992 int idtype26;
2993 const char* var_class_name27;
2994 val* var28 /* : nullable TKwelse */;
2995 short int var29 /* : Bool */;
2996 short int var30 /* : Bool */;
2997 short int var32 /* : Bool */;
2998 short int var34 /* : Bool */;
2999 short int var35 /* : Bool */;
3000 int cltype36;
3001 int idtype37;
3002 const char* var_class_name38;
3003 val* var39 /* : nullable AExpr */;
3004 short int var40 /* : Bool */;
3005 short int var41 /* : Bool */;
3006 short int var43 /* : Bool */;
3007 short int var45 /* : Bool */;
3008 short int var46 /* : Bool */;
3009 int cltype47;
3010 int idtype48;
3011 const char* var_class_name49;
3012 var_old_child = p0;
3013 var_new_child = p1;
3014 var = self->attrs[COLOR_nitc__parser_nodes__AAssertExpr___n_kwassert].val; /* _n_kwassert on <self:AAssertExpr> */
3015 if (unlikely(var == NULL)) {
3016 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwassert");
3017 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3408);
3018 fatal_exit(1);
3019 }
3020 {
3021 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwassert> */
3022 var_other = var_old_child;
3023 {
3024 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TKwassert> */
3025 var5 = var == var_other;
3026 var3 = var5;
3027 goto RET_LABEL4;
3028 RET_LABEL4:(void)0;
3029 }
3030 }
3031 var1 = var3;
3032 goto RET_LABEL2;
3033 RET_LABEL2:(void)0;
3034 }
3035 }
3036 if (var1){
3037 /* <var_new_child:nullable ANode> isa TKwassert */
3038 cltype = type_nitc__TKwassert.color;
3039 idtype = type_nitc__TKwassert.id;
3040 if(var_new_child == NULL) {
3041 var6 = 0;
3042 } else {
3043 if(cltype >= var_new_child->type->table_size) {
3044 var6 = 0;
3045 } else {
3046 var6 = var_new_child->type->type_table[cltype] == idtype;
3047 }
3048 }
3049 if (unlikely(!var6)) {
3050 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
3051 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwassert", var_class_name);
3052 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3409);
3053 fatal_exit(1);
3054 }
3055 {
3056 nitc__parser_prod___AAssertExpr___n_kwassert_61d(self, var_new_child); /* Direct call parser_prod#AAssertExpr#n_kwassert= on <self:AAssertExpr>*/
3057 }
3058 goto RET_LABEL;
3059 } else {
3060 }
3061 var7 = self->attrs[COLOR_nitc__parser_nodes__AAssertExpr___n_id].val; /* _n_id on <self:AAssertExpr> */
3062 if (var7 == NULL) {
3063 var8 = 0; /* <var_old_child:ANode> cannot be null */
3064 } else {
3065 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:nullable TId> */
3066 var_other = var_old_child;
3067 {
3068 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:nullable TId(TId)> */
3069 var13 = var7 == var_other;
3070 var11 = var13;
3071 goto RET_LABEL12;
3072 RET_LABEL12:(void)0;
3073 }
3074 }
3075 var9 = var11;
3076 goto RET_LABEL10;
3077 RET_LABEL10:(void)0;
3078 }
3079 var8 = var9;
3080 }
3081 if (var8){
3082 /* <var_new_child:nullable ANode> isa nullable TId */
3083 cltype15 = type_nullable__nitc__TId.color;
3084 idtype16 = type_nullable__nitc__TId.id;
3085 if(var_new_child == NULL) {
3086 var14 = 1;
3087 } else {
3088 if(cltype15 >= var_new_child->type->table_size) {
3089 var14 = 0;
3090 } else {
3091 var14 = var_new_child->type->type_table[cltype15] == idtype16;
3092 }
3093 }
3094 if (unlikely(!var14)) {
3095 var_class_name17 = var_new_child == NULL ? "null" : var_new_child->type->name;
3096 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TId", var_class_name17);
3097 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3413);
3098 fatal_exit(1);
3099 }
3100 {
3101 nitc__parser_prod___AAssertExpr___n_id_61d(self, var_new_child); /* Direct call parser_prod#AAssertExpr#n_id= on <self:AAssertExpr>*/
3102 }
3103 goto RET_LABEL;
3104 } else {
3105 }
3106 var18 = self->attrs[COLOR_nitc__parser_nodes__AAssertExpr___n_expr].val; /* _n_expr on <self:AAssertExpr> */
3107 if (unlikely(var18 == NULL)) {
3108 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3109 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3416);
3110 fatal_exit(1);
3111 }
3112 {
3113 { /* Inline kernel#Object#== (var18,var_old_child) on <var18:AExpr> */
3114 var_other = var_old_child;
3115 {
3116 { /* Inline kernel#Object#is_same_instance (var18,var_other) on <var18:AExpr> */
3117 var23 = var18 == var_other;
3118 var21 = var23;
3119 goto RET_LABEL22;
3120 RET_LABEL22:(void)0;
3121 }
3122 }
3123 var19 = var21;
3124 goto RET_LABEL20;
3125 RET_LABEL20:(void)0;
3126 }
3127 }
3128 if (var19){
3129 /* <var_new_child:nullable ANode> isa AExpr */
3130 cltype25 = type_nitc__AExpr.color;
3131 idtype26 = type_nitc__AExpr.id;
3132 if(var_new_child == NULL) {
3133 var24 = 0;
3134 } else {
3135 if(cltype25 >= var_new_child->type->table_size) {
3136 var24 = 0;
3137 } else {
3138 var24 = var_new_child->type->type_table[cltype25] == idtype26;
3139 }
3140 }
3141 if (unlikely(!var24)) {
3142 var_class_name27 = var_new_child == NULL ? "null" : var_new_child->type->name;
3143 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name27);
3144 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3417);
3145 fatal_exit(1);
3146 }
3147 {
3148 nitc__parser_prod___AAssertExpr___n_expr_61d(self, var_new_child); /* Direct call parser_prod#AAssertExpr#n_expr= on <self:AAssertExpr>*/
3149 }
3150 goto RET_LABEL;
3151 } else {
3152 }
3153 var28 = self->attrs[COLOR_nitc__parser_nodes__AAssertExpr___n_kwelse].val; /* _n_kwelse on <self:AAssertExpr> */
3154 if (var28 == NULL) {
3155 var29 = 0; /* <var_old_child:ANode> cannot be null */
3156 } else {
3157 { /* Inline kernel#Object#== (var28,var_old_child) on <var28:nullable TKwelse> */
3158 var_other = var_old_child;
3159 {
3160 { /* Inline kernel#Object#is_same_instance (var28,var_other) on <var28:nullable TKwelse(TKwelse)> */
3161 var34 = var28 == var_other;
3162 var32 = var34;
3163 goto RET_LABEL33;
3164 RET_LABEL33:(void)0;
3165 }
3166 }
3167 var30 = var32;
3168 goto RET_LABEL31;
3169 RET_LABEL31:(void)0;
3170 }
3171 var29 = var30;
3172 }
3173 if (var29){
3174 /* <var_new_child:nullable ANode> isa nullable TKwelse */
3175 cltype36 = type_nullable__nitc__TKwelse.color;
3176 idtype37 = type_nullable__nitc__TKwelse.id;
3177 if(var_new_child == NULL) {
3178 var35 = 1;
3179 } else {
3180 if(cltype36 >= var_new_child->type->table_size) {
3181 var35 = 0;
3182 } else {
3183 var35 = var_new_child->type->type_table[cltype36] == idtype37;
3184 }
3185 }
3186 if (unlikely(!var35)) {
3187 var_class_name38 = var_new_child == NULL ? "null" : var_new_child->type->name;
3188 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TKwelse", var_class_name38);
3189 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3421);
3190 fatal_exit(1);
3191 }
3192 {
3193 nitc__parser_prod___AAssertExpr___n_kwelse_61d(self, var_new_child); /* Direct call parser_prod#AAssertExpr#n_kwelse= on <self:AAssertExpr>*/
3194 }
3195 goto RET_LABEL;
3196 } else {
3197 }
3198 var39 = self->attrs[COLOR_nitc__parser_nodes__AAssertExpr___n_else].val; /* _n_else on <self:AAssertExpr> */
3199 if (var39 == NULL) {
3200 var40 = 0; /* <var_old_child:ANode> cannot be null */
3201 } else {
3202 { /* Inline kernel#Object#== (var39,var_old_child) on <var39:nullable AExpr> */
3203 var_other = var_old_child;
3204 {
3205 { /* Inline kernel#Object#is_same_instance (var39,var_other) on <var39:nullable AExpr(AExpr)> */
3206 var45 = var39 == var_other;
3207 var43 = var45;
3208 goto RET_LABEL44;
3209 RET_LABEL44:(void)0;
3210 }
3211 }
3212 var41 = var43;
3213 goto RET_LABEL42;
3214 RET_LABEL42:(void)0;
3215 }
3216 var40 = var41;
3217 }
3218 if (var40){
3219 /* <var_new_child:nullable ANode> isa nullable AExpr */
3220 cltype47 = type_nullable__nitc__AExpr.color;
3221 idtype48 = type_nullable__nitc__AExpr.id;
3222 if(var_new_child == NULL) {
3223 var46 = 1;
3224 } else {
3225 if(cltype47 >= var_new_child->type->table_size) {
3226 var46 = 0;
3227 } else {
3228 var46 = var_new_child->type->type_table[cltype47] == idtype48;
3229 }
3230 }
3231 if (unlikely(!var46)) {
3232 var_class_name49 = var_new_child == NULL ? "null" : var_new_child->type->name;
3233 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AExpr", var_class_name49);
3234 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3425);
3235 fatal_exit(1);
3236 }
3237 {
3238 nitc__parser_prod___AAssertExpr___n_else_61d(self, var_new_child); /* Direct call parser_prod#AAssertExpr#n_else= on <self:AAssertExpr>*/
3239 }
3240 goto RET_LABEL;
3241 } else {
3242 }
3243 RET_LABEL:;
3244 }
3245 /* method parser_prod#AAssertExpr#n_kwassert= for (self: AAssertExpr, TKwassert) */
3246 void nitc__parser_prod___AAssertExpr___n_kwassert_61d(val* self, val* p0) {
3247 val* var_node /* var node: TKwassert */;
3248 var_node = p0;
3249 self->attrs[COLOR_nitc__parser_nodes__AAssertExpr___n_kwassert].val = var_node; /* _n_kwassert on <self:AAssertExpr> */
3250 {
3251 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwassert> */
3252 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwassert> */
3253 RET_LABEL1:(void)0;
3254 }
3255 }
3256 RET_LABEL:;
3257 }
3258 /* method parser_prod#AAssertExpr#n_id= for (self: AAssertExpr, nullable TId) */
3259 void nitc__parser_prod___AAssertExpr___n_id_61d(val* self, val* p0) {
3260 val* var_node /* var node: nullable TId */;
3261 short int var /* : Bool */;
3262 short int var1 /* : Bool */;
3263 val* var_other /* var other: nullable Object */;
3264 short int var3 /* : Bool */;
3265 short int var4 /* : Bool */;
3266 var_node = p0;
3267 self->attrs[COLOR_nitc__parser_nodes__AAssertExpr___n_id].val = var_node; /* _n_id on <self:AAssertExpr> */
3268 if (var_node == NULL) {
3269 var = 0; /* is null */
3270 } else {
3271 var = 1; /* arg is null and recv is not */
3272 }
3273 if (0) {
3274 { /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable TId> */
3275 var_other = ((val*)NULL);
3276 {
3277 var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable TId(TId)>*/
3278 }
3279 var4 = !var3;
3280 var1 = var4;
3281 goto RET_LABEL2;
3282 RET_LABEL2:(void)0;
3283 }
3284 var = var1;
3285 }
3286 if (var){
3287 {
3288 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TId(TId)> */
3289 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TId(TId)> */
3290 RET_LABEL5:(void)0;
3291 }
3292 }
3293 } else {
3294 }
3295 RET_LABEL:;
3296 }
3297 /* method parser_prod#AAssertExpr#n_expr= for (self: AAssertExpr, AExpr) */
3298 void nitc__parser_prod___AAssertExpr___n_expr_61d(val* self, val* p0) {
3299 val* var_node /* var node: AExpr */;
3300 var_node = p0;
3301 self->attrs[COLOR_nitc__parser_nodes__AAssertExpr___n_expr].val = var_node; /* _n_expr on <self:AAssertExpr> */
3302 {
3303 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
3304 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
3305 RET_LABEL1:(void)0;
3306 }
3307 }
3308 RET_LABEL:;
3309 }
3310 /* method parser_prod#AAssertExpr#n_kwelse= for (self: AAssertExpr, nullable TKwelse) */
3311 void nitc__parser_prod___AAssertExpr___n_kwelse_61d(val* self, val* p0) {
3312 val* var_node /* var node: nullable TKwelse */;
3313 short int var /* : Bool */;
3314 short int var1 /* : Bool */;
3315 val* var_other /* var other: nullable Object */;
3316 short int var3 /* : Bool */;
3317 short int var4 /* : Bool */;
3318 var_node = p0;
3319 self->attrs[COLOR_nitc__parser_nodes__AAssertExpr___n_kwelse].val = var_node; /* _n_kwelse on <self:AAssertExpr> */
3320 if (var_node == NULL) {
3321 var = 0; /* is null */
3322 } else {
3323 var = 1; /* arg is null and recv is not */
3324 }
3325 if (0) {
3326 { /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable TKwelse> */
3327 var_other = ((val*)NULL);
3328 {
3329 var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable TKwelse(TKwelse)>*/
3330 }
3331 var4 = !var3;
3332 var1 = var4;
3333 goto RET_LABEL2;
3334 RET_LABEL2:(void)0;
3335 }
3336 var = var1;
3337 }
3338 if (var){
3339 {
3340 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TKwelse(TKwelse)> */
3341 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TKwelse(TKwelse)> */
3342 RET_LABEL5:(void)0;
3343 }
3344 }
3345 } else {
3346 }
3347 RET_LABEL:;
3348 }
3349 /* method parser_prod#AAssertExpr#n_else= for (self: AAssertExpr, nullable AExpr) */
3350 void nitc__parser_prod___AAssertExpr___n_else_61d(val* self, val* p0) {
3351 val* var_node /* var node: nullable AExpr */;
3352 short int var /* : Bool */;
3353 short int var1 /* : Bool */;
3354 val* var_other /* var other: nullable Object */;
3355 short int var3 /* : Bool */;
3356 short int var4 /* : Bool */;
3357 var_node = p0;
3358 self->attrs[COLOR_nitc__parser_nodes__AAssertExpr___n_else].val = var_node; /* _n_else on <self:AAssertExpr> */
3359 if (var_node == NULL) {
3360 var = 0; /* is null */
3361 } else {
3362 var = 1; /* arg is null and recv is not */
3363 }
3364 if (0) {
3365 { /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable AExpr> */
3366 var_other = ((val*)NULL);
3367 {
3368 var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable AExpr(AExpr)>*/
3369 }
3370 var4 = !var3;
3371 var1 = var4;
3372 goto RET_LABEL2;
3373 RET_LABEL2:(void)0;
3374 }
3375 var = var1;
3376 }
3377 if (var){
3378 {
3379 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AExpr(AExpr)> */
3380 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AExpr(AExpr)> */
3381 RET_LABEL5:(void)0;
3382 }
3383 }
3384 } else {
3385 }
3386 RET_LABEL:;
3387 }
3388 /* method parser_prod#AAssertExpr#visit_all for (self: AAssertExpr, Visitor) */
3389 void nitc__parser_prod___AAssertExpr___nitc__parser_nodes__ANode__visit_all(val* self, val* p0) {
3390 val* var_v /* var v: Visitor */;
3391 val* var /* : TKwassert */;
3392 val* var1 /* : nullable TId */;
3393 val* var2 /* : AExpr */;
3394 val* var3 /* : nullable TKwelse */;
3395 val* var4 /* : nullable AExpr */;
3396 var_v = p0;
3397 var = self->attrs[COLOR_nitc__parser_nodes__AAssertExpr___n_kwassert].val; /* _n_kwassert on <self:AAssertExpr> */
3398 if (unlikely(var == NULL)) {
3399 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwassert");
3400 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3459);
3401 fatal_exit(1);
3402 }
3403 {
3404 nitc___nitc__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3405 }
3406 var1 = self->attrs[COLOR_nitc__parser_nodes__AAssertExpr___n_id].val; /* _n_id on <self:AAssertExpr> */
3407 {
3408 nitc___nitc__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3409 }
3410 var2 = self->attrs[COLOR_nitc__parser_nodes__AAssertExpr___n_expr].val; /* _n_expr on <self:AAssertExpr> */
3411 if (unlikely(var2 == NULL)) {
3412 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3413 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3461);
3414 fatal_exit(1);
3415 }
3416 {
3417 nitc___nitc__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3418 }
3419 var3 = self->attrs[COLOR_nitc__parser_nodes__AAssertExpr___n_kwelse].val; /* _n_kwelse on <self:AAssertExpr> */
3420 {
3421 nitc___nitc__Visitor___enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3422 }
3423 var4 = self->attrs[COLOR_nitc__parser_nodes__AAssertExpr___n_else].val; /* _n_else on <self:AAssertExpr> */
3424 {
3425 nitc___nitc__Visitor___enter_visit(var_v, var4); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3426 }
3427 RET_LABEL:;
3428 }
3429 /* method parser_prod#AOnceExpr#init_aonceexpr for (self: AOnceExpr, nullable TKwonce, nullable AExpr) */
3430 void nitc__parser_prod___AOnceExpr___init_aonceexpr(val* self, val* p0, val* p1) {
3431 val* var_n_kwonce /* var n_kwonce: nullable TKwonce */;
3432 val* var_n_expr /* var n_expr: nullable AExpr */;
3433 {
3434 { /* Inline kernel#Object#init (self) on <self:AOnceExpr> */
3435 RET_LABEL1:(void)0;
3436 }
3437 }
3438 var_n_kwonce = p0;
3439 var_n_expr = p1;
3440 if (unlikely(var_n_kwonce == NULL)) {
3441 PRINT_ERROR("Runtime error: %s", "Cast failed");
3442 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3472);
3443 fatal_exit(1);
3444 }
3445 self->attrs[COLOR_nitc__parser_nodes__AOnceExpr___n_kwonce].val = var_n_kwonce; /* _n_kwonce on <self:AOnceExpr> */
3446 if (var_n_kwonce == NULL) {
3447 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3448 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3473);
3449 fatal_exit(1);
3450 } else {
3451 { /* Inline parser_nodes#ANode#parent= (var_n_kwonce,self) on <var_n_kwonce:nullable TKwonce> */
3452 if (unlikely(var_n_kwonce == NULL)) {
3453 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3454 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
3455 fatal_exit(1);
3456 }
3457 var_n_kwonce->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwonce:nullable TKwonce> */
3458 RET_LABEL2:(void)0;
3459 }
3460 }
3461 if (unlikely(var_n_expr == NULL)) {
3462 PRINT_ERROR("Runtime error: %s", "Cast failed");
3463 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3474);
3464 fatal_exit(1);
3465 }
3466 self->attrs[COLOR_nitc__parser_nodes__AOnceExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AOnceExpr> */
3467 if (var_n_expr == NULL) {
3468 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3469 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3475);
3470 fatal_exit(1);
3471 } else {
3472 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
3473 if (unlikely(var_n_expr == NULL)) {
3474 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3475 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
3476 fatal_exit(1);
3477 }
3478 var_n_expr->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
3479 RET_LABEL3:(void)0;
3480 }
3481 }
3482 RET_LABEL:;
3483 }
3484 /* method parser_prod#AOnceExpr#replace_child for (self: AOnceExpr, ANode, nullable ANode) */
3485 void nitc__parser_prod___AOnceExpr___nitc__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
3486 val* var_old_child /* var old_child: ANode */;
3487 val* var_new_child /* var new_child: nullable ANode */;
3488 val* var /* : TKwonce */;
3489 short int var1 /* : Bool */;
3490 val* var_other /* var other: nullable Object */;
3491 short int var3 /* : Bool */;
3492 short int var5 /* : Bool */;
3493 short int var6 /* : Bool */;
3494 int cltype;
3495 int idtype;
3496 const char* var_class_name;
3497 val* var7 /* : AExpr */;
3498 short int var8 /* : Bool */;
3499 short int var10 /* : Bool */;
3500 short int var12 /* : Bool */;
3501 short int var13 /* : Bool */;
3502 int cltype14;
3503 int idtype15;
3504 const char* var_class_name16;
3505 var_old_child = p0;
3506 var_new_child = p1;
3507 var = self->attrs[COLOR_nitc__parser_nodes__AOnceExpr___n_kwonce].val; /* _n_kwonce on <self:AOnceExpr> */
3508 if (unlikely(var == NULL)) {
3509 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwonce");
3510 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3480);
3511 fatal_exit(1);
3512 }
3513 {
3514 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwonce> */
3515 var_other = var_old_child;
3516 {
3517 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TKwonce> */
3518 var5 = var == var_other;
3519 var3 = var5;
3520 goto RET_LABEL4;
3521 RET_LABEL4:(void)0;
3522 }
3523 }
3524 var1 = var3;
3525 goto RET_LABEL2;
3526 RET_LABEL2:(void)0;
3527 }
3528 }
3529 if (var1){
3530 /* <var_new_child:nullable ANode> isa TKwonce */
3531 cltype = type_nitc__TKwonce.color;
3532 idtype = type_nitc__TKwonce.id;
3533 if(var_new_child == NULL) {
3534 var6 = 0;
3535 } else {
3536 if(cltype >= var_new_child->type->table_size) {
3537 var6 = 0;
3538 } else {
3539 var6 = var_new_child->type->type_table[cltype] == idtype;
3540 }
3541 }
3542 if (unlikely(!var6)) {
3543 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
3544 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwonce", var_class_name);
3545 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3481);
3546 fatal_exit(1);
3547 }
3548 {
3549 nitc__parser_prod___AOnceExpr___n_kwonce_61d(self, var_new_child); /* Direct call parser_prod#AOnceExpr#n_kwonce= on <self:AOnceExpr>*/
3550 }
3551 goto RET_LABEL;
3552 } else {
3553 }
3554 var7 = self->attrs[COLOR_nitc__parser_nodes__AOnceExpr___n_expr].val; /* _n_expr on <self:AOnceExpr> */
3555 if (unlikely(var7 == NULL)) {
3556 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3557 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3484);
3558 fatal_exit(1);
3559 }
3560 {
3561 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:AExpr> */
3562 var_other = var_old_child;
3563 {
3564 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:AExpr> */
3565 var12 = var7 == var_other;
3566 var10 = var12;
3567 goto RET_LABEL11;
3568 RET_LABEL11:(void)0;
3569 }
3570 }
3571 var8 = var10;
3572 goto RET_LABEL9;
3573 RET_LABEL9:(void)0;
3574 }
3575 }
3576 if (var8){
3577 /* <var_new_child:nullable ANode> isa AExpr */
3578 cltype14 = type_nitc__AExpr.color;
3579 idtype15 = type_nitc__AExpr.id;
3580 if(var_new_child == NULL) {
3581 var13 = 0;
3582 } else {
3583 if(cltype14 >= var_new_child->type->table_size) {
3584 var13 = 0;
3585 } else {
3586 var13 = var_new_child->type->type_table[cltype14] == idtype15;
3587 }
3588 }
3589 if (unlikely(!var13)) {
3590 var_class_name16 = var_new_child == NULL ? "null" : var_new_child->type->name;
3591 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name16);
3592 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3485);
3593 fatal_exit(1);
3594 }
3595 {
3596 nitc__parser_prod___AOnceExpr___n_expr_61d(self, var_new_child); /* Direct call parser_prod#AOnceExpr#n_expr= on <self:AOnceExpr>*/
3597 }
3598 goto RET_LABEL;
3599 } else {
3600 }
3601 RET_LABEL:;
3602 }
3603 /* method parser_prod#AOnceExpr#n_kwonce= for (self: AOnceExpr, TKwonce) */
3604 void nitc__parser_prod___AOnceExpr___n_kwonce_61d(val* self, val* p0) {
3605 val* var_node /* var node: TKwonce */;
3606 var_node = p0;
3607 self->attrs[COLOR_nitc__parser_nodes__AOnceExpr___n_kwonce].val = var_node; /* _n_kwonce on <self:AOnceExpr> */
3608 {
3609 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwonce> */
3610 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwonce> */
3611 RET_LABEL1:(void)0;
3612 }
3613 }
3614 RET_LABEL:;
3615 }
3616 /* method parser_prod#AOnceExpr#n_expr= for (self: AOnceExpr, AExpr) */
3617 void nitc__parser_prod___AOnceExpr___n_expr_61d(val* self, val* p0) {
3618 val* var_node /* var node: AExpr */;
3619 var_node = p0;
3620 self->attrs[COLOR_nitc__parser_nodes__AOnceExpr___n_expr].val = var_node; /* _n_expr on <self:AOnceExpr> */
3621 {
3622 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
3623 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
3624 RET_LABEL1:(void)0;
3625 }
3626 }
3627 RET_LABEL:;
3628 }
3629 /* method parser_prod#AOnceExpr#visit_all for (self: AOnceExpr, Visitor) */
3630 void nitc__parser_prod___AOnceExpr___nitc__parser_nodes__ANode__visit_all(val* self, val* p0) {
3631 val* var_v /* var v: Visitor */;
3632 val* var /* : TKwonce */;
3633 val* var1 /* : AExpr */;
3634 var_v = p0;
3635 var = self->attrs[COLOR_nitc__parser_nodes__AOnceExpr___n_kwonce].val; /* _n_kwonce on <self:AOnceExpr> */
3636 if (unlikely(var == NULL)) {
3637 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwonce");
3638 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3504);
3639 fatal_exit(1);
3640 }
3641 {
3642 nitc___nitc__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3643 }
3644 var1 = self->attrs[COLOR_nitc__parser_nodes__AOnceExpr___n_expr].val; /* _n_expr on <self:AOnceExpr> */
3645 if (unlikely(var1 == NULL)) {
3646 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3647 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3505);
3648 fatal_exit(1);
3649 }
3650 {
3651 nitc___nitc__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3652 }
3653 RET_LABEL:;
3654 }
3655 /* method parser_prod#AOrExpr#init_aorexpr for (self: AOrExpr, nullable AExpr, nullable TKwor, nullable AExpr) */
3656 void nitc__parser_prod___AOrExpr___init_aorexpr(val* self, val* p0, val* p1, val* p2) {
3657 val* var_n_expr /* var n_expr: nullable AExpr */;
3658 val* var_n_op /* var n_op: nullable TKwor */;
3659 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
3660 {
3661 { /* Inline kernel#Object#init (self) on <self:AOrExpr> */
3662 RET_LABEL1:(void)0;
3663 }
3664 }
3665 var_n_expr = p0;
3666 var_n_op = p1;
3667 var_n_expr2 = p2;
3668 if (unlikely(var_n_expr == NULL)) {
3669 PRINT_ERROR("Runtime error: %s", "Cast failed");
3670 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3586);
3671 fatal_exit(1);
3672 }
3673 self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AOrExpr> */
3674 if (var_n_expr == NULL) {
3675 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3676 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3587);
3677 fatal_exit(1);
3678 } else {
3679 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
3680 if (unlikely(var_n_expr == NULL)) {
3681 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3682 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
3683 fatal_exit(1);
3684 }
3685 var_n_expr->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
3686 RET_LABEL2:(void)0;
3687 }
3688 }
3689 if (unlikely(var_n_op == NULL)) {
3690 PRINT_ERROR("Runtime error: %s", "Cast failed");
3691 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3588);
3692 fatal_exit(1);
3693 }
3694 self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_op].val = var_n_op; /* _n_op on <self:AOrExpr> */
3695 if (var_n_op == NULL) {
3696 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3697 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3589);
3698 fatal_exit(1);
3699 } else {
3700 { /* Inline parser_nodes#ANode#parent= (var_n_op,self) on <var_n_op:nullable TKwor> */
3701 if (unlikely(var_n_op == NULL)) {
3702 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3703 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
3704 fatal_exit(1);
3705 }
3706 var_n_op->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_op:nullable TKwor> */
3707 RET_LABEL3:(void)0;
3708 }
3709 }
3710 if (unlikely(var_n_expr2 == NULL)) {
3711 PRINT_ERROR("Runtime error: %s", "Cast failed");
3712 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3590);
3713 fatal_exit(1);
3714 }
3715 self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:AOrExpr> */
3716 if (var_n_expr2 == NULL) {
3717 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3718 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3591);
3719 fatal_exit(1);
3720 } else {
3721 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
3722 if (unlikely(var_n_expr2 == NULL)) {
3723 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3724 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
3725 fatal_exit(1);
3726 }
3727 var_n_expr2->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
3728 RET_LABEL4:(void)0;
3729 }
3730 }
3731 RET_LABEL:;
3732 }
3733 /* method parser_prod#AOrExpr#replace_child for (self: AOrExpr, ANode, nullable ANode) */
3734 void nitc__parser_prod___AOrExpr___nitc__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
3735 val* var_old_child /* var old_child: ANode */;
3736 val* var_new_child /* var new_child: nullable ANode */;
3737 val* var /* : AExpr */;
3738 short int var1 /* : Bool */;
3739 val* var_other /* var other: nullable Object */;
3740 short int var3 /* : Bool */;
3741 short int var5 /* : Bool */;
3742 short int var6 /* : Bool */;
3743 int cltype;
3744 int idtype;
3745 const char* var_class_name;
3746 val* var7 /* : Token */;
3747 short int var8 /* : Bool */;
3748 short int var10 /* : Bool */;
3749 short int var12 /* : Bool */;
3750 short int var13 /* : Bool */;
3751 int cltype14;
3752 int idtype15;
3753 const char* var_class_name16;
3754 val* var17 /* : AExpr */;
3755 short int var18 /* : Bool */;
3756 short int var20 /* : Bool */;
3757 short int var22 /* : Bool */;
3758 short int var23 /* : Bool */;
3759 int cltype24;
3760 int idtype25;
3761 const char* var_class_name26;
3762 var_old_child = p0;
3763 var_new_child = p1;
3764 var = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr].val; /* _n_expr on <self:AOrExpr> */
3765 if (unlikely(var == NULL)) {
3766 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3767 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3596);
3768 fatal_exit(1);
3769 }
3770 {
3771 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
3772 var_other = var_old_child;
3773 {
3774 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
3775 var5 = var == var_other;
3776 var3 = var5;
3777 goto RET_LABEL4;
3778 RET_LABEL4:(void)0;
3779 }
3780 }
3781 var1 = var3;
3782 goto RET_LABEL2;
3783 RET_LABEL2:(void)0;
3784 }
3785 }
3786 if (var1){
3787 /* <var_new_child:nullable ANode> isa AExpr */
3788 cltype = type_nitc__AExpr.color;
3789 idtype = type_nitc__AExpr.id;
3790 if(var_new_child == NULL) {
3791 var6 = 0;
3792 } else {
3793 if(cltype >= var_new_child->type->table_size) {
3794 var6 = 0;
3795 } else {
3796 var6 = var_new_child->type->type_table[cltype] == idtype;
3797 }
3798 }
3799 if (unlikely(!var6)) {
3800 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
3801 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
3802 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3597);
3803 fatal_exit(1);
3804 }
3805 {
3806 nitc__parser_prod___AOrExpr___nitc__parser_nodes__ABinBoolExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AOrExpr#n_expr= on <self:AOrExpr>*/
3807 }
3808 goto RET_LABEL;
3809 } else {
3810 }
3811 var7 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_op].val; /* _n_op on <self:AOrExpr> */
3812 if (unlikely(var7 == NULL)) {
3813 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
3814 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3600);
3815 fatal_exit(1);
3816 }
3817 {
3818 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:Token> */
3819 var_other = var_old_child;
3820 {
3821 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:Token> */
3822 var12 = var7 == var_other;
3823 var10 = var12;
3824 goto RET_LABEL11;
3825 RET_LABEL11:(void)0;
3826 }
3827 }
3828 var8 = var10;
3829 goto RET_LABEL9;
3830 RET_LABEL9:(void)0;
3831 }
3832 }
3833 if (var8){
3834 /* <var_new_child:nullable ANode> isa TKwor */
3835 cltype14 = type_nitc__TKwor.color;
3836 idtype15 = type_nitc__TKwor.id;
3837 if(var_new_child == NULL) {
3838 var13 = 0;
3839 } else {
3840 if(cltype14 >= var_new_child->type->table_size) {
3841 var13 = 0;
3842 } else {
3843 var13 = var_new_child->type->type_table[cltype14] == idtype15;
3844 }
3845 }
3846 if (unlikely(!var13)) {
3847 var_class_name16 = var_new_child == NULL ? "null" : var_new_child->type->name;
3848 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwor", var_class_name16);
3849 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3601);
3850 fatal_exit(1);
3851 }
3852 {
3853 nitc__parser_prod___AOrExpr___nitc__parser_nodes__ABinBoolExpr__n_op_61d(self, var_new_child); /* Direct call parser_prod#AOrExpr#n_op= on <self:AOrExpr>*/
3854 }
3855 goto RET_LABEL;
3856 } else {
3857 }
3858 var17 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr2].val; /* _n_expr2 on <self:AOrExpr> */
3859 if (unlikely(var17 == NULL)) {
3860 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
3861 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3604);
3862 fatal_exit(1);
3863 }
3864 {
3865 { /* Inline kernel#Object#== (var17,var_old_child) on <var17:AExpr> */
3866 var_other = var_old_child;
3867 {
3868 { /* Inline kernel#Object#is_same_instance (var17,var_other) on <var17:AExpr> */
3869 var22 = var17 == var_other;
3870 var20 = var22;
3871 goto RET_LABEL21;
3872 RET_LABEL21:(void)0;
3873 }
3874 }
3875 var18 = var20;
3876 goto RET_LABEL19;
3877 RET_LABEL19:(void)0;
3878 }
3879 }
3880 if (var18){
3881 /* <var_new_child:nullable ANode> isa AExpr */
3882 cltype24 = type_nitc__AExpr.color;
3883 idtype25 = type_nitc__AExpr.id;
3884 if(var_new_child == NULL) {
3885 var23 = 0;
3886 } else {
3887 if(cltype24 >= var_new_child->type->table_size) {
3888 var23 = 0;
3889 } else {
3890 var23 = var_new_child->type->type_table[cltype24] == idtype25;
3891 }
3892 }
3893 if (unlikely(!var23)) {
3894 var_class_name26 = var_new_child == NULL ? "null" : var_new_child->type->name;
3895 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name26);
3896 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3605);
3897 fatal_exit(1);
3898 }
3899 {
3900 nitc__parser_prod___AOrExpr___nitc__parser_nodes__ABinBoolExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#AOrExpr#n_expr2= on <self:AOrExpr>*/
3901 }
3902 goto RET_LABEL;
3903 } else {
3904 }
3905 RET_LABEL:;
3906 }
3907 /* method parser_prod#AOrExpr#n_expr= for (self: AOrExpr, AExpr) */
3908 void nitc__parser_prod___AOrExpr___nitc__parser_nodes__ABinBoolExpr__n_expr_61d(val* self, val* p0) {
3909 val* var_node /* var node: AExpr */;
3910 var_node = p0;
3911 self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr].val = var_node; /* _n_expr on <self:AOrExpr> */
3912 {
3913 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
3914 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
3915 RET_LABEL1:(void)0;
3916 }
3917 }
3918 RET_LABEL:;
3919 }
3920 /* method parser_prod#AOrExpr#n_op= for (self: AOrExpr, Token) */
3921 void nitc__parser_prod___AOrExpr___nitc__parser_nodes__ABinBoolExpr__n_op_61d(val* self, val* p0) {
3922 val* var_node /* var node: Token */;
3923 var_node = p0;
3924 self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_op].val = var_node; /* _n_op on <self:AOrExpr> */
3925 {
3926 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:Token> */
3927 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:Token> */
3928 RET_LABEL1:(void)0;
3929 }
3930 }
3931 RET_LABEL:;
3932 }
3933 /* method parser_prod#AOrExpr#n_expr2= for (self: AOrExpr, AExpr) */
3934 void nitc__parser_prod___AOrExpr___nitc__parser_nodes__ABinBoolExpr__n_expr2_61d(val* self, val* p0) {
3935 val* var_node /* var node: AExpr */;
3936 var_node = p0;
3937 self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr2].val = var_node; /* _n_expr2 on <self:AOrExpr> */
3938 {
3939 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
3940 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
3941 RET_LABEL1:(void)0;
3942 }
3943 }
3944 RET_LABEL:;
3945 }
3946 /* method parser_prod#AOrExpr#visit_all for (self: AOrExpr, Visitor) */
3947 void nitc__parser_prod___AOrExpr___nitc__parser_nodes__ANode__visit_all(val* self, val* p0) {
3948 val* var_v /* var v: Visitor */;
3949 val* var /* : AExpr */;
3950 val* var1 /* : Token */;
3951 val* var2 /* : AExpr */;
3952 var_v = p0;
3953 var = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr].val; /* _n_expr on <self:AOrExpr> */
3954 if (unlikely(var == NULL)) {
3955 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3956 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3629);
3957 fatal_exit(1);
3958 }
3959 {
3960 nitc___nitc__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3961 }
3962 var1 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_op].val; /* _n_op on <self:AOrExpr> */
3963 if (unlikely(var1 == NULL)) {
3964 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
3965 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3630);
3966 fatal_exit(1);
3967 }
3968 {
3969 nitc___nitc__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3970 }
3971 var2 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr2].val; /* _n_expr2 on <self:AOrExpr> */
3972 if (unlikely(var2 == NULL)) {
3973 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
3974 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3631);
3975 fatal_exit(1);
3976 }
3977 {
3978 nitc___nitc__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3979 }
3980 RET_LABEL:;
3981 }
3982 /* method parser_prod#AAndExpr#init_aandexpr for (self: AAndExpr, nullable AExpr, nullable TKwand, nullable AExpr) */
3983 void nitc__parser_prod___AAndExpr___init_aandexpr(val* self, val* p0, val* p1, val* p2) {
3984 val* var_n_expr /* var n_expr: nullable AExpr */;
3985 val* var_n_op /* var n_op: nullable TKwand */;
3986 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
3987 {
3988 { /* Inline kernel#Object#init (self) on <self:AAndExpr> */
3989 RET_LABEL1:(void)0;
3990 }
3991 }
3992 var_n_expr = p0;
3993 var_n_op = p1;
3994 var_n_expr2 = p2;
3995 if (unlikely(var_n_expr == NULL)) {
3996 PRINT_ERROR("Runtime error: %s", "Cast failed");
3997 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3641);
3998 fatal_exit(1);
3999 }
4000 self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AAndExpr> */
4001 if (var_n_expr == NULL) {
4002 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4003 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3642);
4004 fatal_exit(1);
4005 } else {
4006 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
4007 if (unlikely(var_n_expr == NULL)) {
4008 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4009 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
4010 fatal_exit(1);
4011 }
4012 var_n_expr->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
4013 RET_LABEL2:(void)0;
4014 }
4015 }
4016 if (unlikely(var_n_op == NULL)) {
4017 PRINT_ERROR("Runtime error: %s", "Cast failed");
4018 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3643);
4019 fatal_exit(1);
4020 }
4021 self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_op].val = var_n_op; /* _n_op on <self:AAndExpr> */
4022 if (var_n_op == NULL) {
4023 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4024 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3644);
4025 fatal_exit(1);
4026 } else {
4027 { /* Inline parser_nodes#ANode#parent= (var_n_op,self) on <var_n_op:nullable TKwand> */
4028 if (unlikely(var_n_op == NULL)) {
4029 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4030 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
4031 fatal_exit(1);
4032 }
4033 var_n_op->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_op:nullable TKwand> */
4034 RET_LABEL3:(void)0;
4035 }
4036 }
4037 if (unlikely(var_n_expr2 == NULL)) {
4038 PRINT_ERROR("Runtime error: %s", "Cast failed");
4039 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3645);
4040 fatal_exit(1);
4041 }
4042 self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:AAndExpr> */
4043 if (var_n_expr2 == NULL) {
4044 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4045 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3646);
4046 fatal_exit(1);
4047 } else {
4048 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
4049 if (unlikely(var_n_expr2 == NULL)) {
4050 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4051 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
4052 fatal_exit(1);
4053 }
4054 var_n_expr2->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
4055 RET_LABEL4:(void)0;
4056 }
4057 }
4058 RET_LABEL:;
4059 }
4060 /* method parser_prod#AAndExpr#replace_child for (self: AAndExpr, ANode, nullable ANode) */
4061 void nitc__parser_prod___AAndExpr___nitc__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
4062 val* var_old_child /* var old_child: ANode */;
4063 val* var_new_child /* var new_child: nullable ANode */;
4064 val* var /* : AExpr */;
4065 short int var1 /* : Bool */;
4066 val* var_other /* var other: nullable Object */;
4067 short int var3 /* : Bool */;
4068 short int var5 /* : Bool */;
4069 short int var6 /* : Bool */;
4070 int cltype;
4071 int idtype;
4072 const char* var_class_name;
4073 val* var7 /* : Token */;
4074 short int var8 /* : Bool */;
4075 short int var10 /* : Bool */;
4076 short int var12 /* : Bool */;
4077 short int var13 /* : Bool */;
4078 int cltype14;
4079 int idtype15;
4080 const char* var_class_name16;
4081 val* var17 /* : AExpr */;
4082 short int var18 /* : Bool */;
4083 short int var20 /* : Bool */;
4084 short int var22 /* : Bool */;
4085 short int var23 /* : Bool */;
4086 int cltype24;
4087 int idtype25;
4088 const char* var_class_name26;
4089 var_old_child = p0;
4090 var_new_child = p1;
4091 var = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr].val; /* _n_expr on <self:AAndExpr> */
4092 if (unlikely(var == NULL)) {
4093 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
4094 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3651);
4095 fatal_exit(1);
4096 }
4097 {
4098 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
4099 var_other = var_old_child;
4100 {
4101 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
4102 var5 = var == var_other;
4103 var3 = var5;
4104 goto RET_LABEL4;
4105 RET_LABEL4:(void)0;
4106 }
4107 }
4108 var1 = var3;
4109 goto RET_LABEL2;
4110 RET_LABEL2:(void)0;
4111 }
4112 }
4113 if (var1){
4114 /* <var_new_child:nullable ANode> isa AExpr */
4115 cltype = type_nitc__AExpr.color;
4116 idtype = type_nitc__AExpr.id;
4117 if(var_new_child == NULL) {
4118 var6 = 0;
4119 } else {
4120 if(cltype >= var_new_child->type->table_size) {
4121 var6 = 0;
4122 } else {
4123 var6 = var_new_child->type->type_table[cltype] == idtype;
4124 }
4125 }
4126 if (unlikely(!var6)) {
4127 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
4128 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
4129 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3652);
4130 fatal_exit(1);
4131 }
4132 {
4133 nitc__parser_prod___AAndExpr___nitc__parser_nodes__ABinBoolExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AAndExpr#n_expr= on <self:AAndExpr>*/
4134 }
4135 goto RET_LABEL;
4136 } else {
4137 }
4138 var7 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_op].val; /* _n_op on <self:AAndExpr> */
4139 if (unlikely(var7 == NULL)) {
4140 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
4141 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3655);
4142 fatal_exit(1);
4143 }
4144 {
4145 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:Token> */
4146 var_other = var_old_child;
4147 {
4148 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:Token> */
4149 var12 = var7 == var_other;
4150 var10 = var12;
4151 goto RET_LABEL11;
4152 RET_LABEL11:(void)0;
4153 }
4154 }
4155 var8 = var10;
4156 goto RET_LABEL9;
4157 RET_LABEL9:(void)0;
4158 }
4159 }
4160 if (var8){
4161 /* <var_new_child:nullable ANode> isa TKwand */
4162 cltype14 = type_nitc__TKwand.color;
4163 idtype15 = type_nitc__TKwand.id;
4164 if(var_new_child == NULL) {
4165 var13 = 0;
4166 } else {
4167 if(cltype14 >= var_new_child->type->table_size) {
4168 var13 = 0;
4169 } else {
4170 var13 = var_new_child->type->type_table[cltype14] == idtype15;
4171 }
4172 }
4173 if (unlikely(!var13)) {
4174 var_class_name16 = var_new_child == NULL ? "null" : var_new_child->type->name;
4175 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwand", var_class_name16);
4176 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3656);
4177 fatal_exit(1);
4178 }
4179 {
4180 nitc__parser_prod___AAndExpr___nitc__parser_nodes__ABinBoolExpr__n_op_61d(self, var_new_child); /* Direct call parser_prod#AAndExpr#n_op= on <self:AAndExpr>*/
4181 }
4182 goto RET_LABEL;
4183 } else {
4184 }
4185 var17 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr2].val; /* _n_expr2 on <self:AAndExpr> */
4186 if (unlikely(var17 == NULL)) {
4187 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
4188 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3659);
4189 fatal_exit(1);
4190 }
4191 {
4192 { /* Inline kernel#Object#== (var17,var_old_child) on <var17:AExpr> */
4193 var_other = var_old_child;
4194 {
4195 { /* Inline kernel#Object#is_same_instance (var17,var_other) on <var17:AExpr> */
4196 var22 = var17 == var_other;
4197 var20 = var22;
4198 goto RET_LABEL21;
4199 RET_LABEL21:(void)0;
4200 }
4201 }
4202 var18 = var20;
4203 goto RET_LABEL19;
4204 RET_LABEL19:(void)0;
4205 }
4206 }
4207 if (var18){
4208 /* <var_new_child:nullable ANode> isa AExpr */
4209 cltype24 = type_nitc__AExpr.color;
4210 idtype25 = type_nitc__AExpr.id;
4211 if(var_new_child == NULL) {
4212 var23 = 0;
4213 } else {
4214 if(cltype24 >= var_new_child->type->table_size) {
4215 var23 = 0;
4216 } else {
4217 var23 = var_new_child->type->type_table[cltype24] == idtype25;
4218 }
4219 }
4220 if (unlikely(!var23)) {
4221 var_class_name26 = var_new_child == NULL ? "null" : var_new_child->type->name;
4222 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name26);
4223 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3660);
4224 fatal_exit(1);
4225 }
4226 {
4227 nitc__parser_prod___AAndExpr___nitc__parser_nodes__ABinBoolExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#AAndExpr#n_expr2= on <self:AAndExpr>*/
4228 }
4229 goto RET_LABEL;
4230 } else {
4231 }
4232 RET_LABEL:;
4233 }
4234 /* method parser_prod#AAndExpr#n_expr= for (self: AAndExpr, AExpr) */
4235 void nitc__parser_prod___AAndExpr___nitc__parser_nodes__ABinBoolExpr__n_expr_61d(val* self, val* p0) {
4236 val* var_node /* var node: AExpr */;
4237 var_node = p0;
4238 self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr].val = var_node; /* _n_expr on <self:AAndExpr> */
4239 {
4240 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
4241 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
4242 RET_LABEL1:(void)0;
4243 }
4244 }
4245 RET_LABEL:;
4246 }
4247 /* method parser_prod#AAndExpr#n_op= for (self: AAndExpr, Token) */
4248 void nitc__parser_prod___AAndExpr___nitc__parser_nodes__ABinBoolExpr__n_op_61d(val* self, val* p0) {
4249 val* var_node /* var node: Token */;
4250 var_node = p0;
4251 self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_op].val = var_node; /* _n_op on <self:AAndExpr> */
4252 {
4253 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:Token> */
4254 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:Token> */
4255 RET_LABEL1:(void)0;
4256 }
4257 }
4258 RET_LABEL:;
4259 }
4260 /* method parser_prod#AAndExpr#n_expr2= for (self: AAndExpr, AExpr) */
4261 void nitc__parser_prod___AAndExpr___nitc__parser_nodes__ABinBoolExpr__n_expr2_61d(val* self, val* p0) {
4262 val* var_node /* var node: AExpr */;
4263 var_node = p0;
4264 self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr2].val = var_node; /* _n_expr2 on <self:AAndExpr> */
4265 {
4266 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
4267 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
4268 RET_LABEL1:(void)0;
4269 }
4270 }
4271 RET_LABEL:;
4272 }
4273 /* method parser_prod#AAndExpr#visit_all for (self: AAndExpr, Visitor) */
4274 void nitc__parser_prod___AAndExpr___nitc__parser_nodes__ANode__visit_all(val* self, val* p0) {
4275 val* var_v /* var v: Visitor */;
4276 val* var /* : AExpr */;
4277 val* var1 /* : Token */;
4278 val* var2 /* : AExpr */;
4279 var_v = p0;
4280 var = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr].val; /* _n_expr on <self:AAndExpr> */
4281 if (unlikely(var == NULL)) {
4282 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
4283 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3684);
4284 fatal_exit(1);
4285 }
4286 {
4287 nitc___nitc__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4288 }
4289 var1 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_op].val; /* _n_op on <self:AAndExpr> */
4290 if (unlikely(var1 == NULL)) {
4291 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
4292 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3685);
4293 fatal_exit(1);
4294 }
4295 {
4296 nitc___nitc__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4297 }
4298 var2 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr2].val; /* _n_expr2 on <self:AAndExpr> */
4299 if (unlikely(var2 == NULL)) {
4300 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
4301 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3686);
4302 fatal_exit(1);
4303 }
4304 {
4305 nitc___nitc__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4306 }
4307 RET_LABEL:;
4308 }
4309 /* method parser_prod#AOrElseExpr#init_aorelseexpr for (self: AOrElseExpr, nullable AExpr, nullable TKwor, nullable TKwelse, nullable AExpr) */
4310 void nitc__parser_prod___AOrElseExpr___init_aorelseexpr(val* self, val* p0, val* p1, val* p2, val* p3) {
4311 val* var_n_expr /* var n_expr: nullable AExpr */;
4312 val* var_n_op /* var n_op: nullable TKwor */;
4313 val* var_n_kwelse /* var n_kwelse: nullable TKwelse */;
4314 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
4315 {
4316 { /* Inline kernel#Object#init (self) on <self:AOrElseExpr> */
4317 RET_LABEL1:(void)0;
4318 }
4319 }
4320 var_n_expr = p0;
4321 var_n_op = p1;
4322 var_n_kwelse = p2;
4323 var_n_expr2 = p3;
4324 if (unlikely(var_n_expr == NULL)) {
4325 PRINT_ERROR("Runtime error: %s", "Cast failed");
4326 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3697);
4327 fatal_exit(1);
4328 }
4329 self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AOrElseExpr> */
4330 if (var_n_expr == NULL) {
4331 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4332 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3698);
4333 fatal_exit(1);
4334 } else {
4335 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
4336 if (unlikely(var_n_expr == NULL)) {
4337 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4338 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
4339 fatal_exit(1);
4340 }
4341 var_n_expr->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
4342 RET_LABEL2:(void)0;
4343 }
4344 }
4345 if (unlikely(var_n_op == NULL)) {
4346 PRINT_ERROR("Runtime error: %s", "Cast failed");
4347 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3699);
4348 fatal_exit(1);
4349 }
4350 self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_op].val = var_n_op; /* _n_op on <self:AOrElseExpr> */
4351 if (var_n_op == NULL) {
4352 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4353 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3700);
4354 fatal_exit(1);
4355 } else {
4356 { /* Inline parser_nodes#ANode#parent= (var_n_op,self) on <var_n_op:nullable TKwor> */
4357 if (unlikely(var_n_op == NULL)) {
4358 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4359 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
4360 fatal_exit(1);
4361 }
4362 var_n_op->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_op:nullable TKwor> */
4363 RET_LABEL3:(void)0;
4364 }
4365 }
4366 if (unlikely(var_n_kwelse == NULL)) {
4367 PRINT_ERROR("Runtime error: %s", "Cast failed");
4368 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3701);
4369 fatal_exit(1);
4370 }
4371 self->attrs[COLOR_nitc__parser_nodes__AOrElseExpr___n_kwelse].val = var_n_kwelse; /* _n_kwelse on <self:AOrElseExpr> */
4372 if (var_n_kwelse == NULL) {
4373 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4374 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3702);
4375 fatal_exit(1);
4376 } else {
4377 { /* Inline parser_nodes#ANode#parent= (var_n_kwelse,self) on <var_n_kwelse:nullable TKwelse> */
4378 if (unlikely(var_n_kwelse == NULL)) {
4379 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4380 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
4381 fatal_exit(1);
4382 }
4383 var_n_kwelse->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwelse:nullable TKwelse> */
4384 RET_LABEL4:(void)0;
4385 }
4386 }
4387 if (unlikely(var_n_expr2 == NULL)) {
4388 PRINT_ERROR("Runtime error: %s", "Cast failed");
4389 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3703);
4390 fatal_exit(1);
4391 }
4392 self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:AOrElseExpr> */
4393 if (var_n_expr2 == NULL) {
4394 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4395 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3704);
4396 fatal_exit(1);
4397 } else {
4398 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
4399 if (unlikely(var_n_expr2 == NULL)) {
4400 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4401 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
4402 fatal_exit(1);
4403 }
4404 var_n_expr2->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
4405 RET_LABEL5:(void)0;
4406 }
4407 }
4408 RET_LABEL:;
4409 }
4410 /* method parser_prod#AOrElseExpr#replace_child for (self: AOrElseExpr, ANode, nullable ANode) */
4411 void nitc__parser_prod___AOrElseExpr___nitc__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
4412 val* var_old_child /* var old_child: ANode */;
4413 val* var_new_child /* var new_child: nullable ANode */;
4414 val* var /* : AExpr */;
4415 short int var1 /* : Bool */;
4416 val* var_other /* var other: nullable Object */;
4417 short int var3 /* : Bool */;
4418 short int var5 /* : Bool */;
4419 short int var6 /* : Bool */;
4420 int cltype;
4421 int idtype;
4422 const char* var_class_name;
4423 val* var7 /* : Token */;
4424 short int var8 /* : Bool */;
4425 short int var10 /* : Bool */;
4426 short int var12 /* : Bool */;
4427 short int var13 /* : Bool */;
4428 int cltype14;
4429 int idtype15;
4430 const char* var_class_name16;
4431 val* var17 /* : TKwelse */;
4432 short int var18 /* : Bool */;
4433 short int var20 /* : Bool */;
4434 short int var22 /* : Bool */;
4435 short int var23 /* : Bool */;
4436 int cltype24;
4437 int idtype25;
4438 const char* var_class_name26;
4439 val* var27 /* : AExpr */;
4440 short int var28 /* : Bool */;
4441 short int var30 /* : Bool */;
4442 short int var32 /* : Bool */;
4443 short int var33 /* : Bool */;
4444 int cltype34;
4445 int idtype35;
4446 const char* var_class_name36;
4447 var_old_child = p0;
4448 var_new_child = p1;
4449 var = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr].val; /* _n_expr on <self:AOrElseExpr> */
4450 if (unlikely(var == NULL)) {
4451 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
4452 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3709);
4453 fatal_exit(1);
4454 }
4455 {
4456 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
4457 var_other = var_old_child;
4458 {
4459 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
4460 var5 = var == var_other;
4461 var3 = var5;
4462 goto RET_LABEL4;
4463 RET_LABEL4:(void)0;
4464 }
4465 }
4466 var1 = var3;
4467 goto RET_LABEL2;
4468 RET_LABEL2:(void)0;
4469 }
4470 }
4471 if (var1){
4472 /* <var_new_child:nullable ANode> isa AExpr */
4473 cltype = type_nitc__AExpr.color;
4474 idtype = type_nitc__AExpr.id;
4475 if(var_new_child == NULL) {
4476 var6 = 0;
4477 } else {
4478 if(cltype >= var_new_child->type->table_size) {
4479 var6 = 0;
4480 } else {
4481 var6 = var_new_child->type->type_table[cltype] == idtype;
4482 }
4483 }
4484 if (unlikely(!var6)) {
4485 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
4486 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
4487 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3710);
4488 fatal_exit(1);
4489 }
4490 {
4491 nitc__parser_prod___AOrElseExpr___nitc__parser_nodes__ABinBoolExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AOrElseExpr#n_expr= on <self:AOrElseExpr>*/
4492 }
4493 goto RET_LABEL;
4494 } else {
4495 }
4496 var7 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_op].val; /* _n_op on <self:AOrElseExpr> */
4497 if (unlikely(var7 == NULL)) {
4498 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
4499 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3713);
4500 fatal_exit(1);
4501 }
4502 {
4503 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:Token> */
4504 var_other = var_old_child;
4505 {
4506 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:Token> */
4507 var12 = var7 == var_other;
4508 var10 = var12;
4509 goto RET_LABEL11;
4510 RET_LABEL11:(void)0;
4511 }
4512 }
4513 var8 = var10;
4514 goto RET_LABEL9;
4515 RET_LABEL9:(void)0;
4516 }
4517 }
4518 if (var8){
4519 /* <var_new_child:nullable ANode> isa TKwor */
4520 cltype14 = type_nitc__TKwor.color;
4521 idtype15 = type_nitc__TKwor.id;
4522 if(var_new_child == NULL) {
4523 var13 = 0;
4524 } else {
4525 if(cltype14 >= var_new_child->type->table_size) {
4526 var13 = 0;
4527 } else {
4528 var13 = var_new_child->type->type_table[cltype14] == idtype15;
4529 }
4530 }
4531 if (unlikely(!var13)) {
4532 var_class_name16 = var_new_child == NULL ? "null" : var_new_child->type->name;
4533 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwor", var_class_name16);
4534 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3714);
4535 fatal_exit(1);
4536 }
4537 {
4538 nitc__parser_prod___AOrElseExpr___nitc__parser_nodes__ABinBoolExpr__n_op_61d(self, var_new_child); /* Direct call parser_prod#AOrElseExpr#n_op= on <self:AOrElseExpr>*/
4539 }
4540 goto RET_LABEL;
4541 } else {
4542 }
4543 var17 = self->attrs[COLOR_nitc__parser_nodes__AOrElseExpr___n_kwelse].val; /* _n_kwelse on <self:AOrElseExpr> */
4544 if (unlikely(var17 == NULL)) {
4545 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwelse");
4546 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3717);
4547 fatal_exit(1);
4548 }
4549 {
4550 { /* Inline kernel#Object#== (var17,var_old_child) on <var17:TKwelse> */
4551 var_other = var_old_child;
4552 {
4553 { /* Inline kernel#Object#is_same_instance (var17,var_other) on <var17:TKwelse> */
4554 var22 = var17 == var_other;
4555 var20 = var22;
4556 goto RET_LABEL21;
4557 RET_LABEL21:(void)0;
4558 }
4559 }
4560 var18 = var20;
4561 goto RET_LABEL19;
4562 RET_LABEL19:(void)0;
4563 }
4564 }
4565 if (var18){
4566 /* <var_new_child:nullable ANode> isa TKwelse */
4567 cltype24 = type_nitc__TKwelse.color;
4568 idtype25 = type_nitc__TKwelse.id;
4569 if(var_new_child == NULL) {
4570 var23 = 0;
4571 } else {
4572 if(cltype24 >= var_new_child->type->table_size) {
4573 var23 = 0;
4574 } else {
4575 var23 = var_new_child->type->type_table[cltype24] == idtype25;
4576 }
4577 }
4578 if (unlikely(!var23)) {
4579 var_class_name26 = var_new_child == NULL ? "null" : var_new_child->type->name;
4580 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwelse", var_class_name26);
4581 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3718);
4582 fatal_exit(1);
4583 }
4584 {
4585 nitc__parser_prod___AOrElseExpr___n_kwelse_61d(self, var_new_child); /* Direct call parser_prod#AOrElseExpr#n_kwelse= on <self:AOrElseExpr>*/
4586 }
4587 goto RET_LABEL;
4588 } else {
4589 }
4590 var27 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr2].val; /* _n_expr2 on <self:AOrElseExpr> */
4591 if (unlikely(var27 == NULL)) {
4592 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
4593 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3721);
4594 fatal_exit(1);
4595 }
4596 {
4597 { /* Inline kernel#Object#== (var27,var_old_child) on <var27:AExpr> */
4598 var_other = var_old_child;
4599 {
4600 { /* Inline kernel#Object#is_same_instance (var27,var_other) on <var27:AExpr> */
4601 var32 = var27 == var_other;
4602 var30 = var32;
4603 goto RET_LABEL31;
4604 RET_LABEL31:(void)0;
4605 }
4606 }
4607 var28 = var30;
4608 goto RET_LABEL29;
4609 RET_LABEL29:(void)0;
4610 }
4611 }
4612 if (var28){
4613 /* <var_new_child:nullable ANode> isa AExpr */
4614 cltype34 = type_nitc__AExpr.color;
4615 idtype35 = type_nitc__AExpr.id;
4616 if(var_new_child == NULL) {
4617 var33 = 0;
4618 } else {
4619 if(cltype34 >= var_new_child->type->table_size) {
4620 var33 = 0;
4621 } else {
4622 var33 = var_new_child->type->type_table[cltype34] == idtype35;
4623 }
4624 }
4625 if (unlikely(!var33)) {
4626 var_class_name36 = var_new_child == NULL ? "null" : var_new_child->type->name;
4627 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name36);
4628 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3722);
4629 fatal_exit(1);
4630 }
4631 {
4632 nitc__parser_prod___AOrElseExpr___nitc__parser_nodes__ABinBoolExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#AOrElseExpr#n_expr2= on <self:AOrElseExpr>*/
4633 }
4634 goto RET_LABEL;
4635 } else {
4636 }
4637 RET_LABEL:;
4638 }
4639 /* method parser_prod#AOrElseExpr#n_expr= for (self: AOrElseExpr, AExpr) */
4640 void nitc__parser_prod___AOrElseExpr___nitc__parser_nodes__ABinBoolExpr__n_expr_61d(val* self, val* p0) {
4641 val* var_node /* var node: AExpr */;
4642 var_node = p0;
4643 self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr].val = var_node; /* _n_expr on <self:AOrElseExpr> */
4644 {
4645 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
4646 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
4647 RET_LABEL1:(void)0;
4648 }
4649 }
4650 RET_LABEL:;
4651 }
4652 /* method parser_prod#AOrElseExpr#n_op= for (self: AOrElseExpr, Token) */
4653 void nitc__parser_prod___AOrElseExpr___nitc__parser_nodes__ABinBoolExpr__n_op_61d(val* self, val* p0) {
4654 val* var_node /* var node: Token */;
4655 var_node = p0;
4656 self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_op].val = var_node; /* _n_op on <self:AOrElseExpr> */
4657 {
4658 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:Token> */
4659 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:Token> */
4660 RET_LABEL1:(void)0;
4661 }
4662 }
4663 RET_LABEL:;
4664 }
4665 /* method parser_prod#AOrElseExpr#n_kwelse= for (self: AOrElseExpr, TKwelse) */
4666 void nitc__parser_prod___AOrElseExpr___n_kwelse_61d(val* self, val* p0) {
4667 val* var_node /* var node: TKwelse */;
4668 var_node = p0;
4669 self->attrs[COLOR_nitc__parser_nodes__AOrElseExpr___n_kwelse].val = var_node; /* _n_kwelse on <self:AOrElseExpr> */
4670 {
4671 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwelse> */
4672 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwelse> */
4673 RET_LABEL1:(void)0;
4674 }
4675 }
4676 RET_LABEL:;
4677 }
4678 /* method parser_prod#AOrElseExpr#n_expr2= for (self: AOrElseExpr, AExpr) */
4679 void nitc__parser_prod___AOrElseExpr___nitc__parser_nodes__ABinBoolExpr__n_expr2_61d(val* self, val* p0) {
4680 val* var_node /* var node: AExpr */;
4681 var_node = p0;
4682 self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr2].val = var_node; /* _n_expr2 on <self:AOrElseExpr> */
4683 {
4684 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
4685 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
4686 RET_LABEL1:(void)0;
4687 }
4688 }
4689 RET_LABEL:;
4690 }
4691 /* method parser_prod#AOrElseExpr#visit_all for (self: AOrElseExpr, Visitor) */
4692 void nitc__parser_prod___AOrElseExpr___nitc__parser_nodes__ANode__visit_all(val* self, val* p0) {
4693 val* var_v /* var v: Visitor */;
4694 val* var /* : AExpr */;
4695 val* var1 /* : Token */;
4696 val* var2 /* : TKwelse */;
4697 val* var3 /* : AExpr */;
4698 var_v = p0;
4699 var = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr].val; /* _n_expr on <self:AOrElseExpr> */
4700 if (unlikely(var == NULL)) {
4701 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
4702 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3751);
4703 fatal_exit(1);
4704 }
4705 {
4706 nitc___nitc__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4707 }
4708 var1 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_op].val; /* _n_op on <self:AOrElseExpr> */
4709 if (unlikely(var1 == NULL)) {
4710 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
4711 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3752);
4712 fatal_exit(1);
4713 }
4714 {
4715 nitc___nitc__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4716 }
4717 var2 = self->attrs[COLOR_nitc__parser_nodes__AOrElseExpr___n_kwelse].val; /* _n_kwelse on <self:AOrElseExpr> */
4718 if (unlikely(var2 == NULL)) {
4719 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwelse");
4720 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3753);
4721 fatal_exit(1);
4722 }
4723 {
4724 nitc___nitc__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4725 }
4726 var3 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr2].val; /* _n_expr2 on <self:AOrElseExpr> */
4727 if (unlikely(var3 == NULL)) {
4728 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
4729 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3754);
4730 fatal_exit(1);
4731 }
4732 {
4733 nitc___nitc__Visitor___enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4734 }
4735 RET_LABEL:;
4736 }
4737 /* method parser_prod#AImpliesExpr#init_aimpliesexpr for (self: AImpliesExpr, nullable AExpr, nullable TKwimplies, nullable AExpr) */
4738 void nitc__parser_prod___AImpliesExpr___init_aimpliesexpr(val* self, val* p0, val* p1, val* p2) {
4739 val* var_n_expr /* var n_expr: nullable AExpr */;
4740 val* var_n_op /* var n_op: nullable TKwimplies */;
4741 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
4742 {
4743 { /* Inline kernel#Object#init (self) on <self:AImpliesExpr> */
4744 RET_LABEL1:(void)0;
4745 }
4746 }
4747 var_n_expr = p0;
4748 var_n_op = p1;
4749 var_n_expr2 = p2;
4750 if (unlikely(var_n_expr == NULL)) {
4751 PRINT_ERROR("Runtime error: %s", "Cast failed");
4752 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3764);
4753 fatal_exit(1);
4754 }
4755 self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AImpliesExpr> */
4756 if (var_n_expr == NULL) {
4757 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4758 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3765);
4759 fatal_exit(1);
4760 } else {
4761 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
4762 if (unlikely(var_n_expr == NULL)) {
4763 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4764 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
4765 fatal_exit(1);
4766 }
4767 var_n_expr->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
4768 RET_LABEL2:(void)0;
4769 }
4770 }
4771 if (unlikely(var_n_op == NULL)) {
4772 PRINT_ERROR("Runtime error: %s", "Cast failed");
4773 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3766);
4774 fatal_exit(1);
4775 }
4776 self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_op].val = var_n_op; /* _n_op on <self:AImpliesExpr> */
4777 if (var_n_op == NULL) {
4778 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4779 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3767);
4780 fatal_exit(1);
4781 } else {
4782 { /* Inline parser_nodes#ANode#parent= (var_n_op,self) on <var_n_op:nullable TKwimplies> */
4783 if (unlikely(var_n_op == NULL)) {
4784 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4785 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
4786 fatal_exit(1);
4787 }
4788 var_n_op->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_op:nullable TKwimplies> */
4789 RET_LABEL3:(void)0;
4790 }
4791 }
4792 if (unlikely(var_n_expr2 == NULL)) {
4793 PRINT_ERROR("Runtime error: %s", "Cast failed");
4794 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3768);
4795 fatal_exit(1);
4796 }
4797 self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:AImpliesExpr> */
4798 if (var_n_expr2 == NULL) {
4799 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4800 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3769);
4801 fatal_exit(1);
4802 } else {
4803 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
4804 if (unlikely(var_n_expr2 == NULL)) {
4805 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4806 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
4807 fatal_exit(1);
4808 }
4809 var_n_expr2->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
4810 RET_LABEL4:(void)0;
4811 }
4812 }
4813 RET_LABEL:;
4814 }
4815 /* method parser_prod#AImpliesExpr#replace_child for (self: AImpliesExpr, ANode, nullable ANode) */
4816 void nitc__parser_prod___AImpliesExpr___nitc__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
4817 val* var_old_child /* var old_child: ANode */;
4818 val* var_new_child /* var new_child: nullable ANode */;
4819 val* var /* : AExpr */;
4820 short int var1 /* : Bool */;
4821 val* var_other /* var other: nullable Object */;
4822 short int var3 /* : Bool */;
4823 short int var5 /* : Bool */;
4824 short int var6 /* : Bool */;
4825 int cltype;
4826 int idtype;
4827 const char* var_class_name;
4828 val* var7 /* : Token */;
4829 short int var8 /* : Bool */;
4830 short int var10 /* : Bool */;
4831 short int var12 /* : Bool */;
4832 short int var13 /* : Bool */;
4833 int cltype14;
4834 int idtype15;
4835 const char* var_class_name16;
4836 val* var17 /* : AExpr */;
4837 short int var18 /* : Bool */;
4838 short int var20 /* : Bool */;
4839 short int var22 /* : Bool */;
4840 short int var23 /* : Bool */;
4841 int cltype24;
4842 int idtype25;
4843 const char* var_class_name26;
4844 var_old_child = p0;
4845 var_new_child = p1;
4846 var = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr].val; /* _n_expr on <self:AImpliesExpr> */
4847 if (unlikely(var == NULL)) {
4848 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
4849 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3774);
4850 fatal_exit(1);
4851 }
4852 {
4853 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
4854 var_other = var_old_child;
4855 {
4856 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
4857 var5 = var == var_other;
4858 var3 = var5;
4859 goto RET_LABEL4;
4860 RET_LABEL4:(void)0;
4861 }
4862 }
4863 var1 = var3;
4864 goto RET_LABEL2;
4865 RET_LABEL2:(void)0;
4866 }
4867 }
4868 if (var1){
4869 /* <var_new_child:nullable ANode> isa AExpr */
4870 cltype = type_nitc__AExpr.color;
4871 idtype = type_nitc__AExpr.id;
4872 if(var_new_child == NULL) {
4873 var6 = 0;
4874 } else {
4875 if(cltype >= var_new_child->type->table_size) {
4876 var6 = 0;
4877 } else {
4878 var6 = var_new_child->type->type_table[cltype] == idtype;
4879 }
4880 }
4881 if (unlikely(!var6)) {
4882 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
4883 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
4884 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3775);
4885 fatal_exit(1);
4886 }
4887 {
4888 nitc__parser_prod___AImpliesExpr___nitc__parser_nodes__ABinBoolExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AImpliesExpr#n_expr= on <self:AImpliesExpr>*/
4889 }
4890 goto RET_LABEL;
4891 } else {
4892 }
4893 var7 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_op].val; /* _n_op on <self:AImpliesExpr> */
4894 if (unlikely(var7 == NULL)) {
4895 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
4896 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3778);
4897 fatal_exit(1);
4898 }
4899 {
4900 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:Token> */
4901 var_other = var_old_child;
4902 {
4903 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:Token> */
4904 var12 = var7 == var_other;
4905 var10 = var12;
4906 goto RET_LABEL11;
4907 RET_LABEL11:(void)0;
4908 }
4909 }
4910 var8 = var10;
4911 goto RET_LABEL9;
4912 RET_LABEL9:(void)0;
4913 }
4914 }
4915 if (var8){
4916 /* <var_new_child:nullable ANode> isa TKwimplies */
4917 cltype14 = type_nitc__TKwimplies.color;
4918 idtype15 = type_nitc__TKwimplies.id;
4919 if(var_new_child == NULL) {
4920 var13 = 0;
4921 } else {
4922 if(cltype14 >= var_new_child->type->table_size) {
4923 var13 = 0;
4924 } else {
4925 var13 = var_new_child->type->type_table[cltype14] == idtype15;
4926 }
4927 }
4928 if (unlikely(!var13)) {
4929 var_class_name16 = var_new_child == NULL ? "null" : var_new_child->type->name;
4930 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwimplies", var_class_name16);
4931 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3779);
4932 fatal_exit(1);
4933 }
4934 {
4935 nitc__parser_prod___AImpliesExpr___nitc__parser_nodes__ABinBoolExpr__n_op_61d(self, var_new_child); /* Direct call parser_prod#AImpliesExpr#n_op= on <self:AImpliesExpr>*/
4936 }
4937 goto RET_LABEL;
4938 } else {
4939 }
4940 var17 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr2].val; /* _n_expr2 on <self:AImpliesExpr> */
4941 if (unlikely(var17 == NULL)) {
4942 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
4943 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3782);
4944 fatal_exit(1);
4945 }
4946 {
4947 { /* Inline kernel#Object#== (var17,var_old_child) on <var17:AExpr> */
4948 var_other = var_old_child;
4949 {
4950 { /* Inline kernel#Object#is_same_instance (var17,var_other) on <var17:AExpr> */
4951 var22 = var17 == var_other;
4952 var20 = var22;
4953 goto RET_LABEL21;
4954 RET_LABEL21:(void)0;
4955 }
4956 }
4957 var18 = var20;
4958 goto RET_LABEL19;
4959 RET_LABEL19:(void)0;
4960 }
4961 }
4962 if (var18){
4963 /* <var_new_child:nullable ANode> isa AExpr */
4964 cltype24 = type_nitc__AExpr.color;
4965 idtype25 = type_nitc__AExpr.id;
4966 if(var_new_child == NULL) {
4967 var23 = 0;
4968 } else {
4969 if(cltype24 >= var_new_child->type->table_size) {
4970 var23 = 0;
4971 } else {
4972 var23 = var_new_child->type->type_table[cltype24] == idtype25;
4973 }
4974 }
4975 if (unlikely(!var23)) {
4976 var_class_name26 = var_new_child == NULL ? "null" : var_new_child->type->name;
4977 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name26);
4978 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3783);
4979 fatal_exit(1);
4980 }
4981 {
4982 nitc__parser_prod___AImpliesExpr___nitc__parser_nodes__ABinBoolExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#AImpliesExpr#n_expr2= on <self:AImpliesExpr>*/
4983 }
4984 goto RET_LABEL;
4985 } else {
4986 }
4987 RET_LABEL:;
4988 }
4989 /* method parser_prod#AImpliesExpr#n_expr= for (self: AImpliesExpr, AExpr) */
4990 void nitc__parser_prod___AImpliesExpr___nitc__parser_nodes__ABinBoolExpr__n_expr_61d(val* self, val* p0) {
4991 val* var_node /* var node: AExpr */;
4992 var_node = p0;
4993 self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr].val = var_node; /* _n_expr on <self:AImpliesExpr> */
4994 {
4995 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
4996 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
4997 RET_LABEL1:(void)0;
4998 }
4999 }
5000 RET_LABEL:;
5001 }
5002 /* method parser_prod#AImpliesExpr#n_op= for (self: AImpliesExpr, Token) */
5003 void nitc__parser_prod___AImpliesExpr___nitc__parser_nodes__ABinBoolExpr__n_op_61d(val* self, val* p0) {
5004 val* var_node /* var node: Token */;
5005 var_node = p0;
5006 self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_op].val = var_node; /* _n_op on <self:AImpliesExpr> */
5007 {
5008 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:Token> */
5009 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:Token> */
5010 RET_LABEL1:(void)0;
5011 }
5012 }
5013 RET_LABEL:;
5014 }
5015 /* method parser_prod#AImpliesExpr#n_expr2= for (self: AImpliesExpr, AExpr) */
5016 void nitc__parser_prod___AImpliesExpr___nitc__parser_nodes__ABinBoolExpr__n_expr2_61d(val* self, val* p0) {
5017 val* var_node /* var node: AExpr */;
5018 var_node = p0;
5019 self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr2].val = var_node; /* _n_expr2 on <self:AImpliesExpr> */
5020 {
5021 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
5022 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
5023 RET_LABEL1:(void)0;
5024 }
5025 }
5026 RET_LABEL:;
5027 }
5028 /* method parser_prod#AImpliesExpr#visit_all for (self: AImpliesExpr, Visitor) */
5029 void nitc__parser_prod___AImpliesExpr___nitc__parser_nodes__ANode__visit_all(val* self, val* p0) {
5030 val* var_v /* var v: Visitor */;
5031 val* var /* : AExpr */;
5032 val* var1 /* : Token */;
5033 val* var2 /* : AExpr */;
5034 var_v = p0;
5035 var = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr].val; /* _n_expr on <self:AImpliesExpr> */
5036 if (unlikely(var == NULL)) {
5037 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
5038 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3807);
5039 fatal_exit(1);
5040 }
5041 {
5042 nitc___nitc__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
5043 }
5044 var1 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_op].val; /* _n_op on <self:AImpliesExpr> */
5045 if (unlikely(var1 == NULL)) {
5046 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
5047 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3808);
5048 fatal_exit(1);
5049 }
5050 {
5051 nitc___nitc__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
5052 }
5053 var2 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr2].val; /* _n_expr2 on <self:AImpliesExpr> */
5054 if (unlikely(var2 == NULL)) {
5055 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
5056 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3809);
5057 fatal_exit(1);
5058 }
5059 {
5060 nitc___nitc__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
5061 }
5062 RET_LABEL:;
5063 }
5064 /* method parser_prod#ANotExpr#init_anotexpr for (self: ANotExpr, nullable TKwnot, nullable AExpr) */
5065 void nitc__parser_prod___ANotExpr___init_anotexpr(val* self, val* p0, val* p1) {
5066 val* var_n_kwnot /* var n_kwnot: nullable TKwnot */;
5067 val* var_n_expr /* var n_expr: nullable AExpr */;
5068 {
5069 { /* Inline kernel#Object#init (self) on <self:ANotExpr> */
5070 RET_LABEL1:(void)0;
5071 }
5072 }
5073 var_n_kwnot = p0;
5074 var_n_expr = p1;
5075 if (unlikely(var_n_kwnot == NULL)) {
5076 PRINT_ERROR("Runtime error: %s", "Cast failed");
5077 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3818);
5078 fatal_exit(1);
5079 }
5080 self->attrs[COLOR_nitc__parser_nodes__ANotExpr___n_kwnot].val = var_n_kwnot; /* _n_kwnot on <self:ANotExpr> */
5081 if (var_n_kwnot == NULL) {
5082 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5083 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3819);
5084 fatal_exit(1);
5085 } else {
5086 { /* Inline parser_nodes#ANode#parent= (var_n_kwnot,self) on <var_n_kwnot:nullable TKwnot> */
5087 if (unlikely(var_n_kwnot == NULL)) {
5088 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5089 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
5090 fatal_exit(1);
5091 }
5092 var_n_kwnot->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwnot:nullable TKwnot> */
5093 RET_LABEL2:(void)0;
5094 }
5095 }
5096 if (unlikely(var_n_expr == NULL)) {
5097 PRINT_ERROR("Runtime error: %s", "Cast failed");
5098 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3820);
5099 fatal_exit(1);
5100 }
5101 self->attrs[COLOR_nitc__parser_nodes__ANotExpr___n_expr].val = var_n_expr; /* _n_expr on <self:ANotExpr> */
5102 if (var_n_expr == NULL) {
5103 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5104 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3821);
5105 fatal_exit(1);
5106 } else {
5107 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
5108 if (unlikely(var_n_expr == NULL)) {
5109 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5110 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
5111 fatal_exit(1);
5112 }
5113 var_n_expr->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
5114 RET_LABEL3:(void)0;
5115 }
5116 }
5117 RET_LABEL:;
5118 }
5119 /* method parser_prod#ANotExpr#replace_child for (self: ANotExpr, ANode, nullable ANode) */
5120 void nitc__parser_prod___ANotExpr___nitc__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
5121 val* var_old_child /* var old_child: ANode */;
5122 val* var_new_child /* var new_child: nullable ANode */;
5123 val* var /* : TKwnot */;
5124 short int var1 /* : Bool */;
5125 val* var_other /* var other: nullable Object */;
5126 short int var3 /* : Bool */;
5127 short int var5 /* : Bool */;
5128 short int var6 /* : Bool */;
5129 int cltype;
5130 int idtype;
5131 const char* var_class_name;
5132 val* var7 /* : AExpr */;
5133 short int var8 /* : Bool */;
5134 short int var10 /* : Bool */;
5135 short int var12 /* : Bool */;
5136 short int var13 /* : Bool */;
5137 int cltype14;
5138 int idtype15;
5139 const char* var_class_name16;
5140 var_old_child = p0;
5141 var_new_child = p1;
5142 var = self->attrs[COLOR_nitc__parser_nodes__ANotExpr___n_kwnot].val; /* _n_kwnot on <self:ANotExpr> */
5143 if (unlikely(var == NULL)) {
5144 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwnot");
5145 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3826);
5146 fatal_exit(1);
5147 }
5148 {
5149 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwnot> */
5150 var_other = var_old_child;
5151 {
5152 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TKwnot> */
5153 var5 = var == var_other;
5154 var3 = var5;
5155 goto RET_LABEL4;
5156 RET_LABEL4:(void)0;
5157 }
5158 }
5159 var1 = var3;
5160 goto RET_LABEL2;
5161 RET_LABEL2:(void)0;
5162 }
5163 }
5164 if (var1){
5165 /* <var_new_child:nullable ANode> isa TKwnot */
5166 cltype = type_nitc__TKwnot.color;
5167 idtype = type_nitc__TKwnot.id;
5168 if(var_new_child == NULL) {
5169 var6 = 0;
5170 } else {
5171 if(cltype >= var_new_child->type->table_size) {
5172 var6 = 0;
5173 } else {
5174 var6 = var_new_child->type->type_table[cltype] == idtype;
5175 }
5176 }
5177 if (unlikely(!var6)) {
5178 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
5179 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwnot", var_class_name);
5180 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3827);
5181 fatal_exit(1);
5182 }
5183 {
5184 nitc__parser_prod___ANotExpr___n_kwnot_61d(self, var_new_child); /* Direct call parser_prod#ANotExpr#n_kwnot= on <self:ANotExpr>*/
5185 }
5186 goto RET_LABEL;
5187 } else {
5188 }
5189 var7 = self->attrs[COLOR_nitc__parser_nodes__ANotExpr___n_expr].val; /* _n_expr on <self:ANotExpr> */
5190 if (unlikely(var7 == NULL)) {
5191 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
5192 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3830);
5193 fatal_exit(1);
5194 }
5195 {
5196 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:AExpr> */
5197 var_other = var_old_child;
5198 {
5199 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:AExpr> */
5200 var12 = var7 == var_other;
5201 var10 = var12;
5202 goto RET_LABEL11;
5203 RET_LABEL11:(void)0;
5204 }
5205 }
5206 var8 = var10;
5207 goto RET_LABEL9;
5208 RET_LABEL9:(void)0;
5209 }
5210 }
5211 if (var8){
5212 /* <var_new_child:nullable ANode> isa AExpr */
5213 cltype14 = type_nitc__AExpr.color;
5214 idtype15 = type_nitc__AExpr.id;
5215 if(var_new_child == NULL) {
5216 var13 = 0;
5217 } else {
5218 if(cltype14 >= var_new_child->type->table_size) {
5219 var13 = 0;
5220 } else {
5221 var13 = var_new_child->type->type_table[cltype14] == idtype15;
5222 }
5223 }
5224 if (unlikely(!var13)) {
5225 var_class_name16 = var_new_child == NULL ? "null" : var_new_child->type->name;
5226 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name16);
5227 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3831);
5228 fatal_exit(1);
5229 }
5230 {
5231 nitc__parser_prod___ANotExpr___n_expr_61d(self, var_new_child); /* Direct call parser_prod#ANotExpr#n_expr= on <self:ANotExpr>*/
5232 }
5233 goto RET_LABEL;
5234 } else {
5235 }
5236 RET_LABEL:;
5237 }
5238 /* method parser_prod#ANotExpr#n_kwnot= for (self: ANotExpr, TKwnot) */
5239 void nitc__parser_prod___ANotExpr___n_kwnot_61d(val* self, val* p0) {
5240 val* var_node /* var node: TKwnot */;
5241 var_node = p0;
5242 self->attrs[COLOR_nitc__parser_nodes__ANotExpr___n_kwnot].val = var_node; /* _n_kwnot on <self:ANotExpr> */
5243 {
5244 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwnot> */
5245 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwnot> */
5246 RET_LABEL1:(void)0;
5247 }
5248 }
5249 RET_LABEL:;
5250 }
5251 /* method parser_prod#ANotExpr#n_expr= for (self: ANotExpr, AExpr) */
5252 void nitc__parser_prod___ANotExpr___n_expr_61d(val* self, val* p0) {
5253 val* var_node /* var node: AExpr */;
5254 var_node = p0;
5255 self->attrs[COLOR_nitc__parser_nodes__ANotExpr___n_expr].val = var_node; /* _n_expr on <self:ANotExpr> */
5256 {
5257 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
5258 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
5259 RET_LABEL1:(void)0;
5260 }
5261 }
5262 RET_LABEL:;
5263 }
5264 /* method parser_prod#ANotExpr#visit_all for (self: ANotExpr, Visitor) */
5265 void nitc__parser_prod___ANotExpr___nitc__parser_nodes__ANode__visit_all(val* self, val* p0) {
5266 val* var_v /* var v: Visitor */;
5267 val* var /* : TKwnot */;
5268 val* var1 /* : AExpr */;
5269 var_v = p0;
5270 var = self->attrs[COLOR_nitc__parser_nodes__ANotExpr___n_kwnot].val; /* _n_kwnot on <self:ANotExpr> */
5271 if (unlikely(var == NULL)) {
5272 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwnot");
5273 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3850);
5274 fatal_exit(1);
5275 }
5276 {
5277 nitc___nitc__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
5278 }
5279 var1 = self->attrs[COLOR_nitc__parser_nodes__ANotExpr___n_expr].val; /* _n_expr on <self:ANotExpr> */
5280 if (unlikely(var1 == NULL)) {
5281 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
5282 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3851);
5283 fatal_exit(1);
5284 }
5285 {
5286 nitc___nitc__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
5287 }
5288 RET_LABEL:;
5289 }
5290 /* method parser_prod#AEqExpr#init_aeqexpr for (self: AEqExpr, nullable AExpr, nullable TEq, nullable AExpr) */
5291 void nitc__parser_prod___AEqExpr___init_aeqexpr(val* self, val* p0, val* p1, val* p2) {
5292 val* var_n_expr /* var n_expr: nullable AExpr */;
5293 val* var_n_op /* var n_op: nullable TEq */;
5294 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
5295 {
5296 { /* Inline kernel#Object#init (self) on <self:AEqExpr> */
5297 RET_LABEL1:(void)0;
5298 }
5299 }
5300 var_n_expr = p0;
5301 var_n_op = p1;
5302 var_n_expr2 = p2;
5303 if (unlikely(var_n_expr == NULL)) {
5304 PRINT_ERROR("Runtime error: %s", "Cast failed");
5305 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3861);
5306 fatal_exit(1);
5307 }
5308 self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AEqExpr> */
5309 if (var_n_expr == NULL) {
5310 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5311 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3862);
5312 fatal_exit(1);
5313 } else {
5314 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
5315 if (unlikely(var_n_expr == NULL)) {
5316 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5317 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
5318 fatal_exit(1);
5319 }
5320 var_n_expr->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
5321 RET_LABEL2:(void)0;
5322 }
5323 }
5324 if (unlikely(var_n_op == NULL)) {
5325 PRINT_ERROR("Runtime error: %s", "Cast failed");
5326 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3863);
5327 fatal_exit(1);
5328 }
5329 self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_op].val = var_n_op; /* _n_op on <self:AEqExpr> */
5330 if (var_n_op == NULL) {
5331 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5332 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3864);
5333 fatal_exit(1);
5334 } else {
5335 { /* Inline parser_nodes#ANode#parent= (var_n_op,self) on <var_n_op:nullable TEq> */
5336 if (unlikely(var_n_op == NULL)) {
5337 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5338 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
5339 fatal_exit(1);
5340 }
5341 var_n_op->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_op:nullable TEq> */
5342 RET_LABEL3:(void)0;
5343 }
5344 }
5345 if (unlikely(var_n_expr2 == NULL)) {
5346 PRINT_ERROR("Runtime error: %s", "Cast failed");
5347 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3865);
5348 fatal_exit(1);
5349 }
5350 self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:AEqExpr> */
5351 if (var_n_expr2 == NULL) {
5352 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5353 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3866);
5354 fatal_exit(1);
5355 } else {
5356 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
5357 if (unlikely(var_n_expr2 == NULL)) {
5358 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5359 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
5360 fatal_exit(1);
5361 }
5362 var_n_expr2->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
5363 RET_LABEL4:(void)0;
5364 }
5365 }
5366 RET_LABEL:;
5367 }
5368 /* method parser_prod#AEqExpr#replace_child for (self: AEqExpr, ANode, nullable ANode) */
5369 void nitc__parser_prod___AEqExpr___nitc__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
5370 val* var_old_child /* var old_child: ANode */;
5371 val* var_new_child /* var new_child: nullable ANode */;
5372 val* var /* : AExpr */;
5373 short int var1 /* : Bool */;
5374 val* var_other /* var other: nullable Object */;
5375 short int var3 /* : Bool */;
5376 short int var5 /* : Bool */;
5377 short int var6 /* : Bool */;
5378 int cltype;
5379 int idtype;
5380 const char* var_class_name;
5381 val* var7 /* : Token */;
5382 short int var8 /* : Bool */;
5383 short int var10 /* : Bool */;
5384 short int var12 /* : Bool */;
5385 short int var13 /* : Bool */;
5386 int cltype14;
5387 int idtype15;
5388 const char* var_class_name16;
5389 val* var17 /* : AExpr */;
5390 short int var18 /* : Bool */;
5391 short int var20 /* : Bool */;
5392 short int var22 /* : Bool */;
5393 short int var23 /* : Bool */;
5394 int cltype24;
5395 int idtype25;
5396 const char* var_class_name26;
5397 var_old_child = p0;
5398 var_new_child = p1;
5399 var = self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AEqExpr> */
5400 if (unlikely(var == NULL)) {
5401 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
5402 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3871);
5403 fatal_exit(1);
5404 }
5405 {
5406 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
5407 var_other = var_old_child;
5408 {
5409 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
5410 var5 = var == var_other;
5411 var3 = var5;
5412 goto RET_LABEL4;
5413 RET_LABEL4:(void)0;
5414 }
5415 }
5416 var1 = var3;
5417 goto RET_LABEL2;
5418 RET_LABEL2:(void)0;
5419 }
5420 }
5421 if (var1){
5422 /* <var_new_child:nullable ANode> isa AExpr */
5423 cltype = type_nitc__AExpr.color;
5424 idtype = type_nitc__AExpr.id;
5425 if(var_new_child == NULL) {
5426 var6 = 0;
5427 } else {
5428 if(cltype >= var_new_child->type->table_size) {
5429 var6 = 0;
5430 } else {
5431 var6 = var_new_child->type->type_table[cltype] == idtype;
5432 }
5433 }
5434 if (unlikely(!var6)) {
5435 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
5436 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
5437 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3872);
5438 fatal_exit(1);
5439 }
5440 {
5441 nitc__parser_prod___AEqExpr___nitc__parser_nodes__ASendExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AEqExpr#n_expr= on <self:AEqExpr>*/
5442 }
5443 goto RET_LABEL;
5444 } else {
5445 }
5446 var7 = self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_op].val; /* _n_op on <self:AEqExpr> */
5447 if (unlikely(var7 == NULL)) {
5448 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
5449 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3875);
5450 fatal_exit(1);
5451 }
5452 {
5453 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:Token> */
5454 var_other = var_old_child;
5455 {
5456 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:Token> */
5457 var12 = var7 == var_other;
5458 var10 = var12;
5459 goto RET_LABEL11;
5460 RET_LABEL11:(void)0;
5461 }
5462 }
5463 var8 = var10;
5464 goto RET_LABEL9;
5465 RET_LABEL9:(void)0;
5466 }
5467 }
5468 if (var8){
5469 /* <var_new_child:nullable ANode> isa TEq */
5470 cltype14 = type_nitc__TEq.color;
5471 idtype15 = type_nitc__TEq.id;
5472 if(var_new_child == NULL) {
5473 var13 = 0;
5474 } else {
5475 if(cltype14 >= var_new_child->type->table_size) {
5476 var13 = 0;
5477 } else {
5478 var13 = var_new_child->type->type_table[cltype14] == idtype15;
5479 }
5480 }
5481 if (unlikely(!var13)) {
5482 var_class_name16 = var_new_child == NULL ? "null" : var_new_child->type->name;
5483 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TEq", var_class_name16);
5484 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3876);
5485 fatal_exit(1);
5486 }
5487 {
5488 nitc__parser_prod___AEqExpr___nitc__parser_nodes__ABinopExpr__n_op_61d(self, var_new_child); /* Direct call parser_prod#AEqExpr#n_op= on <self:AEqExpr>*/
5489 }
5490 goto RET_LABEL;
5491 } else {
5492 }
5493 var17 = self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AEqExpr> */
5494 if (unlikely(var17 == NULL)) {
5495 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
5496 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3879);
5497 fatal_exit(1);
5498 }
5499 {
5500 { /* Inline kernel#Object#== (var17,var_old_child) on <var17:AExpr> */
5501 var_other = var_old_child;
5502 {
5503 { /* Inline kernel#Object#is_same_instance (var17,var_other) on <var17:AExpr> */
5504 var22 = var17 == var_other;
5505 var20 = var22;
5506 goto RET_LABEL21;
5507 RET_LABEL21:(void)0;
5508 }
5509 }
5510 var18 = var20;
5511 goto RET_LABEL19;
5512 RET_LABEL19:(void)0;
5513 }
5514 }
5515 if (var18){
5516 /* <var_new_child:nullable ANode> isa AExpr */
5517 cltype24 = type_nitc__AExpr.color;
5518 idtype25 = type_nitc__AExpr.id;
5519 if(var_new_child == NULL) {
5520 var23 = 0;
5521 } else {
5522 if(cltype24 >= var_new_child->type->table_size) {
5523 var23 = 0;
5524 } else {
5525 var23 = var_new_child->type->type_table[cltype24] == idtype25;
5526 }
5527 }
5528 if (unlikely(!var23)) {
5529 var_class_name26 = var_new_child == NULL ? "null" : var_new_child->type->name;
5530 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name26);
5531 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3880);
5532 fatal_exit(1);
5533 }
5534 {
5535 nitc__parser_prod___AEqExpr___nitc__parser_nodes__ABinopExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#AEqExpr#n_expr2= on <self:AEqExpr>*/
5536 }
5537 goto RET_LABEL;
5538 } else {
5539 }
5540 RET_LABEL:;
5541 }
5542 /* method parser_prod#AEqExpr#n_expr= for (self: AEqExpr, AExpr) */
5543 void nitc__parser_prod___AEqExpr___nitc__parser_nodes__ASendExpr__n_expr_61d(val* self, val* p0) {
5544 val* var_node /* var node: AExpr */;
5545 var_node = p0;
5546 self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:AEqExpr> */
5547 {
5548 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
5549 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
5550 RET_LABEL1:(void)0;
5551 }
5552 }
5553 RET_LABEL:;
5554 }
5555 /* method parser_prod#AEqExpr#n_op= for (self: AEqExpr, Token) */
5556 void nitc__parser_prod___AEqExpr___nitc__parser_nodes__ABinopExpr__n_op_61d(val* self, val* p0) {
5557 val* var_node /* var node: Token */;
5558 var_node = p0;
5559 self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_op].val = var_node; /* _n_op on <self:AEqExpr> */
5560 {
5561 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:Token> */
5562 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:Token> */
5563 RET_LABEL1:(void)0;
5564 }
5565 }
5566 RET_LABEL:;
5567 }
5568 /* method parser_prod#AEqExpr#n_expr2= for (self: AEqExpr, AExpr) */
5569 void nitc__parser_prod___AEqExpr___nitc__parser_nodes__ABinopExpr__n_expr2_61d(val* self, val* p0) {
5570 val* var_node /* var node: AExpr */;
5571 var_node = p0;
5572 self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_expr2].val = var_node; /* _n_expr2 on <self:AEqExpr> */
5573 {
5574 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
5575 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
5576 RET_LABEL1:(void)0;
5577 }
5578 }
5579 RET_LABEL:;
5580 }
5581 /* method parser_prod#AEqExpr#visit_all for (self: AEqExpr, Visitor) */
5582 void nitc__parser_prod___AEqExpr___nitc__parser_nodes__ANode__visit_all(val* self, val* p0) {
5583 val* var_v /* var v: Visitor */;
5584 val* var /* : AExpr */;
5585 val* var1 /* : Token */;
5586 val* var2 /* : AExpr */;
5587 var_v = p0;
5588 var = self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AEqExpr> */
5589 if (unlikely(var == NULL)) {
5590 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
5591 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3904);
5592 fatal_exit(1);
5593 }
5594 {
5595 nitc___nitc__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
5596 }
5597 var1 = self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_op].val; /* _n_op on <self:AEqExpr> */
5598 if (unlikely(var1 == NULL)) {
5599 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
5600 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3905);
5601 fatal_exit(1);
5602 }
5603 {
5604 nitc___nitc__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
5605 }
5606 var2 = self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AEqExpr> */
5607 if (unlikely(var2 == NULL)) {
5608 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
5609 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3906);
5610 fatal_exit(1);
5611 }
5612 {
5613 nitc___nitc__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
5614 }
5615 RET_LABEL:;
5616 }
5617 /* method parser_prod#ANeExpr#init_aneexpr for (self: ANeExpr, nullable AExpr, nullable TNe, nullable AExpr) */
5618 void nitc__parser_prod___ANeExpr___init_aneexpr(val* self, val* p0, val* p1, val* p2) {
5619 val* var_n_expr /* var n_expr: nullable AExpr */;
5620 val* var_n_op /* var n_op: nullable TNe */;
5621 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
5622 {
5623 { /* Inline kernel#Object#init (self) on <self:ANeExpr> */
5624 RET_LABEL1:(void)0;
5625 }
5626 }
5627 var_n_expr = p0;
5628 var_n_op = p1;
5629 var_n_expr2 = p2;
5630 if (unlikely(var_n_expr == NULL)) {
5631 PRINT_ERROR("Runtime error: %s", "Cast failed");
5632 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3916);
5633 fatal_exit(1);
5634 }
5635 self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:ANeExpr> */
5636 if (var_n_expr == NULL) {
5637 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5638 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3917);
5639 fatal_exit(1);
5640 } else {
5641 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
5642 if (unlikely(var_n_expr == NULL)) {
5643 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5644 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
5645 fatal_exit(1);
5646 }
5647 var_n_expr->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
5648 RET_LABEL2:(void)0;
5649 }
5650 }
5651 if (unlikely(var_n_op == NULL)) {
5652 PRINT_ERROR("Runtime error: %s", "Cast failed");
5653 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3918);
5654 fatal_exit(1);
5655 }
5656 self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_op].val = var_n_op; /* _n_op on <self:ANeExpr> */
5657 if (var_n_op == NULL) {
5658 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5659 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3919);
5660 fatal_exit(1);
5661 } else {
5662 { /* Inline parser_nodes#ANode#parent= (var_n_op,self) on <var_n_op:nullable TNe> */
5663 if (unlikely(var_n_op == NULL)) {
5664 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5665 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
5666 fatal_exit(1);
5667 }
5668 var_n_op->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_op:nullable TNe> */
5669 RET_LABEL3:(void)0;
5670 }
5671 }
5672 if (unlikely(var_n_expr2 == NULL)) {
5673 PRINT_ERROR("Runtime error: %s", "Cast failed");
5674 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3920);
5675 fatal_exit(1);
5676 }
5677 self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:ANeExpr> */
5678 if (var_n_expr2 == NULL) {
5679 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5680 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3921);
5681 fatal_exit(1);
5682 } else {
5683 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
5684 if (unlikely(var_n_expr2 == NULL)) {
5685 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5686 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
5687 fatal_exit(1);
5688 }
5689 var_n_expr2->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
5690 RET_LABEL4:(void)0;
5691 }
5692 }
5693 RET_LABEL:;
5694 }
5695 /* method parser_prod#ANeExpr#replace_child for (self: ANeExpr, ANode, nullable ANode) */
5696 void nitc__parser_prod___ANeExpr___nitc__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
5697 val* var_old_child /* var old_child: ANode */;
5698 val* var_new_child /* var new_child: nullable ANode */;
5699 val* var /* : AExpr */;
5700 short int var1 /* : Bool */;
5701 val* var_other /* var other: nullable Object */;
5702 short int var3 /* : Bool */;
5703 short int var5 /* : Bool */;
5704 short int var6 /* : Bool */;
5705 int cltype;
5706 int idtype;
5707 const char* var_class_name;
5708 val* var7 /* : Token */;
5709 short int var8 /* : Bool */;
5710 short int var10 /* : Bool */;
5711 short int var12 /* : Bool */;
5712 short int var13 /* : Bool */;
5713 int cltype14;
5714 int idtype15;
5715 const char* var_class_name16;
5716 val* var17 /* : AExpr */;
5717 short int var18 /* : Bool */;
5718 short int var20 /* : Bool */;
5719 short int var22 /* : Bool */;
5720 short int var23 /* : Bool */;
5721 int cltype24;
5722 int idtype25;
5723 const char* var_class_name26;
5724 var_old_child = p0;
5725 var_new_child = p1;
5726 var = self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ANeExpr> */
5727 if (unlikely(var == NULL)) {
5728 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
5729 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3926);
5730 fatal_exit(1);
5731 }
5732 {
5733 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
5734 var_other = var_old_child;
5735 {
5736 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
5737 var5 = var == var_other;
5738 var3 = var5;
5739 goto RET_LABEL4;
5740 RET_LABEL4:(void)0;
5741 }
5742 }
5743 var1 = var3;
5744 goto RET_LABEL2;
5745 RET_LABEL2:(void)0;
5746 }
5747 }
5748 if (var1){
5749 /* <var_new_child:nullable ANode> isa AExpr */
5750 cltype = type_nitc__AExpr.color;
5751 idtype = type_nitc__AExpr.id;
5752 if(var_new_child == NULL) {
5753 var6 = 0;
5754 } else {
5755 if(cltype >= var_new_child->type->table_size) {
5756 var6 = 0;
5757 } else {
5758 var6 = var_new_child->type->type_table[cltype] == idtype;
5759 }
5760 }
5761 if (unlikely(!var6)) {
5762 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
5763 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
5764 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3927);
5765 fatal_exit(1);
5766 }
5767 {
5768 nitc__parser_prod___ANeExpr___nitc__parser_nodes__ASendExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#ANeExpr#n_expr= on <self:ANeExpr>*/
5769 }
5770 goto RET_LABEL;
5771 } else {
5772 }
5773 var7 = self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_op].val; /* _n_op on <self:ANeExpr> */
5774 if (unlikely(var7 == NULL)) {
5775 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
5776 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3930);
5777 fatal_exit(1);
5778 }
5779 {
5780 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:Token> */
5781 var_other = var_old_child;
5782 {
5783 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:Token> */
5784 var12 = var7 == var_other;
5785 var10 = var12;
5786 goto RET_LABEL11;
5787 RET_LABEL11:(void)0;
5788 }
5789 }
5790 var8 = var10;
5791 goto RET_LABEL9;
5792 RET_LABEL9:(void)0;
5793 }
5794 }
5795 if (var8){
5796 /* <var_new_child:nullable ANode> isa TNe */
5797 cltype14 = type_nitc__TNe.color;
5798 idtype15 = type_nitc__TNe.id;
5799 if(var_new_child == NULL) {
5800 var13 = 0;
5801 } else {
5802 if(cltype14 >= var_new_child->type->table_size) {
5803 var13 = 0;
5804 } else {
5805 var13 = var_new_child->type->type_table[cltype14] == idtype15;
5806 }
5807 }
5808 if (unlikely(!var13)) {
5809 var_class_name16 = var_new_child == NULL ? "null" : var_new_child->type->name;
5810 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TNe", var_class_name16);
5811 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3931);
5812 fatal_exit(1);
5813 }
5814 {
5815 nitc__parser_prod___ANeExpr___nitc__parser_nodes__ABinopExpr__n_op_61d(self, var_new_child); /* Direct call parser_prod#ANeExpr#n_op= on <self:ANeExpr>*/
5816 }
5817 goto RET_LABEL;
5818 } else {
5819 }
5820 var17 = self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:ANeExpr> */
5821 if (unlikely(var17 == NULL)) {
5822 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
5823 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3934);
5824 fatal_exit(1);
5825 }
5826 {
5827 { /* Inline kernel#Object#== (var17,var_old_child) on <var17:AExpr> */
5828 var_other = var_old_child;
5829 {
5830 { /* Inline kernel#Object#is_same_instance (var17,var_other) on <var17:AExpr> */
5831 var22 = var17 == var_other;
5832 var20 = var22;
5833 goto RET_LABEL21;
5834 RET_LABEL21:(void)0;
5835 }
5836 }
5837 var18 = var20;
5838 goto RET_LABEL19;
5839 RET_LABEL19:(void)0;
5840 }
5841 }
5842 if (var18){
5843 /* <var_new_child:nullable ANode> isa AExpr */
5844 cltype24 = type_nitc__AExpr.color;
5845 idtype25 = type_nitc__AExpr.id;
5846 if(var_new_child == NULL) {
5847 var23 = 0;
5848 } else {
5849 if(cltype24 >= var_new_child->type->table_size) {
5850 var23 = 0;
5851 } else {
5852 var23 = var_new_child->type->type_table[cltype24] == idtype25;
5853 }
5854 }
5855 if (unlikely(!var23)) {
5856 var_class_name26 = var_new_child == NULL ? "null" : var_new_child->type->name;
5857 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name26);
5858 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3935);
5859 fatal_exit(1);
5860 }
5861 {
5862 nitc__parser_prod___ANeExpr___nitc__parser_nodes__ABinopExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#ANeExpr#n_expr2= on <self:ANeExpr>*/
5863 }
5864 goto RET_LABEL;
5865 } else {
5866 }
5867 RET_LABEL:;
5868 }
5869 /* method parser_prod#ANeExpr#n_expr= for (self: ANeExpr, AExpr) */
5870 void nitc__parser_prod___ANeExpr___nitc__parser_nodes__ASendExpr__n_expr_61d(val* self, val* p0) {
5871 val* var_node /* var node: AExpr */;
5872 var_node = p0;
5873 self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:ANeExpr> */
5874 {
5875 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
5876 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
5877 RET_LABEL1:(void)0;
5878 }
5879 }
5880 RET_LABEL:;
5881 }
5882 /* method parser_prod#ANeExpr#n_op= for (self: ANeExpr, Token) */
5883 void nitc__parser_prod___ANeExpr___nitc__parser_nodes__ABinopExpr__n_op_61d(val* self, val* p0) {
5884 val* var_node /* var node: Token */;
5885 var_node = p0;
5886 self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_op].val = var_node; /* _n_op on <self:ANeExpr> */
5887 {
5888 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:Token> */
5889 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:Token> */
5890 RET_LABEL1:(void)0;
5891 }
5892 }
5893 RET_LABEL:;
5894 }
5895 /* method parser_prod#ANeExpr#n_expr2= for (self: ANeExpr, AExpr) */
5896 void nitc__parser_prod___ANeExpr___nitc__parser_nodes__ABinopExpr__n_expr2_61d(val* self, val* p0) {
5897 val* var_node /* var node: AExpr */;
5898 var_node = p0;
5899 self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_expr2].val = var_node; /* _n_expr2 on <self:ANeExpr> */
5900 {
5901 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
5902 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
5903 RET_LABEL1:(void)0;
5904 }
5905 }
5906 RET_LABEL:;
5907 }
5908 /* method parser_prod#ANeExpr#visit_all for (self: ANeExpr, Visitor) */
5909 void nitc__parser_prod___ANeExpr___nitc__parser_nodes__ANode__visit_all(val* self, val* p0) {
5910 val* var_v /* var v: Visitor */;
5911 val* var /* : AExpr */;
5912 val* var1 /* : Token */;
5913 val* var2 /* : AExpr */;
5914 var_v = p0;
5915 var = self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ANeExpr> */
5916 if (unlikely(var == NULL)) {
5917 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
5918 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3959);
5919 fatal_exit(1);
5920 }
5921 {
5922 nitc___nitc__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
5923 }
5924 var1 = self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_op].val; /* _n_op on <self:ANeExpr> */
5925 if (unlikely(var1 == NULL)) {
5926 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
5927 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3960);
5928 fatal_exit(1);
5929 }
5930 {
5931 nitc___nitc__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
5932 }
5933 var2 = self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:ANeExpr> */
5934 if (unlikely(var2 == NULL)) {
5935 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
5936 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3961);
5937 fatal_exit(1);
5938 }
5939 {
5940 nitc___nitc__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
5941 }
5942 RET_LABEL:;
5943 }
5944 /* method parser_prod#ALtExpr#init_altexpr for (self: ALtExpr, nullable AExpr, nullable TLt, nullable AExpr) */
5945 void nitc__parser_prod___ALtExpr___init_altexpr(val* self, val* p0, val* p1, val* p2) {
5946 val* var_n_expr /* var n_expr: nullable AExpr */;
5947 val* var_n_op /* var n_op: nullable TLt */;
5948 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
5949 {
5950 { /* Inline kernel#Object#init (self) on <self:ALtExpr> */
5951 RET_LABEL1:(void)0;
5952 }
5953 }
5954 var_n_expr = p0;
5955 var_n_op = p1;
5956 var_n_expr2 = p2;
5957 if (unlikely(var_n_expr == NULL)) {
5958 PRINT_ERROR("Runtime error: %s", "Cast failed");
5959 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3971);
5960 fatal_exit(1);
5961 }
5962 self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:ALtExpr> */
5963 if (var_n_expr == NULL) {
5964 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5965 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3972);
5966 fatal_exit(1);
5967 } else {
5968 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
5969 if (unlikely(var_n_expr == NULL)) {
5970 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5971 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
5972 fatal_exit(1);
5973 }
5974 var_n_expr->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
5975 RET_LABEL2:(void)0;
5976 }
5977 }
5978 if (unlikely(var_n_op == NULL)) {
5979 PRINT_ERROR("Runtime error: %s", "Cast failed");
5980 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3973);
5981 fatal_exit(1);
5982 }
5983 self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_op].val = var_n_op; /* _n_op on <self:ALtExpr> */
5984 if (var_n_op == NULL) {
5985 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5986 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3974);
5987 fatal_exit(1);
5988 } else {
5989 { /* Inline parser_nodes#ANode#parent= (var_n_op,self) on <var_n_op:nullable TLt> */
5990 if (unlikely(var_n_op == NULL)) {
5991 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5992 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
5993 fatal_exit(1);
5994 }
5995 var_n_op->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_op:nullable TLt> */
5996 RET_LABEL3:(void)0;
5997 }
5998 }
5999 if (unlikely(var_n_expr2 == NULL)) {
6000 PRINT_ERROR("Runtime error: %s", "Cast failed");
6001 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3975);
6002 fatal_exit(1);
6003 }
6004 self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:ALtExpr> */
6005 if (var_n_expr2 == NULL) {
6006 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6007 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3976);
6008 fatal_exit(1);
6009 } else {
6010 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
6011 if (unlikely(var_n_expr2 == NULL)) {
6012 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6013 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
6014 fatal_exit(1);
6015 }
6016 var_n_expr2->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
6017 RET_LABEL4:(void)0;
6018 }
6019 }
6020 RET_LABEL:;
6021 }
6022 /* method parser_prod#ALtExpr#replace_child for (self: ALtExpr, ANode, nullable ANode) */
6023 void nitc__parser_prod___ALtExpr___nitc__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
6024 val* var_old_child /* var old_child: ANode */;
6025 val* var_new_child /* var new_child: nullable ANode */;
6026 val* var /* : AExpr */;
6027 short int var1 /* : Bool */;
6028 val* var_other /* var other: nullable Object */;
6029 short int var3 /* : Bool */;
6030 short int var5 /* : Bool */;
6031 short int var6 /* : Bool */;
6032 int cltype;
6033 int idtype;
6034 const char* var_class_name;
6035 val* var7 /* : Token */;
6036 short int var8 /* : Bool */;
6037 short int var10 /* : Bool */;
6038 short int var12 /* : Bool */;
6039 short int var13 /* : Bool */;
6040 int cltype14;
6041 int idtype15;
6042 const char* var_class_name16;
6043 val* var17 /* : AExpr */;
6044 short int var18 /* : Bool */;
6045 short int var20 /* : Bool */;
6046 short int var22 /* : Bool */;
6047 short int var23 /* : Bool */;
6048 int cltype24;
6049 int idtype25;
6050 const char* var_class_name26;
6051 var_old_child = p0;
6052 var_new_child = p1;
6053 var = self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ALtExpr> */
6054 if (unlikely(var == NULL)) {
6055 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
6056 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3981);
6057 fatal_exit(1);
6058 }
6059 {
6060 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
6061 var_other = var_old_child;
6062 {
6063 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
6064 var5 = var == var_other;
6065 var3 = var5;
6066 goto RET_LABEL4;
6067 RET_LABEL4:(void)0;
6068 }
6069 }
6070 var1 = var3;
6071 goto RET_LABEL2;
6072 RET_LABEL2:(void)0;
6073 }
6074 }
6075 if (var1){
6076 /* <var_new_child:nullable ANode> isa AExpr */
6077 cltype = type_nitc__AExpr.color;
6078 idtype = type_nitc__AExpr.id;
6079 if(var_new_child == NULL) {
6080 var6 = 0;
6081 } else {
6082 if(cltype >= var_new_child->type->table_size) {
6083 var6 = 0;
6084 } else {
6085 var6 = var_new_child->type->type_table[cltype] == idtype;
6086 }
6087 }
6088 if (unlikely(!var6)) {
6089 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
6090 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
6091 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3982);
6092 fatal_exit(1);
6093 }
6094 {
6095 nitc__parser_prod___ALtExpr___nitc__parser_nodes__ASendExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#ALtExpr#n_expr= on <self:ALtExpr>*/
6096 }
6097 goto RET_LABEL;
6098 } else {
6099 }
6100 var7 = self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_op].val; /* _n_op on <self:ALtExpr> */
6101 if (unlikely(var7 == NULL)) {
6102 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
6103 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3985);
6104 fatal_exit(1);
6105 }
6106 {
6107 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:Token> */
6108 var_other = var_old_child;
6109 {
6110 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:Token> */
6111 var12 = var7 == var_other;
6112 var10 = var12;
6113 goto RET_LABEL11;
6114 RET_LABEL11:(void)0;
6115 }
6116 }
6117 var8 = var10;
6118 goto RET_LABEL9;
6119 RET_LABEL9:(void)0;
6120 }
6121 }
6122 if (var8){
6123 /* <var_new_child:nullable ANode> isa TLt */
6124 cltype14 = type_nitc__TLt.color;
6125 idtype15 = type_nitc__TLt.id;
6126 if(var_new_child == NULL) {
6127 var13 = 0;
6128 } else {
6129 if(cltype14 >= var_new_child->type->table_size) {
6130 var13 = 0;
6131 } else {
6132 var13 = var_new_child->type->type_table[cltype14] == idtype15;
6133 }
6134 }
6135 if (unlikely(!var13)) {
6136 var_class_name16 = var_new_child == NULL ? "null" : var_new_child->type->name;
6137 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TLt", var_class_name16);
6138 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3986);
6139 fatal_exit(1);
6140 }
6141 {
6142 nitc__parser_prod___ALtExpr___nitc__parser_nodes__ABinopExpr__n_op_61d(self, var_new_child); /* Direct call parser_prod#ALtExpr#n_op= on <self:ALtExpr>*/
6143 }
6144 goto RET_LABEL;
6145 } else {
6146 }
6147 var17 = self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:ALtExpr> */
6148 if (unlikely(var17 == NULL)) {
6149 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
6150 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3989);
6151 fatal_exit(1);
6152 }
6153 {
6154 { /* Inline kernel#Object#== (var17,var_old_child) on <var17:AExpr> */
6155 var_other = var_old_child;
6156 {
6157 { /* Inline kernel#Object#is_same_instance (var17,var_other) on <var17:AExpr> */
6158 var22 = var17 == var_other;
6159 var20 = var22;
6160 goto RET_LABEL21;
6161 RET_LABEL21:(void)0;
6162 }
6163 }
6164 var18 = var20;
6165 goto RET_LABEL19;
6166 RET_LABEL19:(void)0;
6167 }
6168 }
6169 if (var18){
6170 /* <var_new_child:nullable ANode> isa AExpr */
6171 cltype24 = type_nitc__AExpr.color;
6172 idtype25 = type_nitc__AExpr.id;
6173 if(var_new_child == NULL) {
6174 var23 = 0;
6175 } else {
6176 if(cltype24 >= var_new_child->type->table_size) {
6177 var23 = 0;
6178 } else {
6179 var23 = var_new_child->type->type_table[cltype24] == idtype25;
6180 }
6181 }
6182 if (unlikely(!var23)) {
6183 var_class_name26 = var_new_child == NULL ? "null" : var_new_child->type->name;
6184 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name26);
6185 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 3990);
6186 fatal_exit(1);
6187 }
6188 {
6189 nitc__parser_prod___ALtExpr___nitc__parser_nodes__ABinopExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#ALtExpr#n_expr2= on <self:ALtExpr>*/
6190 }
6191 goto RET_LABEL;
6192 } else {
6193 }
6194 RET_LABEL:;
6195 }
6196 /* method parser_prod#ALtExpr#n_expr= for (self: ALtExpr, AExpr) */
6197 void nitc__parser_prod___ALtExpr___nitc__parser_nodes__ASendExpr__n_expr_61d(val* self, val* p0) {
6198 val* var_node /* var node: AExpr */;
6199 var_node = p0;
6200 self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:ALtExpr> */
6201 {
6202 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
6203 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
6204 RET_LABEL1:(void)0;
6205 }
6206 }
6207 RET_LABEL:;
6208 }
6209 /* method parser_prod#ALtExpr#n_op= for (self: ALtExpr, Token) */
6210 void nitc__parser_prod___ALtExpr___nitc__parser_nodes__ABinopExpr__n_op_61d(val* self, val* p0) {
6211 val* var_node /* var node: Token */;
6212 var_node = p0;
6213 self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_op].val = var_node; /* _n_op on <self:ALtExpr> */
6214 {
6215 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:Token> */
6216 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:Token> */
6217 RET_LABEL1:(void)0;
6218 }
6219 }
6220 RET_LABEL:;
6221 }
6222 /* method parser_prod#ALtExpr#n_expr2= for (self: ALtExpr, AExpr) */
6223 void nitc__parser_prod___ALtExpr___nitc__parser_nodes__ABinopExpr__n_expr2_61d(val* self, val* p0) {
6224 val* var_node /* var node: AExpr */;
6225 var_node = p0;
6226 self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_expr2].val = var_node; /* _n_expr2 on <self:ALtExpr> */
6227 {
6228 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
6229 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
6230 RET_LABEL1:(void)0;
6231 }
6232 }
6233 RET_LABEL:;
6234 }
6235 /* method parser_prod#ALtExpr#visit_all for (self: ALtExpr, Visitor) */
6236 void nitc__parser_prod___ALtExpr___nitc__parser_nodes__ANode__visit_all(val* self, val* p0) {
6237 val* var_v /* var v: Visitor */;
6238 val* var /* : AExpr */;
6239 val* var1 /* : Token */;
6240 val* var2 /* : AExpr */;
6241 var_v = p0;
6242 var = self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ALtExpr> */
6243 if (unlikely(var == NULL)) {
6244 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
6245 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4014);
6246 fatal_exit(1);
6247 }
6248 {
6249 nitc___nitc__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6250 }
6251 var1 = self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_op].val; /* _n_op on <self:ALtExpr> */
6252 if (unlikely(var1 == NULL)) {
6253 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
6254 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4015);
6255 fatal_exit(1);
6256 }
6257 {
6258 nitc___nitc__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6259 }
6260 var2 = self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:ALtExpr> */
6261 if (unlikely(var2 == NULL)) {
6262 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
6263 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4016);
6264 fatal_exit(1);
6265 }
6266 {
6267 nitc___nitc__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6268 }
6269 RET_LABEL:;
6270 }
6271 /* method parser_prod#ALeExpr#init_aleexpr for (self: ALeExpr, nullable AExpr, nullable TLe, nullable AExpr) */
6272 void nitc__parser_prod___ALeExpr___init_aleexpr(val* self, val* p0, val* p1, val* p2) {
6273 val* var_n_expr /* var n_expr: nullable AExpr */;
6274 val* var_n_op /* var n_op: nullable TLe */;
6275 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
6276 {
6277 { /* Inline kernel#Object#init (self) on <self:ALeExpr> */
6278 RET_LABEL1:(void)0;
6279 }
6280 }
6281 var_n_expr = p0;
6282 var_n_op = p1;
6283 var_n_expr2 = p2;
6284 if (unlikely(var_n_expr == NULL)) {
6285 PRINT_ERROR("Runtime error: %s", "Cast failed");
6286 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4026);
6287 fatal_exit(1);
6288 }
6289 self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:ALeExpr> */
6290 if (var_n_expr == NULL) {
6291 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6292 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4027);
6293 fatal_exit(1);
6294 } else {
6295 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
6296 if (unlikely(var_n_expr == NULL)) {
6297 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6298 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
6299 fatal_exit(1);
6300 }
6301 var_n_expr->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
6302 RET_LABEL2:(void)0;
6303 }
6304 }
6305 if (unlikely(var_n_op == NULL)) {
6306 PRINT_ERROR("Runtime error: %s", "Cast failed");
6307 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4028);
6308 fatal_exit(1);
6309 }
6310 self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_op].val = var_n_op; /* _n_op on <self:ALeExpr> */
6311 if (var_n_op == NULL) {
6312 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6313 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4029);
6314 fatal_exit(1);
6315 } else {
6316 { /* Inline parser_nodes#ANode#parent= (var_n_op,self) on <var_n_op:nullable TLe> */
6317 if (unlikely(var_n_op == NULL)) {
6318 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6319 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
6320 fatal_exit(1);
6321 }
6322 var_n_op->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_op:nullable TLe> */
6323 RET_LABEL3:(void)0;
6324 }
6325 }
6326 if (unlikely(var_n_expr2 == NULL)) {
6327 PRINT_ERROR("Runtime error: %s", "Cast failed");
6328 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4030);
6329 fatal_exit(1);
6330 }
6331 self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:ALeExpr> */
6332 if (var_n_expr2 == NULL) {
6333 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6334 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4031);
6335 fatal_exit(1);
6336 } else {
6337 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
6338 if (unlikely(var_n_expr2 == NULL)) {
6339 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6340 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
6341 fatal_exit(1);
6342 }
6343 var_n_expr2->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
6344 RET_LABEL4:(void)0;
6345 }
6346 }
6347 RET_LABEL:;
6348 }
6349 /* method parser_prod#ALeExpr#replace_child for (self: ALeExpr, ANode, nullable ANode) */
6350 void nitc__parser_prod___ALeExpr___nitc__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
6351 val* var_old_child /* var old_child: ANode */;
6352 val* var_new_child /* var new_child: nullable ANode */;
6353 val* var /* : AExpr */;
6354 short int var1 /* : Bool */;
6355 val* var_other /* var other: nullable Object */;
6356 short int var3 /* : Bool */;
6357 short int var5 /* : Bool */;
6358 short int var6 /* : Bool */;
6359 int cltype;
6360 int idtype;
6361 const char* var_class_name;
6362 val* var7 /* : Token */;
6363 short int var8 /* : Bool */;
6364 short int var10 /* : Bool */;
6365 short int var12 /* : Bool */;
6366 short int var13 /* : Bool */;
6367 int cltype14;
6368 int idtype15;
6369 const char* var_class_name16;
6370 val* var17 /* : AExpr */;
6371 short int var18 /* : Bool */;
6372 short int var20 /* : Bool */;
6373 short int var22 /* : Bool */;
6374 short int var23 /* : Bool */;
6375 int cltype24;
6376 int idtype25;
6377 const char* var_class_name26;
6378 var_old_child = p0;
6379 var_new_child = p1;
6380 var = self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ALeExpr> */
6381 if (unlikely(var == NULL)) {
6382 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
6383 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4036);
6384 fatal_exit(1);
6385 }
6386 {
6387 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
6388 var_other = var_old_child;
6389 {
6390 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
6391 var5 = var == var_other;
6392 var3 = var5;
6393 goto RET_LABEL4;
6394 RET_LABEL4:(void)0;
6395 }
6396 }
6397 var1 = var3;
6398 goto RET_LABEL2;
6399 RET_LABEL2:(void)0;
6400 }
6401 }
6402 if (var1){
6403 /* <var_new_child:nullable ANode> isa AExpr */
6404 cltype = type_nitc__AExpr.color;
6405 idtype = type_nitc__AExpr.id;
6406 if(var_new_child == NULL) {
6407 var6 = 0;
6408 } else {
6409 if(cltype >= var_new_child->type->table_size) {
6410 var6 = 0;
6411 } else {
6412 var6 = var_new_child->type->type_table[cltype] == idtype;
6413 }
6414 }
6415 if (unlikely(!var6)) {
6416 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
6417 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
6418 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4037);
6419 fatal_exit(1);
6420 }
6421 {
6422 nitc__parser_prod___ALeExpr___nitc__parser_nodes__ASendExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#ALeExpr#n_expr= on <self:ALeExpr>*/
6423 }
6424 goto RET_LABEL;
6425 } else {
6426 }
6427 var7 = self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_op].val; /* _n_op on <self:ALeExpr> */
6428 if (unlikely(var7 == NULL)) {
6429 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
6430 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4040);
6431 fatal_exit(1);
6432 }
6433 {
6434 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:Token> */
6435 var_other = var_old_child;
6436 {
6437 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:Token> */
6438 var12 = var7 == var_other;
6439 var10 = var12;
6440 goto RET_LABEL11;
6441 RET_LABEL11:(void)0;
6442 }
6443 }
6444 var8 = var10;
6445 goto RET_LABEL9;
6446 RET_LABEL9:(void)0;
6447 }
6448 }
6449 if (var8){
6450 /* <var_new_child:nullable ANode> isa TLe */
6451 cltype14 = type_nitc__TLe.color;
6452 idtype15 = type_nitc__TLe.id;
6453 if(var_new_child == NULL) {
6454 var13 = 0;
6455 } else {
6456 if(cltype14 >= var_new_child->type->table_size) {
6457 var13 = 0;
6458 } else {
6459 var13 = var_new_child->type->type_table[cltype14] == idtype15;
6460 }
6461 }
6462 if (unlikely(!var13)) {
6463 var_class_name16 = var_new_child == NULL ? "null" : var_new_child->type->name;
6464 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TLe", var_class_name16);
6465 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4041);
6466 fatal_exit(1);
6467 }
6468 {
6469 nitc__parser_prod___ALeExpr___nitc__parser_nodes__ABinopExpr__n_op_61d(self, var_new_child); /* Direct call parser_prod#ALeExpr#n_op= on <self:ALeExpr>*/
6470 }
6471 goto RET_LABEL;
6472 } else {
6473 }
6474 var17 = self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:ALeExpr> */
6475 if (unlikely(var17 == NULL)) {
6476 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
6477 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4044);
6478 fatal_exit(1);
6479 }
6480 {
6481 { /* Inline kernel#Object#== (var17,var_old_child) on <var17:AExpr> */
6482 var_other = var_old_child;
6483 {
6484 { /* Inline kernel#Object#is_same_instance (var17,var_other) on <var17:AExpr> */
6485 var22 = var17 == var_other;
6486 var20 = var22;
6487 goto RET_LABEL21;
6488 RET_LABEL21:(void)0;
6489 }
6490 }
6491 var18 = var20;
6492 goto RET_LABEL19;
6493 RET_LABEL19:(void)0;
6494 }
6495 }
6496 if (var18){
6497 /* <var_new_child:nullable ANode> isa AExpr */
6498 cltype24 = type_nitc__AExpr.color;
6499 idtype25 = type_nitc__AExpr.id;
6500 if(var_new_child == NULL) {
6501 var23 = 0;
6502 } else {
6503 if(cltype24 >= var_new_child->type->table_size) {
6504 var23 = 0;
6505 } else {
6506 var23 = var_new_child->type->type_table[cltype24] == idtype25;
6507 }
6508 }
6509 if (unlikely(!var23)) {
6510 var_class_name26 = var_new_child == NULL ? "null" : var_new_child->type->name;
6511 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name26);
6512 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4045);
6513 fatal_exit(1);
6514 }
6515 {
6516 nitc__parser_prod___ALeExpr___nitc__parser_nodes__ABinopExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#ALeExpr#n_expr2= on <self:ALeExpr>*/
6517 }
6518 goto RET_LABEL;
6519 } else {
6520 }
6521 RET_LABEL:;
6522 }
6523 /* method parser_prod#ALeExpr#n_expr= for (self: ALeExpr, AExpr) */
6524 void nitc__parser_prod___ALeExpr___nitc__parser_nodes__ASendExpr__n_expr_61d(val* self, val* p0) {
6525 val* var_node /* var node: AExpr */;
6526 var_node = p0;
6527 self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:ALeExpr> */
6528 {
6529 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
6530 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
6531 RET_LABEL1:(void)0;
6532 }
6533 }
6534 RET_LABEL:;
6535 }
6536 /* method parser_prod#ALeExpr#n_op= for (self: ALeExpr, Token) */
6537 void nitc__parser_prod___ALeExpr___nitc__parser_nodes__ABinopExpr__n_op_61d(val* self, val* p0) {
6538 val* var_node /* var node: Token */;
6539 var_node = p0;
6540 self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_op].val = var_node; /* _n_op on <self:ALeExpr> */
6541 {
6542 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:Token> */
6543 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:Token> */
6544 RET_LABEL1:(void)0;
6545 }
6546 }
6547 RET_LABEL:;
6548 }
6549 /* method parser_prod#ALeExpr#n_expr2= for (self: ALeExpr, AExpr) */
6550 void nitc__parser_prod___ALeExpr___nitc__parser_nodes__ABinopExpr__n_expr2_61d(val* self, val* p0) {
6551 val* var_node /* var node: AExpr */;
6552 var_node = p0;
6553 self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_expr2].val = var_node; /* _n_expr2 on <self:ALeExpr> */
6554 {
6555 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
6556 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
6557 RET_LABEL1:(void)0;
6558 }
6559 }
6560 RET_LABEL:;
6561 }
6562 /* method parser_prod#ALeExpr#visit_all for (self: ALeExpr, Visitor) */
6563 void nitc__parser_prod___ALeExpr___nitc__parser_nodes__ANode__visit_all(val* self, val* p0) {
6564 val* var_v /* var v: Visitor */;
6565 val* var /* : AExpr */;
6566 val* var1 /* : Token */;
6567 val* var2 /* : AExpr */;
6568 var_v = p0;
6569 var = self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ALeExpr> */
6570 if (unlikely(var == NULL)) {
6571 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
6572 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4069);
6573 fatal_exit(1);
6574 }
6575 {
6576 nitc___nitc__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6577 }
6578 var1 = self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_op].val; /* _n_op on <self:ALeExpr> */
6579 if (unlikely(var1 == NULL)) {
6580 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
6581 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4070);
6582 fatal_exit(1);
6583 }
6584 {
6585 nitc___nitc__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6586 }
6587 var2 = self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:ALeExpr> */
6588 if (unlikely(var2 == NULL)) {
6589 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
6590 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4071);
6591 fatal_exit(1);
6592 }
6593 {
6594 nitc___nitc__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6595 }
6596 RET_LABEL:;
6597 }
6598 /* method parser_prod#ALlExpr#init_allexpr for (self: ALlExpr, nullable AExpr, nullable TLl, nullable AExpr) */
6599 void nitc__parser_prod___ALlExpr___init_allexpr(val* self, val* p0, val* p1, val* p2) {
6600 val* var_n_expr /* var n_expr: nullable AExpr */;
6601 val* var_n_op /* var n_op: nullable TLl */;
6602 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
6603 {
6604 { /* Inline kernel#Object#init (self) on <self:ALlExpr> */
6605 RET_LABEL1:(void)0;
6606 }
6607 }
6608 var_n_expr = p0;
6609 var_n_op = p1;
6610 var_n_expr2 = p2;
6611 if (unlikely(var_n_expr == NULL)) {
6612 PRINT_ERROR("Runtime error: %s", "Cast failed");
6613 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4081);
6614 fatal_exit(1);
6615 }
6616 self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:ALlExpr> */
6617 if (var_n_expr == NULL) {
6618 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6619 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4082);
6620 fatal_exit(1);
6621 } else {
6622 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
6623 if (unlikely(var_n_expr == NULL)) {
6624 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6625 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
6626 fatal_exit(1);
6627 }
6628 var_n_expr->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
6629 RET_LABEL2:(void)0;
6630 }
6631 }
6632 if (unlikely(var_n_op == NULL)) {
6633 PRINT_ERROR("Runtime error: %s", "Cast failed");
6634 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4083);
6635 fatal_exit(1);
6636 }
6637 self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_op].val = var_n_op; /* _n_op on <self:ALlExpr> */
6638 if (var_n_op == NULL) {
6639 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6640 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4084);
6641 fatal_exit(1);
6642 } else {
6643 { /* Inline parser_nodes#ANode#parent= (var_n_op,self) on <var_n_op:nullable TLl> */
6644 if (unlikely(var_n_op == NULL)) {
6645 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6646 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
6647 fatal_exit(1);
6648 }
6649 var_n_op->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_op:nullable TLl> */
6650 RET_LABEL3:(void)0;
6651 }
6652 }
6653 if (unlikely(var_n_expr2 == NULL)) {
6654 PRINT_ERROR("Runtime error: %s", "Cast failed");
6655 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4085);
6656 fatal_exit(1);
6657 }
6658 self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:ALlExpr> */
6659 if (var_n_expr2 == NULL) {
6660 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6661 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4086);
6662 fatal_exit(1);
6663 } else {
6664 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
6665 if (unlikely(var_n_expr2 == NULL)) {
6666 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6667 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
6668 fatal_exit(1);
6669 }
6670 var_n_expr2->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
6671 RET_LABEL4:(void)0;
6672 }
6673 }
6674 RET_LABEL:;
6675 }
6676 /* method parser_prod#ALlExpr#replace_child for (self: ALlExpr, ANode, nullable ANode) */
6677 void nitc__parser_prod___ALlExpr___nitc__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
6678 val* var_old_child /* var old_child: ANode */;
6679 val* var_new_child /* var new_child: nullable ANode */;
6680 val* var /* : AExpr */;
6681 short int var1 /* : Bool */;
6682 val* var_other /* var other: nullable Object */;
6683 short int var3 /* : Bool */;
6684 short int var5 /* : Bool */;
6685 short int var6 /* : Bool */;
6686 int cltype;
6687 int idtype;
6688 const char* var_class_name;
6689 val* var7 /* : Token */;
6690 short int var8 /* : Bool */;
6691 short int var10 /* : Bool */;
6692 short int var12 /* : Bool */;
6693 short int var13 /* : Bool */;
6694 int cltype14;
6695 int idtype15;
6696 const char* var_class_name16;
6697 val* var17 /* : AExpr */;
6698 short int var18 /* : Bool */;
6699 short int var20 /* : Bool */;
6700 short int var22 /* : Bool */;
6701 short int var23 /* : Bool */;
6702 int cltype24;
6703 int idtype25;
6704 const char* var_class_name26;
6705 var_old_child = p0;
6706 var_new_child = p1;
6707 var = self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ALlExpr> */
6708 if (unlikely(var == NULL)) {
6709 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
6710 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4091);
6711 fatal_exit(1);
6712 }
6713 {
6714 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
6715 var_other = var_old_child;
6716 {
6717 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
6718 var5 = var == var_other;
6719 var3 = var5;
6720 goto RET_LABEL4;
6721 RET_LABEL4:(void)0;
6722 }
6723 }
6724 var1 = var3;
6725 goto RET_LABEL2;
6726 RET_LABEL2:(void)0;
6727 }
6728 }
6729 if (var1){
6730 /* <var_new_child:nullable ANode> isa AExpr */
6731 cltype = type_nitc__AExpr.color;
6732 idtype = type_nitc__AExpr.id;
6733 if(var_new_child == NULL) {
6734 var6 = 0;
6735 } else {
6736 if(cltype >= var_new_child->type->table_size) {
6737 var6 = 0;
6738 } else {
6739 var6 = var_new_child->type->type_table[cltype] == idtype;
6740 }
6741 }
6742 if (unlikely(!var6)) {
6743 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
6744 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
6745 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4092);
6746 fatal_exit(1);
6747 }
6748 {
6749 nitc__parser_prod___ALlExpr___nitc__parser_nodes__ASendExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#ALlExpr#n_expr= on <self:ALlExpr>*/
6750 }
6751 goto RET_LABEL;
6752 } else {
6753 }
6754 var7 = self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_op].val; /* _n_op on <self:ALlExpr> */
6755 if (unlikely(var7 == NULL)) {
6756 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
6757 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4095);
6758 fatal_exit(1);
6759 }
6760 {
6761 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:Token> */
6762 var_other = var_old_child;
6763 {
6764 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:Token> */
6765 var12 = var7 == var_other;
6766 var10 = var12;
6767 goto RET_LABEL11;
6768 RET_LABEL11:(void)0;
6769 }
6770 }
6771 var8 = var10;
6772 goto RET_LABEL9;
6773 RET_LABEL9:(void)0;
6774 }
6775 }
6776 if (var8){
6777 /* <var_new_child:nullable ANode> isa TLl */
6778 cltype14 = type_nitc__TLl.color;
6779 idtype15 = type_nitc__TLl.id;
6780 if(var_new_child == NULL) {
6781 var13 = 0;
6782 } else {
6783 if(cltype14 >= var_new_child->type->table_size) {
6784 var13 = 0;
6785 } else {
6786 var13 = var_new_child->type->type_table[cltype14] == idtype15;
6787 }
6788 }
6789 if (unlikely(!var13)) {
6790 var_class_name16 = var_new_child == NULL ? "null" : var_new_child->type->name;
6791 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TLl", var_class_name16);
6792 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4096);
6793 fatal_exit(1);
6794 }
6795 {
6796 nitc__parser_prod___ALlExpr___nitc__parser_nodes__ABinopExpr__n_op_61d(self, var_new_child); /* Direct call parser_prod#ALlExpr#n_op= on <self:ALlExpr>*/
6797 }
6798 goto RET_LABEL;
6799 } else {
6800 }
6801 var17 = self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:ALlExpr> */
6802 if (unlikely(var17 == NULL)) {
6803 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
6804 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4099);
6805 fatal_exit(1);
6806 }
6807 {
6808 { /* Inline kernel#Object#== (var17,var_old_child) on <var17:AExpr> */
6809 var_other = var_old_child;
6810 {
6811 { /* Inline kernel#Object#is_same_instance (var17,var_other) on <var17:AExpr> */
6812 var22 = var17 == var_other;
6813 var20 = var22;
6814 goto RET_LABEL21;
6815 RET_LABEL21:(void)0;
6816 }
6817 }
6818 var18 = var20;
6819 goto RET_LABEL19;
6820 RET_LABEL19:(void)0;
6821 }
6822 }
6823 if (var18){
6824 /* <var_new_child:nullable ANode> isa AExpr */
6825 cltype24 = type_nitc__AExpr.color;
6826 idtype25 = type_nitc__AExpr.id;
6827 if(var_new_child == NULL) {
6828 var23 = 0;
6829 } else {
6830 if(cltype24 >= var_new_child->type->table_size) {
6831 var23 = 0;
6832 } else {
6833 var23 = var_new_child->type->type_table[cltype24] == idtype25;
6834 }
6835 }
6836 if (unlikely(!var23)) {
6837 var_class_name26 = var_new_child == NULL ? "null" : var_new_child->type->name;
6838 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name26);
6839 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4100);
6840 fatal_exit(1);
6841 }
6842 {
6843 nitc__parser_prod___ALlExpr___nitc__parser_nodes__ABinopExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#ALlExpr#n_expr2= on <self:ALlExpr>*/
6844 }
6845 goto RET_LABEL;
6846 } else {
6847 }
6848 RET_LABEL:;
6849 }
6850 /* method parser_prod#ALlExpr#n_expr= for (self: ALlExpr, AExpr) */
6851 void nitc__parser_prod___ALlExpr___nitc__parser_nodes__ASendExpr__n_expr_61d(val* self, val* p0) {
6852 val* var_node /* var node: AExpr */;
6853 var_node = p0;
6854 self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:ALlExpr> */
6855 {
6856 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
6857 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
6858 RET_LABEL1:(void)0;
6859 }
6860 }
6861 RET_LABEL:;
6862 }
6863 /* method parser_prod#ALlExpr#n_op= for (self: ALlExpr, Token) */
6864 void nitc__parser_prod___ALlExpr___nitc__parser_nodes__ABinopExpr__n_op_61d(val* self, val* p0) {
6865 val* var_node /* var node: Token */;
6866 var_node = p0;
6867 self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_op].val = var_node; /* _n_op on <self:ALlExpr> */
6868 {
6869 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:Token> */
6870 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:Token> */
6871 RET_LABEL1:(void)0;
6872 }
6873 }
6874 RET_LABEL:;
6875 }
6876 /* method parser_prod#ALlExpr#n_expr2= for (self: ALlExpr, AExpr) */
6877 void nitc__parser_prod___ALlExpr___nitc__parser_nodes__ABinopExpr__n_expr2_61d(val* self, val* p0) {
6878 val* var_node /* var node: AExpr */;
6879 var_node = p0;
6880 self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_expr2].val = var_node; /* _n_expr2 on <self:ALlExpr> */
6881 {
6882 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
6883 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
6884 RET_LABEL1:(void)0;
6885 }
6886 }
6887 RET_LABEL:;
6888 }
6889 /* method parser_prod#ALlExpr#visit_all for (self: ALlExpr, Visitor) */
6890 void nitc__parser_prod___ALlExpr___nitc__parser_nodes__ANode__visit_all(val* self, val* p0) {
6891 val* var_v /* var v: Visitor */;
6892 val* var /* : AExpr */;
6893 val* var1 /* : Token */;
6894 val* var2 /* : AExpr */;
6895 var_v = p0;
6896 var = self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ALlExpr> */
6897 if (unlikely(var == NULL)) {
6898 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
6899 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4124);
6900 fatal_exit(1);
6901 }
6902 {
6903 nitc___nitc__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6904 }
6905 var1 = self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_op].val; /* _n_op on <self:ALlExpr> */
6906 if (unlikely(var1 == NULL)) {
6907 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
6908 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4125);
6909 fatal_exit(1);
6910 }
6911 {
6912 nitc___nitc__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6913 }
6914 var2 = self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:ALlExpr> */
6915 if (unlikely(var2 == NULL)) {
6916 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
6917 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4126);
6918 fatal_exit(1);
6919 }
6920 {
6921 nitc___nitc__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6922 }
6923 RET_LABEL:;
6924 }
6925 /* method parser_prod#AGtExpr#init_agtexpr for (self: AGtExpr, nullable AExpr, nullable TGt, nullable AExpr) */
6926 void nitc__parser_prod___AGtExpr___init_agtexpr(val* self, val* p0, val* p1, val* p2) {
6927 val* var_n_expr /* var n_expr: nullable AExpr */;
6928 val* var_n_op /* var n_op: nullable TGt */;
6929 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
6930 {
6931 { /* Inline kernel#Object#init (self) on <self:AGtExpr> */
6932 RET_LABEL1:(void)0;
6933 }
6934 }
6935 var_n_expr = p0;
6936 var_n_op = p1;
6937 var_n_expr2 = p2;
6938 if (unlikely(var_n_expr == NULL)) {
6939 PRINT_ERROR("Runtime error: %s", "Cast failed");
6940 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4136);
6941 fatal_exit(1);
6942 }
6943 self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AGtExpr> */
6944 if (var_n_expr == NULL) {
6945 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6946 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4137);
6947 fatal_exit(1);
6948 } else {
6949 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
6950 if (unlikely(var_n_expr == NULL)) {
6951 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6952 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
6953 fatal_exit(1);
6954 }
6955 var_n_expr->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
6956 RET_LABEL2:(void)0;
6957 }
6958 }
6959 if (unlikely(var_n_op == NULL)) {
6960 PRINT_ERROR("Runtime error: %s", "Cast failed");
6961 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4138);
6962 fatal_exit(1);
6963 }
6964 self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_op].val = var_n_op; /* _n_op on <self:AGtExpr> */
6965 if (var_n_op == NULL) {
6966 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6967 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4139);
6968 fatal_exit(1);
6969 } else {
6970 { /* Inline parser_nodes#ANode#parent= (var_n_op,self) on <var_n_op:nullable TGt> */
6971 if (unlikely(var_n_op == NULL)) {
6972 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6973 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
6974 fatal_exit(1);
6975 }
6976 var_n_op->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_op:nullable TGt> */
6977 RET_LABEL3:(void)0;
6978 }
6979 }
6980 if (unlikely(var_n_expr2 == NULL)) {
6981 PRINT_ERROR("Runtime error: %s", "Cast failed");
6982 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4140);
6983 fatal_exit(1);
6984 }
6985 self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:AGtExpr> */
6986 if (var_n_expr2 == NULL) {
6987 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6988 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4141);
6989 fatal_exit(1);
6990 } else {
6991 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
6992 if (unlikely(var_n_expr2 == NULL)) {
6993 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6994 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
6995 fatal_exit(1);
6996 }
6997 var_n_expr2->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
6998 RET_LABEL4:(void)0;
6999 }
7000 }
7001 RET_LABEL:;
7002 }
7003 /* method parser_prod#AGtExpr#replace_child for (self: AGtExpr, ANode, nullable ANode) */
7004 void nitc__parser_prod___AGtExpr___nitc__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
7005 val* var_old_child /* var old_child: ANode */;
7006 val* var_new_child /* var new_child: nullable ANode */;
7007 val* var /* : AExpr */;
7008 short int var1 /* : Bool */;
7009 val* var_other /* var other: nullable Object */;
7010 short int var3 /* : Bool */;
7011 short int var5 /* : Bool */;
7012 short int var6 /* : Bool */;
7013 int cltype;
7014 int idtype;
7015 const char* var_class_name;
7016 val* var7 /* : Token */;
7017 short int var8 /* : Bool */;
7018 short int var10 /* : Bool */;
7019 short int var12 /* : Bool */;
7020 short int var13 /* : Bool */;
7021 int cltype14;
7022 int idtype15;
7023 const char* var_class_name16;
7024 val* var17 /* : AExpr */;
7025 short int var18 /* : Bool */;
7026 short int var20 /* : Bool */;
7027 short int var22 /* : Bool */;
7028 short int var23 /* : Bool */;
7029 int cltype24;
7030 int idtype25;
7031 const char* var_class_name26;
7032 var_old_child = p0;
7033 var_new_child = p1;
7034 var = self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AGtExpr> */
7035 if (unlikely(var == NULL)) {
7036 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
7037 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4146);
7038 fatal_exit(1);
7039 }
7040 {
7041 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
7042 var_other = var_old_child;
7043 {
7044 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
7045 var5 = var == var_other;
7046 var3 = var5;
7047 goto RET_LABEL4;
7048 RET_LABEL4:(void)0;
7049 }
7050 }
7051 var1 = var3;
7052 goto RET_LABEL2;
7053 RET_LABEL2:(void)0;
7054 }
7055 }
7056 if (var1){
7057 /* <var_new_child:nullable ANode> isa AExpr */
7058 cltype = type_nitc__AExpr.color;
7059 idtype = type_nitc__AExpr.id;
7060 if(var_new_child == NULL) {
7061 var6 = 0;
7062 } else {
7063 if(cltype >= var_new_child->type->table_size) {
7064 var6 = 0;
7065 } else {
7066 var6 = var_new_child->type->type_table[cltype] == idtype;
7067 }
7068 }
7069 if (unlikely(!var6)) {
7070 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
7071 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
7072 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4147);
7073 fatal_exit(1);
7074 }
7075 {
7076 nitc__parser_prod___AGtExpr___nitc__parser_nodes__ASendExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AGtExpr#n_expr= on <self:AGtExpr>*/
7077 }
7078 goto RET_LABEL;
7079 } else {
7080 }
7081 var7 = self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_op].val; /* _n_op on <self:AGtExpr> */
7082 if (unlikely(var7 == NULL)) {
7083 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
7084 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4150);
7085 fatal_exit(1);
7086 }
7087 {
7088 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:Token> */
7089 var_other = var_old_child;
7090 {
7091 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:Token> */
7092 var12 = var7 == var_other;
7093 var10 = var12;
7094 goto RET_LABEL11;
7095 RET_LABEL11:(void)0;
7096 }
7097 }
7098 var8 = var10;
7099 goto RET_LABEL9;
7100 RET_LABEL9:(void)0;
7101 }
7102 }
7103 if (var8){
7104 /* <var_new_child:nullable ANode> isa TGt */
7105 cltype14 = type_nitc__TGt.color;
7106 idtype15 = type_nitc__TGt.id;
7107 if(var_new_child == NULL) {
7108 var13 = 0;
7109 } else {
7110 if(cltype14 >= var_new_child->type->table_size) {
7111 var13 = 0;
7112 } else {
7113 var13 = var_new_child->type->type_table[cltype14] == idtype15;
7114 }
7115 }
7116 if (unlikely(!var13)) {
7117 var_class_name16 = var_new_child == NULL ? "null" : var_new_child->type->name;
7118 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TGt", var_class_name16);
7119 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4151);
7120 fatal_exit(1);
7121 }
7122 {
7123 nitc__parser_prod___AGtExpr___nitc__parser_nodes__ABinopExpr__n_op_61d(self, var_new_child); /* Direct call parser_prod#AGtExpr#n_op= on <self:AGtExpr>*/
7124 }
7125 goto RET_LABEL;
7126 } else {
7127 }
7128 var17 = self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AGtExpr> */
7129 if (unlikely(var17 == NULL)) {
7130 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
7131 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4154);
7132 fatal_exit(1);
7133 }
7134 {
7135 { /* Inline kernel#Object#== (var17,var_old_child) on <var17:AExpr> */
7136 var_other = var_old_child;
7137 {
7138 { /* Inline kernel#Object#is_same_instance (var17,var_other) on <var17:AExpr> */
7139 var22 = var17 == var_other;
7140 var20 = var22;
7141 goto RET_LABEL21;
7142 RET_LABEL21:(void)0;
7143 }
7144 }
7145 var18 = var20;
7146 goto RET_LABEL19;
7147 RET_LABEL19:(void)0;
7148 }
7149 }
7150 if (var18){
7151 /* <var_new_child:nullable ANode> isa AExpr */
7152 cltype24 = type_nitc__AExpr.color;
7153 idtype25 = type_nitc__AExpr.id;
7154 if(var_new_child == NULL) {
7155 var23 = 0;
7156 } else {
7157 if(cltype24 >= var_new_child->type->table_size) {
7158 var23 = 0;
7159 } else {
7160 var23 = var_new_child->type->type_table[cltype24] == idtype25;
7161 }
7162 }
7163 if (unlikely(!var23)) {
7164 var_class_name26 = var_new_child == NULL ? "null" : var_new_child->type->name;
7165 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name26);
7166 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4155);
7167 fatal_exit(1);
7168 }
7169 {
7170 nitc__parser_prod___AGtExpr___nitc__parser_nodes__ABinopExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#AGtExpr#n_expr2= on <self:AGtExpr>*/
7171 }
7172 goto RET_LABEL;
7173 } else {
7174 }
7175 RET_LABEL:;
7176 }
7177 /* method parser_prod#AGtExpr#n_expr= for (self: AGtExpr, AExpr) */
7178 void nitc__parser_prod___AGtExpr___nitc__parser_nodes__ASendExpr__n_expr_61d(val* self, val* p0) {
7179 val* var_node /* var node: AExpr */;
7180 var_node = p0;
7181 self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:AGtExpr> */
7182 {
7183 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
7184 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
7185 RET_LABEL1:(void)0;
7186 }
7187 }
7188 RET_LABEL:;
7189 }
7190 /* method parser_prod#AGtExpr#n_op= for (self: AGtExpr, Token) */
7191 void nitc__parser_prod___AGtExpr___nitc__parser_nodes__ABinopExpr__n_op_61d(val* self, val* p0) {
7192 val* var_node /* var node: Token */;
7193 var_node = p0;
7194 self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_op].val = var_node; /* _n_op on <self:AGtExpr> */
7195 {
7196 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:Token> */
7197 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:Token> */
7198 RET_LABEL1:(void)0;
7199 }
7200 }
7201 RET_LABEL:;
7202 }
7203 /* method parser_prod#AGtExpr#n_expr2= for (self: AGtExpr, AExpr) */
7204 void nitc__parser_prod___AGtExpr___nitc__parser_nodes__ABinopExpr__n_expr2_61d(val* self, val* p0) {
7205 val* var_node /* var node: AExpr */;
7206 var_node = p0;
7207 self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_expr2].val = var_node; /* _n_expr2 on <self:AGtExpr> */
7208 {
7209 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
7210 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
7211 RET_LABEL1:(void)0;
7212 }
7213 }
7214 RET_LABEL:;
7215 }
7216 /* method parser_prod#AGtExpr#visit_all for (self: AGtExpr, Visitor) */
7217 void nitc__parser_prod___AGtExpr___nitc__parser_nodes__ANode__visit_all(val* self, val* p0) {
7218 val* var_v /* var v: Visitor */;
7219 val* var /* : AExpr */;
7220 val* var1 /* : Token */;
7221 val* var2 /* : AExpr */;
7222 var_v = p0;
7223 var = self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AGtExpr> */
7224 if (unlikely(var == NULL)) {
7225 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
7226 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4179);
7227 fatal_exit(1);
7228 }
7229 {
7230 nitc___nitc__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7231 }
7232 var1 = self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_op].val; /* _n_op on <self:AGtExpr> */
7233 if (unlikely(var1 == NULL)) {
7234 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
7235 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4180);
7236 fatal_exit(1);
7237 }
7238 {
7239 nitc___nitc__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7240 }
7241 var2 = self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AGtExpr> */
7242 if (unlikely(var2 == NULL)) {
7243 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
7244 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4181);
7245 fatal_exit(1);
7246 }
7247 {
7248 nitc___nitc__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7249 }
7250 RET_LABEL:;
7251 }
7252 /* method parser_prod#AGeExpr#init_ageexpr for (self: AGeExpr, nullable AExpr, nullable TGe, nullable AExpr) */
7253 void nitc__parser_prod___AGeExpr___init_ageexpr(val* self, val* p0, val* p1, val* p2) {
7254 val* var_n_expr /* var n_expr: nullable AExpr */;
7255 val* var_n_op /* var n_op: nullable TGe */;
7256 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
7257 {
7258 { /* Inline kernel#Object#init (self) on <self:AGeExpr> */
7259 RET_LABEL1:(void)0;
7260 }
7261 }
7262 var_n_expr = p0;
7263 var_n_op = p1;
7264 var_n_expr2 = p2;
7265 if (unlikely(var_n_expr == NULL)) {
7266 PRINT_ERROR("Runtime error: %s", "Cast failed");
7267 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4191);
7268 fatal_exit(1);
7269 }
7270 self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AGeExpr> */
7271 if (var_n_expr == NULL) {
7272 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7273 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4192);
7274 fatal_exit(1);
7275 } else {
7276 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
7277 if (unlikely(var_n_expr == NULL)) {
7278 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7279 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
7280 fatal_exit(1);
7281 }
7282 var_n_expr->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
7283 RET_LABEL2:(void)0;
7284 }
7285 }
7286 if (unlikely(var_n_op == NULL)) {
7287 PRINT_ERROR("Runtime error: %s", "Cast failed");
7288 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4193);
7289 fatal_exit(1);
7290 }
7291 self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_op].val = var_n_op; /* _n_op on <self:AGeExpr> */
7292 if (var_n_op == NULL) {
7293 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7294 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4194);
7295 fatal_exit(1);
7296 } else {
7297 { /* Inline parser_nodes#ANode#parent= (var_n_op,self) on <var_n_op:nullable TGe> */
7298 if (unlikely(var_n_op == NULL)) {
7299 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7300 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
7301 fatal_exit(1);
7302 }
7303 var_n_op->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_op:nullable TGe> */
7304 RET_LABEL3:(void)0;
7305 }
7306 }
7307 if (unlikely(var_n_expr2 == NULL)) {
7308 PRINT_ERROR("Runtime error: %s", "Cast failed");
7309 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4195);
7310 fatal_exit(1);
7311 }
7312 self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:AGeExpr> */
7313 if (var_n_expr2 == NULL) {
7314 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7315 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4196);
7316 fatal_exit(1);
7317 } else {
7318 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
7319 if (unlikely(var_n_expr2 == NULL)) {
7320 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7321 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
7322 fatal_exit(1);
7323 }
7324 var_n_expr2->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
7325 RET_LABEL4:(void)0;
7326 }
7327 }
7328 RET_LABEL:;
7329 }
7330 /* method parser_prod#AGeExpr#replace_child for (self: AGeExpr, ANode, nullable ANode) */
7331 void nitc__parser_prod___AGeExpr___nitc__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
7332 val* var_old_child /* var old_child: ANode */;
7333 val* var_new_child /* var new_child: nullable ANode */;
7334 val* var /* : AExpr */;
7335 short int var1 /* : Bool */;
7336 val* var_other /* var other: nullable Object */;
7337 short int var3 /* : Bool */;
7338 short int var5 /* : Bool */;
7339 short int var6 /* : Bool */;
7340 int cltype;
7341 int idtype;
7342 const char* var_class_name;
7343 val* var7 /* : Token */;
7344 short int var8 /* : Bool */;
7345 short int var10 /* : Bool */;
7346 short int var12 /* : Bool */;
7347 short int var13 /* : Bool */;
7348 int cltype14;
7349 int idtype15;
7350 const char* var_class_name16;
7351 val* var17 /* : AExpr */;
7352 short int var18 /* : Bool */;
7353 short int var20 /* : Bool */;
7354 short int var22 /* : Bool */;
7355 short int var23 /* : Bool */;
7356 int cltype24;
7357 int idtype25;
7358 const char* var_class_name26;
7359 var_old_child = p0;
7360 var_new_child = p1;
7361 var = self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AGeExpr> */
7362 if (unlikely(var == NULL)) {
7363 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
7364 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4201);
7365 fatal_exit(1);
7366 }
7367 {
7368 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
7369 var_other = var_old_child;
7370 {
7371 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
7372 var5 = var == var_other;
7373 var3 = var5;
7374 goto RET_LABEL4;
7375 RET_LABEL4:(void)0;
7376 }
7377 }
7378 var1 = var3;
7379 goto RET_LABEL2;
7380 RET_LABEL2:(void)0;
7381 }
7382 }
7383 if (var1){
7384 /* <var_new_child:nullable ANode> isa AExpr */
7385 cltype = type_nitc__AExpr.color;
7386 idtype = type_nitc__AExpr.id;
7387 if(var_new_child == NULL) {
7388 var6 = 0;
7389 } else {
7390 if(cltype >= var_new_child->type->table_size) {
7391 var6 = 0;
7392 } else {
7393 var6 = var_new_child->type->type_table[cltype] == idtype;
7394 }
7395 }
7396 if (unlikely(!var6)) {
7397 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
7398 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
7399 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4202);
7400 fatal_exit(1);
7401 }
7402 {
7403 nitc__parser_prod___AGeExpr___nitc__parser_nodes__ASendExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AGeExpr#n_expr= on <self:AGeExpr>*/
7404 }
7405 goto RET_LABEL;
7406 } else {
7407 }
7408 var7 = self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_op].val; /* _n_op on <self:AGeExpr> */
7409 if (unlikely(var7 == NULL)) {
7410 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
7411 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4205);
7412 fatal_exit(1);
7413 }
7414 {
7415 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:Token> */
7416 var_other = var_old_child;
7417 {
7418 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:Token> */
7419 var12 = var7 == var_other;
7420 var10 = var12;
7421 goto RET_LABEL11;
7422 RET_LABEL11:(void)0;
7423 }
7424 }
7425 var8 = var10;
7426 goto RET_LABEL9;
7427 RET_LABEL9:(void)0;
7428 }
7429 }
7430 if (var8){
7431 /* <var_new_child:nullable ANode> isa TGe */
7432 cltype14 = type_nitc__TGe.color;
7433 idtype15 = type_nitc__TGe.id;
7434 if(var_new_child == NULL) {
7435 var13 = 0;
7436 } else {
7437 if(cltype14 >= var_new_child->type->table_size) {
7438 var13 = 0;
7439 } else {
7440 var13 = var_new_child->type->type_table[cltype14] == idtype15;
7441 }
7442 }
7443 if (unlikely(!var13)) {
7444 var_class_name16 = var_new_child == NULL ? "null" : var_new_child->type->name;
7445 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TGe", var_class_name16);
7446 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4206);
7447 fatal_exit(1);
7448 }
7449 {
7450 nitc__parser_prod___AGeExpr___nitc__parser_nodes__ABinopExpr__n_op_61d(self, var_new_child); /* Direct call parser_prod#AGeExpr#n_op= on <self:AGeExpr>*/
7451 }
7452 goto RET_LABEL;
7453 } else {
7454 }
7455 var17 = self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AGeExpr> */
7456 if (unlikely(var17 == NULL)) {
7457 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
7458 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4209);
7459 fatal_exit(1);
7460 }
7461 {
7462 { /* Inline kernel#Object#== (var17,var_old_child) on <var17:AExpr> */
7463 var_other = var_old_child;
7464 {
7465 { /* Inline kernel#Object#is_same_instance (var17,var_other) on <var17:AExpr> */
7466 var22 = var17 == var_other;
7467 var20 = var22;
7468 goto RET_LABEL21;
7469 RET_LABEL21:(void)0;
7470 }
7471 }
7472 var18 = var20;
7473 goto RET_LABEL19;
7474 RET_LABEL19:(void)0;
7475 }
7476 }
7477 if (var18){
7478 /* <var_new_child:nullable ANode> isa AExpr */
7479 cltype24 = type_nitc__AExpr.color;
7480 idtype25 = type_nitc__AExpr.id;
7481 if(var_new_child == NULL) {
7482 var23 = 0;
7483 } else {
7484 if(cltype24 >= var_new_child->type->table_size) {
7485 var23 = 0;
7486 } else {
7487 var23 = var_new_child->type->type_table[cltype24] == idtype25;
7488 }
7489 }
7490 if (unlikely(!var23)) {
7491 var_class_name26 = var_new_child == NULL ? "null" : var_new_child->type->name;
7492 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name26);
7493 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4210);
7494 fatal_exit(1);
7495 }
7496 {
7497 nitc__parser_prod___AGeExpr___nitc__parser_nodes__ABinopExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#AGeExpr#n_expr2= on <self:AGeExpr>*/
7498 }
7499 goto RET_LABEL;
7500 } else {
7501 }
7502 RET_LABEL:;
7503 }
7504 /* method parser_prod#AGeExpr#n_expr= for (self: AGeExpr, AExpr) */
7505 void nitc__parser_prod___AGeExpr___nitc__parser_nodes__ASendExpr__n_expr_61d(val* self, val* p0) {
7506 val* var_node /* var node: AExpr */;
7507 var_node = p0;
7508 self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:AGeExpr> */
7509 {
7510 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
7511 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
7512 RET_LABEL1:(void)0;
7513 }
7514 }
7515 RET_LABEL:;
7516 }
7517 /* method parser_prod#AGeExpr#n_op= for (self: AGeExpr, Token) */
7518 void nitc__parser_prod___AGeExpr___nitc__parser_nodes__ABinopExpr__n_op_61d(val* self, val* p0) {
7519 val* var_node /* var node: Token */;
7520 var_node = p0;
7521 self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_op].val = var_node; /* _n_op on <self:AGeExpr> */
7522 {
7523 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:Token> */
7524 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:Token> */
7525 RET_LABEL1:(void)0;
7526 }
7527 }
7528 RET_LABEL:;
7529 }
7530 /* method parser_prod#AGeExpr#n_expr2= for (self: AGeExpr, AExpr) */
7531 void nitc__parser_prod___AGeExpr___nitc__parser_nodes__ABinopExpr__n_expr2_61d(val* self, val* p0) {
7532 val* var_node /* var node: AExpr */;
7533 var_node = p0;
7534 self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_expr2].val = var_node; /* _n_expr2 on <self:AGeExpr> */
7535 {
7536 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
7537 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
7538 RET_LABEL1:(void)0;
7539 }
7540 }
7541 RET_LABEL:;
7542 }
7543 /* method parser_prod#AGeExpr#visit_all for (self: AGeExpr, Visitor) */
7544 void nitc__parser_prod___AGeExpr___nitc__parser_nodes__ANode__visit_all(val* self, val* p0) {
7545 val* var_v /* var v: Visitor */;
7546 val* var /* : AExpr */;
7547 val* var1 /* : Token */;
7548 val* var2 /* : AExpr */;
7549 var_v = p0;
7550 var = self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AGeExpr> */
7551 if (unlikely(var == NULL)) {
7552 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
7553 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4234);
7554 fatal_exit(1);
7555 }
7556 {
7557 nitc___nitc__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7558 }
7559 var1 = self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_op].val; /* _n_op on <self:AGeExpr> */
7560 if (unlikely(var1 == NULL)) {
7561 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
7562 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4235);
7563 fatal_exit(1);
7564 }
7565 {
7566 nitc___nitc__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7567 }
7568 var2 = self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AGeExpr> */
7569 if (unlikely(var2 == NULL)) {
7570 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
7571 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4236);
7572 fatal_exit(1);
7573 }
7574 {
7575 nitc___nitc__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7576 }
7577 RET_LABEL:;
7578 }
7579 /* method parser_prod#AGgExpr#init_aggexpr for (self: AGgExpr, nullable AExpr, nullable TGg, nullable AExpr) */
7580 void nitc__parser_prod___AGgExpr___init_aggexpr(val* self, val* p0, val* p1, val* p2) {
7581 val* var_n_expr /* var n_expr: nullable AExpr */;
7582 val* var_n_op /* var n_op: nullable TGg */;
7583 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
7584 {
7585 { /* Inline kernel#Object#init (self) on <self:AGgExpr> */
7586 RET_LABEL1:(void)0;
7587 }
7588 }
7589 var_n_expr = p0;
7590 var_n_op = p1;
7591 var_n_expr2 = p2;
7592 if (unlikely(var_n_expr == NULL)) {
7593 PRINT_ERROR("Runtime error: %s", "Cast failed");
7594 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4246);
7595 fatal_exit(1);
7596 }
7597 self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AGgExpr> */
7598 if (var_n_expr == NULL) {
7599 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7600 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4247);
7601 fatal_exit(1);
7602 } else {
7603 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
7604 if (unlikely(var_n_expr == NULL)) {
7605 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7606 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
7607 fatal_exit(1);
7608 }
7609 var_n_expr->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
7610 RET_LABEL2:(void)0;
7611 }
7612 }
7613 if (unlikely(var_n_op == NULL)) {
7614 PRINT_ERROR("Runtime error: %s", "Cast failed");
7615 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4248);
7616 fatal_exit(1);
7617 }
7618 self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_op].val = var_n_op; /* _n_op on <self:AGgExpr> */
7619 if (var_n_op == NULL) {
7620 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7621 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4249);
7622 fatal_exit(1);
7623 } else {
7624 { /* Inline parser_nodes#ANode#parent= (var_n_op,self) on <var_n_op:nullable TGg> */
7625 if (unlikely(var_n_op == NULL)) {
7626 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7627 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
7628 fatal_exit(1);
7629 }
7630 var_n_op->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_op:nullable TGg> */
7631 RET_LABEL3:(void)0;
7632 }
7633 }
7634 if (unlikely(var_n_expr2 == NULL)) {
7635 PRINT_ERROR("Runtime error: %s", "Cast failed");
7636 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4250);
7637 fatal_exit(1);
7638 }
7639 self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:AGgExpr> */
7640 if (var_n_expr2 == NULL) {
7641 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7642 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4251);
7643 fatal_exit(1);
7644 } else {
7645 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
7646 if (unlikely(var_n_expr2 == NULL)) {
7647 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7648 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
7649 fatal_exit(1);
7650 }
7651 var_n_expr2->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
7652 RET_LABEL4:(void)0;
7653 }
7654 }
7655 RET_LABEL:;
7656 }
7657 /* method parser_prod#AGgExpr#replace_child for (self: AGgExpr, ANode, nullable ANode) */
7658 void nitc__parser_prod___AGgExpr___nitc__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
7659 val* var_old_child /* var old_child: ANode */;
7660 val* var_new_child /* var new_child: nullable ANode */;
7661 val* var /* : AExpr */;
7662 short int var1 /* : Bool */;
7663 val* var_other /* var other: nullable Object */;
7664 short int var3 /* : Bool */;
7665 short int var5 /* : Bool */;
7666 short int var6 /* : Bool */;
7667 int cltype;
7668 int idtype;
7669 const char* var_class_name;
7670 val* var7 /* : Token */;
7671 short int var8 /* : Bool */;
7672 short int var10 /* : Bool */;
7673 short int var12 /* : Bool */;
7674 short int var13 /* : Bool */;
7675 int cltype14;
7676 int idtype15;
7677 const char* var_class_name16;
7678 val* var17 /* : AExpr */;
7679 short int var18 /* : Bool */;
7680 short int var20 /* : Bool */;
7681 short int var22 /* : Bool */;
7682 short int var23 /* : Bool */;
7683 int cltype24;
7684 int idtype25;
7685 const char* var_class_name26;
7686 var_old_child = p0;
7687 var_new_child = p1;
7688 var = self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AGgExpr> */
7689 if (unlikely(var == NULL)) {
7690 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
7691 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4256);
7692 fatal_exit(1);
7693 }
7694 {
7695 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
7696 var_other = var_old_child;
7697 {
7698 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
7699 var5 = var == var_other;
7700 var3 = var5;
7701 goto RET_LABEL4;
7702 RET_LABEL4:(void)0;
7703 }
7704 }
7705 var1 = var3;
7706 goto RET_LABEL2;
7707 RET_LABEL2:(void)0;
7708 }
7709 }
7710 if (var1){
7711 /* <var_new_child:nullable ANode> isa AExpr */
7712 cltype = type_nitc__AExpr.color;
7713 idtype = type_nitc__AExpr.id;
7714 if(var_new_child == NULL) {
7715 var6 = 0;
7716 } else {
7717 if(cltype >= var_new_child->type->table_size) {
7718 var6 = 0;
7719 } else {
7720 var6 = var_new_child->type->type_table[cltype] == idtype;
7721 }
7722 }
7723 if (unlikely(!var6)) {
7724 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
7725 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
7726 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4257);
7727 fatal_exit(1);
7728 }
7729 {
7730 nitc__parser_prod___AGgExpr___nitc__parser_nodes__ASendExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AGgExpr#n_expr= on <self:AGgExpr>*/
7731 }
7732 goto RET_LABEL;
7733 } else {
7734 }
7735 var7 = self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_op].val; /* _n_op on <self:AGgExpr> */
7736 if (unlikely(var7 == NULL)) {
7737 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
7738 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4260);
7739 fatal_exit(1);
7740 }
7741 {
7742 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:Token> */
7743 var_other = var_old_child;
7744 {
7745 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:Token> */
7746 var12 = var7 == var_other;
7747 var10 = var12;
7748 goto RET_LABEL11;
7749 RET_LABEL11:(void)0;
7750 }
7751 }
7752 var8 = var10;
7753 goto RET_LABEL9;
7754 RET_LABEL9:(void)0;
7755 }
7756 }
7757 if (var8){
7758 /* <var_new_child:nullable ANode> isa TGg */
7759 cltype14 = type_nitc__TGg.color;
7760 idtype15 = type_nitc__TGg.id;
7761 if(var_new_child == NULL) {
7762 var13 = 0;
7763 } else {
7764 if(cltype14 >= var_new_child->type->table_size) {
7765 var13 = 0;
7766 } else {
7767 var13 = var_new_child->type->type_table[cltype14] == idtype15;
7768 }
7769 }
7770 if (unlikely(!var13)) {
7771 var_class_name16 = var_new_child == NULL ? "null" : var_new_child->type->name;
7772 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TGg", var_class_name16);
7773 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4261);
7774 fatal_exit(1);
7775 }
7776 {
7777 nitc__parser_prod___AGgExpr___nitc__parser_nodes__ABinopExpr__n_op_61d(self, var_new_child); /* Direct call parser_prod#AGgExpr#n_op= on <self:AGgExpr>*/
7778 }
7779 goto RET_LABEL;
7780 } else {
7781 }
7782 var17 = self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AGgExpr> */
7783 if (unlikely(var17 == NULL)) {
7784 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
7785 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4264);
7786 fatal_exit(1);
7787 }
7788 {
7789 { /* Inline kernel#Object#== (var17,var_old_child) on <var17:AExpr> */
7790 var_other = var_old_child;
7791 {
7792 { /* Inline kernel#Object#is_same_instance (var17,var_other) on <var17:AExpr> */
7793 var22 = var17 == var_other;
7794 var20 = var22;
7795 goto RET_LABEL21;
7796 RET_LABEL21:(void)0;
7797 }
7798 }
7799 var18 = var20;
7800 goto RET_LABEL19;
7801 RET_LABEL19:(void)0;
7802 }
7803 }
7804 if (var18){
7805 /* <var_new_child:nullable ANode> isa AExpr */
7806 cltype24 = type_nitc__AExpr.color;
7807 idtype25 = type_nitc__AExpr.id;
7808 if(var_new_child == NULL) {
7809 var23 = 0;
7810 } else {
7811 if(cltype24 >= var_new_child->type->table_size) {
7812 var23 = 0;
7813 } else {
7814 var23 = var_new_child->type->type_table[cltype24] == idtype25;
7815 }
7816 }
7817 if (unlikely(!var23)) {
7818 var_class_name26 = var_new_child == NULL ? "null" : var_new_child->type->name;
7819 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name26);
7820 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4265);
7821 fatal_exit(1);
7822 }
7823 {
7824 nitc__parser_prod___AGgExpr___nitc__parser_nodes__ABinopExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#AGgExpr#n_expr2= on <self:AGgExpr>*/
7825 }
7826 goto RET_LABEL;
7827 } else {
7828 }
7829 RET_LABEL:;
7830 }
7831 /* method parser_prod#AGgExpr#n_expr= for (self: AGgExpr, AExpr) */
7832 void nitc__parser_prod___AGgExpr___nitc__parser_nodes__ASendExpr__n_expr_61d(val* self, val* p0) {
7833 val* var_node /* var node: AExpr */;
7834 var_node = p0;
7835 self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:AGgExpr> */
7836 {
7837 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
7838 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
7839 RET_LABEL1:(void)0;
7840 }
7841 }
7842 RET_LABEL:;
7843 }
7844 /* method parser_prod#AGgExpr#n_op= for (self: AGgExpr, Token) */
7845 void nitc__parser_prod___AGgExpr___nitc__parser_nodes__ABinopExpr__n_op_61d(val* self, val* p0) {
7846 val* var_node /* var node: Token */;
7847 var_node = p0;
7848 self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_op].val = var_node; /* _n_op on <self:AGgExpr> */
7849 {
7850 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:Token> */
7851 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:Token> */
7852 RET_LABEL1:(void)0;
7853 }
7854 }
7855 RET_LABEL:;
7856 }
7857 /* method parser_prod#AGgExpr#n_expr2= for (self: AGgExpr, AExpr) */
7858 void nitc__parser_prod___AGgExpr___nitc__parser_nodes__ABinopExpr__n_expr2_61d(val* self, val* p0) {
7859 val* var_node /* var node: AExpr */;
7860 var_node = p0;
7861 self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_expr2].val = var_node; /* _n_expr2 on <self:AGgExpr> */
7862 {
7863 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
7864 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
7865 RET_LABEL1:(void)0;
7866 }
7867 }
7868 RET_LABEL:;
7869 }
7870 /* method parser_prod#AGgExpr#visit_all for (self: AGgExpr, Visitor) */
7871 void nitc__parser_prod___AGgExpr___nitc__parser_nodes__ANode__visit_all(val* self, val* p0) {
7872 val* var_v /* var v: Visitor */;
7873 val* var /* : AExpr */;
7874 val* var1 /* : Token */;
7875 val* var2 /* : AExpr */;
7876 var_v = p0;
7877 var = self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AGgExpr> */
7878 if (unlikely(var == NULL)) {
7879 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
7880 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4289);
7881 fatal_exit(1);
7882 }
7883 {
7884 nitc___nitc__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7885 }
7886 var1 = self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_op].val; /* _n_op on <self:AGgExpr> */
7887 if (unlikely(var1 == NULL)) {
7888 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
7889 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4290);
7890 fatal_exit(1);
7891 }
7892 {
7893 nitc___nitc__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7894 }
7895 var2 = self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AGgExpr> */
7896 if (unlikely(var2 == NULL)) {
7897 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
7898 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4291);
7899 fatal_exit(1);
7900 }
7901 {
7902 nitc___nitc__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7903 }
7904 RET_LABEL:;
7905 }
7906 /* method parser_prod#AIsaExpr#init_aisaexpr for (self: AIsaExpr, nullable AExpr, nullable TKwisa, nullable AType) */
7907 void nitc__parser_prod___AIsaExpr___init_aisaexpr(val* self, val* p0, val* p1, val* p2) {
7908 val* var_n_expr /* var n_expr: nullable AExpr */;
7909 val* var_n_kwisa /* var n_kwisa: nullable TKwisa */;
7910 val* var_n_type /* var n_type: nullable AType */;
7911 {
7912 { /* Inline kernel#Object#init (self) on <self:AIsaExpr> */
7913 RET_LABEL1:(void)0;
7914 }
7915 }
7916 var_n_expr = p0;
7917 var_n_kwisa = p1;
7918 var_n_type = p2;
7919 if (unlikely(var_n_expr == NULL)) {
7920 PRINT_ERROR("Runtime error: %s", "Cast failed");
7921 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4301);
7922 fatal_exit(1);
7923 }
7924 self->attrs[COLOR_nitc__parser_nodes__AIsaExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AIsaExpr> */
7925 if (var_n_expr == NULL) {
7926 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7927 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4302);
7928 fatal_exit(1);
7929 } else {
7930 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
7931 if (unlikely(var_n_expr == NULL)) {
7932 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7933 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
7934 fatal_exit(1);
7935 }
7936 var_n_expr->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
7937 RET_LABEL2:(void)0;
7938 }
7939 }
7940 if (unlikely(var_n_kwisa == NULL)) {
7941 PRINT_ERROR("Runtime error: %s", "Cast failed");
7942 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4303);
7943 fatal_exit(1);
7944 }
7945 self->attrs[COLOR_nitc__parser_nodes__AIsaExpr___n_kwisa].val = var_n_kwisa; /* _n_kwisa on <self:AIsaExpr> */
7946 if (var_n_kwisa == NULL) {
7947 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7948 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4304);
7949 fatal_exit(1);
7950 } else {
7951 { /* Inline parser_nodes#ANode#parent= (var_n_kwisa,self) on <var_n_kwisa:nullable TKwisa> */
7952 if (unlikely(var_n_kwisa == NULL)) {
7953 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7954 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
7955 fatal_exit(1);
7956 }
7957 var_n_kwisa->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwisa:nullable TKwisa> */
7958 RET_LABEL3:(void)0;
7959 }
7960 }
7961 if (unlikely(var_n_type == NULL)) {
7962 PRINT_ERROR("Runtime error: %s", "Cast failed");
7963 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4305);
7964 fatal_exit(1);
7965 }
7966 self->attrs[COLOR_nitc__parser_nodes__AIsaExpr___n_type].val = var_n_type; /* _n_type on <self:AIsaExpr> */
7967 if (var_n_type == NULL) {
7968 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7969 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4306);
7970 fatal_exit(1);
7971 } else {
7972 { /* Inline parser_nodes#ANode#parent= (var_n_type,self) on <var_n_type:nullable AType> */
7973 if (unlikely(var_n_type == NULL)) {
7974 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7975 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
7976 fatal_exit(1);
7977 }
7978 var_n_type->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_type:nullable AType> */
7979 RET_LABEL4:(void)0;
7980 }
7981 }
7982 RET_LABEL:;
7983 }
7984 /* method parser_prod#AIsaExpr#replace_child for (self: AIsaExpr, ANode, nullable ANode) */
7985 void nitc__parser_prod___AIsaExpr___nitc__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
7986 val* var_old_child /* var old_child: ANode */;
7987 val* var_new_child /* var new_child: nullable ANode */;
7988 val* var /* : AExpr */;
7989 short int var1 /* : Bool */;
7990 val* var_other /* var other: nullable Object */;
7991 short int var3 /* : Bool */;
7992 short int var5 /* : Bool */;
7993 short int var6 /* : Bool */;
7994 int cltype;
7995 int idtype;
7996 const char* var_class_name;
7997 val* var7 /* : TKwisa */;
7998 short int var8 /* : Bool */;
7999 short int var10 /* : Bool */;
8000 short int var12 /* : Bool */;
8001 short int var13 /* : Bool */;
8002 int cltype14;
8003 int idtype15;
8004 const char* var_class_name16;
8005 val* var17 /* : AType */;
8006 short int var18 /* : Bool */;
8007 short int var20 /* : Bool */;
8008 short int var22 /* : Bool */;
8009 short int var23 /* : Bool */;
8010 int cltype24;
8011 int idtype25;
8012 const char* var_class_name26;
8013 var_old_child = p0;
8014 var_new_child = p1;
8015 var = self->attrs[COLOR_nitc__parser_nodes__AIsaExpr___n_expr].val; /* _n_expr on <self:AIsaExpr> */
8016 if (unlikely(var == NULL)) {
8017 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
8018 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4311);
8019 fatal_exit(1);
8020 }
8021 {
8022 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
8023 var_other = var_old_child;
8024 {
8025 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
8026 var5 = var == var_other;
8027 var3 = var5;
8028 goto RET_LABEL4;
8029 RET_LABEL4:(void)0;
8030 }
8031 }
8032 var1 = var3;
8033 goto RET_LABEL2;
8034 RET_LABEL2:(void)0;
8035 }
8036 }
8037 if (var1){
8038 /* <var_new_child:nullable ANode> isa AExpr */
8039 cltype = type_nitc__AExpr.color;
8040 idtype = type_nitc__AExpr.id;
8041 if(var_new_child == NULL) {
8042 var6 = 0;
8043 } else {
8044 if(cltype >= var_new_child->type->table_size) {
8045 var6 = 0;
8046 } else {
8047 var6 = var_new_child->type->type_table[cltype] == idtype;
8048 }
8049 }
8050 if (unlikely(!var6)) {
8051 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
8052 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
8053 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4312);
8054 fatal_exit(1);
8055 }
8056 {
8057 nitc__parser_prod___AIsaExpr___n_expr_61d(self, var_new_child); /* Direct call parser_prod#AIsaExpr#n_expr= on <self:AIsaExpr>*/
8058 }
8059 goto RET_LABEL;
8060 } else {
8061 }
8062 var7 = self->attrs[COLOR_nitc__parser_nodes__AIsaExpr___n_kwisa].val; /* _n_kwisa on <self:AIsaExpr> */
8063 if (unlikely(var7 == NULL)) {
8064 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwisa");
8065 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4315);
8066 fatal_exit(1);
8067 }
8068 {
8069 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:TKwisa> */
8070 var_other = var_old_child;
8071 {
8072 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:TKwisa> */
8073 var12 = var7 == var_other;
8074 var10 = var12;
8075 goto RET_LABEL11;
8076 RET_LABEL11:(void)0;
8077 }
8078 }
8079 var8 = var10;
8080 goto RET_LABEL9;
8081 RET_LABEL9:(void)0;
8082 }
8083 }
8084 if (var8){
8085 /* <var_new_child:nullable ANode> isa TKwisa */
8086 cltype14 = type_nitc__TKwisa.color;
8087 idtype15 = type_nitc__TKwisa.id;
8088 if(var_new_child == NULL) {
8089 var13 = 0;
8090 } else {
8091 if(cltype14 >= var_new_child->type->table_size) {
8092 var13 = 0;
8093 } else {
8094 var13 = var_new_child->type->type_table[cltype14] == idtype15;
8095 }
8096 }
8097 if (unlikely(!var13)) {
8098 var_class_name16 = var_new_child == NULL ? "null" : var_new_child->type->name;
8099 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwisa", var_class_name16);
8100 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4316);
8101 fatal_exit(1);
8102 }
8103 {
8104 nitc__parser_prod___AIsaExpr___n_kwisa_61d(self, var_new_child); /* Direct call parser_prod#AIsaExpr#n_kwisa= on <self:AIsaExpr>*/
8105 }
8106 goto RET_LABEL;
8107 } else {
8108 }
8109 var17 = self->attrs[COLOR_nitc__parser_nodes__AIsaExpr___n_type].val; /* _n_type on <self:AIsaExpr> */
8110 if (unlikely(var17 == NULL)) {
8111 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
8112 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4319);
8113 fatal_exit(1);
8114 }
8115 {
8116 { /* Inline kernel#Object#== (var17,var_old_child) on <var17:AType> */
8117 var_other = var_old_child;
8118 {
8119 { /* Inline kernel#Object#is_same_instance (var17,var_other) on <var17:AType> */
8120 var22 = var17 == var_other;
8121 var20 = var22;
8122 goto RET_LABEL21;
8123 RET_LABEL21:(void)0;
8124 }
8125 }
8126 var18 = var20;
8127 goto RET_LABEL19;
8128 RET_LABEL19:(void)0;
8129 }
8130 }
8131 if (var18){
8132 /* <var_new_child:nullable ANode> isa AType */
8133 cltype24 = type_nitc__AType.color;
8134 idtype25 = type_nitc__AType.id;
8135 if(var_new_child == NULL) {
8136 var23 = 0;
8137 } else {
8138 if(cltype24 >= var_new_child->type->table_size) {
8139 var23 = 0;
8140 } else {
8141 var23 = var_new_child->type->type_table[cltype24] == idtype25;
8142 }
8143 }
8144 if (unlikely(!var23)) {
8145 var_class_name26 = var_new_child == NULL ? "null" : var_new_child->type->name;
8146 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AType", var_class_name26);
8147 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4320);
8148 fatal_exit(1);
8149 }
8150 {
8151 nitc__parser_prod___AIsaExpr___n_type_61d(self, var_new_child); /* Direct call parser_prod#AIsaExpr#n_type= on <self:AIsaExpr>*/
8152 }
8153 goto RET_LABEL;
8154 } else {
8155 }
8156 RET_LABEL:;
8157 }
8158 /* method parser_prod#AIsaExpr#n_expr= for (self: AIsaExpr, AExpr) */
8159 void nitc__parser_prod___AIsaExpr___n_expr_61d(val* self, val* p0) {
8160 val* var_node /* var node: AExpr */;
8161 var_node = p0;
8162 self->attrs[COLOR_nitc__parser_nodes__AIsaExpr___n_expr].val = var_node; /* _n_expr on <self:AIsaExpr> */
8163 {
8164 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
8165 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
8166 RET_LABEL1:(void)0;
8167 }
8168 }
8169 RET_LABEL:;
8170 }
8171 /* method parser_prod#AIsaExpr#n_kwisa= for (self: AIsaExpr, TKwisa) */
8172 void nitc__parser_prod___AIsaExpr___n_kwisa_61d(val* self, val* p0) {
8173 val* var_node /* var node: TKwisa */;
8174 var_node = p0;
8175 self->attrs[COLOR_nitc__parser_nodes__AIsaExpr___n_kwisa].val = var_node; /* _n_kwisa on <self:AIsaExpr> */
8176 {
8177 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwisa> */
8178 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwisa> */
8179 RET_LABEL1:(void)0;
8180 }
8181 }
8182 RET_LABEL:;
8183 }
8184 /* method parser_prod#AIsaExpr#n_type= for (self: AIsaExpr, AType) */
8185 void nitc__parser_prod___AIsaExpr___n_type_61d(val* self, val* p0) {
8186 val* var_node /* var node: AType */;
8187 var_node = p0;
8188 self->attrs[COLOR_nitc__parser_nodes__AIsaExpr___n_type].val = var_node; /* _n_type on <self:AIsaExpr> */
8189 {
8190 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AType> */
8191 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AType> */
8192 RET_LABEL1:(void)0;
8193 }
8194 }
8195 RET_LABEL:;
8196 }
8197 /* method parser_prod#AIsaExpr#visit_all for (self: AIsaExpr, Visitor) */
8198 void nitc__parser_prod___AIsaExpr___nitc__parser_nodes__ANode__visit_all(val* self, val* p0) {
8199 val* var_v /* var v: Visitor */;
8200 val* var /* : AExpr */;
8201 val* var1 /* : TKwisa */;
8202 val* var2 /* : AType */;
8203 var_v = p0;
8204 var = self->attrs[COLOR_nitc__parser_nodes__AIsaExpr___n_expr].val; /* _n_expr on <self:AIsaExpr> */
8205 if (unlikely(var == NULL)) {
8206 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
8207 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4344);
8208 fatal_exit(1);
8209 }
8210 {
8211 nitc___nitc__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8212 }
8213 var1 = self->attrs[COLOR_nitc__parser_nodes__AIsaExpr___n_kwisa].val; /* _n_kwisa on <self:AIsaExpr> */
8214 if (unlikely(var1 == NULL)) {
8215 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwisa");
8216 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4345);
8217 fatal_exit(1);
8218 }
8219 {
8220 nitc___nitc__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8221 }
8222 var2 = self->attrs[COLOR_nitc__parser_nodes__AIsaExpr___n_type].val; /* _n_type on <self:AIsaExpr> */
8223 if (unlikely(var2 == NULL)) {
8224 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
8225 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4346);
8226 fatal_exit(1);
8227 }
8228 {
8229 nitc___nitc__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8230 }
8231 RET_LABEL:;
8232 }
8233 /* method parser_prod#APlusExpr#init_aplusexpr for (self: APlusExpr, nullable AExpr, nullable TPlus, nullable AExpr) */
8234 void nitc__parser_prod___APlusExpr___init_aplusexpr(val* self, val* p0, val* p1, val* p2) {
8235 val* var_n_expr /* var n_expr: nullable AExpr */;
8236 val* var_n_op /* var n_op: nullable TPlus */;
8237 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
8238 {
8239 { /* Inline kernel#Object#init (self) on <self:APlusExpr> */
8240 RET_LABEL1:(void)0;
8241 }
8242 }
8243 var_n_expr = p0;
8244 var_n_op = p1;
8245 var_n_expr2 = p2;
8246 if (unlikely(var_n_expr == NULL)) {
8247 PRINT_ERROR("Runtime error: %s", "Cast failed");
8248 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4356);
8249 fatal_exit(1);
8250 }
8251 self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:APlusExpr> */
8252 if (var_n_expr == NULL) {
8253 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8254 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4357);
8255 fatal_exit(1);
8256 } else {
8257 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
8258 if (unlikely(var_n_expr == NULL)) {
8259 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8260 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
8261 fatal_exit(1);
8262 }
8263 var_n_expr->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
8264 RET_LABEL2:(void)0;
8265 }
8266 }
8267 if (unlikely(var_n_op == NULL)) {
8268 PRINT_ERROR("Runtime error: %s", "Cast failed");
8269 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4358);
8270 fatal_exit(1);
8271 }
8272 self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_op].val = var_n_op; /* _n_op on <self:APlusExpr> */
8273 if (var_n_op == NULL) {
8274 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8275 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4359);
8276 fatal_exit(1);
8277 } else {
8278 { /* Inline parser_nodes#ANode#parent= (var_n_op,self) on <var_n_op:nullable TPlus> */
8279 if (unlikely(var_n_op == NULL)) {
8280 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8281 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
8282 fatal_exit(1);
8283 }
8284 var_n_op->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_op:nullable TPlus> */
8285 RET_LABEL3:(void)0;
8286 }
8287 }
8288 if (unlikely(var_n_expr2 == NULL)) {
8289 PRINT_ERROR("Runtime error: %s", "Cast failed");
8290 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4360);
8291 fatal_exit(1);
8292 }
8293 self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:APlusExpr> */
8294 if (var_n_expr2 == NULL) {
8295 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8296 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4361);
8297 fatal_exit(1);
8298 } else {
8299 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
8300 if (unlikely(var_n_expr2 == NULL)) {
8301 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8302 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
8303 fatal_exit(1);
8304 }
8305 var_n_expr2->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
8306 RET_LABEL4:(void)0;
8307 }
8308 }
8309 RET_LABEL:;
8310 }
8311 /* method parser_prod#APlusExpr#replace_child for (self: APlusExpr, ANode, nullable ANode) */
8312 void nitc__parser_prod___APlusExpr___nitc__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
8313 val* var_old_child /* var old_child: ANode */;
8314 val* var_new_child /* var new_child: nullable ANode */;
8315 val* var /* : AExpr */;
8316 short int var1 /* : Bool */;
8317 val* var_other /* var other: nullable Object */;
8318 short int var3 /* : Bool */;
8319 short int var5 /* : Bool */;
8320 short int var6 /* : Bool */;
8321 int cltype;
8322 int idtype;
8323 const char* var_class_name;
8324 val* var7 /* : Token */;
8325 short int var8 /* : Bool */;
8326 short int var10 /* : Bool */;
8327 short int var12 /* : Bool */;
8328 short int var13 /* : Bool */;
8329 int cltype14;
8330 int idtype15;
8331 const char* var_class_name16;
8332 val* var17 /* : AExpr */;
8333 short int var18 /* : Bool */;
8334 short int var20 /* : Bool */;
8335 short int var22 /* : Bool */;
8336 short int var23 /* : Bool */;
8337 int cltype24;
8338 int idtype25;
8339 const char* var_class_name26;
8340 var_old_child = p0;
8341 var_new_child = p1;
8342 var = self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:APlusExpr> */
8343 if (unlikely(var == NULL)) {
8344 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
8345 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4366);
8346 fatal_exit(1);
8347 }
8348 {
8349 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
8350 var_other = var_old_child;
8351 {
8352 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
8353 var5 = var == var_other;
8354 var3 = var5;
8355 goto RET_LABEL4;
8356 RET_LABEL4:(void)0;
8357 }
8358 }
8359 var1 = var3;
8360 goto RET_LABEL2;
8361 RET_LABEL2:(void)0;
8362 }
8363 }
8364 if (var1){
8365 /* <var_new_child:nullable ANode> isa AExpr */
8366 cltype = type_nitc__AExpr.color;
8367 idtype = type_nitc__AExpr.id;
8368 if(var_new_child == NULL) {
8369 var6 = 0;
8370 } else {
8371 if(cltype >= var_new_child->type->table_size) {
8372 var6 = 0;
8373 } else {
8374 var6 = var_new_child->type->type_table[cltype] == idtype;
8375 }
8376 }
8377 if (unlikely(!var6)) {
8378 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
8379 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
8380 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4367);
8381 fatal_exit(1);
8382 }
8383 {
8384 nitc__parser_prod___APlusExpr___nitc__parser_nodes__ASendExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#APlusExpr#n_expr= on <self:APlusExpr>*/
8385 }
8386 goto RET_LABEL;
8387 } else {
8388 }
8389 var7 = self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_op].val; /* _n_op on <self:APlusExpr> */
8390 if (unlikely(var7 == NULL)) {
8391 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
8392 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4370);
8393 fatal_exit(1);
8394 }
8395 {
8396 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:Token> */
8397 var_other = var_old_child;
8398 {
8399 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:Token> */
8400 var12 = var7 == var_other;
8401 var10 = var12;
8402 goto RET_LABEL11;
8403 RET_LABEL11:(void)0;
8404 }
8405 }
8406 var8 = var10;
8407 goto RET_LABEL9;
8408 RET_LABEL9:(void)0;
8409 }
8410 }
8411 if (var8){
8412 /* <var_new_child:nullable ANode> isa TPlus */
8413 cltype14 = type_nitc__TPlus.color;
8414 idtype15 = type_nitc__TPlus.id;
8415 if(var_new_child == NULL) {
8416 var13 = 0;
8417 } else {
8418 if(cltype14 >= var_new_child->type->table_size) {
8419 var13 = 0;
8420 } else {
8421 var13 = var_new_child->type->type_table[cltype14] == idtype15;
8422 }
8423 }
8424 if (unlikely(!var13)) {
8425 var_class_name16 = var_new_child == NULL ? "null" : var_new_child->type->name;
8426 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TPlus", var_class_name16);
8427 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4371);
8428 fatal_exit(1);
8429 }
8430 {
8431 nitc__parser_prod___APlusExpr___nitc__parser_nodes__ABinopExpr__n_op_61d(self, var_new_child); /* Direct call parser_prod#APlusExpr#n_op= on <self:APlusExpr>*/
8432 }
8433 goto RET_LABEL;
8434 } else {
8435 }
8436 var17 = self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:APlusExpr> */
8437 if (unlikely(var17 == NULL)) {
8438 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
8439 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4374);
8440 fatal_exit(1);
8441 }
8442 {
8443 { /* Inline kernel#Object#== (var17,var_old_child) on <var17:AExpr> */
8444 var_other = var_old_child;
8445 {
8446 { /* Inline kernel#Object#is_same_instance (var17,var_other) on <var17:AExpr> */
8447 var22 = var17 == var_other;
8448 var20 = var22;
8449 goto RET_LABEL21;
8450 RET_LABEL21:(void)0;
8451 }
8452 }
8453 var18 = var20;
8454 goto RET_LABEL19;
8455 RET_LABEL19:(void)0;
8456 }
8457 }
8458 if (var18){
8459 /* <var_new_child:nullable ANode> isa AExpr */
8460 cltype24 = type_nitc__AExpr.color;
8461 idtype25 = type_nitc__AExpr.id;
8462 if(var_new_child == NULL) {
8463 var23 = 0;
8464 } else {
8465 if(cltype24 >= var_new_child->type->table_size) {
8466 var23 = 0;
8467 } else {
8468 var23 = var_new_child->type->type_table[cltype24] == idtype25;
8469 }
8470 }
8471 if (unlikely(!var23)) {
8472 var_class_name26 = var_new_child == NULL ? "null" : var_new_child->type->name;
8473 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name26);
8474 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4375);
8475 fatal_exit(1);
8476 }
8477 {
8478 nitc__parser_prod___APlusExpr___nitc__parser_nodes__ABinopExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#APlusExpr#n_expr2= on <self:APlusExpr>*/
8479 }
8480 goto RET_LABEL;
8481 } else {
8482 }
8483 RET_LABEL:;
8484 }
8485 /* method parser_prod#APlusExpr#n_expr= for (self: APlusExpr, AExpr) */
8486 void nitc__parser_prod___APlusExpr___nitc__parser_nodes__ASendExpr__n_expr_61d(val* self, val* p0) {
8487 val* var_node /* var node: AExpr */;
8488 var_node = p0;
8489 self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:APlusExpr> */
8490 {
8491 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
8492 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
8493 RET_LABEL1:(void)0;
8494 }
8495 }
8496 RET_LABEL:;
8497 }
8498 /* method parser_prod#APlusExpr#n_op= for (self: APlusExpr, Token) */
8499 void nitc__parser_prod___APlusExpr___nitc__parser_nodes__ABinopExpr__n_op_61d(val* self, val* p0) {
8500 val* var_node /* var node: Token */;
8501 var_node = p0;
8502 self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_op].val = var_node; /* _n_op on <self:APlusExpr> */
8503 {
8504 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:Token> */
8505 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:Token> */
8506 RET_LABEL1:(void)0;
8507 }
8508 }
8509 RET_LABEL:;
8510 }
8511 /* method parser_prod#APlusExpr#n_expr2= for (self: APlusExpr, AExpr) */
8512 void nitc__parser_prod___APlusExpr___nitc__parser_nodes__ABinopExpr__n_expr2_61d(val* self, val* p0) {
8513 val* var_node /* var node: AExpr */;
8514 var_node = p0;
8515 self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_expr2].val = var_node; /* _n_expr2 on <self:APlusExpr> */
8516 {
8517 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
8518 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
8519 RET_LABEL1:(void)0;
8520 }
8521 }
8522 RET_LABEL:;
8523 }
8524 /* method parser_prod#APlusExpr#visit_all for (self: APlusExpr, Visitor) */
8525 void nitc__parser_prod___APlusExpr___nitc__parser_nodes__ANode__visit_all(val* self, val* p0) {
8526 val* var_v /* var v: Visitor */;
8527 val* var /* : AExpr */;
8528 val* var1 /* : Token */;
8529 val* var2 /* : AExpr */;
8530 var_v = p0;
8531 var = self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:APlusExpr> */
8532 if (unlikely(var == NULL)) {
8533 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
8534 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4399);
8535 fatal_exit(1);
8536 }
8537 {
8538 nitc___nitc__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8539 }
8540 var1 = self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_op].val; /* _n_op on <self:APlusExpr> */
8541 if (unlikely(var1 == NULL)) {
8542 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
8543 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4400);
8544 fatal_exit(1);
8545 }
8546 {
8547 nitc___nitc__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8548 }
8549 var2 = self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:APlusExpr> */
8550 if (unlikely(var2 == NULL)) {
8551 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
8552 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4401);
8553 fatal_exit(1);
8554 }
8555 {
8556 nitc___nitc__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8557 }
8558 RET_LABEL:;
8559 }
8560 /* method parser_prod#AMinusExpr#init_aminusexpr for (self: AMinusExpr, nullable AExpr, nullable TMinus, nullable AExpr) */
8561 void nitc__parser_prod___AMinusExpr___init_aminusexpr(val* self, val* p0, val* p1, val* p2) {
8562 val* var_n_expr /* var n_expr: nullable AExpr */;
8563 val* var_n_op /* var n_op: nullable TMinus */;
8564 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
8565 {
8566 { /* Inline kernel#Object#init (self) on <self:AMinusExpr> */
8567 RET_LABEL1:(void)0;
8568 }
8569 }
8570 var_n_expr = p0;
8571 var_n_op = p1;
8572 var_n_expr2 = p2;
8573 if (unlikely(var_n_expr == NULL)) {
8574 PRINT_ERROR("Runtime error: %s", "Cast failed");
8575 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4411);
8576 fatal_exit(1);
8577 }
8578 self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AMinusExpr> */
8579 if (var_n_expr == NULL) {
8580 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8581 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4412);
8582 fatal_exit(1);
8583 } else {
8584 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
8585 if (unlikely(var_n_expr == NULL)) {
8586 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8587 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
8588 fatal_exit(1);
8589 }
8590 var_n_expr->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
8591 RET_LABEL2:(void)0;
8592 }
8593 }
8594 if (unlikely(var_n_op == NULL)) {
8595 PRINT_ERROR("Runtime error: %s", "Cast failed");
8596 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4413);
8597 fatal_exit(1);
8598 }
8599 self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_op].val = var_n_op; /* _n_op on <self:AMinusExpr> */
8600 if (var_n_op == NULL) {
8601 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8602 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4414);
8603 fatal_exit(1);
8604 } else {
8605 { /* Inline parser_nodes#ANode#parent= (var_n_op,self) on <var_n_op:nullable TMinus> */
8606 if (unlikely(var_n_op == NULL)) {
8607 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8608 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
8609 fatal_exit(1);
8610 }
8611 var_n_op->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_op:nullable TMinus> */
8612 RET_LABEL3:(void)0;
8613 }
8614 }
8615 if (unlikely(var_n_expr2 == NULL)) {
8616 PRINT_ERROR("Runtime error: %s", "Cast failed");
8617 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4415);
8618 fatal_exit(1);
8619 }
8620 self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:AMinusExpr> */
8621 if (var_n_expr2 == NULL) {
8622 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8623 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4416);
8624 fatal_exit(1);
8625 } else {
8626 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
8627 if (unlikely(var_n_expr2 == NULL)) {
8628 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8629 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
8630 fatal_exit(1);
8631 }
8632 var_n_expr2->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
8633 RET_LABEL4:(void)0;
8634 }
8635 }
8636 RET_LABEL:;
8637 }
8638 /* method parser_prod#AMinusExpr#replace_child for (self: AMinusExpr, ANode, nullable ANode) */
8639 void nitc__parser_prod___AMinusExpr___nitc__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
8640 val* var_old_child /* var old_child: ANode */;
8641 val* var_new_child /* var new_child: nullable ANode */;
8642 val* var /* : AExpr */;
8643 short int var1 /* : Bool */;
8644 val* var_other /* var other: nullable Object */;
8645 short int var3 /* : Bool */;
8646 short int var5 /* : Bool */;
8647 short int var6 /* : Bool */;
8648 int cltype;
8649 int idtype;
8650 const char* var_class_name;
8651 val* var7 /* : Token */;
8652 short int var8 /* : Bool */;
8653 short int var10 /* : Bool */;
8654 short int var12 /* : Bool */;
8655 short int var13 /* : Bool */;
8656 int cltype14;
8657 int idtype15;
8658 const char* var_class_name16;
8659 val* var17 /* : AExpr */;
8660 short int var18 /* : Bool */;
8661 short int var20 /* : Bool */;
8662 short int var22 /* : Bool */;
8663 short int var23 /* : Bool */;
8664 int cltype24;
8665 int idtype25;
8666 const char* var_class_name26;
8667 var_old_child = p0;
8668 var_new_child = p1;
8669 var = self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AMinusExpr> */
8670 if (unlikely(var == NULL)) {
8671 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
8672 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4421);
8673 fatal_exit(1);
8674 }
8675 {
8676 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
8677 var_other = var_old_child;
8678 {
8679 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
8680 var5 = var == var_other;
8681 var3 = var5;
8682 goto RET_LABEL4;
8683 RET_LABEL4:(void)0;
8684 }
8685 }
8686 var1 = var3;
8687 goto RET_LABEL2;
8688 RET_LABEL2:(void)0;
8689 }
8690 }
8691 if (var1){
8692 /* <var_new_child:nullable ANode> isa AExpr */
8693 cltype = type_nitc__AExpr.color;
8694 idtype = type_nitc__AExpr.id;
8695 if(var_new_child == NULL) {
8696 var6 = 0;
8697 } else {
8698 if(cltype >= var_new_child->type->table_size) {
8699 var6 = 0;
8700 } else {
8701 var6 = var_new_child->type->type_table[cltype] == idtype;
8702 }
8703 }
8704 if (unlikely(!var6)) {
8705 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
8706 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
8707 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4422);
8708 fatal_exit(1);
8709 }
8710 {
8711 nitc__parser_prod___AMinusExpr___nitc__parser_nodes__ASendExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AMinusExpr#n_expr= on <self:AMinusExpr>*/
8712 }
8713 goto RET_LABEL;
8714 } else {
8715 }
8716 var7 = self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_op].val; /* _n_op on <self:AMinusExpr> */
8717 if (unlikely(var7 == NULL)) {
8718 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
8719 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4425);
8720 fatal_exit(1);
8721 }
8722 {
8723 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:Token> */
8724 var_other = var_old_child;
8725 {
8726 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:Token> */
8727 var12 = var7 == var_other;
8728 var10 = var12;
8729 goto RET_LABEL11;
8730 RET_LABEL11:(void)0;
8731 }
8732 }
8733 var8 = var10;
8734 goto RET_LABEL9;
8735 RET_LABEL9:(void)0;
8736 }
8737 }
8738 if (var8){
8739 /* <var_new_child:nullable ANode> isa TMinus */
8740 cltype14 = type_nitc__TMinus.color;
8741 idtype15 = type_nitc__TMinus.id;
8742 if(var_new_child == NULL) {
8743 var13 = 0;
8744 } else {
8745 if(cltype14 >= var_new_child->type->table_size) {
8746 var13 = 0;
8747 } else {
8748 var13 = var_new_child->type->type_table[cltype14] == idtype15;
8749 }
8750 }
8751 if (unlikely(!var13)) {
8752 var_class_name16 = var_new_child == NULL ? "null" : var_new_child->type->name;
8753 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TMinus", var_class_name16);
8754 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4426);
8755 fatal_exit(1);
8756 }
8757 {
8758 nitc__parser_prod___AMinusExpr___nitc__parser_nodes__ABinopExpr__n_op_61d(self, var_new_child); /* Direct call parser_prod#AMinusExpr#n_op= on <self:AMinusExpr>*/
8759 }
8760 goto RET_LABEL;
8761 } else {
8762 }
8763 var17 = self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AMinusExpr> */
8764 if (unlikely(var17 == NULL)) {
8765 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
8766 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4429);
8767 fatal_exit(1);
8768 }
8769 {
8770 { /* Inline kernel#Object#== (var17,var_old_child) on <var17:AExpr> */
8771 var_other = var_old_child;
8772 {
8773 { /* Inline kernel#Object#is_same_instance (var17,var_other) on <var17:AExpr> */
8774 var22 = var17 == var_other;
8775 var20 = var22;
8776 goto RET_LABEL21;
8777 RET_LABEL21:(void)0;
8778 }
8779 }
8780 var18 = var20;
8781 goto RET_LABEL19;
8782 RET_LABEL19:(void)0;
8783 }
8784 }
8785 if (var18){
8786 /* <var_new_child:nullable ANode> isa AExpr */
8787 cltype24 = type_nitc__AExpr.color;
8788 idtype25 = type_nitc__AExpr.id;
8789 if(var_new_child == NULL) {
8790 var23 = 0;
8791 } else {
8792 if(cltype24 >= var_new_child->type->table_size) {
8793 var23 = 0;
8794 } else {
8795 var23 = var_new_child->type->type_table[cltype24] == idtype25;
8796 }
8797 }
8798 if (unlikely(!var23)) {
8799 var_class_name26 = var_new_child == NULL ? "null" : var_new_child->type->name;
8800 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name26);
8801 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4430);
8802 fatal_exit(1);
8803 }
8804 {
8805 nitc__parser_prod___AMinusExpr___nitc__parser_nodes__ABinopExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#AMinusExpr#n_expr2= on <self:AMinusExpr>*/
8806 }
8807 goto RET_LABEL;
8808 } else {
8809 }
8810 RET_LABEL:;
8811 }
8812 /* method parser_prod#AMinusExpr#n_expr= for (self: AMinusExpr, AExpr) */
8813 void nitc__parser_prod___AMinusExpr___nitc__parser_nodes__ASendExpr__n_expr_61d(val* self, val* p0) {
8814 val* var_node /* var node: AExpr */;
8815 var_node = p0;
8816 self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:AMinusExpr> */
8817 {
8818 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
8819 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
8820 RET_LABEL1:(void)0;
8821 }
8822 }
8823 RET_LABEL:;
8824 }
8825 /* method parser_prod#AMinusExpr#n_op= for (self: AMinusExpr, Token) */
8826 void nitc__parser_prod___AMinusExpr___nitc__parser_nodes__ABinopExpr__n_op_61d(val* self, val* p0) {
8827 val* var_node /* var node: Token */;
8828 var_node = p0;
8829 self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_op].val = var_node; /* _n_op on <self:AMinusExpr> */
8830 {
8831 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:Token> */
8832 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:Token> */
8833 RET_LABEL1:(void)0;
8834 }
8835 }
8836 RET_LABEL:;
8837 }
8838 /* method parser_prod#AMinusExpr#n_expr2= for (self: AMinusExpr, AExpr) */
8839 void nitc__parser_prod___AMinusExpr___nitc__parser_nodes__ABinopExpr__n_expr2_61d(val* self, val* p0) {
8840 val* var_node /* var node: AExpr */;
8841 var_node = p0;
8842 self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_expr2].val = var_node; /* _n_expr2 on <self:AMinusExpr> */
8843 {
8844 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
8845 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
8846 RET_LABEL1:(void)0;
8847 }
8848 }
8849 RET_LABEL:;
8850 }
8851 /* method parser_prod#AMinusExpr#visit_all for (self: AMinusExpr, Visitor) */
8852 void nitc__parser_prod___AMinusExpr___nitc__parser_nodes__ANode__visit_all(val* self, val* p0) {
8853 val* var_v /* var v: Visitor */;
8854 val* var /* : AExpr */;
8855 val* var1 /* : Token */;
8856 val* var2 /* : AExpr */;
8857 var_v = p0;
8858 var = self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AMinusExpr> */
8859 if (unlikely(var == NULL)) {
8860 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
8861 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4454);
8862 fatal_exit(1);
8863 }
8864 {
8865 nitc___nitc__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8866 }
8867 var1 = self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_op].val; /* _n_op on <self:AMinusExpr> */
8868 if (unlikely(var1 == NULL)) {
8869 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
8870 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4455);
8871 fatal_exit(1);
8872 }
8873 {
8874 nitc___nitc__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8875 }
8876 var2 = self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AMinusExpr> */
8877 if (unlikely(var2 == NULL)) {
8878 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
8879 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4456);
8880 fatal_exit(1);
8881 }
8882 {
8883 nitc___nitc__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8884 }
8885 RET_LABEL:;
8886 }
8887 /* method parser_prod#AStarshipExpr#init_astarshipexpr for (self: AStarshipExpr, nullable AExpr, nullable TStarship, nullable AExpr) */
8888 void nitc__parser_prod___AStarshipExpr___init_astarshipexpr(val* self, val* p0, val* p1, val* p2) {
8889 val* var_n_expr /* var n_expr: nullable AExpr */;
8890 val* var_n_op /* var n_op: nullable TStarship */;
8891 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
8892 {
8893 { /* Inline kernel#Object#init (self) on <self:AStarshipExpr> */
8894 RET_LABEL1:(void)0;
8895 }
8896 }
8897 var_n_expr = p0;
8898 var_n_op = p1;
8899 var_n_expr2 = p2;
8900 if (unlikely(var_n_expr == NULL)) {
8901 PRINT_ERROR("Runtime error: %s", "Cast failed");
8902 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4466);
8903 fatal_exit(1);
8904 }
8905 self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AStarshipExpr> */
8906 if (var_n_expr == NULL) {
8907 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8908 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4467);
8909 fatal_exit(1);
8910 } else {
8911 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
8912 if (unlikely(var_n_expr == NULL)) {
8913 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8914 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
8915 fatal_exit(1);
8916 }
8917 var_n_expr->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
8918 RET_LABEL2:(void)0;
8919 }
8920 }
8921 if (unlikely(var_n_op == NULL)) {
8922 PRINT_ERROR("Runtime error: %s", "Cast failed");
8923 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4468);
8924 fatal_exit(1);
8925 }
8926 self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_op].val = var_n_op; /* _n_op on <self:AStarshipExpr> */
8927 if (var_n_op == NULL) {
8928 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8929 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4469);
8930 fatal_exit(1);
8931 } else {
8932 { /* Inline parser_nodes#ANode#parent= (var_n_op,self) on <var_n_op:nullable TStarship> */
8933 if (unlikely(var_n_op == NULL)) {
8934 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8935 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
8936 fatal_exit(1);
8937 }
8938 var_n_op->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_op:nullable TStarship> */
8939 RET_LABEL3:(void)0;
8940 }
8941 }
8942 if (unlikely(var_n_expr2 == NULL)) {
8943 PRINT_ERROR("Runtime error: %s", "Cast failed");
8944 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4470);
8945 fatal_exit(1);
8946 }
8947 self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:AStarshipExpr> */
8948 if (var_n_expr2 == NULL) {
8949 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8950 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4471);
8951 fatal_exit(1);
8952 } else {
8953 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
8954 if (unlikely(var_n_expr2 == NULL)) {
8955 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8956 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
8957 fatal_exit(1);
8958 }
8959 var_n_expr2->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
8960 RET_LABEL4:(void)0;
8961 }
8962 }
8963 RET_LABEL:;
8964 }
8965 /* method parser_prod#AStarshipExpr#replace_child for (self: AStarshipExpr, ANode, nullable ANode) */
8966 void nitc__parser_prod___AStarshipExpr___nitc__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
8967 val* var_old_child /* var old_child: ANode */;
8968 val* var_new_child /* var new_child: nullable ANode */;
8969 val* var /* : AExpr */;
8970 short int var1 /* : Bool */;
8971 val* var_other /* var other: nullable Object */;
8972 short int var3 /* : Bool */;
8973 short int var5 /* : Bool */;
8974 short int var6 /* : Bool */;
8975 int cltype;
8976 int idtype;
8977 const char* var_class_name;
8978 val* var7 /* : Token */;
8979 short int var8 /* : Bool */;
8980 short int var10 /* : Bool */;
8981 short int var12 /* : Bool */;
8982 short int var13 /* : Bool */;
8983 int cltype14;
8984 int idtype15;
8985 const char* var_class_name16;
8986 val* var17 /* : AExpr */;
8987 short int var18 /* : Bool */;
8988 short int var20 /* : Bool */;
8989 short int var22 /* : Bool */;
8990 short int var23 /* : Bool */;
8991 int cltype24;
8992 int idtype25;
8993 const char* var_class_name26;
8994 var_old_child = p0;
8995 var_new_child = p1;
8996 var = self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AStarshipExpr> */
8997 if (unlikely(var == NULL)) {
8998 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
8999 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4476);
9000 fatal_exit(1);
9001 }
9002 {
9003 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
9004 var_other = var_old_child;
9005 {
9006 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
9007 var5 = var == var_other;
9008 var3 = var5;
9009 goto RET_LABEL4;
9010 RET_LABEL4:(void)0;
9011 }
9012 }
9013 var1 = var3;
9014 goto RET_LABEL2;
9015 RET_LABEL2:(void)0;
9016 }
9017 }
9018 if (var1){
9019 /* <var_new_child:nullable ANode> isa AExpr */
9020 cltype = type_nitc__AExpr.color;
9021 idtype = type_nitc__AExpr.id;
9022 if(var_new_child == NULL) {
9023 var6 = 0;
9024 } else {
9025 if(cltype >= var_new_child->type->table_size) {
9026 var6 = 0;
9027 } else {
9028 var6 = var_new_child->type->type_table[cltype] == idtype;
9029 }
9030 }
9031 if (unlikely(!var6)) {
9032 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
9033 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
9034 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4477);
9035 fatal_exit(1);
9036 }
9037 {
9038 nitc__parser_prod___AStarshipExpr___nitc__parser_nodes__ASendExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AStarshipExpr#n_expr= on <self:AStarshipExpr>*/
9039 }
9040 goto RET_LABEL;
9041 } else {
9042 }
9043 var7 = self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_op].val; /* _n_op on <self:AStarshipExpr> */
9044 if (unlikely(var7 == NULL)) {
9045 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
9046 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4480);
9047 fatal_exit(1);
9048 }
9049 {
9050 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:Token> */
9051 var_other = var_old_child;
9052 {
9053 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:Token> */
9054 var12 = var7 == var_other;
9055 var10 = var12;
9056 goto RET_LABEL11;
9057 RET_LABEL11:(void)0;
9058 }
9059 }
9060 var8 = var10;
9061 goto RET_LABEL9;
9062 RET_LABEL9:(void)0;
9063 }
9064 }
9065 if (var8){
9066 /* <var_new_child:nullable ANode> isa TStarship */
9067 cltype14 = type_nitc__TStarship.color;
9068 idtype15 = type_nitc__TStarship.id;
9069 if(var_new_child == NULL) {
9070 var13 = 0;
9071 } else {
9072 if(cltype14 >= var_new_child->type->table_size) {
9073 var13 = 0;
9074 } else {
9075 var13 = var_new_child->type->type_table[cltype14] == idtype15;
9076 }
9077 }
9078 if (unlikely(!var13)) {
9079 var_class_name16 = var_new_child == NULL ? "null" : var_new_child->type->name;
9080 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TStarship", var_class_name16);
9081 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4481);
9082 fatal_exit(1);
9083 }
9084 {
9085 nitc__parser_prod___AStarshipExpr___nitc__parser_nodes__ABinopExpr__n_op_61d(self, var_new_child); /* Direct call parser_prod#AStarshipExpr#n_op= on <self:AStarshipExpr>*/
9086 }
9087 goto RET_LABEL;
9088 } else {
9089 }
9090 var17 = self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AStarshipExpr> */
9091 if (unlikely(var17 == NULL)) {
9092 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
9093 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4484);
9094 fatal_exit(1);
9095 }
9096 {
9097 { /* Inline kernel#Object#== (var17,var_old_child) on <var17:AExpr> */
9098 var_other = var_old_child;
9099 {
9100 { /* Inline kernel#Object#is_same_instance (var17,var_other) on <var17:AExpr> */
9101 var22 = var17 == var_other;
9102 var20 = var22;
9103 goto RET_LABEL21;
9104 RET_LABEL21:(void)0;
9105 }
9106 }
9107 var18 = var20;
9108 goto RET_LABEL19;
9109 RET_LABEL19:(void)0;
9110 }
9111 }
9112 if (var18){
9113 /* <var_new_child:nullable ANode> isa AExpr */
9114 cltype24 = type_nitc__AExpr.color;
9115 idtype25 = type_nitc__AExpr.id;
9116 if(var_new_child == NULL) {
9117 var23 = 0;
9118 } else {
9119 if(cltype24 >= var_new_child->type->table_size) {
9120 var23 = 0;
9121 } else {
9122 var23 = var_new_child->type->type_table[cltype24] == idtype25;
9123 }
9124 }
9125 if (unlikely(!var23)) {
9126 var_class_name26 = var_new_child == NULL ? "null" : var_new_child->type->name;
9127 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name26);
9128 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4485);
9129 fatal_exit(1);
9130 }
9131 {
9132 nitc__parser_prod___AStarshipExpr___nitc__parser_nodes__ABinopExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#AStarshipExpr#n_expr2= on <self:AStarshipExpr>*/
9133 }
9134 goto RET_LABEL;
9135 } else {
9136 }
9137 RET_LABEL:;
9138 }
9139 /* method parser_prod#AStarshipExpr#n_expr= for (self: AStarshipExpr, AExpr) */
9140 void nitc__parser_prod___AStarshipExpr___nitc__parser_nodes__ASendExpr__n_expr_61d(val* self, val* p0) {
9141 val* var_node /* var node: AExpr */;
9142 var_node = p0;
9143 self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:AStarshipExpr> */
9144 {
9145 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
9146 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
9147 RET_LABEL1:(void)0;
9148 }
9149 }
9150 RET_LABEL:;
9151 }
9152 /* method parser_prod#AStarshipExpr#n_op= for (self: AStarshipExpr, Token) */
9153 void nitc__parser_prod___AStarshipExpr___nitc__parser_nodes__ABinopExpr__n_op_61d(val* self, val* p0) {
9154 val* var_node /* var node: Token */;
9155 var_node = p0;
9156 self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_op].val = var_node; /* _n_op on <self:AStarshipExpr> */
9157 {
9158 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:Token> */
9159 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:Token> */
9160 RET_LABEL1:(void)0;
9161 }
9162 }
9163 RET_LABEL:;
9164 }
9165 /* method parser_prod#AStarshipExpr#n_expr2= for (self: AStarshipExpr, AExpr) */
9166 void nitc__parser_prod___AStarshipExpr___nitc__parser_nodes__ABinopExpr__n_expr2_61d(val* self, val* p0) {
9167 val* var_node /* var node: AExpr */;
9168 var_node = p0;
9169 self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_expr2].val = var_node; /* _n_expr2 on <self:AStarshipExpr> */
9170 {
9171 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
9172 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
9173 RET_LABEL1:(void)0;
9174 }
9175 }
9176 RET_LABEL:;
9177 }
9178 /* method parser_prod#AStarshipExpr#visit_all for (self: AStarshipExpr, Visitor) */
9179 void nitc__parser_prod___AStarshipExpr___nitc__parser_nodes__ANode__visit_all(val* self, val* p0) {
9180 val* var_v /* var v: Visitor */;
9181 val* var /* : AExpr */;
9182 val* var1 /* : Token */;
9183 val* var2 /* : AExpr */;
9184 var_v = p0;
9185 var = self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AStarshipExpr> */
9186 if (unlikely(var == NULL)) {
9187 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
9188 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4509);
9189 fatal_exit(1);
9190 }
9191 {
9192 nitc___nitc__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9193 }
9194 var1 = self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_op].val; /* _n_op on <self:AStarshipExpr> */
9195 if (unlikely(var1 == NULL)) {
9196 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
9197 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4510);
9198 fatal_exit(1);
9199 }
9200 {
9201 nitc___nitc__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9202 }
9203 var2 = self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AStarshipExpr> */
9204 if (unlikely(var2 == NULL)) {
9205 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
9206 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4511);
9207 fatal_exit(1);
9208 }
9209 {
9210 nitc___nitc__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9211 }
9212 RET_LABEL:;
9213 }
9214 /* method parser_prod#AStarExpr#init_astarexpr for (self: AStarExpr, nullable AExpr, nullable TStar, nullable AExpr) */
9215 void nitc__parser_prod___AStarExpr___init_astarexpr(val* self, val* p0, val* p1, val* p2) {
9216 val* var_n_expr /* var n_expr: nullable AExpr */;
9217 val* var_n_op /* var n_op: nullable TStar */;
9218 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
9219 {
9220 { /* Inline kernel#Object#init (self) on <self:AStarExpr> */
9221 RET_LABEL1:(void)0;
9222 }
9223 }
9224 var_n_expr = p0;
9225 var_n_op = p1;
9226 var_n_expr2 = p2;
9227 if (unlikely(var_n_expr == NULL)) {
9228 PRINT_ERROR("Runtime error: %s", "Cast failed");
9229 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4521);
9230 fatal_exit(1);
9231 }
9232 self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AStarExpr> */
9233 if (var_n_expr == NULL) {
9234 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9235 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4522);
9236 fatal_exit(1);
9237 } else {
9238 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
9239 if (unlikely(var_n_expr == NULL)) {
9240 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9241 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
9242 fatal_exit(1);
9243 }
9244 var_n_expr->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
9245 RET_LABEL2:(void)0;
9246 }
9247 }
9248 if (unlikely(var_n_op == NULL)) {
9249 PRINT_ERROR("Runtime error: %s", "Cast failed");
9250 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4523);
9251 fatal_exit(1);
9252 }
9253 self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_op].val = var_n_op; /* _n_op on <self:AStarExpr> */
9254 if (var_n_op == NULL) {
9255 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9256 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4524);
9257 fatal_exit(1);
9258 } else {
9259 { /* Inline parser_nodes#ANode#parent= (var_n_op,self) on <var_n_op:nullable TStar> */
9260 if (unlikely(var_n_op == NULL)) {
9261 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9262 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
9263 fatal_exit(1);
9264 }
9265 var_n_op->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_op:nullable TStar> */
9266 RET_LABEL3:(void)0;
9267 }
9268 }
9269 if (unlikely(var_n_expr2 == NULL)) {
9270 PRINT_ERROR("Runtime error: %s", "Cast failed");
9271 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4525);
9272 fatal_exit(1);
9273 }
9274 self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:AStarExpr> */
9275 if (var_n_expr2 == NULL) {
9276 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9277 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4526);
9278 fatal_exit(1);
9279 } else {
9280 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
9281 if (unlikely(var_n_expr2 == NULL)) {
9282 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9283 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
9284 fatal_exit(1);
9285 }
9286 var_n_expr2->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
9287 RET_LABEL4:(void)0;
9288 }
9289 }
9290 RET_LABEL:;
9291 }
9292 /* method parser_prod#AStarExpr#replace_child for (self: AStarExpr, ANode, nullable ANode) */
9293 void nitc__parser_prod___AStarExpr___nitc__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
9294 val* var_old_child /* var old_child: ANode */;
9295 val* var_new_child /* var new_child: nullable ANode */;
9296 val* var /* : AExpr */;
9297 short int var1 /* : Bool */;
9298 val* var_other /* var other: nullable Object */;
9299 short int var3 /* : Bool */;
9300 short int var5 /* : Bool */;
9301 short int var6 /* : Bool */;
9302 int cltype;
9303 int idtype;
9304 const char* var_class_name;
9305 val* var7 /* : Token */;
9306 short int var8 /* : Bool */;
9307 short int var10 /* : Bool */;
9308 short int var12 /* : Bool */;
9309 short int var13 /* : Bool */;
9310 int cltype14;
9311 int idtype15;
9312 const char* var_class_name16;
9313 val* var17 /* : AExpr */;
9314 short int var18 /* : Bool */;
9315 short int var20 /* : Bool */;
9316 short int var22 /* : Bool */;
9317 short int var23 /* : Bool */;
9318 int cltype24;
9319 int idtype25;
9320 const char* var_class_name26;
9321 var_old_child = p0;
9322 var_new_child = p1;
9323 var = self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AStarExpr> */
9324 if (unlikely(var == NULL)) {
9325 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
9326 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4531);
9327 fatal_exit(1);
9328 }
9329 {
9330 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
9331 var_other = var_old_child;
9332 {
9333 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
9334 var5 = var == var_other;
9335 var3 = var5;
9336 goto RET_LABEL4;
9337 RET_LABEL4:(void)0;
9338 }
9339 }
9340 var1 = var3;
9341 goto RET_LABEL2;
9342 RET_LABEL2:(void)0;
9343 }
9344 }
9345 if (var1){
9346 /* <var_new_child:nullable ANode> isa AExpr */
9347 cltype = type_nitc__AExpr.color;
9348 idtype = type_nitc__AExpr.id;
9349 if(var_new_child == NULL) {
9350 var6 = 0;
9351 } else {
9352 if(cltype >= var_new_child->type->table_size) {
9353 var6 = 0;
9354 } else {
9355 var6 = var_new_child->type->type_table[cltype] == idtype;
9356 }
9357 }
9358 if (unlikely(!var6)) {
9359 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
9360 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
9361 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4532);
9362 fatal_exit(1);
9363 }
9364 {
9365 nitc__parser_prod___AStarExpr___nitc__parser_nodes__ASendExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AStarExpr#n_expr= on <self:AStarExpr>*/
9366 }
9367 goto RET_LABEL;
9368 } else {
9369 }
9370 var7 = self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_op].val; /* _n_op on <self:AStarExpr> */
9371 if (unlikely(var7 == NULL)) {
9372 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
9373 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4535);
9374 fatal_exit(1);
9375 }
9376 {
9377 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:Token> */
9378 var_other = var_old_child;
9379 {
9380 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:Token> */
9381 var12 = var7 == var_other;
9382 var10 = var12;
9383 goto RET_LABEL11;
9384 RET_LABEL11:(void)0;
9385 }
9386 }
9387 var8 = var10;
9388 goto RET_LABEL9;
9389 RET_LABEL9:(void)0;
9390 }
9391 }
9392 if (var8){
9393 /* <var_new_child:nullable ANode> isa TStar */
9394 cltype14 = type_nitc__TStar.color;
9395 idtype15 = type_nitc__TStar.id;
9396 if(var_new_child == NULL) {
9397 var13 = 0;
9398 } else {
9399 if(cltype14 >= var_new_child->type->table_size) {
9400 var13 = 0;
9401 } else {
9402 var13 = var_new_child->type->type_table[cltype14] == idtype15;
9403 }
9404 }
9405 if (unlikely(!var13)) {
9406 var_class_name16 = var_new_child == NULL ? "null" : var_new_child->type->name;
9407 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TStar", var_class_name16);
9408 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4536);
9409 fatal_exit(1);
9410 }
9411 {
9412 nitc__parser_prod___AStarExpr___nitc__parser_nodes__ABinopExpr__n_op_61d(self, var_new_child); /* Direct call parser_prod#AStarExpr#n_op= on <self:AStarExpr>*/
9413 }
9414 goto RET_LABEL;
9415 } else {
9416 }
9417 var17 = self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AStarExpr> */
9418 if (unlikely(var17 == NULL)) {
9419 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
9420 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4539);
9421 fatal_exit(1);
9422 }
9423 {
9424 { /* Inline kernel#Object#== (var17,var_old_child) on <var17:AExpr> */
9425 var_other = var_old_child;
9426 {
9427 { /* Inline kernel#Object#is_same_instance (var17,var_other) on <var17:AExpr> */
9428 var22 = var17 == var_other;
9429 var20 = var22;
9430 goto RET_LABEL21;
9431 RET_LABEL21:(void)0;
9432 }
9433 }
9434 var18 = var20;
9435 goto RET_LABEL19;
9436 RET_LABEL19:(void)0;
9437 }
9438 }
9439 if (var18){
9440 /* <var_new_child:nullable ANode> isa AExpr */
9441 cltype24 = type_nitc__AExpr.color;
9442 idtype25 = type_nitc__AExpr.id;
9443 if(var_new_child == NULL) {
9444 var23 = 0;
9445 } else {
9446 if(cltype24 >= var_new_child->type->table_size) {
9447 var23 = 0;
9448 } else {
9449 var23 = var_new_child->type->type_table[cltype24] == idtype25;
9450 }
9451 }
9452 if (unlikely(!var23)) {
9453 var_class_name26 = var_new_child == NULL ? "null" : var_new_child->type->name;
9454 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name26);
9455 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4540);
9456 fatal_exit(1);
9457 }
9458 {
9459 nitc__parser_prod___AStarExpr___nitc__parser_nodes__ABinopExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#AStarExpr#n_expr2= on <self:AStarExpr>*/
9460 }
9461 goto RET_LABEL;
9462 } else {
9463 }
9464 RET_LABEL:;
9465 }
9466 /* method parser_prod#AStarExpr#n_expr= for (self: AStarExpr, AExpr) */
9467 void nitc__parser_prod___AStarExpr___nitc__parser_nodes__ASendExpr__n_expr_61d(val* self, val* p0) {
9468 val* var_node /* var node: AExpr */;
9469 var_node = p0;
9470 self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:AStarExpr> */
9471 {
9472 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
9473 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
9474 RET_LABEL1:(void)0;
9475 }
9476 }
9477 RET_LABEL:;
9478 }
9479 /* method parser_prod#AStarExpr#n_op= for (self: AStarExpr, Token) */
9480 void nitc__parser_prod___AStarExpr___nitc__parser_nodes__ABinopExpr__n_op_61d(val* self, val* p0) {
9481 val* var_node /* var node: Token */;
9482 var_node = p0;
9483 self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_op].val = var_node; /* _n_op on <self:AStarExpr> */
9484 {
9485 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:Token> */
9486 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:Token> */
9487 RET_LABEL1:(void)0;
9488 }
9489 }
9490 RET_LABEL:;
9491 }
9492 /* method parser_prod#AStarExpr#n_expr2= for (self: AStarExpr, AExpr) */
9493 void nitc__parser_prod___AStarExpr___nitc__parser_nodes__ABinopExpr__n_expr2_61d(val* self, val* p0) {
9494 val* var_node /* var node: AExpr */;
9495 var_node = p0;
9496 self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_expr2].val = var_node; /* _n_expr2 on <self:AStarExpr> */
9497 {
9498 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
9499 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
9500 RET_LABEL1:(void)0;
9501 }
9502 }
9503 RET_LABEL:;
9504 }
9505 /* method parser_prod#AStarExpr#visit_all for (self: AStarExpr, Visitor) */
9506 void nitc__parser_prod___AStarExpr___nitc__parser_nodes__ANode__visit_all(val* self, val* p0) {
9507 val* var_v /* var v: Visitor */;
9508 val* var /* : AExpr */;
9509 val* var1 /* : Token */;
9510 val* var2 /* : AExpr */;
9511 var_v = p0;
9512 var = self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AStarExpr> */
9513 if (unlikely(var == NULL)) {
9514 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
9515 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4564);
9516 fatal_exit(1);
9517 }
9518 {
9519 nitc___nitc__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9520 }
9521 var1 = self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_op].val; /* _n_op on <self:AStarExpr> */
9522 if (unlikely(var1 == NULL)) {
9523 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
9524 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4565);
9525 fatal_exit(1);
9526 }
9527 {
9528 nitc___nitc__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9529 }
9530 var2 = self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AStarExpr> */
9531 if (unlikely(var2 == NULL)) {
9532 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
9533 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4566);
9534 fatal_exit(1);
9535 }
9536 {
9537 nitc___nitc__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9538 }
9539 RET_LABEL:;
9540 }
9541 /* method parser_prod#AStarstarExpr#init_astarstarexpr for (self: AStarstarExpr, nullable AExpr, nullable TStarstar, nullable AExpr) */
9542 void nitc__parser_prod___AStarstarExpr___init_astarstarexpr(val* self, val* p0, val* p1, val* p2) {
9543 val* var_n_expr /* var n_expr: nullable AExpr */;
9544 val* var_n_op /* var n_op: nullable TStarstar */;
9545 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
9546 {
9547 { /* Inline kernel#Object#init (self) on <self:AStarstarExpr> */
9548 RET_LABEL1:(void)0;
9549 }
9550 }
9551 var_n_expr = p0;
9552 var_n_op = p1;
9553 var_n_expr2 = p2;
9554 if (unlikely(var_n_expr == NULL)) {
9555 PRINT_ERROR("Runtime error: %s", "Cast failed");
9556 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4576);
9557 fatal_exit(1);
9558 }
9559 self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AStarstarExpr> */
9560 if (var_n_expr == NULL) {
9561 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9562 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4577);
9563 fatal_exit(1);
9564 } else {
9565 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
9566 if (unlikely(var_n_expr == NULL)) {
9567 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9568 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
9569 fatal_exit(1);
9570 }
9571 var_n_expr->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
9572 RET_LABEL2:(void)0;
9573 }
9574 }
9575 if (unlikely(var_n_op == NULL)) {
9576 PRINT_ERROR("Runtime error: %s", "Cast failed");
9577 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4578);
9578 fatal_exit(1);
9579 }
9580 self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_op].val = var_n_op; /* _n_op on <self:AStarstarExpr> */
9581 if (var_n_op == NULL) {
9582 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9583 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4579);
9584 fatal_exit(1);
9585 } else {
9586 { /* Inline parser_nodes#ANode#parent= (var_n_op,self) on <var_n_op:nullable TStarstar> */
9587 if (unlikely(var_n_op == NULL)) {
9588 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9589 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
9590 fatal_exit(1);
9591 }
9592 var_n_op->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_op:nullable TStarstar> */
9593 RET_LABEL3:(void)0;
9594 }
9595 }
9596 if (unlikely(var_n_expr2 == NULL)) {
9597 PRINT_ERROR("Runtime error: %s", "Cast failed");
9598 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4580);
9599 fatal_exit(1);
9600 }
9601 self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:AStarstarExpr> */
9602 if (var_n_expr2 == NULL) {
9603 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9604 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4581);
9605 fatal_exit(1);
9606 } else {
9607 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
9608 if (unlikely(var_n_expr2 == NULL)) {
9609 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9610 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
9611 fatal_exit(1);
9612 }
9613 var_n_expr2->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
9614 RET_LABEL4:(void)0;
9615 }
9616 }
9617 RET_LABEL:;
9618 }
9619 /* method parser_prod#AStarstarExpr#replace_child for (self: AStarstarExpr, ANode, nullable ANode) */
9620 void nitc__parser_prod___AStarstarExpr___nitc__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
9621 val* var_old_child /* var old_child: ANode */;
9622 val* var_new_child /* var new_child: nullable ANode */;
9623 val* var /* : AExpr */;
9624 short int var1 /* : Bool */;
9625 val* var_other /* var other: nullable Object */;
9626 short int var3 /* : Bool */;
9627 short int var5 /* : Bool */;
9628 short int var6 /* : Bool */;
9629 int cltype;
9630 int idtype;
9631 const char* var_class_name;
9632 val* var7 /* : Token */;
9633 short int var8 /* : Bool */;
9634 short int var10 /* : Bool */;
9635 short int var12 /* : Bool */;
9636 short int var13 /* : Bool */;
9637 int cltype14;
9638 int idtype15;
9639 const char* var_class_name16;
9640 val* var17 /* : AExpr */;
9641 short int var18 /* : Bool */;
9642 short int var20 /* : Bool */;
9643 short int var22 /* : Bool */;
9644 short int var23 /* : Bool */;
9645 int cltype24;
9646 int idtype25;
9647 const char* var_class_name26;
9648 var_old_child = p0;
9649 var_new_child = p1;
9650 var = self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AStarstarExpr> */
9651 if (unlikely(var == NULL)) {
9652 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
9653 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4586);
9654 fatal_exit(1);
9655 }
9656 {
9657 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
9658 var_other = var_old_child;
9659 {
9660 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
9661 var5 = var == var_other;
9662 var3 = var5;
9663 goto RET_LABEL4;
9664 RET_LABEL4:(void)0;
9665 }
9666 }
9667 var1 = var3;
9668 goto RET_LABEL2;
9669 RET_LABEL2:(void)0;
9670 }
9671 }
9672 if (var1){
9673 /* <var_new_child:nullable ANode> isa AExpr */
9674 cltype = type_nitc__AExpr.color;
9675 idtype = type_nitc__AExpr.id;
9676 if(var_new_child == NULL) {
9677 var6 = 0;
9678 } else {
9679 if(cltype >= var_new_child->type->table_size) {
9680 var6 = 0;
9681 } else {
9682 var6 = var_new_child->type->type_table[cltype] == idtype;
9683 }
9684 }
9685 if (unlikely(!var6)) {
9686 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
9687 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
9688 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4587);
9689 fatal_exit(1);
9690 }
9691 {
9692 nitc__parser_prod___AStarstarExpr___nitc__parser_nodes__ASendExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AStarstarExpr#n_expr= on <self:AStarstarExpr>*/
9693 }
9694 goto RET_LABEL;
9695 } else {
9696 }
9697 var7 = self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_op].val; /* _n_op on <self:AStarstarExpr> */
9698 if (unlikely(var7 == NULL)) {
9699 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
9700 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4590);
9701 fatal_exit(1);
9702 }
9703 {
9704 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:Token> */
9705 var_other = var_old_child;
9706 {
9707 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:Token> */
9708 var12 = var7 == var_other;
9709 var10 = var12;
9710 goto RET_LABEL11;
9711 RET_LABEL11:(void)0;
9712 }
9713 }
9714 var8 = var10;
9715 goto RET_LABEL9;
9716 RET_LABEL9:(void)0;
9717 }
9718 }
9719 if (var8){
9720 /* <var_new_child:nullable ANode> isa TStarstar */
9721 cltype14 = type_nitc__TStarstar.color;
9722 idtype15 = type_nitc__TStarstar.id;
9723 if(var_new_child == NULL) {
9724 var13 = 0;
9725 } else {
9726 if(cltype14 >= var_new_child->type->table_size) {
9727 var13 = 0;
9728 } else {
9729 var13 = var_new_child->type->type_table[cltype14] == idtype15;
9730 }
9731 }
9732 if (unlikely(!var13)) {
9733 var_class_name16 = var_new_child == NULL ? "null" : var_new_child->type->name;
9734 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TStarstar", var_class_name16);
9735 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4591);
9736 fatal_exit(1);
9737 }
9738 {
9739 nitc__parser_prod___AStarstarExpr___nitc__parser_nodes__ABinopExpr__n_op_61d(self, var_new_child); /* Direct call parser_prod#AStarstarExpr#n_op= on <self:AStarstarExpr>*/
9740 }
9741 goto RET_LABEL;
9742 } else {
9743 }
9744 var17 = self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AStarstarExpr> */
9745 if (unlikely(var17 == NULL)) {
9746 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
9747 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4594);
9748 fatal_exit(1);
9749 }
9750 {
9751 { /* Inline kernel#Object#== (var17,var_old_child) on <var17:AExpr> */
9752 var_other = var_old_child;
9753 {
9754 { /* Inline kernel#Object#is_same_instance (var17,var_other) on <var17:AExpr> */
9755 var22 = var17 == var_other;
9756 var20 = var22;
9757 goto RET_LABEL21;
9758 RET_LABEL21:(void)0;
9759 }
9760 }
9761 var18 = var20;
9762 goto RET_LABEL19;
9763 RET_LABEL19:(void)0;
9764 }
9765 }
9766 if (var18){
9767 /* <var_new_child:nullable ANode> isa AExpr */
9768 cltype24 = type_nitc__AExpr.color;
9769 idtype25 = type_nitc__AExpr.id;
9770 if(var_new_child == NULL) {
9771 var23 = 0;
9772 } else {
9773 if(cltype24 >= var_new_child->type->table_size) {
9774 var23 = 0;
9775 } else {
9776 var23 = var_new_child->type->type_table[cltype24] == idtype25;
9777 }
9778 }
9779 if (unlikely(!var23)) {
9780 var_class_name26 = var_new_child == NULL ? "null" : var_new_child->type->name;
9781 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name26);
9782 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4595);
9783 fatal_exit(1);
9784 }
9785 {
9786 nitc__parser_prod___AStarstarExpr___nitc__parser_nodes__ABinopExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#AStarstarExpr#n_expr2= on <self:AStarstarExpr>*/
9787 }
9788 goto RET_LABEL;
9789 } else {
9790 }
9791 RET_LABEL:;
9792 }
9793 /* method parser_prod#AStarstarExpr#n_expr= for (self: AStarstarExpr, AExpr) */
9794 void nitc__parser_prod___AStarstarExpr___nitc__parser_nodes__ASendExpr__n_expr_61d(val* self, val* p0) {
9795 val* var_node /* var node: AExpr */;
9796 var_node = p0;
9797 self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:AStarstarExpr> */
9798 {
9799 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
9800 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
9801 RET_LABEL1:(void)0;
9802 }
9803 }
9804 RET_LABEL:;
9805 }
9806 /* method parser_prod#AStarstarExpr#n_op= for (self: AStarstarExpr, Token) */
9807 void nitc__parser_prod___AStarstarExpr___nitc__parser_nodes__ABinopExpr__n_op_61d(val* self, val* p0) {
9808 val* var_node /* var node: Token */;
9809 var_node = p0;
9810 self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_op].val = var_node; /* _n_op on <self:AStarstarExpr> */
9811 {
9812 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:Token> */
9813 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:Token> */
9814 RET_LABEL1:(void)0;
9815 }
9816 }
9817 RET_LABEL:;
9818 }
9819 /* method parser_prod#AStarstarExpr#n_expr2= for (self: AStarstarExpr, AExpr) */
9820 void nitc__parser_prod___AStarstarExpr___nitc__parser_nodes__ABinopExpr__n_expr2_61d(val* self, val* p0) {
9821 val* var_node /* var node: AExpr */;
9822 var_node = p0;
9823 self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_expr2].val = var_node; /* _n_expr2 on <self:AStarstarExpr> */
9824 {
9825 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
9826 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
9827 RET_LABEL1:(void)0;
9828 }
9829 }
9830 RET_LABEL:;
9831 }
9832 /* method parser_prod#AStarstarExpr#visit_all for (self: AStarstarExpr, Visitor) */
9833 void nitc__parser_prod___AStarstarExpr___nitc__parser_nodes__ANode__visit_all(val* self, val* p0) {
9834 val* var_v /* var v: Visitor */;
9835 val* var /* : AExpr */;
9836 val* var1 /* : Token */;
9837 val* var2 /* : AExpr */;
9838 var_v = p0;
9839 var = self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AStarstarExpr> */
9840 if (unlikely(var == NULL)) {
9841 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
9842 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4619);
9843 fatal_exit(1);
9844 }
9845 {
9846 nitc___nitc__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9847 }
9848 var1 = self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_op].val; /* _n_op on <self:AStarstarExpr> */
9849 if (unlikely(var1 == NULL)) {
9850 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
9851 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4620);
9852 fatal_exit(1);
9853 }
9854 {
9855 nitc___nitc__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9856 }
9857 var2 = self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AStarstarExpr> */
9858 if (unlikely(var2 == NULL)) {
9859 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
9860 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4621);
9861 fatal_exit(1);
9862 }
9863 {
9864 nitc___nitc__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9865 }
9866 RET_LABEL:;
9867 }
9868 /* method parser_prod#ASlashExpr#init_aslashexpr for (self: ASlashExpr, nullable AExpr, nullable TSlash, nullable AExpr) */
9869 void nitc__parser_prod___ASlashExpr___init_aslashexpr(val* self, val* p0, val* p1, val* p2) {
9870 val* var_n_expr /* var n_expr: nullable AExpr */;
9871 val* var_n_op /* var n_op: nullable TSlash */;
9872 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
9873 {
9874 { /* Inline kernel#Object#init (self) on <self:ASlashExpr> */
9875 RET_LABEL1:(void)0;
9876 }
9877 }
9878 var_n_expr = p0;
9879 var_n_op = p1;
9880 var_n_expr2 = p2;
9881 if (unlikely(var_n_expr == NULL)) {
9882 PRINT_ERROR("Runtime error: %s", "Cast failed");
9883 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4631);
9884 fatal_exit(1);
9885 }
9886 self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:ASlashExpr> */
9887 if (var_n_expr == NULL) {
9888 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9889 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4632);
9890 fatal_exit(1);
9891 } else {
9892 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
9893 if (unlikely(var_n_expr == NULL)) {
9894 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9895 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
9896 fatal_exit(1);
9897 }
9898 var_n_expr->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
9899 RET_LABEL2:(void)0;
9900 }
9901 }
9902 if (unlikely(var_n_op == NULL)) {
9903 PRINT_ERROR("Runtime error: %s", "Cast failed");
9904 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4633);
9905 fatal_exit(1);
9906 }
9907 self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_op].val = var_n_op; /* _n_op on <self:ASlashExpr> */
9908 if (var_n_op == NULL) {
9909 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9910 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4634);
9911 fatal_exit(1);
9912 } else {
9913 { /* Inline parser_nodes#ANode#parent= (var_n_op,self) on <var_n_op:nullable TSlash> */
9914 if (unlikely(var_n_op == NULL)) {
9915 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9916 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
9917 fatal_exit(1);
9918 }
9919 var_n_op->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_op:nullable TSlash> */
9920 RET_LABEL3:(void)0;
9921 }
9922 }
9923 if (unlikely(var_n_expr2 == NULL)) {
9924 PRINT_ERROR("Runtime error: %s", "Cast failed");
9925 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4635);
9926 fatal_exit(1);
9927 }
9928 self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:ASlashExpr> */
9929 if (var_n_expr2 == NULL) {
9930 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9931 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 4636);
9932 fatal_exit(1);
9933 } else {
9934 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
9935 if (unlikely(var_n_expr2 == NULL)) {
9936 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9937 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
9938 fatal_exit(1);
9939 }
9940 var_n_expr2->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
9941 RET_LABEL4:(void)0;
9942 }
9943 }
9944 RET_LABEL:;
9945 }