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