update NOTICE
[nit.git] / c_src / parser_prod.sep.3.c
1 #include "parser_prod.sep.0.h"
2 /* method parser_prod#AForExpr#init_aforexpr for (self: AForExpr, nullable TKwfor, Collection[Object], nullable AExpr, nullable TKwdo, nullable AExpr, nullable ALabel) */
3 void parser_prod__AForExpr__init_aforexpr(val* self, val* p0, val* p1, val* p2, val* p3, val* p4, val* p5) {
4 val* var_n_kwfor /* var n_kwfor: nullable TKwfor */;
5 val* var_n_ids /* var n_ids: Collection[Object] */;
6 val* var_n_expr /* var n_expr: nullable AExpr */;
7 val* var_n_kwdo /* var n_kwdo: nullable TKwdo */;
8 val* var_n_block /* var n_block: nullable AExpr */;
9 val* var_n_label /* var n_label: nullable ALabel */;
10 val* var /* : ANodes[TId] */;
11 val* var3 /* : ANodes[TId] */;
12 val* var6 /* : null */;
13 short int var7 /* : Bool */;
14 short int var8 /* : Bool */;
15 val* var_other /* var other: nullable Object */;
16 short int var10 /* : Bool */;
17 short int var11 /* : Bool */;
18 short int var12 /* : Bool */;
19 val* var14 /* : null */;
20 short int var15 /* : Bool */;
21 short int var16 /* : Bool */;
22 short int var18 /* : Bool */;
23 short int var19 /* : Bool */;
24 short int var20 /* : Bool */;
25 var_n_kwfor = p0;
26 var_n_ids = p1;
27 var_n_expr = p2;
28 var_n_kwdo = p3;
29 var_n_block = p4;
30 var_n_label = p5;
31 if (unlikely(var_n_kwfor == NULL)) {
32 PRINT_ERROR("Runtime error: %s", "Cast failed");
33 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2766);
34 show_backtrace(1);
35 }
36 self->attrs[COLOR_parser_nodes__AForExpr___n_kwfor].val = var_n_kwfor; /* _n_kwfor on <self:AForExpr> */
37 if (var_n_kwfor == NULL) {
38 PRINT_ERROR("Runtime error: %s", "Receiver is null");
39 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2767);
40 show_backtrace(1);
41 } else {
42 { /* Inline parser_nodes#ANode#parent= (var_n_kwfor,self) on <var_n_kwfor:nullable TKwfor> */
43 if (unlikely(var_n_kwfor == NULL)) {
44 PRINT_ERROR("Runtime error: %s", "Receiver is null");
45 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
46 show_backtrace(1);
47 }
48 var_n_kwfor->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwfor:nullable TKwfor> */
49 RET_LABEL1:(void)0;
50 }
51 }
52 {
53 { /* Inline parser_nodes#AForExpr#n_ids (self) on <self:AForExpr> */
54 var3 = self->attrs[COLOR_parser_nodes__AForExpr___n_ids].val; /* _n_ids on <self:AForExpr> */
55 if (unlikely(var3 == NULL)) {
56 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_ids");
57 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1426);
58 show_backtrace(1);
59 }
60 var = var3;
61 RET_LABEL2:(void)0;
62 }
63 }
64 {
65 parser_nodes__ANodes__unsafe_add_all(var, var_n_ids); /* Direct call parser_nodes#ANodes#unsafe_add_all on <var:ANodes[TId]>*/
66 }
67 if (unlikely(var_n_expr == NULL)) {
68 PRINT_ERROR("Runtime error: %s", "Cast failed");
69 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2769);
70 show_backtrace(1);
71 }
72 self->attrs[COLOR_parser_nodes__AForExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AForExpr> */
73 if (var_n_expr == NULL) {
74 PRINT_ERROR("Runtime error: %s", "Receiver is null");
75 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2770);
76 show_backtrace(1);
77 } else {
78 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
79 if (unlikely(var_n_expr == NULL)) {
80 PRINT_ERROR("Runtime error: %s", "Receiver is null");
81 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
82 show_backtrace(1);
83 }
84 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
85 RET_LABEL4:(void)0;
86 }
87 }
88 if (unlikely(var_n_kwdo == NULL)) {
89 PRINT_ERROR("Runtime error: %s", "Cast failed");
90 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2771);
91 show_backtrace(1);
92 }
93 self->attrs[COLOR_parser_nodes__AForExpr___n_kwdo].val = var_n_kwdo; /* _n_kwdo on <self:AForExpr> */
94 if (var_n_kwdo == NULL) {
95 PRINT_ERROR("Runtime error: %s", "Receiver is null");
96 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2772);
97 show_backtrace(1);
98 } else {
99 { /* Inline parser_nodes#ANode#parent= (var_n_kwdo,self) on <var_n_kwdo:nullable TKwdo> */
100 if (unlikely(var_n_kwdo == NULL)) {
101 PRINT_ERROR("Runtime error: %s", "Receiver is null");
102 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
103 show_backtrace(1);
104 }
105 var_n_kwdo->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwdo:nullable TKwdo> */
106 RET_LABEL5:(void)0;
107 }
108 }
109 self->attrs[COLOR_parser_nodes__AForExpr___n_block].val = var_n_block; /* _n_block on <self:AForExpr> */
110 var6 = NULL;
111 if (var_n_block == NULL) {
112 var7 = 0; /* is null */
113 } else {
114 var7 = 1; /* arg is null and recv is not */
115 }
116 if (0) {
117 { /* Inline kernel#Object#!= (var_n_block,var6) on <var_n_block:nullable AExpr> */
118 var_other = var6;
119 {
120 var11 = ((short int (*)(val*, val*))(var_n_block->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_block, var_other) /* == on <var_n_block:nullable AExpr(AExpr)>*/;
121 var10 = var11;
122 }
123 var12 = !var10;
124 var8 = var12;
125 goto RET_LABEL9;
126 RET_LABEL9:(void)0;
127 }
128 var7 = var8;
129 }
130 if (var7){
131 {
132 { /* Inline parser_nodes#ANode#parent= (var_n_block,self) on <var_n_block:nullable AExpr(AExpr)> */
133 var_n_block->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_block:nullable AExpr(AExpr)> */
134 RET_LABEL13:(void)0;
135 }
136 }
137 } else {
138 }
139 self->attrs[COLOR_parser_nodes__ALabelable___n_label].val = var_n_label; /* _n_label on <self:AForExpr> */
140 var14 = NULL;
141 if (var_n_label == NULL) {
142 var15 = 0; /* is null */
143 } else {
144 var15 = 1; /* arg is null and recv is not */
145 }
146 if (0) {
147 { /* Inline kernel#Object#!= (var_n_label,var14) on <var_n_label:nullable ALabel> */
148 var_other = var14;
149 {
150 var19 = ((short int (*)(val*, val*))(var_n_label->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_label, var_other) /* == on <var_n_label:nullable ALabel(ALabel)>*/;
151 var18 = var19;
152 }
153 var20 = !var18;
154 var16 = var20;
155 goto RET_LABEL17;
156 RET_LABEL17:(void)0;
157 }
158 var15 = var16;
159 }
160 if (var15){
161 {
162 { /* Inline parser_nodes#ANode#parent= (var_n_label,self) on <var_n_label:nullable ALabel(ALabel)> */
163 var_n_label->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_label:nullable ALabel(ALabel)> */
164 RET_LABEL21:(void)0;
165 }
166 }
167 } else {
168 }
169 RET_LABEL:;
170 }
171 /* method parser_prod#AForExpr#init_aforexpr for (self: Object, nullable TKwfor, Collection[Object], nullable AExpr, nullable TKwdo, nullable AExpr, nullable ALabel) */
172 void VIRTUAL_parser_prod__AForExpr__init_aforexpr(val* self, val* p0, val* p1, val* p2, val* p3, val* p4, val* p5) {
173 parser_prod__AForExpr__init_aforexpr(self, p0, p1, p2, p3, p4, p5); /* Direct call parser_prod#AForExpr#init_aforexpr on <self:Object(AForExpr)>*/
174 RET_LABEL:;
175 }
176 /* method parser_prod#AForExpr#replace_child for (self: AForExpr, ANode, nullable ANode) */
177 void parser_prod__AForExpr__replace_child(val* self, val* p0, val* p1) {
178 val* var_old_child /* var old_child: ANode */;
179 val* var_new_child /* var new_child: nullable ANode */;
180 val* var /* : TKwfor */;
181 short int var1 /* : Bool */;
182 short int var2 /* : Bool */;
183 val* var_other /* var other: nullable Object */;
184 short int var4 /* : Bool */;
185 short int var6 /* : Bool */;
186 short int var7 /* : Bool */;
187 int cltype;
188 int idtype;
189 const char* var_class_name;
190 val* var8 /* : ANodes[TId] */;
191 val* var10 /* : ANodes[TId] */;
192 short int var11 /* : Bool */;
193 val* var12 /* : AExpr */;
194 short int var13 /* : Bool */;
195 short int var14 /* : Bool */;
196 short int var16 /* : Bool */;
197 short int var18 /* : Bool */;
198 short int var19 /* : Bool */;
199 int cltype20;
200 int idtype21;
201 const char* var_class_name22;
202 val* var23 /* : TKwdo */;
203 short int var24 /* : Bool */;
204 short int var25 /* : Bool */;
205 short int var27 /* : Bool */;
206 short int var29 /* : Bool */;
207 short int var30 /* : Bool */;
208 int cltype31;
209 int idtype32;
210 const char* var_class_name33;
211 val* var34 /* : nullable AExpr */;
212 short int var35 /* : Bool */;
213 short int var36 /* : Bool */;
214 short int var38 /* : Bool */;
215 short int var40 /* : Bool */;
216 short int var41 /* : Bool */;
217 int cltype42;
218 int idtype43;
219 const char* var_class_name44;
220 val* var45 /* : nullable ALabel */;
221 short int var46 /* : Bool */;
222 short int var47 /* : Bool */;
223 short int var49 /* : Bool */;
224 short int var51 /* : Bool */;
225 short int var52 /* : Bool */;
226 int cltype53;
227 int idtype54;
228 const char* var_class_name55;
229 var_old_child = p0;
230 var_new_child = p1;
231 var = self->attrs[COLOR_parser_nodes__AForExpr___n_kwfor].val; /* _n_kwfor on <self:AForExpr> */
232 if (unlikely(var == NULL)) {
233 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwfor");
234 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2781);
235 show_backtrace(1);
236 }
237 {
238 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwfor> */
239 var_other = var_old_child;
240 {
241 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TKwfor> */
242 var6 = var == var_other;
243 var4 = var6;
244 goto RET_LABEL5;
245 RET_LABEL5:(void)0;
246 }
247 }
248 var2 = var4;
249 goto RET_LABEL3;
250 RET_LABEL3:(void)0;
251 }
252 var1 = var2;
253 }
254 if (var1){
255 /* <var_new_child:nullable ANode> isa TKwfor */
256 cltype = type_parser_nodes__TKwfor.color;
257 idtype = type_parser_nodes__TKwfor.id;
258 if(var_new_child == NULL) {
259 var7 = 0;
260 } else {
261 if(cltype >= var_new_child->type->table_size) {
262 var7 = 0;
263 } else {
264 var7 = var_new_child->type->type_table[cltype] == idtype;
265 }
266 }
267 if (unlikely(!var7)) {
268 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
269 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwfor", var_class_name);
270 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2782);
271 show_backtrace(1);
272 }
273 {
274 parser_prod__AForExpr__n_kwfor_61d(self, var_new_child); /* Direct call parser_prod#AForExpr#n_kwfor= on <self:AForExpr>*/
275 }
276 goto RET_LABEL;
277 } else {
278 }
279 {
280 { /* Inline parser_nodes#AForExpr#n_ids (self) on <self:AForExpr> */
281 var10 = self->attrs[COLOR_parser_nodes__AForExpr___n_ids].val; /* _n_ids on <self:AForExpr> */
282 if (unlikely(var10 == NULL)) {
283 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_ids");
284 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1426);
285 show_backtrace(1);
286 }
287 var8 = var10;
288 RET_LABEL9:(void)0;
289 }
290 }
291 {
292 var11 = parser_nodes__ANodes__replace_child(var8, var_old_child, var_new_child);
293 }
294 if (var11){
295 goto RET_LABEL;
296 } else {
297 }
298 var12 = self->attrs[COLOR_parser_nodes__AForExpr___n_expr].val; /* _n_expr on <self:AForExpr> */
299 if (unlikely(var12 == NULL)) {
300 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
301 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2786);
302 show_backtrace(1);
303 }
304 {
305 { /* Inline kernel#Object#== (var12,var_old_child) on <var12:AExpr> */
306 var_other = var_old_child;
307 {
308 { /* Inline kernel#Object#is_same_instance (var12,var_other) on <var12:AExpr> */
309 var18 = var12 == var_other;
310 var16 = var18;
311 goto RET_LABEL17;
312 RET_LABEL17:(void)0;
313 }
314 }
315 var14 = var16;
316 goto RET_LABEL15;
317 RET_LABEL15:(void)0;
318 }
319 var13 = var14;
320 }
321 if (var13){
322 /* <var_new_child:nullable ANode> isa AExpr */
323 cltype20 = type_parser_nodes__AExpr.color;
324 idtype21 = type_parser_nodes__AExpr.id;
325 if(var_new_child == NULL) {
326 var19 = 0;
327 } else {
328 if(cltype20 >= var_new_child->type->table_size) {
329 var19 = 0;
330 } else {
331 var19 = var_new_child->type->type_table[cltype20] == idtype21;
332 }
333 }
334 if (unlikely(!var19)) {
335 var_class_name22 = var_new_child == NULL ? "null" : var_new_child->type->name;
336 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name22);
337 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2787);
338 show_backtrace(1);
339 }
340 {
341 parser_prod__AForExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AForExpr#n_expr= on <self:AForExpr>*/
342 }
343 goto RET_LABEL;
344 } else {
345 }
346 var23 = self->attrs[COLOR_parser_nodes__AForExpr___n_kwdo].val; /* _n_kwdo on <self:AForExpr> */
347 if (unlikely(var23 == NULL)) {
348 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwdo");
349 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2790);
350 show_backtrace(1);
351 }
352 {
353 { /* Inline kernel#Object#== (var23,var_old_child) on <var23:TKwdo> */
354 var_other = var_old_child;
355 {
356 { /* Inline kernel#Object#is_same_instance (var23,var_other) on <var23:TKwdo> */
357 var29 = var23 == var_other;
358 var27 = var29;
359 goto RET_LABEL28;
360 RET_LABEL28:(void)0;
361 }
362 }
363 var25 = var27;
364 goto RET_LABEL26;
365 RET_LABEL26:(void)0;
366 }
367 var24 = var25;
368 }
369 if (var24){
370 /* <var_new_child:nullable ANode> isa TKwdo */
371 cltype31 = type_parser_nodes__TKwdo.color;
372 idtype32 = type_parser_nodes__TKwdo.id;
373 if(var_new_child == NULL) {
374 var30 = 0;
375 } else {
376 if(cltype31 >= var_new_child->type->table_size) {
377 var30 = 0;
378 } else {
379 var30 = var_new_child->type->type_table[cltype31] == idtype32;
380 }
381 }
382 if (unlikely(!var30)) {
383 var_class_name33 = var_new_child == NULL ? "null" : var_new_child->type->name;
384 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwdo", var_class_name33);
385 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2791);
386 show_backtrace(1);
387 }
388 {
389 parser_prod__AForExpr__n_kwdo_61d(self, var_new_child); /* Direct call parser_prod#AForExpr#n_kwdo= on <self:AForExpr>*/
390 }
391 goto RET_LABEL;
392 } else {
393 }
394 var34 = self->attrs[COLOR_parser_nodes__AForExpr___n_block].val; /* _n_block on <self:AForExpr> */
395 if (var34 == NULL) {
396 var35 = 0; /* <var_old_child:ANode> cannot be null */
397 } else {
398 { /* Inline kernel#Object#== (var34,var_old_child) on <var34:nullable AExpr> */
399 var_other = var_old_child;
400 {
401 { /* Inline kernel#Object#is_same_instance (var34,var_other) on <var34:nullable AExpr(AExpr)> */
402 var40 = var34 == var_other;
403 var38 = var40;
404 goto RET_LABEL39;
405 RET_LABEL39:(void)0;
406 }
407 }
408 var36 = var38;
409 goto RET_LABEL37;
410 RET_LABEL37:(void)0;
411 }
412 var35 = var36;
413 }
414 if (var35){
415 /* <var_new_child:nullable ANode> isa nullable AExpr */
416 cltype42 = type_nullable_parser_nodes__AExpr.color;
417 idtype43 = type_nullable_parser_nodes__AExpr.id;
418 if(var_new_child == NULL) {
419 var41 = 1;
420 } else {
421 if(cltype42 >= var_new_child->type->table_size) {
422 var41 = 0;
423 } else {
424 var41 = var_new_child->type->type_table[cltype42] == idtype43;
425 }
426 }
427 if (unlikely(!var41)) {
428 var_class_name44 = var_new_child == NULL ? "null" : var_new_child->type->name;
429 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AExpr", var_class_name44);
430 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2795);
431 show_backtrace(1);
432 }
433 {
434 parser_prod__AForExpr__n_block_61d(self, var_new_child); /* Direct call parser_prod#AForExpr#n_block= on <self:AForExpr>*/
435 }
436 goto RET_LABEL;
437 } else {
438 }
439 var45 = self->attrs[COLOR_parser_nodes__ALabelable___n_label].val; /* _n_label on <self:AForExpr> */
440 if (var45 == NULL) {
441 var46 = 0; /* <var_old_child:ANode> cannot be null */
442 } else {
443 { /* Inline kernel#Object#== (var45,var_old_child) on <var45:nullable ALabel> */
444 var_other = var_old_child;
445 {
446 { /* Inline kernel#Object#is_same_instance (var45,var_other) on <var45:nullable ALabel(ALabel)> */
447 var51 = var45 == var_other;
448 var49 = var51;
449 goto RET_LABEL50;
450 RET_LABEL50:(void)0;
451 }
452 }
453 var47 = var49;
454 goto RET_LABEL48;
455 RET_LABEL48:(void)0;
456 }
457 var46 = var47;
458 }
459 if (var46){
460 /* <var_new_child:nullable ANode> isa nullable ALabel */
461 cltype53 = type_nullable_parser_nodes__ALabel.color;
462 idtype54 = type_nullable_parser_nodes__ALabel.id;
463 if(var_new_child == NULL) {
464 var52 = 1;
465 } else {
466 if(cltype53 >= var_new_child->type->table_size) {
467 var52 = 0;
468 } else {
469 var52 = var_new_child->type->type_table[cltype53] == idtype54;
470 }
471 }
472 if (unlikely(!var52)) {
473 var_class_name55 = var_new_child == NULL ? "null" : var_new_child->type->name;
474 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ALabel", var_class_name55);
475 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2799);
476 show_backtrace(1);
477 }
478 {
479 parser_prod__AForExpr__n_label_61d(self, var_new_child); /* Direct call parser_prod#AForExpr#n_label= on <self:AForExpr>*/
480 }
481 goto RET_LABEL;
482 } else {
483 }
484 RET_LABEL:;
485 }
486 /* method parser_prod#AForExpr#replace_child for (self: Object, ANode, nullable ANode) */
487 void VIRTUAL_parser_prod__AForExpr__replace_child(val* self, val* p0, val* p1) {
488 parser_prod__AForExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AForExpr#replace_child on <self:Object(AForExpr)>*/
489 RET_LABEL:;
490 }
491 /* method parser_prod#AForExpr#n_kwfor= for (self: AForExpr, TKwfor) */
492 void parser_prod__AForExpr__n_kwfor_61d(val* self, val* p0) {
493 val* var_node /* var node: TKwfor */;
494 var_node = p0;
495 self->attrs[COLOR_parser_nodes__AForExpr___n_kwfor].val = var_node; /* _n_kwfor on <self:AForExpr> */
496 {
497 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwfor> */
498 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwfor> */
499 RET_LABEL1:(void)0;
500 }
501 }
502 RET_LABEL:;
503 }
504 /* method parser_prod#AForExpr#n_kwfor= for (self: Object, TKwfor) */
505 void VIRTUAL_parser_prod__AForExpr__n_kwfor_61d(val* self, val* p0) {
506 parser_prod__AForExpr__n_kwfor_61d(self, p0); /* Direct call parser_prod#AForExpr#n_kwfor= on <self:Object(AForExpr)>*/
507 RET_LABEL:;
508 }
509 /* method parser_prod#AForExpr#n_expr= for (self: AForExpr, AExpr) */
510 void parser_prod__AForExpr__n_expr_61d(val* self, val* p0) {
511 val* var_node /* var node: AExpr */;
512 var_node = p0;
513 self->attrs[COLOR_parser_nodes__AForExpr___n_expr].val = var_node; /* _n_expr on <self:AForExpr> */
514 {
515 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
516 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
517 RET_LABEL1:(void)0;
518 }
519 }
520 RET_LABEL:;
521 }
522 /* method parser_prod#AForExpr#n_expr= for (self: Object, AExpr) */
523 void VIRTUAL_parser_prod__AForExpr__n_expr_61d(val* self, val* p0) {
524 parser_prod__AForExpr__n_expr_61d(self, p0); /* Direct call parser_prod#AForExpr#n_expr= on <self:Object(AForExpr)>*/
525 RET_LABEL:;
526 }
527 /* method parser_prod#AForExpr#n_kwdo= for (self: AForExpr, TKwdo) */
528 void parser_prod__AForExpr__n_kwdo_61d(val* self, val* p0) {
529 val* var_node /* var node: TKwdo */;
530 var_node = p0;
531 self->attrs[COLOR_parser_nodes__AForExpr___n_kwdo].val = var_node; /* _n_kwdo on <self:AForExpr> */
532 {
533 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwdo> */
534 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwdo> */
535 RET_LABEL1:(void)0;
536 }
537 }
538 RET_LABEL:;
539 }
540 /* method parser_prod#AForExpr#n_kwdo= for (self: Object, TKwdo) */
541 void VIRTUAL_parser_prod__AForExpr__n_kwdo_61d(val* self, val* p0) {
542 parser_prod__AForExpr__n_kwdo_61d(self, p0); /* Direct call parser_prod#AForExpr#n_kwdo= on <self:Object(AForExpr)>*/
543 RET_LABEL:;
544 }
545 /* method parser_prod#AForExpr#n_block= for (self: AForExpr, nullable AExpr) */
546 void parser_prod__AForExpr__n_block_61d(val* self, val* p0) {
547 val* var_node /* var node: nullable AExpr */;
548 val* var /* : null */;
549 short int var1 /* : Bool */;
550 short int var2 /* : Bool */;
551 val* var_other /* var other: nullable Object */;
552 short int var4 /* : Bool */;
553 short int var5 /* : Bool */;
554 short int var6 /* : Bool */;
555 var_node = p0;
556 self->attrs[COLOR_parser_nodes__AForExpr___n_block].val = var_node; /* _n_block on <self:AForExpr> */
557 var = NULL;
558 if (var_node == NULL) {
559 var1 = 0; /* is null */
560 } else {
561 var1 = 1; /* arg is null and recv is not */
562 }
563 if (0) {
564 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AExpr> */
565 var_other = var;
566 {
567 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AExpr(AExpr)>*/;
568 var4 = var5;
569 }
570 var6 = !var4;
571 var2 = var6;
572 goto RET_LABEL3;
573 RET_LABEL3:(void)0;
574 }
575 var1 = var2;
576 }
577 if (var1){
578 {
579 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AExpr(AExpr)> */
580 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AExpr(AExpr)> */
581 RET_LABEL7:(void)0;
582 }
583 }
584 } else {
585 }
586 RET_LABEL:;
587 }
588 /* method parser_prod#AForExpr#n_block= for (self: Object, nullable AExpr) */
589 void VIRTUAL_parser_prod__AForExpr__n_block_61d(val* self, val* p0) {
590 parser_prod__AForExpr__n_block_61d(self, p0); /* Direct call parser_prod#AForExpr#n_block= on <self:Object(AForExpr)>*/
591 RET_LABEL:;
592 }
593 /* method parser_prod#AForExpr#n_label= for (self: AForExpr, nullable ALabel) */
594 void parser_prod__AForExpr__n_label_61d(val* self, val* p0) {
595 val* var_node /* var node: nullable ALabel */;
596 val* var /* : null */;
597 short int var1 /* : Bool */;
598 short int var2 /* : Bool */;
599 val* var_other /* var other: nullable Object */;
600 short int var4 /* : Bool */;
601 short int var5 /* : Bool */;
602 short int var6 /* : Bool */;
603 var_node = p0;
604 self->attrs[COLOR_parser_nodes__ALabelable___n_label].val = var_node; /* _n_label on <self:AForExpr> */
605 var = NULL;
606 if (var_node == NULL) {
607 var1 = 0; /* is null */
608 } else {
609 var1 = 1; /* arg is null and recv is not */
610 }
611 if (0) {
612 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable ALabel> */
613 var_other = var;
614 {
615 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable ALabel(ALabel)>*/;
616 var4 = var5;
617 }
618 var6 = !var4;
619 var2 = var6;
620 goto RET_LABEL3;
621 RET_LABEL3:(void)0;
622 }
623 var1 = var2;
624 }
625 if (var1){
626 {
627 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable ALabel(ALabel)> */
628 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable ALabel(ALabel)> */
629 RET_LABEL7:(void)0;
630 }
631 }
632 } else {
633 }
634 RET_LABEL:;
635 }
636 /* method parser_prod#AForExpr#n_label= for (self: Object, nullable ALabel) */
637 void VIRTUAL_parser_prod__AForExpr__n_label_61d(val* self, val* p0) {
638 parser_prod__AForExpr__n_label_61d(self, p0); /* Direct call parser_prod#AForExpr#n_label= on <self:Object(AForExpr)>*/
639 RET_LABEL:;
640 }
641 /* method parser_prod#AForExpr#visit_all for (self: AForExpr, Visitor) */
642 void parser_prod__AForExpr__visit_all(val* self, val* p0) {
643 val* var_v /* var v: Visitor */;
644 val* var /* : TKwfor */;
645 val* var1 /* : ANodes[TId] */;
646 val* var3 /* : ANodes[TId] */;
647 val* var4 /* : AExpr */;
648 val* var5 /* : TKwdo */;
649 val* var6 /* : nullable AExpr */;
650 val* var7 /* : nullable ALabel */;
651 var_v = p0;
652 var = self->attrs[COLOR_parser_nodes__AForExpr___n_kwfor].val; /* _n_kwfor on <self:AForExpr> */
653 if (unlikely(var == NULL)) {
654 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwfor");
655 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2833);
656 show_backtrace(1);
657 }
658 {
659 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
660 }
661 {
662 { /* Inline parser_nodes#AForExpr#n_ids (self) on <self:AForExpr> */
663 var3 = self->attrs[COLOR_parser_nodes__AForExpr___n_ids].val; /* _n_ids on <self:AForExpr> */
664 if (unlikely(var3 == NULL)) {
665 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_ids");
666 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1426);
667 show_backtrace(1);
668 }
669 var1 = var3;
670 RET_LABEL2:(void)0;
671 }
672 }
673 {
674 parser_nodes__ANodes__visit_all(var1, var_v); /* Direct call parser_nodes#ANodes#visit_all on <var1:ANodes[TId]>*/
675 }
676 var4 = self->attrs[COLOR_parser_nodes__AForExpr___n_expr].val; /* _n_expr on <self:AForExpr> */
677 if (unlikely(var4 == NULL)) {
678 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
679 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2835);
680 show_backtrace(1);
681 }
682 {
683 parser_nodes__Visitor__enter_visit(var_v, var4); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
684 }
685 var5 = self->attrs[COLOR_parser_nodes__AForExpr___n_kwdo].val; /* _n_kwdo on <self:AForExpr> */
686 if (unlikely(var5 == NULL)) {
687 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwdo");
688 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2836);
689 show_backtrace(1);
690 }
691 {
692 parser_nodes__Visitor__enter_visit(var_v, var5); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
693 }
694 var6 = self->attrs[COLOR_parser_nodes__AForExpr___n_block].val; /* _n_block on <self:AForExpr> */
695 {
696 parser_nodes__Visitor__enter_visit(var_v, var6); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
697 }
698 var7 = self->attrs[COLOR_parser_nodes__ALabelable___n_label].val; /* _n_label on <self:AForExpr> */
699 {
700 parser_nodes__Visitor__enter_visit(var_v, var7); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
701 }
702 RET_LABEL:;
703 }
704 /* method parser_prod#AForExpr#visit_all for (self: Object, Visitor) */
705 void VIRTUAL_parser_prod__AForExpr__visit_all(val* self, val* p0) {
706 parser_prod__AForExpr__visit_all(self, p0); /* Direct call parser_prod#AForExpr#visit_all on <self:Object(AForExpr)>*/
707 RET_LABEL:;
708 }
709 /* method parser_prod#AAssertExpr#init_aassertexpr for (self: AAssertExpr, nullable TKwassert, nullable TId, nullable AExpr, nullable AExpr) */
710 void parser_prod__AAssertExpr__init_aassertexpr(val* self, val* p0, val* p1, val* p2, val* p3) {
711 val* var_n_kwassert /* var n_kwassert: nullable TKwassert */;
712 val* var_n_id /* var n_id: nullable TId */;
713 val* var_n_expr /* var n_expr: nullable AExpr */;
714 val* var_n_else /* var n_else: nullable AExpr */;
715 val* var /* : null */;
716 short int var2 /* : Bool */;
717 short int var3 /* : Bool */;
718 val* var_other /* var other: nullable Object */;
719 short int var5 /* : Bool */;
720 short int var6 /* : Bool */;
721 short int var7 /* : Bool */;
722 val* var10 /* : null */;
723 short int var11 /* : Bool */;
724 short int var12 /* : Bool */;
725 short int var14 /* : Bool */;
726 short int var15 /* : Bool */;
727 short int var16 /* : Bool */;
728 var_n_kwassert = p0;
729 var_n_id = p1;
730 var_n_expr = p2;
731 var_n_else = p3;
732 if (unlikely(var_n_kwassert == NULL)) {
733 PRINT_ERROR("Runtime error: %s", "Cast failed");
734 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2849);
735 show_backtrace(1);
736 }
737 self->attrs[COLOR_parser_nodes__AAssertExpr___n_kwassert].val = var_n_kwassert; /* _n_kwassert on <self:AAssertExpr> */
738 if (var_n_kwassert == NULL) {
739 PRINT_ERROR("Runtime error: %s", "Receiver is null");
740 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2850);
741 show_backtrace(1);
742 } else {
743 { /* Inline parser_nodes#ANode#parent= (var_n_kwassert,self) on <var_n_kwassert:nullable TKwassert> */
744 if (unlikely(var_n_kwassert == NULL)) {
745 PRINT_ERROR("Runtime error: %s", "Receiver is null");
746 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
747 show_backtrace(1);
748 }
749 var_n_kwassert->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwassert:nullable TKwassert> */
750 RET_LABEL1:(void)0;
751 }
752 }
753 self->attrs[COLOR_parser_nodes__AAssertExpr___n_id].val = var_n_id; /* _n_id on <self:AAssertExpr> */
754 var = NULL;
755 if (var_n_id == NULL) {
756 var2 = 0; /* is null */
757 } else {
758 var2 = 1; /* arg is null and recv is not */
759 }
760 if (0) {
761 { /* Inline kernel#Object#!= (var_n_id,var) on <var_n_id:nullable TId> */
762 var_other = var;
763 {
764 var6 = ((short int (*)(val*, val*))(var_n_id->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_id, var_other) /* == on <var_n_id:nullable TId(TId)>*/;
765 var5 = var6;
766 }
767 var7 = !var5;
768 var3 = var7;
769 goto RET_LABEL4;
770 RET_LABEL4:(void)0;
771 }
772 var2 = var3;
773 }
774 if (var2){
775 {
776 { /* Inline parser_nodes#ANode#parent= (var_n_id,self) on <var_n_id:nullable TId(TId)> */
777 var_n_id->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_id:nullable TId(TId)> */
778 RET_LABEL8:(void)0;
779 }
780 }
781 } else {
782 }
783 if (unlikely(var_n_expr == NULL)) {
784 PRINT_ERROR("Runtime error: %s", "Cast failed");
785 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2853);
786 show_backtrace(1);
787 }
788 self->attrs[COLOR_parser_nodes__AAssertExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AAssertExpr> */
789 if (var_n_expr == NULL) {
790 PRINT_ERROR("Runtime error: %s", "Receiver is null");
791 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2854);
792 show_backtrace(1);
793 } else {
794 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
795 if (unlikely(var_n_expr == NULL)) {
796 PRINT_ERROR("Runtime error: %s", "Receiver is null");
797 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
798 show_backtrace(1);
799 }
800 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
801 RET_LABEL9:(void)0;
802 }
803 }
804 self->attrs[COLOR_parser_nodes__AAssertExpr___n_else].val = var_n_else; /* _n_else on <self:AAssertExpr> */
805 var10 = NULL;
806 if (var_n_else == NULL) {
807 var11 = 0; /* is null */
808 } else {
809 var11 = 1; /* arg is null and recv is not */
810 }
811 if (0) {
812 { /* Inline kernel#Object#!= (var_n_else,var10) on <var_n_else:nullable AExpr> */
813 var_other = var10;
814 {
815 var15 = ((short int (*)(val*, val*))(var_n_else->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_else, var_other) /* == on <var_n_else:nullable AExpr(AExpr)>*/;
816 var14 = var15;
817 }
818 var16 = !var14;
819 var12 = var16;
820 goto RET_LABEL13;
821 RET_LABEL13:(void)0;
822 }
823 var11 = var12;
824 }
825 if (var11){
826 {
827 { /* Inline parser_nodes#ANode#parent= (var_n_else,self) on <var_n_else:nullable AExpr(AExpr)> */
828 var_n_else->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_else:nullable AExpr(AExpr)> */
829 RET_LABEL17:(void)0;
830 }
831 }
832 } else {
833 }
834 RET_LABEL:;
835 }
836 /* method parser_prod#AAssertExpr#init_aassertexpr for (self: Object, nullable TKwassert, nullable TId, nullable AExpr, nullable AExpr) */
837 void VIRTUAL_parser_prod__AAssertExpr__init_aassertexpr(val* self, val* p0, val* p1, val* p2, val* p3) {
838 parser_prod__AAssertExpr__init_aassertexpr(self, p0, p1, p2, p3); /* Direct call parser_prod#AAssertExpr#init_aassertexpr on <self:Object(AAssertExpr)>*/
839 RET_LABEL:;
840 }
841 /* method parser_prod#AAssertExpr#replace_child for (self: AAssertExpr, ANode, nullable ANode) */
842 void parser_prod__AAssertExpr__replace_child(val* self, val* p0, val* p1) {
843 val* var_old_child /* var old_child: ANode */;
844 val* var_new_child /* var new_child: nullable ANode */;
845 val* var /* : TKwassert */;
846 short int var1 /* : Bool */;
847 short int var2 /* : Bool */;
848 val* var_other /* var other: nullable Object */;
849 short int var4 /* : Bool */;
850 short int var6 /* : Bool */;
851 short int var7 /* : Bool */;
852 int cltype;
853 int idtype;
854 const char* var_class_name;
855 val* var8 /* : nullable TId */;
856 short int var9 /* : Bool */;
857 short int var10 /* : Bool */;
858 short int var12 /* : Bool */;
859 short int var14 /* : Bool */;
860 short int var15 /* : Bool */;
861 int cltype16;
862 int idtype17;
863 const char* var_class_name18;
864 val* var19 /* : AExpr */;
865 short int var20 /* : Bool */;
866 short int var21 /* : Bool */;
867 short int var23 /* : Bool */;
868 short int var25 /* : Bool */;
869 short int var26 /* : Bool */;
870 int cltype27;
871 int idtype28;
872 const char* var_class_name29;
873 val* var30 /* : nullable AExpr */;
874 short int var31 /* : Bool */;
875 short int var32 /* : Bool */;
876 short int var34 /* : Bool */;
877 short int var36 /* : Bool */;
878 short int var37 /* : Bool */;
879 int cltype38;
880 int idtype39;
881 const char* var_class_name40;
882 var_old_child = p0;
883 var_new_child = p1;
884 var = self->attrs[COLOR_parser_nodes__AAssertExpr___n_kwassert].val; /* _n_kwassert on <self:AAssertExpr> */
885 if (unlikely(var == NULL)) {
886 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwassert");
887 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2861);
888 show_backtrace(1);
889 }
890 {
891 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwassert> */
892 var_other = var_old_child;
893 {
894 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TKwassert> */
895 var6 = var == var_other;
896 var4 = var6;
897 goto RET_LABEL5;
898 RET_LABEL5:(void)0;
899 }
900 }
901 var2 = var4;
902 goto RET_LABEL3;
903 RET_LABEL3:(void)0;
904 }
905 var1 = var2;
906 }
907 if (var1){
908 /* <var_new_child:nullable ANode> isa TKwassert */
909 cltype = type_parser_nodes__TKwassert.color;
910 idtype = type_parser_nodes__TKwassert.id;
911 if(var_new_child == NULL) {
912 var7 = 0;
913 } else {
914 if(cltype >= var_new_child->type->table_size) {
915 var7 = 0;
916 } else {
917 var7 = var_new_child->type->type_table[cltype] == idtype;
918 }
919 }
920 if (unlikely(!var7)) {
921 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
922 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwassert", var_class_name);
923 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2862);
924 show_backtrace(1);
925 }
926 {
927 parser_prod__AAssertExpr__n_kwassert_61d(self, var_new_child); /* Direct call parser_prod#AAssertExpr#n_kwassert= on <self:AAssertExpr>*/
928 }
929 goto RET_LABEL;
930 } else {
931 }
932 var8 = self->attrs[COLOR_parser_nodes__AAssertExpr___n_id].val; /* _n_id on <self:AAssertExpr> */
933 if (var8 == NULL) {
934 var9 = 0; /* <var_old_child:ANode> cannot be null */
935 } else {
936 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:nullable TId> */
937 var_other = var_old_child;
938 {
939 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:nullable TId(TId)> */
940 var14 = var8 == var_other;
941 var12 = var14;
942 goto RET_LABEL13;
943 RET_LABEL13:(void)0;
944 }
945 }
946 var10 = var12;
947 goto RET_LABEL11;
948 RET_LABEL11:(void)0;
949 }
950 var9 = var10;
951 }
952 if (var9){
953 /* <var_new_child:nullable ANode> isa nullable TId */
954 cltype16 = type_nullable_parser_nodes__TId.color;
955 idtype17 = type_nullable_parser_nodes__TId.id;
956 if(var_new_child == NULL) {
957 var15 = 1;
958 } else {
959 if(cltype16 >= var_new_child->type->table_size) {
960 var15 = 0;
961 } else {
962 var15 = var_new_child->type->type_table[cltype16] == idtype17;
963 }
964 }
965 if (unlikely(!var15)) {
966 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
967 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TId", var_class_name18);
968 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2866);
969 show_backtrace(1);
970 }
971 {
972 parser_prod__AAssertExpr__n_id_61d(self, var_new_child); /* Direct call parser_prod#AAssertExpr#n_id= on <self:AAssertExpr>*/
973 }
974 goto RET_LABEL;
975 } else {
976 }
977 var19 = self->attrs[COLOR_parser_nodes__AAssertExpr___n_expr].val; /* _n_expr on <self:AAssertExpr> */
978 if (unlikely(var19 == NULL)) {
979 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
980 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2869);
981 show_backtrace(1);
982 }
983 {
984 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:AExpr> */
985 var_other = var_old_child;
986 {
987 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:AExpr> */
988 var25 = var19 == var_other;
989 var23 = var25;
990 goto RET_LABEL24;
991 RET_LABEL24:(void)0;
992 }
993 }
994 var21 = var23;
995 goto RET_LABEL22;
996 RET_LABEL22:(void)0;
997 }
998 var20 = var21;
999 }
1000 if (var20){
1001 /* <var_new_child:nullable ANode> isa AExpr */
1002 cltype27 = type_parser_nodes__AExpr.color;
1003 idtype28 = type_parser_nodes__AExpr.id;
1004 if(var_new_child == NULL) {
1005 var26 = 0;
1006 } else {
1007 if(cltype27 >= var_new_child->type->table_size) {
1008 var26 = 0;
1009 } else {
1010 var26 = var_new_child->type->type_table[cltype27] == idtype28;
1011 }
1012 }
1013 if (unlikely(!var26)) {
1014 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
1015 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name29);
1016 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2870);
1017 show_backtrace(1);
1018 }
1019 {
1020 parser_prod__AAssertExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AAssertExpr#n_expr= on <self:AAssertExpr>*/
1021 }
1022 goto RET_LABEL;
1023 } else {
1024 }
1025 var30 = self->attrs[COLOR_parser_nodes__AAssertExpr___n_else].val; /* _n_else on <self:AAssertExpr> */
1026 if (var30 == NULL) {
1027 var31 = 0; /* <var_old_child:ANode> cannot be null */
1028 } else {
1029 { /* Inline kernel#Object#== (var30,var_old_child) on <var30:nullable AExpr> */
1030 var_other = var_old_child;
1031 {
1032 { /* Inline kernel#Object#is_same_instance (var30,var_other) on <var30:nullable AExpr(AExpr)> */
1033 var36 = var30 == var_other;
1034 var34 = var36;
1035 goto RET_LABEL35;
1036 RET_LABEL35:(void)0;
1037 }
1038 }
1039 var32 = var34;
1040 goto RET_LABEL33;
1041 RET_LABEL33:(void)0;
1042 }
1043 var31 = var32;
1044 }
1045 if (var31){
1046 /* <var_new_child:nullable ANode> isa nullable AExpr */
1047 cltype38 = type_nullable_parser_nodes__AExpr.color;
1048 idtype39 = type_nullable_parser_nodes__AExpr.id;
1049 if(var_new_child == NULL) {
1050 var37 = 1;
1051 } else {
1052 if(cltype38 >= var_new_child->type->table_size) {
1053 var37 = 0;
1054 } else {
1055 var37 = var_new_child->type->type_table[cltype38] == idtype39;
1056 }
1057 }
1058 if (unlikely(!var37)) {
1059 var_class_name40 = var_new_child == NULL ? "null" : var_new_child->type->name;
1060 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AExpr", var_class_name40);
1061 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2874);
1062 show_backtrace(1);
1063 }
1064 {
1065 parser_prod__AAssertExpr__n_else_61d(self, var_new_child); /* Direct call parser_prod#AAssertExpr#n_else= on <self:AAssertExpr>*/
1066 }
1067 goto RET_LABEL;
1068 } else {
1069 }
1070 RET_LABEL:;
1071 }
1072 /* method parser_prod#AAssertExpr#replace_child for (self: Object, ANode, nullable ANode) */
1073 void VIRTUAL_parser_prod__AAssertExpr__replace_child(val* self, val* p0, val* p1) {
1074 parser_prod__AAssertExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AAssertExpr#replace_child on <self:Object(AAssertExpr)>*/
1075 RET_LABEL:;
1076 }
1077 /* method parser_prod#AAssertExpr#n_kwassert= for (self: AAssertExpr, TKwassert) */
1078 void parser_prod__AAssertExpr__n_kwassert_61d(val* self, val* p0) {
1079 val* var_node /* var node: TKwassert */;
1080 var_node = p0;
1081 self->attrs[COLOR_parser_nodes__AAssertExpr___n_kwassert].val = var_node; /* _n_kwassert on <self:AAssertExpr> */
1082 {
1083 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwassert> */
1084 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwassert> */
1085 RET_LABEL1:(void)0;
1086 }
1087 }
1088 RET_LABEL:;
1089 }
1090 /* method parser_prod#AAssertExpr#n_kwassert= for (self: Object, TKwassert) */
1091 void VIRTUAL_parser_prod__AAssertExpr__n_kwassert_61d(val* self, val* p0) {
1092 parser_prod__AAssertExpr__n_kwassert_61d(self, p0); /* Direct call parser_prod#AAssertExpr#n_kwassert= on <self:Object(AAssertExpr)>*/
1093 RET_LABEL:;
1094 }
1095 /* method parser_prod#AAssertExpr#n_id= for (self: AAssertExpr, nullable TId) */
1096 void parser_prod__AAssertExpr__n_id_61d(val* self, val* p0) {
1097 val* var_node /* var node: nullable TId */;
1098 val* var /* : null */;
1099 short int var1 /* : Bool */;
1100 short int var2 /* : Bool */;
1101 val* var_other /* var other: nullable Object */;
1102 short int var4 /* : Bool */;
1103 short int var5 /* : Bool */;
1104 short int var6 /* : Bool */;
1105 var_node = p0;
1106 self->attrs[COLOR_parser_nodes__AAssertExpr___n_id].val = var_node; /* _n_id on <self:AAssertExpr> */
1107 var = NULL;
1108 if (var_node == NULL) {
1109 var1 = 0; /* is null */
1110 } else {
1111 var1 = 1; /* arg is null and recv is not */
1112 }
1113 if (0) {
1114 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable TId> */
1115 var_other = var;
1116 {
1117 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable TId(TId)>*/;
1118 var4 = var5;
1119 }
1120 var6 = !var4;
1121 var2 = var6;
1122 goto RET_LABEL3;
1123 RET_LABEL3:(void)0;
1124 }
1125 var1 = var2;
1126 }
1127 if (var1){
1128 {
1129 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TId(TId)> */
1130 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TId(TId)> */
1131 RET_LABEL7:(void)0;
1132 }
1133 }
1134 } else {
1135 }
1136 RET_LABEL:;
1137 }
1138 /* method parser_prod#AAssertExpr#n_id= for (self: Object, nullable TId) */
1139 void VIRTUAL_parser_prod__AAssertExpr__n_id_61d(val* self, val* p0) {
1140 parser_prod__AAssertExpr__n_id_61d(self, p0); /* Direct call parser_prod#AAssertExpr#n_id= on <self:Object(AAssertExpr)>*/
1141 RET_LABEL:;
1142 }
1143 /* method parser_prod#AAssertExpr#n_expr= for (self: AAssertExpr, AExpr) */
1144 void parser_prod__AAssertExpr__n_expr_61d(val* self, val* p0) {
1145 val* var_node /* var node: AExpr */;
1146 var_node = p0;
1147 self->attrs[COLOR_parser_nodes__AAssertExpr___n_expr].val = var_node; /* _n_expr on <self:AAssertExpr> */
1148 {
1149 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
1150 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
1151 RET_LABEL1:(void)0;
1152 }
1153 }
1154 RET_LABEL:;
1155 }
1156 /* method parser_prod#AAssertExpr#n_expr= for (self: Object, AExpr) */
1157 void VIRTUAL_parser_prod__AAssertExpr__n_expr_61d(val* self, val* p0) {
1158 parser_prod__AAssertExpr__n_expr_61d(self, p0); /* Direct call parser_prod#AAssertExpr#n_expr= on <self:Object(AAssertExpr)>*/
1159 RET_LABEL:;
1160 }
1161 /* method parser_prod#AAssertExpr#n_else= for (self: AAssertExpr, nullable AExpr) */
1162 void parser_prod__AAssertExpr__n_else_61d(val* self, val* p0) {
1163 val* var_node /* var node: nullable AExpr */;
1164 val* var /* : null */;
1165 short int var1 /* : Bool */;
1166 short int var2 /* : Bool */;
1167 val* var_other /* var other: nullable Object */;
1168 short int var4 /* : Bool */;
1169 short int var5 /* : Bool */;
1170 short int var6 /* : Bool */;
1171 var_node = p0;
1172 self->attrs[COLOR_parser_nodes__AAssertExpr___n_else].val = var_node; /* _n_else on <self:AAssertExpr> */
1173 var = NULL;
1174 if (var_node == NULL) {
1175 var1 = 0; /* is null */
1176 } else {
1177 var1 = 1; /* arg is null and recv is not */
1178 }
1179 if (0) {
1180 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AExpr> */
1181 var_other = var;
1182 {
1183 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AExpr(AExpr)>*/;
1184 var4 = var5;
1185 }
1186 var6 = !var4;
1187 var2 = var6;
1188 goto RET_LABEL3;
1189 RET_LABEL3:(void)0;
1190 }
1191 var1 = var2;
1192 }
1193 if (var1){
1194 {
1195 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AExpr(AExpr)> */
1196 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AExpr(AExpr)> */
1197 RET_LABEL7:(void)0;
1198 }
1199 }
1200 } else {
1201 }
1202 RET_LABEL:;
1203 }
1204 /* method parser_prod#AAssertExpr#n_else= for (self: Object, nullable AExpr) */
1205 void VIRTUAL_parser_prod__AAssertExpr__n_else_61d(val* self, val* p0) {
1206 parser_prod__AAssertExpr__n_else_61d(self, p0); /* Direct call parser_prod#AAssertExpr#n_else= on <self:Object(AAssertExpr)>*/
1207 RET_LABEL:;
1208 }
1209 /* method parser_prod#AAssertExpr#visit_all for (self: AAssertExpr, Visitor) */
1210 void parser_prod__AAssertExpr__visit_all(val* self, val* p0) {
1211 val* var_v /* var v: Visitor */;
1212 val* var /* : TKwassert */;
1213 val* var1 /* : nullable TId */;
1214 val* var2 /* : AExpr */;
1215 val* var3 /* : nullable AExpr */;
1216 var_v = p0;
1217 var = self->attrs[COLOR_parser_nodes__AAssertExpr___n_kwassert].val; /* _n_kwassert on <self:AAssertExpr> */
1218 if (unlikely(var == NULL)) {
1219 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwassert");
1220 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2903);
1221 show_backtrace(1);
1222 }
1223 {
1224 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1225 }
1226 var1 = self->attrs[COLOR_parser_nodes__AAssertExpr___n_id].val; /* _n_id on <self:AAssertExpr> */
1227 {
1228 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1229 }
1230 var2 = self->attrs[COLOR_parser_nodes__AAssertExpr___n_expr].val; /* _n_expr on <self:AAssertExpr> */
1231 if (unlikely(var2 == NULL)) {
1232 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1233 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2905);
1234 show_backtrace(1);
1235 }
1236 {
1237 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1238 }
1239 var3 = self->attrs[COLOR_parser_nodes__AAssertExpr___n_else].val; /* _n_else on <self:AAssertExpr> */
1240 {
1241 parser_nodes__Visitor__enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1242 }
1243 RET_LABEL:;
1244 }
1245 /* method parser_prod#AAssertExpr#visit_all for (self: Object, Visitor) */
1246 void VIRTUAL_parser_prod__AAssertExpr__visit_all(val* self, val* p0) {
1247 parser_prod__AAssertExpr__visit_all(self, p0); /* Direct call parser_prod#AAssertExpr#visit_all on <self:Object(AAssertExpr)>*/
1248 RET_LABEL:;
1249 }
1250 /* method parser_prod#AOnceExpr#init_aonceexpr for (self: AOnceExpr, nullable TKwonce, nullable AExpr) */
1251 void parser_prod__AOnceExpr__init_aonceexpr(val* self, val* p0, val* p1) {
1252 val* var_n_kwonce /* var n_kwonce: nullable TKwonce */;
1253 val* var_n_expr /* var n_expr: nullable AExpr */;
1254 var_n_kwonce = p0;
1255 var_n_expr = p1;
1256 if (unlikely(var_n_kwonce == NULL)) {
1257 PRINT_ERROR("Runtime error: %s", "Cast failed");
1258 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2915);
1259 show_backtrace(1);
1260 }
1261 self->attrs[COLOR_parser_nodes__AOnceExpr___n_kwonce].val = var_n_kwonce; /* _n_kwonce on <self:AOnceExpr> */
1262 if (var_n_kwonce == NULL) {
1263 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1264 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2916);
1265 show_backtrace(1);
1266 } else {
1267 { /* Inline parser_nodes#ANode#parent= (var_n_kwonce,self) on <var_n_kwonce:nullable TKwonce> */
1268 if (unlikely(var_n_kwonce == NULL)) {
1269 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1270 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
1271 show_backtrace(1);
1272 }
1273 var_n_kwonce->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwonce:nullable TKwonce> */
1274 RET_LABEL1:(void)0;
1275 }
1276 }
1277 if (unlikely(var_n_expr == NULL)) {
1278 PRINT_ERROR("Runtime error: %s", "Cast failed");
1279 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2917);
1280 show_backtrace(1);
1281 }
1282 self->attrs[COLOR_parser_nodes__AOnceExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AOnceExpr> */
1283 if (var_n_expr == NULL) {
1284 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1285 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2918);
1286 show_backtrace(1);
1287 } else {
1288 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
1289 if (unlikely(var_n_expr == NULL)) {
1290 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1291 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
1292 show_backtrace(1);
1293 }
1294 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
1295 RET_LABEL2:(void)0;
1296 }
1297 }
1298 RET_LABEL:;
1299 }
1300 /* method parser_prod#AOnceExpr#init_aonceexpr for (self: Object, nullable TKwonce, nullable AExpr) */
1301 void VIRTUAL_parser_prod__AOnceExpr__init_aonceexpr(val* self, val* p0, val* p1) {
1302 parser_prod__AOnceExpr__init_aonceexpr(self, p0, p1); /* Direct call parser_prod#AOnceExpr#init_aonceexpr on <self:Object(AOnceExpr)>*/
1303 RET_LABEL:;
1304 }
1305 /* method parser_prod#AOnceExpr#replace_child for (self: AOnceExpr, ANode, nullable ANode) */
1306 void parser_prod__AOnceExpr__replace_child(val* self, val* p0, val* p1) {
1307 val* var_old_child /* var old_child: ANode */;
1308 val* var_new_child /* var new_child: nullable ANode */;
1309 val* var /* : TKwonce */;
1310 short int var1 /* : Bool */;
1311 short int var2 /* : Bool */;
1312 val* var_other /* var other: nullable Object */;
1313 short int var4 /* : Bool */;
1314 short int var6 /* : Bool */;
1315 short int var7 /* : Bool */;
1316 int cltype;
1317 int idtype;
1318 const char* var_class_name;
1319 val* var8 /* : AExpr */;
1320 short int var9 /* : Bool */;
1321 short int var10 /* : Bool */;
1322 short int var12 /* : Bool */;
1323 short int var14 /* : Bool */;
1324 short int var15 /* : Bool */;
1325 int cltype16;
1326 int idtype17;
1327 const char* var_class_name18;
1328 var_old_child = p0;
1329 var_new_child = p1;
1330 var = self->attrs[COLOR_parser_nodes__AOnceExpr___n_kwonce].val; /* _n_kwonce on <self:AOnceExpr> */
1331 if (unlikely(var == NULL)) {
1332 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwonce");
1333 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2923);
1334 show_backtrace(1);
1335 }
1336 {
1337 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwonce> */
1338 var_other = var_old_child;
1339 {
1340 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TKwonce> */
1341 var6 = var == var_other;
1342 var4 = var6;
1343 goto RET_LABEL5;
1344 RET_LABEL5:(void)0;
1345 }
1346 }
1347 var2 = var4;
1348 goto RET_LABEL3;
1349 RET_LABEL3:(void)0;
1350 }
1351 var1 = var2;
1352 }
1353 if (var1){
1354 /* <var_new_child:nullable ANode> isa TKwonce */
1355 cltype = type_parser_nodes__TKwonce.color;
1356 idtype = type_parser_nodes__TKwonce.id;
1357 if(var_new_child == NULL) {
1358 var7 = 0;
1359 } else {
1360 if(cltype >= var_new_child->type->table_size) {
1361 var7 = 0;
1362 } else {
1363 var7 = var_new_child->type->type_table[cltype] == idtype;
1364 }
1365 }
1366 if (unlikely(!var7)) {
1367 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
1368 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwonce", var_class_name);
1369 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2924);
1370 show_backtrace(1);
1371 }
1372 {
1373 parser_prod__AOnceExpr__n_kwonce_61d(self, var_new_child); /* Direct call parser_prod#AOnceExpr#n_kwonce= on <self:AOnceExpr>*/
1374 }
1375 goto RET_LABEL;
1376 } else {
1377 }
1378 var8 = self->attrs[COLOR_parser_nodes__AOnceExpr___n_expr].val; /* _n_expr on <self:AOnceExpr> */
1379 if (unlikely(var8 == NULL)) {
1380 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1381 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2927);
1382 show_backtrace(1);
1383 }
1384 {
1385 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExpr> */
1386 var_other = var_old_child;
1387 {
1388 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExpr> */
1389 var14 = var8 == var_other;
1390 var12 = var14;
1391 goto RET_LABEL13;
1392 RET_LABEL13:(void)0;
1393 }
1394 }
1395 var10 = var12;
1396 goto RET_LABEL11;
1397 RET_LABEL11:(void)0;
1398 }
1399 var9 = var10;
1400 }
1401 if (var9){
1402 /* <var_new_child:nullable ANode> isa AExpr */
1403 cltype16 = type_parser_nodes__AExpr.color;
1404 idtype17 = type_parser_nodes__AExpr.id;
1405 if(var_new_child == NULL) {
1406 var15 = 0;
1407 } else {
1408 if(cltype16 >= var_new_child->type->table_size) {
1409 var15 = 0;
1410 } else {
1411 var15 = var_new_child->type->type_table[cltype16] == idtype17;
1412 }
1413 }
1414 if (unlikely(!var15)) {
1415 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
1416 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name18);
1417 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2928);
1418 show_backtrace(1);
1419 }
1420 {
1421 parser_prod__AOnceExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AOnceExpr#n_expr= on <self:AOnceExpr>*/
1422 }
1423 goto RET_LABEL;
1424 } else {
1425 }
1426 RET_LABEL:;
1427 }
1428 /* method parser_prod#AOnceExpr#replace_child for (self: Object, ANode, nullable ANode) */
1429 void VIRTUAL_parser_prod__AOnceExpr__replace_child(val* self, val* p0, val* p1) {
1430 parser_prod__AOnceExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AOnceExpr#replace_child on <self:Object(AOnceExpr)>*/
1431 RET_LABEL:;
1432 }
1433 /* method parser_prod#AOnceExpr#n_kwonce= for (self: AOnceExpr, TKwonce) */
1434 void parser_prod__AOnceExpr__n_kwonce_61d(val* self, val* p0) {
1435 val* var_node /* var node: TKwonce */;
1436 var_node = p0;
1437 self->attrs[COLOR_parser_nodes__AOnceExpr___n_kwonce].val = var_node; /* _n_kwonce on <self:AOnceExpr> */
1438 {
1439 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwonce> */
1440 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwonce> */
1441 RET_LABEL1:(void)0;
1442 }
1443 }
1444 RET_LABEL:;
1445 }
1446 /* method parser_prod#AOnceExpr#n_kwonce= for (self: Object, TKwonce) */
1447 void VIRTUAL_parser_prod__AOnceExpr__n_kwonce_61d(val* self, val* p0) {
1448 parser_prod__AOnceExpr__n_kwonce_61d(self, p0); /* Direct call parser_prod#AOnceExpr#n_kwonce= on <self:Object(AOnceExpr)>*/
1449 RET_LABEL:;
1450 }
1451 /* method parser_prod#AOnceExpr#n_expr= for (self: AOnceExpr, AExpr) */
1452 void parser_prod__AOnceExpr__n_expr_61d(val* self, val* p0) {
1453 val* var_node /* var node: AExpr */;
1454 var_node = p0;
1455 self->attrs[COLOR_parser_nodes__AOnceExpr___n_expr].val = var_node; /* _n_expr on <self:AOnceExpr> */
1456 {
1457 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
1458 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
1459 RET_LABEL1:(void)0;
1460 }
1461 }
1462 RET_LABEL:;
1463 }
1464 /* method parser_prod#AOnceExpr#n_expr= for (self: Object, AExpr) */
1465 void VIRTUAL_parser_prod__AOnceExpr__n_expr_61d(val* self, val* p0) {
1466 parser_prod__AOnceExpr__n_expr_61d(self, p0); /* Direct call parser_prod#AOnceExpr#n_expr= on <self:Object(AOnceExpr)>*/
1467 RET_LABEL:;
1468 }
1469 /* method parser_prod#AOnceExpr#visit_all for (self: AOnceExpr, Visitor) */
1470 void parser_prod__AOnceExpr__visit_all(val* self, val* p0) {
1471 val* var_v /* var v: Visitor */;
1472 val* var /* : TKwonce */;
1473 val* var1 /* : AExpr */;
1474 var_v = p0;
1475 var = self->attrs[COLOR_parser_nodes__AOnceExpr___n_kwonce].val; /* _n_kwonce on <self:AOnceExpr> */
1476 if (unlikely(var == NULL)) {
1477 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwonce");
1478 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2947);
1479 show_backtrace(1);
1480 }
1481 {
1482 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1483 }
1484 var1 = self->attrs[COLOR_parser_nodes__AOnceExpr___n_expr].val; /* _n_expr on <self:AOnceExpr> */
1485 if (unlikely(var1 == NULL)) {
1486 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1487 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2948);
1488 show_backtrace(1);
1489 }
1490 {
1491 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1492 }
1493 RET_LABEL:;
1494 }
1495 /* method parser_prod#AOnceExpr#visit_all for (self: Object, Visitor) */
1496 void VIRTUAL_parser_prod__AOnceExpr__visit_all(val* self, val* p0) {
1497 parser_prod__AOnceExpr__visit_all(self, p0); /* Direct call parser_prod#AOnceExpr#visit_all on <self:Object(AOnceExpr)>*/
1498 RET_LABEL:;
1499 }
1500 /* method parser_prod#AOrExpr#init_aorexpr for (self: AOrExpr, nullable AExpr, nullable AExpr) */
1501 void parser_prod__AOrExpr__init_aorexpr(val* self, val* p0, val* p1) {
1502 val* var_n_expr /* var n_expr: nullable AExpr */;
1503 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
1504 var_n_expr = p0;
1505 var_n_expr2 = p1;
1506 if (unlikely(var_n_expr == NULL)) {
1507 PRINT_ERROR("Runtime error: %s", "Cast failed");
1508 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3028);
1509 show_backtrace(1);
1510 }
1511 self->attrs[COLOR_parser_nodes__AOrExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AOrExpr> */
1512 if (var_n_expr == NULL) {
1513 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1514 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3029);
1515 show_backtrace(1);
1516 } else {
1517 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
1518 if (unlikely(var_n_expr == NULL)) {
1519 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1520 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
1521 show_backtrace(1);
1522 }
1523 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
1524 RET_LABEL1:(void)0;
1525 }
1526 }
1527 if (unlikely(var_n_expr2 == NULL)) {
1528 PRINT_ERROR("Runtime error: %s", "Cast failed");
1529 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3030);
1530 show_backtrace(1);
1531 }
1532 self->attrs[COLOR_parser_nodes__AOrExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:AOrExpr> */
1533 if (var_n_expr2 == NULL) {
1534 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1535 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3031);
1536 show_backtrace(1);
1537 } else {
1538 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
1539 if (unlikely(var_n_expr2 == NULL)) {
1540 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1541 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
1542 show_backtrace(1);
1543 }
1544 var_n_expr2->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
1545 RET_LABEL2:(void)0;
1546 }
1547 }
1548 RET_LABEL:;
1549 }
1550 /* method parser_prod#AOrExpr#init_aorexpr for (self: Object, nullable AExpr, nullable AExpr) */
1551 void VIRTUAL_parser_prod__AOrExpr__init_aorexpr(val* self, val* p0, val* p1) {
1552 parser_prod__AOrExpr__init_aorexpr(self, p0, p1); /* Direct call parser_prod#AOrExpr#init_aorexpr on <self:Object(AOrExpr)>*/
1553 RET_LABEL:;
1554 }
1555 /* method parser_prod#AOrExpr#replace_child for (self: AOrExpr, ANode, nullable ANode) */
1556 void parser_prod__AOrExpr__replace_child(val* self, val* p0, val* p1) {
1557 val* var_old_child /* var old_child: ANode */;
1558 val* var_new_child /* var new_child: nullable ANode */;
1559 val* var /* : AExpr */;
1560 short int var1 /* : Bool */;
1561 short int var2 /* : Bool */;
1562 val* var_other /* var other: nullable Object */;
1563 short int var4 /* : Bool */;
1564 short int var6 /* : Bool */;
1565 short int var7 /* : Bool */;
1566 int cltype;
1567 int idtype;
1568 const char* var_class_name;
1569 val* var8 /* : AExpr */;
1570 short int var9 /* : Bool */;
1571 short int var10 /* : Bool */;
1572 short int var12 /* : Bool */;
1573 short int var14 /* : Bool */;
1574 short int var15 /* : Bool */;
1575 int cltype16;
1576 int idtype17;
1577 const char* var_class_name18;
1578 var_old_child = p0;
1579 var_new_child = p1;
1580 var = self->attrs[COLOR_parser_nodes__AOrExpr___n_expr].val; /* _n_expr on <self:AOrExpr> */
1581 if (unlikely(var == NULL)) {
1582 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1583 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3036);
1584 show_backtrace(1);
1585 }
1586 {
1587 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
1588 var_other = var_old_child;
1589 {
1590 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
1591 var6 = var == var_other;
1592 var4 = var6;
1593 goto RET_LABEL5;
1594 RET_LABEL5:(void)0;
1595 }
1596 }
1597 var2 = var4;
1598 goto RET_LABEL3;
1599 RET_LABEL3:(void)0;
1600 }
1601 var1 = var2;
1602 }
1603 if (var1){
1604 /* <var_new_child:nullable ANode> isa AExpr */
1605 cltype = type_parser_nodes__AExpr.color;
1606 idtype = type_parser_nodes__AExpr.id;
1607 if(var_new_child == NULL) {
1608 var7 = 0;
1609 } else {
1610 if(cltype >= var_new_child->type->table_size) {
1611 var7 = 0;
1612 } else {
1613 var7 = var_new_child->type->type_table[cltype] == idtype;
1614 }
1615 }
1616 if (unlikely(!var7)) {
1617 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
1618 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
1619 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3037);
1620 show_backtrace(1);
1621 }
1622 {
1623 parser_prod__AOrExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AOrExpr#n_expr= on <self:AOrExpr>*/
1624 }
1625 goto RET_LABEL;
1626 } else {
1627 }
1628 var8 = self->attrs[COLOR_parser_nodes__AOrExpr___n_expr2].val; /* _n_expr2 on <self:AOrExpr> */
1629 if (unlikely(var8 == NULL)) {
1630 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
1631 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3040);
1632 show_backtrace(1);
1633 }
1634 {
1635 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExpr> */
1636 var_other = var_old_child;
1637 {
1638 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExpr> */
1639 var14 = var8 == var_other;
1640 var12 = var14;
1641 goto RET_LABEL13;
1642 RET_LABEL13:(void)0;
1643 }
1644 }
1645 var10 = var12;
1646 goto RET_LABEL11;
1647 RET_LABEL11:(void)0;
1648 }
1649 var9 = var10;
1650 }
1651 if (var9){
1652 /* <var_new_child:nullable ANode> isa AExpr */
1653 cltype16 = type_parser_nodes__AExpr.color;
1654 idtype17 = type_parser_nodes__AExpr.id;
1655 if(var_new_child == NULL) {
1656 var15 = 0;
1657 } else {
1658 if(cltype16 >= var_new_child->type->table_size) {
1659 var15 = 0;
1660 } else {
1661 var15 = var_new_child->type->type_table[cltype16] == idtype17;
1662 }
1663 }
1664 if (unlikely(!var15)) {
1665 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
1666 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name18);
1667 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3041);
1668 show_backtrace(1);
1669 }
1670 {
1671 parser_prod__AOrExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#AOrExpr#n_expr2= on <self:AOrExpr>*/
1672 }
1673 goto RET_LABEL;
1674 } else {
1675 }
1676 RET_LABEL:;
1677 }
1678 /* method parser_prod#AOrExpr#replace_child for (self: Object, ANode, nullable ANode) */
1679 void VIRTUAL_parser_prod__AOrExpr__replace_child(val* self, val* p0, val* p1) {
1680 parser_prod__AOrExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AOrExpr#replace_child on <self:Object(AOrExpr)>*/
1681 RET_LABEL:;
1682 }
1683 /* method parser_prod#AOrExpr#n_expr= for (self: AOrExpr, AExpr) */
1684 void parser_prod__AOrExpr__n_expr_61d(val* self, val* p0) {
1685 val* var_node /* var node: AExpr */;
1686 var_node = p0;
1687 self->attrs[COLOR_parser_nodes__AOrExpr___n_expr].val = var_node; /* _n_expr on <self:AOrExpr> */
1688 {
1689 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
1690 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
1691 RET_LABEL1:(void)0;
1692 }
1693 }
1694 RET_LABEL:;
1695 }
1696 /* method parser_prod#AOrExpr#n_expr= for (self: Object, AExpr) */
1697 void VIRTUAL_parser_prod__AOrExpr__n_expr_61d(val* self, val* p0) {
1698 parser_prod__AOrExpr__n_expr_61d(self, p0); /* Direct call parser_prod#AOrExpr#n_expr= on <self:Object(AOrExpr)>*/
1699 RET_LABEL:;
1700 }
1701 /* method parser_prod#AOrExpr#n_expr2= for (self: AOrExpr, AExpr) */
1702 void parser_prod__AOrExpr__n_expr2_61d(val* self, val* p0) {
1703 val* var_node /* var node: AExpr */;
1704 var_node = p0;
1705 self->attrs[COLOR_parser_nodes__AOrExpr___n_expr2].val = var_node; /* _n_expr2 on <self:AOrExpr> */
1706 {
1707 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
1708 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
1709 RET_LABEL1:(void)0;
1710 }
1711 }
1712 RET_LABEL:;
1713 }
1714 /* method parser_prod#AOrExpr#n_expr2= for (self: Object, AExpr) */
1715 void VIRTUAL_parser_prod__AOrExpr__n_expr2_61d(val* self, val* p0) {
1716 parser_prod__AOrExpr__n_expr2_61d(self, p0); /* Direct call parser_prod#AOrExpr#n_expr2= on <self:Object(AOrExpr)>*/
1717 RET_LABEL:;
1718 }
1719 /* method parser_prod#AOrExpr#visit_all for (self: AOrExpr, Visitor) */
1720 void parser_prod__AOrExpr__visit_all(val* self, val* p0) {
1721 val* var_v /* var v: Visitor */;
1722 val* var /* : AExpr */;
1723 val* var1 /* : AExpr */;
1724 var_v = p0;
1725 var = self->attrs[COLOR_parser_nodes__AOrExpr___n_expr].val; /* _n_expr on <self:AOrExpr> */
1726 if (unlikely(var == NULL)) {
1727 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1728 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3060);
1729 show_backtrace(1);
1730 }
1731 {
1732 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1733 }
1734 var1 = self->attrs[COLOR_parser_nodes__AOrExpr___n_expr2].val; /* _n_expr2 on <self:AOrExpr> */
1735 if (unlikely(var1 == NULL)) {
1736 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
1737 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3061);
1738 show_backtrace(1);
1739 }
1740 {
1741 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1742 }
1743 RET_LABEL:;
1744 }
1745 /* method parser_prod#AOrExpr#visit_all for (self: Object, Visitor) */
1746 void VIRTUAL_parser_prod__AOrExpr__visit_all(val* self, val* p0) {
1747 parser_prod__AOrExpr__visit_all(self, p0); /* Direct call parser_prod#AOrExpr#visit_all on <self:Object(AOrExpr)>*/
1748 RET_LABEL:;
1749 }
1750 /* method parser_prod#AAndExpr#init_aandexpr for (self: AAndExpr, nullable AExpr, nullable AExpr) */
1751 void parser_prod__AAndExpr__init_aandexpr(val* self, val* p0, val* p1) {
1752 val* var_n_expr /* var n_expr: nullable AExpr */;
1753 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
1754 var_n_expr = p0;
1755 var_n_expr2 = p1;
1756 if (unlikely(var_n_expr == NULL)) {
1757 PRINT_ERROR("Runtime error: %s", "Cast failed");
1758 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3070);
1759 show_backtrace(1);
1760 }
1761 self->attrs[COLOR_parser_nodes__AAndExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AAndExpr> */
1762 if (var_n_expr == NULL) {
1763 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1764 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3071);
1765 show_backtrace(1);
1766 } else {
1767 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
1768 if (unlikely(var_n_expr == NULL)) {
1769 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1770 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
1771 show_backtrace(1);
1772 }
1773 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
1774 RET_LABEL1:(void)0;
1775 }
1776 }
1777 if (unlikely(var_n_expr2 == NULL)) {
1778 PRINT_ERROR("Runtime error: %s", "Cast failed");
1779 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3072);
1780 show_backtrace(1);
1781 }
1782 self->attrs[COLOR_parser_nodes__AAndExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:AAndExpr> */
1783 if (var_n_expr2 == NULL) {
1784 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1785 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3073);
1786 show_backtrace(1);
1787 } else {
1788 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
1789 if (unlikely(var_n_expr2 == NULL)) {
1790 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1791 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
1792 show_backtrace(1);
1793 }
1794 var_n_expr2->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
1795 RET_LABEL2:(void)0;
1796 }
1797 }
1798 RET_LABEL:;
1799 }
1800 /* method parser_prod#AAndExpr#init_aandexpr for (self: Object, nullable AExpr, nullable AExpr) */
1801 void VIRTUAL_parser_prod__AAndExpr__init_aandexpr(val* self, val* p0, val* p1) {
1802 parser_prod__AAndExpr__init_aandexpr(self, p0, p1); /* Direct call parser_prod#AAndExpr#init_aandexpr on <self:Object(AAndExpr)>*/
1803 RET_LABEL:;
1804 }
1805 /* method parser_prod#AAndExpr#replace_child for (self: AAndExpr, ANode, nullable ANode) */
1806 void parser_prod__AAndExpr__replace_child(val* self, val* p0, val* p1) {
1807 val* var_old_child /* var old_child: ANode */;
1808 val* var_new_child /* var new_child: nullable ANode */;
1809 val* var /* : AExpr */;
1810 short int var1 /* : Bool */;
1811 short int var2 /* : Bool */;
1812 val* var_other /* var other: nullable Object */;
1813 short int var4 /* : Bool */;
1814 short int var6 /* : Bool */;
1815 short int var7 /* : Bool */;
1816 int cltype;
1817 int idtype;
1818 const char* var_class_name;
1819 val* var8 /* : AExpr */;
1820 short int var9 /* : Bool */;
1821 short int var10 /* : Bool */;
1822 short int var12 /* : Bool */;
1823 short int var14 /* : Bool */;
1824 short int var15 /* : Bool */;
1825 int cltype16;
1826 int idtype17;
1827 const char* var_class_name18;
1828 var_old_child = p0;
1829 var_new_child = p1;
1830 var = self->attrs[COLOR_parser_nodes__AAndExpr___n_expr].val; /* _n_expr on <self:AAndExpr> */
1831 if (unlikely(var == NULL)) {
1832 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1833 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3078);
1834 show_backtrace(1);
1835 }
1836 {
1837 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
1838 var_other = var_old_child;
1839 {
1840 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
1841 var6 = var == var_other;
1842 var4 = var6;
1843 goto RET_LABEL5;
1844 RET_LABEL5:(void)0;
1845 }
1846 }
1847 var2 = var4;
1848 goto RET_LABEL3;
1849 RET_LABEL3:(void)0;
1850 }
1851 var1 = var2;
1852 }
1853 if (var1){
1854 /* <var_new_child:nullable ANode> isa AExpr */
1855 cltype = type_parser_nodes__AExpr.color;
1856 idtype = type_parser_nodes__AExpr.id;
1857 if(var_new_child == NULL) {
1858 var7 = 0;
1859 } else {
1860 if(cltype >= var_new_child->type->table_size) {
1861 var7 = 0;
1862 } else {
1863 var7 = var_new_child->type->type_table[cltype] == idtype;
1864 }
1865 }
1866 if (unlikely(!var7)) {
1867 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
1868 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
1869 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3079);
1870 show_backtrace(1);
1871 }
1872 {
1873 parser_prod__AAndExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AAndExpr#n_expr= on <self:AAndExpr>*/
1874 }
1875 goto RET_LABEL;
1876 } else {
1877 }
1878 var8 = self->attrs[COLOR_parser_nodes__AAndExpr___n_expr2].val; /* _n_expr2 on <self:AAndExpr> */
1879 if (unlikely(var8 == NULL)) {
1880 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
1881 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3082);
1882 show_backtrace(1);
1883 }
1884 {
1885 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExpr> */
1886 var_other = var_old_child;
1887 {
1888 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExpr> */
1889 var14 = var8 == var_other;
1890 var12 = var14;
1891 goto RET_LABEL13;
1892 RET_LABEL13:(void)0;
1893 }
1894 }
1895 var10 = var12;
1896 goto RET_LABEL11;
1897 RET_LABEL11:(void)0;
1898 }
1899 var9 = var10;
1900 }
1901 if (var9){
1902 /* <var_new_child:nullable ANode> isa AExpr */
1903 cltype16 = type_parser_nodes__AExpr.color;
1904 idtype17 = type_parser_nodes__AExpr.id;
1905 if(var_new_child == NULL) {
1906 var15 = 0;
1907 } else {
1908 if(cltype16 >= var_new_child->type->table_size) {
1909 var15 = 0;
1910 } else {
1911 var15 = var_new_child->type->type_table[cltype16] == idtype17;
1912 }
1913 }
1914 if (unlikely(!var15)) {
1915 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
1916 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name18);
1917 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3083);
1918 show_backtrace(1);
1919 }
1920 {
1921 parser_prod__AAndExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#AAndExpr#n_expr2= on <self:AAndExpr>*/
1922 }
1923 goto RET_LABEL;
1924 } else {
1925 }
1926 RET_LABEL:;
1927 }
1928 /* method parser_prod#AAndExpr#replace_child for (self: Object, ANode, nullable ANode) */
1929 void VIRTUAL_parser_prod__AAndExpr__replace_child(val* self, val* p0, val* p1) {
1930 parser_prod__AAndExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AAndExpr#replace_child on <self:Object(AAndExpr)>*/
1931 RET_LABEL:;
1932 }
1933 /* method parser_prod#AAndExpr#n_expr= for (self: AAndExpr, AExpr) */
1934 void parser_prod__AAndExpr__n_expr_61d(val* self, val* p0) {
1935 val* var_node /* var node: AExpr */;
1936 var_node = p0;
1937 self->attrs[COLOR_parser_nodes__AAndExpr___n_expr].val = var_node; /* _n_expr on <self:AAndExpr> */
1938 {
1939 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
1940 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
1941 RET_LABEL1:(void)0;
1942 }
1943 }
1944 RET_LABEL:;
1945 }
1946 /* method parser_prod#AAndExpr#n_expr= for (self: Object, AExpr) */
1947 void VIRTUAL_parser_prod__AAndExpr__n_expr_61d(val* self, val* p0) {
1948 parser_prod__AAndExpr__n_expr_61d(self, p0); /* Direct call parser_prod#AAndExpr#n_expr= on <self:Object(AAndExpr)>*/
1949 RET_LABEL:;
1950 }
1951 /* method parser_prod#AAndExpr#n_expr2= for (self: AAndExpr, AExpr) */
1952 void parser_prod__AAndExpr__n_expr2_61d(val* self, val* p0) {
1953 val* var_node /* var node: AExpr */;
1954 var_node = p0;
1955 self->attrs[COLOR_parser_nodes__AAndExpr___n_expr2].val = var_node; /* _n_expr2 on <self:AAndExpr> */
1956 {
1957 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
1958 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
1959 RET_LABEL1:(void)0;
1960 }
1961 }
1962 RET_LABEL:;
1963 }
1964 /* method parser_prod#AAndExpr#n_expr2= for (self: Object, AExpr) */
1965 void VIRTUAL_parser_prod__AAndExpr__n_expr2_61d(val* self, val* p0) {
1966 parser_prod__AAndExpr__n_expr2_61d(self, p0); /* Direct call parser_prod#AAndExpr#n_expr2= on <self:Object(AAndExpr)>*/
1967 RET_LABEL:;
1968 }
1969 /* method parser_prod#AAndExpr#visit_all for (self: AAndExpr, Visitor) */
1970 void parser_prod__AAndExpr__visit_all(val* self, val* p0) {
1971 val* var_v /* var v: Visitor */;
1972 val* var /* : AExpr */;
1973 val* var1 /* : AExpr */;
1974 var_v = p0;
1975 var = self->attrs[COLOR_parser_nodes__AAndExpr___n_expr].val; /* _n_expr on <self:AAndExpr> */
1976 if (unlikely(var == NULL)) {
1977 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1978 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3102);
1979 show_backtrace(1);
1980 }
1981 {
1982 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1983 }
1984 var1 = self->attrs[COLOR_parser_nodes__AAndExpr___n_expr2].val; /* _n_expr2 on <self:AAndExpr> */
1985 if (unlikely(var1 == NULL)) {
1986 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
1987 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3103);
1988 show_backtrace(1);
1989 }
1990 {
1991 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1992 }
1993 RET_LABEL:;
1994 }
1995 /* method parser_prod#AAndExpr#visit_all for (self: Object, Visitor) */
1996 void VIRTUAL_parser_prod__AAndExpr__visit_all(val* self, val* p0) {
1997 parser_prod__AAndExpr__visit_all(self, p0); /* Direct call parser_prod#AAndExpr#visit_all on <self:Object(AAndExpr)>*/
1998 RET_LABEL:;
1999 }
2000 /* method parser_prod#AOrElseExpr#init_aorelseexpr for (self: AOrElseExpr, nullable AExpr, nullable AExpr) */
2001 void parser_prod__AOrElseExpr__init_aorelseexpr(val* self, val* p0, val* p1) {
2002 val* var_n_expr /* var n_expr: nullable AExpr */;
2003 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
2004 var_n_expr = p0;
2005 var_n_expr2 = p1;
2006 if (unlikely(var_n_expr == NULL)) {
2007 PRINT_ERROR("Runtime error: %s", "Cast failed");
2008 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3112);
2009 show_backtrace(1);
2010 }
2011 self->attrs[COLOR_parser_nodes__AOrElseExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AOrElseExpr> */
2012 if (var_n_expr == NULL) {
2013 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2014 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3113);
2015 show_backtrace(1);
2016 } else {
2017 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
2018 if (unlikely(var_n_expr == NULL)) {
2019 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2020 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
2021 show_backtrace(1);
2022 }
2023 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
2024 RET_LABEL1:(void)0;
2025 }
2026 }
2027 if (unlikely(var_n_expr2 == NULL)) {
2028 PRINT_ERROR("Runtime error: %s", "Cast failed");
2029 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3114);
2030 show_backtrace(1);
2031 }
2032 self->attrs[COLOR_parser_nodes__AOrElseExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:AOrElseExpr> */
2033 if (var_n_expr2 == NULL) {
2034 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2035 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3115);
2036 show_backtrace(1);
2037 } else {
2038 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
2039 if (unlikely(var_n_expr2 == NULL)) {
2040 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2041 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
2042 show_backtrace(1);
2043 }
2044 var_n_expr2->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
2045 RET_LABEL2:(void)0;
2046 }
2047 }
2048 RET_LABEL:;
2049 }
2050 /* method parser_prod#AOrElseExpr#init_aorelseexpr for (self: Object, nullable AExpr, nullable AExpr) */
2051 void VIRTUAL_parser_prod__AOrElseExpr__init_aorelseexpr(val* self, val* p0, val* p1) {
2052 parser_prod__AOrElseExpr__init_aorelseexpr(self, p0, p1); /* Direct call parser_prod#AOrElseExpr#init_aorelseexpr on <self:Object(AOrElseExpr)>*/
2053 RET_LABEL:;
2054 }
2055 /* method parser_prod#AOrElseExpr#replace_child for (self: AOrElseExpr, ANode, nullable ANode) */
2056 void parser_prod__AOrElseExpr__replace_child(val* self, val* p0, val* p1) {
2057 val* var_old_child /* var old_child: ANode */;
2058 val* var_new_child /* var new_child: nullable ANode */;
2059 val* var /* : AExpr */;
2060 short int var1 /* : Bool */;
2061 short int var2 /* : Bool */;
2062 val* var_other /* var other: nullable Object */;
2063 short int var4 /* : Bool */;
2064 short int var6 /* : Bool */;
2065 short int var7 /* : Bool */;
2066 int cltype;
2067 int idtype;
2068 const char* var_class_name;
2069 val* var8 /* : AExpr */;
2070 short int var9 /* : Bool */;
2071 short int var10 /* : Bool */;
2072 short int var12 /* : Bool */;
2073 short int var14 /* : Bool */;
2074 short int var15 /* : Bool */;
2075 int cltype16;
2076 int idtype17;
2077 const char* var_class_name18;
2078 var_old_child = p0;
2079 var_new_child = p1;
2080 var = self->attrs[COLOR_parser_nodes__AOrElseExpr___n_expr].val; /* _n_expr on <self:AOrElseExpr> */
2081 if (unlikely(var == NULL)) {
2082 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2083 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3120);
2084 show_backtrace(1);
2085 }
2086 {
2087 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
2088 var_other = var_old_child;
2089 {
2090 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
2091 var6 = var == var_other;
2092 var4 = var6;
2093 goto RET_LABEL5;
2094 RET_LABEL5:(void)0;
2095 }
2096 }
2097 var2 = var4;
2098 goto RET_LABEL3;
2099 RET_LABEL3:(void)0;
2100 }
2101 var1 = var2;
2102 }
2103 if (var1){
2104 /* <var_new_child:nullable ANode> isa AExpr */
2105 cltype = type_parser_nodes__AExpr.color;
2106 idtype = type_parser_nodes__AExpr.id;
2107 if(var_new_child == NULL) {
2108 var7 = 0;
2109 } else {
2110 if(cltype >= var_new_child->type->table_size) {
2111 var7 = 0;
2112 } else {
2113 var7 = var_new_child->type->type_table[cltype] == idtype;
2114 }
2115 }
2116 if (unlikely(!var7)) {
2117 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
2118 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
2119 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3121);
2120 show_backtrace(1);
2121 }
2122 {
2123 parser_prod__AOrElseExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AOrElseExpr#n_expr= on <self:AOrElseExpr>*/
2124 }
2125 goto RET_LABEL;
2126 } else {
2127 }
2128 var8 = self->attrs[COLOR_parser_nodes__AOrElseExpr___n_expr2].val; /* _n_expr2 on <self:AOrElseExpr> */
2129 if (unlikely(var8 == NULL)) {
2130 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
2131 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3124);
2132 show_backtrace(1);
2133 }
2134 {
2135 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExpr> */
2136 var_other = var_old_child;
2137 {
2138 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExpr> */
2139 var14 = var8 == var_other;
2140 var12 = var14;
2141 goto RET_LABEL13;
2142 RET_LABEL13:(void)0;
2143 }
2144 }
2145 var10 = var12;
2146 goto RET_LABEL11;
2147 RET_LABEL11:(void)0;
2148 }
2149 var9 = var10;
2150 }
2151 if (var9){
2152 /* <var_new_child:nullable ANode> isa AExpr */
2153 cltype16 = type_parser_nodes__AExpr.color;
2154 idtype17 = type_parser_nodes__AExpr.id;
2155 if(var_new_child == NULL) {
2156 var15 = 0;
2157 } else {
2158 if(cltype16 >= var_new_child->type->table_size) {
2159 var15 = 0;
2160 } else {
2161 var15 = var_new_child->type->type_table[cltype16] == idtype17;
2162 }
2163 }
2164 if (unlikely(!var15)) {
2165 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
2166 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name18);
2167 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3125);
2168 show_backtrace(1);
2169 }
2170 {
2171 parser_prod__AOrElseExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#AOrElseExpr#n_expr2= on <self:AOrElseExpr>*/
2172 }
2173 goto RET_LABEL;
2174 } else {
2175 }
2176 RET_LABEL:;
2177 }
2178 /* method parser_prod#AOrElseExpr#replace_child for (self: Object, ANode, nullable ANode) */
2179 void VIRTUAL_parser_prod__AOrElseExpr__replace_child(val* self, val* p0, val* p1) {
2180 parser_prod__AOrElseExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AOrElseExpr#replace_child on <self:Object(AOrElseExpr)>*/
2181 RET_LABEL:;
2182 }
2183 /* method parser_prod#AOrElseExpr#n_expr= for (self: AOrElseExpr, AExpr) */
2184 void parser_prod__AOrElseExpr__n_expr_61d(val* self, val* p0) {
2185 val* var_node /* var node: AExpr */;
2186 var_node = p0;
2187 self->attrs[COLOR_parser_nodes__AOrElseExpr___n_expr].val = var_node; /* _n_expr on <self:AOrElseExpr> */
2188 {
2189 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
2190 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
2191 RET_LABEL1:(void)0;
2192 }
2193 }
2194 RET_LABEL:;
2195 }
2196 /* method parser_prod#AOrElseExpr#n_expr= for (self: Object, AExpr) */
2197 void VIRTUAL_parser_prod__AOrElseExpr__n_expr_61d(val* self, val* p0) {
2198 parser_prod__AOrElseExpr__n_expr_61d(self, p0); /* Direct call parser_prod#AOrElseExpr#n_expr= on <self:Object(AOrElseExpr)>*/
2199 RET_LABEL:;
2200 }
2201 /* method parser_prod#AOrElseExpr#n_expr2= for (self: AOrElseExpr, AExpr) */
2202 void parser_prod__AOrElseExpr__n_expr2_61d(val* self, val* p0) {
2203 val* var_node /* var node: AExpr */;
2204 var_node = p0;
2205 self->attrs[COLOR_parser_nodes__AOrElseExpr___n_expr2].val = var_node; /* _n_expr2 on <self:AOrElseExpr> */
2206 {
2207 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
2208 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
2209 RET_LABEL1:(void)0;
2210 }
2211 }
2212 RET_LABEL:;
2213 }
2214 /* method parser_prod#AOrElseExpr#n_expr2= for (self: Object, AExpr) */
2215 void VIRTUAL_parser_prod__AOrElseExpr__n_expr2_61d(val* self, val* p0) {
2216 parser_prod__AOrElseExpr__n_expr2_61d(self, p0); /* Direct call parser_prod#AOrElseExpr#n_expr2= on <self:Object(AOrElseExpr)>*/
2217 RET_LABEL:;
2218 }
2219 /* method parser_prod#AOrElseExpr#visit_all for (self: AOrElseExpr, Visitor) */
2220 void parser_prod__AOrElseExpr__visit_all(val* self, val* p0) {
2221 val* var_v /* var v: Visitor */;
2222 val* var /* : AExpr */;
2223 val* var1 /* : AExpr */;
2224 var_v = p0;
2225 var = self->attrs[COLOR_parser_nodes__AOrElseExpr___n_expr].val; /* _n_expr on <self:AOrElseExpr> */
2226 if (unlikely(var == NULL)) {
2227 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2228 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3144);
2229 show_backtrace(1);
2230 }
2231 {
2232 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2233 }
2234 var1 = self->attrs[COLOR_parser_nodes__AOrElseExpr___n_expr2].val; /* _n_expr2 on <self:AOrElseExpr> */
2235 if (unlikely(var1 == NULL)) {
2236 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
2237 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3145);
2238 show_backtrace(1);
2239 }
2240 {
2241 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2242 }
2243 RET_LABEL:;
2244 }
2245 /* method parser_prod#AOrElseExpr#visit_all for (self: Object, Visitor) */
2246 void VIRTUAL_parser_prod__AOrElseExpr__visit_all(val* self, val* p0) {
2247 parser_prod__AOrElseExpr__visit_all(self, p0); /* Direct call parser_prod#AOrElseExpr#visit_all on <self:Object(AOrElseExpr)>*/
2248 RET_LABEL:;
2249 }
2250 /* method parser_prod#AImpliesExpr#init_aimpliesexpr for (self: AImpliesExpr, nullable AExpr, nullable AExpr) */
2251 void parser_prod__AImpliesExpr__init_aimpliesexpr(val* self, val* p0, val* p1) {
2252 val* var_n_expr /* var n_expr: nullable AExpr */;
2253 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
2254 var_n_expr = p0;
2255 var_n_expr2 = p1;
2256 if (unlikely(var_n_expr == NULL)) {
2257 PRINT_ERROR("Runtime error: %s", "Cast failed");
2258 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3154);
2259 show_backtrace(1);
2260 }
2261 self->attrs[COLOR_parser_nodes__AImpliesExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AImpliesExpr> */
2262 if (var_n_expr == NULL) {
2263 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2264 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3155);
2265 show_backtrace(1);
2266 } else {
2267 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
2268 if (unlikely(var_n_expr == NULL)) {
2269 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2270 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
2271 show_backtrace(1);
2272 }
2273 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
2274 RET_LABEL1:(void)0;
2275 }
2276 }
2277 if (unlikely(var_n_expr2 == NULL)) {
2278 PRINT_ERROR("Runtime error: %s", "Cast failed");
2279 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3156);
2280 show_backtrace(1);
2281 }
2282 self->attrs[COLOR_parser_nodes__AImpliesExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:AImpliesExpr> */
2283 if (var_n_expr2 == NULL) {
2284 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2285 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3157);
2286 show_backtrace(1);
2287 } else {
2288 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
2289 if (unlikely(var_n_expr2 == NULL)) {
2290 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2291 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
2292 show_backtrace(1);
2293 }
2294 var_n_expr2->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
2295 RET_LABEL2:(void)0;
2296 }
2297 }
2298 RET_LABEL:;
2299 }
2300 /* method parser_prod#AImpliesExpr#init_aimpliesexpr for (self: Object, nullable AExpr, nullable AExpr) */
2301 void VIRTUAL_parser_prod__AImpliesExpr__init_aimpliesexpr(val* self, val* p0, val* p1) {
2302 parser_prod__AImpliesExpr__init_aimpliesexpr(self, p0, p1); /* Direct call parser_prod#AImpliesExpr#init_aimpliesexpr on <self:Object(AImpliesExpr)>*/
2303 RET_LABEL:;
2304 }
2305 /* method parser_prod#AImpliesExpr#replace_child for (self: AImpliesExpr, ANode, nullable ANode) */
2306 void parser_prod__AImpliesExpr__replace_child(val* self, val* p0, val* p1) {
2307 val* var_old_child /* var old_child: ANode */;
2308 val* var_new_child /* var new_child: nullable ANode */;
2309 val* var /* : AExpr */;
2310 short int var1 /* : Bool */;
2311 short int var2 /* : Bool */;
2312 val* var_other /* var other: nullable Object */;
2313 short int var4 /* : Bool */;
2314 short int var6 /* : Bool */;
2315 short int var7 /* : Bool */;
2316 int cltype;
2317 int idtype;
2318 const char* var_class_name;
2319 val* var8 /* : AExpr */;
2320 short int var9 /* : Bool */;
2321 short int var10 /* : Bool */;
2322 short int var12 /* : Bool */;
2323 short int var14 /* : Bool */;
2324 short int var15 /* : Bool */;
2325 int cltype16;
2326 int idtype17;
2327 const char* var_class_name18;
2328 var_old_child = p0;
2329 var_new_child = p1;
2330 var = self->attrs[COLOR_parser_nodes__AImpliesExpr___n_expr].val; /* _n_expr on <self:AImpliesExpr> */
2331 if (unlikely(var == NULL)) {
2332 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2333 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3162);
2334 show_backtrace(1);
2335 }
2336 {
2337 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
2338 var_other = var_old_child;
2339 {
2340 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
2341 var6 = var == var_other;
2342 var4 = var6;
2343 goto RET_LABEL5;
2344 RET_LABEL5:(void)0;
2345 }
2346 }
2347 var2 = var4;
2348 goto RET_LABEL3;
2349 RET_LABEL3:(void)0;
2350 }
2351 var1 = var2;
2352 }
2353 if (var1){
2354 /* <var_new_child:nullable ANode> isa AExpr */
2355 cltype = type_parser_nodes__AExpr.color;
2356 idtype = type_parser_nodes__AExpr.id;
2357 if(var_new_child == NULL) {
2358 var7 = 0;
2359 } else {
2360 if(cltype >= var_new_child->type->table_size) {
2361 var7 = 0;
2362 } else {
2363 var7 = var_new_child->type->type_table[cltype] == idtype;
2364 }
2365 }
2366 if (unlikely(!var7)) {
2367 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
2368 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
2369 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3163);
2370 show_backtrace(1);
2371 }
2372 {
2373 parser_prod__AImpliesExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AImpliesExpr#n_expr= on <self:AImpliesExpr>*/
2374 }
2375 goto RET_LABEL;
2376 } else {
2377 }
2378 var8 = self->attrs[COLOR_parser_nodes__AImpliesExpr___n_expr2].val; /* _n_expr2 on <self:AImpliesExpr> */
2379 if (unlikely(var8 == NULL)) {
2380 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
2381 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3166);
2382 show_backtrace(1);
2383 }
2384 {
2385 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExpr> */
2386 var_other = var_old_child;
2387 {
2388 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExpr> */
2389 var14 = var8 == var_other;
2390 var12 = var14;
2391 goto RET_LABEL13;
2392 RET_LABEL13:(void)0;
2393 }
2394 }
2395 var10 = var12;
2396 goto RET_LABEL11;
2397 RET_LABEL11:(void)0;
2398 }
2399 var9 = var10;
2400 }
2401 if (var9){
2402 /* <var_new_child:nullable ANode> isa AExpr */
2403 cltype16 = type_parser_nodes__AExpr.color;
2404 idtype17 = type_parser_nodes__AExpr.id;
2405 if(var_new_child == NULL) {
2406 var15 = 0;
2407 } else {
2408 if(cltype16 >= var_new_child->type->table_size) {
2409 var15 = 0;
2410 } else {
2411 var15 = var_new_child->type->type_table[cltype16] == idtype17;
2412 }
2413 }
2414 if (unlikely(!var15)) {
2415 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
2416 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name18);
2417 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3167);
2418 show_backtrace(1);
2419 }
2420 {
2421 parser_prod__AImpliesExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#AImpliesExpr#n_expr2= on <self:AImpliesExpr>*/
2422 }
2423 goto RET_LABEL;
2424 } else {
2425 }
2426 RET_LABEL:;
2427 }
2428 /* method parser_prod#AImpliesExpr#replace_child for (self: Object, ANode, nullable ANode) */
2429 void VIRTUAL_parser_prod__AImpliesExpr__replace_child(val* self, val* p0, val* p1) {
2430 parser_prod__AImpliesExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AImpliesExpr#replace_child on <self:Object(AImpliesExpr)>*/
2431 RET_LABEL:;
2432 }
2433 /* method parser_prod#AImpliesExpr#n_expr= for (self: AImpliesExpr, AExpr) */
2434 void parser_prod__AImpliesExpr__n_expr_61d(val* self, val* p0) {
2435 val* var_node /* var node: AExpr */;
2436 var_node = p0;
2437 self->attrs[COLOR_parser_nodes__AImpliesExpr___n_expr].val = var_node; /* _n_expr on <self:AImpliesExpr> */
2438 {
2439 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
2440 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
2441 RET_LABEL1:(void)0;
2442 }
2443 }
2444 RET_LABEL:;
2445 }
2446 /* method parser_prod#AImpliesExpr#n_expr= for (self: Object, AExpr) */
2447 void VIRTUAL_parser_prod__AImpliesExpr__n_expr_61d(val* self, val* p0) {
2448 parser_prod__AImpliesExpr__n_expr_61d(self, p0); /* Direct call parser_prod#AImpliesExpr#n_expr= on <self:Object(AImpliesExpr)>*/
2449 RET_LABEL:;
2450 }
2451 /* method parser_prod#AImpliesExpr#n_expr2= for (self: AImpliesExpr, AExpr) */
2452 void parser_prod__AImpliesExpr__n_expr2_61d(val* self, val* p0) {
2453 val* var_node /* var node: AExpr */;
2454 var_node = p0;
2455 self->attrs[COLOR_parser_nodes__AImpliesExpr___n_expr2].val = var_node; /* _n_expr2 on <self:AImpliesExpr> */
2456 {
2457 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
2458 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
2459 RET_LABEL1:(void)0;
2460 }
2461 }
2462 RET_LABEL:;
2463 }
2464 /* method parser_prod#AImpliesExpr#n_expr2= for (self: Object, AExpr) */
2465 void VIRTUAL_parser_prod__AImpliesExpr__n_expr2_61d(val* self, val* p0) {
2466 parser_prod__AImpliesExpr__n_expr2_61d(self, p0); /* Direct call parser_prod#AImpliesExpr#n_expr2= on <self:Object(AImpliesExpr)>*/
2467 RET_LABEL:;
2468 }
2469 /* method parser_prod#AImpliesExpr#visit_all for (self: AImpliesExpr, Visitor) */
2470 void parser_prod__AImpliesExpr__visit_all(val* self, val* p0) {
2471 val* var_v /* var v: Visitor */;
2472 val* var /* : AExpr */;
2473 val* var1 /* : AExpr */;
2474 var_v = p0;
2475 var = self->attrs[COLOR_parser_nodes__AImpliesExpr___n_expr].val; /* _n_expr on <self:AImpliesExpr> */
2476 if (unlikely(var == NULL)) {
2477 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2478 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3186);
2479 show_backtrace(1);
2480 }
2481 {
2482 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2483 }
2484 var1 = self->attrs[COLOR_parser_nodes__AImpliesExpr___n_expr2].val; /* _n_expr2 on <self:AImpliesExpr> */
2485 if (unlikely(var1 == NULL)) {
2486 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
2487 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3187);
2488 show_backtrace(1);
2489 }
2490 {
2491 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2492 }
2493 RET_LABEL:;
2494 }
2495 /* method parser_prod#AImpliesExpr#visit_all for (self: Object, Visitor) */
2496 void VIRTUAL_parser_prod__AImpliesExpr__visit_all(val* self, val* p0) {
2497 parser_prod__AImpliesExpr__visit_all(self, p0); /* Direct call parser_prod#AImpliesExpr#visit_all on <self:Object(AImpliesExpr)>*/
2498 RET_LABEL:;
2499 }
2500 /* method parser_prod#ANotExpr#init_anotexpr for (self: ANotExpr, nullable TKwnot, nullable AExpr) */
2501 void parser_prod__ANotExpr__init_anotexpr(val* self, val* p0, val* p1) {
2502 val* var_n_kwnot /* var n_kwnot: nullable TKwnot */;
2503 val* var_n_expr /* var n_expr: nullable AExpr */;
2504 var_n_kwnot = p0;
2505 var_n_expr = p1;
2506 if (unlikely(var_n_kwnot == NULL)) {
2507 PRINT_ERROR("Runtime error: %s", "Cast failed");
2508 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3196);
2509 show_backtrace(1);
2510 }
2511 self->attrs[COLOR_parser_nodes__ANotExpr___n_kwnot].val = var_n_kwnot; /* _n_kwnot on <self:ANotExpr> */
2512 if (var_n_kwnot == NULL) {
2513 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2514 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3197);
2515 show_backtrace(1);
2516 } else {
2517 { /* Inline parser_nodes#ANode#parent= (var_n_kwnot,self) on <var_n_kwnot:nullable TKwnot> */
2518 if (unlikely(var_n_kwnot == NULL)) {
2519 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2520 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
2521 show_backtrace(1);
2522 }
2523 var_n_kwnot->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwnot:nullable TKwnot> */
2524 RET_LABEL1:(void)0;
2525 }
2526 }
2527 if (unlikely(var_n_expr == NULL)) {
2528 PRINT_ERROR("Runtime error: %s", "Cast failed");
2529 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3198);
2530 show_backtrace(1);
2531 }
2532 self->attrs[COLOR_parser_nodes__ANotExpr___n_expr].val = var_n_expr; /* _n_expr on <self:ANotExpr> */
2533 if (var_n_expr == NULL) {
2534 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2535 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3199);
2536 show_backtrace(1);
2537 } else {
2538 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
2539 if (unlikely(var_n_expr == NULL)) {
2540 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2541 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
2542 show_backtrace(1);
2543 }
2544 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
2545 RET_LABEL2:(void)0;
2546 }
2547 }
2548 RET_LABEL:;
2549 }
2550 /* method parser_prod#ANotExpr#init_anotexpr for (self: Object, nullable TKwnot, nullable AExpr) */
2551 void VIRTUAL_parser_prod__ANotExpr__init_anotexpr(val* self, val* p0, val* p1) {
2552 parser_prod__ANotExpr__init_anotexpr(self, p0, p1); /* Direct call parser_prod#ANotExpr#init_anotexpr on <self:Object(ANotExpr)>*/
2553 RET_LABEL:;
2554 }
2555 /* method parser_prod#ANotExpr#replace_child for (self: ANotExpr, ANode, nullable ANode) */
2556 void parser_prod__ANotExpr__replace_child(val* self, val* p0, val* p1) {
2557 val* var_old_child /* var old_child: ANode */;
2558 val* var_new_child /* var new_child: nullable ANode */;
2559 val* var /* : TKwnot */;
2560 short int var1 /* : Bool */;
2561 short int var2 /* : Bool */;
2562 val* var_other /* var other: nullable Object */;
2563 short int var4 /* : Bool */;
2564 short int var6 /* : Bool */;
2565 short int var7 /* : Bool */;
2566 int cltype;
2567 int idtype;
2568 const char* var_class_name;
2569 val* var8 /* : AExpr */;
2570 short int var9 /* : Bool */;
2571 short int var10 /* : Bool */;
2572 short int var12 /* : Bool */;
2573 short int var14 /* : Bool */;
2574 short int var15 /* : Bool */;
2575 int cltype16;
2576 int idtype17;
2577 const char* var_class_name18;
2578 var_old_child = p0;
2579 var_new_child = p1;
2580 var = self->attrs[COLOR_parser_nodes__ANotExpr___n_kwnot].val; /* _n_kwnot on <self:ANotExpr> */
2581 if (unlikely(var == NULL)) {
2582 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwnot");
2583 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3204);
2584 show_backtrace(1);
2585 }
2586 {
2587 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwnot> */
2588 var_other = var_old_child;
2589 {
2590 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TKwnot> */
2591 var6 = var == var_other;
2592 var4 = var6;
2593 goto RET_LABEL5;
2594 RET_LABEL5:(void)0;
2595 }
2596 }
2597 var2 = var4;
2598 goto RET_LABEL3;
2599 RET_LABEL3:(void)0;
2600 }
2601 var1 = var2;
2602 }
2603 if (var1){
2604 /* <var_new_child:nullable ANode> isa TKwnot */
2605 cltype = type_parser_nodes__TKwnot.color;
2606 idtype = type_parser_nodes__TKwnot.id;
2607 if(var_new_child == NULL) {
2608 var7 = 0;
2609 } else {
2610 if(cltype >= var_new_child->type->table_size) {
2611 var7 = 0;
2612 } else {
2613 var7 = var_new_child->type->type_table[cltype] == idtype;
2614 }
2615 }
2616 if (unlikely(!var7)) {
2617 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
2618 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwnot", var_class_name);
2619 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3205);
2620 show_backtrace(1);
2621 }
2622 {
2623 parser_prod__ANotExpr__n_kwnot_61d(self, var_new_child); /* Direct call parser_prod#ANotExpr#n_kwnot= on <self:ANotExpr>*/
2624 }
2625 goto RET_LABEL;
2626 } else {
2627 }
2628 var8 = self->attrs[COLOR_parser_nodes__ANotExpr___n_expr].val; /* _n_expr on <self:ANotExpr> */
2629 if (unlikely(var8 == NULL)) {
2630 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2631 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3208);
2632 show_backtrace(1);
2633 }
2634 {
2635 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExpr> */
2636 var_other = var_old_child;
2637 {
2638 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExpr> */
2639 var14 = var8 == var_other;
2640 var12 = var14;
2641 goto RET_LABEL13;
2642 RET_LABEL13:(void)0;
2643 }
2644 }
2645 var10 = var12;
2646 goto RET_LABEL11;
2647 RET_LABEL11:(void)0;
2648 }
2649 var9 = var10;
2650 }
2651 if (var9){
2652 /* <var_new_child:nullable ANode> isa AExpr */
2653 cltype16 = type_parser_nodes__AExpr.color;
2654 idtype17 = type_parser_nodes__AExpr.id;
2655 if(var_new_child == NULL) {
2656 var15 = 0;
2657 } else {
2658 if(cltype16 >= var_new_child->type->table_size) {
2659 var15 = 0;
2660 } else {
2661 var15 = var_new_child->type->type_table[cltype16] == idtype17;
2662 }
2663 }
2664 if (unlikely(!var15)) {
2665 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
2666 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name18);
2667 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3209);
2668 show_backtrace(1);
2669 }
2670 {
2671 parser_prod__ANotExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#ANotExpr#n_expr= on <self:ANotExpr>*/
2672 }
2673 goto RET_LABEL;
2674 } else {
2675 }
2676 RET_LABEL:;
2677 }
2678 /* method parser_prod#ANotExpr#replace_child for (self: Object, ANode, nullable ANode) */
2679 void VIRTUAL_parser_prod__ANotExpr__replace_child(val* self, val* p0, val* p1) {
2680 parser_prod__ANotExpr__replace_child(self, p0, p1); /* Direct call parser_prod#ANotExpr#replace_child on <self:Object(ANotExpr)>*/
2681 RET_LABEL:;
2682 }
2683 /* method parser_prod#ANotExpr#n_kwnot= for (self: ANotExpr, TKwnot) */
2684 void parser_prod__ANotExpr__n_kwnot_61d(val* self, val* p0) {
2685 val* var_node /* var node: TKwnot */;
2686 var_node = p0;
2687 self->attrs[COLOR_parser_nodes__ANotExpr___n_kwnot].val = var_node; /* _n_kwnot on <self:ANotExpr> */
2688 {
2689 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwnot> */
2690 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwnot> */
2691 RET_LABEL1:(void)0;
2692 }
2693 }
2694 RET_LABEL:;
2695 }
2696 /* method parser_prod#ANotExpr#n_kwnot= for (self: Object, TKwnot) */
2697 void VIRTUAL_parser_prod__ANotExpr__n_kwnot_61d(val* self, val* p0) {
2698 parser_prod__ANotExpr__n_kwnot_61d(self, p0); /* Direct call parser_prod#ANotExpr#n_kwnot= on <self:Object(ANotExpr)>*/
2699 RET_LABEL:;
2700 }
2701 /* method parser_prod#ANotExpr#n_expr= for (self: ANotExpr, AExpr) */
2702 void parser_prod__ANotExpr__n_expr_61d(val* self, val* p0) {
2703 val* var_node /* var node: AExpr */;
2704 var_node = p0;
2705 self->attrs[COLOR_parser_nodes__ANotExpr___n_expr].val = var_node; /* _n_expr on <self:ANotExpr> */
2706 {
2707 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
2708 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
2709 RET_LABEL1:(void)0;
2710 }
2711 }
2712 RET_LABEL:;
2713 }
2714 /* method parser_prod#ANotExpr#n_expr= for (self: Object, AExpr) */
2715 void VIRTUAL_parser_prod__ANotExpr__n_expr_61d(val* self, val* p0) {
2716 parser_prod__ANotExpr__n_expr_61d(self, p0); /* Direct call parser_prod#ANotExpr#n_expr= on <self:Object(ANotExpr)>*/
2717 RET_LABEL:;
2718 }
2719 /* method parser_prod#ANotExpr#visit_all for (self: ANotExpr, Visitor) */
2720 void parser_prod__ANotExpr__visit_all(val* self, val* p0) {
2721 val* var_v /* var v: Visitor */;
2722 val* var /* : TKwnot */;
2723 val* var1 /* : AExpr */;
2724 var_v = p0;
2725 var = self->attrs[COLOR_parser_nodes__ANotExpr___n_kwnot].val; /* _n_kwnot on <self:ANotExpr> */
2726 if (unlikely(var == NULL)) {
2727 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwnot");
2728 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3228);
2729 show_backtrace(1);
2730 }
2731 {
2732 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2733 }
2734 var1 = self->attrs[COLOR_parser_nodes__ANotExpr___n_expr].val; /* _n_expr on <self:ANotExpr> */
2735 if (unlikely(var1 == NULL)) {
2736 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2737 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3229);
2738 show_backtrace(1);
2739 }
2740 {
2741 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2742 }
2743 RET_LABEL:;
2744 }
2745 /* method parser_prod#ANotExpr#visit_all for (self: Object, Visitor) */
2746 void VIRTUAL_parser_prod__ANotExpr__visit_all(val* self, val* p0) {
2747 parser_prod__ANotExpr__visit_all(self, p0); /* Direct call parser_prod#ANotExpr#visit_all on <self:Object(ANotExpr)>*/
2748 RET_LABEL:;
2749 }
2750 /* method parser_prod#AEqExpr#init_aeqexpr for (self: AEqExpr, nullable AExpr, nullable AExpr) */
2751 void parser_prod__AEqExpr__init_aeqexpr(val* self, val* p0, val* p1) {
2752 val* var_n_expr /* var n_expr: nullable AExpr */;
2753 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
2754 var_n_expr = p0;
2755 var_n_expr2 = p1;
2756 if (unlikely(var_n_expr == NULL)) {
2757 PRINT_ERROR("Runtime error: %s", "Cast failed");
2758 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3238);
2759 show_backtrace(1);
2760 }
2761 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AEqExpr> */
2762 if (var_n_expr == NULL) {
2763 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2764 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3239);
2765 show_backtrace(1);
2766 } else {
2767 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
2768 if (unlikely(var_n_expr == NULL)) {
2769 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2770 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
2771 show_backtrace(1);
2772 }
2773 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
2774 RET_LABEL1:(void)0;
2775 }
2776 }
2777 if (unlikely(var_n_expr2 == NULL)) {
2778 PRINT_ERROR("Runtime error: %s", "Cast failed");
2779 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3240);
2780 show_backtrace(1);
2781 }
2782 self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:AEqExpr> */
2783 if (var_n_expr2 == NULL) {
2784 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2785 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3241);
2786 show_backtrace(1);
2787 } else {
2788 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
2789 if (unlikely(var_n_expr2 == NULL)) {
2790 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2791 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
2792 show_backtrace(1);
2793 }
2794 var_n_expr2->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
2795 RET_LABEL2:(void)0;
2796 }
2797 }
2798 RET_LABEL:;
2799 }
2800 /* method parser_prod#AEqExpr#init_aeqexpr for (self: Object, nullable AExpr, nullable AExpr) */
2801 void VIRTUAL_parser_prod__AEqExpr__init_aeqexpr(val* self, val* p0, val* p1) {
2802 parser_prod__AEqExpr__init_aeqexpr(self, p0, p1); /* Direct call parser_prod#AEqExpr#init_aeqexpr on <self:Object(AEqExpr)>*/
2803 RET_LABEL:;
2804 }
2805 /* method parser_prod#AEqExpr#replace_child for (self: AEqExpr, ANode, nullable ANode) */
2806 void parser_prod__AEqExpr__replace_child(val* self, val* p0, val* p1) {
2807 val* var_old_child /* var old_child: ANode */;
2808 val* var_new_child /* var new_child: nullable ANode */;
2809 val* var /* : AExpr */;
2810 short int var1 /* : Bool */;
2811 short int var2 /* : Bool */;
2812 val* var_other /* var other: nullable Object */;
2813 short int var4 /* : Bool */;
2814 short int var6 /* : Bool */;
2815 short int var7 /* : Bool */;
2816 int cltype;
2817 int idtype;
2818 const char* var_class_name;
2819 val* var8 /* : AExpr */;
2820 short int var9 /* : Bool */;
2821 short int var10 /* : Bool */;
2822 short int var12 /* : Bool */;
2823 short int var14 /* : Bool */;
2824 short int var15 /* : Bool */;
2825 int cltype16;
2826 int idtype17;
2827 const char* var_class_name18;
2828 var_old_child = p0;
2829 var_new_child = p1;
2830 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AEqExpr> */
2831 if (unlikely(var == NULL)) {
2832 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2833 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3246);
2834 show_backtrace(1);
2835 }
2836 {
2837 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
2838 var_other = var_old_child;
2839 {
2840 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
2841 var6 = var == var_other;
2842 var4 = var6;
2843 goto RET_LABEL5;
2844 RET_LABEL5:(void)0;
2845 }
2846 }
2847 var2 = var4;
2848 goto RET_LABEL3;
2849 RET_LABEL3:(void)0;
2850 }
2851 var1 = var2;
2852 }
2853 if (var1){
2854 /* <var_new_child:nullable ANode> isa AExpr */
2855 cltype = type_parser_nodes__AExpr.color;
2856 idtype = type_parser_nodes__AExpr.id;
2857 if(var_new_child == NULL) {
2858 var7 = 0;
2859 } else {
2860 if(cltype >= var_new_child->type->table_size) {
2861 var7 = 0;
2862 } else {
2863 var7 = var_new_child->type->type_table[cltype] == idtype;
2864 }
2865 }
2866 if (unlikely(!var7)) {
2867 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
2868 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
2869 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3247);
2870 show_backtrace(1);
2871 }
2872 {
2873 parser_prod__AEqExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AEqExpr#n_expr= on <self:AEqExpr>*/
2874 }
2875 goto RET_LABEL;
2876 } else {
2877 }
2878 var8 = self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AEqExpr> */
2879 if (unlikely(var8 == NULL)) {
2880 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
2881 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3250);
2882 show_backtrace(1);
2883 }
2884 {
2885 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExpr> */
2886 var_other = var_old_child;
2887 {
2888 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExpr> */
2889 var14 = var8 == var_other;
2890 var12 = var14;
2891 goto RET_LABEL13;
2892 RET_LABEL13:(void)0;
2893 }
2894 }
2895 var10 = var12;
2896 goto RET_LABEL11;
2897 RET_LABEL11:(void)0;
2898 }
2899 var9 = var10;
2900 }
2901 if (var9){
2902 /* <var_new_child:nullable ANode> isa AExpr */
2903 cltype16 = type_parser_nodes__AExpr.color;
2904 idtype17 = type_parser_nodes__AExpr.id;
2905 if(var_new_child == NULL) {
2906 var15 = 0;
2907 } else {
2908 if(cltype16 >= var_new_child->type->table_size) {
2909 var15 = 0;
2910 } else {
2911 var15 = var_new_child->type->type_table[cltype16] == idtype17;
2912 }
2913 }
2914 if (unlikely(!var15)) {
2915 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
2916 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name18);
2917 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3251);
2918 show_backtrace(1);
2919 }
2920 {
2921 parser_prod__AEqExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#AEqExpr#n_expr2= on <self:AEqExpr>*/
2922 }
2923 goto RET_LABEL;
2924 } else {
2925 }
2926 RET_LABEL:;
2927 }
2928 /* method parser_prod#AEqExpr#replace_child for (self: Object, ANode, nullable ANode) */
2929 void VIRTUAL_parser_prod__AEqExpr__replace_child(val* self, val* p0, val* p1) {
2930 parser_prod__AEqExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AEqExpr#replace_child on <self:Object(AEqExpr)>*/
2931 RET_LABEL:;
2932 }
2933 /* method parser_prod#AEqExpr#n_expr= for (self: AEqExpr, AExpr) */
2934 void parser_prod__AEqExpr__n_expr_61d(val* self, val* p0) {
2935 val* var_node /* var node: AExpr */;
2936 var_node = p0;
2937 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:AEqExpr> */
2938 {
2939 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
2940 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
2941 RET_LABEL1:(void)0;
2942 }
2943 }
2944 RET_LABEL:;
2945 }
2946 /* method parser_prod#AEqExpr#n_expr= for (self: Object, AExpr) */
2947 void VIRTUAL_parser_prod__AEqExpr__n_expr_61d(val* self, val* p0) {
2948 parser_prod__AEqExpr__n_expr_61d(self, p0); /* Direct call parser_prod#AEqExpr#n_expr= on <self:Object(AEqExpr)>*/
2949 RET_LABEL:;
2950 }
2951 /* method parser_prod#AEqExpr#n_expr2= for (self: AEqExpr, AExpr) */
2952 void parser_prod__AEqExpr__n_expr2_61d(val* self, val* p0) {
2953 val* var_node /* var node: AExpr */;
2954 var_node = p0;
2955 self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val = var_node; /* _n_expr2 on <self:AEqExpr> */
2956 {
2957 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
2958 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
2959 RET_LABEL1:(void)0;
2960 }
2961 }
2962 RET_LABEL:;
2963 }
2964 /* method parser_prod#AEqExpr#n_expr2= for (self: Object, AExpr) */
2965 void VIRTUAL_parser_prod__AEqExpr__n_expr2_61d(val* self, val* p0) {
2966 parser_prod__AEqExpr__n_expr2_61d(self, p0); /* Direct call parser_prod#AEqExpr#n_expr2= on <self:Object(AEqExpr)>*/
2967 RET_LABEL:;
2968 }
2969 /* method parser_prod#AEqExpr#visit_all for (self: AEqExpr, Visitor) */
2970 void parser_prod__AEqExpr__visit_all(val* self, val* p0) {
2971 val* var_v /* var v: Visitor */;
2972 val* var /* : AExpr */;
2973 val* var1 /* : AExpr */;
2974 var_v = p0;
2975 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AEqExpr> */
2976 if (unlikely(var == NULL)) {
2977 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2978 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3270);
2979 show_backtrace(1);
2980 }
2981 {
2982 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2983 }
2984 var1 = self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AEqExpr> */
2985 if (unlikely(var1 == NULL)) {
2986 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
2987 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3271);
2988 show_backtrace(1);
2989 }
2990 {
2991 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2992 }
2993 RET_LABEL:;
2994 }
2995 /* method parser_prod#AEqExpr#visit_all for (self: Object, Visitor) */
2996 void VIRTUAL_parser_prod__AEqExpr__visit_all(val* self, val* p0) {
2997 parser_prod__AEqExpr__visit_all(self, p0); /* Direct call parser_prod#AEqExpr#visit_all on <self:Object(AEqExpr)>*/
2998 RET_LABEL:;
2999 }
3000 /* method parser_prod#ANeExpr#init_aneexpr for (self: ANeExpr, nullable AExpr, nullable AExpr) */
3001 void parser_prod__ANeExpr__init_aneexpr(val* self, val* p0, val* p1) {
3002 val* var_n_expr /* var n_expr: nullable AExpr */;
3003 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
3004 var_n_expr = p0;
3005 var_n_expr2 = p1;
3006 if (unlikely(var_n_expr == NULL)) {
3007 PRINT_ERROR("Runtime error: %s", "Cast failed");
3008 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3280);
3009 show_backtrace(1);
3010 }
3011 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:ANeExpr> */
3012 if (var_n_expr == NULL) {
3013 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3014 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3281);
3015 show_backtrace(1);
3016 } else {
3017 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
3018 if (unlikely(var_n_expr == NULL)) {
3019 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3020 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
3021 show_backtrace(1);
3022 }
3023 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
3024 RET_LABEL1:(void)0;
3025 }
3026 }
3027 if (unlikely(var_n_expr2 == NULL)) {
3028 PRINT_ERROR("Runtime error: %s", "Cast failed");
3029 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3282);
3030 show_backtrace(1);
3031 }
3032 self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:ANeExpr> */
3033 if (var_n_expr2 == NULL) {
3034 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3035 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3283);
3036 show_backtrace(1);
3037 } else {
3038 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
3039 if (unlikely(var_n_expr2 == NULL)) {
3040 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3041 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
3042 show_backtrace(1);
3043 }
3044 var_n_expr2->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
3045 RET_LABEL2:(void)0;
3046 }
3047 }
3048 RET_LABEL:;
3049 }
3050 /* method parser_prod#ANeExpr#init_aneexpr for (self: Object, nullable AExpr, nullable AExpr) */
3051 void VIRTUAL_parser_prod__ANeExpr__init_aneexpr(val* self, val* p0, val* p1) {
3052 parser_prod__ANeExpr__init_aneexpr(self, p0, p1); /* Direct call parser_prod#ANeExpr#init_aneexpr on <self:Object(ANeExpr)>*/
3053 RET_LABEL:;
3054 }
3055 /* method parser_prod#ANeExpr#replace_child for (self: ANeExpr, ANode, nullable ANode) */
3056 void parser_prod__ANeExpr__replace_child(val* self, val* p0, val* p1) {
3057 val* var_old_child /* var old_child: ANode */;
3058 val* var_new_child /* var new_child: nullable ANode */;
3059 val* var /* : AExpr */;
3060 short int var1 /* : Bool */;
3061 short int var2 /* : Bool */;
3062 val* var_other /* var other: nullable Object */;
3063 short int var4 /* : Bool */;
3064 short int var6 /* : Bool */;
3065 short int var7 /* : Bool */;
3066 int cltype;
3067 int idtype;
3068 const char* var_class_name;
3069 val* var8 /* : AExpr */;
3070 short int var9 /* : Bool */;
3071 short int var10 /* : Bool */;
3072 short int var12 /* : Bool */;
3073 short int var14 /* : Bool */;
3074 short int var15 /* : Bool */;
3075 int cltype16;
3076 int idtype17;
3077 const char* var_class_name18;
3078 var_old_child = p0;
3079 var_new_child = p1;
3080 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ANeExpr> */
3081 if (unlikely(var == NULL)) {
3082 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3083 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3288);
3084 show_backtrace(1);
3085 }
3086 {
3087 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
3088 var_other = var_old_child;
3089 {
3090 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
3091 var6 = var == var_other;
3092 var4 = var6;
3093 goto RET_LABEL5;
3094 RET_LABEL5:(void)0;
3095 }
3096 }
3097 var2 = var4;
3098 goto RET_LABEL3;
3099 RET_LABEL3:(void)0;
3100 }
3101 var1 = var2;
3102 }
3103 if (var1){
3104 /* <var_new_child:nullable ANode> isa AExpr */
3105 cltype = type_parser_nodes__AExpr.color;
3106 idtype = type_parser_nodes__AExpr.id;
3107 if(var_new_child == NULL) {
3108 var7 = 0;
3109 } else {
3110 if(cltype >= var_new_child->type->table_size) {
3111 var7 = 0;
3112 } else {
3113 var7 = var_new_child->type->type_table[cltype] == idtype;
3114 }
3115 }
3116 if (unlikely(!var7)) {
3117 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
3118 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
3119 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3289);
3120 show_backtrace(1);
3121 }
3122 {
3123 parser_prod__ANeExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#ANeExpr#n_expr= on <self:ANeExpr>*/
3124 }
3125 goto RET_LABEL;
3126 } else {
3127 }
3128 var8 = self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:ANeExpr> */
3129 if (unlikely(var8 == NULL)) {
3130 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
3131 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3292);
3132 show_backtrace(1);
3133 }
3134 {
3135 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExpr> */
3136 var_other = var_old_child;
3137 {
3138 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExpr> */
3139 var14 = var8 == var_other;
3140 var12 = var14;
3141 goto RET_LABEL13;
3142 RET_LABEL13:(void)0;
3143 }
3144 }
3145 var10 = var12;
3146 goto RET_LABEL11;
3147 RET_LABEL11:(void)0;
3148 }
3149 var9 = var10;
3150 }
3151 if (var9){
3152 /* <var_new_child:nullable ANode> isa AExpr */
3153 cltype16 = type_parser_nodes__AExpr.color;
3154 idtype17 = type_parser_nodes__AExpr.id;
3155 if(var_new_child == NULL) {
3156 var15 = 0;
3157 } else {
3158 if(cltype16 >= var_new_child->type->table_size) {
3159 var15 = 0;
3160 } else {
3161 var15 = var_new_child->type->type_table[cltype16] == idtype17;
3162 }
3163 }
3164 if (unlikely(!var15)) {
3165 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
3166 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name18);
3167 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3293);
3168 show_backtrace(1);
3169 }
3170 {
3171 parser_prod__ANeExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#ANeExpr#n_expr2= on <self:ANeExpr>*/
3172 }
3173 goto RET_LABEL;
3174 } else {
3175 }
3176 RET_LABEL:;
3177 }
3178 /* method parser_prod#ANeExpr#replace_child for (self: Object, ANode, nullable ANode) */
3179 void VIRTUAL_parser_prod__ANeExpr__replace_child(val* self, val* p0, val* p1) {
3180 parser_prod__ANeExpr__replace_child(self, p0, p1); /* Direct call parser_prod#ANeExpr#replace_child on <self:Object(ANeExpr)>*/
3181 RET_LABEL:;
3182 }
3183 /* method parser_prod#ANeExpr#n_expr= for (self: ANeExpr, AExpr) */
3184 void parser_prod__ANeExpr__n_expr_61d(val* self, val* p0) {
3185 val* var_node /* var node: AExpr */;
3186 var_node = p0;
3187 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:ANeExpr> */
3188 {
3189 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
3190 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
3191 RET_LABEL1:(void)0;
3192 }
3193 }
3194 RET_LABEL:;
3195 }
3196 /* method parser_prod#ANeExpr#n_expr= for (self: Object, AExpr) */
3197 void VIRTUAL_parser_prod__ANeExpr__n_expr_61d(val* self, val* p0) {
3198 parser_prod__ANeExpr__n_expr_61d(self, p0); /* Direct call parser_prod#ANeExpr#n_expr= on <self:Object(ANeExpr)>*/
3199 RET_LABEL:;
3200 }
3201 /* method parser_prod#ANeExpr#n_expr2= for (self: ANeExpr, AExpr) */
3202 void parser_prod__ANeExpr__n_expr2_61d(val* self, val* p0) {
3203 val* var_node /* var node: AExpr */;
3204 var_node = p0;
3205 self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val = var_node; /* _n_expr2 on <self:ANeExpr> */
3206 {
3207 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
3208 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
3209 RET_LABEL1:(void)0;
3210 }
3211 }
3212 RET_LABEL:;
3213 }
3214 /* method parser_prod#ANeExpr#n_expr2= for (self: Object, AExpr) */
3215 void VIRTUAL_parser_prod__ANeExpr__n_expr2_61d(val* self, val* p0) {
3216 parser_prod__ANeExpr__n_expr2_61d(self, p0); /* Direct call parser_prod#ANeExpr#n_expr2= on <self:Object(ANeExpr)>*/
3217 RET_LABEL:;
3218 }
3219 /* method parser_prod#ANeExpr#visit_all for (self: ANeExpr, Visitor) */
3220 void parser_prod__ANeExpr__visit_all(val* self, val* p0) {
3221 val* var_v /* var v: Visitor */;
3222 val* var /* : AExpr */;
3223 val* var1 /* : AExpr */;
3224 var_v = p0;
3225 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ANeExpr> */
3226 if (unlikely(var == NULL)) {
3227 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3228 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3312);
3229 show_backtrace(1);
3230 }
3231 {
3232 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3233 }
3234 var1 = self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:ANeExpr> */
3235 if (unlikely(var1 == NULL)) {
3236 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
3237 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3313);
3238 show_backtrace(1);
3239 }
3240 {
3241 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3242 }
3243 RET_LABEL:;
3244 }
3245 /* method parser_prod#ANeExpr#visit_all for (self: Object, Visitor) */
3246 void VIRTUAL_parser_prod__ANeExpr__visit_all(val* self, val* p0) {
3247 parser_prod__ANeExpr__visit_all(self, p0); /* Direct call parser_prod#ANeExpr#visit_all on <self:Object(ANeExpr)>*/
3248 RET_LABEL:;
3249 }
3250 /* method parser_prod#ALtExpr#init_altexpr for (self: ALtExpr, nullable AExpr, nullable AExpr) */
3251 void parser_prod__ALtExpr__init_altexpr(val* self, val* p0, val* p1) {
3252 val* var_n_expr /* var n_expr: nullable AExpr */;
3253 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
3254 var_n_expr = p0;
3255 var_n_expr2 = p1;
3256 if (unlikely(var_n_expr == NULL)) {
3257 PRINT_ERROR("Runtime error: %s", "Cast failed");
3258 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3322);
3259 show_backtrace(1);
3260 }
3261 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:ALtExpr> */
3262 if (var_n_expr == NULL) {
3263 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3264 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3323);
3265 show_backtrace(1);
3266 } else {
3267 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
3268 if (unlikely(var_n_expr == NULL)) {
3269 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3270 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
3271 show_backtrace(1);
3272 }
3273 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
3274 RET_LABEL1:(void)0;
3275 }
3276 }
3277 if (unlikely(var_n_expr2 == NULL)) {
3278 PRINT_ERROR("Runtime error: %s", "Cast failed");
3279 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3324);
3280 show_backtrace(1);
3281 }
3282 self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:ALtExpr> */
3283 if (var_n_expr2 == NULL) {
3284 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3285 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3325);
3286 show_backtrace(1);
3287 } else {
3288 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
3289 if (unlikely(var_n_expr2 == NULL)) {
3290 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3291 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
3292 show_backtrace(1);
3293 }
3294 var_n_expr2->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
3295 RET_LABEL2:(void)0;
3296 }
3297 }
3298 RET_LABEL:;
3299 }
3300 /* method parser_prod#ALtExpr#init_altexpr for (self: Object, nullable AExpr, nullable AExpr) */
3301 void VIRTUAL_parser_prod__ALtExpr__init_altexpr(val* self, val* p0, val* p1) {
3302 parser_prod__ALtExpr__init_altexpr(self, p0, p1); /* Direct call parser_prod#ALtExpr#init_altexpr on <self:Object(ALtExpr)>*/
3303 RET_LABEL:;
3304 }
3305 /* method parser_prod#ALtExpr#replace_child for (self: ALtExpr, ANode, nullable ANode) */
3306 void parser_prod__ALtExpr__replace_child(val* self, val* p0, val* p1) {
3307 val* var_old_child /* var old_child: ANode */;
3308 val* var_new_child /* var new_child: nullable ANode */;
3309 val* var /* : AExpr */;
3310 short int var1 /* : Bool */;
3311 short int var2 /* : Bool */;
3312 val* var_other /* var other: nullable Object */;
3313 short int var4 /* : Bool */;
3314 short int var6 /* : Bool */;
3315 short int var7 /* : Bool */;
3316 int cltype;
3317 int idtype;
3318 const char* var_class_name;
3319 val* var8 /* : AExpr */;
3320 short int var9 /* : Bool */;
3321 short int var10 /* : Bool */;
3322 short int var12 /* : Bool */;
3323 short int var14 /* : Bool */;
3324 short int var15 /* : Bool */;
3325 int cltype16;
3326 int idtype17;
3327 const char* var_class_name18;
3328 var_old_child = p0;
3329 var_new_child = p1;
3330 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ALtExpr> */
3331 if (unlikely(var == NULL)) {
3332 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3333 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3330);
3334 show_backtrace(1);
3335 }
3336 {
3337 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
3338 var_other = var_old_child;
3339 {
3340 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
3341 var6 = var == var_other;
3342 var4 = var6;
3343 goto RET_LABEL5;
3344 RET_LABEL5:(void)0;
3345 }
3346 }
3347 var2 = var4;
3348 goto RET_LABEL3;
3349 RET_LABEL3:(void)0;
3350 }
3351 var1 = var2;
3352 }
3353 if (var1){
3354 /* <var_new_child:nullable ANode> isa AExpr */
3355 cltype = type_parser_nodes__AExpr.color;
3356 idtype = type_parser_nodes__AExpr.id;
3357 if(var_new_child == NULL) {
3358 var7 = 0;
3359 } else {
3360 if(cltype >= var_new_child->type->table_size) {
3361 var7 = 0;
3362 } else {
3363 var7 = var_new_child->type->type_table[cltype] == idtype;
3364 }
3365 }
3366 if (unlikely(!var7)) {
3367 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
3368 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
3369 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3331);
3370 show_backtrace(1);
3371 }
3372 {
3373 parser_prod__ALtExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#ALtExpr#n_expr= on <self:ALtExpr>*/
3374 }
3375 goto RET_LABEL;
3376 } else {
3377 }
3378 var8 = self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:ALtExpr> */
3379 if (unlikely(var8 == NULL)) {
3380 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
3381 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3334);
3382 show_backtrace(1);
3383 }
3384 {
3385 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExpr> */
3386 var_other = var_old_child;
3387 {
3388 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExpr> */
3389 var14 = var8 == var_other;
3390 var12 = var14;
3391 goto RET_LABEL13;
3392 RET_LABEL13:(void)0;
3393 }
3394 }
3395 var10 = var12;
3396 goto RET_LABEL11;
3397 RET_LABEL11:(void)0;
3398 }
3399 var9 = var10;
3400 }
3401 if (var9){
3402 /* <var_new_child:nullable ANode> isa AExpr */
3403 cltype16 = type_parser_nodes__AExpr.color;
3404 idtype17 = type_parser_nodes__AExpr.id;
3405 if(var_new_child == NULL) {
3406 var15 = 0;
3407 } else {
3408 if(cltype16 >= var_new_child->type->table_size) {
3409 var15 = 0;
3410 } else {
3411 var15 = var_new_child->type->type_table[cltype16] == idtype17;
3412 }
3413 }
3414 if (unlikely(!var15)) {
3415 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
3416 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name18);
3417 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3335);
3418 show_backtrace(1);
3419 }
3420 {
3421 parser_prod__ALtExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#ALtExpr#n_expr2= on <self:ALtExpr>*/
3422 }
3423 goto RET_LABEL;
3424 } else {
3425 }
3426 RET_LABEL:;
3427 }
3428 /* method parser_prod#ALtExpr#replace_child for (self: Object, ANode, nullable ANode) */
3429 void VIRTUAL_parser_prod__ALtExpr__replace_child(val* self, val* p0, val* p1) {
3430 parser_prod__ALtExpr__replace_child(self, p0, p1); /* Direct call parser_prod#ALtExpr#replace_child on <self:Object(ALtExpr)>*/
3431 RET_LABEL:;
3432 }
3433 /* method parser_prod#ALtExpr#n_expr= for (self: ALtExpr, AExpr) */
3434 void parser_prod__ALtExpr__n_expr_61d(val* self, val* p0) {
3435 val* var_node /* var node: AExpr */;
3436 var_node = p0;
3437 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:ALtExpr> */
3438 {
3439 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
3440 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
3441 RET_LABEL1:(void)0;
3442 }
3443 }
3444 RET_LABEL:;
3445 }
3446 /* method parser_prod#ALtExpr#n_expr= for (self: Object, AExpr) */
3447 void VIRTUAL_parser_prod__ALtExpr__n_expr_61d(val* self, val* p0) {
3448 parser_prod__ALtExpr__n_expr_61d(self, p0); /* Direct call parser_prod#ALtExpr#n_expr= on <self:Object(ALtExpr)>*/
3449 RET_LABEL:;
3450 }
3451 /* method parser_prod#ALtExpr#n_expr2= for (self: ALtExpr, AExpr) */
3452 void parser_prod__ALtExpr__n_expr2_61d(val* self, val* p0) {
3453 val* var_node /* var node: AExpr */;
3454 var_node = p0;
3455 self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val = var_node; /* _n_expr2 on <self:ALtExpr> */
3456 {
3457 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
3458 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
3459 RET_LABEL1:(void)0;
3460 }
3461 }
3462 RET_LABEL:;
3463 }
3464 /* method parser_prod#ALtExpr#n_expr2= for (self: Object, AExpr) */
3465 void VIRTUAL_parser_prod__ALtExpr__n_expr2_61d(val* self, val* p0) {
3466 parser_prod__ALtExpr__n_expr2_61d(self, p0); /* Direct call parser_prod#ALtExpr#n_expr2= on <self:Object(ALtExpr)>*/
3467 RET_LABEL:;
3468 }
3469 /* method parser_prod#ALtExpr#visit_all for (self: ALtExpr, Visitor) */
3470 void parser_prod__ALtExpr__visit_all(val* self, val* p0) {
3471 val* var_v /* var v: Visitor */;
3472 val* var /* : AExpr */;
3473 val* var1 /* : AExpr */;
3474 var_v = p0;
3475 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ALtExpr> */
3476 if (unlikely(var == NULL)) {
3477 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3478 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3354);
3479 show_backtrace(1);
3480 }
3481 {
3482 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3483 }
3484 var1 = self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:ALtExpr> */
3485 if (unlikely(var1 == NULL)) {
3486 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
3487 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3355);
3488 show_backtrace(1);
3489 }
3490 {
3491 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3492 }
3493 RET_LABEL:;
3494 }
3495 /* method parser_prod#ALtExpr#visit_all for (self: Object, Visitor) */
3496 void VIRTUAL_parser_prod__ALtExpr__visit_all(val* self, val* p0) {
3497 parser_prod__ALtExpr__visit_all(self, p0); /* Direct call parser_prod#ALtExpr#visit_all on <self:Object(ALtExpr)>*/
3498 RET_LABEL:;
3499 }
3500 /* method parser_prod#ALeExpr#init_aleexpr for (self: ALeExpr, nullable AExpr, nullable AExpr) */
3501 void parser_prod__ALeExpr__init_aleexpr(val* self, val* p0, val* p1) {
3502 val* var_n_expr /* var n_expr: nullable AExpr */;
3503 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
3504 var_n_expr = p0;
3505 var_n_expr2 = p1;
3506 if (unlikely(var_n_expr == NULL)) {
3507 PRINT_ERROR("Runtime error: %s", "Cast failed");
3508 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3364);
3509 show_backtrace(1);
3510 }
3511 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:ALeExpr> */
3512 if (var_n_expr == NULL) {
3513 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3514 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3365);
3515 show_backtrace(1);
3516 } else {
3517 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
3518 if (unlikely(var_n_expr == NULL)) {
3519 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3520 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
3521 show_backtrace(1);
3522 }
3523 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
3524 RET_LABEL1:(void)0;
3525 }
3526 }
3527 if (unlikely(var_n_expr2 == NULL)) {
3528 PRINT_ERROR("Runtime error: %s", "Cast failed");
3529 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3366);
3530 show_backtrace(1);
3531 }
3532 self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:ALeExpr> */
3533 if (var_n_expr2 == NULL) {
3534 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3535 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3367);
3536 show_backtrace(1);
3537 } else {
3538 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
3539 if (unlikely(var_n_expr2 == NULL)) {
3540 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3541 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
3542 show_backtrace(1);
3543 }
3544 var_n_expr2->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
3545 RET_LABEL2:(void)0;
3546 }
3547 }
3548 RET_LABEL:;
3549 }
3550 /* method parser_prod#ALeExpr#init_aleexpr for (self: Object, nullable AExpr, nullable AExpr) */
3551 void VIRTUAL_parser_prod__ALeExpr__init_aleexpr(val* self, val* p0, val* p1) {
3552 parser_prod__ALeExpr__init_aleexpr(self, p0, p1); /* Direct call parser_prod#ALeExpr#init_aleexpr on <self:Object(ALeExpr)>*/
3553 RET_LABEL:;
3554 }
3555 /* method parser_prod#ALeExpr#replace_child for (self: ALeExpr, ANode, nullable ANode) */
3556 void parser_prod__ALeExpr__replace_child(val* self, val* p0, val* p1) {
3557 val* var_old_child /* var old_child: ANode */;
3558 val* var_new_child /* var new_child: nullable ANode */;
3559 val* var /* : AExpr */;
3560 short int var1 /* : Bool */;
3561 short int var2 /* : Bool */;
3562 val* var_other /* var other: nullable Object */;
3563 short int var4 /* : Bool */;
3564 short int var6 /* : Bool */;
3565 short int var7 /* : Bool */;
3566 int cltype;
3567 int idtype;
3568 const char* var_class_name;
3569 val* var8 /* : AExpr */;
3570 short int var9 /* : Bool */;
3571 short int var10 /* : Bool */;
3572 short int var12 /* : Bool */;
3573 short int var14 /* : Bool */;
3574 short int var15 /* : Bool */;
3575 int cltype16;
3576 int idtype17;
3577 const char* var_class_name18;
3578 var_old_child = p0;
3579 var_new_child = p1;
3580 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ALeExpr> */
3581 if (unlikely(var == NULL)) {
3582 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3583 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3372);
3584 show_backtrace(1);
3585 }
3586 {
3587 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
3588 var_other = var_old_child;
3589 {
3590 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
3591 var6 = var == var_other;
3592 var4 = var6;
3593 goto RET_LABEL5;
3594 RET_LABEL5:(void)0;
3595 }
3596 }
3597 var2 = var4;
3598 goto RET_LABEL3;
3599 RET_LABEL3:(void)0;
3600 }
3601 var1 = var2;
3602 }
3603 if (var1){
3604 /* <var_new_child:nullable ANode> isa AExpr */
3605 cltype = type_parser_nodes__AExpr.color;
3606 idtype = type_parser_nodes__AExpr.id;
3607 if(var_new_child == NULL) {
3608 var7 = 0;
3609 } else {
3610 if(cltype >= var_new_child->type->table_size) {
3611 var7 = 0;
3612 } else {
3613 var7 = var_new_child->type->type_table[cltype] == idtype;
3614 }
3615 }
3616 if (unlikely(!var7)) {
3617 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
3618 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
3619 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3373);
3620 show_backtrace(1);
3621 }
3622 {
3623 parser_prod__ALeExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#ALeExpr#n_expr= on <self:ALeExpr>*/
3624 }
3625 goto RET_LABEL;
3626 } else {
3627 }
3628 var8 = self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:ALeExpr> */
3629 if (unlikely(var8 == NULL)) {
3630 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
3631 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3376);
3632 show_backtrace(1);
3633 }
3634 {
3635 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExpr> */
3636 var_other = var_old_child;
3637 {
3638 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExpr> */
3639 var14 = var8 == var_other;
3640 var12 = var14;
3641 goto RET_LABEL13;
3642 RET_LABEL13:(void)0;
3643 }
3644 }
3645 var10 = var12;
3646 goto RET_LABEL11;
3647 RET_LABEL11:(void)0;
3648 }
3649 var9 = var10;
3650 }
3651 if (var9){
3652 /* <var_new_child:nullable ANode> isa AExpr */
3653 cltype16 = type_parser_nodes__AExpr.color;
3654 idtype17 = type_parser_nodes__AExpr.id;
3655 if(var_new_child == NULL) {
3656 var15 = 0;
3657 } else {
3658 if(cltype16 >= var_new_child->type->table_size) {
3659 var15 = 0;
3660 } else {
3661 var15 = var_new_child->type->type_table[cltype16] == idtype17;
3662 }
3663 }
3664 if (unlikely(!var15)) {
3665 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
3666 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name18);
3667 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3377);
3668 show_backtrace(1);
3669 }
3670 {
3671 parser_prod__ALeExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#ALeExpr#n_expr2= on <self:ALeExpr>*/
3672 }
3673 goto RET_LABEL;
3674 } else {
3675 }
3676 RET_LABEL:;
3677 }
3678 /* method parser_prod#ALeExpr#replace_child for (self: Object, ANode, nullable ANode) */
3679 void VIRTUAL_parser_prod__ALeExpr__replace_child(val* self, val* p0, val* p1) {
3680 parser_prod__ALeExpr__replace_child(self, p0, p1); /* Direct call parser_prod#ALeExpr#replace_child on <self:Object(ALeExpr)>*/
3681 RET_LABEL:;
3682 }
3683 /* method parser_prod#ALeExpr#n_expr= for (self: ALeExpr, AExpr) */
3684 void parser_prod__ALeExpr__n_expr_61d(val* self, val* p0) {
3685 val* var_node /* var node: AExpr */;
3686 var_node = p0;
3687 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:ALeExpr> */
3688 {
3689 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
3690 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
3691 RET_LABEL1:(void)0;
3692 }
3693 }
3694 RET_LABEL:;
3695 }
3696 /* method parser_prod#ALeExpr#n_expr= for (self: Object, AExpr) */
3697 void VIRTUAL_parser_prod__ALeExpr__n_expr_61d(val* self, val* p0) {
3698 parser_prod__ALeExpr__n_expr_61d(self, p0); /* Direct call parser_prod#ALeExpr#n_expr= on <self:Object(ALeExpr)>*/
3699 RET_LABEL:;
3700 }
3701 /* method parser_prod#ALeExpr#n_expr2= for (self: ALeExpr, AExpr) */
3702 void parser_prod__ALeExpr__n_expr2_61d(val* self, val* p0) {
3703 val* var_node /* var node: AExpr */;
3704 var_node = p0;
3705 self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val = var_node; /* _n_expr2 on <self:ALeExpr> */
3706 {
3707 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
3708 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
3709 RET_LABEL1:(void)0;
3710 }
3711 }
3712 RET_LABEL:;
3713 }
3714 /* method parser_prod#ALeExpr#n_expr2= for (self: Object, AExpr) */
3715 void VIRTUAL_parser_prod__ALeExpr__n_expr2_61d(val* self, val* p0) {
3716 parser_prod__ALeExpr__n_expr2_61d(self, p0); /* Direct call parser_prod#ALeExpr#n_expr2= on <self:Object(ALeExpr)>*/
3717 RET_LABEL:;
3718 }
3719 /* method parser_prod#ALeExpr#visit_all for (self: ALeExpr, Visitor) */
3720 void parser_prod__ALeExpr__visit_all(val* self, val* p0) {
3721 val* var_v /* var v: Visitor */;
3722 val* var /* : AExpr */;
3723 val* var1 /* : AExpr */;
3724 var_v = p0;
3725 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ALeExpr> */
3726 if (unlikely(var == NULL)) {
3727 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3728 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3396);
3729 show_backtrace(1);
3730 }
3731 {
3732 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3733 }
3734 var1 = self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:ALeExpr> */
3735 if (unlikely(var1 == NULL)) {
3736 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
3737 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3397);
3738 show_backtrace(1);
3739 }
3740 {
3741 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3742 }
3743 RET_LABEL:;
3744 }
3745 /* method parser_prod#ALeExpr#visit_all for (self: Object, Visitor) */
3746 void VIRTUAL_parser_prod__ALeExpr__visit_all(val* self, val* p0) {
3747 parser_prod__ALeExpr__visit_all(self, p0); /* Direct call parser_prod#ALeExpr#visit_all on <self:Object(ALeExpr)>*/
3748 RET_LABEL:;
3749 }
3750 /* method parser_prod#ALlExpr#init_allexpr for (self: ALlExpr, nullable AExpr, nullable AExpr) */
3751 void parser_prod__ALlExpr__init_allexpr(val* self, val* p0, val* p1) {
3752 val* var_n_expr /* var n_expr: nullable AExpr */;
3753 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
3754 var_n_expr = p0;
3755 var_n_expr2 = p1;
3756 if (unlikely(var_n_expr == NULL)) {
3757 PRINT_ERROR("Runtime error: %s", "Cast failed");
3758 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3406);
3759 show_backtrace(1);
3760 }
3761 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:ALlExpr> */
3762 if (var_n_expr == NULL) {
3763 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3764 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3407);
3765 show_backtrace(1);
3766 } else {
3767 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
3768 if (unlikely(var_n_expr == NULL)) {
3769 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3770 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
3771 show_backtrace(1);
3772 }
3773 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
3774 RET_LABEL1:(void)0;
3775 }
3776 }
3777 if (unlikely(var_n_expr2 == NULL)) {
3778 PRINT_ERROR("Runtime error: %s", "Cast failed");
3779 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3408);
3780 show_backtrace(1);
3781 }
3782 self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:ALlExpr> */
3783 if (var_n_expr2 == NULL) {
3784 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3785 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3409);
3786 show_backtrace(1);
3787 } else {
3788 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
3789 if (unlikely(var_n_expr2 == NULL)) {
3790 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3791 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
3792 show_backtrace(1);
3793 }
3794 var_n_expr2->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
3795 RET_LABEL2:(void)0;
3796 }
3797 }
3798 RET_LABEL:;
3799 }
3800 /* method parser_prod#ALlExpr#init_allexpr for (self: Object, nullable AExpr, nullable AExpr) */
3801 void VIRTUAL_parser_prod__ALlExpr__init_allexpr(val* self, val* p0, val* p1) {
3802 parser_prod__ALlExpr__init_allexpr(self, p0, p1); /* Direct call parser_prod#ALlExpr#init_allexpr on <self:Object(ALlExpr)>*/
3803 RET_LABEL:;
3804 }
3805 /* method parser_prod#ALlExpr#replace_child for (self: ALlExpr, ANode, nullable ANode) */
3806 void parser_prod__ALlExpr__replace_child(val* self, val* p0, val* p1) {
3807 val* var_old_child /* var old_child: ANode */;
3808 val* var_new_child /* var new_child: nullable ANode */;
3809 val* var /* : AExpr */;
3810 short int var1 /* : Bool */;
3811 short int var2 /* : Bool */;
3812 val* var_other /* var other: nullable Object */;
3813 short int var4 /* : Bool */;
3814 short int var6 /* : Bool */;
3815 short int var7 /* : Bool */;
3816 int cltype;
3817 int idtype;
3818 const char* var_class_name;
3819 val* var8 /* : AExpr */;
3820 short int var9 /* : Bool */;
3821 short int var10 /* : Bool */;
3822 short int var12 /* : Bool */;
3823 short int var14 /* : Bool */;
3824 short int var15 /* : Bool */;
3825 int cltype16;
3826 int idtype17;
3827 const char* var_class_name18;
3828 var_old_child = p0;
3829 var_new_child = p1;
3830 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ALlExpr> */
3831 if (unlikely(var == NULL)) {
3832 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3833 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3414);
3834 show_backtrace(1);
3835 }
3836 {
3837 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
3838 var_other = var_old_child;
3839 {
3840 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
3841 var6 = var == var_other;
3842 var4 = var6;
3843 goto RET_LABEL5;
3844 RET_LABEL5:(void)0;
3845 }
3846 }
3847 var2 = var4;
3848 goto RET_LABEL3;
3849 RET_LABEL3:(void)0;
3850 }
3851 var1 = var2;
3852 }
3853 if (var1){
3854 /* <var_new_child:nullable ANode> isa AExpr */
3855 cltype = type_parser_nodes__AExpr.color;
3856 idtype = type_parser_nodes__AExpr.id;
3857 if(var_new_child == NULL) {
3858 var7 = 0;
3859 } else {
3860 if(cltype >= var_new_child->type->table_size) {
3861 var7 = 0;
3862 } else {
3863 var7 = var_new_child->type->type_table[cltype] == idtype;
3864 }
3865 }
3866 if (unlikely(!var7)) {
3867 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
3868 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
3869 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3415);
3870 show_backtrace(1);
3871 }
3872 {
3873 parser_prod__ALlExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#ALlExpr#n_expr= on <self:ALlExpr>*/
3874 }
3875 goto RET_LABEL;
3876 } else {
3877 }
3878 var8 = self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:ALlExpr> */
3879 if (unlikely(var8 == NULL)) {
3880 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
3881 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3418);
3882 show_backtrace(1);
3883 }
3884 {
3885 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExpr> */
3886 var_other = var_old_child;
3887 {
3888 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExpr> */
3889 var14 = var8 == var_other;
3890 var12 = var14;
3891 goto RET_LABEL13;
3892 RET_LABEL13:(void)0;
3893 }
3894 }
3895 var10 = var12;
3896 goto RET_LABEL11;
3897 RET_LABEL11:(void)0;
3898 }
3899 var9 = var10;
3900 }
3901 if (var9){
3902 /* <var_new_child:nullable ANode> isa AExpr */
3903 cltype16 = type_parser_nodes__AExpr.color;
3904 idtype17 = type_parser_nodes__AExpr.id;
3905 if(var_new_child == NULL) {
3906 var15 = 0;
3907 } else {
3908 if(cltype16 >= var_new_child->type->table_size) {
3909 var15 = 0;
3910 } else {
3911 var15 = var_new_child->type->type_table[cltype16] == idtype17;
3912 }
3913 }
3914 if (unlikely(!var15)) {
3915 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
3916 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name18);
3917 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3419);
3918 show_backtrace(1);
3919 }
3920 {
3921 parser_prod__ALlExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#ALlExpr#n_expr2= on <self:ALlExpr>*/
3922 }
3923 goto RET_LABEL;
3924 } else {
3925 }
3926 RET_LABEL:;
3927 }
3928 /* method parser_prod#ALlExpr#replace_child for (self: Object, ANode, nullable ANode) */
3929 void VIRTUAL_parser_prod__ALlExpr__replace_child(val* self, val* p0, val* p1) {
3930 parser_prod__ALlExpr__replace_child(self, p0, p1); /* Direct call parser_prod#ALlExpr#replace_child on <self:Object(ALlExpr)>*/
3931 RET_LABEL:;
3932 }
3933 /* method parser_prod#ALlExpr#n_expr= for (self: ALlExpr, AExpr) */
3934 void parser_prod__ALlExpr__n_expr_61d(val* self, val* p0) {
3935 val* var_node /* var node: AExpr */;
3936 var_node = p0;
3937 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:ALlExpr> */
3938 {
3939 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
3940 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
3941 RET_LABEL1:(void)0;
3942 }
3943 }
3944 RET_LABEL:;
3945 }
3946 /* method parser_prod#ALlExpr#n_expr= for (self: Object, AExpr) */
3947 void VIRTUAL_parser_prod__ALlExpr__n_expr_61d(val* self, val* p0) {
3948 parser_prod__ALlExpr__n_expr_61d(self, p0); /* Direct call parser_prod#ALlExpr#n_expr= on <self:Object(ALlExpr)>*/
3949 RET_LABEL:;
3950 }
3951 /* method parser_prod#ALlExpr#n_expr2= for (self: ALlExpr, AExpr) */
3952 void parser_prod__ALlExpr__n_expr2_61d(val* self, val* p0) {
3953 val* var_node /* var node: AExpr */;
3954 var_node = p0;
3955 self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val = var_node; /* _n_expr2 on <self:ALlExpr> */
3956 {
3957 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
3958 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
3959 RET_LABEL1:(void)0;
3960 }
3961 }
3962 RET_LABEL:;
3963 }
3964 /* method parser_prod#ALlExpr#n_expr2= for (self: Object, AExpr) */
3965 void VIRTUAL_parser_prod__ALlExpr__n_expr2_61d(val* self, val* p0) {
3966 parser_prod__ALlExpr__n_expr2_61d(self, p0); /* Direct call parser_prod#ALlExpr#n_expr2= on <self:Object(ALlExpr)>*/
3967 RET_LABEL:;
3968 }
3969 /* method parser_prod#ALlExpr#visit_all for (self: ALlExpr, Visitor) */
3970 void parser_prod__ALlExpr__visit_all(val* self, val* p0) {
3971 val* var_v /* var v: Visitor */;
3972 val* var /* : AExpr */;
3973 val* var1 /* : AExpr */;
3974 var_v = p0;
3975 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ALlExpr> */
3976 if (unlikely(var == NULL)) {
3977 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3978 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3438);
3979 show_backtrace(1);
3980 }
3981 {
3982 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3983 }
3984 var1 = self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:ALlExpr> */
3985 if (unlikely(var1 == NULL)) {
3986 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
3987 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3439);
3988 show_backtrace(1);
3989 }
3990 {
3991 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3992 }
3993 RET_LABEL:;
3994 }
3995 /* method parser_prod#ALlExpr#visit_all for (self: Object, Visitor) */
3996 void VIRTUAL_parser_prod__ALlExpr__visit_all(val* self, val* p0) {
3997 parser_prod__ALlExpr__visit_all(self, p0); /* Direct call parser_prod#ALlExpr#visit_all on <self:Object(ALlExpr)>*/
3998 RET_LABEL:;
3999 }
4000 /* method parser_prod#AGtExpr#init_agtexpr for (self: AGtExpr, nullable AExpr, nullable AExpr) */
4001 void parser_prod__AGtExpr__init_agtexpr(val* self, val* p0, val* p1) {
4002 val* var_n_expr /* var n_expr: nullable AExpr */;
4003 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
4004 var_n_expr = p0;
4005 var_n_expr2 = p1;
4006 if (unlikely(var_n_expr == NULL)) {
4007 PRINT_ERROR("Runtime error: %s", "Cast failed");
4008 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3448);
4009 show_backtrace(1);
4010 }
4011 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AGtExpr> */
4012 if (var_n_expr == NULL) {
4013 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4014 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3449);
4015 show_backtrace(1);
4016 } else {
4017 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
4018 if (unlikely(var_n_expr == NULL)) {
4019 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4020 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
4021 show_backtrace(1);
4022 }
4023 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
4024 RET_LABEL1:(void)0;
4025 }
4026 }
4027 if (unlikely(var_n_expr2 == NULL)) {
4028 PRINT_ERROR("Runtime error: %s", "Cast failed");
4029 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3450);
4030 show_backtrace(1);
4031 }
4032 self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:AGtExpr> */
4033 if (var_n_expr2 == NULL) {
4034 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4035 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3451);
4036 show_backtrace(1);
4037 } else {
4038 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
4039 if (unlikely(var_n_expr2 == NULL)) {
4040 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4041 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
4042 show_backtrace(1);
4043 }
4044 var_n_expr2->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
4045 RET_LABEL2:(void)0;
4046 }
4047 }
4048 RET_LABEL:;
4049 }
4050 /* method parser_prod#AGtExpr#init_agtexpr for (self: Object, nullable AExpr, nullable AExpr) */
4051 void VIRTUAL_parser_prod__AGtExpr__init_agtexpr(val* self, val* p0, val* p1) {
4052 parser_prod__AGtExpr__init_agtexpr(self, p0, p1); /* Direct call parser_prod#AGtExpr#init_agtexpr on <self:Object(AGtExpr)>*/
4053 RET_LABEL:;
4054 }
4055 /* method parser_prod#AGtExpr#replace_child for (self: AGtExpr, ANode, nullable ANode) */
4056 void parser_prod__AGtExpr__replace_child(val* self, val* p0, val* p1) {
4057 val* var_old_child /* var old_child: ANode */;
4058 val* var_new_child /* var new_child: nullable ANode */;
4059 val* var /* : AExpr */;
4060 short int var1 /* : Bool */;
4061 short int var2 /* : Bool */;
4062 val* var_other /* var other: nullable Object */;
4063 short int var4 /* : Bool */;
4064 short int var6 /* : Bool */;
4065 short int var7 /* : Bool */;
4066 int cltype;
4067 int idtype;
4068 const char* var_class_name;
4069 val* var8 /* : AExpr */;
4070 short int var9 /* : Bool */;
4071 short int var10 /* : Bool */;
4072 short int var12 /* : Bool */;
4073 short int var14 /* : Bool */;
4074 short int var15 /* : Bool */;
4075 int cltype16;
4076 int idtype17;
4077 const char* var_class_name18;
4078 var_old_child = p0;
4079 var_new_child = p1;
4080 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AGtExpr> */
4081 if (unlikely(var == NULL)) {
4082 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
4083 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3456);
4084 show_backtrace(1);
4085 }
4086 {
4087 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
4088 var_other = var_old_child;
4089 {
4090 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
4091 var6 = var == var_other;
4092 var4 = var6;
4093 goto RET_LABEL5;
4094 RET_LABEL5:(void)0;
4095 }
4096 }
4097 var2 = var4;
4098 goto RET_LABEL3;
4099 RET_LABEL3:(void)0;
4100 }
4101 var1 = var2;
4102 }
4103 if (var1){
4104 /* <var_new_child:nullable ANode> isa AExpr */
4105 cltype = type_parser_nodes__AExpr.color;
4106 idtype = type_parser_nodes__AExpr.id;
4107 if(var_new_child == NULL) {
4108 var7 = 0;
4109 } else {
4110 if(cltype >= var_new_child->type->table_size) {
4111 var7 = 0;
4112 } else {
4113 var7 = var_new_child->type->type_table[cltype] == idtype;
4114 }
4115 }
4116 if (unlikely(!var7)) {
4117 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
4118 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
4119 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3457);
4120 show_backtrace(1);
4121 }
4122 {
4123 parser_prod__AGtExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AGtExpr#n_expr= on <self:AGtExpr>*/
4124 }
4125 goto RET_LABEL;
4126 } else {
4127 }
4128 var8 = self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AGtExpr> */
4129 if (unlikely(var8 == NULL)) {
4130 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
4131 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3460);
4132 show_backtrace(1);
4133 }
4134 {
4135 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExpr> */
4136 var_other = var_old_child;
4137 {
4138 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExpr> */
4139 var14 = var8 == var_other;
4140 var12 = var14;
4141 goto RET_LABEL13;
4142 RET_LABEL13:(void)0;
4143 }
4144 }
4145 var10 = var12;
4146 goto RET_LABEL11;
4147 RET_LABEL11:(void)0;
4148 }
4149 var9 = var10;
4150 }
4151 if (var9){
4152 /* <var_new_child:nullable ANode> isa AExpr */
4153 cltype16 = type_parser_nodes__AExpr.color;
4154 idtype17 = type_parser_nodes__AExpr.id;
4155 if(var_new_child == NULL) {
4156 var15 = 0;
4157 } else {
4158 if(cltype16 >= var_new_child->type->table_size) {
4159 var15 = 0;
4160 } else {
4161 var15 = var_new_child->type->type_table[cltype16] == idtype17;
4162 }
4163 }
4164 if (unlikely(!var15)) {
4165 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
4166 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name18);
4167 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3461);
4168 show_backtrace(1);
4169 }
4170 {
4171 parser_prod__AGtExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#AGtExpr#n_expr2= on <self:AGtExpr>*/
4172 }
4173 goto RET_LABEL;
4174 } else {
4175 }
4176 RET_LABEL:;
4177 }
4178 /* method parser_prod#AGtExpr#replace_child for (self: Object, ANode, nullable ANode) */
4179 void VIRTUAL_parser_prod__AGtExpr__replace_child(val* self, val* p0, val* p1) {
4180 parser_prod__AGtExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AGtExpr#replace_child on <self:Object(AGtExpr)>*/
4181 RET_LABEL:;
4182 }
4183 /* method parser_prod#AGtExpr#n_expr= for (self: AGtExpr, AExpr) */
4184 void parser_prod__AGtExpr__n_expr_61d(val* self, val* p0) {
4185 val* var_node /* var node: AExpr */;
4186 var_node = p0;
4187 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:AGtExpr> */
4188 {
4189 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
4190 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
4191 RET_LABEL1:(void)0;
4192 }
4193 }
4194 RET_LABEL:;
4195 }
4196 /* method parser_prod#AGtExpr#n_expr= for (self: Object, AExpr) */
4197 void VIRTUAL_parser_prod__AGtExpr__n_expr_61d(val* self, val* p0) {
4198 parser_prod__AGtExpr__n_expr_61d(self, p0); /* Direct call parser_prod#AGtExpr#n_expr= on <self:Object(AGtExpr)>*/
4199 RET_LABEL:;
4200 }
4201 /* method parser_prod#AGtExpr#n_expr2= for (self: AGtExpr, AExpr) */
4202 void parser_prod__AGtExpr__n_expr2_61d(val* self, val* p0) {
4203 val* var_node /* var node: AExpr */;
4204 var_node = p0;
4205 self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val = var_node; /* _n_expr2 on <self:AGtExpr> */
4206 {
4207 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
4208 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
4209 RET_LABEL1:(void)0;
4210 }
4211 }
4212 RET_LABEL:;
4213 }
4214 /* method parser_prod#AGtExpr#n_expr2= for (self: Object, AExpr) */
4215 void VIRTUAL_parser_prod__AGtExpr__n_expr2_61d(val* self, val* p0) {
4216 parser_prod__AGtExpr__n_expr2_61d(self, p0); /* Direct call parser_prod#AGtExpr#n_expr2= on <self:Object(AGtExpr)>*/
4217 RET_LABEL:;
4218 }
4219 /* method parser_prod#AGtExpr#visit_all for (self: AGtExpr, Visitor) */
4220 void parser_prod__AGtExpr__visit_all(val* self, val* p0) {
4221 val* var_v /* var v: Visitor */;
4222 val* var /* : AExpr */;
4223 val* var1 /* : AExpr */;
4224 var_v = p0;
4225 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AGtExpr> */
4226 if (unlikely(var == NULL)) {
4227 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
4228 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3480);
4229 show_backtrace(1);
4230 }
4231 {
4232 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4233 }
4234 var1 = self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AGtExpr> */
4235 if (unlikely(var1 == NULL)) {
4236 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
4237 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3481);
4238 show_backtrace(1);
4239 }
4240 {
4241 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4242 }
4243 RET_LABEL:;
4244 }
4245 /* method parser_prod#AGtExpr#visit_all for (self: Object, Visitor) */
4246 void VIRTUAL_parser_prod__AGtExpr__visit_all(val* self, val* p0) {
4247 parser_prod__AGtExpr__visit_all(self, p0); /* Direct call parser_prod#AGtExpr#visit_all on <self:Object(AGtExpr)>*/
4248 RET_LABEL:;
4249 }
4250 /* method parser_prod#AGeExpr#init_ageexpr for (self: AGeExpr, nullable AExpr, nullable AExpr) */
4251 void parser_prod__AGeExpr__init_ageexpr(val* self, val* p0, val* p1) {
4252 val* var_n_expr /* var n_expr: nullable AExpr */;
4253 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
4254 var_n_expr = p0;
4255 var_n_expr2 = p1;
4256 if (unlikely(var_n_expr == NULL)) {
4257 PRINT_ERROR("Runtime error: %s", "Cast failed");
4258 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3490);
4259 show_backtrace(1);
4260 }
4261 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AGeExpr> */
4262 if (var_n_expr == NULL) {
4263 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4264 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3491);
4265 show_backtrace(1);
4266 } else {
4267 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
4268 if (unlikely(var_n_expr == NULL)) {
4269 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4270 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
4271 show_backtrace(1);
4272 }
4273 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
4274 RET_LABEL1:(void)0;
4275 }
4276 }
4277 if (unlikely(var_n_expr2 == NULL)) {
4278 PRINT_ERROR("Runtime error: %s", "Cast failed");
4279 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3492);
4280 show_backtrace(1);
4281 }
4282 self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:AGeExpr> */
4283 if (var_n_expr2 == NULL) {
4284 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4285 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3493);
4286 show_backtrace(1);
4287 } else {
4288 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
4289 if (unlikely(var_n_expr2 == NULL)) {
4290 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4291 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
4292 show_backtrace(1);
4293 }
4294 var_n_expr2->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
4295 RET_LABEL2:(void)0;
4296 }
4297 }
4298 RET_LABEL:;
4299 }
4300 /* method parser_prod#AGeExpr#init_ageexpr for (self: Object, nullable AExpr, nullable AExpr) */
4301 void VIRTUAL_parser_prod__AGeExpr__init_ageexpr(val* self, val* p0, val* p1) {
4302 parser_prod__AGeExpr__init_ageexpr(self, p0, p1); /* Direct call parser_prod#AGeExpr#init_ageexpr on <self:Object(AGeExpr)>*/
4303 RET_LABEL:;
4304 }
4305 /* method parser_prod#AGeExpr#replace_child for (self: AGeExpr, ANode, nullable ANode) */
4306 void parser_prod__AGeExpr__replace_child(val* self, val* p0, val* p1) {
4307 val* var_old_child /* var old_child: ANode */;
4308 val* var_new_child /* var new_child: nullable ANode */;
4309 val* var /* : AExpr */;
4310 short int var1 /* : Bool */;
4311 short int var2 /* : Bool */;
4312 val* var_other /* var other: nullable Object */;
4313 short int var4 /* : Bool */;
4314 short int var6 /* : Bool */;
4315 short int var7 /* : Bool */;
4316 int cltype;
4317 int idtype;
4318 const char* var_class_name;
4319 val* var8 /* : AExpr */;
4320 short int var9 /* : Bool */;
4321 short int var10 /* : Bool */;
4322 short int var12 /* : Bool */;
4323 short int var14 /* : Bool */;
4324 short int var15 /* : Bool */;
4325 int cltype16;
4326 int idtype17;
4327 const char* var_class_name18;
4328 var_old_child = p0;
4329 var_new_child = p1;
4330 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AGeExpr> */
4331 if (unlikely(var == NULL)) {
4332 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
4333 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3498);
4334 show_backtrace(1);
4335 }
4336 {
4337 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
4338 var_other = var_old_child;
4339 {
4340 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
4341 var6 = var == var_other;
4342 var4 = var6;
4343 goto RET_LABEL5;
4344 RET_LABEL5:(void)0;
4345 }
4346 }
4347 var2 = var4;
4348 goto RET_LABEL3;
4349 RET_LABEL3:(void)0;
4350 }
4351 var1 = var2;
4352 }
4353 if (var1){
4354 /* <var_new_child:nullable ANode> isa AExpr */
4355 cltype = type_parser_nodes__AExpr.color;
4356 idtype = type_parser_nodes__AExpr.id;
4357 if(var_new_child == NULL) {
4358 var7 = 0;
4359 } else {
4360 if(cltype >= var_new_child->type->table_size) {
4361 var7 = 0;
4362 } else {
4363 var7 = var_new_child->type->type_table[cltype] == idtype;
4364 }
4365 }
4366 if (unlikely(!var7)) {
4367 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
4368 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
4369 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3499);
4370 show_backtrace(1);
4371 }
4372 {
4373 parser_prod__AGeExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AGeExpr#n_expr= on <self:AGeExpr>*/
4374 }
4375 goto RET_LABEL;
4376 } else {
4377 }
4378 var8 = self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AGeExpr> */
4379 if (unlikely(var8 == NULL)) {
4380 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
4381 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3502);
4382 show_backtrace(1);
4383 }
4384 {
4385 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExpr> */
4386 var_other = var_old_child;
4387 {
4388 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExpr> */
4389 var14 = var8 == var_other;
4390 var12 = var14;
4391 goto RET_LABEL13;
4392 RET_LABEL13:(void)0;
4393 }
4394 }
4395 var10 = var12;
4396 goto RET_LABEL11;
4397 RET_LABEL11:(void)0;
4398 }
4399 var9 = var10;
4400 }
4401 if (var9){
4402 /* <var_new_child:nullable ANode> isa AExpr */
4403 cltype16 = type_parser_nodes__AExpr.color;
4404 idtype17 = type_parser_nodes__AExpr.id;
4405 if(var_new_child == NULL) {
4406 var15 = 0;
4407 } else {
4408 if(cltype16 >= var_new_child->type->table_size) {
4409 var15 = 0;
4410 } else {
4411 var15 = var_new_child->type->type_table[cltype16] == idtype17;
4412 }
4413 }
4414 if (unlikely(!var15)) {
4415 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
4416 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name18);
4417 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3503);
4418 show_backtrace(1);
4419 }
4420 {
4421 parser_prod__AGeExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#AGeExpr#n_expr2= on <self:AGeExpr>*/
4422 }
4423 goto RET_LABEL;
4424 } else {
4425 }
4426 RET_LABEL:;
4427 }
4428 /* method parser_prod#AGeExpr#replace_child for (self: Object, ANode, nullable ANode) */
4429 void VIRTUAL_parser_prod__AGeExpr__replace_child(val* self, val* p0, val* p1) {
4430 parser_prod__AGeExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AGeExpr#replace_child on <self:Object(AGeExpr)>*/
4431 RET_LABEL:;
4432 }
4433 /* method parser_prod#AGeExpr#n_expr= for (self: AGeExpr, AExpr) */
4434 void parser_prod__AGeExpr__n_expr_61d(val* self, val* p0) {
4435 val* var_node /* var node: AExpr */;
4436 var_node = p0;
4437 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:AGeExpr> */
4438 {
4439 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
4440 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
4441 RET_LABEL1:(void)0;
4442 }
4443 }
4444 RET_LABEL:;
4445 }
4446 /* method parser_prod#AGeExpr#n_expr= for (self: Object, AExpr) */
4447 void VIRTUAL_parser_prod__AGeExpr__n_expr_61d(val* self, val* p0) {
4448 parser_prod__AGeExpr__n_expr_61d(self, p0); /* Direct call parser_prod#AGeExpr#n_expr= on <self:Object(AGeExpr)>*/
4449 RET_LABEL:;
4450 }
4451 /* method parser_prod#AGeExpr#n_expr2= for (self: AGeExpr, AExpr) */
4452 void parser_prod__AGeExpr__n_expr2_61d(val* self, val* p0) {
4453 val* var_node /* var node: AExpr */;
4454 var_node = p0;
4455 self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val = var_node; /* _n_expr2 on <self:AGeExpr> */
4456 {
4457 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
4458 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
4459 RET_LABEL1:(void)0;
4460 }
4461 }
4462 RET_LABEL:;
4463 }
4464 /* method parser_prod#AGeExpr#n_expr2= for (self: Object, AExpr) */
4465 void VIRTUAL_parser_prod__AGeExpr__n_expr2_61d(val* self, val* p0) {
4466 parser_prod__AGeExpr__n_expr2_61d(self, p0); /* Direct call parser_prod#AGeExpr#n_expr2= on <self:Object(AGeExpr)>*/
4467 RET_LABEL:;
4468 }
4469 /* method parser_prod#AGeExpr#visit_all for (self: AGeExpr, Visitor) */
4470 void parser_prod__AGeExpr__visit_all(val* self, val* p0) {
4471 val* var_v /* var v: Visitor */;
4472 val* var /* : AExpr */;
4473 val* var1 /* : AExpr */;
4474 var_v = p0;
4475 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AGeExpr> */
4476 if (unlikely(var == NULL)) {
4477 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
4478 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3522);
4479 show_backtrace(1);
4480 }
4481 {
4482 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4483 }
4484 var1 = self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AGeExpr> */
4485 if (unlikely(var1 == NULL)) {
4486 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
4487 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3523);
4488 show_backtrace(1);
4489 }
4490 {
4491 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4492 }
4493 RET_LABEL:;
4494 }
4495 /* method parser_prod#AGeExpr#visit_all for (self: Object, Visitor) */
4496 void VIRTUAL_parser_prod__AGeExpr__visit_all(val* self, val* p0) {
4497 parser_prod__AGeExpr__visit_all(self, p0); /* Direct call parser_prod#AGeExpr#visit_all on <self:Object(AGeExpr)>*/
4498 RET_LABEL:;
4499 }
4500 /* method parser_prod#AGgExpr#init_aggexpr for (self: AGgExpr, nullable AExpr, nullable AExpr) */
4501 void parser_prod__AGgExpr__init_aggexpr(val* self, val* p0, val* p1) {
4502 val* var_n_expr /* var n_expr: nullable AExpr */;
4503 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
4504 var_n_expr = p0;
4505 var_n_expr2 = p1;
4506 if (unlikely(var_n_expr == NULL)) {
4507 PRINT_ERROR("Runtime error: %s", "Cast failed");
4508 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3532);
4509 show_backtrace(1);
4510 }
4511 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AGgExpr> */
4512 if (var_n_expr == NULL) {
4513 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4514 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3533);
4515 show_backtrace(1);
4516 } else {
4517 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
4518 if (unlikely(var_n_expr == NULL)) {
4519 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4520 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
4521 show_backtrace(1);
4522 }
4523 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
4524 RET_LABEL1:(void)0;
4525 }
4526 }
4527 if (unlikely(var_n_expr2 == NULL)) {
4528 PRINT_ERROR("Runtime error: %s", "Cast failed");
4529 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3534);
4530 show_backtrace(1);
4531 }
4532 self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:AGgExpr> */
4533 if (var_n_expr2 == NULL) {
4534 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4535 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3535);
4536 show_backtrace(1);
4537 } else {
4538 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
4539 if (unlikely(var_n_expr2 == NULL)) {
4540 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4541 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
4542 show_backtrace(1);
4543 }
4544 var_n_expr2->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
4545 RET_LABEL2:(void)0;
4546 }
4547 }
4548 RET_LABEL:;
4549 }
4550 /* method parser_prod#AGgExpr#init_aggexpr for (self: Object, nullable AExpr, nullable AExpr) */
4551 void VIRTUAL_parser_prod__AGgExpr__init_aggexpr(val* self, val* p0, val* p1) {
4552 parser_prod__AGgExpr__init_aggexpr(self, p0, p1); /* Direct call parser_prod#AGgExpr#init_aggexpr on <self:Object(AGgExpr)>*/
4553 RET_LABEL:;
4554 }
4555 /* method parser_prod#AGgExpr#replace_child for (self: AGgExpr, ANode, nullable ANode) */
4556 void parser_prod__AGgExpr__replace_child(val* self, val* p0, val* p1) {
4557 val* var_old_child /* var old_child: ANode */;
4558 val* var_new_child /* var new_child: nullable ANode */;
4559 val* var /* : AExpr */;
4560 short int var1 /* : Bool */;
4561 short int var2 /* : Bool */;
4562 val* var_other /* var other: nullable Object */;
4563 short int var4 /* : Bool */;
4564 short int var6 /* : Bool */;
4565 short int var7 /* : Bool */;
4566 int cltype;
4567 int idtype;
4568 const char* var_class_name;
4569 val* var8 /* : AExpr */;
4570 short int var9 /* : Bool */;
4571 short int var10 /* : Bool */;
4572 short int var12 /* : Bool */;
4573 short int var14 /* : Bool */;
4574 short int var15 /* : Bool */;
4575 int cltype16;
4576 int idtype17;
4577 const char* var_class_name18;
4578 var_old_child = p0;
4579 var_new_child = p1;
4580 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AGgExpr> */
4581 if (unlikely(var == NULL)) {
4582 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
4583 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3540);
4584 show_backtrace(1);
4585 }
4586 {
4587 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
4588 var_other = var_old_child;
4589 {
4590 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
4591 var6 = var == var_other;
4592 var4 = var6;
4593 goto RET_LABEL5;
4594 RET_LABEL5:(void)0;
4595 }
4596 }
4597 var2 = var4;
4598 goto RET_LABEL3;
4599 RET_LABEL3:(void)0;
4600 }
4601 var1 = var2;
4602 }
4603 if (var1){
4604 /* <var_new_child:nullable ANode> isa AExpr */
4605 cltype = type_parser_nodes__AExpr.color;
4606 idtype = type_parser_nodes__AExpr.id;
4607 if(var_new_child == NULL) {
4608 var7 = 0;
4609 } else {
4610 if(cltype >= var_new_child->type->table_size) {
4611 var7 = 0;
4612 } else {
4613 var7 = var_new_child->type->type_table[cltype] == idtype;
4614 }
4615 }
4616 if (unlikely(!var7)) {
4617 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
4618 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
4619 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3541);
4620 show_backtrace(1);
4621 }
4622 {
4623 parser_prod__AGgExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AGgExpr#n_expr= on <self:AGgExpr>*/
4624 }
4625 goto RET_LABEL;
4626 } else {
4627 }
4628 var8 = self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AGgExpr> */
4629 if (unlikely(var8 == NULL)) {
4630 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
4631 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3544);
4632 show_backtrace(1);
4633 }
4634 {
4635 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExpr> */
4636 var_other = var_old_child;
4637 {
4638 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExpr> */
4639 var14 = var8 == var_other;
4640 var12 = var14;
4641 goto RET_LABEL13;
4642 RET_LABEL13:(void)0;
4643 }
4644 }
4645 var10 = var12;
4646 goto RET_LABEL11;
4647 RET_LABEL11:(void)0;
4648 }
4649 var9 = var10;
4650 }
4651 if (var9){
4652 /* <var_new_child:nullable ANode> isa AExpr */
4653 cltype16 = type_parser_nodes__AExpr.color;
4654 idtype17 = type_parser_nodes__AExpr.id;
4655 if(var_new_child == NULL) {
4656 var15 = 0;
4657 } else {
4658 if(cltype16 >= var_new_child->type->table_size) {
4659 var15 = 0;
4660 } else {
4661 var15 = var_new_child->type->type_table[cltype16] == idtype17;
4662 }
4663 }
4664 if (unlikely(!var15)) {
4665 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
4666 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name18);
4667 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3545);
4668 show_backtrace(1);
4669 }
4670 {
4671 parser_prod__AGgExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#AGgExpr#n_expr2= on <self:AGgExpr>*/
4672 }
4673 goto RET_LABEL;
4674 } else {
4675 }
4676 RET_LABEL:;
4677 }
4678 /* method parser_prod#AGgExpr#replace_child for (self: Object, ANode, nullable ANode) */
4679 void VIRTUAL_parser_prod__AGgExpr__replace_child(val* self, val* p0, val* p1) {
4680 parser_prod__AGgExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AGgExpr#replace_child on <self:Object(AGgExpr)>*/
4681 RET_LABEL:;
4682 }
4683 /* method parser_prod#AGgExpr#n_expr= for (self: AGgExpr, AExpr) */
4684 void parser_prod__AGgExpr__n_expr_61d(val* self, val* p0) {
4685 val* var_node /* var node: AExpr */;
4686 var_node = p0;
4687 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:AGgExpr> */
4688 {
4689 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
4690 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
4691 RET_LABEL1:(void)0;
4692 }
4693 }
4694 RET_LABEL:;
4695 }
4696 /* method parser_prod#AGgExpr#n_expr= for (self: Object, AExpr) */
4697 void VIRTUAL_parser_prod__AGgExpr__n_expr_61d(val* self, val* p0) {
4698 parser_prod__AGgExpr__n_expr_61d(self, p0); /* Direct call parser_prod#AGgExpr#n_expr= on <self:Object(AGgExpr)>*/
4699 RET_LABEL:;
4700 }
4701 /* method parser_prod#AGgExpr#n_expr2= for (self: AGgExpr, AExpr) */
4702 void parser_prod__AGgExpr__n_expr2_61d(val* self, val* p0) {
4703 val* var_node /* var node: AExpr */;
4704 var_node = p0;
4705 self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val = var_node; /* _n_expr2 on <self:AGgExpr> */
4706 {
4707 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
4708 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
4709 RET_LABEL1:(void)0;
4710 }
4711 }
4712 RET_LABEL:;
4713 }
4714 /* method parser_prod#AGgExpr#n_expr2= for (self: Object, AExpr) */
4715 void VIRTUAL_parser_prod__AGgExpr__n_expr2_61d(val* self, val* p0) {
4716 parser_prod__AGgExpr__n_expr2_61d(self, p0); /* Direct call parser_prod#AGgExpr#n_expr2= on <self:Object(AGgExpr)>*/
4717 RET_LABEL:;
4718 }
4719 /* method parser_prod#AGgExpr#visit_all for (self: AGgExpr, Visitor) */
4720 void parser_prod__AGgExpr__visit_all(val* self, val* p0) {
4721 val* var_v /* var v: Visitor */;
4722 val* var /* : AExpr */;
4723 val* var1 /* : AExpr */;
4724 var_v = p0;
4725 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AGgExpr> */
4726 if (unlikely(var == NULL)) {
4727 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
4728 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3564);
4729 show_backtrace(1);
4730 }
4731 {
4732 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4733 }
4734 var1 = self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AGgExpr> */
4735 if (unlikely(var1 == NULL)) {
4736 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
4737 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3565);
4738 show_backtrace(1);
4739 }
4740 {
4741 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4742 }
4743 RET_LABEL:;
4744 }
4745 /* method parser_prod#AGgExpr#visit_all for (self: Object, Visitor) */
4746 void VIRTUAL_parser_prod__AGgExpr__visit_all(val* self, val* p0) {
4747 parser_prod__AGgExpr__visit_all(self, p0); /* Direct call parser_prod#AGgExpr#visit_all on <self:Object(AGgExpr)>*/
4748 RET_LABEL:;
4749 }
4750 /* method parser_prod#AIsaExpr#init_aisaexpr for (self: AIsaExpr, nullable AExpr, nullable AType) */
4751 void parser_prod__AIsaExpr__init_aisaexpr(val* self, val* p0, val* p1) {
4752 val* var_n_expr /* var n_expr: nullable AExpr */;
4753 val* var_n_type /* var n_type: nullable AType */;
4754 var_n_expr = p0;
4755 var_n_type = p1;
4756 if (unlikely(var_n_expr == NULL)) {
4757 PRINT_ERROR("Runtime error: %s", "Cast failed");
4758 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3574);
4759 show_backtrace(1);
4760 }
4761 self->attrs[COLOR_parser_nodes__AIsaExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AIsaExpr> */
4762 if (var_n_expr == NULL) {
4763 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4764 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3575);
4765 show_backtrace(1);
4766 } else {
4767 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
4768 if (unlikely(var_n_expr == NULL)) {
4769 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4770 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
4771 show_backtrace(1);
4772 }
4773 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
4774 RET_LABEL1:(void)0;
4775 }
4776 }
4777 if (unlikely(var_n_type == NULL)) {
4778 PRINT_ERROR("Runtime error: %s", "Cast failed");
4779 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3576);
4780 show_backtrace(1);
4781 }
4782 self->attrs[COLOR_parser_nodes__AIsaExpr___n_type].val = var_n_type; /* _n_type on <self:AIsaExpr> */
4783 if (var_n_type == NULL) {
4784 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4785 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3577);
4786 show_backtrace(1);
4787 } else {
4788 { /* Inline parser_nodes#ANode#parent= (var_n_type,self) on <var_n_type:nullable AType> */
4789 if (unlikely(var_n_type == NULL)) {
4790 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4791 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
4792 show_backtrace(1);
4793 }
4794 var_n_type->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_type:nullable AType> */
4795 RET_LABEL2:(void)0;
4796 }
4797 }
4798 RET_LABEL:;
4799 }
4800 /* method parser_prod#AIsaExpr#init_aisaexpr for (self: Object, nullable AExpr, nullable AType) */
4801 void VIRTUAL_parser_prod__AIsaExpr__init_aisaexpr(val* self, val* p0, val* p1) {
4802 parser_prod__AIsaExpr__init_aisaexpr(self, p0, p1); /* Direct call parser_prod#AIsaExpr#init_aisaexpr on <self:Object(AIsaExpr)>*/
4803 RET_LABEL:;
4804 }
4805 /* method parser_prod#AIsaExpr#replace_child for (self: AIsaExpr, ANode, nullable ANode) */
4806 void parser_prod__AIsaExpr__replace_child(val* self, val* p0, val* p1) {
4807 val* var_old_child /* var old_child: ANode */;
4808 val* var_new_child /* var new_child: nullable ANode */;
4809 val* var /* : AExpr */;
4810 short int var1 /* : Bool */;
4811 short int var2 /* : Bool */;
4812 val* var_other /* var other: nullable Object */;
4813 short int var4 /* : Bool */;
4814 short int var6 /* : Bool */;
4815 short int var7 /* : Bool */;
4816 int cltype;
4817 int idtype;
4818 const char* var_class_name;
4819 val* var8 /* : AType */;
4820 short int var9 /* : Bool */;
4821 short int var10 /* : Bool */;
4822 short int var12 /* : Bool */;
4823 short int var14 /* : Bool */;
4824 short int var15 /* : Bool */;
4825 int cltype16;
4826 int idtype17;
4827 const char* var_class_name18;
4828 var_old_child = p0;
4829 var_new_child = p1;
4830 var = self->attrs[COLOR_parser_nodes__AIsaExpr___n_expr].val; /* _n_expr on <self:AIsaExpr> */
4831 if (unlikely(var == NULL)) {
4832 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
4833 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3582);
4834 show_backtrace(1);
4835 }
4836 {
4837 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
4838 var_other = var_old_child;
4839 {
4840 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
4841 var6 = var == var_other;
4842 var4 = var6;
4843 goto RET_LABEL5;
4844 RET_LABEL5:(void)0;
4845 }
4846 }
4847 var2 = var4;
4848 goto RET_LABEL3;
4849 RET_LABEL3:(void)0;
4850 }
4851 var1 = var2;
4852 }
4853 if (var1){
4854 /* <var_new_child:nullable ANode> isa AExpr */
4855 cltype = type_parser_nodes__AExpr.color;
4856 idtype = type_parser_nodes__AExpr.id;
4857 if(var_new_child == NULL) {
4858 var7 = 0;
4859 } else {
4860 if(cltype >= var_new_child->type->table_size) {
4861 var7 = 0;
4862 } else {
4863 var7 = var_new_child->type->type_table[cltype] == idtype;
4864 }
4865 }
4866 if (unlikely(!var7)) {
4867 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
4868 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
4869 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3583);
4870 show_backtrace(1);
4871 }
4872 {
4873 parser_prod__AIsaExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AIsaExpr#n_expr= on <self:AIsaExpr>*/
4874 }
4875 goto RET_LABEL;
4876 } else {
4877 }
4878 var8 = self->attrs[COLOR_parser_nodes__AIsaExpr___n_type].val; /* _n_type on <self:AIsaExpr> */
4879 if (unlikely(var8 == NULL)) {
4880 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
4881 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3586);
4882 show_backtrace(1);
4883 }
4884 {
4885 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AType> */
4886 var_other = var_old_child;
4887 {
4888 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AType> */
4889 var14 = var8 == var_other;
4890 var12 = var14;
4891 goto RET_LABEL13;
4892 RET_LABEL13:(void)0;
4893 }
4894 }
4895 var10 = var12;
4896 goto RET_LABEL11;
4897 RET_LABEL11:(void)0;
4898 }
4899 var9 = var10;
4900 }
4901 if (var9){
4902 /* <var_new_child:nullable ANode> isa AType */
4903 cltype16 = type_parser_nodes__AType.color;
4904 idtype17 = type_parser_nodes__AType.id;
4905 if(var_new_child == NULL) {
4906 var15 = 0;
4907 } else {
4908 if(cltype16 >= var_new_child->type->table_size) {
4909 var15 = 0;
4910 } else {
4911 var15 = var_new_child->type->type_table[cltype16] == idtype17;
4912 }
4913 }
4914 if (unlikely(!var15)) {
4915 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
4916 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AType", var_class_name18);
4917 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3587);
4918 show_backtrace(1);
4919 }
4920 {
4921 parser_prod__AIsaExpr__n_type_61d(self, var_new_child); /* Direct call parser_prod#AIsaExpr#n_type= on <self:AIsaExpr>*/
4922 }
4923 goto RET_LABEL;
4924 } else {
4925 }
4926 RET_LABEL:;
4927 }
4928 /* method parser_prod#AIsaExpr#replace_child for (self: Object, ANode, nullable ANode) */
4929 void VIRTUAL_parser_prod__AIsaExpr__replace_child(val* self, val* p0, val* p1) {
4930 parser_prod__AIsaExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AIsaExpr#replace_child on <self:Object(AIsaExpr)>*/
4931 RET_LABEL:;
4932 }
4933 /* method parser_prod#AIsaExpr#n_expr= for (self: AIsaExpr, AExpr) */
4934 void parser_prod__AIsaExpr__n_expr_61d(val* self, val* p0) {
4935 val* var_node /* var node: AExpr */;
4936 var_node = p0;
4937 self->attrs[COLOR_parser_nodes__AIsaExpr___n_expr].val = var_node; /* _n_expr on <self:AIsaExpr> */
4938 {
4939 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
4940 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
4941 RET_LABEL1:(void)0;
4942 }
4943 }
4944 RET_LABEL:;
4945 }
4946 /* method parser_prod#AIsaExpr#n_expr= for (self: Object, AExpr) */
4947 void VIRTUAL_parser_prod__AIsaExpr__n_expr_61d(val* self, val* p0) {
4948 parser_prod__AIsaExpr__n_expr_61d(self, p0); /* Direct call parser_prod#AIsaExpr#n_expr= on <self:Object(AIsaExpr)>*/
4949 RET_LABEL:;
4950 }
4951 /* method parser_prod#AIsaExpr#n_type= for (self: AIsaExpr, AType) */
4952 void parser_prod__AIsaExpr__n_type_61d(val* self, val* p0) {
4953 val* var_node /* var node: AType */;
4954 var_node = p0;
4955 self->attrs[COLOR_parser_nodes__AIsaExpr___n_type].val = var_node; /* _n_type on <self:AIsaExpr> */
4956 {
4957 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AType> */
4958 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AType> */
4959 RET_LABEL1:(void)0;
4960 }
4961 }
4962 RET_LABEL:;
4963 }
4964 /* method parser_prod#AIsaExpr#n_type= for (self: Object, AType) */
4965 void VIRTUAL_parser_prod__AIsaExpr__n_type_61d(val* self, val* p0) {
4966 parser_prod__AIsaExpr__n_type_61d(self, p0); /* Direct call parser_prod#AIsaExpr#n_type= on <self:Object(AIsaExpr)>*/
4967 RET_LABEL:;
4968 }
4969 /* method parser_prod#AIsaExpr#visit_all for (self: AIsaExpr, Visitor) */
4970 void parser_prod__AIsaExpr__visit_all(val* self, val* p0) {
4971 val* var_v /* var v: Visitor */;
4972 val* var /* : AExpr */;
4973 val* var1 /* : AType */;
4974 var_v = p0;
4975 var = self->attrs[COLOR_parser_nodes__AIsaExpr___n_expr].val; /* _n_expr on <self:AIsaExpr> */
4976 if (unlikely(var == NULL)) {
4977 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
4978 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3606);
4979 show_backtrace(1);
4980 }
4981 {
4982 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4983 }
4984 var1 = self->attrs[COLOR_parser_nodes__AIsaExpr___n_type].val; /* _n_type on <self:AIsaExpr> */
4985 if (unlikely(var1 == NULL)) {
4986 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
4987 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3607);
4988 show_backtrace(1);
4989 }
4990 {
4991 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4992 }
4993 RET_LABEL:;
4994 }
4995 /* method parser_prod#AIsaExpr#visit_all for (self: Object, Visitor) */
4996 void VIRTUAL_parser_prod__AIsaExpr__visit_all(val* self, val* p0) {
4997 parser_prod__AIsaExpr__visit_all(self, p0); /* Direct call parser_prod#AIsaExpr#visit_all on <self:Object(AIsaExpr)>*/
4998 RET_LABEL:;
4999 }
5000 /* method parser_prod#APlusExpr#init_aplusexpr for (self: APlusExpr, nullable AExpr, nullable AExpr) */
5001 void parser_prod__APlusExpr__init_aplusexpr(val* self, val* p0, val* p1) {
5002 val* var_n_expr /* var n_expr: nullable AExpr */;
5003 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
5004 var_n_expr = p0;
5005 var_n_expr2 = p1;
5006 if (unlikely(var_n_expr == NULL)) {
5007 PRINT_ERROR("Runtime error: %s", "Cast failed");
5008 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3616);
5009 show_backtrace(1);
5010 }
5011 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:APlusExpr> */
5012 if (var_n_expr == NULL) {
5013 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5014 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3617);
5015 show_backtrace(1);
5016 } else {
5017 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
5018 if (unlikely(var_n_expr == NULL)) {
5019 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5020 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
5021 show_backtrace(1);
5022 }
5023 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
5024 RET_LABEL1:(void)0;
5025 }
5026 }
5027 if (unlikely(var_n_expr2 == NULL)) {
5028 PRINT_ERROR("Runtime error: %s", "Cast failed");
5029 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3618);
5030 show_backtrace(1);
5031 }
5032 self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:APlusExpr> */
5033 if (var_n_expr2 == NULL) {
5034 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5035 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3619);
5036 show_backtrace(1);
5037 } else {
5038 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
5039 if (unlikely(var_n_expr2 == NULL)) {
5040 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5041 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
5042 show_backtrace(1);
5043 }
5044 var_n_expr2->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
5045 RET_LABEL2:(void)0;
5046 }
5047 }
5048 RET_LABEL:;
5049 }
5050 /* method parser_prod#APlusExpr#init_aplusexpr for (self: Object, nullable AExpr, nullable AExpr) */
5051 void VIRTUAL_parser_prod__APlusExpr__init_aplusexpr(val* self, val* p0, val* p1) {
5052 parser_prod__APlusExpr__init_aplusexpr(self, p0, p1); /* Direct call parser_prod#APlusExpr#init_aplusexpr on <self:Object(APlusExpr)>*/
5053 RET_LABEL:;
5054 }
5055 /* method parser_prod#APlusExpr#replace_child for (self: APlusExpr, ANode, nullable ANode) */
5056 void parser_prod__APlusExpr__replace_child(val* self, val* p0, val* p1) {
5057 val* var_old_child /* var old_child: ANode */;
5058 val* var_new_child /* var new_child: nullable ANode */;
5059 val* var /* : AExpr */;
5060 short int var1 /* : Bool */;
5061 short int var2 /* : Bool */;
5062 val* var_other /* var other: nullable Object */;
5063 short int var4 /* : Bool */;
5064 short int var6 /* : Bool */;
5065 short int var7 /* : Bool */;
5066 int cltype;
5067 int idtype;
5068 const char* var_class_name;
5069 val* var8 /* : AExpr */;
5070 short int var9 /* : Bool */;
5071 short int var10 /* : Bool */;
5072 short int var12 /* : Bool */;
5073 short int var14 /* : Bool */;
5074 short int var15 /* : Bool */;
5075 int cltype16;
5076 int idtype17;
5077 const char* var_class_name18;
5078 var_old_child = p0;
5079 var_new_child = p1;
5080 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:APlusExpr> */
5081 if (unlikely(var == NULL)) {
5082 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
5083 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3624);
5084 show_backtrace(1);
5085 }
5086 {
5087 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
5088 var_other = var_old_child;
5089 {
5090 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
5091 var6 = var == var_other;
5092 var4 = var6;
5093 goto RET_LABEL5;
5094 RET_LABEL5:(void)0;
5095 }
5096 }
5097 var2 = var4;
5098 goto RET_LABEL3;
5099 RET_LABEL3:(void)0;
5100 }
5101 var1 = var2;
5102 }
5103 if (var1){
5104 /* <var_new_child:nullable ANode> isa AExpr */
5105 cltype = type_parser_nodes__AExpr.color;
5106 idtype = type_parser_nodes__AExpr.id;
5107 if(var_new_child == NULL) {
5108 var7 = 0;
5109 } else {
5110 if(cltype >= var_new_child->type->table_size) {
5111 var7 = 0;
5112 } else {
5113 var7 = var_new_child->type->type_table[cltype] == idtype;
5114 }
5115 }
5116 if (unlikely(!var7)) {
5117 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
5118 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
5119 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3625);
5120 show_backtrace(1);
5121 }
5122 {
5123 parser_prod__APlusExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#APlusExpr#n_expr= on <self:APlusExpr>*/
5124 }
5125 goto RET_LABEL;
5126 } else {
5127 }
5128 var8 = self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:APlusExpr> */
5129 if (unlikely(var8 == NULL)) {
5130 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
5131 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3628);
5132 show_backtrace(1);
5133 }
5134 {
5135 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExpr> */
5136 var_other = var_old_child;
5137 {
5138 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExpr> */
5139 var14 = var8 == var_other;
5140 var12 = var14;
5141 goto RET_LABEL13;
5142 RET_LABEL13:(void)0;
5143 }
5144 }
5145 var10 = var12;
5146 goto RET_LABEL11;
5147 RET_LABEL11:(void)0;
5148 }
5149 var9 = var10;
5150 }
5151 if (var9){
5152 /* <var_new_child:nullable ANode> isa AExpr */
5153 cltype16 = type_parser_nodes__AExpr.color;
5154 idtype17 = type_parser_nodes__AExpr.id;
5155 if(var_new_child == NULL) {
5156 var15 = 0;
5157 } else {
5158 if(cltype16 >= var_new_child->type->table_size) {
5159 var15 = 0;
5160 } else {
5161 var15 = var_new_child->type->type_table[cltype16] == idtype17;
5162 }
5163 }
5164 if (unlikely(!var15)) {
5165 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
5166 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name18);
5167 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3629);
5168 show_backtrace(1);
5169 }
5170 {
5171 parser_prod__APlusExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#APlusExpr#n_expr2= on <self:APlusExpr>*/
5172 }
5173 goto RET_LABEL;
5174 } else {
5175 }
5176 RET_LABEL:;
5177 }
5178 /* method parser_prod#APlusExpr#replace_child for (self: Object, ANode, nullable ANode) */
5179 void VIRTUAL_parser_prod__APlusExpr__replace_child(val* self, val* p0, val* p1) {
5180 parser_prod__APlusExpr__replace_child(self, p0, p1); /* Direct call parser_prod#APlusExpr#replace_child on <self:Object(APlusExpr)>*/
5181 RET_LABEL:;
5182 }
5183 /* method parser_prod#APlusExpr#n_expr= for (self: APlusExpr, AExpr) */
5184 void parser_prod__APlusExpr__n_expr_61d(val* self, val* p0) {
5185 val* var_node /* var node: AExpr */;
5186 var_node = p0;
5187 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:APlusExpr> */
5188 {
5189 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
5190 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
5191 RET_LABEL1:(void)0;
5192 }
5193 }
5194 RET_LABEL:;
5195 }
5196 /* method parser_prod#APlusExpr#n_expr= for (self: Object, AExpr) */
5197 void VIRTUAL_parser_prod__APlusExpr__n_expr_61d(val* self, val* p0) {
5198 parser_prod__APlusExpr__n_expr_61d(self, p0); /* Direct call parser_prod#APlusExpr#n_expr= on <self:Object(APlusExpr)>*/
5199 RET_LABEL:;
5200 }
5201 /* method parser_prod#APlusExpr#n_expr2= for (self: APlusExpr, AExpr) */
5202 void parser_prod__APlusExpr__n_expr2_61d(val* self, val* p0) {
5203 val* var_node /* var node: AExpr */;
5204 var_node = p0;
5205 self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val = var_node; /* _n_expr2 on <self:APlusExpr> */
5206 {
5207 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
5208 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
5209 RET_LABEL1:(void)0;
5210 }
5211 }
5212 RET_LABEL:;
5213 }
5214 /* method parser_prod#APlusExpr#n_expr2= for (self: Object, AExpr) */
5215 void VIRTUAL_parser_prod__APlusExpr__n_expr2_61d(val* self, val* p0) {
5216 parser_prod__APlusExpr__n_expr2_61d(self, p0); /* Direct call parser_prod#APlusExpr#n_expr2= on <self:Object(APlusExpr)>*/
5217 RET_LABEL:;
5218 }
5219 /* method parser_prod#APlusExpr#visit_all for (self: APlusExpr, Visitor) */
5220 void parser_prod__APlusExpr__visit_all(val* self, val* p0) {
5221 val* var_v /* var v: Visitor */;
5222 val* var /* : AExpr */;
5223 val* var1 /* : AExpr */;
5224 var_v = p0;
5225 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:APlusExpr> */
5226 if (unlikely(var == NULL)) {
5227 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
5228 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3648);
5229 show_backtrace(1);
5230 }
5231 {
5232 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
5233 }
5234 var1 = self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:APlusExpr> */
5235 if (unlikely(var1 == NULL)) {
5236 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
5237 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3649);
5238 show_backtrace(1);
5239 }
5240 {
5241 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
5242 }
5243 RET_LABEL:;
5244 }
5245 /* method parser_prod#APlusExpr#visit_all for (self: Object, Visitor) */
5246 void VIRTUAL_parser_prod__APlusExpr__visit_all(val* self, val* p0) {
5247 parser_prod__APlusExpr__visit_all(self, p0); /* Direct call parser_prod#APlusExpr#visit_all on <self:Object(APlusExpr)>*/
5248 RET_LABEL:;
5249 }
5250 /* method parser_prod#AMinusExpr#init_aminusexpr for (self: AMinusExpr, nullable AExpr, nullable AExpr) */
5251 void parser_prod__AMinusExpr__init_aminusexpr(val* self, val* p0, val* p1) {
5252 val* var_n_expr /* var n_expr: nullable AExpr */;
5253 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
5254 var_n_expr = p0;
5255 var_n_expr2 = p1;
5256 if (unlikely(var_n_expr == NULL)) {
5257 PRINT_ERROR("Runtime error: %s", "Cast failed");
5258 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3658);
5259 show_backtrace(1);
5260 }
5261 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AMinusExpr> */
5262 if (var_n_expr == NULL) {
5263 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5264 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3659);
5265 show_backtrace(1);
5266 } else {
5267 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
5268 if (unlikely(var_n_expr == NULL)) {
5269 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5270 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
5271 show_backtrace(1);
5272 }
5273 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
5274 RET_LABEL1:(void)0;
5275 }
5276 }
5277 if (unlikely(var_n_expr2 == NULL)) {
5278 PRINT_ERROR("Runtime error: %s", "Cast failed");
5279 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3660);
5280 show_backtrace(1);
5281 }
5282 self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:AMinusExpr> */
5283 if (var_n_expr2 == NULL) {
5284 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5285 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3661);
5286 show_backtrace(1);
5287 } else {
5288 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
5289 if (unlikely(var_n_expr2 == NULL)) {
5290 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5291 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
5292 show_backtrace(1);
5293 }
5294 var_n_expr2->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
5295 RET_LABEL2:(void)0;
5296 }
5297 }
5298 RET_LABEL:;
5299 }
5300 /* method parser_prod#AMinusExpr#init_aminusexpr for (self: Object, nullable AExpr, nullable AExpr) */
5301 void VIRTUAL_parser_prod__AMinusExpr__init_aminusexpr(val* self, val* p0, val* p1) {
5302 parser_prod__AMinusExpr__init_aminusexpr(self, p0, p1); /* Direct call parser_prod#AMinusExpr#init_aminusexpr on <self:Object(AMinusExpr)>*/
5303 RET_LABEL:;
5304 }
5305 /* method parser_prod#AMinusExpr#replace_child for (self: AMinusExpr, ANode, nullable ANode) */
5306 void parser_prod__AMinusExpr__replace_child(val* self, val* p0, val* p1) {
5307 val* var_old_child /* var old_child: ANode */;
5308 val* var_new_child /* var new_child: nullable ANode */;
5309 val* var /* : AExpr */;
5310 short int var1 /* : Bool */;
5311 short int var2 /* : Bool */;
5312 val* var_other /* var other: nullable Object */;
5313 short int var4 /* : Bool */;
5314 short int var6 /* : Bool */;
5315 short int var7 /* : Bool */;
5316 int cltype;
5317 int idtype;
5318 const char* var_class_name;
5319 val* var8 /* : AExpr */;
5320 short int var9 /* : Bool */;
5321 short int var10 /* : Bool */;
5322 short int var12 /* : Bool */;
5323 short int var14 /* : Bool */;
5324 short int var15 /* : Bool */;
5325 int cltype16;
5326 int idtype17;
5327 const char* var_class_name18;
5328 var_old_child = p0;
5329 var_new_child = p1;
5330 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AMinusExpr> */
5331 if (unlikely(var == NULL)) {
5332 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
5333 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3666);
5334 show_backtrace(1);
5335 }
5336 {
5337 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
5338 var_other = var_old_child;
5339 {
5340 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
5341 var6 = var == var_other;
5342 var4 = var6;
5343 goto RET_LABEL5;
5344 RET_LABEL5:(void)0;
5345 }
5346 }
5347 var2 = var4;
5348 goto RET_LABEL3;
5349 RET_LABEL3:(void)0;
5350 }
5351 var1 = var2;
5352 }
5353 if (var1){
5354 /* <var_new_child:nullable ANode> isa AExpr */
5355 cltype = type_parser_nodes__AExpr.color;
5356 idtype = type_parser_nodes__AExpr.id;
5357 if(var_new_child == NULL) {
5358 var7 = 0;
5359 } else {
5360 if(cltype >= var_new_child->type->table_size) {
5361 var7 = 0;
5362 } else {
5363 var7 = var_new_child->type->type_table[cltype] == idtype;
5364 }
5365 }
5366 if (unlikely(!var7)) {
5367 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
5368 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
5369 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3667);
5370 show_backtrace(1);
5371 }
5372 {
5373 parser_prod__AMinusExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AMinusExpr#n_expr= on <self:AMinusExpr>*/
5374 }
5375 goto RET_LABEL;
5376 } else {
5377 }
5378 var8 = self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AMinusExpr> */
5379 if (unlikely(var8 == NULL)) {
5380 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
5381 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3670);
5382 show_backtrace(1);
5383 }
5384 {
5385 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExpr> */
5386 var_other = var_old_child;
5387 {
5388 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExpr> */
5389 var14 = var8 == var_other;
5390 var12 = var14;
5391 goto RET_LABEL13;
5392 RET_LABEL13:(void)0;
5393 }
5394 }
5395 var10 = var12;
5396 goto RET_LABEL11;
5397 RET_LABEL11:(void)0;
5398 }
5399 var9 = var10;
5400 }
5401 if (var9){
5402 /* <var_new_child:nullable ANode> isa AExpr */
5403 cltype16 = type_parser_nodes__AExpr.color;
5404 idtype17 = type_parser_nodes__AExpr.id;
5405 if(var_new_child == NULL) {
5406 var15 = 0;
5407 } else {
5408 if(cltype16 >= var_new_child->type->table_size) {
5409 var15 = 0;
5410 } else {
5411 var15 = var_new_child->type->type_table[cltype16] == idtype17;
5412 }
5413 }
5414 if (unlikely(!var15)) {
5415 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
5416 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name18);
5417 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3671);
5418 show_backtrace(1);
5419 }
5420 {
5421 parser_prod__AMinusExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#AMinusExpr#n_expr2= on <self:AMinusExpr>*/
5422 }
5423 goto RET_LABEL;
5424 } else {
5425 }
5426 RET_LABEL:;
5427 }
5428 /* method parser_prod#AMinusExpr#replace_child for (self: Object, ANode, nullable ANode) */
5429 void VIRTUAL_parser_prod__AMinusExpr__replace_child(val* self, val* p0, val* p1) {
5430 parser_prod__AMinusExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AMinusExpr#replace_child on <self:Object(AMinusExpr)>*/
5431 RET_LABEL:;
5432 }
5433 /* method parser_prod#AMinusExpr#n_expr= for (self: AMinusExpr, AExpr) */
5434 void parser_prod__AMinusExpr__n_expr_61d(val* self, val* p0) {
5435 val* var_node /* var node: AExpr */;
5436 var_node = p0;
5437 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:AMinusExpr> */
5438 {
5439 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
5440 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
5441 RET_LABEL1:(void)0;
5442 }
5443 }
5444 RET_LABEL:;
5445 }
5446 /* method parser_prod#AMinusExpr#n_expr= for (self: Object, AExpr) */
5447 void VIRTUAL_parser_prod__AMinusExpr__n_expr_61d(val* self, val* p0) {
5448 parser_prod__AMinusExpr__n_expr_61d(self, p0); /* Direct call parser_prod#AMinusExpr#n_expr= on <self:Object(AMinusExpr)>*/
5449 RET_LABEL:;
5450 }
5451 /* method parser_prod#AMinusExpr#n_expr2= for (self: AMinusExpr, AExpr) */
5452 void parser_prod__AMinusExpr__n_expr2_61d(val* self, val* p0) {
5453 val* var_node /* var node: AExpr */;
5454 var_node = p0;
5455 self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val = var_node; /* _n_expr2 on <self:AMinusExpr> */
5456 {
5457 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
5458 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
5459 RET_LABEL1:(void)0;
5460 }
5461 }
5462 RET_LABEL:;
5463 }
5464 /* method parser_prod#AMinusExpr#n_expr2= for (self: Object, AExpr) */
5465 void VIRTUAL_parser_prod__AMinusExpr__n_expr2_61d(val* self, val* p0) {
5466 parser_prod__AMinusExpr__n_expr2_61d(self, p0); /* Direct call parser_prod#AMinusExpr#n_expr2= on <self:Object(AMinusExpr)>*/
5467 RET_LABEL:;
5468 }
5469 /* method parser_prod#AMinusExpr#visit_all for (self: AMinusExpr, Visitor) */
5470 void parser_prod__AMinusExpr__visit_all(val* self, val* p0) {
5471 val* var_v /* var v: Visitor */;
5472 val* var /* : AExpr */;
5473 val* var1 /* : AExpr */;
5474 var_v = p0;
5475 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AMinusExpr> */
5476 if (unlikely(var == NULL)) {
5477 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
5478 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3690);
5479 show_backtrace(1);
5480 }
5481 {
5482 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
5483 }
5484 var1 = self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AMinusExpr> */
5485 if (unlikely(var1 == NULL)) {
5486 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
5487 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3691);
5488 show_backtrace(1);
5489 }
5490 {
5491 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
5492 }
5493 RET_LABEL:;
5494 }
5495 /* method parser_prod#AMinusExpr#visit_all for (self: Object, Visitor) */
5496 void VIRTUAL_parser_prod__AMinusExpr__visit_all(val* self, val* p0) {
5497 parser_prod__AMinusExpr__visit_all(self, p0); /* Direct call parser_prod#AMinusExpr#visit_all on <self:Object(AMinusExpr)>*/
5498 RET_LABEL:;
5499 }
5500 /* method parser_prod#AStarshipExpr#init_astarshipexpr for (self: AStarshipExpr, nullable AExpr, nullable AExpr) */
5501 void parser_prod__AStarshipExpr__init_astarshipexpr(val* self, val* p0, val* p1) {
5502 val* var_n_expr /* var n_expr: nullable AExpr */;
5503 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
5504 var_n_expr = p0;
5505 var_n_expr2 = p1;
5506 if (unlikely(var_n_expr == NULL)) {
5507 PRINT_ERROR("Runtime error: %s", "Cast failed");
5508 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3700);
5509 show_backtrace(1);
5510 }
5511 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AStarshipExpr> */
5512 if (var_n_expr == NULL) {
5513 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5514 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3701);
5515 show_backtrace(1);
5516 } else {
5517 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
5518 if (unlikely(var_n_expr == NULL)) {
5519 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5520 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
5521 show_backtrace(1);
5522 }
5523 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
5524 RET_LABEL1:(void)0;
5525 }
5526 }
5527 if (unlikely(var_n_expr2 == NULL)) {
5528 PRINT_ERROR("Runtime error: %s", "Cast failed");
5529 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3702);
5530 show_backtrace(1);
5531 }
5532 self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:AStarshipExpr> */
5533 if (var_n_expr2 == NULL) {
5534 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5535 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3703);
5536 show_backtrace(1);
5537 } else {
5538 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
5539 if (unlikely(var_n_expr2 == NULL)) {
5540 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5541 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
5542 show_backtrace(1);
5543 }
5544 var_n_expr2->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
5545 RET_LABEL2:(void)0;
5546 }
5547 }
5548 RET_LABEL:;
5549 }
5550 /* method parser_prod#AStarshipExpr#init_astarshipexpr for (self: Object, nullable AExpr, nullable AExpr) */
5551 void VIRTUAL_parser_prod__AStarshipExpr__init_astarshipexpr(val* self, val* p0, val* p1) {
5552 parser_prod__AStarshipExpr__init_astarshipexpr(self, p0, p1); /* Direct call parser_prod#AStarshipExpr#init_astarshipexpr on <self:Object(AStarshipExpr)>*/
5553 RET_LABEL:;
5554 }
5555 /* method parser_prod#AStarshipExpr#replace_child for (self: AStarshipExpr, ANode, nullable ANode) */
5556 void parser_prod__AStarshipExpr__replace_child(val* self, val* p0, val* p1) {
5557 val* var_old_child /* var old_child: ANode */;
5558 val* var_new_child /* var new_child: nullable ANode */;
5559 val* var /* : AExpr */;
5560 short int var1 /* : Bool */;
5561 short int var2 /* : Bool */;
5562 val* var_other /* var other: nullable Object */;
5563 short int var4 /* : Bool */;
5564 short int var6 /* : Bool */;
5565 short int var7 /* : Bool */;
5566 int cltype;
5567 int idtype;
5568 const char* var_class_name;
5569 val* var8 /* : AExpr */;
5570 short int var9 /* : Bool */;
5571 short int var10 /* : Bool */;
5572 short int var12 /* : Bool */;
5573 short int var14 /* : Bool */;
5574 short int var15 /* : Bool */;
5575 int cltype16;
5576 int idtype17;
5577 const char* var_class_name18;
5578 var_old_child = p0;
5579 var_new_child = p1;
5580 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AStarshipExpr> */
5581 if (unlikely(var == NULL)) {
5582 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
5583 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3708);
5584 show_backtrace(1);
5585 }
5586 {
5587 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
5588 var_other = var_old_child;
5589 {
5590 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
5591 var6 = var == var_other;
5592 var4 = var6;
5593 goto RET_LABEL5;
5594 RET_LABEL5:(void)0;
5595 }
5596 }
5597 var2 = var4;
5598 goto RET_LABEL3;
5599 RET_LABEL3:(void)0;
5600 }
5601 var1 = var2;
5602 }
5603 if (var1){
5604 /* <var_new_child:nullable ANode> isa AExpr */
5605 cltype = type_parser_nodes__AExpr.color;
5606 idtype = type_parser_nodes__AExpr.id;
5607 if(var_new_child == NULL) {
5608 var7 = 0;
5609 } else {
5610 if(cltype >= var_new_child->type->table_size) {
5611 var7 = 0;
5612 } else {
5613 var7 = var_new_child->type->type_table[cltype] == idtype;
5614 }
5615 }
5616 if (unlikely(!var7)) {
5617 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
5618 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
5619 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3709);
5620 show_backtrace(1);
5621 }
5622 {
5623 parser_prod__AStarshipExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AStarshipExpr#n_expr= on <self:AStarshipExpr>*/
5624 }
5625 goto RET_LABEL;
5626 } else {
5627 }
5628 var8 = self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AStarshipExpr> */
5629 if (unlikely(var8 == NULL)) {
5630 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
5631 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3712);
5632 show_backtrace(1);
5633 }
5634 {
5635 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExpr> */
5636 var_other = var_old_child;
5637 {
5638 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExpr> */
5639 var14 = var8 == var_other;
5640 var12 = var14;
5641 goto RET_LABEL13;
5642 RET_LABEL13:(void)0;
5643 }
5644 }
5645 var10 = var12;
5646 goto RET_LABEL11;
5647 RET_LABEL11:(void)0;
5648 }
5649 var9 = var10;
5650 }
5651 if (var9){
5652 /* <var_new_child:nullable ANode> isa AExpr */
5653 cltype16 = type_parser_nodes__AExpr.color;
5654 idtype17 = type_parser_nodes__AExpr.id;
5655 if(var_new_child == NULL) {
5656 var15 = 0;
5657 } else {
5658 if(cltype16 >= var_new_child->type->table_size) {
5659 var15 = 0;
5660 } else {
5661 var15 = var_new_child->type->type_table[cltype16] == idtype17;
5662 }
5663 }
5664 if (unlikely(!var15)) {
5665 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
5666 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name18);
5667 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3713);
5668 show_backtrace(1);
5669 }
5670 {
5671 parser_prod__AStarshipExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#AStarshipExpr#n_expr2= on <self:AStarshipExpr>*/
5672 }
5673 goto RET_LABEL;
5674 } else {
5675 }
5676 RET_LABEL:;
5677 }
5678 /* method parser_prod#AStarshipExpr#replace_child for (self: Object, ANode, nullable ANode) */
5679 void VIRTUAL_parser_prod__AStarshipExpr__replace_child(val* self, val* p0, val* p1) {
5680 parser_prod__AStarshipExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AStarshipExpr#replace_child on <self:Object(AStarshipExpr)>*/
5681 RET_LABEL:;
5682 }
5683 /* method parser_prod#AStarshipExpr#n_expr= for (self: AStarshipExpr, AExpr) */
5684 void parser_prod__AStarshipExpr__n_expr_61d(val* self, val* p0) {
5685 val* var_node /* var node: AExpr */;
5686 var_node = p0;
5687 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:AStarshipExpr> */
5688 {
5689 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
5690 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
5691 RET_LABEL1:(void)0;
5692 }
5693 }
5694 RET_LABEL:;
5695 }
5696 /* method parser_prod#AStarshipExpr#n_expr= for (self: Object, AExpr) */
5697 void VIRTUAL_parser_prod__AStarshipExpr__n_expr_61d(val* self, val* p0) {
5698 parser_prod__AStarshipExpr__n_expr_61d(self, p0); /* Direct call parser_prod#AStarshipExpr#n_expr= on <self:Object(AStarshipExpr)>*/
5699 RET_LABEL:;
5700 }
5701 /* method parser_prod#AStarshipExpr#n_expr2= for (self: AStarshipExpr, AExpr) */
5702 void parser_prod__AStarshipExpr__n_expr2_61d(val* self, val* p0) {
5703 val* var_node /* var node: AExpr */;
5704 var_node = p0;
5705 self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val = var_node; /* _n_expr2 on <self:AStarshipExpr> */
5706 {
5707 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
5708 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
5709 RET_LABEL1:(void)0;
5710 }
5711 }
5712 RET_LABEL:;
5713 }
5714 /* method parser_prod#AStarshipExpr#n_expr2= for (self: Object, AExpr) */
5715 void VIRTUAL_parser_prod__AStarshipExpr__n_expr2_61d(val* self, val* p0) {
5716 parser_prod__AStarshipExpr__n_expr2_61d(self, p0); /* Direct call parser_prod#AStarshipExpr#n_expr2= on <self:Object(AStarshipExpr)>*/
5717 RET_LABEL:;
5718 }
5719 /* method parser_prod#AStarshipExpr#visit_all for (self: AStarshipExpr, Visitor) */
5720 void parser_prod__AStarshipExpr__visit_all(val* self, val* p0) {
5721 val* var_v /* var v: Visitor */;
5722 val* var /* : AExpr */;
5723 val* var1 /* : AExpr */;
5724 var_v = p0;
5725 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AStarshipExpr> */
5726 if (unlikely(var == NULL)) {
5727 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
5728 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3732);
5729 show_backtrace(1);
5730 }
5731 {
5732 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
5733 }
5734 var1 = self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AStarshipExpr> */
5735 if (unlikely(var1 == NULL)) {
5736 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
5737 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3733);
5738 show_backtrace(1);
5739 }
5740 {
5741 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
5742 }
5743 RET_LABEL:;
5744 }
5745 /* method parser_prod#AStarshipExpr#visit_all for (self: Object, Visitor) */
5746 void VIRTUAL_parser_prod__AStarshipExpr__visit_all(val* self, val* p0) {
5747 parser_prod__AStarshipExpr__visit_all(self, p0); /* Direct call parser_prod#AStarshipExpr#visit_all on <self:Object(AStarshipExpr)>*/
5748 RET_LABEL:;
5749 }
5750 /* method parser_prod#AStarExpr#init_astarexpr for (self: AStarExpr, nullable AExpr, nullable AExpr) */
5751 void parser_prod__AStarExpr__init_astarexpr(val* self, val* p0, val* p1) {
5752 val* var_n_expr /* var n_expr: nullable AExpr */;
5753 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
5754 var_n_expr = p0;
5755 var_n_expr2 = p1;
5756 if (unlikely(var_n_expr == NULL)) {
5757 PRINT_ERROR("Runtime error: %s", "Cast failed");
5758 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3742);
5759 show_backtrace(1);
5760 }
5761 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AStarExpr> */
5762 if (var_n_expr == NULL) {
5763 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5764 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3743);
5765 show_backtrace(1);
5766 } else {
5767 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
5768 if (unlikely(var_n_expr == NULL)) {
5769 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5770 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
5771 show_backtrace(1);
5772 }
5773 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
5774 RET_LABEL1:(void)0;
5775 }
5776 }
5777 if (unlikely(var_n_expr2 == NULL)) {
5778 PRINT_ERROR("Runtime error: %s", "Cast failed");
5779 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3744);
5780 show_backtrace(1);
5781 }
5782 self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:AStarExpr> */
5783 if (var_n_expr2 == NULL) {
5784 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5785 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3745);
5786 show_backtrace(1);
5787 } else {
5788 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
5789 if (unlikely(var_n_expr2 == NULL)) {
5790 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5791 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
5792 show_backtrace(1);
5793 }
5794 var_n_expr2->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
5795 RET_LABEL2:(void)0;
5796 }
5797 }
5798 RET_LABEL:;
5799 }
5800 /* method parser_prod#AStarExpr#init_astarexpr for (self: Object, nullable AExpr, nullable AExpr) */
5801 void VIRTUAL_parser_prod__AStarExpr__init_astarexpr(val* self, val* p0, val* p1) {
5802 parser_prod__AStarExpr__init_astarexpr(self, p0, p1); /* Direct call parser_prod#AStarExpr#init_astarexpr on <self:Object(AStarExpr)>*/
5803 RET_LABEL:;
5804 }
5805 /* method parser_prod#AStarExpr#replace_child for (self: AStarExpr, ANode, nullable ANode) */
5806 void parser_prod__AStarExpr__replace_child(val* self, val* p0, val* p1) {
5807 val* var_old_child /* var old_child: ANode */;
5808 val* var_new_child /* var new_child: nullable ANode */;
5809 val* var /* : AExpr */;
5810 short int var1 /* : Bool */;
5811 short int var2 /* : Bool */;
5812 val* var_other /* var other: nullable Object */;
5813 short int var4 /* : Bool */;
5814 short int var6 /* : Bool */;
5815 short int var7 /* : Bool */;
5816 int cltype;
5817 int idtype;
5818 const char* var_class_name;
5819 val* var8 /* : AExpr */;
5820 short int var9 /* : Bool */;
5821 short int var10 /* : Bool */;
5822 short int var12 /* : Bool */;
5823 short int var14 /* : Bool */;
5824 short int var15 /* : Bool */;
5825 int cltype16;
5826 int idtype17;
5827 const char* var_class_name18;
5828 var_old_child = p0;
5829 var_new_child = p1;
5830 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AStarExpr> */
5831 if (unlikely(var == NULL)) {
5832 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
5833 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3750);
5834 show_backtrace(1);
5835 }
5836 {
5837 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
5838 var_other = var_old_child;
5839 {
5840 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
5841 var6 = var == var_other;
5842 var4 = var6;
5843 goto RET_LABEL5;
5844 RET_LABEL5:(void)0;
5845 }
5846 }
5847 var2 = var4;
5848 goto RET_LABEL3;
5849 RET_LABEL3:(void)0;
5850 }
5851 var1 = var2;
5852 }
5853 if (var1){
5854 /* <var_new_child:nullable ANode> isa AExpr */
5855 cltype = type_parser_nodes__AExpr.color;
5856 idtype = type_parser_nodes__AExpr.id;
5857 if(var_new_child == NULL) {
5858 var7 = 0;
5859 } else {
5860 if(cltype >= var_new_child->type->table_size) {
5861 var7 = 0;
5862 } else {
5863 var7 = var_new_child->type->type_table[cltype] == idtype;
5864 }
5865 }
5866 if (unlikely(!var7)) {
5867 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
5868 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
5869 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3751);
5870 show_backtrace(1);
5871 }
5872 {
5873 parser_prod__AStarExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AStarExpr#n_expr= on <self:AStarExpr>*/
5874 }
5875 goto RET_LABEL;
5876 } else {
5877 }
5878 var8 = self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AStarExpr> */
5879 if (unlikely(var8 == NULL)) {
5880 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
5881 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3754);
5882 show_backtrace(1);
5883 }
5884 {
5885 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExpr> */
5886 var_other = var_old_child;
5887 {
5888 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExpr> */
5889 var14 = var8 == var_other;
5890 var12 = var14;
5891 goto RET_LABEL13;
5892 RET_LABEL13:(void)0;
5893 }
5894 }
5895 var10 = var12;
5896 goto RET_LABEL11;
5897 RET_LABEL11:(void)0;
5898 }
5899 var9 = var10;
5900 }
5901 if (var9){
5902 /* <var_new_child:nullable ANode> isa AExpr */
5903 cltype16 = type_parser_nodes__AExpr.color;
5904 idtype17 = type_parser_nodes__AExpr.id;
5905 if(var_new_child == NULL) {
5906 var15 = 0;
5907 } else {
5908 if(cltype16 >= var_new_child->type->table_size) {
5909 var15 = 0;
5910 } else {
5911 var15 = var_new_child->type->type_table[cltype16] == idtype17;
5912 }
5913 }
5914 if (unlikely(!var15)) {
5915 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
5916 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name18);
5917 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3755);
5918 show_backtrace(1);
5919 }
5920 {
5921 parser_prod__AStarExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#AStarExpr#n_expr2= on <self:AStarExpr>*/
5922 }
5923 goto RET_LABEL;
5924 } else {
5925 }
5926 RET_LABEL:;
5927 }
5928 /* method parser_prod#AStarExpr#replace_child for (self: Object, ANode, nullable ANode) */
5929 void VIRTUAL_parser_prod__AStarExpr__replace_child(val* self, val* p0, val* p1) {
5930 parser_prod__AStarExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AStarExpr#replace_child on <self:Object(AStarExpr)>*/
5931 RET_LABEL:;
5932 }
5933 /* method parser_prod#AStarExpr#n_expr= for (self: AStarExpr, AExpr) */
5934 void parser_prod__AStarExpr__n_expr_61d(val* self, val* p0) {
5935 val* var_node /* var node: AExpr */;
5936 var_node = p0;
5937 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:AStarExpr> */
5938 {
5939 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
5940 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
5941 RET_LABEL1:(void)0;
5942 }
5943 }
5944 RET_LABEL:;
5945 }
5946 /* method parser_prod#AStarExpr#n_expr= for (self: Object, AExpr) */
5947 void VIRTUAL_parser_prod__AStarExpr__n_expr_61d(val* self, val* p0) {
5948 parser_prod__AStarExpr__n_expr_61d(self, p0); /* Direct call parser_prod#AStarExpr#n_expr= on <self:Object(AStarExpr)>*/
5949 RET_LABEL:;
5950 }
5951 /* method parser_prod#AStarExpr#n_expr2= for (self: AStarExpr, AExpr) */
5952 void parser_prod__AStarExpr__n_expr2_61d(val* self, val* p0) {
5953 val* var_node /* var node: AExpr */;
5954 var_node = p0;
5955 self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val = var_node; /* _n_expr2 on <self:AStarExpr> */
5956 {
5957 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
5958 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
5959 RET_LABEL1:(void)0;
5960 }
5961 }
5962 RET_LABEL:;
5963 }
5964 /* method parser_prod#AStarExpr#n_expr2= for (self: Object, AExpr) */
5965 void VIRTUAL_parser_prod__AStarExpr__n_expr2_61d(val* self, val* p0) {
5966 parser_prod__AStarExpr__n_expr2_61d(self, p0); /* Direct call parser_prod#AStarExpr#n_expr2= on <self:Object(AStarExpr)>*/
5967 RET_LABEL:;
5968 }
5969 /* method parser_prod#AStarExpr#visit_all for (self: AStarExpr, Visitor) */
5970 void parser_prod__AStarExpr__visit_all(val* self, val* p0) {
5971 val* var_v /* var v: Visitor */;
5972 val* var /* : AExpr */;
5973 val* var1 /* : AExpr */;
5974 var_v = p0;
5975 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AStarExpr> */
5976 if (unlikely(var == NULL)) {
5977 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
5978 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3774);
5979 show_backtrace(1);
5980 }
5981 {
5982 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
5983 }
5984 var1 = self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AStarExpr> */
5985 if (unlikely(var1 == NULL)) {
5986 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
5987 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3775);
5988 show_backtrace(1);
5989 }
5990 {
5991 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
5992 }
5993 RET_LABEL:;
5994 }
5995 /* method parser_prod#AStarExpr#visit_all for (self: Object, Visitor) */
5996 void VIRTUAL_parser_prod__AStarExpr__visit_all(val* self, val* p0) {
5997 parser_prod__AStarExpr__visit_all(self, p0); /* Direct call parser_prod#AStarExpr#visit_all on <self:Object(AStarExpr)>*/
5998 RET_LABEL:;
5999 }
6000 /* method parser_prod#AStarstarExpr#init_astarstarexpr for (self: AStarstarExpr, nullable AExpr, nullable AExpr) */
6001 void parser_prod__AStarstarExpr__init_astarstarexpr(val* self, val* p0, val* p1) {
6002 val* var_n_expr /* var n_expr: nullable AExpr */;
6003 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
6004 var_n_expr = p0;
6005 var_n_expr2 = p1;
6006 if (unlikely(var_n_expr == NULL)) {
6007 PRINT_ERROR("Runtime error: %s", "Cast failed");
6008 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3784);
6009 show_backtrace(1);
6010 }
6011 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AStarstarExpr> */
6012 if (var_n_expr == NULL) {
6013 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6014 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3785);
6015 show_backtrace(1);
6016 } else {
6017 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
6018 if (unlikely(var_n_expr == NULL)) {
6019 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6020 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
6021 show_backtrace(1);
6022 }
6023 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
6024 RET_LABEL1:(void)0;
6025 }
6026 }
6027 if (unlikely(var_n_expr2 == NULL)) {
6028 PRINT_ERROR("Runtime error: %s", "Cast failed");
6029 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3786);
6030 show_backtrace(1);
6031 }
6032 self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:AStarstarExpr> */
6033 if (var_n_expr2 == NULL) {
6034 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6035 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3787);
6036 show_backtrace(1);
6037 } else {
6038 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
6039 if (unlikely(var_n_expr2 == NULL)) {
6040 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6041 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
6042 show_backtrace(1);
6043 }
6044 var_n_expr2->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
6045 RET_LABEL2:(void)0;
6046 }
6047 }
6048 RET_LABEL:;
6049 }
6050 /* method parser_prod#AStarstarExpr#init_astarstarexpr for (self: Object, nullable AExpr, nullable AExpr) */
6051 void VIRTUAL_parser_prod__AStarstarExpr__init_astarstarexpr(val* self, val* p0, val* p1) {
6052 parser_prod__AStarstarExpr__init_astarstarexpr(self, p0, p1); /* Direct call parser_prod#AStarstarExpr#init_astarstarexpr on <self:Object(AStarstarExpr)>*/
6053 RET_LABEL:;
6054 }
6055 /* method parser_prod#AStarstarExpr#replace_child for (self: AStarstarExpr, ANode, nullable ANode) */
6056 void parser_prod__AStarstarExpr__replace_child(val* self, val* p0, val* p1) {
6057 val* var_old_child /* var old_child: ANode */;
6058 val* var_new_child /* var new_child: nullable ANode */;
6059 val* var /* : AExpr */;
6060 short int var1 /* : Bool */;
6061 short int var2 /* : Bool */;
6062 val* var_other /* var other: nullable Object */;
6063 short int var4 /* : Bool */;
6064 short int var6 /* : Bool */;
6065 short int var7 /* : Bool */;
6066 int cltype;
6067 int idtype;
6068 const char* var_class_name;
6069 val* var8 /* : AExpr */;
6070 short int var9 /* : Bool */;
6071 short int var10 /* : Bool */;
6072 short int var12 /* : Bool */;
6073 short int var14 /* : Bool */;
6074 short int var15 /* : Bool */;
6075 int cltype16;
6076 int idtype17;
6077 const char* var_class_name18;
6078 var_old_child = p0;
6079 var_new_child = p1;
6080 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AStarstarExpr> */
6081 if (unlikely(var == NULL)) {
6082 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
6083 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3792);
6084 show_backtrace(1);
6085 }
6086 {
6087 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
6088 var_other = var_old_child;
6089 {
6090 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
6091 var6 = var == var_other;
6092 var4 = var6;
6093 goto RET_LABEL5;
6094 RET_LABEL5:(void)0;
6095 }
6096 }
6097 var2 = var4;
6098 goto RET_LABEL3;
6099 RET_LABEL3:(void)0;
6100 }
6101 var1 = var2;
6102 }
6103 if (var1){
6104 /* <var_new_child:nullable ANode> isa AExpr */
6105 cltype = type_parser_nodes__AExpr.color;
6106 idtype = type_parser_nodes__AExpr.id;
6107 if(var_new_child == NULL) {
6108 var7 = 0;
6109 } else {
6110 if(cltype >= var_new_child->type->table_size) {
6111 var7 = 0;
6112 } else {
6113 var7 = var_new_child->type->type_table[cltype] == idtype;
6114 }
6115 }
6116 if (unlikely(!var7)) {
6117 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
6118 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
6119 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3793);
6120 show_backtrace(1);
6121 }
6122 {
6123 parser_prod__AStarstarExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AStarstarExpr#n_expr= on <self:AStarstarExpr>*/
6124 }
6125 goto RET_LABEL;
6126 } else {
6127 }
6128 var8 = self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AStarstarExpr> */
6129 if (unlikely(var8 == NULL)) {
6130 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
6131 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3796);
6132 show_backtrace(1);
6133 }
6134 {
6135 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExpr> */
6136 var_other = var_old_child;
6137 {
6138 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExpr> */
6139 var14 = var8 == var_other;
6140 var12 = var14;
6141 goto RET_LABEL13;
6142 RET_LABEL13:(void)0;
6143 }
6144 }
6145 var10 = var12;
6146 goto RET_LABEL11;
6147 RET_LABEL11:(void)0;
6148 }
6149 var9 = var10;
6150 }
6151 if (var9){
6152 /* <var_new_child:nullable ANode> isa AExpr */
6153 cltype16 = type_parser_nodes__AExpr.color;
6154 idtype17 = type_parser_nodes__AExpr.id;
6155 if(var_new_child == NULL) {
6156 var15 = 0;
6157 } else {
6158 if(cltype16 >= var_new_child->type->table_size) {
6159 var15 = 0;
6160 } else {
6161 var15 = var_new_child->type->type_table[cltype16] == idtype17;
6162 }
6163 }
6164 if (unlikely(!var15)) {
6165 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
6166 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name18);
6167 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3797);
6168 show_backtrace(1);
6169 }
6170 {
6171 parser_prod__AStarstarExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#AStarstarExpr#n_expr2= on <self:AStarstarExpr>*/
6172 }
6173 goto RET_LABEL;
6174 } else {
6175 }
6176 RET_LABEL:;
6177 }
6178 /* method parser_prod#AStarstarExpr#replace_child for (self: Object, ANode, nullable ANode) */
6179 void VIRTUAL_parser_prod__AStarstarExpr__replace_child(val* self, val* p0, val* p1) {
6180 parser_prod__AStarstarExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AStarstarExpr#replace_child on <self:Object(AStarstarExpr)>*/
6181 RET_LABEL:;
6182 }
6183 /* method parser_prod#AStarstarExpr#n_expr= for (self: AStarstarExpr, AExpr) */
6184 void parser_prod__AStarstarExpr__n_expr_61d(val* self, val* p0) {
6185 val* var_node /* var node: AExpr */;
6186 var_node = p0;
6187 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:AStarstarExpr> */
6188 {
6189 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
6190 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
6191 RET_LABEL1:(void)0;
6192 }
6193 }
6194 RET_LABEL:;
6195 }
6196 /* method parser_prod#AStarstarExpr#n_expr= for (self: Object, AExpr) */
6197 void VIRTUAL_parser_prod__AStarstarExpr__n_expr_61d(val* self, val* p0) {
6198 parser_prod__AStarstarExpr__n_expr_61d(self, p0); /* Direct call parser_prod#AStarstarExpr#n_expr= on <self:Object(AStarstarExpr)>*/
6199 RET_LABEL:;
6200 }
6201 /* method parser_prod#AStarstarExpr#n_expr2= for (self: AStarstarExpr, AExpr) */
6202 void parser_prod__AStarstarExpr__n_expr2_61d(val* self, val* p0) {
6203 val* var_node /* var node: AExpr */;
6204 var_node = p0;
6205 self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val = var_node; /* _n_expr2 on <self:AStarstarExpr> */
6206 {
6207 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
6208 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
6209 RET_LABEL1:(void)0;
6210 }
6211 }
6212 RET_LABEL:;
6213 }
6214 /* method parser_prod#AStarstarExpr#n_expr2= for (self: Object, AExpr) */
6215 void VIRTUAL_parser_prod__AStarstarExpr__n_expr2_61d(val* self, val* p0) {
6216 parser_prod__AStarstarExpr__n_expr2_61d(self, p0); /* Direct call parser_prod#AStarstarExpr#n_expr2= on <self:Object(AStarstarExpr)>*/
6217 RET_LABEL:;
6218 }
6219 /* method parser_prod#AStarstarExpr#visit_all for (self: AStarstarExpr, Visitor) */
6220 void parser_prod__AStarstarExpr__visit_all(val* self, val* p0) {
6221 val* var_v /* var v: Visitor */;
6222 val* var /* : AExpr */;
6223 val* var1 /* : AExpr */;
6224 var_v = p0;
6225 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AStarstarExpr> */
6226 if (unlikely(var == NULL)) {
6227 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
6228 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3816);
6229 show_backtrace(1);
6230 }
6231 {
6232 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6233 }
6234 var1 = self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AStarstarExpr> */
6235 if (unlikely(var1 == NULL)) {
6236 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
6237 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3817);
6238 show_backtrace(1);
6239 }
6240 {
6241 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6242 }
6243 RET_LABEL:;
6244 }
6245 /* method parser_prod#AStarstarExpr#visit_all for (self: Object, Visitor) */
6246 void VIRTUAL_parser_prod__AStarstarExpr__visit_all(val* self, val* p0) {
6247 parser_prod__AStarstarExpr__visit_all(self, p0); /* Direct call parser_prod#AStarstarExpr#visit_all on <self:Object(AStarstarExpr)>*/
6248 RET_LABEL:;
6249 }
6250 /* method parser_prod#ASlashExpr#init_aslashexpr for (self: ASlashExpr, nullable AExpr, nullable AExpr) */
6251 void parser_prod__ASlashExpr__init_aslashexpr(val* self, val* p0, val* p1) {
6252 val* var_n_expr /* var n_expr: nullable AExpr */;
6253 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
6254 var_n_expr = p0;
6255 var_n_expr2 = p1;
6256 if (unlikely(var_n_expr == NULL)) {
6257 PRINT_ERROR("Runtime error: %s", "Cast failed");
6258 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3826);
6259 show_backtrace(1);
6260 }
6261 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:ASlashExpr> */
6262 if (var_n_expr == NULL) {
6263 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6264 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3827);
6265 show_backtrace(1);
6266 } else {
6267 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
6268 if (unlikely(var_n_expr == NULL)) {
6269 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6270 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
6271 show_backtrace(1);
6272 }
6273 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
6274 RET_LABEL1:(void)0;
6275 }
6276 }
6277 if (unlikely(var_n_expr2 == NULL)) {
6278 PRINT_ERROR("Runtime error: %s", "Cast failed");
6279 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3828);
6280 show_backtrace(1);
6281 }
6282 self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:ASlashExpr> */
6283 if (var_n_expr2 == NULL) {
6284 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6285 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3829);
6286 show_backtrace(1);
6287 } else {
6288 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
6289 if (unlikely(var_n_expr2 == NULL)) {
6290 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6291 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
6292 show_backtrace(1);
6293 }
6294 var_n_expr2->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
6295 RET_LABEL2:(void)0;
6296 }
6297 }
6298 RET_LABEL:;
6299 }
6300 /* method parser_prod#ASlashExpr#init_aslashexpr for (self: Object, nullable AExpr, nullable AExpr) */
6301 void VIRTUAL_parser_prod__ASlashExpr__init_aslashexpr(val* self, val* p0, val* p1) {
6302 parser_prod__ASlashExpr__init_aslashexpr(self, p0, p1); /* Direct call parser_prod#ASlashExpr#init_aslashexpr on <self:Object(ASlashExpr)>*/
6303 RET_LABEL:;
6304 }
6305 /* method parser_prod#ASlashExpr#replace_child for (self: ASlashExpr, ANode, nullable ANode) */
6306 void parser_prod__ASlashExpr__replace_child(val* self, val* p0, val* p1) {
6307 val* var_old_child /* var old_child: ANode */;
6308 val* var_new_child /* var new_child: nullable ANode */;
6309 val* var /* : AExpr */;
6310 short int var1 /* : Bool */;
6311 short int var2 /* : Bool */;
6312 val* var_other /* var other: nullable Object */;
6313 short int var4 /* : Bool */;
6314 short int var6 /* : Bool */;
6315 short int var7 /* : Bool */;
6316 int cltype;
6317 int idtype;
6318 const char* var_class_name;
6319 val* var8 /* : AExpr */;
6320 short int var9 /* : Bool */;
6321 short int var10 /* : Bool */;
6322 short int var12 /* : Bool */;
6323 short int var14 /* : Bool */;
6324 short int var15 /* : Bool */;
6325 int cltype16;
6326 int idtype17;
6327 const char* var_class_name18;
6328 var_old_child = p0;
6329 var_new_child = p1;
6330 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ASlashExpr> */
6331 if (unlikely(var == NULL)) {
6332 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
6333 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3834);
6334 show_backtrace(1);
6335 }
6336 {
6337 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
6338 var_other = var_old_child;
6339 {
6340 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
6341 var6 = var == var_other;
6342 var4 = var6;
6343 goto RET_LABEL5;
6344 RET_LABEL5:(void)0;
6345 }
6346 }
6347 var2 = var4;
6348 goto RET_LABEL3;
6349 RET_LABEL3:(void)0;
6350 }
6351 var1 = var2;
6352 }
6353 if (var1){
6354 /* <var_new_child:nullable ANode> isa AExpr */
6355 cltype = type_parser_nodes__AExpr.color;
6356 idtype = type_parser_nodes__AExpr.id;
6357 if(var_new_child == NULL) {
6358 var7 = 0;
6359 } else {
6360 if(cltype >= var_new_child->type->table_size) {
6361 var7 = 0;
6362 } else {
6363 var7 = var_new_child->type->type_table[cltype] == idtype;
6364 }
6365 }
6366 if (unlikely(!var7)) {
6367 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
6368 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
6369 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3835);
6370 show_backtrace(1);
6371 }
6372 {
6373 parser_prod__ASlashExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#ASlashExpr#n_expr= on <self:ASlashExpr>*/
6374 }
6375 goto RET_LABEL;
6376 } else {
6377 }
6378 var8 = self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:ASlashExpr> */
6379 if (unlikely(var8 == NULL)) {
6380 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
6381 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3838);
6382 show_backtrace(1);
6383 }
6384 {
6385 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExpr> */
6386 var_other = var_old_child;
6387 {
6388 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExpr> */
6389 var14 = var8 == var_other;
6390 var12 = var14;
6391 goto RET_LABEL13;
6392 RET_LABEL13:(void)0;
6393 }
6394 }
6395 var10 = var12;
6396 goto RET_LABEL11;
6397 RET_LABEL11:(void)0;
6398 }
6399 var9 = var10;
6400 }
6401 if (var9){
6402 /* <var_new_child:nullable ANode> isa AExpr */
6403 cltype16 = type_parser_nodes__AExpr.color;
6404 idtype17 = type_parser_nodes__AExpr.id;
6405 if(var_new_child == NULL) {
6406 var15 = 0;
6407 } else {
6408 if(cltype16 >= var_new_child->type->table_size) {
6409 var15 = 0;
6410 } else {
6411 var15 = var_new_child->type->type_table[cltype16] == idtype17;
6412 }
6413 }
6414 if (unlikely(!var15)) {
6415 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
6416 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name18);
6417 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3839);
6418 show_backtrace(1);
6419 }
6420 {
6421 parser_prod__ASlashExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#ASlashExpr#n_expr2= on <self:ASlashExpr>*/
6422 }
6423 goto RET_LABEL;
6424 } else {
6425 }
6426 RET_LABEL:;
6427 }
6428 /* method parser_prod#ASlashExpr#replace_child for (self: Object, ANode, nullable ANode) */
6429 void VIRTUAL_parser_prod__ASlashExpr__replace_child(val* self, val* p0, val* p1) {
6430 parser_prod__ASlashExpr__replace_child(self, p0, p1); /* Direct call parser_prod#ASlashExpr#replace_child on <self:Object(ASlashExpr)>*/
6431 RET_LABEL:;
6432 }
6433 /* method parser_prod#ASlashExpr#n_expr= for (self: ASlashExpr, AExpr) */
6434 void parser_prod__ASlashExpr__n_expr_61d(val* self, val* p0) {
6435 val* var_node /* var node: AExpr */;
6436 var_node = p0;
6437 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:ASlashExpr> */
6438 {
6439 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
6440 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
6441 RET_LABEL1:(void)0;
6442 }
6443 }
6444 RET_LABEL:;
6445 }
6446 /* method parser_prod#ASlashExpr#n_expr= for (self: Object, AExpr) */
6447 void VIRTUAL_parser_prod__ASlashExpr__n_expr_61d(val* self, val* p0) {
6448 parser_prod__ASlashExpr__n_expr_61d(self, p0); /* Direct call parser_prod#ASlashExpr#n_expr= on <self:Object(ASlashExpr)>*/
6449 RET_LABEL:;
6450 }
6451 /* method parser_prod#ASlashExpr#n_expr2= for (self: ASlashExpr, AExpr) */
6452 void parser_prod__ASlashExpr__n_expr2_61d(val* self, val* p0) {
6453 val* var_node /* var node: AExpr */;
6454 var_node = p0;
6455 self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val = var_node; /* _n_expr2 on <self:ASlashExpr> */
6456 {
6457 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
6458 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
6459 RET_LABEL1:(void)0;
6460 }
6461 }
6462 RET_LABEL:;
6463 }
6464 /* method parser_prod#ASlashExpr#n_expr2= for (self: Object, AExpr) */
6465 void VIRTUAL_parser_prod__ASlashExpr__n_expr2_61d(val* self, val* p0) {
6466 parser_prod__ASlashExpr__n_expr2_61d(self, p0); /* Direct call parser_prod#ASlashExpr#n_expr2= on <self:Object(ASlashExpr)>*/
6467 RET_LABEL:;
6468 }
6469 /* method parser_prod#ASlashExpr#visit_all for (self: ASlashExpr, Visitor) */
6470 void parser_prod__ASlashExpr__visit_all(val* self, val* p0) {
6471 val* var_v /* var v: Visitor */;
6472 val* var /* : AExpr */;
6473 val* var1 /* : AExpr */;
6474 var_v = p0;
6475 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ASlashExpr> */
6476 if (unlikely(var == NULL)) {
6477 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
6478 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3858);
6479 show_backtrace(1);
6480 }
6481 {
6482 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6483 }
6484 var1 = self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:ASlashExpr> */
6485 if (unlikely(var1 == NULL)) {
6486 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
6487 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3859);
6488 show_backtrace(1);
6489 }
6490 {
6491 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6492 }
6493 RET_LABEL:;
6494 }
6495 /* method parser_prod#ASlashExpr#visit_all for (self: Object, Visitor) */
6496 void VIRTUAL_parser_prod__ASlashExpr__visit_all(val* self, val* p0) {
6497 parser_prod__ASlashExpr__visit_all(self, p0); /* Direct call parser_prod#ASlashExpr#visit_all on <self:Object(ASlashExpr)>*/
6498 RET_LABEL:;
6499 }
6500 /* method parser_prod#APercentExpr#init_apercentexpr for (self: APercentExpr, nullable AExpr, nullable AExpr) */
6501 void parser_prod__APercentExpr__init_apercentexpr(val* self, val* p0, val* p1) {
6502 val* var_n_expr /* var n_expr: nullable AExpr */;
6503 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
6504 var_n_expr = p0;
6505 var_n_expr2 = p1;
6506 if (unlikely(var_n_expr == NULL)) {
6507 PRINT_ERROR("Runtime error: %s", "Cast failed");
6508 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3868);
6509 show_backtrace(1);
6510 }
6511 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:APercentExpr> */
6512 if (var_n_expr == NULL) {
6513 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6514 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3869);
6515 show_backtrace(1);
6516 } else {
6517 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
6518 if (unlikely(var_n_expr == NULL)) {
6519 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6520 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
6521 show_backtrace(1);
6522 }
6523 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
6524 RET_LABEL1:(void)0;
6525 }
6526 }
6527 if (unlikely(var_n_expr2 == NULL)) {
6528 PRINT_ERROR("Runtime error: %s", "Cast failed");
6529 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3870);
6530 show_backtrace(1);
6531 }
6532 self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:APercentExpr> */
6533 if (var_n_expr2 == NULL) {
6534 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6535 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3871);
6536 show_backtrace(1);
6537 } else {
6538 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
6539 if (unlikely(var_n_expr2 == NULL)) {
6540 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6541 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
6542 show_backtrace(1);
6543 }
6544 var_n_expr2->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
6545 RET_LABEL2:(void)0;
6546 }
6547 }
6548 RET_LABEL:;
6549 }
6550 /* method parser_prod#APercentExpr#init_apercentexpr for (self: Object, nullable AExpr, nullable AExpr) */
6551 void VIRTUAL_parser_prod__APercentExpr__init_apercentexpr(val* self, val* p0, val* p1) {
6552 parser_prod__APercentExpr__init_apercentexpr(self, p0, p1); /* Direct call parser_prod#APercentExpr#init_apercentexpr on <self:Object(APercentExpr)>*/
6553 RET_LABEL:;
6554 }
6555 /* method parser_prod#APercentExpr#replace_child for (self: APercentExpr, ANode, nullable ANode) */
6556 void parser_prod__APercentExpr__replace_child(val* self, val* p0, val* p1) {
6557 val* var_old_child /* var old_child: ANode */;
6558 val* var_new_child /* var new_child: nullable ANode */;
6559 val* var /* : AExpr */;
6560 short int var1 /* : Bool */;
6561 short int var2 /* : Bool */;
6562 val* var_other /* var other: nullable Object */;
6563 short int var4 /* : Bool */;
6564 short int var6 /* : Bool */;
6565 short int var7 /* : Bool */;
6566 int cltype;
6567 int idtype;
6568 const char* var_class_name;
6569 val* var8 /* : AExpr */;
6570 short int var9 /* : Bool */;
6571 short int var10 /* : Bool */;
6572 short int var12 /* : Bool */;
6573 short int var14 /* : Bool */;
6574 short int var15 /* : Bool */;
6575 int cltype16;
6576 int idtype17;
6577 const char* var_class_name18;
6578 var_old_child = p0;
6579 var_new_child = p1;
6580 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:APercentExpr> */
6581 if (unlikely(var == NULL)) {
6582 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
6583 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3876);
6584 show_backtrace(1);
6585 }
6586 {
6587 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
6588 var_other = var_old_child;
6589 {
6590 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
6591 var6 = var == var_other;
6592 var4 = var6;
6593 goto RET_LABEL5;
6594 RET_LABEL5:(void)0;
6595 }
6596 }
6597 var2 = var4;
6598 goto RET_LABEL3;
6599 RET_LABEL3:(void)0;
6600 }
6601 var1 = var2;
6602 }
6603 if (var1){
6604 /* <var_new_child:nullable ANode> isa AExpr */
6605 cltype = type_parser_nodes__AExpr.color;
6606 idtype = type_parser_nodes__AExpr.id;
6607 if(var_new_child == NULL) {
6608 var7 = 0;
6609 } else {
6610 if(cltype >= var_new_child->type->table_size) {
6611 var7 = 0;
6612 } else {
6613 var7 = var_new_child->type->type_table[cltype] == idtype;
6614 }
6615 }
6616 if (unlikely(!var7)) {
6617 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
6618 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
6619 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3877);
6620 show_backtrace(1);
6621 }
6622 {
6623 parser_prod__APercentExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#APercentExpr#n_expr= on <self:APercentExpr>*/
6624 }
6625 goto RET_LABEL;
6626 } else {
6627 }
6628 var8 = self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:APercentExpr> */
6629 if (unlikely(var8 == NULL)) {
6630 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
6631 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3880);
6632 show_backtrace(1);
6633 }
6634 {
6635 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExpr> */
6636 var_other = var_old_child;
6637 {
6638 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExpr> */
6639 var14 = var8 == var_other;
6640 var12 = var14;
6641 goto RET_LABEL13;
6642 RET_LABEL13:(void)0;
6643 }
6644 }
6645 var10 = var12;
6646 goto RET_LABEL11;
6647 RET_LABEL11:(void)0;
6648 }
6649 var9 = var10;
6650 }
6651 if (var9){
6652 /* <var_new_child:nullable ANode> isa AExpr */
6653 cltype16 = type_parser_nodes__AExpr.color;
6654 idtype17 = type_parser_nodes__AExpr.id;
6655 if(var_new_child == NULL) {
6656 var15 = 0;
6657 } else {
6658 if(cltype16 >= var_new_child->type->table_size) {
6659 var15 = 0;
6660 } else {
6661 var15 = var_new_child->type->type_table[cltype16] == idtype17;
6662 }
6663 }
6664 if (unlikely(!var15)) {
6665 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
6666 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name18);
6667 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3881);
6668 show_backtrace(1);
6669 }
6670 {
6671 parser_prod__APercentExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#APercentExpr#n_expr2= on <self:APercentExpr>*/
6672 }
6673 goto RET_LABEL;
6674 } else {
6675 }
6676 RET_LABEL:;
6677 }
6678 /* method parser_prod#APercentExpr#replace_child for (self: Object, ANode, nullable ANode) */
6679 void VIRTUAL_parser_prod__APercentExpr__replace_child(val* self, val* p0, val* p1) {
6680 parser_prod__APercentExpr__replace_child(self, p0, p1); /* Direct call parser_prod#APercentExpr#replace_child on <self:Object(APercentExpr)>*/
6681 RET_LABEL:;
6682 }
6683 /* method parser_prod#APercentExpr#n_expr= for (self: APercentExpr, AExpr) */
6684 void parser_prod__APercentExpr__n_expr_61d(val* self, val* p0) {
6685 val* var_node /* var node: AExpr */;
6686 var_node = p0;
6687 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:APercentExpr> */
6688 {
6689 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
6690 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
6691 RET_LABEL1:(void)0;
6692 }
6693 }
6694 RET_LABEL:;
6695 }
6696 /* method parser_prod#APercentExpr#n_expr= for (self: Object, AExpr) */
6697 void VIRTUAL_parser_prod__APercentExpr__n_expr_61d(val* self, val* p0) {
6698 parser_prod__APercentExpr__n_expr_61d(self, p0); /* Direct call parser_prod#APercentExpr#n_expr= on <self:Object(APercentExpr)>*/
6699 RET_LABEL:;
6700 }
6701 /* method parser_prod#APercentExpr#n_expr2= for (self: APercentExpr, AExpr) */
6702 void parser_prod__APercentExpr__n_expr2_61d(val* self, val* p0) {
6703 val* var_node /* var node: AExpr */;
6704 var_node = p0;
6705 self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val = var_node; /* _n_expr2 on <self:APercentExpr> */
6706 {
6707 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
6708 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
6709 RET_LABEL1:(void)0;
6710 }
6711 }
6712 RET_LABEL:;
6713 }
6714 /* method parser_prod#APercentExpr#n_expr2= for (self: Object, AExpr) */
6715 void VIRTUAL_parser_prod__APercentExpr__n_expr2_61d(val* self, val* p0) {
6716 parser_prod__APercentExpr__n_expr2_61d(self, p0); /* Direct call parser_prod#APercentExpr#n_expr2= on <self:Object(APercentExpr)>*/
6717 RET_LABEL:;
6718 }
6719 /* method parser_prod#APercentExpr#visit_all for (self: APercentExpr, Visitor) */
6720 void parser_prod__APercentExpr__visit_all(val* self, val* p0) {
6721 val* var_v /* var v: Visitor */;
6722 val* var /* : AExpr */;
6723 val* var1 /* : AExpr */;
6724 var_v = p0;
6725 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:APercentExpr> */
6726 if (unlikely(var == NULL)) {
6727 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
6728 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3900);
6729 show_backtrace(1);
6730 }
6731 {
6732 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6733 }
6734 var1 = self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:APercentExpr> */
6735 if (unlikely(var1 == NULL)) {
6736 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
6737 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3901);
6738 show_backtrace(1);
6739 }
6740 {
6741 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6742 }
6743 RET_LABEL:;
6744 }
6745 /* method parser_prod#APercentExpr#visit_all for (self: Object, Visitor) */
6746 void VIRTUAL_parser_prod__APercentExpr__visit_all(val* self, val* p0) {
6747 parser_prod__APercentExpr__visit_all(self, p0); /* Direct call parser_prod#APercentExpr#visit_all on <self:Object(APercentExpr)>*/
6748 RET_LABEL:;
6749 }
6750 /* method parser_prod#AUminusExpr#init_auminusexpr for (self: AUminusExpr, nullable TMinus, nullable AExpr) */
6751 void parser_prod__AUminusExpr__init_auminusexpr(val* self, val* p0, val* p1) {
6752 val* var_n_minus /* var n_minus: nullable TMinus */;
6753 val* var_n_expr /* var n_expr: nullable AExpr */;
6754 var_n_minus = p0;
6755 var_n_expr = p1;
6756 if (unlikely(var_n_minus == NULL)) {
6757 PRINT_ERROR("Runtime error: %s", "Cast failed");
6758 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3910);
6759 show_backtrace(1);
6760 }
6761 self->attrs[COLOR_parser_nodes__AUminusExpr___n_minus].val = var_n_minus; /* _n_minus on <self:AUminusExpr> */
6762 if (var_n_minus == NULL) {
6763 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6764 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3911);
6765 show_backtrace(1);
6766 } else {
6767 { /* Inline parser_nodes#ANode#parent= (var_n_minus,self) on <var_n_minus:nullable TMinus> */
6768 if (unlikely(var_n_minus == NULL)) {
6769 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6770 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
6771 show_backtrace(1);
6772 }
6773 var_n_minus->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_minus:nullable TMinus> */
6774 RET_LABEL1:(void)0;
6775 }
6776 }
6777 if (unlikely(var_n_expr == NULL)) {
6778 PRINT_ERROR("Runtime error: %s", "Cast failed");
6779 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3912);
6780 show_backtrace(1);
6781 }
6782 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AUminusExpr> */
6783 if (var_n_expr == NULL) {
6784 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6785 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3913);
6786 show_backtrace(1);
6787 } else {
6788 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
6789 if (unlikely(var_n_expr == NULL)) {
6790 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6791 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
6792 show_backtrace(1);
6793 }
6794 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
6795 RET_LABEL2:(void)0;
6796 }
6797 }
6798 RET_LABEL:;
6799 }
6800 /* method parser_prod#AUminusExpr#init_auminusexpr for (self: Object, nullable TMinus, nullable AExpr) */
6801 void VIRTUAL_parser_prod__AUminusExpr__init_auminusexpr(val* self, val* p0, val* p1) {
6802 parser_prod__AUminusExpr__init_auminusexpr(self, p0, p1); /* Direct call parser_prod#AUminusExpr#init_auminusexpr on <self:Object(AUminusExpr)>*/
6803 RET_LABEL:;
6804 }
6805 /* method parser_prod#AUminusExpr#replace_child for (self: AUminusExpr, ANode, nullable ANode) */
6806 void parser_prod__AUminusExpr__replace_child(val* self, val* p0, val* p1) {
6807 val* var_old_child /* var old_child: ANode */;
6808 val* var_new_child /* var new_child: nullable ANode */;
6809 val* var /* : TMinus */;
6810 short int var1 /* : Bool */;
6811 short int var2 /* : Bool */;
6812 val* var_other /* var other: nullable Object */;
6813 short int var4 /* : Bool */;
6814 short int var6 /* : Bool */;
6815 short int var7 /* : Bool */;
6816 int cltype;
6817 int idtype;
6818 const char* var_class_name;
6819 val* var8 /* : AExpr */;
6820 short int var9 /* : Bool */;
6821 short int var10 /* : Bool */;
6822 short int var12 /* : Bool */;
6823 short int var14 /* : Bool */;
6824 short int var15 /* : Bool */;
6825 int cltype16;
6826 int idtype17;
6827 const char* var_class_name18;
6828 var_old_child = p0;
6829 var_new_child = p1;
6830 var = self->attrs[COLOR_parser_nodes__AUminusExpr___n_minus].val; /* _n_minus on <self:AUminusExpr> */
6831 if (unlikely(var == NULL)) {
6832 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_minus");
6833 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3918);
6834 show_backtrace(1);
6835 }
6836 {
6837 { /* Inline kernel#Object#== (var,var_old_child) on <var:TMinus> */
6838 var_other = var_old_child;
6839 {
6840 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TMinus> */
6841 var6 = var == var_other;
6842 var4 = var6;
6843 goto RET_LABEL5;
6844 RET_LABEL5:(void)0;
6845 }
6846 }
6847 var2 = var4;
6848 goto RET_LABEL3;
6849 RET_LABEL3:(void)0;
6850 }
6851 var1 = var2;
6852 }
6853 if (var1){
6854 /* <var_new_child:nullable ANode> isa TMinus */
6855 cltype = type_parser_nodes__TMinus.color;
6856 idtype = type_parser_nodes__TMinus.id;
6857 if(var_new_child == NULL) {
6858 var7 = 0;
6859 } else {
6860 if(cltype >= var_new_child->type->table_size) {
6861 var7 = 0;
6862 } else {
6863 var7 = var_new_child->type->type_table[cltype] == idtype;
6864 }
6865 }
6866 if (unlikely(!var7)) {
6867 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
6868 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TMinus", var_class_name);
6869 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3919);
6870 show_backtrace(1);
6871 }
6872 {
6873 parser_prod__AUminusExpr__n_minus_61d(self, var_new_child); /* Direct call parser_prod#AUminusExpr#n_minus= on <self:AUminusExpr>*/
6874 }
6875 goto RET_LABEL;
6876 } else {
6877 }
6878 var8 = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AUminusExpr> */
6879 if (unlikely(var8 == NULL)) {
6880 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
6881 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3922);
6882 show_backtrace(1);
6883 }
6884 {
6885 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExpr> */
6886 var_other = var_old_child;
6887 {
6888 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExpr> */
6889 var14 = var8 == var_other;
6890 var12 = var14;
6891 goto RET_LABEL13;
6892 RET_LABEL13:(void)0;
6893 }
6894 }
6895 var10 = var12;
6896 goto RET_LABEL11;
6897 RET_LABEL11:(void)0;
6898 }
6899 var9 = var10;
6900 }
6901 if (var9){
6902 /* <var_new_child:nullable ANode> isa AExpr */
6903 cltype16 = type_parser_nodes__AExpr.color;
6904 idtype17 = type_parser_nodes__AExpr.id;
6905 if(var_new_child == NULL) {
6906 var15 = 0;
6907 } else {
6908 if(cltype16 >= var_new_child->type->table_size) {
6909 var15 = 0;
6910 } else {
6911 var15 = var_new_child->type->type_table[cltype16] == idtype17;
6912 }
6913 }
6914 if (unlikely(!var15)) {
6915 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
6916 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name18);
6917 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3923);
6918 show_backtrace(1);
6919 }
6920 {
6921 parser_prod__AUminusExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AUminusExpr#n_expr= on <self:AUminusExpr>*/
6922 }
6923 goto RET_LABEL;
6924 } else {
6925 }
6926 RET_LABEL:;
6927 }
6928 /* method parser_prod#AUminusExpr#replace_child for (self: Object, ANode, nullable ANode) */
6929 void VIRTUAL_parser_prod__AUminusExpr__replace_child(val* self, val* p0, val* p1) {
6930 parser_prod__AUminusExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AUminusExpr#replace_child on <self:Object(AUminusExpr)>*/
6931 RET_LABEL:;
6932 }
6933 /* method parser_prod#AUminusExpr#n_minus= for (self: AUminusExpr, TMinus) */
6934 void parser_prod__AUminusExpr__n_minus_61d(val* self, val* p0) {
6935 val* var_node /* var node: TMinus */;
6936 var_node = p0;
6937 self->attrs[COLOR_parser_nodes__AUminusExpr___n_minus].val = var_node; /* _n_minus on <self:AUminusExpr> */
6938 {
6939 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TMinus> */
6940 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TMinus> */
6941 RET_LABEL1:(void)0;
6942 }
6943 }
6944 RET_LABEL:;
6945 }
6946 /* method parser_prod#AUminusExpr#n_minus= for (self: Object, TMinus) */
6947 void VIRTUAL_parser_prod__AUminusExpr__n_minus_61d(val* self, val* p0) {
6948 parser_prod__AUminusExpr__n_minus_61d(self, p0); /* Direct call parser_prod#AUminusExpr#n_minus= on <self:Object(AUminusExpr)>*/
6949 RET_LABEL:;
6950 }
6951 /* method parser_prod#AUminusExpr#n_expr= for (self: AUminusExpr, AExpr) */
6952 void parser_prod__AUminusExpr__n_expr_61d(val* self, val* p0) {
6953 val* var_node /* var node: AExpr */;
6954 var_node = p0;
6955 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:AUminusExpr> */
6956 {
6957 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
6958 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
6959 RET_LABEL1:(void)0;
6960 }
6961 }
6962 RET_LABEL:;
6963 }
6964 /* method parser_prod#AUminusExpr#n_expr= for (self: Object, AExpr) */
6965 void VIRTUAL_parser_prod__AUminusExpr__n_expr_61d(val* self, val* p0) {
6966 parser_prod__AUminusExpr__n_expr_61d(self, p0); /* Direct call parser_prod#AUminusExpr#n_expr= on <self:Object(AUminusExpr)>*/
6967 RET_LABEL:;
6968 }
6969 /* method parser_prod#AUminusExpr#visit_all for (self: AUminusExpr, Visitor) */
6970 void parser_prod__AUminusExpr__visit_all(val* self, val* p0) {
6971 val* var_v /* var v: Visitor */;
6972 val* var /* : TMinus */;
6973 val* var1 /* : AExpr */;
6974 var_v = p0;
6975 var = self->attrs[COLOR_parser_nodes__AUminusExpr___n_minus].val; /* _n_minus on <self:AUminusExpr> */
6976 if (unlikely(var == NULL)) {
6977 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_minus");
6978 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3942);
6979 show_backtrace(1);
6980 }
6981 {
6982 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6983 }
6984 var1 = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AUminusExpr> */
6985 if (unlikely(var1 == NULL)) {
6986 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
6987 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3943);
6988 show_backtrace(1);
6989 }
6990 {
6991 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6992 }
6993 RET_LABEL:;
6994 }
6995 /* method parser_prod#AUminusExpr#visit_all for (self: Object, Visitor) */
6996 void VIRTUAL_parser_prod__AUminusExpr__visit_all(val* self, val* p0) {
6997 parser_prod__AUminusExpr__visit_all(self, p0); /* Direct call parser_prod#AUminusExpr#visit_all on <self:Object(AUminusExpr)>*/
6998 RET_LABEL:;
6999 }
7000 /* method parser_prod#ANewExpr#init_anewexpr for (self: ANewExpr, nullable TKwnew, nullable AType, nullable TId, nullable AExprs) */
7001 void parser_prod__ANewExpr__init_anewexpr(val* self, val* p0, val* p1, val* p2, val* p3) {
7002 val* var_n_kwnew /* var n_kwnew: nullable TKwnew */;
7003 val* var_n_type /* var n_type: nullable AType */;
7004 val* var_n_id /* var n_id: nullable TId */;
7005 val* var_n_args /* var n_args: nullable AExprs */;
7006 val* var /* : null */;
7007 short int var3 /* : Bool */;
7008 short int var4 /* : Bool */;
7009 val* var_other /* var other: nullable Object */;
7010 short int var6 /* : Bool */;
7011 short int var7 /* : Bool */;
7012 short int var8 /* : Bool */;
7013 var_n_kwnew = p0;
7014 var_n_type = p1;
7015 var_n_id = p2;
7016 var_n_args = p3;
7017 if (unlikely(var_n_kwnew == NULL)) {
7018 PRINT_ERROR("Runtime error: %s", "Cast failed");
7019 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3954);
7020 show_backtrace(1);
7021 }
7022 self->attrs[COLOR_parser_nodes__ANewExpr___n_kwnew].val = var_n_kwnew; /* _n_kwnew on <self:ANewExpr> */
7023 if (var_n_kwnew == NULL) {
7024 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7025 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3955);
7026 show_backtrace(1);
7027 } else {
7028 { /* Inline parser_nodes#ANode#parent= (var_n_kwnew,self) on <var_n_kwnew:nullable TKwnew> */
7029 if (unlikely(var_n_kwnew == NULL)) {
7030 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7031 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
7032 show_backtrace(1);
7033 }
7034 var_n_kwnew->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwnew:nullable TKwnew> */
7035 RET_LABEL1:(void)0;
7036 }
7037 }
7038 if (unlikely(var_n_type == NULL)) {
7039 PRINT_ERROR("Runtime error: %s", "Cast failed");
7040 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3956);
7041 show_backtrace(1);
7042 }
7043 self->attrs[COLOR_parser_nodes__ANewExpr___n_type].val = var_n_type; /* _n_type on <self:ANewExpr> */
7044 if (var_n_type == NULL) {
7045 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7046 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3957);
7047 show_backtrace(1);
7048 } else {
7049 { /* Inline parser_nodes#ANode#parent= (var_n_type,self) on <var_n_type:nullable AType> */
7050 if (unlikely(var_n_type == NULL)) {
7051 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7052 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
7053 show_backtrace(1);
7054 }
7055 var_n_type->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_type:nullable AType> */
7056 RET_LABEL2:(void)0;
7057 }
7058 }
7059 self->attrs[COLOR_parser_nodes__ANewExpr___n_id].val = var_n_id; /* _n_id on <self:ANewExpr> */
7060 var = NULL;
7061 if (var_n_id == NULL) {
7062 var3 = 0; /* is null */
7063 } else {
7064 var3 = 1; /* arg is null and recv is not */
7065 }
7066 if (0) {
7067 { /* Inline kernel#Object#!= (var_n_id,var) on <var_n_id:nullable TId> */
7068 var_other = var;
7069 {
7070 var7 = ((short int (*)(val*, val*))(var_n_id->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_id, var_other) /* == on <var_n_id:nullable TId(TId)>*/;
7071 var6 = var7;
7072 }
7073 var8 = !var6;
7074 var4 = var8;
7075 goto RET_LABEL5;
7076 RET_LABEL5:(void)0;
7077 }
7078 var3 = var4;
7079 }
7080 if (var3){
7081 {
7082 { /* Inline parser_nodes#ANode#parent= (var_n_id,self) on <var_n_id:nullable TId(TId)> */
7083 var_n_id->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_id:nullable TId(TId)> */
7084 RET_LABEL9:(void)0;
7085 }
7086 }
7087 } else {
7088 }
7089 if (unlikely(var_n_args == NULL)) {
7090 PRINT_ERROR("Runtime error: %s", "Cast failed");
7091 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3960);
7092 show_backtrace(1);
7093 }
7094 self->attrs[COLOR_parser_nodes__ANewExpr___n_args].val = var_n_args; /* _n_args on <self:ANewExpr> */
7095 if (var_n_args == NULL) {
7096 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7097 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3961);
7098 show_backtrace(1);
7099 } else {
7100 { /* Inline parser_nodes#ANode#parent= (var_n_args,self) on <var_n_args:nullable AExprs> */
7101 if (unlikely(var_n_args == NULL)) {
7102 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7103 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
7104 show_backtrace(1);
7105 }
7106 var_n_args->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_args:nullable AExprs> */
7107 RET_LABEL10:(void)0;
7108 }
7109 }
7110 RET_LABEL:;
7111 }
7112 /* method parser_prod#ANewExpr#init_anewexpr for (self: Object, nullable TKwnew, nullable AType, nullable TId, nullable AExprs) */
7113 void VIRTUAL_parser_prod__ANewExpr__init_anewexpr(val* self, val* p0, val* p1, val* p2, val* p3) {
7114 parser_prod__ANewExpr__init_anewexpr(self, p0, p1, p2, p3); /* Direct call parser_prod#ANewExpr#init_anewexpr on <self:Object(ANewExpr)>*/
7115 RET_LABEL:;
7116 }
7117 /* method parser_prod#ANewExpr#replace_child for (self: ANewExpr, ANode, nullable ANode) */
7118 void parser_prod__ANewExpr__replace_child(val* self, val* p0, val* p1) {
7119 val* var_old_child /* var old_child: ANode */;
7120 val* var_new_child /* var new_child: nullable ANode */;
7121 val* var /* : TKwnew */;
7122 short int var1 /* : Bool */;
7123 short int var2 /* : Bool */;
7124 val* var_other /* var other: nullable Object */;
7125 short int var4 /* : Bool */;
7126 short int var6 /* : Bool */;
7127 short int var7 /* : Bool */;
7128 int cltype;
7129 int idtype;
7130 const char* var_class_name;
7131 val* var8 /* : AType */;
7132 short int var9 /* : Bool */;
7133 short int var10 /* : Bool */;
7134 short int var12 /* : Bool */;
7135 short int var14 /* : Bool */;
7136 short int var15 /* : Bool */;
7137 int cltype16;
7138 int idtype17;
7139 const char* var_class_name18;
7140 val* var19 /* : nullable TId */;
7141 short int var20 /* : Bool */;
7142 short int var21 /* : Bool */;
7143 short int var23 /* : Bool */;
7144 short int var25 /* : Bool */;
7145 short int var26 /* : Bool */;
7146 int cltype27;
7147 int idtype28;
7148 const char* var_class_name29;
7149 val* var30 /* : AExprs */;
7150 short int var31 /* : Bool */;
7151 short int var32 /* : Bool */;
7152 short int var34 /* : Bool */;
7153 short int var36 /* : Bool */;
7154 short int var37 /* : Bool */;
7155 int cltype38;
7156 int idtype39;
7157 const char* var_class_name40;
7158 var_old_child = p0;
7159 var_new_child = p1;
7160 var = self->attrs[COLOR_parser_nodes__ANewExpr___n_kwnew].val; /* _n_kwnew on <self:ANewExpr> */
7161 if (unlikely(var == NULL)) {
7162 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwnew");
7163 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3966);
7164 show_backtrace(1);
7165 }
7166 {
7167 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwnew> */
7168 var_other = var_old_child;
7169 {
7170 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TKwnew> */
7171 var6 = var == var_other;
7172 var4 = var6;
7173 goto RET_LABEL5;
7174 RET_LABEL5:(void)0;
7175 }
7176 }
7177 var2 = var4;
7178 goto RET_LABEL3;
7179 RET_LABEL3:(void)0;
7180 }
7181 var1 = var2;
7182 }
7183 if (var1){
7184 /* <var_new_child:nullable ANode> isa TKwnew */
7185 cltype = type_parser_nodes__TKwnew.color;
7186 idtype = type_parser_nodes__TKwnew.id;
7187 if(var_new_child == NULL) {
7188 var7 = 0;
7189 } else {
7190 if(cltype >= var_new_child->type->table_size) {
7191 var7 = 0;
7192 } else {
7193 var7 = var_new_child->type->type_table[cltype] == idtype;
7194 }
7195 }
7196 if (unlikely(!var7)) {
7197 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
7198 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwnew", var_class_name);
7199 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3967);
7200 show_backtrace(1);
7201 }
7202 {
7203 parser_prod__ANewExpr__n_kwnew_61d(self, var_new_child); /* Direct call parser_prod#ANewExpr#n_kwnew= on <self:ANewExpr>*/
7204 }
7205 goto RET_LABEL;
7206 } else {
7207 }
7208 var8 = self->attrs[COLOR_parser_nodes__ANewExpr___n_type].val; /* _n_type on <self:ANewExpr> */
7209 if (unlikely(var8 == NULL)) {
7210 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
7211 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3970);
7212 show_backtrace(1);
7213 }
7214 {
7215 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AType> */
7216 var_other = var_old_child;
7217 {
7218 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AType> */
7219 var14 = var8 == var_other;
7220 var12 = var14;
7221 goto RET_LABEL13;
7222 RET_LABEL13:(void)0;
7223 }
7224 }
7225 var10 = var12;
7226 goto RET_LABEL11;
7227 RET_LABEL11:(void)0;
7228 }
7229 var9 = var10;
7230 }
7231 if (var9){
7232 /* <var_new_child:nullable ANode> isa AType */
7233 cltype16 = type_parser_nodes__AType.color;
7234 idtype17 = type_parser_nodes__AType.id;
7235 if(var_new_child == NULL) {
7236 var15 = 0;
7237 } else {
7238 if(cltype16 >= var_new_child->type->table_size) {
7239 var15 = 0;
7240 } else {
7241 var15 = var_new_child->type->type_table[cltype16] == idtype17;
7242 }
7243 }
7244 if (unlikely(!var15)) {
7245 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
7246 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AType", var_class_name18);
7247 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3971);
7248 show_backtrace(1);
7249 }
7250 {
7251 parser_prod__ANewExpr__n_type_61d(self, var_new_child); /* Direct call parser_prod#ANewExpr#n_type= on <self:ANewExpr>*/
7252 }
7253 goto RET_LABEL;
7254 } else {
7255 }
7256 var19 = self->attrs[COLOR_parser_nodes__ANewExpr___n_id].val; /* _n_id on <self:ANewExpr> */
7257 if (var19 == NULL) {
7258 var20 = 0; /* <var_old_child:ANode> cannot be null */
7259 } else {
7260 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:nullable TId> */
7261 var_other = var_old_child;
7262 {
7263 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:nullable TId(TId)> */
7264 var25 = var19 == var_other;
7265 var23 = var25;
7266 goto RET_LABEL24;
7267 RET_LABEL24:(void)0;
7268 }
7269 }
7270 var21 = var23;
7271 goto RET_LABEL22;
7272 RET_LABEL22:(void)0;
7273 }
7274 var20 = var21;
7275 }
7276 if (var20){
7277 /* <var_new_child:nullable ANode> isa nullable TId */
7278 cltype27 = type_nullable_parser_nodes__TId.color;
7279 idtype28 = type_nullable_parser_nodes__TId.id;
7280 if(var_new_child == NULL) {
7281 var26 = 1;
7282 } else {
7283 if(cltype27 >= var_new_child->type->table_size) {
7284 var26 = 0;
7285 } else {
7286 var26 = var_new_child->type->type_table[cltype27] == idtype28;
7287 }
7288 }
7289 if (unlikely(!var26)) {
7290 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
7291 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TId", var_class_name29);
7292 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3975);
7293 show_backtrace(1);
7294 }
7295 {
7296 parser_prod__ANewExpr__n_id_61d(self, var_new_child); /* Direct call parser_prod#ANewExpr#n_id= on <self:ANewExpr>*/
7297 }
7298 goto RET_LABEL;
7299 } else {
7300 }
7301 var30 = self->attrs[COLOR_parser_nodes__ANewExpr___n_args].val; /* _n_args on <self:ANewExpr> */
7302 if (unlikely(var30 == NULL)) {
7303 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
7304 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3978);
7305 show_backtrace(1);
7306 }
7307 {
7308 { /* Inline kernel#Object#== (var30,var_old_child) on <var30:AExprs> */
7309 var_other = var_old_child;
7310 {
7311 { /* Inline kernel#Object#is_same_instance (var30,var_other) on <var30:AExprs> */
7312 var36 = var30 == var_other;
7313 var34 = var36;
7314 goto RET_LABEL35;
7315 RET_LABEL35:(void)0;
7316 }
7317 }
7318 var32 = var34;
7319 goto RET_LABEL33;
7320 RET_LABEL33:(void)0;
7321 }
7322 var31 = var32;
7323 }
7324 if (var31){
7325 /* <var_new_child:nullable ANode> isa AExprs */
7326 cltype38 = type_parser_nodes__AExprs.color;
7327 idtype39 = type_parser_nodes__AExprs.id;
7328 if(var_new_child == NULL) {
7329 var37 = 0;
7330 } else {
7331 if(cltype38 >= var_new_child->type->table_size) {
7332 var37 = 0;
7333 } else {
7334 var37 = var_new_child->type->type_table[cltype38] == idtype39;
7335 }
7336 }
7337 if (unlikely(!var37)) {
7338 var_class_name40 = var_new_child == NULL ? "null" : var_new_child->type->name;
7339 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExprs", var_class_name40);
7340 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 3979);
7341 show_backtrace(1);
7342 }
7343 {
7344 parser_prod__ANewExpr__n_args_61d(self, var_new_child); /* Direct call parser_prod#ANewExpr#n_args= on <self:ANewExpr>*/
7345 }
7346 goto RET_LABEL;
7347 } else {
7348 }
7349 RET_LABEL:;
7350 }
7351 /* method parser_prod#ANewExpr#replace_child for (self: Object, ANode, nullable ANode) */
7352 void VIRTUAL_parser_prod__ANewExpr__replace_child(val* self, val* p0, val* p1) {
7353 parser_prod__ANewExpr__replace_child(self, p0, p1); /* Direct call parser_prod#ANewExpr#replace_child on <self:Object(ANewExpr)>*/
7354 RET_LABEL:;
7355 }
7356 /* method parser_prod#ANewExpr#n_kwnew= for (self: ANewExpr, TKwnew) */
7357 void parser_prod__ANewExpr__n_kwnew_61d(val* self, val* p0) {
7358 val* var_node /* var node: TKwnew */;
7359 var_node = p0;
7360 self->attrs[COLOR_parser_nodes__ANewExpr___n_kwnew].val = var_node; /* _n_kwnew on <self:ANewExpr> */
7361 {
7362 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwnew> */
7363 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwnew> */
7364 RET_LABEL1:(void)0;
7365 }
7366 }
7367 RET_LABEL:;
7368 }
7369 /* method parser_prod#ANewExpr#n_kwnew= for (self: Object, TKwnew) */
7370 void VIRTUAL_parser_prod__ANewExpr__n_kwnew_61d(val* self, val* p0) {
7371 parser_prod__ANewExpr__n_kwnew_61d(self, p0); /* Direct call parser_prod#ANewExpr#n_kwnew= on <self:Object(ANewExpr)>*/
7372 RET_LABEL:;
7373 }
7374 /* method parser_prod#ANewExpr#n_type= for (self: ANewExpr, AType) */
7375 void parser_prod__ANewExpr__n_type_61d(val* self, val* p0) {
7376 val* var_node /* var node: AType */;
7377 var_node = p0;
7378 self->attrs[COLOR_parser_nodes__ANewExpr___n_type].val = var_node; /* _n_type on <self:ANewExpr> */
7379 {
7380 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AType> */
7381 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AType> */
7382 RET_LABEL1:(void)0;
7383 }
7384 }
7385 RET_LABEL:;
7386 }
7387 /* method parser_prod#ANewExpr#n_type= for (self: Object, AType) */
7388 void VIRTUAL_parser_prod__ANewExpr__n_type_61d(val* self, val* p0) {
7389 parser_prod__ANewExpr__n_type_61d(self, p0); /* Direct call parser_prod#ANewExpr#n_type= on <self:Object(ANewExpr)>*/
7390 RET_LABEL:;
7391 }
7392 /* method parser_prod#ANewExpr#n_id= for (self: ANewExpr, nullable TId) */
7393 void parser_prod__ANewExpr__n_id_61d(val* self, val* p0) {
7394 val* var_node /* var node: nullable TId */;
7395 val* var /* : null */;
7396 short int var1 /* : Bool */;
7397 short int var2 /* : Bool */;
7398 val* var_other /* var other: nullable Object */;
7399 short int var4 /* : Bool */;
7400 short int var5 /* : Bool */;
7401 short int var6 /* : Bool */;
7402 var_node = p0;
7403 self->attrs[COLOR_parser_nodes__ANewExpr___n_id].val = var_node; /* _n_id on <self:ANewExpr> */
7404 var = NULL;
7405 if (var_node == NULL) {
7406 var1 = 0; /* is null */
7407 } else {
7408 var1 = 1; /* arg is null and recv is not */
7409 }
7410 if (0) {
7411 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable TId> */
7412 var_other = var;
7413 {
7414 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable TId(TId)>*/;
7415 var4 = var5;
7416 }
7417 var6 = !var4;
7418 var2 = var6;
7419 goto RET_LABEL3;
7420 RET_LABEL3:(void)0;
7421 }
7422 var1 = var2;
7423 }
7424 if (var1){
7425 {
7426 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TId(TId)> */
7427 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TId(TId)> */
7428 RET_LABEL7:(void)0;
7429 }
7430 }
7431 } else {
7432 }
7433 RET_LABEL:;
7434 }
7435 /* method parser_prod#ANewExpr#n_id= for (self: Object, nullable TId) */
7436 void VIRTUAL_parser_prod__ANewExpr__n_id_61d(val* self, val* p0) {
7437 parser_prod__ANewExpr__n_id_61d(self, p0); /* Direct call parser_prod#ANewExpr#n_id= on <self:Object(ANewExpr)>*/
7438 RET_LABEL:;
7439 }
7440 /* method parser_prod#ANewExpr#n_args= for (self: ANewExpr, AExprs) */
7441 void parser_prod__ANewExpr__n_args_61d(val* self, val* p0) {
7442 val* var_node /* var node: AExprs */;
7443 var_node = p0;
7444 self->attrs[COLOR_parser_nodes__ANewExpr___n_args].val = var_node; /* _n_args on <self:ANewExpr> */
7445 {
7446 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExprs> */
7447 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExprs> */
7448 RET_LABEL1:(void)0;
7449 }
7450 }
7451 RET_LABEL:;
7452 }
7453 /* method parser_prod#ANewExpr#n_args= for (self: Object, AExprs) */
7454 void VIRTUAL_parser_prod__ANewExpr__n_args_61d(val* self, val* p0) {
7455 parser_prod__ANewExpr__n_args_61d(self, p0); /* Direct call parser_prod#ANewExpr#n_args= on <self:Object(ANewExpr)>*/
7456 RET_LABEL:;
7457 }
7458 /* method parser_prod#ANewExpr#visit_all for (self: ANewExpr, Visitor) */
7459 void parser_prod__ANewExpr__visit_all(val* self, val* p0) {
7460 val* var_v /* var v: Visitor */;
7461 val* var /* : TKwnew */;
7462 val* var1 /* : AType */;
7463 val* var2 /* : nullable TId */;
7464 val* var3 /* : AExprs */;
7465 var_v = p0;
7466 var = self->attrs[COLOR_parser_nodes__ANewExpr___n_kwnew].val; /* _n_kwnew on <self:ANewExpr> */
7467 if (unlikely(var == NULL)) {
7468 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwnew");
7469 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4008);
7470 show_backtrace(1);
7471 }
7472 {
7473 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7474 }
7475 var1 = self->attrs[COLOR_parser_nodes__ANewExpr___n_type].val; /* _n_type on <self:ANewExpr> */
7476 if (unlikely(var1 == NULL)) {
7477 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
7478 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4009);
7479 show_backtrace(1);
7480 }
7481 {
7482 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7483 }
7484 var2 = self->attrs[COLOR_parser_nodes__ANewExpr___n_id].val; /* _n_id on <self:ANewExpr> */
7485 {
7486 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7487 }
7488 var3 = self->attrs[COLOR_parser_nodes__ANewExpr___n_args].val; /* _n_args on <self:ANewExpr> */
7489 if (unlikely(var3 == NULL)) {
7490 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
7491 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4011);
7492 show_backtrace(1);
7493 }
7494 {
7495 parser_nodes__Visitor__enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7496 }
7497 RET_LABEL:;
7498 }
7499 /* method parser_prod#ANewExpr#visit_all for (self: Object, Visitor) */
7500 void VIRTUAL_parser_prod__ANewExpr__visit_all(val* self, val* p0) {
7501 parser_prod__ANewExpr__visit_all(self, p0); /* Direct call parser_prod#ANewExpr#visit_all on <self:Object(ANewExpr)>*/
7502 RET_LABEL:;
7503 }
7504 /* method parser_prod#AAttrExpr#init_aattrexpr for (self: AAttrExpr, nullable AExpr, nullable TAttrid) */
7505 void parser_prod__AAttrExpr__init_aattrexpr(val* self, val* p0, val* p1) {
7506 val* var_n_expr /* var n_expr: nullable AExpr */;
7507 val* var_n_id /* var n_id: nullable TAttrid */;
7508 var_n_expr = p0;
7509 var_n_id = p1;
7510 if (unlikely(var_n_expr == NULL)) {
7511 PRINT_ERROR("Runtime error: %s", "Cast failed");
7512 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4020);
7513 show_backtrace(1);
7514 }
7515 self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AAttrExpr> */
7516 if (var_n_expr == NULL) {
7517 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7518 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4021);
7519 show_backtrace(1);
7520 } else {
7521 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
7522 if (unlikely(var_n_expr == NULL)) {
7523 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7524 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
7525 show_backtrace(1);
7526 }
7527 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
7528 RET_LABEL1:(void)0;
7529 }
7530 }
7531 if (unlikely(var_n_id == NULL)) {
7532 PRINT_ERROR("Runtime error: %s", "Cast failed");
7533 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4022);
7534 show_backtrace(1);
7535 }
7536 self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_id].val = var_n_id; /* _n_id on <self:AAttrExpr> */
7537 if (var_n_id == NULL) {
7538 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7539 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4023);
7540 show_backtrace(1);
7541 } else {
7542 { /* Inline parser_nodes#ANode#parent= (var_n_id,self) on <var_n_id:nullable TAttrid> */
7543 if (unlikely(var_n_id == NULL)) {
7544 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7545 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
7546 show_backtrace(1);
7547 }
7548 var_n_id->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_id:nullable TAttrid> */
7549 RET_LABEL2:(void)0;
7550 }
7551 }
7552 RET_LABEL:;
7553 }
7554 /* method parser_prod#AAttrExpr#init_aattrexpr for (self: Object, nullable AExpr, nullable TAttrid) */
7555 void VIRTUAL_parser_prod__AAttrExpr__init_aattrexpr(val* self, val* p0, val* p1) {
7556 parser_prod__AAttrExpr__init_aattrexpr(self, p0, p1); /* Direct call parser_prod#AAttrExpr#init_aattrexpr on <self:Object(AAttrExpr)>*/
7557 RET_LABEL:;
7558 }
7559 /* method parser_prod#AAttrExpr#replace_child for (self: AAttrExpr, ANode, nullable ANode) */
7560 void parser_prod__AAttrExpr__replace_child(val* self, val* p0, val* p1) {
7561 val* var_old_child /* var old_child: ANode */;
7562 val* var_new_child /* var new_child: nullable ANode */;
7563 val* var /* : AExpr */;
7564 short int var1 /* : Bool */;
7565 short int var2 /* : Bool */;
7566 val* var_other /* var other: nullable Object */;
7567 short int var4 /* : Bool */;
7568 short int var6 /* : Bool */;
7569 short int var7 /* : Bool */;
7570 int cltype;
7571 int idtype;
7572 const char* var_class_name;
7573 val* var8 /* : TAttrid */;
7574 short int var9 /* : Bool */;
7575 short int var10 /* : Bool */;
7576 short int var12 /* : Bool */;
7577 short int var14 /* : Bool */;
7578 short int var15 /* : Bool */;
7579 int cltype16;
7580 int idtype17;
7581 const char* var_class_name18;
7582 var_old_child = p0;
7583 var_new_child = p1;
7584 var = self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_expr].val; /* _n_expr on <self:AAttrExpr> */
7585 if (unlikely(var == NULL)) {
7586 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
7587 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4028);
7588 show_backtrace(1);
7589 }
7590 {
7591 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
7592 var_other = var_old_child;
7593 {
7594 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
7595 var6 = var == var_other;
7596 var4 = var6;
7597 goto RET_LABEL5;
7598 RET_LABEL5:(void)0;
7599 }
7600 }
7601 var2 = var4;
7602 goto RET_LABEL3;
7603 RET_LABEL3:(void)0;
7604 }
7605 var1 = var2;
7606 }
7607 if (var1){
7608 /* <var_new_child:nullable ANode> isa AExpr */
7609 cltype = type_parser_nodes__AExpr.color;
7610 idtype = type_parser_nodes__AExpr.id;
7611 if(var_new_child == NULL) {
7612 var7 = 0;
7613 } else {
7614 if(cltype >= var_new_child->type->table_size) {
7615 var7 = 0;
7616 } else {
7617 var7 = var_new_child->type->type_table[cltype] == idtype;
7618 }
7619 }
7620 if (unlikely(!var7)) {
7621 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
7622 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
7623 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4029);
7624 show_backtrace(1);
7625 }
7626 {
7627 parser_prod__AAttrExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AAttrExpr#n_expr= on <self:AAttrExpr>*/
7628 }
7629 goto RET_LABEL;
7630 } else {
7631 }
7632 var8 = self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_id].val; /* _n_id on <self:AAttrExpr> */
7633 if (unlikely(var8 == NULL)) {
7634 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
7635 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4032);
7636 show_backtrace(1);
7637 }
7638 {
7639 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:TAttrid> */
7640 var_other = var_old_child;
7641 {
7642 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:TAttrid> */
7643 var14 = var8 == var_other;
7644 var12 = var14;
7645 goto RET_LABEL13;
7646 RET_LABEL13:(void)0;
7647 }
7648 }
7649 var10 = var12;
7650 goto RET_LABEL11;
7651 RET_LABEL11:(void)0;
7652 }
7653 var9 = var10;
7654 }
7655 if (var9){
7656 /* <var_new_child:nullable ANode> isa TAttrid */
7657 cltype16 = type_parser_nodes__TAttrid.color;
7658 idtype17 = type_parser_nodes__TAttrid.id;
7659 if(var_new_child == NULL) {
7660 var15 = 0;
7661 } else {
7662 if(cltype16 >= var_new_child->type->table_size) {
7663 var15 = 0;
7664 } else {
7665 var15 = var_new_child->type->type_table[cltype16] == idtype17;
7666 }
7667 }
7668 if (unlikely(!var15)) {
7669 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
7670 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TAttrid", var_class_name18);
7671 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4033);
7672 show_backtrace(1);
7673 }
7674 {
7675 parser_prod__AAttrExpr__n_id_61d(self, var_new_child); /* Direct call parser_prod#AAttrExpr#n_id= on <self:AAttrExpr>*/
7676 }
7677 goto RET_LABEL;
7678 } else {
7679 }
7680 RET_LABEL:;
7681 }
7682 /* method parser_prod#AAttrExpr#replace_child for (self: Object, ANode, nullable ANode) */
7683 void VIRTUAL_parser_prod__AAttrExpr__replace_child(val* self, val* p0, val* p1) {
7684 parser_prod__AAttrExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AAttrExpr#replace_child on <self:Object(AAttrExpr)>*/
7685 RET_LABEL:;
7686 }
7687 /* method parser_prod#AAttrExpr#n_expr= for (self: AAttrExpr, AExpr) */
7688 void parser_prod__AAttrExpr__n_expr_61d(val* self, val* p0) {
7689 val* var_node /* var node: AExpr */;
7690 var_node = p0;
7691 self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_expr].val = var_node; /* _n_expr on <self:AAttrExpr> */
7692 {
7693 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
7694 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
7695 RET_LABEL1:(void)0;
7696 }
7697 }
7698 RET_LABEL:;
7699 }
7700 /* method parser_prod#AAttrExpr#n_expr= for (self: Object, AExpr) */
7701 void VIRTUAL_parser_prod__AAttrExpr__n_expr_61d(val* self, val* p0) {
7702 parser_prod__AAttrExpr__n_expr_61d(self, p0); /* Direct call parser_prod#AAttrExpr#n_expr= on <self:Object(AAttrExpr)>*/
7703 RET_LABEL:;
7704 }
7705 /* method parser_prod#AAttrExpr#n_id= for (self: AAttrExpr, TAttrid) */
7706 void parser_prod__AAttrExpr__n_id_61d(val* self, val* p0) {
7707 val* var_node /* var node: TAttrid */;
7708 var_node = p0;
7709 self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_id].val = var_node; /* _n_id on <self:AAttrExpr> */
7710 {
7711 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TAttrid> */
7712 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TAttrid> */
7713 RET_LABEL1:(void)0;
7714 }
7715 }
7716 RET_LABEL:;
7717 }
7718 /* method parser_prod#AAttrExpr#n_id= for (self: Object, TAttrid) */
7719 void VIRTUAL_parser_prod__AAttrExpr__n_id_61d(val* self, val* p0) {
7720 parser_prod__AAttrExpr__n_id_61d(self, p0); /* Direct call parser_prod#AAttrExpr#n_id= on <self:Object(AAttrExpr)>*/
7721 RET_LABEL:;
7722 }
7723 /* method parser_prod#AAttrExpr#visit_all for (self: AAttrExpr, Visitor) */
7724 void parser_prod__AAttrExpr__visit_all(val* self, val* p0) {
7725 val* var_v /* var v: Visitor */;
7726 val* var /* : AExpr */;
7727 val* var1 /* : TAttrid */;
7728 var_v = p0;
7729 var = self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_expr].val; /* _n_expr on <self:AAttrExpr> */
7730 if (unlikely(var == NULL)) {
7731 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
7732 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4052);
7733 show_backtrace(1);
7734 }
7735 {
7736 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7737 }
7738 var1 = self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_id].val; /* _n_id on <self:AAttrExpr> */
7739 if (unlikely(var1 == NULL)) {
7740 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
7741 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4053);
7742 show_backtrace(1);
7743 }
7744 {
7745 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7746 }
7747 RET_LABEL:;
7748 }
7749 /* method parser_prod#AAttrExpr#visit_all for (self: Object, Visitor) */
7750 void VIRTUAL_parser_prod__AAttrExpr__visit_all(val* self, val* p0) {
7751 parser_prod__AAttrExpr__visit_all(self, p0); /* Direct call parser_prod#AAttrExpr#visit_all on <self:Object(AAttrExpr)>*/
7752 RET_LABEL:;
7753 }
7754 /* method parser_prod#AAttrAssignExpr#init_aattrassignexpr for (self: AAttrAssignExpr, nullable AExpr, nullable TAttrid, nullable TAssign, nullable AExpr) */
7755 void parser_prod__AAttrAssignExpr__init_aattrassignexpr(val* self, val* p0, val* p1, val* p2, val* p3) {
7756 val* var_n_expr /* var n_expr: nullable AExpr */;
7757 val* var_n_id /* var n_id: nullable TAttrid */;
7758 val* var_n_assign /* var n_assign: nullable TAssign */;
7759 val* var_n_value /* var n_value: nullable AExpr */;
7760 var_n_expr = p0;
7761 var_n_id = p1;
7762 var_n_assign = p2;
7763 var_n_value = p3;
7764 if (unlikely(var_n_expr == NULL)) {
7765 PRINT_ERROR("Runtime error: %s", "Cast failed");
7766 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4064);
7767 show_backtrace(1);
7768 }
7769 self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AAttrAssignExpr> */
7770 if (var_n_expr == NULL) {
7771 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7772 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4065);
7773 show_backtrace(1);
7774 } else {
7775 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
7776 if (unlikely(var_n_expr == NULL)) {
7777 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7778 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
7779 show_backtrace(1);
7780 }
7781 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
7782 RET_LABEL1:(void)0;
7783 }
7784 }
7785 if (unlikely(var_n_id == NULL)) {
7786 PRINT_ERROR("Runtime error: %s", "Cast failed");
7787 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4066);
7788 show_backtrace(1);
7789 }
7790 self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_id].val = var_n_id; /* _n_id on <self:AAttrAssignExpr> */
7791 if (var_n_id == NULL) {
7792 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7793 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4067);
7794 show_backtrace(1);
7795 } else {
7796 { /* Inline parser_nodes#ANode#parent= (var_n_id,self) on <var_n_id:nullable TAttrid> */
7797 if (unlikely(var_n_id == NULL)) {
7798 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7799 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
7800 show_backtrace(1);
7801 }
7802 var_n_id->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_id:nullable TAttrid> */
7803 RET_LABEL2:(void)0;
7804 }
7805 }
7806 if (unlikely(var_n_assign == NULL)) {
7807 PRINT_ERROR("Runtime error: %s", "Cast failed");
7808 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4068);
7809 show_backtrace(1);
7810 }
7811 self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_assign].val = var_n_assign; /* _n_assign on <self:AAttrAssignExpr> */
7812 if (var_n_assign == NULL) {
7813 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7814 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4069);
7815 show_backtrace(1);
7816 } else {
7817 { /* Inline parser_nodes#ANode#parent= (var_n_assign,self) on <var_n_assign:nullable TAssign> */
7818 if (unlikely(var_n_assign == NULL)) {
7819 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7820 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
7821 show_backtrace(1);
7822 }
7823 var_n_assign->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_assign:nullable TAssign> */
7824 RET_LABEL3:(void)0;
7825 }
7826 }
7827 if (unlikely(var_n_value == NULL)) {
7828 PRINT_ERROR("Runtime error: %s", "Cast failed");
7829 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4070);
7830 show_backtrace(1);
7831 }
7832 self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_value].val = var_n_value; /* _n_value on <self:AAttrAssignExpr> */
7833 if (var_n_value == NULL) {
7834 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7835 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4071);
7836 show_backtrace(1);
7837 } else {
7838 { /* Inline parser_nodes#ANode#parent= (var_n_value,self) on <var_n_value:nullable AExpr> */
7839 if (unlikely(var_n_value == NULL)) {
7840 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7841 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
7842 show_backtrace(1);
7843 }
7844 var_n_value->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_value:nullable AExpr> */
7845 RET_LABEL4:(void)0;
7846 }
7847 }
7848 RET_LABEL:;
7849 }
7850 /* method parser_prod#AAttrAssignExpr#init_aattrassignexpr for (self: Object, nullable AExpr, nullable TAttrid, nullable TAssign, nullable AExpr) */
7851 void VIRTUAL_parser_prod__AAttrAssignExpr__init_aattrassignexpr(val* self, val* p0, val* p1, val* p2, val* p3) {
7852 parser_prod__AAttrAssignExpr__init_aattrassignexpr(self, p0, p1, p2, p3); /* Direct call parser_prod#AAttrAssignExpr#init_aattrassignexpr on <self:Object(AAttrAssignExpr)>*/
7853 RET_LABEL:;
7854 }
7855 /* method parser_prod#AAttrAssignExpr#replace_child for (self: AAttrAssignExpr, ANode, nullable ANode) */
7856 void parser_prod__AAttrAssignExpr__replace_child(val* self, val* p0, val* p1) {
7857 val* var_old_child /* var old_child: ANode */;
7858 val* var_new_child /* var new_child: nullable ANode */;
7859 val* var /* : AExpr */;
7860 short int var1 /* : Bool */;
7861 short int var2 /* : Bool */;
7862 val* var_other /* var other: nullable Object */;
7863 short int var4 /* : Bool */;
7864 short int var6 /* : Bool */;
7865 short int var7 /* : Bool */;
7866 int cltype;
7867 int idtype;
7868 const char* var_class_name;
7869 val* var8 /* : TAttrid */;
7870 short int var9 /* : Bool */;
7871 short int var10 /* : Bool */;
7872 short int var12 /* : Bool */;
7873 short int var14 /* : Bool */;
7874 short int var15 /* : Bool */;
7875 int cltype16;
7876 int idtype17;
7877 const char* var_class_name18;
7878 val* var19 /* : TAssign */;
7879 short int var20 /* : Bool */;
7880 short int var21 /* : Bool */;
7881 short int var23 /* : Bool */;
7882 short int var25 /* : Bool */;
7883 short int var26 /* : Bool */;
7884 int cltype27;
7885 int idtype28;
7886 const char* var_class_name29;
7887 val* var30 /* : AExpr */;
7888 short int var31 /* : Bool */;
7889 short int var32 /* : Bool */;
7890 short int var34 /* : Bool */;
7891 short int var36 /* : Bool */;
7892 short int var37 /* : Bool */;
7893 int cltype38;
7894 int idtype39;
7895 const char* var_class_name40;
7896 var_old_child = p0;
7897 var_new_child = p1;
7898 var = self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_expr].val; /* _n_expr on <self:AAttrAssignExpr> */
7899 if (unlikely(var == NULL)) {
7900 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
7901 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4076);
7902 show_backtrace(1);
7903 }
7904 {
7905 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
7906 var_other = var_old_child;
7907 {
7908 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
7909 var6 = var == var_other;
7910 var4 = var6;
7911 goto RET_LABEL5;
7912 RET_LABEL5:(void)0;
7913 }
7914 }
7915 var2 = var4;
7916 goto RET_LABEL3;
7917 RET_LABEL3:(void)0;
7918 }
7919 var1 = var2;
7920 }
7921 if (var1){
7922 /* <var_new_child:nullable ANode> isa AExpr */
7923 cltype = type_parser_nodes__AExpr.color;
7924 idtype = type_parser_nodes__AExpr.id;
7925 if(var_new_child == NULL) {
7926 var7 = 0;
7927 } else {
7928 if(cltype >= var_new_child->type->table_size) {
7929 var7 = 0;
7930 } else {
7931 var7 = var_new_child->type->type_table[cltype] == idtype;
7932 }
7933 }
7934 if (unlikely(!var7)) {
7935 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
7936 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
7937 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4077);
7938 show_backtrace(1);
7939 }
7940 {
7941 parser_prod__AAttrAssignExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AAttrAssignExpr#n_expr= on <self:AAttrAssignExpr>*/
7942 }
7943 goto RET_LABEL;
7944 } else {
7945 }
7946 var8 = self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_id].val; /* _n_id on <self:AAttrAssignExpr> */
7947 if (unlikely(var8 == NULL)) {
7948 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
7949 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4080);
7950 show_backtrace(1);
7951 }
7952 {
7953 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:TAttrid> */
7954 var_other = var_old_child;
7955 {
7956 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:TAttrid> */
7957 var14 = var8 == var_other;
7958 var12 = var14;
7959 goto RET_LABEL13;
7960 RET_LABEL13:(void)0;
7961 }
7962 }
7963 var10 = var12;
7964 goto RET_LABEL11;
7965 RET_LABEL11:(void)0;
7966 }
7967 var9 = var10;
7968 }
7969 if (var9){
7970 /* <var_new_child:nullable ANode> isa TAttrid */
7971 cltype16 = type_parser_nodes__TAttrid.color;
7972 idtype17 = type_parser_nodes__TAttrid.id;
7973 if(var_new_child == NULL) {
7974 var15 = 0;
7975 } else {
7976 if(cltype16 >= var_new_child->type->table_size) {
7977 var15 = 0;
7978 } else {
7979 var15 = var_new_child->type->type_table[cltype16] == idtype17;
7980 }
7981 }
7982 if (unlikely(!var15)) {
7983 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
7984 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TAttrid", var_class_name18);
7985 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4081);
7986 show_backtrace(1);
7987 }
7988 {
7989 parser_prod__AAttrAssignExpr__n_id_61d(self, var_new_child); /* Direct call parser_prod#AAttrAssignExpr#n_id= on <self:AAttrAssignExpr>*/
7990 }
7991 goto RET_LABEL;
7992 } else {
7993 }
7994 var19 = self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_assign].val; /* _n_assign on <self:AAttrAssignExpr> */
7995 if (unlikely(var19 == NULL)) {
7996 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_assign");
7997 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4084);
7998 show_backtrace(1);
7999 }
8000 {
8001 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:TAssign> */
8002 var_other = var_old_child;
8003 {
8004 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:TAssign> */
8005 var25 = var19 == var_other;
8006 var23 = var25;
8007 goto RET_LABEL24;
8008 RET_LABEL24:(void)0;
8009 }
8010 }
8011 var21 = var23;
8012 goto RET_LABEL22;
8013 RET_LABEL22:(void)0;
8014 }
8015 var20 = var21;
8016 }
8017 if (var20){
8018 /* <var_new_child:nullable ANode> isa TAssign */
8019 cltype27 = type_parser_nodes__TAssign.color;
8020 idtype28 = type_parser_nodes__TAssign.id;
8021 if(var_new_child == NULL) {
8022 var26 = 0;
8023 } else {
8024 if(cltype27 >= var_new_child->type->table_size) {
8025 var26 = 0;
8026 } else {
8027 var26 = var_new_child->type->type_table[cltype27] == idtype28;
8028 }
8029 }
8030 if (unlikely(!var26)) {
8031 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
8032 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TAssign", var_class_name29);
8033 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4085);
8034 show_backtrace(1);
8035 }
8036 {
8037 parser_prod__AAttrAssignExpr__n_assign_61d(self, var_new_child); /* Direct call parser_prod#AAttrAssignExpr#n_assign= on <self:AAttrAssignExpr>*/
8038 }
8039 goto RET_LABEL;
8040 } else {
8041 }
8042 var30 = self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_value].val; /* _n_value on <self:AAttrAssignExpr> */
8043 if (unlikely(var30 == NULL)) {
8044 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
8045 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4088);
8046 show_backtrace(1);
8047 }
8048 {
8049 { /* Inline kernel#Object#== (var30,var_old_child) on <var30:AExpr> */
8050 var_other = var_old_child;
8051 {
8052 { /* Inline kernel#Object#is_same_instance (var30,var_other) on <var30:AExpr> */
8053 var36 = var30 == var_other;
8054 var34 = var36;
8055 goto RET_LABEL35;
8056 RET_LABEL35:(void)0;
8057 }
8058 }
8059 var32 = var34;
8060 goto RET_LABEL33;
8061 RET_LABEL33:(void)0;
8062 }
8063 var31 = var32;
8064 }
8065 if (var31){
8066 /* <var_new_child:nullable ANode> isa AExpr */
8067 cltype38 = type_parser_nodes__AExpr.color;
8068 idtype39 = type_parser_nodes__AExpr.id;
8069 if(var_new_child == NULL) {
8070 var37 = 0;
8071 } else {
8072 if(cltype38 >= var_new_child->type->table_size) {
8073 var37 = 0;
8074 } else {
8075 var37 = var_new_child->type->type_table[cltype38] == idtype39;
8076 }
8077 }
8078 if (unlikely(!var37)) {
8079 var_class_name40 = var_new_child == NULL ? "null" : var_new_child->type->name;
8080 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name40);
8081 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4089);
8082 show_backtrace(1);
8083 }
8084 {
8085 parser_prod__AAttrAssignExpr__n_value_61d(self, var_new_child); /* Direct call parser_prod#AAttrAssignExpr#n_value= on <self:AAttrAssignExpr>*/
8086 }
8087 goto RET_LABEL;
8088 } else {
8089 }
8090 RET_LABEL:;
8091 }
8092 /* method parser_prod#AAttrAssignExpr#replace_child for (self: Object, ANode, nullable ANode) */
8093 void VIRTUAL_parser_prod__AAttrAssignExpr__replace_child(val* self, val* p0, val* p1) {
8094 parser_prod__AAttrAssignExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AAttrAssignExpr#replace_child on <self:Object(AAttrAssignExpr)>*/
8095 RET_LABEL:;
8096 }
8097 /* method parser_prod#AAttrAssignExpr#n_expr= for (self: AAttrAssignExpr, AExpr) */
8098 void parser_prod__AAttrAssignExpr__n_expr_61d(val* self, val* p0) {
8099 val* var_node /* var node: AExpr */;
8100 var_node = p0;
8101 self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_expr].val = var_node; /* _n_expr on <self:AAttrAssignExpr> */
8102 {
8103 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
8104 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
8105 RET_LABEL1:(void)0;
8106 }
8107 }
8108 RET_LABEL:;
8109 }
8110 /* method parser_prod#AAttrAssignExpr#n_expr= for (self: Object, AExpr) */
8111 void VIRTUAL_parser_prod__AAttrAssignExpr__n_expr_61d(val* self, val* p0) {
8112 parser_prod__AAttrAssignExpr__n_expr_61d(self, p0); /* Direct call parser_prod#AAttrAssignExpr#n_expr= on <self:Object(AAttrAssignExpr)>*/
8113 RET_LABEL:;
8114 }
8115 /* method parser_prod#AAttrAssignExpr#n_id= for (self: AAttrAssignExpr, TAttrid) */
8116 void parser_prod__AAttrAssignExpr__n_id_61d(val* self, val* p0) {
8117 val* var_node /* var node: TAttrid */;
8118 var_node = p0;
8119 self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_id].val = var_node; /* _n_id on <self:AAttrAssignExpr> */
8120 {
8121 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TAttrid> */
8122 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TAttrid> */
8123 RET_LABEL1:(void)0;
8124 }
8125 }
8126 RET_LABEL:;
8127 }
8128 /* method parser_prod#AAttrAssignExpr#n_id= for (self: Object, TAttrid) */
8129 void VIRTUAL_parser_prod__AAttrAssignExpr__n_id_61d(val* self, val* p0) {
8130 parser_prod__AAttrAssignExpr__n_id_61d(self, p0); /* Direct call parser_prod#AAttrAssignExpr#n_id= on <self:Object(AAttrAssignExpr)>*/
8131 RET_LABEL:;
8132 }
8133 /* method parser_prod#AAttrAssignExpr#n_assign= for (self: AAttrAssignExpr, TAssign) */
8134 void parser_prod__AAttrAssignExpr__n_assign_61d(val* self, val* p0) {
8135 val* var_node /* var node: TAssign */;
8136 var_node = p0;
8137 self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_assign].val = var_node; /* _n_assign on <self:AAttrAssignExpr> */
8138 {
8139 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TAssign> */
8140 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TAssign> */
8141 RET_LABEL1:(void)0;
8142 }
8143 }
8144 RET_LABEL:;
8145 }
8146 /* method parser_prod#AAttrAssignExpr#n_assign= for (self: Object, TAssign) */
8147 void VIRTUAL_parser_prod__AAttrAssignExpr__n_assign_61d(val* self, val* p0) {
8148 parser_prod__AAttrAssignExpr__n_assign_61d(self, p0); /* Direct call parser_prod#AAttrAssignExpr#n_assign= on <self:Object(AAttrAssignExpr)>*/
8149 RET_LABEL:;
8150 }
8151 /* method parser_prod#AAttrAssignExpr#n_value= for (self: AAttrAssignExpr, AExpr) */
8152 void parser_prod__AAttrAssignExpr__n_value_61d(val* self, val* p0) {
8153 val* var_node /* var node: AExpr */;
8154 var_node = p0;
8155 self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_value].val = var_node; /* _n_value on <self:AAttrAssignExpr> */
8156 {
8157 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
8158 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
8159 RET_LABEL1:(void)0;
8160 }
8161 }
8162 RET_LABEL:;
8163 }
8164 /* method parser_prod#AAttrAssignExpr#n_value= for (self: Object, AExpr) */
8165 void VIRTUAL_parser_prod__AAttrAssignExpr__n_value_61d(val* self, val* p0) {
8166 parser_prod__AAttrAssignExpr__n_value_61d(self, p0); /* Direct call parser_prod#AAttrAssignExpr#n_value= on <self:Object(AAttrAssignExpr)>*/
8167 RET_LABEL:;
8168 }
8169 /* method parser_prod#AAttrAssignExpr#visit_all for (self: AAttrAssignExpr, Visitor) */
8170 void parser_prod__AAttrAssignExpr__visit_all(val* self, val* p0) {
8171 val* var_v /* var v: Visitor */;
8172 val* var /* : AExpr */;
8173 val* var1 /* : TAttrid */;
8174 val* var2 /* : TAssign */;
8175 val* var3 /* : AExpr */;
8176 var_v = p0;
8177 var = self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_expr].val; /* _n_expr on <self:AAttrAssignExpr> */
8178 if (unlikely(var == NULL)) {
8179 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
8180 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4118);
8181 show_backtrace(1);
8182 }
8183 {
8184 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8185 }
8186 var1 = self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_id].val; /* _n_id on <self:AAttrAssignExpr> */
8187 if (unlikely(var1 == NULL)) {
8188 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
8189 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4119);
8190 show_backtrace(1);
8191 }
8192 {
8193 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8194 }
8195 var2 = self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_assign].val; /* _n_assign on <self:AAttrAssignExpr> */
8196 if (unlikely(var2 == NULL)) {
8197 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_assign");
8198 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4120);
8199 show_backtrace(1);
8200 }
8201 {
8202 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8203 }
8204 var3 = self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_value].val; /* _n_value on <self:AAttrAssignExpr> */
8205 if (unlikely(var3 == NULL)) {
8206 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
8207 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4121);
8208 show_backtrace(1);
8209 }
8210 {
8211 parser_nodes__Visitor__enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8212 }
8213 RET_LABEL:;
8214 }
8215 /* method parser_prod#AAttrAssignExpr#visit_all for (self: Object, Visitor) */
8216 void VIRTUAL_parser_prod__AAttrAssignExpr__visit_all(val* self, val* p0) {
8217 parser_prod__AAttrAssignExpr__visit_all(self, p0); /* Direct call parser_prod#AAttrAssignExpr#visit_all on <self:Object(AAttrAssignExpr)>*/
8218 RET_LABEL:;
8219 }
8220 /* method parser_prod#AAttrReassignExpr#init_aattrreassignexpr for (self: AAttrReassignExpr, nullable AExpr, nullable TAttrid, nullable AAssignOp, nullable AExpr) */
8221 void parser_prod__AAttrReassignExpr__init_aattrreassignexpr(val* self, val* p0, val* p1, val* p2, val* p3) {
8222 val* var_n_expr /* var n_expr: nullable AExpr */;
8223 val* var_n_id /* var n_id: nullable TAttrid */;
8224 val* var_n_assign_op /* var n_assign_op: nullable AAssignOp */;
8225 val* var_n_value /* var n_value: nullable AExpr */;
8226 var_n_expr = p0;
8227 var_n_id = p1;
8228 var_n_assign_op = p2;
8229 var_n_value = p3;
8230 if (unlikely(var_n_expr == NULL)) {
8231 PRINT_ERROR("Runtime error: %s", "Cast failed");
8232 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4132);
8233 show_backtrace(1);
8234 }
8235 self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AAttrReassignExpr> */
8236 if (var_n_expr == NULL) {
8237 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8238 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4133);
8239 show_backtrace(1);
8240 } else {
8241 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
8242 if (unlikely(var_n_expr == NULL)) {
8243 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8244 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
8245 show_backtrace(1);
8246 }
8247 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
8248 RET_LABEL1:(void)0;
8249 }
8250 }
8251 if (unlikely(var_n_id == NULL)) {
8252 PRINT_ERROR("Runtime error: %s", "Cast failed");
8253 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4134);
8254 show_backtrace(1);
8255 }
8256 self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_id].val = var_n_id; /* _n_id on <self:AAttrReassignExpr> */
8257 if (var_n_id == NULL) {
8258 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8259 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4135);
8260 show_backtrace(1);
8261 } else {
8262 { /* Inline parser_nodes#ANode#parent= (var_n_id,self) on <var_n_id:nullable TAttrid> */
8263 if (unlikely(var_n_id == NULL)) {
8264 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8265 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
8266 show_backtrace(1);
8267 }
8268 var_n_id->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_id:nullable TAttrid> */
8269 RET_LABEL2:(void)0;
8270 }
8271 }
8272 if (unlikely(var_n_assign_op == NULL)) {
8273 PRINT_ERROR("Runtime error: %s", "Cast failed");
8274 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4136);
8275 show_backtrace(1);
8276 }
8277 self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_assign_op].val = var_n_assign_op; /* _n_assign_op on <self:AAttrReassignExpr> */
8278 if (var_n_assign_op == NULL) {
8279 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8280 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4137);
8281 show_backtrace(1);
8282 } else {
8283 { /* Inline parser_nodes#ANode#parent= (var_n_assign_op,self) on <var_n_assign_op:nullable AAssignOp> */
8284 if (unlikely(var_n_assign_op == NULL)) {
8285 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8286 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
8287 show_backtrace(1);
8288 }
8289 var_n_assign_op->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_assign_op:nullable AAssignOp> */
8290 RET_LABEL3:(void)0;
8291 }
8292 }
8293 if (unlikely(var_n_value == NULL)) {
8294 PRINT_ERROR("Runtime error: %s", "Cast failed");
8295 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4138);
8296 show_backtrace(1);
8297 }
8298 self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_value].val = var_n_value; /* _n_value on <self:AAttrReassignExpr> */
8299 if (var_n_value == NULL) {
8300 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8301 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4139);
8302 show_backtrace(1);
8303 } else {
8304 { /* Inline parser_nodes#ANode#parent= (var_n_value,self) on <var_n_value:nullable AExpr> */
8305 if (unlikely(var_n_value == NULL)) {
8306 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8307 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
8308 show_backtrace(1);
8309 }
8310 var_n_value->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_value:nullable AExpr> */
8311 RET_LABEL4:(void)0;
8312 }
8313 }
8314 RET_LABEL:;
8315 }
8316 /* method parser_prod#AAttrReassignExpr#init_aattrreassignexpr for (self: Object, nullable AExpr, nullable TAttrid, nullable AAssignOp, nullable AExpr) */
8317 void VIRTUAL_parser_prod__AAttrReassignExpr__init_aattrreassignexpr(val* self, val* p0, val* p1, val* p2, val* p3) {
8318 parser_prod__AAttrReassignExpr__init_aattrreassignexpr(self, p0, p1, p2, p3); /* Direct call parser_prod#AAttrReassignExpr#init_aattrreassignexpr on <self:Object(AAttrReassignExpr)>*/
8319 RET_LABEL:;
8320 }
8321 /* method parser_prod#AAttrReassignExpr#replace_child for (self: AAttrReassignExpr, ANode, nullable ANode) */
8322 void parser_prod__AAttrReassignExpr__replace_child(val* self, val* p0, val* p1) {
8323 val* var_old_child /* var old_child: ANode */;
8324 val* var_new_child /* var new_child: nullable ANode */;
8325 val* var /* : AExpr */;
8326 short int var1 /* : Bool */;
8327 short int var2 /* : Bool */;
8328 val* var_other /* var other: nullable Object */;
8329 short int var4 /* : Bool */;
8330 short int var6 /* : Bool */;
8331 short int var7 /* : Bool */;
8332 int cltype;
8333 int idtype;
8334 const char* var_class_name;
8335 val* var8 /* : TAttrid */;
8336 short int var9 /* : Bool */;
8337 short int var10 /* : Bool */;
8338 short int var12 /* : Bool */;
8339 short int var14 /* : Bool */;
8340 short int var15 /* : Bool */;
8341 int cltype16;
8342 int idtype17;
8343 const char* var_class_name18;
8344 val* var19 /* : AAssignOp */;
8345 short int var20 /* : Bool */;
8346 short int var21 /* : Bool */;
8347 short int var23 /* : Bool */;
8348 short int var25 /* : Bool */;
8349 short int var26 /* : Bool */;
8350 int cltype27;
8351 int idtype28;
8352 const char* var_class_name29;
8353 val* var30 /* : AExpr */;
8354 short int var31 /* : Bool */;
8355 short int var32 /* : Bool */;
8356 short int var34 /* : Bool */;
8357 short int var36 /* : Bool */;
8358 short int var37 /* : Bool */;
8359 int cltype38;
8360 int idtype39;
8361 const char* var_class_name40;
8362 var_old_child = p0;
8363 var_new_child = p1;
8364 var = self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_expr].val; /* _n_expr on <self:AAttrReassignExpr> */
8365 if (unlikely(var == NULL)) {
8366 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
8367 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4144);
8368 show_backtrace(1);
8369 }
8370 {
8371 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
8372 var_other = var_old_child;
8373 {
8374 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
8375 var6 = var == var_other;
8376 var4 = var6;
8377 goto RET_LABEL5;
8378 RET_LABEL5:(void)0;
8379 }
8380 }
8381 var2 = var4;
8382 goto RET_LABEL3;
8383 RET_LABEL3:(void)0;
8384 }
8385 var1 = var2;
8386 }
8387 if (var1){
8388 /* <var_new_child:nullable ANode> isa AExpr */
8389 cltype = type_parser_nodes__AExpr.color;
8390 idtype = type_parser_nodes__AExpr.id;
8391 if(var_new_child == NULL) {
8392 var7 = 0;
8393 } else {
8394 if(cltype >= var_new_child->type->table_size) {
8395 var7 = 0;
8396 } else {
8397 var7 = var_new_child->type->type_table[cltype] == idtype;
8398 }
8399 }
8400 if (unlikely(!var7)) {
8401 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
8402 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
8403 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4145);
8404 show_backtrace(1);
8405 }
8406 {
8407 parser_prod__AAttrReassignExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AAttrReassignExpr#n_expr= on <self:AAttrReassignExpr>*/
8408 }
8409 goto RET_LABEL;
8410 } else {
8411 }
8412 var8 = self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_id].val; /* _n_id on <self:AAttrReassignExpr> */
8413 if (unlikely(var8 == NULL)) {
8414 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
8415 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4148);
8416 show_backtrace(1);
8417 }
8418 {
8419 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:TAttrid> */
8420 var_other = var_old_child;
8421 {
8422 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:TAttrid> */
8423 var14 = var8 == var_other;
8424 var12 = var14;
8425 goto RET_LABEL13;
8426 RET_LABEL13:(void)0;
8427 }
8428 }
8429 var10 = var12;
8430 goto RET_LABEL11;
8431 RET_LABEL11:(void)0;
8432 }
8433 var9 = var10;
8434 }
8435 if (var9){
8436 /* <var_new_child:nullable ANode> isa TAttrid */
8437 cltype16 = type_parser_nodes__TAttrid.color;
8438 idtype17 = type_parser_nodes__TAttrid.id;
8439 if(var_new_child == NULL) {
8440 var15 = 0;
8441 } else {
8442 if(cltype16 >= var_new_child->type->table_size) {
8443 var15 = 0;
8444 } else {
8445 var15 = var_new_child->type->type_table[cltype16] == idtype17;
8446 }
8447 }
8448 if (unlikely(!var15)) {
8449 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
8450 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TAttrid", var_class_name18);
8451 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4149);
8452 show_backtrace(1);
8453 }
8454 {
8455 parser_prod__AAttrReassignExpr__n_id_61d(self, var_new_child); /* Direct call parser_prod#AAttrReassignExpr#n_id= on <self:AAttrReassignExpr>*/
8456 }
8457 goto RET_LABEL;
8458 } else {
8459 }
8460 var19 = self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_assign_op].val; /* _n_assign_op on <self:AAttrReassignExpr> */
8461 if (unlikely(var19 == NULL)) {
8462 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_assign_op");
8463 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4152);
8464 show_backtrace(1);
8465 }
8466 {
8467 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:AAssignOp> */
8468 var_other = var_old_child;
8469 {
8470 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:AAssignOp> */
8471 var25 = var19 == var_other;
8472 var23 = var25;
8473 goto RET_LABEL24;
8474 RET_LABEL24:(void)0;
8475 }
8476 }
8477 var21 = var23;
8478 goto RET_LABEL22;
8479 RET_LABEL22:(void)0;
8480 }
8481 var20 = var21;
8482 }
8483 if (var20){
8484 /* <var_new_child:nullable ANode> isa AAssignOp */
8485 cltype27 = type_parser_nodes__AAssignOp.color;
8486 idtype28 = type_parser_nodes__AAssignOp.id;
8487 if(var_new_child == NULL) {
8488 var26 = 0;
8489 } else {
8490 if(cltype27 >= var_new_child->type->table_size) {
8491 var26 = 0;
8492 } else {
8493 var26 = var_new_child->type->type_table[cltype27] == idtype28;
8494 }
8495 }
8496 if (unlikely(!var26)) {
8497 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
8498 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AAssignOp", var_class_name29);
8499 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4153);
8500 show_backtrace(1);
8501 }
8502 {
8503 parser_prod__AAttrReassignExpr__n_assign_op_61d(self, var_new_child); /* Direct call parser_prod#AAttrReassignExpr#n_assign_op= on <self:AAttrReassignExpr>*/
8504 }
8505 goto RET_LABEL;
8506 } else {
8507 }
8508 var30 = self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_value].val; /* _n_value on <self:AAttrReassignExpr> */
8509 if (unlikely(var30 == NULL)) {
8510 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
8511 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4156);
8512 show_backtrace(1);
8513 }
8514 {
8515 { /* Inline kernel#Object#== (var30,var_old_child) on <var30:AExpr> */
8516 var_other = var_old_child;
8517 {
8518 { /* Inline kernel#Object#is_same_instance (var30,var_other) on <var30:AExpr> */
8519 var36 = var30 == var_other;
8520 var34 = var36;
8521 goto RET_LABEL35;
8522 RET_LABEL35:(void)0;
8523 }
8524 }
8525 var32 = var34;
8526 goto RET_LABEL33;
8527 RET_LABEL33:(void)0;
8528 }
8529 var31 = var32;
8530 }
8531 if (var31){
8532 /* <var_new_child:nullable ANode> isa AExpr */
8533 cltype38 = type_parser_nodes__AExpr.color;
8534 idtype39 = type_parser_nodes__AExpr.id;
8535 if(var_new_child == NULL) {
8536 var37 = 0;
8537 } else {
8538 if(cltype38 >= var_new_child->type->table_size) {
8539 var37 = 0;
8540 } else {
8541 var37 = var_new_child->type->type_table[cltype38] == idtype39;
8542 }
8543 }
8544 if (unlikely(!var37)) {
8545 var_class_name40 = var_new_child == NULL ? "null" : var_new_child->type->name;
8546 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name40);
8547 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4157);
8548 show_backtrace(1);
8549 }
8550 {
8551 parser_prod__AAttrReassignExpr__n_value_61d(self, var_new_child); /* Direct call parser_prod#AAttrReassignExpr#n_value= on <self:AAttrReassignExpr>*/
8552 }
8553 goto RET_LABEL;
8554 } else {
8555 }
8556 RET_LABEL:;
8557 }
8558 /* method parser_prod#AAttrReassignExpr#replace_child for (self: Object, ANode, nullable ANode) */
8559 void VIRTUAL_parser_prod__AAttrReassignExpr__replace_child(val* self, val* p0, val* p1) {
8560 parser_prod__AAttrReassignExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AAttrReassignExpr#replace_child on <self:Object(AAttrReassignExpr)>*/
8561 RET_LABEL:;
8562 }
8563 /* method parser_prod#AAttrReassignExpr#n_expr= for (self: AAttrReassignExpr, AExpr) */
8564 void parser_prod__AAttrReassignExpr__n_expr_61d(val* self, val* p0) {
8565 val* var_node /* var node: AExpr */;
8566 var_node = p0;
8567 self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_expr].val = var_node; /* _n_expr on <self:AAttrReassignExpr> */
8568 {
8569 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
8570 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
8571 RET_LABEL1:(void)0;
8572 }
8573 }
8574 RET_LABEL:;
8575 }
8576 /* method parser_prod#AAttrReassignExpr#n_expr= for (self: Object, AExpr) */
8577 void VIRTUAL_parser_prod__AAttrReassignExpr__n_expr_61d(val* self, val* p0) {
8578 parser_prod__AAttrReassignExpr__n_expr_61d(self, p0); /* Direct call parser_prod#AAttrReassignExpr#n_expr= on <self:Object(AAttrReassignExpr)>*/
8579 RET_LABEL:;
8580 }
8581 /* method parser_prod#AAttrReassignExpr#n_id= for (self: AAttrReassignExpr, TAttrid) */
8582 void parser_prod__AAttrReassignExpr__n_id_61d(val* self, val* p0) {
8583 val* var_node /* var node: TAttrid */;
8584 var_node = p0;
8585 self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_id].val = var_node; /* _n_id on <self:AAttrReassignExpr> */
8586 {
8587 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TAttrid> */
8588 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TAttrid> */
8589 RET_LABEL1:(void)0;
8590 }
8591 }
8592 RET_LABEL:;
8593 }
8594 /* method parser_prod#AAttrReassignExpr#n_id= for (self: Object, TAttrid) */
8595 void VIRTUAL_parser_prod__AAttrReassignExpr__n_id_61d(val* self, val* p0) {
8596 parser_prod__AAttrReassignExpr__n_id_61d(self, p0); /* Direct call parser_prod#AAttrReassignExpr#n_id= on <self:Object(AAttrReassignExpr)>*/
8597 RET_LABEL:;
8598 }
8599 /* method parser_prod#AAttrReassignExpr#n_assign_op= for (self: AAttrReassignExpr, AAssignOp) */
8600 void parser_prod__AAttrReassignExpr__n_assign_op_61d(val* self, val* p0) {
8601 val* var_node /* var node: AAssignOp */;
8602 var_node = p0;
8603 self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_assign_op].val = var_node; /* _n_assign_op on <self:AAttrReassignExpr> */
8604 {
8605 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AAssignOp> */
8606 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AAssignOp> */
8607 RET_LABEL1:(void)0;
8608 }
8609 }
8610 RET_LABEL:;
8611 }
8612 /* method parser_prod#AAttrReassignExpr#n_assign_op= for (self: Object, AAssignOp) */
8613 void VIRTUAL_parser_prod__AAttrReassignExpr__n_assign_op_61d(val* self, val* p0) {
8614 parser_prod__AAttrReassignExpr__n_assign_op_61d(self, p0); /* Direct call parser_prod#AAttrReassignExpr#n_assign_op= on <self:Object(AAttrReassignExpr)>*/
8615 RET_LABEL:;
8616 }
8617 /* method parser_prod#AAttrReassignExpr#n_value= for (self: AAttrReassignExpr, AExpr) */
8618 void parser_prod__AAttrReassignExpr__n_value_61d(val* self, val* p0) {
8619 val* var_node /* var node: AExpr */;
8620 var_node = p0;
8621 self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_value].val = var_node; /* _n_value on <self:AAttrReassignExpr> */
8622 {
8623 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
8624 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
8625 RET_LABEL1:(void)0;
8626 }
8627 }
8628 RET_LABEL:;
8629 }
8630 /* method parser_prod#AAttrReassignExpr#n_value= for (self: Object, AExpr) */
8631 void VIRTUAL_parser_prod__AAttrReassignExpr__n_value_61d(val* self, val* p0) {
8632 parser_prod__AAttrReassignExpr__n_value_61d(self, p0); /* Direct call parser_prod#AAttrReassignExpr#n_value= on <self:Object(AAttrReassignExpr)>*/
8633 RET_LABEL:;
8634 }
8635 /* method parser_prod#AAttrReassignExpr#visit_all for (self: AAttrReassignExpr, Visitor) */
8636 void parser_prod__AAttrReassignExpr__visit_all(val* self, val* p0) {
8637 val* var_v /* var v: Visitor */;
8638 val* var /* : AExpr */;
8639 val* var1 /* : TAttrid */;
8640 val* var2 /* : AAssignOp */;
8641 val* var3 /* : AExpr */;
8642 var_v = p0;
8643 var = self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_expr].val; /* _n_expr on <self:AAttrReassignExpr> */
8644 if (unlikely(var == NULL)) {
8645 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
8646 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4186);
8647 show_backtrace(1);
8648 }
8649 {
8650 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8651 }
8652 var1 = self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_id].val; /* _n_id on <self:AAttrReassignExpr> */
8653 if (unlikely(var1 == NULL)) {
8654 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
8655 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4187);
8656 show_backtrace(1);
8657 }
8658 {
8659 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8660 }
8661 var2 = self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_assign_op].val; /* _n_assign_op on <self:AAttrReassignExpr> */
8662 if (unlikely(var2 == NULL)) {
8663 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_assign_op");
8664 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4188);
8665 show_backtrace(1);
8666 }
8667 {
8668 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8669 }
8670 var3 = self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_value].val; /* _n_value on <self:AAttrReassignExpr> */
8671 if (unlikely(var3 == NULL)) {
8672 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
8673 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4189);
8674 show_backtrace(1);
8675 }
8676 {
8677 parser_nodes__Visitor__enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8678 }
8679 RET_LABEL:;
8680 }
8681 /* method parser_prod#AAttrReassignExpr#visit_all for (self: Object, Visitor) */
8682 void VIRTUAL_parser_prod__AAttrReassignExpr__visit_all(val* self, val* p0) {
8683 parser_prod__AAttrReassignExpr__visit_all(self, p0); /* Direct call parser_prod#AAttrReassignExpr#visit_all on <self:Object(AAttrReassignExpr)>*/
8684 RET_LABEL:;
8685 }
8686 /* method parser_prod#ACallExpr#init_acallexpr for (self: ACallExpr, nullable AExpr, nullable TId, nullable AExprs) */
8687 void parser_prod__ACallExpr__init_acallexpr(val* self, val* p0, val* p1, val* p2) {
8688 val* var_n_expr /* var n_expr: nullable AExpr */;
8689 val* var_n_id /* var n_id: nullable TId */;
8690 val* var_n_args /* var n_args: nullable AExprs */;
8691 var_n_expr = p0;
8692 var_n_id = p1;
8693 var_n_args = p2;
8694 if (unlikely(var_n_expr == NULL)) {
8695 PRINT_ERROR("Runtime error: %s", "Cast failed");
8696 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4199);
8697 show_backtrace(1);
8698 }
8699 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:ACallExpr> */
8700 if (var_n_expr == NULL) {
8701 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8702 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4200);
8703 show_backtrace(1);
8704 } else {
8705 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
8706 if (unlikely(var_n_expr == NULL)) {
8707 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8708 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
8709 show_backtrace(1);
8710 }
8711 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
8712 RET_LABEL1:(void)0;
8713 }
8714 }
8715 if (unlikely(var_n_id == NULL)) {
8716 PRINT_ERROR("Runtime error: %s", "Cast failed");
8717 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4201);
8718 show_backtrace(1);
8719 }
8720 self->attrs[COLOR_parser_nodes__ACallFormExpr___n_id].val = var_n_id; /* _n_id on <self:ACallExpr> */
8721 if (var_n_id == NULL) {
8722 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8723 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4202);
8724 show_backtrace(1);
8725 } else {
8726 { /* Inline parser_nodes#ANode#parent= (var_n_id,self) on <var_n_id:nullable TId> */
8727 if (unlikely(var_n_id == NULL)) {
8728 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8729 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
8730 show_backtrace(1);
8731 }
8732 var_n_id->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_id:nullable TId> */
8733 RET_LABEL2:(void)0;
8734 }
8735 }
8736 if (unlikely(var_n_args == NULL)) {
8737 PRINT_ERROR("Runtime error: %s", "Cast failed");
8738 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4203);
8739 show_backtrace(1);
8740 }
8741 self->attrs[COLOR_parser_nodes__ACallFormExpr___n_args].val = var_n_args; /* _n_args on <self:ACallExpr> */
8742 if (var_n_args == NULL) {
8743 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8744 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4204);
8745 show_backtrace(1);
8746 } else {
8747 { /* Inline parser_nodes#ANode#parent= (var_n_args,self) on <var_n_args:nullable AExprs> */
8748 if (unlikely(var_n_args == NULL)) {
8749 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8750 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
8751 show_backtrace(1);
8752 }
8753 var_n_args->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_args:nullable AExprs> */
8754 RET_LABEL3:(void)0;
8755 }
8756 }
8757 RET_LABEL:;
8758 }
8759 /* method parser_prod#ACallExpr#init_acallexpr for (self: Object, nullable AExpr, nullable TId, nullable AExprs) */
8760 void VIRTUAL_parser_prod__ACallExpr__init_acallexpr(val* self, val* p0, val* p1, val* p2) {
8761 parser_prod__ACallExpr__init_acallexpr(self, p0, p1, p2); /* Direct call parser_prod#ACallExpr#init_acallexpr on <self:Object(ACallExpr)>*/
8762 RET_LABEL:;
8763 }
8764 /* method parser_prod#ACallExpr#replace_child for (self: ACallExpr, ANode, nullable ANode) */
8765 void parser_prod__ACallExpr__replace_child(val* self, val* p0, val* p1) {
8766 val* var_old_child /* var old_child: ANode */;
8767 val* var_new_child /* var new_child: nullable ANode */;
8768 val* var /* : AExpr */;
8769 short int var1 /* : Bool */;
8770 short int var2 /* : Bool */;
8771 val* var_other /* var other: nullable Object */;
8772 short int var4 /* : Bool */;
8773 short int var6 /* : Bool */;
8774 short int var7 /* : Bool */;
8775 int cltype;
8776 int idtype;
8777 const char* var_class_name;
8778 val* var8 /* : TId */;
8779 short int var9 /* : Bool */;
8780 short int var10 /* : Bool */;
8781 short int var12 /* : Bool */;
8782 short int var14 /* : Bool */;
8783 short int var15 /* : Bool */;
8784 int cltype16;
8785 int idtype17;
8786 const char* var_class_name18;
8787 val* var19 /* : AExprs */;
8788 short int var20 /* : Bool */;
8789 short int var21 /* : Bool */;
8790 short int var23 /* : Bool */;
8791 short int var25 /* : Bool */;
8792 short int var26 /* : Bool */;
8793 int cltype27;
8794 int idtype28;
8795 const char* var_class_name29;
8796 var_old_child = p0;
8797 var_new_child = p1;
8798 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ACallExpr> */
8799 if (unlikely(var == NULL)) {
8800 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
8801 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4209);
8802 show_backtrace(1);
8803 }
8804 {
8805 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
8806 var_other = var_old_child;
8807 {
8808 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
8809 var6 = var == var_other;
8810 var4 = var6;
8811 goto RET_LABEL5;
8812 RET_LABEL5:(void)0;
8813 }
8814 }
8815 var2 = var4;
8816 goto RET_LABEL3;
8817 RET_LABEL3:(void)0;
8818 }
8819 var1 = var2;
8820 }
8821 if (var1){
8822 /* <var_new_child:nullable ANode> isa AExpr */
8823 cltype = type_parser_nodes__AExpr.color;
8824 idtype = type_parser_nodes__AExpr.id;
8825 if(var_new_child == NULL) {
8826 var7 = 0;
8827 } else {
8828 if(cltype >= var_new_child->type->table_size) {
8829 var7 = 0;
8830 } else {
8831 var7 = var_new_child->type->type_table[cltype] == idtype;
8832 }
8833 }
8834 if (unlikely(!var7)) {
8835 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
8836 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
8837 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4210);
8838 show_backtrace(1);
8839 }
8840 {
8841 parser_prod__ACallExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#ACallExpr#n_expr= on <self:ACallExpr>*/
8842 }
8843 goto RET_LABEL;
8844 } else {
8845 }
8846 var8 = self->attrs[COLOR_parser_nodes__ACallFormExpr___n_id].val; /* _n_id on <self:ACallExpr> */
8847 if (unlikely(var8 == NULL)) {
8848 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
8849 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4213);
8850 show_backtrace(1);
8851 }
8852 {
8853 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:TId> */
8854 var_other = var_old_child;
8855 {
8856 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:TId> */
8857 var14 = var8 == var_other;
8858 var12 = var14;
8859 goto RET_LABEL13;
8860 RET_LABEL13:(void)0;
8861 }
8862 }
8863 var10 = var12;
8864 goto RET_LABEL11;
8865 RET_LABEL11:(void)0;
8866 }
8867 var9 = var10;
8868 }
8869 if (var9){
8870 /* <var_new_child:nullable ANode> isa TId */
8871 cltype16 = type_parser_nodes__TId.color;
8872 idtype17 = type_parser_nodes__TId.id;
8873 if(var_new_child == NULL) {
8874 var15 = 0;
8875 } else {
8876 if(cltype16 >= var_new_child->type->table_size) {
8877 var15 = 0;
8878 } else {
8879 var15 = var_new_child->type->type_table[cltype16] == idtype17;
8880 }
8881 }
8882 if (unlikely(!var15)) {
8883 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
8884 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TId", var_class_name18);
8885 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4214);
8886 show_backtrace(1);
8887 }
8888 {
8889 parser_prod__ACallExpr__n_id_61d(self, var_new_child); /* Direct call parser_prod#ACallExpr#n_id= on <self:ACallExpr>*/
8890 }
8891 goto RET_LABEL;
8892 } else {
8893 }
8894 var19 = self->attrs[COLOR_parser_nodes__ACallFormExpr___n_args].val; /* _n_args on <self:ACallExpr> */
8895 if (unlikely(var19 == NULL)) {
8896 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
8897 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4217);
8898 show_backtrace(1);
8899 }
8900 {
8901 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:AExprs> */
8902 var_other = var_old_child;
8903 {
8904 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:AExprs> */
8905 var25 = var19 == var_other;
8906 var23 = var25;
8907 goto RET_LABEL24;
8908 RET_LABEL24:(void)0;
8909 }
8910 }
8911 var21 = var23;
8912 goto RET_LABEL22;
8913 RET_LABEL22:(void)0;
8914 }
8915 var20 = var21;
8916 }
8917 if (var20){
8918 /* <var_new_child:nullable ANode> isa AExprs */
8919 cltype27 = type_parser_nodes__AExprs.color;
8920 idtype28 = type_parser_nodes__AExprs.id;
8921 if(var_new_child == NULL) {
8922 var26 = 0;
8923 } else {
8924 if(cltype27 >= var_new_child->type->table_size) {
8925 var26 = 0;
8926 } else {
8927 var26 = var_new_child->type->type_table[cltype27] == idtype28;
8928 }
8929 }
8930 if (unlikely(!var26)) {
8931 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
8932 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExprs", var_class_name29);
8933 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4218);
8934 show_backtrace(1);
8935 }
8936 {
8937 parser_prod__ACallExpr__n_args_61d(self, var_new_child); /* Direct call parser_prod#ACallExpr#n_args= on <self:ACallExpr>*/
8938 }
8939 goto RET_LABEL;
8940 } else {
8941 }
8942 RET_LABEL:;
8943 }
8944 /* method parser_prod#ACallExpr#replace_child for (self: Object, ANode, nullable ANode) */
8945 void VIRTUAL_parser_prod__ACallExpr__replace_child(val* self, val* p0, val* p1) {
8946 parser_prod__ACallExpr__replace_child(self, p0, p1); /* Direct call parser_prod#ACallExpr#replace_child on <self:Object(ACallExpr)>*/
8947 RET_LABEL:;
8948 }
8949 /* method parser_prod#ACallExpr#n_expr= for (self: ACallExpr, AExpr) */
8950 void parser_prod__ACallExpr__n_expr_61d(val* self, val* p0) {
8951 val* var_node /* var node: AExpr */;
8952 var_node = p0;
8953 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:ACallExpr> */
8954 {
8955 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
8956 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
8957 RET_LABEL1:(void)0;
8958 }
8959 }
8960 RET_LABEL:;
8961 }
8962 /* method parser_prod#ACallExpr#n_expr= for (self: Object, AExpr) */
8963 void VIRTUAL_parser_prod__ACallExpr__n_expr_61d(val* self, val* p0) {
8964 parser_prod__ACallExpr__n_expr_61d(self, p0); /* Direct call parser_prod#ACallExpr#n_expr= on <self:Object(ACallExpr)>*/
8965 RET_LABEL:;
8966 }
8967 /* method parser_prod#ACallExpr#n_id= for (self: ACallExpr, TId) */
8968 void parser_prod__ACallExpr__n_id_61d(val* self, val* p0) {
8969 val* var_node /* var node: TId */;
8970 var_node = p0;
8971 self->attrs[COLOR_parser_nodes__ACallFormExpr___n_id].val = var_node; /* _n_id on <self:ACallExpr> */
8972 {
8973 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TId> */
8974 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TId> */
8975 RET_LABEL1:(void)0;
8976 }
8977 }
8978 RET_LABEL:;
8979 }
8980 /* method parser_prod#ACallExpr#n_id= for (self: Object, TId) */
8981 void VIRTUAL_parser_prod__ACallExpr__n_id_61d(val* self, val* p0) {
8982 parser_prod__ACallExpr__n_id_61d(self, p0); /* Direct call parser_prod#ACallExpr#n_id= on <self:Object(ACallExpr)>*/
8983 RET_LABEL:;
8984 }
8985 /* method parser_prod#ACallExpr#n_args= for (self: ACallExpr, AExprs) */
8986 void parser_prod__ACallExpr__n_args_61d(val* self, val* p0) {
8987 val* var_node /* var node: AExprs */;
8988 var_node = p0;
8989 self->attrs[COLOR_parser_nodes__ACallFormExpr___n_args].val = var_node; /* _n_args on <self:ACallExpr> */
8990 {
8991 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExprs> */
8992 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExprs> */
8993 RET_LABEL1:(void)0;
8994 }
8995 }
8996 RET_LABEL:;
8997 }
8998 /* method parser_prod#ACallExpr#n_args= for (self: Object, AExprs) */
8999 void VIRTUAL_parser_prod__ACallExpr__n_args_61d(val* self, val* p0) {
9000 parser_prod__ACallExpr__n_args_61d(self, p0); /* Direct call parser_prod#ACallExpr#n_args= on <self:Object(ACallExpr)>*/
9001 RET_LABEL:;
9002 }
9003 /* method parser_prod#ACallExpr#visit_all for (self: ACallExpr, Visitor) */
9004 void parser_prod__ACallExpr__visit_all(val* self, val* p0) {
9005 val* var_v /* var v: Visitor */;
9006 val* var /* : AExpr */;
9007 val* var1 /* : TId */;
9008 val* var2 /* : AExprs */;
9009 var_v = p0;
9010 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ACallExpr> */
9011 if (unlikely(var == NULL)) {
9012 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
9013 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4242);
9014 show_backtrace(1);
9015 }
9016 {
9017 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9018 }
9019 var1 = self->attrs[COLOR_parser_nodes__ACallFormExpr___n_id].val; /* _n_id on <self:ACallExpr> */
9020 if (unlikely(var1 == NULL)) {
9021 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
9022 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4243);
9023 show_backtrace(1);
9024 }
9025 {
9026 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9027 }
9028 var2 = self->attrs[COLOR_parser_nodes__ACallFormExpr___n_args].val; /* _n_args on <self:ACallExpr> */
9029 if (unlikely(var2 == NULL)) {
9030 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
9031 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4244);
9032 show_backtrace(1);
9033 }
9034 {
9035 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9036 }
9037 RET_LABEL:;
9038 }
9039 /* method parser_prod#ACallExpr#visit_all for (self: Object, Visitor) */
9040 void VIRTUAL_parser_prod__ACallExpr__visit_all(val* self, val* p0) {
9041 parser_prod__ACallExpr__visit_all(self, p0); /* Direct call parser_prod#ACallExpr#visit_all on <self:Object(ACallExpr)>*/
9042 RET_LABEL:;
9043 }
9044 /* method parser_prod#ACallAssignExpr#init_acallassignexpr for (self: ACallAssignExpr, nullable AExpr, nullable TId, nullable AExprs, nullable TAssign, nullable AExpr) */
9045 void parser_prod__ACallAssignExpr__init_acallassignexpr(val* self, val* p0, val* p1, val* p2, val* p3, val* p4) {
9046 val* var_n_expr /* var n_expr: nullable AExpr */;
9047 val* var_n_id /* var n_id: nullable TId */;
9048 val* var_n_args /* var n_args: nullable AExprs */;
9049 val* var_n_assign /* var n_assign: nullable TAssign */;
9050 val* var_n_value /* var n_value: nullable AExpr */;
9051 var_n_expr = p0;
9052 var_n_id = p1;
9053 var_n_args = p2;
9054 var_n_assign = p3;
9055 var_n_value = p4;
9056 if (unlikely(var_n_expr == NULL)) {
9057 PRINT_ERROR("Runtime error: %s", "Cast failed");
9058 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4256);
9059 show_backtrace(1);
9060 }
9061 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:ACallAssignExpr> */
9062 if (var_n_expr == NULL) {
9063 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9064 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4257);
9065 show_backtrace(1);
9066 } else {
9067 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
9068 if (unlikely(var_n_expr == NULL)) {
9069 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9070 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
9071 show_backtrace(1);
9072 }
9073 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
9074 RET_LABEL1:(void)0;
9075 }
9076 }
9077 if (unlikely(var_n_id == NULL)) {
9078 PRINT_ERROR("Runtime error: %s", "Cast failed");
9079 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4258);
9080 show_backtrace(1);
9081 }
9082 self->attrs[COLOR_parser_nodes__ACallFormExpr___n_id].val = var_n_id; /* _n_id on <self:ACallAssignExpr> */
9083 if (var_n_id == NULL) {
9084 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9085 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4259);
9086 show_backtrace(1);
9087 } else {
9088 { /* Inline parser_nodes#ANode#parent= (var_n_id,self) on <var_n_id:nullable TId> */
9089 if (unlikely(var_n_id == NULL)) {
9090 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9091 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
9092 show_backtrace(1);
9093 }
9094 var_n_id->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_id:nullable TId> */
9095 RET_LABEL2:(void)0;
9096 }
9097 }
9098 if (unlikely(var_n_args == NULL)) {
9099 PRINT_ERROR("Runtime error: %s", "Cast failed");
9100 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4260);
9101 show_backtrace(1);
9102 }
9103 self->attrs[COLOR_parser_nodes__ACallFormExpr___n_args].val = var_n_args; /* _n_args on <self:ACallAssignExpr> */
9104 if (var_n_args == NULL) {
9105 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9106 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4261);
9107 show_backtrace(1);
9108 } else {
9109 { /* Inline parser_nodes#ANode#parent= (var_n_args,self) on <var_n_args:nullable AExprs> */
9110 if (unlikely(var_n_args == NULL)) {
9111 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9112 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
9113 show_backtrace(1);
9114 }
9115 var_n_args->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_args:nullable AExprs> */
9116 RET_LABEL3:(void)0;
9117 }
9118 }
9119 if (unlikely(var_n_assign == NULL)) {
9120 PRINT_ERROR("Runtime error: %s", "Cast failed");
9121 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4262);
9122 show_backtrace(1);
9123 }
9124 self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_assign].val = var_n_assign; /* _n_assign on <self:ACallAssignExpr> */
9125 if (var_n_assign == NULL) {
9126 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9127 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4263);
9128 show_backtrace(1);
9129 } else {
9130 { /* Inline parser_nodes#ANode#parent= (var_n_assign,self) on <var_n_assign:nullable TAssign> */
9131 if (unlikely(var_n_assign == NULL)) {
9132 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9133 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
9134 show_backtrace(1);
9135 }
9136 var_n_assign->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_assign:nullable TAssign> */
9137 RET_LABEL4:(void)0;
9138 }
9139 }
9140 if (unlikely(var_n_value == NULL)) {
9141 PRINT_ERROR("Runtime error: %s", "Cast failed");
9142 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4264);
9143 show_backtrace(1);
9144 }
9145 self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_value].val = var_n_value; /* _n_value on <self:ACallAssignExpr> */
9146 if (var_n_value == NULL) {
9147 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9148 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4265);
9149 show_backtrace(1);
9150 } else {
9151 { /* Inline parser_nodes#ANode#parent= (var_n_value,self) on <var_n_value:nullable AExpr> */
9152 if (unlikely(var_n_value == NULL)) {
9153 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9154 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
9155 show_backtrace(1);
9156 }
9157 var_n_value->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_value:nullable AExpr> */
9158 RET_LABEL5:(void)0;
9159 }
9160 }
9161 RET_LABEL:;
9162 }
9163 /* method parser_prod#ACallAssignExpr#init_acallassignexpr for (self: Object, nullable AExpr, nullable TId, nullable AExprs, nullable TAssign, nullable AExpr) */
9164 void VIRTUAL_parser_prod__ACallAssignExpr__init_acallassignexpr(val* self, val* p0, val* p1, val* p2, val* p3, val* p4) {
9165 parser_prod__ACallAssignExpr__init_acallassignexpr(self, p0, p1, p2, p3, p4); /* Direct call parser_prod#ACallAssignExpr#init_acallassignexpr on <self:Object(ACallAssignExpr)>*/
9166 RET_LABEL:;
9167 }
9168 /* method parser_prod#ACallAssignExpr#replace_child for (self: ACallAssignExpr, ANode, nullable ANode) */
9169 void parser_prod__ACallAssignExpr__replace_child(val* self, val* p0, val* p1) {
9170 val* var_old_child /* var old_child: ANode */;
9171 val* var_new_child /* var new_child: nullable ANode */;
9172 val* var /* : AExpr */;
9173 short int var1 /* : Bool */;
9174 short int var2 /* : Bool */;
9175 val* var_other /* var other: nullable Object */;
9176 short int var4 /* : Bool */;
9177 short int var6 /* : Bool */;
9178 short int var7 /* : Bool */;
9179 int cltype;
9180 int idtype;
9181 const char* var_class_name;
9182 val* var8 /* : TId */;
9183 short int var9 /* : Bool */;
9184 short int var10 /* : Bool */;
9185 short int var12 /* : Bool */;
9186 short int var14 /* : Bool */;
9187 short int var15 /* : Bool */;
9188 int cltype16;
9189 int idtype17;
9190 const char* var_class_name18;
9191 val* var19 /* : AExprs */;
9192 short int var20 /* : Bool */;
9193 short int var21 /* : Bool */;
9194 short int var23 /* : Bool */;
9195 short int var25 /* : Bool */;
9196 short int var26 /* : Bool */;
9197 int cltype27;
9198 int idtype28;
9199 const char* var_class_name29;
9200 val* var30 /* : TAssign */;
9201 short int var31 /* : Bool */;
9202 short int var32 /* : Bool */;
9203 short int var34 /* : Bool */;
9204 short int var36 /* : Bool */;
9205 short int var37 /* : Bool */;
9206 int cltype38;
9207 int idtype39;
9208 const char* var_class_name40;
9209 val* var41 /* : AExpr */;
9210 short int var42 /* : Bool */;
9211 short int var43 /* : Bool */;
9212 short int var45 /* : Bool */;
9213 short int var47 /* : Bool */;
9214 short int var48 /* : Bool */;
9215 int cltype49;
9216 int idtype50;
9217 const char* var_class_name51;
9218 var_old_child = p0;
9219 var_new_child = p1;
9220 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ACallAssignExpr> */
9221 if (unlikely(var == NULL)) {
9222 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
9223 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4270);
9224 show_backtrace(1);
9225 }
9226 {
9227 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
9228 var_other = var_old_child;
9229 {
9230 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
9231 var6 = var == var_other;
9232 var4 = var6;
9233 goto RET_LABEL5;
9234 RET_LABEL5:(void)0;
9235 }
9236 }
9237 var2 = var4;
9238 goto RET_LABEL3;
9239 RET_LABEL3:(void)0;
9240 }
9241 var1 = var2;
9242 }
9243 if (var1){
9244 /* <var_new_child:nullable ANode> isa AExpr */
9245 cltype = type_parser_nodes__AExpr.color;
9246 idtype = type_parser_nodes__AExpr.id;
9247 if(var_new_child == NULL) {
9248 var7 = 0;
9249 } else {
9250 if(cltype >= var_new_child->type->table_size) {
9251 var7 = 0;
9252 } else {
9253 var7 = var_new_child->type->type_table[cltype] == idtype;
9254 }
9255 }
9256 if (unlikely(!var7)) {
9257 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
9258 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
9259 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4271);
9260 show_backtrace(1);
9261 }
9262 {
9263 parser_prod__ACallAssignExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#ACallAssignExpr#n_expr= on <self:ACallAssignExpr>*/
9264 }
9265 goto RET_LABEL;
9266 } else {
9267 }
9268 var8 = self->attrs[COLOR_parser_nodes__ACallFormExpr___n_id].val; /* _n_id on <self:ACallAssignExpr> */
9269 if (unlikely(var8 == NULL)) {
9270 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
9271 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4274);
9272 show_backtrace(1);
9273 }
9274 {
9275 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:TId> */
9276 var_other = var_old_child;
9277 {
9278 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:TId> */
9279 var14 = var8 == var_other;
9280 var12 = var14;
9281 goto RET_LABEL13;
9282 RET_LABEL13:(void)0;
9283 }
9284 }
9285 var10 = var12;
9286 goto RET_LABEL11;
9287 RET_LABEL11:(void)0;
9288 }
9289 var9 = var10;
9290 }
9291 if (var9){
9292 /* <var_new_child:nullable ANode> isa TId */
9293 cltype16 = type_parser_nodes__TId.color;
9294 idtype17 = type_parser_nodes__TId.id;
9295 if(var_new_child == NULL) {
9296 var15 = 0;
9297 } else {
9298 if(cltype16 >= var_new_child->type->table_size) {
9299 var15 = 0;
9300 } else {
9301 var15 = var_new_child->type->type_table[cltype16] == idtype17;
9302 }
9303 }
9304 if (unlikely(!var15)) {
9305 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
9306 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TId", var_class_name18);
9307 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4275);
9308 show_backtrace(1);
9309 }
9310 {
9311 parser_prod__ACallAssignExpr__n_id_61d(self, var_new_child); /* Direct call parser_prod#ACallAssignExpr#n_id= on <self:ACallAssignExpr>*/
9312 }
9313 goto RET_LABEL;
9314 } else {
9315 }
9316 var19 = self->attrs[COLOR_parser_nodes__ACallFormExpr___n_args].val; /* _n_args on <self:ACallAssignExpr> */
9317 if (unlikely(var19 == NULL)) {
9318 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
9319 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4278);
9320 show_backtrace(1);
9321 }
9322 {
9323 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:AExprs> */
9324 var_other = var_old_child;
9325 {
9326 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:AExprs> */
9327 var25 = var19 == var_other;
9328 var23 = var25;
9329 goto RET_LABEL24;
9330 RET_LABEL24:(void)0;
9331 }
9332 }
9333 var21 = var23;
9334 goto RET_LABEL22;
9335 RET_LABEL22:(void)0;
9336 }
9337 var20 = var21;
9338 }
9339 if (var20){
9340 /* <var_new_child:nullable ANode> isa AExprs */
9341 cltype27 = type_parser_nodes__AExprs.color;
9342 idtype28 = type_parser_nodes__AExprs.id;
9343 if(var_new_child == NULL) {
9344 var26 = 0;
9345 } else {
9346 if(cltype27 >= var_new_child->type->table_size) {
9347 var26 = 0;
9348 } else {
9349 var26 = var_new_child->type->type_table[cltype27] == idtype28;
9350 }
9351 }
9352 if (unlikely(!var26)) {
9353 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
9354 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExprs", var_class_name29);
9355 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4279);
9356 show_backtrace(1);
9357 }
9358 {
9359 parser_prod__ACallAssignExpr__n_args_61d(self, var_new_child); /* Direct call parser_prod#ACallAssignExpr#n_args= on <self:ACallAssignExpr>*/
9360 }
9361 goto RET_LABEL;
9362 } else {
9363 }
9364 var30 = self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_assign].val; /* _n_assign on <self:ACallAssignExpr> */
9365 if (unlikely(var30 == NULL)) {
9366 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_assign");
9367 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4282);
9368 show_backtrace(1);
9369 }
9370 {
9371 { /* Inline kernel#Object#== (var30,var_old_child) on <var30:TAssign> */
9372 var_other = var_old_child;
9373 {
9374 { /* Inline kernel#Object#is_same_instance (var30,var_other) on <var30:TAssign> */
9375 var36 = var30 == var_other;
9376 var34 = var36;
9377 goto RET_LABEL35;
9378 RET_LABEL35:(void)0;
9379 }
9380 }
9381 var32 = var34;
9382 goto RET_LABEL33;
9383 RET_LABEL33:(void)0;
9384 }
9385 var31 = var32;
9386 }
9387 if (var31){
9388 /* <var_new_child:nullable ANode> isa TAssign */
9389 cltype38 = type_parser_nodes__TAssign.color;
9390 idtype39 = type_parser_nodes__TAssign.id;
9391 if(var_new_child == NULL) {
9392 var37 = 0;
9393 } else {
9394 if(cltype38 >= var_new_child->type->table_size) {
9395 var37 = 0;
9396 } else {
9397 var37 = var_new_child->type->type_table[cltype38] == idtype39;
9398 }
9399 }
9400 if (unlikely(!var37)) {
9401 var_class_name40 = var_new_child == NULL ? "null" : var_new_child->type->name;
9402 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TAssign", var_class_name40);
9403 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4283);
9404 show_backtrace(1);
9405 }
9406 {
9407 parser_prod__ACallAssignExpr__n_assign_61d(self, var_new_child); /* Direct call parser_prod#ACallAssignExpr#n_assign= on <self:ACallAssignExpr>*/
9408 }
9409 goto RET_LABEL;
9410 } else {
9411 }
9412 var41 = self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_value].val; /* _n_value on <self:ACallAssignExpr> */
9413 if (unlikely(var41 == NULL)) {
9414 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
9415 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4286);
9416 show_backtrace(1);
9417 }
9418 {
9419 { /* Inline kernel#Object#== (var41,var_old_child) on <var41:AExpr> */
9420 var_other = var_old_child;
9421 {
9422 { /* Inline kernel#Object#is_same_instance (var41,var_other) on <var41:AExpr> */
9423 var47 = var41 == var_other;
9424 var45 = var47;
9425 goto RET_LABEL46;
9426 RET_LABEL46:(void)0;
9427 }
9428 }
9429 var43 = var45;
9430 goto RET_LABEL44;
9431 RET_LABEL44:(void)0;
9432 }
9433 var42 = var43;
9434 }
9435 if (var42){
9436 /* <var_new_child:nullable ANode> isa AExpr */
9437 cltype49 = type_parser_nodes__AExpr.color;
9438 idtype50 = type_parser_nodes__AExpr.id;
9439 if(var_new_child == NULL) {
9440 var48 = 0;
9441 } else {
9442 if(cltype49 >= var_new_child->type->table_size) {
9443 var48 = 0;
9444 } else {
9445 var48 = var_new_child->type->type_table[cltype49] == idtype50;
9446 }
9447 }
9448 if (unlikely(!var48)) {
9449 var_class_name51 = var_new_child == NULL ? "null" : var_new_child->type->name;
9450 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name51);
9451 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4287);
9452 show_backtrace(1);
9453 }
9454 {
9455 parser_prod__ACallAssignExpr__n_value_61d(self, var_new_child); /* Direct call parser_prod#ACallAssignExpr#n_value= on <self:ACallAssignExpr>*/
9456 }
9457 goto RET_LABEL;
9458 } else {
9459 }
9460 RET_LABEL:;
9461 }
9462 /* method parser_prod#ACallAssignExpr#replace_child for (self: Object, ANode, nullable ANode) */
9463 void VIRTUAL_parser_prod__ACallAssignExpr__replace_child(val* self, val* p0, val* p1) {
9464 parser_prod__ACallAssignExpr__replace_child(self, p0, p1); /* Direct call parser_prod#ACallAssignExpr#replace_child on <self:Object(ACallAssignExpr)>*/
9465 RET_LABEL:;
9466 }
9467 /* method parser_prod#ACallAssignExpr#n_expr= for (self: ACallAssignExpr, AExpr) */
9468 void parser_prod__ACallAssignExpr__n_expr_61d(val* self, val* p0) {
9469 val* var_node /* var node: AExpr */;
9470 var_node = p0;
9471 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:ACallAssignExpr> */
9472 {
9473 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
9474 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
9475 RET_LABEL1:(void)0;
9476 }
9477 }
9478 RET_LABEL:;
9479 }
9480 /* method parser_prod#ACallAssignExpr#n_expr= for (self: Object, AExpr) */
9481 void VIRTUAL_parser_prod__ACallAssignExpr__n_expr_61d(val* self, val* p0) {
9482 parser_prod__ACallAssignExpr__n_expr_61d(self, p0); /* Direct call parser_prod#ACallAssignExpr#n_expr= on <self:Object(ACallAssignExpr)>*/
9483 RET_LABEL:;
9484 }
9485 /* method parser_prod#ACallAssignExpr#n_id= for (self: ACallAssignExpr, TId) */
9486 void parser_prod__ACallAssignExpr__n_id_61d(val* self, val* p0) {
9487 val* var_node /* var node: TId */;
9488 var_node = p0;
9489 self->attrs[COLOR_parser_nodes__ACallFormExpr___n_id].val = var_node; /* _n_id on <self:ACallAssignExpr> */
9490 {
9491 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TId> */
9492 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TId> */
9493 RET_LABEL1:(void)0;
9494 }
9495 }
9496 RET_LABEL:;
9497 }
9498 /* method parser_prod#ACallAssignExpr#n_id= for (self: Object, TId) */
9499 void VIRTUAL_parser_prod__ACallAssignExpr__n_id_61d(val* self, val* p0) {
9500 parser_prod__ACallAssignExpr__n_id_61d(self, p0); /* Direct call parser_prod#ACallAssignExpr#n_id= on <self:Object(ACallAssignExpr)>*/
9501 RET_LABEL:;
9502 }
9503 /* method parser_prod#ACallAssignExpr#n_args= for (self: ACallAssignExpr, AExprs) */
9504 void parser_prod__ACallAssignExpr__n_args_61d(val* self, val* p0) {
9505 val* var_node /* var node: AExprs */;
9506 var_node = p0;
9507 self->attrs[COLOR_parser_nodes__ACallFormExpr___n_args].val = var_node; /* _n_args on <self:ACallAssignExpr> */
9508 {
9509 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExprs> */
9510 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExprs> */
9511 RET_LABEL1:(void)0;
9512 }
9513 }
9514 RET_LABEL:;
9515 }
9516 /* method parser_prod#ACallAssignExpr#n_args= for (self: Object, AExprs) */
9517 void VIRTUAL_parser_prod__ACallAssignExpr__n_args_61d(val* self, val* p0) {
9518 parser_prod__ACallAssignExpr__n_args_61d(self, p0); /* Direct call parser_prod#ACallAssignExpr#n_args= on <self:Object(ACallAssignExpr)>*/
9519 RET_LABEL:;
9520 }
9521 /* method parser_prod#ACallAssignExpr#n_assign= for (self: ACallAssignExpr, TAssign) */
9522 void parser_prod__ACallAssignExpr__n_assign_61d(val* self, val* p0) {
9523 val* var_node /* var node: TAssign */;
9524 var_node = p0;
9525 self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_assign].val = var_node; /* _n_assign on <self:ACallAssignExpr> */
9526 {
9527 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TAssign> */
9528 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TAssign> */
9529 RET_LABEL1:(void)0;
9530 }
9531 }
9532 RET_LABEL:;
9533 }
9534 /* method parser_prod#ACallAssignExpr#n_assign= for (self: Object, TAssign) */
9535 void VIRTUAL_parser_prod__ACallAssignExpr__n_assign_61d(val* self, val* p0) {
9536 parser_prod__ACallAssignExpr__n_assign_61d(self, p0); /* Direct call parser_prod#ACallAssignExpr#n_assign= on <self:Object(ACallAssignExpr)>*/
9537 RET_LABEL:;
9538 }
9539 /* method parser_prod#ACallAssignExpr#n_value= for (self: ACallAssignExpr, AExpr) */
9540 void parser_prod__ACallAssignExpr__n_value_61d(val* self, val* p0) {
9541 val* var_node /* var node: AExpr */;
9542 var_node = p0;
9543 self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_value].val = var_node; /* _n_value on <self:ACallAssignExpr> */
9544 {
9545 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
9546 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
9547 RET_LABEL1:(void)0;
9548 }
9549 }
9550 RET_LABEL:;
9551 }
9552 /* method parser_prod#ACallAssignExpr#n_value= for (self: Object, AExpr) */
9553 void VIRTUAL_parser_prod__ACallAssignExpr__n_value_61d(val* self, val* p0) {
9554 parser_prod__ACallAssignExpr__n_value_61d(self, p0); /* Direct call parser_prod#ACallAssignExpr#n_value= on <self:Object(ACallAssignExpr)>*/
9555 RET_LABEL:;
9556 }
9557 /* method parser_prod#ACallAssignExpr#visit_all for (self: ACallAssignExpr, Visitor) */
9558 void parser_prod__ACallAssignExpr__visit_all(val* self, val* p0) {
9559 val* var_v /* var v: Visitor */;
9560 val* var /* : AExpr */;
9561 val* var1 /* : TId */;
9562 val* var2 /* : AExprs */;
9563 val* var3 /* : TAssign */;
9564 val* var4 /* : AExpr */;
9565 var_v = p0;
9566 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ACallAssignExpr> */
9567 if (unlikely(var == NULL)) {
9568 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
9569 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4321);
9570 show_backtrace(1);
9571 }
9572 {
9573 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9574 }
9575 var1 = self->attrs[COLOR_parser_nodes__ACallFormExpr___n_id].val; /* _n_id on <self:ACallAssignExpr> */
9576 if (unlikely(var1 == NULL)) {
9577 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
9578 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4322);
9579 show_backtrace(1);
9580 }
9581 {
9582 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9583 }
9584 var2 = self->attrs[COLOR_parser_nodes__ACallFormExpr___n_args].val; /* _n_args on <self:ACallAssignExpr> */
9585 if (unlikely(var2 == NULL)) {
9586 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
9587 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4323);
9588 show_backtrace(1);
9589 }
9590 {
9591 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9592 }
9593 var3 = self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_assign].val; /* _n_assign on <self:ACallAssignExpr> */
9594 if (unlikely(var3 == NULL)) {
9595 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_assign");
9596 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4324);
9597 show_backtrace(1);
9598 }
9599 {
9600 parser_nodes__Visitor__enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9601 }
9602 var4 = self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_value].val; /* _n_value on <self:ACallAssignExpr> */
9603 if (unlikely(var4 == NULL)) {
9604 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
9605 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4325);
9606 show_backtrace(1);
9607 }
9608 {
9609 parser_nodes__Visitor__enter_visit(var_v, var4); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9610 }
9611 RET_LABEL:;
9612 }
9613 /* method parser_prod#ACallAssignExpr#visit_all for (self: Object, Visitor) */
9614 void VIRTUAL_parser_prod__ACallAssignExpr__visit_all(val* self, val* p0) {
9615 parser_prod__ACallAssignExpr__visit_all(self, p0); /* Direct call parser_prod#ACallAssignExpr#visit_all on <self:Object(ACallAssignExpr)>*/
9616 RET_LABEL:;
9617 }
9618 /* method parser_prod#ACallReassignExpr#init_acallreassignexpr for (self: ACallReassignExpr, nullable AExpr, nullable TId, nullable AExprs, nullable AAssignOp, nullable AExpr) */
9619 void parser_prod__ACallReassignExpr__init_acallreassignexpr(val* self, val* p0, val* p1, val* p2, val* p3, val* p4) {
9620 val* var_n_expr /* var n_expr: nullable AExpr */;
9621 val* var_n_id /* var n_id: nullable TId */;
9622 val* var_n_args /* var n_args: nullable AExprs */;
9623 val* var_n_assign_op /* var n_assign_op: nullable AAssignOp */;
9624 val* var_n_value /* var n_value: nullable AExpr */;
9625 var_n_expr = p0;
9626 var_n_id = p1;
9627 var_n_args = p2;
9628 var_n_assign_op = p3;
9629 var_n_value = p4;
9630 if (unlikely(var_n_expr == NULL)) {
9631 PRINT_ERROR("Runtime error: %s", "Cast failed");
9632 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4337);
9633 show_backtrace(1);
9634 }
9635 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:ACallReassignExpr> */
9636 if (var_n_expr == NULL) {
9637 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9638 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4338);
9639 show_backtrace(1);
9640 } else {
9641 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
9642 if (unlikely(var_n_expr == NULL)) {
9643 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9644 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
9645 show_backtrace(1);
9646 }
9647 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
9648 RET_LABEL1:(void)0;
9649 }
9650 }
9651 if (unlikely(var_n_id == NULL)) {
9652 PRINT_ERROR("Runtime error: %s", "Cast failed");
9653 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4339);
9654 show_backtrace(1);
9655 }
9656 self->attrs[COLOR_parser_nodes__ACallFormExpr___n_id].val = var_n_id; /* _n_id on <self:ACallReassignExpr> */
9657 if (var_n_id == NULL) {
9658 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9659 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4340);
9660 show_backtrace(1);
9661 } else {
9662 { /* Inline parser_nodes#ANode#parent= (var_n_id,self) on <var_n_id:nullable TId> */
9663 if (unlikely(var_n_id == NULL)) {
9664 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9665 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
9666 show_backtrace(1);
9667 }
9668 var_n_id->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_id:nullable TId> */
9669 RET_LABEL2:(void)0;
9670 }
9671 }
9672 if (unlikely(var_n_args == NULL)) {
9673 PRINT_ERROR("Runtime error: %s", "Cast failed");
9674 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4341);
9675 show_backtrace(1);
9676 }
9677 self->attrs[COLOR_parser_nodes__ACallFormExpr___n_args].val = var_n_args; /* _n_args on <self:ACallReassignExpr> */
9678 if (var_n_args == NULL) {
9679 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9680 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4342);
9681 show_backtrace(1);
9682 } else {
9683 { /* Inline parser_nodes#ANode#parent= (var_n_args,self) on <var_n_args:nullable AExprs> */
9684 if (unlikely(var_n_args == NULL)) {
9685 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9686 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
9687 show_backtrace(1);
9688 }
9689 var_n_args->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_args:nullable AExprs> */
9690 RET_LABEL3:(void)0;
9691 }
9692 }
9693 if (unlikely(var_n_assign_op == NULL)) {
9694 PRINT_ERROR("Runtime error: %s", "Cast failed");
9695 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4343);
9696 show_backtrace(1);
9697 }
9698 self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_assign_op].val = var_n_assign_op; /* _n_assign_op on <self:ACallReassignExpr> */
9699 if (var_n_assign_op == NULL) {
9700 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9701 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4344);
9702 show_backtrace(1);
9703 } else {
9704 { /* Inline parser_nodes#ANode#parent= (var_n_assign_op,self) on <var_n_assign_op:nullable AAssignOp> */
9705 if (unlikely(var_n_assign_op == NULL)) {
9706 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9707 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
9708 show_backtrace(1);
9709 }
9710 var_n_assign_op->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_assign_op:nullable AAssignOp> */
9711 RET_LABEL4:(void)0;
9712 }
9713 }
9714 if (unlikely(var_n_value == NULL)) {
9715 PRINT_ERROR("Runtime error: %s", "Cast failed");
9716 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4345);
9717 show_backtrace(1);
9718 }
9719 self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_value].val = var_n_value; /* _n_value on <self:ACallReassignExpr> */
9720 if (var_n_value == NULL) {
9721 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9722 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4346);
9723 show_backtrace(1);
9724 } else {
9725 { /* Inline parser_nodes#ANode#parent= (var_n_value,self) on <var_n_value:nullable AExpr> */
9726 if (unlikely(var_n_value == NULL)) {
9727 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9728 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
9729 show_backtrace(1);
9730 }
9731 var_n_value->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_value:nullable AExpr> */
9732 RET_LABEL5:(void)0;
9733 }
9734 }
9735 RET_LABEL:;
9736 }
9737 /* method parser_prod#ACallReassignExpr#init_acallreassignexpr for (self: Object, nullable AExpr, nullable TId, nullable AExprs, nullable AAssignOp, nullable AExpr) */
9738 void VIRTUAL_parser_prod__ACallReassignExpr__init_acallreassignexpr(val* self, val* p0, val* p1, val* p2, val* p3, val* p4) {
9739 parser_prod__ACallReassignExpr__init_acallreassignexpr(self, p0, p1, p2, p3, p4); /* Direct call parser_prod#ACallReassignExpr#init_acallreassignexpr on <self:Object(ACallReassignExpr)>*/
9740 RET_LABEL:;
9741 }