Makefile: Document deeply-nested libraries.
[nit.git] / c_src / parser_prod.sep.4.c
1 #include "parser_prod.sep.0.h"
2 /* method parser_prod#ALtExpr#replace_child for (self: ALtExpr, ANode, nullable ANode) */
3 void parser_prod__ALtExpr__replace_child(val* self, val* p0, val* p1) {
4 val* var_old_child /* var old_child: ANode */;
5 val* var_new_child /* var new_child: nullable ANode */;
6 val* var /* : AExpr */;
7 short int var1 /* : Bool */;
8 short int var2 /* : Bool */;
9 val* var_other /* var other: nullable Object */;
10 short int var4 /* : Bool */;
11 short int var6 /* : Bool */;
12 short int var7 /* : Bool */;
13 int cltype;
14 int idtype;
15 const char* var_class_name;
16 val* var8 /* : AExpr */;
17 short int var9 /* : Bool */;
18 short int var10 /* : Bool */;
19 short int var12 /* : Bool */;
20 short int var14 /* : Bool */;
21 short int var15 /* : Bool */;
22 int cltype16;
23 int idtype17;
24 const char* var_class_name18;
25 var_old_child = p0;
26 var_new_child = p1;
27 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ALtExpr> */
28 if (unlikely(var == NULL)) {
29 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
30 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4160);
31 show_backtrace(1);
32 }
33 {
34 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
35 var_other = var_old_child;
36 {
37 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
38 var6 = var == var_other;
39 var4 = var6;
40 goto RET_LABEL5;
41 RET_LABEL5:(void)0;
42 }
43 }
44 var2 = var4;
45 goto RET_LABEL3;
46 RET_LABEL3:(void)0;
47 }
48 var1 = var2;
49 }
50 if (var1){
51 /* <var_new_child:nullable ANode> isa AExpr */
52 cltype = type_parser_nodes__AExpr.color;
53 idtype = type_parser_nodes__AExpr.id;
54 if(var_new_child == NULL) {
55 var7 = 0;
56 } else {
57 if(cltype >= var_new_child->type->table_size) {
58 var7 = 0;
59 } else {
60 var7 = var_new_child->type->type_table[cltype] == idtype;
61 }
62 }
63 if (unlikely(!var7)) {
64 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
65 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
66 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4161);
67 show_backtrace(1);
68 }
69 {
70 parser_prod__ALtExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#ALtExpr#n_expr= on <self:ALtExpr>*/
71 }
72 goto RET_LABEL;
73 } else {
74 }
75 var8 = self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:ALtExpr> */
76 if (unlikely(var8 == NULL)) {
77 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
78 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4164);
79 show_backtrace(1);
80 }
81 {
82 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExpr> */
83 var_other = var_old_child;
84 {
85 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExpr> */
86 var14 = var8 == var_other;
87 var12 = var14;
88 goto RET_LABEL13;
89 RET_LABEL13:(void)0;
90 }
91 }
92 var10 = var12;
93 goto RET_LABEL11;
94 RET_LABEL11:(void)0;
95 }
96 var9 = var10;
97 }
98 if (var9){
99 /* <var_new_child:nullable ANode> isa AExpr */
100 cltype16 = type_parser_nodes__AExpr.color;
101 idtype17 = type_parser_nodes__AExpr.id;
102 if(var_new_child == NULL) {
103 var15 = 0;
104 } else {
105 if(cltype16 >= var_new_child->type->table_size) {
106 var15 = 0;
107 } else {
108 var15 = var_new_child->type->type_table[cltype16] == idtype17;
109 }
110 }
111 if (unlikely(!var15)) {
112 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
113 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name18);
114 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4165);
115 show_backtrace(1);
116 }
117 {
118 parser_prod__ALtExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#ALtExpr#n_expr2= on <self:ALtExpr>*/
119 }
120 goto RET_LABEL;
121 } else {
122 }
123 RET_LABEL:;
124 }
125 /* method parser_prod#ALtExpr#replace_child for (self: Object, ANode, nullable ANode) */
126 void VIRTUAL_parser_prod__ALtExpr__replace_child(val* self, val* p0, val* p1) {
127 parser_prod__ALtExpr__replace_child(self, p0, p1); /* Direct call parser_prod#ALtExpr#replace_child on <self:Object(ALtExpr)>*/
128 RET_LABEL:;
129 }
130 /* method parser_prod#ALtExpr#n_expr= for (self: ALtExpr, AExpr) */
131 void parser_prod__ALtExpr__n_expr_61d(val* self, val* p0) {
132 val* var_node /* var node: AExpr */;
133 var_node = p0;
134 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:ALtExpr> */
135 {
136 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
137 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
138 RET_LABEL1:(void)0;
139 }
140 }
141 RET_LABEL:;
142 }
143 /* method parser_prod#ALtExpr#n_expr= for (self: Object, AExpr) */
144 void VIRTUAL_parser_prod__ALtExpr__n_expr_61d(val* self, val* p0) {
145 parser_prod__ALtExpr__n_expr_61d(self, p0); /* Direct call parser_prod#ALtExpr#n_expr= on <self:Object(ALtExpr)>*/
146 RET_LABEL:;
147 }
148 /* method parser_prod#ALtExpr#n_expr2= for (self: ALtExpr, AExpr) */
149 void parser_prod__ALtExpr__n_expr2_61d(val* self, val* p0) {
150 val* var_node /* var node: AExpr */;
151 var_node = p0;
152 self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val = var_node; /* _n_expr2 on <self:ALtExpr> */
153 {
154 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
155 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
156 RET_LABEL1:(void)0;
157 }
158 }
159 RET_LABEL:;
160 }
161 /* method parser_prod#ALtExpr#n_expr2= for (self: Object, AExpr) */
162 void VIRTUAL_parser_prod__ALtExpr__n_expr2_61d(val* self, val* p0) {
163 parser_prod__ALtExpr__n_expr2_61d(self, p0); /* Direct call parser_prod#ALtExpr#n_expr2= on <self:Object(ALtExpr)>*/
164 RET_LABEL:;
165 }
166 /* method parser_prod#ALtExpr#visit_all for (self: ALtExpr, Visitor) */
167 void parser_prod__ALtExpr__visit_all(val* self, val* p0) {
168 val* var_v /* var v: Visitor */;
169 val* var /* : AExpr */;
170 val* var1 /* : AExpr */;
171 var_v = p0;
172 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ALtExpr> */
173 if (unlikely(var == NULL)) {
174 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
175 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4184);
176 show_backtrace(1);
177 }
178 {
179 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
180 }
181 var1 = self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:ALtExpr> */
182 if (unlikely(var1 == NULL)) {
183 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
184 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4185);
185 show_backtrace(1);
186 }
187 {
188 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
189 }
190 RET_LABEL:;
191 }
192 /* method parser_prod#ALtExpr#visit_all for (self: Object, Visitor) */
193 void VIRTUAL_parser_prod__ALtExpr__visit_all(val* self, val* p0) {
194 parser_prod__ALtExpr__visit_all(self, p0); /* Direct call parser_prod#ALtExpr#visit_all on <self:Object(ALtExpr)>*/
195 RET_LABEL:;
196 }
197 /* method parser_prod#ALeExpr#init_aleexpr for (self: ALeExpr, nullable AExpr, nullable AExpr) */
198 void parser_prod__ALeExpr__init_aleexpr(val* self, val* p0, val* p1) {
199 val* var_n_expr /* var n_expr: nullable AExpr */;
200 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
201 var_n_expr = p0;
202 var_n_expr2 = p1;
203 if (unlikely(var_n_expr == NULL)) {
204 PRINT_ERROR("Runtime error: %s", "Cast failed");
205 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4194);
206 show_backtrace(1);
207 }
208 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:ALeExpr> */
209 if (var_n_expr == NULL) {
210 PRINT_ERROR("Runtime error: %s", "Receiver is null");
211 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4195);
212 show_backtrace(1);
213 } else {
214 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
215 if (unlikely(var_n_expr == NULL)) {
216 PRINT_ERROR("Runtime error: %s", "Receiver is null");
217 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
218 show_backtrace(1);
219 }
220 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
221 RET_LABEL1:(void)0;
222 }
223 }
224 if (unlikely(var_n_expr2 == NULL)) {
225 PRINT_ERROR("Runtime error: %s", "Cast failed");
226 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4196);
227 show_backtrace(1);
228 }
229 self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:ALeExpr> */
230 if (var_n_expr2 == NULL) {
231 PRINT_ERROR("Runtime error: %s", "Receiver is null");
232 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4197);
233 show_backtrace(1);
234 } else {
235 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
236 if (unlikely(var_n_expr2 == NULL)) {
237 PRINT_ERROR("Runtime error: %s", "Receiver is null");
238 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
239 show_backtrace(1);
240 }
241 var_n_expr2->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
242 RET_LABEL2:(void)0;
243 }
244 }
245 RET_LABEL:;
246 }
247 /* method parser_prod#ALeExpr#init_aleexpr for (self: Object, nullable AExpr, nullable AExpr) */
248 void VIRTUAL_parser_prod__ALeExpr__init_aleexpr(val* self, val* p0, val* p1) {
249 parser_prod__ALeExpr__init_aleexpr(self, p0, p1); /* Direct call parser_prod#ALeExpr#init_aleexpr on <self:Object(ALeExpr)>*/
250 RET_LABEL:;
251 }
252 /* method parser_prod#ALeExpr#replace_child for (self: ALeExpr, ANode, nullable ANode) */
253 void parser_prod__ALeExpr__replace_child(val* self, val* p0, val* p1) {
254 val* var_old_child /* var old_child: ANode */;
255 val* var_new_child /* var new_child: nullable ANode */;
256 val* var /* : AExpr */;
257 short int var1 /* : Bool */;
258 short int var2 /* : Bool */;
259 val* var_other /* var other: nullable Object */;
260 short int var4 /* : Bool */;
261 short int var6 /* : Bool */;
262 short int var7 /* : Bool */;
263 int cltype;
264 int idtype;
265 const char* var_class_name;
266 val* var8 /* : AExpr */;
267 short int var9 /* : Bool */;
268 short int var10 /* : Bool */;
269 short int var12 /* : Bool */;
270 short int var14 /* : Bool */;
271 short int var15 /* : Bool */;
272 int cltype16;
273 int idtype17;
274 const char* var_class_name18;
275 var_old_child = p0;
276 var_new_child = p1;
277 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ALeExpr> */
278 if (unlikely(var == NULL)) {
279 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
280 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4202);
281 show_backtrace(1);
282 }
283 {
284 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
285 var_other = var_old_child;
286 {
287 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
288 var6 = var == var_other;
289 var4 = var6;
290 goto RET_LABEL5;
291 RET_LABEL5:(void)0;
292 }
293 }
294 var2 = var4;
295 goto RET_LABEL3;
296 RET_LABEL3:(void)0;
297 }
298 var1 = var2;
299 }
300 if (var1){
301 /* <var_new_child:nullable ANode> isa AExpr */
302 cltype = type_parser_nodes__AExpr.color;
303 idtype = type_parser_nodes__AExpr.id;
304 if(var_new_child == NULL) {
305 var7 = 0;
306 } else {
307 if(cltype >= var_new_child->type->table_size) {
308 var7 = 0;
309 } else {
310 var7 = var_new_child->type->type_table[cltype] == idtype;
311 }
312 }
313 if (unlikely(!var7)) {
314 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
315 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
316 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4203);
317 show_backtrace(1);
318 }
319 {
320 parser_prod__ALeExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#ALeExpr#n_expr= on <self:ALeExpr>*/
321 }
322 goto RET_LABEL;
323 } else {
324 }
325 var8 = self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:ALeExpr> */
326 if (unlikely(var8 == NULL)) {
327 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
328 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4206);
329 show_backtrace(1);
330 }
331 {
332 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExpr> */
333 var_other = var_old_child;
334 {
335 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExpr> */
336 var14 = var8 == var_other;
337 var12 = var14;
338 goto RET_LABEL13;
339 RET_LABEL13:(void)0;
340 }
341 }
342 var10 = var12;
343 goto RET_LABEL11;
344 RET_LABEL11:(void)0;
345 }
346 var9 = var10;
347 }
348 if (var9){
349 /* <var_new_child:nullable ANode> isa AExpr */
350 cltype16 = type_parser_nodes__AExpr.color;
351 idtype17 = type_parser_nodes__AExpr.id;
352 if(var_new_child == NULL) {
353 var15 = 0;
354 } else {
355 if(cltype16 >= var_new_child->type->table_size) {
356 var15 = 0;
357 } else {
358 var15 = var_new_child->type->type_table[cltype16] == idtype17;
359 }
360 }
361 if (unlikely(!var15)) {
362 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
363 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name18);
364 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4207);
365 show_backtrace(1);
366 }
367 {
368 parser_prod__ALeExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#ALeExpr#n_expr2= on <self:ALeExpr>*/
369 }
370 goto RET_LABEL;
371 } else {
372 }
373 RET_LABEL:;
374 }
375 /* method parser_prod#ALeExpr#replace_child for (self: Object, ANode, nullable ANode) */
376 void VIRTUAL_parser_prod__ALeExpr__replace_child(val* self, val* p0, val* p1) {
377 parser_prod__ALeExpr__replace_child(self, p0, p1); /* Direct call parser_prod#ALeExpr#replace_child on <self:Object(ALeExpr)>*/
378 RET_LABEL:;
379 }
380 /* method parser_prod#ALeExpr#n_expr= for (self: ALeExpr, AExpr) */
381 void parser_prod__ALeExpr__n_expr_61d(val* self, val* p0) {
382 val* var_node /* var node: AExpr */;
383 var_node = p0;
384 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:ALeExpr> */
385 {
386 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
387 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
388 RET_LABEL1:(void)0;
389 }
390 }
391 RET_LABEL:;
392 }
393 /* method parser_prod#ALeExpr#n_expr= for (self: Object, AExpr) */
394 void VIRTUAL_parser_prod__ALeExpr__n_expr_61d(val* self, val* p0) {
395 parser_prod__ALeExpr__n_expr_61d(self, p0); /* Direct call parser_prod#ALeExpr#n_expr= on <self:Object(ALeExpr)>*/
396 RET_LABEL:;
397 }
398 /* method parser_prod#ALeExpr#n_expr2= for (self: ALeExpr, AExpr) */
399 void parser_prod__ALeExpr__n_expr2_61d(val* self, val* p0) {
400 val* var_node /* var node: AExpr */;
401 var_node = p0;
402 self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val = var_node; /* _n_expr2 on <self:ALeExpr> */
403 {
404 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
405 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
406 RET_LABEL1:(void)0;
407 }
408 }
409 RET_LABEL:;
410 }
411 /* method parser_prod#ALeExpr#n_expr2= for (self: Object, AExpr) */
412 void VIRTUAL_parser_prod__ALeExpr__n_expr2_61d(val* self, val* p0) {
413 parser_prod__ALeExpr__n_expr2_61d(self, p0); /* Direct call parser_prod#ALeExpr#n_expr2= on <self:Object(ALeExpr)>*/
414 RET_LABEL:;
415 }
416 /* method parser_prod#ALeExpr#visit_all for (self: ALeExpr, Visitor) */
417 void parser_prod__ALeExpr__visit_all(val* self, val* p0) {
418 val* var_v /* var v: Visitor */;
419 val* var /* : AExpr */;
420 val* var1 /* : AExpr */;
421 var_v = p0;
422 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ALeExpr> */
423 if (unlikely(var == NULL)) {
424 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
425 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4226);
426 show_backtrace(1);
427 }
428 {
429 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
430 }
431 var1 = self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:ALeExpr> */
432 if (unlikely(var1 == NULL)) {
433 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
434 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4227);
435 show_backtrace(1);
436 }
437 {
438 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
439 }
440 RET_LABEL:;
441 }
442 /* method parser_prod#ALeExpr#visit_all for (self: Object, Visitor) */
443 void VIRTUAL_parser_prod__ALeExpr__visit_all(val* self, val* p0) {
444 parser_prod__ALeExpr__visit_all(self, p0); /* Direct call parser_prod#ALeExpr#visit_all on <self:Object(ALeExpr)>*/
445 RET_LABEL:;
446 }
447 /* method parser_prod#ALlExpr#init_allexpr for (self: ALlExpr, nullable AExpr, nullable AExpr) */
448 void parser_prod__ALlExpr__init_allexpr(val* self, val* p0, val* p1) {
449 val* var_n_expr /* var n_expr: nullable AExpr */;
450 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
451 var_n_expr = p0;
452 var_n_expr2 = p1;
453 if (unlikely(var_n_expr == NULL)) {
454 PRINT_ERROR("Runtime error: %s", "Cast failed");
455 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4236);
456 show_backtrace(1);
457 }
458 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:ALlExpr> */
459 if (var_n_expr == NULL) {
460 PRINT_ERROR("Runtime error: %s", "Receiver is null");
461 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4237);
462 show_backtrace(1);
463 } else {
464 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
465 if (unlikely(var_n_expr == NULL)) {
466 PRINT_ERROR("Runtime error: %s", "Receiver is null");
467 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
468 show_backtrace(1);
469 }
470 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
471 RET_LABEL1:(void)0;
472 }
473 }
474 if (unlikely(var_n_expr2 == NULL)) {
475 PRINT_ERROR("Runtime error: %s", "Cast failed");
476 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4238);
477 show_backtrace(1);
478 }
479 self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:ALlExpr> */
480 if (var_n_expr2 == NULL) {
481 PRINT_ERROR("Runtime error: %s", "Receiver is null");
482 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4239);
483 show_backtrace(1);
484 } else {
485 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
486 if (unlikely(var_n_expr2 == NULL)) {
487 PRINT_ERROR("Runtime error: %s", "Receiver is null");
488 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
489 show_backtrace(1);
490 }
491 var_n_expr2->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
492 RET_LABEL2:(void)0;
493 }
494 }
495 RET_LABEL:;
496 }
497 /* method parser_prod#ALlExpr#init_allexpr for (self: Object, nullable AExpr, nullable AExpr) */
498 void VIRTUAL_parser_prod__ALlExpr__init_allexpr(val* self, val* p0, val* p1) {
499 parser_prod__ALlExpr__init_allexpr(self, p0, p1); /* Direct call parser_prod#ALlExpr#init_allexpr on <self:Object(ALlExpr)>*/
500 RET_LABEL:;
501 }
502 /* method parser_prod#ALlExpr#replace_child for (self: ALlExpr, ANode, nullable ANode) */
503 void parser_prod__ALlExpr__replace_child(val* self, val* p0, val* p1) {
504 val* var_old_child /* var old_child: ANode */;
505 val* var_new_child /* var new_child: nullable ANode */;
506 val* var /* : AExpr */;
507 short int var1 /* : Bool */;
508 short int var2 /* : Bool */;
509 val* var_other /* var other: nullable Object */;
510 short int var4 /* : Bool */;
511 short int var6 /* : Bool */;
512 short int var7 /* : Bool */;
513 int cltype;
514 int idtype;
515 const char* var_class_name;
516 val* var8 /* : AExpr */;
517 short int var9 /* : Bool */;
518 short int var10 /* : Bool */;
519 short int var12 /* : Bool */;
520 short int var14 /* : Bool */;
521 short int var15 /* : Bool */;
522 int cltype16;
523 int idtype17;
524 const char* var_class_name18;
525 var_old_child = p0;
526 var_new_child = p1;
527 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ALlExpr> */
528 if (unlikely(var == NULL)) {
529 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
530 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4244);
531 show_backtrace(1);
532 }
533 {
534 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
535 var_other = var_old_child;
536 {
537 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
538 var6 = var == var_other;
539 var4 = var6;
540 goto RET_LABEL5;
541 RET_LABEL5:(void)0;
542 }
543 }
544 var2 = var4;
545 goto RET_LABEL3;
546 RET_LABEL3:(void)0;
547 }
548 var1 = var2;
549 }
550 if (var1){
551 /* <var_new_child:nullable ANode> isa AExpr */
552 cltype = type_parser_nodes__AExpr.color;
553 idtype = type_parser_nodes__AExpr.id;
554 if(var_new_child == NULL) {
555 var7 = 0;
556 } else {
557 if(cltype >= var_new_child->type->table_size) {
558 var7 = 0;
559 } else {
560 var7 = var_new_child->type->type_table[cltype] == idtype;
561 }
562 }
563 if (unlikely(!var7)) {
564 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
565 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
566 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4245);
567 show_backtrace(1);
568 }
569 {
570 parser_prod__ALlExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#ALlExpr#n_expr= on <self:ALlExpr>*/
571 }
572 goto RET_LABEL;
573 } else {
574 }
575 var8 = self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:ALlExpr> */
576 if (unlikely(var8 == NULL)) {
577 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
578 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4248);
579 show_backtrace(1);
580 }
581 {
582 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExpr> */
583 var_other = var_old_child;
584 {
585 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExpr> */
586 var14 = var8 == var_other;
587 var12 = var14;
588 goto RET_LABEL13;
589 RET_LABEL13:(void)0;
590 }
591 }
592 var10 = var12;
593 goto RET_LABEL11;
594 RET_LABEL11:(void)0;
595 }
596 var9 = var10;
597 }
598 if (var9){
599 /* <var_new_child:nullable ANode> isa AExpr */
600 cltype16 = type_parser_nodes__AExpr.color;
601 idtype17 = type_parser_nodes__AExpr.id;
602 if(var_new_child == NULL) {
603 var15 = 0;
604 } else {
605 if(cltype16 >= var_new_child->type->table_size) {
606 var15 = 0;
607 } else {
608 var15 = var_new_child->type->type_table[cltype16] == idtype17;
609 }
610 }
611 if (unlikely(!var15)) {
612 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
613 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name18);
614 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4249);
615 show_backtrace(1);
616 }
617 {
618 parser_prod__ALlExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#ALlExpr#n_expr2= on <self:ALlExpr>*/
619 }
620 goto RET_LABEL;
621 } else {
622 }
623 RET_LABEL:;
624 }
625 /* method parser_prod#ALlExpr#replace_child for (self: Object, ANode, nullable ANode) */
626 void VIRTUAL_parser_prod__ALlExpr__replace_child(val* self, val* p0, val* p1) {
627 parser_prod__ALlExpr__replace_child(self, p0, p1); /* Direct call parser_prod#ALlExpr#replace_child on <self:Object(ALlExpr)>*/
628 RET_LABEL:;
629 }
630 /* method parser_prod#ALlExpr#n_expr= for (self: ALlExpr, AExpr) */
631 void parser_prod__ALlExpr__n_expr_61d(val* self, val* p0) {
632 val* var_node /* var node: AExpr */;
633 var_node = p0;
634 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:ALlExpr> */
635 {
636 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
637 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
638 RET_LABEL1:(void)0;
639 }
640 }
641 RET_LABEL:;
642 }
643 /* method parser_prod#ALlExpr#n_expr= for (self: Object, AExpr) */
644 void VIRTUAL_parser_prod__ALlExpr__n_expr_61d(val* self, val* p0) {
645 parser_prod__ALlExpr__n_expr_61d(self, p0); /* Direct call parser_prod#ALlExpr#n_expr= on <self:Object(ALlExpr)>*/
646 RET_LABEL:;
647 }
648 /* method parser_prod#ALlExpr#n_expr2= for (self: ALlExpr, AExpr) */
649 void parser_prod__ALlExpr__n_expr2_61d(val* self, val* p0) {
650 val* var_node /* var node: AExpr */;
651 var_node = p0;
652 self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val = var_node; /* _n_expr2 on <self:ALlExpr> */
653 {
654 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
655 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
656 RET_LABEL1:(void)0;
657 }
658 }
659 RET_LABEL:;
660 }
661 /* method parser_prod#ALlExpr#n_expr2= for (self: Object, AExpr) */
662 void VIRTUAL_parser_prod__ALlExpr__n_expr2_61d(val* self, val* p0) {
663 parser_prod__ALlExpr__n_expr2_61d(self, p0); /* Direct call parser_prod#ALlExpr#n_expr2= on <self:Object(ALlExpr)>*/
664 RET_LABEL:;
665 }
666 /* method parser_prod#ALlExpr#visit_all for (self: ALlExpr, Visitor) */
667 void parser_prod__ALlExpr__visit_all(val* self, val* p0) {
668 val* var_v /* var v: Visitor */;
669 val* var /* : AExpr */;
670 val* var1 /* : AExpr */;
671 var_v = p0;
672 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ALlExpr> */
673 if (unlikely(var == NULL)) {
674 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
675 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4268);
676 show_backtrace(1);
677 }
678 {
679 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
680 }
681 var1 = self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:ALlExpr> */
682 if (unlikely(var1 == NULL)) {
683 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
684 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4269);
685 show_backtrace(1);
686 }
687 {
688 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
689 }
690 RET_LABEL:;
691 }
692 /* method parser_prod#ALlExpr#visit_all for (self: Object, Visitor) */
693 void VIRTUAL_parser_prod__ALlExpr__visit_all(val* self, val* p0) {
694 parser_prod__ALlExpr__visit_all(self, p0); /* Direct call parser_prod#ALlExpr#visit_all on <self:Object(ALlExpr)>*/
695 RET_LABEL:;
696 }
697 /* method parser_prod#AGtExpr#init_agtexpr for (self: AGtExpr, nullable AExpr, nullable AExpr) */
698 void parser_prod__AGtExpr__init_agtexpr(val* self, val* p0, val* p1) {
699 val* var_n_expr /* var n_expr: nullable AExpr */;
700 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
701 var_n_expr = p0;
702 var_n_expr2 = p1;
703 if (unlikely(var_n_expr == NULL)) {
704 PRINT_ERROR("Runtime error: %s", "Cast failed");
705 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4278);
706 show_backtrace(1);
707 }
708 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AGtExpr> */
709 if (var_n_expr == NULL) {
710 PRINT_ERROR("Runtime error: %s", "Receiver is null");
711 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4279);
712 show_backtrace(1);
713 } else {
714 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
715 if (unlikely(var_n_expr == NULL)) {
716 PRINT_ERROR("Runtime error: %s", "Receiver is null");
717 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
718 show_backtrace(1);
719 }
720 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
721 RET_LABEL1:(void)0;
722 }
723 }
724 if (unlikely(var_n_expr2 == NULL)) {
725 PRINT_ERROR("Runtime error: %s", "Cast failed");
726 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4280);
727 show_backtrace(1);
728 }
729 self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:AGtExpr> */
730 if (var_n_expr2 == NULL) {
731 PRINT_ERROR("Runtime error: %s", "Receiver is null");
732 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4281);
733 show_backtrace(1);
734 } else {
735 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
736 if (unlikely(var_n_expr2 == NULL)) {
737 PRINT_ERROR("Runtime error: %s", "Receiver is null");
738 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
739 show_backtrace(1);
740 }
741 var_n_expr2->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
742 RET_LABEL2:(void)0;
743 }
744 }
745 RET_LABEL:;
746 }
747 /* method parser_prod#AGtExpr#init_agtexpr for (self: Object, nullable AExpr, nullable AExpr) */
748 void VIRTUAL_parser_prod__AGtExpr__init_agtexpr(val* self, val* p0, val* p1) {
749 parser_prod__AGtExpr__init_agtexpr(self, p0, p1); /* Direct call parser_prod#AGtExpr#init_agtexpr on <self:Object(AGtExpr)>*/
750 RET_LABEL:;
751 }
752 /* method parser_prod#AGtExpr#replace_child for (self: AGtExpr, ANode, nullable ANode) */
753 void parser_prod__AGtExpr__replace_child(val* self, val* p0, val* p1) {
754 val* var_old_child /* var old_child: ANode */;
755 val* var_new_child /* var new_child: nullable ANode */;
756 val* var /* : AExpr */;
757 short int var1 /* : Bool */;
758 short int var2 /* : Bool */;
759 val* var_other /* var other: nullable Object */;
760 short int var4 /* : Bool */;
761 short int var6 /* : Bool */;
762 short int var7 /* : Bool */;
763 int cltype;
764 int idtype;
765 const char* var_class_name;
766 val* var8 /* : AExpr */;
767 short int var9 /* : Bool */;
768 short int var10 /* : Bool */;
769 short int var12 /* : Bool */;
770 short int var14 /* : Bool */;
771 short int var15 /* : Bool */;
772 int cltype16;
773 int idtype17;
774 const char* var_class_name18;
775 var_old_child = p0;
776 var_new_child = p1;
777 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AGtExpr> */
778 if (unlikely(var == NULL)) {
779 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
780 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4286);
781 show_backtrace(1);
782 }
783 {
784 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
785 var_other = var_old_child;
786 {
787 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
788 var6 = var == var_other;
789 var4 = var6;
790 goto RET_LABEL5;
791 RET_LABEL5:(void)0;
792 }
793 }
794 var2 = var4;
795 goto RET_LABEL3;
796 RET_LABEL3:(void)0;
797 }
798 var1 = var2;
799 }
800 if (var1){
801 /* <var_new_child:nullable ANode> isa AExpr */
802 cltype = type_parser_nodes__AExpr.color;
803 idtype = type_parser_nodes__AExpr.id;
804 if(var_new_child == NULL) {
805 var7 = 0;
806 } else {
807 if(cltype >= var_new_child->type->table_size) {
808 var7 = 0;
809 } else {
810 var7 = var_new_child->type->type_table[cltype] == idtype;
811 }
812 }
813 if (unlikely(!var7)) {
814 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
815 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
816 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4287);
817 show_backtrace(1);
818 }
819 {
820 parser_prod__AGtExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AGtExpr#n_expr= on <self:AGtExpr>*/
821 }
822 goto RET_LABEL;
823 } else {
824 }
825 var8 = self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AGtExpr> */
826 if (unlikely(var8 == NULL)) {
827 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
828 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4290);
829 show_backtrace(1);
830 }
831 {
832 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExpr> */
833 var_other = var_old_child;
834 {
835 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExpr> */
836 var14 = var8 == var_other;
837 var12 = var14;
838 goto RET_LABEL13;
839 RET_LABEL13:(void)0;
840 }
841 }
842 var10 = var12;
843 goto RET_LABEL11;
844 RET_LABEL11:(void)0;
845 }
846 var9 = var10;
847 }
848 if (var9){
849 /* <var_new_child:nullable ANode> isa AExpr */
850 cltype16 = type_parser_nodes__AExpr.color;
851 idtype17 = type_parser_nodes__AExpr.id;
852 if(var_new_child == NULL) {
853 var15 = 0;
854 } else {
855 if(cltype16 >= var_new_child->type->table_size) {
856 var15 = 0;
857 } else {
858 var15 = var_new_child->type->type_table[cltype16] == idtype17;
859 }
860 }
861 if (unlikely(!var15)) {
862 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
863 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name18);
864 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4291);
865 show_backtrace(1);
866 }
867 {
868 parser_prod__AGtExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#AGtExpr#n_expr2= on <self:AGtExpr>*/
869 }
870 goto RET_LABEL;
871 } else {
872 }
873 RET_LABEL:;
874 }
875 /* method parser_prod#AGtExpr#replace_child for (self: Object, ANode, nullable ANode) */
876 void VIRTUAL_parser_prod__AGtExpr__replace_child(val* self, val* p0, val* p1) {
877 parser_prod__AGtExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AGtExpr#replace_child on <self:Object(AGtExpr)>*/
878 RET_LABEL:;
879 }
880 /* method parser_prod#AGtExpr#n_expr= for (self: AGtExpr, AExpr) */
881 void parser_prod__AGtExpr__n_expr_61d(val* self, val* p0) {
882 val* var_node /* var node: AExpr */;
883 var_node = p0;
884 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:AGtExpr> */
885 {
886 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
887 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
888 RET_LABEL1:(void)0;
889 }
890 }
891 RET_LABEL:;
892 }
893 /* method parser_prod#AGtExpr#n_expr= for (self: Object, AExpr) */
894 void VIRTUAL_parser_prod__AGtExpr__n_expr_61d(val* self, val* p0) {
895 parser_prod__AGtExpr__n_expr_61d(self, p0); /* Direct call parser_prod#AGtExpr#n_expr= on <self:Object(AGtExpr)>*/
896 RET_LABEL:;
897 }
898 /* method parser_prod#AGtExpr#n_expr2= for (self: AGtExpr, AExpr) */
899 void parser_prod__AGtExpr__n_expr2_61d(val* self, val* p0) {
900 val* var_node /* var node: AExpr */;
901 var_node = p0;
902 self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val = var_node; /* _n_expr2 on <self:AGtExpr> */
903 {
904 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
905 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
906 RET_LABEL1:(void)0;
907 }
908 }
909 RET_LABEL:;
910 }
911 /* method parser_prod#AGtExpr#n_expr2= for (self: Object, AExpr) */
912 void VIRTUAL_parser_prod__AGtExpr__n_expr2_61d(val* self, val* p0) {
913 parser_prod__AGtExpr__n_expr2_61d(self, p0); /* Direct call parser_prod#AGtExpr#n_expr2= on <self:Object(AGtExpr)>*/
914 RET_LABEL:;
915 }
916 /* method parser_prod#AGtExpr#visit_all for (self: AGtExpr, Visitor) */
917 void parser_prod__AGtExpr__visit_all(val* self, val* p0) {
918 val* var_v /* var v: Visitor */;
919 val* var /* : AExpr */;
920 val* var1 /* : AExpr */;
921 var_v = p0;
922 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AGtExpr> */
923 if (unlikely(var == NULL)) {
924 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
925 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4310);
926 show_backtrace(1);
927 }
928 {
929 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
930 }
931 var1 = self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AGtExpr> */
932 if (unlikely(var1 == NULL)) {
933 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
934 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4311);
935 show_backtrace(1);
936 }
937 {
938 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
939 }
940 RET_LABEL:;
941 }
942 /* method parser_prod#AGtExpr#visit_all for (self: Object, Visitor) */
943 void VIRTUAL_parser_prod__AGtExpr__visit_all(val* self, val* p0) {
944 parser_prod__AGtExpr__visit_all(self, p0); /* Direct call parser_prod#AGtExpr#visit_all on <self:Object(AGtExpr)>*/
945 RET_LABEL:;
946 }
947 /* method parser_prod#AGeExpr#init_ageexpr for (self: AGeExpr, nullable AExpr, nullable AExpr) */
948 void parser_prod__AGeExpr__init_ageexpr(val* self, val* p0, val* p1) {
949 val* var_n_expr /* var n_expr: nullable AExpr */;
950 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
951 var_n_expr = p0;
952 var_n_expr2 = p1;
953 if (unlikely(var_n_expr == NULL)) {
954 PRINT_ERROR("Runtime error: %s", "Cast failed");
955 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4320);
956 show_backtrace(1);
957 }
958 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AGeExpr> */
959 if (var_n_expr == NULL) {
960 PRINT_ERROR("Runtime error: %s", "Receiver is null");
961 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4321);
962 show_backtrace(1);
963 } else {
964 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
965 if (unlikely(var_n_expr == NULL)) {
966 PRINT_ERROR("Runtime error: %s", "Receiver is null");
967 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
968 show_backtrace(1);
969 }
970 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
971 RET_LABEL1:(void)0;
972 }
973 }
974 if (unlikely(var_n_expr2 == NULL)) {
975 PRINT_ERROR("Runtime error: %s", "Cast failed");
976 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4322);
977 show_backtrace(1);
978 }
979 self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:AGeExpr> */
980 if (var_n_expr2 == NULL) {
981 PRINT_ERROR("Runtime error: %s", "Receiver is null");
982 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4323);
983 show_backtrace(1);
984 } else {
985 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
986 if (unlikely(var_n_expr2 == NULL)) {
987 PRINT_ERROR("Runtime error: %s", "Receiver is null");
988 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
989 show_backtrace(1);
990 }
991 var_n_expr2->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
992 RET_LABEL2:(void)0;
993 }
994 }
995 RET_LABEL:;
996 }
997 /* method parser_prod#AGeExpr#init_ageexpr for (self: Object, nullable AExpr, nullable AExpr) */
998 void VIRTUAL_parser_prod__AGeExpr__init_ageexpr(val* self, val* p0, val* p1) {
999 parser_prod__AGeExpr__init_ageexpr(self, p0, p1); /* Direct call parser_prod#AGeExpr#init_ageexpr on <self:Object(AGeExpr)>*/
1000 RET_LABEL:;
1001 }
1002 /* method parser_prod#AGeExpr#replace_child for (self: AGeExpr, ANode, nullable ANode) */
1003 void parser_prod__AGeExpr__replace_child(val* self, val* p0, val* p1) {
1004 val* var_old_child /* var old_child: ANode */;
1005 val* var_new_child /* var new_child: nullable ANode */;
1006 val* var /* : AExpr */;
1007 short int var1 /* : Bool */;
1008 short int var2 /* : Bool */;
1009 val* var_other /* var other: nullable Object */;
1010 short int var4 /* : Bool */;
1011 short int var6 /* : Bool */;
1012 short int var7 /* : Bool */;
1013 int cltype;
1014 int idtype;
1015 const char* var_class_name;
1016 val* var8 /* : AExpr */;
1017 short int var9 /* : Bool */;
1018 short int var10 /* : Bool */;
1019 short int var12 /* : Bool */;
1020 short int var14 /* : Bool */;
1021 short int var15 /* : Bool */;
1022 int cltype16;
1023 int idtype17;
1024 const char* var_class_name18;
1025 var_old_child = p0;
1026 var_new_child = p1;
1027 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AGeExpr> */
1028 if (unlikely(var == NULL)) {
1029 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1030 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4328);
1031 show_backtrace(1);
1032 }
1033 {
1034 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
1035 var_other = var_old_child;
1036 {
1037 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
1038 var6 = var == var_other;
1039 var4 = var6;
1040 goto RET_LABEL5;
1041 RET_LABEL5:(void)0;
1042 }
1043 }
1044 var2 = var4;
1045 goto RET_LABEL3;
1046 RET_LABEL3:(void)0;
1047 }
1048 var1 = var2;
1049 }
1050 if (var1){
1051 /* <var_new_child:nullable ANode> isa AExpr */
1052 cltype = type_parser_nodes__AExpr.color;
1053 idtype = type_parser_nodes__AExpr.id;
1054 if(var_new_child == NULL) {
1055 var7 = 0;
1056 } else {
1057 if(cltype >= var_new_child->type->table_size) {
1058 var7 = 0;
1059 } else {
1060 var7 = var_new_child->type->type_table[cltype] == idtype;
1061 }
1062 }
1063 if (unlikely(!var7)) {
1064 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
1065 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
1066 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4329);
1067 show_backtrace(1);
1068 }
1069 {
1070 parser_prod__AGeExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AGeExpr#n_expr= on <self:AGeExpr>*/
1071 }
1072 goto RET_LABEL;
1073 } else {
1074 }
1075 var8 = self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AGeExpr> */
1076 if (unlikely(var8 == NULL)) {
1077 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
1078 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4332);
1079 show_backtrace(1);
1080 }
1081 {
1082 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExpr> */
1083 var_other = var_old_child;
1084 {
1085 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExpr> */
1086 var14 = var8 == var_other;
1087 var12 = var14;
1088 goto RET_LABEL13;
1089 RET_LABEL13:(void)0;
1090 }
1091 }
1092 var10 = var12;
1093 goto RET_LABEL11;
1094 RET_LABEL11:(void)0;
1095 }
1096 var9 = var10;
1097 }
1098 if (var9){
1099 /* <var_new_child:nullable ANode> isa AExpr */
1100 cltype16 = type_parser_nodes__AExpr.color;
1101 idtype17 = type_parser_nodes__AExpr.id;
1102 if(var_new_child == NULL) {
1103 var15 = 0;
1104 } else {
1105 if(cltype16 >= var_new_child->type->table_size) {
1106 var15 = 0;
1107 } else {
1108 var15 = var_new_child->type->type_table[cltype16] == idtype17;
1109 }
1110 }
1111 if (unlikely(!var15)) {
1112 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
1113 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name18);
1114 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4333);
1115 show_backtrace(1);
1116 }
1117 {
1118 parser_prod__AGeExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#AGeExpr#n_expr2= on <self:AGeExpr>*/
1119 }
1120 goto RET_LABEL;
1121 } else {
1122 }
1123 RET_LABEL:;
1124 }
1125 /* method parser_prod#AGeExpr#replace_child for (self: Object, ANode, nullable ANode) */
1126 void VIRTUAL_parser_prod__AGeExpr__replace_child(val* self, val* p0, val* p1) {
1127 parser_prod__AGeExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AGeExpr#replace_child on <self:Object(AGeExpr)>*/
1128 RET_LABEL:;
1129 }
1130 /* method parser_prod#AGeExpr#n_expr= for (self: AGeExpr, AExpr) */
1131 void parser_prod__AGeExpr__n_expr_61d(val* self, val* p0) {
1132 val* var_node /* var node: AExpr */;
1133 var_node = p0;
1134 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:AGeExpr> */
1135 {
1136 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
1137 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
1138 RET_LABEL1:(void)0;
1139 }
1140 }
1141 RET_LABEL:;
1142 }
1143 /* method parser_prod#AGeExpr#n_expr= for (self: Object, AExpr) */
1144 void VIRTUAL_parser_prod__AGeExpr__n_expr_61d(val* self, val* p0) {
1145 parser_prod__AGeExpr__n_expr_61d(self, p0); /* Direct call parser_prod#AGeExpr#n_expr= on <self:Object(AGeExpr)>*/
1146 RET_LABEL:;
1147 }
1148 /* method parser_prod#AGeExpr#n_expr2= for (self: AGeExpr, AExpr) */
1149 void parser_prod__AGeExpr__n_expr2_61d(val* self, val* p0) {
1150 val* var_node /* var node: AExpr */;
1151 var_node = p0;
1152 self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val = var_node; /* _n_expr2 on <self:AGeExpr> */
1153 {
1154 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
1155 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
1156 RET_LABEL1:(void)0;
1157 }
1158 }
1159 RET_LABEL:;
1160 }
1161 /* method parser_prod#AGeExpr#n_expr2= for (self: Object, AExpr) */
1162 void VIRTUAL_parser_prod__AGeExpr__n_expr2_61d(val* self, val* p0) {
1163 parser_prod__AGeExpr__n_expr2_61d(self, p0); /* Direct call parser_prod#AGeExpr#n_expr2= on <self:Object(AGeExpr)>*/
1164 RET_LABEL:;
1165 }
1166 /* method parser_prod#AGeExpr#visit_all for (self: AGeExpr, Visitor) */
1167 void parser_prod__AGeExpr__visit_all(val* self, val* p0) {
1168 val* var_v /* var v: Visitor */;
1169 val* var /* : AExpr */;
1170 val* var1 /* : AExpr */;
1171 var_v = p0;
1172 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AGeExpr> */
1173 if (unlikely(var == NULL)) {
1174 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1175 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4352);
1176 show_backtrace(1);
1177 }
1178 {
1179 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1180 }
1181 var1 = self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AGeExpr> */
1182 if (unlikely(var1 == NULL)) {
1183 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
1184 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4353);
1185 show_backtrace(1);
1186 }
1187 {
1188 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1189 }
1190 RET_LABEL:;
1191 }
1192 /* method parser_prod#AGeExpr#visit_all for (self: Object, Visitor) */
1193 void VIRTUAL_parser_prod__AGeExpr__visit_all(val* self, val* p0) {
1194 parser_prod__AGeExpr__visit_all(self, p0); /* Direct call parser_prod#AGeExpr#visit_all on <self:Object(AGeExpr)>*/
1195 RET_LABEL:;
1196 }
1197 /* method parser_prod#AGgExpr#init_aggexpr for (self: AGgExpr, nullable AExpr, nullable AExpr) */
1198 void parser_prod__AGgExpr__init_aggexpr(val* self, val* p0, val* p1) {
1199 val* var_n_expr /* var n_expr: nullable AExpr */;
1200 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
1201 var_n_expr = p0;
1202 var_n_expr2 = p1;
1203 if (unlikely(var_n_expr == NULL)) {
1204 PRINT_ERROR("Runtime error: %s", "Cast failed");
1205 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4362);
1206 show_backtrace(1);
1207 }
1208 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AGgExpr> */
1209 if (var_n_expr == NULL) {
1210 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1211 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4363);
1212 show_backtrace(1);
1213 } else {
1214 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
1215 if (unlikely(var_n_expr == NULL)) {
1216 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1217 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
1218 show_backtrace(1);
1219 }
1220 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
1221 RET_LABEL1:(void)0;
1222 }
1223 }
1224 if (unlikely(var_n_expr2 == NULL)) {
1225 PRINT_ERROR("Runtime error: %s", "Cast failed");
1226 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4364);
1227 show_backtrace(1);
1228 }
1229 self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:AGgExpr> */
1230 if (var_n_expr2 == NULL) {
1231 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1232 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4365);
1233 show_backtrace(1);
1234 } else {
1235 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
1236 if (unlikely(var_n_expr2 == NULL)) {
1237 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1238 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
1239 show_backtrace(1);
1240 }
1241 var_n_expr2->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
1242 RET_LABEL2:(void)0;
1243 }
1244 }
1245 RET_LABEL:;
1246 }
1247 /* method parser_prod#AGgExpr#init_aggexpr for (self: Object, nullable AExpr, nullable AExpr) */
1248 void VIRTUAL_parser_prod__AGgExpr__init_aggexpr(val* self, val* p0, val* p1) {
1249 parser_prod__AGgExpr__init_aggexpr(self, p0, p1); /* Direct call parser_prod#AGgExpr#init_aggexpr on <self:Object(AGgExpr)>*/
1250 RET_LABEL:;
1251 }
1252 /* method parser_prod#AGgExpr#replace_child for (self: AGgExpr, ANode, nullable ANode) */
1253 void parser_prod__AGgExpr__replace_child(val* self, val* p0, val* p1) {
1254 val* var_old_child /* var old_child: ANode */;
1255 val* var_new_child /* var new_child: nullable ANode */;
1256 val* var /* : AExpr */;
1257 short int var1 /* : Bool */;
1258 short int var2 /* : Bool */;
1259 val* var_other /* var other: nullable Object */;
1260 short int var4 /* : Bool */;
1261 short int var6 /* : Bool */;
1262 short int var7 /* : Bool */;
1263 int cltype;
1264 int idtype;
1265 const char* var_class_name;
1266 val* var8 /* : AExpr */;
1267 short int var9 /* : Bool */;
1268 short int var10 /* : Bool */;
1269 short int var12 /* : Bool */;
1270 short int var14 /* : Bool */;
1271 short int var15 /* : Bool */;
1272 int cltype16;
1273 int idtype17;
1274 const char* var_class_name18;
1275 var_old_child = p0;
1276 var_new_child = p1;
1277 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AGgExpr> */
1278 if (unlikely(var == NULL)) {
1279 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1280 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4370);
1281 show_backtrace(1);
1282 }
1283 {
1284 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
1285 var_other = var_old_child;
1286 {
1287 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
1288 var6 = var == var_other;
1289 var4 = var6;
1290 goto RET_LABEL5;
1291 RET_LABEL5:(void)0;
1292 }
1293 }
1294 var2 = var4;
1295 goto RET_LABEL3;
1296 RET_LABEL3:(void)0;
1297 }
1298 var1 = var2;
1299 }
1300 if (var1){
1301 /* <var_new_child:nullable ANode> isa AExpr */
1302 cltype = type_parser_nodes__AExpr.color;
1303 idtype = type_parser_nodes__AExpr.id;
1304 if(var_new_child == NULL) {
1305 var7 = 0;
1306 } else {
1307 if(cltype >= var_new_child->type->table_size) {
1308 var7 = 0;
1309 } else {
1310 var7 = var_new_child->type->type_table[cltype] == idtype;
1311 }
1312 }
1313 if (unlikely(!var7)) {
1314 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
1315 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
1316 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4371);
1317 show_backtrace(1);
1318 }
1319 {
1320 parser_prod__AGgExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AGgExpr#n_expr= on <self:AGgExpr>*/
1321 }
1322 goto RET_LABEL;
1323 } else {
1324 }
1325 var8 = self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AGgExpr> */
1326 if (unlikely(var8 == NULL)) {
1327 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
1328 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4374);
1329 show_backtrace(1);
1330 }
1331 {
1332 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExpr> */
1333 var_other = var_old_child;
1334 {
1335 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExpr> */
1336 var14 = var8 == var_other;
1337 var12 = var14;
1338 goto RET_LABEL13;
1339 RET_LABEL13:(void)0;
1340 }
1341 }
1342 var10 = var12;
1343 goto RET_LABEL11;
1344 RET_LABEL11:(void)0;
1345 }
1346 var9 = var10;
1347 }
1348 if (var9){
1349 /* <var_new_child:nullable ANode> isa AExpr */
1350 cltype16 = type_parser_nodes__AExpr.color;
1351 idtype17 = type_parser_nodes__AExpr.id;
1352 if(var_new_child == NULL) {
1353 var15 = 0;
1354 } else {
1355 if(cltype16 >= var_new_child->type->table_size) {
1356 var15 = 0;
1357 } else {
1358 var15 = var_new_child->type->type_table[cltype16] == idtype17;
1359 }
1360 }
1361 if (unlikely(!var15)) {
1362 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
1363 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name18);
1364 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4375);
1365 show_backtrace(1);
1366 }
1367 {
1368 parser_prod__AGgExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#AGgExpr#n_expr2= on <self:AGgExpr>*/
1369 }
1370 goto RET_LABEL;
1371 } else {
1372 }
1373 RET_LABEL:;
1374 }
1375 /* method parser_prod#AGgExpr#replace_child for (self: Object, ANode, nullable ANode) */
1376 void VIRTUAL_parser_prod__AGgExpr__replace_child(val* self, val* p0, val* p1) {
1377 parser_prod__AGgExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AGgExpr#replace_child on <self:Object(AGgExpr)>*/
1378 RET_LABEL:;
1379 }
1380 /* method parser_prod#AGgExpr#n_expr= for (self: AGgExpr, AExpr) */
1381 void parser_prod__AGgExpr__n_expr_61d(val* self, val* p0) {
1382 val* var_node /* var node: AExpr */;
1383 var_node = p0;
1384 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:AGgExpr> */
1385 {
1386 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
1387 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
1388 RET_LABEL1:(void)0;
1389 }
1390 }
1391 RET_LABEL:;
1392 }
1393 /* method parser_prod#AGgExpr#n_expr= for (self: Object, AExpr) */
1394 void VIRTUAL_parser_prod__AGgExpr__n_expr_61d(val* self, val* p0) {
1395 parser_prod__AGgExpr__n_expr_61d(self, p0); /* Direct call parser_prod#AGgExpr#n_expr= on <self:Object(AGgExpr)>*/
1396 RET_LABEL:;
1397 }
1398 /* method parser_prod#AGgExpr#n_expr2= for (self: AGgExpr, AExpr) */
1399 void parser_prod__AGgExpr__n_expr2_61d(val* self, val* p0) {
1400 val* var_node /* var node: AExpr */;
1401 var_node = p0;
1402 self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val = var_node; /* _n_expr2 on <self:AGgExpr> */
1403 {
1404 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
1405 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
1406 RET_LABEL1:(void)0;
1407 }
1408 }
1409 RET_LABEL:;
1410 }
1411 /* method parser_prod#AGgExpr#n_expr2= for (self: Object, AExpr) */
1412 void VIRTUAL_parser_prod__AGgExpr__n_expr2_61d(val* self, val* p0) {
1413 parser_prod__AGgExpr__n_expr2_61d(self, p0); /* Direct call parser_prod#AGgExpr#n_expr2= on <self:Object(AGgExpr)>*/
1414 RET_LABEL:;
1415 }
1416 /* method parser_prod#AGgExpr#visit_all for (self: AGgExpr, Visitor) */
1417 void parser_prod__AGgExpr__visit_all(val* self, val* p0) {
1418 val* var_v /* var v: Visitor */;
1419 val* var /* : AExpr */;
1420 val* var1 /* : AExpr */;
1421 var_v = p0;
1422 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AGgExpr> */
1423 if (unlikely(var == NULL)) {
1424 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1425 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4394);
1426 show_backtrace(1);
1427 }
1428 {
1429 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1430 }
1431 var1 = self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AGgExpr> */
1432 if (unlikely(var1 == NULL)) {
1433 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
1434 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4395);
1435 show_backtrace(1);
1436 }
1437 {
1438 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1439 }
1440 RET_LABEL:;
1441 }
1442 /* method parser_prod#AGgExpr#visit_all for (self: Object, Visitor) */
1443 void VIRTUAL_parser_prod__AGgExpr__visit_all(val* self, val* p0) {
1444 parser_prod__AGgExpr__visit_all(self, p0); /* Direct call parser_prod#AGgExpr#visit_all on <self:Object(AGgExpr)>*/
1445 RET_LABEL:;
1446 }
1447 /* method parser_prod#AIsaExpr#init_aisaexpr for (self: AIsaExpr, nullable AExpr, nullable AType) */
1448 void parser_prod__AIsaExpr__init_aisaexpr(val* self, val* p0, val* p1) {
1449 val* var_n_expr /* var n_expr: nullable AExpr */;
1450 val* var_n_type /* var n_type: nullable AType */;
1451 var_n_expr = p0;
1452 var_n_type = p1;
1453 if (unlikely(var_n_expr == NULL)) {
1454 PRINT_ERROR("Runtime error: %s", "Cast failed");
1455 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4404);
1456 show_backtrace(1);
1457 }
1458 self->attrs[COLOR_parser_nodes__AIsaExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AIsaExpr> */
1459 if (var_n_expr == NULL) {
1460 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1461 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4405);
1462 show_backtrace(1);
1463 } else {
1464 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
1465 if (unlikely(var_n_expr == NULL)) {
1466 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1467 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
1468 show_backtrace(1);
1469 }
1470 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
1471 RET_LABEL1:(void)0;
1472 }
1473 }
1474 if (unlikely(var_n_type == NULL)) {
1475 PRINT_ERROR("Runtime error: %s", "Cast failed");
1476 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4406);
1477 show_backtrace(1);
1478 }
1479 self->attrs[COLOR_parser_nodes__AIsaExpr___n_type].val = var_n_type; /* _n_type on <self:AIsaExpr> */
1480 if (var_n_type == NULL) {
1481 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1482 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4407);
1483 show_backtrace(1);
1484 } else {
1485 { /* Inline parser_nodes#ANode#parent= (var_n_type,self) on <var_n_type:nullable AType> */
1486 if (unlikely(var_n_type == NULL)) {
1487 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1488 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
1489 show_backtrace(1);
1490 }
1491 var_n_type->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_type:nullable AType> */
1492 RET_LABEL2:(void)0;
1493 }
1494 }
1495 RET_LABEL:;
1496 }
1497 /* method parser_prod#AIsaExpr#init_aisaexpr for (self: Object, nullable AExpr, nullable AType) */
1498 void VIRTUAL_parser_prod__AIsaExpr__init_aisaexpr(val* self, val* p0, val* p1) {
1499 parser_prod__AIsaExpr__init_aisaexpr(self, p0, p1); /* Direct call parser_prod#AIsaExpr#init_aisaexpr on <self:Object(AIsaExpr)>*/
1500 RET_LABEL:;
1501 }
1502 /* method parser_prod#AIsaExpr#replace_child for (self: AIsaExpr, ANode, nullable ANode) */
1503 void parser_prod__AIsaExpr__replace_child(val* self, val* p0, val* p1) {
1504 val* var_old_child /* var old_child: ANode */;
1505 val* var_new_child /* var new_child: nullable ANode */;
1506 val* var /* : AExpr */;
1507 short int var1 /* : Bool */;
1508 short int var2 /* : Bool */;
1509 val* var_other /* var other: nullable Object */;
1510 short int var4 /* : Bool */;
1511 short int var6 /* : Bool */;
1512 short int var7 /* : Bool */;
1513 int cltype;
1514 int idtype;
1515 const char* var_class_name;
1516 val* var8 /* : AType */;
1517 short int var9 /* : Bool */;
1518 short int var10 /* : Bool */;
1519 short int var12 /* : Bool */;
1520 short int var14 /* : Bool */;
1521 short int var15 /* : Bool */;
1522 int cltype16;
1523 int idtype17;
1524 const char* var_class_name18;
1525 var_old_child = p0;
1526 var_new_child = p1;
1527 var = self->attrs[COLOR_parser_nodes__AIsaExpr___n_expr].val; /* _n_expr on <self:AIsaExpr> */
1528 if (unlikely(var == NULL)) {
1529 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1530 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4412);
1531 show_backtrace(1);
1532 }
1533 {
1534 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
1535 var_other = var_old_child;
1536 {
1537 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
1538 var6 = var == var_other;
1539 var4 = var6;
1540 goto RET_LABEL5;
1541 RET_LABEL5:(void)0;
1542 }
1543 }
1544 var2 = var4;
1545 goto RET_LABEL3;
1546 RET_LABEL3:(void)0;
1547 }
1548 var1 = var2;
1549 }
1550 if (var1){
1551 /* <var_new_child:nullable ANode> isa AExpr */
1552 cltype = type_parser_nodes__AExpr.color;
1553 idtype = type_parser_nodes__AExpr.id;
1554 if(var_new_child == NULL) {
1555 var7 = 0;
1556 } else {
1557 if(cltype >= var_new_child->type->table_size) {
1558 var7 = 0;
1559 } else {
1560 var7 = var_new_child->type->type_table[cltype] == idtype;
1561 }
1562 }
1563 if (unlikely(!var7)) {
1564 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
1565 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
1566 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4413);
1567 show_backtrace(1);
1568 }
1569 {
1570 parser_prod__AIsaExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AIsaExpr#n_expr= on <self:AIsaExpr>*/
1571 }
1572 goto RET_LABEL;
1573 } else {
1574 }
1575 var8 = self->attrs[COLOR_parser_nodes__AIsaExpr___n_type].val; /* _n_type on <self:AIsaExpr> */
1576 if (unlikely(var8 == NULL)) {
1577 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
1578 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4416);
1579 show_backtrace(1);
1580 }
1581 {
1582 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AType> */
1583 var_other = var_old_child;
1584 {
1585 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AType> */
1586 var14 = var8 == var_other;
1587 var12 = var14;
1588 goto RET_LABEL13;
1589 RET_LABEL13:(void)0;
1590 }
1591 }
1592 var10 = var12;
1593 goto RET_LABEL11;
1594 RET_LABEL11:(void)0;
1595 }
1596 var9 = var10;
1597 }
1598 if (var9){
1599 /* <var_new_child:nullable ANode> isa AType */
1600 cltype16 = type_parser_nodes__AType.color;
1601 idtype17 = type_parser_nodes__AType.id;
1602 if(var_new_child == NULL) {
1603 var15 = 0;
1604 } else {
1605 if(cltype16 >= var_new_child->type->table_size) {
1606 var15 = 0;
1607 } else {
1608 var15 = var_new_child->type->type_table[cltype16] == idtype17;
1609 }
1610 }
1611 if (unlikely(!var15)) {
1612 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
1613 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AType", var_class_name18);
1614 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4417);
1615 show_backtrace(1);
1616 }
1617 {
1618 parser_prod__AIsaExpr__n_type_61d(self, var_new_child); /* Direct call parser_prod#AIsaExpr#n_type= on <self:AIsaExpr>*/
1619 }
1620 goto RET_LABEL;
1621 } else {
1622 }
1623 RET_LABEL:;
1624 }
1625 /* method parser_prod#AIsaExpr#replace_child for (self: Object, ANode, nullable ANode) */
1626 void VIRTUAL_parser_prod__AIsaExpr__replace_child(val* self, val* p0, val* p1) {
1627 parser_prod__AIsaExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AIsaExpr#replace_child on <self:Object(AIsaExpr)>*/
1628 RET_LABEL:;
1629 }
1630 /* method parser_prod#AIsaExpr#n_expr= for (self: AIsaExpr, AExpr) */
1631 void parser_prod__AIsaExpr__n_expr_61d(val* self, val* p0) {
1632 val* var_node /* var node: AExpr */;
1633 var_node = p0;
1634 self->attrs[COLOR_parser_nodes__AIsaExpr___n_expr].val = var_node; /* _n_expr on <self:AIsaExpr> */
1635 {
1636 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
1637 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
1638 RET_LABEL1:(void)0;
1639 }
1640 }
1641 RET_LABEL:;
1642 }
1643 /* method parser_prod#AIsaExpr#n_expr= for (self: Object, AExpr) */
1644 void VIRTUAL_parser_prod__AIsaExpr__n_expr_61d(val* self, val* p0) {
1645 parser_prod__AIsaExpr__n_expr_61d(self, p0); /* Direct call parser_prod#AIsaExpr#n_expr= on <self:Object(AIsaExpr)>*/
1646 RET_LABEL:;
1647 }
1648 /* method parser_prod#AIsaExpr#n_type= for (self: AIsaExpr, AType) */
1649 void parser_prod__AIsaExpr__n_type_61d(val* self, val* p0) {
1650 val* var_node /* var node: AType */;
1651 var_node = p0;
1652 self->attrs[COLOR_parser_nodes__AIsaExpr___n_type].val = var_node; /* _n_type on <self:AIsaExpr> */
1653 {
1654 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AType> */
1655 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AType> */
1656 RET_LABEL1:(void)0;
1657 }
1658 }
1659 RET_LABEL:;
1660 }
1661 /* method parser_prod#AIsaExpr#n_type= for (self: Object, AType) */
1662 void VIRTUAL_parser_prod__AIsaExpr__n_type_61d(val* self, val* p0) {
1663 parser_prod__AIsaExpr__n_type_61d(self, p0); /* Direct call parser_prod#AIsaExpr#n_type= on <self:Object(AIsaExpr)>*/
1664 RET_LABEL:;
1665 }
1666 /* method parser_prod#AIsaExpr#visit_all for (self: AIsaExpr, Visitor) */
1667 void parser_prod__AIsaExpr__visit_all(val* self, val* p0) {
1668 val* var_v /* var v: Visitor */;
1669 val* var /* : AExpr */;
1670 val* var1 /* : AType */;
1671 var_v = p0;
1672 var = self->attrs[COLOR_parser_nodes__AIsaExpr___n_expr].val; /* _n_expr on <self:AIsaExpr> */
1673 if (unlikely(var == NULL)) {
1674 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1675 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4436);
1676 show_backtrace(1);
1677 }
1678 {
1679 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1680 }
1681 var1 = self->attrs[COLOR_parser_nodes__AIsaExpr___n_type].val; /* _n_type on <self:AIsaExpr> */
1682 if (unlikely(var1 == NULL)) {
1683 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
1684 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4437);
1685 show_backtrace(1);
1686 }
1687 {
1688 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1689 }
1690 RET_LABEL:;
1691 }
1692 /* method parser_prod#AIsaExpr#visit_all for (self: Object, Visitor) */
1693 void VIRTUAL_parser_prod__AIsaExpr__visit_all(val* self, val* p0) {
1694 parser_prod__AIsaExpr__visit_all(self, p0); /* Direct call parser_prod#AIsaExpr#visit_all on <self:Object(AIsaExpr)>*/
1695 RET_LABEL:;
1696 }
1697 /* method parser_prod#APlusExpr#init_aplusexpr for (self: APlusExpr, nullable AExpr, nullable AExpr) */
1698 void parser_prod__APlusExpr__init_aplusexpr(val* self, val* p0, val* p1) {
1699 val* var_n_expr /* var n_expr: nullable AExpr */;
1700 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
1701 var_n_expr = p0;
1702 var_n_expr2 = p1;
1703 if (unlikely(var_n_expr == NULL)) {
1704 PRINT_ERROR("Runtime error: %s", "Cast failed");
1705 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4446);
1706 show_backtrace(1);
1707 }
1708 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:APlusExpr> */
1709 if (var_n_expr == NULL) {
1710 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1711 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4447);
1712 show_backtrace(1);
1713 } else {
1714 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
1715 if (unlikely(var_n_expr == NULL)) {
1716 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1717 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
1718 show_backtrace(1);
1719 }
1720 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
1721 RET_LABEL1:(void)0;
1722 }
1723 }
1724 if (unlikely(var_n_expr2 == NULL)) {
1725 PRINT_ERROR("Runtime error: %s", "Cast failed");
1726 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4448);
1727 show_backtrace(1);
1728 }
1729 self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:APlusExpr> */
1730 if (var_n_expr2 == NULL) {
1731 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1732 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4449);
1733 show_backtrace(1);
1734 } else {
1735 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
1736 if (unlikely(var_n_expr2 == NULL)) {
1737 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1738 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
1739 show_backtrace(1);
1740 }
1741 var_n_expr2->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
1742 RET_LABEL2:(void)0;
1743 }
1744 }
1745 RET_LABEL:;
1746 }
1747 /* method parser_prod#APlusExpr#init_aplusexpr for (self: Object, nullable AExpr, nullable AExpr) */
1748 void VIRTUAL_parser_prod__APlusExpr__init_aplusexpr(val* self, val* p0, val* p1) {
1749 parser_prod__APlusExpr__init_aplusexpr(self, p0, p1); /* Direct call parser_prod#APlusExpr#init_aplusexpr on <self:Object(APlusExpr)>*/
1750 RET_LABEL:;
1751 }
1752 /* method parser_prod#APlusExpr#replace_child for (self: APlusExpr, ANode, nullable ANode) */
1753 void parser_prod__APlusExpr__replace_child(val* self, val* p0, val* p1) {
1754 val* var_old_child /* var old_child: ANode */;
1755 val* var_new_child /* var new_child: nullable ANode */;
1756 val* var /* : AExpr */;
1757 short int var1 /* : Bool */;
1758 short int var2 /* : Bool */;
1759 val* var_other /* var other: nullable Object */;
1760 short int var4 /* : Bool */;
1761 short int var6 /* : Bool */;
1762 short int var7 /* : Bool */;
1763 int cltype;
1764 int idtype;
1765 const char* var_class_name;
1766 val* var8 /* : AExpr */;
1767 short int var9 /* : Bool */;
1768 short int var10 /* : Bool */;
1769 short int var12 /* : Bool */;
1770 short int var14 /* : Bool */;
1771 short int var15 /* : Bool */;
1772 int cltype16;
1773 int idtype17;
1774 const char* var_class_name18;
1775 var_old_child = p0;
1776 var_new_child = p1;
1777 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:APlusExpr> */
1778 if (unlikely(var == NULL)) {
1779 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1780 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4454);
1781 show_backtrace(1);
1782 }
1783 {
1784 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
1785 var_other = var_old_child;
1786 {
1787 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
1788 var6 = var == var_other;
1789 var4 = var6;
1790 goto RET_LABEL5;
1791 RET_LABEL5:(void)0;
1792 }
1793 }
1794 var2 = var4;
1795 goto RET_LABEL3;
1796 RET_LABEL3:(void)0;
1797 }
1798 var1 = var2;
1799 }
1800 if (var1){
1801 /* <var_new_child:nullable ANode> isa AExpr */
1802 cltype = type_parser_nodes__AExpr.color;
1803 idtype = type_parser_nodes__AExpr.id;
1804 if(var_new_child == NULL) {
1805 var7 = 0;
1806 } else {
1807 if(cltype >= var_new_child->type->table_size) {
1808 var7 = 0;
1809 } else {
1810 var7 = var_new_child->type->type_table[cltype] == idtype;
1811 }
1812 }
1813 if (unlikely(!var7)) {
1814 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
1815 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
1816 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4455);
1817 show_backtrace(1);
1818 }
1819 {
1820 parser_prod__APlusExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#APlusExpr#n_expr= on <self:APlusExpr>*/
1821 }
1822 goto RET_LABEL;
1823 } else {
1824 }
1825 var8 = self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:APlusExpr> */
1826 if (unlikely(var8 == NULL)) {
1827 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
1828 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4458);
1829 show_backtrace(1);
1830 }
1831 {
1832 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExpr> */
1833 var_other = var_old_child;
1834 {
1835 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExpr> */
1836 var14 = var8 == var_other;
1837 var12 = var14;
1838 goto RET_LABEL13;
1839 RET_LABEL13:(void)0;
1840 }
1841 }
1842 var10 = var12;
1843 goto RET_LABEL11;
1844 RET_LABEL11:(void)0;
1845 }
1846 var9 = var10;
1847 }
1848 if (var9){
1849 /* <var_new_child:nullable ANode> isa AExpr */
1850 cltype16 = type_parser_nodes__AExpr.color;
1851 idtype17 = type_parser_nodes__AExpr.id;
1852 if(var_new_child == NULL) {
1853 var15 = 0;
1854 } else {
1855 if(cltype16 >= var_new_child->type->table_size) {
1856 var15 = 0;
1857 } else {
1858 var15 = var_new_child->type->type_table[cltype16] == idtype17;
1859 }
1860 }
1861 if (unlikely(!var15)) {
1862 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
1863 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name18);
1864 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4459);
1865 show_backtrace(1);
1866 }
1867 {
1868 parser_prod__APlusExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#APlusExpr#n_expr2= on <self:APlusExpr>*/
1869 }
1870 goto RET_LABEL;
1871 } else {
1872 }
1873 RET_LABEL:;
1874 }
1875 /* method parser_prod#APlusExpr#replace_child for (self: Object, ANode, nullable ANode) */
1876 void VIRTUAL_parser_prod__APlusExpr__replace_child(val* self, val* p0, val* p1) {
1877 parser_prod__APlusExpr__replace_child(self, p0, p1); /* Direct call parser_prod#APlusExpr#replace_child on <self:Object(APlusExpr)>*/
1878 RET_LABEL:;
1879 }
1880 /* method parser_prod#APlusExpr#n_expr= for (self: APlusExpr, AExpr) */
1881 void parser_prod__APlusExpr__n_expr_61d(val* self, val* p0) {
1882 val* var_node /* var node: AExpr */;
1883 var_node = p0;
1884 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:APlusExpr> */
1885 {
1886 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
1887 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
1888 RET_LABEL1:(void)0;
1889 }
1890 }
1891 RET_LABEL:;
1892 }
1893 /* method parser_prod#APlusExpr#n_expr= for (self: Object, AExpr) */
1894 void VIRTUAL_parser_prod__APlusExpr__n_expr_61d(val* self, val* p0) {
1895 parser_prod__APlusExpr__n_expr_61d(self, p0); /* Direct call parser_prod#APlusExpr#n_expr= on <self:Object(APlusExpr)>*/
1896 RET_LABEL:;
1897 }
1898 /* method parser_prod#APlusExpr#n_expr2= for (self: APlusExpr, AExpr) */
1899 void parser_prod__APlusExpr__n_expr2_61d(val* self, val* p0) {
1900 val* var_node /* var node: AExpr */;
1901 var_node = p0;
1902 self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val = var_node; /* _n_expr2 on <self:APlusExpr> */
1903 {
1904 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
1905 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
1906 RET_LABEL1:(void)0;
1907 }
1908 }
1909 RET_LABEL:;
1910 }
1911 /* method parser_prod#APlusExpr#n_expr2= for (self: Object, AExpr) */
1912 void VIRTUAL_parser_prod__APlusExpr__n_expr2_61d(val* self, val* p0) {
1913 parser_prod__APlusExpr__n_expr2_61d(self, p0); /* Direct call parser_prod#APlusExpr#n_expr2= on <self:Object(APlusExpr)>*/
1914 RET_LABEL:;
1915 }
1916 /* method parser_prod#APlusExpr#visit_all for (self: APlusExpr, Visitor) */
1917 void parser_prod__APlusExpr__visit_all(val* self, val* p0) {
1918 val* var_v /* var v: Visitor */;
1919 val* var /* : AExpr */;
1920 val* var1 /* : AExpr */;
1921 var_v = p0;
1922 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:APlusExpr> */
1923 if (unlikely(var == NULL)) {
1924 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1925 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4478);
1926 show_backtrace(1);
1927 }
1928 {
1929 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1930 }
1931 var1 = self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:APlusExpr> */
1932 if (unlikely(var1 == NULL)) {
1933 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
1934 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4479);
1935 show_backtrace(1);
1936 }
1937 {
1938 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1939 }
1940 RET_LABEL:;
1941 }
1942 /* method parser_prod#APlusExpr#visit_all for (self: Object, Visitor) */
1943 void VIRTUAL_parser_prod__APlusExpr__visit_all(val* self, val* p0) {
1944 parser_prod__APlusExpr__visit_all(self, p0); /* Direct call parser_prod#APlusExpr#visit_all on <self:Object(APlusExpr)>*/
1945 RET_LABEL:;
1946 }
1947 /* method parser_prod#AMinusExpr#init_aminusexpr for (self: AMinusExpr, nullable AExpr, nullable AExpr) */
1948 void parser_prod__AMinusExpr__init_aminusexpr(val* self, val* p0, val* p1) {
1949 val* var_n_expr /* var n_expr: nullable AExpr */;
1950 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
1951 var_n_expr = p0;
1952 var_n_expr2 = p1;
1953 if (unlikely(var_n_expr == NULL)) {
1954 PRINT_ERROR("Runtime error: %s", "Cast failed");
1955 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4488);
1956 show_backtrace(1);
1957 }
1958 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AMinusExpr> */
1959 if (var_n_expr == NULL) {
1960 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1961 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4489);
1962 show_backtrace(1);
1963 } else {
1964 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
1965 if (unlikely(var_n_expr == NULL)) {
1966 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1967 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
1968 show_backtrace(1);
1969 }
1970 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
1971 RET_LABEL1:(void)0;
1972 }
1973 }
1974 if (unlikely(var_n_expr2 == NULL)) {
1975 PRINT_ERROR("Runtime error: %s", "Cast failed");
1976 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4490);
1977 show_backtrace(1);
1978 }
1979 self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:AMinusExpr> */
1980 if (var_n_expr2 == NULL) {
1981 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1982 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4491);
1983 show_backtrace(1);
1984 } else {
1985 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
1986 if (unlikely(var_n_expr2 == NULL)) {
1987 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1988 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
1989 show_backtrace(1);
1990 }
1991 var_n_expr2->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
1992 RET_LABEL2:(void)0;
1993 }
1994 }
1995 RET_LABEL:;
1996 }
1997 /* method parser_prod#AMinusExpr#init_aminusexpr for (self: Object, nullable AExpr, nullable AExpr) */
1998 void VIRTUAL_parser_prod__AMinusExpr__init_aminusexpr(val* self, val* p0, val* p1) {
1999 parser_prod__AMinusExpr__init_aminusexpr(self, p0, p1); /* Direct call parser_prod#AMinusExpr#init_aminusexpr on <self:Object(AMinusExpr)>*/
2000 RET_LABEL:;
2001 }
2002 /* method parser_prod#AMinusExpr#replace_child for (self: AMinusExpr, ANode, nullable ANode) */
2003 void parser_prod__AMinusExpr__replace_child(val* self, val* p0, val* p1) {
2004 val* var_old_child /* var old_child: ANode */;
2005 val* var_new_child /* var new_child: nullable ANode */;
2006 val* var /* : AExpr */;
2007 short int var1 /* : Bool */;
2008 short int var2 /* : Bool */;
2009 val* var_other /* var other: nullable Object */;
2010 short int var4 /* : Bool */;
2011 short int var6 /* : Bool */;
2012 short int var7 /* : Bool */;
2013 int cltype;
2014 int idtype;
2015 const char* var_class_name;
2016 val* var8 /* : AExpr */;
2017 short int var9 /* : Bool */;
2018 short int var10 /* : Bool */;
2019 short int var12 /* : Bool */;
2020 short int var14 /* : Bool */;
2021 short int var15 /* : Bool */;
2022 int cltype16;
2023 int idtype17;
2024 const char* var_class_name18;
2025 var_old_child = p0;
2026 var_new_child = p1;
2027 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AMinusExpr> */
2028 if (unlikely(var == NULL)) {
2029 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2030 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4496);
2031 show_backtrace(1);
2032 }
2033 {
2034 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
2035 var_other = var_old_child;
2036 {
2037 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
2038 var6 = var == var_other;
2039 var4 = var6;
2040 goto RET_LABEL5;
2041 RET_LABEL5:(void)0;
2042 }
2043 }
2044 var2 = var4;
2045 goto RET_LABEL3;
2046 RET_LABEL3:(void)0;
2047 }
2048 var1 = var2;
2049 }
2050 if (var1){
2051 /* <var_new_child:nullable ANode> isa AExpr */
2052 cltype = type_parser_nodes__AExpr.color;
2053 idtype = type_parser_nodes__AExpr.id;
2054 if(var_new_child == NULL) {
2055 var7 = 0;
2056 } else {
2057 if(cltype >= var_new_child->type->table_size) {
2058 var7 = 0;
2059 } else {
2060 var7 = var_new_child->type->type_table[cltype] == idtype;
2061 }
2062 }
2063 if (unlikely(!var7)) {
2064 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
2065 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
2066 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4497);
2067 show_backtrace(1);
2068 }
2069 {
2070 parser_prod__AMinusExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AMinusExpr#n_expr= on <self:AMinusExpr>*/
2071 }
2072 goto RET_LABEL;
2073 } else {
2074 }
2075 var8 = self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AMinusExpr> */
2076 if (unlikely(var8 == NULL)) {
2077 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
2078 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4500);
2079 show_backtrace(1);
2080 }
2081 {
2082 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExpr> */
2083 var_other = var_old_child;
2084 {
2085 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExpr> */
2086 var14 = var8 == var_other;
2087 var12 = var14;
2088 goto RET_LABEL13;
2089 RET_LABEL13:(void)0;
2090 }
2091 }
2092 var10 = var12;
2093 goto RET_LABEL11;
2094 RET_LABEL11:(void)0;
2095 }
2096 var9 = var10;
2097 }
2098 if (var9){
2099 /* <var_new_child:nullable ANode> isa AExpr */
2100 cltype16 = type_parser_nodes__AExpr.color;
2101 idtype17 = type_parser_nodes__AExpr.id;
2102 if(var_new_child == NULL) {
2103 var15 = 0;
2104 } else {
2105 if(cltype16 >= var_new_child->type->table_size) {
2106 var15 = 0;
2107 } else {
2108 var15 = var_new_child->type->type_table[cltype16] == idtype17;
2109 }
2110 }
2111 if (unlikely(!var15)) {
2112 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
2113 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name18);
2114 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4501);
2115 show_backtrace(1);
2116 }
2117 {
2118 parser_prod__AMinusExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#AMinusExpr#n_expr2= on <self:AMinusExpr>*/
2119 }
2120 goto RET_LABEL;
2121 } else {
2122 }
2123 RET_LABEL:;
2124 }
2125 /* method parser_prod#AMinusExpr#replace_child for (self: Object, ANode, nullable ANode) */
2126 void VIRTUAL_parser_prod__AMinusExpr__replace_child(val* self, val* p0, val* p1) {
2127 parser_prod__AMinusExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AMinusExpr#replace_child on <self:Object(AMinusExpr)>*/
2128 RET_LABEL:;
2129 }
2130 /* method parser_prod#AMinusExpr#n_expr= for (self: AMinusExpr, AExpr) */
2131 void parser_prod__AMinusExpr__n_expr_61d(val* self, val* p0) {
2132 val* var_node /* var node: AExpr */;
2133 var_node = p0;
2134 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:AMinusExpr> */
2135 {
2136 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
2137 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
2138 RET_LABEL1:(void)0;
2139 }
2140 }
2141 RET_LABEL:;
2142 }
2143 /* method parser_prod#AMinusExpr#n_expr= for (self: Object, AExpr) */
2144 void VIRTUAL_parser_prod__AMinusExpr__n_expr_61d(val* self, val* p0) {
2145 parser_prod__AMinusExpr__n_expr_61d(self, p0); /* Direct call parser_prod#AMinusExpr#n_expr= on <self:Object(AMinusExpr)>*/
2146 RET_LABEL:;
2147 }
2148 /* method parser_prod#AMinusExpr#n_expr2= for (self: AMinusExpr, AExpr) */
2149 void parser_prod__AMinusExpr__n_expr2_61d(val* self, val* p0) {
2150 val* var_node /* var node: AExpr */;
2151 var_node = p0;
2152 self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val = var_node; /* _n_expr2 on <self:AMinusExpr> */
2153 {
2154 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
2155 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
2156 RET_LABEL1:(void)0;
2157 }
2158 }
2159 RET_LABEL:;
2160 }
2161 /* method parser_prod#AMinusExpr#n_expr2= for (self: Object, AExpr) */
2162 void VIRTUAL_parser_prod__AMinusExpr__n_expr2_61d(val* self, val* p0) {
2163 parser_prod__AMinusExpr__n_expr2_61d(self, p0); /* Direct call parser_prod#AMinusExpr#n_expr2= on <self:Object(AMinusExpr)>*/
2164 RET_LABEL:;
2165 }
2166 /* method parser_prod#AMinusExpr#visit_all for (self: AMinusExpr, Visitor) */
2167 void parser_prod__AMinusExpr__visit_all(val* self, val* p0) {
2168 val* var_v /* var v: Visitor */;
2169 val* var /* : AExpr */;
2170 val* var1 /* : AExpr */;
2171 var_v = p0;
2172 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AMinusExpr> */
2173 if (unlikely(var == NULL)) {
2174 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2175 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4520);
2176 show_backtrace(1);
2177 }
2178 {
2179 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2180 }
2181 var1 = self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AMinusExpr> */
2182 if (unlikely(var1 == NULL)) {
2183 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
2184 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4521);
2185 show_backtrace(1);
2186 }
2187 {
2188 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2189 }
2190 RET_LABEL:;
2191 }
2192 /* method parser_prod#AMinusExpr#visit_all for (self: Object, Visitor) */
2193 void VIRTUAL_parser_prod__AMinusExpr__visit_all(val* self, val* p0) {
2194 parser_prod__AMinusExpr__visit_all(self, p0); /* Direct call parser_prod#AMinusExpr#visit_all on <self:Object(AMinusExpr)>*/
2195 RET_LABEL:;
2196 }
2197 /* method parser_prod#AStarshipExpr#init_astarshipexpr for (self: AStarshipExpr, nullable AExpr, nullable AExpr) */
2198 void parser_prod__AStarshipExpr__init_astarshipexpr(val* self, val* p0, val* p1) {
2199 val* var_n_expr /* var n_expr: nullable AExpr */;
2200 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
2201 var_n_expr = p0;
2202 var_n_expr2 = p1;
2203 if (unlikely(var_n_expr == NULL)) {
2204 PRINT_ERROR("Runtime error: %s", "Cast failed");
2205 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4530);
2206 show_backtrace(1);
2207 }
2208 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AStarshipExpr> */
2209 if (var_n_expr == NULL) {
2210 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2211 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4531);
2212 show_backtrace(1);
2213 } else {
2214 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
2215 if (unlikely(var_n_expr == NULL)) {
2216 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2217 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
2218 show_backtrace(1);
2219 }
2220 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
2221 RET_LABEL1:(void)0;
2222 }
2223 }
2224 if (unlikely(var_n_expr2 == NULL)) {
2225 PRINT_ERROR("Runtime error: %s", "Cast failed");
2226 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4532);
2227 show_backtrace(1);
2228 }
2229 self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:AStarshipExpr> */
2230 if (var_n_expr2 == NULL) {
2231 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2232 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4533);
2233 show_backtrace(1);
2234 } else {
2235 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
2236 if (unlikely(var_n_expr2 == NULL)) {
2237 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2238 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
2239 show_backtrace(1);
2240 }
2241 var_n_expr2->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
2242 RET_LABEL2:(void)0;
2243 }
2244 }
2245 RET_LABEL:;
2246 }
2247 /* method parser_prod#AStarshipExpr#init_astarshipexpr for (self: Object, nullable AExpr, nullable AExpr) */
2248 void VIRTUAL_parser_prod__AStarshipExpr__init_astarshipexpr(val* self, val* p0, val* p1) {
2249 parser_prod__AStarshipExpr__init_astarshipexpr(self, p0, p1); /* Direct call parser_prod#AStarshipExpr#init_astarshipexpr on <self:Object(AStarshipExpr)>*/
2250 RET_LABEL:;
2251 }
2252 /* method parser_prod#AStarshipExpr#replace_child for (self: AStarshipExpr, ANode, nullable ANode) */
2253 void parser_prod__AStarshipExpr__replace_child(val* self, val* p0, val* p1) {
2254 val* var_old_child /* var old_child: ANode */;
2255 val* var_new_child /* var new_child: nullable ANode */;
2256 val* var /* : AExpr */;
2257 short int var1 /* : Bool */;
2258 short int var2 /* : Bool */;
2259 val* var_other /* var other: nullable Object */;
2260 short int var4 /* : Bool */;
2261 short int var6 /* : Bool */;
2262 short int var7 /* : Bool */;
2263 int cltype;
2264 int idtype;
2265 const char* var_class_name;
2266 val* var8 /* : AExpr */;
2267 short int var9 /* : Bool */;
2268 short int var10 /* : Bool */;
2269 short int var12 /* : Bool */;
2270 short int var14 /* : Bool */;
2271 short int var15 /* : Bool */;
2272 int cltype16;
2273 int idtype17;
2274 const char* var_class_name18;
2275 var_old_child = p0;
2276 var_new_child = p1;
2277 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AStarshipExpr> */
2278 if (unlikely(var == NULL)) {
2279 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2280 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4538);
2281 show_backtrace(1);
2282 }
2283 {
2284 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
2285 var_other = var_old_child;
2286 {
2287 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
2288 var6 = var == var_other;
2289 var4 = var6;
2290 goto RET_LABEL5;
2291 RET_LABEL5:(void)0;
2292 }
2293 }
2294 var2 = var4;
2295 goto RET_LABEL3;
2296 RET_LABEL3:(void)0;
2297 }
2298 var1 = var2;
2299 }
2300 if (var1){
2301 /* <var_new_child:nullable ANode> isa AExpr */
2302 cltype = type_parser_nodes__AExpr.color;
2303 idtype = type_parser_nodes__AExpr.id;
2304 if(var_new_child == NULL) {
2305 var7 = 0;
2306 } else {
2307 if(cltype >= var_new_child->type->table_size) {
2308 var7 = 0;
2309 } else {
2310 var7 = var_new_child->type->type_table[cltype] == idtype;
2311 }
2312 }
2313 if (unlikely(!var7)) {
2314 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
2315 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
2316 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4539);
2317 show_backtrace(1);
2318 }
2319 {
2320 parser_prod__AStarshipExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AStarshipExpr#n_expr= on <self:AStarshipExpr>*/
2321 }
2322 goto RET_LABEL;
2323 } else {
2324 }
2325 var8 = self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AStarshipExpr> */
2326 if (unlikely(var8 == NULL)) {
2327 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
2328 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4542);
2329 show_backtrace(1);
2330 }
2331 {
2332 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExpr> */
2333 var_other = var_old_child;
2334 {
2335 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExpr> */
2336 var14 = var8 == var_other;
2337 var12 = var14;
2338 goto RET_LABEL13;
2339 RET_LABEL13:(void)0;
2340 }
2341 }
2342 var10 = var12;
2343 goto RET_LABEL11;
2344 RET_LABEL11:(void)0;
2345 }
2346 var9 = var10;
2347 }
2348 if (var9){
2349 /* <var_new_child:nullable ANode> isa AExpr */
2350 cltype16 = type_parser_nodes__AExpr.color;
2351 idtype17 = type_parser_nodes__AExpr.id;
2352 if(var_new_child == NULL) {
2353 var15 = 0;
2354 } else {
2355 if(cltype16 >= var_new_child->type->table_size) {
2356 var15 = 0;
2357 } else {
2358 var15 = var_new_child->type->type_table[cltype16] == idtype17;
2359 }
2360 }
2361 if (unlikely(!var15)) {
2362 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
2363 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name18);
2364 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4543);
2365 show_backtrace(1);
2366 }
2367 {
2368 parser_prod__AStarshipExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#AStarshipExpr#n_expr2= on <self:AStarshipExpr>*/
2369 }
2370 goto RET_LABEL;
2371 } else {
2372 }
2373 RET_LABEL:;
2374 }
2375 /* method parser_prod#AStarshipExpr#replace_child for (self: Object, ANode, nullable ANode) */
2376 void VIRTUAL_parser_prod__AStarshipExpr__replace_child(val* self, val* p0, val* p1) {
2377 parser_prod__AStarshipExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AStarshipExpr#replace_child on <self:Object(AStarshipExpr)>*/
2378 RET_LABEL:;
2379 }
2380 /* method parser_prod#AStarshipExpr#n_expr= for (self: AStarshipExpr, AExpr) */
2381 void parser_prod__AStarshipExpr__n_expr_61d(val* self, val* p0) {
2382 val* var_node /* var node: AExpr */;
2383 var_node = p0;
2384 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:AStarshipExpr> */
2385 {
2386 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
2387 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
2388 RET_LABEL1:(void)0;
2389 }
2390 }
2391 RET_LABEL:;
2392 }
2393 /* method parser_prod#AStarshipExpr#n_expr= for (self: Object, AExpr) */
2394 void VIRTUAL_parser_prod__AStarshipExpr__n_expr_61d(val* self, val* p0) {
2395 parser_prod__AStarshipExpr__n_expr_61d(self, p0); /* Direct call parser_prod#AStarshipExpr#n_expr= on <self:Object(AStarshipExpr)>*/
2396 RET_LABEL:;
2397 }
2398 /* method parser_prod#AStarshipExpr#n_expr2= for (self: AStarshipExpr, AExpr) */
2399 void parser_prod__AStarshipExpr__n_expr2_61d(val* self, val* p0) {
2400 val* var_node /* var node: AExpr */;
2401 var_node = p0;
2402 self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val = var_node; /* _n_expr2 on <self:AStarshipExpr> */
2403 {
2404 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
2405 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
2406 RET_LABEL1:(void)0;
2407 }
2408 }
2409 RET_LABEL:;
2410 }
2411 /* method parser_prod#AStarshipExpr#n_expr2= for (self: Object, AExpr) */
2412 void VIRTUAL_parser_prod__AStarshipExpr__n_expr2_61d(val* self, val* p0) {
2413 parser_prod__AStarshipExpr__n_expr2_61d(self, p0); /* Direct call parser_prod#AStarshipExpr#n_expr2= on <self:Object(AStarshipExpr)>*/
2414 RET_LABEL:;
2415 }
2416 /* method parser_prod#AStarshipExpr#visit_all for (self: AStarshipExpr, Visitor) */
2417 void parser_prod__AStarshipExpr__visit_all(val* self, val* p0) {
2418 val* var_v /* var v: Visitor */;
2419 val* var /* : AExpr */;
2420 val* var1 /* : AExpr */;
2421 var_v = p0;
2422 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AStarshipExpr> */
2423 if (unlikely(var == NULL)) {
2424 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2425 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4562);
2426 show_backtrace(1);
2427 }
2428 {
2429 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2430 }
2431 var1 = self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AStarshipExpr> */
2432 if (unlikely(var1 == NULL)) {
2433 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
2434 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4563);
2435 show_backtrace(1);
2436 }
2437 {
2438 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2439 }
2440 RET_LABEL:;
2441 }
2442 /* method parser_prod#AStarshipExpr#visit_all for (self: Object, Visitor) */
2443 void VIRTUAL_parser_prod__AStarshipExpr__visit_all(val* self, val* p0) {
2444 parser_prod__AStarshipExpr__visit_all(self, p0); /* Direct call parser_prod#AStarshipExpr#visit_all on <self:Object(AStarshipExpr)>*/
2445 RET_LABEL:;
2446 }
2447 /* method parser_prod#AStarExpr#init_astarexpr for (self: AStarExpr, nullable AExpr, nullable AExpr) */
2448 void parser_prod__AStarExpr__init_astarexpr(val* self, val* p0, val* p1) {
2449 val* var_n_expr /* var n_expr: nullable AExpr */;
2450 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
2451 var_n_expr = p0;
2452 var_n_expr2 = p1;
2453 if (unlikely(var_n_expr == NULL)) {
2454 PRINT_ERROR("Runtime error: %s", "Cast failed");
2455 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4572);
2456 show_backtrace(1);
2457 }
2458 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AStarExpr> */
2459 if (var_n_expr == NULL) {
2460 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2461 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4573);
2462 show_backtrace(1);
2463 } else {
2464 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
2465 if (unlikely(var_n_expr == NULL)) {
2466 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2467 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
2468 show_backtrace(1);
2469 }
2470 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
2471 RET_LABEL1:(void)0;
2472 }
2473 }
2474 if (unlikely(var_n_expr2 == NULL)) {
2475 PRINT_ERROR("Runtime error: %s", "Cast failed");
2476 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4574);
2477 show_backtrace(1);
2478 }
2479 self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:AStarExpr> */
2480 if (var_n_expr2 == NULL) {
2481 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2482 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4575);
2483 show_backtrace(1);
2484 } else {
2485 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
2486 if (unlikely(var_n_expr2 == NULL)) {
2487 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2488 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
2489 show_backtrace(1);
2490 }
2491 var_n_expr2->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
2492 RET_LABEL2:(void)0;
2493 }
2494 }
2495 RET_LABEL:;
2496 }
2497 /* method parser_prod#AStarExpr#init_astarexpr for (self: Object, nullable AExpr, nullable AExpr) */
2498 void VIRTUAL_parser_prod__AStarExpr__init_astarexpr(val* self, val* p0, val* p1) {
2499 parser_prod__AStarExpr__init_astarexpr(self, p0, p1); /* Direct call parser_prod#AStarExpr#init_astarexpr on <self:Object(AStarExpr)>*/
2500 RET_LABEL:;
2501 }
2502 /* method parser_prod#AStarExpr#replace_child for (self: AStarExpr, ANode, nullable ANode) */
2503 void parser_prod__AStarExpr__replace_child(val* self, val* p0, val* p1) {
2504 val* var_old_child /* var old_child: ANode */;
2505 val* var_new_child /* var new_child: nullable ANode */;
2506 val* var /* : AExpr */;
2507 short int var1 /* : Bool */;
2508 short int var2 /* : Bool */;
2509 val* var_other /* var other: nullable Object */;
2510 short int var4 /* : Bool */;
2511 short int var6 /* : Bool */;
2512 short int var7 /* : Bool */;
2513 int cltype;
2514 int idtype;
2515 const char* var_class_name;
2516 val* var8 /* : AExpr */;
2517 short int var9 /* : Bool */;
2518 short int var10 /* : Bool */;
2519 short int var12 /* : Bool */;
2520 short int var14 /* : Bool */;
2521 short int var15 /* : Bool */;
2522 int cltype16;
2523 int idtype17;
2524 const char* var_class_name18;
2525 var_old_child = p0;
2526 var_new_child = p1;
2527 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AStarExpr> */
2528 if (unlikely(var == NULL)) {
2529 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2530 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4580);
2531 show_backtrace(1);
2532 }
2533 {
2534 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
2535 var_other = var_old_child;
2536 {
2537 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
2538 var6 = var == var_other;
2539 var4 = var6;
2540 goto RET_LABEL5;
2541 RET_LABEL5:(void)0;
2542 }
2543 }
2544 var2 = var4;
2545 goto RET_LABEL3;
2546 RET_LABEL3:(void)0;
2547 }
2548 var1 = var2;
2549 }
2550 if (var1){
2551 /* <var_new_child:nullable ANode> isa AExpr */
2552 cltype = type_parser_nodes__AExpr.color;
2553 idtype = type_parser_nodes__AExpr.id;
2554 if(var_new_child == NULL) {
2555 var7 = 0;
2556 } else {
2557 if(cltype >= var_new_child->type->table_size) {
2558 var7 = 0;
2559 } else {
2560 var7 = var_new_child->type->type_table[cltype] == idtype;
2561 }
2562 }
2563 if (unlikely(!var7)) {
2564 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
2565 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
2566 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4581);
2567 show_backtrace(1);
2568 }
2569 {
2570 parser_prod__AStarExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AStarExpr#n_expr= on <self:AStarExpr>*/
2571 }
2572 goto RET_LABEL;
2573 } else {
2574 }
2575 var8 = self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AStarExpr> */
2576 if (unlikely(var8 == NULL)) {
2577 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
2578 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4584);
2579 show_backtrace(1);
2580 }
2581 {
2582 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExpr> */
2583 var_other = var_old_child;
2584 {
2585 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExpr> */
2586 var14 = var8 == var_other;
2587 var12 = var14;
2588 goto RET_LABEL13;
2589 RET_LABEL13:(void)0;
2590 }
2591 }
2592 var10 = var12;
2593 goto RET_LABEL11;
2594 RET_LABEL11:(void)0;
2595 }
2596 var9 = var10;
2597 }
2598 if (var9){
2599 /* <var_new_child:nullable ANode> isa AExpr */
2600 cltype16 = type_parser_nodes__AExpr.color;
2601 idtype17 = type_parser_nodes__AExpr.id;
2602 if(var_new_child == NULL) {
2603 var15 = 0;
2604 } else {
2605 if(cltype16 >= var_new_child->type->table_size) {
2606 var15 = 0;
2607 } else {
2608 var15 = var_new_child->type->type_table[cltype16] == idtype17;
2609 }
2610 }
2611 if (unlikely(!var15)) {
2612 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
2613 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name18);
2614 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4585);
2615 show_backtrace(1);
2616 }
2617 {
2618 parser_prod__AStarExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#AStarExpr#n_expr2= on <self:AStarExpr>*/
2619 }
2620 goto RET_LABEL;
2621 } else {
2622 }
2623 RET_LABEL:;
2624 }
2625 /* method parser_prod#AStarExpr#replace_child for (self: Object, ANode, nullable ANode) */
2626 void VIRTUAL_parser_prod__AStarExpr__replace_child(val* self, val* p0, val* p1) {
2627 parser_prod__AStarExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AStarExpr#replace_child on <self:Object(AStarExpr)>*/
2628 RET_LABEL:;
2629 }
2630 /* method parser_prod#AStarExpr#n_expr= for (self: AStarExpr, AExpr) */
2631 void parser_prod__AStarExpr__n_expr_61d(val* self, val* p0) {
2632 val* var_node /* var node: AExpr */;
2633 var_node = p0;
2634 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:AStarExpr> */
2635 {
2636 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
2637 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
2638 RET_LABEL1:(void)0;
2639 }
2640 }
2641 RET_LABEL:;
2642 }
2643 /* method parser_prod#AStarExpr#n_expr= for (self: Object, AExpr) */
2644 void VIRTUAL_parser_prod__AStarExpr__n_expr_61d(val* self, val* p0) {
2645 parser_prod__AStarExpr__n_expr_61d(self, p0); /* Direct call parser_prod#AStarExpr#n_expr= on <self:Object(AStarExpr)>*/
2646 RET_LABEL:;
2647 }
2648 /* method parser_prod#AStarExpr#n_expr2= for (self: AStarExpr, AExpr) */
2649 void parser_prod__AStarExpr__n_expr2_61d(val* self, val* p0) {
2650 val* var_node /* var node: AExpr */;
2651 var_node = p0;
2652 self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val = var_node; /* _n_expr2 on <self:AStarExpr> */
2653 {
2654 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
2655 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
2656 RET_LABEL1:(void)0;
2657 }
2658 }
2659 RET_LABEL:;
2660 }
2661 /* method parser_prod#AStarExpr#n_expr2= for (self: Object, AExpr) */
2662 void VIRTUAL_parser_prod__AStarExpr__n_expr2_61d(val* self, val* p0) {
2663 parser_prod__AStarExpr__n_expr2_61d(self, p0); /* Direct call parser_prod#AStarExpr#n_expr2= on <self:Object(AStarExpr)>*/
2664 RET_LABEL:;
2665 }
2666 /* method parser_prod#AStarExpr#visit_all for (self: AStarExpr, Visitor) */
2667 void parser_prod__AStarExpr__visit_all(val* self, val* p0) {
2668 val* var_v /* var v: Visitor */;
2669 val* var /* : AExpr */;
2670 val* var1 /* : AExpr */;
2671 var_v = p0;
2672 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AStarExpr> */
2673 if (unlikely(var == NULL)) {
2674 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2675 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4604);
2676 show_backtrace(1);
2677 }
2678 {
2679 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2680 }
2681 var1 = self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AStarExpr> */
2682 if (unlikely(var1 == NULL)) {
2683 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
2684 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4605);
2685 show_backtrace(1);
2686 }
2687 {
2688 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2689 }
2690 RET_LABEL:;
2691 }
2692 /* method parser_prod#AStarExpr#visit_all for (self: Object, Visitor) */
2693 void VIRTUAL_parser_prod__AStarExpr__visit_all(val* self, val* p0) {
2694 parser_prod__AStarExpr__visit_all(self, p0); /* Direct call parser_prod#AStarExpr#visit_all on <self:Object(AStarExpr)>*/
2695 RET_LABEL:;
2696 }
2697 /* method parser_prod#ASlashExpr#init_aslashexpr for (self: ASlashExpr, nullable AExpr, nullable AExpr) */
2698 void parser_prod__ASlashExpr__init_aslashexpr(val* self, val* p0, val* p1) {
2699 val* var_n_expr /* var n_expr: nullable AExpr */;
2700 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
2701 var_n_expr = p0;
2702 var_n_expr2 = p1;
2703 if (unlikely(var_n_expr == NULL)) {
2704 PRINT_ERROR("Runtime error: %s", "Cast failed");
2705 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4614);
2706 show_backtrace(1);
2707 }
2708 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:ASlashExpr> */
2709 if (var_n_expr == NULL) {
2710 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2711 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4615);
2712 show_backtrace(1);
2713 } else {
2714 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
2715 if (unlikely(var_n_expr == NULL)) {
2716 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2717 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
2718 show_backtrace(1);
2719 }
2720 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
2721 RET_LABEL1:(void)0;
2722 }
2723 }
2724 if (unlikely(var_n_expr2 == NULL)) {
2725 PRINT_ERROR("Runtime error: %s", "Cast failed");
2726 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4616);
2727 show_backtrace(1);
2728 }
2729 self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:ASlashExpr> */
2730 if (var_n_expr2 == NULL) {
2731 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2732 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4617);
2733 show_backtrace(1);
2734 } else {
2735 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
2736 if (unlikely(var_n_expr2 == NULL)) {
2737 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2738 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
2739 show_backtrace(1);
2740 }
2741 var_n_expr2->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
2742 RET_LABEL2:(void)0;
2743 }
2744 }
2745 RET_LABEL:;
2746 }
2747 /* method parser_prod#ASlashExpr#init_aslashexpr for (self: Object, nullable AExpr, nullable AExpr) */
2748 void VIRTUAL_parser_prod__ASlashExpr__init_aslashexpr(val* self, val* p0, val* p1) {
2749 parser_prod__ASlashExpr__init_aslashexpr(self, p0, p1); /* Direct call parser_prod#ASlashExpr#init_aslashexpr on <self:Object(ASlashExpr)>*/
2750 RET_LABEL:;
2751 }
2752 /* method parser_prod#ASlashExpr#replace_child for (self: ASlashExpr, ANode, nullable ANode) */
2753 void parser_prod__ASlashExpr__replace_child(val* self, val* p0, val* p1) {
2754 val* var_old_child /* var old_child: ANode */;
2755 val* var_new_child /* var new_child: nullable ANode */;
2756 val* var /* : AExpr */;
2757 short int var1 /* : Bool */;
2758 short int var2 /* : Bool */;
2759 val* var_other /* var other: nullable Object */;
2760 short int var4 /* : Bool */;
2761 short int var6 /* : Bool */;
2762 short int var7 /* : Bool */;
2763 int cltype;
2764 int idtype;
2765 const char* var_class_name;
2766 val* var8 /* : AExpr */;
2767 short int var9 /* : Bool */;
2768 short int var10 /* : Bool */;
2769 short int var12 /* : Bool */;
2770 short int var14 /* : Bool */;
2771 short int var15 /* : Bool */;
2772 int cltype16;
2773 int idtype17;
2774 const char* var_class_name18;
2775 var_old_child = p0;
2776 var_new_child = p1;
2777 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ASlashExpr> */
2778 if (unlikely(var == NULL)) {
2779 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2780 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4622);
2781 show_backtrace(1);
2782 }
2783 {
2784 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
2785 var_other = var_old_child;
2786 {
2787 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
2788 var6 = var == var_other;
2789 var4 = var6;
2790 goto RET_LABEL5;
2791 RET_LABEL5:(void)0;
2792 }
2793 }
2794 var2 = var4;
2795 goto RET_LABEL3;
2796 RET_LABEL3:(void)0;
2797 }
2798 var1 = var2;
2799 }
2800 if (var1){
2801 /* <var_new_child:nullable ANode> isa AExpr */
2802 cltype = type_parser_nodes__AExpr.color;
2803 idtype = type_parser_nodes__AExpr.id;
2804 if(var_new_child == NULL) {
2805 var7 = 0;
2806 } else {
2807 if(cltype >= var_new_child->type->table_size) {
2808 var7 = 0;
2809 } else {
2810 var7 = var_new_child->type->type_table[cltype] == idtype;
2811 }
2812 }
2813 if (unlikely(!var7)) {
2814 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
2815 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
2816 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4623);
2817 show_backtrace(1);
2818 }
2819 {
2820 parser_prod__ASlashExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#ASlashExpr#n_expr= on <self:ASlashExpr>*/
2821 }
2822 goto RET_LABEL;
2823 } else {
2824 }
2825 var8 = self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:ASlashExpr> */
2826 if (unlikely(var8 == NULL)) {
2827 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
2828 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4626);
2829 show_backtrace(1);
2830 }
2831 {
2832 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExpr> */
2833 var_other = var_old_child;
2834 {
2835 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExpr> */
2836 var14 = var8 == var_other;
2837 var12 = var14;
2838 goto RET_LABEL13;
2839 RET_LABEL13:(void)0;
2840 }
2841 }
2842 var10 = var12;
2843 goto RET_LABEL11;
2844 RET_LABEL11:(void)0;
2845 }
2846 var9 = var10;
2847 }
2848 if (var9){
2849 /* <var_new_child:nullable ANode> isa AExpr */
2850 cltype16 = type_parser_nodes__AExpr.color;
2851 idtype17 = type_parser_nodes__AExpr.id;
2852 if(var_new_child == NULL) {
2853 var15 = 0;
2854 } else {
2855 if(cltype16 >= var_new_child->type->table_size) {
2856 var15 = 0;
2857 } else {
2858 var15 = var_new_child->type->type_table[cltype16] == idtype17;
2859 }
2860 }
2861 if (unlikely(!var15)) {
2862 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
2863 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name18);
2864 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4627);
2865 show_backtrace(1);
2866 }
2867 {
2868 parser_prod__ASlashExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#ASlashExpr#n_expr2= on <self:ASlashExpr>*/
2869 }
2870 goto RET_LABEL;
2871 } else {
2872 }
2873 RET_LABEL:;
2874 }
2875 /* method parser_prod#ASlashExpr#replace_child for (self: Object, ANode, nullable ANode) */
2876 void VIRTUAL_parser_prod__ASlashExpr__replace_child(val* self, val* p0, val* p1) {
2877 parser_prod__ASlashExpr__replace_child(self, p0, p1); /* Direct call parser_prod#ASlashExpr#replace_child on <self:Object(ASlashExpr)>*/
2878 RET_LABEL:;
2879 }
2880 /* method parser_prod#ASlashExpr#n_expr= for (self: ASlashExpr, AExpr) */
2881 void parser_prod__ASlashExpr__n_expr_61d(val* self, val* p0) {
2882 val* var_node /* var node: AExpr */;
2883 var_node = p0;
2884 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:ASlashExpr> */
2885 {
2886 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
2887 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
2888 RET_LABEL1:(void)0;
2889 }
2890 }
2891 RET_LABEL:;
2892 }
2893 /* method parser_prod#ASlashExpr#n_expr= for (self: Object, AExpr) */
2894 void VIRTUAL_parser_prod__ASlashExpr__n_expr_61d(val* self, val* p0) {
2895 parser_prod__ASlashExpr__n_expr_61d(self, p0); /* Direct call parser_prod#ASlashExpr#n_expr= on <self:Object(ASlashExpr)>*/
2896 RET_LABEL:;
2897 }
2898 /* method parser_prod#ASlashExpr#n_expr2= for (self: ASlashExpr, AExpr) */
2899 void parser_prod__ASlashExpr__n_expr2_61d(val* self, val* p0) {
2900 val* var_node /* var node: AExpr */;
2901 var_node = p0;
2902 self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val = var_node; /* _n_expr2 on <self:ASlashExpr> */
2903 {
2904 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
2905 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
2906 RET_LABEL1:(void)0;
2907 }
2908 }
2909 RET_LABEL:;
2910 }
2911 /* method parser_prod#ASlashExpr#n_expr2= for (self: Object, AExpr) */
2912 void VIRTUAL_parser_prod__ASlashExpr__n_expr2_61d(val* self, val* p0) {
2913 parser_prod__ASlashExpr__n_expr2_61d(self, p0); /* Direct call parser_prod#ASlashExpr#n_expr2= on <self:Object(ASlashExpr)>*/
2914 RET_LABEL:;
2915 }
2916 /* method parser_prod#ASlashExpr#visit_all for (self: ASlashExpr, Visitor) */
2917 void parser_prod__ASlashExpr__visit_all(val* self, val* p0) {
2918 val* var_v /* var v: Visitor */;
2919 val* var /* : AExpr */;
2920 val* var1 /* : AExpr */;
2921 var_v = p0;
2922 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ASlashExpr> */
2923 if (unlikely(var == NULL)) {
2924 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2925 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4646);
2926 show_backtrace(1);
2927 }
2928 {
2929 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2930 }
2931 var1 = self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:ASlashExpr> */
2932 if (unlikely(var1 == NULL)) {
2933 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
2934 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4647);
2935 show_backtrace(1);
2936 }
2937 {
2938 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2939 }
2940 RET_LABEL:;
2941 }
2942 /* method parser_prod#ASlashExpr#visit_all for (self: Object, Visitor) */
2943 void VIRTUAL_parser_prod__ASlashExpr__visit_all(val* self, val* p0) {
2944 parser_prod__ASlashExpr__visit_all(self, p0); /* Direct call parser_prod#ASlashExpr#visit_all on <self:Object(ASlashExpr)>*/
2945 RET_LABEL:;
2946 }
2947 /* method parser_prod#APercentExpr#init_apercentexpr for (self: APercentExpr, nullable AExpr, nullable AExpr) */
2948 void parser_prod__APercentExpr__init_apercentexpr(val* self, val* p0, val* p1) {
2949 val* var_n_expr /* var n_expr: nullable AExpr */;
2950 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
2951 var_n_expr = p0;
2952 var_n_expr2 = p1;
2953 if (unlikely(var_n_expr == NULL)) {
2954 PRINT_ERROR("Runtime error: %s", "Cast failed");
2955 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4656);
2956 show_backtrace(1);
2957 }
2958 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:APercentExpr> */
2959 if (var_n_expr == NULL) {
2960 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2961 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4657);
2962 show_backtrace(1);
2963 } else {
2964 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
2965 if (unlikely(var_n_expr == NULL)) {
2966 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2967 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
2968 show_backtrace(1);
2969 }
2970 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
2971 RET_LABEL1:(void)0;
2972 }
2973 }
2974 if (unlikely(var_n_expr2 == NULL)) {
2975 PRINT_ERROR("Runtime error: %s", "Cast failed");
2976 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4658);
2977 show_backtrace(1);
2978 }
2979 self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:APercentExpr> */
2980 if (var_n_expr2 == NULL) {
2981 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2982 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4659);
2983 show_backtrace(1);
2984 } else {
2985 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
2986 if (unlikely(var_n_expr2 == NULL)) {
2987 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2988 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
2989 show_backtrace(1);
2990 }
2991 var_n_expr2->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
2992 RET_LABEL2:(void)0;
2993 }
2994 }
2995 RET_LABEL:;
2996 }
2997 /* method parser_prod#APercentExpr#init_apercentexpr for (self: Object, nullable AExpr, nullable AExpr) */
2998 void VIRTUAL_parser_prod__APercentExpr__init_apercentexpr(val* self, val* p0, val* p1) {
2999 parser_prod__APercentExpr__init_apercentexpr(self, p0, p1); /* Direct call parser_prod#APercentExpr#init_apercentexpr on <self:Object(APercentExpr)>*/
3000 RET_LABEL:;
3001 }
3002 /* method parser_prod#APercentExpr#replace_child for (self: APercentExpr, ANode, nullable ANode) */
3003 void parser_prod__APercentExpr__replace_child(val* self, val* p0, val* p1) {
3004 val* var_old_child /* var old_child: ANode */;
3005 val* var_new_child /* var new_child: nullable ANode */;
3006 val* var /* : AExpr */;
3007 short int var1 /* : Bool */;
3008 short int var2 /* : Bool */;
3009 val* var_other /* var other: nullable Object */;
3010 short int var4 /* : Bool */;
3011 short int var6 /* : Bool */;
3012 short int var7 /* : Bool */;
3013 int cltype;
3014 int idtype;
3015 const char* var_class_name;
3016 val* var8 /* : AExpr */;
3017 short int var9 /* : Bool */;
3018 short int var10 /* : Bool */;
3019 short int var12 /* : Bool */;
3020 short int var14 /* : Bool */;
3021 short int var15 /* : Bool */;
3022 int cltype16;
3023 int idtype17;
3024 const char* var_class_name18;
3025 var_old_child = p0;
3026 var_new_child = p1;
3027 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:APercentExpr> */
3028 if (unlikely(var == NULL)) {
3029 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3030 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4664);
3031 show_backtrace(1);
3032 }
3033 {
3034 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
3035 var_other = var_old_child;
3036 {
3037 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
3038 var6 = var == var_other;
3039 var4 = var6;
3040 goto RET_LABEL5;
3041 RET_LABEL5:(void)0;
3042 }
3043 }
3044 var2 = var4;
3045 goto RET_LABEL3;
3046 RET_LABEL3:(void)0;
3047 }
3048 var1 = var2;
3049 }
3050 if (var1){
3051 /* <var_new_child:nullable ANode> isa AExpr */
3052 cltype = type_parser_nodes__AExpr.color;
3053 idtype = type_parser_nodes__AExpr.id;
3054 if(var_new_child == NULL) {
3055 var7 = 0;
3056 } else {
3057 if(cltype >= var_new_child->type->table_size) {
3058 var7 = 0;
3059 } else {
3060 var7 = var_new_child->type->type_table[cltype] == idtype;
3061 }
3062 }
3063 if (unlikely(!var7)) {
3064 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
3065 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
3066 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4665);
3067 show_backtrace(1);
3068 }
3069 {
3070 parser_prod__APercentExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#APercentExpr#n_expr= on <self:APercentExpr>*/
3071 }
3072 goto RET_LABEL;
3073 } else {
3074 }
3075 var8 = self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:APercentExpr> */
3076 if (unlikely(var8 == NULL)) {
3077 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
3078 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4668);
3079 show_backtrace(1);
3080 }
3081 {
3082 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExpr> */
3083 var_other = var_old_child;
3084 {
3085 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExpr> */
3086 var14 = var8 == var_other;
3087 var12 = var14;
3088 goto RET_LABEL13;
3089 RET_LABEL13:(void)0;
3090 }
3091 }
3092 var10 = var12;
3093 goto RET_LABEL11;
3094 RET_LABEL11:(void)0;
3095 }
3096 var9 = var10;
3097 }
3098 if (var9){
3099 /* <var_new_child:nullable ANode> isa AExpr */
3100 cltype16 = type_parser_nodes__AExpr.color;
3101 idtype17 = type_parser_nodes__AExpr.id;
3102 if(var_new_child == NULL) {
3103 var15 = 0;
3104 } else {
3105 if(cltype16 >= var_new_child->type->table_size) {
3106 var15 = 0;
3107 } else {
3108 var15 = var_new_child->type->type_table[cltype16] == idtype17;
3109 }
3110 }
3111 if (unlikely(!var15)) {
3112 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
3113 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name18);
3114 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4669);
3115 show_backtrace(1);
3116 }
3117 {
3118 parser_prod__APercentExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#APercentExpr#n_expr2= on <self:APercentExpr>*/
3119 }
3120 goto RET_LABEL;
3121 } else {
3122 }
3123 RET_LABEL:;
3124 }
3125 /* method parser_prod#APercentExpr#replace_child for (self: Object, ANode, nullable ANode) */
3126 void VIRTUAL_parser_prod__APercentExpr__replace_child(val* self, val* p0, val* p1) {
3127 parser_prod__APercentExpr__replace_child(self, p0, p1); /* Direct call parser_prod#APercentExpr#replace_child on <self:Object(APercentExpr)>*/
3128 RET_LABEL:;
3129 }
3130 /* method parser_prod#APercentExpr#n_expr= for (self: APercentExpr, AExpr) */
3131 void parser_prod__APercentExpr__n_expr_61d(val* self, val* p0) {
3132 val* var_node /* var node: AExpr */;
3133 var_node = p0;
3134 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:APercentExpr> */
3135 {
3136 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
3137 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
3138 RET_LABEL1:(void)0;
3139 }
3140 }
3141 RET_LABEL:;
3142 }
3143 /* method parser_prod#APercentExpr#n_expr= for (self: Object, AExpr) */
3144 void VIRTUAL_parser_prod__APercentExpr__n_expr_61d(val* self, val* p0) {
3145 parser_prod__APercentExpr__n_expr_61d(self, p0); /* Direct call parser_prod#APercentExpr#n_expr= on <self:Object(APercentExpr)>*/
3146 RET_LABEL:;
3147 }
3148 /* method parser_prod#APercentExpr#n_expr2= for (self: APercentExpr, AExpr) */
3149 void parser_prod__APercentExpr__n_expr2_61d(val* self, val* p0) {
3150 val* var_node /* var node: AExpr */;
3151 var_node = p0;
3152 self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val = var_node; /* _n_expr2 on <self:APercentExpr> */
3153 {
3154 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
3155 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
3156 RET_LABEL1:(void)0;
3157 }
3158 }
3159 RET_LABEL:;
3160 }
3161 /* method parser_prod#APercentExpr#n_expr2= for (self: Object, AExpr) */
3162 void VIRTUAL_parser_prod__APercentExpr__n_expr2_61d(val* self, val* p0) {
3163 parser_prod__APercentExpr__n_expr2_61d(self, p0); /* Direct call parser_prod#APercentExpr#n_expr2= on <self:Object(APercentExpr)>*/
3164 RET_LABEL:;
3165 }
3166 /* method parser_prod#APercentExpr#visit_all for (self: APercentExpr, Visitor) */
3167 void parser_prod__APercentExpr__visit_all(val* self, val* p0) {
3168 val* var_v /* var v: Visitor */;
3169 val* var /* : AExpr */;
3170 val* var1 /* : AExpr */;
3171 var_v = p0;
3172 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:APercentExpr> */
3173 if (unlikely(var == NULL)) {
3174 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3175 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4688);
3176 show_backtrace(1);
3177 }
3178 {
3179 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3180 }
3181 var1 = self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:APercentExpr> */
3182 if (unlikely(var1 == NULL)) {
3183 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
3184 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4689);
3185 show_backtrace(1);
3186 }
3187 {
3188 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3189 }
3190 RET_LABEL:;
3191 }
3192 /* method parser_prod#APercentExpr#visit_all for (self: Object, Visitor) */
3193 void VIRTUAL_parser_prod__APercentExpr__visit_all(val* self, val* p0) {
3194 parser_prod__APercentExpr__visit_all(self, p0); /* Direct call parser_prod#APercentExpr#visit_all on <self:Object(APercentExpr)>*/
3195 RET_LABEL:;
3196 }
3197 /* method parser_prod#AUminusExpr#init_auminusexpr for (self: AUminusExpr, nullable TMinus, nullable AExpr) */
3198 void parser_prod__AUminusExpr__init_auminusexpr(val* self, val* p0, val* p1) {
3199 val* var_n_minus /* var n_minus: nullable TMinus */;
3200 val* var_n_expr /* var n_expr: nullable AExpr */;
3201 var_n_minus = p0;
3202 var_n_expr = p1;
3203 if (unlikely(var_n_minus == NULL)) {
3204 PRINT_ERROR("Runtime error: %s", "Cast failed");
3205 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4698);
3206 show_backtrace(1);
3207 }
3208 self->attrs[COLOR_parser_nodes__AUminusExpr___n_minus].val = var_n_minus; /* _n_minus on <self:AUminusExpr> */
3209 if (var_n_minus == NULL) {
3210 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3211 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4699);
3212 show_backtrace(1);
3213 } else {
3214 { /* Inline parser_nodes#ANode#parent= (var_n_minus,self) on <var_n_minus:nullable TMinus> */
3215 if (unlikely(var_n_minus == NULL)) {
3216 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3217 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
3218 show_backtrace(1);
3219 }
3220 var_n_minus->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_minus:nullable TMinus> */
3221 RET_LABEL1:(void)0;
3222 }
3223 }
3224 if (unlikely(var_n_expr == NULL)) {
3225 PRINT_ERROR("Runtime error: %s", "Cast failed");
3226 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4700);
3227 show_backtrace(1);
3228 }
3229 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AUminusExpr> */
3230 if (var_n_expr == NULL) {
3231 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3232 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4701);
3233 show_backtrace(1);
3234 } else {
3235 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
3236 if (unlikely(var_n_expr == NULL)) {
3237 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3238 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
3239 show_backtrace(1);
3240 }
3241 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
3242 RET_LABEL2:(void)0;
3243 }
3244 }
3245 RET_LABEL:;
3246 }
3247 /* method parser_prod#AUminusExpr#init_auminusexpr for (self: Object, nullable TMinus, nullable AExpr) */
3248 void VIRTUAL_parser_prod__AUminusExpr__init_auminusexpr(val* self, val* p0, val* p1) {
3249 parser_prod__AUminusExpr__init_auminusexpr(self, p0, p1); /* Direct call parser_prod#AUminusExpr#init_auminusexpr on <self:Object(AUminusExpr)>*/
3250 RET_LABEL:;
3251 }
3252 /* method parser_prod#AUminusExpr#replace_child for (self: AUminusExpr, ANode, nullable ANode) */
3253 void parser_prod__AUminusExpr__replace_child(val* self, val* p0, val* p1) {
3254 val* var_old_child /* var old_child: ANode */;
3255 val* var_new_child /* var new_child: nullable ANode */;
3256 val* var /* : TMinus */;
3257 short int var1 /* : Bool */;
3258 short int var2 /* : Bool */;
3259 val* var_other /* var other: nullable Object */;
3260 short int var4 /* : Bool */;
3261 short int var6 /* : Bool */;
3262 short int var7 /* : Bool */;
3263 int cltype;
3264 int idtype;
3265 const char* var_class_name;
3266 val* var8 /* : AExpr */;
3267 short int var9 /* : Bool */;
3268 short int var10 /* : Bool */;
3269 short int var12 /* : Bool */;
3270 short int var14 /* : Bool */;
3271 short int var15 /* : Bool */;
3272 int cltype16;
3273 int idtype17;
3274 const char* var_class_name18;
3275 var_old_child = p0;
3276 var_new_child = p1;
3277 var = self->attrs[COLOR_parser_nodes__AUminusExpr___n_minus].val; /* _n_minus on <self:AUminusExpr> */
3278 if (unlikely(var == NULL)) {
3279 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_minus");
3280 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4706);
3281 show_backtrace(1);
3282 }
3283 {
3284 { /* Inline kernel#Object#== (var,var_old_child) on <var:TMinus> */
3285 var_other = var_old_child;
3286 {
3287 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TMinus> */
3288 var6 = var == var_other;
3289 var4 = var6;
3290 goto RET_LABEL5;
3291 RET_LABEL5:(void)0;
3292 }
3293 }
3294 var2 = var4;
3295 goto RET_LABEL3;
3296 RET_LABEL3:(void)0;
3297 }
3298 var1 = var2;
3299 }
3300 if (var1){
3301 /* <var_new_child:nullable ANode> isa TMinus */
3302 cltype = type_parser_nodes__TMinus.color;
3303 idtype = type_parser_nodes__TMinus.id;
3304 if(var_new_child == NULL) {
3305 var7 = 0;
3306 } else {
3307 if(cltype >= var_new_child->type->table_size) {
3308 var7 = 0;
3309 } else {
3310 var7 = var_new_child->type->type_table[cltype] == idtype;
3311 }
3312 }
3313 if (unlikely(!var7)) {
3314 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
3315 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TMinus", var_class_name);
3316 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4707);
3317 show_backtrace(1);
3318 }
3319 {
3320 parser_prod__AUminusExpr__n_minus_61d(self, var_new_child); /* Direct call parser_prod#AUminusExpr#n_minus= on <self:AUminusExpr>*/
3321 }
3322 goto RET_LABEL;
3323 } else {
3324 }
3325 var8 = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AUminusExpr> */
3326 if (unlikely(var8 == NULL)) {
3327 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3328 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4710);
3329 show_backtrace(1);
3330 }
3331 {
3332 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExpr> */
3333 var_other = var_old_child;
3334 {
3335 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExpr> */
3336 var14 = var8 == var_other;
3337 var12 = var14;
3338 goto RET_LABEL13;
3339 RET_LABEL13:(void)0;
3340 }
3341 }
3342 var10 = var12;
3343 goto RET_LABEL11;
3344 RET_LABEL11:(void)0;
3345 }
3346 var9 = var10;
3347 }
3348 if (var9){
3349 /* <var_new_child:nullable ANode> isa AExpr */
3350 cltype16 = type_parser_nodes__AExpr.color;
3351 idtype17 = type_parser_nodes__AExpr.id;
3352 if(var_new_child == NULL) {
3353 var15 = 0;
3354 } else {
3355 if(cltype16 >= var_new_child->type->table_size) {
3356 var15 = 0;
3357 } else {
3358 var15 = var_new_child->type->type_table[cltype16] == idtype17;
3359 }
3360 }
3361 if (unlikely(!var15)) {
3362 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
3363 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name18);
3364 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4711);
3365 show_backtrace(1);
3366 }
3367 {
3368 parser_prod__AUminusExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AUminusExpr#n_expr= on <self:AUminusExpr>*/
3369 }
3370 goto RET_LABEL;
3371 } else {
3372 }
3373 RET_LABEL:;
3374 }
3375 /* method parser_prod#AUminusExpr#replace_child for (self: Object, ANode, nullable ANode) */
3376 void VIRTUAL_parser_prod__AUminusExpr__replace_child(val* self, val* p0, val* p1) {
3377 parser_prod__AUminusExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AUminusExpr#replace_child on <self:Object(AUminusExpr)>*/
3378 RET_LABEL:;
3379 }
3380 /* method parser_prod#AUminusExpr#n_minus= for (self: AUminusExpr, TMinus) */
3381 void parser_prod__AUminusExpr__n_minus_61d(val* self, val* p0) {
3382 val* var_node /* var node: TMinus */;
3383 var_node = p0;
3384 self->attrs[COLOR_parser_nodes__AUminusExpr___n_minus].val = var_node; /* _n_minus on <self:AUminusExpr> */
3385 {
3386 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TMinus> */
3387 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TMinus> */
3388 RET_LABEL1:(void)0;
3389 }
3390 }
3391 RET_LABEL:;
3392 }
3393 /* method parser_prod#AUminusExpr#n_minus= for (self: Object, TMinus) */
3394 void VIRTUAL_parser_prod__AUminusExpr__n_minus_61d(val* self, val* p0) {
3395 parser_prod__AUminusExpr__n_minus_61d(self, p0); /* Direct call parser_prod#AUminusExpr#n_minus= on <self:Object(AUminusExpr)>*/
3396 RET_LABEL:;
3397 }
3398 /* method parser_prod#AUminusExpr#n_expr= for (self: AUminusExpr, AExpr) */
3399 void parser_prod__AUminusExpr__n_expr_61d(val* self, val* p0) {
3400 val* var_node /* var node: AExpr */;
3401 var_node = p0;
3402 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:AUminusExpr> */
3403 {
3404 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
3405 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
3406 RET_LABEL1:(void)0;
3407 }
3408 }
3409 RET_LABEL:;
3410 }
3411 /* method parser_prod#AUminusExpr#n_expr= for (self: Object, AExpr) */
3412 void VIRTUAL_parser_prod__AUminusExpr__n_expr_61d(val* self, val* p0) {
3413 parser_prod__AUminusExpr__n_expr_61d(self, p0); /* Direct call parser_prod#AUminusExpr#n_expr= on <self:Object(AUminusExpr)>*/
3414 RET_LABEL:;
3415 }
3416 /* method parser_prod#AUminusExpr#visit_all for (self: AUminusExpr, Visitor) */
3417 void parser_prod__AUminusExpr__visit_all(val* self, val* p0) {
3418 val* var_v /* var v: Visitor */;
3419 val* var /* : TMinus */;
3420 val* var1 /* : AExpr */;
3421 var_v = p0;
3422 var = self->attrs[COLOR_parser_nodes__AUminusExpr___n_minus].val; /* _n_minus on <self:AUminusExpr> */
3423 if (unlikely(var == NULL)) {
3424 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_minus");
3425 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4730);
3426 show_backtrace(1);
3427 }
3428 {
3429 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3430 }
3431 var1 = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AUminusExpr> */
3432 if (unlikely(var1 == NULL)) {
3433 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3434 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4731);
3435 show_backtrace(1);
3436 }
3437 {
3438 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3439 }
3440 RET_LABEL:;
3441 }
3442 /* method parser_prod#AUminusExpr#visit_all for (self: Object, Visitor) */
3443 void VIRTUAL_parser_prod__AUminusExpr__visit_all(val* self, val* p0) {
3444 parser_prod__AUminusExpr__visit_all(self, p0); /* Direct call parser_prod#AUminusExpr#visit_all on <self:Object(AUminusExpr)>*/
3445 RET_LABEL:;
3446 }
3447 /* method parser_prod#ANewExpr#init_anewexpr for (self: ANewExpr, nullable TKwnew, nullable AType, nullable TId, nullable AExprs) */
3448 void parser_prod__ANewExpr__init_anewexpr(val* self, val* p0, val* p1, val* p2, val* p3) {
3449 val* var_n_kwnew /* var n_kwnew: nullable TKwnew */;
3450 val* var_n_type /* var n_type: nullable AType */;
3451 val* var_n_id /* var n_id: nullable TId */;
3452 val* var_n_args /* var n_args: nullable AExprs */;
3453 val* var /* : null */;
3454 short int var3 /* : Bool */;
3455 short int var4 /* : Bool */;
3456 val* var_other /* var other: nullable Object */;
3457 short int var6 /* : Bool */;
3458 short int var7 /* : Bool */;
3459 short int var8 /* : Bool */;
3460 var_n_kwnew = p0;
3461 var_n_type = p1;
3462 var_n_id = p2;
3463 var_n_args = p3;
3464 if (unlikely(var_n_kwnew == NULL)) {
3465 PRINT_ERROR("Runtime error: %s", "Cast failed");
3466 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4742);
3467 show_backtrace(1);
3468 }
3469 self->attrs[COLOR_parser_nodes__ANewExpr___n_kwnew].val = var_n_kwnew; /* _n_kwnew on <self:ANewExpr> */
3470 if (var_n_kwnew == NULL) {
3471 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3472 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4743);
3473 show_backtrace(1);
3474 } else {
3475 { /* Inline parser_nodes#ANode#parent= (var_n_kwnew,self) on <var_n_kwnew:nullable TKwnew> */
3476 if (unlikely(var_n_kwnew == NULL)) {
3477 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3478 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
3479 show_backtrace(1);
3480 }
3481 var_n_kwnew->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwnew:nullable TKwnew> */
3482 RET_LABEL1:(void)0;
3483 }
3484 }
3485 if (unlikely(var_n_type == NULL)) {
3486 PRINT_ERROR("Runtime error: %s", "Cast failed");
3487 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4744);
3488 show_backtrace(1);
3489 }
3490 self->attrs[COLOR_parser_nodes__ANewExpr___n_type].val = var_n_type; /* _n_type on <self:ANewExpr> */
3491 if (var_n_type == NULL) {
3492 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3493 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4745);
3494 show_backtrace(1);
3495 } else {
3496 { /* Inline parser_nodes#ANode#parent= (var_n_type,self) on <var_n_type:nullable AType> */
3497 if (unlikely(var_n_type == NULL)) {
3498 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3499 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
3500 show_backtrace(1);
3501 }
3502 var_n_type->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_type:nullable AType> */
3503 RET_LABEL2:(void)0;
3504 }
3505 }
3506 self->attrs[COLOR_parser_nodes__ANewExpr___n_id].val = var_n_id; /* _n_id on <self:ANewExpr> */
3507 var = NULL;
3508 if (var_n_id == NULL) {
3509 var3 = 0; /* is null */
3510 } else {
3511 var3 = 1; /* arg is null and recv is not */
3512 }
3513 if (0) {
3514 { /* Inline kernel#Object#!= (var_n_id,var) on <var_n_id:nullable TId> */
3515 var_other = var;
3516 {
3517 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)>*/;
3518 var6 = var7;
3519 }
3520 var8 = !var6;
3521 var4 = var8;
3522 goto RET_LABEL5;
3523 RET_LABEL5:(void)0;
3524 }
3525 var3 = var4;
3526 }
3527 if (var3){
3528 {
3529 { /* Inline parser_nodes#ANode#parent= (var_n_id,self) on <var_n_id:nullable TId(TId)> */
3530 var_n_id->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_id:nullable TId(TId)> */
3531 RET_LABEL9:(void)0;
3532 }
3533 }
3534 } else {
3535 }
3536 if (unlikely(var_n_args == NULL)) {
3537 PRINT_ERROR("Runtime error: %s", "Cast failed");
3538 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4748);
3539 show_backtrace(1);
3540 }
3541 self->attrs[COLOR_parser_nodes__ANewExpr___n_args].val = var_n_args; /* _n_args on <self:ANewExpr> */
3542 if (var_n_args == NULL) {
3543 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3544 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4749);
3545 show_backtrace(1);
3546 } else {
3547 { /* Inline parser_nodes#ANode#parent= (var_n_args,self) on <var_n_args:nullable AExprs> */
3548 if (unlikely(var_n_args == NULL)) {
3549 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3550 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
3551 show_backtrace(1);
3552 }
3553 var_n_args->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_args:nullable AExprs> */
3554 RET_LABEL10:(void)0;
3555 }
3556 }
3557 RET_LABEL:;
3558 }
3559 /* method parser_prod#ANewExpr#init_anewexpr for (self: Object, nullable TKwnew, nullable AType, nullable TId, nullable AExprs) */
3560 void VIRTUAL_parser_prod__ANewExpr__init_anewexpr(val* self, val* p0, val* p1, val* p2, val* p3) {
3561 parser_prod__ANewExpr__init_anewexpr(self, p0, p1, p2, p3); /* Direct call parser_prod#ANewExpr#init_anewexpr on <self:Object(ANewExpr)>*/
3562 RET_LABEL:;
3563 }
3564 /* method parser_prod#ANewExpr#replace_child for (self: ANewExpr, ANode, nullable ANode) */
3565 void parser_prod__ANewExpr__replace_child(val* self, val* p0, val* p1) {
3566 val* var_old_child /* var old_child: ANode */;
3567 val* var_new_child /* var new_child: nullable ANode */;
3568 val* var /* : TKwnew */;
3569 short int var1 /* : Bool */;
3570 short int var2 /* : Bool */;
3571 val* var_other /* var other: nullable Object */;
3572 short int var4 /* : Bool */;
3573 short int var6 /* : Bool */;
3574 short int var7 /* : Bool */;
3575 int cltype;
3576 int idtype;
3577 const char* var_class_name;
3578 val* var8 /* : AType */;
3579 short int var9 /* : Bool */;
3580 short int var10 /* : Bool */;
3581 short int var12 /* : Bool */;
3582 short int var14 /* : Bool */;
3583 short int var15 /* : Bool */;
3584 int cltype16;
3585 int idtype17;
3586 const char* var_class_name18;
3587 val* var19 /* : nullable TId */;
3588 short int var20 /* : Bool */;
3589 short int var21 /* : Bool */;
3590 short int var23 /* : Bool */;
3591 short int var25 /* : Bool */;
3592 short int var26 /* : Bool */;
3593 int cltype27;
3594 int idtype28;
3595 const char* var_class_name29;
3596 val* var30 /* : AExprs */;
3597 short int var31 /* : Bool */;
3598 short int var32 /* : Bool */;
3599 short int var34 /* : Bool */;
3600 short int var36 /* : Bool */;
3601 short int var37 /* : Bool */;
3602 int cltype38;
3603 int idtype39;
3604 const char* var_class_name40;
3605 var_old_child = p0;
3606 var_new_child = p1;
3607 var = self->attrs[COLOR_parser_nodes__ANewExpr___n_kwnew].val; /* _n_kwnew on <self:ANewExpr> */
3608 if (unlikely(var == NULL)) {
3609 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwnew");
3610 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4754);
3611 show_backtrace(1);
3612 }
3613 {
3614 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwnew> */
3615 var_other = var_old_child;
3616 {
3617 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TKwnew> */
3618 var6 = var == var_other;
3619 var4 = var6;
3620 goto RET_LABEL5;
3621 RET_LABEL5:(void)0;
3622 }
3623 }
3624 var2 = var4;
3625 goto RET_LABEL3;
3626 RET_LABEL3:(void)0;
3627 }
3628 var1 = var2;
3629 }
3630 if (var1){
3631 /* <var_new_child:nullable ANode> isa TKwnew */
3632 cltype = type_parser_nodes__TKwnew.color;
3633 idtype = type_parser_nodes__TKwnew.id;
3634 if(var_new_child == NULL) {
3635 var7 = 0;
3636 } else {
3637 if(cltype >= var_new_child->type->table_size) {
3638 var7 = 0;
3639 } else {
3640 var7 = var_new_child->type->type_table[cltype] == idtype;
3641 }
3642 }
3643 if (unlikely(!var7)) {
3644 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
3645 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwnew", var_class_name);
3646 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4755);
3647 show_backtrace(1);
3648 }
3649 {
3650 parser_prod__ANewExpr__n_kwnew_61d(self, var_new_child); /* Direct call parser_prod#ANewExpr#n_kwnew= on <self:ANewExpr>*/
3651 }
3652 goto RET_LABEL;
3653 } else {
3654 }
3655 var8 = self->attrs[COLOR_parser_nodes__ANewExpr___n_type].val; /* _n_type on <self:ANewExpr> */
3656 if (unlikely(var8 == NULL)) {
3657 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
3658 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4758);
3659 show_backtrace(1);
3660 }
3661 {
3662 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AType> */
3663 var_other = var_old_child;
3664 {
3665 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AType> */
3666 var14 = var8 == var_other;
3667 var12 = var14;
3668 goto RET_LABEL13;
3669 RET_LABEL13:(void)0;
3670 }
3671 }
3672 var10 = var12;
3673 goto RET_LABEL11;
3674 RET_LABEL11:(void)0;
3675 }
3676 var9 = var10;
3677 }
3678 if (var9){
3679 /* <var_new_child:nullable ANode> isa AType */
3680 cltype16 = type_parser_nodes__AType.color;
3681 idtype17 = type_parser_nodes__AType.id;
3682 if(var_new_child == NULL) {
3683 var15 = 0;
3684 } else {
3685 if(cltype16 >= var_new_child->type->table_size) {
3686 var15 = 0;
3687 } else {
3688 var15 = var_new_child->type->type_table[cltype16] == idtype17;
3689 }
3690 }
3691 if (unlikely(!var15)) {
3692 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
3693 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AType", var_class_name18);
3694 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4759);
3695 show_backtrace(1);
3696 }
3697 {
3698 parser_prod__ANewExpr__n_type_61d(self, var_new_child); /* Direct call parser_prod#ANewExpr#n_type= on <self:ANewExpr>*/
3699 }
3700 goto RET_LABEL;
3701 } else {
3702 }
3703 var19 = self->attrs[COLOR_parser_nodes__ANewExpr___n_id].val; /* _n_id on <self:ANewExpr> */
3704 if (var19 == NULL) {
3705 var20 = 0; /* <var_old_child:ANode> cannot be null */
3706 } else {
3707 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:nullable TId> */
3708 var_other = var_old_child;
3709 {
3710 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:nullable TId(TId)> */
3711 var25 = var19 == var_other;
3712 var23 = var25;
3713 goto RET_LABEL24;
3714 RET_LABEL24:(void)0;
3715 }
3716 }
3717 var21 = var23;
3718 goto RET_LABEL22;
3719 RET_LABEL22:(void)0;
3720 }
3721 var20 = var21;
3722 }
3723 if (var20){
3724 /* <var_new_child:nullable ANode> isa nullable TId */
3725 cltype27 = type_nullable_parser_nodes__TId.color;
3726 idtype28 = type_nullable_parser_nodes__TId.id;
3727 if(var_new_child == NULL) {
3728 var26 = 1;
3729 } else {
3730 if(cltype27 >= var_new_child->type->table_size) {
3731 var26 = 0;
3732 } else {
3733 var26 = var_new_child->type->type_table[cltype27] == idtype28;
3734 }
3735 }
3736 if (unlikely(!var26)) {
3737 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
3738 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TId", var_class_name29);
3739 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4763);
3740 show_backtrace(1);
3741 }
3742 {
3743 parser_prod__ANewExpr__n_id_61d(self, var_new_child); /* Direct call parser_prod#ANewExpr#n_id= on <self:ANewExpr>*/
3744 }
3745 goto RET_LABEL;
3746 } else {
3747 }
3748 var30 = self->attrs[COLOR_parser_nodes__ANewExpr___n_args].val; /* _n_args on <self:ANewExpr> */
3749 if (unlikely(var30 == NULL)) {
3750 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
3751 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4766);
3752 show_backtrace(1);
3753 }
3754 {
3755 { /* Inline kernel#Object#== (var30,var_old_child) on <var30:AExprs> */
3756 var_other = var_old_child;
3757 {
3758 { /* Inline kernel#Object#is_same_instance (var30,var_other) on <var30:AExprs> */
3759 var36 = var30 == var_other;
3760 var34 = var36;
3761 goto RET_LABEL35;
3762 RET_LABEL35:(void)0;
3763 }
3764 }
3765 var32 = var34;
3766 goto RET_LABEL33;
3767 RET_LABEL33:(void)0;
3768 }
3769 var31 = var32;
3770 }
3771 if (var31){
3772 /* <var_new_child:nullable ANode> isa AExprs */
3773 cltype38 = type_parser_nodes__AExprs.color;
3774 idtype39 = type_parser_nodes__AExprs.id;
3775 if(var_new_child == NULL) {
3776 var37 = 0;
3777 } else {
3778 if(cltype38 >= var_new_child->type->table_size) {
3779 var37 = 0;
3780 } else {
3781 var37 = var_new_child->type->type_table[cltype38] == idtype39;
3782 }
3783 }
3784 if (unlikely(!var37)) {
3785 var_class_name40 = var_new_child == NULL ? "null" : var_new_child->type->name;
3786 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExprs", var_class_name40);
3787 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4767);
3788 show_backtrace(1);
3789 }
3790 {
3791 parser_prod__ANewExpr__n_args_61d(self, var_new_child); /* Direct call parser_prod#ANewExpr#n_args= on <self:ANewExpr>*/
3792 }
3793 goto RET_LABEL;
3794 } else {
3795 }
3796 RET_LABEL:;
3797 }
3798 /* method parser_prod#ANewExpr#replace_child for (self: Object, ANode, nullable ANode) */
3799 void VIRTUAL_parser_prod__ANewExpr__replace_child(val* self, val* p0, val* p1) {
3800 parser_prod__ANewExpr__replace_child(self, p0, p1); /* Direct call parser_prod#ANewExpr#replace_child on <self:Object(ANewExpr)>*/
3801 RET_LABEL:;
3802 }
3803 /* method parser_prod#ANewExpr#n_kwnew= for (self: ANewExpr, TKwnew) */
3804 void parser_prod__ANewExpr__n_kwnew_61d(val* self, val* p0) {
3805 val* var_node /* var node: TKwnew */;
3806 var_node = p0;
3807 self->attrs[COLOR_parser_nodes__ANewExpr___n_kwnew].val = var_node; /* _n_kwnew on <self:ANewExpr> */
3808 {
3809 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwnew> */
3810 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwnew> */
3811 RET_LABEL1:(void)0;
3812 }
3813 }
3814 RET_LABEL:;
3815 }
3816 /* method parser_prod#ANewExpr#n_kwnew= for (self: Object, TKwnew) */
3817 void VIRTUAL_parser_prod__ANewExpr__n_kwnew_61d(val* self, val* p0) {
3818 parser_prod__ANewExpr__n_kwnew_61d(self, p0); /* Direct call parser_prod#ANewExpr#n_kwnew= on <self:Object(ANewExpr)>*/
3819 RET_LABEL:;
3820 }
3821 /* method parser_prod#ANewExpr#n_type= for (self: ANewExpr, AType) */
3822 void parser_prod__ANewExpr__n_type_61d(val* self, val* p0) {
3823 val* var_node /* var node: AType */;
3824 var_node = p0;
3825 self->attrs[COLOR_parser_nodes__ANewExpr___n_type].val = var_node; /* _n_type on <self:ANewExpr> */
3826 {
3827 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AType> */
3828 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AType> */
3829 RET_LABEL1:(void)0;
3830 }
3831 }
3832 RET_LABEL:;
3833 }
3834 /* method parser_prod#ANewExpr#n_type= for (self: Object, AType) */
3835 void VIRTUAL_parser_prod__ANewExpr__n_type_61d(val* self, val* p0) {
3836 parser_prod__ANewExpr__n_type_61d(self, p0); /* Direct call parser_prod#ANewExpr#n_type= on <self:Object(ANewExpr)>*/
3837 RET_LABEL:;
3838 }
3839 /* method parser_prod#ANewExpr#n_id= for (self: ANewExpr, nullable TId) */
3840 void parser_prod__ANewExpr__n_id_61d(val* self, val* p0) {
3841 val* var_node /* var node: nullable TId */;
3842 val* var /* : null */;
3843 short int var1 /* : Bool */;
3844 short int var2 /* : Bool */;
3845 val* var_other /* var other: nullable Object */;
3846 short int var4 /* : Bool */;
3847 short int var5 /* : Bool */;
3848 short int var6 /* : Bool */;
3849 var_node = p0;
3850 self->attrs[COLOR_parser_nodes__ANewExpr___n_id].val = var_node; /* _n_id on <self:ANewExpr> */
3851 var = NULL;
3852 if (var_node == NULL) {
3853 var1 = 0; /* is null */
3854 } else {
3855 var1 = 1; /* arg is null and recv is not */
3856 }
3857 if (0) {
3858 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable TId> */
3859 var_other = var;
3860 {
3861 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable TId(TId)>*/;
3862 var4 = var5;
3863 }
3864 var6 = !var4;
3865 var2 = var6;
3866 goto RET_LABEL3;
3867 RET_LABEL3:(void)0;
3868 }
3869 var1 = var2;
3870 }
3871 if (var1){
3872 {
3873 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TId(TId)> */
3874 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TId(TId)> */
3875 RET_LABEL7:(void)0;
3876 }
3877 }
3878 } else {
3879 }
3880 RET_LABEL:;
3881 }
3882 /* method parser_prod#ANewExpr#n_id= for (self: Object, nullable TId) */
3883 void VIRTUAL_parser_prod__ANewExpr__n_id_61d(val* self, val* p0) {
3884 parser_prod__ANewExpr__n_id_61d(self, p0); /* Direct call parser_prod#ANewExpr#n_id= on <self:Object(ANewExpr)>*/
3885 RET_LABEL:;
3886 }
3887 /* method parser_prod#ANewExpr#n_args= for (self: ANewExpr, AExprs) */
3888 void parser_prod__ANewExpr__n_args_61d(val* self, val* p0) {
3889 val* var_node /* var node: AExprs */;
3890 var_node = p0;
3891 self->attrs[COLOR_parser_nodes__ANewExpr___n_args].val = var_node; /* _n_args on <self:ANewExpr> */
3892 {
3893 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExprs> */
3894 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExprs> */
3895 RET_LABEL1:(void)0;
3896 }
3897 }
3898 RET_LABEL:;
3899 }
3900 /* method parser_prod#ANewExpr#n_args= for (self: Object, AExprs) */
3901 void VIRTUAL_parser_prod__ANewExpr__n_args_61d(val* self, val* p0) {
3902 parser_prod__ANewExpr__n_args_61d(self, p0); /* Direct call parser_prod#ANewExpr#n_args= on <self:Object(ANewExpr)>*/
3903 RET_LABEL:;
3904 }
3905 /* method parser_prod#ANewExpr#visit_all for (self: ANewExpr, Visitor) */
3906 void parser_prod__ANewExpr__visit_all(val* self, val* p0) {
3907 val* var_v /* var v: Visitor */;
3908 val* var /* : TKwnew */;
3909 val* var1 /* : AType */;
3910 val* var2 /* : nullable TId */;
3911 val* var3 /* : AExprs */;
3912 var_v = p0;
3913 var = self->attrs[COLOR_parser_nodes__ANewExpr___n_kwnew].val; /* _n_kwnew on <self:ANewExpr> */
3914 if (unlikely(var == NULL)) {
3915 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwnew");
3916 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4796);
3917 show_backtrace(1);
3918 }
3919 {
3920 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3921 }
3922 var1 = self->attrs[COLOR_parser_nodes__ANewExpr___n_type].val; /* _n_type on <self:ANewExpr> */
3923 if (unlikely(var1 == NULL)) {
3924 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
3925 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4797);
3926 show_backtrace(1);
3927 }
3928 {
3929 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3930 }
3931 var2 = self->attrs[COLOR_parser_nodes__ANewExpr___n_id].val; /* _n_id on <self:ANewExpr> */
3932 {
3933 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3934 }
3935 var3 = self->attrs[COLOR_parser_nodes__ANewExpr___n_args].val; /* _n_args on <self:ANewExpr> */
3936 if (unlikely(var3 == NULL)) {
3937 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
3938 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4799);
3939 show_backtrace(1);
3940 }
3941 {
3942 parser_nodes__Visitor__enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3943 }
3944 RET_LABEL:;
3945 }
3946 /* method parser_prod#ANewExpr#visit_all for (self: Object, Visitor) */
3947 void VIRTUAL_parser_prod__ANewExpr__visit_all(val* self, val* p0) {
3948 parser_prod__ANewExpr__visit_all(self, p0); /* Direct call parser_prod#ANewExpr#visit_all on <self:Object(ANewExpr)>*/
3949 RET_LABEL:;
3950 }
3951 /* method parser_prod#AAttrExpr#init_aattrexpr for (self: AAttrExpr, nullable AExpr, nullable TAttrid) */
3952 void parser_prod__AAttrExpr__init_aattrexpr(val* self, val* p0, val* p1) {
3953 val* var_n_expr /* var n_expr: nullable AExpr */;
3954 val* var_n_id /* var n_id: nullable TAttrid */;
3955 var_n_expr = p0;
3956 var_n_id = p1;
3957 if (unlikely(var_n_expr == NULL)) {
3958 PRINT_ERROR("Runtime error: %s", "Cast failed");
3959 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4808);
3960 show_backtrace(1);
3961 }
3962 self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AAttrExpr> */
3963 if (var_n_expr == NULL) {
3964 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3965 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4809);
3966 show_backtrace(1);
3967 } else {
3968 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
3969 if (unlikely(var_n_expr == NULL)) {
3970 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3971 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
3972 show_backtrace(1);
3973 }
3974 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
3975 RET_LABEL1:(void)0;
3976 }
3977 }
3978 if (unlikely(var_n_id == NULL)) {
3979 PRINT_ERROR("Runtime error: %s", "Cast failed");
3980 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4810);
3981 show_backtrace(1);
3982 }
3983 self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_id].val = var_n_id; /* _n_id on <self:AAttrExpr> */
3984 if (var_n_id == NULL) {
3985 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3986 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4811);
3987 show_backtrace(1);
3988 } else {
3989 { /* Inline parser_nodes#ANode#parent= (var_n_id,self) on <var_n_id:nullable TAttrid> */
3990 if (unlikely(var_n_id == NULL)) {
3991 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3992 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
3993 show_backtrace(1);
3994 }
3995 var_n_id->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_id:nullable TAttrid> */
3996 RET_LABEL2:(void)0;
3997 }
3998 }
3999 RET_LABEL:;
4000 }
4001 /* method parser_prod#AAttrExpr#init_aattrexpr for (self: Object, nullable AExpr, nullable TAttrid) */
4002 void VIRTUAL_parser_prod__AAttrExpr__init_aattrexpr(val* self, val* p0, val* p1) {
4003 parser_prod__AAttrExpr__init_aattrexpr(self, p0, p1); /* Direct call parser_prod#AAttrExpr#init_aattrexpr on <self:Object(AAttrExpr)>*/
4004 RET_LABEL:;
4005 }
4006 /* method parser_prod#AAttrExpr#replace_child for (self: AAttrExpr, ANode, nullable ANode) */
4007 void parser_prod__AAttrExpr__replace_child(val* self, val* p0, val* p1) {
4008 val* var_old_child /* var old_child: ANode */;
4009 val* var_new_child /* var new_child: nullable ANode */;
4010 val* var /* : AExpr */;
4011 short int var1 /* : Bool */;
4012 short int var2 /* : Bool */;
4013 val* var_other /* var other: nullable Object */;
4014 short int var4 /* : Bool */;
4015 short int var6 /* : Bool */;
4016 short int var7 /* : Bool */;
4017 int cltype;
4018 int idtype;
4019 const char* var_class_name;
4020 val* var8 /* : TAttrid */;
4021 short int var9 /* : Bool */;
4022 short int var10 /* : Bool */;
4023 short int var12 /* : Bool */;
4024 short int var14 /* : Bool */;
4025 short int var15 /* : Bool */;
4026 int cltype16;
4027 int idtype17;
4028 const char* var_class_name18;
4029 var_old_child = p0;
4030 var_new_child = p1;
4031 var = self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_expr].val; /* _n_expr on <self:AAttrExpr> */
4032 if (unlikely(var == NULL)) {
4033 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
4034 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4816);
4035 show_backtrace(1);
4036 }
4037 {
4038 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
4039 var_other = var_old_child;
4040 {
4041 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
4042 var6 = var == var_other;
4043 var4 = var6;
4044 goto RET_LABEL5;
4045 RET_LABEL5:(void)0;
4046 }
4047 }
4048 var2 = var4;
4049 goto RET_LABEL3;
4050 RET_LABEL3:(void)0;
4051 }
4052 var1 = var2;
4053 }
4054 if (var1){
4055 /* <var_new_child:nullable ANode> isa AExpr */
4056 cltype = type_parser_nodes__AExpr.color;
4057 idtype = type_parser_nodes__AExpr.id;
4058 if(var_new_child == NULL) {
4059 var7 = 0;
4060 } else {
4061 if(cltype >= var_new_child->type->table_size) {
4062 var7 = 0;
4063 } else {
4064 var7 = var_new_child->type->type_table[cltype] == idtype;
4065 }
4066 }
4067 if (unlikely(!var7)) {
4068 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
4069 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
4070 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4817);
4071 show_backtrace(1);
4072 }
4073 {
4074 parser_prod__AAttrExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AAttrExpr#n_expr= on <self:AAttrExpr>*/
4075 }
4076 goto RET_LABEL;
4077 } else {
4078 }
4079 var8 = self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_id].val; /* _n_id on <self:AAttrExpr> */
4080 if (unlikely(var8 == NULL)) {
4081 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
4082 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4820);
4083 show_backtrace(1);
4084 }
4085 {
4086 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:TAttrid> */
4087 var_other = var_old_child;
4088 {
4089 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:TAttrid> */
4090 var14 = var8 == var_other;
4091 var12 = var14;
4092 goto RET_LABEL13;
4093 RET_LABEL13:(void)0;
4094 }
4095 }
4096 var10 = var12;
4097 goto RET_LABEL11;
4098 RET_LABEL11:(void)0;
4099 }
4100 var9 = var10;
4101 }
4102 if (var9){
4103 /* <var_new_child:nullable ANode> isa TAttrid */
4104 cltype16 = type_parser_nodes__TAttrid.color;
4105 idtype17 = type_parser_nodes__TAttrid.id;
4106 if(var_new_child == NULL) {
4107 var15 = 0;
4108 } else {
4109 if(cltype16 >= var_new_child->type->table_size) {
4110 var15 = 0;
4111 } else {
4112 var15 = var_new_child->type->type_table[cltype16] == idtype17;
4113 }
4114 }
4115 if (unlikely(!var15)) {
4116 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
4117 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TAttrid", var_class_name18);
4118 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4821);
4119 show_backtrace(1);
4120 }
4121 {
4122 parser_prod__AAttrExpr__n_id_61d(self, var_new_child); /* Direct call parser_prod#AAttrExpr#n_id= on <self:AAttrExpr>*/
4123 }
4124 goto RET_LABEL;
4125 } else {
4126 }
4127 RET_LABEL:;
4128 }
4129 /* method parser_prod#AAttrExpr#replace_child for (self: Object, ANode, nullable ANode) */
4130 void VIRTUAL_parser_prod__AAttrExpr__replace_child(val* self, val* p0, val* p1) {
4131 parser_prod__AAttrExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AAttrExpr#replace_child on <self:Object(AAttrExpr)>*/
4132 RET_LABEL:;
4133 }
4134 /* method parser_prod#AAttrExpr#n_expr= for (self: AAttrExpr, AExpr) */
4135 void parser_prod__AAttrExpr__n_expr_61d(val* self, val* p0) {
4136 val* var_node /* var node: AExpr */;
4137 var_node = p0;
4138 self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_expr].val = var_node; /* _n_expr on <self:AAttrExpr> */
4139 {
4140 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
4141 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
4142 RET_LABEL1:(void)0;
4143 }
4144 }
4145 RET_LABEL:;
4146 }
4147 /* method parser_prod#AAttrExpr#n_expr= for (self: Object, AExpr) */
4148 void VIRTUAL_parser_prod__AAttrExpr__n_expr_61d(val* self, val* p0) {
4149 parser_prod__AAttrExpr__n_expr_61d(self, p0); /* Direct call parser_prod#AAttrExpr#n_expr= on <self:Object(AAttrExpr)>*/
4150 RET_LABEL:;
4151 }
4152 /* method parser_prod#AAttrExpr#n_id= for (self: AAttrExpr, TAttrid) */
4153 void parser_prod__AAttrExpr__n_id_61d(val* self, val* p0) {
4154 val* var_node /* var node: TAttrid */;
4155 var_node = p0;
4156 self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_id].val = var_node; /* _n_id on <self:AAttrExpr> */
4157 {
4158 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TAttrid> */
4159 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TAttrid> */
4160 RET_LABEL1:(void)0;
4161 }
4162 }
4163 RET_LABEL:;
4164 }
4165 /* method parser_prod#AAttrExpr#n_id= for (self: Object, TAttrid) */
4166 void VIRTUAL_parser_prod__AAttrExpr__n_id_61d(val* self, val* p0) {
4167 parser_prod__AAttrExpr__n_id_61d(self, p0); /* Direct call parser_prod#AAttrExpr#n_id= on <self:Object(AAttrExpr)>*/
4168 RET_LABEL:;
4169 }
4170 /* method parser_prod#AAttrExpr#visit_all for (self: AAttrExpr, Visitor) */
4171 void parser_prod__AAttrExpr__visit_all(val* self, val* p0) {
4172 val* var_v /* var v: Visitor */;
4173 val* var /* : AExpr */;
4174 val* var1 /* : TAttrid */;
4175 var_v = p0;
4176 var = self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_expr].val; /* _n_expr on <self:AAttrExpr> */
4177 if (unlikely(var == NULL)) {
4178 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
4179 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4840);
4180 show_backtrace(1);
4181 }
4182 {
4183 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4184 }
4185 var1 = self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_id].val; /* _n_id on <self:AAttrExpr> */
4186 if (unlikely(var1 == NULL)) {
4187 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
4188 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4841);
4189 show_backtrace(1);
4190 }
4191 {
4192 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4193 }
4194 RET_LABEL:;
4195 }
4196 /* method parser_prod#AAttrExpr#visit_all for (self: Object, Visitor) */
4197 void VIRTUAL_parser_prod__AAttrExpr__visit_all(val* self, val* p0) {
4198 parser_prod__AAttrExpr__visit_all(self, p0); /* Direct call parser_prod#AAttrExpr#visit_all on <self:Object(AAttrExpr)>*/
4199 RET_LABEL:;
4200 }
4201 /* method parser_prod#AAttrAssignExpr#init_aattrassignexpr for (self: AAttrAssignExpr, nullable AExpr, nullable TAttrid, nullable TAssign, nullable AExpr) */
4202 void parser_prod__AAttrAssignExpr__init_aattrassignexpr(val* self, val* p0, val* p1, val* p2, val* p3) {
4203 val* var_n_expr /* var n_expr: nullable AExpr */;
4204 val* var_n_id /* var n_id: nullable TAttrid */;
4205 val* var_n_assign /* var n_assign: nullable TAssign */;
4206 val* var_n_value /* var n_value: nullable AExpr */;
4207 var_n_expr = p0;
4208 var_n_id = p1;
4209 var_n_assign = p2;
4210 var_n_value = p3;
4211 if (unlikely(var_n_expr == NULL)) {
4212 PRINT_ERROR("Runtime error: %s", "Cast failed");
4213 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4852);
4214 show_backtrace(1);
4215 }
4216 self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AAttrAssignExpr> */
4217 if (var_n_expr == NULL) {
4218 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4219 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4853);
4220 show_backtrace(1);
4221 } else {
4222 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
4223 if (unlikely(var_n_expr == NULL)) {
4224 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4225 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
4226 show_backtrace(1);
4227 }
4228 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
4229 RET_LABEL1:(void)0;
4230 }
4231 }
4232 if (unlikely(var_n_id == NULL)) {
4233 PRINT_ERROR("Runtime error: %s", "Cast failed");
4234 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4854);
4235 show_backtrace(1);
4236 }
4237 self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_id].val = var_n_id; /* _n_id on <self:AAttrAssignExpr> */
4238 if (var_n_id == NULL) {
4239 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4240 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4855);
4241 show_backtrace(1);
4242 } else {
4243 { /* Inline parser_nodes#ANode#parent= (var_n_id,self) on <var_n_id:nullable TAttrid> */
4244 if (unlikely(var_n_id == NULL)) {
4245 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4246 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
4247 show_backtrace(1);
4248 }
4249 var_n_id->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_id:nullable TAttrid> */
4250 RET_LABEL2:(void)0;
4251 }
4252 }
4253 if (unlikely(var_n_assign == NULL)) {
4254 PRINT_ERROR("Runtime error: %s", "Cast failed");
4255 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4856);
4256 show_backtrace(1);
4257 }
4258 self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_assign].val = var_n_assign; /* _n_assign on <self:AAttrAssignExpr> */
4259 if (var_n_assign == NULL) {
4260 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4261 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4857);
4262 show_backtrace(1);
4263 } else {
4264 { /* Inline parser_nodes#ANode#parent= (var_n_assign,self) on <var_n_assign:nullable TAssign> */
4265 if (unlikely(var_n_assign == NULL)) {
4266 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4267 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
4268 show_backtrace(1);
4269 }
4270 var_n_assign->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_assign:nullable TAssign> */
4271 RET_LABEL3:(void)0;
4272 }
4273 }
4274 if (unlikely(var_n_value == NULL)) {
4275 PRINT_ERROR("Runtime error: %s", "Cast failed");
4276 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4858);
4277 show_backtrace(1);
4278 }
4279 self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_value].val = var_n_value; /* _n_value on <self:AAttrAssignExpr> */
4280 if (var_n_value == NULL) {
4281 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4282 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4859);
4283 show_backtrace(1);
4284 } else {
4285 { /* Inline parser_nodes#ANode#parent= (var_n_value,self) on <var_n_value:nullable AExpr> */
4286 if (unlikely(var_n_value == NULL)) {
4287 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4288 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
4289 show_backtrace(1);
4290 }
4291 var_n_value->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_value:nullable AExpr> */
4292 RET_LABEL4:(void)0;
4293 }
4294 }
4295 RET_LABEL:;
4296 }
4297 /* method parser_prod#AAttrAssignExpr#init_aattrassignexpr for (self: Object, nullable AExpr, nullable TAttrid, nullable TAssign, nullable AExpr) */
4298 void VIRTUAL_parser_prod__AAttrAssignExpr__init_aattrassignexpr(val* self, val* p0, val* p1, val* p2, val* p3) {
4299 parser_prod__AAttrAssignExpr__init_aattrassignexpr(self, p0, p1, p2, p3); /* Direct call parser_prod#AAttrAssignExpr#init_aattrassignexpr on <self:Object(AAttrAssignExpr)>*/
4300 RET_LABEL:;
4301 }
4302 /* method parser_prod#AAttrAssignExpr#replace_child for (self: AAttrAssignExpr, ANode, nullable ANode) */
4303 void parser_prod__AAttrAssignExpr__replace_child(val* self, val* p0, val* p1) {
4304 val* var_old_child /* var old_child: ANode */;
4305 val* var_new_child /* var new_child: nullable ANode */;
4306 val* var /* : AExpr */;
4307 short int var1 /* : Bool */;
4308 short int var2 /* : Bool */;
4309 val* var_other /* var other: nullable Object */;
4310 short int var4 /* : Bool */;
4311 short int var6 /* : Bool */;
4312 short int var7 /* : Bool */;
4313 int cltype;
4314 int idtype;
4315 const char* var_class_name;
4316 val* var8 /* : TAttrid */;
4317 short int var9 /* : Bool */;
4318 short int var10 /* : Bool */;
4319 short int var12 /* : Bool */;
4320 short int var14 /* : Bool */;
4321 short int var15 /* : Bool */;
4322 int cltype16;
4323 int idtype17;
4324 const char* var_class_name18;
4325 val* var19 /* : TAssign */;
4326 short int var20 /* : Bool */;
4327 short int var21 /* : Bool */;
4328 short int var23 /* : Bool */;
4329 short int var25 /* : Bool */;
4330 short int var26 /* : Bool */;
4331 int cltype27;
4332 int idtype28;
4333 const char* var_class_name29;
4334 val* var30 /* : AExpr */;
4335 short int var31 /* : Bool */;
4336 short int var32 /* : Bool */;
4337 short int var34 /* : Bool */;
4338 short int var36 /* : Bool */;
4339 short int var37 /* : Bool */;
4340 int cltype38;
4341 int idtype39;
4342 const char* var_class_name40;
4343 var_old_child = p0;
4344 var_new_child = p1;
4345 var = self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_expr].val; /* _n_expr on <self:AAttrAssignExpr> */
4346 if (unlikely(var == NULL)) {
4347 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
4348 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4864);
4349 show_backtrace(1);
4350 }
4351 {
4352 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
4353 var_other = var_old_child;
4354 {
4355 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
4356 var6 = var == var_other;
4357 var4 = var6;
4358 goto RET_LABEL5;
4359 RET_LABEL5:(void)0;
4360 }
4361 }
4362 var2 = var4;
4363 goto RET_LABEL3;
4364 RET_LABEL3:(void)0;
4365 }
4366 var1 = var2;
4367 }
4368 if (var1){
4369 /* <var_new_child:nullable ANode> isa AExpr */
4370 cltype = type_parser_nodes__AExpr.color;
4371 idtype = type_parser_nodes__AExpr.id;
4372 if(var_new_child == NULL) {
4373 var7 = 0;
4374 } else {
4375 if(cltype >= var_new_child->type->table_size) {
4376 var7 = 0;
4377 } else {
4378 var7 = var_new_child->type->type_table[cltype] == idtype;
4379 }
4380 }
4381 if (unlikely(!var7)) {
4382 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
4383 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
4384 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4865);
4385 show_backtrace(1);
4386 }
4387 {
4388 parser_prod__AAttrAssignExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AAttrAssignExpr#n_expr= on <self:AAttrAssignExpr>*/
4389 }
4390 goto RET_LABEL;
4391 } else {
4392 }
4393 var8 = self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_id].val; /* _n_id on <self:AAttrAssignExpr> */
4394 if (unlikely(var8 == NULL)) {
4395 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
4396 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4868);
4397 show_backtrace(1);
4398 }
4399 {
4400 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:TAttrid> */
4401 var_other = var_old_child;
4402 {
4403 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:TAttrid> */
4404 var14 = var8 == var_other;
4405 var12 = var14;
4406 goto RET_LABEL13;
4407 RET_LABEL13:(void)0;
4408 }
4409 }
4410 var10 = var12;
4411 goto RET_LABEL11;
4412 RET_LABEL11:(void)0;
4413 }
4414 var9 = var10;
4415 }
4416 if (var9){
4417 /* <var_new_child:nullable ANode> isa TAttrid */
4418 cltype16 = type_parser_nodes__TAttrid.color;
4419 idtype17 = type_parser_nodes__TAttrid.id;
4420 if(var_new_child == NULL) {
4421 var15 = 0;
4422 } else {
4423 if(cltype16 >= var_new_child->type->table_size) {
4424 var15 = 0;
4425 } else {
4426 var15 = var_new_child->type->type_table[cltype16] == idtype17;
4427 }
4428 }
4429 if (unlikely(!var15)) {
4430 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
4431 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TAttrid", var_class_name18);
4432 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4869);
4433 show_backtrace(1);
4434 }
4435 {
4436 parser_prod__AAttrAssignExpr__n_id_61d(self, var_new_child); /* Direct call parser_prod#AAttrAssignExpr#n_id= on <self:AAttrAssignExpr>*/
4437 }
4438 goto RET_LABEL;
4439 } else {
4440 }
4441 var19 = self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_assign].val; /* _n_assign on <self:AAttrAssignExpr> */
4442 if (unlikely(var19 == NULL)) {
4443 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_assign");
4444 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4872);
4445 show_backtrace(1);
4446 }
4447 {
4448 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:TAssign> */
4449 var_other = var_old_child;
4450 {
4451 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:TAssign> */
4452 var25 = var19 == var_other;
4453 var23 = var25;
4454 goto RET_LABEL24;
4455 RET_LABEL24:(void)0;
4456 }
4457 }
4458 var21 = var23;
4459 goto RET_LABEL22;
4460 RET_LABEL22:(void)0;
4461 }
4462 var20 = var21;
4463 }
4464 if (var20){
4465 /* <var_new_child:nullable ANode> isa TAssign */
4466 cltype27 = type_parser_nodes__TAssign.color;
4467 idtype28 = type_parser_nodes__TAssign.id;
4468 if(var_new_child == NULL) {
4469 var26 = 0;
4470 } else {
4471 if(cltype27 >= var_new_child->type->table_size) {
4472 var26 = 0;
4473 } else {
4474 var26 = var_new_child->type->type_table[cltype27] == idtype28;
4475 }
4476 }
4477 if (unlikely(!var26)) {
4478 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
4479 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TAssign", var_class_name29);
4480 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4873);
4481 show_backtrace(1);
4482 }
4483 {
4484 parser_prod__AAttrAssignExpr__n_assign_61d(self, var_new_child); /* Direct call parser_prod#AAttrAssignExpr#n_assign= on <self:AAttrAssignExpr>*/
4485 }
4486 goto RET_LABEL;
4487 } else {
4488 }
4489 var30 = self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_value].val; /* _n_value on <self:AAttrAssignExpr> */
4490 if (unlikely(var30 == NULL)) {
4491 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
4492 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4876);
4493 show_backtrace(1);
4494 }
4495 {
4496 { /* Inline kernel#Object#== (var30,var_old_child) on <var30:AExpr> */
4497 var_other = var_old_child;
4498 {
4499 { /* Inline kernel#Object#is_same_instance (var30,var_other) on <var30:AExpr> */
4500 var36 = var30 == var_other;
4501 var34 = var36;
4502 goto RET_LABEL35;
4503 RET_LABEL35:(void)0;
4504 }
4505 }
4506 var32 = var34;
4507 goto RET_LABEL33;
4508 RET_LABEL33:(void)0;
4509 }
4510 var31 = var32;
4511 }
4512 if (var31){
4513 /* <var_new_child:nullable ANode> isa AExpr */
4514 cltype38 = type_parser_nodes__AExpr.color;
4515 idtype39 = type_parser_nodes__AExpr.id;
4516 if(var_new_child == NULL) {
4517 var37 = 0;
4518 } else {
4519 if(cltype38 >= var_new_child->type->table_size) {
4520 var37 = 0;
4521 } else {
4522 var37 = var_new_child->type->type_table[cltype38] == idtype39;
4523 }
4524 }
4525 if (unlikely(!var37)) {
4526 var_class_name40 = var_new_child == NULL ? "null" : var_new_child->type->name;
4527 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name40);
4528 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4877);
4529 show_backtrace(1);
4530 }
4531 {
4532 parser_prod__AAttrAssignExpr__n_value_61d(self, var_new_child); /* Direct call parser_prod#AAttrAssignExpr#n_value= on <self:AAttrAssignExpr>*/
4533 }
4534 goto RET_LABEL;
4535 } else {
4536 }
4537 RET_LABEL:;
4538 }
4539 /* method parser_prod#AAttrAssignExpr#replace_child for (self: Object, ANode, nullable ANode) */
4540 void VIRTUAL_parser_prod__AAttrAssignExpr__replace_child(val* self, val* p0, val* p1) {
4541 parser_prod__AAttrAssignExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AAttrAssignExpr#replace_child on <self:Object(AAttrAssignExpr)>*/
4542 RET_LABEL:;
4543 }
4544 /* method parser_prod#AAttrAssignExpr#n_expr= for (self: AAttrAssignExpr, AExpr) */
4545 void parser_prod__AAttrAssignExpr__n_expr_61d(val* self, val* p0) {
4546 val* var_node /* var node: AExpr */;
4547 var_node = p0;
4548 self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_expr].val = var_node; /* _n_expr on <self:AAttrAssignExpr> */
4549 {
4550 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
4551 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
4552 RET_LABEL1:(void)0;
4553 }
4554 }
4555 RET_LABEL:;
4556 }
4557 /* method parser_prod#AAttrAssignExpr#n_expr= for (self: Object, AExpr) */
4558 void VIRTUAL_parser_prod__AAttrAssignExpr__n_expr_61d(val* self, val* p0) {
4559 parser_prod__AAttrAssignExpr__n_expr_61d(self, p0); /* Direct call parser_prod#AAttrAssignExpr#n_expr= on <self:Object(AAttrAssignExpr)>*/
4560 RET_LABEL:;
4561 }
4562 /* method parser_prod#AAttrAssignExpr#n_id= for (self: AAttrAssignExpr, TAttrid) */
4563 void parser_prod__AAttrAssignExpr__n_id_61d(val* self, val* p0) {
4564 val* var_node /* var node: TAttrid */;
4565 var_node = p0;
4566 self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_id].val = var_node; /* _n_id on <self:AAttrAssignExpr> */
4567 {
4568 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TAttrid> */
4569 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TAttrid> */
4570 RET_LABEL1:(void)0;
4571 }
4572 }
4573 RET_LABEL:;
4574 }
4575 /* method parser_prod#AAttrAssignExpr#n_id= for (self: Object, TAttrid) */
4576 void VIRTUAL_parser_prod__AAttrAssignExpr__n_id_61d(val* self, val* p0) {
4577 parser_prod__AAttrAssignExpr__n_id_61d(self, p0); /* Direct call parser_prod#AAttrAssignExpr#n_id= on <self:Object(AAttrAssignExpr)>*/
4578 RET_LABEL:;
4579 }
4580 /* method parser_prod#AAttrAssignExpr#n_assign= for (self: AAttrAssignExpr, TAssign) */
4581 void parser_prod__AAttrAssignExpr__n_assign_61d(val* self, val* p0) {
4582 val* var_node /* var node: TAssign */;
4583 var_node = p0;
4584 self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_assign].val = var_node; /* _n_assign on <self:AAttrAssignExpr> */
4585 {
4586 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TAssign> */
4587 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TAssign> */
4588 RET_LABEL1:(void)0;
4589 }
4590 }
4591 RET_LABEL:;
4592 }
4593 /* method parser_prod#AAttrAssignExpr#n_assign= for (self: Object, TAssign) */
4594 void VIRTUAL_parser_prod__AAttrAssignExpr__n_assign_61d(val* self, val* p0) {
4595 parser_prod__AAttrAssignExpr__n_assign_61d(self, p0); /* Direct call parser_prod#AAttrAssignExpr#n_assign= on <self:Object(AAttrAssignExpr)>*/
4596 RET_LABEL:;
4597 }
4598 /* method parser_prod#AAttrAssignExpr#n_value= for (self: AAttrAssignExpr, AExpr) */
4599 void parser_prod__AAttrAssignExpr__n_value_61d(val* self, val* p0) {
4600 val* var_node /* var node: AExpr */;
4601 var_node = p0;
4602 self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_value].val = var_node; /* _n_value on <self:AAttrAssignExpr> */
4603 {
4604 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
4605 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
4606 RET_LABEL1:(void)0;
4607 }
4608 }
4609 RET_LABEL:;
4610 }
4611 /* method parser_prod#AAttrAssignExpr#n_value= for (self: Object, AExpr) */
4612 void VIRTUAL_parser_prod__AAttrAssignExpr__n_value_61d(val* self, val* p0) {
4613 parser_prod__AAttrAssignExpr__n_value_61d(self, p0); /* Direct call parser_prod#AAttrAssignExpr#n_value= on <self:Object(AAttrAssignExpr)>*/
4614 RET_LABEL:;
4615 }
4616 /* method parser_prod#AAttrAssignExpr#visit_all for (self: AAttrAssignExpr, Visitor) */
4617 void parser_prod__AAttrAssignExpr__visit_all(val* self, val* p0) {
4618 val* var_v /* var v: Visitor */;
4619 val* var /* : AExpr */;
4620 val* var1 /* : TAttrid */;
4621 val* var2 /* : TAssign */;
4622 val* var3 /* : AExpr */;
4623 var_v = p0;
4624 var = self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_expr].val; /* _n_expr on <self:AAttrAssignExpr> */
4625 if (unlikely(var == NULL)) {
4626 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
4627 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4906);
4628 show_backtrace(1);
4629 }
4630 {
4631 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4632 }
4633 var1 = self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_id].val; /* _n_id on <self:AAttrAssignExpr> */
4634 if (unlikely(var1 == NULL)) {
4635 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
4636 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4907);
4637 show_backtrace(1);
4638 }
4639 {
4640 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4641 }
4642 var2 = self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_assign].val; /* _n_assign on <self:AAttrAssignExpr> */
4643 if (unlikely(var2 == NULL)) {
4644 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_assign");
4645 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4908);
4646 show_backtrace(1);
4647 }
4648 {
4649 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4650 }
4651 var3 = self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_value].val; /* _n_value on <self:AAttrAssignExpr> */
4652 if (unlikely(var3 == NULL)) {
4653 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
4654 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4909);
4655 show_backtrace(1);
4656 }
4657 {
4658 parser_nodes__Visitor__enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4659 }
4660 RET_LABEL:;
4661 }
4662 /* method parser_prod#AAttrAssignExpr#visit_all for (self: Object, Visitor) */
4663 void VIRTUAL_parser_prod__AAttrAssignExpr__visit_all(val* self, val* p0) {
4664 parser_prod__AAttrAssignExpr__visit_all(self, p0); /* Direct call parser_prod#AAttrAssignExpr#visit_all on <self:Object(AAttrAssignExpr)>*/
4665 RET_LABEL:;
4666 }
4667 /* method parser_prod#AAttrReassignExpr#init_aattrreassignexpr for (self: AAttrReassignExpr, nullable AExpr, nullable TAttrid, nullable AAssignOp, nullable AExpr) */
4668 void parser_prod__AAttrReassignExpr__init_aattrreassignexpr(val* self, val* p0, val* p1, val* p2, val* p3) {
4669 val* var_n_expr /* var n_expr: nullable AExpr */;
4670 val* var_n_id /* var n_id: nullable TAttrid */;
4671 val* var_n_assign_op /* var n_assign_op: nullable AAssignOp */;
4672 val* var_n_value /* var n_value: nullable AExpr */;
4673 var_n_expr = p0;
4674 var_n_id = p1;
4675 var_n_assign_op = p2;
4676 var_n_value = p3;
4677 if (unlikely(var_n_expr == NULL)) {
4678 PRINT_ERROR("Runtime error: %s", "Cast failed");
4679 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4920);
4680 show_backtrace(1);
4681 }
4682 self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AAttrReassignExpr> */
4683 if (var_n_expr == NULL) {
4684 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4685 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4921);
4686 show_backtrace(1);
4687 } else {
4688 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
4689 if (unlikely(var_n_expr == NULL)) {
4690 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4691 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
4692 show_backtrace(1);
4693 }
4694 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
4695 RET_LABEL1:(void)0;
4696 }
4697 }
4698 if (unlikely(var_n_id == NULL)) {
4699 PRINT_ERROR("Runtime error: %s", "Cast failed");
4700 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4922);
4701 show_backtrace(1);
4702 }
4703 self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_id].val = var_n_id; /* _n_id on <self:AAttrReassignExpr> */
4704 if (var_n_id == NULL) {
4705 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4706 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4923);
4707 show_backtrace(1);
4708 } else {
4709 { /* Inline parser_nodes#ANode#parent= (var_n_id,self) on <var_n_id:nullable TAttrid> */
4710 if (unlikely(var_n_id == NULL)) {
4711 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4712 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
4713 show_backtrace(1);
4714 }
4715 var_n_id->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_id:nullable TAttrid> */
4716 RET_LABEL2:(void)0;
4717 }
4718 }
4719 if (unlikely(var_n_assign_op == NULL)) {
4720 PRINT_ERROR("Runtime error: %s", "Cast failed");
4721 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4924);
4722 show_backtrace(1);
4723 }
4724 self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_assign_op].val = var_n_assign_op; /* _n_assign_op on <self:AAttrReassignExpr> */
4725 if (var_n_assign_op == NULL) {
4726 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4727 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4925);
4728 show_backtrace(1);
4729 } else {
4730 { /* Inline parser_nodes#ANode#parent= (var_n_assign_op,self) on <var_n_assign_op:nullable AAssignOp> */
4731 if (unlikely(var_n_assign_op == NULL)) {
4732 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4733 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
4734 show_backtrace(1);
4735 }
4736 var_n_assign_op->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_assign_op:nullable AAssignOp> */
4737 RET_LABEL3:(void)0;
4738 }
4739 }
4740 if (unlikely(var_n_value == NULL)) {
4741 PRINT_ERROR("Runtime error: %s", "Cast failed");
4742 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4926);
4743 show_backtrace(1);
4744 }
4745 self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_value].val = var_n_value; /* _n_value on <self:AAttrReassignExpr> */
4746 if (var_n_value == NULL) {
4747 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4748 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4927);
4749 show_backtrace(1);
4750 } else {
4751 { /* Inline parser_nodes#ANode#parent= (var_n_value,self) on <var_n_value:nullable AExpr> */
4752 if (unlikely(var_n_value == NULL)) {
4753 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4754 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
4755 show_backtrace(1);
4756 }
4757 var_n_value->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_value:nullable AExpr> */
4758 RET_LABEL4:(void)0;
4759 }
4760 }
4761 RET_LABEL:;
4762 }
4763 /* method parser_prod#AAttrReassignExpr#init_aattrreassignexpr for (self: Object, nullable AExpr, nullable TAttrid, nullable AAssignOp, nullable AExpr) */
4764 void VIRTUAL_parser_prod__AAttrReassignExpr__init_aattrreassignexpr(val* self, val* p0, val* p1, val* p2, val* p3) {
4765 parser_prod__AAttrReassignExpr__init_aattrreassignexpr(self, p0, p1, p2, p3); /* Direct call parser_prod#AAttrReassignExpr#init_aattrreassignexpr on <self:Object(AAttrReassignExpr)>*/
4766 RET_LABEL:;
4767 }
4768 /* method parser_prod#AAttrReassignExpr#replace_child for (self: AAttrReassignExpr, ANode, nullable ANode) */
4769 void parser_prod__AAttrReassignExpr__replace_child(val* self, val* p0, val* p1) {
4770 val* var_old_child /* var old_child: ANode */;
4771 val* var_new_child /* var new_child: nullable ANode */;
4772 val* var /* : AExpr */;
4773 short int var1 /* : Bool */;
4774 short int var2 /* : Bool */;
4775 val* var_other /* var other: nullable Object */;
4776 short int var4 /* : Bool */;
4777 short int var6 /* : Bool */;
4778 short int var7 /* : Bool */;
4779 int cltype;
4780 int idtype;
4781 const char* var_class_name;
4782 val* var8 /* : TAttrid */;
4783 short int var9 /* : Bool */;
4784 short int var10 /* : Bool */;
4785 short int var12 /* : Bool */;
4786 short int var14 /* : Bool */;
4787 short int var15 /* : Bool */;
4788 int cltype16;
4789 int idtype17;
4790 const char* var_class_name18;
4791 val* var19 /* : AAssignOp */;
4792 short int var20 /* : Bool */;
4793 short int var21 /* : Bool */;
4794 short int var23 /* : Bool */;
4795 short int var25 /* : Bool */;
4796 short int var26 /* : Bool */;
4797 int cltype27;
4798 int idtype28;
4799 const char* var_class_name29;
4800 val* var30 /* : AExpr */;
4801 short int var31 /* : Bool */;
4802 short int var32 /* : Bool */;
4803 short int var34 /* : Bool */;
4804 short int var36 /* : Bool */;
4805 short int var37 /* : Bool */;
4806 int cltype38;
4807 int idtype39;
4808 const char* var_class_name40;
4809 var_old_child = p0;
4810 var_new_child = p1;
4811 var = self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_expr].val; /* _n_expr on <self:AAttrReassignExpr> */
4812 if (unlikely(var == NULL)) {
4813 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
4814 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4932);
4815 show_backtrace(1);
4816 }
4817 {
4818 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
4819 var_other = var_old_child;
4820 {
4821 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
4822 var6 = var == var_other;
4823 var4 = var6;
4824 goto RET_LABEL5;
4825 RET_LABEL5:(void)0;
4826 }
4827 }
4828 var2 = var4;
4829 goto RET_LABEL3;
4830 RET_LABEL3:(void)0;
4831 }
4832 var1 = var2;
4833 }
4834 if (var1){
4835 /* <var_new_child:nullable ANode> isa AExpr */
4836 cltype = type_parser_nodes__AExpr.color;
4837 idtype = type_parser_nodes__AExpr.id;
4838 if(var_new_child == NULL) {
4839 var7 = 0;
4840 } else {
4841 if(cltype >= var_new_child->type->table_size) {
4842 var7 = 0;
4843 } else {
4844 var7 = var_new_child->type->type_table[cltype] == idtype;
4845 }
4846 }
4847 if (unlikely(!var7)) {
4848 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
4849 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
4850 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4933);
4851 show_backtrace(1);
4852 }
4853 {
4854 parser_prod__AAttrReassignExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AAttrReassignExpr#n_expr= on <self:AAttrReassignExpr>*/
4855 }
4856 goto RET_LABEL;
4857 } else {
4858 }
4859 var8 = self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_id].val; /* _n_id on <self:AAttrReassignExpr> */
4860 if (unlikely(var8 == NULL)) {
4861 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
4862 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4936);
4863 show_backtrace(1);
4864 }
4865 {
4866 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:TAttrid> */
4867 var_other = var_old_child;
4868 {
4869 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:TAttrid> */
4870 var14 = var8 == var_other;
4871 var12 = var14;
4872 goto RET_LABEL13;
4873 RET_LABEL13:(void)0;
4874 }
4875 }
4876 var10 = var12;
4877 goto RET_LABEL11;
4878 RET_LABEL11:(void)0;
4879 }
4880 var9 = var10;
4881 }
4882 if (var9){
4883 /* <var_new_child:nullable ANode> isa TAttrid */
4884 cltype16 = type_parser_nodes__TAttrid.color;
4885 idtype17 = type_parser_nodes__TAttrid.id;
4886 if(var_new_child == NULL) {
4887 var15 = 0;
4888 } else {
4889 if(cltype16 >= var_new_child->type->table_size) {
4890 var15 = 0;
4891 } else {
4892 var15 = var_new_child->type->type_table[cltype16] == idtype17;
4893 }
4894 }
4895 if (unlikely(!var15)) {
4896 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
4897 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TAttrid", var_class_name18);
4898 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4937);
4899 show_backtrace(1);
4900 }
4901 {
4902 parser_prod__AAttrReassignExpr__n_id_61d(self, var_new_child); /* Direct call parser_prod#AAttrReassignExpr#n_id= on <self:AAttrReassignExpr>*/
4903 }
4904 goto RET_LABEL;
4905 } else {
4906 }
4907 var19 = self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_assign_op].val; /* _n_assign_op on <self:AAttrReassignExpr> */
4908 if (unlikely(var19 == NULL)) {
4909 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_assign_op");
4910 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4940);
4911 show_backtrace(1);
4912 }
4913 {
4914 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:AAssignOp> */
4915 var_other = var_old_child;
4916 {
4917 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:AAssignOp> */
4918 var25 = var19 == var_other;
4919 var23 = var25;
4920 goto RET_LABEL24;
4921 RET_LABEL24:(void)0;
4922 }
4923 }
4924 var21 = var23;
4925 goto RET_LABEL22;
4926 RET_LABEL22:(void)0;
4927 }
4928 var20 = var21;
4929 }
4930 if (var20){
4931 /* <var_new_child:nullable ANode> isa AAssignOp */
4932 cltype27 = type_parser_nodes__AAssignOp.color;
4933 idtype28 = type_parser_nodes__AAssignOp.id;
4934 if(var_new_child == NULL) {
4935 var26 = 0;
4936 } else {
4937 if(cltype27 >= var_new_child->type->table_size) {
4938 var26 = 0;
4939 } else {
4940 var26 = var_new_child->type->type_table[cltype27] == idtype28;
4941 }
4942 }
4943 if (unlikely(!var26)) {
4944 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
4945 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AAssignOp", var_class_name29);
4946 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4941);
4947 show_backtrace(1);
4948 }
4949 {
4950 parser_prod__AAttrReassignExpr__n_assign_op_61d(self, var_new_child); /* Direct call parser_prod#AAttrReassignExpr#n_assign_op= on <self:AAttrReassignExpr>*/
4951 }
4952 goto RET_LABEL;
4953 } else {
4954 }
4955 var30 = self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_value].val; /* _n_value on <self:AAttrReassignExpr> */
4956 if (unlikely(var30 == NULL)) {
4957 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
4958 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4944);
4959 show_backtrace(1);
4960 }
4961 {
4962 { /* Inline kernel#Object#== (var30,var_old_child) on <var30:AExpr> */
4963 var_other = var_old_child;
4964 {
4965 { /* Inline kernel#Object#is_same_instance (var30,var_other) on <var30:AExpr> */
4966 var36 = var30 == var_other;
4967 var34 = var36;
4968 goto RET_LABEL35;
4969 RET_LABEL35:(void)0;
4970 }
4971 }
4972 var32 = var34;
4973 goto RET_LABEL33;
4974 RET_LABEL33:(void)0;
4975 }
4976 var31 = var32;
4977 }
4978 if (var31){
4979 /* <var_new_child:nullable ANode> isa AExpr */
4980 cltype38 = type_parser_nodes__AExpr.color;
4981 idtype39 = type_parser_nodes__AExpr.id;
4982 if(var_new_child == NULL) {
4983 var37 = 0;
4984 } else {
4985 if(cltype38 >= var_new_child->type->table_size) {
4986 var37 = 0;
4987 } else {
4988 var37 = var_new_child->type->type_table[cltype38] == idtype39;
4989 }
4990 }
4991 if (unlikely(!var37)) {
4992 var_class_name40 = var_new_child == NULL ? "null" : var_new_child->type->name;
4993 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name40);
4994 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4945);
4995 show_backtrace(1);
4996 }
4997 {
4998 parser_prod__AAttrReassignExpr__n_value_61d(self, var_new_child); /* Direct call parser_prod#AAttrReassignExpr#n_value= on <self:AAttrReassignExpr>*/
4999 }
5000 goto RET_LABEL;
5001 } else {
5002 }
5003 RET_LABEL:;
5004 }
5005 /* method parser_prod#AAttrReassignExpr#replace_child for (self: Object, ANode, nullable ANode) */
5006 void VIRTUAL_parser_prod__AAttrReassignExpr__replace_child(val* self, val* p0, val* p1) {
5007 parser_prod__AAttrReassignExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AAttrReassignExpr#replace_child on <self:Object(AAttrReassignExpr)>*/
5008 RET_LABEL:;
5009 }
5010 /* method parser_prod#AAttrReassignExpr#n_expr= for (self: AAttrReassignExpr, AExpr) */
5011 void parser_prod__AAttrReassignExpr__n_expr_61d(val* self, val* p0) {
5012 val* var_node /* var node: AExpr */;
5013 var_node = p0;
5014 self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_expr].val = var_node; /* _n_expr on <self:AAttrReassignExpr> */
5015 {
5016 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
5017 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
5018 RET_LABEL1:(void)0;
5019 }
5020 }
5021 RET_LABEL:;
5022 }
5023 /* method parser_prod#AAttrReassignExpr#n_expr= for (self: Object, AExpr) */
5024 void VIRTUAL_parser_prod__AAttrReassignExpr__n_expr_61d(val* self, val* p0) {
5025 parser_prod__AAttrReassignExpr__n_expr_61d(self, p0); /* Direct call parser_prod#AAttrReassignExpr#n_expr= on <self:Object(AAttrReassignExpr)>*/
5026 RET_LABEL:;
5027 }
5028 /* method parser_prod#AAttrReassignExpr#n_id= for (self: AAttrReassignExpr, TAttrid) */
5029 void parser_prod__AAttrReassignExpr__n_id_61d(val* self, val* p0) {
5030 val* var_node /* var node: TAttrid */;
5031 var_node = p0;
5032 self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_id].val = var_node; /* _n_id on <self:AAttrReassignExpr> */
5033 {
5034 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TAttrid> */
5035 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TAttrid> */
5036 RET_LABEL1:(void)0;
5037 }
5038 }
5039 RET_LABEL:;
5040 }
5041 /* method parser_prod#AAttrReassignExpr#n_id= for (self: Object, TAttrid) */
5042 void VIRTUAL_parser_prod__AAttrReassignExpr__n_id_61d(val* self, val* p0) {
5043 parser_prod__AAttrReassignExpr__n_id_61d(self, p0); /* Direct call parser_prod#AAttrReassignExpr#n_id= on <self:Object(AAttrReassignExpr)>*/
5044 RET_LABEL:;
5045 }
5046 /* method parser_prod#AAttrReassignExpr#n_assign_op= for (self: AAttrReassignExpr, AAssignOp) */
5047 void parser_prod__AAttrReassignExpr__n_assign_op_61d(val* self, val* p0) {
5048 val* var_node /* var node: AAssignOp */;
5049 var_node = p0;
5050 self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_assign_op].val = var_node; /* _n_assign_op on <self:AAttrReassignExpr> */
5051 {
5052 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AAssignOp> */
5053 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AAssignOp> */
5054 RET_LABEL1:(void)0;
5055 }
5056 }
5057 RET_LABEL:;
5058 }
5059 /* method parser_prod#AAttrReassignExpr#n_assign_op= for (self: Object, AAssignOp) */
5060 void VIRTUAL_parser_prod__AAttrReassignExpr__n_assign_op_61d(val* self, val* p0) {
5061 parser_prod__AAttrReassignExpr__n_assign_op_61d(self, p0); /* Direct call parser_prod#AAttrReassignExpr#n_assign_op= on <self:Object(AAttrReassignExpr)>*/
5062 RET_LABEL:;
5063 }
5064 /* method parser_prod#AAttrReassignExpr#n_value= for (self: AAttrReassignExpr, AExpr) */
5065 void parser_prod__AAttrReassignExpr__n_value_61d(val* self, val* p0) {
5066 val* var_node /* var node: AExpr */;
5067 var_node = p0;
5068 self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_value].val = var_node; /* _n_value on <self:AAttrReassignExpr> */
5069 {
5070 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
5071 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
5072 RET_LABEL1:(void)0;
5073 }
5074 }
5075 RET_LABEL:;
5076 }
5077 /* method parser_prod#AAttrReassignExpr#n_value= for (self: Object, AExpr) */
5078 void VIRTUAL_parser_prod__AAttrReassignExpr__n_value_61d(val* self, val* p0) {
5079 parser_prod__AAttrReassignExpr__n_value_61d(self, p0); /* Direct call parser_prod#AAttrReassignExpr#n_value= on <self:Object(AAttrReassignExpr)>*/
5080 RET_LABEL:;
5081 }
5082 /* method parser_prod#AAttrReassignExpr#visit_all for (self: AAttrReassignExpr, Visitor) */
5083 void parser_prod__AAttrReassignExpr__visit_all(val* self, val* p0) {
5084 val* var_v /* var v: Visitor */;
5085 val* var /* : AExpr */;
5086 val* var1 /* : TAttrid */;
5087 val* var2 /* : AAssignOp */;
5088 val* var3 /* : AExpr */;
5089 var_v = p0;
5090 var = self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_expr].val; /* _n_expr on <self:AAttrReassignExpr> */
5091 if (unlikely(var == NULL)) {
5092 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
5093 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4974);
5094 show_backtrace(1);
5095 }
5096 {
5097 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
5098 }
5099 var1 = self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_id].val; /* _n_id on <self:AAttrReassignExpr> */
5100 if (unlikely(var1 == NULL)) {
5101 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
5102 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4975);
5103 show_backtrace(1);
5104 }
5105 {
5106 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
5107 }
5108 var2 = self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_assign_op].val; /* _n_assign_op on <self:AAttrReassignExpr> */
5109 if (unlikely(var2 == NULL)) {
5110 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_assign_op");
5111 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4976);
5112 show_backtrace(1);
5113 }
5114 {
5115 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
5116 }
5117 var3 = self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_value].val; /* _n_value on <self:AAttrReassignExpr> */
5118 if (unlikely(var3 == NULL)) {
5119 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
5120 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4977);
5121 show_backtrace(1);
5122 }
5123 {
5124 parser_nodes__Visitor__enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
5125 }
5126 RET_LABEL:;
5127 }
5128 /* method parser_prod#AAttrReassignExpr#visit_all for (self: Object, Visitor) */
5129 void VIRTUAL_parser_prod__AAttrReassignExpr__visit_all(val* self, val* p0) {
5130 parser_prod__AAttrReassignExpr__visit_all(self, p0); /* Direct call parser_prod#AAttrReassignExpr#visit_all on <self:Object(AAttrReassignExpr)>*/
5131 RET_LABEL:;
5132 }
5133 /* method parser_prod#ACallExpr#init_acallexpr for (self: ACallExpr, nullable AExpr, nullable TId, nullable AExprs) */
5134 void parser_prod__ACallExpr__init_acallexpr(val* self, val* p0, val* p1, val* p2) {
5135 val* var_n_expr /* var n_expr: nullable AExpr */;
5136 val* var_n_id /* var n_id: nullable TId */;
5137 val* var_n_args /* var n_args: nullable AExprs */;
5138 var_n_expr = p0;
5139 var_n_id = p1;
5140 var_n_args = p2;
5141 if (unlikely(var_n_expr == NULL)) {
5142 PRINT_ERROR("Runtime error: %s", "Cast failed");
5143 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4987);
5144 show_backtrace(1);
5145 }
5146 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:ACallExpr> */
5147 if (var_n_expr == NULL) {
5148 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5149 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4988);
5150 show_backtrace(1);
5151 } else {
5152 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
5153 if (unlikely(var_n_expr == NULL)) {
5154 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5155 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
5156 show_backtrace(1);
5157 }
5158 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
5159 RET_LABEL1:(void)0;
5160 }
5161 }
5162 if (unlikely(var_n_id == NULL)) {
5163 PRINT_ERROR("Runtime error: %s", "Cast failed");
5164 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4989);
5165 show_backtrace(1);
5166 }
5167 self->attrs[COLOR_parser_nodes__ACallFormExpr___n_id].val = var_n_id; /* _n_id on <self:ACallExpr> */
5168 if (var_n_id == NULL) {
5169 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5170 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4990);
5171 show_backtrace(1);
5172 } else {
5173 { /* Inline parser_nodes#ANode#parent= (var_n_id,self) on <var_n_id:nullable TId> */
5174 if (unlikely(var_n_id == NULL)) {
5175 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5176 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
5177 show_backtrace(1);
5178 }
5179 var_n_id->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_id:nullable TId> */
5180 RET_LABEL2:(void)0;
5181 }
5182 }
5183 if (unlikely(var_n_args == NULL)) {
5184 PRINT_ERROR("Runtime error: %s", "Cast failed");
5185 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4991);
5186 show_backtrace(1);
5187 }
5188 self->attrs[COLOR_parser_nodes__ACallFormExpr___n_args].val = var_n_args; /* _n_args on <self:ACallExpr> */
5189 if (var_n_args == NULL) {
5190 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5191 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4992);
5192 show_backtrace(1);
5193 } else {
5194 { /* Inline parser_nodes#ANode#parent= (var_n_args,self) on <var_n_args:nullable AExprs> */
5195 if (unlikely(var_n_args == NULL)) {
5196 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5197 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
5198 show_backtrace(1);
5199 }
5200 var_n_args->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_args:nullable AExprs> */
5201 RET_LABEL3:(void)0;
5202 }
5203 }
5204 RET_LABEL:;
5205 }
5206 /* method parser_prod#ACallExpr#init_acallexpr for (self: Object, nullable AExpr, nullable TId, nullable AExprs) */
5207 void VIRTUAL_parser_prod__ACallExpr__init_acallexpr(val* self, val* p0, val* p1, val* p2) {
5208 parser_prod__ACallExpr__init_acallexpr(self, p0, p1, p2); /* Direct call parser_prod#ACallExpr#init_acallexpr on <self:Object(ACallExpr)>*/
5209 RET_LABEL:;
5210 }
5211 /* method parser_prod#ACallExpr#replace_child for (self: ACallExpr, ANode, nullable ANode) */
5212 void parser_prod__ACallExpr__replace_child(val* self, val* p0, val* p1) {
5213 val* var_old_child /* var old_child: ANode */;
5214 val* var_new_child /* var new_child: nullable ANode */;
5215 val* var /* : AExpr */;
5216 short int var1 /* : Bool */;
5217 short int var2 /* : Bool */;
5218 val* var_other /* var other: nullable Object */;
5219 short int var4 /* : Bool */;
5220 short int var6 /* : Bool */;
5221 short int var7 /* : Bool */;
5222 int cltype;
5223 int idtype;
5224 const char* var_class_name;
5225 val* var8 /* : TId */;
5226 short int var9 /* : Bool */;
5227 short int var10 /* : Bool */;
5228 short int var12 /* : Bool */;
5229 short int var14 /* : Bool */;
5230 short int var15 /* : Bool */;
5231 int cltype16;
5232 int idtype17;
5233 const char* var_class_name18;
5234 val* var19 /* : AExprs */;
5235 short int var20 /* : Bool */;
5236 short int var21 /* : Bool */;
5237 short int var23 /* : Bool */;
5238 short int var25 /* : Bool */;
5239 short int var26 /* : Bool */;
5240 int cltype27;
5241 int idtype28;
5242 const char* var_class_name29;
5243 var_old_child = p0;
5244 var_new_child = p1;
5245 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ACallExpr> */
5246 if (unlikely(var == NULL)) {
5247 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
5248 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4997);
5249 show_backtrace(1);
5250 }
5251 {
5252 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
5253 var_other = var_old_child;
5254 {
5255 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
5256 var6 = var == var_other;
5257 var4 = var6;
5258 goto RET_LABEL5;
5259 RET_LABEL5:(void)0;
5260 }
5261 }
5262 var2 = var4;
5263 goto RET_LABEL3;
5264 RET_LABEL3:(void)0;
5265 }
5266 var1 = var2;
5267 }
5268 if (var1){
5269 /* <var_new_child:nullable ANode> isa AExpr */
5270 cltype = type_parser_nodes__AExpr.color;
5271 idtype = type_parser_nodes__AExpr.id;
5272 if(var_new_child == NULL) {
5273 var7 = 0;
5274 } else {
5275 if(cltype >= var_new_child->type->table_size) {
5276 var7 = 0;
5277 } else {
5278 var7 = var_new_child->type->type_table[cltype] == idtype;
5279 }
5280 }
5281 if (unlikely(!var7)) {
5282 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
5283 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
5284 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4998);
5285 show_backtrace(1);
5286 }
5287 {
5288 parser_prod__ACallExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#ACallExpr#n_expr= on <self:ACallExpr>*/
5289 }
5290 goto RET_LABEL;
5291 } else {
5292 }
5293 var8 = self->attrs[COLOR_parser_nodes__ACallFormExpr___n_id].val; /* _n_id on <self:ACallExpr> */
5294 if (unlikely(var8 == NULL)) {
5295 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
5296 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5001);
5297 show_backtrace(1);
5298 }
5299 {
5300 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:TId> */
5301 var_other = var_old_child;
5302 {
5303 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:TId> */
5304 var14 = var8 == var_other;
5305 var12 = var14;
5306 goto RET_LABEL13;
5307 RET_LABEL13:(void)0;
5308 }
5309 }
5310 var10 = var12;
5311 goto RET_LABEL11;
5312 RET_LABEL11:(void)0;
5313 }
5314 var9 = var10;
5315 }
5316 if (var9){
5317 /* <var_new_child:nullable ANode> isa TId */
5318 cltype16 = type_parser_nodes__TId.color;
5319 idtype17 = type_parser_nodes__TId.id;
5320 if(var_new_child == NULL) {
5321 var15 = 0;
5322 } else {
5323 if(cltype16 >= var_new_child->type->table_size) {
5324 var15 = 0;
5325 } else {
5326 var15 = var_new_child->type->type_table[cltype16] == idtype17;
5327 }
5328 }
5329 if (unlikely(!var15)) {
5330 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
5331 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TId", var_class_name18);
5332 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5002);
5333 show_backtrace(1);
5334 }
5335 {
5336 parser_prod__ACallExpr__n_id_61d(self, var_new_child); /* Direct call parser_prod#ACallExpr#n_id= on <self:ACallExpr>*/
5337 }
5338 goto RET_LABEL;
5339 } else {
5340 }
5341 var19 = self->attrs[COLOR_parser_nodes__ACallFormExpr___n_args].val; /* _n_args on <self:ACallExpr> */
5342 if (unlikely(var19 == NULL)) {
5343 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
5344 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5005);
5345 show_backtrace(1);
5346 }
5347 {
5348 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:AExprs> */
5349 var_other = var_old_child;
5350 {
5351 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:AExprs> */
5352 var25 = var19 == var_other;
5353 var23 = var25;
5354 goto RET_LABEL24;
5355 RET_LABEL24:(void)0;
5356 }
5357 }
5358 var21 = var23;
5359 goto RET_LABEL22;
5360 RET_LABEL22:(void)0;
5361 }
5362 var20 = var21;
5363 }
5364 if (var20){
5365 /* <var_new_child:nullable ANode> isa AExprs */
5366 cltype27 = type_parser_nodes__AExprs.color;
5367 idtype28 = type_parser_nodes__AExprs.id;
5368 if(var_new_child == NULL) {
5369 var26 = 0;
5370 } else {
5371 if(cltype27 >= var_new_child->type->table_size) {
5372 var26 = 0;
5373 } else {
5374 var26 = var_new_child->type->type_table[cltype27] == idtype28;
5375 }
5376 }
5377 if (unlikely(!var26)) {
5378 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
5379 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExprs", var_class_name29);
5380 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5006);
5381 show_backtrace(1);
5382 }
5383 {
5384 parser_prod__ACallExpr__n_args_61d(self, var_new_child); /* Direct call parser_prod#ACallExpr#n_args= on <self:ACallExpr>*/
5385 }
5386 goto RET_LABEL;
5387 } else {
5388 }
5389 RET_LABEL:;
5390 }
5391 /* method parser_prod#ACallExpr#replace_child for (self: Object, ANode, nullable ANode) */
5392 void VIRTUAL_parser_prod__ACallExpr__replace_child(val* self, val* p0, val* p1) {
5393 parser_prod__ACallExpr__replace_child(self, p0, p1); /* Direct call parser_prod#ACallExpr#replace_child on <self:Object(ACallExpr)>*/
5394 RET_LABEL:;
5395 }
5396 /* method parser_prod#ACallExpr#n_expr= for (self: ACallExpr, AExpr) */
5397 void parser_prod__ACallExpr__n_expr_61d(val* self, val* p0) {
5398 val* var_node /* var node: AExpr */;
5399 var_node = p0;
5400 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:ACallExpr> */
5401 {
5402 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
5403 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
5404 RET_LABEL1:(void)0;
5405 }
5406 }
5407 RET_LABEL:;
5408 }
5409 /* method parser_prod#ACallExpr#n_expr= for (self: Object, AExpr) */
5410 void VIRTUAL_parser_prod__ACallExpr__n_expr_61d(val* self, val* p0) {
5411 parser_prod__ACallExpr__n_expr_61d(self, p0); /* Direct call parser_prod#ACallExpr#n_expr= on <self:Object(ACallExpr)>*/
5412 RET_LABEL:;
5413 }
5414 /* method parser_prod#ACallExpr#n_id= for (self: ACallExpr, TId) */
5415 void parser_prod__ACallExpr__n_id_61d(val* self, val* p0) {
5416 val* var_node /* var node: TId */;
5417 var_node = p0;
5418 self->attrs[COLOR_parser_nodes__ACallFormExpr___n_id].val = var_node; /* _n_id on <self:ACallExpr> */
5419 {
5420 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TId> */
5421 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TId> */
5422 RET_LABEL1:(void)0;
5423 }
5424 }
5425 RET_LABEL:;
5426 }
5427 /* method parser_prod#ACallExpr#n_id= for (self: Object, TId) */
5428 void VIRTUAL_parser_prod__ACallExpr__n_id_61d(val* self, val* p0) {
5429 parser_prod__ACallExpr__n_id_61d(self, p0); /* Direct call parser_prod#ACallExpr#n_id= on <self:Object(ACallExpr)>*/
5430 RET_LABEL:;
5431 }
5432 /* method parser_prod#ACallExpr#n_args= for (self: ACallExpr, AExprs) */
5433 void parser_prod__ACallExpr__n_args_61d(val* self, val* p0) {
5434 val* var_node /* var node: AExprs */;
5435 var_node = p0;
5436 self->attrs[COLOR_parser_nodes__ACallFormExpr___n_args].val = var_node; /* _n_args on <self:ACallExpr> */
5437 {
5438 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExprs> */
5439 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExprs> */
5440 RET_LABEL1:(void)0;
5441 }
5442 }
5443 RET_LABEL:;
5444 }
5445 /* method parser_prod#ACallExpr#n_args= for (self: Object, AExprs) */
5446 void VIRTUAL_parser_prod__ACallExpr__n_args_61d(val* self, val* p0) {
5447 parser_prod__ACallExpr__n_args_61d(self, p0); /* Direct call parser_prod#ACallExpr#n_args= on <self:Object(ACallExpr)>*/
5448 RET_LABEL:;
5449 }
5450 /* method parser_prod#ACallExpr#visit_all for (self: ACallExpr, Visitor) */
5451 void parser_prod__ACallExpr__visit_all(val* self, val* p0) {
5452 val* var_v /* var v: Visitor */;
5453 val* var /* : AExpr */;
5454 val* var1 /* : TId */;
5455 val* var2 /* : AExprs */;
5456 var_v = p0;
5457 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ACallExpr> */
5458 if (unlikely(var == NULL)) {
5459 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
5460 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5030);
5461 show_backtrace(1);
5462 }
5463 {
5464 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
5465 }
5466 var1 = self->attrs[COLOR_parser_nodes__ACallFormExpr___n_id].val; /* _n_id on <self:ACallExpr> */
5467 if (unlikely(var1 == NULL)) {
5468 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
5469 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5031);
5470 show_backtrace(1);
5471 }
5472 {
5473 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
5474 }
5475 var2 = self->attrs[COLOR_parser_nodes__ACallFormExpr___n_args].val; /* _n_args on <self:ACallExpr> */
5476 if (unlikely(var2 == NULL)) {
5477 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
5478 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5032);
5479 show_backtrace(1);
5480 }
5481 {
5482 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
5483 }
5484 RET_LABEL:;
5485 }
5486 /* method parser_prod#ACallExpr#visit_all for (self: Object, Visitor) */
5487 void VIRTUAL_parser_prod__ACallExpr__visit_all(val* self, val* p0) {
5488 parser_prod__ACallExpr__visit_all(self, p0); /* Direct call parser_prod#ACallExpr#visit_all on <self:Object(ACallExpr)>*/
5489 RET_LABEL:;
5490 }
5491 /* method parser_prod#ACallAssignExpr#init_acallassignexpr for (self: ACallAssignExpr, nullable AExpr, nullable TId, nullable AExprs, nullable TAssign, nullable AExpr) */
5492 void parser_prod__ACallAssignExpr__init_acallassignexpr(val* self, val* p0, val* p1, val* p2, val* p3, val* p4) {
5493 val* var_n_expr /* var n_expr: nullable AExpr */;
5494 val* var_n_id /* var n_id: nullable TId */;
5495 val* var_n_args /* var n_args: nullable AExprs */;
5496 val* var_n_assign /* var n_assign: nullable TAssign */;
5497 val* var_n_value /* var n_value: nullable AExpr */;
5498 var_n_expr = p0;
5499 var_n_id = p1;
5500 var_n_args = p2;
5501 var_n_assign = p3;
5502 var_n_value = p4;
5503 if (unlikely(var_n_expr == NULL)) {
5504 PRINT_ERROR("Runtime error: %s", "Cast failed");
5505 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5044);
5506 show_backtrace(1);
5507 }
5508 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:ACallAssignExpr> */
5509 if (var_n_expr == NULL) {
5510 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5511 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5045);
5512 show_backtrace(1);
5513 } else {
5514 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
5515 if (unlikely(var_n_expr == NULL)) {
5516 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5517 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
5518 show_backtrace(1);
5519 }
5520 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
5521 RET_LABEL1:(void)0;
5522 }
5523 }
5524 if (unlikely(var_n_id == NULL)) {
5525 PRINT_ERROR("Runtime error: %s", "Cast failed");
5526 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5046);
5527 show_backtrace(1);
5528 }
5529 self->attrs[COLOR_parser_nodes__ACallFormExpr___n_id].val = var_n_id; /* _n_id on <self:ACallAssignExpr> */
5530 if (var_n_id == NULL) {
5531 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5532 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5047);
5533 show_backtrace(1);
5534 } else {
5535 { /* Inline parser_nodes#ANode#parent= (var_n_id,self) on <var_n_id:nullable TId> */
5536 if (unlikely(var_n_id == NULL)) {
5537 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5538 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
5539 show_backtrace(1);
5540 }
5541 var_n_id->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_id:nullable TId> */
5542 RET_LABEL2:(void)0;
5543 }
5544 }
5545 if (unlikely(var_n_args == NULL)) {
5546 PRINT_ERROR("Runtime error: %s", "Cast failed");
5547 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5048);
5548 show_backtrace(1);
5549 }
5550 self->attrs[COLOR_parser_nodes__ACallFormExpr___n_args].val = var_n_args; /* _n_args on <self:ACallAssignExpr> */
5551 if (var_n_args == NULL) {
5552 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5553 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5049);
5554 show_backtrace(1);
5555 } else {
5556 { /* Inline parser_nodes#ANode#parent= (var_n_args,self) on <var_n_args:nullable AExprs> */
5557 if (unlikely(var_n_args == NULL)) {
5558 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5559 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
5560 show_backtrace(1);
5561 }
5562 var_n_args->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_args:nullable AExprs> */
5563 RET_LABEL3:(void)0;
5564 }
5565 }
5566 if (unlikely(var_n_assign == NULL)) {
5567 PRINT_ERROR("Runtime error: %s", "Cast failed");
5568 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5050);
5569 show_backtrace(1);
5570 }
5571 self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_assign].val = var_n_assign; /* _n_assign on <self:ACallAssignExpr> */
5572 if (var_n_assign == NULL) {
5573 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5574 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5051);
5575 show_backtrace(1);
5576 } else {
5577 { /* Inline parser_nodes#ANode#parent= (var_n_assign,self) on <var_n_assign:nullable TAssign> */
5578 if (unlikely(var_n_assign == NULL)) {
5579 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5580 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
5581 show_backtrace(1);
5582 }
5583 var_n_assign->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_assign:nullable TAssign> */
5584 RET_LABEL4:(void)0;
5585 }
5586 }
5587 if (unlikely(var_n_value == NULL)) {
5588 PRINT_ERROR("Runtime error: %s", "Cast failed");
5589 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5052);
5590 show_backtrace(1);
5591 }
5592 self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_value].val = var_n_value; /* _n_value on <self:ACallAssignExpr> */
5593 if (var_n_value == NULL) {
5594 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5595 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5053);
5596 show_backtrace(1);
5597 } else {
5598 { /* Inline parser_nodes#ANode#parent= (var_n_value,self) on <var_n_value:nullable AExpr> */
5599 if (unlikely(var_n_value == NULL)) {
5600 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5601 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
5602 show_backtrace(1);
5603 }
5604 var_n_value->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_value:nullable AExpr> */
5605 RET_LABEL5:(void)0;
5606 }
5607 }
5608 RET_LABEL:;
5609 }
5610 /* method parser_prod#ACallAssignExpr#init_acallassignexpr for (self: Object, nullable AExpr, nullable TId, nullable AExprs, nullable TAssign, nullable AExpr) */
5611 void VIRTUAL_parser_prod__ACallAssignExpr__init_acallassignexpr(val* self, val* p0, val* p1, val* p2, val* p3, val* p4) {
5612 parser_prod__ACallAssignExpr__init_acallassignexpr(self, p0, p1, p2, p3, p4); /* Direct call parser_prod#ACallAssignExpr#init_acallassignexpr on <self:Object(ACallAssignExpr)>*/
5613 RET_LABEL:;
5614 }
5615 /* method parser_prod#ACallAssignExpr#replace_child for (self: ACallAssignExpr, ANode, nullable ANode) */
5616 void parser_prod__ACallAssignExpr__replace_child(val* self, val* p0, val* p1) {
5617 val* var_old_child /* var old_child: ANode */;
5618 val* var_new_child /* var new_child: nullable ANode */;
5619 val* var /* : AExpr */;
5620 short int var1 /* : Bool */;
5621 short int var2 /* : Bool */;
5622 val* var_other /* var other: nullable Object */;
5623 short int var4 /* : Bool */;
5624 short int var6 /* : Bool */;
5625 short int var7 /* : Bool */;
5626 int cltype;
5627 int idtype;
5628 const char* var_class_name;
5629 val* var8 /* : TId */;
5630 short int var9 /* : Bool */;
5631 short int var10 /* : Bool */;
5632 short int var12 /* : Bool */;
5633 short int var14 /* : Bool */;
5634 short int var15 /* : Bool */;
5635 int cltype16;
5636 int idtype17;
5637 const char* var_class_name18;
5638 val* var19 /* : AExprs */;
5639 short int var20 /* : Bool */;
5640 short int var21 /* : Bool */;
5641 short int var23 /* : Bool */;
5642 short int var25 /* : Bool */;
5643 short int var26 /* : Bool */;
5644 int cltype27;
5645 int idtype28;
5646 const char* var_class_name29;
5647 val* var30 /* : TAssign */;
5648 short int var31 /* : Bool */;
5649 short int var32 /* : Bool */;
5650 short int var34 /* : Bool */;
5651 short int var36 /* : Bool */;
5652 short int var37 /* : Bool */;
5653 int cltype38;
5654 int idtype39;
5655 const char* var_class_name40;
5656 val* var41 /* : AExpr */;
5657 short int var42 /* : Bool */;
5658 short int var43 /* : Bool */;
5659 short int var45 /* : Bool */;
5660 short int var47 /* : Bool */;
5661 short int var48 /* : Bool */;
5662 int cltype49;
5663 int idtype50;
5664 const char* var_class_name51;
5665 var_old_child = p0;
5666 var_new_child = p1;
5667 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ACallAssignExpr> */
5668 if (unlikely(var == NULL)) {
5669 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
5670 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5058);
5671 show_backtrace(1);
5672 }
5673 {
5674 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
5675 var_other = var_old_child;
5676 {
5677 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
5678 var6 = var == var_other;
5679 var4 = var6;
5680 goto RET_LABEL5;
5681 RET_LABEL5:(void)0;
5682 }
5683 }
5684 var2 = var4;
5685 goto RET_LABEL3;
5686 RET_LABEL3:(void)0;
5687 }
5688 var1 = var2;
5689 }
5690 if (var1){
5691 /* <var_new_child:nullable ANode> isa AExpr */
5692 cltype = type_parser_nodes__AExpr.color;
5693 idtype = type_parser_nodes__AExpr.id;
5694 if(var_new_child == NULL) {
5695 var7 = 0;
5696 } else {
5697 if(cltype >= var_new_child->type->table_size) {
5698 var7 = 0;
5699 } else {
5700 var7 = var_new_child->type->type_table[cltype] == idtype;
5701 }
5702 }
5703 if (unlikely(!var7)) {
5704 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
5705 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
5706 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5059);
5707 show_backtrace(1);
5708 }
5709 {
5710 parser_prod__ACallAssignExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#ACallAssignExpr#n_expr= on <self:ACallAssignExpr>*/
5711 }
5712 goto RET_LABEL;
5713 } else {
5714 }
5715 var8 = self->attrs[COLOR_parser_nodes__ACallFormExpr___n_id].val; /* _n_id on <self:ACallAssignExpr> */
5716 if (unlikely(var8 == NULL)) {
5717 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
5718 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5062);
5719 show_backtrace(1);
5720 }
5721 {
5722 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:TId> */
5723 var_other = var_old_child;
5724 {
5725 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:TId> */
5726 var14 = var8 == var_other;
5727 var12 = var14;
5728 goto RET_LABEL13;
5729 RET_LABEL13:(void)0;
5730 }
5731 }
5732 var10 = var12;
5733 goto RET_LABEL11;
5734 RET_LABEL11:(void)0;
5735 }
5736 var9 = var10;
5737 }
5738 if (var9){
5739 /* <var_new_child:nullable ANode> isa TId */
5740 cltype16 = type_parser_nodes__TId.color;
5741 idtype17 = type_parser_nodes__TId.id;
5742 if(var_new_child == NULL) {
5743 var15 = 0;
5744 } else {
5745 if(cltype16 >= var_new_child->type->table_size) {
5746 var15 = 0;
5747 } else {
5748 var15 = var_new_child->type->type_table[cltype16] == idtype17;
5749 }
5750 }
5751 if (unlikely(!var15)) {
5752 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
5753 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TId", var_class_name18);
5754 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5063);
5755 show_backtrace(1);
5756 }
5757 {
5758 parser_prod__ACallAssignExpr__n_id_61d(self, var_new_child); /* Direct call parser_prod#ACallAssignExpr#n_id= on <self:ACallAssignExpr>*/
5759 }
5760 goto RET_LABEL;
5761 } else {
5762 }
5763 var19 = self->attrs[COLOR_parser_nodes__ACallFormExpr___n_args].val; /* _n_args on <self:ACallAssignExpr> */
5764 if (unlikely(var19 == NULL)) {
5765 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
5766 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5066);
5767 show_backtrace(1);
5768 }
5769 {
5770 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:AExprs> */
5771 var_other = var_old_child;
5772 {
5773 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:AExprs> */
5774 var25 = var19 == var_other;
5775 var23 = var25;
5776 goto RET_LABEL24;
5777 RET_LABEL24:(void)0;
5778 }
5779 }
5780 var21 = var23;
5781 goto RET_LABEL22;
5782 RET_LABEL22:(void)0;
5783 }
5784 var20 = var21;
5785 }
5786 if (var20){
5787 /* <var_new_child:nullable ANode> isa AExprs */
5788 cltype27 = type_parser_nodes__AExprs.color;
5789 idtype28 = type_parser_nodes__AExprs.id;
5790 if(var_new_child == NULL) {
5791 var26 = 0;
5792 } else {
5793 if(cltype27 >= var_new_child->type->table_size) {
5794 var26 = 0;
5795 } else {
5796 var26 = var_new_child->type->type_table[cltype27] == idtype28;
5797 }
5798 }
5799 if (unlikely(!var26)) {
5800 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
5801 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExprs", var_class_name29);
5802 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5067);
5803 show_backtrace(1);
5804 }
5805 {
5806 parser_prod__ACallAssignExpr__n_args_61d(self, var_new_child); /* Direct call parser_prod#ACallAssignExpr#n_args= on <self:ACallAssignExpr>*/
5807 }
5808 goto RET_LABEL;
5809 } else {
5810 }
5811 var30 = self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_assign].val; /* _n_assign on <self:ACallAssignExpr> */
5812 if (unlikely(var30 == NULL)) {
5813 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_assign");
5814 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5070);
5815 show_backtrace(1);
5816 }
5817 {
5818 { /* Inline kernel#Object#== (var30,var_old_child) on <var30:TAssign> */
5819 var_other = var_old_child;
5820 {
5821 { /* Inline kernel#Object#is_same_instance (var30,var_other) on <var30:TAssign> */
5822 var36 = var30 == var_other;
5823 var34 = var36;
5824 goto RET_LABEL35;
5825 RET_LABEL35:(void)0;
5826 }
5827 }
5828 var32 = var34;
5829 goto RET_LABEL33;
5830 RET_LABEL33:(void)0;
5831 }
5832 var31 = var32;
5833 }
5834 if (var31){
5835 /* <var_new_child:nullable ANode> isa TAssign */
5836 cltype38 = type_parser_nodes__TAssign.color;
5837 idtype39 = type_parser_nodes__TAssign.id;
5838 if(var_new_child == NULL) {
5839 var37 = 0;
5840 } else {
5841 if(cltype38 >= var_new_child->type->table_size) {
5842 var37 = 0;
5843 } else {
5844 var37 = var_new_child->type->type_table[cltype38] == idtype39;
5845 }
5846 }
5847 if (unlikely(!var37)) {
5848 var_class_name40 = var_new_child == NULL ? "null" : var_new_child->type->name;
5849 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TAssign", var_class_name40);
5850 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5071);
5851 show_backtrace(1);
5852 }
5853 {
5854 parser_prod__ACallAssignExpr__n_assign_61d(self, var_new_child); /* Direct call parser_prod#ACallAssignExpr#n_assign= on <self:ACallAssignExpr>*/
5855 }
5856 goto RET_LABEL;
5857 } else {
5858 }
5859 var41 = self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_value].val; /* _n_value on <self:ACallAssignExpr> */
5860 if (unlikely(var41 == NULL)) {
5861 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
5862 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5074);
5863 show_backtrace(1);
5864 }
5865 {
5866 { /* Inline kernel#Object#== (var41,var_old_child) on <var41:AExpr> */
5867 var_other = var_old_child;
5868 {
5869 { /* Inline kernel#Object#is_same_instance (var41,var_other) on <var41:AExpr> */
5870 var47 = var41 == var_other;
5871 var45 = var47;
5872 goto RET_LABEL46;
5873 RET_LABEL46:(void)0;
5874 }
5875 }
5876 var43 = var45;
5877 goto RET_LABEL44;
5878 RET_LABEL44:(void)0;
5879 }
5880 var42 = var43;
5881 }
5882 if (var42){
5883 /* <var_new_child:nullable ANode> isa AExpr */
5884 cltype49 = type_parser_nodes__AExpr.color;
5885 idtype50 = type_parser_nodes__AExpr.id;
5886 if(var_new_child == NULL) {
5887 var48 = 0;
5888 } else {
5889 if(cltype49 >= var_new_child->type->table_size) {
5890 var48 = 0;
5891 } else {
5892 var48 = var_new_child->type->type_table[cltype49] == idtype50;
5893 }
5894 }
5895 if (unlikely(!var48)) {
5896 var_class_name51 = var_new_child == NULL ? "null" : var_new_child->type->name;
5897 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name51);
5898 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5075);
5899 show_backtrace(1);
5900 }
5901 {
5902 parser_prod__ACallAssignExpr__n_value_61d(self, var_new_child); /* Direct call parser_prod#ACallAssignExpr#n_value= on <self:ACallAssignExpr>*/
5903 }
5904 goto RET_LABEL;
5905 } else {
5906 }
5907 RET_LABEL:;
5908 }
5909 /* method parser_prod#ACallAssignExpr#replace_child for (self: Object, ANode, nullable ANode) */
5910 void VIRTUAL_parser_prod__ACallAssignExpr__replace_child(val* self, val* p0, val* p1) {
5911 parser_prod__ACallAssignExpr__replace_child(self, p0, p1); /* Direct call parser_prod#ACallAssignExpr#replace_child on <self:Object(ACallAssignExpr)>*/
5912 RET_LABEL:;
5913 }
5914 /* method parser_prod#ACallAssignExpr#n_expr= for (self: ACallAssignExpr, AExpr) */
5915 void parser_prod__ACallAssignExpr__n_expr_61d(val* self, val* p0) {
5916 val* var_node /* var node: AExpr */;
5917 var_node = p0;
5918 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:ACallAssignExpr> */
5919 {
5920 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
5921 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
5922 RET_LABEL1:(void)0;
5923 }
5924 }
5925 RET_LABEL:;
5926 }
5927 /* method parser_prod#ACallAssignExpr#n_expr= for (self: Object, AExpr) */
5928 void VIRTUAL_parser_prod__ACallAssignExpr__n_expr_61d(val* self, val* p0) {
5929 parser_prod__ACallAssignExpr__n_expr_61d(self, p0); /* Direct call parser_prod#ACallAssignExpr#n_expr= on <self:Object(ACallAssignExpr)>*/
5930 RET_LABEL:;
5931 }
5932 /* method parser_prod#ACallAssignExpr#n_id= for (self: ACallAssignExpr, TId) */
5933 void parser_prod__ACallAssignExpr__n_id_61d(val* self, val* p0) {
5934 val* var_node /* var node: TId */;
5935 var_node = p0;
5936 self->attrs[COLOR_parser_nodes__ACallFormExpr___n_id].val = var_node; /* _n_id on <self:ACallAssignExpr> */
5937 {
5938 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TId> */
5939 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TId> */
5940 RET_LABEL1:(void)0;
5941 }
5942 }
5943 RET_LABEL:;
5944 }
5945 /* method parser_prod#ACallAssignExpr#n_id= for (self: Object, TId) */
5946 void VIRTUAL_parser_prod__ACallAssignExpr__n_id_61d(val* self, val* p0) {
5947 parser_prod__ACallAssignExpr__n_id_61d(self, p0); /* Direct call parser_prod#ACallAssignExpr#n_id= on <self:Object(ACallAssignExpr)>*/
5948 RET_LABEL:;
5949 }
5950 /* method parser_prod#ACallAssignExpr#n_args= for (self: ACallAssignExpr, AExprs) */
5951 void parser_prod__ACallAssignExpr__n_args_61d(val* self, val* p0) {
5952 val* var_node /* var node: AExprs */;
5953 var_node = p0;
5954 self->attrs[COLOR_parser_nodes__ACallFormExpr___n_args].val = var_node; /* _n_args on <self:ACallAssignExpr> */
5955 {
5956 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExprs> */
5957 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExprs> */
5958 RET_LABEL1:(void)0;
5959 }
5960 }
5961 RET_LABEL:;
5962 }
5963 /* method parser_prod#ACallAssignExpr#n_args= for (self: Object, AExprs) */
5964 void VIRTUAL_parser_prod__ACallAssignExpr__n_args_61d(val* self, val* p0) {
5965 parser_prod__ACallAssignExpr__n_args_61d(self, p0); /* Direct call parser_prod#ACallAssignExpr#n_args= on <self:Object(ACallAssignExpr)>*/
5966 RET_LABEL:;
5967 }
5968 /* method parser_prod#ACallAssignExpr#n_assign= for (self: ACallAssignExpr, TAssign) */
5969 void parser_prod__ACallAssignExpr__n_assign_61d(val* self, val* p0) {
5970 val* var_node /* var node: TAssign */;
5971 var_node = p0;
5972 self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_assign].val = var_node; /* _n_assign on <self:ACallAssignExpr> */
5973 {
5974 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TAssign> */
5975 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TAssign> */
5976 RET_LABEL1:(void)0;
5977 }
5978 }
5979 RET_LABEL:;
5980 }
5981 /* method parser_prod#ACallAssignExpr#n_assign= for (self: Object, TAssign) */
5982 void VIRTUAL_parser_prod__ACallAssignExpr__n_assign_61d(val* self, val* p0) {
5983 parser_prod__ACallAssignExpr__n_assign_61d(self, p0); /* Direct call parser_prod#ACallAssignExpr#n_assign= on <self:Object(ACallAssignExpr)>*/
5984 RET_LABEL:;
5985 }
5986 /* method parser_prod#ACallAssignExpr#n_value= for (self: ACallAssignExpr, AExpr) */
5987 void parser_prod__ACallAssignExpr__n_value_61d(val* self, val* p0) {
5988 val* var_node /* var node: AExpr */;
5989 var_node = p0;
5990 self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_value].val = var_node; /* _n_value on <self:ACallAssignExpr> */
5991 {
5992 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
5993 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
5994 RET_LABEL1:(void)0;
5995 }
5996 }
5997 RET_LABEL:;
5998 }
5999 /* method parser_prod#ACallAssignExpr#n_value= for (self: Object, AExpr) */
6000 void VIRTUAL_parser_prod__ACallAssignExpr__n_value_61d(val* self, val* p0) {
6001 parser_prod__ACallAssignExpr__n_value_61d(self, p0); /* Direct call parser_prod#ACallAssignExpr#n_value= on <self:Object(ACallAssignExpr)>*/
6002 RET_LABEL:;
6003 }
6004 /* method parser_prod#ACallAssignExpr#visit_all for (self: ACallAssignExpr, Visitor) */
6005 void parser_prod__ACallAssignExpr__visit_all(val* self, val* p0) {
6006 val* var_v /* var v: Visitor */;
6007 val* var /* : AExpr */;
6008 val* var1 /* : TId */;
6009 val* var2 /* : AExprs */;
6010 val* var3 /* : TAssign */;
6011 val* var4 /* : AExpr */;
6012 var_v = p0;
6013 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ACallAssignExpr> */
6014 if (unlikely(var == NULL)) {
6015 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
6016 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5109);
6017 show_backtrace(1);
6018 }
6019 {
6020 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6021 }
6022 var1 = self->attrs[COLOR_parser_nodes__ACallFormExpr___n_id].val; /* _n_id on <self:ACallAssignExpr> */
6023 if (unlikely(var1 == NULL)) {
6024 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
6025 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5110);
6026 show_backtrace(1);
6027 }
6028 {
6029 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6030 }
6031 var2 = self->attrs[COLOR_parser_nodes__ACallFormExpr___n_args].val; /* _n_args on <self:ACallAssignExpr> */
6032 if (unlikely(var2 == NULL)) {
6033 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
6034 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5111);
6035 show_backtrace(1);
6036 }
6037 {
6038 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6039 }
6040 var3 = self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_assign].val; /* _n_assign on <self:ACallAssignExpr> */
6041 if (unlikely(var3 == NULL)) {
6042 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_assign");
6043 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5112);
6044 show_backtrace(1);
6045 }
6046 {
6047 parser_nodes__Visitor__enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6048 }
6049 var4 = self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_value].val; /* _n_value on <self:ACallAssignExpr> */
6050 if (unlikely(var4 == NULL)) {
6051 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
6052 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5113);
6053 show_backtrace(1);
6054 }
6055 {
6056 parser_nodes__Visitor__enter_visit(var_v, var4); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6057 }
6058 RET_LABEL:;
6059 }
6060 /* method parser_prod#ACallAssignExpr#visit_all for (self: Object, Visitor) */
6061 void VIRTUAL_parser_prod__ACallAssignExpr__visit_all(val* self, val* p0) {
6062 parser_prod__ACallAssignExpr__visit_all(self, p0); /* Direct call parser_prod#ACallAssignExpr#visit_all on <self:Object(ACallAssignExpr)>*/
6063 RET_LABEL:;
6064 }
6065 /* method parser_prod#ACallReassignExpr#init_acallreassignexpr for (self: ACallReassignExpr, nullable AExpr, nullable TId, nullable AExprs, nullable AAssignOp, nullable AExpr) */
6066 void parser_prod__ACallReassignExpr__init_acallreassignexpr(val* self, val* p0, val* p1, val* p2, val* p3, val* p4) {
6067 val* var_n_expr /* var n_expr: nullable AExpr */;
6068 val* var_n_id /* var n_id: nullable TId */;
6069 val* var_n_args /* var n_args: nullable AExprs */;
6070 val* var_n_assign_op /* var n_assign_op: nullable AAssignOp */;
6071 val* var_n_value /* var n_value: nullable AExpr */;
6072 var_n_expr = p0;
6073 var_n_id = p1;
6074 var_n_args = p2;
6075 var_n_assign_op = p3;
6076 var_n_value = p4;
6077 if (unlikely(var_n_expr == NULL)) {
6078 PRINT_ERROR("Runtime error: %s", "Cast failed");
6079 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5125);
6080 show_backtrace(1);
6081 }
6082 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:ACallReassignExpr> */
6083 if (var_n_expr == NULL) {
6084 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6085 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5126);
6086 show_backtrace(1);
6087 } else {
6088 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
6089 if (unlikely(var_n_expr == NULL)) {
6090 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6091 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
6092 show_backtrace(1);
6093 }
6094 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
6095 RET_LABEL1:(void)0;
6096 }
6097 }
6098 if (unlikely(var_n_id == NULL)) {
6099 PRINT_ERROR("Runtime error: %s", "Cast failed");
6100 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5127);
6101 show_backtrace(1);
6102 }
6103 self->attrs[COLOR_parser_nodes__ACallFormExpr___n_id].val = var_n_id; /* _n_id on <self:ACallReassignExpr> */
6104 if (var_n_id == NULL) {
6105 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6106 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5128);
6107 show_backtrace(1);
6108 } else {
6109 { /* Inline parser_nodes#ANode#parent= (var_n_id,self) on <var_n_id:nullable TId> */
6110 if (unlikely(var_n_id == NULL)) {
6111 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6112 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
6113 show_backtrace(1);
6114 }
6115 var_n_id->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_id:nullable TId> */
6116 RET_LABEL2:(void)0;
6117 }
6118 }
6119 if (unlikely(var_n_args == NULL)) {
6120 PRINT_ERROR("Runtime error: %s", "Cast failed");
6121 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5129);
6122 show_backtrace(1);
6123 }
6124 self->attrs[COLOR_parser_nodes__ACallFormExpr___n_args].val = var_n_args; /* _n_args on <self:ACallReassignExpr> */
6125 if (var_n_args == NULL) {
6126 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6127 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5130);
6128 show_backtrace(1);
6129 } else {
6130 { /* Inline parser_nodes#ANode#parent= (var_n_args,self) on <var_n_args:nullable AExprs> */
6131 if (unlikely(var_n_args == NULL)) {
6132 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6133 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
6134 show_backtrace(1);
6135 }
6136 var_n_args->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_args:nullable AExprs> */
6137 RET_LABEL3:(void)0;
6138 }
6139 }
6140 if (unlikely(var_n_assign_op == NULL)) {
6141 PRINT_ERROR("Runtime error: %s", "Cast failed");
6142 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5131);
6143 show_backtrace(1);
6144 }
6145 self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_assign_op].val = var_n_assign_op; /* _n_assign_op on <self:ACallReassignExpr> */
6146 if (var_n_assign_op == NULL) {
6147 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6148 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5132);
6149 show_backtrace(1);
6150 } else {
6151 { /* Inline parser_nodes#ANode#parent= (var_n_assign_op,self) on <var_n_assign_op:nullable AAssignOp> */
6152 if (unlikely(var_n_assign_op == NULL)) {
6153 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6154 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
6155 show_backtrace(1);
6156 }
6157 var_n_assign_op->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_assign_op:nullable AAssignOp> */
6158 RET_LABEL4:(void)0;
6159 }
6160 }
6161 if (unlikely(var_n_value == NULL)) {
6162 PRINT_ERROR("Runtime error: %s", "Cast failed");
6163 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5133);
6164 show_backtrace(1);
6165 }
6166 self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_value].val = var_n_value; /* _n_value on <self:ACallReassignExpr> */
6167 if (var_n_value == NULL) {
6168 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6169 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5134);
6170 show_backtrace(1);
6171 } else {
6172 { /* Inline parser_nodes#ANode#parent= (var_n_value,self) on <var_n_value:nullable AExpr> */
6173 if (unlikely(var_n_value == NULL)) {
6174 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6175 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
6176 show_backtrace(1);
6177 }
6178 var_n_value->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_value:nullable AExpr> */
6179 RET_LABEL5:(void)0;
6180 }
6181 }
6182 RET_LABEL:;
6183 }
6184 /* method parser_prod#ACallReassignExpr#init_acallreassignexpr for (self: Object, nullable AExpr, nullable TId, nullable AExprs, nullable AAssignOp, nullable AExpr) */
6185 void VIRTUAL_parser_prod__ACallReassignExpr__init_acallreassignexpr(val* self, val* p0, val* p1, val* p2, val* p3, val* p4) {
6186 parser_prod__ACallReassignExpr__init_acallreassignexpr(self, p0, p1, p2, p3, p4); /* Direct call parser_prod#ACallReassignExpr#init_acallreassignexpr on <self:Object(ACallReassignExpr)>*/
6187 RET_LABEL:;
6188 }
6189 /* method parser_prod#ACallReassignExpr#replace_child for (self: ACallReassignExpr, ANode, nullable ANode) */
6190 void parser_prod__ACallReassignExpr__replace_child(val* self, val* p0, val* p1) {
6191 val* var_old_child /* var old_child: ANode */;
6192 val* var_new_child /* var new_child: nullable ANode */;
6193 val* var /* : AExpr */;
6194 short int var1 /* : Bool */;
6195 short int var2 /* : Bool */;
6196 val* var_other /* var other: nullable Object */;
6197 short int var4 /* : Bool */;
6198 short int var6 /* : Bool */;
6199 short int var7 /* : Bool */;
6200 int cltype;
6201 int idtype;
6202 const char* var_class_name;
6203 val* var8 /* : TId */;
6204 short int var9 /* : Bool */;
6205 short int var10 /* : Bool */;
6206 short int var12 /* : Bool */;
6207 short int var14 /* : Bool */;
6208 short int var15 /* : Bool */;
6209 int cltype16;
6210 int idtype17;
6211 const char* var_class_name18;
6212 val* var19 /* : AExprs */;
6213 short int var20 /* : Bool */;
6214 short int var21 /* : Bool */;
6215 short int var23 /* : Bool */;
6216 short int var25 /* : Bool */;
6217 short int var26 /* : Bool */;
6218 int cltype27;
6219 int idtype28;
6220 const char* var_class_name29;
6221 val* var30 /* : AAssignOp */;
6222 short int var31 /* : Bool */;
6223 short int var32 /* : Bool */;
6224 short int var34 /* : Bool */;
6225 short int var36 /* : Bool */;
6226 short int var37 /* : Bool */;
6227 int cltype38;
6228 int idtype39;
6229 const char* var_class_name40;
6230 val* var41 /* : AExpr */;
6231 short int var42 /* : Bool */;
6232 short int var43 /* : Bool */;
6233 short int var45 /* : Bool */;
6234 short int var47 /* : Bool */;
6235 short int var48 /* : Bool */;
6236 int cltype49;
6237 int idtype50;
6238 const char* var_class_name51;
6239 var_old_child = p0;
6240 var_new_child = p1;
6241 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ACallReassignExpr> */
6242 if (unlikely(var == NULL)) {
6243 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
6244 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5139);
6245 show_backtrace(1);
6246 }
6247 {
6248 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
6249 var_other = var_old_child;
6250 {
6251 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
6252 var6 = var == var_other;
6253 var4 = var6;
6254 goto RET_LABEL5;
6255 RET_LABEL5:(void)0;
6256 }
6257 }
6258 var2 = var4;
6259 goto RET_LABEL3;
6260 RET_LABEL3:(void)0;
6261 }
6262 var1 = var2;
6263 }
6264 if (var1){
6265 /* <var_new_child:nullable ANode> isa AExpr */
6266 cltype = type_parser_nodes__AExpr.color;
6267 idtype = type_parser_nodes__AExpr.id;
6268 if(var_new_child == NULL) {
6269 var7 = 0;
6270 } else {
6271 if(cltype >= var_new_child->type->table_size) {
6272 var7 = 0;
6273 } else {
6274 var7 = var_new_child->type->type_table[cltype] == idtype;
6275 }
6276 }
6277 if (unlikely(!var7)) {
6278 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
6279 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
6280 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5140);
6281 show_backtrace(1);
6282 }
6283 {
6284 parser_prod__ACallReassignExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#ACallReassignExpr#n_expr= on <self:ACallReassignExpr>*/
6285 }
6286 goto RET_LABEL;
6287 } else {
6288 }
6289 var8 = self->attrs[COLOR_parser_nodes__ACallFormExpr___n_id].val; /* _n_id on <self:ACallReassignExpr> */
6290 if (unlikely(var8 == NULL)) {
6291 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
6292 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5143);
6293 show_backtrace(1);
6294 }
6295 {
6296 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:TId> */
6297 var_other = var_old_child;
6298 {
6299 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:TId> */
6300 var14 = var8 == var_other;
6301 var12 = var14;
6302 goto RET_LABEL13;
6303 RET_LABEL13:(void)0;
6304 }
6305 }
6306 var10 = var12;
6307 goto RET_LABEL11;
6308 RET_LABEL11:(void)0;
6309 }
6310 var9 = var10;
6311 }
6312 if (var9){
6313 /* <var_new_child:nullable ANode> isa TId */
6314 cltype16 = type_parser_nodes__TId.color;
6315 idtype17 = type_parser_nodes__TId.id;
6316 if(var_new_child == NULL) {
6317 var15 = 0;
6318 } else {
6319 if(cltype16 >= var_new_child->type->table_size) {
6320 var15 = 0;
6321 } else {
6322 var15 = var_new_child->type->type_table[cltype16] == idtype17;
6323 }
6324 }
6325 if (unlikely(!var15)) {
6326 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
6327 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TId", var_class_name18);
6328 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5144);
6329 show_backtrace(1);
6330 }
6331 {
6332 parser_prod__ACallReassignExpr__n_id_61d(self, var_new_child); /* Direct call parser_prod#ACallReassignExpr#n_id= on <self:ACallReassignExpr>*/
6333 }
6334 goto RET_LABEL;
6335 } else {
6336 }
6337 var19 = self->attrs[COLOR_parser_nodes__ACallFormExpr___n_args].val; /* _n_args on <self:ACallReassignExpr> */
6338 if (unlikely(var19 == NULL)) {
6339 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
6340 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5147);
6341 show_backtrace(1);
6342 }
6343 {
6344 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:AExprs> */
6345 var_other = var_old_child;
6346 {
6347 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:AExprs> */
6348 var25 = var19 == var_other;
6349 var23 = var25;
6350 goto RET_LABEL24;
6351 RET_LABEL24:(void)0;
6352 }
6353 }
6354 var21 = var23;
6355 goto RET_LABEL22;
6356 RET_LABEL22:(void)0;
6357 }
6358 var20 = var21;
6359 }
6360 if (var20){
6361 /* <var_new_child:nullable ANode> isa AExprs */
6362 cltype27 = type_parser_nodes__AExprs.color;
6363 idtype28 = type_parser_nodes__AExprs.id;
6364 if(var_new_child == NULL) {
6365 var26 = 0;
6366 } else {
6367 if(cltype27 >= var_new_child->type->table_size) {
6368 var26 = 0;
6369 } else {
6370 var26 = var_new_child->type->type_table[cltype27] == idtype28;
6371 }
6372 }
6373 if (unlikely(!var26)) {
6374 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
6375 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExprs", var_class_name29);
6376 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5148);
6377 show_backtrace(1);
6378 }
6379 {
6380 parser_prod__ACallReassignExpr__n_args_61d(self, var_new_child); /* Direct call parser_prod#ACallReassignExpr#n_args= on <self:ACallReassignExpr>*/
6381 }
6382 goto RET_LABEL;
6383 } else {
6384 }
6385 var30 = self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_assign_op].val; /* _n_assign_op on <self:ACallReassignExpr> */
6386 if (unlikely(var30 == NULL)) {
6387 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_assign_op");
6388 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5151);
6389 show_backtrace(1);
6390 }
6391 {
6392 { /* Inline kernel#Object#== (var30,var_old_child) on <var30:AAssignOp> */
6393 var_other = var_old_child;
6394 {
6395 { /* Inline kernel#Object#is_same_instance (var30,var_other) on <var30:AAssignOp> */
6396 var36 = var30 == var_other;
6397 var34 = var36;
6398 goto RET_LABEL35;
6399 RET_LABEL35:(void)0;
6400 }
6401 }
6402 var32 = var34;
6403 goto RET_LABEL33;
6404 RET_LABEL33:(void)0;
6405 }
6406 var31 = var32;
6407 }
6408 if (var31){
6409 /* <var_new_child:nullable ANode> isa AAssignOp */
6410 cltype38 = type_parser_nodes__AAssignOp.color;
6411 idtype39 = type_parser_nodes__AAssignOp.id;
6412 if(var_new_child == NULL) {
6413 var37 = 0;
6414 } else {
6415 if(cltype38 >= var_new_child->type->table_size) {
6416 var37 = 0;
6417 } else {
6418 var37 = var_new_child->type->type_table[cltype38] == idtype39;
6419 }
6420 }
6421 if (unlikely(!var37)) {
6422 var_class_name40 = var_new_child == NULL ? "null" : var_new_child->type->name;
6423 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AAssignOp", var_class_name40);
6424 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5152);
6425 show_backtrace(1);
6426 }
6427 {
6428 parser_prod__ACallReassignExpr__n_assign_op_61d(self, var_new_child); /* Direct call parser_prod#ACallReassignExpr#n_assign_op= on <self:ACallReassignExpr>*/
6429 }
6430 goto RET_LABEL;
6431 } else {
6432 }
6433 var41 = self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_value].val; /* _n_value on <self:ACallReassignExpr> */
6434 if (unlikely(var41 == NULL)) {
6435 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
6436 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5155);
6437 show_backtrace(1);
6438 }
6439 {
6440 { /* Inline kernel#Object#== (var41,var_old_child) on <var41:AExpr> */
6441 var_other = var_old_child;
6442 {
6443 { /* Inline kernel#Object#is_same_instance (var41,var_other) on <var41:AExpr> */
6444 var47 = var41 == var_other;
6445 var45 = var47;
6446 goto RET_LABEL46;
6447 RET_LABEL46:(void)0;
6448 }
6449 }
6450 var43 = var45;
6451 goto RET_LABEL44;
6452 RET_LABEL44:(void)0;
6453 }
6454 var42 = var43;
6455 }
6456 if (var42){
6457 /* <var_new_child:nullable ANode> isa AExpr */
6458 cltype49 = type_parser_nodes__AExpr.color;
6459 idtype50 = type_parser_nodes__AExpr.id;
6460 if(var_new_child == NULL) {
6461 var48 = 0;
6462 } else {
6463 if(cltype49 >= var_new_child->type->table_size) {
6464 var48 = 0;
6465 } else {
6466 var48 = var_new_child->type->type_table[cltype49] == idtype50;
6467 }
6468 }
6469 if (unlikely(!var48)) {
6470 var_class_name51 = var_new_child == NULL ? "null" : var_new_child->type->name;
6471 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name51);
6472 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5156);
6473 show_backtrace(1);
6474 }
6475 {
6476 parser_prod__ACallReassignExpr__n_value_61d(self, var_new_child); /* Direct call parser_prod#ACallReassignExpr#n_value= on <self:ACallReassignExpr>*/
6477 }
6478 goto RET_LABEL;
6479 } else {
6480 }
6481 RET_LABEL:;
6482 }
6483 /* method parser_prod#ACallReassignExpr#replace_child for (self: Object, ANode, nullable ANode) */
6484 void VIRTUAL_parser_prod__ACallReassignExpr__replace_child(val* self, val* p0, val* p1) {
6485 parser_prod__ACallReassignExpr__replace_child(self, p0, p1); /* Direct call parser_prod#ACallReassignExpr#replace_child on <self:Object(ACallReassignExpr)>*/
6486 RET_LABEL:;
6487 }
6488 /* method parser_prod#ACallReassignExpr#n_expr= for (self: ACallReassignExpr, AExpr) */
6489 void parser_prod__ACallReassignExpr__n_expr_61d(val* self, val* p0) {
6490 val* var_node /* var node: AExpr */;
6491 var_node = p0;
6492 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:ACallReassignExpr> */
6493 {
6494 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
6495 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
6496 RET_LABEL1:(void)0;
6497 }
6498 }
6499 RET_LABEL:;
6500 }
6501 /* method parser_prod#ACallReassignExpr#n_expr= for (self: Object, AExpr) */
6502 void VIRTUAL_parser_prod__ACallReassignExpr__n_expr_61d(val* self, val* p0) {
6503 parser_prod__ACallReassignExpr__n_expr_61d(self, p0); /* Direct call parser_prod#ACallReassignExpr#n_expr= on <self:Object(ACallReassignExpr)>*/
6504 RET_LABEL:;
6505 }
6506 /* method parser_prod#ACallReassignExpr#n_id= for (self: ACallReassignExpr, TId) */
6507 void parser_prod__ACallReassignExpr__n_id_61d(val* self, val* p0) {
6508 val* var_node /* var node: TId */;
6509 var_node = p0;
6510 self->attrs[COLOR_parser_nodes__ACallFormExpr___n_id].val = var_node; /* _n_id on <self:ACallReassignExpr> */
6511 {
6512 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TId> */
6513 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TId> */
6514 RET_LABEL1:(void)0;
6515 }
6516 }
6517 RET_LABEL:;
6518 }
6519 /* method parser_prod#ACallReassignExpr#n_id= for (self: Object, TId) */
6520 void VIRTUAL_parser_prod__ACallReassignExpr__n_id_61d(val* self, val* p0) {
6521 parser_prod__ACallReassignExpr__n_id_61d(self, p0); /* Direct call parser_prod#ACallReassignExpr#n_id= on <self:Object(ACallReassignExpr)>*/
6522 RET_LABEL:;
6523 }
6524 /* method parser_prod#ACallReassignExpr#n_args= for (self: ACallReassignExpr, AExprs) */
6525 void parser_prod__ACallReassignExpr__n_args_61d(val* self, val* p0) {
6526 val* var_node /* var node: AExprs */;
6527 var_node = p0;
6528 self->attrs[COLOR_parser_nodes__ACallFormExpr___n_args].val = var_node; /* _n_args on <self:ACallReassignExpr> */
6529 {
6530 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExprs> */
6531 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExprs> */
6532 RET_LABEL1:(void)0;
6533 }
6534 }
6535 RET_LABEL:;
6536 }
6537 /* method parser_prod#ACallReassignExpr#n_args= for (self: Object, AExprs) */
6538 void VIRTUAL_parser_prod__ACallReassignExpr__n_args_61d(val* self, val* p0) {
6539 parser_prod__ACallReassignExpr__n_args_61d(self, p0); /* Direct call parser_prod#ACallReassignExpr#n_args= on <self:Object(ACallReassignExpr)>*/
6540 RET_LABEL:;
6541 }
6542 /* method parser_prod#ACallReassignExpr#n_assign_op= for (self: ACallReassignExpr, AAssignOp) */
6543 void parser_prod__ACallReassignExpr__n_assign_op_61d(val* self, val* p0) {
6544 val* var_node /* var node: AAssignOp */;
6545 var_node = p0;
6546 self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_assign_op].val = var_node; /* _n_assign_op on <self:ACallReassignExpr> */
6547 {
6548 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AAssignOp> */
6549 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AAssignOp> */
6550 RET_LABEL1:(void)0;
6551 }
6552 }
6553 RET_LABEL:;
6554 }
6555 /* method parser_prod#ACallReassignExpr#n_assign_op= for (self: Object, AAssignOp) */
6556 void VIRTUAL_parser_prod__ACallReassignExpr__n_assign_op_61d(val* self, val* p0) {
6557 parser_prod__ACallReassignExpr__n_assign_op_61d(self, p0); /* Direct call parser_prod#ACallReassignExpr#n_assign_op= on <self:Object(ACallReassignExpr)>*/
6558 RET_LABEL:;
6559 }
6560 /* method parser_prod#ACallReassignExpr#n_value= for (self: ACallReassignExpr, AExpr) */
6561 void parser_prod__ACallReassignExpr__n_value_61d(val* self, val* p0) {
6562 val* var_node /* var node: AExpr */;
6563 var_node = p0;
6564 self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_value].val = var_node; /* _n_value on <self:ACallReassignExpr> */
6565 {
6566 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
6567 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
6568 RET_LABEL1:(void)0;
6569 }
6570 }
6571 RET_LABEL:;
6572 }
6573 /* method parser_prod#ACallReassignExpr#n_value= for (self: Object, AExpr) */
6574 void VIRTUAL_parser_prod__ACallReassignExpr__n_value_61d(val* self, val* p0) {
6575 parser_prod__ACallReassignExpr__n_value_61d(self, p0); /* Direct call parser_prod#ACallReassignExpr#n_value= on <self:Object(ACallReassignExpr)>*/
6576 RET_LABEL:;
6577 }
6578 /* method parser_prod#ACallReassignExpr#visit_all for (self: ACallReassignExpr, Visitor) */
6579 void parser_prod__ACallReassignExpr__visit_all(val* self, val* p0) {
6580 val* var_v /* var v: Visitor */;
6581 val* var /* : AExpr */;
6582 val* var1 /* : TId */;
6583 val* var2 /* : AExprs */;
6584 val* var3 /* : AAssignOp */;
6585 val* var4 /* : AExpr */;
6586 var_v = p0;
6587 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ACallReassignExpr> */
6588 if (unlikely(var == NULL)) {
6589 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
6590 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5190);
6591 show_backtrace(1);
6592 }
6593 {
6594 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6595 }
6596 var1 = self->attrs[COLOR_parser_nodes__ACallFormExpr___n_id].val; /* _n_id on <self:ACallReassignExpr> */
6597 if (unlikely(var1 == NULL)) {
6598 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
6599 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5191);
6600 show_backtrace(1);
6601 }
6602 {
6603 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6604 }
6605 var2 = self->attrs[COLOR_parser_nodes__ACallFormExpr___n_args].val; /* _n_args on <self:ACallReassignExpr> */
6606 if (unlikely(var2 == NULL)) {
6607 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
6608 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5192);
6609 show_backtrace(1);
6610 }
6611 {
6612 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6613 }
6614 var3 = self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_assign_op].val; /* _n_assign_op on <self:ACallReassignExpr> */
6615 if (unlikely(var3 == NULL)) {
6616 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_assign_op");
6617 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5193);
6618 show_backtrace(1);
6619 }
6620 {
6621 parser_nodes__Visitor__enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6622 }
6623 var4 = self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_value].val; /* _n_value on <self:ACallReassignExpr> */
6624 if (unlikely(var4 == NULL)) {
6625 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
6626 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5194);
6627 show_backtrace(1);
6628 }
6629 {
6630 parser_nodes__Visitor__enter_visit(var_v, var4); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6631 }
6632 RET_LABEL:;
6633 }
6634 /* method parser_prod#ACallReassignExpr#visit_all for (self: Object, Visitor) */
6635 void VIRTUAL_parser_prod__ACallReassignExpr__visit_all(val* self, val* p0) {
6636 parser_prod__ACallReassignExpr__visit_all(self, p0); /* Direct call parser_prod#ACallReassignExpr#visit_all on <self:Object(ACallReassignExpr)>*/
6637 RET_LABEL:;
6638 }
6639 /* method parser_prod#ASuperExpr#init_asuperexpr for (self: ASuperExpr, nullable AQualified, nullable TKwsuper, nullable AExprs) */
6640 void parser_prod__ASuperExpr__init_asuperexpr(val* self, val* p0, val* p1, val* p2) {
6641 val* var_n_qualified /* var n_qualified: nullable AQualified */;
6642 val* var_n_kwsuper /* var n_kwsuper: nullable TKwsuper */;
6643 val* var_n_args /* var n_args: nullable AExprs */;
6644 val* var /* : null */;
6645 short int var1 /* : Bool */;
6646 short int var2 /* : Bool */;
6647 val* var_other /* var other: nullable Object */;
6648 short int var4 /* : Bool */;
6649 short int var5 /* : Bool */;
6650 short int var6 /* : Bool */;
6651 var_n_qualified = p0;
6652 var_n_kwsuper = p1;
6653 var_n_args = p2;
6654 self->attrs[COLOR_parser_nodes__ASuperExpr___n_qualified].val = var_n_qualified; /* _n_qualified on <self:ASuperExpr> */
6655 var = NULL;
6656 if (var_n_qualified == NULL) {
6657 var1 = 0; /* is null */
6658 } else {
6659 var1 = 1; /* arg is null and recv is not */
6660 }
6661 if (0) {
6662 { /* Inline kernel#Object#!= (var_n_qualified,var) on <var_n_qualified:nullable AQualified> */
6663 var_other = var;
6664 {
6665 var5 = ((short int (*)(val*, val*))(var_n_qualified->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_qualified, var_other) /* == on <var_n_qualified:nullable AQualified(AQualified)>*/;
6666 var4 = var5;
6667 }
6668 var6 = !var4;
6669 var2 = var6;
6670 goto RET_LABEL3;
6671 RET_LABEL3:(void)0;
6672 }
6673 var1 = var2;
6674 }
6675 if (var1){
6676 {
6677 { /* Inline parser_nodes#ANode#parent= (var_n_qualified,self) on <var_n_qualified:nullable AQualified(AQualified)> */
6678 var_n_qualified->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_qualified:nullable AQualified(AQualified)> */
6679 RET_LABEL7:(void)0;
6680 }
6681 }
6682 } else {
6683 }
6684 if (unlikely(var_n_kwsuper == NULL)) {
6685 PRINT_ERROR("Runtime error: %s", "Cast failed");
6686 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5206);
6687 show_backtrace(1);
6688 }
6689 self->attrs[COLOR_parser_nodes__ASuperExpr___n_kwsuper].val = var_n_kwsuper; /* _n_kwsuper on <self:ASuperExpr> */
6690 if (var_n_kwsuper == NULL) {
6691 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6692 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5207);
6693 show_backtrace(1);
6694 } else {
6695 { /* Inline parser_nodes#ANode#parent= (var_n_kwsuper,self) on <var_n_kwsuper:nullable TKwsuper> */
6696 if (unlikely(var_n_kwsuper == NULL)) {
6697 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6698 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
6699 show_backtrace(1);
6700 }
6701 var_n_kwsuper->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwsuper:nullable TKwsuper> */
6702 RET_LABEL8:(void)0;
6703 }
6704 }
6705 if (unlikely(var_n_args == NULL)) {
6706 PRINT_ERROR("Runtime error: %s", "Cast failed");
6707 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5208);
6708 show_backtrace(1);
6709 }
6710 self->attrs[COLOR_parser_nodes__ASuperExpr___n_args].val = var_n_args; /* _n_args on <self:ASuperExpr> */
6711 if (var_n_args == NULL) {
6712 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6713 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5209);
6714 show_backtrace(1);
6715 } else {
6716 { /* Inline parser_nodes#ANode#parent= (var_n_args,self) on <var_n_args:nullable AExprs> */
6717 if (unlikely(var_n_args == NULL)) {
6718 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6719 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
6720 show_backtrace(1);
6721 }
6722 var_n_args->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_args:nullable AExprs> */
6723 RET_LABEL9:(void)0;
6724 }
6725 }
6726 RET_LABEL:;
6727 }
6728 /* method parser_prod#ASuperExpr#init_asuperexpr for (self: Object, nullable AQualified, nullable TKwsuper, nullable AExprs) */
6729 void VIRTUAL_parser_prod__ASuperExpr__init_asuperexpr(val* self, val* p0, val* p1, val* p2) {
6730 parser_prod__ASuperExpr__init_asuperexpr(self, p0, p1, p2); /* Direct call parser_prod#ASuperExpr#init_asuperexpr on <self:Object(ASuperExpr)>*/
6731 RET_LABEL:;
6732 }
6733 /* method parser_prod#ASuperExpr#replace_child for (self: ASuperExpr, ANode, nullable ANode) */
6734 void parser_prod__ASuperExpr__replace_child(val* self, val* p0, val* p1) {
6735 val* var_old_child /* var old_child: ANode */;
6736 val* var_new_child /* var new_child: nullable ANode */;
6737 val* var /* : nullable AQualified */;
6738 short int var1 /* : Bool */;
6739 short int var2 /* : Bool */;
6740 val* var_other /* var other: nullable Object */;
6741 short int var4 /* : Bool */;
6742 short int var6 /* : Bool */;
6743 short int var7 /* : Bool */;
6744 int cltype;
6745 int idtype;
6746 const char* var_class_name;
6747 val* var8 /* : TKwsuper */;
6748 short int var9 /* : Bool */;
6749 short int var10 /* : Bool */;
6750 short int var12 /* : Bool */;
6751 short int var14 /* : Bool */;
6752 short int var15 /* : Bool */;
6753 int cltype16;
6754 int idtype17;
6755 const char* var_class_name18;
6756 val* var19 /* : AExprs */;
6757 short int var20 /* : Bool */;
6758 short int var21 /* : Bool */;
6759 short int var23 /* : Bool */;
6760 short int var25 /* : Bool */;
6761 short int var26 /* : Bool */;
6762 int cltype27;
6763 int idtype28;
6764 const char* var_class_name29;
6765 var_old_child = p0;
6766 var_new_child = p1;
6767 var = self->attrs[COLOR_parser_nodes__ASuperExpr___n_qualified].val; /* _n_qualified on <self:ASuperExpr> */
6768 if (var == NULL) {
6769 var1 = 0; /* <var_old_child:ANode> cannot be null */
6770 } else {
6771 { /* Inline kernel#Object#== (var,var_old_child) on <var:nullable AQualified> */
6772 var_other = var_old_child;
6773 {
6774 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:nullable AQualified(AQualified)> */
6775 var6 = var == var_other;
6776 var4 = var6;
6777 goto RET_LABEL5;
6778 RET_LABEL5:(void)0;
6779 }
6780 }
6781 var2 = var4;
6782 goto RET_LABEL3;
6783 RET_LABEL3:(void)0;
6784 }
6785 var1 = var2;
6786 }
6787 if (var1){
6788 /* <var_new_child:nullable ANode> isa nullable AQualified */
6789 cltype = type_nullable_parser_nodes__AQualified.color;
6790 idtype = type_nullable_parser_nodes__AQualified.id;
6791 if(var_new_child == NULL) {
6792 var7 = 1;
6793 } else {
6794 if(cltype >= var_new_child->type->table_size) {
6795 var7 = 0;
6796 } else {
6797 var7 = var_new_child->type->type_table[cltype] == idtype;
6798 }
6799 }
6800 if (unlikely(!var7)) {
6801 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
6802 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AQualified", var_class_name);
6803 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5215);
6804 show_backtrace(1);
6805 }
6806 {
6807 parser_prod__ASuperExpr__n_qualified_61d(self, var_new_child); /* Direct call parser_prod#ASuperExpr#n_qualified= on <self:ASuperExpr>*/
6808 }
6809 goto RET_LABEL;
6810 } else {
6811 }
6812 var8 = self->attrs[COLOR_parser_nodes__ASuperExpr___n_kwsuper].val; /* _n_kwsuper on <self:ASuperExpr> */
6813 if (unlikely(var8 == NULL)) {
6814 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwsuper");
6815 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5218);
6816 show_backtrace(1);
6817 }
6818 {
6819 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:TKwsuper> */
6820 var_other = var_old_child;
6821 {
6822 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:TKwsuper> */
6823 var14 = var8 == var_other;
6824 var12 = var14;
6825 goto RET_LABEL13;
6826 RET_LABEL13:(void)0;
6827 }
6828 }
6829 var10 = var12;
6830 goto RET_LABEL11;
6831 RET_LABEL11:(void)0;
6832 }
6833 var9 = var10;
6834 }
6835 if (var9){
6836 /* <var_new_child:nullable ANode> isa TKwsuper */
6837 cltype16 = type_parser_nodes__TKwsuper.color;
6838 idtype17 = type_parser_nodes__TKwsuper.id;
6839 if(var_new_child == NULL) {
6840 var15 = 0;
6841 } else {
6842 if(cltype16 >= var_new_child->type->table_size) {
6843 var15 = 0;
6844 } else {
6845 var15 = var_new_child->type->type_table[cltype16] == idtype17;
6846 }
6847 }
6848 if (unlikely(!var15)) {
6849 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
6850 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwsuper", var_class_name18);
6851 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5219);
6852 show_backtrace(1);
6853 }
6854 {
6855 parser_prod__ASuperExpr__n_kwsuper_61d(self, var_new_child); /* Direct call parser_prod#ASuperExpr#n_kwsuper= on <self:ASuperExpr>*/
6856 }
6857 goto RET_LABEL;
6858 } else {
6859 }
6860 var19 = self->attrs[COLOR_parser_nodes__ASuperExpr___n_args].val; /* _n_args on <self:ASuperExpr> */
6861 if (unlikely(var19 == NULL)) {
6862 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
6863 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5222);
6864 show_backtrace(1);
6865 }
6866 {
6867 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:AExprs> */
6868 var_other = var_old_child;
6869 {
6870 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:AExprs> */
6871 var25 = var19 == var_other;
6872 var23 = var25;
6873 goto RET_LABEL24;
6874 RET_LABEL24:(void)0;
6875 }
6876 }
6877 var21 = var23;
6878 goto RET_LABEL22;
6879 RET_LABEL22:(void)0;
6880 }
6881 var20 = var21;
6882 }
6883 if (var20){
6884 /* <var_new_child:nullable ANode> isa AExprs */
6885 cltype27 = type_parser_nodes__AExprs.color;
6886 idtype28 = type_parser_nodes__AExprs.id;
6887 if(var_new_child == NULL) {
6888 var26 = 0;
6889 } else {
6890 if(cltype27 >= var_new_child->type->table_size) {
6891 var26 = 0;
6892 } else {
6893 var26 = var_new_child->type->type_table[cltype27] == idtype28;
6894 }
6895 }
6896 if (unlikely(!var26)) {
6897 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
6898 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExprs", var_class_name29);
6899 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5223);
6900 show_backtrace(1);
6901 }
6902 {
6903 parser_prod__ASuperExpr__n_args_61d(self, var_new_child); /* Direct call parser_prod#ASuperExpr#n_args= on <self:ASuperExpr>*/
6904 }
6905 goto RET_LABEL;
6906 } else {
6907 }
6908 RET_LABEL:;
6909 }
6910 /* method parser_prod#ASuperExpr#replace_child for (self: Object, ANode, nullable ANode) */
6911 void VIRTUAL_parser_prod__ASuperExpr__replace_child(val* self, val* p0, val* p1) {
6912 parser_prod__ASuperExpr__replace_child(self, p0, p1); /* Direct call parser_prod#ASuperExpr#replace_child on <self:Object(ASuperExpr)>*/
6913 RET_LABEL:;
6914 }
6915 /* method parser_prod#ASuperExpr#n_qualified= for (self: ASuperExpr, nullable AQualified) */
6916 void parser_prod__ASuperExpr__n_qualified_61d(val* self, val* p0) {
6917 val* var_node /* var node: nullable AQualified */;
6918 val* var /* : null */;
6919 short int var1 /* : Bool */;
6920 short int var2 /* : Bool */;
6921 val* var_other /* var other: nullable Object */;
6922 short int var4 /* : Bool */;
6923 short int var5 /* : Bool */;
6924 short int var6 /* : Bool */;
6925 var_node = p0;
6926 self->attrs[COLOR_parser_nodes__ASuperExpr___n_qualified].val = var_node; /* _n_qualified on <self:ASuperExpr> */
6927 var = NULL;
6928 if (var_node == NULL) {
6929 var1 = 0; /* is null */
6930 } else {
6931 var1 = 1; /* arg is null and recv is not */
6932 }
6933 if (0) {
6934 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AQualified> */
6935 var_other = var;
6936 {
6937 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AQualified(AQualified)>*/;
6938 var4 = var5;
6939 }
6940 var6 = !var4;
6941 var2 = var6;
6942 goto RET_LABEL3;
6943 RET_LABEL3:(void)0;
6944 }
6945 var1 = var2;
6946 }
6947 if (var1){
6948 {
6949 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AQualified(AQualified)> */
6950 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AQualified(AQualified)> */
6951 RET_LABEL7:(void)0;
6952 }
6953 }
6954 } else {
6955 }
6956 RET_LABEL:;
6957 }
6958 /* method parser_prod#ASuperExpr#n_qualified= for (self: Object, nullable AQualified) */
6959 void VIRTUAL_parser_prod__ASuperExpr__n_qualified_61d(val* self, val* p0) {
6960 parser_prod__ASuperExpr__n_qualified_61d(self, p0); /* Direct call parser_prod#ASuperExpr#n_qualified= on <self:Object(ASuperExpr)>*/
6961 RET_LABEL:;
6962 }
6963 /* method parser_prod#ASuperExpr#n_kwsuper= for (self: ASuperExpr, TKwsuper) */
6964 void parser_prod__ASuperExpr__n_kwsuper_61d(val* self, val* p0) {
6965 val* var_node /* var node: TKwsuper */;
6966 var_node = p0;
6967 self->attrs[COLOR_parser_nodes__ASuperExpr___n_kwsuper].val = var_node; /* _n_kwsuper on <self:ASuperExpr> */
6968 {
6969 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwsuper> */
6970 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwsuper> */
6971 RET_LABEL1:(void)0;
6972 }
6973 }
6974 RET_LABEL:;
6975 }
6976 /* method parser_prod#ASuperExpr#n_kwsuper= for (self: Object, TKwsuper) */
6977 void VIRTUAL_parser_prod__ASuperExpr__n_kwsuper_61d(val* self, val* p0) {
6978 parser_prod__ASuperExpr__n_kwsuper_61d(self, p0); /* Direct call parser_prod#ASuperExpr#n_kwsuper= on <self:Object(ASuperExpr)>*/
6979 RET_LABEL:;
6980 }
6981 /* method parser_prod#ASuperExpr#n_args= for (self: ASuperExpr, AExprs) */
6982 void parser_prod__ASuperExpr__n_args_61d(val* self, val* p0) {
6983 val* var_node /* var node: AExprs */;
6984 var_node = p0;
6985 self->attrs[COLOR_parser_nodes__ASuperExpr___n_args].val = var_node; /* _n_args on <self:ASuperExpr> */
6986 {
6987 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExprs> */
6988 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExprs> */
6989 RET_LABEL1:(void)0;
6990 }
6991 }
6992 RET_LABEL:;
6993 }
6994 /* method parser_prod#ASuperExpr#n_args= for (self: Object, AExprs) */
6995 void VIRTUAL_parser_prod__ASuperExpr__n_args_61d(val* self, val* p0) {
6996 parser_prod__ASuperExpr__n_args_61d(self, p0); /* Direct call parser_prod#ASuperExpr#n_args= on <self:Object(ASuperExpr)>*/
6997 RET_LABEL:;
6998 }
6999 /* method parser_prod#ASuperExpr#visit_all for (self: ASuperExpr, Visitor) */
7000 void parser_prod__ASuperExpr__visit_all(val* self, val* p0) {
7001 val* var_v /* var v: Visitor */;
7002 val* var /* : nullable AQualified */;
7003 val* var1 /* : TKwsuper */;
7004 val* var2 /* : AExprs */;
7005 var_v = p0;
7006 var = self->attrs[COLOR_parser_nodes__ASuperExpr___n_qualified].val; /* _n_qualified on <self:ASuperExpr> */
7007 {
7008 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7009 }
7010 var1 = self->attrs[COLOR_parser_nodes__ASuperExpr___n_kwsuper].val; /* _n_kwsuper on <self:ASuperExpr> */
7011 if (unlikely(var1 == NULL)) {
7012 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwsuper");
7013 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5248);
7014 show_backtrace(1);
7015 }
7016 {
7017 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7018 }
7019 var2 = self->attrs[COLOR_parser_nodes__ASuperExpr___n_args].val; /* _n_args on <self:ASuperExpr> */
7020 if (unlikely(var2 == NULL)) {
7021 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
7022 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5249);
7023 show_backtrace(1);
7024 }
7025 {
7026 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7027 }
7028 RET_LABEL:;
7029 }
7030 /* method parser_prod#ASuperExpr#visit_all for (self: Object, Visitor) */
7031 void VIRTUAL_parser_prod__ASuperExpr__visit_all(val* self, val* p0) {
7032 parser_prod__ASuperExpr__visit_all(self, p0); /* Direct call parser_prod#ASuperExpr#visit_all on <self:Object(ASuperExpr)>*/
7033 RET_LABEL:;
7034 }
7035 /* method parser_prod#AInitExpr#init_ainitexpr for (self: AInitExpr, nullable AExpr, nullable TKwinit, nullable AExprs) */
7036 void parser_prod__AInitExpr__init_ainitexpr(val* self, val* p0, val* p1, val* p2) {
7037 val* var_n_expr /* var n_expr: nullable AExpr */;
7038 val* var_n_kwinit /* var n_kwinit: nullable TKwinit */;
7039 val* var_n_args /* var n_args: nullable AExprs */;
7040 var_n_expr = p0;
7041 var_n_kwinit = p1;
7042 var_n_args = p2;
7043 if (unlikely(var_n_expr == NULL)) {
7044 PRINT_ERROR("Runtime error: %s", "Cast failed");
7045 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5259);
7046 show_backtrace(1);
7047 }
7048 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AInitExpr> */
7049 if (var_n_expr == NULL) {
7050 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7051 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5260);
7052 show_backtrace(1);
7053 } else {
7054 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
7055 if (unlikely(var_n_expr == NULL)) {
7056 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7057 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
7058 show_backtrace(1);
7059 }
7060 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
7061 RET_LABEL1:(void)0;
7062 }
7063 }
7064 if (unlikely(var_n_kwinit == NULL)) {
7065 PRINT_ERROR("Runtime error: %s", "Cast failed");
7066 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5261);
7067 show_backtrace(1);
7068 }
7069 self->attrs[COLOR_parser_nodes__AInitExpr___n_kwinit].val = var_n_kwinit; /* _n_kwinit on <self:AInitExpr> */
7070 if (var_n_kwinit == NULL) {
7071 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7072 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5262);
7073 show_backtrace(1);
7074 } else {
7075 { /* Inline parser_nodes#ANode#parent= (var_n_kwinit,self) on <var_n_kwinit:nullable TKwinit> */
7076 if (unlikely(var_n_kwinit == NULL)) {
7077 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7078 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
7079 show_backtrace(1);
7080 }
7081 var_n_kwinit->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwinit:nullable TKwinit> */
7082 RET_LABEL2:(void)0;
7083 }
7084 }
7085 if (unlikely(var_n_args == NULL)) {
7086 PRINT_ERROR("Runtime error: %s", "Cast failed");
7087 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5263);
7088 show_backtrace(1);
7089 }
7090 self->attrs[COLOR_parser_nodes__AInitExpr___n_args].val = var_n_args; /* _n_args on <self:AInitExpr> */
7091 if (var_n_args == NULL) {
7092 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7093 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5264);
7094 show_backtrace(1);
7095 } else {
7096 { /* Inline parser_nodes#ANode#parent= (var_n_args,self) on <var_n_args:nullable AExprs> */
7097 if (unlikely(var_n_args == NULL)) {
7098 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7099 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
7100 show_backtrace(1);
7101 }
7102 var_n_args->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_args:nullable AExprs> */
7103 RET_LABEL3:(void)0;
7104 }
7105 }
7106 RET_LABEL:;
7107 }
7108 /* method parser_prod#AInitExpr#init_ainitexpr for (self: Object, nullable AExpr, nullable TKwinit, nullable AExprs) */
7109 void VIRTUAL_parser_prod__AInitExpr__init_ainitexpr(val* self, val* p0, val* p1, val* p2) {
7110 parser_prod__AInitExpr__init_ainitexpr(self, p0, p1, p2); /* Direct call parser_prod#AInitExpr#init_ainitexpr on <self:Object(AInitExpr)>*/
7111 RET_LABEL:;
7112 }
7113 /* method parser_prod#AInitExpr#replace_child for (self: AInitExpr, ANode, nullable ANode) */
7114 void parser_prod__AInitExpr__replace_child(val* self, val* p0, val* p1) {
7115 val* var_old_child /* var old_child: ANode */;
7116 val* var_new_child /* var new_child: nullable ANode */;
7117 val* var /* : AExpr */;
7118 short int var1 /* : Bool */;
7119 short int var2 /* : Bool */;
7120 val* var_other /* var other: nullable Object */;
7121 short int var4 /* : Bool */;
7122 short int var6 /* : Bool */;
7123 short int var7 /* : Bool */;
7124 int cltype;
7125 int idtype;
7126 const char* var_class_name;
7127 val* var8 /* : TKwinit */;
7128 short int var9 /* : Bool */;
7129 short int var10 /* : Bool */;
7130 short int var12 /* : Bool */;
7131 short int var14 /* : Bool */;
7132 short int var15 /* : Bool */;
7133 int cltype16;
7134 int idtype17;
7135 const char* var_class_name18;
7136 val* var19 /* : AExprs */;
7137 short int var20 /* : Bool */;
7138 short int var21 /* : Bool */;
7139 short int var23 /* : Bool */;
7140 short int var25 /* : Bool */;
7141 short int var26 /* : Bool */;
7142 int cltype27;
7143 int idtype28;
7144 const char* var_class_name29;
7145 var_old_child = p0;
7146 var_new_child = p1;
7147 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AInitExpr> */
7148 if (unlikely(var == NULL)) {
7149 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
7150 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5269);
7151 show_backtrace(1);
7152 }
7153 {
7154 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
7155 var_other = var_old_child;
7156 {
7157 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
7158 var6 = var == var_other;
7159 var4 = var6;
7160 goto RET_LABEL5;
7161 RET_LABEL5:(void)0;
7162 }
7163 }
7164 var2 = var4;
7165 goto RET_LABEL3;
7166 RET_LABEL3:(void)0;
7167 }
7168 var1 = var2;
7169 }
7170 if (var1){
7171 /* <var_new_child:nullable ANode> isa AExpr */
7172 cltype = type_parser_nodes__AExpr.color;
7173 idtype = type_parser_nodes__AExpr.id;
7174 if(var_new_child == NULL) {
7175 var7 = 0;
7176 } else {
7177 if(cltype >= var_new_child->type->table_size) {
7178 var7 = 0;
7179 } else {
7180 var7 = var_new_child->type->type_table[cltype] == idtype;
7181 }
7182 }
7183 if (unlikely(!var7)) {
7184 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
7185 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
7186 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5270);
7187 show_backtrace(1);
7188 }
7189 {
7190 parser_prod__AInitExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AInitExpr#n_expr= on <self:AInitExpr>*/
7191 }
7192 goto RET_LABEL;
7193 } else {
7194 }
7195 var8 = self->attrs[COLOR_parser_nodes__AInitExpr___n_kwinit].val; /* _n_kwinit on <self:AInitExpr> */
7196 if (unlikely(var8 == NULL)) {
7197 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwinit");
7198 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5273);
7199 show_backtrace(1);
7200 }
7201 {
7202 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:TKwinit> */
7203 var_other = var_old_child;
7204 {
7205 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:TKwinit> */
7206 var14 = var8 == var_other;
7207 var12 = var14;
7208 goto RET_LABEL13;
7209 RET_LABEL13:(void)0;
7210 }
7211 }
7212 var10 = var12;
7213 goto RET_LABEL11;
7214 RET_LABEL11:(void)0;
7215 }
7216 var9 = var10;
7217 }
7218 if (var9){
7219 /* <var_new_child:nullable ANode> isa TKwinit */
7220 cltype16 = type_parser_nodes__TKwinit.color;
7221 idtype17 = type_parser_nodes__TKwinit.id;
7222 if(var_new_child == NULL) {
7223 var15 = 0;
7224 } else {
7225 if(cltype16 >= var_new_child->type->table_size) {
7226 var15 = 0;
7227 } else {
7228 var15 = var_new_child->type->type_table[cltype16] == idtype17;
7229 }
7230 }
7231 if (unlikely(!var15)) {
7232 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
7233 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwinit", var_class_name18);
7234 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5274);
7235 show_backtrace(1);
7236 }
7237 {
7238 parser_prod__AInitExpr__n_kwinit_61d(self, var_new_child); /* Direct call parser_prod#AInitExpr#n_kwinit= on <self:AInitExpr>*/
7239 }
7240 goto RET_LABEL;
7241 } else {
7242 }
7243 var19 = self->attrs[COLOR_parser_nodes__AInitExpr___n_args].val; /* _n_args on <self:AInitExpr> */
7244 if (unlikely(var19 == NULL)) {
7245 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
7246 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5277);
7247 show_backtrace(1);
7248 }
7249 {
7250 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:AExprs> */
7251 var_other = var_old_child;
7252 {
7253 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:AExprs> */
7254 var25 = var19 == var_other;
7255 var23 = var25;
7256 goto RET_LABEL24;
7257 RET_LABEL24:(void)0;
7258 }
7259 }
7260 var21 = var23;
7261 goto RET_LABEL22;
7262 RET_LABEL22:(void)0;
7263 }
7264 var20 = var21;
7265 }
7266 if (var20){
7267 /* <var_new_child:nullable ANode> isa AExprs */
7268 cltype27 = type_parser_nodes__AExprs.color;
7269 idtype28 = type_parser_nodes__AExprs.id;
7270 if(var_new_child == NULL) {
7271 var26 = 0;
7272 } else {
7273 if(cltype27 >= var_new_child->type->table_size) {
7274 var26 = 0;
7275 } else {
7276 var26 = var_new_child->type->type_table[cltype27] == idtype28;
7277 }
7278 }
7279 if (unlikely(!var26)) {
7280 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
7281 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExprs", var_class_name29);
7282 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5278);
7283 show_backtrace(1);
7284 }
7285 {
7286 parser_prod__AInitExpr__n_args_61d(self, var_new_child); /* Direct call parser_prod#AInitExpr#n_args= on <self:AInitExpr>*/
7287 }
7288 goto RET_LABEL;
7289 } else {
7290 }
7291 RET_LABEL:;
7292 }
7293 /* method parser_prod#AInitExpr#replace_child for (self: Object, ANode, nullable ANode) */
7294 void VIRTUAL_parser_prod__AInitExpr__replace_child(val* self, val* p0, val* p1) {
7295 parser_prod__AInitExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AInitExpr#replace_child on <self:Object(AInitExpr)>*/
7296 RET_LABEL:;
7297 }
7298 /* method parser_prod#AInitExpr#n_expr= for (self: AInitExpr, AExpr) */
7299 void parser_prod__AInitExpr__n_expr_61d(val* self, val* p0) {
7300 val* var_node /* var node: AExpr */;
7301 var_node = p0;
7302 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:AInitExpr> */
7303 {
7304 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
7305 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
7306 RET_LABEL1:(void)0;
7307 }
7308 }
7309 RET_LABEL:;
7310 }
7311 /* method parser_prod#AInitExpr#n_expr= for (self: Object, AExpr) */
7312 void VIRTUAL_parser_prod__AInitExpr__n_expr_61d(val* self, val* p0) {
7313 parser_prod__AInitExpr__n_expr_61d(self, p0); /* Direct call parser_prod#AInitExpr#n_expr= on <self:Object(AInitExpr)>*/
7314 RET_LABEL:;
7315 }
7316 /* method parser_prod#AInitExpr#n_kwinit= for (self: AInitExpr, TKwinit) */
7317 void parser_prod__AInitExpr__n_kwinit_61d(val* self, val* p0) {
7318 val* var_node /* var node: TKwinit */;
7319 var_node = p0;
7320 self->attrs[COLOR_parser_nodes__AInitExpr___n_kwinit].val = var_node; /* _n_kwinit on <self:AInitExpr> */
7321 {
7322 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwinit> */
7323 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwinit> */
7324 RET_LABEL1:(void)0;
7325 }
7326 }
7327 RET_LABEL:;
7328 }
7329 /* method parser_prod#AInitExpr#n_kwinit= for (self: Object, TKwinit) */
7330 void VIRTUAL_parser_prod__AInitExpr__n_kwinit_61d(val* self, val* p0) {
7331 parser_prod__AInitExpr__n_kwinit_61d(self, p0); /* Direct call parser_prod#AInitExpr#n_kwinit= on <self:Object(AInitExpr)>*/
7332 RET_LABEL:;
7333 }
7334 /* method parser_prod#AInitExpr#n_args= for (self: AInitExpr, AExprs) */
7335 void parser_prod__AInitExpr__n_args_61d(val* self, val* p0) {
7336 val* var_node /* var node: AExprs */;
7337 var_node = p0;
7338 self->attrs[COLOR_parser_nodes__AInitExpr___n_args].val = var_node; /* _n_args on <self:AInitExpr> */
7339 {
7340 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExprs> */
7341 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExprs> */
7342 RET_LABEL1:(void)0;
7343 }
7344 }
7345 RET_LABEL:;
7346 }
7347 /* method parser_prod#AInitExpr#n_args= for (self: Object, AExprs) */
7348 void VIRTUAL_parser_prod__AInitExpr__n_args_61d(val* self, val* p0) {
7349 parser_prod__AInitExpr__n_args_61d(self, p0); /* Direct call parser_prod#AInitExpr#n_args= on <self:Object(AInitExpr)>*/
7350 RET_LABEL:;
7351 }
7352 /* method parser_prod#AInitExpr#visit_all for (self: AInitExpr, Visitor) */
7353 void parser_prod__AInitExpr__visit_all(val* self, val* p0) {
7354 val* var_v /* var v: Visitor */;
7355 val* var /* : AExpr */;
7356 val* var1 /* : TKwinit */;
7357 val* var2 /* : AExprs */;
7358 var_v = p0;
7359 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AInitExpr> */
7360 if (unlikely(var == NULL)) {
7361 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
7362 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5302);
7363 show_backtrace(1);
7364 }
7365 {
7366 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7367 }
7368 var1 = self->attrs[COLOR_parser_nodes__AInitExpr___n_kwinit].val; /* _n_kwinit on <self:AInitExpr> */
7369 if (unlikely(var1 == NULL)) {
7370 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwinit");
7371 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5303);
7372 show_backtrace(1);
7373 }
7374 {
7375 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7376 }
7377 var2 = self->attrs[COLOR_parser_nodes__AInitExpr___n_args].val; /* _n_args on <self:AInitExpr> */
7378 if (unlikely(var2 == NULL)) {
7379 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
7380 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5304);
7381 show_backtrace(1);
7382 }
7383 {
7384 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7385 }
7386 RET_LABEL:;
7387 }
7388 /* method parser_prod#AInitExpr#visit_all for (self: Object, Visitor) */
7389 void VIRTUAL_parser_prod__AInitExpr__visit_all(val* self, val* p0) {
7390 parser_prod__AInitExpr__visit_all(self, p0); /* Direct call parser_prod#AInitExpr#visit_all on <self:Object(AInitExpr)>*/
7391 RET_LABEL:;
7392 }
7393 /* method parser_prod#ABraExpr#init_abraexpr for (self: ABraExpr, nullable AExpr, nullable AExprs) */
7394 void parser_prod__ABraExpr__init_abraexpr(val* self, val* p0, val* p1) {
7395 val* var_n_expr /* var n_expr: nullable AExpr */;
7396 val* var_n_args /* var n_args: nullable AExprs */;
7397 var_n_expr = p0;
7398 var_n_args = p1;
7399 if (unlikely(var_n_expr == NULL)) {
7400 PRINT_ERROR("Runtime error: %s", "Cast failed");
7401 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5313);
7402 show_backtrace(1);
7403 }
7404 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:ABraExpr> */
7405 if (var_n_expr == NULL) {
7406 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7407 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5314);
7408 show_backtrace(1);
7409 } else {
7410 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
7411 if (unlikely(var_n_expr == NULL)) {
7412 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7413 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
7414 show_backtrace(1);
7415 }
7416 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
7417 RET_LABEL1:(void)0;
7418 }
7419 }
7420 if (unlikely(var_n_args == NULL)) {
7421 PRINT_ERROR("Runtime error: %s", "Cast failed");
7422 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5315);
7423 show_backtrace(1);
7424 }
7425 self->attrs[COLOR_parser_nodes__ABraFormExpr___n_args].val = var_n_args; /* _n_args on <self:ABraExpr> */
7426 if (var_n_args == NULL) {
7427 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7428 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5316);
7429 show_backtrace(1);
7430 } else {
7431 { /* Inline parser_nodes#ANode#parent= (var_n_args,self) on <var_n_args:nullable AExprs> */
7432 if (unlikely(var_n_args == NULL)) {
7433 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7434 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
7435 show_backtrace(1);
7436 }
7437 var_n_args->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_args:nullable AExprs> */
7438 RET_LABEL2:(void)0;
7439 }
7440 }
7441 RET_LABEL:;
7442 }
7443 /* method parser_prod#ABraExpr#init_abraexpr for (self: Object, nullable AExpr, nullable AExprs) */
7444 void VIRTUAL_parser_prod__ABraExpr__init_abraexpr(val* self, val* p0, val* p1) {
7445 parser_prod__ABraExpr__init_abraexpr(self, p0, p1); /* Direct call parser_prod#ABraExpr#init_abraexpr on <self:Object(ABraExpr)>*/
7446 RET_LABEL:;
7447 }
7448 /* method parser_prod#ABraExpr#replace_child for (self: ABraExpr, ANode, nullable ANode) */
7449 void parser_prod__ABraExpr__replace_child(val* self, val* p0, val* p1) {
7450 val* var_old_child /* var old_child: ANode */;
7451 val* var_new_child /* var new_child: nullable ANode */;
7452 val* var /* : AExpr */;
7453 short int var1 /* : Bool */;
7454 short int var2 /* : Bool */;
7455 val* var_other /* var other: nullable Object */;
7456 short int var4 /* : Bool */;
7457 short int var6 /* : Bool */;
7458 short int var7 /* : Bool */;
7459 int cltype;
7460 int idtype;
7461 const char* var_class_name;
7462 val* var8 /* : AExprs */;
7463 short int var9 /* : Bool */;
7464 short int var10 /* : Bool */;
7465 short int var12 /* : Bool */;
7466 short int var14 /* : Bool */;
7467 short int var15 /* : Bool */;
7468 int cltype16;
7469 int idtype17;
7470 const char* var_class_name18;
7471 var_old_child = p0;
7472 var_new_child = p1;
7473 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ABraExpr> */
7474 if (unlikely(var == NULL)) {
7475 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
7476 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5321);
7477 show_backtrace(1);
7478 }
7479 {
7480 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
7481 var_other = var_old_child;
7482 {
7483 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
7484 var6 = var == var_other;
7485 var4 = var6;
7486 goto RET_LABEL5;
7487 RET_LABEL5:(void)0;
7488 }
7489 }
7490 var2 = var4;
7491 goto RET_LABEL3;
7492 RET_LABEL3:(void)0;
7493 }
7494 var1 = var2;
7495 }
7496 if (var1){
7497 /* <var_new_child:nullable ANode> isa AExpr */
7498 cltype = type_parser_nodes__AExpr.color;
7499 idtype = type_parser_nodes__AExpr.id;
7500 if(var_new_child == NULL) {
7501 var7 = 0;
7502 } else {
7503 if(cltype >= var_new_child->type->table_size) {
7504 var7 = 0;
7505 } else {
7506 var7 = var_new_child->type->type_table[cltype] == idtype;
7507 }
7508 }
7509 if (unlikely(!var7)) {
7510 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
7511 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
7512 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5322);
7513 show_backtrace(1);
7514 }
7515 {
7516 parser_prod__ABraExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#ABraExpr#n_expr= on <self:ABraExpr>*/
7517 }
7518 goto RET_LABEL;
7519 } else {
7520 }
7521 var8 = self->attrs[COLOR_parser_nodes__ABraFormExpr___n_args].val; /* _n_args on <self:ABraExpr> */
7522 if (unlikely(var8 == NULL)) {
7523 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
7524 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5325);
7525 show_backtrace(1);
7526 }
7527 {
7528 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExprs> */
7529 var_other = var_old_child;
7530 {
7531 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExprs> */
7532 var14 = var8 == var_other;
7533 var12 = var14;
7534 goto RET_LABEL13;
7535 RET_LABEL13:(void)0;
7536 }
7537 }
7538 var10 = var12;
7539 goto RET_LABEL11;
7540 RET_LABEL11:(void)0;
7541 }
7542 var9 = var10;
7543 }
7544 if (var9){
7545 /* <var_new_child:nullable ANode> isa AExprs */
7546 cltype16 = type_parser_nodes__AExprs.color;
7547 idtype17 = type_parser_nodes__AExprs.id;
7548 if(var_new_child == NULL) {
7549 var15 = 0;
7550 } else {
7551 if(cltype16 >= var_new_child->type->table_size) {
7552 var15 = 0;
7553 } else {
7554 var15 = var_new_child->type->type_table[cltype16] == idtype17;
7555 }
7556 }
7557 if (unlikely(!var15)) {
7558 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
7559 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExprs", var_class_name18);
7560 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5326);
7561 show_backtrace(1);
7562 }
7563 {
7564 parser_prod__ABraExpr__n_args_61d(self, var_new_child); /* Direct call parser_prod#ABraExpr#n_args= on <self:ABraExpr>*/
7565 }
7566 goto RET_LABEL;
7567 } else {
7568 }
7569 RET_LABEL:;
7570 }
7571 /* method parser_prod#ABraExpr#replace_child for (self: Object, ANode, nullable ANode) */
7572 void VIRTUAL_parser_prod__ABraExpr__replace_child(val* self, val* p0, val* p1) {
7573 parser_prod__ABraExpr__replace_child(self, p0, p1); /* Direct call parser_prod#ABraExpr#replace_child on <self:Object(ABraExpr)>*/
7574 RET_LABEL:;
7575 }
7576 /* method parser_prod#ABraExpr#n_expr= for (self: ABraExpr, AExpr) */
7577 void parser_prod__ABraExpr__n_expr_61d(val* self, val* p0) {
7578 val* var_node /* var node: AExpr */;
7579 var_node = p0;
7580 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:ABraExpr> */
7581 {
7582 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
7583 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
7584 RET_LABEL1:(void)0;
7585 }
7586 }
7587 RET_LABEL:;
7588 }
7589 /* method parser_prod#ABraExpr#n_expr= for (self: Object, AExpr) */
7590 void VIRTUAL_parser_prod__ABraExpr__n_expr_61d(val* self, val* p0) {
7591 parser_prod__ABraExpr__n_expr_61d(self, p0); /* Direct call parser_prod#ABraExpr#n_expr= on <self:Object(ABraExpr)>*/
7592 RET_LABEL:;
7593 }
7594 /* method parser_prod#ABraExpr#n_args= for (self: ABraExpr, AExprs) */
7595 void parser_prod__ABraExpr__n_args_61d(val* self, val* p0) {
7596 val* var_node /* var node: AExprs */;
7597 var_node = p0;
7598 self->attrs[COLOR_parser_nodes__ABraFormExpr___n_args].val = var_node; /* _n_args on <self:ABraExpr> */
7599 {
7600 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExprs> */
7601 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExprs> */
7602 RET_LABEL1:(void)0;
7603 }
7604 }
7605 RET_LABEL:;
7606 }
7607 /* method parser_prod#ABraExpr#n_args= for (self: Object, AExprs) */
7608 void VIRTUAL_parser_prod__ABraExpr__n_args_61d(val* self, val* p0) {
7609 parser_prod__ABraExpr__n_args_61d(self, p0); /* Direct call parser_prod#ABraExpr#n_args= on <self:Object(ABraExpr)>*/
7610 RET_LABEL:;
7611 }
7612 /* method parser_prod#ABraExpr#visit_all for (self: ABraExpr, Visitor) */
7613 void parser_prod__ABraExpr__visit_all(val* self, val* p0) {
7614 val* var_v /* var v: Visitor */;
7615 val* var /* : AExpr */;
7616 val* var1 /* : AExprs */;
7617 var_v = p0;
7618 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ABraExpr> */
7619 if (unlikely(var == NULL)) {
7620 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
7621 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5345);
7622 show_backtrace(1);
7623 }
7624 {
7625 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7626 }
7627 var1 = self->attrs[COLOR_parser_nodes__ABraFormExpr___n_args].val; /* _n_args on <self:ABraExpr> */
7628 if (unlikely(var1 == NULL)) {
7629 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
7630 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5346);
7631 show_backtrace(1);
7632 }
7633 {
7634 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7635 }
7636 RET_LABEL:;
7637 }
7638 /* method parser_prod#ABraExpr#visit_all for (self: Object, Visitor) */
7639 void VIRTUAL_parser_prod__ABraExpr__visit_all(val* self, val* p0) {
7640 parser_prod__ABraExpr__visit_all(self, p0); /* Direct call parser_prod#ABraExpr#visit_all on <self:Object(ABraExpr)>*/
7641 RET_LABEL:;
7642 }
7643 /* method parser_prod#ABraAssignExpr#init_abraassignexpr for (self: ABraAssignExpr, nullable AExpr, nullable AExprs, nullable TAssign, nullable AExpr) */
7644 void parser_prod__ABraAssignExpr__init_abraassignexpr(val* self, val* p0, val* p1, val* p2, val* p3) {
7645 val* var_n_expr /* var n_expr: nullable AExpr */;
7646 val* var_n_args /* var n_args: nullable AExprs */;
7647 val* var_n_assign /* var n_assign: nullable TAssign */;
7648 val* var_n_value /* var n_value: nullable AExpr */;
7649 var_n_expr = p0;
7650 var_n_args = p1;
7651 var_n_assign = p2;
7652 var_n_value = p3;
7653 if (unlikely(var_n_expr == NULL)) {
7654 PRINT_ERROR("Runtime error: %s", "Cast failed");
7655 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5357);
7656 show_backtrace(1);
7657 }
7658 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:ABraAssignExpr> */
7659 if (var_n_expr == NULL) {
7660 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7661 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5358);
7662 show_backtrace(1);
7663 } else {
7664 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
7665 if (unlikely(var_n_expr == NULL)) {
7666 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7667 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
7668 show_backtrace(1);
7669 }
7670 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
7671 RET_LABEL1:(void)0;
7672 }
7673 }
7674 if (unlikely(var_n_args == NULL)) {
7675 PRINT_ERROR("Runtime error: %s", "Cast failed");
7676 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5359);
7677 show_backtrace(1);
7678 }
7679 self->attrs[COLOR_parser_nodes__ABraFormExpr___n_args].val = var_n_args; /* _n_args on <self:ABraAssignExpr> */
7680 if (var_n_args == NULL) {
7681 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7682 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5360);
7683 show_backtrace(1);
7684 } else {
7685 { /* Inline parser_nodes#ANode#parent= (var_n_args,self) on <var_n_args:nullable AExprs> */
7686 if (unlikely(var_n_args == NULL)) {
7687 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7688 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
7689 show_backtrace(1);
7690 }
7691 var_n_args->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_args:nullable AExprs> */
7692 RET_LABEL2:(void)0;
7693 }
7694 }
7695 if (unlikely(var_n_assign == NULL)) {
7696 PRINT_ERROR("Runtime error: %s", "Cast failed");
7697 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5361);
7698 show_backtrace(1);
7699 }
7700 self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_assign].val = var_n_assign; /* _n_assign on <self:ABraAssignExpr> */
7701 if (var_n_assign == NULL) {
7702 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7703 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5362);
7704 show_backtrace(1);
7705 } else {
7706 { /* Inline parser_nodes#ANode#parent= (var_n_assign,self) on <var_n_assign:nullable TAssign> */
7707 if (unlikely(var_n_assign == NULL)) {
7708 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7709 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
7710 show_backtrace(1);
7711 }
7712 var_n_assign->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_assign:nullable TAssign> */
7713 RET_LABEL3:(void)0;
7714 }
7715 }
7716 if (unlikely(var_n_value == NULL)) {
7717 PRINT_ERROR("Runtime error: %s", "Cast failed");
7718 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5363);
7719 show_backtrace(1);
7720 }
7721 self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_value].val = var_n_value; /* _n_value on <self:ABraAssignExpr> */
7722 if (var_n_value == NULL) {
7723 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7724 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5364);
7725 show_backtrace(1);
7726 } else {
7727 { /* Inline parser_nodes#ANode#parent= (var_n_value,self) on <var_n_value:nullable AExpr> */
7728 if (unlikely(var_n_value == NULL)) {
7729 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7730 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
7731 show_backtrace(1);
7732 }
7733 var_n_value->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_value:nullable AExpr> */
7734 RET_LABEL4:(void)0;
7735 }
7736 }
7737 RET_LABEL:;
7738 }
7739 /* method parser_prod#ABraAssignExpr#init_abraassignexpr for (self: Object, nullable AExpr, nullable AExprs, nullable TAssign, nullable AExpr) */
7740 void VIRTUAL_parser_prod__ABraAssignExpr__init_abraassignexpr(val* self, val* p0, val* p1, val* p2, val* p3) {
7741 parser_prod__ABraAssignExpr__init_abraassignexpr(self, p0, p1, p2, p3); /* Direct call parser_prod#ABraAssignExpr#init_abraassignexpr on <self:Object(ABraAssignExpr)>*/
7742 RET_LABEL:;
7743 }
7744 /* method parser_prod#ABraAssignExpr#replace_child for (self: ABraAssignExpr, ANode, nullable ANode) */
7745 void parser_prod__ABraAssignExpr__replace_child(val* self, val* p0, val* p1) {
7746 val* var_old_child /* var old_child: ANode */;
7747 val* var_new_child /* var new_child: nullable ANode */;
7748 val* var /* : AExpr */;
7749 short int var1 /* : Bool */;
7750 short int var2 /* : Bool */;
7751 val* var_other /* var other: nullable Object */;
7752 short int var4 /* : Bool */;
7753 short int var6 /* : Bool */;
7754 short int var7 /* : Bool */;
7755 int cltype;
7756 int idtype;
7757 const char* var_class_name;
7758 val* var8 /* : AExprs */;
7759 short int var9 /* : Bool */;
7760 short int var10 /* : Bool */;
7761 short int var12 /* : Bool */;
7762 short int var14 /* : Bool */;
7763 short int var15 /* : Bool */;
7764 int cltype16;
7765 int idtype17;
7766 const char* var_class_name18;
7767 val* var19 /* : TAssign */;
7768 short int var20 /* : Bool */;
7769 short int var21 /* : Bool */;
7770 short int var23 /* : Bool */;
7771 short int var25 /* : Bool */;
7772 short int var26 /* : Bool */;
7773 int cltype27;
7774 int idtype28;
7775 const char* var_class_name29;
7776 val* var30 /* : AExpr */;
7777 short int var31 /* : Bool */;
7778 short int var32 /* : Bool */;
7779 short int var34 /* : Bool */;
7780 short int var36 /* : Bool */;
7781 short int var37 /* : Bool */;
7782 int cltype38;
7783 int idtype39;
7784 const char* var_class_name40;
7785 var_old_child = p0;
7786 var_new_child = p1;
7787 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ABraAssignExpr> */
7788 if (unlikely(var == NULL)) {
7789 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
7790 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5369);
7791 show_backtrace(1);
7792 }
7793 {
7794 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
7795 var_other = var_old_child;
7796 {
7797 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
7798 var6 = var == var_other;
7799 var4 = var6;
7800 goto RET_LABEL5;
7801 RET_LABEL5:(void)0;
7802 }
7803 }
7804 var2 = var4;
7805 goto RET_LABEL3;
7806 RET_LABEL3:(void)0;
7807 }
7808 var1 = var2;
7809 }
7810 if (var1){
7811 /* <var_new_child:nullable ANode> isa AExpr */
7812 cltype = type_parser_nodes__AExpr.color;
7813 idtype = type_parser_nodes__AExpr.id;
7814 if(var_new_child == NULL) {
7815 var7 = 0;
7816 } else {
7817 if(cltype >= var_new_child->type->table_size) {
7818 var7 = 0;
7819 } else {
7820 var7 = var_new_child->type->type_table[cltype] == idtype;
7821 }
7822 }
7823 if (unlikely(!var7)) {
7824 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
7825 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
7826 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5370);
7827 show_backtrace(1);
7828 }
7829 {
7830 parser_prod__ABraAssignExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#ABraAssignExpr#n_expr= on <self:ABraAssignExpr>*/
7831 }
7832 goto RET_LABEL;
7833 } else {
7834 }
7835 var8 = self->attrs[COLOR_parser_nodes__ABraFormExpr___n_args].val; /* _n_args on <self:ABraAssignExpr> */
7836 if (unlikely(var8 == NULL)) {
7837 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
7838 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5373);
7839 show_backtrace(1);
7840 }
7841 {
7842 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExprs> */
7843 var_other = var_old_child;
7844 {
7845 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExprs> */
7846 var14 = var8 == var_other;
7847 var12 = var14;
7848 goto RET_LABEL13;
7849 RET_LABEL13:(void)0;
7850 }
7851 }
7852 var10 = var12;
7853 goto RET_LABEL11;
7854 RET_LABEL11:(void)0;
7855 }
7856 var9 = var10;
7857 }
7858 if (var9){
7859 /* <var_new_child:nullable ANode> isa AExprs */
7860 cltype16 = type_parser_nodes__AExprs.color;
7861 idtype17 = type_parser_nodes__AExprs.id;
7862 if(var_new_child == NULL) {
7863 var15 = 0;
7864 } else {
7865 if(cltype16 >= var_new_child->type->table_size) {
7866 var15 = 0;
7867 } else {
7868 var15 = var_new_child->type->type_table[cltype16] == idtype17;
7869 }
7870 }
7871 if (unlikely(!var15)) {
7872 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
7873 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExprs", var_class_name18);
7874 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5374);
7875 show_backtrace(1);
7876 }
7877 {
7878 parser_prod__ABraAssignExpr__n_args_61d(self, var_new_child); /* Direct call parser_prod#ABraAssignExpr#n_args= on <self:ABraAssignExpr>*/
7879 }
7880 goto RET_LABEL;
7881 } else {
7882 }
7883 var19 = self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_assign].val; /* _n_assign on <self:ABraAssignExpr> */
7884 if (unlikely(var19 == NULL)) {
7885 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_assign");
7886 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5377);
7887 show_backtrace(1);
7888 }
7889 {
7890 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:TAssign> */
7891 var_other = var_old_child;
7892 {
7893 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:TAssign> */
7894 var25 = var19 == var_other;
7895 var23 = var25;
7896 goto RET_LABEL24;
7897 RET_LABEL24:(void)0;
7898 }
7899 }
7900 var21 = var23;
7901 goto RET_LABEL22;
7902 RET_LABEL22:(void)0;
7903 }
7904 var20 = var21;
7905 }
7906 if (var20){
7907 /* <var_new_child:nullable ANode> isa TAssign */
7908 cltype27 = type_parser_nodes__TAssign.color;
7909 idtype28 = type_parser_nodes__TAssign.id;
7910 if(var_new_child == NULL) {
7911 var26 = 0;
7912 } else {
7913 if(cltype27 >= var_new_child->type->table_size) {
7914 var26 = 0;
7915 } else {
7916 var26 = var_new_child->type->type_table[cltype27] == idtype28;
7917 }
7918 }
7919 if (unlikely(!var26)) {
7920 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
7921 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TAssign", var_class_name29);
7922 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5378);
7923 show_backtrace(1);
7924 }
7925 {
7926 parser_prod__ABraAssignExpr__n_assign_61d(self, var_new_child); /* Direct call parser_prod#ABraAssignExpr#n_assign= on <self:ABraAssignExpr>*/
7927 }
7928 goto RET_LABEL;
7929 } else {
7930 }
7931 var30 = self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_value].val; /* _n_value on <self:ABraAssignExpr> */
7932 if (unlikely(var30 == NULL)) {
7933 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
7934 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5381);
7935 show_backtrace(1);
7936 }
7937 {
7938 { /* Inline kernel#Object#== (var30,var_old_child) on <var30:AExpr> */
7939 var_other = var_old_child;
7940 {
7941 { /* Inline kernel#Object#is_same_instance (var30,var_other) on <var30:AExpr> */
7942 var36 = var30 == var_other;
7943 var34 = var36;
7944 goto RET_LABEL35;
7945 RET_LABEL35:(void)0;
7946 }
7947 }
7948 var32 = var34;
7949 goto RET_LABEL33;
7950 RET_LABEL33:(void)0;
7951 }
7952 var31 = var32;
7953 }
7954 if (var31){
7955 /* <var_new_child:nullable ANode> isa AExpr */
7956 cltype38 = type_parser_nodes__AExpr.color;
7957 idtype39 = type_parser_nodes__AExpr.id;
7958 if(var_new_child == NULL) {
7959 var37 = 0;
7960 } else {
7961 if(cltype38 >= var_new_child->type->table_size) {
7962 var37 = 0;
7963 } else {
7964 var37 = var_new_child->type->type_table[cltype38] == idtype39;
7965 }
7966 }
7967 if (unlikely(!var37)) {
7968 var_class_name40 = var_new_child == NULL ? "null" : var_new_child->type->name;
7969 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name40);
7970 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5382);
7971 show_backtrace(1);
7972 }
7973 {
7974 parser_prod__ABraAssignExpr__n_value_61d(self, var_new_child); /* Direct call parser_prod#ABraAssignExpr#n_value= on <self:ABraAssignExpr>*/
7975 }
7976 goto RET_LABEL;
7977 } else {
7978 }
7979 RET_LABEL:;
7980 }
7981 /* method parser_prod#ABraAssignExpr#replace_child for (self: Object, ANode, nullable ANode) */
7982 void VIRTUAL_parser_prod__ABraAssignExpr__replace_child(val* self, val* p0, val* p1) {
7983 parser_prod__ABraAssignExpr__replace_child(self, p0, p1); /* Direct call parser_prod#ABraAssignExpr#replace_child on <self:Object(ABraAssignExpr)>*/
7984 RET_LABEL:;
7985 }
7986 /* method parser_prod#ABraAssignExpr#n_expr= for (self: ABraAssignExpr, AExpr) */
7987 void parser_prod__ABraAssignExpr__n_expr_61d(val* self, val* p0) {
7988 val* var_node /* var node: AExpr */;
7989 var_node = p0;
7990 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:ABraAssignExpr> */
7991 {
7992 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
7993 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
7994 RET_LABEL1:(void)0;
7995 }
7996 }
7997 RET_LABEL:;
7998 }
7999 /* method parser_prod#ABraAssignExpr#n_expr= for (self: Object, AExpr) */
8000 void VIRTUAL_parser_prod__ABraAssignExpr__n_expr_61d(val* self, val* p0) {
8001 parser_prod__ABraAssignExpr__n_expr_61d(self, p0); /* Direct call parser_prod#ABraAssignExpr#n_expr= on <self:Object(ABraAssignExpr)>*/
8002 RET_LABEL:;
8003 }
8004 /* method parser_prod#ABraAssignExpr#n_args= for (self: ABraAssignExpr, AExprs) */
8005 void parser_prod__ABraAssignExpr__n_args_61d(val* self, val* p0) {
8006 val* var_node /* var node: AExprs */;
8007 var_node = p0;
8008 self->attrs[COLOR_parser_nodes__ABraFormExpr___n_args].val = var_node; /* _n_args on <self:ABraAssignExpr> */
8009 {
8010 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExprs> */
8011 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExprs> */
8012 RET_LABEL1:(void)0;
8013 }
8014 }
8015 RET_LABEL:;
8016 }
8017 /* method parser_prod#ABraAssignExpr#n_args= for (self: Object, AExprs) */
8018 void VIRTUAL_parser_prod__ABraAssignExpr__n_args_61d(val* self, val* p0) {
8019 parser_prod__ABraAssignExpr__n_args_61d(self, p0); /* Direct call parser_prod#ABraAssignExpr#n_args= on <self:Object(ABraAssignExpr)>*/
8020 RET_LABEL:;
8021 }
8022 /* method parser_prod#ABraAssignExpr#n_assign= for (self: ABraAssignExpr, TAssign) */
8023 void parser_prod__ABraAssignExpr__n_assign_61d(val* self, val* p0) {
8024 val* var_node /* var node: TAssign */;
8025 var_node = p0;
8026 self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_assign].val = var_node; /* _n_assign on <self:ABraAssignExpr> */
8027 {
8028 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TAssign> */
8029 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TAssign> */
8030 RET_LABEL1:(void)0;
8031 }
8032 }
8033 RET_LABEL:;
8034 }
8035 /* method parser_prod#ABraAssignExpr#n_assign= for (self: Object, TAssign) */
8036 void VIRTUAL_parser_prod__ABraAssignExpr__n_assign_61d(val* self, val* p0) {
8037 parser_prod__ABraAssignExpr__n_assign_61d(self, p0); /* Direct call parser_prod#ABraAssignExpr#n_assign= on <self:Object(ABraAssignExpr)>*/
8038 RET_LABEL:;
8039 }
8040 /* method parser_prod#ABraAssignExpr#n_value= for (self: ABraAssignExpr, AExpr) */
8041 void parser_prod__ABraAssignExpr__n_value_61d(val* self, val* p0) {
8042 val* var_node /* var node: AExpr */;
8043 var_node = p0;
8044 self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_value].val = var_node; /* _n_value on <self:ABraAssignExpr> */
8045 {
8046 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
8047 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
8048 RET_LABEL1:(void)0;
8049 }
8050 }
8051 RET_LABEL:;
8052 }
8053 /* method parser_prod#ABraAssignExpr#n_value= for (self: Object, AExpr) */
8054 void VIRTUAL_parser_prod__ABraAssignExpr__n_value_61d(val* self, val* p0) {
8055 parser_prod__ABraAssignExpr__n_value_61d(self, p0); /* Direct call parser_prod#ABraAssignExpr#n_value= on <self:Object(ABraAssignExpr)>*/
8056 RET_LABEL:;
8057 }
8058 /* method parser_prod#ABraAssignExpr#visit_all for (self: ABraAssignExpr, Visitor) */
8059 void parser_prod__ABraAssignExpr__visit_all(val* self, val* p0) {
8060 val* var_v /* var v: Visitor */;
8061 val* var /* : AExpr */;
8062 val* var1 /* : AExprs */;
8063 val* var2 /* : TAssign */;
8064 val* var3 /* : AExpr */;
8065 var_v = p0;
8066 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ABraAssignExpr> */
8067 if (unlikely(var == NULL)) {
8068 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
8069 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5411);
8070 show_backtrace(1);
8071 }
8072 {
8073 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8074 }
8075 var1 = self->attrs[COLOR_parser_nodes__ABraFormExpr___n_args].val; /* _n_args on <self:ABraAssignExpr> */
8076 if (unlikely(var1 == NULL)) {
8077 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
8078 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5412);
8079 show_backtrace(1);
8080 }
8081 {
8082 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8083 }
8084 var2 = self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_assign].val; /* _n_assign on <self:ABraAssignExpr> */
8085 if (unlikely(var2 == NULL)) {
8086 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_assign");
8087 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5413);
8088 show_backtrace(1);
8089 }
8090 {
8091 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8092 }
8093 var3 = self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_value].val; /* _n_value on <self:ABraAssignExpr> */
8094 if (unlikely(var3 == NULL)) {
8095 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
8096 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5414);
8097 show_backtrace(1);
8098 }
8099 {
8100 parser_nodes__Visitor__enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8101 }
8102 RET_LABEL:;
8103 }
8104 /* method parser_prod#ABraAssignExpr#visit_all for (self: Object, Visitor) */
8105 void VIRTUAL_parser_prod__ABraAssignExpr__visit_all(val* self, val* p0) {
8106 parser_prod__ABraAssignExpr__visit_all(self, p0); /* Direct call parser_prod#ABraAssignExpr#visit_all on <self:Object(ABraAssignExpr)>*/
8107 RET_LABEL:;
8108 }
8109 /* method parser_prod#ABraReassignExpr#init_abrareassignexpr for (self: ABraReassignExpr, nullable AExpr, nullable AExprs, nullable AAssignOp, nullable AExpr) */
8110 void parser_prod__ABraReassignExpr__init_abrareassignexpr(val* self, val* p0, val* p1, val* p2, val* p3) {
8111 val* var_n_expr /* var n_expr: nullable AExpr */;
8112 val* var_n_args /* var n_args: nullable AExprs */;
8113 val* var_n_assign_op /* var n_assign_op: nullable AAssignOp */;
8114 val* var_n_value /* var n_value: nullable AExpr */;
8115 var_n_expr = p0;
8116 var_n_args = p1;
8117 var_n_assign_op = p2;
8118 var_n_value = p3;
8119 if (unlikely(var_n_expr == NULL)) {
8120 PRINT_ERROR("Runtime error: %s", "Cast failed");
8121 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5425);
8122 show_backtrace(1);
8123 }
8124 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:ABraReassignExpr> */
8125 if (var_n_expr == NULL) {
8126 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8127 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5426);
8128 show_backtrace(1);
8129 } else {
8130 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
8131 if (unlikely(var_n_expr == NULL)) {
8132 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8133 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
8134 show_backtrace(1);
8135 }
8136 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
8137 RET_LABEL1:(void)0;
8138 }
8139 }
8140 if (unlikely(var_n_args == NULL)) {
8141 PRINT_ERROR("Runtime error: %s", "Cast failed");
8142 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5427);
8143 show_backtrace(1);
8144 }
8145 self->attrs[COLOR_parser_nodes__ABraFormExpr___n_args].val = var_n_args; /* _n_args on <self:ABraReassignExpr> */
8146 if (var_n_args == NULL) {
8147 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8148 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5428);
8149 show_backtrace(1);
8150 } else {
8151 { /* Inline parser_nodes#ANode#parent= (var_n_args,self) on <var_n_args:nullable AExprs> */
8152 if (unlikely(var_n_args == NULL)) {
8153 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8154 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
8155 show_backtrace(1);
8156 }
8157 var_n_args->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_args:nullable AExprs> */
8158 RET_LABEL2:(void)0;
8159 }
8160 }
8161 if (unlikely(var_n_assign_op == NULL)) {
8162 PRINT_ERROR("Runtime error: %s", "Cast failed");
8163 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5429);
8164 show_backtrace(1);
8165 }
8166 self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_assign_op].val = var_n_assign_op; /* _n_assign_op on <self:ABraReassignExpr> */
8167 if (var_n_assign_op == NULL) {
8168 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8169 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5430);
8170 show_backtrace(1);
8171 } else {
8172 { /* Inline parser_nodes#ANode#parent= (var_n_assign_op,self) on <var_n_assign_op:nullable AAssignOp> */
8173 if (unlikely(var_n_assign_op == NULL)) {
8174 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8175 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
8176 show_backtrace(1);
8177 }
8178 var_n_assign_op->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_assign_op:nullable AAssignOp> */
8179 RET_LABEL3:(void)0;
8180 }
8181 }
8182 if (unlikely(var_n_value == NULL)) {
8183 PRINT_ERROR("Runtime error: %s", "Cast failed");
8184 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5431);
8185 show_backtrace(1);
8186 }
8187 self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_value].val = var_n_value; /* _n_value on <self:ABraReassignExpr> */
8188 if (var_n_value == NULL) {
8189 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8190 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5432);
8191 show_backtrace(1);
8192 } else {
8193 { /* Inline parser_nodes#ANode#parent= (var_n_value,self) on <var_n_value:nullable AExpr> */
8194 if (unlikely(var_n_value == NULL)) {
8195 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8196 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
8197 show_backtrace(1);
8198 }
8199 var_n_value->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_value:nullable AExpr> */
8200 RET_LABEL4:(void)0;
8201 }
8202 }
8203 RET_LABEL:;
8204 }
8205 /* method parser_prod#ABraReassignExpr#init_abrareassignexpr for (self: Object, nullable AExpr, nullable AExprs, nullable AAssignOp, nullable AExpr) */
8206 void VIRTUAL_parser_prod__ABraReassignExpr__init_abrareassignexpr(val* self, val* p0, val* p1, val* p2, val* p3) {
8207 parser_prod__ABraReassignExpr__init_abrareassignexpr(self, p0, p1, p2, p3); /* Direct call parser_prod#ABraReassignExpr#init_abrareassignexpr on <self:Object(ABraReassignExpr)>*/
8208 RET_LABEL:;
8209 }
8210 /* method parser_prod#ABraReassignExpr#replace_child for (self: ABraReassignExpr, ANode, nullable ANode) */
8211 void parser_prod__ABraReassignExpr__replace_child(val* self, val* p0, val* p1) {
8212 val* var_old_child /* var old_child: ANode */;
8213 val* var_new_child /* var new_child: nullable ANode */;
8214 val* var /* : AExpr */;
8215 short int var1 /* : Bool */;
8216 short int var2 /* : Bool */;
8217 val* var_other /* var other: nullable Object */;
8218 short int var4 /* : Bool */;
8219 short int var6 /* : Bool */;
8220 short int var7 /* : Bool */;
8221 int cltype;
8222 int idtype;
8223 const char* var_class_name;
8224 val* var8 /* : AExprs */;
8225 short int var9 /* : Bool */;
8226 short int var10 /* : Bool */;
8227 short int var12 /* : Bool */;
8228 short int var14 /* : Bool */;
8229 short int var15 /* : Bool */;
8230 int cltype16;
8231 int idtype17;
8232 const char* var_class_name18;
8233 val* var19 /* : AAssignOp */;
8234 short int var20 /* : Bool */;
8235 short int var21 /* : Bool */;
8236 short int var23 /* : Bool */;
8237 short int var25 /* : Bool */;
8238 short int var26 /* : Bool */;
8239 int cltype27;
8240 int idtype28;
8241 const char* var_class_name29;
8242 val* var30 /* : AExpr */;
8243 short int var31 /* : Bool */;
8244 short int var32 /* : Bool */;
8245 short int var34 /* : Bool */;
8246 short int var36 /* : Bool */;
8247 short int var37 /* : Bool */;
8248 int cltype38;
8249 int idtype39;
8250 const char* var_class_name40;
8251 var_old_child = p0;
8252 var_new_child = p1;
8253 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ABraReassignExpr> */
8254 if (unlikely(var == NULL)) {
8255 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
8256 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5437);
8257 show_backtrace(1);
8258 }
8259 {
8260 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
8261 var_other = var_old_child;
8262 {
8263 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
8264 var6 = var == var_other;
8265 var4 = var6;
8266 goto RET_LABEL5;
8267 RET_LABEL5:(void)0;
8268 }
8269 }
8270 var2 = var4;
8271 goto RET_LABEL3;
8272 RET_LABEL3:(void)0;
8273 }
8274 var1 = var2;
8275 }
8276 if (var1){
8277 /* <var_new_child:nullable ANode> isa AExpr */
8278 cltype = type_parser_nodes__AExpr.color;
8279 idtype = type_parser_nodes__AExpr.id;
8280 if(var_new_child == NULL) {
8281 var7 = 0;
8282 } else {
8283 if(cltype >= var_new_child->type->table_size) {
8284 var7 = 0;
8285 } else {
8286 var7 = var_new_child->type->type_table[cltype] == idtype;
8287 }
8288 }
8289 if (unlikely(!var7)) {
8290 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
8291 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
8292 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5438);
8293 show_backtrace(1);
8294 }
8295 {
8296 parser_prod__ABraReassignExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#ABraReassignExpr#n_expr= on <self:ABraReassignExpr>*/
8297 }
8298 goto RET_LABEL;
8299 } else {
8300 }
8301 var8 = self->attrs[COLOR_parser_nodes__ABraFormExpr___n_args].val; /* _n_args on <self:ABraReassignExpr> */
8302 if (unlikely(var8 == NULL)) {
8303 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
8304 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5441);
8305 show_backtrace(1);
8306 }
8307 {
8308 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExprs> */
8309 var_other = var_old_child;
8310 {
8311 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExprs> */
8312 var14 = var8 == var_other;
8313 var12 = var14;
8314 goto RET_LABEL13;
8315 RET_LABEL13:(void)0;
8316 }
8317 }
8318 var10 = var12;
8319 goto RET_LABEL11;
8320 RET_LABEL11:(void)0;
8321 }
8322 var9 = var10;
8323 }
8324 if (var9){
8325 /* <var_new_child:nullable ANode> isa AExprs */
8326 cltype16 = type_parser_nodes__AExprs.color;
8327 idtype17 = type_parser_nodes__AExprs.id;
8328 if(var_new_child == NULL) {
8329 var15 = 0;
8330 } else {
8331 if(cltype16 >= var_new_child->type->table_size) {
8332 var15 = 0;
8333 } else {
8334 var15 = var_new_child->type->type_table[cltype16] == idtype17;
8335 }
8336 }
8337 if (unlikely(!var15)) {
8338 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
8339 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExprs", var_class_name18);
8340 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5442);
8341 show_backtrace(1);
8342 }
8343 {
8344 parser_prod__ABraReassignExpr__n_args_61d(self, var_new_child); /* Direct call parser_prod#ABraReassignExpr#n_args= on <self:ABraReassignExpr>*/
8345 }
8346 goto RET_LABEL;
8347 } else {
8348 }
8349 var19 = self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_assign_op].val; /* _n_assign_op on <self:ABraReassignExpr> */
8350 if (unlikely(var19 == NULL)) {
8351 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_assign_op");
8352 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5445);
8353 show_backtrace(1);
8354 }
8355 {
8356 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:AAssignOp> */
8357 var_other = var_old_child;
8358 {
8359 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:AAssignOp> */
8360 var25 = var19 == var_other;
8361 var23 = var25;
8362 goto RET_LABEL24;
8363 RET_LABEL24:(void)0;
8364 }
8365 }
8366 var21 = var23;
8367 goto RET_LABEL22;
8368 RET_LABEL22:(void)0;
8369 }
8370 var20 = var21;
8371 }
8372 if (var20){
8373 /* <var_new_child:nullable ANode> isa AAssignOp */
8374 cltype27 = type_parser_nodes__AAssignOp.color;
8375 idtype28 = type_parser_nodes__AAssignOp.id;
8376 if(var_new_child == NULL) {
8377 var26 = 0;
8378 } else {
8379 if(cltype27 >= var_new_child->type->table_size) {
8380 var26 = 0;
8381 } else {
8382 var26 = var_new_child->type->type_table[cltype27] == idtype28;
8383 }
8384 }
8385 if (unlikely(!var26)) {
8386 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
8387 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AAssignOp", var_class_name29);
8388 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5446);
8389 show_backtrace(1);
8390 }
8391 {
8392 parser_prod__ABraReassignExpr__n_assign_op_61d(self, var_new_child); /* Direct call parser_prod#ABraReassignExpr#n_assign_op= on <self:ABraReassignExpr>*/
8393 }
8394 goto RET_LABEL;
8395 } else {
8396 }
8397 var30 = self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_value].val; /* _n_value on <self:ABraReassignExpr> */
8398 if (unlikely(var30 == NULL)) {
8399 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
8400 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5449);
8401 show_backtrace(1);
8402 }
8403 {
8404 { /* Inline kernel#Object#== (var30,var_old_child) on <var30:AExpr> */
8405 var_other = var_old_child;
8406 {
8407 { /* Inline kernel#Object#is_same_instance (var30,var_other) on <var30:AExpr> */
8408 var36 = var30 == var_other;
8409 var34 = var36;
8410 goto RET_LABEL35;
8411 RET_LABEL35:(void)0;
8412 }
8413 }
8414 var32 = var34;
8415 goto RET_LABEL33;
8416 RET_LABEL33:(void)0;
8417 }
8418 var31 = var32;
8419 }
8420 if (var31){
8421 /* <var_new_child:nullable ANode> isa AExpr */
8422 cltype38 = type_parser_nodes__AExpr.color;
8423 idtype39 = type_parser_nodes__AExpr.id;
8424 if(var_new_child == NULL) {
8425 var37 = 0;
8426 } else {
8427 if(cltype38 >= var_new_child->type->table_size) {
8428 var37 = 0;
8429 } else {
8430 var37 = var_new_child->type->type_table[cltype38] == idtype39;
8431 }
8432 }
8433 if (unlikely(!var37)) {
8434 var_class_name40 = var_new_child == NULL ? "null" : var_new_child->type->name;
8435 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name40);
8436 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5450);
8437 show_backtrace(1);
8438 }
8439 {
8440 parser_prod__ABraReassignExpr__n_value_61d(self, var_new_child); /* Direct call parser_prod#ABraReassignExpr#n_value= on <self:ABraReassignExpr>*/
8441 }
8442 goto RET_LABEL;
8443 } else {
8444 }
8445 RET_LABEL:;
8446 }
8447 /* method parser_prod#ABraReassignExpr#replace_child for (self: Object, ANode, nullable ANode) */
8448 void VIRTUAL_parser_prod__ABraReassignExpr__replace_child(val* self, val* p0, val* p1) {
8449 parser_prod__ABraReassignExpr__replace_child(self, p0, p1); /* Direct call parser_prod#ABraReassignExpr#replace_child on <self:Object(ABraReassignExpr)>*/
8450 RET_LABEL:;
8451 }
8452 /* method parser_prod#ABraReassignExpr#n_expr= for (self: ABraReassignExpr, AExpr) */
8453 void parser_prod__ABraReassignExpr__n_expr_61d(val* self, val* p0) {
8454 val* var_node /* var node: AExpr */;
8455 var_node = p0;
8456 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:ABraReassignExpr> */
8457 {
8458 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
8459 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
8460 RET_LABEL1:(void)0;
8461 }
8462 }
8463 RET_LABEL:;
8464 }
8465 /* method parser_prod#ABraReassignExpr#n_expr= for (self: Object, AExpr) */
8466 void VIRTUAL_parser_prod__ABraReassignExpr__n_expr_61d(val* self, val* p0) {
8467 parser_prod__ABraReassignExpr__n_expr_61d(self, p0); /* Direct call parser_prod#ABraReassignExpr#n_expr= on <self:Object(ABraReassignExpr)>*/
8468 RET_LABEL:;
8469 }
8470 /* method parser_prod#ABraReassignExpr#n_args= for (self: ABraReassignExpr, AExprs) */
8471 void parser_prod__ABraReassignExpr__n_args_61d(val* self, val* p0) {
8472 val* var_node /* var node: AExprs */;
8473 var_node = p0;
8474 self->attrs[COLOR_parser_nodes__ABraFormExpr___n_args].val = var_node; /* _n_args on <self:ABraReassignExpr> */
8475 {
8476 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExprs> */
8477 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExprs> */
8478 RET_LABEL1:(void)0;
8479 }
8480 }
8481 RET_LABEL:;
8482 }
8483 /* method parser_prod#ABraReassignExpr#n_args= for (self: Object, AExprs) */
8484 void VIRTUAL_parser_prod__ABraReassignExpr__n_args_61d(val* self, val* p0) {
8485 parser_prod__ABraReassignExpr__n_args_61d(self, p0); /* Direct call parser_prod#ABraReassignExpr#n_args= on <self:Object(ABraReassignExpr)>*/
8486 RET_LABEL:;
8487 }
8488 /* method parser_prod#ABraReassignExpr#n_assign_op= for (self: ABraReassignExpr, AAssignOp) */
8489 void parser_prod__ABraReassignExpr__n_assign_op_61d(val* self, val* p0) {
8490 val* var_node /* var node: AAssignOp */;
8491 var_node = p0;
8492 self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_assign_op].val = var_node; /* _n_assign_op on <self:ABraReassignExpr> */
8493 {
8494 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AAssignOp> */
8495 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AAssignOp> */
8496 RET_LABEL1:(void)0;
8497 }
8498 }
8499 RET_LABEL:;
8500 }
8501 /* method parser_prod#ABraReassignExpr#n_assign_op= for (self: Object, AAssignOp) */
8502 void VIRTUAL_parser_prod__ABraReassignExpr__n_assign_op_61d(val* self, val* p0) {
8503 parser_prod__ABraReassignExpr__n_assign_op_61d(self, p0); /* Direct call parser_prod#ABraReassignExpr#n_assign_op= on <self:Object(ABraReassignExpr)>*/
8504 RET_LABEL:;
8505 }
8506 /* method parser_prod#ABraReassignExpr#n_value= for (self: ABraReassignExpr, AExpr) */
8507 void parser_prod__ABraReassignExpr__n_value_61d(val* self, val* p0) {
8508 val* var_node /* var node: AExpr */;
8509 var_node = p0;
8510 self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_value].val = var_node; /* _n_value on <self:ABraReassignExpr> */
8511 {
8512 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
8513 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
8514 RET_LABEL1:(void)0;
8515 }
8516 }
8517 RET_LABEL:;
8518 }
8519 /* method parser_prod#ABraReassignExpr#n_value= for (self: Object, AExpr) */
8520 void VIRTUAL_parser_prod__ABraReassignExpr__n_value_61d(val* self, val* p0) {
8521 parser_prod__ABraReassignExpr__n_value_61d(self, p0); /* Direct call parser_prod#ABraReassignExpr#n_value= on <self:Object(ABraReassignExpr)>*/
8522 RET_LABEL:;
8523 }
8524 /* method parser_prod#ABraReassignExpr#visit_all for (self: ABraReassignExpr, Visitor) */
8525 void parser_prod__ABraReassignExpr__visit_all(val* self, val* p0) {
8526 val* var_v /* var v: Visitor */;
8527 val* var /* : AExpr */;
8528 val* var1 /* : AExprs */;
8529 val* var2 /* : AAssignOp */;
8530 val* var3 /* : AExpr */;
8531 var_v = p0;
8532 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ABraReassignExpr> */
8533 if (unlikely(var == NULL)) {
8534 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
8535 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5479);
8536 show_backtrace(1);
8537 }
8538 {
8539 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8540 }
8541 var1 = self->attrs[COLOR_parser_nodes__ABraFormExpr___n_args].val; /* _n_args on <self:ABraReassignExpr> */
8542 if (unlikely(var1 == NULL)) {
8543 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
8544 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5480);
8545 show_backtrace(1);
8546 }
8547 {
8548 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8549 }
8550 var2 = self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_assign_op].val; /* _n_assign_op on <self:ABraReassignExpr> */
8551 if (unlikely(var2 == NULL)) {
8552 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_assign_op");
8553 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5481);
8554 show_backtrace(1);
8555 }
8556 {
8557 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8558 }
8559 var3 = self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_value].val; /* _n_value on <self:ABraReassignExpr> */
8560 if (unlikely(var3 == NULL)) {
8561 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
8562 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5482);
8563 show_backtrace(1);
8564 }
8565 {
8566 parser_nodes__Visitor__enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8567 }
8568 RET_LABEL:;
8569 }
8570 /* method parser_prod#ABraReassignExpr#visit_all for (self: Object, Visitor) */
8571 void VIRTUAL_parser_prod__ABraReassignExpr__visit_all(val* self, val* p0) {
8572 parser_prod__ABraReassignExpr__visit_all(self, p0); /* Direct call parser_prod#ABraReassignExpr#visit_all on <self:Object(ABraReassignExpr)>*/
8573 RET_LABEL:;
8574 }
8575 /* method parser_prod#AVarExpr#init_avarexpr for (self: AVarExpr, nullable TId) */
8576 void parser_prod__AVarExpr__init_avarexpr(val* self, val* p0) {
8577 val* var_n_id /* var n_id: nullable TId */;
8578 var_n_id = p0;
8579 if (unlikely(var_n_id == NULL)) {
8580 PRINT_ERROR("Runtime error: %s", "Cast failed");
8581 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5490);
8582 show_backtrace(1);
8583 }
8584 self->attrs[COLOR_parser_nodes__AVarFormExpr___n_id].val = var_n_id; /* _n_id on <self:AVarExpr> */
8585 if (var_n_id == NULL) {
8586 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8587 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5491);
8588 show_backtrace(1);
8589 } else {
8590 { /* Inline parser_nodes#ANode#parent= (var_n_id,self) on <var_n_id:nullable TId> */
8591 if (unlikely(var_n_id == NULL)) {
8592 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8593 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
8594 show_backtrace(1);
8595 }
8596 var_n_id->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_id:nullable TId> */
8597 RET_LABEL1:(void)0;
8598 }
8599 }
8600 RET_LABEL:;
8601 }
8602 /* method parser_prod#AVarExpr#init_avarexpr for (self: Object, nullable TId) */
8603 void VIRTUAL_parser_prod__AVarExpr__init_avarexpr(val* self, val* p0) {
8604 parser_prod__AVarExpr__init_avarexpr(self, p0); /* Direct call parser_prod#AVarExpr#init_avarexpr on <self:Object(AVarExpr)>*/
8605 RET_LABEL:;
8606 }
8607 /* method parser_prod#AVarExpr#replace_child for (self: AVarExpr, ANode, nullable ANode) */
8608 void parser_prod__AVarExpr__replace_child(val* self, val* p0, val* p1) {
8609 val* var_old_child /* var old_child: ANode */;
8610 val* var_new_child /* var new_child: nullable ANode */;
8611 val* var /* : TId */;
8612 short int var1 /* : Bool */;
8613 short int var2 /* : Bool */;
8614 val* var_other /* var other: nullable Object */;
8615 short int var4 /* : Bool */;
8616 short int var6 /* : Bool */;
8617 short int var7 /* : Bool */;
8618 int cltype;
8619 int idtype;
8620 const char* var_class_name;
8621 var_old_child = p0;
8622 var_new_child = p1;
8623 var = self->attrs[COLOR_parser_nodes__AVarFormExpr___n_id].val; /* _n_id on <self:AVarExpr> */
8624 if (unlikely(var == NULL)) {
8625 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
8626 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5496);
8627 show_backtrace(1);
8628 }
8629 {
8630 { /* Inline kernel#Object#== (var,var_old_child) on <var:TId> */
8631 var_other = var_old_child;
8632 {
8633 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TId> */
8634 var6 = var == var_other;
8635 var4 = var6;
8636 goto RET_LABEL5;
8637 RET_LABEL5:(void)0;
8638 }
8639 }
8640 var2 = var4;
8641 goto RET_LABEL3;
8642 RET_LABEL3:(void)0;
8643 }
8644 var1 = var2;
8645 }
8646 if (var1){
8647 /* <var_new_child:nullable ANode> isa TId */
8648 cltype = type_parser_nodes__TId.color;
8649 idtype = type_parser_nodes__TId.id;
8650 if(var_new_child == NULL) {
8651 var7 = 0;
8652 } else {
8653 if(cltype >= var_new_child->type->table_size) {
8654 var7 = 0;
8655 } else {
8656 var7 = var_new_child->type->type_table[cltype] == idtype;
8657 }
8658 }
8659 if (unlikely(!var7)) {
8660 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
8661 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TId", var_class_name);
8662 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5497);
8663 show_backtrace(1);
8664 }
8665 {
8666 parser_prod__AVarExpr__n_id_61d(self, var_new_child); /* Direct call parser_prod#AVarExpr#n_id= on <self:AVarExpr>*/
8667 }
8668 goto RET_LABEL;
8669 } else {
8670 }
8671 RET_LABEL:;
8672 }
8673 /* method parser_prod#AVarExpr#replace_child for (self: Object, ANode, nullable ANode) */
8674 void VIRTUAL_parser_prod__AVarExpr__replace_child(val* self, val* p0, val* p1) {
8675 parser_prod__AVarExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AVarExpr#replace_child on <self:Object(AVarExpr)>*/
8676 RET_LABEL:;
8677 }
8678 /* method parser_prod#AVarExpr#n_id= for (self: AVarExpr, TId) */
8679 void parser_prod__AVarExpr__n_id_61d(val* self, val* p0) {
8680 val* var_node /* var node: TId */;
8681 var_node = p0;
8682 self->attrs[COLOR_parser_nodes__AVarFormExpr___n_id].val = var_node; /* _n_id on <self:AVarExpr> */
8683 {
8684 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TId> */
8685 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TId> */
8686 RET_LABEL1:(void)0;
8687 }
8688 }
8689 RET_LABEL:;
8690 }
8691 /* method parser_prod#AVarExpr#n_id= for (self: Object, TId) */
8692 void VIRTUAL_parser_prod__AVarExpr__n_id_61d(val* self, val* p0) {
8693 parser_prod__AVarExpr__n_id_61d(self, p0); /* Direct call parser_prod#AVarExpr#n_id= on <self:Object(AVarExpr)>*/
8694 RET_LABEL:;
8695 }
8696 /* method parser_prod#AVarExpr#visit_all for (self: AVarExpr, Visitor) */
8697 void parser_prod__AVarExpr__visit_all(val* self, val* p0) {
8698 val* var_v /* var v: Visitor */;
8699 val* var /* : TId */;
8700 var_v = p0;
8701 var = self->attrs[COLOR_parser_nodes__AVarFormExpr___n_id].val; /* _n_id on <self:AVarExpr> */
8702 if (unlikely(var == NULL)) {
8703 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
8704 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5511);
8705 show_backtrace(1);
8706 }
8707 {
8708 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8709 }
8710 RET_LABEL:;
8711 }
8712 /* method parser_prod#AVarExpr#visit_all for (self: Object, Visitor) */
8713 void VIRTUAL_parser_prod__AVarExpr__visit_all(val* self, val* p0) {
8714 parser_prod__AVarExpr__visit_all(self, p0); /* Direct call parser_prod#AVarExpr#visit_all on <self:Object(AVarExpr)>*/
8715 RET_LABEL:;
8716 }
8717 /* method parser_prod#AVarAssignExpr#init_avarassignexpr for (self: AVarAssignExpr, nullable TId, nullable TAssign, nullable AExpr) */
8718 void parser_prod__AVarAssignExpr__init_avarassignexpr(val* self, val* p0, val* p1, val* p2) {
8719 val* var_n_id /* var n_id: nullable TId */;
8720 val* var_n_assign /* var n_assign: nullable TAssign */;
8721 val* var_n_value /* var n_value: nullable AExpr */;
8722 var_n_id = p0;
8723 var_n_assign = p1;
8724 var_n_value = p2;
8725 if (unlikely(var_n_id == NULL)) {
8726 PRINT_ERROR("Runtime error: %s", "Cast failed");
8727 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5521);
8728 show_backtrace(1);
8729 }
8730 self->attrs[COLOR_parser_nodes__AVarFormExpr___n_id].val = var_n_id; /* _n_id on <self:AVarAssignExpr> */
8731 if (var_n_id == NULL) {
8732 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8733 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5522);
8734 show_backtrace(1);
8735 } else {
8736 { /* Inline parser_nodes#ANode#parent= (var_n_id,self) on <var_n_id:nullable TId> */
8737 if (unlikely(var_n_id == NULL)) {
8738 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8739 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
8740 show_backtrace(1);
8741 }
8742 var_n_id->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_id:nullable TId> */
8743 RET_LABEL1:(void)0;
8744 }
8745 }
8746 if (unlikely(var_n_assign == NULL)) {
8747 PRINT_ERROR("Runtime error: %s", "Cast failed");
8748 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5523);
8749 show_backtrace(1);
8750 }
8751 self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_assign].val = var_n_assign; /* _n_assign on <self:AVarAssignExpr> */
8752 if (var_n_assign == NULL) {
8753 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8754 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5524);
8755 show_backtrace(1);
8756 } else {
8757 { /* Inline parser_nodes#ANode#parent= (var_n_assign,self) on <var_n_assign:nullable TAssign> */
8758 if (unlikely(var_n_assign == NULL)) {
8759 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8760 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
8761 show_backtrace(1);
8762 }
8763 var_n_assign->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_assign:nullable TAssign> */
8764 RET_LABEL2:(void)0;
8765 }
8766 }
8767 if (unlikely(var_n_value == NULL)) {
8768 PRINT_ERROR("Runtime error: %s", "Cast failed");
8769 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5525);
8770 show_backtrace(1);
8771 }
8772 self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_value].val = var_n_value; /* _n_value on <self:AVarAssignExpr> */
8773 if (var_n_value == NULL) {
8774 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8775 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5526);
8776 show_backtrace(1);
8777 } else {
8778 { /* Inline parser_nodes#ANode#parent= (var_n_value,self) on <var_n_value:nullable AExpr> */
8779 if (unlikely(var_n_value == NULL)) {
8780 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8781 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
8782 show_backtrace(1);
8783 }
8784 var_n_value->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_value:nullable AExpr> */
8785 RET_LABEL3:(void)0;
8786 }
8787 }
8788 RET_LABEL:;
8789 }
8790 /* method parser_prod#AVarAssignExpr#init_avarassignexpr for (self: Object, nullable TId, nullable TAssign, nullable AExpr) */
8791 void VIRTUAL_parser_prod__AVarAssignExpr__init_avarassignexpr(val* self, val* p0, val* p1, val* p2) {
8792 parser_prod__AVarAssignExpr__init_avarassignexpr(self, p0, p1, p2); /* Direct call parser_prod#AVarAssignExpr#init_avarassignexpr on <self:Object(AVarAssignExpr)>*/
8793 RET_LABEL:;
8794 }
8795 /* method parser_prod#AVarAssignExpr#replace_child for (self: AVarAssignExpr, ANode, nullable ANode) */
8796 void parser_prod__AVarAssignExpr__replace_child(val* self, val* p0, val* p1) {
8797 val* var_old_child /* var old_child: ANode */;
8798 val* var_new_child /* var new_child: nullable ANode */;
8799 val* var /* : TId */;
8800 short int var1 /* : Bool */;
8801 short int var2 /* : Bool */;
8802 val* var_other /* var other: nullable Object */;
8803 short int var4 /* : Bool */;
8804 short int var6 /* : Bool */;
8805 short int var7 /* : Bool */;
8806 int cltype;
8807 int idtype;
8808 const char* var_class_name;
8809 val* var8 /* : TAssign */;
8810 short int var9 /* : Bool */;
8811 short int var10 /* : Bool */;
8812 short int var12 /* : Bool */;
8813 short int var14 /* : Bool */;
8814 short int var15 /* : Bool */;
8815 int cltype16;
8816 int idtype17;
8817 const char* var_class_name18;
8818 val* var19 /* : AExpr */;
8819 short int var20 /* : Bool */;
8820 short int var21 /* : Bool */;
8821 short int var23 /* : Bool */;
8822 short int var25 /* : Bool */;
8823 short int var26 /* : Bool */;
8824 int cltype27;
8825 int idtype28;
8826 const char* var_class_name29;
8827 var_old_child = p0;
8828 var_new_child = p1;
8829 var = self->attrs[COLOR_parser_nodes__AVarFormExpr___n_id].val; /* _n_id on <self:AVarAssignExpr> */
8830 if (unlikely(var == NULL)) {
8831 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
8832 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5531);
8833 show_backtrace(1);
8834 }
8835 {
8836 { /* Inline kernel#Object#== (var,var_old_child) on <var:TId> */
8837 var_other = var_old_child;
8838 {
8839 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TId> */
8840 var6 = var == var_other;
8841 var4 = var6;
8842 goto RET_LABEL5;
8843 RET_LABEL5:(void)0;
8844 }
8845 }
8846 var2 = var4;
8847 goto RET_LABEL3;
8848 RET_LABEL3:(void)0;
8849 }
8850 var1 = var2;
8851 }
8852 if (var1){
8853 /* <var_new_child:nullable ANode> isa TId */
8854 cltype = type_parser_nodes__TId.color;
8855 idtype = type_parser_nodes__TId.id;
8856 if(var_new_child == NULL) {
8857 var7 = 0;
8858 } else {
8859 if(cltype >= var_new_child->type->table_size) {
8860 var7 = 0;
8861 } else {
8862 var7 = var_new_child->type->type_table[cltype] == idtype;
8863 }
8864 }
8865 if (unlikely(!var7)) {
8866 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
8867 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TId", var_class_name);
8868 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5532);
8869 show_backtrace(1);
8870 }
8871 {
8872 parser_prod__AVarAssignExpr__n_id_61d(self, var_new_child); /* Direct call parser_prod#AVarAssignExpr#n_id= on <self:AVarAssignExpr>*/
8873 }
8874 goto RET_LABEL;
8875 } else {
8876 }
8877 var8 = self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_assign].val; /* _n_assign on <self:AVarAssignExpr> */
8878 if (unlikely(var8 == NULL)) {
8879 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_assign");
8880 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5535);
8881 show_backtrace(1);
8882 }
8883 {
8884 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:TAssign> */
8885 var_other = var_old_child;
8886 {
8887 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:TAssign> */
8888 var14 = var8 == var_other;
8889 var12 = var14;
8890 goto RET_LABEL13;
8891 RET_LABEL13:(void)0;
8892 }
8893 }
8894 var10 = var12;
8895 goto RET_LABEL11;
8896 RET_LABEL11:(void)0;
8897 }
8898 var9 = var10;
8899 }
8900 if (var9){
8901 /* <var_new_child:nullable ANode> isa TAssign */
8902 cltype16 = type_parser_nodes__TAssign.color;
8903 idtype17 = type_parser_nodes__TAssign.id;
8904 if(var_new_child == NULL) {
8905 var15 = 0;
8906 } else {
8907 if(cltype16 >= var_new_child->type->table_size) {
8908 var15 = 0;
8909 } else {
8910 var15 = var_new_child->type->type_table[cltype16] == idtype17;
8911 }
8912 }
8913 if (unlikely(!var15)) {
8914 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
8915 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TAssign", var_class_name18);
8916 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5536);
8917 show_backtrace(1);
8918 }
8919 {
8920 parser_prod__AVarAssignExpr__n_assign_61d(self, var_new_child); /* Direct call parser_prod#AVarAssignExpr#n_assign= on <self:AVarAssignExpr>*/
8921 }
8922 goto RET_LABEL;
8923 } else {
8924 }
8925 var19 = self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_value].val; /* _n_value on <self:AVarAssignExpr> */
8926 if (unlikely(var19 == NULL)) {
8927 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
8928 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5539);
8929 show_backtrace(1);
8930 }
8931 {
8932 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:AExpr> */
8933 var_other = var_old_child;
8934 {
8935 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:AExpr> */
8936 var25 = var19 == var_other;
8937 var23 = var25;
8938 goto RET_LABEL24;
8939 RET_LABEL24:(void)0;
8940 }
8941 }
8942 var21 = var23;
8943 goto RET_LABEL22;
8944 RET_LABEL22:(void)0;
8945 }
8946 var20 = var21;
8947 }
8948 if (var20){
8949 /* <var_new_child:nullable ANode> isa AExpr */
8950 cltype27 = type_parser_nodes__AExpr.color;
8951 idtype28 = type_parser_nodes__AExpr.id;
8952 if(var_new_child == NULL) {
8953 var26 = 0;
8954 } else {
8955 if(cltype27 >= var_new_child->type->table_size) {
8956 var26 = 0;
8957 } else {
8958 var26 = var_new_child->type->type_table[cltype27] == idtype28;
8959 }
8960 }
8961 if (unlikely(!var26)) {
8962 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
8963 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name29);
8964 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5540);
8965 show_backtrace(1);
8966 }
8967 {
8968 parser_prod__AVarAssignExpr__n_value_61d(self, var_new_child); /* Direct call parser_prod#AVarAssignExpr#n_value= on <self:AVarAssignExpr>*/
8969 }
8970 goto RET_LABEL;
8971 } else {
8972 }
8973 RET_LABEL:;
8974 }
8975 /* method parser_prod#AVarAssignExpr#replace_child for (self: Object, ANode, nullable ANode) */
8976 void VIRTUAL_parser_prod__AVarAssignExpr__replace_child(val* self, val* p0, val* p1) {
8977 parser_prod__AVarAssignExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AVarAssignExpr#replace_child on <self:Object(AVarAssignExpr)>*/
8978 RET_LABEL:;
8979 }
8980 /* method parser_prod#AVarAssignExpr#n_id= for (self: AVarAssignExpr, TId) */
8981 void parser_prod__AVarAssignExpr__n_id_61d(val* self, val* p0) {
8982 val* var_node /* var node: TId */;
8983 var_node = p0;
8984 self->attrs[COLOR_parser_nodes__AVarFormExpr___n_id].val = var_node; /* _n_id on <self:AVarAssignExpr> */
8985 {
8986 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TId> */
8987 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TId> */
8988 RET_LABEL1:(void)0;
8989 }
8990 }
8991 RET_LABEL:;
8992 }
8993 /* method parser_prod#AVarAssignExpr#n_id= for (self: Object, TId) */
8994 void VIRTUAL_parser_prod__AVarAssignExpr__n_id_61d(val* self, val* p0) {
8995 parser_prod__AVarAssignExpr__n_id_61d(self, p0); /* Direct call parser_prod#AVarAssignExpr#n_id= on <self:Object(AVarAssignExpr)>*/
8996 RET_LABEL:;
8997 }
8998 /* method parser_prod#AVarAssignExpr#n_assign= for (self: AVarAssignExpr, TAssign) */
8999 void parser_prod__AVarAssignExpr__n_assign_61d(val* self, val* p0) {
9000 val* var_node /* var node: TAssign */;
9001 var_node = p0;
9002 self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_assign].val = var_node; /* _n_assign on <self:AVarAssignExpr> */
9003 {
9004 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TAssign> */
9005 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TAssign> */
9006 RET_LABEL1:(void)0;
9007 }
9008 }
9009 RET_LABEL:;
9010 }
9011 /* method parser_prod#AVarAssignExpr#n_assign= for (self: Object, TAssign) */
9012 void VIRTUAL_parser_prod__AVarAssignExpr__n_assign_61d(val* self, val* p0) {
9013 parser_prod__AVarAssignExpr__n_assign_61d(self, p0); /* Direct call parser_prod#AVarAssignExpr#n_assign= on <self:Object(AVarAssignExpr)>*/
9014 RET_LABEL:;
9015 }
9016 /* method parser_prod#AVarAssignExpr#n_value= for (self: AVarAssignExpr, AExpr) */
9017 void parser_prod__AVarAssignExpr__n_value_61d(val* self, val* p0) {
9018 val* var_node /* var node: AExpr */;
9019 var_node = p0;
9020 self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_value].val = var_node; /* _n_value on <self:AVarAssignExpr> */
9021 {
9022 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
9023 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
9024 RET_LABEL1:(void)0;
9025 }
9026 }
9027 RET_LABEL:;
9028 }
9029 /* method parser_prod#AVarAssignExpr#n_value= for (self: Object, AExpr) */
9030 void VIRTUAL_parser_prod__AVarAssignExpr__n_value_61d(val* self, val* p0) {
9031 parser_prod__AVarAssignExpr__n_value_61d(self, p0); /* Direct call parser_prod#AVarAssignExpr#n_value= on <self:Object(AVarAssignExpr)>*/
9032 RET_LABEL:;
9033 }
9034 /* method parser_prod#AVarAssignExpr#visit_all for (self: AVarAssignExpr, Visitor) */
9035 void parser_prod__AVarAssignExpr__visit_all(val* self, val* p0) {
9036 val* var_v /* var v: Visitor */;
9037 val* var /* : TId */;
9038 val* var1 /* : TAssign */;
9039 val* var2 /* : AExpr */;
9040 var_v = p0;
9041 var = self->attrs[COLOR_parser_nodes__AVarFormExpr___n_id].val; /* _n_id on <self:AVarAssignExpr> */
9042 if (unlikely(var == NULL)) {
9043 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
9044 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5564);
9045 show_backtrace(1);
9046 }
9047 {
9048 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9049 }
9050 var1 = self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_assign].val; /* _n_assign on <self:AVarAssignExpr> */
9051 if (unlikely(var1 == NULL)) {
9052 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_assign");
9053 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5565);
9054 show_backtrace(1);
9055 }
9056 {
9057 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9058 }
9059 var2 = self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_value].val; /* _n_value on <self:AVarAssignExpr> */
9060 if (unlikely(var2 == NULL)) {
9061 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
9062 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5566);
9063 show_backtrace(1);
9064 }
9065 {
9066 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9067 }
9068 RET_LABEL:;
9069 }
9070 /* method parser_prod#AVarAssignExpr#visit_all for (self: Object, Visitor) */
9071 void VIRTUAL_parser_prod__AVarAssignExpr__visit_all(val* self, val* p0) {
9072 parser_prod__AVarAssignExpr__visit_all(self, p0); /* Direct call parser_prod#AVarAssignExpr#visit_all on <self:Object(AVarAssignExpr)>*/
9073 RET_LABEL:;
9074 }
9075 /* method parser_prod#AVarReassignExpr#init_avarreassignexpr for (self: AVarReassignExpr, nullable TId, nullable AAssignOp, nullable AExpr) */
9076 void parser_prod__AVarReassignExpr__init_avarreassignexpr(val* self, val* p0, val* p1, val* p2) {
9077 val* var_n_id /* var n_id: nullable TId */;
9078 val* var_n_assign_op /* var n_assign_op: nullable AAssignOp */;
9079 val* var_n_value /* var n_value: nullable AExpr */;
9080 var_n_id = p0;
9081 var_n_assign_op = p1;
9082 var_n_value = p2;
9083 if (unlikely(var_n_id == NULL)) {
9084 PRINT_ERROR("Runtime error: %s", "Cast failed");
9085 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5576);
9086 show_backtrace(1);
9087 }
9088 self->attrs[COLOR_parser_nodes__AVarFormExpr___n_id].val = var_n_id; /* _n_id on <self:AVarReassignExpr> */
9089 if (var_n_id == NULL) {
9090 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9091 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5577);
9092 show_backtrace(1);
9093 } else {
9094 { /* Inline parser_nodes#ANode#parent= (var_n_id,self) on <var_n_id:nullable TId> */
9095 if (unlikely(var_n_id == NULL)) {
9096 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9097 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
9098 show_backtrace(1);
9099 }
9100 var_n_id->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_id:nullable TId> */
9101 RET_LABEL1:(void)0;
9102 }
9103 }
9104 if (unlikely(var_n_assign_op == NULL)) {
9105 PRINT_ERROR("Runtime error: %s", "Cast failed");
9106 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5578);
9107 show_backtrace(1);
9108 }
9109 self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_assign_op].val = var_n_assign_op; /* _n_assign_op on <self:AVarReassignExpr> */
9110 if (var_n_assign_op == NULL) {
9111 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9112 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5579);
9113 show_backtrace(1);
9114 } else {
9115 { /* Inline parser_nodes#ANode#parent= (var_n_assign_op,self) on <var_n_assign_op:nullable AAssignOp> */
9116 if (unlikely(var_n_assign_op == NULL)) {
9117 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9118 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
9119 show_backtrace(1);
9120 }
9121 var_n_assign_op->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_assign_op:nullable AAssignOp> */
9122 RET_LABEL2:(void)0;
9123 }
9124 }
9125 if (unlikely(var_n_value == NULL)) {
9126 PRINT_ERROR("Runtime error: %s", "Cast failed");
9127 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5580);
9128 show_backtrace(1);
9129 }
9130 self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_value].val = var_n_value; /* _n_value on <self:AVarReassignExpr> */
9131 if (var_n_value == NULL) {
9132 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9133 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5581);
9134 show_backtrace(1);
9135 } else {
9136 { /* Inline parser_nodes#ANode#parent= (var_n_value,self) on <var_n_value:nullable AExpr> */
9137 if (unlikely(var_n_value == NULL)) {
9138 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9139 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
9140 show_backtrace(1);
9141 }
9142 var_n_value->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_value:nullable AExpr> */
9143 RET_LABEL3:(void)0;
9144 }
9145 }
9146 RET_LABEL:;
9147 }
9148 /* method parser_prod#AVarReassignExpr#init_avarreassignexpr for (self: Object, nullable TId, nullable AAssignOp, nullable AExpr) */
9149 void VIRTUAL_parser_prod__AVarReassignExpr__init_avarreassignexpr(val* self, val* p0, val* p1, val* p2) {
9150 parser_prod__AVarReassignExpr__init_avarreassignexpr(self, p0, p1, p2); /* Direct call parser_prod#AVarReassignExpr#init_avarreassignexpr on <self:Object(AVarReassignExpr)>*/
9151 RET_LABEL:;
9152 }
9153 /* method parser_prod#AVarReassignExpr#replace_child for (self: AVarReassignExpr, ANode, nullable ANode) */
9154 void parser_prod__AVarReassignExpr__replace_child(val* self, val* p0, val* p1) {
9155 val* var_old_child /* var old_child: ANode */;
9156 val* var_new_child /* var new_child: nullable ANode */;
9157 val* var /* : TId */;
9158 short int var1 /* : Bool */;
9159 short int var2 /* : Bool */;
9160 val* var_other /* var other: nullable Object */;
9161 short int var4 /* : Bool */;
9162 short int var6 /* : Bool */;
9163 short int var7 /* : Bool */;
9164 int cltype;
9165 int idtype;
9166 const char* var_class_name;
9167 val* var8 /* : AAssignOp */;
9168 short int var9 /* : Bool */;
9169 short int var10 /* : Bool */;
9170 short int var12 /* : Bool */;
9171 short int var14 /* : Bool */;
9172 short int var15 /* : Bool */;
9173 int cltype16;
9174 int idtype17;
9175 const char* var_class_name18;
9176 val* var19 /* : AExpr */;
9177 short int var20 /* : Bool */;
9178 short int var21 /* : Bool */;
9179 short int var23 /* : Bool */;
9180 short int var25 /* : Bool */;
9181 short int var26 /* : Bool */;
9182 int cltype27;
9183 int idtype28;
9184 const char* var_class_name29;
9185 var_old_child = p0;
9186 var_new_child = p1;
9187 var = self->attrs[COLOR_parser_nodes__AVarFormExpr___n_id].val; /* _n_id on <self:AVarReassignExpr> */
9188 if (unlikely(var == NULL)) {
9189 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
9190 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5586);
9191 show_backtrace(1);
9192 }
9193 {
9194 { /* Inline kernel#Object#== (var,var_old_child) on <var:TId> */
9195 var_other = var_old_child;
9196 {
9197 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TId> */
9198 var6 = var == var_other;
9199 var4 = var6;
9200 goto RET_LABEL5;
9201 RET_LABEL5:(void)0;
9202 }
9203 }
9204 var2 = var4;
9205 goto RET_LABEL3;
9206 RET_LABEL3:(void)0;
9207 }
9208 var1 = var2;
9209 }
9210 if (var1){
9211 /* <var_new_child:nullable ANode> isa TId */
9212 cltype = type_parser_nodes__TId.color;
9213 idtype = type_parser_nodes__TId.id;
9214 if(var_new_child == NULL) {
9215 var7 = 0;
9216 } else {
9217 if(cltype >= var_new_child->type->table_size) {
9218 var7 = 0;
9219 } else {
9220 var7 = var_new_child->type->type_table[cltype] == idtype;
9221 }
9222 }
9223 if (unlikely(!var7)) {
9224 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
9225 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TId", var_class_name);
9226 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5587);
9227 show_backtrace(1);
9228 }
9229 {
9230 parser_prod__AVarReassignExpr__n_id_61d(self, var_new_child); /* Direct call parser_prod#AVarReassignExpr#n_id= on <self:AVarReassignExpr>*/
9231 }
9232 goto RET_LABEL;
9233 } else {
9234 }
9235 var8 = self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_assign_op].val; /* _n_assign_op on <self:AVarReassignExpr> */
9236 if (unlikely(var8 == NULL)) {
9237 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_assign_op");
9238 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5590);
9239 show_backtrace(1);
9240 }
9241 {
9242 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AAssignOp> */
9243 var_other = var_old_child;
9244 {
9245 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AAssignOp> */
9246 var14 = var8 == var_other;
9247 var12 = var14;
9248 goto RET_LABEL13;
9249 RET_LABEL13:(void)0;
9250 }
9251 }
9252 var10 = var12;
9253 goto RET_LABEL11;
9254 RET_LABEL11:(void)0;
9255 }
9256 var9 = var10;
9257 }
9258 if (var9){
9259 /* <var_new_child:nullable ANode> isa AAssignOp */
9260 cltype16 = type_parser_nodes__AAssignOp.color;
9261 idtype17 = type_parser_nodes__AAssignOp.id;
9262 if(var_new_child == NULL) {
9263 var15 = 0;
9264 } else {
9265 if(cltype16 >= var_new_child->type->table_size) {
9266 var15 = 0;
9267 } else {
9268 var15 = var_new_child->type->type_table[cltype16] == idtype17;
9269 }
9270 }
9271 if (unlikely(!var15)) {
9272 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
9273 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AAssignOp", var_class_name18);
9274 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5591);
9275 show_backtrace(1);
9276 }
9277 {
9278 parser_prod__AVarReassignExpr__n_assign_op_61d(self, var_new_child); /* Direct call parser_prod#AVarReassignExpr#n_assign_op= on <self:AVarReassignExpr>*/
9279 }
9280 goto RET_LABEL;
9281 } else {
9282 }
9283 var19 = self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_value].val; /* _n_value on <self:AVarReassignExpr> */
9284 if (unlikely(var19 == NULL)) {
9285 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
9286 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5594);
9287 show_backtrace(1);
9288 }
9289 {
9290 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:AExpr> */
9291 var_other = var_old_child;
9292 {
9293 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:AExpr> */
9294 var25 = var19 == var_other;
9295 var23 = var25;
9296 goto RET_LABEL24;
9297 RET_LABEL24:(void)0;
9298 }
9299 }
9300 var21 = var23;
9301 goto RET_LABEL22;
9302 RET_LABEL22:(void)0;
9303 }
9304 var20 = var21;
9305 }
9306 if (var20){
9307 /* <var_new_child:nullable ANode> isa AExpr */
9308 cltype27 = type_parser_nodes__AExpr.color;
9309 idtype28 = type_parser_nodes__AExpr.id;
9310 if(var_new_child == NULL) {
9311 var26 = 0;
9312 } else {
9313 if(cltype27 >= var_new_child->type->table_size) {
9314 var26 = 0;
9315 } else {
9316 var26 = var_new_child->type->type_table[cltype27] == idtype28;
9317 }
9318 }
9319 if (unlikely(!var26)) {
9320 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
9321 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name29);
9322 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5595);
9323 show_backtrace(1);
9324 }
9325 {
9326 parser_prod__AVarReassignExpr__n_value_61d(self, var_new_child); /* Direct call parser_prod#AVarReassignExpr#n_value= on <self:AVarReassignExpr>*/
9327 }
9328 goto RET_LABEL;
9329 } else {
9330 }
9331 RET_LABEL:;
9332 }
9333 /* method parser_prod#AVarReassignExpr#replace_child for (self: Object, ANode, nullable ANode) */
9334 void VIRTUAL_parser_prod__AVarReassignExpr__replace_child(val* self, val* p0, val* p1) {
9335 parser_prod__AVarReassignExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AVarReassignExpr#replace_child on <self:Object(AVarReassignExpr)>*/
9336 RET_LABEL:;
9337 }
9338 /* method parser_prod#AVarReassignExpr#n_id= for (self: AVarReassignExpr, TId) */
9339 void parser_prod__AVarReassignExpr__n_id_61d(val* self, val* p0) {
9340 val* var_node /* var node: TId */;
9341 var_node = p0;
9342 self->attrs[COLOR_parser_nodes__AVarFormExpr___n_id].val = var_node; /* _n_id on <self:AVarReassignExpr> */
9343 {
9344 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TId> */
9345 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TId> */
9346 RET_LABEL1:(void)0;
9347 }
9348 }
9349 RET_LABEL:;
9350 }
9351 /* method parser_prod#AVarReassignExpr#n_id= for (self: Object, TId) */
9352 void VIRTUAL_parser_prod__AVarReassignExpr__n_id_61d(val* self, val* p0) {
9353 parser_prod__AVarReassignExpr__n_id_61d(self, p0); /* Direct call parser_prod#AVarReassignExpr#n_id= on <self:Object(AVarReassignExpr)>*/
9354 RET_LABEL:;
9355 }
9356 /* method parser_prod#AVarReassignExpr#n_assign_op= for (self: AVarReassignExpr, AAssignOp) */
9357 void parser_prod__AVarReassignExpr__n_assign_op_61d(val* self, val* p0) {
9358 val* var_node /* var node: AAssignOp */;
9359 var_node = p0;
9360 self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_assign_op].val = var_node; /* _n_assign_op on <self:AVarReassignExpr> */
9361 {
9362 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AAssignOp> */
9363 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AAssignOp> */
9364 RET_LABEL1:(void)0;
9365 }
9366 }
9367 RET_LABEL:;
9368 }
9369 /* method parser_prod#AVarReassignExpr#n_assign_op= for (self: Object, AAssignOp) */
9370 void VIRTUAL_parser_prod__AVarReassignExpr__n_assign_op_61d(val* self, val* p0) {
9371 parser_prod__AVarReassignExpr__n_assign_op_61d(self, p0); /* Direct call parser_prod#AVarReassignExpr#n_assign_op= on <self:Object(AVarReassignExpr)>*/
9372 RET_LABEL:;
9373 }
9374 /* method parser_prod#AVarReassignExpr#n_value= for (self: AVarReassignExpr, AExpr) */
9375 void parser_prod__AVarReassignExpr__n_value_61d(val* self, val* p0) {
9376 val* var_node /* var node: AExpr */;
9377 var_node = p0;
9378 self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_value].val = var_node; /* _n_value on <self:AVarReassignExpr> */
9379 {
9380 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
9381 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
9382 RET_LABEL1:(void)0;
9383 }
9384 }
9385 RET_LABEL:;
9386 }
9387 /* method parser_prod#AVarReassignExpr#n_value= for (self: Object, AExpr) */
9388 void VIRTUAL_parser_prod__AVarReassignExpr__n_value_61d(val* self, val* p0) {
9389 parser_prod__AVarReassignExpr__n_value_61d(self, p0); /* Direct call parser_prod#AVarReassignExpr#n_value= on <self:Object(AVarReassignExpr)>*/
9390 RET_LABEL:;
9391 }
9392 /* method parser_prod#AVarReassignExpr#visit_all for (self: AVarReassignExpr, Visitor) */
9393 void parser_prod__AVarReassignExpr__visit_all(val* self, val* p0) {
9394 val* var_v /* var v: Visitor */;
9395 val* var /* : TId */;
9396 val* var1 /* : AAssignOp */;
9397 val* var2 /* : AExpr */;
9398 var_v = p0;
9399 var = self->attrs[COLOR_parser_nodes__AVarFormExpr___n_id].val; /* _n_id on <self:AVarReassignExpr> */
9400 if (unlikely(var == NULL)) {
9401 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
9402 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5619);
9403 show_backtrace(1);
9404 }
9405 {
9406 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9407 }
9408 var1 = self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_assign_op].val; /* _n_assign_op on <self:AVarReassignExpr> */
9409 if (unlikely(var1 == NULL)) {
9410 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_assign_op");
9411 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5620);
9412 show_backtrace(1);
9413 }
9414 {
9415 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9416 }
9417 var2 = self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_value].val; /* _n_value on <self:AVarReassignExpr> */
9418 if (unlikely(var2 == NULL)) {
9419 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
9420 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5621);
9421 show_backtrace(1);
9422 }
9423 {
9424 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9425 }
9426 RET_LABEL:;
9427 }
9428 /* method parser_prod#AVarReassignExpr#visit_all for (self: Object, Visitor) */
9429 void VIRTUAL_parser_prod__AVarReassignExpr__visit_all(val* self, val* p0) {
9430 parser_prod__AVarReassignExpr__visit_all(self, p0); /* Direct call parser_prod#AVarReassignExpr#visit_all on <self:Object(AVarReassignExpr)>*/
9431 RET_LABEL:;
9432 }
9433 /* method parser_prod#ACrangeExpr#init_acrangeexpr for (self: ACrangeExpr, nullable TObra, nullable AExpr, nullable AExpr, nullable TCbra, nullable AAnnotations) */
9434 void parser_prod__ACrangeExpr__init_acrangeexpr(val* self, val* p0, val* p1, val* p2, val* p3, val* p4) {
9435 val* var_n_obra /* var n_obra: nullable TObra */;
9436 val* var_n_expr /* var n_expr: nullable AExpr */;
9437 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
9438 val* var_n_cbra /* var n_cbra: nullable TCbra */;
9439 val* var_n_annotations /* var n_annotations: nullable AAnnotations */;
9440 val* var /* : null */;
9441 short int var5 /* : Bool */;
9442 short int var6 /* : Bool */;
9443 val* var_other /* var other: nullable Object */;
9444 short int var8 /* : Bool */;
9445 short int var9 /* : Bool */;
9446 short int var10 /* : Bool */;
9447 var_n_obra = p0;
9448 var_n_expr = p1;
9449 var_n_expr2 = p2;
9450 var_n_cbra = p3;
9451 var_n_annotations = p4;
9452 if (unlikely(var_n_obra == NULL)) {
9453 PRINT_ERROR("Runtime error: %s", "Cast failed");
9454 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5688);
9455 show_backtrace(1);
9456 }
9457 self->attrs[COLOR_parser_nodes__ACrangeExpr___n_obra].val = var_n_obra; /* _n_obra on <self:ACrangeExpr> */
9458 if (var_n_obra == NULL) {
9459 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9460 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5689);
9461 show_backtrace(1);
9462 } else {
9463 { /* Inline parser_nodes#ANode#parent= (var_n_obra,self) on <var_n_obra:nullable TObra> */
9464 if (unlikely(var_n_obra == NULL)) {
9465 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9466 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
9467 show_backtrace(1);
9468 }
9469 var_n_obra->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_obra:nullable TObra> */
9470 RET_LABEL1:(void)0;
9471 }
9472 }
9473 if (unlikely(var_n_expr == NULL)) {
9474 PRINT_ERROR("Runtime error: %s", "Cast failed");
9475 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5690);
9476 show_backtrace(1);
9477 }
9478 self->attrs[COLOR_parser_nodes__ARangeExpr___n_expr].val = var_n_expr; /* _n_expr on <self:ACrangeExpr> */
9479 if (var_n_expr == NULL) {
9480 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9481 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5691);
9482 show_backtrace(1);
9483 } else {
9484 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
9485 if (unlikely(var_n_expr == NULL)) {
9486 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9487 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
9488 show_backtrace(1);
9489 }
9490 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
9491 RET_LABEL2:(void)0;
9492 }
9493 }
9494 if (unlikely(var_n_expr2 == NULL)) {
9495 PRINT_ERROR("Runtime error: %s", "Cast failed");
9496 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5692);
9497 show_backtrace(1);
9498 }
9499 self->attrs[COLOR_parser_nodes__ARangeExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:ACrangeExpr> */
9500 if (var_n_expr2 == NULL) {
9501 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9502 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5693);
9503 show_backtrace(1);
9504 } else {
9505 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
9506 if (unlikely(var_n_expr2 == NULL)) {
9507 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9508 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
9509 show_backtrace(1);
9510 }
9511 var_n_expr2->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
9512 RET_LABEL3:(void)0;
9513 }
9514 }
9515 if (unlikely(var_n_cbra == NULL)) {
9516 PRINT_ERROR("Runtime error: %s", "Cast failed");
9517 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5694);
9518 show_backtrace(1);
9519 }
9520 self->attrs[COLOR_parser_nodes__ACrangeExpr___n_cbra].val = var_n_cbra; /* _n_cbra on <self:ACrangeExpr> */
9521 if (var_n_cbra == NULL) {
9522 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9523 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5695);
9524 show_backtrace(1);
9525 } else {
9526 { /* Inline parser_nodes#ANode#parent= (var_n_cbra,self) on <var_n_cbra:nullable TCbra> */
9527 if (unlikely(var_n_cbra == NULL)) {
9528 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9529 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
9530 show_backtrace(1);
9531 }
9532 var_n_cbra->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_cbra:nullable TCbra> */
9533 RET_LABEL4:(void)0;
9534 }
9535 }
9536 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:ACrangeExpr> */
9537 var = NULL;
9538 if (var_n_annotations == NULL) {
9539 var5 = 0; /* is null */
9540 } else {
9541 var5 = 1; /* arg is null and recv is not */
9542 }
9543 if (0) {
9544 { /* Inline kernel#Object#!= (var_n_annotations,var) on <var_n_annotations:nullable AAnnotations> */
9545 var_other = var;
9546 {
9547 var9 = ((short int (*)(val*, val*))(var_n_annotations->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_annotations, var_other) /* == on <var_n_annotations:nullable AAnnotations(AAnnotations)>*/;
9548 var8 = var9;
9549 }
9550 var10 = !var8;
9551 var6 = var10;
9552 goto RET_LABEL7;
9553 RET_LABEL7:(void)0;
9554 }
9555 var5 = var6;
9556 }
9557 if (var5){
9558 {
9559 { /* Inline parser_nodes#ANode#parent= (var_n_annotations,self) on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
9560 var_n_annotations->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
9561 RET_LABEL11:(void)0;
9562 }
9563 }
9564 } else {
9565 }
9566 RET_LABEL:;
9567 }
9568 /* method parser_prod#ACrangeExpr#init_acrangeexpr for (self: Object, nullable TObra, nullable AExpr, nullable AExpr, nullable TCbra, nullable AAnnotations) */
9569 void VIRTUAL_parser_prod__ACrangeExpr__init_acrangeexpr(val* self, val* p0, val* p1, val* p2, val* p3, val* p4) {
9570 parser_prod__ACrangeExpr__init_acrangeexpr(self, p0, p1, p2, p3, p4); /* Direct call parser_prod#ACrangeExpr#init_acrangeexpr on <self:Object(ACrangeExpr)>*/
9571 RET_LABEL:;
9572 }
9573 /* method parser_prod#ACrangeExpr#replace_child for (self: ACrangeExpr, ANode, nullable ANode) */
9574 void parser_prod__ACrangeExpr__replace_child(val* self, val* p0, val* p1) {
9575 val* var_old_child /* var old_child: ANode */;
9576 val* var_new_child /* var new_child: nullable ANode */;
9577 val* var /* : TObra */;
9578 short int var1 /* : Bool */;
9579 short int var2 /* : Bool */;
9580 val* var_other /* var other: nullable Object */;
9581 short int var4 /* : Bool */;
9582 short int var6 /* : Bool */;
9583 short int var7 /* : Bool */;
9584 int cltype;
9585 int idtype;
9586 const char* var_class_name;
9587 val* var8 /* : AExpr */;
9588 short int var9 /* : Bool */;
9589 short int var10 /* : Bool */;
9590 short int var12 /* : Bool */;
9591 short int var14 /* : Bool */;
9592 short int var15 /* : Bool */;
9593 int cltype16;
9594 int idtype17;
9595 const char* var_class_name18;
9596 val* var19 /* : AExpr */;
9597 short int var20 /* : Bool */;
9598 short int var21 /* : Bool */;
9599 short int var23 /* : Bool */;
9600 short int var25 /* : Bool */;
9601 short int var26 /* : Bool */;
9602 int cltype27;
9603 int idtype28;
9604 const char* var_class_name29;
9605 val* var30 /* : TCbra */;
9606 short int var31 /* : Bool */;
9607 short int var32 /* : Bool */;
9608 short int var34 /* : Bool */;
9609 short int var36 /* : Bool */;
9610 short int var37 /* : Bool */;
9611 int cltype38;
9612 int idtype39;
9613 const char* var_class_name40;
9614 val* var41 /* : nullable AAnnotations */;
9615 short int var42 /* : Bool */;
9616 short int var43 /* : Bool */;
9617 short int var45 /* : Bool */;
9618 short int var47 /* : Bool */;
9619 short int var48 /* : Bool */;
9620 int cltype49;
9621 int idtype50;
9622 const char* var_class_name51;
9623 var_old_child = p0;
9624 var_new_child = p1;
9625 var = self->attrs[COLOR_parser_nodes__ACrangeExpr___n_obra].val; /* _n_obra on <self:ACrangeExpr> */
9626 if (unlikely(var == NULL)) {
9627 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_obra");
9628 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5702);
9629 show_backtrace(1);
9630 }
9631 {
9632 { /* Inline kernel#Object#== (var,var_old_child) on <var:TObra> */
9633 var_other = var_old_child;
9634 {
9635 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TObra> */
9636 var6 = var == var_other;
9637 var4 = var6;
9638 goto RET_LABEL5;
9639 RET_LABEL5:(void)0;
9640 }
9641 }
9642 var2 = var4;
9643 goto RET_LABEL3;
9644 RET_LABEL3:(void)0;
9645 }
9646 var1 = var2;
9647 }
9648 if (var1){
9649 /* <var_new_child:nullable ANode> isa TObra */
9650 cltype = type_parser_nodes__TObra.color;
9651 idtype = type_parser_nodes__TObra.id;
9652 if(var_new_child == NULL) {
9653 var7 = 0;
9654 } else {
9655 if(cltype >= var_new_child->type->table_size) {
9656 var7 = 0;
9657 } else {
9658 var7 = var_new_child->type->type_table[cltype] == idtype;
9659 }
9660 }
9661 if (unlikely(!var7)) {
9662 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
9663 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TObra", var_class_name);
9664 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5703);
9665 show_backtrace(1);
9666 }
9667 {
9668 parser_prod__ACrangeExpr__n_obra_61d(self, var_new_child); /* Direct call parser_prod#ACrangeExpr#n_obra= on <self:ACrangeExpr>*/
9669 }
9670 goto RET_LABEL;
9671 } else {
9672 }
9673 var8 = self->attrs[COLOR_parser_nodes__ARangeExpr___n_expr].val; /* _n_expr on <self:ACrangeExpr> */
9674 if (unlikely(var8 == NULL)) {
9675 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
9676 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5706);
9677 show_backtrace(1);
9678 }
9679 {
9680 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExpr> */
9681 var_other = var_old_child;
9682 {
9683 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExpr> */
9684 var14 = var8 == var_other;
9685 var12 = var14;
9686 goto RET_LABEL13;
9687 RET_LABEL13:(void)0;
9688 }
9689 }
9690 var10 = var12;
9691 goto RET_LABEL11;
9692 RET_LABEL11:(void)0;
9693 }
9694 var9 = var10;
9695 }
9696 if (var9){
9697 /* <var_new_child:nullable ANode> isa AExpr */
9698 cltype16 = type_parser_nodes__AExpr.color;
9699 idtype17 = type_parser_nodes__AExpr.id;
9700 if(var_new_child == NULL) {
9701 var15 = 0;
9702 } else {
9703 if(cltype16 >= var_new_child->type->table_size) {
9704 var15 = 0;
9705 } else {
9706 var15 = var_new_child->type->type_table[cltype16] == idtype17;
9707 }
9708 }
9709 if (unlikely(!var15)) {
9710 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
9711 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name18);
9712 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5707);
9713 show_backtrace(1);
9714 }
9715 {
9716 parser_prod__ACrangeExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#ACrangeExpr#n_expr= on <self:ACrangeExpr>*/
9717 }
9718 goto RET_LABEL;
9719 } else {
9720 }
9721 var19 = self->attrs[COLOR_parser_nodes__ARangeExpr___n_expr2].val; /* _n_expr2 on <self:ACrangeExpr> */
9722 if (unlikely(var19 == NULL)) {
9723 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
9724 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5710);
9725 show_backtrace(1);
9726 }
9727 {
9728 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:AExpr> */
9729 var_other = var_old_child;
9730 {
9731 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:AExpr> */
9732 var25 = var19 == var_other;
9733 var23 = var25;
9734 goto RET_LABEL24;
9735 RET_LABEL24:(void)0;
9736 }
9737 }
9738 var21 = var23;
9739 goto RET_LABEL22;
9740 RET_LABEL22:(void)0;
9741 }
9742 var20 = var21;
9743 }
9744 if (var20){
9745 /* <var_new_child:nullable ANode> isa AExpr */
9746 cltype27 = type_parser_nodes__AExpr.color;
9747 idtype28 = type_parser_nodes__AExpr.id;
9748 if(var_new_child == NULL) {
9749 var26 = 0;
9750 } else {
9751 if(cltype27 >= var_new_child->type->table_size) {
9752 var26 = 0;
9753 } else {
9754 var26 = var_new_child->type->type_table[cltype27] == idtype28;
9755 }
9756 }
9757 if (unlikely(!var26)) {
9758 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
9759 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name29);
9760 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5711);
9761 show_backtrace(1);
9762 }
9763 {
9764 parser_prod__ACrangeExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#ACrangeExpr#n_expr2= on <self:ACrangeExpr>*/
9765 }
9766 goto RET_LABEL;
9767 } else {
9768 }
9769 var30 = self->attrs[COLOR_parser_nodes__ACrangeExpr___n_cbra].val; /* _n_cbra on <self:ACrangeExpr> */
9770 if (unlikely(var30 == NULL)) {
9771 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_cbra");
9772 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5714);
9773 show_backtrace(1);
9774 }
9775 {
9776 { /* Inline kernel#Object#== (var30,var_old_child) on <var30:TCbra> */
9777 var_other = var_old_child;
9778 {
9779 { /* Inline kernel#Object#is_same_instance (var30,var_other) on <var30:TCbra> */
9780 var36 = var30 == var_other;
9781 var34 = var36;
9782 goto RET_LABEL35;
9783 RET_LABEL35:(void)0;
9784 }
9785 }
9786 var32 = var34;
9787 goto RET_LABEL33;
9788 RET_LABEL33:(void)0;
9789 }
9790 var31 = var32;
9791 }
9792 if (var31){
9793 /* <var_new_child:nullable ANode> isa TCbra */
9794 cltype38 = type_parser_nodes__TCbra.color;
9795 idtype39 = type_parser_nodes__TCbra.id;
9796 if(var_new_child == NULL) {
9797 var37 = 0;
9798 } else {
9799 if(cltype38 >= var_new_child->type->table_size) {
9800 var37 = 0;
9801 } else {
9802 var37 = var_new_child->type->type_table[cltype38] == idtype39;
9803 }
9804 }
9805 if (unlikely(!var37)) {
9806 var_class_name40 = var_new_child == NULL ? "null" : var_new_child->type->name;
9807 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TCbra", var_class_name40);
9808 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5715);
9809 show_backtrace(1);
9810 }
9811 {
9812 parser_prod__ACrangeExpr__n_cbra_61d(self, var_new_child); /* Direct call parser_prod#ACrangeExpr#n_cbra= on <self:ACrangeExpr>*/
9813 }
9814 goto RET_LABEL;
9815 } else {
9816 }
9817 var41 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:ACrangeExpr> */
9818 if (var41 == NULL) {
9819 var42 = 0; /* <var_old_child:ANode> cannot be null */
9820 } else {
9821 { /* Inline kernel#Object#== (var41,var_old_child) on <var41:nullable AAnnotations> */
9822 var_other = var_old_child;
9823 {
9824 { /* Inline kernel#Object#is_same_instance (var41,var_other) on <var41:nullable AAnnotations(AAnnotations)> */
9825 var47 = var41 == var_other;
9826 var45 = var47;
9827 goto RET_LABEL46;
9828 RET_LABEL46:(void)0;
9829 }
9830 }
9831 var43 = var45;
9832 goto RET_LABEL44;
9833 RET_LABEL44:(void)0;
9834 }
9835 var42 = var43;
9836 }
9837 if (var42){
9838 /* <var_new_child:nullable ANode> isa nullable AAnnotations */
9839 cltype49 = type_nullable_parser_nodes__AAnnotations.color;
9840 idtype50 = type_nullable_parser_nodes__AAnnotations.id;
9841 if(var_new_child == NULL) {
9842 var48 = 1;
9843 } else {
9844 if(cltype49 >= var_new_child->type->table_size) {
9845 var48 = 0;
9846 } else {
9847 var48 = var_new_child->type->type_table[cltype49] == idtype50;
9848 }
9849 }
9850 if (unlikely(!var48)) {
9851 var_class_name51 = var_new_child == NULL ? "null" : var_new_child->type->name;
9852 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AAnnotations", var_class_name51);
9853 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5719);
9854 show_backtrace(1);
9855 }
9856 {
9857 parser_prod__ACrangeExpr__n_annotations_61d(self, var_new_child); /* Direct call parser_prod#ACrangeExpr#n_annotations= on <self:ACrangeExpr>*/
9858 }
9859 goto RET_LABEL;
9860 } else {
9861 }
9862 RET_LABEL:;
9863 }
9864 /* method parser_prod#ACrangeExpr#replace_child for (self: Object, ANode, nullable ANode) */
9865 void VIRTUAL_parser_prod__ACrangeExpr__replace_child(val* self, val* p0, val* p1) {
9866 parser_prod__ACrangeExpr__replace_child(self, p0, p1); /* Direct call parser_prod#ACrangeExpr#replace_child on <self:Object(ACrangeExpr)>*/
9867 RET_LABEL:;
9868 }
9869 /* method parser_prod#ACrangeExpr#n_obra= for (self: ACrangeExpr, TObra) */
9870 void parser_prod__ACrangeExpr__n_obra_61d(val* self, val* p0) {
9871 val* var_node /* var node: TObra */;
9872 var_node = p0;
9873 self->attrs[COLOR_parser_nodes__ACrangeExpr___n_obra].val = var_node; /* _n_obra on <self:ACrangeExpr> */
9874 {
9875 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TObra> */
9876 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TObra> */
9877 RET_LABEL1:(void)0;
9878 }
9879 }
9880 RET_LABEL:;
9881 }
9882 /* method parser_prod#ACrangeExpr#n_obra= for (self: Object, TObra) */
9883 void VIRTUAL_parser_prod__ACrangeExpr__n_obra_61d(val* self, val* p0) {
9884 parser_prod__ACrangeExpr__n_obra_61d(self, p0); /* Direct call parser_prod#ACrangeExpr#n_obra= on <self:Object(ACrangeExpr)>*/
9885 RET_LABEL:;
9886 }
9887 /* method parser_prod#ACrangeExpr#n_expr= for (self: ACrangeExpr, AExpr) */
9888 void parser_prod__ACrangeExpr__n_expr_61d(val* self, val* p0) {
9889 val* var_node /* var node: AExpr */;
9890 var_node = p0;
9891 self->attrs[COLOR_parser_nodes__ARangeExpr___n_expr].val = var_node; /* _n_expr on <self:ACrangeExpr> */
9892 {
9893 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
9894 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
9895 RET_LABEL1:(void)0;
9896 }
9897 }
9898 RET_LABEL:;
9899 }
9900 /* method parser_prod#ACrangeExpr#n_expr= for (self: Object, AExpr) */
9901 void VIRTUAL_parser_prod__ACrangeExpr__n_expr_61d(val* self, val* p0) {
9902 parser_prod__ACrangeExpr__n_expr_61d(self, p0); /* Direct call parser_prod#ACrangeExpr#n_expr= on <self:Object(ACrangeExpr)>*/
9903 RET_LABEL:;
9904 }
9905 /* method parser_prod#ACrangeExpr#n_expr2= for (self: ACrangeExpr, AExpr) */
9906 void parser_prod__ACrangeExpr__n_expr2_61d(val* self, val* p0) {
9907 val* var_node /* var node: AExpr */;
9908 var_node = p0;
9909 self->attrs[COLOR_parser_nodes__ARangeExpr___n_expr2].val = var_node; /* _n_expr2 on <self:ACrangeExpr> */
9910 {
9911 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
9912 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
9913 RET_LABEL1:(void)0;
9914 }
9915 }
9916 RET_LABEL:;
9917 }
9918 /* method parser_prod#ACrangeExpr#n_expr2= for (self: Object, AExpr) */
9919 void VIRTUAL_parser_prod__ACrangeExpr__n_expr2_61d(val* self, val* p0) {
9920 parser_prod__ACrangeExpr__n_expr2_61d(self, p0); /* Direct call parser_prod#ACrangeExpr#n_expr2= on <self:Object(ACrangeExpr)>*/
9921 RET_LABEL:;
9922 }
9923 /* method parser_prod#ACrangeExpr#n_cbra= for (self: ACrangeExpr, TCbra) */
9924 void parser_prod__ACrangeExpr__n_cbra_61d(val* self, val* p0) {
9925 val* var_node /* var node: TCbra */;
9926 var_node = p0;
9927 self->attrs[COLOR_parser_nodes__ACrangeExpr___n_cbra].val = var_node; /* _n_cbra on <self:ACrangeExpr> */
9928 {
9929 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TCbra> */
9930 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TCbra> */
9931 RET_LABEL1:(void)0;
9932 }
9933 }
9934 RET_LABEL:;
9935 }
9936 /* method parser_prod#ACrangeExpr#n_cbra= for (self: Object, TCbra) */
9937 void VIRTUAL_parser_prod__ACrangeExpr__n_cbra_61d(val* self, val* p0) {
9938 parser_prod__ACrangeExpr__n_cbra_61d(self, p0); /* Direct call parser_prod#ACrangeExpr#n_cbra= on <self:Object(ACrangeExpr)>*/
9939 RET_LABEL:;
9940 }
9941 /* method parser_prod#ACrangeExpr#n_annotations= for (self: ACrangeExpr, nullable AAnnotations) */
9942 void parser_prod__ACrangeExpr__n_annotations_61d(val* self, val* p0) {
9943 val* var_node /* var node: nullable AAnnotations */;
9944 val* var /* : null */;
9945 short int var1 /* : Bool */;
9946 short int var2 /* : Bool */;
9947 val* var_other /* var other: nullable Object */;
9948 short int var4 /* : Bool */;
9949 short int var5 /* : Bool */;
9950 short int var6 /* : Bool */;
9951 var_node = p0;
9952 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_node; /* _n_annotations on <self:ACrangeExpr> */
9953 var = NULL;
9954 if (var_node == NULL) {
9955 var1 = 0; /* is null */
9956 } else {
9957 var1 = 1; /* arg is null and recv is not */
9958 }
9959 if (0) {
9960 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AAnnotations> */
9961 var_other = var;
9962 {
9963 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AAnnotations(AAnnotations)>*/;
9964 var4 = var5;
9965 }
9966 var6 = !var4;
9967 var2 = var6;
9968 goto RET_LABEL3;
9969 RET_LABEL3:(void)0;
9970 }
9971 var1 = var2;
9972 }
9973 if (var1){
9974 {
9975 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AAnnotations(AAnnotations)> */
9976 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AAnnotations(AAnnotations)> */
9977 RET_LABEL7:(void)0;
9978 }
9979 }
9980 } else {
9981 }
9982 RET_LABEL:;
9983 }
9984 /* method parser_prod#ACrangeExpr#n_annotations= for (self: Object, nullable AAnnotations) */
9985 void VIRTUAL_parser_prod__ACrangeExpr__n_annotations_61d(val* self, val* p0) {
9986 parser_prod__ACrangeExpr__n_annotations_61d(self, p0); /* Direct call parser_prod#ACrangeExpr#n_annotations= on <self:Object(ACrangeExpr)>*/
9987 RET_LABEL:;
9988 }