README: document nit_env.sh
[nit.git] / c_src / nit__parser_prod.sep.3.c
1 #include "nit__parser_prod.sep.0.h"
2 /* method parser_prod#AIfexprExpr#n_kwif= for (self: AIfexprExpr, TKwif) */
3 void nit__parser_prod___AIfexprExpr___n_kwif_61d(val* self, val* p0) {
4 val* var_node /* var node: TKwif */;
5 var_node = p0;
6 self->attrs[COLOR_nit__parser_nodes__AIfexprExpr___n_kwif].val = var_node; /* _n_kwif on <self:AIfexprExpr> */
7 {
8 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwif> */
9 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwif> */
10 RET_LABEL1:(void)0;
11 }
12 }
13 RET_LABEL:;
14 }
15 /* method parser_prod#AIfexprExpr#n_expr= for (self: AIfexprExpr, AExpr) */
16 void nit__parser_prod___AIfexprExpr___n_expr_61d(val* self, val* p0) {
17 val* var_node /* var node: AExpr */;
18 var_node = p0;
19 self->attrs[COLOR_nit__parser_nodes__AIfexprExpr___n_expr].val = var_node; /* _n_expr on <self:AIfexprExpr> */
20 {
21 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
22 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
23 RET_LABEL1:(void)0;
24 }
25 }
26 RET_LABEL:;
27 }
28 /* method parser_prod#AIfexprExpr#n_kwthen= for (self: AIfexprExpr, TKwthen) */
29 void nit__parser_prod___AIfexprExpr___n_kwthen_61d(val* self, val* p0) {
30 val* var_node /* var node: TKwthen */;
31 var_node = p0;
32 self->attrs[COLOR_nit__parser_nodes__AIfexprExpr___n_kwthen].val = var_node; /* _n_kwthen on <self:AIfexprExpr> */
33 {
34 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwthen> */
35 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwthen> */
36 RET_LABEL1:(void)0;
37 }
38 }
39 RET_LABEL:;
40 }
41 /* method parser_prod#AIfexprExpr#n_then= for (self: AIfexprExpr, AExpr) */
42 void nit__parser_prod___AIfexprExpr___n_then_61d(val* self, val* p0) {
43 val* var_node /* var node: AExpr */;
44 var_node = p0;
45 self->attrs[COLOR_nit__parser_nodes__AIfexprExpr___n_then].val = var_node; /* _n_then on <self:AIfexprExpr> */
46 {
47 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
48 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
49 RET_LABEL1:(void)0;
50 }
51 }
52 RET_LABEL:;
53 }
54 /* method parser_prod#AIfexprExpr#n_kwelse= for (self: AIfexprExpr, TKwelse) */
55 void nit__parser_prod___AIfexprExpr___n_kwelse_61d(val* self, val* p0) {
56 val* var_node /* var node: TKwelse */;
57 var_node = p0;
58 self->attrs[COLOR_nit__parser_nodes__AIfexprExpr___n_kwelse].val = var_node; /* _n_kwelse on <self:AIfexprExpr> */
59 {
60 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwelse> */
61 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwelse> */
62 RET_LABEL1:(void)0;
63 }
64 }
65 RET_LABEL:;
66 }
67 /* method parser_prod#AIfexprExpr#n_else= for (self: AIfexprExpr, AExpr) */
68 void nit__parser_prod___AIfexprExpr___n_else_61d(val* self, val* p0) {
69 val* var_node /* var node: AExpr */;
70 var_node = p0;
71 self->attrs[COLOR_nit__parser_nodes__AIfexprExpr___n_else].val = var_node; /* _n_else on <self:AIfexprExpr> */
72 {
73 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
74 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
75 RET_LABEL1:(void)0;
76 }
77 }
78 RET_LABEL:;
79 }
80 /* method parser_prod#AIfexprExpr#visit_all for (self: AIfexprExpr, Visitor) */
81 void nit__parser_prod___AIfexprExpr___nit__parser_nodes__ANode__visit_all(val* self, val* p0) {
82 val* var_v /* var v: Visitor */;
83 val* var /* : TKwif */;
84 val* var1 /* : AExpr */;
85 val* var2 /* : TKwthen */;
86 val* var3 /* : AExpr */;
87 val* var4 /* : TKwelse */;
88 val* var5 /* : AExpr */;
89 var_v = p0;
90 var = self->attrs[COLOR_nit__parser_nodes__AIfexprExpr___n_kwif].val; /* _n_kwif on <self:AIfexprExpr> */
91 if (unlikely(var == NULL)) {
92 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwif");
93 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3004);
94 fatal_exit(1);
95 }
96 {
97 nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
98 }
99 var1 = self->attrs[COLOR_nit__parser_nodes__AIfexprExpr___n_expr].val; /* _n_expr on <self:AIfexprExpr> */
100 if (unlikely(var1 == NULL)) {
101 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
102 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3005);
103 fatal_exit(1);
104 }
105 {
106 nit___nit__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
107 }
108 var2 = self->attrs[COLOR_nit__parser_nodes__AIfexprExpr___n_kwthen].val; /* _n_kwthen on <self:AIfexprExpr> */
109 if (unlikely(var2 == NULL)) {
110 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwthen");
111 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3006);
112 fatal_exit(1);
113 }
114 {
115 nit___nit__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
116 }
117 var3 = self->attrs[COLOR_nit__parser_nodes__AIfexprExpr___n_then].val; /* _n_then on <self:AIfexprExpr> */
118 if (unlikely(var3 == NULL)) {
119 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_then");
120 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3007);
121 fatal_exit(1);
122 }
123 {
124 nit___nit__Visitor___enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
125 }
126 var4 = self->attrs[COLOR_nit__parser_nodes__AIfexprExpr___n_kwelse].val; /* _n_kwelse on <self:AIfexprExpr> */
127 if (unlikely(var4 == NULL)) {
128 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwelse");
129 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3008);
130 fatal_exit(1);
131 }
132 {
133 nit___nit__Visitor___enter_visit(var_v, var4); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
134 }
135 var5 = self->attrs[COLOR_nit__parser_nodes__AIfexprExpr___n_else].val; /* _n_else on <self:AIfexprExpr> */
136 if (unlikely(var5 == NULL)) {
137 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_else");
138 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3009);
139 fatal_exit(1);
140 }
141 {
142 nit___nit__Visitor___enter_visit(var_v, var5); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
143 }
144 RET_LABEL:;
145 }
146 /* method parser_prod#AWhileExpr#init_awhileexpr for (self: AWhileExpr, nullable TKwwhile, nullable AExpr, nullable TKwdo, nullable AExpr, nullable ALabel) */
147 void nit__parser_prod___AWhileExpr___init_awhileexpr(val* self, val* p0, val* p1, val* p2, val* p3, val* p4) {
148 val* var_n_kwwhile /* var n_kwwhile: nullable TKwwhile */;
149 val* var_n_expr /* var n_expr: nullable AExpr */;
150 val* var_n_kwdo /* var n_kwdo: nullable TKwdo */;
151 val* var_n_block /* var n_block: nullable AExpr */;
152 val* var_n_label /* var n_label: nullable ALabel */;
153 short int var /* : Bool */;
154 short int var5 /* : Bool */;
155 val* var_other /* var other: nullable Object */;
156 short int var7 /* : Bool */;
157 short int var8 /* : Bool */;
158 short int var10 /* : Bool */;
159 short int var11 /* : Bool */;
160 short int var13 /* : Bool */;
161 short int var14 /* : Bool */;
162 {
163 { /* Inline kernel#Object#init (self) on <self:AWhileExpr> */
164 RET_LABEL1:(void)0;
165 }
166 }
167 var_n_kwwhile = p0;
168 var_n_expr = p1;
169 var_n_kwdo = p2;
170 var_n_block = p3;
171 var_n_label = p4;
172 if (unlikely(var_n_kwwhile == NULL)) {
173 PRINT_ERROR("Runtime error: %s", "Cast failed");
174 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3021);
175 fatal_exit(1);
176 }
177 self->attrs[COLOR_nit__parser_nodes__AWhileExpr___n_kwwhile].val = var_n_kwwhile; /* _n_kwwhile on <self:AWhileExpr> */
178 if (var_n_kwwhile == NULL) {
179 PRINT_ERROR("Runtime error: %s", "Receiver is null");
180 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3022);
181 fatal_exit(1);
182 } else {
183 { /* Inline parser_nodes#ANode#parent= (var_n_kwwhile,self) on <var_n_kwwhile:nullable TKwwhile> */
184 if (unlikely(var_n_kwwhile == NULL)) {
185 PRINT_ERROR("Runtime error: %s", "Receiver is null");
186 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
187 fatal_exit(1);
188 }
189 var_n_kwwhile->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwwhile:nullable TKwwhile> */
190 RET_LABEL2:(void)0;
191 }
192 }
193 if (unlikely(var_n_expr == NULL)) {
194 PRINT_ERROR("Runtime error: %s", "Cast failed");
195 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3023);
196 fatal_exit(1);
197 }
198 self->attrs[COLOR_nit__parser_nodes__AWhileExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AWhileExpr> */
199 if (var_n_expr == NULL) {
200 PRINT_ERROR("Runtime error: %s", "Receiver is null");
201 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3024);
202 fatal_exit(1);
203 } else {
204 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
205 if (unlikely(var_n_expr == NULL)) {
206 PRINT_ERROR("Runtime error: %s", "Receiver is null");
207 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
208 fatal_exit(1);
209 }
210 var_n_expr->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
211 RET_LABEL3:(void)0;
212 }
213 }
214 if (unlikely(var_n_kwdo == NULL)) {
215 PRINT_ERROR("Runtime error: %s", "Cast failed");
216 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3025);
217 fatal_exit(1);
218 }
219 self->attrs[COLOR_nit__parser_nodes__AWhileExpr___n_kwdo].val = var_n_kwdo; /* _n_kwdo on <self:AWhileExpr> */
220 if (var_n_kwdo == NULL) {
221 PRINT_ERROR("Runtime error: %s", "Receiver is null");
222 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3026);
223 fatal_exit(1);
224 } else {
225 { /* Inline parser_nodes#ANode#parent= (var_n_kwdo,self) on <var_n_kwdo:nullable TKwdo> */
226 if (unlikely(var_n_kwdo == NULL)) {
227 PRINT_ERROR("Runtime error: %s", "Receiver is null");
228 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
229 fatal_exit(1);
230 }
231 var_n_kwdo->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwdo:nullable TKwdo> */
232 RET_LABEL4:(void)0;
233 }
234 }
235 self->attrs[COLOR_nit__parser_nodes__AWhileExpr___n_block].val = var_n_block; /* _n_block on <self:AWhileExpr> */
236 if (var_n_block == NULL) {
237 var = 0; /* is null */
238 } else {
239 var = 1; /* arg is null and recv is not */
240 }
241 if (0) {
242 { /* Inline kernel#Object#!= (var_n_block,((val*)NULL)) on <var_n_block:nullable AExpr> */
243 var_other = ((val*)NULL);
244 {
245 var7 = ((short int(*)(val* self, val* p0))(var_n_block->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_block, var_other); /* == on <var_n_block:nullable AExpr(AExpr)>*/
246 }
247 var8 = !var7;
248 var5 = var8;
249 goto RET_LABEL6;
250 RET_LABEL6:(void)0;
251 }
252 var = var5;
253 }
254 if (var){
255 {
256 { /* Inline parser_nodes#ANode#parent= (var_n_block,self) on <var_n_block:nullable AExpr(AExpr)> */
257 var_n_block->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_block:nullable AExpr(AExpr)> */
258 RET_LABEL9:(void)0;
259 }
260 }
261 } else {
262 }
263 self->attrs[COLOR_nit__parser_nodes__ALabelable___n_label].val = var_n_label; /* _n_label on <self:AWhileExpr> */
264 if (var_n_label == NULL) {
265 var10 = 0; /* is null */
266 } else {
267 var10 = 1; /* arg is null and recv is not */
268 }
269 if (0) {
270 { /* Inline kernel#Object#!= (var_n_label,((val*)NULL)) on <var_n_label:nullable ALabel> */
271 var_other = ((val*)NULL);
272 {
273 var13 = ((short int(*)(val* self, val* p0))(var_n_label->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_label, var_other); /* == on <var_n_label:nullable ALabel(ALabel)>*/
274 }
275 var14 = !var13;
276 var11 = var14;
277 goto RET_LABEL12;
278 RET_LABEL12:(void)0;
279 }
280 var10 = var11;
281 }
282 if (var10){
283 {
284 { /* Inline parser_nodes#ANode#parent= (var_n_label,self) on <var_n_label:nullable ALabel(ALabel)> */
285 var_n_label->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_label:nullable ALabel(ALabel)> */
286 RET_LABEL15:(void)0;
287 }
288 }
289 } else {
290 }
291 RET_LABEL:;
292 }
293 /* method parser_prod#AWhileExpr#replace_child for (self: AWhileExpr, ANode, nullable ANode) */
294 void nit__parser_prod___AWhileExpr___nit__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
295 val* var_old_child /* var old_child: ANode */;
296 val* var_new_child /* var new_child: nullable ANode */;
297 val* var /* : TKwwhile */;
298 short int var1 /* : Bool */;
299 val* var_other /* var other: nullable Object */;
300 short int var3 /* : Bool */;
301 short int var5 /* : Bool */;
302 short int var6 /* : Bool */;
303 int cltype;
304 int idtype;
305 const char* var_class_name;
306 val* var7 /* : AExpr */;
307 short int var8 /* : Bool */;
308 short int var10 /* : Bool */;
309 short int var12 /* : Bool */;
310 short int var13 /* : Bool */;
311 int cltype14;
312 int idtype15;
313 const char* var_class_name16;
314 val* var17 /* : TKwdo */;
315 short int var18 /* : Bool */;
316 short int var20 /* : Bool */;
317 short int var22 /* : Bool */;
318 short int var23 /* : Bool */;
319 int cltype24;
320 int idtype25;
321 const char* var_class_name26;
322 val* var27 /* : nullable AExpr */;
323 short int var28 /* : Bool */;
324 short int var29 /* : Bool */;
325 short int var31 /* : Bool */;
326 short int var33 /* : Bool */;
327 short int var34 /* : Bool */;
328 int cltype35;
329 int idtype36;
330 const char* var_class_name37;
331 val* var38 /* : nullable ALabel */;
332 short int var39 /* : Bool */;
333 short int var40 /* : Bool */;
334 short int var42 /* : Bool */;
335 short int var44 /* : Bool */;
336 short int var45 /* : Bool */;
337 int cltype46;
338 int idtype47;
339 const char* var_class_name48;
340 var_old_child = p0;
341 var_new_child = p1;
342 var = self->attrs[COLOR_nit__parser_nodes__AWhileExpr___n_kwwhile].val; /* _n_kwwhile on <self:AWhileExpr> */
343 if (unlikely(var == NULL)) {
344 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwwhile");
345 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3035);
346 fatal_exit(1);
347 }
348 {
349 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwwhile> */
350 var_other = var_old_child;
351 {
352 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TKwwhile> */
353 var5 = var == var_other;
354 var3 = var5;
355 goto RET_LABEL4;
356 RET_LABEL4:(void)0;
357 }
358 }
359 var1 = var3;
360 goto RET_LABEL2;
361 RET_LABEL2:(void)0;
362 }
363 }
364 if (var1){
365 /* <var_new_child:nullable ANode> isa TKwwhile */
366 cltype = type_nit__TKwwhile.color;
367 idtype = type_nit__TKwwhile.id;
368 if(var_new_child == NULL) {
369 var6 = 0;
370 } else {
371 if(cltype >= var_new_child->type->table_size) {
372 var6 = 0;
373 } else {
374 var6 = var_new_child->type->type_table[cltype] == idtype;
375 }
376 }
377 if (unlikely(!var6)) {
378 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
379 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwwhile", var_class_name);
380 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3036);
381 fatal_exit(1);
382 }
383 {
384 nit__parser_prod___AWhileExpr___n_kwwhile_61d(self, var_new_child); /* Direct call parser_prod#AWhileExpr#n_kwwhile= on <self:AWhileExpr>*/
385 }
386 goto RET_LABEL;
387 } else {
388 }
389 var7 = self->attrs[COLOR_nit__parser_nodes__AWhileExpr___n_expr].val; /* _n_expr on <self:AWhileExpr> */
390 if (unlikely(var7 == NULL)) {
391 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
392 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3039);
393 fatal_exit(1);
394 }
395 {
396 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:AExpr> */
397 var_other = var_old_child;
398 {
399 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:AExpr> */
400 var12 = var7 == var_other;
401 var10 = var12;
402 goto RET_LABEL11;
403 RET_LABEL11:(void)0;
404 }
405 }
406 var8 = var10;
407 goto RET_LABEL9;
408 RET_LABEL9:(void)0;
409 }
410 }
411 if (var8){
412 /* <var_new_child:nullable ANode> isa AExpr */
413 cltype14 = type_nit__AExpr.color;
414 idtype15 = type_nit__AExpr.id;
415 if(var_new_child == NULL) {
416 var13 = 0;
417 } else {
418 if(cltype14 >= var_new_child->type->table_size) {
419 var13 = 0;
420 } else {
421 var13 = var_new_child->type->type_table[cltype14] == idtype15;
422 }
423 }
424 if (unlikely(!var13)) {
425 var_class_name16 = var_new_child == NULL ? "null" : var_new_child->type->name;
426 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name16);
427 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3040);
428 fatal_exit(1);
429 }
430 {
431 nit__parser_prod___AWhileExpr___n_expr_61d(self, var_new_child); /* Direct call parser_prod#AWhileExpr#n_expr= on <self:AWhileExpr>*/
432 }
433 goto RET_LABEL;
434 } else {
435 }
436 var17 = self->attrs[COLOR_nit__parser_nodes__AWhileExpr___n_kwdo].val; /* _n_kwdo on <self:AWhileExpr> */
437 if (unlikely(var17 == NULL)) {
438 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwdo");
439 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3043);
440 fatal_exit(1);
441 }
442 {
443 { /* Inline kernel#Object#== (var17,var_old_child) on <var17:TKwdo> */
444 var_other = var_old_child;
445 {
446 { /* Inline kernel#Object#is_same_instance (var17,var_other) on <var17:TKwdo> */
447 var22 = var17 == var_other;
448 var20 = var22;
449 goto RET_LABEL21;
450 RET_LABEL21:(void)0;
451 }
452 }
453 var18 = var20;
454 goto RET_LABEL19;
455 RET_LABEL19:(void)0;
456 }
457 }
458 if (var18){
459 /* <var_new_child:nullable ANode> isa TKwdo */
460 cltype24 = type_nit__TKwdo.color;
461 idtype25 = type_nit__TKwdo.id;
462 if(var_new_child == NULL) {
463 var23 = 0;
464 } else {
465 if(cltype24 >= var_new_child->type->table_size) {
466 var23 = 0;
467 } else {
468 var23 = var_new_child->type->type_table[cltype24] == idtype25;
469 }
470 }
471 if (unlikely(!var23)) {
472 var_class_name26 = var_new_child == NULL ? "null" : var_new_child->type->name;
473 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwdo", var_class_name26);
474 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3044);
475 fatal_exit(1);
476 }
477 {
478 nit__parser_prod___AWhileExpr___n_kwdo_61d(self, var_new_child); /* Direct call parser_prod#AWhileExpr#n_kwdo= on <self:AWhileExpr>*/
479 }
480 goto RET_LABEL;
481 } else {
482 }
483 var27 = self->attrs[COLOR_nit__parser_nodes__AWhileExpr___n_block].val; /* _n_block on <self:AWhileExpr> */
484 if (var27 == NULL) {
485 var28 = 0; /* <var_old_child:ANode> cannot be null */
486 } else {
487 { /* Inline kernel#Object#== (var27,var_old_child) on <var27:nullable AExpr> */
488 var_other = var_old_child;
489 {
490 { /* Inline kernel#Object#is_same_instance (var27,var_other) on <var27:nullable AExpr(AExpr)> */
491 var33 = var27 == var_other;
492 var31 = var33;
493 goto RET_LABEL32;
494 RET_LABEL32:(void)0;
495 }
496 }
497 var29 = var31;
498 goto RET_LABEL30;
499 RET_LABEL30:(void)0;
500 }
501 var28 = var29;
502 }
503 if (var28){
504 /* <var_new_child:nullable ANode> isa nullable AExpr */
505 cltype35 = type_nullable__nit__AExpr.color;
506 idtype36 = type_nullable__nit__AExpr.id;
507 if(var_new_child == NULL) {
508 var34 = 1;
509 } else {
510 if(cltype35 >= var_new_child->type->table_size) {
511 var34 = 0;
512 } else {
513 var34 = var_new_child->type->type_table[cltype35] == idtype36;
514 }
515 }
516 if (unlikely(!var34)) {
517 var_class_name37 = var_new_child == NULL ? "null" : var_new_child->type->name;
518 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AExpr", var_class_name37);
519 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3048);
520 fatal_exit(1);
521 }
522 {
523 nit__parser_prod___AWhileExpr___n_block_61d(self, var_new_child); /* Direct call parser_prod#AWhileExpr#n_block= on <self:AWhileExpr>*/
524 }
525 goto RET_LABEL;
526 } else {
527 }
528 var38 = self->attrs[COLOR_nit__parser_nodes__ALabelable___n_label].val; /* _n_label on <self:AWhileExpr> */
529 if (var38 == NULL) {
530 var39 = 0; /* <var_old_child:ANode> cannot be null */
531 } else {
532 { /* Inline kernel#Object#== (var38,var_old_child) on <var38:nullable ALabel> */
533 var_other = var_old_child;
534 {
535 { /* Inline kernel#Object#is_same_instance (var38,var_other) on <var38:nullable ALabel(ALabel)> */
536 var44 = var38 == var_other;
537 var42 = var44;
538 goto RET_LABEL43;
539 RET_LABEL43:(void)0;
540 }
541 }
542 var40 = var42;
543 goto RET_LABEL41;
544 RET_LABEL41:(void)0;
545 }
546 var39 = var40;
547 }
548 if (var39){
549 /* <var_new_child:nullable ANode> isa nullable ALabel */
550 cltype46 = type_nullable__nit__ALabel.color;
551 idtype47 = type_nullable__nit__ALabel.id;
552 if(var_new_child == NULL) {
553 var45 = 1;
554 } else {
555 if(cltype46 >= var_new_child->type->table_size) {
556 var45 = 0;
557 } else {
558 var45 = var_new_child->type->type_table[cltype46] == idtype47;
559 }
560 }
561 if (unlikely(!var45)) {
562 var_class_name48 = var_new_child == NULL ? "null" : var_new_child->type->name;
563 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ALabel", var_class_name48);
564 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3052);
565 fatal_exit(1);
566 }
567 {
568 nit__parser_prod___AWhileExpr___nit__parser_nodes__ALabelable__n_label_61d(self, var_new_child); /* Direct call parser_prod#AWhileExpr#n_label= on <self:AWhileExpr>*/
569 }
570 goto RET_LABEL;
571 } else {
572 }
573 RET_LABEL:;
574 }
575 /* method parser_prod#AWhileExpr#n_kwwhile= for (self: AWhileExpr, TKwwhile) */
576 void nit__parser_prod___AWhileExpr___n_kwwhile_61d(val* self, val* p0) {
577 val* var_node /* var node: TKwwhile */;
578 var_node = p0;
579 self->attrs[COLOR_nit__parser_nodes__AWhileExpr___n_kwwhile].val = var_node; /* _n_kwwhile on <self:AWhileExpr> */
580 {
581 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwwhile> */
582 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwwhile> */
583 RET_LABEL1:(void)0;
584 }
585 }
586 RET_LABEL:;
587 }
588 /* method parser_prod#AWhileExpr#n_expr= for (self: AWhileExpr, AExpr) */
589 void nit__parser_prod___AWhileExpr___n_expr_61d(val* self, val* p0) {
590 val* var_node /* var node: AExpr */;
591 var_node = p0;
592 self->attrs[COLOR_nit__parser_nodes__AWhileExpr___n_expr].val = var_node; /* _n_expr on <self:AWhileExpr> */
593 {
594 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
595 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
596 RET_LABEL1:(void)0;
597 }
598 }
599 RET_LABEL:;
600 }
601 /* method parser_prod#AWhileExpr#n_kwdo= for (self: AWhileExpr, TKwdo) */
602 void nit__parser_prod___AWhileExpr___n_kwdo_61d(val* self, val* p0) {
603 val* var_node /* var node: TKwdo */;
604 var_node = p0;
605 self->attrs[COLOR_nit__parser_nodes__AWhileExpr___n_kwdo].val = var_node; /* _n_kwdo on <self:AWhileExpr> */
606 {
607 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwdo> */
608 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwdo> */
609 RET_LABEL1:(void)0;
610 }
611 }
612 RET_LABEL:;
613 }
614 /* method parser_prod#AWhileExpr#n_block= for (self: AWhileExpr, nullable AExpr) */
615 void nit__parser_prod___AWhileExpr___n_block_61d(val* self, val* p0) {
616 val* var_node /* var node: nullable AExpr */;
617 short int var /* : Bool */;
618 short int var1 /* : Bool */;
619 val* var_other /* var other: nullable Object */;
620 short int var3 /* : Bool */;
621 short int var4 /* : Bool */;
622 var_node = p0;
623 self->attrs[COLOR_nit__parser_nodes__AWhileExpr___n_block].val = var_node; /* _n_block on <self:AWhileExpr> */
624 if (var_node == NULL) {
625 var = 0; /* is null */
626 } else {
627 var = 1; /* arg is null and recv is not */
628 }
629 if (0) {
630 { /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable AExpr> */
631 var_other = ((val*)NULL);
632 {
633 var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable AExpr(AExpr)>*/
634 }
635 var4 = !var3;
636 var1 = var4;
637 goto RET_LABEL2;
638 RET_LABEL2:(void)0;
639 }
640 var = var1;
641 }
642 if (var){
643 {
644 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AExpr(AExpr)> */
645 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AExpr(AExpr)> */
646 RET_LABEL5:(void)0;
647 }
648 }
649 } else {
650 }
651 RET_LABEL:;
652 }
653 /* method parser_prod#AWhileExpr#n_label= for (self: AWhileExpr, nullable ALabel) */
654 void nit__parser_prod___AWhileExpr___nit__parser_nodes__ALabelable__n_label_61d(val* self, val* p0) {
655 val* var_node /* var node: nullable ALabel */;
656 short int var /* : Bool */;
657 short int var1 /* : Bool */;
658 val* var_other /* var other: nullable Object */;
659 short int var3 /* : Bool */;
660 short int var4 /* : Bool */;
661 var_node = p0;
662 self->attrs[COLOR_nit__parser_nodes__ALabelable___n_label].val = var_node; /* _n_label on <self:AWhileExpr> */
663 if (var_node == NULL) {
664 var = 0; /* is null */
665 } else {
666 var = 1; /* arg is null and recv is not */
667 }
668 if (0) {
669 { /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable ALabel> */
670 var_other = ((val*)NULL);
671 {
672 var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable ALabel(ALabel)>*/
673 }
674 var4 = !var3;
675 var1 = var4;
676 goto RET_LABEL2;
677 RET_LABEL2:(void)0;
678 }
679 var = var1;
680 }
681 if (var){
682 {
683 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable ALabel(ALabel)> */
684 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable ALabel(ALabel)> */
685 RET_LABEL5:(void)0;
686 }
687 }
688 } else {
689 }
690 RET_LABEL:;
691 }
692 /* method parser_prod#AWhileExpr#visit_all for (self: AWhileExpr, Visitor) */
693 void nit__parser_prod___AWhileExpr___nit__parser_nodes__ANode__visit_all(val* self, val* p0) {
694 val* var_v /* var v: Visitor */;
695 val* var /* : TKwwhile */;
696 val* var1 /* : AExpr */;
697 val* var2 /* : TKwdo */;
698 val* var3 /* : nullable AExpr */;
699 val* var4 /* : nullable ALabel */;
700 var_v = p0;
701 var = self->attrs[COLOR_nit__parser_nodes__AWhileExpr___n_kwwhile].val; /* _n_kwwhile on <self:AWhileExpr> */
702 if (unlikely(var == NULL)) {
703 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwwhile");
704 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3086);
705 fatal_exit(1);
706 }
707 {
708 nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
709 }
710 var1 = self->attrs[COLOR_nit__parser_nodes__AWhileExpr___n_expr].val; /* _n_expr on <self:AWhileExpr> */
711 if (unlikely(var1 == NULL)) {
712 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
713 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3087);
714 fatal_exit(1);
715 }
716 {
717 nit___nit__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
718 }
719 var2 = self->attrs[COLOR_nit__parser_nodes__AWhileExpr___n_kwdo].val; /* _n_kwdo on <self:AWhileExpr> */
720 if (unlikely(var2 == NULL)) {
721 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwdo");
722 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3088);
723 fatal_exit(1);
724 }
725 {
726 nit___nit__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
727 }
728 var3 = self->attrs[COLOR_nit__parser_nodes__AWhileExpr___n_block].val; /* _n_block on <self:AWhileExpr> */
729 {
730 nit___nit__Visitor___enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
731 }
732 var4 = self->attrs[COLOR_nit__parser_nodes__ALabelable___n_label].val; /* _n_label on <self:AWhileExpr> */
733 {
734 nit___nit__Visitor___enter_visit(var_v, var4); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
735 }
736 RET_LABEL:;
737 }
738 /* method parser_prod#ALoopExpr#init_aloopexpr for (self: ALoopExpr, nullable TKwloop, nullable AExpr, nullable ALabel) */
739 void nit__parser_prod___ALoopExpr___init_aloopexpr(val* self, val* p0, val* p1, val* p2) {
740 val* var_n_kwloop /* var n_kwloop: nullable TKwloop */;
741 val* var_n_block /* var n_block: nullable AExpr */;
742 val* var_n_label /* var n_label: nullable ALabel */;
743 short int var /* : Bool */;
744 short int var3 /* : Bool */;
745 val* var_other /* var other: nullable Object */;
746 short int var5 /* : Bool */;
747 short int var6 /* : Bool */;
748 short int var8 /* : Bool */;
749 short int var9 /* : Bool */;
750 short int var11 /* : Bool */;
751 short int var12 /* : Bool */;
752 {
753 { /* Inline kernel#Object#init (self) on <self:ALoopExpr> */
754 RET_LABEL1:(void)0;
755 }
756 }
757 var_n_kwloop = p0;
758 var_n_block = p1;
759 var_n_label = p2;
760 if (unlikely(var_n_kwloop == NULL)) {
761 PRINT_ERROR("Runtime error: %s", "Cast failed");
762 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3100);
763 fatal_exit(1);
764 }
765 self->attrs[COLOR_nit__parser_nodes__ALoopExpr___n_kwloop].val = var_n_kwloop; /* _n_kwloop on <self:ALoopExpr> */
766 if (var_n_kwloop == NULL) {
767 PRINT_ERROR("Runtime error: %s", "Receiver is null");
768 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3101);
769 fatal_exit(1);
770 } else {
771 { /* Inline parser_nodes#ANode#parent= (var_n_kwloop,self) on <var_n_kwloop:nullable TKwloop> */
772 if (unlikely(var_n_kwloop == NULL)) {
773 PRINT_ERROR("Runtime error: %s", "Receiver is null");
774 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
775 fatal_exit(1);
776 }
777 var_n_kwloop->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwloop:nullable TKwloop> */
778 RET_LABEL2:(void)0;
779 }
780 }
781 self->attrs[COLOR_nit__parser_nodes__ALoopExpr___n_block].val = var_n_block; /* _n_block on <self:ALoopExpr> */
782 if (var_n_block == NULL) {
783 var = 0; /* is null */
784 } else {
785 var = 1; /* arg is null and recv is not */
786 }
787 if (0) {
788 { /* Inline kernel#Object#!= (var_n_block,((val*)NULL)) on <var_n_block:nullable AExpr> */
789 var_other = ((val*)NULL);
790 {
791 var5 = ((short int(*)(val* self, val* p0))(var_n_block->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_block, var_other); /* == on <var_n_block:nullable AExpr(AExpr)>*/
792 }
793 var6 = !var5;
794 var3 = var6;
795 goto RET_LABEL4;
796 RET_LABEL4:(void)0;
797 }
798 var = var3;
799 }
800 if (var){
801 {
802 { /* Inline parser_nodes#ANode#parent= (var_n_block,self) on <var_n_block:nullable AExpr(AExpr)> */
803 var_n_block->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_block:nullable AExpr(AExpr)> */
804 RET_LABEL7:(void)0;
805 }
806 }
807 } else {
808 }
809 self->attrs[COLOR_nit__parser_nodes__ALabelable___n_label].val = var_n_label; /* _n_label on <self:ALoopExpr> */
810 if (var_n_label == NULL) {
811 var8 = 0; /* is null */
812 } else {
813 var8 = 1; /* arg is null and recv is not */
814 }
815 if (0) {
816 { /* Inline kernel#Object#!= (var_n_label,((val*)NULL)) on <var_n_label:nullable ALabel> */
817 var_other = ((val*)NULL);
818 {
819 var11 = ((short int(*)(val* self, val* p0))(var_n_label->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_label, var_other); /* == on <var_n_label:nullable ALabel(ALabel)>*/
820 }
821 var12 = !var11;
822 var9 = var12;
823 goto RET_LABEL10;
824 RET_LABEL10:(void)0;
825 }
826 var8 = var9;
827 }
828 if (var8){
829 {
830 { /* Inline parser_nodes#ANode#parent= (var_n_label,self) on <var_n_label:nullable ALabel(ALabel)> */
831 var_n_label->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_label:nullable ALabel(ALabel)> */
832 RET_LABEL13:(void)0;
833 }
834 }
835 } else {
836 }
837 RET_LABEL:;
838 }
839 /* method parser_prod#ALoopExpr#replace_child for (self: ALoopExpr, ANode, nullable ANode) */
840 void nit__parser_prod___ALoopExpr___nit__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
841 val* var_old_child /* var old_child: ANode */;
842 val* var_new_child /* var new_child: nullable ANode */;
843 val* var /* : TKwloop */;
844 short int var1 /* : Bool */;
845 val* var_other /* var other: nullable Object */;
846 short int var3 /* : Bool */;
847 short int var5 /* : Bool */;
848 short int var6 /* : Bool */;
849 int cltype;
850 int idtype;
851 const char* var_class_name;
852 val* var7 /* : nullable AExpr */;
853 short int var8 /* : Bool */;
854 short int var9 /* : Bool */;
855 short int var11 /* : Bool */;
856 short int var13 /* : Bool */;
857 short int var14 /* : Bool */;
858 int cltype15;
859 int idtype16;
860 const char* var_class_name17;
861 val* var18 /* : nullable ALabel */;
862 short int var19 /* : Bool */;
863 short int var20 /* : Bool */;
864 short int var22 /* : Bool */;
865 short int var24 /* : Bool */;
866 short int var25 /* : Bool */;
867 int cltype26;
868 int idtype27;
869 const char* var_class_name28;
870 var_old_child = p0;
871 var_new_child = p1;
872 var = self->attrs[COLOR_nit__parser_nodes__ALoopExpr___n_kwloop].val; /* _n_kwloop on <self:ALoopExpr> */
873 if (unlikely(var == NULL)) {
874 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwloop");
875 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3110);
876 fatal_exit(1);
877 }
878 {
879 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwloop> */
880 var_other = var_old_child;
881 {
882 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TKwloop> */
883 var5 = var == var_other;
884 var3 = var5;
885 goto RET_LABEL4;
886 RET_LABEL4:(void)0;
887 }
888 }
889 var1 = var3;
890 goto RET_LABEL2;
891 RET_LABEL2:(void)0;
892 }
893 }
894 if (var1){
895 /* <var_new_child:nullable ANode> isa TKwloop */
896 cltype = type_nit__TKwloop.color;
897 idtype = type_nit__TKwloop.id;
898 if(var_new_child == NULL) {
899 var6 = 0;
900 } else {
901 if(cltype >= var_new_child->type->table_size) {
902 var6 = 0;
903 } else {
904 var6 = var_new_child->type->type_table[cltype] == idtype;
905 }
906 }
907 if (unlikely(!var6)) {
908 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
909 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwloop", var_class_name);
910 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3111);
911 fatal_exit(1);
912 }
913 {
914 nit__parser_prod___ALoopExpr___n_kwloop_61d(self, var_new_child); /* Direct call parser_prod#ALoopExpr#n_kwloop= on <self:ALoopExpr>*/
915 }
916 goto RET_LABEL;
917 } else {
918 }
919 var7 = self->attrs[COLOR_nit__parser_nodes__ALoopExpr___n_block].val; /* _n_block on <self:ALoopExpr> */
920 if (var7 == NULL) {
921 var8 = 0; /* <var_old_child:ANode> cannot be null */
922 } else {
923 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:nullable AExpr> */
924 var_other = var_old_child;
925 {
926 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:nullable AExpr(AExpr)> */
927 var13 = var7 == var_other;
928 var11 = var13;
929 goto RET_LABEL12;
930 RET_LABEL12:(void)0;
931 }
932 }
933 var9 = var11;
934 goto RET_LABEL10;
935 RET_LABEL10:(void)0;
936 }
937 var8 = var9;
938 }
939 if (var8){
940 /* <var_new_child:nullable ANode> isa nullable AExpr */
941 cltype15 = type_nullable__nit__AExpr.color;
942 idtype16 = type_nullable__nit__AExpr.id;
943 if(var_new_child == NULL) {
944 var14 = 1;
945 } else {
946 if(cltype15 >= var_new_child->type->table_size) {
947 var14 = 0;
948 } else {
949 var14 = var_new_child->type->type_table[cltype15] == idtype16;
950 }
951 }
952 if (unlikely(!var14)) {
953 var_class_name17 = var_new_child == NULL ? "null" : var_new_child->type->name;
954 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AExpr", var_class_name17);
955 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3115);
956 fatal_exit(1);
957 }
958 {
959 nit__parser_prod___ALoopExpr___n_block_61d(self, var_new_child); /* Direct call parser_prod#ALoopExpr#n_block= on <self:ALoopExpr>*/
960 }
961 goto RET_LABEL;
962 } else {
963 }
964 var18 = self->attrs[COLOR_nit__parser_nodes__ALabelable___n_label].val; /* _n_label on <self:ALoopExpr> */
965 if (var18 == NULL) {
966 var19 = 0; /* <var_old_child:ANode> cannot be null */
967 } else {
968 { /* Inline kernel#Object#== (var18,var_old_child) on <var18:nullable ALabel> */
969 var_other = var_old_child;
970 {
971 { /* Inline kernel#Object#is_same_instance (var18,var_other) on <var18:nullable ALabel(ALabel)> */
972 var24 = var18 == var_other;
973 var22 = var24;
974 goto RET_LABEL23;
975 RET_LABEL23:(void)0;
976 }
977 }
978 var20 = var22;
979 goto RET_LABEL21;
980 RET_LABEL21:(void)0;
981 }
982 var19 = var20;
983 }
984 if (var19){
985 /* <var_new_child:nullable ANode> isa nullable ALabel */
986 cltype26 = type_nullable__nit__ALabel.color;
987 idtype27 = type_nullable__nit__ALabel.id;
988 if(var_new_child == NULL) {
989 var25 = 1;
990 } else {
991 if(cltype26 >= var_new_child->type->table_size) {
992 var25 = 0;
993 } else {
994 var25 = var_new_child->type->type_table[cltype26] == idtype27;
995 }
996 }
997 if (unlikely(!var25)) {
998 var_class_name28 = var_new_child == NULL ? "null" : var_new_child->type->name;
999 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ALabel", var_class_name28);
1000 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3119);
1001 fatal_exit(1);
1002 }
1003 {
1004 nit__parser_prod___ALoopExpr___nit__parser_nodes__ALabelable__n_label_61d(self, var_new_child); /* Direct call parser_prod#ALoopExpr#n_label= on <self:ALoopExpr>*/
1005 }
1006 goto RET_LABEL;
1007 } else {
1008 }
1009 RET_LABEL:;
1010 }
1011 /* method parser_prod#ALoopExpr#n_kwloop= for (self: ALoopExpr, TKwloop) */
1012 void nit__parser_prod___ALoopExpr___n_kwloop_61d(val* self, val* p0) {
1013 val* var_node /* var node: TKwloop */;
1014 var_node = p0;
1015 self->attrs[COLOR_nit__parser_nodes__ALoopExpr___n_kwloop].val = var_node; /* _n_kwloop on <self:ALoopExpr> */
1016 {
1017 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwloop> */
1018 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwloop> */
1019 RET_LABEL1:(void)0;
1020 }
1021 }
1022 RET_LABEL:;
1023 }
1024 /* method parser_prod#ALoopExpr#n_block= for (self: ALoopExpr, nullable AExpr) */
1025 void nit__parser_prod___ALoopExpr___n_block_61d(val* self, val* p0) {
1026 val* var_node /* var node: nullable AExpr */;
1027 short int var /* : Bool */;
1028 short int var1 /* : Bool */;
1029 val* var_other /* var other: nullable Object */;
1030 short int var3 /* : Bool */;
1031 short int var4 /* : Bool */;
1032 var_node = p0;
1033 self->attrs[COLOR_nit__parser_nodes__ALoopExpr___n_block].val = var_node; /* _n_block on <self:ALoopExpr> */
1034 if (var_node == NULL) {
1035 var = 0; /* is null */
1036 } else {
1037 var = 1; /* arg is null and recv is not */
1038 }
1039 if (0) {
1040 { /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable AExpr> */
1041 var_other = ((val*)NULL);
1042 {
1043 var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable AExpr(AExpr)>*/
1044 }
1045 var4 = !var3;
1046 var1 = var4;
1047 goto RET_LABEL2;
1048 RET_LABEL2:(void)0;
1049 }
1050 var = var1;
1051 }
1052 if (var){
1053 {
1054 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AExpr(AExpr)> */
1055 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AExpr(AExpr)> */
1056 RET_LABEL5:(void)0;
1057 }
1058 }
1059 } else {
1060 }
1061 RET_LABEL:;
1062 }
1063 /* method parser_prod#ALoopExpr#n_label= for (self: ALoopExpr, nullable ALabel) */
1064 void nit__parser_prod___ALoopExpr___nit__parser_nodes__ALabelable__n_label_61d(val* self, val* p0) {
1065 val* var_node /* var node: nullable ALabel */;
1066 short int var /* : Bool */;
1067 short int var1 /* : Bool */;
1068 val* var_other /* var other: nullable Object */;
1069 short int var3 /* : Bool */;
1070 short int var4 /* : Bool */;
1071 var_node = p0;
1072 self->attrs[COLOR_nit__parser_nodes__ALabelable___n_label].val = var_node; /* _n_label on <self:ALoopExpr> */
1073 if (var_node == NULL) {
1074 var = 0; /* is null */
1075 } else {
1076 var = 1; /* arg is null and recv is not */
1077 }
1078 if (0) {
1079 { /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable ALabel> */
1080 var_other = ((val*)NULL);
1081 {
1082 var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable ALabel(ALabel)>*/
1083 }
1084 var4 = !var3;
1085 var1 = var4;
1086 goto RET_LABEL2;
1087 RET_LABEL2:(void)0;
1088 }
1089 var = var1;
1090 }
1091 if (var){
1092 {
1093 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable ALabel(ALabel)> */
1094 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable ALabel(ALabel)> */
1095 RET_LABEL5:(void)0;
1096 }
1097 }
1098 } else {
1099 }
1100 RET_LABEL:;
1101 }
1102 /* method parser_prod#ALoopExpr#visit_all for (self: ALoopExpr, Visitor) */
1103 void nit__parser_prod___ALoopExpr___nit__parser_nodes__ANode__visit_all(val* self, val* p0) {
1104 val* var_v /* var v: Visitor */;
1105 val* var /* : TKwloop */;
1106 val* var1 /* : nullable AExpr */;
1107 val* var2 /* : nullable ALabel */;
1108 var_v = p0;
1109 var = self->attrs[COLOR_nit__parser_nodes__ALoopExpr___n_kwloop].val; /* _n_kwloop on <self:ALoopExpr> */
1110 if (unlikely(var == NULL)) {
1111 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwloop");
1112 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3143);
1113 fatal_exit(1);
1114 }
1115 {
1116 nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1117 }
1118 var1 = self->attrs[COLOR_nit__parser_nodes__ALoopExpr___n_block].val; /* _n_block on <self:ALoopExpr> */
1119 {
1120 nit___nit__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1121 }
1122 var2 = self->attrs[COLOR_nit__parser_nodes__ALabelable___n_label].val; /* _n_label on <self:ALoopExpr> */
1123 {
1124 nit___nit__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1125 }
1126 RET_LABEL:;
1127 }
1128 /* method parser_prod#AForExpr#init_aforexpr for (self: AForExpr, nullable TKwfor, Collection[Object], nullable TKwin, nullable AExpr, nullable TKwdo, nullable AExpr, nullable ALabel) */
1129 void nit__parser_prod___AForExpr___init_aforexpr(val* self, val* p0, val* p1, val* p2, val* p3, val* p4, val* p5, val* p6) {
1130 val* var_n_kwfor /* var n_kwfor: nullable TKwfor */;
1131 val* var_n_ids /* var n_ids: Collection[Object] */;
1132 val* var_n_kwin /* var n_kwin: nullable TKwin */;
1133 val* var_n_expr /* var n_expr: nullable AExpr */;
1134 val* var_n_kwdo /* var n_kwdo: nullable TKwdo */;
1135 val* var_n_block /* var n_block: nullable AExpr */;
1136 val* var_n_label /* var n_label: nullable ALabel */;
1137 val* var /* : ANodes[TId] */;
1138 val* var4 /* : ANodes[TId] */;
1139 short int var8 /* : Bool */;
1140 short int var9 /* : Bool */;
1141 val* var_other /* var other: nullable Object */;
1142 short int var11 /* : Bool */;
1143 short int var12 /* : Bool */;
1144 short int var14 /* : Bool */;
1145 short int var15 /* : Bool */;
1146 short int var17 /* : Bool */;
1147 short int var18 /* : Bool */;
1148 {
1149 { /* Inline kernel#Object#init (self) on <self:AForExpr> */
1150 RET_LABEL1:(void)0;
1151 }
1152 }
1153 var_n_kwfor = p0;
1154 var_n_ids = p1;
1155 var_n_kwin = p2;
1156 var_n_expr = p3;
1157 var_n_kwdo = p4;
1158 var_n_block = p5;
1159 var_n_label = p6;
1160 if (unlikely(var_n_kwfor == NULL)) {
1161 PRINT_ERROR("Runtime error: %s", "Cast failed");
1162 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3159);
1163 fatal_exit(1);
1164 }
1165 self->attrs[COLOR_nit__parser_nodes__AForExpr___n_kwfor].val = var_n_kwfor; /* _n_kwfor on <self:AForExpr> */
1166 if (var_n_kwfor == NULL) {
1167 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1168 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3160);
1169 fatal_exit(1);
1170 } else {
1171 { /* Inline parser_nodes#ANode#parent= (var_n_kwfor,self) on <var_n_kwfor:nullable TKwfor> */
1172 if (unlikely(var_n_kwfor == NULL)) {
1173 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1174 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
1175 fatal_exit(1);
1176 }
1177 var_n_kwfor->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwfor:nullable TKwfor> */
1178 RET_LABEL2:(void)0;
1179 }
1180 }
1181 {
1182 { /* Inline parser_nodes#AForExpr#n_ids (self) on <self:AForExpr> */
1183 var4 = self->attrs[COLOR_nit__parser_nodes__AForExpr___n_ids].val; /* _n_ids on <self:AForExpr> */
1184 if (unlikely(var4 == NULL)) {
1185 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_ids");
1186 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1934);
1187 fatal_exit(1);
1188 }
1189 var = var4;
1190 RET_LABEL3:(void)0;
1191 }
1192 }
1193 {
1194 nit___nit__ANodes___unsafe_add_all(var, var_n_ids); /* Direct call parser_nodes#ANodes#unsafe_add_all on <var:ANodes[TId]>*/
1195 }
1196 if (unlikely(var_n_kwin == NULL)) {
1197 PRINT_ERROR("Runtime error: %s", "Cast failed");
1198 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3162);
1199 fatal_exit(1);
1200 }
1201 self->attrs[COLOR_nit__parser_nodes__AForExpr___n_kwin].val = var_n_kwin; /* _n_kwin on <self:AForExpr> */
1202 if (var_n_kwin == NULL) {
1203 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1204 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3163);
1205 fatal_exit(1);
1206 } else {
1207 { /* Inline parser_nodes#ANode#parent= (var_n_kwin,self) on <var_n_kwin:nullable TKwin> */
1208 if (unlikely(var_n_kwin == NULL)) {
1209 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1210 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
1211 fatal_exit(1);
1212 }
1213 var_n_kwin->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwin:nullable TKwin> */
1214 RET_LABEL5:(void)0;
1215 }
1216 }
1217 if (unlikely(var_n_expr == NULL)) {
1218 PRINT_ERROR("Runtime error: %s", "Cast failed");
1219 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3164);
1220 fatal_exit(1);
1221 }
1222 self->attrs[COLOR_nit__parser_nodes__AForExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AForExpr> */
1223 if (var_n_expr == NULL) {
1224 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1225 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3165);
1226 fatal_exit(1);
1227 } else {
1228 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
1229 if (unlikely(var_n_expr == NULL)) {
1230 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1231 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
1232 fatal_exit(1);
1233 }
1234 var_n_expr->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
1235 RET_LABEL6:(void)0;
1236 }
1237 }
1238 if (unlikely(var_n_kwdo == NULL)) {
1239 PRINT_ERROR("Runtime error: %s", "Cast failed");
1240 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3166);
1241 fatal_exit(1);
1242 }
1243 self->attrs[COLOR_nit__parser_nodes__AForExpr___n_kwdo].val = var_n_kwdo; /* _n_kwdo on <self:AForExpr> */
1244 if (var_n_kwdo == NULL) {
1245 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1246 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3167);
1247 fatal_exit(1);
1248 } else {
1249 { /* Inline parser_nodes#ANode#parent= (var_n_kwdo,self) on <var_n_kwdo:nullable TKwdo> */
1250 if (unlikely(var_n_kwdo == NULL)) {
1251 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1252 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
1253 fatal_exit(1);
1254 }
1255 var_n_kwdo->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwdo:nullable TKwdo> */
1256 RET_LABEL7:(void)0;
1257 }
1258 }
1259 self->attrs[COLOR_nit__parser_nodes__AForExpr___n_block].val = var_n_block; /* _n_block on <self:AForExpr> */
1260 if (var_n_block == NULL) {
1261 var8 = 0; /* is null */
1262 } else {
1263 var8 = 1; /* arg is null and recv is not */
1264 }
1265 if (0) {
1266 { /* Inline kernel#Object#!= (var_n_block,((val*)NULL)) on <var_n_block:nullable AExpr> */
1267 var_other = ((val*)NULL);
1268 {
1269 var11 = ((short int(*)(val* self, val* p0))(var_n_block->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_block, var_other); /* == on <var_n_block:nullable AExpr(AExpr)>*/
1270 }
1271 var12 = !var11;
1272 var9 = var12;
1273 goto RET_LABEL10;
1274 RET_LABEL10:(void)0;
1275 }
1276 var8 = var9;
1277 }
1278 if (var8){
1279 {
1280 { /* Inline parser_nodes#ANode#parent= (var_n_block,self) on <var_n_block:nullable AExpr(AExpr)> */
1281 var_n_block->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_block:nullable AExpr(AExpr)> */
1282 RET_LABEL13:(void)0;
1283 }
1284 }
1285 } else {
1286 }
1287 self->attrs[COLOR_nit__parser_nodes__ALabelable___n_label].val = var_n_label; /* _n_label on <self:AForExpr> */
1288 if (var_n_label == NULL) {
1289 var14 = 0; /* is null */
1290 } else {
1291 var14 = 1; /* arg is null and recv is not */
1292 }
1293 if (0) {
1294 { /* Inline kernel#Object#!= (var_n_label,((val*)NULL)) on <var_n_label:nullable ALabel> */
1295 var_other = ((val*)NULL);
1296 {
1297 var17 = ((short int(*)(val* self, val* p0))(var_n_label->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_label, var_other); /* == on <var_n_label:nullable ALabel(ALabel)>*/
1298 }
1299 var18 = !var17;
1300 var15 = var18;
1301 goto RET_LABEL16;
1302 RET_LABEL16:(void)0;
1303 }
1304 var14 = var15;
1305 }
1306 if (var14){
1307 {
1308 { /* Inline parser_nodes#ANode#parent= (var_n_label,self) on <var_n_label:nullable ALabel(ALabel)> */
1309 var_n_label->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_label:nullable ALabel(ALabel)> */
1310 RET_LABEL19:(void)0;
1311 }
1312 }
1313 } else {
1314 }
1315 RET_LABEL:;
1316 }
1317 /* method parser_prod#AForExpr#replace_child for (self: AForExpr, ANode, nullable ANode) */
1318 void nit__parser_prod___AForExpr___nit__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
1319 val* var_old_child /* var old_child: ANode */;
1320 val* var_new_child /* var new_child: nullable ANode */;
1321 val* var /* : TKwfor */;
1322 short int var1 /* : Bool */;
1323 val* var_other /* var other: nullable Object */;
1324 short int var3 /* : Bool */;
1325 short int var5 /* : Bool */;
1326 short int var6 /* : Bool */;
1327 int cltype;
1328 int idtype;
1329 const char* var_class_name;
1330 val* var7 /* : ANodes[TId] */;
1331 val* var9 /* : ANodes[TId] */;
1332 short int var10 /* : Bool */;
1333 val* var11 /* : TKwin */;
1334 short int var12 /* : Bool */;
1335 short int var14 /* : Bool */;
1336 short int var16 /* : Bool */;
1337 short int var17 /* : Bool */;
1338 int cltype18;
1339 int idtype19;
1340 const char* var_class_name20;
1341 val* var21 /* : AExpr */;
1342 short int var22 /* : Bool */;
1343 short int var24 /* : Bool */;
1344 short int var26 /* : Bool */;
1345 short int var27 /* : Bool */;
1346 int cltype28;
1347 int idtype29;
1348 const char* var_class_name30;
1349 val* var31 /* : TKwdo */;
1350 short int var32 /* : Bool */;
1351 short int var34 /* : Bool */;
1352 short int var36 /* : Bool */;
1353 short int var37 /* : Bool */;
1354 int cltype38;
1355 int idtype39;
1356 const char* var_class_name40;
1357 val* var41 /* : nullable AExpr */;
1358 short int var42 /* : Bool */;
1359 short int var43 /* : Bool */;
1360 short int var45 /* : Bool */;
1361 short int var47 /* : Bool */;
1362 short int var48 /* : Bool */;
1363 int cltype49;
1364 int idtype50;
1365 const char* var_class_name51;
1366 val* var52 /* : nullable ALabel */;
1367 short int var53 /* : Bool */;
1368 short int var54 /* : Bool */;
1369 short int var56 /* : Bool */;
1370 short int var58 /* : Bool */;
1371 short int var59 /* : Bool */;
1372 int cltype60;
1373 int idtype61;
1374 const char* var_class_name62;
1375 var_old_child = p0;
1376 var_new_child = p1;
1377 var = self->attrs[COLOR_nit__parser_nodes__AForExpr___n_kwfor].val; /* _n_kwfor on <self:AForExpr> */
1378 if (unlikely(var == NULL)) {
1379 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwfor");
1380 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3176);
1381 fatal_exit(1);
1382 }
1383 {
1384 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwfor> */
1385 var_other = var_old_child;
1386 {
1387 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TKwfor> */
1388 var5 = var == var_other;
1389 var3 = var5;
1390 goto RET_LABEL4;
1391 RET_LABEL4:(void)0;
1392 }
1393 }
1394 var1 = var3;
1395 goto RET_LABEL2;
1396 RET_LABEL2:(void)0;
1397 }
1398 }
1399 if (var1){
1400 /* <var_new_child:nullable ANode> isa TKwfor */
1401 cltype = type_nit__TKwfor.color;
1402 idtype = type_nit__TKwfor.id;
1403 if(var_new_child == NULL) {
1404 var6 = 0;
1405 } else {
1406 if(cltype >= var_new_child->type->table_size) {
1407 var6 = 0;
1408 } else {
1409 var6 = var_new_child->type->type_table[cltype] == idtype;
1410 }
1411 }
1412 if (unlikely(!var6)) {
1413 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
1414 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwfor", var_class_name);
1415 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3177);
1416 fatal_exit(1);
1417 }
1418 {
1419 nit__parser_prod___AForExpr___n_kwfor_61d(self, var_new_child); /* Direct call parser_prod#AForExpr#n_kwfor= on <self:AForExpr>*/
1420 }
1421 goto RET_LABEL;
1422 } else {
1423 }
1424 {
1425 { /* Inline parser_nodes#AForExpr#n_ids (self) on <self:AForExpr> */
1426 var9 = self->attrs[COLOR_nit__parser_nodes__AForExpr___n_ids].val; /* _n_ids on <self:AForExpr> */
1427 if (unlikely(var9 == NULL)) {
1428 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_ids");
1429 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1934);
1430 fatal_exit(1);
1431 }
1432 var7 = var9;
1433 RET_LABEL8:(void)0;
1434 }
1435 }
1436 {
1437 var10 = nit___nit__ANodes___replace_child(var7, var_old_child, var_new_child);
1438 }
1439 if (var10){
1440 goto RET_LABEL;
1441 } else {
1442 }
1443 var11 = self->attrs[COLOR_nit__parser_nodes__AForExpr___n_kwin].val; /* _n_kwin on <self:AForExpr> */
1444 if (unlikely(var11 == NULL)) {
1445 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwin");
1446 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3181);
1447 fatal_exit(1);
1448 }
1449 {
1450 { /* Inline kernel#Object#== (var11,var_old_child) on <var11:TKwin> */
1451 var_other = var_old_child;
1452 {
1453 { /* Inline kernel#Object#is_same_instance (var11,var_other) on <var11:TKwin> */
1454 var16 = var11 == var_other;
1455 var14 = var16;
1456 goto RET_LABEL15;
1457 RET_LABEL15:(void)0;
1458 }
1459 }
1460 var12 = var14;
1461 goto RET_LABEL13;
1462 RET_LABEL13:(void)0;
1463 }
1464 }
1465 if (var12){
1466 /* <var_new_child:nullable ANode> isa TKwin */
1467 cltype18 = type_nit__TKwin.color;
1468 idtype19 = type_nit__TKwin.id;
1469 if(var_new_child == NULL) {
1470 var17 = 0;
1471 } else {
1472 if(cltype18 >= var_new_child->type->table_size) {
1473 var17 = 0;
1474 } else {
1475 var17 = var_new_child->type->type_table[cltype18] == idtype19;
1476 }
1477 }
1478 if (unlikely(!var17)) {
1479 var_class_name20 = var_new_child == NULL ? "null" : var_new_child->type->name;
1480 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwin", var_class_name20);
1481 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3182);
1482 fatal_exit(1);
1483 }
1484 {
1485 nit__parser_prod___AForExpr___n_kwin_61d(self, var_new_child); /* Direct call parser_prod#AForExpr#n_kwin= on <self:AForExpr>*/
1486 }
1487 goto RET_LABEL;
1488 } else {
1489 }
1490 var21 = self->attrs[COLOR_nit__parser_nodes__AForExpr___n_expr].val; /* _n_expr on <self:AForExpr> */
1491 if (unlikely(var21 == NULL)) {
1492 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1493 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3185);
1494 fatal_exit(1);
1495 }
1496 {
1497 { /* Inline kernel#Object#== (var21,var_old_child) on <var21:AExpr> */
1498 var_other = var_old_child;
1499 {
1500 { /* Inline kernel#Object#is_same_instance (var21,var_other) on <var21:AExpr> */
1501 var26 = var21 == var_other;
1502 var24 = var26;
1503 goto RET_LABEL25;
1504 RET_LABEL25:(void)0;
1505 }
1506 }
1507 var22 = var24;
1508 goto RET_LABEL23;
1509 RET_LABEL23:(void)0;
1510 }
1511 }
1512 if (var22){
1513 /* <var_new_child:nullable ANode> isa AExpr */
1514 cltype28 = type_nit__AExpr.color;
1515 idtype29 = type_nit__AExpr.id;
1516 if(var_new_child == NULL) {
1517 var27 = 0;
1518 } else {
1519 if(cltype28 >= var_new_child->type->table_size) {
1520 var27 = 0;
1521 } else {
1522 var27 = var_new_child->type->type_table[cltype28] == idtype29;
1523 }
1524 }
1525 if (unlikely(!var27)) {
1526 var_class_name30 = var_new_child == NULL ? "null" : var_new_child->type->name;
1527 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name30);
1528 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3186);
1529 fatal_exit(1);
1530 }
1531 {
1532 nit__parser_prod___AForExpr___n_expr_61d(self, var_new_child); /* Direct call parser_prod#AForExpr#n_expr= on <self:AForExpr>*/
1533 }
1534 goto RET_LABEL;
1535 } else {
1536 }
1537 var31 = self->attrs[COLOR_nit__parser_nodes__AForExpr___n_kwdo].val; /* _n_kwdo on <self:AForExpr> */
1538 if (unlikely(var31 == NULL)) {
1539 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwdo");
1540 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3189);
1541 fatal_exit(1);
1542 }
1543 {
1544 { /* Inline kernel#Object#== (var31,var_old_child) on <var31:TKwdo> */
1545 var_other = var_old_child;
1546 {
1547 { /* Inline kernel#Object#is_same_instance (var31,var_other) on <var31:TKwdo> */
1548 var36 = var31 == var_other;
1549 var34 = var36;
1550 goto RET_LABEL35;
1551 RET_LABEL35:(void)0;
1552 }
1553 }
1554 var32 = var34;
1555 goto RET_LABEL33;
1556 RET_LABEL33:(void)0;
1557 }
1558 }
1559 if (var32){
1560 /* <var_new_child:nullable ANode> isa TKwdo */
1561 cltype38 = type_nit__TKwdo.color;
1562 idtype39 = type_nit__TKwdo.id;
1563 if(var_new_child == NULL) {
1564 var37 = 0;
1565 } else {
1566 if(cltype38 >= var_new_child->type->table_size) {
1567 var37 = 0;
1568 } else {
1569 var37 = var_new_child->type->type_table[cltype38] == idtype39;
1570 }
1571 }
1572 if (unlikely(!var37)) {
1573 var_class_name40 = var_new_child == NULL ? "null" : var_new_child->type->name;
1574 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwdo", var_class_name40);
1575 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3190);
1576 fatal_exit(1);
1577 }
1578 {
1579 nit__parser_prod___AForExpr___n_kwdo_61d(self, var_new_child); /* Direct call parser_prod#AForExpr#n_kwdo= on <self:AForExpr>*/
1580 }
1581 goto RET_LABEL;
1582 } else {
1583 }
1584 var41 = self->attrs[COLOR_nit__parser_nodes__AForExpr___n_block].val; /* _n_block on <self:AForExpr> */
1585 if (var41 == NULL) {
1586 var42 = 0; /* <var_old_child:ANode> cannot be null */
1587 } else {
1588 { /* Inline kernel#Object#== (var41,var_old_child) on <var41:nullable AExpr> */
1589 var_other = var_old_child;
1590 {
1591 { /* Inline kernel#Object#is_same_instance (var41,var_other) on <var41:nullable AExpr(AExpr)> */
1592 var47 = var41 == var_other;
1593 var45 = var47;
1594 goto RET_LABEL46;
1595 RET_LABEL46:(void)0;
1596 }
1597 }
1598 var43 = var45;
1599 goto RET_LABEL44;
1600 RET_LABEL44:(void)0;
1601 }
1602 var42 = var43;
1603 }
1604 if (var42){
1605 /* <var_new_child:nullable ANode> isa nullable AExpr */
1606 cltype49 = type_nullable__nit__AExpr.color;
1607 idtype50 = type_nullable__nit__AExpr.id;
1608 if(var_new_child == NULL) {
1609 var48 = 1;
1610 } else {
1611 if(cltype49 >= var_new_child->type->table_size) {
1612 var48 = 0;
1613 } else {
1614 var48 = var_new_child->type->type_table[cltype49] == idtype50;
1615 }
1616 }
1617 if (unlikely(!var48)) {
1618 var_class_name51 = var_new_child == NULL ? "null" : var_new_child->type->name;
1619 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AExpr", var_class_name51);
1620 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3194);
1621 fatal_exit(1);
1622 }
1623 {
1624 nit__parser_prod___AForExpr___n_block_61d(self, var_new_child); /* Direct call parser_prod#AForExpr#n_block= on <self:AForExpr>*/
1625 }
1626 goto RET_LABEL;
1627 } else {
1628 }
1629 var52 = self->attrs[COLOR_nit__parser_nodes__ALabelable___n_label].val; /* _n_label on <self:AForExpr> */
1630 if (var52 == NULL) {
1631 var53 = 0; /* <var_old_child:ANode> cannot be null */
1632 } else {
1633 { /* Inline kernel#Object#== (var52,var_old_child) on <var52:nullable ALabel> */
1634 var_other = var_old_child;
1635 {
1636 { /* Inline kernel#Object#is_same_instance (var52,var_other) on <var52:nullable ALabel(ALabel)> */
1637 var58 = var52 == var_other;
1638 var56 = var58;
1639 goto RET_LABEL57;
1640 RET_LABEL57:(void)0;
1641 }
1642 }
1643 var54 = var56;
1644 goto RET_LABEL55;
1645 RET_LABEL55:(void)0;
1646 }
1647 var53 = var54;
1648 }
1649 if (var53){
1650 /* <var_new_child:nullable ANode> isa nullable ALabel */
1651 cltype60 = type_nullable__nit__ALabel.color;
1652 idtype61 = type_nullable__nit__ALabel.id;
1653 if(var_new_child == NULL) {
1654 var59 = 1;
1655 } else {
1656 if(cltype60 >= var_new_child->type->table_size) {
1657 var59 = 0;
1658 } else {
1659 var59 = var_new_child->type->type_table[cltype60] == idtype61;
1660 }
1661 }
1662 if (unlikely(!var59)) {
1663 var_class_name62 = var_new_child == NULL ? "null" : var_new_child->type->name;
1664 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ALabel", var_class_name62);
1665 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3198);
1666 fatal_exit(1);
1667 }
1668 {
1669 nit__parser_prod___AForExpr___nit__parser_nodes__ALabelable__n_label_61d(self, var_new_child); /* Direct call parser_prod#AForExpr#n_label= on <self:AForExpr>*/
1670 }
1671 goto RET_LABEL;
1672 } else {
1673 }
1674 RET_LABEL:;
1675 }
1676 /* method parser_prod#AForExpr#n_kwfor= for (self: AForExpr, TKwfor) */
1677 void nit__parser_prod___AForExpr___n_kwfor_61d(val* self, val* p0) {
1678 val* var_node /* var node: TKwfor */;
1679 var_node = p0;
1680 self->attrs[COLOR_nit__parser_nodes__AForExpr___n_kwfor].val = var_node; /* _n_kwfor on <self:AForExpr> */
1681 {
1682 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwfor> */
1683 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwfor> */
1684 RET_LABEL1:(void)0;
1685 }
1686 }
1687 RET_LABEL:;
1688 }
1689 /* method parser_prod#AForExpr#n_kwin= for (self: AForExpr, TKwin) */
1690 void nit__parser_prod___AForExpr___n_kwin_61d(val* self, val* p0) {
1691 val* var_node /* var node: TKwin */;
1692 var_node = p0;
1693 self->attrs[COLOR_nit__parser_nodes__AForExpr___n_kwin].val = var_node; /* _n_kwin on <self:AForExpr> */
1694 {
1695 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwin> */
1696 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwin> */
1697 RET_LABEL1:(void)0;
1698 }
1699 }
1700 RET_LABEL:;
1701 }
1702 /* method parser_prod#AForExpr#n_expr= for (self: AForExpr, AExpr) */
1703 void nit__parser_prod___AForExpr___n_expr_61d(val* self, val* p0) {
1704 val* var_node /* var node: AExpr */;
1705 var_node = p0;
1706 self->attrs[COLOR_nit__parser_nodes__AForExpr___n_expr].val = var_node; /* _n_expr on <self:AForExpr> */
1707 {
1708 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
1709 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
1710 RET_LABEL1:(void)0;
1711 }
1712 }
1713 RET_LABEL:;
1714 }
1715 /* method parser_prod#AForExpr#n_kwdo= for (self: AForExpr, TKwdo) */
1716 void nit__parser_prod___AForExpr___n_kwdo_61d(val* self, val* p0) {
1717 val* var_node /* var node: TKwdo */;
1718 var_node = p0;
1719 self->attrs[COLOR_nit__parser_nodes__AForExpr___n_kwdo].val = var_node; /* _n_kwdo on <self:AForExpr> */
1720 {
1721 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwdo> */
1722 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwdo> */
1723 RET_LABEL1:(void)0;
1724 }
1725 }
1726 RET_LABEL:;
1727 }
1728 /* method parser_prod#AForExpr#n_block= for (self: AForExpr, nullable AExpr) */
1729 void nit__parser_prod___AForExpr___n_block_61d(val* self, val* p0) {
1730 val* var_node /* var node: nullable AExpr */;
1731 short int var /* : Bool */;
1732 short int var1 /* : Bool */;
1733 val* var_other /* var other: nullable Object */;
1734 short int var3 /* : Bool */;
1735 short int var4 /* : Bool */;
1736 var_node = p0;
1737 self->attrs[COLOR_nit__parser_nodes__AForExpr___n_block].val = var_node; /* _n_block on <self:AForExpr> */
1738 if (var_node == NULL) {
1739 var = 0; /* is null */
1740 } else {
1741 var = 1; /* arg is null and recv is not */
1742 }
1743 if (0) {
1744 { /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable AExpr> */
1745 var_other = ((val*)NULL);
1746 {
1747 var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable AExpr(AExpr)>*/
1748 }
1749 var4 = !var3;
1750 var1 = var4;
1751 goto RET_LABEL2;
1752 RET_LABEL2:(void)0;
1753 }
1754 var = var1;
1755 }
1756 if (var){
1757 {
1758 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AExpr(AExpr)> */
1759 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AExpr(AExpr)> */
1760 RET_LABEL5:(void)0;
1761 }
1762 }
1763 } else {
1764 }
1765 RET_LABEL:;
1766 }
1767 /* method parser_prod#AForExpr#n_label= for (self: AForExpr, nullable ALabel) */
1768 void nit__parser_prod___AForExpr___nit__parser_nodes__ALabelable__n_label_61d(val* self, val* p0) {
1769 val* var_node /* var node: nullable ALabel */;
1770 short int var /* : Bool */;
1771 short int var1 /* : Bool */;
1772 val* var_other /* var other: nullable Object */;
1773 short int var3 /* : Bool */;
1774 short int var4 /* : Bool */;
1775 var_node = p0;
1776 self->attrs[COLOR_nit__parser_nodes__ALabelable___n_label].val = var_node; /* _n_label on <self:AForExpr> */
1777 if (var_node == NULL) {
1778 var = 0; /* is null */
1779 } else {
1780 var = 1; /* arg is null and recv is not */
1781 }
1782 if (0) {
1783 { /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable ALabel> */
1784 var_other = ((val*)NULL);
1785 {
1786 var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable ALabel(ALabel)>*/
1787 }
1788 var4 = !var3;
1789 var1 = var4;
1790 goto RET_LABEL2;
1791 RET_LABEL2:(void)0;
1792 }
1793 var = var1;
1794 }
1795 if (var){
1796 {
1797 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable ALabel(ALabel)> */
1798 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable ALabel(ALabel)> */
1799 RET_LABEL5:(void)0;
1800 }
1801 }
1802 } else {
1803 }
1804 RET_LABEL:;
1805 }
1806 /* method parser_prod#AForExpr#visit_all for (self: AForExpr, Visitor) */
1807 void nit__parser_prod___AForExpr___nit__parser_nodes__ANode__visit_all(val* self, val* p0) {
1808 val* var_v /* var v: Visitor */;
1809 val* var /* : TKwfor */;
1810 val* var1 /* : ANodes[TId] */;
1811 val* var3 /* : ANodes[TId] */;
1812 val* var4 /* : TKwin */;
1813 val* var5 /* : AExpr */;
1814 val* var6 /* : TKwdo */;
1815 val* var7 /* : nullable AExpr */;
1816 val* var8 /* : nullable ALabel */;
1817 var_v = p0;
1818 var = self->attrs[COLOR_nit__parser_nodes__AForExpr___n_kwfor].val; /* _n_kwfor on <self:AForExpr> */
1819 if (unlikely(var == NULL)) {
1820 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwfor");
1821 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3237);
1822 fatal_exit(1);
1823 }
1824 {
1825 nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1826 }
1827 {
1828 { /* Inline parser_nodes#AForExpr#n_ids (self) on <self:AForExpr> */
1829 var3 = self->attrs[COLOR_nit__parser_nodes__AForExpr___n_ids].val; /* _n_ids on <self:AForExpr> */
1830 if (unlikely(var3 == NULL)) {
1831 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_ids");
1832 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1934);
1833 fatal_exit(1);
1834 }
1835 var1 = var3;
1836 RET_LABEL2:(void)0;
1837 }
1838 }
1839 {
1840 nit___nit__ANodes___visit_all(var1, var_v); /* Direct call parser_nodes#ANodes#visit_all on <var1:ANodes[TId]>*/
1841 }
1842 var4 = self->attrs[COLOR_nit__parser_nodes__AForExpr___n_kwin].val; /* _n_kwin on <self:AForExpr> */
1843 if (unlikely(var4 == NULL)) {
1844 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwin");
1845 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3239);
1846 fatal_exit(1);
1847 }
1848 {
1849 nit___nit__Visitor___enter_visit(var_v, var4); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1850 }
1851 var5 = self->attrs[COLOR_nit__parser_nodes__AForExpr___n_expr].val; /* _n_expr on <self:AForExpr> */
1852 if (unlikely(var5 == NULL)) {
1853 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1854 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3240);
1855 fatal_exit(1);
1856 }
1857 {
1858 nit___nit__Visitor___enter_visit(var_v, var5); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1859 }
1860 var6 = self->attrs[COLOR_nit__parser_nodes__AForExpr___n_kwdo].val; /* _n_kwdo on <self:AForExpr> */
1861 if (unlikely(var6 == NULL)) {
1862 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwdo");
1863 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3241);
1864 fatal_exit(1);
1865 }
1866 {
1867 nit___nit__Visitor___enter_visit(var_v, var6); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1868 }
1869 var7 = self->attrs[COLOR_nit__parser_nodes__AForExpr___n_block].val; /* _n_block on <self:AForExpr> */
1870 {
1871 nit___nit__Visitor___enter_visit(var_v, var7); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1872 }
1873 var8 = self->attrs[COLOR_nit__parser_nodes__ALabelable___n_label].val; /* _n_label on <self:AForExpr> */
1874 {
1875 nit___nit__Visitor___enter_visit(var_v, var8); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1876 }
1877 RET_LABEL:;
1878 }
1879 /* method parser_prod#AWithExpr#init_awithexpr for (self: AWithExpr, nullable TKwwith, nullable AExpr, nullable TKwdo, nullable AExpr, nullable ALabel) */
1880 void nit__parser_prod___AWithExpr___init_awithexpr(val* self, val* p0, val* p1, val* p2, val* p3, val* p4) {
1881 val* var_n_kwwith /* var n_kwwith: nullable TKwwith */;
1882 val* var_n_expr /* var n_expr: nullable AExpr */;
1883 val* var_n_kwdo /* var n_kwdo: nullable TKwdo */;
1884 val* var_n_block /* var n_block: nullable AExpr */;
1885 val* var_n_label /* var n_label: nullable ALabel */;
1886 short int var /* : Bool */;
1887 short int var5 /* : Bool */;
1888 val* var_other /* var other: nullable Object */;
1889 short int var7 /* : Bool */;
1890 short int var8 /* : Bool */;
1891 short int var10 /* : Bool */;
1892 short int var11 /* : Bool */;
1893 short int var13 /* : Bool */;
1894 short int var14 /* : Bool */;
1895 {
1896 { /* Inline kernel#Object#init (self) on <self:AWithExpr> */
1897 RET_LABEL1:(void)0;
1898 }
1899 }
1900 var_n_kwwith = p0;
1901 var_n_expr = p1;
1902 var_n_kwdo = p2;
1903 var_n_block = p3;
1904 var_n_label = p4;
1905 if (unlikely(var_n_kwwith == NULL)) {
1906 PRINT_ERROR("Runtime error: %s", "Cast failed");
1907 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3255);
1908 fatal_exit(1);
1909 }
1910 self->attrs[COLOR_nit__parser_nodes__AWithExpr___n_kwwith].val = var_n_kwwith; /* _n_kwwith on <self:AWithExpr> */
1911 if (var_n_kwwith == NULL) {
1912 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1913 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3256);
1914 fatal_exit(1);
1915 } else {
1916 { /* Inline parser_nodes#ANode#parent= (var_n_kwwith,self) on <var_n_kwwith:nullable TKwwith> */
1917 if (unlikely(var_n_kwwith == NULL)) {
1918 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1919 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
1920 fatal_exit(1);
1921 }
1922 var_n_kwwith->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwwith:nullable TKwwith> */
1923 RET_LABEL2:(void)0;
1924 }
1925 }
1926 if (unlikely(var_n_expr == NULL)) {
1927 PRINT_ERROR("Runtime error: %s", "Cast failed");
1928 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3257);
1929 fatal_exit(1);
1930 }
1931 self->attrs[COLOR_nit__parser_nodes__AWithExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AWithExpr> */
1932 if (var_n_expr == NULL) {
1933 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1934 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3258);
1935 fatal_exit(1);
1936 } else {
1937 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
1938 if (unlikely(var_n_expr == NULL)) {
1939 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1940 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
1941 fatal_exit(1);
1942 }
1943 var_n_expr->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
1944 RET_LABEL3:(void)0;
1945 }
1946 }
1947 if (unlikely(var_n_kwdo == NULL)) {
1948 PRINT_ERROR("Runtime error: %s", "Cast failed");
1949 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3259);
1950 fatal_exit(1);
1951 }
1952 self->attrs[COLOR_nit__parser_nodes__AWithExpr___n_kwdo].val = var_n_kwdo; /* _n_kwdo on <self:AWithExpr> */
1953 if (var_n_kwdo == NULL) {
1954 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1955 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3260);
1956 fatal_exit(1);
1957 } else {
1958 { /* Inline parser_nodes#ANode#parent= (var_n_kwdo,self) on <var_n_kwdo:nullable TKwdo> */
1959 if (unlikely(var_n_kwdo == NULL)) {
1960 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1961 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
1962 fatal_exit(1);
1963 }
1964 var_n_kwdo->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwdo:nullable TKwdo> */
1965 RET_LABEL4:(void)0;
1966 }
1967 }
1968 self->attrs[COLOR_nit__parser_nodes__AWithExpr___n_block].val = var_n_block; /* _n_block on <self:AWithExpr> */
1969 if (var_n_block == NULL) {
1970 var = 0; /* is null */
1971 } else {
1972 var = 1; /* arg is null and recv is not */
1973 }
1974 if (0) {
1975 { /* Inline kernel#Object#!= (var_n_block,((val*)NULL)) on <var_n_block:nullable AExpr> */
1976 var_other = ((val*)NULL);
1977 {
1978 var7 = ((short int(*)(val* self, val* p0))(var_n_block->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_block, var_other); /* == on <var_n_block:nullable AExpr(AExpr)>*/
1979 }
1980 var8 = !var7;
1981 var5 = var8;
1982 goto RET_LABEL6;
1983 RET_LABEL6:(void)0;
1984 }
1985 var = var5;
1986 }
1987 if (var){
1988 {
1989 { /* Inline parser_nodes#ANode#parent= (var_n_block,self) on <var_n_block:nullable AExpr(AExpr)> */
1990 var_n_block->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_block:nullable AExpr(AExpr)> */
1991 RET_LABEL9:(void)0;
1992 }
1993 }
1994 } else {
1995 }
1996 self->attrs[COLOR_nit__parser_nodes__ALabelable___n_label].val = var_n_label; /* _n_label on <self:AWithExpr> */
1997 if (var_n_label == NULL) {
1998 var10 = 0; /* is null */
1999 } else {
2000 var10 = 1; /* arg is null and recv is not */
2001 }
2002 if (0) {
2003 { /* Inline kernel#Object#!= (var_n_label,((val*)NULL)) on <var_n_label:nullable ALabel> */
2004 var_other = ((val*)NULL);
2005 {
2006 var13 = ((short int(*)(val* self, val* p0))(var_n_label->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_label, var_other); /* == on <var_n_label:nullable ALabel(ALabel)>*/
2007 }
2008 var14 = !var13;
2009 var11 = var14;
2010 goto RET_LABEL12;
2011 RET_LABEL12:(void)0;
2012 }
2013 var10 = var11;
2014 }
2015 if (var10){
2016 {
2017 { /* Inline parser_nodes#ANode#parent= (var_n_label,self) on <var_n_label:nullable ALabel(ALabel)> */
2018 var_n_label->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_label:nullable ALabel(ALabel)> */
2019 RET_LABEL15:(void)0;
2020 }
2021 }
2022 } else {
2023 }
2024 RET_LABEL:;
2025 }
2026 /* method parser_prod#AWithExpr#replace_child for (self: AWithExpr, ANode, nullable ANode) */
2027 void nit__parser_prod___AWithExpr___nit__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
2028 val* var_old_child /* var old_child: ANode */;
2029 val* var_new_child /* var new_child: nullable ANode */;
2030 val* var /* : TKwwith */;
2031 short int var1 /* : Bool */;
2032 val* var_other /* var other: nullable Object */;
2033 short int var3 /* : Bool */;
2034 short int var5 /* : Bool */;
2035 short int var6 /* : Bool */;
2036 int cltype;
2037 int idtype;
2038 const char* var_class_name;
2039 val* var7 /* : AExpr */;
2040 short int var8 /* : Bool */;
2041 short int var10 /* : Bool */;
2042 short int var12 /* : Bool */;
2043 short int var13 /* : Bool */;
2044 int cltype14;
2045 int idtype15;
2046 const char* var_class_name16;
2047 val* var17 /* : TKwdo */;
2048 short int var18 /* : Bool */;
2049 short int var20 /* : Bool */;
2050 short int var22 /* : Bool */;
2051 short int var23 /* : Bool */;
2052 int cltype24;
2053 int idtype25;
2054 const char* var_class_name26;
2055 val* var27 /* : nullable AExpr */;
2056 short int var28 /* : Bool */;
2057 short int var29 /* : Bool */;
2058 short int var31 /* : Bool */;
2059 short int var33 /* : Bool */;
2060 short int var34 /* : Bool */;
2061 int cltype35;
2062 int idtype36;
2063 const char* var_class_name37;
2064 val* var38 /* : nullable ALabel */;
2065 short int var39 /* : Bool */;
2066 short int var40 /* : Bool */;
2067 short int var42 /* : Bool */;
2068 short int var44 /* : Bool */;
2069 short int var45 /* : Bool */;
2070 int cltype46;
2071 int idtype47;
2072 const char* var_class_name48;
2073 var_old_child = p0;
2074 var_new_child = p1;
2075 var = self->attrs[COLOR_nit__parser_nodes__AWithExpr___n_kwwith].val; /* _n_kwwith on <self:AWithExpr> */
2076 if (unlikely(var == NULL)) {
2077 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwwith");
2078 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3269);
2079 fatal_exit(1);
2080 }
2081 {
2082 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwwith> */
2083 var_other = var_old_child;
2084 {
2085 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TKwwith> */
2086 var5 = var == var_other;
2087 var3 = var5;
2088 goto RET_LABEL4;
2089 RET_LABEL4:(void)0;
2090 }
2091 }
2092 var1 = var3;
2093 goto RET_LABEL2;
2094 RET_LABEL2:(void)0;
2095 }
2096 }
2097 if (var1){
2098 /* <var_new_child:nullable ANode> isa TKwwith */
2099 cltype = type_nit__TKwwith.color;
2100 idtype = type_nit__TKwwith.id;
2101 if(var_new_child == NULL) {
2102 var6 = 0;
2103 } else {
2104 if(cltype >= var_new_child->type->table_size) {
2105 var6 = 0;
2106 } else {
2107 var6 = var_new_child->type->type_table[cltype] == idtype;
2108 }
2109 }
2110 if (unlikely(!var6)) {
2111 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
2112 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwwith", var_class_name);
2113 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3270);
2114 fatal_exit(1);
2115 }
2116 {
2117 nit__parser_prod___AWithExpr___n_kwwith_61d(self, var_new_child); /* Direct call parser_prod#AWithExpr#n_kwwith= on <self:AWithExpr>*/
2118 }
2119 goto RET_LABEL;
2120 } else {
2121 }
2122 var7 = self->attrs[COLOR_nit__parser_nodes__AWithExpr___n_expr].val; /* _n_expr on <self:AWithExpr> */
2123 if (unlikely(var7 == NULL)) {
2124 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2125 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3273);
2126 fatal_exit(1);
2127 }
2128 {
2129 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:AExpr> */
2130 var_other = var_old_child;
2131 {
2132 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:AExpr> */
2133 var12 = var7 == var_other;
2134 var10 = var12;
2135 goto RET_LABEL11;
2136 RET_LABEL11:(void)0;
2137 }
2138 }
2139 var8 = var10;
2140 goto RET_LABEL9;
2141 RET_LABEL9:(void)0;
2142 }
2143 }
2144 if (var8){
2145 /* <var_new_child:nullable ANode> isa AExpr */
2146 cltype14 = type_nit__AExpr.color;
2147 idtype15 = type_nit__AExpr.id;
2148 if(var_new_child == NULL) {
2149 var13 = 0;
2150 } else {
2151 if(cltype14 >= var_new_child->type->table_size) {
2152 var13 = 0;
2153 } else {
2154 var13 = var_new_child->type->type_table[cltype14] == idtype15;
2155 }
2156 }
2157 if (unlikely(!var13)) {
2158 var_class_name16 = var_new_child == NULL ? "null" : var_new_child->type->name;
2159 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name16);
2160 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3274);
2161 fatal_exit(1);
2162 }
2163 {
2164 nit__parser_prod___AWithExpr___n_expr_61d(self, var_new_child); /* Direct call parser_prod#AWithExpr#n_expr= on <self:AWithExpr>*/
2165 }
2166 goto RET_LABEL;
2167 } else {
2168 }
2169 var17 = self->attrs[COLOR_nit__parser_nodes__AWithExpr___n_kwdo].val; /* _n_kwdo on <self:AWithExpr> */
2170 if (unlikely(var17 == NULL)) {
2171 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwdo");
2172 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3277);
2173 fatal_exit(1);
2174 }
2175 {
2176 { /* Inline kernel#Object#== (var17,var_old_child) on <var17:TKwdo> */
2177 var_other = var_old_child;
2178 {
2179 { /* Inline kernel#Object#is_same_instance (var17,var_other) on <var17:TKwdo> */
2180 var22 = var17 == var_other;
2181 var20 = var22;
2182 goto RET_LABEL21;
2183 RET_LABEL21:(void)0;
2184 }
2185 }
2186 var18 = var20;
2187 goto RET_LABEL19;
2188 RET_LABEL19:(void)0;
2189 }
2190 }
2191 if (var18){
2192 /* <var_new_child:nullable ANode> isa TKwdo */
2193 cltype24 = type_nit__TKwdo.color;
2194 idtype25 = type_nit__TKwdo.id;
2195 if(var_new_child == NULL) {
2196 var23 = 0;
2197 } else {
2198 if(cltype24 >= var_new_child->type->table_size) {
2199 var23 = 0;
2200 } else {
2201 var23 = var_new_child->type->type_table[cltype24] == idtype25;
2202 }
2203 }
2204 if (unlikely(!var23)) {
2205 var_class_name26 = var_new_child == NULL ? "null" : var_new_child->type->name;
2206 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwdo", var_class_name26);
2207 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3278);
2208 fatal_exit(1);
2209 }
2210 {
2211 nit__parser_prod___AWithExpr___n_kwdo_61d(self, var_new_child); /* Direct call parser_prod#AWithExpr#n_kwdo= on <self:AWithExpr>*/
2212 }
2213 goto RET_LABEL;
2214 } else {
2215 }
2216 var27 = self->attrs[COLOR_nit__parser_nodes__AWithExpr___n_block].val; /* _n_block on <self:AWithExpr> */
2217 if (var27 == NULL) {
2218 var28 = 0; /* <var_old_child:ANode> cannot be null */
2219 } else {
2220 { /* Inline kernel#Object#== (var27,var_old_child) on <var27:nullable AExpr> */
2221 var_other = var_old_child;
2222 {
2223 { /* Inline kernel#Object#is_same_instance (var27,var_other) on <var27:nullable AExpr(AExpr)> */
2224 var33 = var27 == var_other;
2225 var31 = var33;
2226 goto RET_LABEL32;
2227 RET_LABEL32:(void)0;
2228 }
2229 }
2230 var29 = var31;
2231 goto RET_LABEL30;
2232 RET_LABEL30:(void)0;
2233 }
2234 var28 = var29;
2235 }
2236 if (var28){
2237 /* <var_new_child:nullable ANode> isa nullable AExpr */
2238 cltype35 = type_nullable__nit__AExpr.color;
2239 idtype36 = type_nullable__nit__AExpr.id;
2240 if(var_new_child == NULL) {
2241 var34 = 1;
2242 } else {
2243 if(cltype35 >= var_new_child->type->table_size) {
2244 var34 = 0;
2245 } else {
2246 var34 = var_new_child->type->type_table[cltype35] == idtype36;
2247 }
2248 }
2249 if (unlikely(!var34)) {
2250 var_class_name37 = var_new_child == NULL ? "null" : var_new_child->type->name;
2251 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AExpr", var_class_name37);
2252 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3282);
2253 fatal_exit(1);
2254 }
2255 {
2256 nit__parser_prod___AWithExpr___n_block_61d(self, var_new_child); /* Direct call parser_prod#AWithExpr#n_block= on <self:AWithExpr>*/
2257 }
2258 goto RET_LABEL;
2259 } else {
2260 }
2261 var38 = self->attrs[COLOR_nit__parser_nodes__ALabelable___n_label].val; /* _n_label on <self:AWithExpr> */
2262 if (var38 == NULL) {
2263 var39 = 0; /* <var_old_child:ANode> cannot be null */
2264 } else {
2265 { /* Inline kernel#Object#== (var38,var_old_child) on <var38:nullable ALabel> */
2266 var_other = var_old_child;
2267 {
2268 { /* Inline kernel#Object#is_same_instance (var38,var_other) on <var38:nullable ALabel(ALabel)> */
2269 var44 = var38 == var_other;
2270 var42 = var44;
2271 goto RET_LABEL43;
2272 RET_LABEL43:(void)0;
2273 }
2274 }
2275 var40 = var42;
2276 goto RET_LABEL41;
2277 RET_LABEL41:(void)0;
2278 }
2279 var39 = var40;
2280 }
2281 if (var39){
2282 /* <var_new_child:nullable ANode> isa nullable ALabel */
2283 cltype46 = type_nullable__nit__ALabel.color;
2284 idtype47 = type_nullable__nit__ALabel.id;
2285 if(var_new_child == NULL) {
2286 var45 = 1;
2287 } else {
2288 if(cltype46 >= var_new_child->type->table_size) {
2289 var45 = 0;
2290 } else {
2291 var45 = var_new_child->type->type_table[cltype46] == idtype47;
2292 }
2293 }
2294 if (unlikely(!var45)) {
2295 var_class_name48 = var_new_child == NULL ? "null" : var_new_child->type->name;
2296 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ALabel", var_class_name48);
2297 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3286);
2298 fatal_exit(1);
2299 }
2300 {
2301 nit__parser_prod___AWithExpr___nit__parser_nodes__ALabelable__n_label_61d(self, var_new_child); /* Direct call parser_prod#AWithExpr#n_label= on <self:AWithExpr>*/
2302 }
2303 goto RET_LABEL;
2304 } else {
2305 }
2306 RET_LABEL:;
2307 }
2308 /* method parser_prod#AWithExpr#n_kwwith= for (self: AWithExpr, TKwwith) */
2309 void nit__parser_prod___AWithExpr___n_kwwith_61d(val* self, val* p0) {
2310 val* var_node /* var node: TKwwith */;
2311 var_node = p0;
2312 self->attrs[COLOR_nit__parser_nodes__AWithExpr___n_kwwith].val = var_node; /* _n_kwwith on <self:AWithExpr> */
2313 {
2314 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwwith> */
2315 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwwith> */
2316 RET_LABEL1:(void)0;
2317 }
2318 }
2319 RET_LABEL:;
2320 }
2321 /* method parser_prod#AWithExpr#n_expr= for (self: AWithExpr, AExpr) */
2322 void nit__parser_prod___AWithExpr___n_expr_61d(val* self, val* p0) {
2323 val* var_node /* var node: AExpr */;
2324 var_node = p0;
2325 self->attrs[COLOR_nit__parser_nodes__AWithExpr___n_expr].val = var_node; /* _n_expr on <self:AWithExpr> */
2326 {
2327 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
2328 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
2329 RET_LABEL1:(void)0;
2330 }
2331 }
2332 RET_LABEL:;
2333 }
2334 /* method parser_prod#AWithExpr#n_kwdo= for (self: AWithExpr, TKwdo) */
2335 void nit__parser_prod___AWithExpr___n_kwdo_61d(val* self, val* p0) {
2336 val* var_node /* var node: TKwdo */;
2337 var_node = p0;
2338 self->attrs[COLOR_nit__parser_nodes__AWithExpr___n_kwdo].val = var_node; /* _n_kwdo on <self:AWithExpr> */
2339 {
2340 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwdo> */
2341 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwdo> */
2342 RET_LABEL1:(void)0;
2343 }
2344 }
2345 RET_LABEL:;
2346 }
2347 /* method parser_prod#AWithExpr#n_block= for (self: AWithExpr, nullable AExpr) */
2348 void nit__parser_prod___AWithExpr___n_block_61d(val* self, val* p0) {
2349 val* var_node /* var node: nullable AExpr */;
2350 short int var /* : Bool */;
2351 short int var1 /* : Bool */;
2352 val* var_other /* var other: nullable Object */;
2353 short int var3 /* : Bool */;
2354 short int var4 /* : Bool */;
2355 var_node = p0;
2356 self->attrs[COLOR_nit__parser_nodes__AWithExpr___n_block].val = var_node; /* _n_block on <self:AWithExpr> */
2357 if (var_node == NULL) {
2358 var = 0; /* is null */
2359 } else {
2360 var = 1; /* arg is null and recv is not */
2361 }
2362 if (0) {
2363 { /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable AExpr> */
2364 var_other = ((val*)NULL);
2365 {
2366 var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable AExpr(AExpr)>*/
2367 }
2368 var4 = !var3;
2369 var1 = var4;
2370 goto RET_LABEL2;
2371 RET_LABEL2:(void)0;
2372 }
2373 var = var1;
2374 }
2375 if (var){
2376 {
2377 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AExpr(AExpr)> */
2378 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AExpr(AExpr)> */
2379 RET_LABEL5:(void)0;
2380 }
2381 }
2382 } else {
2383 }
2384 RET_LABEL:;
2385 }
2386 /* method parser_prod#AWithExpr#n_label= for (self: AWithExpr, nullable ALabel) */
2387 void nit__parser_prod___AWithExpr___nit__parser_nodes__ALabelable__n_label_61d(val* self, val* p0) {
2388 val* var_node /* var node: nullable ALabel */;
2389 short int var /* : Bool */;
2390 short int var1 /* : Bool */;
2391 val* var_other /* var other: nullable Object */;
2392 short int var3 /* : Bool */;
2393 short int var4 /* : Bool */;
2394 var_node = p0;
2395 self->attrs[COLOR_nit__parser_nodes__ALabelable___n_label].val = var_node; /* _n_label on <self:AWithExpr> */
2396 if (var_node == NULL) {
2397 var = 0; /* is null */
2398 } else {
2399 var = 1; /* arg is null and recv is not */
2400 }
2401 if (0) {
2402 { /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable ALabel> */
2403 var_other = ((val*)NULL);
2404 {
2405 var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable ALabel(ALabel)>*/
2406 }
2407 var4 = !var3;
2408 var1 = var4;
2409 goto RET_LABEL2;
2410 RET_LABEL2:(void)0;
2411 }
2412 var = var1;
2413 }
2414 if (var){
2415 {
2416 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable ALabel(ALabel)> */
2417 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable ALabel(ALabel)> */
2418 RET_LABEL5:(void)0;
2419 }
2420 }
2421 } else {
2422 }
2423 RET_LABEL:;
2424 }
2425 /* method parser_prod#AWithExpr#visit_all for (self: AWithExpr, Visitor) */
2426 void nit__parser_prod___AWithExpr___nit__parser_nodes__ANode__visit_all(val* self, val* p0) {
2427 val* var_v /* var v: Visitor */;
2428 val* var /* : TKwwith */;
2429 val* var1 /* : AExpr */;
2430 val* var2 /* : TKwdo */;
2431 val* var3 /* : nullable AExpr */;
2432 val* var4 /* : nullable ALabel */;
2433 var_v = p0;
2434 var = self->attrs[COLOR_nit__parser_nodes__AWithExpr___n_kwwith].val; /* _n_kwwith on <self:AWithExpr> */
2435 if (unlikely(var == NULL)) {
2436 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwwith");
2437 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3320);
2438 fatal_exit(1);
2439 }
2440 {
2441 nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2442 }
2443 var1 = self->attrs[COLOR_nit__parser_nodes__AWithExpr___n_expr].val; /* _n_expr on <self:AWithExpr> */
2444 if (unlikely(var1 == NULL)) {
2445 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2446 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3321);
2447 fatal_exit(1);
2448 }
2449 {
2450 nit___nit__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2451 }
2452 var2 = self->attrs[COLOR_nit__parser_nodes__AWithExpr___n_kwdo].val; /* _n_kwdo on <self:AWithExpr> */
2453 if (unlikely(var2 == NULL)) {
2454 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwdo");
2455 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3322);
2456 fatal_exit(1);
2457 }
2458 {
2459 nit___nit__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2460 }
2461 var3 = self->attrs[COLOR_nit__parser_nodes__AWithExpr___n_block].val; /* _n_block on <self:AWithExpr> */
2462 {
2463 nit___nit__Visitor___enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2464 }
2465 var4 = self->attrs[COLOR_nit__parser_nodes__ALabelable___n_label].val; /* _n_label on <self:AWithExpr> */
2466 {
2467 nit___nit__Visitor___enter_visit(var_v, var4); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2468 }
2469 RET_LABEL:;
2470 }
2471 /* method parser_prod#AAssertExpr#init_aassertexpr for (self: AAssertExpr, nullable TKwassert, nullable TId, nullable AExpr, nullable TKwelse, nullable AExpr) */
2472 void nit__parser_prod___AAssertExpr___init_aassertexpr(val* self, val* p0, val* p1, val* p2, val* p3, val* p4) {
2473 val* var_n_kwassert /* var n_kwassert: nullable TKwassert */;
2474 val* var_n_id /* var n_id: nullable TId */;
2475 val* var_n_expr /* var n_expr: nullable AExpr */;
2476 val* var_n_kwelse /* var n_kwelse: nullable TKwelse */;
2477 val* var_n_else /* var n_else: nullable AExpr */;
2478 short int var /* : Bool */;
2479 short int var3 /* : Bool */;
2480 val* var_other /* var other: nullable Object */;
2481 short int var5 /* : Bool */;
2482 short int var6 /* : Bool */;
2483 short int var9 /* : Bool */;
2484 short int var10 /* : Bool */;
2485 short int var12 /* : Bool */;
2486 short int var13 /* : Bool */;
2487 short int var15 /* : Bool */;
2488 short int var16 /* : Bool */;
2489 short int var18 /* : Bool */;
2490 short int var19 /* : Bool */;
2491 {
2492 { /* Inline kernel#Object#init (self) on <self:AAssertExpr> */
2493 RET_LABEL1:(void)0;
2494 }
2495 }
2496 var_n_kwassert = p0;
2497 var_n_id = p1;
2498 var_n_expr = p2;
2499 var_n_kwelse = p3;
2500 var_n_else = p4;
2501 if (unlikely(var_n_kwassert == NULL)) {
2502 PRINT_ERROR("Runtime error: %s", "Cast failed");
2503 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3336);
2504 fatal_exit(1);
2505 }
2506 self->attrs[COLOR_nit__parser_nodes__AAssertExpr___n_kwassert].val = var_n_kwassert; /* _n_kwassert on <self:AAssertExpr> */
2507 if (var_n_kwassert == NULL) {
2508 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2509 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3337);
2510 fatal_exit(1);
2511 } else {
2512 { /* Inline parser_nodes#ANode#parent= (var_n_kwassert,self) on <var_n_kwassert:nullable TKwassert> */
2513 if (unlikely(var_n_kwassert == NULL)) {
2514 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2515 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
2516 fatal_exit(1);
2517 }
2518 var_n_kwassert->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwassert:nullable TKwassert> */
2519 RET_LABEL2:(void)0;
2520 }
2521 }
2522 self->attrs[COLOR_nit__parser_nodes__AAssertExpr___n_id].val = var_n_id; /* _n_id on <self:AAssertExpr> */
2523 if (var_n_id == NULL) {
2524 var = 0; /* is null */
2525 } else {
2526 var = 1; /* arg is null and recv is not */
2527 }
2528 if (0) {
2529 { /* Inline kernel#Object#!= (var_n_id,((val*)NULL)) on <var_n_id:nullable TId> */
2530 var_other = ((val*)NULL);
2531 {
2532 var5 = ((short int(*)(val* self, val* p0))(var_n_id->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_id, var_other); /* == on <var_n_id:nullable TId(TId)>*/
2533 }
2534 var6 = !var5;
2535 var3 = var6;
2536 goto RET_LABEL4;
2537 RET_LABEL4:(void)0;
2538 }
2539 var = var3;
2540 }
2541 if (var){
2542 {
2543 { /* Inline parser_nodes#ANode#parent= (var_n_id,self) on <var_n_id:nullable TId(TId)> */
2544 var_n_id->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_id:nullable TId(TId)> */
2545 RET_LABEL7:(void)0;
2546 }
2547 }
2548 } else {
2549 }
2550 if (unlikely(var_n_expr == NULL)) {
2551 PRINT_ERROR("Runtime error: %s", "Cast failed");
2552 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3340);
2553 fatal_exit(1);
2554 }
2555 self->attrs[COLOR_nit__parser_nodes__AAssertExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AAssertExpr> */
2556 if (var_n_expr == NULL) {
2557 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2558 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3341);
2559 fatal_exit(1);
2560 } else {
2561 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
2562 if (unlikely(var_n_expr == NULL)) {
2563 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2564 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
2565 fatal_exit(1);
2566 }
2567 var_n_expr->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
2568 RET_LABEL8:(void)0;
2569 }
2570 }
2571 self->attrs[COLOR_nit__parser_nodes__AAssertExpr___n_kwelse].val = var_n_kwelse; /* _n_kwelse on <self:AAssertExpr> */
2572 if (var_n_kwelse == NULL) {
2573 var9 = 0; /* is null */
2574 } else {
2575 var9 = 1; /* arg is null and recv is not */
2576 }
2577 if (0) {
2578 { /* Inline kernel#Object#!= (var_n_kwelse,((val*)NULL)) on <var_n_kwelse:nullable TKwelse> */
2579 var_other = ((val*)NULL);
2580 {
2581 var12 = ((short int(*)(val* self, val* p0))(var_n_kwelse->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_kwelse, var_other); /* == on <var_n_kwelse:nullable TKwelse(TKwelse)>*/
2582 }
2583 var13 = !var12;
2584 var10 = var13;
2585 goto RET_LABEL11;
2586 RET_LABEL11:(void)0;
2587 }
2588 var9 = var10;
2589 }
2590 if (var9){
2591 {
2592 { /* Inline parser_nodes#ANode#parent= (var_n_kwelse,self) on <var_n_kwelse:nullable TKwelse(TKwelse)> */
2593 var_n_kwelse->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwelse:nullable TKwelse(TKwelse)> */
2594 RET_LABEL14:(void)0;
2595 }
2596 }
2597 } else {
2598 }
2599 self->attrs[COLOR_nit__parser_nodes__AAssertExpr___n_else].val = var_n_else; /* _n_else on <self:AAssertExpr> */
2600 if (var_n_else == NULL) {
2601 var15 = 0; /* is null */
2602 } else {
2603 var15 = 1; /* arg is null and recv is not */
2604 }
2605 if (0) {
2606 { /* Inline kernel#Object#!= (var_n_else,((val*)NULL)) on <var_n_else:nullable AExpr> */
2607 var_other = ((val*)NULL);
2608 {
2609 var18 = ((short int(*)(val* self, val* p0))(var_n_else->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_else, var_other); /* == on <var_n_else:nullable AExpr(AExpr)>*/
2610 }
2611 var19 = !var18;
2612 var16 = var19;
2613 goto RET_LABEL17;
2614 RET_LABEL17:(void)0;
2615 }
2616 var15 = var16;
2617 }
2618 if (var15){
2619 {
2620 { /* Inline parser_nodes#ANode#parent= (var_n_else,self) on <var_n_else:nullable AExpr(AExpr)> */
2621 var_n_else->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_else:nullable AExpr(AExpr)> */
2622 RET_LABEL20:(void)0;
2623 }
2624 }
2625 } else {
2626 }
2627 RET_LABEL:;
2628 }
2629 /* method parser_prod#AAssertExpr#replace_child for (self: AAssertExpr, ANode, nullable ANode) */
2630 void nit__parser_prod___AAssertExpr___nit__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
2631 val* var_old_child /* var old_child: ANode */;
2632 val* var_new_child /* var new_child: nullable ANode */;
2633 val* var /* : TKwassert */;
2634 short int var1 /* : Bool */;
2635 val* var_other /* var other: nullable Object */;
2636 short int var3 /* : Bool */;
2637 short int var5 /* : Bool */;
2638 short int var6 /* : Bool */;
2639 int cltype;
2640 int idtype;
2641 const char* var_class_name;
2642 val* var7 /* : nullable TId */;
2643 short int var8 /* : Bool */;
2644 short int var9 /* : Bool */;
2645 short int var11 /* : Bool */;
2646 short int var13 /* : Bool */;
2647 short int var14 /* : Bool */;
2648 int cltype15;
2649 int idtype16;
2650 const char* var_class_name17;
2651 val* var18 /* : AExpr */;
2652 short int var19 /* : Bool */;
2653 short int var21 /* : Bool */;
2654 short int var23 /* : Bool */;
2655 short int var24 /* : Bool */;
2656 int cltype25;
2657 int idtype26;
2658 const char* var_class_name27;
2659 val* var28 /* : nullable TKwelse */;
2660 short int var29 /* : Bool */;
2661 short int var30 /* : Bool */;
2662 short int var32 /* : Bool */;
2663 short int var34 /* : Bool */;
2664 short int var35 /* : Bool */;
2665 int cltype36;
2666 int idtype37;
2667 const char* var_class_name38;
2668 val* var39 /* : nullable AExpr */;
2669 short int var40 /* : Bool */;
2670 short int var41 /* : Bool */;
2671 short int var43 /* : Bool */;
2672 short int var45 /* : Bool */;
2673 short int var46 /* : Bool */;
2674 int cltype47;
2675 int idtype48;
2676 const char* var_class_name49;
2677 var_old_child = p0;
2678 var_new_child = p1;
2679 var = self->attrs[COLOR_nit__parser_nodes__AAssertExpr___n_kwassert].val; /* _n_kwassert on <self:AAssertExpr> */
2680 if (unlikely(var == NULL)) {
2681 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwassert");
2682 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3350);
2683 fatal_exit(1);
2684 }
2685 {
2686 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwassert> */
2687 var_other = var_old_child;
2688 {
2689 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TKwassert> */
2690 var5 = var == var_other;
2691 var3 = var5;
2692 goto RET_LABEL4;
2693 RET_LABEL4:(void)0;
2694 }
2695 }
2696 var1 = var3;
2697 goto RET_LABEL2;
2698 RET_LABEL2:(void)0;
2699 }
2700 }
2701 if (var1){
2702 /* <var_new_child:nullable ANode> isa TKwassert */
2703 cltype = type_nit__TKwassert.color;
2704 idtype = type_nit__TKwassert.id;
2705 if(var_new_child == NULL) {
2706 var6 = 0;
2707 } else {
2708 if(cltype >= var_new_child->type->table_size) {
2709 var6 = 0;
2710 } else {
2711 var6 = var_new_child->type->type_table[cltype] == idtype;
2712 }
2713 }
2714 if (unlikely(!var6)) {
2715 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
2716 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwassert", var_class_name);
2717 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3351);
2718 fatal_exit(1);
2719 }
2720 {
2721 nit__parser_prod___AAssertExpr___n_kwassert_61d(self, var_new_child); /* Direct call parser_prod#AAssertExpr#n_kwassert= on <self:AAssertExpr>*/
2722 }
2723 goto RET_LABEL;
2724 } else {
2725 }
2726 var7 = self->attrs[COLOR_nit__parser_nodes__AAssertExpr___n_id].val; /* _n_id on <self:AAssertExpr> */
2727 if (var7 == NULL) {
2728 var8 = 0; /* <var_old_child:ANode> cannot be null */
2729 } else {
2730 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:nullable TId> */
2731 var_other = var_old_child;
2732 {
2733 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:nullable TId(TId)> */
2734 var13 = var7 == var_other;
2735 var11 = var13;
2736 goto RET_LABEL12;
2737 RET_LABEL12:(void)0;
2738 }
2739 }
2740 var9 = var11;
2741 goto RET_LABEL10;
2742 RET_LABEL10:(void)0;
2743 }
2744 var8 = var9;
2745 }
2746 if (var8){
2747 /* <var_new_child:nullable ANode> isa nullable TId */
2748 cltype15 = type_nullable__nit__TId.color;
2749 idtype16 = type_nullable__nit__TId.id;
2750 if(var_new_child == NULL) {
2751 var14 = 1;
2752 } else {
2753 if(cltype15 >= var_new_child->type->table_size) {
2754 var14 = 0;
2755 } else {
2756 var14 = var_new_child->type->type_table[cltype15] == idtype16;
2757 }
2758 }
2759 if (unlikely(!var14)) {
2760 var_class_name17 = var_new_child == NULL ? "null" : var_new_child->type->name;
2761 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TId", var_class_name17);
2762 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3355);
2763 fatal_exit(1);
2764 }
2765 {
2766 nit__parser_prod___AAssertExpr___n_id_61d(self, var_new_child); /* Direct call parser_prod#AAssertExpr#n_id= on <self:AAssertExpr>*/
2767 }
2768 goto RET_LABEL;
2769 } else {
2770 }
2771 var18 = self->attrs[COLOR_nit__parser_nodes__AAssertExpr___n_expr].val; /* _n_expr on <self:AAssertExpr> */
2772 if (unlikely(var18 == NULL)) {
2773 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2774 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3358);
2775 fatal_exit(1);
2776 }
2777 {
2778 { /* Inline kernel#Object#== (var18,var_old_child) on <var18:AExpr> */
2779 var_other = var_old_child;
2780 {
2781 { /* Inline kernel#Object#is_same_instance (var18,var_other) on <var18:AExpr> */
2782 var23 = var18 == var_other;
2783 var21 = var23;
2784 goto RET_LABEL22;
2785 RET_LABEL22:(void)0;
2786 }
2787 }
2788 var19 = var21;
2789 goto RET_LABEL20;
2790 RET_LABEL20:(void)0;
2791 }
2792 }
2793 if (var19){
2794 /* <var_new_child:nullable ANode> isa AExpr */
2795 cltype25 = type_nit__AExpr.color;
2796 idtype26 = type_nit__AExpr.id;
2797 if(var_new_child == NULL) {
2798 var24 = 0;
2799 } else {
2800 if(cltype25 >= var_new_child->type->table_size) {
2801 var24 = 0;
2802 } else {
2803 var24 = var_new_child->type->type_table[cltype25] == idtype26;
2804 }
2805 }
2806 if (unlikely(!var24)) {
2807 var_class_name27 = var_new_child == NULL ? "null" : var_new_child->type->name;
2808 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name27);
2809 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3359);
2810 fatal_exit(1);
2811 }
2812 {
2813 nit__parser_prod___AAssertExpr___n_expr_61d(self, var_new_child); /* Direct call parser_prod#AAssertExpr#n_expr= on <self:AAssertExpr>*/
2814 }
2815 goto RET_LABEL;
2816 } else {
2817 }
2818 var28 = self->attrs[COLOR_nit__parser_nodes__AAssertExpr___n_kwelse].val; /* _n_kwelse on <self:AAssertExpr> */
2819 if (var28 == NULL) {
2820 var29 = 0; /* <var_old_child:ANode> cannot be null */
2821 } else {
2822 { /* Inline kernel#Object#== (var28,var_old_child) on <var28:nullable TKwelse> */
2823 var_other = var_old_child;
2824 {
2825 { /* Inline kernel#Object#is_same_instance (var28,var_other) on <var28:nullable TKwelse(TKwelse)> */
2826 var34 = var28 == var_other;
2827 var32 = var34;
2828 goto RET_LABEL33;
2829 RET_LABEL33:(void)0;
2830 }
2831 }
2832 var30 = var32;
2833 goto RET_LABEL31;
2834 RET_LABEL31:(void)0;
2835 }
2836 var29 = var30;
2837 }
2838 if (var29){
2839 /* <var_new_child:nullable ANode> isa nullable TKwelse */
2840 cltype36 = type_nullable__nit__TKwelse.color;
2841 idtype37 = type_nullable__nit__TKwelse.id;
2842 if(var_new_child == NULL) {
2843 var35 = 1;
2844 } else {
2845 if(cltype36 >= var_new_child->type->table_size) {
2846 var35 = 0;
2847 } else {
2848 var35 = var_new_child->type->type_table[cltype36] == idtype37;
2849 }
2850 }
2851 if (unlikely(!var35)) {
2852 var_class_name38 = var_new_child == NULL ? "null" : var_new_child->type->name;
2853 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TKwelse", var_class_name38);
2854 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3363);
2855 fatal_exit(1);
2856 }
2857 {
2858 nit__parser_prod___AAssertExpr___n_kwelse_61d(self, var_new_child); /* Direct call parser_prod#AAssertExpr#n_kwelse= on <self:AAssertExpr>*/
2859 }
2860 goto RET_LABEL;
2861 } else {
2862 }
2863 var39 = self->attrs[COLOR_nit__parser_nodes__AAssertExpr___n_else].val; /* _n_else on <self:AAssertExpr> */
2864 if (var39 == NULL) {
2865 var40 = 0; /* <var_old_child:ANode> cannot be null */
2866 } else {
2867 { /* Inline kernel#Object#== (var39,var_old_child) on <var39:nullable AExpr> */
2868 var_other = var_old_child;
2869 {
2870 { /* Inline kernel#Object#is_same_instance (var39,var_other) on <var39:nullable AExpr(AExpr)> */
2871 var45 = var39 == var_other;
2872 var43 = var45;
2873 goto RET_LABEL44;
2874 RET_LABEL44:(void)0;
2875 }
2876 }
2877 var41 = var43;
2878 goto RET_LABEL42;
2879 RET_LABEL42:(void)0;
2880 }
2881 var40 = var41;
2882 }
2883 if (var40){
2884 /* <var_new_child:nullable ANode> isa nullable AExpr */
2885 cltype47 = type_nullable__nit__AExpr.color;
2886 idtype48 = type_nullable__nit__AExpr.id;
2887 if(var_new_child == NULL) {
2888 var46 = 1;
2889 } else {
2890 if(cltype47 >= var_new_child->type->table_size) {
2891 var46 = 0;
2892 } else {
2893 var46 = var_new_child->type->type_table[cltype47] == idtype48;
2894 }
2895 }
2896 if (unlikely(!var46)) {
2897 var_class_name49 = var_new_child == NULL ? "null" : var_new_child->type->name;
2898 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AExpr", var_class_name49);
2899 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3367);
2900 fatal_exit(1);
2901 }
2902 {
2903 nit__parser_prod___AAssertExpr___n_else_61d(self, var_new_child); /* Direct call parser_prod#AAssertExpr#n_else= on <self:AAssertExpr>*/
2904 }
2905 goto RET_LABEL;
2906 } else {
2907 }
2908 RET_LABEL:;
2909 }
2910 /* method parser_prod#AAssertExpr#n_kwassert= for (self: AAssertExpr, TKwassert) */
2911 void nit__parser_prod___AAssertExpr___n_kwassert_61d(val* self, val* p0) {
2912 val* var_node /* var node: TKwassert */;
2913 var_node = p0;
2914 self->attrs[COLOR_nit__parser_nodes__AAssertExpr___n_kwassert].val = var_node; /* _n_kwassert on <self:AAssertExpr> */
2915 {
2916 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwassert> */
2917 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwassert> */
2918 RET_LABEL1:(void)0;
2919 }
2920 }
2921 RET_LABEL:;
2922 }
2923 /* method parser_prod#AAssertExpr#n_id= for (self: AAssertExpr, nullable TId) */
2924 void nit__parser_prod___AAssertExpr___n_id_61d(val* self, val* p0) {
2925 val* var_node /* var node: nullable TId */;
2926 short int var /* : Bool */;
2927 short int var1 /* : Bool */;
2928 val* var_other /* var other: nullable Object */;
2929 short int var3 /* : Bool */;
2930 short int var4 /* : Bool */;
2931 var_node = p0;
2932 self->attrs[COLOR_nit__parser_nodes__AAssertExpr___n_id].val = var_node; /* _n_id on <self:AAssertExpr> */
2933 if (var_node == NULL) {
2934 var = 0; /* is null */
2935 } else {
2936 var = 1; /* arg is null and recv is not */
2937 }
2938 if (0) {
2939 { /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable TId> */
2940 var_other = ((val*)NULL);
2941 {
2942 var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable TId(TId)>*/
2943 }
2944 var4 = !var3;
2945 var1 = var4;
2946 goto RET_LABEL2;
2947 RET_LABEL2:(void)0;
2948 }
2949 var = var1;
2950 }
2951 if (var){
2952 {
2953 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TId(TId)> */
2954 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TId(TId)> */
2955 RET_LABEL5:(void)0;
2956 }
2957 }
2958 } else {
2959 }
2960 RET_LABEL:;
2961 }
2962 /* method parser_prod#AAssertExpr#n_expr= for (self: AAssertExpr, AExpr) */
2963 void nit__parser_prod___AAssertExpr___n_expr_61d(val* self, val* p0) {
2964 val* var_node /* var node: AExpr */;
2965 var_node = p0;
2966 self->attrs[COLOR_nit__parser_nodes__AAssertExpr___n_expr].val = var_node; /* _n_expr on <self:AAssertExpr> */
2967 {
2968 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
2969 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
2970 RET_LABEL1:(void)0;
2971 }
2972 }
2973 RET_LABEL:;
2974 }
2975 /* method parser_prod#AAssertExpr#n_kwelse= for (self: AAssertExpr, nullable TKwelse) */
2976 void nit__parser_prod___AAssertExpr___n_kwelse_61d(val* self, val* p0) {
2977 val* var_node /* var node: nullable TKwelse */;
2978 short int var /* : Bool */;
2979 short int var1 /* : Bool */;
2980 val* var_other /* var other: nullable Object */;
2981 short int var3 /* : Bool */;
2982 short int var4 /* : Bool */;
2983 var_node = p0;
2984 self->attrs[COLOR_nit__parser_nodes__AAssertExpr___n_kwelse].val = var_node; /* _n_kwelse on <self:AAssertExpr> */
2985 if (var_node == NULL) {
2986 var = 0; /* is null */
2987 } else {
2988 var = 1; /* arg is null and recv is not */
2989 }
2990 if (0) {
2991 { /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable TKwelse> */
2992 var_other = ((val*)NULL);
2993 {
2994 var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable TKwelse(TKwelse)>*/
2995 }
2996 var4 = !var3;
2997 var1 = var4;
2998 goto RET_LABEL2;
2999 RET_LABEL2:(void)0;
3000 }
3001 var = var1;
3002 }
3003 if (var){
3004 {
3005 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TKwelse(TKwelse)> */
3006 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TKwelse(TKwelse)> */
3007 RET_LABEL5:(void)0;
3008 }
3009 }
3010 } else {
3011 }
3012 RET_LABEL:;
3013 }
3014 /* method parser_prod#AAssertExpr#n_else= for (self: AAssertExpr, nullable AExpr) */
3015 void nit__parser_prod___AAssertExpr___n_else_61d(val* self, val* p0) {
3016 val* var_node /* var node: nullable AExpr */;
3017 short int var /* : Bool */;
3018 short int var1 /* : Bool */;
3019 val* var_other /* var other: nullable Object */;
3020 short int var3 /* : Bool */;
3021 short int var4 /* : Bool */;
3022 var_node = p0;
3023 self->attrs[COLOR_nit__parser_nodes__AAssertExpr___n_else].val = var_node; /* _n_else on <self:AAssertExpr> */
3024 if (var_node == NULL) {
3025 var = 0; /* is null */
3026 } else {
3027 var = 1; /* arg is null and recv is not */
3028 }
3029 if (0) {
3030 { /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable AExpr> */
3031 var_other = ((val*)NULL);
3032 {
3033 var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable AExpr(AExpr)>*/
3034 }
3035 var4 = !var3;
3036 var1 = var4;
3037 goto RET_LABEL2;
3038 RET_LABEL2:(void)0;
3039 }
3040 var = var1;
3041 }
3042 if (var){
3043 {
3044 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AExpr(AExpr)> */
3045 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AExpr(AExpr)> */
3046 RET_LABEL5:(void)0;
3047 }
3048 }
3049 } else {
3050 }
3051 RET_LABEL:;
3052 }
3053 /* method parser_prod#AAssertExpr#visit_all for (self: AAssertExpr, Visitor) */
3054 void nit__parser_prod___AAssertExpr___nit__parser_nodes__ANode__visit_all(val* self, val* p0) {
3055 val* var_v /* var v: Visitor */;
3056 val* var /* : TKwassert */;
3057 val* var1 /* : nullable TId */;
3058 val* var2 /* : AExpr */;
3059 val* var3 /* : nullable TKwelse */;
3060 val* var4 /* : nullable AExpr */;
3061 var_v = p0;
3062 var = self->attrs[COLOR_nit__parser_nodes__AAssertExpr___n_kwassert].val; /* _n_kwassert on <self:AAssertExpr> */
3063 if (unlikely(var == NULL)) {
3064 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwassert");
3065 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3401);
3066 fatal_exit(1);
3067 }
3068 {
3069 nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3070 }
3071 var1 = self->attrs[COLOR_nit__parser_nodes__AAssertExpr___n_id].val; /* _n_id on <self:AAssertExpr> */
3072 {
3073 nit___nit__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3074 }
3075 var2 = self->attrs[COLOR_nit__parser_nodes__AAssertExpr___n_expr].val; /* _n_expr on <self:AAssertExpr> */
3076 if (unlikely(var2 == NULL)) {
3077 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3078 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3403);
3079 fatal_exit(1);
3080 }
3081 {
3082 nit___nit__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3083 }
3084 var3 = self->attrs[COLOR_nit__parser_nodes__AAssertExpr___n_kwelse].val; /* _n_kwelse on <self:AAssertExpr> */
3085 {
3086 nit___nit__Visitor___enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3087 }
3088 var4 = self->attrs[COLOR_nit__parser_nodes__AAssertExpr___n_else].val; /* _n_else on <self:AAssertExpr> */
3089 {
3090 nit___nit__Visitor___enter_visit(var_v, var4); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3091 }
3092 RET_LABEL:;
3093 }
3094 /* method parser_prod#AOnceExpr#init_aonceexpr for (self: AOnceExpr, nullable TKwonce, nullable AExpr) */
3095 void nit__parser_prod___AOnceExpr___init_aonceexpr(val* self, val* p0, val* p1) {
3096 val* var_n_kwonce /* var n_kwonce: nullable TKwonce */;
3097 val* var_n_expr /* var n_expr: nullable AExpr */;
3098 {
3099 { /* Inline kernel#Object#init (self) on <self:AOnceExpr> */
3100 RET_LABEL1:(void)0;
3101 }
3102 }
3103 var_n_kwonce = p0;
3104 var_n_expr = p1;
3105 if (unlikely(var_n_kwonce == NULL)) {
3106 PRINT_ERROR("Runtime error: %s", "Cast failed");
3107 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3414);
3108 fatal_exit(1);
3109 }
3110 self->attrs[COLOR_nit__parser_nodes__AOnceExpr___n_kwonce].val = var_n_kwonce; /* _n_kwonce on <self:AOnceExpr> */
3111 if (var_n_kwonce == NULL) {
3112 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3113 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3415);
3114 fatal_exit(1);
3115 } else {
3116 { /* Inline parser_nodes#ANode#parent= (var_n_kwonce,self) on <var_n_kwonce:nullable TKwonce> */
3117 if (unlikely(var_n_kwonce == NULL)) {
3118 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3119 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
3120 fatal_exit(1);
3121 }
3122 var_n_kwonce->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwonce:nullable TKwonce> */
3123 RET_LABEL2:(void)0;
3124 }
3125 }
3126 if (unlikely(var_n_expr == NULL)) {
3127 PRINT_ERROR("Runtime error: %s", "Cast failed");
3128 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3416);
3129 fatal_exit(1);
3130 }
3131 self->attrs[COLOR_nit__parser_nodes__AOnceExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AOnceExpr> */
3132 if (var_n_expr == NULL) {
3133 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3134 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3417);
3135 fatal_exit(1);
3136 } else {
3137 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
3138 if (unlikely(var_n_expr == NULL)) {
3139 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3140 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
3141 fatal_exit(1);
3142 }
3143 var_n_expr->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
3144 RET_LABEL3:(void)0;
3145 }
3146 }
3147 RET_LABEL:;
3148 }
3149 /* method parser_prod#AOnceExpr#replace_child for (self: AOnceExpr, ANode, nullable ANode) */
3150 void nit__parser_prod___AOnceExpr___nit__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
3151 val* var_old_child /* var old_child: ANode */;
3152 val* var_new_child /* var new_child: nullable ANode */;
3153 val* var /* : TKwonce */;
3154 short int var1 /* : Bool */;
3155 val* var_other /* var other: nullable Object */;
3156 short int var3 /* : Bool */;
3157 short int var5 /* : Bool */;
3158 short int var6 /* : Bool */;
3159 int cltype;
3160 int idtype;
3161 const char* var_class_name;
3162 val* var7 /* : AExpr */;
3163 short int var8 /* : Bool */;
3164 short int var10 /* : Bool */;
3165 short int var12 /* : Bool */;
3166 short int var13 /* : Bool */;
3167 int cltype14;
3168 int idtype15;
3169 const char* var_class_name16;
3170 var_old_child = p0;
3171 var_new_child = p1;
3172 var = self->attrs[COLOR_nit__parser_nodes__AOnceExpr___n_kwonce].val; /* _n_kwonce on <self:AOnceExpr> */
3173 if (unlikely(var == NULL)) {
3174 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwonce");
3175 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3422);
3176 fatal_exit(1);
3177 }
3178 {
3179 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwonce> */
3180 var_other = var_old_child;
3181 {
3182 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TKwonce> */
3183 var5 = var == var_other;
3184 var3 = var5;
3185 goto RET_LABEL4;
3186 RET_LABEL4:(void)0;
3187 }
3188 }
3189 var1 = var3;
3190 goto RET_LABEL2;
3191 RET_LABEL2:(void)0;
3192 }
3193 }
3194 if (var1){
3195 /* <var_new_child:nullable ANode> isa TKwonce */
3196 cltype = type_nit__TKwonce.color;
3197 idtype = type_nit__TKwonce.id;
3198 if(var_new_child == NULL) {
3199 var6 = 0;
3200 } else {
3201 if(cltype >= var_new_child->type->table_size) {
3202 var6 = 0;
3203 } else {
3204 var6 = var_new_child->type->type_table[cltype] == idtype;
3205 }
3206 }
3207 if (unlikely(!var6)) {
3208 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
3209 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwonce", var_class_name);
3210 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3423);
3211 fatal_exit(1);
3212 }
3213 {
3214 nit__parser_prod___AOnceExpr___n_kwonce_61d(self, var_new_child); /* Direct call parser_prod#AOnceExpr#n_kwonce= on <self:AOnceExpr>*/
3215 }
3216 goto RET_LABEL;
3217 } else {
3218 }
3219 var7 = self->attrs[COLOR_nit__parser_nodes__AOnceExpr___n_expr].val; /* _n_expr on <self:AOnceExpr> */
3220 if (unlikely(var7 == NULL)) {
3221 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3222 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3426);
3223 fatal_exit(1);
3224 }
3225 {
3226 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:AExpr> */
3227 var_other = var_old_child;
3228 {
3229 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:AExpr> */
3230 var12 = var7 == var_other;
3231 var10 = var12;
3232 goto RET_LABEL11;
3233 RET_LABEL11:(void)0;
3234 }
3235 }
3236 var8 = var10;
3237 goto RET_LABEL9;
3238 RET_LABEL9:(void)0;
3239 }
3240 }
3241 if (var8){
3242 /* <var_new_child:nullable ANode> isa AExpr */
3243 cltype14 = type_nit__AExpr.color;
3244 idtype15 = type_nit__AExpr.id;
3245 if(var_new_child == NULL) {
3246 var13 = 0;
3247 } else {
3248 if(cltype14 >= var_new_child->type->table_size) {
3249 var13 = 0;
3250 } else {
3251 var13 = var_new_child->type->type_table[cltype14] == idtype15;
3252 }
3253 }
3254 if (unlikely(!var13)) {
3255 var_class_name16 = var_new_child == NULL ? "null" : var_new_child->type->name;
3256 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name16);
3257 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3427);
3258 fatal_exit(1);
3259 }
3260 {
3261 nit__parser_prod___AOnceExpr___n_expr_61d(self, var_new_child); /* Direct call parser_prod#AOnceExpr#n_expr= on <self:AOnceExpr>*/
3262 }
3263 goto RET_LABEL;
3264 } else {
3265 }
3266 RET_LABEL:;
3267 }
3268 /* method parser_prod#AOnceExpr#n_kwonce= for (self: AOnceExpr, TKwonce) */
3269 void nit__parser_prod___AOnceExpr___n_kwonce_61d(val* self, val* p0) {
3270 val* var_node /* var node: TKwonce */;
3271 var_node = p0;
3272 self->attrs[COLOR_nit__parser_nodes__AOnceExpr___n_kwonce].val = var_node; /* _n_kwonce on <self:AOnceExpr> */
3273 {
3274 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwonce> */
3275 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwonce> */
3276 RET_LABEL1:(void)0;
3277 }
3278 }
3279 RET_LABEL:;
3280 }
3281 /* method parser_prod#AOnceExpr#n_expr= for (self: AOnceExpr, AExpr) */
3282 void nit__parser_prod___AOnceExpr___n_expr_61d(val* self, val* p0) {
3283 val* var_node /* var node: AExpr */;
3284 var_node = p0;
3285 self->attrs[COLOR_nit__parser_nodes__AOnceExpr___n_expr].val = var_node; /* _n_expr on <self:AOnceExpr> */
3286 {
3287 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
3288 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
3289 RET_LABEL1:(void)0;
3290 }
3291 }
3292 RET_LABEL:;
3293 }
3294 /* method parser_prod#AOnceExpr#visit_all for (self: AOnceExpr, Visitor) */
3295 void nit__parser_prod___AOnceExpr___nit__parser_nodes__ANode__visit_all(val* self, val* p0) {
3296 val* var_v /* var v: Visitor */;
3297 val* var /* : TKwonce */;
3298 val* var1 /* : AExpr */;
3299 var_v = p0;
3300 var = self->attrs[COLOR_nit__parser_nodes__AOnceExpr___n_kwonce].val; /* _n_kwonce on <self:AOnceExpr> */
3301 if (unlikely(var == NULL)) {
3302 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwonce");
3303 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3446);
3304 fatal_exit(1);
3305 }
3306 {
3307 nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3308 }
3309 var1 = self->attrs[COLOR_nit__parser_nodes__AOnceExpr___n_expr].val; /* _n_expr on <self:AOnceExpr> */
3310 if (unlikely(var1 == NULL)) {
3311 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3312 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3447);
3313 fatal_exit(1);
3314 }
3315 {
3316 nit___nit__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3317 }
3318 RET_LABEL:;
3319 }
3320 /* method parser_prod#AOrExpr#init_aorexpr for (self: AOrExpr, nullable AExpr, nullable TKwor, nullable AExpr) */
3321 void nit__parser_prod___AOrExpr___init_aorexpr(val* self, val* p0, val* p1, val* p2) {
3322 val* var_n_expr /* var n_expr: nullable AExpr */;
3323 val* var_n_op /* var n_op: nullable TKwor */;
3324 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
3325 {
3326 { /* Inline kernel#Object#init (self) on <self:AOrExpr> */
3327 RET_LABEL1:(void)0;
3328 }
3329 }
3330 var_n_expr = p0;
3331 var_n_op = p1;
3332 var_n_expr2 = p2;
3333 if (unlikely(var_n_expr == NULL)) {
3334 PRINT_ERROR("Runtime error: %s", "Cast failed");
3335 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3528);
3336 fatal_exit(1);
3337 }
3338 self->attrs[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AOrExpr> */
3339 if (var_n_expr == NULL) {
3340 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3341 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3529);
3342 fatal_exit(1);
3343 } else {
3344 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
3345 if (unlikely(var_n_expr == NULL)) {
3346 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3347 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
3348 fatal_exit(1);
3349 }
3350 var_n_expr->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
3351 RET_LABEL2:(void)0;
3352 }
3353 }
3354 if (unlikely(var_n_op == NULL)) {
3355 PRINT_ERROR("Runtime error: %s", "Cast failed");
3356 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3530);
3357 fatal_exit(1);
3358 }
3359 self->attrs[COLOR_nit__parser_nodes__ABinBoolExpr___n_op].val = var_n_op; /* _n_op on <self:AOrExpr> */
3360 if (var_n_op == NULL) {
3361 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3362 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3531);
3363 fatal_exit(1);
3364 } else {
3365 { /* Inline parser_nodes#ANode#parent= (var_n_op,self) on <var_n_op:nullable TKwor> */
3366 if (unlikely(var_n_op == NULL)) {
3367 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3368 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
3369 fatal_exit(1);
3370 }
3371 var_n_op->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_op:nullable TKwor> */
3372 RET_LABEL3:(void)0;
3373 }
3374 }
3375 if (unlikely(var_n_expr2 == NULL)) {
3376 PRINT_ERROR("Runtime error: %s", "Cast failed");
3377 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3532);
3378 fatal_exit(1);
3379 }
3380 self->attrs[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:AOrExpr> */
3381 if (var_n_expr2 == NULL) {
3382 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3383 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3533);
3384 fatal_exit(1);
3385 } else {
3386 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
3387 if (unlikely(var_n_expr2 == NULL)) {
3388 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3389 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
3390 fatal_exit(1);
3391 }
3392 var_n_expr2->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
3393 RET_LABEL4:(void)0;
3394 }
3395 }
3396 RET_LABEL:;
3397 }
3398 /* method parser_prod#AOrExpr#replace_child for (self: AOrExpr, ANode, nullable ANode) */
3399 void nit__parser_prod___AOrExpr___nit__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
3400 val* var_old_child /* var old_child: ANode */;
3401 val* var_new_child /* var new_child: nullable ANode */;
3402 val* var /* : AExpr */;
3403 short int var1 /* : Bool */;
3404 val* var_other /* var other: nullable Object */;
3405 short int var3 /* : Bool */;
3406 short int var5 /* : Bool */;
3407 short int var6 /* : Bool */;
3408 int cltype;
3409 int idtype;
3410 const char* var_class_name;
3411 val* var7 /* : Token */;
3412 short int var8 /* : Bool */;
3413 short int var10 /* : Bool */;
3414 short int var12 /* : Bool */;
3415 short int var13 /* : Bool */;
3416 int cltype14;
3417 int idtype15;
3418 const char* var_class_name16;
3419 val* var17 /* : AExpr */;
3420 short int var18 /* : Bool */;
3421 short int var20 /* : Bool */;
3422 short int var22 /* : Bool */;
3423 short int var23 /* : Bool */;
3424 int cltype24;
3425 int idtype25;
3426 const char* var_class_name26;
3427 var_old_child = p0;
3428 var_new_child = p1;
3429 var = self->attrs[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr].val; /* _n_expr on <self:AOrExpr> */
3430 if (unlikely(var == NULL)) {
3431 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3432 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3538);
3433 fatal_exit(1);
3434 }
3435 {
3436 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
3437 var_other = var_old_child;
3438 {
3439 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
3440 var5 = var == var_other;
3441 var3 = var5;
3442 goto RET_LABEL4;
3443 RET_LABEL4:(void)0;
3444 }
3445 }
3446 var1 = var3;
3447 goto RET_LABEL2;
3448 RET_LABEL2:(void)0;
3449 }
3450 }
3451 if (var1){
3452 /* <var_new_child:nullable ANode> isa AExpr */
3453 cltype = type_nit__AExpr.color;
3454 idtype = type_nit__AExpr.id;
3455 if(var_new_child == NULL) {
3456 var6 = 0;
3457 } else {
3458 if(cltype >= var_new_child->type->table_size) {
3459 var6 = 0;
3460 } else {
3461 var6 = var_new_child->type->type_table[cltype] == idtype;
3462 }
3463 }
3464 if (unlikely(!var6)) {
3465 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
3466 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
3467 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3539);
3468 fatal_exit(1);
3469 }
3470 {
3471 nit__parser_prod___AOrExpr___nit__parser_nodes__ABinBoolExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AOrExpr#n_expr= on <self:AOrExpr>*/
3472 }
3473 goto RET_LABEL;
3474 } else {
3475 }
3476 var7 = self->attrs[COLOR_nit__parser_nodes__ABinBoolExpr___n_op].val; /* _n_op on <self:AOrExpr> */
3477 if (unlikely(var7 == NULL)) {
3478 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
3479 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3542);
3480 fatal_exit(1);
3481 }
3482 {
3483 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:Token> */
3484 var_other = var_old_child;
3485 {
3486 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:Token> */
3487 var12 = var7 == var_other;
3488 var10 = var12;
3489 goto RET_LABEL11;
3490 RET_LABEL11:(void)0;
3491 }
3492 }
3493 var8 = var10;
3494 goto RET_LABEL9;
3495 RET_LABEL9:(void)0;
3496 }
3497 }
3498 if (var8){
3499 /* <var_new_child:nullable ANode> isa TKwor */
3500 cltype14 = type_nit__TKwor.color;
3501 idtype15 = type_nit__TKwor.id;
3502 if(var_new_child == NULL) {
3503 var13 = 0;
3504 } else {
3505 if(cltype14 >= var_new_child->type->table_size) {
3506 var13 = 0;
3507 } else {
3508 var13 = var_new_child->type->type_table[cltype14] == idtype15;
3509 }
3510 }
3511 if (unlikely(!var13)) {
3512 var_class_name16 = var_new_child == NULL ? "null" : var_new_child->type->name;
3513 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwor", var_class_name16);
3514 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3543);
3515 fatal_exit(1);
3516 }
3517 {
3518 nit__parser_prod___AOrExpr___nit__parser_nodes__ABinBoolExpr__n_op_61d(self, var_new_child); /* Direct call parser_prod#AOrExpr#n_op= on <self:AOrExpr>*/
3519 }
3520 goto RET_LABEL;
3521 } else {
3522 }
3523 var17 = self->attrs[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr2].val; /* _n_expr2 on <self:AOrExpr> */
3524 if (unlikely(var17 == NULL)) {
3525 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
3526 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3546);
3527 fatal_exit(1);
3528 }
3529 {
3530 { /* Inline kernel#Object#== (var17,var_old_child) on <var17:AExpr> */
3531 var_other = var_old_child;
3532 {
3533 { /* Inline kernel#Object#is_same_instance (var17,var_other) on <var17:AExpr> */
3534 var22 = var17 == var_other;
3535 var20 = var22;
3536 goto RET_LABEL21;
3537 RET_LABEL21:(void)0;
3538 }
3539 }
3540 var18 = var20;
3541 goto RET_LABEL19;
3542 RET_LABEL19:(void)0;
3543 }
3544 }
3545 if (var18){
3546 /* <var_new_child:nullable ANode> isa AExpr */
3547 cltype24 = type_nit__AExpr.color;
3548 idtype25 = type_nit__AExpr.id;
3549 if(var_new_child == NULL) {
3550 var23 = 0;
3551 } else {
3552 if(cltype24 >= var_new_child->type->table_size) {
3553 var23 = 0;
3554 } else {
3555 var23 = var_new_child->type->type_table[cltype24] == idtype25;
3556 }
3557 }
3558 if (unlikely(!var23)) {
3559 var_class_name26 = var_new_child == NULL ? "null" : var_new_child->type->name;
3560 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name26);
3561 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3547);
3562 fatal_exit(1);
3563 }
3564 {
3565 nit__parser_prod___AOrExpr___nit__parser_nodes__ABinBoolExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#AOrExpr#n_expr2= on <self:AOrExpr>*/
3566 }
3567 goto RET_LABEL;
3568 } else {
3569 }
3570 RET_LABEL:;
3571 }
3572 /* method parser_prod#AOrExpr#n_expr= for (self: AOrExpr, AExpr) */
3573 void nit__parser_prod___AOrExpr___nit__parser_nodes__ABinBoolExpr__n_expr_61d(val* self, val* p0) {
3574 val* var_node /* var node: AExpr */;
3575 var_node = p0;
3576 self->attrs[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr].val = var_node; /* _n_expr on <self:AOrExpr> */
3577 {
3578 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
3579 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
3580 RET_LABEL1:(void)0;
3581 }
3582 }
3583 RET_LABEL:;
3584 }
3585 /* method parser_prod#AOrExpr#n_op= for (self: AOrExpr, Token) */
3586 void nit__parser_prod___AOrExpr___nit__parser_nodes__ABinBoolExpr__n_op_61d(val* self, val* p0) {
3587 val* var_node /* var node: Token */;
3588 var_node = p0;
3589 self->attrs[COLOR_nit__parser_nodes__ABinBoolExpr___n_op].val = var_node; /* _n_op on <self:AOrExpr> */
3590 {
3591 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:Token> */
3592 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:Token> */
3593 RET_LABEL1:(void)0;
3594 }
3595 }
3596 RET_LABEL:;
3597 }
3598 /* method parser_prod#AOrExpr#n_expr2= for (self: AOrExpr, AExpr) */
3599 void nit__parser_prod___AOrExpr___nit__parser_nodes__ABinBoolExpr__n_expr2_61d(val* self, val* p0) {
3600 val* var_node /* var node: AExpr */;
3601 var_node = p0;
3602 self->attrs[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr2].val = var_node; /* _n_expr2 on <self:AOrExpr> */
3603 {
3604 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
3605 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
3606 RET_LABEL1:(void)0;
3607 }
3608 }
3609 RET_LABEL:;
3610 }
3611 /* method parser_prod#AOrExpr#visit_all for (self: AOrExpr, Visitor) */
3612 void nit__parser_prod___AOrExpr___nit__parser_nodes__ANode__visit_all(val* self, val* p0) {
3613 val* var_v /* var v: Visitor */;
3614 val* var /* : AExpr */;
3615 val* var1 /* : Token */;
3616 val* var2 /* : AExpr */;
3617 var_v = p0;
3618 var = self->attrs[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr].val; /* _n_expr on <self:AOrExpr> */
3619 if (unlikely(var == NULL)) {
3620 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3621 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3571);
3622 fatal_exit(1);
3623 }
3624 {
3625 nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3626 }
3627 var1 = self->attrs[COLOR_nit__parser_nodes__ABinBoolExpr___n_op].val; /* _n_op on <self:AOrExpr> */
3628 if (unlikely(var1 == NULL)) {
3629 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
3630 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3572);
3631 fatal_exit(1);
3632 }
3633 {
3634 nit___nit__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3635 }
3636 var2 = self->attrs[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr2].val; /* _n_expr2 on <self:AOrExpr> */
3637 if (unlikely(var2 == NULL)) {
3638 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
3639 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3573);
3640 fatal_exit(1);
3641 }
3642 {
3643 nit___nit__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3644 }
3645 RET_LABEL:;
3646 }
3647 /* method parser_prod#AAndExpr#init_aandexpr for (self: AAndExpr, nullable AExpr, nullable TKwand, nullable AExpr) */
3648 void nit__parser_prod___AAndExpr___init_aandexpr(val* self, val* p0, val* p1, val* p2) {
3649 val* var_n_expr /* var n_expr: nullable AExpr */;
3650 val* var_n_op /* var n_op: nullable TKwand */;
3651 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
3652 {
3653 { /* Inline kernel#Object#init (self) on <self:AAndExpr> */
3654 RET_LABEL1:(void)0;
3655 }
3656 }
3657 var_n_expr = p0;
3658 var_n_op = p1;
3659 var_n_expr2 = p2;
3660 if (unlikely(var_n_expr == NULL)) {
3661 PRINT_ERROR("Runtime error: %s", "Cast failed");
3662 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3583);
3663 fatal_exit(1);
3664 }
3665 self->attrs[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AAndExpr> */
3666 if (var_n_expr == NULL) {
3667 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3668 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3584);
3669 fatal_exit(1);
3670 } else {
3671 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
3672 if (unlikely(var_n_expr == NULL)) {
3673 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3674 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
3675 fatal_exit(1);
3676 }
3677 var_n_expr->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
3678 RET_LABEL2:(void)0;
3679 }
3680 }
3681 if (unlikely(var_n_op == NULL)) {
3682 PRINT_ERROR("Runtime error: %s", "Cast failed");
3683 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3585);
3684 fatal_exit(1);
3685 }
3686 self->attrs[COLOR_nit__parser_nodes__ABinBoolExpr___n_op].val = var_n_op; /* _n_op on <self:AAndExpr> */
3687 if (var_n_op == NULL) {
3688 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3689 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3586);
3690 fatal_exit(1);
3691 } else {
3692 { /* Inline parser_nodes#ANode#parent= (var_n_op,self) on <var_n_op:nullable TKwand> */
3693 if (unlikely(var_n_op == NULL)) {
3694 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3695 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
3696 fatal_exit(1);
3697 }
3698 var_n_op->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_op:nullable TKwand> */
3699 RET_LABEL3:(void)0;
3700 }
3701 }
3702 if (unlikely(var_n_expr2 == NULL)) {
3703 PRINT_ERROR("Runtime error: %s", "Cast failed");
3704 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3587);
3705 fatal_exit(1);
3706 }
3707 self->attrs[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:AAndExpr> */
3708 if (var_n_expr2 == NULL) {
3709 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3710 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3588);
3711 fatal_exit(1);
3712 } else {
3713 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
3714 if (unlikely(var_n_expr2 == NULL)) {
3715 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3716 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
3717 fatal_exit(1);
3718 }
3719 var_n_expr2->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
3720 RET_LABEL4:(void)0;
3721 }
3722 }
3723 RET_LABEL:;
3724 }
3725 /* method parser_prod#AAndExpr#replace_child for (self: AAndExpr, ANode, nullable ANode) */
3726 void nit__parser_prod___AAndExpr___nit__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
3727 val* var_old_child /* var old_child: ANode */;
3728 val* var_new_child /* var new_child: nullable ANode */;
3729 val* var /* : AExpr */;
3730 short int var1 /* : Bool */;
3731 val* var_other /* var other: nullable Object */;
3732 short int var3 /* : Bool */;
3733 short int var5 /* : Bool */;
3734 short int var6 /* : Bool */;
3735 int cltype;
3736 int idtype;
3737 const char* var_class_name;
3738 val* var7 /* : Token */;
3739 short int var8 /* : Bool */;
3740 short int var10 /* : Bool */;
3741 short int var12 /* : Bool */;
3742 short int var13 /* : Bool */;
3743 int cltype14;
3744 int idtype15;
3745 const char* var_class_name16;
3746 val* var17 /* : AExpr */;
3747 short int var18 /* : Bool */;
3748 short int var20 /* : Bool */;
3749 short int var22 /* : Bool */;
3750 short int var23 /* : Bool */;
3751 int cltype24;
3752 int idtype25;
3753 const char* var_class_name26;
3754 var_old_child = p0;
3755 var_new_child = p1;
3756 var = self->attrs[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr].val; /* _n_expr on <self:AAndExpr> */
3757 if (unlikely(var == NULL)) {
3758 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3759 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3593);
3760 fatal_exit(1);
3761 }
3762 {
3763 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
3764 var_other = var_old_child;
3765 {
3766 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
3767 var5 = var == var_other;
3768 var3 = var5;
3769 goto RET_LABEL4;
3770 RET_LABEL4:(void)0;
3771 }
3772 }
3773 var1 = var3;
3774 goto RET_LABEL2;
3775 RET_LABEL2:(void)0;
3776 }
3777 }
3778 if (var1){
3779 /* <var_new_child:nullable ANode> isa AExpr */
3780 cltype = type_nit__AExpr.color;
3781 idtype = type_nit__AExpr.id;
3782 if(var_new_child == NULL) {
3783 var6 = 0;
3784 } else {
3785 if(cltype >= var_new_child->type->table_size) {
3786 var6 = 0;
3787 } else {
3788 var6 = var_new_child->type->type_table[cltype] == idtype;
3789 }
3790 }
3791 if (unlikely(!var6)) {
3792 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
3793 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
3794 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3594);
3795 fatal_exit(1);
3796 }
3797 {
3798 nit__parser_prod___AAndExpr___nit__parser_nodes__ABinBoolExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AAndExpr#n_expr= on <self:AAndExpr>*/
3799 }
3800 goto RET_LABEL;
3801 } else {
3802 }
3803 var7 = self->attrs[COLOR_nit__parser_nodes__ABinBoolExpr___n_op].val; /* _n_op on <self:AAndExpr> */
3804 if (unlikely(var7 == NULL)) {
3805 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
3806 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3597);
3807 fatal_exit(1);
3808 }
3809 {
3810 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:Token> */
3811 var_other = var_old_child;
3812 {
3813 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:Token> */
3814 var12 = var7 == var_other;
3815 var10 = var12;
3816 goto RET_LABEL11;
3817 RET_LABEL11:(void)0;
3818 }
3819 }
3820 var8 = var10;
3821 goto RET_LABEL9;
3822 RET_LABEL9:(void)0;
3823 }
3824 }
3825 if (var8){
3826 /* <var_new_child:nullable ANode> isa TKwand */
3827 cltype14 = type_nit__TKwand.color;
3828 idtype15 = type_nit__TKwand.id;
3829 if(var_new_child == NULL) {
3830 var13 = 0;
3831 } else {
3832 if(cltype14 >= var_new_child->type->table_size) {
3833 var13 = 0;
3834 } else {
3835 var13 = var_new_child->type->type_table[cltype14] == idtype15;
3836 }
3837 }
3838 if (unlikely(!var13)) {
3839 var_class_name16 = var_new_child == NULL ? "null" : var_new_child->type->name;
3840 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwand", var_class_name16);
3841 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3598);
3842 fatal_exit(1);
3843 }
3844 {
3845 nit__parser_prod___AAndExpr___nit__parser_nodes__ABinBoolExpr__n_op_61d(self, var_new_child); /* Direct call parser_prod#AAndExpr#n_op= on <self:AAndExpr>*/
3846 }
3847 goto RET_LABEL;
3848 } else {
3849 }
3850 var17 = self->attrs[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr2].val; /* _n_expr2 on <self:AAndExpr> */
3851 if (unlikely(var17 == NULL)) {
3852 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
3853 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3601);
3854 fatal_exit(1);
3855 }
3856 {
3857 { /* Inline kernel#Object#== (var17,var_old_child) on <var17:AExpr> */
3858 var_other = var_old_child;
3859 {
3860 { /* Inline kernel#Object#is_same_instance (var17,var_other) on <var17:AExpr> */
3861 var22 = var17 == var_other;
3862 var20 = var22;
3863 goto RET_LABEL21;
3864 RET_LABEL21:(void)0;
3865 }
3866 }
3867 var18 = var20;
3868 goto RET_LABEL19;
3869 RET_LABEL19:(void)0;
3870 }
3871 }
3872 if (var18){
3873 /* <var_new_child:nullable ANode> isa AExpr */
3874 cltype24 = type_nit__AExpr.color;
3875 idtype25 = type_nit__AExpr.id;
3876 if(var_new_child == NULL) {
3877 var23 = 0;
3878 } else {
3879 if(cltype24 >= var_new_child->type->table_size) {
3880 var23 = 0;
3881 } else {
3882 var23 = var_new_child->type->type_table[cltype24] == idtype25;
3883 }
3884 }
3885 if (unlikely(!var23)) {
3886 var_class_name26 = var_new_child == NULL ? "null" : var_new_child->type->name;
3887 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name26);
3888 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3602);
3889 fatal_exit(1);
3890 }
3891 {
3892 nit__parser_prod___AAndExpr___nit__parser_nodes__ABinBoolExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#AAndExpr#n_expr2= on <self:AAndExpr>*/
3893 }
3894 goto RET_LABEL;
3895 } else {
3896 }
3897 RET_LABEL:;
3898 }
3899 /* method parser_prod#AAndExpr#n_expr= for (self: AAndExpr, AExpr) */
3900 void nit__parser_prod___AAndExpr___nit__parser_nodes__ABinBoolExpr__n_expr_61d(val* self, val* p0) {
3901 val* var_node /* var node: AExpr */;
3902 var_node = p0;
3903 self->attrs[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr].val = var_node; /* _n_expr on <self:AAndExpr> */
3904 {
3905 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
3906 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
3907 RET_LABEL1:(void)0;
3908 }
3909 }
3910 RET_LABEL:;
3911 }
3912 /* method parser_prod#AAndExpr#n_op= for (self: AAndExpr, Token) */
3913 void nit__parser_prod___AAndExpr___nit__parser_nodes__ABinBoolExpr__n_op_61d(val* self, val* p0) {
3914 val* var_node /* var node: Token */;
3915 var_node = p0;
3916 self->attrs[COLOR_nit__parser_nodes__ABinBoolExpr___n_op].val = var_node; /* _n_op on <self:AAndExpr> */
3917 {
3918 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:Token> */
3919 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:Token> */
3920 RET_LABEL1:(void)0;
3921 }
3922 }
3923 RET_LABEL:;
3924 }
3925 /* method parser_prod#AAndExpr#n_expr2= for (self: AAndExpr, AExpr) */
3926 void nit__parser_prod___AAndExpr___nit__parser_nodes__ABinBoolExpr__n_expr2_61d(val* self, val* p0) {
3927 val* var_node /* var node: AExpr */;
3928 var_node = p0;
3929 self->attrs[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr2].val = var_node; /* _n_expr2 on <self:AAndExpr> */
3930 {
3931 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
3932 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
3933 RET_LABEL1:(void)0;
3934 }
3935 }
3936 RET_LABEL:;
3937 }
3938 /* method parser_prod#AAndExpr#visit_all for (self: AAndExpr, Visitor) */
3939 void nit__parser_prod___AAndExpr___nit__parser_nodes__ANode__visit_all(val* self, val* p0) {
3940 val* var_v /* var v: Visitor */;
3941 val* var /* : AExpr */;
3942 val* var1 /* : Token */;
3943 val* var2 /* : AExpr */;
3944 var_v = p0;
3945 var = self->attrs[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr].val; /* _n_expr on <self:AAndExpr> */
3946 if (unlikely(var == NULL)) {
3947 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3948 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3626);
3949 fatal_exit(1);
3950 }
3951 {
3952 nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3953 }
3954 var1 = self->attrs[COLOR_nit__parser_nodes__ABinBoolExpr___n_op].val; /* _n_op on <self:AAndExpr> */
3955 if (unlikely(var1 == NULL)) {
3956 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
3957 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3627);
3958 fatal_exit(1);
3959 }
3960 {
3961 nit___nit__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3962 }
3963 var2 = self->attrs[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr2].val; /* _n_expr2 on <self:AAndExpr> */
3964 if (unlikely(var2 == NULL)) {
3965 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
3966 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3628);
3967 fatal_exit(1);
3968 }
3969 {
3970 nit___nit__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3971 }
3972 RET_LABEL:;
3973 }
3974 /* method parser_prod#AOrElseExpr#init_aorelseexpr for (self: AOrElseExpr, nullable AExpr, nullable TKwor, nullable TKwelse, nullable AExpr) */
3975 void nit__parser_prod___AOrElseExpr___init_aorelseexpr(val* self, val* p0, val* p1, val* p2, val* p3) {
3976 val* var_n_expr /* var n_expr: nullable AExpr */;
3977 val* var_n_op /* var n_op: nullable TKwor */;
3978 val* var_n_kwelse /* var n_kwelse: nullable TKwelse */;
3979 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
3980 {
3981 { /* Inline kernel#Object#init (self) on <self:AOrElseExpr> */
3982 RET_LABEL1:(void)0;
3983 }
3984 }
3985 var_n_expr = p0;
3986 var_n_op = p1;
3987 var_n_kwelse = p2;
3988 var_n_expr2 = p3;
3989 if (unlikely(var_n_expr == NULL)) {
3990 PRINT_ERROR("Runtime error: %s", "Cast failed");
3991 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3639);
3992 fatal_exit(1);
3993 }
3994 self->attrs[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AOrElseExpr> */
3995 if (var_n_expr == NULL) {
3996 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3997 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3640);
3998 fatal_exit(1);
3999 } else {
4000 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
4001 if (unlikely(var_n_expr == NULL)) {
4002 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4003 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
4004 fatal_exit(1);
4005 }
4006 var_n_expr->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
4007 RET_LABEL2:(void)0;
4008 }
4009 }
4010 if (unlikely(var_n_op == NULL)) {
4011 PRINT_ERROR("Runtime error: %s", "Cast failed");
4012 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3641);
4013 fatal_exit(1);
4014 }
4015 self->attrs[COLOR_nit__parser_nodes__ABinBoolExpr___n_op].val = var_n_op; /* _n_op on <self:AOrElseExpr> */
4016 if (var_n_op == NULL) {
4017 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4018 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3642);
4019 fatal_exit(1);
4020 } else {
4021 { /* Inline parser_nodes#ANode#parent= (var_n_op,self) on <var_n_op:nullable TKwor> */
4022 if (unlikely(var_n_op == NULL)) {
4023 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4024 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
4025 fatal_exit(1);
4026 }
4027 var_n_op->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_op:nullable TKwor> */
4028 RET_LABEL3:(void)0;
4029 }
4030 }
4031 if (unlikely(var_n_kwelse == NULL)) {
4032 PRINT_ERROR("Runtime error: %s", "Cast failed");
4033 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3643);
4034 fatal_exit(1);
4035 }
4036 self->attrs[COLOR_nit__parser_nodes__AOrElseExpr___n_kwelse].val = var_n_kwelse; /* _n_kwelse on <self:AOrElseExpr> */
4037 if (var_n_kwelse == NULL) {
4038 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4039 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3644);
4040 fatal_exit(1);
4041 } else {
4042 { /* Inline parser_nodes#ANode#parent= (var_n_kwelse,self) on <var_n_kwelse:nullable TKwelse> */
4043 if (unlikely(var_n_kwelse == NULL)) {
4044 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4045 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
4046 fatal_exit(1);
4047 }
4048 var_n_kwelse->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwelse:nullable TKwelse> */
4049 RET_LABEL4:(void)0;
4050 }
4051 }
4052 if (unlikely(var_n_expr2 == NULL)) {
4053 PRINT_ERROR("Runtime error: %s", "Cast failed");
4054 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3645);
4055 fatal_exit(1);
4056 }
4057 self->attrs[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:AOrElseExpr> */
4058 if (var_n_expr2 == NULL) {
4059 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4060 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3646);
4061 fatal_exit(1);
4062 } else {
4063 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
4064 if (unlikely(var_n_expr2 == NULL)) {
4065 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4066 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
4067 fatal_exit(1);
4068 }
4069 var_n_expr2->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
4070 RET_LABEL5:(void)0;
4071 }
4072 }
4073 RET_LABEL:;
4074 }
4075 /* method parser_prod#AOrElseExpr#replace_child for (self: AOrElseExpr, ANode, nullable ANode) */
4076 void nit__parser_prod___AOrElseExpr___nit__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
4077 val* var_old_child /* var old_child: ANode */;
4078 val* var_new_child /* var new_child: nullable ANode */;
4079 val* var /* : AExpr */;
4080 short int var1 /* : Bool */;
4081 val* var_other /* var other: nullable Object */;
4082 short int var3 /* : Bool */;
4083 short int var5 /* : Bool */;
4084 short int var6 /* : Bool */;
4085 int cltype;
4086 int idtype;
4087 const char* var_class_name;
4088 val* var7 /* : Token */;
4089 short int var8 /* : Bool */;
4090 short int var10 /* : Bool */;
4091 short int var12 /* : Bool */;
4092 short int var13 /* : Bool */;
4093 int cltype14;
4094 int idtype15;
4095 const char* var_class_name16;
4096 val* var17 /* : TKwelse */;
4097 short int var18 /* : Bool */;
4098 short int var20 /* : Bool */;
4099 short int var22 /* : Bool */;
4100 short int var23 /* : Bool */;
4101 int cltype24;
4102 int idtype25;
4103 const char* var_class_name26;
4104 val* var27 /* : AExpr */;
4105 short int var28 /* : Bool */;
4106 short int var30 /* : Bool */;
4107 short int var32 /* : Bool */;
4108 short int var33 /* : Bool */;
4109 int cltype34;
4110 int idtype35;
4111 const char* var_class_name36;
4112 var_old_child = p0;
4113 var_new_child = p1;
4114 var = self->attrs[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr].val; /* _n_expr on <self:AOrElseExpr> */
4115 if (unlikely(var == NULL)) {
4116 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
4117 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3651);
4118 fatal_exit(1);
4119 }
4120 {
4121 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
4122 var_other = var_old_child;
4123 {
4124 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
4125 var5 = var == var_other;
4126 var3 = var5;
4127 goto RET_LABEL4;
4128 RET_LABEL4:(void)0;
4129 }
4130 }
4131 var1 = var3;
4132 goto RET_LABEL2;
4133 RET_LABEL2:(void)0;
4134 }
4135 }
4136 if (var1){
4137 /* <var_new_child:nullable ANode> isa AExpr */
4138 cltype = type_nit__AExpr.color;
4139 idtype = type_nit__AExpr.id;
4140 if(var_new_child == NULL) {
4141 var6 = 0;
4142 } else {
4143 if(cltype >= var_new_child->type->table_size) {
4144 var6 = 0;
4145 } else {
4146 var6 = var_new_child->type->type_table[cltype] == idtype;
4147 }
4148 }
4149 if (unlikely(!var6)) {
4150 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
4151 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
4152 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3652);
4153 fatal_exit(1);
4154 }
4155 {
4156 nit__parser_prod___AOrElseExpr___nit__parser_nodes__ABinBoolExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AOrElseExpr#n_expr= on <self:AOrElseExpr>*/
4157 }
4158 goto RET_LABEL;
4159 } else {
4160 }
4161 var7 = self->attrs[COLOR_nit__parser_nodes__ABinBoolExpr___n_op].val; /* _n_op on <self:AOrElseExpr> */
4162 if (unlikely(var7 == NULL)) {
4163 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
4164 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3655);
4165 fatal_exit(1);
4166 }
4167 {
4168 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:Token> */
4169 var_other = var_old_child;
4170 {
4171 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:Token> */
4172 var12 = var7 == var_other;
4173 var10 = var12;
4174 goto RET_LABEL11;
4175 RET_LABEL11:(void)0;
4176 }
4177 }
4178 var8 = var10;
4179 goto RET_LABEL9;
4180 RET_LABEL9:(void)0;
4181 }
4182 }
4183 if (var8){
4184 /* <var_new_child:nullable ANode> isa TKwor */
4185 cltype14 = type_nit__TKwor.color;
4186 idtype15 = type_nit__TKwor.id;
4187 if(var_new_child == NULL) {
4188 var13 = 0;
4189 } else {
4190 if(cltype14 >= var_new_child->type->table_size) {
4191 var13 = 0;
4192 } else {
4193 var13 = var_new_child->type->type_table[cltype14] == idtype15;
4194 }
4195 }
4196 if (unlikely(!var13)) {
4197 var_class_name16 = var_new_child == NULL ? "null" : var_new_child->type->name;
4198 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwor", var_class_name16);
4199 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3656);
4200 fatal_exit(1);
4201 }
4202 {
4203 nit__parser_prod___AOrElseExpr___nit__parser_nodes__ABinBoolExpr__n_op_61d(self, var_new_child); /* Direct call parser_prod#AOrElseExpr#n_op= on <self:AOrElseExpr>*/
4204 }
4205 goto RET_LABEL;
4206 } else {
4207 }
4208 var17 = self->attrs[COLOR_nit__parser_nodes__AOrElseExpr___n_kwelse].val; /* _n_kwelse on <self:AOrElseExpr> */
4209 if (unlikely(var17 == NULL)) {
4210 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwelse");
4211 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3659);
4212 fatal_exit(1);
4213 }
4214 {
4215 { /* Inline kernel#Object#== (var17,var_old_child) on <var17:TKwelse> */
4216 var_other = var_old_child;
4217 {
4218 { /* Inline kernel#Object#is_same_instance (var17,var_other) on <var17:TKwelse> */
4219 var22 = var17 == var_other;
4220 var20 = var22;
4221 goto RET_LABEL21;
4222 RET_LABEL21:(void)0;
4223 }
4224 }
4225 var18 = var20;
4226 goto RET_LABEL19;
4227 RET_LABEL19:(void)0;
4228 }
4229 }
4230 if (var18){
4231 /* <var_new_child:nullable ANode> isa TKwelse */
4232 cltype24 = type_nit__TKwelse.color;
4233 idtype25 = type_nit__TKwelse.id;
4234 if(var_new_child == NULL) {
4235 var23 = 0;
4236 } else {
4237 if(cltype24 >= var_new_child->type->table_size) {
4238 var23 = 0;
4239 } else {
4240 var23 = var_new_child->type->type_table[cltype24] == idtype25;
4241 }
4242 }
4243 if (unlikely(!var23)) {
4244 var_class_name26 = var_new_child == NULL ? "null" : var_new_child->type->name;
4245 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwelse", var_class_name26);
4246 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3660);
4247 fatal_exit(1);
4248 }
4249 {
4250 nit__parser_prod___AOrElseExpr___n_kwelse_61d(self, var_new_child); /* Direct call parser_prod#AOrElseExpr#n_kwelse= on <self:AOrElseExpr>*/
4251 }
4252 goto RET_LABEL;
4253 } else {
4254 }
4255 var27 = self->attrs[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr2].val; /* _n_expr2 on <self:AOrElseExpr> */
4256 if (unlikely(var27 == NULL)) {
4257 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
4258 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3663);
4259 fatal_exit(1);
4260 }
4261 {
4262 { /* Inline kernel#Object#== (var27,var_old_child) on <var27:AExpr> */
4263 var_other = var_old_child;
4264 {
4265 { /* Inline kernel#Object#is_same_instance (var27,var_other) on <var27:AExpr> */
4266 var32 = var27 == var_other;
4267 var30 = var32;
4268 goto RET_LABEL31;
4269 RET_LABEL31:(void)0;
4270 }
4271 }
4272 var28 = var30;
4273 goto RET_LABEL29;
4274 RET_LABEL29:(void)0;
4275 }
4276 }
4277 if (var28){
4278 /* <var_new_child:nullable ANode> isa AExpr */
4279 cltype34 = type_nit__AExpr.color;
4280 idtype35 = type_nit__AExpr.id;
4281 if(var_new_child == NULL) {
4282 var33 = 0;
4283 } else {
4284 if(cltype34 >= var_new_child->type->table_size) {
4285 var33 = 0;
4286 } else {
4287 var33 = var_new_child->type->type_table[cltype34] == idtype35;
4288 }
4289 }
4290 if (unlikely(!var33)) {
4291 var_class_name36 = var_new_child == NULL ? "null" : var_new_child->type->name;
4292 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name36);
4293 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3664);
4294 fatal_exit(1);
4295 }
4296 {
4297 nit__parser_prod___AOrElseExpr___nit__parser_nodes__ABinBoolExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#AOrElseExpr#n_expr2= on <self:AOrElseExpr>*/
4298 }
4299 goto RET_LABEL;
4300 } else {
4301 }
4302 RET_LABEL:;
4303 }
4304 /* method parser_prod#AOrElseExpr#n_expr= for (self: AOrElseExpr, AExpr) */
4305 void nit__parser_prod___AOrElseExpr___nit__parser_nodes__ABinBoolExpr__n_expr_61d(val* self, val* p0) {
4306 val* var_node /* var node: AExpr */;
4307 var_node = p0;
4308 self->attrs[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr].val = var_node; /* _n_expr on <self:AOrElseExpr> */
4309 {
4310 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
4311 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
4312 RET_LABEL1:(void)0;
4313 }
4314 }
4315 RET_LABEL:;
4316 }
4317 /* method parser_prod#AOrElseExpr#n_op= for (self: AOrElseExpr, Token) */
4318 void nit__parser_prod___AOrElseExpr___nit__parser_nodes__ABinBoolExpr__n_op_61d(val* self, val* p0) {
4319 val* var_node /* var node: Token */;
4320 var_node = p0;
4321 self->attrs[COLOR_nit__parser_nodes__ABinBoolExpr___n_op].val = var_node; /* _n_op on <self:AOrElseExpr> */
4322 {
4323 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:Token> */
4324 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:Token> */
4325 RET_LABEL1:(void)0;
4326 }
4327 }
4328 RET_LABEL:;
4329 }
4330 /* method parser_prod#AOrElseExpr#n_kwelse= for (self: AOrElseExpr, TKwelse) */
4331 void nit__parser_prod___AOrElseExpr___n_kwelse_61d(val* self, val* p0) {
4332 val* var_node /* var node: TKwelse */;
4333 var_node = p0;
4334 self->attrs[COLOR_nit__parser_nodes__AOrElseExpr___n_kwelse].val = var_node; /* _n_kwelse on <self:AOrElseExpr> */
4335 {
4336 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwelse> */
4337 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwelse> */
4338 RET_LABEL1:(void)0;
4339 }
4340 }
4341 RET_LABEL:;
4342 }
4343 /* method parser_prod#AOrElseExpr#n_expr2= for (self: AOrElseExpr, AExpr) */
4344 void nit__parser_prod___AOrElseExpr___nit__parser_nodes__ABinBoolExpr__n_expr2_61d(val* self, val* p0) {
4345 val* var_node /* var node: AExpr */;
4346 var_node = p0;
4347 self->attrs[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr2].val = var_node; /* _n_expr2 on <self:AOrElseExpr> */
4348 {
4349 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
4350 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
4351 RET_LABEL1:(void)0;
4352 }
4353 }
4354 RET_LABEL:;
4355 }
4356 /* method parser_prod#AOrElseExpr#visit_all for (self: AOrElseExpr, Visitor) */
4357 void nit__parser_prod___AOrElseExpr___nit__parser_nodes__ANode__visit_all(val* self, val* p0) {
4358 val* var_v /* var v: Visitor */;
4359 val* var /* : AExpr */;
4360 val* var1 /* : Token */;
4361 val* var2 /* : TKwelse */;
4362 val* var3 /* : AExpr */;
4363 var_v = p0;
4364 var = self->attrs[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr].val; /* _n_expr on <self:AOrElseExpr> */
4365 if (unlikely(var == NULL)) {
4366 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
4367 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3693);
4368 fatal_exit(1);
4369 }
4370 {
4371 nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4372 }
4373 var1 = self->attrs[COLOR_nit__parser_nodes__ABinBoolExpr___n_op].val; /* _n_op on <self:AOrElseExpr> */
4374 if (unlikely(var1 == NULL)) {
4375 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
4376 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3694);
4377 fatal_exit(1);
4378 }
4379 {
4380 nit___nit__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4381 }
4382 var2 = self->attrs[COLOR_nit__parser_nodes__AOrElseExpr___n_kwelse].val; /* _n_kwelse on <self:AOrElseExpr> */
4383 if (unlikely(var2 == NULL)) {
4384 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwelse");
4385 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3695);
4386 fatal_exit(1);
4387 }
4388 {
4389 nit___nit__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4390 }
4391 var3 = self->attrs[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr2].val; /* _n_expr2 on <self:AOrElseExpr> */
4392 if (unlikely(var3 == NULL)) {
4393 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
4394 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3696);
4395 fatal_exit(1);
4396 }
4397 {
4398 nit___nit__Visitor___enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4399 }
4400 RET_LABEL:;
4401 }
4402 /* method parser_prod#AImpliesExpr#init_aimpliesexpr for (self: AImpliesExpr, nullable AExpr, nullable TKwimplies, nullable AExpr) */
4403 void nit__parser_prod___AImpliesExpr___init_aimpliesexpr(val* self, val* p0, val* p1, val* p2) {
4404 val* var_n_expr /* var n_expr: nullable AExpr */;
4405 val* var_n_op /* var n_op: nullable TKwimplies */;
4406 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
4407 {
4408 { /* Inline kernel#Object#init (self) on <self:AImpliesExpr> */
4409 RET_LABEL1:(void)0;
4410 }
4411 }
4412 var_n_expr = p0;
4413 var_n_op = p1;
4414 var_n_expr2 = p2;
4415 if (unlikely(var_n_expr == NULL)) {
4416 PRINT_ERROR("Runtime error: %s", "Cast failed");
4417 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3706);
4418 fatal_exit(1);
4419 }
4420 self->attrs[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AImpliesExpr> */
4421 if (var_n_expr == NULL) {
4422 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4423 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3707);
4424 fatal_exit(1);
4425 } else {
4426 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
4427 if (unlikely(var_n_expr == NULL)) {
4428 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4429 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
4430 fatal_exit(1);
4431 }
4432 var_n_expr->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
4433 RET_LABEL2:(void)0;
4434 }
4435 }
4436 if (unlikely(var_n_op == NULL)) {
4437 PRINT_ERROR("Runtime error: %s", "Cast failed");
4438 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3708);
4439 fatal_exit(1);
4440 }
4441 self->attrs[COLOR_nit__parser_nodes__ABinBoolExpr___n_op].val = var_n_op; /* _n_op on <self:AImpliesExpr> */
4442 if (var_n_op == NULL) {
4443 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4444 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3709);
4445 fatal_exit(1);
4446 } else {
4447 { /* Inline parser_nodes#ANode#parent= (var_n_op,self) on <var_n_op:nullable TKwimplies> */
4448 if (unlikely(var_n_op == NULL)) {
4449 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4450 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
4451 fatal_exit(1);
4452 }
4453 var_n_op->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_op:nullable TKwimplies> */
4454 RET_LABEL3:(void)0;
4455 }
4456 }
4457 if (unlikely(var_n_expr2 == NULL)) {
4458 PRINT_ERROR("Runtime error: %s", "Cast failed");
4459 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3710);
4460 fatal_exit(1);
4461 }
4462 self->attrs[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:AImpliesExpr> */
4463 if (var_n_expr2 == NULL) {
4464 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4465 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3711);
4466 fatal_exit(1);
4467 } else {
4468 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
4469 if (unlikely(var_n_expr2 == NULL)) {
4470 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4471 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
4472 fatal_exit(1);
4473 }
4474 var_n_expr2->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
4475 RET_LABEL4:(void)0;
4476 }
4477 }
4478 RET_LABEL:;
4479 }
4480 /* method parser_prod#AImpliesExpr#replace_child for (self: AImpliesExpr, ANode, nullable ANode) */
4481 void nit__parser_prod___AImpliesExpr___nit__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
4482 val* var_old_child /* var old_child: ANode */;
4483 val* var_new_child /* var new_child: nullable ANode */;
4484 val* var /* : AExpr */;
4485 short int var1 /* : Bool */;
4486 val* var_other /* var other: nullable Object */;
4487 short int var3 /* : Bool */;
4488 short int var5 /* : Bool */;
4489 short int var6 /* : Bool */;
4490 int cltype;
4491 int idtype;
4492 const char* var_class_name;
4493 val* var7 /* : Token */;
4494 short int var8 /* : Bool */;
4495 short int var10 /* : Bool */;
4496 short int var12 /* : Bool */;
4497 short int var13 /* : Bool */;
4498 int cltype14;
4499 int idtype15;
4500 const char* var_class_name16;
4501 val* var17 /* : AExpr */;
4502 short int var18 /* : Bool */;
4503 short int var20 /* : Bool */;
4504 short int var22 /* : Bool */;
4505 short int var23 /* : Bool */;
4506 int cltype24;
4507 int idtype25;
4508 const char* var_class_name26;
4509 var_old_child = p0;
4510 var_new_child = p1;
4511 var = self->attrs[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr].val; /* _n_expr on <self:AImpliesExpr> */
4512 if (unlikely(var == NULL)) {
4513 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
4514 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3716);
4515 fatal_exit(1);
4516 }
4517 {
4518 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
4519 var_other = var_old_child;
4520 {
4521 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
4522 var5 = var == var_other;
4523 var3 = var5;
4524 goto RET_LABEL4;
4525 RET_LABEL4:(void)0;
4526 }
4527 }
4528 var1 = var3;
4529 goto RET_LABEL2;
4530 RET_LABEL2:(void)0;
4531 }
4532 }
4533 if (var1){
4534 /* <var_new_child:nullable ANode> isa AExpr */
4535 cltype = type_nit__AExpr.color;
4536 idtype = type_nit__AExpr.id;
4537 if(var_new_child == NULL) {
4538 var6 = 0;
4539 } else {
4540 if(cltype >= var_new_child->type->table_size) {
4541 var6 = 0;
4542 } else {
4543 var6 = var_new_child->type->type_table[cltype] == idtype;
4544 }
4545 }
4546 if (unlikely(!var6)) {
4547 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
4548 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
4549 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3717);
4550 fatal_exit(1);
4551 }
4552 {
4553 nit__parser_prod___AImpliesExpr___nit__parser_nodes__ABinBoolExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AImpliesExpr#n_expr= on <self:AImpliesExpr>*/
4554 }
4555 goto RET_LABEL;
4556 } else {
4557 }
4558 var7 = self->attrs[COLOR_nit__parser_nodes__ABinBoolExpr___n_op].val; /* _n_op on <self:AImpliesExpr> */
4559 if (unlikely(var7 == NULL)) {
4560 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
4561 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3720);
4562 fatal_exit(1);
4563 }
4564 {
4565 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:Token> */
4566 var_other = var_old_child;
4567 {
4568 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:Token> */
4569 var12 = var7 == var_other;
4570 var10 = var12;
4571 goto RET_LABEL11;
4572 RET_LABEL11:(void)0;
4573 }
4574 }
4575 var8 = var10;
4576 goto RET_LABEL9;
4577 RET_LABEL9:(void)0;
4578 }
4579 }
4580 if (var8){
4581 /* <var_new_child:nullable ANode> isa TKwimplies */
4582 cltype14 = type_nit__TKwimplies.color;
4583 idtype15 = type_nit__TKwimplies.id;
4584 if(var_new_child == NULL) {
4585 var13 = 0;
4586 } else {
4587 if(cltype14 >= var_new_child->type->table_size) {
4588 var13 = 0;
4589 } else {
4590 var13 = var_new_child->type->type_table[cltype14] == idtype15;
4591 }
4592 }
4593 if (unlikely(!var13)) {
4594 var_class_name16 = var_new_child == NULL ? "null" : var_new_child->type->name;
4595 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwimplies", var_class_name16);
4596 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3721);
4597 fatal_exit(1);
4598 }
4599 {
4600 nit__parser_prod___AImpliesExpr___nit__parser_nodes__ABinBoolExpr__n_op_61d(self, var_new_child); /* Direct call parser_prod#AImpliesExpr#n_op= on <self:AImpliesExpr>*/
4601 }
4602 goto RET_LABEL;
4603 } else {
4604 }
4605 var17 = self->attrs[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr2].val; /* _n_expr2 on <self:AImpliesExpr> */
4606 if (unlikely(var17 == NULL)) {
4607 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
4608 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3724);
4609 fatal_exit(1);
4610 }
4611 {
4612 { /* Inline kernel#Object#== (var17,var_old_child) on <var17:AExpr> */
4613 var_other = var_old_child;
4614 {
4615 { /* Inline kernel#Object#is_same_instance (var17,var_other) on <var17:AExpr> */
4616 var22 = var17 == var_other;
4617 var20 = var22;
4618 goto RET_LABEL21;
4619 RET_LABEL21:(void)0;
4620 }
4621 }
4622 var18 = var20;
4623 goto RET_LABEL19;
4624 RET_LABEL19:(void)0;
4625 }
4626 }
4627 if (var18){
4628 /* <var_new_child:nullable ANode> isa AExpr */
4629 cltype24 = type_nit__AExpr.color;
4630 idtype25 = type_nit__AExpr.id;
4631 if(var_new_child == NULL) {
4632 var23 = 0;
4633 } else {
4634 if(cltype24 >= var_new_child->type->table_size) {
4635 var23 = 0;
4636 } else {
4637 var23 = var_new_child->type->type_table[cltype24] == idtype25;
4638 }
4639 }
4640 if (unlikely(!var23)) {
4641 var_class_name26 = var_new_child == NULL ? "null" : var_new_child->type->name;
4642 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name26);
4643 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3725);
4644 fatal_exit(1);
4645 }
4646 {
4647 nit__parser_prod___AImpliesExpr___nit__parser_nodes__ABinBoolExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#AImpliesExpr#n_expr2= on <self:AImpliesExpr>*/
4648 }
4649 goto RET_LABEL;
4650 } else {
4651 }
4652 RET_LABEL:;
4653 }
4654 /* method parser_prod#AImpliesExpr#n_expr= for (self: AImpliesExpr, AExpr) */
4655 void nit__parser_prod___AImpliesExpr___nit__parser_nodes__ABinBoolExpr__n_expr_61d(val* self, val* p0) {
4656 val* var_node /* var node: AExpr */;
4657 var_node = p0;
4658 self->attrs[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr].val = var_node; /* _n_expr on <self:AImpliesExpr> */
4659 {
4660 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
4661 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
4662 RET_LABEL1:(void)0;
4663 }
4664 }
4665 RET_LABEL:;
4666 }
4667 /* method parser_prod#AImpliesExpr#n_op= for (self: AImpliesExpr, Token) */
4668 void nit__parser_prod___AImpliesExpr___nit__parser_nodes__ABinBoolExpr__n_op_61d(val* self, val* p0) {
4669 val* var_node /* var node: Token */;
4670 var_node = p0;
4671 self->attrs[COLOR_nit__parser_nodes__ABinBoolExpr___n_op].val = var_node; /* _n_op on <self:AImpliesExpr> */
4672 {
4673 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:Token> */
4674 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:Token> */
4675 RET_LABEL1:(void)0;
4676 }
4677 }
4678 RET_LABEL:;
4679 }
4680 /* method parser_prod#AImpliesExpr#n_expr2= for (self: AImpliesExpr, AExpr) */
4681 void nit__parser_prod___AImpliesExpr___nit__parser_nodes__ABinBoolExpr__n_expr2_61d(val* self, val* p0) {
4682 val* var_node /* var node: AExpr */;
4683 var_node = p0;
4684 self->attrs[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr2].val = var_node; /* _n_expr2 on <self:AImpliesExpr> */
4685 {
4686 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
4687 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
4688 RET_LABEL1:(void)0;
4689 }
4690 }
4691 RET_LABEL:;
4692 }
4693 /* method parser_prod#AImpliesExpr#visit_all for (self: AImpliesExpr, Visitor) */
4694 void nit__parser_prod___AImpliesExpr___nit__parser_nodes__ANode__visit_all(val* self, val* p0) {
4695 val* var_v /* var v: Visitor */;
4696 val* var /* : AExpr */;
4697 val* var1 /* : Token */;
4698 val* var2 /* : AExpr */;
4699 var_v = p0;
4700 var = self->attrs[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr].val; /* _n_expr on <self:AImpliesExpr> */
4701 if (unlikely(var == NULL)) {
4702 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
4703 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3749);
4704 fatal_exit(1);
4705 }
4706 {
4707 nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4708 }
4709 var1 = self->attrs[COLOR_nit__parser_nodes__ABinBoolExpr___n_op].val; /* _n_op on <self:AImpliesExpr> */
4710 if (unlikely(var1 == NULL)) {
4711 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
4712 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3750);
4713 fatal_exit(1);
4714 }
4715 {
4716 nit___nit__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4717 }
4718 var2 = self->attrs[COLOR_nit__parser_nodes__ABinBoolExpr___n_expr2].val; /* _n_expr2 on <self:AImpliesExpr> */
4719 if (unlikely(var2 == NULL)) {
4720 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
4721 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3751);
4722 fatal_exit(1);
4723 }
4724 {
4725 nit___nit__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4726 }
4727 RET_LABEL:;
4728 }
4729 /* method parser_prod#ANotExpr#init_anotexpr for (self: ANotExpr, nullable TKwnot, nullable AExpr) */
4730 void nit__parser_prod___ANotExpr___init_anotexpr(val* self, val* p0, val* p1) {
4731 val* var_n_kwnot /* var n_kwnot: nullable TKwnot */;
4732 val* var_n_expr /* var n_expr: nullable AExpr */;
4733 {
4734 { /* Inline kernel#Object#init (self) on <self:ANotExpr> */
4735 RET_LABEL1:(void)0;
4736 }
4737 }
4738 var_n_kwnot = p0;
4739 var_n_expr = p1;
4740 if (unlikely(var_n_kwnot == NULL)) {
4741 PRINT_ERROR("Runtime error: %s", "Cast failed");
4742 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3760);
4743 fatal_exit(1);
4744 }
4745 self->attrs[COLOR_nit__parser_nodes__ANotExpr___n_kwnot].val = var_n_kwnot; /* _n_kwnot on <self:ANotExpr> */
4746 if (var_n_kwnot == NULL) {
4747 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4748 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3761);
4749 fatal_exit(1);
4750 } else {
4751 { /* Inline parser_nodes#ANode#parent= (var_n_kwnot,self) on <var_n_kwnot:nullable TKwnot> */
4752 if (unlikely(var_n_kwnot == NULL)) {
4753 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4754 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
4755 fatal_exit(1);
4756 }
4757 var_n_kwnot->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwnot:nullable TKwnot> */
4758 RET_LABEL2:(void)0;
4759 }
4760 }
4761 if (unlikely(var_n_expr == NULL)) {
4762 PRINT_ERROR("Runtime error: %s", "Cast failed");
4763 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3762);
4764 fatal_exit(1);
4765 }
4766 self->attrs[COLOR_nit__parser_nodes__ANotExpr___n_expr].val = var_n_expr; /* _n_expr on <self:ANotExpr> */
4767 if (var_n_expr == NULL) {
4768 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4769 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3763);
4770 fatal_exit(1);
4771 } else {
4772 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
4773 if (unlikely(var_n_expr == NULL)) {
4774 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4775 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
4776 fatal_exit(1);
4777 }
4778 var_n_expr->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
4779 RET_LABEL3:(void)0;
4780 }
4781 }
4782 RET_LABEL:;
4783 }
4784 /* method parser_prod#ANotExpr#replace_child for (self: ANotExpr, ANode, nullable ANode) */
4785 void nit__parser_prod___ANotExpr___nit__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
4786 val* var_old_child /* var old_child: ANode */;
4787 val* var_new_child /* var new_child: nullable ANode */;
4788 val* var /* : TKwnot */;
4789 short int var1 /* : Bool */;
4790 val* var_other /* var other: nullable Object */;
4791 short int var3 /* : Bool */;
4792 short int var5 /* : Bool */;
4793 short int var6 /* : Bool */;
4794 int cltype;
4795 int idtype;
4796 const char* var_class_name;
4797 val* var7 /* : AExpr */;
4798 short int var8 /* : Bool */;
4799 short int var10 /* : Bool */;
4800 short int var12 /* : Bool */;
4801 short int var13 /* : Bool */;
4802 int cltype14;
4803 int idtype15;
4804 const char* var_class_name16;
4805 var_old_child = p0;
4806 var_new_child = p1;
4807 var = self->attrs[COLOR_nit__parser_nodes__ANotExpr___n_kwnot].val; /* _n_kwnot on <self:ANotExpr> */
4808 if (unlikely(var == NULL)) {
4809 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwnot");
4810 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3768);
4811 fatal_exit(1);
4812 }
4813 {
4814 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwnot> */
4815 var_other = var_old_child;
4816 {
4817 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TKwnot> */
4818 var5 = var == var_other;
4819 var3 = var5;
4820 goto RET_LABEL4;
4821 RET_LABEL4:(void)0;
4822 }
4823 }
4824 var1 = var3;
4825 goto RET_LABEL2;
4826 RET_LABEL2:(void)0;
4827 }
4828 }
4829 if (var1){
4830 /* <var_new_child:nullable ANode> isa TKwnot */
4831 cltype = type_nit__TKwnot.color;
4832 idtype = type_nit__TKwnot.id;
4833 if(var_new_child == NULL) {
4834 var6 = 0;
4835 } else {
4836 if(cltype >= var_new_child->type->table_size) {
4837 var6 = 0;
4838 } else {
4839 var6 = var_new_child->type->type_table[cltype] == idtype;
4840 }
4841 }
4842 if (unlikely(!var6)) {
4843 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
4844 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwnot", var_class_name);
4845 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3769);
4846 fatal_exit(1);
4847 }
4848 {
4849 nit__parser_prod___ANotExpr___n_kwnot_61d(self, var_new_child); /* Direct call parser_prod#ANotExpr#n_kwnot= on <self:ANotExpr>*/
4850 }
4851 goto RET_LABEL;
4852 } else {
4853 }
4854 var7 = self->attrs[COLOR_nit__parser_nodes__ANotExpr___n_expr].val; /* _n_expr on <self:ANotExpr> */
4855 if (unlikely(var7 == NULL)) {
4856 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
4857 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3772);
4858 fatal_exit(1);
4859 }
4860 {
4861 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:AExpr> */
4862 var_other = var_old_child;
4863 {
4864 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:AExpr> */
4865 var12 = var7 == var_other;
4866 var10 = var12;
4867 goto RET_LABEL11;
4868 RET_LABEL11:(void)0;
4869 }
4870 }
4871 var8 = var10;
4872 goto RET_LABEL9;
4873 RET_LABEL9:(void)0;
4874 }
4875 }
4876 if (var8){
4877 /* <var_new_child:nullable ANode> isa AExpr */
4878 cltype14 = type_nit__AExpr.color;
4879 idtype15 = type_nit__AExpr.id;
4880 if(var_new_child == NULL) {
4881 var13 = 0;
4882 } else {
4883 if(cltype14 >= var_new_child->type->table_size) {
4884 var13 = 0;
4885 } else {
4886 var13 = var_new_child->type->type_table[cltype14] == idtype15;
4887 }
4888 }
4889 if (unlikely(!var13)) {
4890 var_class_name16 = var_new_child == NULL ? "null" : var_new_child->type->name;
4891 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name16);
4892 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3773);
4893 fatal_exit(1);
4894 }
4895 {
4896 nit__parser_prod___ANotExpr___n_expr_61d(self, var_new_child); /* Direct call parser_prod#ANotExpr#n_expr= on <self:ANotExpr>*/
4897 }
4898 goto RET_LABEL;
4899 } else {
4900 }
4901 RET_LABEL:;
4902 }
4903 /* method parser_prod#ANotExpr#n_kwnot= for (self: ANotExpr, TKwnot) */
4904 void nit__parser_prod___ANotExpr___n_kwnot_61d(val* self, val* p0) {
4905 val* var_node /* var node: TKwnot */;
4906 var_node = p0;
4907 self->attrs[COLOR_nit__parser_nodes__ANotExpr___n_kwnot].val = var_node; /* _n_kwnot on <self:ANotExpr> */
4908 {
4909 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwnot> */
4910 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwnot> */
4911 RET_LABEL1:(void)0;
4912 }
4913 }
4914 RET_LABEL:;
4915 }
4916 /* method parser_prod#ANotExpr#n_expr= for (self: ANotExpr, AExpr) */
4917 void nit__parser_prod___ANotExpr___n_expr_61d(val* self, val* p0) {
4918 val* var_node /* var node: AExpr */;
4919 var_node = p0;
4920 self->attrs[COLOR_nit__parser_nodes__ANotExpr___n_expr].val = var_node; /* _n_expr on <self:ANotExpr> */
4921 {
4922 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
4923 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
4924 RET_LABEL1:(void)0;
4925 }
4926 }
4927 RET_LABEL:;
4928 }
4929 /* method parser_prod#ANotExpr#visit_all for (self: ANotExpr, Visitor) */
4930 void nit__parser_prod___ANotExpr___nit__parser_nodes__ANode__visit_all(val* self, val* p0) {
4931 val* var_v /* var v: Visitor */;
4932 val* var /* : TKwnot */;
4933 val* var1 /* : AExpr */;
4934 var_v = p0;
4935 var = self->attrs[COLOR_nit__parser_nodes__ANotExpr___n_kwnot].val; /* _n_kwnot on <self:ANotExpr> */
4936 if (unlikely(var == NULL)) {
4937 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwnot");
4938 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3792);
4939 fatal_exit(1);
4940 }
4941 {
4942 nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4943 }
4944 var1 = self->attrs[COLOR_nit__parser_nodes__ANotExpr___n_expr].val; /* _n_expr on <self:ANotExpr> */
4945 if (unlikely(var1 == NULL)) {
4946 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
4947 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3793);
4948 fatal_exit(1);
4949 }
4950 {
4951 nit___nit__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4952 }
4953 RET_LABEL:;
4954 }
4955 /* method parser_prod#AEqExpr#init_aeqexpr for (self: AEqExpr, nullable AExpr, nullable TEq, nullable AExpr) */
4956 void nit__parser_prod___AEqExpr___init_aeqexpr(val* self, val* p0, val* p1, val* p2) {
4957 val* var_n_expr /* var n_expr: nullable AExpr */;
4958 val* var_n_op /* var n_op: nullable TEq */;
4959 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
4960 {
4961 { /* Inline kernel#Object#init (self) on <self:AEqExpr> */
4962 RET_LABEL1:(void)0;
4963 }
4964 }
4965 var_n_expr = p0;
4966 var_n_op = p1;
4967 var_n_expr2 = p2;
4968 if (unlikely(var_n_expr == NULL)) {
4969 PRINT_ERROR("Runtime error: %s", "Cast failed");
4970 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3803);
4971 fatal_exit(1);
4972 }
4973 self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AEqExpr> */
4974 if (var_n_expr == NULL) {
4975 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4976 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3804);
4977 fatal_exit(1);
4978 } else {
4979 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
4980 if (unlikely(var_n_expr == NULL)) {
4981 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4982 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
4983 fatal_exit(1);
4984 }
4985 var_n_expr->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
4986 RET_LABEL2:(void)0;
4987 }
4988 }
4989 if (unlikely(var_n_op == NULL)) {
4990 PRINT_ERROR("Runtime error: %s", "Cast failed");
4991 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3805);
4992 fatal_exit(1);
4993 }
4994 self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_op].val = var_n_op; /* _n_op on <self:AEqExpr> */
4995 if (var_n_op == NULL) {
4996 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4997 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3806);
4998 fatal_exit(1);
4999 } else {
5000 { /* Inline parser_nodes#ANode#parent= (var_n_op,self) on <var_n_op:nullable TEq> */
5001 if (unlikely(var_n_op == NULL)) {
5002 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5003 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
5004 fatal_exit(1);
5005 }
5006 var_n_op->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_op:nullable TEq> */
5007 RET_LABEL3:(void)0;
5008 }
5009 }
5010 if (unlikely(var_n_expr2 == NULL)) {
5011 PRINT_ERROR("Runtime error: %s", "Cast failed");
5012 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3807);
5013 fatal_exit(1);
5014 }
5015 self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:AEqExpr> */
5016 if (var_n_expr2 == NULL) {
5017 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5018 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3808);
5019 fatal_exit(1);
5020 } else {
5021 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
5022 if (unlikely(var_n_expr2 == NULL)) {
5023 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5024 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
5025 fatal_exit(1);
5026 }
5027 var_n_expr2->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
5028 RET_LABEL4:(void)0;
5029 }
5030 }
5031 RET_LABEL:;
5032 }
5033 /* method parser_prod#AEqExpr#replace_child for (self: AEqExpr, ANode, nullable ANode) */
5034 void nit__parser_prod___AEqExpr___nit__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
5035 val* var_old_child /* var old_child: ANode */;
5036 val* var_new_child /* var new_child: nullable ANode */;
5037 val* var /* : AExpr */;
5038 short int var1 /* : Bool */;
5039 val* var_other /* var other: nullable Object */;
5040 short int var3 /* : Bool */;
5041 short int var5 /* : Bool */;
5042 short int var6 /* : Bool */;
5043 int cltype;
5044 int idtype;
5045 const char* var_class_name;
5046 val* var7 /* : Token */;
5047 short int var8 /* : Bool */;
5048 short int var10 /* : Bool */;
5049 short int var12 /* : Bool */;
5050 short int var13 /* : Bool */;
5051 int cltype14;
5052 int idtype15;
5053 const char* var_class_name16;
5054 val* var17 /* : AExpr */;
5055 short int var18 /* : Bool */;
5056 short int var20 /* : Bool */;
5057 short int var22 /* : Bool */;
5058 short int var23 /* : Bool */;
5059 int cltype24;
5060 int idtype25;
5061 const char* var_class_name26;
5062 var_old_child = p0;
5063 var_new_child = p1;
5064 var = self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AEqExpr> */
5065 if (unlikely(var == NULL)) {
5066 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
5067 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3813);
5068 fatal_exit(1);
5069 }
5070 {
5071 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
5072 var_other = var_old_child;
5073 {
5074 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
5075 var5 = var == var_other;
5076 var3 = var5;
5077 goto RET_LABEL4;
5078 RET_LABEL4:(void)0;
5079 }
5080 }
5081 var1 = var3;
5082 goto RET_LABEL2;
5083 RET_LABEL2:(void)0;
5084 }
5085 }
5086 if (var1){
5087 /* <var_new_child:nullable ANode> isa AExpr */
5088 cltype = type_nit__AExpr.color;
5089 idtype = type_nit__AExpr.id;
5090 if(var_new_child == NULL) {
5091 var6 = 0;
5092 } else {
5093 if(cltype >= var_new_child->type->table_size) {
5094 var6 = 0;
5095 } else {
5096 var6 = var_new_child->type->type_table[cltype] == idtype;
5097 }
5098 }
5099 if (unlikely(!var6)) {
5100 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
5101 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
5102 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3814);
5103 fatal_exit(1);
5104 }
5105 {
5106 nit__parser_prod___AEqExpr___nit__parser_nodes__ASendExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AEqExpr#n_expr= on <self:AEqExpr>*/
5107 }
5108 goto RET_LABEL;
5109 } else {
5110 }
5111 var7 = self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_op].val; /* _n_op on <self:AEqExpr> */
5112 if (unlikely(var7 == NULL)) {
5113 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
5114 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3817);
5115 fatal_exit(1);
5116 }
5117 {
5118 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:Token> */
5119 var_other = var_old_child;
5120 {
5121 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:Token> */
5122 var12 = var7 == var_other;
5123 var10 = var12;
5124 goto RET_LABEL11;
5125 RET_LABEL11:(void)0;
5126 }
5127 }
5128 var8 = var10;
5129 goto RET_LABEL9;
5130 RET_LABEL9:(void)0;
5131 }
5132 }
5133 if (var8){
5134 /* <var_new_child:nullable ANode> isa TEq */
5135 cltype14 = type_nit__TEq.color;
5136 idtype15 = type_nit__TEq.id;
5137 if(var_new_child == NULL) {
5138 var13 = 0;
5139 } else {
5140 if(cltype14 >= var_new_child->type->table_size) {
5141 var13 = 0;
5142 } else {
5143 var13 = var_new_child->type->type_table[cltype14] == idtype15;
5144 }
5145 }
5146 if (unlikely(!var13)) {
5147 var_class_name16 = var_new_child == NULL ? "null" : var_new_child->type->name;
5148 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TEq", var_class_name16);
5149 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3818);
5150 fatal_exit(1);
5151 }
5152 {
5153 nit__parser_prod___AEqExpr___nit__parser_nodes__ABinopExpr__n_op_61d(self, var_new_child); /* Direct call parser_prod#AEqExpr#n_op= on <self:AEqExpr>*/
5154 }
5155 goto RET_LABEL;
5156 } else {
5157 }
5158 var17 = self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AEqExpr> */
5159 if (unlikely(var17 == NULL)) {
5160 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
5161 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3821);
5162 fatal_exit(1);
5163 }
5164 {
5165 { /* Inline kernel#Object#== (var17,var_old_child) on <var17:AExpr> */
5166 var_other = var_old_child;
5167 {
5168 { /* Inline kernel#Object#is_same_instance (var17,var_other) on <var17:AExpr> */
5169 var22 = var17 == var_other;
5170 var20 = var22;
5171 goto RET_LABEL21;
5172 RET_LABEL21:(void)0;
5173 }
5174 }
5175 var18 = var20;
5176 goto RET_LABEL19;
5177 RET_LABEL19:(void)0;
5178 }
5179 }
5180 if (var18){
5181 /* <var_new_child:nullable ANode> isa AExpr */
5182 cltype24 = type_nit__AExpr.color;
5183 idtype25 = type_nit__AExpr.id;
5184 if(var_new_child == NULL) {
5185 var23 = 0;
5186 } else {
5187 if(cltype24 >= var_new_child->type->table_size) {
5188 var23 = 0;
5189 } else {
5190 var23 = var_new_child->type->type_table[cltype24] == idtype25;
5191 }
5192 }
5193 if (unlikely(!var23)) {
5194 var_class_name26 = var_new_child == NULL ? "null" : var_new_child->type->name;
5195 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name26);
5196 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3822);
5197 fatal_exit(1);
5198 }
5199 {
5200 nit__parser_prod___AEqExpr___nit__parser_nodes__ABinopExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#AEqExpr#n_expr2= on <self:AEqExpr>*/
5201 }
5202 goto RET_LABEL;
5203 } else {
5204 }
5205 RET_LABEL:;
5206 }
5207 /* method parser_prod#AEqExpr#n_expr= for (self: AEqExpr, AExpr) */
5208 void nit__parser_prod___AEqExpr___nit__parser_nodes__ASendExpr__n_expr_61d(val* self, val* p0) {
5209 val* var_node /* var node: AExpr */;
5210 var_node = p0;
5211 self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:AEqExpr> */
5212 {
5213 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
5214 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
5215 RET_LABEL1:(void)0;
5216 }
5217 }
5218 RET_LABEL:;
5219 }
5220 /* method parser_prod#AEqExpr#n_op= for (self: AEqExpr, Token) */
5221 void nit__parser_prod___AEqExpr___nit__parser_nodes__ABinopExpr__n_op_61d(val* self, val* p0) {
5222 val* var_node /* var node: Token */;
5223 var_node = p0;
5224 self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_op].val = var_node; /* _n_op on <self:AEqExpr> */
5225 {
5226 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:Token> */
5227 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:Token> */
5228 RET_LABEL1:(void)0;
5229 }
5230 }
5231 RET_LABEL:;
5232 }
5233 /* method parser_prod#AEqExpr#n_expr2= for (self: AEqExpr, AExpr) */
5234 void nit__parser_prod___AEqExpr___nit__parser_nodes__ABinopExpr__n_expr2_61d(val* self, val* p0) {
5235 val* var_node /* var node: AExpr */;
5236 var_node = p0;
5237 self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_expr2].val = var_node; /* _n_expr2 on <self:AEqExpr> */
5238 {
5239 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
5240 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
5241 RET_LABEL1:(void)0;
5242 }
5243 }
5244 RET_LABEL:;
5245 }
5246 /* method parser_prod#AEqExpr#visit_all for (self: AEqExpr, Visitor) */
5247 void nit__parser_prod___AEqExpr___nit__parser_nodes__ANode__visit_all(val* self, val* p0) {
5248 val* var_v /* var v: Visitor */;
5249 val* var /* : AExpr */;
5250 val* var1 /* : Token */;
5251 val* var2 /* : AExpr */;
5252 var_v = p0;
5253 var = self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AEqExpr> */
5254 if (unlikely(var == NULL)) {
5255 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
5256 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3846);
5257 fatal_exit(1);
5258 }
5259 {
5260 nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
5261 }
5262 var1 = self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_op].val; /* _n_op on <self:AEqExpr> */
5263 if (unlikely(var1 == NULL)) {
5264 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
5265 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3847);
5266 fatal_exit(1);
5267 }
5268 {
5269 nit___nit__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
5270 }
5271 var2 = self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AEqExpr> */
5272 if (unlikely(var2 == NULL)) {
5273 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
5274 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3848);
5275 fatal_exit(1);
5276 }
5277 {
5278 nit___nit__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
5279 }
5280 RET_LABEL:;
5281 }
5282 /* method parser_prod#ANeExpr#init_aneexpr for (self: ANeExpr, nullable AExpr, nullable TNe, nullable AExpr) */
5283 void nit__parser_prod___ANeExpr___init_aneexpr(val* self, val* p0, val* p1, val* p2) {
5284 val* var_n_expr /* var n_expr: nullable AExpr */;
5285 val* var_n_op /* var n_op: nullable TNe */;
5286 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
5287 {
5288 { /* Inline kernel#Object#init (self) on <self:ANeExpr> */
5289 RET_LABEL1:(void)0;
5290 }
5291 }
5292 var_n_expr = p0;
5293 var_n_op = p1;
5294 var_n_expr2 = p2;
5295 if (unlikely(var_n_expr == NULL)) {
5296 PRINT_ERROR("Runtime error: %s", "Cast failed");
5297 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3858);
5298 fatal_exit(1);
5299 }
5300 self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:ANeExpr> */
5301 if (var_n_expr == NULL) {
5302 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5303 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3859);
5304 fatal_exit(1);
5305 } else {
5306 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
5307 if (unlikely(var_n_expr == NULL)) {
5308 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5309 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
5310 fatal_exit(1);
5311 }
5312 var_n_expr->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
5313 RET_LABEL2:(void)0;
5314 }
5315 }
5316 if (unlikely(var_n_op == NULL)) {
5317 PRINT_ERROR("Runtime error: %s", "Cast failed");
5318 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3860);
5319 fatal_exit(1);
5320 }
5321 self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_op].val = var_n_op; /* _n_op on <self:ANeExpr> */
5322 if (var_n_op == NULL) {
5323 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5324 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3861);
5325 fatal_exit(1);
5326 } else {
5327 { /* Inline parser_nodes#ANode#parent= (var_n_op,self) on <var_n_op:nullable TNe> */
5328 if (unlikely(var_n_op == NULL)) {
5329 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5330 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
5331 fatal_exit(1);
5332 }
5333 var_n_op->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_op:nullable TNe> */
5334 RET_LABEL3:(void)0;
5335 }
5336 }
5337 if (unlikely(var_n_expr2 == NULL)) {
5338 PRINT_ERROR("Runtime error: %s", "Cast failed");
5339 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3862);
5340 fatal_exit(1);
5341 }
5342 self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:ANeExpr> */
5343 if (var_n_expr2 == NULL) {
5344 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5345 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3863);
5346 fatal_exit(1);
5347 } else {
5348 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
5349 if (unlikely(var_n_expr2 == NULL)) {
5350 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5351 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
5352 fatal_exit(1);
5353 }
5354 var_n_expr2->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
5355 RET_LABEL4:(void)0;
5356 }
5357 }
5358 RET_LABEL:;
5359 }
5360 /* method parser_prod#ANeExpr#replace_child for (self: ANeExpr, ANode, nullable ANode) */
5361 void nit__parser_prod___ANeExpr___nit__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
5362 val* var_old_child /* var old_child: ANode */;
5363 val* var_new_child /* var new_child: nullable ANode */;
5364 val* var /* : AExpr */;
5365 short int var1 /* : Bool */;
5366 val* var_other /* var other: nullable Object */;
5367 short int var3 /* : Bool */;
5368 short int var5 /* : Bool */;
5369 short int var6 /* : Bool */;
5370 int cltype;
5371 int idtype;
5372 const char* var_class_name;
5373 val* var7 /* : Token */;
5374 short int var8 /* : Bool */;
5375 short int var10 /* : Bool */;
5376 short int var12 /* : Bool */;
5377 short int var13 /* : Bool */;
5378 int cltype14;
5379 int idtype15;
5380 const char* var_class_name16;
5381 val* var17 /* : AExpr */;
5382 short int var18 /* : Bool */;
5383 short int var20 /* : Bool */;
5384 short int var22 /* : Bool */;
5385 short int var23 /* : Bool */;
5386 int cltype24;
5387 int idtype25;
5388 const char* var_class_name26;
5389 var_old_child = p0;
5390 var_new_child = p1;
5391 var = self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ANeExpr> */
5392 if (unlikely(var == NULL)) {
5393 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
5394 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3868);
5395 fatal_exit(1);
5396 }
5397 {
5398 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
5399 var_other = var_old_child;
5400 {
5401 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
5402 var5 = var == var_other;
5403 var3 = var5;
5404 goto RET_LABEL4;
5405 RET_LABEL4:(void)0;
5406 }
5407 }
5408 var1 = var3;
5409 goto RET_LABEL2;
5410 RET_LABEL2:(void)0;
5411 }
5412 }
5413 if (var1){
5414 /* <var_new_child:nullable ANode> isa AExpr */
5415 cltype = type_nit__AExpr.color;
5416 idtype = type_nit__AExpr.id;
5417 if(var_new_child == NULL) {
5418 var6 = 0;
5419 } else {
5420 if(cltype >= var_new_child->type->table_size) {
5421 var6 = 0;
5422 } else {
5423 var6 = var_new_child->type->type_table[cltype] == idtype;
5424 }
5425 }
5426 if (unlikely(!var6)) {
5427 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
5428 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
5429 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3869);
5430 fatal_exit(1);
5431 }
5432 {
5433 nit__parser_prod___ANeExpr___nit__parser_nodes__ASendExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#ANeExpr#n_expr= on <self:ANeExpr>*/
5434 }
5435 goto RET_LABEL;
5436 } else {
5437 }
5438 var7 = self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_op].val; /* _n_op on <self:ANeExpr> */
5439 if (unlikely(var7 == NULL)) {
5440 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
5441 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3872);
5442 fatal_exit(1);
5443 }
5444 {
5445 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:Token> */
5446 var_other = var_old_child;
5447 {
5448 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:Token> */
5449 var12 = var7 == var_other;
5450 var10 = var12;
5451 goto RET_LABEL11;
5452 RET_LABEL11:(void)0;
5453 }
5454 }
5455 var8 = var10;
5456 goto RET_LABEL9;
5457 RET_LABEL9:(void)0;
5458 }
5459 }
5460 if (var8){
5461 /* <var_new_child:nullable ANode> isa TNe */
5462 cltype14 = type_nit__TNe.color;
5463 idtype15 = type_nit__TNe.id;
5464 if(var_new_child == NULL) {
5465 var13 = 0;
5466 } else {
5467 if(cltype14 >= var_new_child->type->table_size) {
5468 var13 = 0;
5469 } else {
5470 var13 = var_new_child->type->type_table[cltype14] == idtype15;
5471 }
5472 }
5473 if (unlikely(!var13)) {
5474 var_class_name16 = var_new_child == NULL ? "null" : var_new_child->type->name;
5475 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TNe", var_class_name16);
5476 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3873);
5477 fatal_exit(1);
5478 }
5479 {
5480 nit__parser_prod___ANeExpr___nit__parser_nodes__ABinopExpr__n_op_61d(self, var_new_child); /* Direct call parser_prod#ANeExpr#n_op= on <self:ANeExpr>*/
5481 }
5482 goto RET_LABEL;
5483 } else {
5484 }
5485 var17 = self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:ANeExpr> */
5486 if (unlikely(var17 == NULL)) {
5487 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
5488 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3876);
5489 fatal_exit(1);
5490 }
5491 {
5492 { /* Inline kernel#Object#== (var17,var_old_child) on <var17:AExpr> */
5493 var_other = var_old_child;
5494 {
5495 { /* Inline kernel#Object#is_same_instance (var17,var_other) on <var17:AExpr> */
5496 var22 = var17 == var_other;
5497 var20 = var22;
5498 goto RET_LABEL21;
5499 RET_LABEL21:(void)0;
5500 }
5501 }
5502 var18 = var20;
5503 goto RET_LABEL19;
5504 RET_LABEL19:(void)0;
5505 }
5506 }
5507 if (var18){
5508 /* <var_new_child:nullable ANode> isa AExpr */
5509 cltype24 = type_nit__AExpr.color;
5510 idtype25 = type_nit__AExpr.id;
5511 if(var_new_child == NULL) {
5512 var23 = 0;
5513 } else {
5514 if(cltype24 >= var_new_child->type->table_size) {
5515 var23 = 0;
5516 } else {
5517 var23 = var_new_child->type->type_table[cltype24] == idtype25;
5518 }
5519 }
5520 if (unlikely(!var23)) {
5521 var_class_name26 = var_new_child == NULL ? "null" : var_new_child->type->name;
5522 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name26);
5523 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3877);
5524 fatal_exit(1);
5525 }
5526 {
5527 nit__parser_prod___ANeExpr___nit__parser_nodes__ABinopExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#ANeExpr#n_expr2= on <self:ANeExpr>*/
5528 }
5529 goto RET_LABEL;
5530 } else {
5531 }
5532 RET_LABEL:;
5533 }
5534 /* method parser_prod#ANeExpr#n_expr= for (self: ANeExpr, AExpr) */
5535 void nit__parser_prod___ANeExpr___nit__parser_nodes__ASendExpr__n_expr_61d(val* self, val* p0) {
5536 val* var_node /* var node: AExpr */;
5537 var_node = p0;
5538 self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:ANeExpr> */
5539 {
5540 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
5541 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
5542 RET_LABEL1:(void)0;
5543 }
5544 }
5545 RET_LABEL:;
5546 }
5547 /* method parser_prod#ANeExpr#n_op= for (self: ANeExpr, Token) */
5548 void nit__parser_prod___ANeExpr___nit__parser_nodes__ABinopExpr__n_op_61d(val* self, val* p0) {
5549 val* var_node /* var node: Token */;
5550 var_node = p0;
5551 self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_op].val = var_node; /* _n_op on <self:ANeExpr> */
5552 {
5553 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:Token> */
5554 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:Token> */
5555 RET_LABEL1:(void)0;
5556 }
5557 }
5558 RET_LABEL:;
5559 }
5560 /* method parser_prod#ANeExpr#n_expr2= for (self: ANeExpr, AExpr) */
5561 void nit__parser_prod___ANeExpr___nit__parser_nodes__ABinopExpr__n_expr2_61d(val* self, val* p0) {
5562 val* var_node /* var node: AExpr */;
5563 var_node = p0;
5564 self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_expr2].val = var_node; /* _n_expr2 on <self:ANeExpr> */
5565 {
5566 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
5567 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
5568 RET_LABEL1:(void)0;
5569 }
5570 }
5571 RET_LABEL:;
5572 }
5573 /* method parser_prod#ANeExpr#visit_all for (self: ANeExpr, Visitor) */
5574 void nit__parser_prod___ANeExpr___nit__parser_nodes__ANode__visit_all(val* self, val* p0) {
5575 val* var_v /* var v: Visitor */;
5576 val* var /* : AExpr */;
5577 val* var1 /* : Token */;
5578 val* var2 /* : AExpr */;
5579 var_v = p0;
5580 var = self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ANeExpr> */
5581 if (unlikely(var == NULL)) {
5582 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
5583 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3901);
5584 fatal_exit(1);
5585 }
5586 {
5587 nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
5588 }
5589 var1 = self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_op].val; /* _n_op on <self:ANeExpr> */
5590 if (unlikely(var1 == NULL)) {
5591 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
5592 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3902);
5593 fatal_exit(1);
5594 }
5595 {
5596 nit___nit__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
5597 }
5598 var2 = self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:ANeExpr> */
5599 if (unlikely(var2 == NULL)) {
5600 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
5601 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3903);
5602 fatal_exit(1);
5603 }
5604 {
5605 nit___nit__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
5606 }
5607 RET_LABEL:;
5608 }
5609 /* method parser_prod#ALtExpr#init_altexpr for (self: ALtExpr, nullable AExpr, nullable TLt, nullable AExpr) */
5610 void nit__parser_prod___ALtExpr___init_altexpr(val* self, val* p0, val* p1, val* p2) {
5611 val* var_n_expr /* var n_expr: nullable AExpr */;
5612 val* var_n_op /* var n_op: nullable TLt */;
5613 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
5614 {
5615 { /* Inline kernel#Object#init (self) on <self:ALtExpr> */
5616 RET_LABEL1:(void)0;
5617 }
5618 }
5619 var_n_expr = p0;
5620 var_n_op = p1;
5621 var_n_expr2 = p2;
5622 if (unlikely(var_n_expr == NULL)) {
5623 PRINT_ERROR("Runtime error: %s", "Cast failed");
5624 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3913);
5625 fatal_exit(1);
5626 }
5627 self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:ALtExpr> */
5628 if (var_n_expr == NULL) {
5629 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5630 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3914);
5631 fatal_exit(1);
5632 } else {
5633 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
5634 if (unlikely(var_n_expr == NULL)) {
5635 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5636 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
5637 fatal_exit(1);
5638 }
5639 var_n_expr->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
5640 RET_LABEL2:(void)0;
5641 }
5642 }
5643 if (unlikely(var_n_op == NULL)) {
5644 PRINT_ERROR("Runtime error: %s", "Cast failed");
5645 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3915);
5646 fatal_exit(1);
5647 }
5648 self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_op].val = var_n_op; /* _n_op on <self:ALtExpr> */
5649 if (var_n_op == NULL) {
5650 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5651 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3916);
5652 fatal_exit(1);
5653 } else {
5654 { /* Inline parser_nodes#ANode#parent= (var_n_op,self) on <var_n_op:nullable TLt> */
5655 if (unlikely(var_n_op == NULL)) {
5656 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5657 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
5658 fatal_exit(1);
5659 }
5660 var_n_op->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_op:nullable TLt> */
5661 RET_LABEL3:(void)0;
5662 }
5663 }
5664 if (unlikely(var_n_expr2 == NULL)) {
5665 PRINT_ERROR("Runtime error: %s", "Cast failed");
5666 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3917);
5667 fatal_exit(1);
5668 }
5669 self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:ALtExpr> */
5670 if (var_n_expr2 == NULL) {
5671 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5672 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3918);
5673 fatal_exit(1);
5674 } else {
5675 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
5676 if (unlikely(var_n_expr2 == NULL)) {
5677 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5678 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
5679 fatal_exit(1);
5680 }
5681 var_n_expr2->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
5682 RET_LABEL4:(void)0;
5683 }
5684 }
5685 RET_LABEL:;
5686 }
5687 /* method parser_prod#ALtExpr#replace_child for (self: ALtExpr, ANode, nullable ANode) */
5688 void nit__parser_prod___ALtExpr___nit__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
5689 val* var_old_child /* var old_child: ANode */;
5690 val* var_new_child /* var new_child: nullable ANode */;
5691 val* var /* : AExpr */;
5692 short int var1 /* : Bool */;
5693 val* var_other /* var other: nullable Object */;
5694 short int var3 /* : Bool */;
5695 short int var5 /* : Bool */;
5696 short int var6 /* : Bool */;
5697 int cltype;
5698 int idtype;
5699 const char* var_class_name;
5700 val* var7 /* : Token */;
5701 short int var8 /* : Bool */;
5702 short int var10 /* : Bool */;
5703 short int var12 /* : Bool */;
5704 short int var13 /* : Bool */;
5705 int cltype14;
5706 int idtype15;
5707 const char* var_class_name16;
5708 val* var17 /* : AExpr */;
5709 short int var18 /* : Bool */;
5710 short int var20 /* : Bool */;
5711 short int var22 /* : Bool */;
5712 short int var23 /* : Bool */;
5713 int cltype24;
5714 int idtype25;
5715 const char* var_class_name26;
5716 var_old_child = p0;
5717 var_new_child = p1;
5718 var = self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ALtExpr> */
5719 if (unlikely(var == NULL)) {
5720 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
5721 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3923);
5722 fatal_exit(1);
5723 }
5724 {
5725 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
5726 var_other = var_old_child;
5727 {
5728 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
5729 var5 = var == var_other;
5730 var3 = var5;
5731 goto RET_LABEL4;
5732 RET_LABEL4:(void)0;
5733 }
5734 }
5735 var1 = var3;
5736 goto RET_LABEL2;
5737 RET_LABEL2:(void)0;
5738 }
5739 }
5740 if (var1){
5741 /* <var_new_child:nullable ANode> isa AExpr */
5742 cltype = type_nit__AExpr.color;
5743 idtype = type_nit__AExpr.id;
5744 if(var_new_child == NULL) {
5745 var6 = 0;
5746 } else {
5747 if(cltype >= var_new_child->type->table_size) {
5748 var6 = 0;
5749 } else {
5750 var6 = var_new_child->type->type_table[cltype] == idtype;
5751 }
5752 }
5753 if (unlikely(!var6)) {
5754 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
5755 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
5756 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3924);
5757 fatal_exit(1);
5758 }
5759 {
5760 nit__parser_prod___ALtExpr___nit__parser_nodes__ASendExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#ALtExpr#n_expr= on <self:ALtExpr>*/
5761 }
5762 goto RET_LABEL;
5763 } else {
5764 }
5765 var7 = self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_op].val; /* _n_op on <self:ALtExpr> */
5766 if (unlikely(var7 == NULL)) {
5767 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
5768 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3927);
5769 fatal_exit(1);
5770 }
5771 {
5772 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:Token> */
5773 var_other = var_old_child;
5774 {
5775 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:Token> */
5776 var12 = var7 == var_other;
5777 var10 = var12;
5778 goto RET_LABEL11;
5779 RET_LABEL11:(void)0;
5780 }
5781 }
5782 var8 = var10;
5783 goto RET_LABEL9;
5784 RET_LABEL9:(void)0;
5785 }
5786 }
5787 if (var8){
5788 /* <var_new_child:nullable ANode> isa TLt */
5789 cltype14 = type_nit__TLt.color;
5790 idtype15 = type_nit__TLt.id;
5791 if(var_new_child == NULL) {
5792 var13 = 0;
5793 } else {
5794 if(cltype14 >= var_new_child->type->table_size) {
5795 var13 = 0;
5796 } else {
5797 var13 = var_new_child->type->type_table[cltype14] == idtype15;
5798 }
5799 }
5800 if (unlikely(!var13)) {
5801 var_class_name16 = var_new_child == NULL ? "null" : var_new_child->type->name;
5802 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TLt", var_class_name16);
5803 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3928);
5804 fatal_exit(1);
5805 }
5806 {
5807 nit__parser_prod___ALtExpr___nit__parser_nodes__ABinopExpr__n_op_61d(self, var_new_child); /* Direct call parser_prod#ALtExpr#n_op= on <self:ALtExpr>*/
5808 }
5809 goto RET_LABEL;
5810 } else {
5811 }
5812 var17 = self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:ALtExpr> */
5813 if (unlikely(var17 == NULL)) {
5814 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
5815 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3931);
5816 fatal_exit(1);
5817 }
5818 {
5819 { /* Inline kernel#Object#== (var17,var_old_child) on <var17:AExpr> */
5820 var_other = var_old_child;
5821 {
5822 { /* Inline kernel#Object#is_same_instance (var17,var_other) on <var17:AExpr> */
5823 var22 = var17 == var_other;
5824 var20 = var22;
5825 goto RET_LABEL21;
5826 RET_LABEL21:(void)0;
5827 }
5828 }
5829 var18 = var20;
5830 goto RET_LABEL19;
5831 RET_LABEL19:(void)0;
5832 }
5833 }
5834 if (var18){
5835 /* <var_new_child:nullable ANode> isa AExpr */
5836 cltype24 = type_nit__AExpr.color;
5837 idtype25 = type_nit__AExpr.id;
5838 if(var_new_child == NULL) {
5839 var23 = 0;
5840 } else {
5841 if(cltype24 >= var_new_child->type->table_size) {
5842 var23 = 0;
5843 } else {
5844 var23 = var_new_child->type->type_table[cltype24] == idtype25;
5845 }
5846 }
5847 if (unlikely(!var23)) {
5848 var_class_name26 = var_new_child == NULL ? "null" : var_new_child->type->name;
5849 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name26);
5850 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3932);
5851 fatal_exit(1);
5852 }
5853 {
5854 nit__parser_prod___ALtExpr___nit__parser_nodes__ABinopExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#ALtExpr#n_expr2= on <self:ALtExpr>*/
5855 }
5856 goto RET_LABEL;
5857 } else {
5858 }
5859 RET_LABEL:;
5860 }
5861 /* method parser_prod#ALtExpr#n_expr= for (self: ALtExpr, AExpr) */
5862 void nit__parser_prod___ALtExpr___nit__parser_nodes__ASendExpr__n_expr_61d(val* self, val* p0) {
5863 val* var_node /* var node: AExpr */;
5864 var_node = p0;
5865 self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:ALtExpr> */
5866 {
5867 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
5868 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
5869 RET_LABEL1:(void)0;
5870 }
5871 }
5872 RET_LABEL:;
5873 }
5874 /* method parser_prod#ALtExpr#n_op= for (self: ALtExpr, Token) */
5875 void nit__parser_prod___ALtExpr___nit__parser_nodes__ABinopExpr__n_op_61d(val* self, val* p0) {
5876 val* var_node /* var node: Token */;
5877 var_node = p0;
5878 self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_op].val = var_node; /* _n_op on <self:ALtExpr> */
5879 {
5880 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:Token> */
5881 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:Token> */
5882 RET_LABEL1:(void)0;
5883 }
5884 }
5885 RET_LABEL:;
5886 }
5887 /* method parser_prod#ALtExpr#n_expr2= for (self: ALtExpr, AExpr) */
5888 void nit__parser_prod___ALtExpr___nit__parser_nodes__ABinopExpr__n_expr2_61d(val* self, val* p0) {
5889 val* var_node /* var node: AExpr */;
5890 var_node = p0;
5891 self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_expr2].val = var_node; /* _n_expr2 on <self:ALtExpr> */
5892 {
5893 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
5894 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
5895 RET_LABEL1:(void)0;
5896 }
5897 }
5898 RET_LABEL:;
5899 }
5900 /* method parser_prod#ALtExpr#visit_all for (self: ALtExpr, Visitor) */
5901 void nit__parser_prod___ALtExpr___nit__parser_nodes__ANode__visit_all(val* self, val* p0) {
5902 val* var_v /* var v: Visitor */;
5903 val* var /* : AExpr */;
5904 val* var1 /* : Token */;
5905 val* var2 /* : AExpr */;
5906 var_v = p0;
5907 var = self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ALtExpr> */
5908 if (unlikely(var == NULL)) {
5909 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
5910 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3956);
5911 fatal_exit(1);
5912 }
5913 {
5914 nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
5915 }
5916 var1 = self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_op].val; /* _n_op on <self:ALtExpr> */
5917 if (unlikely(var1 == NULL)) {
5918 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
5919 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3957);
5920 fatal_exit(1);
5921 }
5922 {
5923 nit___nit__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
5924 }
5925 var2 = self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:ALtExpr> */
5926 if (unlikely(var2 == NULL)) {
5927 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
5928 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3958);
5929 fatal_exit(1);
5930 }
5931 {
5932 nit___nit__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
5933 }
5934 RET_LABEL:;
5935 }
5936 /* method parser_prod#ALeExpr#init_aleexpr for (self: ALeExpr, nullable AExpr, nullable TLe, nullable AExpr) */
5937 void nit__parser_prod___ALeExpr___init_aleexpr(val* self, val* p0, val* p1, val* p2) {
5938 val* var_n_expr /* var n_expr: nullable AExpr */;
5939 val* var_n_op /* var n_op: nullable TLe */;
5940 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
5941 {
5942 { /* Inline kernel#Object#init (self) on <self:ALeExpr> */
5943 RET_LABEL1:(void)0;
5944 }
5945 }
5946 var_n_expr = p0;
5947 var_n_op = p1;
5948 var_n_expr2 = p2;
5949 if (unlikely(var_n_expr == NULL)) {
5950 PRINT_ERROR("Runtime error: %s", "Cast failed");
5951 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3968);
5952 fatal_exit(1);
5953 }
5954 self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:ALeExpr> */
5955 if (var_n_expr == NULL) {
5956 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5957 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3969);
5958 fatal_exit(1);
5959 } else {
5960 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
5961 if (unlikely(var_n_expr == NULL)) {
5962 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5963 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
5964 fatal_exit(1);
5965 }
5966 var_n_expr->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
5967 RET_LABEL2:(void)0;
5968 }
5969 }
5970 if (unlikely(var_n_op == NULL)) {
5971 PRINT_ERROR("Runtime error: %s", "Cast failed");
5972 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3970);
5973 fatal_exit(1);
5974 }
5975 self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_op].val = var_n_op; /* _n_op on <self:ALeExpr> */
5976 if (var_n_op == NULL) {
5977 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5978 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3971);
5979 fatal_exit(1);
5980 } else {
5981 { /* Inline parser_nodes#ANode#parent= (var_n_op,self) on <var_n_op:nullable TLe> */
5982 if (unlikely(var_n_op == NULL)) {
5983 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5984 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
5985 fatal_exit(1);
5986 }
5987 var_n_op->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_op:nullable TLe> */
5988 RET_LABEL3:(void)0;
5989 }
5990 }
5991 if (unlikely(var_n_expr2 == NULL)) {
5992 PRINT_ERROR("Runtime error: %s", "Cast failed");
5993 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3972);
5994 fatal_exit(1);
5995 }
5996 self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:ALeExpr> */
5997 if (var_n_expr2 == NULL) {
5998 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5999 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3973);
6000 fatal_exit(1);
6001 } else {
6002 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
6003 if (unlikely(var_n_expr2 == NULL)) {
6004 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6005 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
6006 fatal_exit(1);
6007 }
6008 var_n_expr2->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
6009 RET_LABEL4:(void)0;
6010 }
6011 }
6012 RET_LABEL:;
6013 }
6014 /* method parser_prod#ALeExpr#replace_child for (self: ALeExpr, ANode, nullable ANode) */
6015 void nit__parser_prod___ALeExpr___nit__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
6016 val* var_old_child /* var old_child: ANode */;
6017 val* var_new_child /* var new_child: nullable ANode */;
6018 val* var /* : AExpr */;
6019 short int var1 /* : Bool */;
6020 val* var_other /* var other: nullable Object */;
6021 short int var3 /* : Bool */;
6022 short int var5 /* : Bool */;
6023 short int var6 /* : Bool */;
6024 int cltype;
6025 int idtype;
6026 const char* var_class_name;
6027 val* var7 /* : Token */;
6028 short int var8 /* : Bool */;
6029 short int var10 /* : Bool */;
6030 short int var12 /* : Bool */;
6031 short int var13 /* : Bool */;
6032 int cltype14;
6033 int idtype15;
6034 const char* var_class_name16;
6035 val* var17 /* : AExpr */;
6036 short int var18 /* : Bool */;
6037 short int var20 /* : Bool */;
6038 short int var22 /* : Bool */;
6039 short int var23 /* : Bool */;
6040 int cltype24;
6041 int idtype25;
6042 const char* var_class_name26;
6043 var_old_child = p0;
6044 var_new_child = p1;
6045 var = self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ALeExpr> */
6046 if (unlikely(var == NULL)) {
6047 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
6048 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3978);
6049 fatal_exit(1);
6050 }
6051 {
6052 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
6053 var_other = var_old_child;
6054 {
6055 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
6056 var5 = var == var_other;
6057 var3 = var5;
6058 goto RET_LABEL4;
6059 RET_LABEL4:(void)0;
6060 }
6061 }
6062 var1 = var3;
6063 goto RET_LABEL2;
6064 RET_LABEL2:(void)0;
6065 }
6066 }
6067 if (var1){
6068 /* <var_new_child:nullable ANode> isa AExpr */
6069 cltype = type_nit__AExpr.color;
6070 idtype = type_nit__AExpr.id;
6071 if(var_new_child == NULL) {
6072 var6 = 0;
6073 } else {
6074 if(cltype >= var_new_child->type->table_size) {
6075 var6 = 0;
6076 } else {
6077 var6 = var_new_child->type->type_table[cltype] == idtype;
6078 }
6079 }
6080 if (unlikely(!var6)) {
6081 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
6082 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
6083 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3979);
6084 fatal_exit(1);
6085 }
6086 {
6087 nit__parser_prod___ALeExpr___nit__parser_nodes__ASendExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#ALeExpr#n_expr= on <self:ALeExpr>*/
6088 }
6089 goto RET_LABEL;
6090 } else {
6091 }
6092 var7 = self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_op].val; /* _n_op on <self:ALeExpr> */
6093 if (unlikely(var7 == NULL)) {
6094 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
6095 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3982);
6096 fatal_exit(1);
6097 }
6098 {
6099 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:Token> */
6100 var_other = var_old_child;
6101 {
6102 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:Token> */
6103 var12 = var7 == var_other;
6104 var10 = var12;
6105 goto RET_LABEL11;
6106 RET_LABEL11:(void)0;
6107 }
6108 }
6109 var8 = var10;
6110 goto RET_LABEL9;
6111 RET_LABEL9:(void)0;
6112 }
6113 }
6114 if (var8){
6115 /* <var_new_child:nullable ANode> isa TLe */
6116 cltype14 = type_nit__TLe.color;
6117 idtype15 = type_nit__TLe.id;
6118 if(var_new_child == NULL) {
6119 var13 = 0;
6120 } else {
6121 if(cltype14 >= var_new_child->type->table_size) {
6122 var13 = 0;
6123 } else {
6124 var13 = var_new_child->type->type_table[cltype14] == idtype15;
6125 }
6126 }
6127 if (unlikely(!var13)) {
6128 var_class_name16 = var_new_child == NULL ? "null" : var_new_child->type->name;
6129 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TLe", var_class_name16);
6130 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3983);
6131 fatal_exit(1);
6132 }
6133 {
6134 nit__parser_prod___ALeExpr___nit__parser_nodes__ABinopExpr__n_op_61d(self, var_new_child); /* Direct call parser_prod#ALeExpr#n_op= on <self:ALeExpr>*/
6135 }
6136 goto RET_LABEL;
6137 } else {
6138 }
6139 var17 = self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:ALeExpr> */
6140 if (unlikely(var17 == NULL)) {
6141 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
6142 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3986);
6143 fatal_exit(1);
6144 }
6145 {
6146 { /* Inline kernel#Object#== (var17,var_old_child) on <var17:AExpr> */
6147 var_other = var_old_child;
6148 {
6149 { /* Inline kernel#Object#is_same_instance (var17,var_other) on <var17:AExpr> */
6150 var22 = var17 == var_other;
6151 var20 = var22;
6152 goto RET_LABEL21;
6153 RET_LABEL21:(void)0;
6154 }
6155 }
6156 var18 = var20;
6157 goto RET_LABEL19;
6158 RET_LABEL19:(void)0;
6159 }
6160 }
6161 if (var18){
6162 /* <var_new_child:nullable ANode> isa AExpr */
6163 cltype24 = type_nit__AExpr.color;
6164 idtype25 = type_nit__AExpr.id;
6165 if(var_new_child == NULL) {
6166 var23 = 0;
6167 } else {
6168 if(cltype24 >= var_new_child->type->table_size) {
6169 var23 = 0;
6170 } else {
6171 var23 = var_new_child->type->type_table[cltype24] == idtype25;
6172 }
6173 }
6174 if (unlikely(!var23)) {
6175 var_class_name26 = var_new_child == NULL ? "null" : var_new_child->type->name;
6176 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name26);
6177 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 3987);
6178 fatal_exit(1);
6179 }
6180 {
6181 nit__parser_prod___ALeExpr___nit__parser_nodes__ABinopExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#ALeExpr#n_expr2= on <self:ALeExpr>*/
6182 }
6183 goto RET_LABEL;
6184 } else {
6185 }
6186 RET_LABEL:;
6187 }
6188 /* method parser_prod#ALeExpr#n_expr= for (self: ALeExpr, AExpr) */
6189 void nit__parser_prod___ALeExpr___nit__parser_nodes__ASendExpr__n_expr_61d(val* self, val* p0) {
6190 val* var_node /* var node: AExpr */;
6191 var_node = p0;
6192 self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:ALeExpr> */
6193 {
6194 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
6195 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
6196 RET_LABEL1:(void)0;
6197 }
6198 }
6199 RET_LABEL:;
6200 }
6201 /* method parser_prod#ALeExpr#n_op= for (self: ALeExpr, Token) */
6202 void nit__parser_prod___ALeExpr___nit__parser_nodes__ABinopExpr__n_op_61d(val* self, val* p0) {
6203 val* var_node /* var node: Token */;
6204 var_node = p0;
6205 self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_op].val = var_node; /* _n_op on <self:ALeExpr> */
6206 {
6207 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:Token> */
6208 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:Token> */
6209 RET_LABEL1:(void)0;
6210 }
6211 }
6212 RET_LABEL:;
6213 }
6214 /* method parser_prod#ALeExpr#n_expr2= for (self: ALeExpr, AExpr) */
6215 void nit__parser_prod___ALeExpr___nit__parser_nodes__ABinopExpr__n_expr2_61d(val* self, val* p0) {
6216 val* var_node /* var node: AExpr */;
6217 var_node = p0;
6218 self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_expr2].val = var_node; /* _n_expr2 on <self:ALeExpr> */
6219 {
6220 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
6221 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
6222 RET_LABEL1:(void)0;
6223 }
6224 }
6225 RET_LABEL:;
6226 }
6227 /* method parser_prod#ALeExpr#visit_all for (self: ALeExpr, Visitor) */
6228 void nit__parser_prod___ALeExpr___nit__parser_nodes__ANode__visit_all(val* self, val* p0) {
6229 val* var_v /* var v: Visitor */;
6230 val* var /* : AExpr */;
6231 val* var1 /* : Token */;
6232 val* var2 /* : AExpr */;
6233 var_v = p0;
6234 var = self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ALeExpr> */
6235 if (unlikely(var == NULL)) {
6236 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
6237 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4011);
6238 fatal_exit(1);
6239 }
6240 {
6241 nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6242 }
6243 var1 = self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_op].val; /* _n_op on <self:ALeExpr> */
6244 if (unlikely(var1 == NULL)) {
6245 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
6246 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4012);
6247 fatal_exit(1);
6248 }
6249 {
6250 nit___nit__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6251 }
6252 var2 = self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:ALeExpr> */
6253 if (unlikely(var2 == NULL)) {
6254 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
6255 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4013);
6256 fatal_exit(1);
6257 }
6258 {
6259 nit___nit__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6260 }
6261 RET_LABEL:;
6262 }
6263 /* method parser_prod#ALlExpr#init_allexpr for (self: ALlExpr, nullable AExpr, nullable TLl, nullable AExpr) */
6264 void nit__parser_prod___ALlExpr___init_allexpr(val* self, val* p0, val* p1, val* p2) {
6265 val* var_n_expr /* var n_expr: nullable AExpr */;
6266 val* var_n_op /* var n_op: nullable TLl */;
6267 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
6268 {
6269 { /* Inline kernel#Object#init (self) on <self:ALlExpr> */
6270 RET_LABEL1:(void)0;
6271 }
6272 }
6273 var_n_expr = p0;
6274 var_n_op = p1;
6275 var_n_expr2 = p2;
6276 if (unlikely(var_n_expr == NULL)) {
6277 PRINT_ERROR("Runtime error: %s", "Cast failed");
6278 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4023);
6279 fatal_exit(1);
6280 }
6281 self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:ALlExpr> */
6282 if (var_n_expr == NULL) {
6283 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6284 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4024);
6285 fatal_exit(1);
6286 } else {
6287 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
6288 if (unlikely(var_n_expr == NULL)) {
6289 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6290 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
6291 fatal_exit(1);
6292 }
6293 var_n_expr->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
6294 RET_LABEL2:(void)0;
6295 }
6296 }
6297 if (unlikely(var_n_op == NULL)) {
6298 PRINT_ERROR("Runtime error: %s", "Cast failed");
6299 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4025);
6300 fatal_exit(1);
6301 }
6302 self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_op].val = var_n_op; /* _n_op on <self:ALlExpr> */
6303 if (var_n_op == NULL) {
6304 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6305 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4026);
6306 fatal_exit(1);
6307 } else {
6308 { /* Inline parser_nodes#ANode#parent= (var_n_op,self) on <var_n_op:nullable TLl> */
6309 if (unlikely(var_n_op == NULL)) {
6310 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6311 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
6312 fatal_exit(1);
6313 }
6314 var_n_op->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_op:nullable TLl> */
6315 RET_LABEL3:(void)0;
6316 }
6317 }
6318 if (unlikely(var_n_expr2 == NULL)) {
6319 PRINT_ERROR("Runtime error: %s", "Cast failed");
6320 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4027);
6321 fatal_exit(1);
6322 }
6323 self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:ALlExpr> */
6324 if (var_n_expr2 == NULL) {
6325 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6326 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4028);
6327 fatal_exit(1);
6328 } else {
6329 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
6330 if (unlikely(var_n_expr2 == NULL)) {
6331 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6332 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
6333 fatal_exit(1);
6334 }
6335 var_n_expr2->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
6336 RET_LABEL4:(void)0;
6337 }
6338 }
6339 RET_LABEL:;
6340 }
6341 /* method parser_prod#ALlExpr#replace_child for (self: ALlExpr, ANode, nullable ANode) */
6342 void nit__parser_prod___ALlExpr___nit__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
6343 val* var_old_child /* var old_child: ANode */;
6344 val* var_new_child /* var new_child: nullable ANode */;
6345 val* var /* : AExpr */;
6346 short int var1 /* : Bool */;
6347 val* var_other /* var other: nullable Object */;
6348 short int var3 /* : Bool */;
6349 short int var5 /* : Bool */;
6350 short int var6 /* : Bool */;
6351 int cltype;
6352 int idtype;
6353 const char* var_class_name;
6354 val* var7 /* : Token */;
6355 short int var8 /* : Bool */;
6356 short int var10 /* : Bool */;
6357 short int var12 /* : Bool */;
6358 short int var13 /* : Bool */;
6359 int cltype14;
6360 int idtype15;
6361 const char* var_class_name16;
6362 val* var17 /* : AExpr */;
6363 short int var18 /* : Bool */;
6364 short int var20 /* : Bool */;
6365 short int var22 /* : Bool */;
6366 short int var23 /* : Bool */;
6367 int cltype24;
6368 int idtype25;
6369 const char* var_class_name26;
6370 var_old_child = p0;
6371 var_new_child = p1;
6372 var = self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ALlExpr> */
6373 if (unlikely(var == NULL)) {
6374 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
6375 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4033);
6376 fatal_exit(1);
6377 }
6378 {
6379 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
6380 var_other = var_old_child;
6381 {
6382 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
6383 var5 = var == var_other;
6384 var3 = var5;
6385 goto RET_LABEL4;
6386 RET_LABEL4:(void)0;
6387 }
6388 }
6389 var1 = var3;
6390 goto RET_LABEL2;
6391 RET_LABEL2:(void)0;
6392 }
6393 }
6394 if (var1){
6395 /* <var_new_child:nullable ANode> isa AExpr */
6396 cltype = type_nit__AExpr.color;
6397 idtype = type_nit__AExpr.id;
6398 if(var_new_child == NULL) {
6399 var6 = 0;
6400 } else {
6401 if(cltype >= var_new_child->type->table_size) {
6402 var6 = 0;
6403 } else {
6404 var6 = var_new_child->type->type_table[cltype] == idtype;
6405 }
6406 }
6407 if (unlikely(!var6)) {
6408 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
6409 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
6410 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4034);
6411 fatal_exit(1);
6412 }
6413 {
6414 nit__parser_prod___ALlExpr___nit__parser_nodes__ASendExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#ALlExpr#n_expr= on <self:ALlExpr>*/
6415 }
6416 goto RET_LABEL;
6417 } else {
6418 }
6419 var7 = self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_op].val; /* _n_op on <self:ALlExpr> */
6420 if (unlikely(var7 == NULL)) {
6421 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
6422 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4037);
6423 fatal_exit(1);
6424 }
6425 {
6426 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:Token> */
6427 var_other = var_old_child;
6428 {
6429 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:Token> */
6430 var12 = var7 == var_other;
6431 var10 = var12;
6432 goto RET_LABEL11;
6433 RET_LABEL11:(void)0;
6434 }
6435 }
6436 var8 = var10;
6437 goto RET_LABEL9;
6438 RET_LABEL9:(void)0;
6439 }
6440 }
6441 if (var8){
6442 /* <var_new_child:nullable ANode> isa TLl */
6443 cltype14 = type_nit__TLl.color;
6444 idtype15 = type_nit__TLl.id;
6445 if(var_new_child == NULL) {
6446 var13 = 0;
6447 } else {
6448 if(cltype14 >= var_new_child->type->table_size) {
6449 var13 = 0;
6450 } else {
6451 var13 = var_new_child->type->type_table[cltype14] == idtype15;
6452 }
6453 }
6454 if (unlikely(!var13)) {
6455 var_class_name16 = var_new_child == NULL ? "null" : var_new_child->type->name;
6456 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TLl", var_class_name16);
6457 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4038);
6458 fatal_exit(1);
6459 }
6460 {
6461 nit__parser_prod___ALlExpr___nit__parser_nodes__ABinopExpr__n_op_61d(self, var_new_child); /* Direct call parser_prod#ALlExpr#n_op= on <self:ALlExpr>*/
6462 }
6463 goto RET_LABEL;
6464 } else {
6465 }
6466 var17 = self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:ALlExpr> */
6467 if (unlikely(var17 == NULL)) {
6468 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
6469 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4041);
6470 fatal_exit(1);
6471 }
6472 {
6473 { /* Inline kernel#Object#== (var17,var_old_child) on <var17:AExpr> */
6474 var_other = var_old_child;
6475 {
6476 { /* Inline kernel#Object#is_same_instance (var17,var_other) on <var17:AExpr> */
6477 var22 = var17 == var_other;
6478 var20 = var22;
6479 goto RET_LABEL21;
6480 RET_LABEL21:(void)0;
6481 }
6482 }
6483 var18 = var20;
6484 goto RET_LABEL19;
6485 RET_LABEL19:(void)0;
6486 }
6487 }
6488 if (var18){
6489 /* <var_new_child:nullable ANode> isa AExpr */
6490 cltype24 = type_nit__AExpr.color;
6491 idtype25 = type_nit__AExpr.id;
6492 if(var_new_child == NULL) {
6493 var23 = 0;
6494 } else {
6495 if(cltype24 >= var_new_child->type->table_size) {
6496 var23 = 0;
6497 } else {
6498 var23 = var_new_child->type->type_table[cltype24] == idtype25;
6499 }
6500 }
6501 if (unlikely(!var23)) {
6502 var_class_name26 = var_new_child == NULL ? "null" : var_new_child->type->name;
6503 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name26);
6504 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4042);
6505 fatal_exit(1);
6506 }
6507 {
6508 nit__parser_prod___ALlExpr___nit__parser_nodes__ABinopExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#ALlExpr#n_expr2= on <self:ALlExpr>*/
6509 }
6510 goto RET_LABEL;
6511 } else {
6512 }
6513 RET_LABEL:;
6514 }
6515 /* method parser_prod#ALlExpr#n_expr= for (self: ALlExpr, AExpr) */
6516 void nit__parser_prod___ALlExpr___nit__parser_nodes__ASendExpr__n_expr_61d(val* self, val* p0) {
6517 val* var_node /* var node: AExpr */;
6518 var_node = p0;
6519 self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:ALlExpr> */
6520 {
6521 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
6522 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
6523 RET_LABEL1:(void)0;
6524 }
6525 }
6526 RET_LABEL:;
6527 }
6528 /* method parser_prod#ALlExpr#n_op= for (self: ALlExpr, Token) */
6529 void nit__parser_prod___ALlExpr___nit__parser_nodes__ABinopExpr__n_op_61d(val* self, val* p0) {
6530 val* var_node /* var node: Token */;
6531 var_node = p0;
6532 self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_op].val = var_node; /* _n_op on <self:ALlExpr> */
6533 {
6534 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:Token> */
6535 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:Token> */
6536 RET_LABEL1:(void)0;
6537 }
6538 }
6539 RET_LABEL:;
6540 }
6541 /* method parser_prod#ALlExpr#n_expr2= for (self: ALlExpr, AExpr) */
6542 void nit__parser_prod___ALlExpr___nit__parser_nodes__ABinopExpr__n_expr2_61d(val* self, val* p0) {
6543 val* var_node /* var node: AExpr */;
6544 var_node = p0;
6545 self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_expr2].val = var_node; /* _n_expr2 on <self:ALlExpr> */
6546 {
6547 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
6548 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
6549 RET_LABEL1:(void)0;
6550 }
6551 }
6552 RET_LABEL:;
6553 }
6554 /* method parser_prod#ALlExpr#visit_all for (self: ALlExpr, Visitor) */
6555 void nit__parser_prod___ALlExpr___nit__parser_nodes__ANode__visit_all(val* self, val* p0) {
6556 val* var_v /* var v: Visitor */;
6557 val* var /* : AExpr */;
6558 val* var1 /* : Token */;
6559 val* var2 /* : AExpr */;
6560 var_v = p0;
6561 var = self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ALlExpr> */
6562 if (unlikely(var == NULL)) {
6563 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
6564 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4066);
6565 fatal_exit(1);
6566 }
6567 {
6568 nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6569 }
6570 var1 = self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_op].val; /* _n_op on <self:ALlExpr> */
6571 if (unlikely(var1 == NULL)) {
6572 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
6573 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4067);
6574 fatal_exit(1);
6575 }
6576 {
6577 nit___nit__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6578 }
6579 var2 = self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:ALlExpr> */
6580 if (unlikely(var2 == NULL)) {
6581 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
6582 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4068);
6583 fatal_exit(1);
6584 }
6585 {
6586 nit___nit__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6587 }
6588 RET_LABEL:;
6589 }
6590 /* method parser_prod#AGtExpr#init_agtexpr for (self: AGtExpr, nullable AExpr, nullable TGt, nullable AExpr) */
6591 void nit__parser_prod___AGtExpr___init_agtexpr(val* self, val* p0, val* p1, val* p2) {
6592 val* var_n_expr /* var n_expr: nullable AExpr */;
6593 val* var_n_op /* var n_op: nullable TGt */;
6594 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
6595 {
6596 { /* Inline kernel#Object#init (self) on <self:AGtExpr> */
6597 RET_LABEL1:(void)0;
6598 }
6599 }
6600 var_n_expr = p0;
6601 var_n_op = p1;
6602 var_n_expr2 = p2;
6603 if (unlikely(var_n_expr == NULL)) {
6604 PRINT_ERROR("Runtime error: %s", "Cast failed");
6605 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4078);
6606 fatal_exit(1);
6607 }
6608 self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AGtExpr> */
6609 if (var_n_expr == NULL) {
6610 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6611 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4079);
6612 fatal_exit(1);
6613 } else {
6614 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
6615 if (unlikely(var_n_expr == NULL)) {
6616 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6617 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
6618 fatal_exit(1);
6619 }
6620 var_n_expr->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
6621 RET_LABEL2:(void)0;
6622 }
6623 }
6624 if (unlikely(var_n_op == NULL)) {
6625 PRINT_ERROR("Runtime error: %s", "Cast failed");
6626 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4080);
6627 fatal_exit(1);
6628 }
6629 self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_op].val = var_n_op; /* _n_op on <self:AGtExpr> */
6630 if (var_n_op == NULL) {
6631 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6632 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4081);
6633 fatal_exit(1);
6634 } else {
6635 { /* Inline parser_nodes#ANode#parent= (var_n_op,self) on <var_n_op:nullable TGt> */
6636 if (unlikely(var_n_op == NULL)) {
6637 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6638 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
6639 fatal_exit(1);
6640 }
6641 var_n_op->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_op:nullable TGt> */
6642 RET_LABEL3:(void)0;
6643 }
6644 }
6645 if (unlikely(var_n_expr2 == NULL)) {
6646 PRINT_ERROR("Runtime error: %s", "Cast failed");
6647 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4082);
6648 fatal_exit(1);
6649 }
6650 self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:AGtExpr> */
6651 if (var_n_expr2 == NULL) {
6652 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6653 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4083);
6654 fatal_exit(1);
6655 } else {
6656 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
6657 if (unlikely(var_n_expr2 == NULL)) {
6658 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6659 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
6660 fatal_exit(1);
6661 }
6662 var_n_expr2->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
6663 RET_LABEL4:(void)0;
6664 }
6665 }
6666 RET_LABEL:;
6667 }
6668 /* method parser_prod#AGtExpr#replace_child for (self: AGtExpr, ANode, nullable ANode) */
6669 void nit__parser_prod___AGtExpr___nit__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
6670 val* var_old_child /* var old_child: ANode */;
6671 val* var_new_child /* var new_child: nullable ANode */;
6672 val* var /* : AExpr */;
6673 short int var1 /* : Bool */;
6674 val* var_other /* var other: nullable Object */;
6675 short int var3 /* : Bool */;
6676 short int var5 /* : Bool */;
6677 short int var6 /* : Bool */;
6678 int cltype;
6679 int idtype;
6680 const char* var_class_name;
6681 val* var7 /* : Token */;
6682 short int var8 /* : Bool */;
6683 short int var10 /* : Bool */;
6684 short int var12 /* : Bool */;
6685 short int var13 /* : Bool */;
6686 int cltype14;
6687 int idtype15;
6688 const char* var_class_name16;
6689 val* var17 /* : AExpr */;
6690 short int var18 /* : Bool */;
6691 short int var20 /* : Bool */;
6692 short int var22 /* : Bool */;
6693 short int var23 /* : Bool */;
6694 int cltype24;
6695 int idtype25;
6696 const char* var_class_name26;
6697 var_old_child = p0;
6698 var_new_child = p1;
6699 var = self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AGtExpr> */
6700 if (unlikely(var == NULL)) {
6701 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
6702 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4088);
6703 fatal_exit(1);
6704 }
6705 {
6706 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
6707 var_other = var_old_child;
6708 {
6709 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
6710 var5 = var == var_other;
6711 var3 = var5;
6712 goto RET_LABEL4;
6713 RET_LABEL4:(void)0;
6714 }
6715 }
6716 var1 = var3;
6717 goto RET_LABEL2;
6718 RET_LABEL2:(void)0;
6719 }
6720 }
6721 if (var1){
6722 /* <var_new_child:nullable ANode> isa AExpr */
6723 cltype = type_nit__AExpr.color;
6724 idtype = type_nit__AExpr.id;
6725 if(var_new_child == NULL) {
6726 var6 = 0;
6727 } else {
6728 if(cltype >= var_new_child->type->table_size) {
6729 var6 = 0;
6730 } else {
6731 var6 = var_new_child->type->type_table[cltype] == idtype;
6732 }
6733 }
6734 if (unlikely(!var6)) {
6735 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
6736 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
6737 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4089);
6738 fatal_exit(1);
6739 }
6740 {
6741 nit__parser_prod___AGtExpr___nit__parser_nodes__ASendExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AGtExpr#n_expr= on <self:AGtExpr>*/
6742 }
6743 goto RET_LABEL;
6744 } else {
6745 }
6746 var7 = self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_op].val; /* _n_op on <self:AGtExpr> */
6747 if (unlikely(var7 == NULL)) {
6748 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
6749 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4092);
6750 fatal_exit(1);
6751 }
6752 {
6753 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:Token> */
6754 var_other = var_old_child;
6755 {
6756 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:Token> */
6757 var12 = var7 == var_other;
6758 var10 = var12;
6759 goto RET_LABEL11;
6760 RET_LABEL11:(void)0;
6761 }
6762 }
6763 var8 = var10;
6764 goto RET_LABEL9;
6765 RET_LABEL9:(void)0;
6766 }
6767 }
6768 if (var8){
6769 /* <var_new_child:nullable ANode> isa TGt */
6770 cltype14 = type_nit__TGt.color;
6771 idtype15 = type_nit__TGt.id;
6772 if(var_new_child == NULL) {
6773 var13 = 0;
6774 } else {
6775 if(cltype14 >= var_new_child->type->table_size) {
6776 var13 = 0;
6777 } else {
6778 var13 = var_new_child->type->type_table[cltype14] == idtype15;
6779 }
6780 }
6781 if (unlikely(!var13)) {
6782 var_class_name16 = var_new_child == NULL ? "null" : var_new_child->type->name;
6783 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TGt", var_class_name16);
6784 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4093);
6785 fatal_exit(1);
6786 }
6787 {
6788 nit__parser_prod___AGtExpr___nit__parser_nodes__ABinopExpr__n_op_61d(self, var_new_child); /* Direct call parser_prod#AGtExpr#n_op= on <self:AGtExpr>*/
6789 }
6790 goto RET_LABEL;
6791 } else {
6792 }
6793 var17 = self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AGtExpr> */
6794 if (unlikely(var17 == NULL)) {
6795 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
6796 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4096);
6797 fatal_exit(1);
6798 }
6799 {
6800 { /* Inline kernel#Object#== (var17,var_old_child) on <var17:AExpr> */
6801 var_other = var_old_child;
6802 {
6803 { /* Inline kernel#Object#is_same_instance (var17,var_other) on <var17:AExpr> */
6804 var22 = var17 == var_other;
6805 var20 = var22;
6806 goto RET_LABEL21;
6807 RET_LABEL21:(void)0;
6808 }
6809 }
6810 var18 = var20;
6811 goto RET_LABEL19;
6812 RET_LABEL19:(void)0;
6813 }
6814 }
6815 if (var18){
6816 /* <var_new_child:nullable ANode> isa AExpr */
6817 cltype24 = type_nit__AExpr.color;
6818 idtype25 = type_nit__AExpr.id;
6819 if(var_new_child == NULL) {
6820 var23 = 0;
6821 } else {
6822 if(cltype24 >= var_new_child->type->table_size) {
6823 var23 = 0;
6824 } else {
6825 var23 = var_new_child->type->type_table[cltype24] == idtype25;
6826 }
6827 }
6828 if (unlikely(!var23)) {
6829 var_class_name26 = var_new_child == NULL ? "null" : var_new_child->type->name;
6830 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name26);
6831 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4097);
6832 fatal_exit(1);
6833 }
6834 {
6835 nit__parser_prod___AGtExpr___nit__parser_nodes__ABinopExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#AGtExpr#n_expr2= on <self:AGtExpr>*/
6836 }
6837 goto RET_LABEL;
6838 } else {
6839 }
6840 RET_LABEL:;
6841 }
6842 /* method parser_prod#AGtExpr#n_expr= for (self: AGtExpr, AExpr) */
6843 void nit__parser_prod___AGtExpr___nit__parser_nodes__ASendExpr__n_expr_61d(val* self, val* p0) {
6844 val* var_node /* var node: AExpr */;
6845 var_node = p0;
6846 self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:AGtExpr> */
6847 {
6848 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
6849 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
6850 RET_LABEL1:(void)0;
6851 }
6852 }
6853 RET_LABEL:;
6854 }
6855 /* method parser_prod#AGtExpr#n_op= for (self: AGtExpr, Token) */
6856 void nit__parser_prod___AGtExpr___nit__parser_nodes__ABinopExpr__n_op_61d(val* self, val* p0) {
6857 val* var_node /* var node: Token */;
6858 var_node = p0;
6859 self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_op].val = var_node; /* _n_op on <self:AGtExpr> */
6860 {
6861 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:Token> */
6862 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:Token> */
6863 RET_LABEL1:(void)0;
6864 }
6865 }
6866 RET_LABEL:;
6867 }
6868 /* method parser_prod#AGtExpr#n_expr2= for (self: AGtExpr, AExpr) */
6869 void nit__parser_prod___AGtExpr___nit__parser_nodes__ABinopExpr__n_expr2_61d(val* self, val* p0) {
6870 val* var_node /* var node: AExpr */;
6871 var_node = p0;
6872 self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_expr2].val = var_node; /* _n_expr2 on <self:AGtExpr> */
6873 {
6874 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
6875 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
6876 RET_LABEL1:(void)0;
6877 }
6878 }
6879 RET_LABEL:;
6880 }
6881 /* method parser_prod#AGtExpr#visit_all for (self: AGtExpr, Visitor) */
6882 void nit__parser_prod___AGtExpr___nit__parser_nodes__ANode__visit_all(val* self, val* p0) {
6883 val* var_v /* var v: Visitor */;
6884 val* var /* : AExpr */;
6885 val* var1 /* : Token */;
6886 val* var2 /* : AExpr */;
6887 var_v = p0;
6888 var = self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AGtExpr> */
6889 if (unlikely(var == NULL)) {
6890 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
6891 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4121);
6892 fatal_exit(1);
6893 }
6894 {
6895 nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6896 }
6897 var1 = self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_op].val; /* _n_op on <self:AGtExpr> */
6898 if (unlikely(var1 == NULL)) {
6899 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
6900 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4122);
6901 fatal_exit(1);
6902 }
6903 {
6904 nit___nit__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6905 }
6906 var2 = self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AGtExpr> */
6907 if (unlikely(var2 == NULL)) {
6908 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
6909 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4123);
6910 fatal_exit(1);
6911 }
6912 {
6913 nit___nit__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6914 }
6915 RET_LABEL:;
6916 }
6917 /* method parser_prod#AGeExpr#init_ageexpr for (self: AGeExpr, nullable AExpr, nullable TGe, nullable AExpr) */
6918 void nit__parser_prod___AGeExpr___init_ageexpr(val* self, val* p0, val* p1, val* p2) {
6919 val* var_n_expr /* var n_expr: nullable AExpr */;
6920 val* var_n_op /* var n_op: nullable TGe */;
6921 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
6922 {
6923 { /* Inline kernel#Object#init (self) on <self:AGeExpr> */
6924 RET_LABEL1:(void)0;
6925 }
6926 }
6927 var_n_expr = p0;
6928 var_n_op = p1;
6929 var_n_expr2 = p2;
6930 if (unlikely(var_n_expr == NULL)) {
6931 PRINT_ERROR("Runtime error: %s", "Cast failed");
6932 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4133);
6933 fatal_exit(1);
6934 }
6935 self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AGeExpr> */
6936 if (var_n_expr == NULL) {
6937 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6938 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4134);
6939 fatal_exit(1);
6940 } else {
6941 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
6942 if (unlikely(var_n_expr == NULL)) {
6943 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6944 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
6945 fatal_exit(1);
6946 }
6947 var_n_expr->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
6948 RET_LABEL2:(void)0;
6949 }
6950 }
6951 if (unlikely(var_n_op == NULL)) {
6952 PRINT_ERROR("Runtime error: %s", "Cast failed");
6953 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4135);
6954 fatal_exit(1);
6955 }
6956 self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_op].val = var_n_op; /* _n_op on <self:AGeExpr> */
6957 if (var_n_op == NULL) {
6958 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6959 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4136);
6960 fatal_exit(1);
6961 } else {
6962 { /* Inline parser_nodes#ANode#parent= (var_n_op,self) on <var_n_op:nullable TGe> */
6963 if (unlikely(var_n_op == NULL)) {
6964 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6965 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
6966 fatal_exit(1);
6967 }
6968 var_n_op->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_op:nullable TGe> */
6969 RET_LABEL3:(void)0;
6970 }
6971 }
6972 if (unlikely(var_n_expr2 == NULL)) {
6973 PRINT_ERROR("Runtime error: %s", "Cast failed");
6974 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4137);
6975 fatal_exit(1);
6976 }
6977 self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:AGeExpr> */
6978 if (var_n_expr2 == NULL) {
6979 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6980 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4138);
6981 fatal_exit(1);
6982 } else {
6983 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
6984 if (unlikely(var_n_expr2 == NULL)) {
6985 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6986 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
6987 fatal_exit(1);
6988 }
6989 var_n_expr2->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
6990 RET_LABEL4:(void)0;
6991 }
6992 }
6993 RET_LABEL:;
6994 }
6995 /* method parser_prod#AGeExpr#replace_child for (self: AGeExpr, ANode, nullable ANode) */
6996 void nit__parser_prod___AGeExpr___nit__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
6997 val* var_old_child /* var old_child: ANode */;
6998 val* var_new_child /* var new_child: nullable ANode */;
6999 val* var /* : AExpr */;
7000 short int var1 /* : Bool */;
7001 val* var_other /* var other: nullable Object */;
7002 short int var3 /* : Bool */;
7003 short int var5 /* : Bool */;
7004 short int var6 /* : Bool */;
7005 int cltype;
7006 int idtype;
7007 const char* var_class_name;
7008 val* var7 /* : Token */;
7009 short int var8 /* : Bool */;
7010 short int var10 /* : Bool */;
7011 short int var12 /* : Bool */;
7012 short int var13 /* : Bool */;
7013 int cltype14;
7014 int idtype15;
7015 const char* var_class_name16;
7016 val* var17 /* : AExpr */;
7017 short int var18 /* : Bool */;
7018 short int var20 /* : Bool */;
7019 short int var22 /* : Bool */;
7020 short int var23 /* : Bool */;
7021 int cltype24;
7022 int idtype25;
7023 const char* var_class_name26;
7024 var_old_child = p0;
7025 var_new_child = p1;
7026 var = self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AGeExpr> */
7027 if (unlikely(var == NULL)) {
7028 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
7029 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4143);
7030 fatal_exit(1);
7031 }
7032 {
7033 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
7034 var_other = var_old_child;
7035 {
7036 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
7037 var5 = var == var_other;
7038 var3 = var5;
7039 goto RET_LABEL4;
7040 RET_LABEL4:(void)0;
7041 }
7042 }
7043 var1 = var3;
7044 goto RET_LABEL2;
7045 RET_LABEL2:(void)0;
7046 }
7047 }
7048 if (var1){
7049 /* <var_new_child:nullable ANode> isa AExpr */
7050 cltype = type_nit__AExpr.color;
7051 idtype = type_nit__AExpr.id;
7052 if(var_new_child == NULL) {
7053 var6 = 0;
7054 } else {
7055 if(cltype >= var_new_child->type->table_size) {
7056 var6 = 0;
7057 } else {
7058 var6 = var_new_child->type->type_table[cltype] == idtype;
7059 }
7060 }
7061 if (unlikely(!var6)) {
7062 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
7063 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
7064 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4144);
7065 fatal_exit(1);
7066 }
7067 {
7068 nit__parser_prod___AGeExpr___nit__parser_nodes__ASendExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AGeExpr#n_expr= on <self:AGeExpr>*/
7069 }
7070 goto RET_LABEL;
7071 } else {
7072 }
7073 var7 = self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_op].val; /* _n_op on <self:AGeExpr> */
7074 if (unlikely(var7 == NULL)) {
7075 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
7076 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4147);
7077 fatal_exit(1);
7078 }
7079 {
7080 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:Token> */
7081 var_other = var_old_child;
7082 {
7083 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:Token> */
7084 var12 = var7 == var_other;
7085 var10 = var12;
7086 goto RET_LABEL11;
7087 RET_LABEL11:(void)0;
7088 }
7089 }
7090 var8 = var10;
7091 goto RET_LABEL9;
7092 RET_LABEL9:(void)0;
7093 }
7094 }
7095 if (var8){
7096 /* <var_new_child:nullable ANode> isa TGe */
7097 cltype14 = type_nit__TGe.color;
7098 idtype15 = type_nit__TGe.id;
7099 if(var_new_child == NULL) {
7100 var13 = 0;
7101 } else {
7102 if(cltype14 >= var_new_child->type->table_size) {
7103 var13 = 0;
7104 } else {
7105 var13 = var_new_child->type->type_table[cltype14] == idtype15;
7106 }
7107 }
7108 if (unlikely(!var13)) {
7109 var_class_name16 = var_new_child == NULL ? "null" : var_new_child->type->name;
7110 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TGe", var_class_name16);
7111 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4148);
7112 fatal_exit(1);
7113 }
7114 {
7115 nit__parser_prod___AGeExpr___nit__parser_nodes__ABinopExpr__n_op_61d(self, var_new_child); /* Direct call parser_prod#AGeExpr#n_op= on <self:AGeExpr>*/
7116 }
7117 goto RET_LABEL;
7118 } else {
7119 }
7120 var17 = self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AGeExpr> */
7121 if (unlikely(var17 == NULL)) {
7122 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
7123 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4151);
7124 fatal_exit(1);
7125 }
7126 {
7127 { /* Inline kernel#Object#== (var17,var_old_child) on <var17:AExpr> */
7128 var_other = var_old_child;
7129 {
7130 { /* Inline kernel#Object#is_same_instance (var17,var_other) on <var17:AExpr> */
7131 var22 = var17 == var_other;
7132 var20 = var22;
7133 goto RET_LABEL21;
7134 RET_LABEL21:(void)0;
7135 }
7136 }
7137 var18 = var20;
7138 goto RET_LABEL19;
7139 RET_LABEL19:(void)0;
7140 }
7141 }
7142 if (var18){
7143 /* <var_new_child:nullable ANode> isa AExpr */
7144 cltype24 = type_nit__AExpr.color;
7145 idtype25 = type_nit__AExpr.id;
7146 if(var_new_child == NULL) {
7147 var23 = 0;
7148 } else {
7149 if(cltype24 >= var_new_child->type->table_size) {
7150 var23 = 0;
7151 } else {
7152 var23 = var_new_child->type->type_table[cltype24] == idtype25;
7153 }
7154 }
7155 if (unlikely(!var23)) {
7156 var_class_name26 = var_new_child == NULL ? "null" : var_new_child->type->name;
7157 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name26);
7158 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4152);
7159 fatal_exit(1);
7160 }
7161 {
7162 nit__parser_prod___AGeExpr___nit__parser_nodes__ABinopExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#AGeExpr#n_expr2= on <self:AGeExpr>*/
7163 }
7164 goto RET_LABEL;
7165 } else {
7166 }
7167 RET_LABEL:;
7168 }
7169 /* method parser_prod#AGeExpr#n_expr= for (self: AGeExpr, AExpr) */
7170 void nit__parser_prod___AGeExpr___nit__parser_nodes__ASendExpr__n_expr_61d(val* self, val* p0) {
7171 val* var_node /* var node: AExpr */;
7172 var_node = p0;
7173 self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:AGeExpr> */
7174 {
7175 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
7176 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
7177 RET_LABEL1:(void)0;
7178 }
7179 }
7180 RET_LABEL:;
7181 }
7182 /* method parser_prod#AGeExpr#n_op= for (self: AGeExpr, Token) */
7183 void nit__parser_prod___AGeExpr___nit__parser_nodes__ABinopExpr__n_op_61d(val* self, val* p0) {
7184 val* var_node /* var node: Token */;
7185 var_node = p0;
7186 self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_op].val = var_node; /* _n_op on <self:AGeExpr> */
7187 {
7188 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:Token> */
7189 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:Token> */
7190 RET_LABEL1:(void)0;
7191 }
7192 }
7193 RET_LABEL:;
7194 }
7195 /* method parser_prod#AGeExpr#n_expr2= for (self: AGeExpr, AExpr) */
7196 void nit__parser_prod___AGeExpr___nit__parser_nodes__ABinopExpr__n_expr2_61d(val* self, val* p0) {
7197 val* var_node /* var node: AExpr */;
7198 var_node = p0;
7199 self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_expr2].val = var_node; /* _n_expr2 on <self:AGeExpr> */
7200 {
7201 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
7202 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
7203 RET_LABEL1:(void)0;
7204 }
7205 }
7206 RET_LABEL:;
7207 }
7208 /* method parser_prod#AGeExpr#visit_all for (self: AGeExpr, Visitor) */
7209 void nit__parser_prod___AGeExpr___nit__parser_nodes__ANode__visit_all(val* self, val* p0) {
7210 val* var_v /* var v: Visitor */;
7211 val* var /* : AExpr */;
7212 val* var1 /* : Token */;
7213 val* var2 /* : AExpr */;
7214 var_v = p0;
7215 var = self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AGeExpr> */
7216 if (unlikely(var == NULL)) {
7217 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
7218 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4176);
7219 fatal_exit(1);
7220 }
7221 {
7222 nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7223 }
7224 var1 = self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_op].val; /* _n_op on <self:AGeExpr> */
7225 if (unlikely(var1 == NULL)) {
7226 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
7227 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4177);
7228 fatal_exit(1);
7229 }
7230 {
7231 nit___nit__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7232 }
7233 var2 = self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AGeExpr> */
7234 if (unlikely(var2 == NULL)) {
7235 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
7236 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4178);
7237 fatal_exit(1);
7238 }
7239 {
7240 nit___nit__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7241 }
7242 RET_LABEL:;
7243 }
7244 /* method parser_prod#AGgExpr#init_aggexpr for (self: AGgExpr, nullable AExpr, nullable TGg, nullable AExpr) */
7245 void nit__parser_prod___AGgExpr___init_aggexpr(val* self, val* p0, val* p1, val* p2) {
7246 val* var_n_expr /* var n_expr: nullable AExpr */;
7247 val* var_n_op /* var n_op: nullable TGg */;
7248 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
7249 {
7250 { /* Inline kernel#Object#init (self) on <self:AGgExpr> */
7251 RET_LABEL1:(void)0;
7252 }
7253 }
7254 var_n_expr = p0;
7255 var_n_op = p1;
7256 var_n_expr2 = p2;
7257 if (unlikely(var_n_expr == NULL)) {
7258 PRINT_ERROR("Runtime error: %s", "Cast failed");
7259 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4188);
7260 fatal_exit(1);
7261 }
7262 self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AGgExpr> */
7263 if (var_n_expr == NULL) {
7264 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7265 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4189);
7266 fatal_exit(1);
7267 } else {
7268 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
7269 if (unlikely(var_n_expr == NULL)) {
7270 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7271 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
7272 fatal_exit(1);
7273 }
7274 var_n_expr->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
7275 RET_LABEL2:(void)0;
7276 }
7277 }
7278 if (unlikely(var_n_op == NULL)) {
7279 PRINT_ERROR("Runtime error: %s", "Cast failed");
7280 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4190);
7281 fatal_exit(1);
7282 }
7283 self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_op].val = var_n_op; /* _n_op on <self:AGgExpr> */
7284 if (var_n_op == NULL) {
7285 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7286 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4191);
7287 fatal_exit(1);
7288 } else {
7289 { /* Inline parser_nodes#ANode#parent= (var_n_op,self) on <var_n_op:nullable TGg> */
7290 if (unlikely(var_n_op == NULL)) {
7291 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7292 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
7293 fatal_exit(1);
7294 }
7295 var_n_op->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_op:nullable TGg> */
7296 RET_LABEL3:(void)0;
7297 }
7298 }
7299 if (unlikely(var_n_expr2 == NULL)) {
7300 PRINT_ERROR("Runtime error: %s", "Cast failed");
7301 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4192);
7302 fatal_exit(1);
7303 }
7304 self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:AGgExpr> */
7305 if (var_n_expr2 == NULL) {
7306 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7307 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4193);
7308 fatal_exit(1);
7309 } else {
7310 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
7311 if (unlikely(var_n_expr2 == NULL)) {
7312 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7313 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
7314 fatal_exit(1);
7315 }
7316 var_n_expr2->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
7317 RET_LABEL4:(void)0;
7318 }
7319 }
7320 RET_LABEL:;
7321 }
7322 /* method parser_prod#AGgExpr#replace_child for (self: AGgExpr, ANode, nullable ANode) */
7323 void nit__parser_prod___AGgExpr___nit__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
7324 val* var_old_child /* var old_child: ANode */;
7325 val* var_new_child /* var new_child: nullable ANode */;
7326 val* var /* : AExpr */;
7327 short int var1 /* : Bool */;
7328 val* var_other /* var other: nullable Object */;
7329 short int var3 /* : Bool */;
7330 short int var5 /* : Bool */;
7331 short int var6 /* : Bool */;
7332 int cltype;
7333 int idtype;
7334 const char* var_class_name;
7335 val* var7 /* : Token */;
7336 short int var8 /* : Bool */;
7337 short int var10 /* : Bool */;
7338 short int var12 /* : Bool */;
7339 short int var13 /* : Bool */;
7340 int cltype14;
7341 int idtype15;
7342 const char* var_class_name16;
7343 val* var17 /* : AExpr */;
7344 short int var18 /* : Bool */;
7345 short int var20 /* : Bool */;
7346 short int var22 /* : Bool */;
7347 short int var23 /* : Bool */;
7348 int cltype24;
7349 int idtype25;
7350 const char* var_class_name26;
7351 var_old_child = p0;
7352 var_new_child = p1;
7353 var = self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AGgExpr> */
7354 if (unlikely(var == NULL)) {
7355 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
7356 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4198);
7357 fatal_exit(1);
7358 }
7359 {
7360 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
7361 var_other = var_old_child;
7362 {
7363 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
7364 var5 = var == var_other;
7365 var3 = var5;
7366 goto RET_LABEL4;
7367 RET_LABEL4:(void)0;
7368 }
7369 }
7370 var1 = var3;
7371 goto RET_LABEL2;
7372 RET_LABEL2:(void)0;
7373 }
7374 }
7375 if (var1){
7376 /* <var_new_child:nullable ANode> isa AExpr */
7377 cltype = type_nit__AExpr.color;
7378 idtype = type_nit__AExpr.id;
7379 if(var_new_child == NULL) {
7380 var6 = 0;
7381 } else {
7382 if(cltype >= var_new_child->type->table_size) {
7383 var6 = 0;
7384 } else {
7385 var6 = var_new_child->type->type_table[cltype] == idtype;
7386 }
7387 }
7388 if (unlikely(!var6)) {
7389 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
7390 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
7391 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4199);
7392 fatal_exit(1);
7393 }
7394 {
7395 nit__parser_prod___AGgExpr___nit__parser_nodes__ASendExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AGgExpr#n_expr= on <self:AGgExpr>*/
7396 }
7397 goto RET_LABEL;
7398 } else {
7399 }
7400 var7 = self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_op].val; /* _n_op on <self:AGgExpr> */
7401 if (unlikely(var7 == NULL)) {
7402 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
7403 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4202);
7404 fatal_exit(1);
7405 }
7406 {
7407 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:Token> */
7408 var_other = var_old_child;
7409 {
7410 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:Token> */
7411 var12 = var7 == var_other;
7412 var10 = var12;
7413 goto RET_LABEL11;
7414 RET_LABEL11:(void)0;
7415 }
7416 }
7417 var8 = var10;
7418 goto RET_LABEL9;
7419 RET_LABEL9:(void)0;
7420 }
7421 }
7422 if (var8){
7423 /* <var_new_child:nullable ANode> isa TGg */
7424 cltype14 = type_nit__TGg.color;
7425 idtype15 = type_nit__TGg.id;
7426 if(var_new_child == NULL) {
7427 var13 = 0;
7428 } else {
7429 if(cltype14 >= var_new_child->type->table_size) {
7430 var13 = 0;
7431 } else {
7432 var13 = var_new_child->type->type_table[cltype14] == idtype15;
7433 }
7434 }
7435 if (unlikely(!var13)) {
7436 var_class_name16 = var_new_child == NULL ? "null" : var_new_child->type->name;
7437 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TGg", var_class_name16);
7438 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4203);
7439 fatal_exit(1);
7440 }
7441 {
7442 nit__parser_prod___AGgExpr___nit__parser_nodes__ABinopExpr__n_op_61d(self, var_new_child); /* Direct call parser_prod#AGgExpr#n_op= on <self:AGgExpr>*/
7443 }
7444 goto RET_LABEL;
7445 } else {
7446 }
7447 var17 = self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AGgExpr> */
7448 if (unlikely(var17 == NULL)) {
7449 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
7450 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4206);
7451 fatal_exit(1);
7452 }
7453 {
7454 { /* Inline kernel#Object#== (var17,var_old_child) on <var17:AExpr> */
7455 var_other = var_old_child;
7456 {
7457 { /* Inline kernel#Object#is_same_instance (var17,var_other) on <var17:AExpr> */
7458 var22 = var17 == var_other;
7459 var20 = var22;
7460 goto RET_LABEL21;
7461 RET_LABEL21:(void)0;
7462 }
7463 }
7464 var18 = var20;
7465 goto RET_LABEL19;
7466 RET_LABEL19:(void)0;
7467 }
7468 }
7469 if (var18){
7470 /* <var_new_child:nullable ANode> isa AExpr */
7471 cltype24 = type_nit__AExpr.color;
7472 idtype25 = type_nit__AExpr.id;
7473 if(var_new_child == NULL) {
7474 var23 = 0;
7475 } else {
7476 if(cltype24 >= var_new_child->type->table_size) {
7477 var23 = 0;
7478 } else {
7479 var23 = var_new_child->type->type_table[cltype24] == idtype25;
7480 }
7481 }
7482 if (unlikely(!var23)) {
7483 var_class_name26 = var_new_child == NULL ? "null" : var_new_child->type->name;
7484 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name26);
7485 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4207);
7486 fatal_exit(1);
7487 }
7488 {
7489 nit__parser_prod___AGgExpr___nit__parser_nodes__ABinopExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#AGgExpr#n_expr2= on <self:AGgExpr>*/
7490 }
7491 goto RET_LABEL;
7492 } else {
7493 }
7494 RET_LABEL:;
7495 }
7496 /* method parser_prod#AGgExpr#n_expr= for (self: AGgExpr, AExpr) */
7497 void nit__parser_prod___AGgExpr___nit__parser_nodes__ASendExpr__n_expr_61d(val* self, val* p0) {
7498 val* var_node /* var node: AExpr */;
7499 var_node = p0;
7500 self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:AGgExpr> */
7501 {
7502 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
7503 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
7504 RET_LABEL1:(void)0;
7505 }
7506 }
7507 RET_LABEL:;
7508 }
7509 /* method parser_prod#AGgExpr#n_op= for (self: AGgExpr, Token) */
7510 void nit__parser_prod___AGgExpr___nit__parser_nodes__ABinopExpr__n_op_61d(val* self, val* p0) {
7511 val* var_node /* var node: Token */;
7512 var_node = p0;
7513 self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_op].val = var_node; /* _n_op on <self:AGgExpr> */
7514 {
7515 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:Token> */
7516 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:Token> */
7517 RET_LABEL1:(void)0;
7518 }
7519 }
7520 RET_LABEL:;
7521 }
7522 /* method parser_prod#AGgExpr#n_expr2= for (self: AGgExpr, AExpr) */
7523 void nit__parser_prod___AGgExpr___nit__parser_nodes__ABinopExpr__n_expr2_61d(val* self, val* p0) {
7524 val* var_node /* var node: AExpr */;
7525 var_node = p0;
7526 self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_expr2].val = var_node; /* _n_expr2 on <self:AGgExpr> */
7527 {
7528 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
7529 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
7530 RET_LABEL1:(void)0;
7531 }
7532 }
7533 RET_LABEL:;
7534 }
7535 /* method parser_prod#AGgExpr#visit_all for (self: AGgExpr, Visitor) */
7536 void nit__parser_prod___AGgExpr___nit__parser_nodes__ANode__visit_all(val* self, val* p0) {
7537 val* var_v /* var v: Visitor */;
7538 val* var /* : AExpr */;
7539 val* var1 /* : Token */;
7540 val* var2 /* : AExpr */;
7541 var_v = p0;
7542 var = self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AGgExpr> */
7543 if (unlikely(var == NULL)) {
7544 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
7545 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4231);
7546 fatal_exit(1);
7547 }
7548 {
7549 nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7550 }
7551 var1 = self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_op].val; /* _n_op on <self:AGgExpr> */
7552 if (unlikely(var1 == NULL)) {
7553 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
7554 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4232);
7555 fatal_exit(1);
7556 }
7557 {
7558 nit___nit__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7559 }
7560 var2 = self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AGgExpr> */
7561 if (unlikely(var2 == NULL)) {
7562 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
7563 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4233);
7564 fatal_exit(1);
7565 }
7566 {
7567 nit___nit__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7568 }
7569 RET_LABEL:;
7570 }
7571 /* method parser_prod#AIsaExpr#init_aisaexpr for (self: AIsaExpr, nullable AExpr, nullable TKwisa, nullable AType) */
7572 void nit__parser_prod___AIsaExpr___init_aisaexpr(val* self, val* p0, val* p1, val* p2) {
7573 val* var_n_expr /* var n_expr: nullable AExpr */;
7574 val* var_n_kwisa /* var n_kwisa: nullable TKwisa */;
7575 val* var_n_type /* var n_type: nullable AType */;
7576 {
7577 { /* Inline kernel#Object#init (self) on <self:AIsaExpr> */
7578 RET_LABEL1:(void)0;
7579 }
7580 }
7581 var_n_expr = p0;
7582 var_n_kwisa = p1;
7583 var_n_type = p2;
7584 if (unlikely(var_n_expr == NULL)) {
7585 PRINT_ERROR("Runtime error: %s", "Cast failed");
7586 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4243);
7587 fatal_exit(1);
7588 }
7589 self->attrs[COLOR_nit__parser_nodes__AIsaExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AIsaExpr> */
7590 if (var_n_expr == NULL) {
7591 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7592 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4244);
7593 fatal_exit(1);
7594 } else {
7595 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
7596 if (unlikely(var_n_expr == NULL)) {
7597 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7598 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
7599 fatal_exit(1);
7600 }
7601 var_n_expr->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
7602 RET_LABEL2:(void)0;
7603 }
7604 }
7605 if (unlikely(var_n_kwisa == NULL)) {
7606 PRINT_ERROR("Runtime error: %s", "Cast failed");
7607 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4245);
7608 fatal_exit(1);
7609 }
7610 self->attrs[COLOR_nit__parser_nodes__AIsaExpr___n_kwisa].val = var_n_kwisa; /* _n_kwisa on <self:AIsaExpr> */
7611 if (var_n_kwisa == NULL) {
7612 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7613 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4246);
7614 fatal_exit(1);
7615 } else {
7616 { /* Inline parser_nodes#ANode#parent= (var_n_kwisa,self) on <var_n_kwisa:nullable TKwisa> */
7617 if (unlikely(var_n_kwisa == NULL)) {
7618 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7619 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
7620 fatal_exit(1);
7621 }
7622 var_n_kwisa->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwisa:nullable TKwisa> */
7623 RET_LABEL3:(void)0;
7624 }
7625 }
7626 if (unlikely(var_n_type == NULL)) {
7627 PRINT_ERROR("Runtime error: %s", "Cast failed");
7628 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4247);
7629 fatal_exit(1);
7630 }
7631 self->attrs[COLOR_nit__parser_nodes__AIsaExpr___n_type].val = var_n_type; /* _n_type on <self:AIsaExpr> */
7632 if (var_n_type == NULL) {
7633 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7634 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4248);
7635 fatal_exit(1);
7636 } else {
7637 { /* Inline parser_nodes#ANode#parent= (var_n_type,self) on <var_n_type:nullable AType> */
7638 if (unlikely(var_n_type == NULL)) {
7639 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7640 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
7641 fatal_exit(1);
7642 }
7643 var_n_type->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_type:nullable AType> */
7644 RET_LABEL4:(void)0;
7645 }
7646 }
7647 RET_LABEL:;
7648 }
7649 /* method parser_prod#AIsaExpr#replace_child for (self: AIsaExpr, ANode, nullable ANode) */
7650 void nit__parser_prod___AIsaExpr___nit__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
7651 val* var_old_child /* var old_child: ANode */;
7652 val* var_new_child /* var new_child: nullable ANode */;
7653 val* var /* : AExpr */;
7654 short int var1 /* : Bool */;
7655 val* var_other /* var other: nullable Object */;
7656 short int var3 /* : Bool */;
7657 short int var5 /* : Bool */;
7658 short int var6 /* : Bool */;
7659 int cltype;
7660 int idtype;
7661 const char* var_class_name;
7662 val* var7 /* : TKwisa */;
7663 short int var8 /* : Bool */;
7664 short int var10 /* : Bool */;
7665 short int var12 /* : Bool */;
7666 short int var13 /* : Bool */;
7667 int cltype14;
7668 int idtype15;
7669 const char* var_class_name16;
7670 val* var17 /* : AType */;
7671 short int var18 /* : Bool */;
7672 short int var20 /* : Bool */;
7673 short int var22 /* : Bool */;
7674 short int var23 /* : Bool */;
7675 int cltype24;
7676 int idtype25;
7677 const char* var_class_name26;
7678 var_old_child = p0;
7679 var_new_child = p1;
7680 var = self->attrs[COLOR_nit__parser_nodes__AIsaExpr___n_expr].val; /* _n_expr on <self:AIsaExpr> */
7681 if (unlikely(var == NULL)) {
7682 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
7683 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4253);
7684 fatal_exit(1);
7685 }
7686 {
7687 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
7688 var_other = var_old_child;
7689 {
7690 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
7691 var5 = var == var_other;
7692 var3 = var5;
7693 goto RET_LABEL4;
7694 RET_LABEL4:(void)0;
7695 }
7696 }
7697 var1 = var3;
7698 goto RET_LABEL2;
7699 RET_LABEL2:(void)0;
7700 }
7701 }
7702 if (var1){
7703 /* <var_new_child:nullable ANode> isa AExpr */
7704 cltype = type_nit__AExpr.color;
7705 idtype = type_nit__AExpr.id;
7706 if(var_new_child == NULL) {
7707 var6 = 0;
7708 } else {
7709 if(cltype >= var_new_child->type->table_size) {
7710 var6 = 0;
7711 } else {
7712 var6 = var_new_child->type->type_table[cltype] == idtype;
7713 }
7714 }
7715 if (unlikely(!var6)) {
7716 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
7717 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
7718 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4254);
7719 fatal_exit(1);
7720 }
7721 {
7722 nit__parser_prod___AIsaExpr___n_expr_61d(self, var_new_child); /* Direct call parser_prod#AIsaExpr#n_expr= on <self:AIsaExpr>*/
7723 }
7724 goto RET_LABEL;
7725 } else {
7726 }
7727 var7 = self->attrs[COLOR_nit__parser_nodes__AIsaExpr___n_kwisa].val; /* _n_kwisa on <self:AIsaExpr> */
7728 if (unlikely(var7 == NULL)) {
7729 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwisa");
7730 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4257);
7731 fatal_exit(1);
7732 }
7733 {
7734 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:TKwisa> */
7735 var_other = var_old_child;
7736 {
7737 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:TKwisa> */
7738 var12 = var7 == var_other;
7739 var10 = var12;
7740 goto RET_LABEL11;
7741 RET_LABEL11:(void)0;
7742 }
7743 }
7744 var8 = var10;
7745 goto RET_LABEL9;
7746 RET_LABEL9:(void)0;
7747 }
7748 }
7749 if (var8){
7750 /* <var_new_child:nullable ANode> isa TKwisa */
7751 cltype14 = type_nit__TKwisa.color;
7752 idtype15 = type_nit__TKwisa.id;
7753 if(var_new_child == NULL) {
7754 var13 = 0;
7755 } else {
7756 if(cltype14 >= var_new_child->type->table_size) {
7757 var13 = 0;
7758 } else {
7759 var13 = var_new_child->type->type_table[cltype14] == idtype15;
7760 }
7761 }
7762 if (unlikely(!var13)) {
7763 var_class_name16 = var_new_child == NULL ? "null" : var_new_child->type->name;
7764 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwisa", var_class_name16);
7765 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4258);
7766 fatal_exit(1);
7767 }
7768 {
7769 nit__parser_prod___AIsaExpr___n_kwisa_61d(self, var_new_child); /* Direct call parser_prod#AIsaExpr#n_kwisa= on <self:AIsaExpr>*/
7770 }
7771 goto RET_LABEL;
7772 } else {
7773 }
7774 var17 = self->attrs[COLOR_nit__parser_nodes__AIsaExpr___n_type].val; /* _n_type on <self:AIsaExpr> */
7775 if (unlikely(var17 == NULL)) {
7776 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
7777 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4261);
7778 fatal_exit(1);
7779 }
7780 {
7781 { /* Inline kernel#Object#== (var17,var_old_child) on <var17:AType> */
7782 var_other = var_old_child;
7783 {
7784 { /* Inline kernel#Object#is_same_instance (var17,var_other) on <var17:AType> */
7785 var22 = var17 == var_other;
7786 var20 = var22;
7787 goto RET_LABEL21;
7788 RET_LABEL21:(void)0;
7789 }
7790 }
7791 var18 = var20;
7792 goto RET_LABEL19;
7793 RET_LABEL19:(void)0;
7794 }
7795 }
7796 if (var18){
7797 /* <var_new_child:nullable ANode> isa AType */
7798 cltype24 = type_nit__AType.color;
7799 idtype25 = type_nit__AType.id;
7800 if(var_new_child == NULL) {
7801 var23 = 0;
7802 } else {
7803 if(cltype24 >= var_new_child->type->table_size) {
7804 var23 = 0;
7805 } else {
7806 var23 = var_new_child->type->type_table[cltype24] == idtype25;
7807 }
7808 }
7809 if (unlikely(!var23)) {
7810 var_class_name26 = var_new_child == NULL ? "null" : var_new_child->type->name;
7811 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AType", var_class_name26);
7812 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4262);
7813 fatal_exit(1);
7814 }
7815 {
7816 nit__parser_prod___AIsaExpr___n_type_61d(self, var_new_child); /* Direct call parser_prod#AIsaExpr#n_type= on <self:AIsaExpr>*/
7817 }
7818 goto RET_LABEL;
7819 } else {
7820 }
7821 RET_LABEL:;
7822 }
7823 /* method parser_prod#AIsaExpr#n_expr= for (self: AIsaExpr, AExpr) */
7824 void nit__parser_prod___AIsaExpr___n_expr_61d(val* self, val* p0) {
7825 val* var_node /* var node: AExpr */;
7826 var_node = p0;
7827 self->attrs[COLOR_nit__parser_nodes__AIsaExpr___n_expr].val = var_node; /* _n_expr on <self:AIsaExpr> */
7828 {
7829 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
7830 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
7831 RET_LABEL1:(void)0;
7832 }
7833 }
7834 RET_LABEL:;
7835 }
7836 /* method parser_prod#AIsaExpr#n_kwisa= for (self: AIsaExpr, TKwisa) */
7837 void nit__parser_prod___AIsaExpr___n_kwisa_61d(val* self, val* p0) {
7838 val* var_node /* var node: TKwisa */;
7839 var_node = p0;
7840 self->attrs[COLOR_nit__parser_nodes__AIsaExpr___n_kwisa].val = var_node; /* _n_kwisa on <self:AIsaExpr> */
7841 {
7842 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwisa> */
7843 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwisa> */
7844 RET_LABEL1:(void)0;
7845 }
7846 }
7847 RET_LABEL:;
7848 }
7849 /* method parser_prod#AIsaExpr#n_type= for (self: AIsaExpr, AType) */
7850 void nit__parser_prod___AIsaExpr___n_type_61d(val* self, val* p0) {
7851 val* var_node /* var node: AType */;
7852 var_node = p0;
7853 self->attrs[COLOR_nit__parser_nodes__AIsaExpr___n_type].val = var_node; /* _n_type on <self:AIsaExpr> */
7854 {
7855 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AType> */
7856 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AType> */
7857 RET_LABEL1:(void)0;
7858 }
7859 }
7860 RET_LABEL:;
7861 }
7862 /* method parser_prod#AIsaExpr#visit_all for (self: AIsaExpr, Visitor) */
7863 void nit__parser_prod___AIsaExpr___nit__parser_nodes__ANode__visit_all(val* self, val* p0) {
7864 val* var_v /* var v: Visitor */;
7865 val* var /* : AExpr */;
7866 val* var1 /* : TKwisa */;
7867 val* var2 /* : AType */;
7868 var_v = p0;
7869 var = self->attrs[COLOR_nit__parser_nodes__AIsaExpr___n_expr].val; /* _n_expr on <self:AIsaExpr> */
7870 if (unlikely(var == NULL)) {
7871 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
7872 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4286);
7873 fatal_exit(1);
7874 }
7875 {
7876 nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7877 }
7878 var1 = self->attrs[COLOR_nit__parser_nodes__AIsaExpr___n_kwisa].val; /* _n_kwisa on <self:AIsaExpr> */
7879 if (unlikely(var1 == NULL)) {
7880 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwisa");
7881 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4287);
7882 fatal_exit(1);
7883 }
7884 {
7885 nit___nit__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7886 }
7887 var2 = self->attrs[COLOR_nit__parser_nodes__AIsaExpr___n_type].val; /* _n_type on <self:AIsaExpr> */
7888 if (unlikely(var2 == NULL)) {
7889 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
7890 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4288);
7891 fatal_exit(1);
7892 }
7893 {
7894 nit___nit__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7895 }
7896 RET_LABEL:;
7897 }
7898 /* method parser_prod#APlusExpr#init_aplusexpr for (self: APlusExpr, nullable AExpr, nullable TPlus, nullable AExpr) */
7899 void nit__parser_prod___APlusExpr___init_aplusexpr(val* self, val* p0, val* p1, val* p2) {
7900 val* var_n_expr /* var n_expr: nullable AExpr */;
7901 val* var_n_op /* var n_op: nullable TPlus */;
7902 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
7903 {
7904 { /* Inline kernel#Object#init (self) on <self:APlusExpr> */
7905 RET_LABEL1:(void)0;
7906 }
7907 }
7908 var_n_expr = p0;
7909 var_n_op = p1;
7910 var_n_expr2 = p2;
7911 if (unlikely(var_n_expr == NULL)) {
7912 PRINT_ERROR("Runtime error: %s", "Cast failed");
7913 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4298);
7914 fatal_exit(1);
7915 }
7916 self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:APlusExpr> */
7917 if (var_n_expr == NULL) {
7918 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7919 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4299);
7920 fatal_exit(1);
7921 } else {
7922 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
7923 if (unlikely(var_n_expr == NULL)) {
7924 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7925 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
7926 fatal_exit(1);
7927 }
7928 var_n_expr->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
7929 RET_LABEL2:(void)0;
7930 }
7931 }
7932 if (unlikely(var_n_op == NULL)) {
7933 PRINT_ERROR("Runtime error: %s", "Cast failed");
7934 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4300);
7935 fatal_exit(1);
7936 }
7937 self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_op].val = var_n_op; /* _n_op on <self:APlusExpr> */
7938 if (var_n_op == NULL) {
7939 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7940 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4301);
7941 fatal_exit(1);
7942 } else {
7943 { /* Inline parser_nodes#ANode#parent= (var_n_op,self) on <var_n_op:nullable TPlus> */
7944 if (unlikely(var_n_op == NULL)) {
7945 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7946 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
7947 fatal_exit(1);
7948 }
7949 var_n_op->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_op:nullable TPlus> */
7950 RET_LABEL3:(void)0;
7951 }
7952 }
7953 if (unlikely(var_n_expr2 == NULL)) {
7954 PRINT_ERROR("Runtime error: %s", "Cast failed");
7955 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4302);
7956 fatal_exit(1);
7957 }
7958 self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:APlusExpr> */
7959 if (var_n_expr2 == NULL) {
7960 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7961 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4303);
7962 fatal_exit(1);
7963 } else {
7964 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
7965 if (unlikely(var_n_expr2 == NULL)) {
7966 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7967 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
7968 fatal_exit(1);
7969 }
7970 var_n_expr2->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
7971 RET_LABEL4:(void)0;
7972 }
7973 }
7974 RET_LABEL:;
7975 }
7976 /* method parser_prod#APlusExpr#replace_child for (self: APlusExpr, ANode, nullable ANode) */
7977 void nit__parser_prod___APlusExpr___nit__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
7978 val* var_old_child /* var old_child: ANode */;
7979 val* var_new_child /* var new_child: nullable ANode */;
7980 val* var /* : AExpr */;
7981 short int var1 /* : Bool */;
7982 val* var_other /* var other: nullable Object */;
7983 short int var3 /* : Bool */;
7984 short int var5 /* : Bool */;
7985 short int var6 /* : Bool */;
7986 int cltype;
7987 int idtype;
7988 const char* var_class_name;
7989 val* var7 /* : Token */;
7990 short int var8 /* : Bool */;
7991 short int var10 /* : Bool */;
7992 short int var12 /* : Bool */;
7993 short int var13 /* : Bool */;
7994 int cltype14;
7995 int idtype15;
7996 const char* var_class_name16;
7997 val* var17 /* : AExpr */;
7998 short int var18 /* : Bool */;
7999 short int var20 /* : Bool */;
8000 short int var22 /* : Bool */;
8001 short int var23 /* : Bool */;
8002 int cltype24;
8003 int idtype25;
8004 const char* var_class_name26;
8005 var_old_child = p0;
8006 var_new_child = p1;
8007 var = self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:APlusExpr> */
8008 if (unlikely(var == NULL)) {
8009 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
8010 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4308);
8011 fatal_exit(1);
8012 }
8013 {
8014 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
8015 var_other = var_old_child;
8016 {
8017 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
8018 var5 = var == var_other;
8019 var3 = var5;
8020 goto RET_LABEL4;
8021 RET_LABEL4:(void)0;
8022 }
8023 }
8024 var1 = var3;
8025 goto RET_LABEL2;
8026 RET_LABEL2:(void)0;
8027 }
8028 }
8029 if (var1){
8030 /* <var_new_child:nullable ANode> isa AExpr */
8031 cltype = type_nit__AExpr.color;
8032 idtype = type_nit__AExpr.id;
8033 if(var_new_child == NULL) {
8034 var6 = 0;
8035 } else {
8036 if(cltype >= var_new_child->type->table_size) {
8037 var6 = 0;
8038 } else {
8039 var6 = var_new_child->type->type_table[cltype] == idtype;
8040 }
8041 }
8042 if (unlikely(!var6)) {
8043 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
8044 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
8045 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4309);
8046 fatal_exit(1);
8047 }
8048 {
8049 nit__parser_prod___APlusExpr___nit__parser_nodes__ASendExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#APlusExpr#n_expr= on <self:APlusExpr>*/
8050 }
8051 goto RET_LABEL;
8052 } else {
8053 }
8054 var7 = self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_op].val; /* _n_op on <self:APlusExpr> */
8055 if (unlikely(var7 == NULL)) {
8056 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
8057 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4312);
8058 fatal_exit(1);
8059 }
8060 {
8061 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:Token> */
8062 var_other = var_old_child;
8063 {
8064 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:Token> */
8065 var12 = var7 == var_other;
8066 var10 = var12;
8067 goto RET_LABEL11;
8068 RET_LABEL11:(void)0;
8069 }
8070 }
8071 var8 = var10;
8072 goto RET_LABEL9;
8073 RET_LABEL9:(void)0;
8074 }
8075 }
8076 if (var8){
8077 /* <var_new_child:nullable ANode> isa TPlus */
8078 cltype14 = type_nit__TPlus.color;
8079 idtype15 = type_nit__TPlus.id;
8080 if(var_new_child == NULL) {
8081 var13 = 0;
8082 } else {
8083 if(cltype14 >= var_new_child->type->table_size) {
8084 var13 = 0;
8085 } else {
8086 var13 = var_new_child->type->type_table[cltype14] == idtype15;
8087 }
8088 }
8089 if (unlikely(!var13)) {
8090 var_class_name16 = var_new_child == NULL ? "null" : var_new_child->type->name;
8091 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TPlus", var_class_name16);
8092 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4313);
8093 fatal_exit(1);
8094 }
8095 {
8096 nit__parser_prod___APlusExpr___nit__parser_nodes__ABinopExpr__n_op_61d(self, var_new_child); /* Direct call parser_prod#APlusExpr#n_op= on <self:APlusExpr>*/
8097 }
8098 goto RET_LABEL;
8099 } else {
8100 }
8101 var17 = self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:APlusExpr> */
8102 if (unlikely(var17 == NULL)) {
8103 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
8104 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4316);
8105 fatal_exit(1);
8106 }
8107 {
8108 { /* Inline kernel#Object#== (var17,var_old_child) on <var17:AExpr> */
8109 var_other = var_old_child;
8110 {
8111 { /* Inline kernel#Object#is_same_instance (var17,var_other) on <var17:AExpr> */
8112 var22 = var17 == var_other;
8113 var20 = var22;
8114 goto RET_LABEL21;
8115 RET_LABEL21:(void)0;
8116 }
8117 }
8118 var18 = var20;
8119 goto RET_LABEL19;
8120 RET_LABEL19:(void)0;
8121 }
8122 }
8123 if (var18){
8124 /* <var_new_child:nullable ANode> isa AExpr */
8125 cltype24 = type_nit__AExpr.color;
8126 idtype25 = type_nit__AExpr.id;
8127 if(var_new_child == NULL) {
8128 var23 = 0;
8129 } else {
8130 if(cltype24 >= var_new_child->type->table_size) {
8131 var23 = 0;
8132 } else {
8133 var23 = var_new_child->type->type_table[cltype24] == idtype25;
8134 }
8135 }
8136 if (unlikely(!var23)) {
8137 var_class_name26 = var_new_child == NULL ? "null" : var_new_child->type->name;
8138 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name26);
8139 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4317);
8140 fatal_exit(1);
8141 }
8142 {
8143 nit__parser_prod___APlusExpr___nit__parser_nodes__ABinopExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#APlusExpr#n_expr2= on <self:APlusExpr>*/
8144 }
8145 goto RET_LABEL;
8146 } else {
8147 }
8148 RET_LABEL:;
8149 }
8150 /* method parser_prod#APlusExpr#n_expr= for (self: APlusExpr, AExpr) */
8151 void nit__parser_prod___APlusExpr___nit__parser_nodes__ASendExpr__n_expr_61d(val* self, val* p0) {
8152 val* var_node /* var node: AExpr */;
8153 var_node = p0;
8154 self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:APlusExpr> */
8155 {
8156 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
8157 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
8158 RET_LABEL1:(void)0;
8159 }
8160 }
8161 RET_LABEL:;
8162 }
8163 /* method parser_prod#APlusExpr#n_op= for (self: APlusExpr, Token) */
8164 void nit__parser_prod___APlusExpr___nit__parser_nodes__ABinopExpr__n_op_61d(val* self, val* p0) {
8165 val* var_node /* var node: Token */;
8166 var_node = p0;
8167 self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_op].val = var_node; /* _n_op on <self:APlusExpr> */
8168 {
8169 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:Token> */
8170 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:Token> */
8171 RET_LABEL1:(void)0;
8172 }
8173 }
8174 RET_LABEL:;
8175 }
8176 /* method parser_prod#APlusExpr#n_expr2= for (self: APlusExpr, AExpr) */
8177 void nit__parser_prod___APlusExpr___nit__parser_nodes__ABinopExpr__n_expr2_61d(val* self, val* p0) {
8178 val* var_node /* var node: AExpr */;
8179 var_node = p0;
8180 self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_expr2].val = var_node; /* _n_expr2 on <self:APlusExpr> */
8181 {
8182 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
8183 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
8184 RET_LABEL1:(void)0;
8185 }
8186 }
8187 RET_LABEL:;
8188 }
8189 /* method parser_prod#APlusExpr#visit_all for (self: APlusExpr, Visitor) */
8190 void nit__parser_prod___APlusExpr___nit__parser_nodes__ANode__visit_all(val* self, val* p0) {
8191 val* var_v /* var v: Visitor */;
8192 val* var /* : AExpr */;
8193 val* var1 /* : Token */;
8194 val* var2 /* : AExpr */;
8195 var_v = p0;
8196 var = self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:APlusExpr> */
8197 if (unlikely(var == NULL)) {
8198 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
8199 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4341);
8200 fatal_exit(1);
8201 }
8202 {
8203 nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8204 }
8205 var1 = self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_op].val; /* _n_op on <self:APlusExpr> */
8206 if (unlikely(var1 == NULL)) {
8207 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
8208 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4342);
8209 fatal_exit(1);
8210 }
8211 {
8212 nit___nit__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8213 }
8214 var2 = self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:APlusExpr> */
8215 if (unlikely(var2 == NULL)) {
8216 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
8217 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4343);
8218 fatal_exit(1);
8219 }
8220 {
8221 nit___nit__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8222 }
8223 RET_LABEL:;
8224 }
8225 /* method parser_prod#AMinusExpr#init_aminusexpr for (self: AMinusExpr, nullable AExpr, nullable TMinus, nullable AExpr) */
8226 void nit__parser_prod___AMinusExpr___init_aminusexpr(val* self, val* p0, val* p1, val* p2) {
8227 val* var_n_expr /* var n_expr: nullable AExpr */;
8228 val* var_n_op /* var n_op: nullable TMinus */;
8229 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
8230 {
8231 { /* Inline kernel#Object#init (self) on <self:AMinusExpr> */
8232 RET_LABEL1:(void)0;
8233 }
8234 }
8235 var_n_expr = p0;
8236 var_n_op = p1;
8237 var_n_expr2 = p2;
8238 if (unlikely(var_n_expr == NULL)) {
8239 PRINT_ERROR("Runtime error: %s", "Cast failed");
8240 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4353);
8241 fatal_exit(1);
8242 }
8243 self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AMinusExpr> */
8244 if (var_n_expr == NULL) {
8245 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8246 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4354);
8247 fatal_exit(1);
8248 } else {
8249 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
8250 if (unlikely(var_n_expr == NULL)) {
8251 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8252 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
8253 fatal_exit(1);
8254 }
8255 var_n_expr->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
8256 RET_LABEL2:(void)0;
8257 }
8258 }
8259 if (unlikely(var_n_op == NULL)) {
8260 PRINT_ERROR("Runtime error: %s", "Cast failed");
8261 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4355);
8262 fatal_exit(1);
8263 }
8264 self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_op].val = var_n_op; /* _n_op on <self:AMinusExpr> */
8265 if (var_n_op == NULL) {
8266 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8267 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4356);
8268 fatal_exit(1);
8269 } else {
8270 { /* Inline parser_nodes#ANode#parent= (var_n_op,self) on <var_n_op:nullable TMinus> */
8271 if (unlikely(var_n_op == NULL)) {
8272 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8273 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
8274 fatal_exit(1);
8275 }
8276 var_n_op->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_op:nullable TMinus> */
8277 RET_LABEL3:(void)0;
8278 }
8279 }
8280 if (unlikely(var_n_expr2 == NULL)) {
8281 PRINT_ERROR("Runtime error: %s", "Cast failed");
8282 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4357);
8283 fatal_exit(1);
8284 }
8285 self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:AMinusExpr> */
8286 if (var_n_expr2 == NULL) {
8287 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8288 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4358);
8289 fatal_exit(1);
8290 } else {
8291 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
8292 if (unlikely(var_n_expr2 == NULL)) {
8293 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8294 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
8295 fatal_exit(1);
8296 }
8297 var_n_expr2->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
8298 RET_LABEL4:(void)0;
8299 }
8300 }
8301 RET_LABEL:;
8302 }
8303 /* method parser_prod#AMinusExpr#replace_child for (self: AMinusExpr, ANode, nullable ANode) */
8304 void nit__parser_prod___AMinusExpr___nit__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
8305 val* var_old_child /* var old_child: ANode */;
8306 val* var_new_child /* var new_child: nullable ANode */;
8307 val* var /* : AExpr */;
8308 short int var1 /* : Bool */;
8309 val* var_other /* var other: nullable Object */;
8310 short int var3 /* : Bool */;
8311 short int var5 /* : Bool */;
8312 short int var6 /* : Bool */;
8313 int cltype;
8314 int idtype;
8315 const char* var_class_name;
8316 val* var7 /* : Token */;
8317 short int var8 /* : Bool */;
8318 short int var10 /* : Bool */;
8319 short int var12 /* : Bool */;
8320 short int var13 /* : Bool */;
8321 int cltype14;
8322 int idtype15;
8323 const char* var_class_name16;
8324 val* var17 /* : AExpr */;
8325 short int var18 /* : Bool */;
8326 short int var20 /* : Bool */;
8327 short int var22 /* : Bool */;
8328 short int var23 /* : Bool */;
8329 int cltype24;
8330 int idtype25;
8331 const char* var_class_name26;
8332 var_old_child = p0;
8333 var_new_child = p1;
8334 var = self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AMinusExpr> */
8335 if (unlikely(var == NULL)) {
8336 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
8337 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4363);
8338 fatal_exit(1);
8339 }
8340 {
8341 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
8342 var_other = var_old_child;
8343 {
8344 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
8345 var5 = var == var_other;
8346 var3 = var5;
8347 goto RET_LABEL4;
8348 RET_LABEL4:(void)0;
8349 }
8350 }
8351 var1 = var3;
8352 goto RET_LABEL2;
8353 RET_LABEL2:(void)0;
8354 }
8355 }
8356 if (var1){
8357 /* <var_new_child:nullable ANode> isa AExpr */
8358 cltype = type_nit__AExpr.color;
8359 idtype = type_nit__AExpr.id;
8360 if(var_new_child == NULL) {
8361 var6 = 0;
8362 } else {
8363 if(cltype >= var_new_child->type->table_size) {
8364 var6 = 0;
8365 } else {
8366 var6 = var_new_child->type->type_table[cltype] == idtype;
8367 }
8368 }
8369 if (unlikely(!var6)) {
8370 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
8371 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
8372 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4364);
8373 fatal_exit(1);
8374 }
8375 {
8376 nit__parser_prod___AMinusExpr___nit__parser_nodes__ASendExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AMinusExpr#n_expr= on <self:AMinusExpr>*/
8377 }
8378 goto RET_LABEL;
8379 } else {
8380 }
8381 var7 = self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_op].val; /* _n_op on <self:AMinusExpr> */
8382 if (unlikely(var7 == NULL)) {
8383 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
8384 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4367);
8385 fatal_exit(1);
8386 }
8387 {
8388 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:Token> */
8389 var_other = var_old_child;
8390 {
8391 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:Token> */
8392 var12 = var7 == var_other;
8393 var10 = var12;
8394 goto RET_LABEL11;
8395 RET_LABEL11:(void)0;
8396 }
8397 }
8398 var8 = var10;
8399 goto RET_LABEL9;
8400 RET_LABEL9:(void)0;
8401 }
8402 }
8403 if (var8){
8404 /* <var_new_child:nullable ANode> isa TMinus */
8405 cltype14 = type_nit__TMinus.color;
8406 idtype15 = type_nit__TMinus.id;
8407 if(var_new_child == NULL) {
8408 var13 = 0;
8409 } else {
8410 if(cltype14 >= var_new_child->type->table_size) {
8411 var13 = 0;
8412 } else {
8413 var13 = var_new_child->type->type_table[cltype14] == idtype15;
8414 }
8415 }
8416 if (unlikely(!var13)) {
8417 var_class_name16 = var_new_child == NULL ? "null" : var_new_child->type->name;
8418 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TMinus", var_class_name16);
8419 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4368);
8420 fatal_exit(1);
8421 }
8422 {
8423 nit__parser_prod___AMinusExpr___nit__parser_nodes__ABinopExpr__n_op_61d(self, var_new_child); /* Direct call parser_prod#AMinusExpr#n_op= on <self:AMinusExpr>*/
8424 }
8425 goto RET_LABEL;
8426 } else {
8427 }
8428 var17 = self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AMinusExpr> */
8429 if (unlikely(var17 == NULL)) {
8430 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
8431 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4371);
8432 fatal_exit(1);
8433 }
8434 {
8435 { /* Inline kernel#Object#== (var17,var_old_child) on <var17:AExpr> */
8436 var_other = var_old_child;
8437 {
8438 { /* Inline kernel#Object#is_same_instance (var17,var_other) on <var17:AExpr> */
8439 var22 = var17 == var_other;
8440 var20 = var22;
8441 goto RET_LABEL21;
8442 RET_LABEL21:(void)0;
8443 }
8444 }
8445 var18 = var20;
8446 goto RET_LABEL19;
8447 RET_LABEL19:(void)0;
8448 }
8449 }
8450 if (var18){
8451 /* <var_new_child:nullable ANode> isa AExpr */
8452 cltype24 = type_nit__AExpr.color;
8453 idtype25 = type_nit__AExpr.id;
8454 if(var_new_child == NULL) {
8455 var23 = 0;
8456 } else {
8457 if(cltype24 >= var_new_child->type->table_size) {
8458 var23 = 0;
8459 } else {
8460 var23 = var_new_child->type->type_table[cltype24] == idtype25;
8461 }
8462 }
8463 if (unlikely(!var23)) {
8464 var_class_name26 = var_new_child == NULL ? "null" : var_new_child->type->name;
8465 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name26);
8466 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4372);
8467 fatal_exit(1);
8468 }
8469 {
8470 nit__parser_prod___AMinusExpr___nit__parser_nodes__ABinopExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#AMinusExpr#n_expr2= on <self:AMinusExpr>*/
8471 }
8472 goto RET_LABEL;
8473 } else {
8474 }
8475 RET_LABEL:;
8476 }
8477 /* method parser_prod#AMinusExpr#n_expr= for (self: AMinusExpr, AExpr) */
8478 void nit__parser_prod___AMinusExpr___nit__parser_nodes__ASendExpr__n_expr_61d(val* self, val* p0) {
8479 val* var_node /* var node: AExpr */;
8480 var_node = p0;
8481 self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:AMinusExpr> */
8482 {
8483 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
8484 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
8485 RET_LABEL1:(void)0;
8486 }
8487 }
8488 RET_LABEL:;
8489 }
8490 /* method parser_prod#AMinusExpr#n_op= for (self: AMinusExpr, Token) */
8491 void nit__parser_prod___AMinusExpr___nit__parser_nodes__ABinopExpr__n_op_61d(val* self, val* p0) {
8492 val* var_node /* var node: Token */;
8493 var_node = p0;
8494 self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_op].val = var_node; /* _n_op on <self:AMinusExpr> */
8495 {
8496 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:Token> */
8497 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:Token> */
8498 RET_LABEL1:(void)0;
8499 }
8500 }
8501 RET_LABEL:;
8502 }
8503 /* method parser_prod#AMinusExpr#n_expr2= for (self: AMinusExpr, AExpr) */
8504 void nit__parser_prod___AMinusExpr___nit__parser_nodes__ABinopExpr__n_expr2_61d(val* self, val* p0) {
8505 val* var_node /* var node: AExpr */;
8506 var_node = p0;
8507 self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_expr2].val = var_node; /* _n_expr2 on <self:AMinusExpr> */
8508 {
8509 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
8510 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
8511 RET_LABEL1:(void)0;
8512 }
8513 }
8514 RET_LABEL:;
8515 }
8516 /* method parser_prod#AMinusExpr#visit_all for (self: AMinusExpr, Visitor) */
8517 void nit__parser_prod___AMinusExpr___nit__parser_nodes__ANode__visit_all(val* self, val* p0) {
8518 val* var_v /* var v: Visitor */;
8519 val* var /* : AExpr */;
8520 val* var1 /* : Token */;
8521 val* var2 /* : AExpr */;
8522 var_v = p0;
8523 var = self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AMinusExpr> */
8524 if (unlikely(var == NULL)) {
8525 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
8526 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4396);
8527 fatal_exit(1);
8528 }
8529 {
8530 nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8531 }
8532 var1 = self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_op].val; /* _n_op on <self:AMinusExpr> */
8533 if (unlikely(var1 == NULL)) {
8534 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
8535 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4397);
8536 fatal_exit(1);
8537 }
8538 {
8539 nit___nit__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8540 }
8541 var2 = self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AMinusExpr> */
8542 if (unlikely(var2 == NULL)) {
8543 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
8544 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4398);
8545 fatal_exit(1);
8546 }
8547 {
8548 nit___nit__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8549 }
8550 RET_LABEL:;
8551 }
8552 /* method parser_prod#AStarshipExpr#init_astarshipexpr for (self: AStarshipExpr, nullable AExpr, nullable TStarship, nullable AExpr) */
8553 void nit__parser_prod___AStarshipExpr___init_astarshipexpr(val* self, val* p0, val* p1, val* p2) {
8554 val* var_n_expr /* var n_expr: nullable AExpr */;
8555 val* var_n_op /* var n_op: nullable TStarship */;
8556 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
8557 {
8558 { /* Inline kernel#Object#init (self) on <self:AStarshipExpr> */
8559 RET_LABEL1:(void)0;
8560 }
8561 }
8562 var_n_expr = p0;
8563 var_n_op = p1;
8564 var_n_expr2 = p2;
8565 if (unlikely(var_n_expr == NULL)) {
8566 PRINT_ERROR("Runtime error: %s", "Cast failed");
8567 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4408);
8568 fatal_exit(1);
8569 }
8570 self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AStarshipExpr> */
8571 if (var_n_expr == NULL) {
8572 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8573 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4409);
8574 fatal_exit(1);
8575 } else {
8576 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
8577 if (unlikely(var_n_expr == NULL)) {
8578 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8579 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
8580 fatal_exit(1);
8581 }
8582 var_n_expr->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
8583 RET_LABEL2:(void)0;
8584 }
8585 }
8586 if (unlikely(var_n_op == NULL)) {
8587 PRINT_ERROR("Runtime error: %s", "Cast failed");
8588 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4410);
8589 fatal_exit(1);
8590 }
8591 self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_op].val = var_n_op; /* _n_op on <self:AStarshipExpr> */
8592 if (var_n_op == NULL) {
8593 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8594 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4411);
8595 fatal_exit(1);
8596 } else {
8597 { /* Inline parser_nodes#ANode#parent= (var_n_op,self) on <var_n_op:nullable TStarship> */
8598 if (unlikely(var_n_op == NULL)) {
8599 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8600 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
8601 fatal_exit(1);
8602 }
8603 var_n_op->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_op:nullable TStarship> */
8604 RET_LABEL3:(void)0;
8605 }
8606 }
8607 if (unlikely(var_n_expr2 == NULL)) {
8608 PRINT_ERROR("Runtime error: %s", "Cast failed");
8609 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4412);
8610 fatal_exit(1);
8611 }
8612 self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:AStarshipExpr> */
8613 if (var_n_expr2 == NULL) {
8614 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8615 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4413);
8616 fatal_exit(1);
8617 } else {
8618 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
8619 if (unlikely(var_n_expr2 == NULL)) {
8620 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8621 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
8622 fatal_exit(1);
8623 }
8624 var_n_expr2->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
8625 RET_LABEL4:(void)0;
8626 }
8627 }
8628 RET_LABEL:;
8629 }
8630 /* method parser_prod#AStarshipExpr#replace_child for (self: AStarshipExpr, ANode, nullable ANode) */
8631 void nit__parser_prod___AStarshipExpr___nit__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
8632 val* var_old_child /* var old_child: ANode */;
8633 val* var_new_child /* var new_child: nullable ANode */;
8634 val* var /* : AExpr */;
8635 short int var1 /* : Bool */;
8636 val* var_other /* var other: nullable Object */;
8637 short int var3 /* : Bool */;
8638 short int var5 /* : Bool */;
8639 short int var6 /* : Bool */;
8640 int cltype;
8641 int idtype;
8642 const char* var_class_name;
8643 val* var7 /* : Token */;
8644 short int var8 /* : Bool */;
8645 short int var10 /* : Bool */;
8646 short int var12 /* : Bool */;
8647 short int var13 /* : Bool */;
8648 int cltype14;
8649 int idtype15;
8650 const char* var_class_name16;
8651 val* var17 /* : AExpr */;
8652 short int var18 /* : Bool */;
8653 short int var20 /* : Bool */;
8654 short int var22 /* : Bool */;
8655 short int var23 /* : Bool */;
8656 int cltype24;
8657 int idtype25;
8658 const char* var_class_name26;
8659 var_old_child = p0;
8660 var_new_child = p1;
8661 var = self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AStarshipExpr> */
8662 if (unlikely(var == NULL)) {
8663 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
8664 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4418);
8665 fatal_exit(1);
8666 }
8667 {
8668 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
8669 var_other = var_old_child;
8670 {
8671 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
8672 var5 = var == var_other;
8673 var3 = var5;
8674 goto RET_LABEL4;
8675 RET_LABEL4:(void)0;
8676 }
8677 }
8678 var1 = var3;
8679 goto RET_LABEL2;
8680 RET_LABEL2:(void)0;
8681 }
8682 }
8683 if (var1){
8684 /* <var_new_child:nullable ANode> isa AExpr */
8685 cltype = type_nit__AExpr.color;
8686 idtype = type_nit__AExpr.id;
8687 if(var_new_child == NULL) {
8688 var6 = 0;
8689 } else {
8690 if(cltype >= var_new_child->type->table_size) {
8691 var6 = 0;
8692 } else {
8693 var6 = var_new_child->type->type_table[cltype] == idtype;
8694 }
8695 }
8696 if (unlikely(!var6)) {
8697 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
8698 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
8699 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4419);
8700 fatal_exit(1);
8701 }
8702 {
8703 nit__parser_prod___AStarshipExpr___nit__parser_nodes__ASendExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AStarshipExpr#n_expr= on <self:AStarshipExpr>*/
8704 }
8705 goto RET_LABEL;
8706 } else {
8707 }
8708 var7 = self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_op].val; /* _n_op on <self:AStarshipExpr> */
8709 if (unlikely(var7 == NULL)) {
8710 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
8711 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4422);
8712 fatal_exit(1);
8713 }
8714 {
8715 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:Token> */
8716 var_other = var_old_child;
8717 {
8718 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:Token> */
8719 var12 = var7 == var_other;
8720 var10 = var12;
8721 goto RET_LABEL11;
8722 RET_LABEL11:(void)0;
8723 }
8724 }
8725 var8 = var10;
8726 goto RET_LABEL9;
8727 RET_LABEL9:(void)0;
8728 }
8729 }
8730 if (var8){
8731 /* <var_new_child:nullable ANode> isa TStarship */
8732 cltype14 = type_nit__TStarship.color;
8733 idtype15 = type_nit__TStarship.id;
8734 if(var_new_child == NULL) {
8735 var13 = 0;
8736 } else {
8737 if(cltype14 >= var_new_child->type->table_size) {
8738 var13 = 0;
8739 } else {
8740 var13 = var_new_child->type->type_table[cltype14] == idtype15;
8741 }
8742 }
8743 if (unlikely(!var13)) {
8744 var_class_name16 = var_new_child == NULL ? "null" : var_new_child->type->name;
8745 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TStarship", var_class_name16);
8746 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4423);
8747 fatal_exit(1);
8748 }
8749 {
8750 nit__parser_prod___AStarshipExpr___nit__parser_nodes__ABinopExpr__n_op_61d(self, var_new_child); /* Direct call parser_prod#AStarshipExpr#n_op= on <self:AStarshipExpr>*/
8751 }
8752 goto RET_LABEL;
8753 } else {
8754 }
8755 var17 = self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AStarshipExpr> */
8756 if (unlikely(var17 == NULL)) {
8757 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
8758 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4426);
8759 fatal_exit(1);
8760 }
8761 {
8762 { /* Inline kernel#Object#== (var17,var_old_child) on <var17:AExpr> */
8763 var_other = var_old_child;
8764 {
8765 { /* Inline kernel#Object#is_same_instance (var17,var_other) on <var17:AExpr> */
8766 var22 = var17 == var_other;
8767 var20 = var22;
8768 goto RET_LABEL21;
8769 RET_LABEL21:(void)0;
8770 }
8771 }
8772 var18 = var20;
8773 goto RET_LABEL19;
8774 RET_LABEL19:(void)0;
8775 }
8776 }
8777 if (var18){
8778 /* <var_new_child:nullable ANode> isa AExpr */
8779 cltype24 = type_nit__AExpr.color;
8780 idtype25 = type_nit__AExpr.id;
8781 if(var_new_child == NULL) {
8782 var23 = 0;
8783 } else {
8784 if(cltype24 >= var_new_child->type->table_size) {
8785 var23 = 0;
8786 } else {
8787 var23 = var_new_child->type->type_table[cltype24] == idtype25;
8788 }
8789 }
8790 if (unlikely(!var23)) {
8791 var_class_name26 = var_new_child == NULL ? "null" : var_new_child->type->name;
8792 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name26);
8793 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4427);
8794 fatal_exit(1);
8795 }
8796 {
8797 nit__parser_prod___AStarshipExpr___nit__parser_nodes__ABinopExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#AStarshipExpr#n_expr2= on <self:AStarshipExpr>*/
8798 }
8799 goto RET_LABEL;
8800 } else {
8801 }
8802 RET_LABEL:;
8803 }
8804 /* method parser_prod#AStarshipExpr#n_expr= for (self: AStarshipExpr, AExpr) */
8805 void nit__parser_prod___AStarshipExpr___nit__parser_nodes__ASendExpr__n_expr_61d(val* self, val* p0) {
8806 val* var_node /* var node: AExpr */;
8807 var_node = p0;
8808 self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:AStarshipExpr> */
8809 {
8810 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
8811 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
8812 RET_LABEL1:(void)0;
8813 }
8814 }
8815 RET_LABEL:;
8816 }
8817 /* method parser_prod#AStarshipExpr#n_op= for (self: AStarshipExpr, Token) */
8818 void nit__parser_prod___AStarshipExpr___nit__parser_nodes__ABinopExpr__n_op_61d(val* self, val* p0) {
8819 val* var_node /* var node: Token */;
8820 var_node = p0;
8821 self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_op].val = var_node; /* _n_op on <self:AStarshipExpr> */
8822 {
8823 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:Token> */
8824 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:Token> */
8825 RET_LABEL1:(void)0;
8826 }
8827 }
8828 RET_LABEL:;
8829 }
8830 /* method parser_prod#AStarshipExpr#n_expr2= for (self: AStarshipExpr, AExpr) */
8831 void nit__parser_prod___AStarshipExpr___nit__parser_nodes__ABinopExpr__n_expr2_61d(val* self, val* p0) {
8832 val* var_node /* var node: AExpr */;
8833 var_node = p0;
8834 self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_expr2].val = var_node; /* _n_expr2 on <self:AStarshipExpr> */
8835 {
8836 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
8837 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
8838 RET_LABEL1:(void)0;
8839 }
8840 }
8841 RET_LABEL:;
8842 }
8843 /* method parser_prod#AStarshipExpr#visit_all for (self: AStarshipExpr, Visitor) */
8844 void nit__parser_prod___AStarshipExpr___nit__parser_nodes__ANode__visit_all(val* self, val* p0) {
8845 val* var_v /* var v: Visitor */;
8846 val* var /* : AExpr */;
8847 val* var1 /* : Token */;
8848 val* var2 /* : AExpr */;
8849 var_v = p0;
8850 var = self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AStarshipExpr> */
8851 if (unlikely(var == NULL)) {
8852 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
8853 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4451);
8854 fatal_exit(1);
8855 }
8856 {
8857 nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8858 }
8859 var1 = self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_op].val; /* _n_op on <self:AStarshipExpr> */
8860 if (unlikely(var1 == NULL)) {
8861 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
8862 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4452);
8863 fatal_exit(1);
8864 }
8865 {
8866 nit___nit__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8867 }
8868 var2 = self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AStarshipExpr> */
8869 if (unlikely(var2 == NULL)) {
8870 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
8871 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4453);
8872 fatal_exit(1);
8873 }
8874 {
8875 nit___nit__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8876 }
8877 RET_LABEL:;
8878 }
8879 /* method parser_prod#AStarExpr#init_astarexpr for (self: AStarExpr, nullable AExpr, nullable TStar, nullable AExpr) */
8880 void nit__parser_prod___AStarExpr___init_astarexpr(val* self, val* p0, val* p1, val* p2) {
8881 val* var_n_expr /* var n_expr: nullable AExpr */;
8882 val* var_n_op /* var n_op: nullable TStar */;
8883 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
8884 {
8885 { /* Inline kernel#Object#init (self) on <self:AStarExpr> */
8886 RET_LABEL1:(void)0;
8887 }
8888 }
8889 var_n_expr = p0;
8890 var_n_op = p1;
8891 var_n_expr2 = p2;
8892 if (unlikely(var_n_expr == NULL)) {
8893 PRINT_ERROR("Runtime error: %s", "Cast failed");
8894 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4463);
8895 fatal_exit(1);
8896 }
8897 self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AStarExpr> */
8898 if (var_n_expr == NULL) {
8899 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8900 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4464);
8901 fatal_exit(1);
8902 } else {
8903 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
8904 if (unlikely(var_n_expr == NULL)) {
8905 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8906 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
8907 fatal_exit(1);
8908 }
8909 var_n_expr->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
8910 RET_LABEL2:(void)0;
8911 }
8912 }
8913 if (unlikely(var_n_op == NULL)) {
8914 PRINT_ERROR("Runtime error: %s", "Cast failed");
8915 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4465);
8916 fatal_exit(1);
8917 }
8918 self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_op].val = var_n_op; /* _n_op on <self:AStarExpr> */
8919 if (var_n_op == NULL) {
8920 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8921 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4466);
8922 fatal_exit(1);
8923 } else {
8924 { /* Inline parser_nodes#ANode#parent= (var_n_op,self) on <var_n_op:nullable TStar> */
8925 if (unlikely(var_n_op == NULL)) {
8926 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8927 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
8928 fatal_exit(1);
8929 }
8930 var_n_op->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_op:nullable TStar> */
8931 RET_LABEL3:(void)0;
8932 }
8933 }
8934 if (unlikely(var_n_expr2 == NULL)) {
8935 PRINT_ERROR("Runtime error: %s", "Cast failed");
8936 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4467);
8937 fatal_exit(1);
8938 }
8939 self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:AStarExpr> */
8940 if (var_n_expr2 == NULL) {
8941 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8942 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4468);
8943 fatal_exit(1);
8944 } else {
8945 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
8946 if (unlikely(var_n_expr2 == NULL)) {
8947 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8948 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
8949 fatal_exit(1);
8950 }
8951 var_n_expr2->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
8952 RET_LABEL4:(void)0;
8953 }
8954 }
8955 RET_LABEL:;
8956 }
8957 /* method parser_prod#AStarExpr#replace_child for (self: AStarExpr, ANode, nullable ANode) */
8958 void nit__parser_prod___AStarExpr___nit__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
8959 val* var_old_child /* var old_child: ANode */;
8960 val* var_new_child /* var new_child: nullable ANode */;
8961 val* var /* : AExpr */;
8962 short int var1 /* : Bool */;
8963 val* var_other /* var other: nullable Object */;
8964 short int var3 /* : Bool */;
8965 short int var5 /* : Bool */;
8966 short int var6 /* : Bool */;
8967 int cltype;
8968 int idtype;
8969 const char* var_class_name;
8970 val* var7 /* : Token */;
8971 short int var8 /* : Bool */;
8972 short int var10 /* : Bool */;
8973 short int var12 /* : Bool */;
8974 short int var13 /* : Bool */;
8975 int cltype14;
8976 int idtype15;
8977 const char* var_class_name16;
8978 val* var17 /* : AExpr */;
8979 short int var18 /* : Bool */;
8980 short int var20 /* : Bool */;
8981 short int var22 /* : Bool */;
8982 short int var23 /* : Bool */;
8983 int cltype24;
8984 int idtype25;
8985 const char* var_class_name26;
8986 var_old_child = p0;
8987 var_new_child = p1;
8988 var = self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AStarExpr> */
8989 if (unlikely(var == NULL)) {
8990 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
8991 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4473);
8992 fatal_exit(1);
8993 }
8994 {
8995 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
8996 var_other = var_old_child;
8997 {
8998 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
8999 var5 = var == var_other;
9000 var3 = var5;
9001 goto RET_LABEL4;
9002 RET_LABEL4:(void)0;
9003 }
9004 }
9005 var1 = var3;
9006 goto RET_LABEL2;
9007 RET_LABEL2:(void)0;
9008 }
9009 }
9010 if (var1){
9011 /* <var_new_child:nullable ANode> isa AExpr */
9012 cltype = type_nit__AExpr.color;
9013 idtype = type_nit__AExpr.id;
9014 if(var_new_child == NULL) {
9015 var6 = 0;
9016 } else {
9017 if(cltype >= var_new_child->type->table_size) {
9018 var6 = 0;
9019 } else {
9020 var6 = var_new_child->type->type_table[cltype] == idtype;
9021 }
9022 }
9023 if (unlikely(!var6)) {
9024 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
9025 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
9026 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4474);
9027 fatal_exit(1);
9028 }
9029 {
9030 nit__parser_prod___AStarExpr___nit__parser_nodes__ASendExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AStarExpr#n_expr= on <self:AStarExpr>*/
9031 }
9032 goto RET_LABEL;
9033 } else {
9034 }
9035 var7 = self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_op].val; /* _n_op on <self:AStarExpr> */
9036 if (unlikely(var7 == NULL)) {
9037 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
9038 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4477);
9039 fatal_exit(1);
9040 }
9041 {
9042 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:Token> */
9043 var_other = var_old_child;
9044 {
9045 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:Token> */
9046 var12 = var7 == var_other;
9047 var10 = var12;
9048 goto RET_LABEL11;
9049 RET_LABEL11:(void)0;
9050 }
9051 }
9052 var8 = var10;
9053 goto RET_LABEL9;
9054 RET_LABEL9:(void)0;
9055 }
9056 }
9057 if (var8){
9058 /* <var_new_child:nullable ANode> isa TStar */
9059 cltype14 = type_nit__TStar.color;
9060 idtype15 = type_nit__TStar.id;
9061 if(var_new_child == NULL) {
9062 var13 = 0;
9063 } else {
9064 if(cltype14 >= var_new_child->type->table_size) {
9065 var13 = 0;
9066 } else {
9067 var13 = var_new_child->type->type_table[cltype14] == idtype15;
9068 }
9069 }
9070 if (unlikely(!var13)) {
9071 var_class_name16 = var_new_child == NULL ? "null" : var_new_child->type->name;
9072 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TStar", var_class_name16);
9073 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4478);
9074 fatal_exit(1);
9075 }
9076 {
9077 nit__parser_prod___AStarExpr___nit__parser_nodes__ABinopExpr__n_op_61d(self, var_new_child); /* Direct call parser_prod#AStarExpr#n_op= on <self:AStarExpr>*/
9078 }
9079 goto RET_LABEL;
9080 } else {
9081 }
9082 var17 = self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AStarExpr> */
9083 if (unlikely(var17 == NULL)) {
9084 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
9085 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4481);
9086 fatal_exit(1);
9087 }
9088 {
9089 { /* Inline kernel#Object#== (var17,var_old_child) on <var17:AExpr> */
9090 var_other = var_old_child;
9091 {
9092 { /* Inline kernel#Object#is_same_instance (var17,var_other) on <var17:AExpr> */
9093 var22 = var17 == var_other;
9094 var20 = var22;
9095 goto RET_LABEL21;
9096 RET_LABEL21:(void)0;
9097 }
9098 }
9099 var18 = var20;
9100 goto RET_LABEL19;
9101 RET_LABEL19:(void)0;
9102 }
9103 }
9104 if (var18){
9105 /* <var_new_child:nullable ANode> isa AExpr */
9106 cltype24 = type_nit__AExpr.color;
9107 idtype25 = type_nit__AExpr.id;
9108 if(var_new_child == NULL) {
9109 var23 = 0;
9110 } else {
9111 if(cltype24 >= var_new_child->type->table_size) {
9112 var23 = 0;
9113 } else {
9114 var23 = var_new_child->type->type_table[cltype24] == idtype25;
9115 }
9116 }
9117 if (unlikely(!var23)) {
9118 var_class_name26 = var_new_child == NULL ? "null" : var_new_child->type->name;
9119 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name26);
9120 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4482);
9121 fatal_exit(1);
9122 }
9123 {
9124 nit__parser_prod___AStarExpr___nit__parser_nodes__ABinopExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#AStarExpr#n_expr2= on <self:AStarExpr>*/
9125 }
9126 goto RET_LABEL;
9127 } else {
9128 }
9129 RET_LABEL:;
9130 }
9131 /* method parser_prod#AStarExpr#n_expr= for (self: AStarExpr, AExpr) */
9132 void nit__parser_prod___AStarExpr___nit__parser_nodes__ASendExpr__n_expr_61d(val* self, val* p0) {
9133 val* var_node /* var node: AExpr */;
9134 var_node = p0;
9135 self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:AStarExpr> */
9136 {
9137 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
9138 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
9139 RET_LABEL1:(void)0;
9140 }
9141 }
9142 RET_LABEL:;
9143 }
9144 /* method parser_prod#AStarExpr#n_op= for (self: AStarExpr, Token) */
9145 void nit__parser_prod___AStarExpr___nit__parser_nodes__ABinopExpr__n_op_61d(val* self, val* p0) {
9146 val* var_node /* var node: Token */;
9147 var_node = p0;
9148 self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_op].val = var_node; /* _n_op on <self:AStarExpr> */
9149 {
9150 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:Token> */
9151 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:Token> */
9152 RET_LABEL1:(void)0;
9153 }
9154 }
9155 RET_LABEL:;
9156 }
9157 /* method parser_prod#AStarExpr#n_expr2= for (self: AStarExpr, AExpr) */
9158 void nit__parser_prod___AStarExpr___nit__parser_nodes__ABinopExpr__n_expr2_61d(val* self, val* p0) {
9159 val* var_node /* var node: AExpr */;
9160 var_node = p0;
9161 self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_expr2].val = var_node; /* _n_expr2 on <self:AStarExpr> */
9162 {
9163 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
9164 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
9165 RET_LABEL1:(void)0;
9166 }
9167 }
9168 RET_LABEL:;
9169 }
9170 /* method parser_prod#AStarExpr#visit_all for (self: AStarExpr, Visitor) */
9171 void nit__parser_prod___AStarExpr___nit__parser_nodes__ANode__visit_all(val* self, val* p0) {
9172 val* var_v /* var v: Visitor */;
9173 val* var /* : AExpr */;
9174 val* var1 /* : Token */;
9175 val* var2 /* : AExpr */;
9176 var_v = p0;
9177 var = self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AStarExpr> */
9178 if (unlikely(var == NULL)) {
9179 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
9180 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4506);
9181 fatal_exit(1);
9182 }
9183 {
9184 nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9185 }
9186 var1 = self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_op].val; /* _n_op on <self:AStarExpr> */
9187 if (unlikely(var1 == NULL)) {
9188 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
9189 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4507);
9190 fatal_exit(1);
9191 }
9192 {
9193 nit___nit__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9194 }
9195 var2 = self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AStarExpr> */
9196 if (unlikely(var2 == NULL)) {
9197 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
9198 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4508);
9199 fatal_exit(1);
9200 }
9201 {
9202 nit___nit__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9203 }
9204 RET_LABEL:;
9205 }
9206 /* method parser_prod#AStarstarExpr#init_astarstarexpr for (self: AStarstarExpr, nullable AExpr, nullable TStarstar, nullable AExpr) */
9207 void nit__parser_prod___AStarstarExpr___init_astarstarexpr(val* self, val* p0, val* p1, val* p2) {
9208 val* var_n_expr /* var n_expr: nullable AExpr */;
9209 val* var_n_op /* var n_op: nullable TStarstar */;
9210 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
9211 {
9212 { /* Inline kernel#Object#init (self) on <self:AStarstarExpr> */
9213 RET_LABEL1:(void)0;
9214 }
9215 }
9216 var_n_expr = p0;
9217 var_n_op = p1;
9218 var_n_expr2 = p2;
9219 if (unlikely(var_n_expr == NULL)) {
9220 PRINT_ERROR("Runtime error: %s", "Cast failed");
9221 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4518);
9222 fatal_exit(1);
9223 }
9224 self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AStarstarExpr> */
9225 if (var_n_expr == NULL) {
9226 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9227 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4519);
9228 fatal_exit(1);
9229 } else {
9230 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
9231 if (unlikely(var_n_expr == NULL)) {
9232 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9233 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
9234 fatal_exit(1);
9235 }
9236 var_n_expr->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
9237 RET_LABEL2:(void)0;
9238 }
9239 }
9240 if (unlikely(var_n_op == NULL)) {
9241 PRINT_ERROR("Runtime error: %s", "Cast failed");
9242 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4520);
9243 fatal_exit(1);
9244 }
9245 self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_op].val = var_n_op; /* _n_op on <self:AStarstarExpr> */
9246 if (var_n_op == NULL) {
9247 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9248 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4521);
9249 fatal_exit(1);
9250 } else {
9251 { /* Inline parser_nodes#ANode#parent= (var_n_op,self) on <var_n_op:nullable TStarstar> */
9252 if (unlikely(var_n_op == NULL)) {
9253 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9254 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
9255 fatal_exit(1);
9256 }
9257 var_n_op->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_op:nullable TStarstar> */
9258 RET_LABEL3:(void)0;
9259 }
9260 }
9261 if (unlikely(var_n_expr2 == NULL)) {
9262 PRINT_ERROR("Runtime error: %s", "Cast failed");
9263 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4522);
9264 fatal_exit(1);
9265 }
9266 self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:AStarstarExpr> */
9267 if (var_n_expr2 == NULL) {
9268 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9269 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4523);
9270 fatal_exit(1);
9271 } else {
9272 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
9273 if (unlikely(var_n_expr2 == NULL)) {
9274 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9275 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
9276 fatal_exit(1);
9277 }
9278 var_n_expr2->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
9279 RET_LABEL4:(void)0;
9280 }
9281 }
9282 RET_LABEL:;
9283 }
9284 /* method parser_prod#AStarstarExpr#replace_child for (self: AStarstarExpr, ANode, nullable ANode) */
9285 void nit__parser_prod___AStarstarExpr___nit__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
9286 val* var_old_child /* var old_child: ANode */;
9287 val* var_new_child /* var new_child: nullable ANode */;
9288 val* var /* : AExpr */;
9289 short int var1 /* : Bool */;
9290 val* var_other /* var other: nullable Object */;
9291 short int var3 /* : Bool */;
9292 short int var5 /* : Bool */;
9293 short int var6 /* : Bool */;
9294 int cltype;
9295 int idtype;
9296 const char* var_class_name;
9297 val* var7 /* : Token */;
9298 short int var8 /* : Bool */;
9299 short int var10 /* : Bool */;
9300 short int var12 /* : Bool */;
9301 short int var13 /* : Bool */;
9302 int cltype14;
9303 int idtype15;
9304 const char* var_class_name16;
9305 val* var17 /* : AExpr */;
9306 short int var18 /* : Bool */;
9307 short int var20 /* : Bool */;
9308 short int var22 /* : Bool */;
9309 short int var23 /* : Bool */;
9310 int cltype24;
9311 int idtype25;
9312 const char* var_class_name26;
9313 var_old_child = p0;
9314 var_new_child = p1;
9315 var = self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AStarstarExpr> */
9316 if (unlikely(var == NULL)) {
9317 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
9318 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4528);
9319 fatal_exit(1);
9320 }
9321 {
9322 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
9323 var_other = var_old_child;
9324 {
9325 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
9326 var5 = var == var_other;
9327 var3 = var5;
9328 goto RET_LABEL4;
9329 RET_LABEL4:(void)0;
9330 }
9331 }
9332 var1 = var3;
9333 goto RET_LABEL2;
9334 RET_LABEL2:(void)0;
9335 }
9336 }
9337 if (var1){
9338 /* <var_new_child:nullable ANode> isa AExpr */
9339 cltype = type_nit__AExpr.color;
9340 idtype = type_nit__AExpr.id;
9341 if(var_new_child == NULL) {
9342 var6 = 0;
9343 } else {
9344 if(cltype >= var_new_child->type->table_size) {
9345 var6 = 0;
9346 } else {
9347 var6 = var_new_child->type->type_table[cltype] == idtype;
9348 }
9349 }
9350 if (unlikely(!var6)) {
9351 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
9352 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
9353 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4529);
9354 fatal_exit(1);
9355 }
9356 {
9357 nit__parser_prod___AStarstarExpr___nit__parser_nodes__ASendExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AStarstarExpr#n_expr= on <self:AStarstarExpr>*/
9358 }
9359 goto RET_LABEL;
9360 } else {
9361 }
9362 var7 = self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_op].val; /* _n_op on <self:AStarstarExpr> */
9363 if (unlikely(var7 == NULL)) {
9364 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
9365 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4532);
9366 fatal_exit(1);
9367 }
9368 {
9369 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:Token> */
9370 var_other = var_old_child;
9371 {
9372 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:Token> */
9373 var12 = var7 == var_other;
9374 var10 = var12;
9375 goto RET_LABEL11;
9376 RET_LABEL11:(void)0;
9377 }
9378 }
9379 var8 = var10;
9380 goto RET_LABEL9;
9381 RET_LABEL9:(void)0;
9382 }
9383 }
9384 if (var8){
9385 /* <var_new_child:nullable ANode> isa TStarstar */
9386 cltype14 = type_nit__TStarstar.color;
9387 idtype15 = type_nit__TStarstar.id;
9388 if(var_new_child == NULL) {
9389 var13 = 0;
9390 } else {
9391 if(cltype14 >= var_new_child->type->table_size) {
9392 var13 = 0;
9393 } else {
9394 var13 = var_new_child->type->type_table[cltype14] == idtype15;
9395 }
9396 }
9397 if (unlikely(!var13)) {
9398 var_class_name16 = var_new_child == NULL ? "null" : var_new_child->type->name;
9399 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TStarstar", var_class_name16);
9400 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4533);
9401 fatal_exit(1);
9402 }
9403 {
9404 nit__parser_prod___AStarstarExpr___nit__parser_nodes__ABinopExpr__n_op_61d(self, var_new_child); /* Direct call parser_prod#AStarstarExpr#n_op= on <self:AStarstarExpr>*/
9405 }
9406 goto RET_LABEL;
9407 } else {
9408 }
9409 var17 = self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AStarstarExpr> */
9410 if (unlikely(var17 == NULL)) {
9411 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
9412 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4536);
9413 fatal_exit(1);
9414 }
9415 {
9416 { /* Inline kernel#Object#== (var17,var_old_child) on <var17:AExpr> */
9417 var_other = var_old_child;
9418 {
9419 { /* Inline kernel#Object#is_same_instance (var17,var_other) on <var17:AExpr> */
9420 var22 = var17 == var_other;
9421 var20 = var22;
9422 goto RET_LABEL21;
9423 RET_LABEL21:(void)0;
9424 }
9425 }
9426 var18 = var20;
9427 goto RET_LABEL19;
9428 RET_LABEL19:(void)0;
9429 }
9430 }
9431 if (var18){
9432 /* <var_new_child:nullable ANode> isa AExpr */
9433 cltype24 = type_nit__AExpr.color;
9434 idtype25 = type_nit__AExpr.id;
9435 if(var_new_child == NULL) {
9436 var23 = 0;
9437 } else {
9438 if(cltype24 >= var_new_child->type->table_size) {
9439 var23 = 0;
9440 } else {
9441 var23 = var_new_child->type->type_table[cltype24] == idtype25;
9442 }
9443 }
9444 if (unlikely(!var23)) {
9445 var_class_name26 = var_new_child == NULL ? "null" : var_new_child->type->name;
9446 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name26);
9447 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4537);
9448 fatal_exit(1);
9449 }
9450 {
9451 nit__parser_prod___AStarstarExpr___nit__parser_nodes__ABinopExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#AStarstarExpr#n_expr2= on <self:AStarstarExpr>*/
9452 }
9453 goto RET_LABEL;
9454 } else {
9455 }
9456 RET_LABEL:;
9457 }
9458 /* method parser_prod#AStarstarExpr#n_expr= for (self: AStarstarExpr, AExpr) */
9459 void nit__parser_prod___AStarstarExpr___nit__parser_nodes__ASendExpr__n_expr_61d(val* self, val* p0) {
9460 val* var_node /* var node: AExpr */;
9461 var_node = p0;
9462 self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:AStarstarExpr> */
9463 {
9464 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
9465 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
9466 RET_LABEL1:(void)0;
9467 }
9468 }
9469 RET_LABEL:;
9470 }
9471 /* method parser_prod#AStarstarExpr#n_op= for (self: AStarstarExpr, Token) */
9472 void nit__parser_prod___AStarstarExpr___nit__parser_nodes__ABinopExpr__n_op_61d(val* self, val* p0) {
9473 val* var_node /* var node: Token */;
9474 var_node = p0;
9475 self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_op].val = var_node; /* _n_op on <self:AStarstarExpr> */
9476 {
9477 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:Token> */
9478 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:Token> */
9479 RET_LABEL1:(void)0;
9480 }
9481 }
9482 RET_LABEL:;
9483 }
9484 /* method parser_prod#AStarstarExpr#n_expr2= for (self: AStarstarExpr, AExpr) */
9485 void nit__parser_prod___AStarstarExpr___nit__parser_nodes__ABinopExpr__n_expr2_61d(val* self, val* p0) {
9486 val* var_node /* var node: AExpr */;
9487 var_node = p0;
9488 self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_expr2].val = var_node; /* _n_expr2 on <self:AStarstarExpr> */
9489 {
9490 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
9491 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
9492 RET_LABEL1:(void)0;
9493 }
9494 }
9495 RET_LABEL:;
9496 }
9497 /* method parser_prod#AStarstarExpr#visit_all for (self: AStarstarExpr, Visitor) */
9498 void nit__parser_prod___AStarstarExpr___nit__parser_nodes__ANode__visit_all(val* self, val* p0) {
9499 val* var_v /* var v: Visitor */;
9500 val* var /* : AExpr */;
9501 val* var1 /* : Token */;
9502 val* var2 /* : AExpr */;
9503 var_v = p0;
9504 var = self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AStarstarExpr> */
9505 if (unlikely(var == NULL)) {
9506 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
9507 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4561);
9508 fatal_exit(1);
9509 }
9510 {
9511 nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9512 }
9513 var1 = self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_op].val; /* _n_op on <self:AStarstarExpr> */
9514 if (unlikely(var1 == NULL)) {
9515 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
9516 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4562);
9517 fatal_exit(1);
9518 }
9519 {
9520 nit___nit__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9521 }
9522 var2 = self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AStarstarExpr> */
9523 if (unlikely(var2 == NULL)) {
9524 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
9525 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4563);
9526 fatal_exit(1);
9527 }
9528 {
9529 nit___nit__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9530 }
9531 RET_LABEL:;
9532 }
9533 /* method parser_prod#ASlashExpr#init_aslashexpr for (self: ASlashExpr, nullable AExpr, nullable TSlash, nullable AExpr) */
9534 void nit__parser_prod___ASlashExpr___init_aslashexpr(val* self, val* p0, val* p1, val* p2) {
9535 val* var_n_expr /* var n_expr: nullable AExpr */;
9536 val* var_n_op /* var n_op: nullable TSlash */;
9537 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
9538 {
9539 { /* Inline kernel#Object#init (self) on <self:ASlashExpr> */
9540 RET_LABEL1:(void)0;
9541 }
9542 }
9543 var_n_expr = p0;
9544 var_n_op = p1;
9545 var_n_expr2 = p2;
9546 if (unlikely(var_n_expr == NULL)) {
9547 PRINT_ERROR("Runtime error: %s", "Cast failed");
9548 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4573);
9549 fatal_exit(1);
9550 }
9551 self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:ASlashExpr> */
9552 if (var_n_expr == NULL) {
9553 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9554 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4574);
9555 fatal_exit(1);
9556 } else {
9557 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
9558 if (unlikely(var_n_expr == NULL)) {
9559 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9560 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
9561 fatal_exit(1);
9562 }
9563 var_n_expr->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
9564 RET_LABEL2:(void)0;
9565 }
9566 }
9567 if (unlikely(var_n_op == NULL)) {
9568 PRINT_ERROR("Runtime error: %s", "Cast failed");
9569 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4575);
9570 fatal_exit(1);
9571 }
9572 self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_op].val = var_n_op; /* _n_op on <self:ASlashExpr> */
9573 if (var_n_op == NULL) {
9574 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9575 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4576);
9576 fatal_exit(1);
9577 } else {
9578 { /* Inline parser_nodes#ANode#parent= (var_n_op,self) on <var_n_op:nullable TSlash> */
9579 if (unlikely(var_n_op == NULL)) {
9580 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9581 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
9582 fatal_exit(1);
9583 }
9584 var_n_op->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_op:nullable TSlash> */
9585 RET_LABEL3:(void)0;
9586 }
9587 }
9588 if (unlikely(var_n_expr2 == NULL)) {
9589 PRINT_ERROR("Runtime error: %s", "Cast failed");
9590 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4577);
9591 fatal_exit(1);
9592 }
9593 self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:ASlashExpr> */
9594 if (var_n_expr2 == NULL) {
9595 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9596 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4578);
9597 fatal_exit(1);
9598 } else {
9599 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
9600 if (unlikely(var_n_expr2 == NULL)) {
9601 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9602 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
9603 fatal_exit(1);
9604 }
9605 var_n_expr2->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
9606 RET_LABEL4:(void)0;
9607 }
9608 }
9609 RET_LABEL:;
9610 }
9611 /* method parser_prod#ASlashExpr#replace_child for (self: ASlashExpr, ANode, nullable ANode) */
9612 void nit__parser_prod___ASlashExpr___nit__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
9613 val* var_old_child /* var old_child: ANode */;
9614 val* var_new_child /* var new_child: nullable ANode */;
9615 val* var /* : AExpr */;
9616 short int var1 /* : Bool */;
9617 val* var_other /* var other: nullable Object */;
9618 short int var3 /* : Bool */;
9619 short int var5 /* : Bool */;
9620 short int var6 /* : Bool */;
9621 int cltype;
9622 int idtype;
9623 const char* var_class_name;
9624 val* var7 /* : Token */;
9625 short int var8 /* : Bool */;
9626 short int var10 /* : Bool */;
9627 short int var12 /* : Bool */;
9628 short int var13 /* : Bool */;
9629 int cltype14;
9630 int idtype15;
9631 const char* var_class_name16;
9632 val* var17 /* : AExpr */;
9633 short int var18 /* : Bool */;
9634 short int var20 /* : Bool */;
9635 short int var22 /* : Bool */;
9636 short int var23 /* : Bool */;
9637 int cltype24;
9638 int idtype25;
9639 const char* var_class_name26;
9640 var_old_child = p0;
9641 var_new_child = p1;
9642 var = self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ASlashExpr> */
9643 if (unlikely(var == NULL)) {
9644 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
9645 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4583);
9646 fatal_exit(1);
9647 }
9648 {
9649 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
9650 var_other = var_old_child;
9651 {
9652 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
9653 var5 = var == var_other;
9654 var3 = var5;
9655 goto RET_LABEL4;
9656 RET_LABEL4:(void)0;
9657 }
9658 }
9659 var1 = var3;
9660 goto RET_LABEL2;
9661 RET_LABEL2:(void)0;
9662 }
9663 }
9664 if (var1){
9665 /* <var_new_child:nullable ANode> isa AExpr */
9666 cltype = type_nit__AExpr.color;
9667 idtype = type_nit__AExpr.id;
9668 if(var_new_child == NULL) {
9669 var6 = 0;
9670 } else {
9671 if(cltype >= var_new_child->type->table_size) {
9672 var6 = 0;
9673 } else {
9674 var6 = var_new_child->type->type_table[cltype] == idtype;
9675 }
9676 }
9677 if (unlikely(!var6)) {
9678 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
9679 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
9680 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4584);
9681 fatal_exit(1);
9682 }
9683 {
9684 nit__parser_prod___ASlashExpr___nit__parser_nodes__ASendExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#ASlashExpr#n_expr= on <self:ASlashExpr>*/
9685 }
9686 goto RET_LABEL;
9687 } else {
9688 }
9689 var7 = self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_op].val; /* _n_op on <self:ASlashExpr> */
9690 if (unlikely(var7 == NULL)) {
9691 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
9692 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4587);
9693 fatal_exit(1);
9694 }
9695 {
9696 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:Token> */
9697 var_other = var_old_child;
9698 {
9699 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:Token> */
9700 var12 = var7 == var_other;
9701 var10 = var12;
9702 goto RET_LABEL11;
9703 RET_LABEL11:(void)0;
9704 }
9705 }
9706 var8 = var10;
9707 goto RET_LABEL9;
9708 RET_LABEL9:(void)0;
9709 }
9710 }
9711 if (var8){
9712 /* <var_new_child:nullable ANode> isa TSlash */
9713 cltype14 = type_nit__TSlash.color;
9714 idtype15 = type_nit__TSlash.id;
9715 if(var_new_child == NULL) {
9716 var13 = 0;
9717 } else {
9718 if(cltype14 >= var_new_child->type->table_size) {
9719 var13 = 0;
9720 } else {
9721 var13 = var_new_child->type->type_table[cltype14] == idtype15;
9722 }
9723 }
9724 if (unlikely(!var13)) {
9725 var_class_name16 = var_new_child == NULL ? "null" : var_new_child->type->name;
9726 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TSlash", var_class_name16);
9727 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4588);
9728 fatal_exit(1);
9729 }
9730 {
9731 nit__parser_prod___ASlashExpr___nit__parser_nodes__ABinopExpr__n_op_61d(self, var_new_child); /* Direct call parser_prod#ASlashExpr#n_op= on <self:ASlashExpr>*/
9732 }
9733 goto RET_LABEL;
9734 } else {
9735 }
9736 var17 = self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:ASlashExpr> */
9737 if (unlikely(var17 == NULL)) {
9738 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
9739 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4591);
9740 fatal_exit(1);
9741 }
9742 {
9743 { /* Inline kernel#Object#== (var17,var_old_child) on <var17:AExpr> */
9744 var_other = var_old_child;
9745 {
9746 { /* Inline kernel#Object#is_same_instance (var17,var_other) on <var17:AExpr> */
9747 var22 = var17 == var_other;
9748 var20 = var22;
9749 goto RET_LABEL21;
9750 RET_LABEL21:(void)0;
9751 }
9752 }
9753 var18 = var20;
9754 goto RET_LABEL19;
9755 RET_LABEL19:(void)0;
9756 }
9757 }
9758 if (var18){
9759 /* <var_new_child:nullable ANode> isa AExpr */
9760 cltype24 = type_nit__AExpr.color;
9761 idtype25 = type_nit__AExpr.id;
9762 if(var_new_child == NULL) {
9763 var23 = 0;
9764 } else {
9765 if(cltype24 >= var_new_child->type->table_size) {
9766 var23 = 0;
9767 } else {
9768 var23 = var_new_child->type->type_table[cltype24] == idtype25;
9769 }
9770 }
9771 if (unlikely(!var23)) {
9772 var_class_name26 = var_new_child == NULL ? "null" : var_new_child->type->name;
9773 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name26);
9774 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4592);
9775 fatal_exit(1);
9776 }
9777 {
9778 nit__parser_prod___ASlashExpr___nit__parser_nodes__ABinopExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#ASlashExpr#n_expr2= on <self:ASlashExpr>*/
9779 }
9780 goto RET_LABEL;
9781 } else {
9782 }
9783 RET_LABEL:;
9784 }
9785 /* method parser_prod#ASlashExpr#n_expr= for (self: ASlashExpr, AExpr) */
9786 void nit__parser_prod___ASlashExpr___nit__parser_nodes__ASendExpr__n_expr_61d(val* self, val* p0) {
9787 val* var_node /* var node: AExpr */;
9788 var_node = p0;
9789 self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:ASlashExpr> */
9790 {
9791 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
9792 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
9793 RET_LABEL1:(void)0;
9794 }
9795 }
9796 RET_LABEL:;
9797 }
9798 /* method parser_prod#ASlashExpr#n_op= for (self: ASlashExpr, Token) */
9799 void nit__parser_prod___ASlashExpr___nit__parser_nodes__ABinopExpr__n_op_61d(val* self, val* p0) {
9800 val* var_node /* var node: Token */;
9801 var_node = p0;
9802 self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_op].val = var_node; /* _n_op on <self:ASlashExpr> */
9803 {
9804 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:Token> */
9805 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:Token> */
9806 RET_LABEL1:(void)0;
9807 }
9808 }
9809 RET_LABEL:;
9810 }
9811 /* method parser_prod#ASlashExpr#n_expr2= for (self: ASlashExpr, AExpr) */
9812 void nit__parser_prod___ASlashExpr___nit__parser_nodes__ABinopExpr__n_expr2_61d(val* self, val* p0) {
9813 val* var_node /* var node: AExpr */;
9814 var_node = p0;
9815 self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_expr2].val = var_node; /* _n_expr2 on <self:ASlashExpr> */
9816 {
9817 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
9818 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
9819 RET_LABEL1:(void)0;
9820 }
9821 }
9822 RET_LABEL:;
9823 }
9824 /* method parser_prod#ASlashExpr#visit_all for (self: ASlashExpr, Visitor) */
9825 void nit__parser_prod___ASlashExpr___nit__parser_nodes__ANode__visit_all(val* self, val* p0) {
9826 val* var_v /* var v: Visitor */;
9827 val* var /* : AExpr */;
9828 val* var1 /* : Token */;
9829 val* var2 /* : AExpr */;
9830 var_v = p0;
9831 var = self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ASlashExpr> */
9832 if (unlikely(var == NULL)) {
9833 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
9834 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4616);
9835 fatal_exit(1);
9836 }
9837 {
9838 nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9839 }
9840 var1 = self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_op].val; /* _n_op on <self:ASlashExpr> */
9841 if (unlikely(var1 == NULL)) {
9842 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
9843 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4617);
9844 fatal_exit(1);
9845 }
9846 {
9847 nit___nit__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9848 }
9849 var2 = self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:ASlashExpr> */
9850 if (unlikely(var2 == NULL)) {
9851 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
9852 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4618);
9853 fatal_exit(1);
9854 }
9855 {
9856 nit___nit__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9857 }
9858 RET_LABEL:;
9859 }
9860 /* method parser_prod#APercentExpr#init_apercentexpr for (self: APercentExpr, nullable AExpr, nullable TPercent, nullable AExpr) */
9861 void nit__parser_prod___APercentExpr___init_apercentexpr(val* self, val* p0, val* p1, val* p2) {
9862 val* var_n_expr /* var n_expr: nullable AExpr */;
9863 val* var_n_op /* var n_op: nullable TPercent */;
9864 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
9865 {
9866 { /* Inline kernel#Object#init (self) on <self:APercentExpr> */
9867 RET_LABEL1:(void)0;
9868 }
9869 }
9870 var_n_expr = p0;
9871 var_n_op = p1;
9872 var_n_expr2 = p2;
9873 if (unlikely(var_n_expr == NULL)) {
9874 PRINT_ERROR("Runtime error: %s", "Cast failed");
9875 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4628);
9876 fatal_exit(1);
9877 }
9878 self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:APercentExpr> */
9879 if (var_n_expr == NULL) {
9880 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9881 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4629);
9882 fatal_exit(1);
9883 } else {
9884 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
9885 if (unlikely(var_n_expr == NULL)) {
9886 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9887 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
9888 fatal_exit(1);
9889 }
9890 var_n_expr->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
9891 RET_LABEL2:(void)0;
9892 }
9893 }
9894 if (unlikely(var_n_op == NULL)) {
9895 PRINT_ERROR("Runtime error: %s", "Cast failed");
9896 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4630);
9897 fatal_exit(1);
9898 }
9899 self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_op].val = var_n_op; /* _n_op on <self:APercentExpr> */
9900 if (var_n_op == NULL) {
9901 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9902 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4631);
9903 fatal_exit(1);
9904 } else {
9905 { /* Inline parser_nodes#ANode#parent= (var_n_op,self) on <var_n_op:nullable TPercent> */
9906 if (unlikely(var_n_op == NULL)) {
9907 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9908 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
9909 fatal_exit(1);
9910 }
9911 var_n_op->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_op:nullable TPercent> */
9912 RET_LABEL3:(void)0;
9913 }
9914 }
9915 if (unlikely(var_n_expr2 == NULL)) {
9916 PRINT_ERROR("Runtime error: %s", "Cast failed");
9917 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4632);
9918 fatal_exit(1);
9919 }
9920 self->attrs[COLOR_nit__parser_nodes__ABinopExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:APercentExpr> */
9921 if (var_n_expr2 == NULL) {
9922 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9923 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 4633);
9924 fatal_exit(1);
9925 } else {
9926 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
9927 if (unlikely(var_n_expr2 == NULL)) {
9928 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9929 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
9930 fatal_exit(1);
9931 }
9932 var_n_expr2->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
9933 RET_LABEL4:(void)0;
9934 }
9935 }
9936 RET_LABEL:;
9937 }