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