c_src: update
[nit.git] / c_src / parser_prod.sep.3.c
1 #include "parser_prod.sep.0.h"
2 /* method parser_prod#ASignature#replace_child for (self: ASignature, ANode, nullable ANode) */
3 void parser_prod__ASignature__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 /* : nullable TOpar */;
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 /* : ANodes[AParam] */;
17 val* var10 /* : ANodes[AParam] */;
18 short int var11 /* : Bool */;
19 val* var12 /* : nullable TCpar */;
20 short int var13 /* : Bool */;
21 short int var14 /* : Bool */;
22 short int var16 /* : Bool */;
23 short int var18 /* : Bool */;
24 short int var19 /* : Bool */;
25 int cltype20;
26 int idtype21;
27 const char* var_class_name22;
28 val* var23 /* : nullable AType */;
29 short int var24 /* : Bool */;
30 short int var25 /* : Bool */;
31 short int var27 /* : Bool */;
32 short int var29 /* : Bool */;
33 short int var30 /* : Bool */;
34 int cltype31;
35 int idtype32;
36 const char* var_class_name33;
37 var_old_child = p0;
38 var_new_child = p1;
39 var = self->attrs[COLOR_parser_nodes__ASignature___n_opar].val; /* _n_opar on <self:ASignature> */
40 if (var == NULL) {
41 var1 = 0; /* <var_old_child:ANode> cannot be null */
42 } else {
43 { /* Inline kernel#Object#== (var,var_old_child) on <var:nullable TOpar> */
44 var_other = var_old_child;
45 {
46 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:nullable TOpar(TOpar)> */
47 var6 = var == var_other;
48 var4 = var6;
49 goto RET_LABEL5;
50 RET_LABEL5:(void)0;
51 }
52 }
53 var2 = var4;
54 goto RET_LABEL3;
55 RET_LABEL3:(void)0;
56 }
57 var1 = var2;
58 }
59 if (var1){
60 /* <var_new_child:nullable ANode> isa nullable TOpar */
61 cltype = type_nullable_parser_nodes__TOpar.color;
62 idtype = type_nullable_parser_nodes__TOpar.id;
63 if(var_new_child == NULL) {
64 var7 = 1;
65 } else {
66 if(cltype >= var_new_child->type->table_size) {
67 var7 = 0;
68 } else {
69 var7 = var_new_child->type->type_table[cltype] == idtype;
70 }
71 }
72 if (unlikely(!var7)) {
73 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
74 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TOpar", var_class_name);
75 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2743);
76 show_backtrace(1);
77 }
78 {
79 parser_prod__ASignature__n_opar_61d(self, var_new_child); /* Direct call parser_prod#ASignature#n_opar= on <self:ASignature>*/
80 }
81 goto RET_LABEL;
82 } else {
83 }
84 {
85 { /* Inline parser_nodes#ASignature#n_params (self) on <self:ASignature> */
86 var10 = self->attrs[COLOR_parser_nodes__ASignature___n_params].val; /* _n_params on <self:ASignature> */
87 if (unlikely(var10 == NULL)) {
88 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_params");
89 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 1360);
90 show_backtrace(1);
91 }
92 var8 = var10;
93 RET_LABEL9:(void)0;
94 }
95 }
96 {
97 var11 = parser_nodes__ANodes__replace_child(var8, var_old_child, var_new_child);
98 }
99 if (var11){
100 goto RET_LABEL;
101 } else {
102 }
103 var12 = self->attrs[COLOR_parser_nodes__ASignature___n_cpar].val; /* _n_cpar on <self:ASignature> */
104 if (var12 == NULL) {
105 var13 = 0; /* <var_old_child:ANode> cannot be null */
106 } else {
107 { /* Inline kernel#Object#== (var12,var_old_child) on <var12:nullable TCpar> */
108 var_other = var_old_child;
109 {
110 { /* Inline kernel#Object#is_same_instance (var12,var_other) on <var12:nullable TCpar(TCpar)> */
111 var18 = var12 == var_other;
112 var16 = var18;
113 goto RET_LABEL17;
114 RET_LABEL17:(void)0;
115 }
116 }
117 var14 = var16;
118 goto RET_LABEL15;
119 RET_LABEL15:(void)0;
120 }
121 var13 = var14;
122 }
123 if (var13){
124 /* <var_new_child:nullable ANode> isa nullable TCpar */
125 cltype20 = type_nullable_parser_nodes__TCpar.color;
126 idtype21 = type_nullable_parser_nodes__TCpar.id;
127 if(var_new_child == NULL) {
128 var19 = 1;
129 } else {
130 if(cltype20 >= var_new_child->type->table_size) {
131 var19 = 0;
132 } else {
133 var19 = var_new_child->type->type_table[cltype20] == idtype21;
134 }
135 }
136 if (unlikely(!var19)) {
137 var_class_name22 = var_new_child == NULL ? "null" : var_new_child->type->name;
138 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TCpar", var_class_name22);
139 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2748);
140 show_backtrace(1);
141 }
142 {
143 parser_prod__ASignature__n_cpar_61d(self, var_new_child); /* Direct call parser_prod#ASignature#n_cpar= on <self:ASignature>*/
144 }
145 goto RET_LABEL;
146 } else {
147 }
148 var23 = self->attrs[COLOR_parser_nodes__ASignature___n_type].val; /* _n_type on <self:ASignature> */
149 if (var23 == NULL) {
150 var24 = 0; /* <var_old_child:ANode> cannot be null */
151 } else {
152 { /* Inline kernel#Object#== (var23,var_old_child) on <var23:nullable AType> */
153 var_other = var_old_child;
154 {
155 { /* Inline kernel#Object#is_same_instance (var23,var_other) on <var23:nullable AType(AType)> */
156 var29 = var23 == var_other;
157 var27 = var29;
158 goto RET_LABEL28;
159 RET_LABEL28:(void)0;
160 }
161 }
162 var25 = var27;
163 goto RET_LABEL26;
164 RET_LABEL26:(void)0;
165 }
166 var24 = var25;
167 }
168 if (var24){
169 /* <var_new_child:nullable ANode> isa nullable AType */
170 cltype31 = type_nullable_parser_nodes__AType.color;
171 idtype32 = type_nullable_parser_nodes__AType.id;
172 if(var_new_child == NULL) {
173 var30 = 1;
174 } else {
175 if(cltype31 >= var_new_child->type->table_size) {
176 var30 = 0;
177 } else {
178 var30 = var_new_child->type->type_table[cltype31] == idtype32;
179 }
180 }
181 if (unlikely(!var30)) {
182 var_class_name33 = var_new_child == NULL ? "null" : var_new_child->type->name;
183 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AType", var_class_name33);
184 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2752);
185 show_backtrace(1);
186 }
187 {
188 parser_prod__ASignature__n_type_61d(self, var_new_child); /* Direct call parser_prod#ASignature#n_type= on <self:ASignature>*/
189 }
190 goto RET_LABEL;
191 } else {
192 }
193 RET_LABEL:;
194 }
195 /* method parser_prod#ASignature#replace_child for (self: Object, ANode, nullable ANode) */
196 void VIRTUAL_parser_prod__ASignature__replace_child(val* self, val* p0, val* p1) {
197 parser_prod__ASignature__replace_child(self, p0, p1); /* Direct call parser_prod#ASignature#replace_child on <self:Object(ASignature)>*/
198 RET_LABEL:;
199 }
200 /* method parser_prod#ASignature#n_opar= for (self: ASignature, nullable TOpar) */
201 void parser_prod__ASignature__n_opar_61d(val* self, val* p0) {
202 val* var_node /* var node: nullable TOpar */;
203 val* var /* : null */;
204 short int var1 /* : Bool */;
205 short int var2 /* : Bool */;
206 val* var_other /* var other: nullable Object */;
207 short int var4 /* : Bool */;
208 short int var5 /* : Bool */;
209 short int var6 /* : Bool */;
210 var_node = p0;
211 self->attrs[COLOR_parser_nodes__ASignature___n_opar].val = var_node; /* _n_opar on <self:ASignature> */
212 var = NULL;
213 if (var_node == NULL) {
214 var1 = 0; /* is null */
215 } else {
216 var1 = 1; /* arg is null and recv is not */
217 }
218 if (0) {
219 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable TOpar> */
220 var_other = var;
221 {
222 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable TOpar(TOpar)>*/;
223 var4 = var5;
224 }
225 var6 = !var4;
226 var2 = var6;
227 goto RET_LABEL3;
228 RET_LABEL3:(void)0;
229 }
230 var1 = var2;
231 }
232 if (var1){
233 {
234 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TOpar(TOpar)> */
235 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TOpar(TOpar)> */
236 RET_LABEL7:(void)0;
237 }
238 }
239 } else {
240 }
241 RET_LABEL:;
242 }
243 /* method parser_prod#ASignature#n_opar= for (self: Object, nullable TOpar) */
244 void VIRTUAL_parser_prod__ASignature__n_opar_61d(val* self, val* p0) {
245 parser_prod__ASignature__n_opar_61d(self, p0); /* Direct call parser_prod#ASignature#n_opar= on <self:Object(ASignature)>*/
246 RET_LABEL:;
247 }
248 /* method parser_prod#ASignature#n_cpar= for (self: ASignature, nullable TCpar) */
249 void parser_prod__ASignature__n_cpar_61d(val* self, val* p0) {
250 val* var_node /* var node: nullable TCpar */;
251 val* var /* : null */;
252 short int var1 /* : Bool */;
253 short int var2 /* : Bool */;
254 val* var_other /* var other: nullable Object */;
255 short int var4 /* : Bool */;
256 short int var5 /* : Bool */;
257 short int var6 /* : Bool */;
258 var_node = p0;
259 self->attrs[COLOR_parser_nodes__ASignature___n_cpar].val = var_node; /* _n_cpar on <self:ASignature> */
260 var = NULL;
261 if (var_node == NULL) {
262 var1 = 0; /* is null */
263 } else {
264 var1 = 1; /* arg is null and recv is not */
265 }
266 if (0) {
267 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable TCpar> */
268 var_other = var;
269 {
270 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable TCpar(TCpar)>*/;
271 var4 = var5;
272 }
273 var6 = !var4;
274 var2 = var6;
275 goto RET_LABEL3;
276 RET_LABEL3:(void)0;
277 }
278 var1 = var2;
279 }
280 if (var1){
281 {
282 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TCpar(TCpar)> */
283 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TCpar(TCpar)> */
284 RET_LABEL7:(void)0;
285 }
286 }
287 } else {
288 }
289 RET_LABEL:;
290 }
291 /* method parser_prod#ASignature#n_cpar= for (self: Object, nullable TCpar) */
292 void VIRTUAL_parser_prod__ASignature__n_cpar_61d(val* self, val* p0) {
293 parser_prod__ASignature__n_cpar_61d(self, p0); /* Direct call parser_prod#ASignature#n_cpar= on <self:Object(ASignature)>*/
294 RET_LABEL:;
295 }
296 /* method parser_prod#ASignature#n_type= for (self: ASignature, nullable AType) */
297 void parser_prod__ASignature__n_type_61d(val* self, val* p0) {
298 val* var_node /* var node: nullable AType */;
299 val* var /* : null */;
300 short int var1 /* : Bool */;
301 short int var2 /* : Bool */;
302 val* var_other /* var other: nullable Object */;
303 short int var4 /* : Bool */;
304 short int var5 /* : Bool */;
305 short int var6 /* : Bool */;
306 var_node = p0;
307 self->attrs[COLOR_parser_nodes__ASignature___n_type].val = var_node; /* _n_type on <self:ASignature> */
308 var = NULL;
309 if (var_node == NULL) {
310 var1 = 0; /* is null */
311 } else {
312 var1 = 1; /* arg is null and recv is not */
313 }
314 if (0) {
315 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AType> */
316 var_other = var;
317 {
318 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AType(AType)>*/;
319 var4 = var5;
320 }
321 var6 = !var4;
322 var2 = var6;
323 goto RET_LABEL3;
324 RET_LABEL3:(void)0;
325 }
326 var1 = var2;
327 }
328 if (var1){
329 {
330 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AType(AType)> */
331 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AType(AType)> */
332 RET_LABEL7:(void)0;
333 }
334 }
335 } else {
336 }
337 RET_LABEL:;
338 }
339 /* method parser_prod#ASignature#n_type= for (self: Object, nullable AType) */
340 void VIRTUAL_parser_prod__ASignature__n_type_61d(val* self, val* p0) {
341 parser_prod__ASignature__n_type_61d(self, p0); /* Direct call parser_prod#ASignature#n_type= on <self:Object(ASignature)>*/
342 RET_LABEL:;
343 }
344 /* method parser_prod#ASignature#visit_all for (self: ASignature, Visitor) */
345 void parser_prod__ASignature__visit_all(val* self, val* p0) {
346 val* var_v /* var v: Visitor */;
347 val* var /* : nullable TOpar */;
348 val* var1 /* : ANodes[AParam] */;
349 val* var3 /* : ANodes[AParam] */;
350 val* var4 /* : nullable TCpar */;
351 val* var5 /* : nullable AType */;
352 var_v = p0;
353 var = self->attrs[COLOR_parser_nodes__ASignature___n_opar].val; /* _n_opar on <self:ASignature> */
354 {
355 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
356 }
357 {
358 { /* Inline parser_nodes#ASignature#n_params (self) on <self:ASignature> */
359 var3 = self->attrs[COLOR_parser_nodes__ASignature___n_params].val; /* _n_params on <self:ASignature> */
360 if (unlikely(var3 == NULL)) {
361 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_params");
362 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 1360);
363 show_backtrace(1);
364 }
365 var1 = var3;
366 RET_LABEL2:(void)0;
367 }
368 }
369 {
370 parser_nodes__ANodes__visit_all(var1, var_v); /* Direct call parser_nodes#ANodes#visit_all on <var1:ANodes[AParam]>*/
371 }
372 var4 = self->attrs[COLOR_parser_nodes__ASignature___n_cpar].val; /* _n_cpar on <self:ASignature> */
373 {
374 parser_nodes__Visitor__enter_visit(var_v, var4); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
375 }
376 var5 = self->attrs[COLOR_parser_nodes__ASignature___n_type].val; /* _n_type on <self:ASignature> */
377 {
378 parser_nodes__Visitor__enter_visit(var_v, var5); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
379 }
380 RET_LABEL:;
381 }
382 /* method parser_prod#ASignature#visit_all for (self: Object, Visitor) */
383 void VIRTUAL_parser_prod__ASignature__visit_all(val* self, val* p0) {
384 parser_prod__ASignature__visit_all(self, p0); /* Direct call parser_prod#ASignature#visit_all on <self:Object(ASignature)>*/
385 RET_LABEL:;
386 }
387 /* method parser_prod#AParam#init_aparam for (self: AParam, nullable TId, nullable AType, nullable TDotdotdot, nullable AAnnotations) */
388 void parser_prod__AParam__init_aparam(val* self, val* p0, val* p1, val* p2, val* p3) {
389 val* var_n_id /* var n_id: nullable TId */;
390 val* var_n_type /* var n_type: nullable AType */;
391 val* var_n_dotdotdot /* var n_dotdotdot: nullable TDotdotdot */;
392 val* var_n_annotations /* var n_annotations: nullable AAnnotations */;
393 val* var /* : null */;
394 short int var2 /* : Bool */;
395 short int var3 /* : Bool */;
396 val* var_other /* var other: nullable Object */;
397 short int var5 /* : Bool */;
398 short int var6 /* : Bool */;
399 short int var7 /* : Bool */;
400 val* var9 /* : null */;
401 short int var10 /* : Bool */;
402 short int var11 /* : Bool */;
403 short int var13 /* : Bool */;
404 short int var14 /* : Bool */;
405 short int var15 /* : Bool */;
406 val* var17 /* : null */;
407 short int var18 /* : Bool */;
408 short int var19 /* : Bool */;
409 short int var21 /* : Bool */;
410 short int var22 /* : Bool */;
411 short int var23 /* : Bool */;
412 var_n_id = p0;
413 var_n_type = p1;
414 var_n_dotdotdot = p2;
415 var_n_annotations = p3;
416 if (unlikely(var_n_id == NULL)) {
417 PRINT_ERROR("Runtime error: %s", "Cast failed");
418 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2790);
419 show_backtrace(1);
420 }
421 self->attrs[COLOR_parser_nodes__AParam___n_id].val = var_n_id; /* _n_id on <self:AParam> */
422 if (var_n_id == NULL) {
423 PRINT_ERROR("Runtime error: %s", "Receiver is null");
424 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2791);
425 show_backtrace(1);
426 } else {
427 { /* Inline parser_nodes#ANode#parent= (var_n_id,self) on <var_n_id:nullable TId> */
428 if (unlikely(var_n_id == NULL)) {
429 PRINT_ERROR("Runtime error: %s", "Receiver is null");
430 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
431 show_backtrace(1);
432 }
433 var_n_id->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_id:nullable TId> */
434 RET_LABEL1:(void)0;
435 }
436 }
437 self->attrs[COLOR_parser_nodes__AParam___n_type].val = var_n_type; /* _n_type on <self:AParam> */
438 var = NULL;
439 if (var_n_type == NULL) {
440 var2 = 0; /* is null */
441 } else {
442 var2 = 1; /* arg is null and recv is not */
443 }
444 if (0) {
445 { /* Inline kernel#Object#!= (var_n_type,var) on <var_n_type:nullable AType> */
446 var_other = var;
447 {
448 var6 = ((short int (*)(val*, val*))(var_n_type->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_type, var_other) /* == on <var_n_type:nullable AType(AType)>*/;
449 var5 = var6;
450 }
451 var7 = !var5;
452 var3 = var7;
453 goto RET_LABEL4;
454 RET_LABEL4:(void)0;
455 }
456 var2 = var3;
457 }
458 if (var2){
459 {
460 { /* Inline parser_nodes#ANode#parent= (var_n_type,self) on <var_n_type:nullable AType(AType)> */
461 var_n_type->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_type:nullable AType(AType)> */
462 RET_LABEL8:(void)0;
463 }
464 }
465 } else {
466 }
467 self->attrs[COLOR_parser_nodes__AParam___n_dotdotdot].val = var_n_dotdotdot; /* _n_dotdotdot on <self:AParam> */
468 var9 = NULL;
469 if (var_n_dotdotdot == NULL) {
470 var10 = 0; /* is null */
471 } else {
472 var10 = 1; /* arg is null and recv is not */
473 }
474 if (0) {
475 { /* Inline kernel#Object#!= (var_n_dotdotdot,var9) on <var_n_dotdotdot:nullable TDotdotdot> */
476 var_other = var9;
477 {
478 var14 = ((short int (*)(val*, val*))(var_n_dotdotdot->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_dotdotdot, var_other) /* == on <var_n_dotdotdot:nullable TDotdotdot(TDotdotdot)>*/;
479 var13 = var14;
480 }
481 var15 = !var13;
482 var11 = var15;
483 goto RET_LABEL12;
484 RET_LABEL12:(void)0;
485 }
486 var10 = var11;
487 }
488 if (var10){
489 {
490 { /* Inline parser_nodes#ANode#parent= (var_n_dotdotdot,self) on <var_n_dotdotdot:nullable TDotdotdot(TDotdotdot)> */
491 var_n_dotdotdot->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_dotdotdot:nullable TDotdotdot(TDotdotdot)> */
492 RET_LABEL16:(void)0;
493 }
494 }
495 } else {
496 }
497 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:AParam> */
498 var17 = NULL;
499 if (var_n_annotations == NULL) {
500 var18 = 0; /* is null */
501 } else {
502 var18 = 1; /* arg is null and recv is not */
503 }
504 if (0) {
505 { /* Inline kernel#Object#!= (var_n_annotations,var17) on <var_n_annotations:nullable AAnnotations> */
506 var_other = var17;
507 {
508 var22 = ((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)>*/;
509 var21 = var22;
510 }
511 var23 = !var21;
512 var19 = var23;
513 goto RET_LABEL20;
514 RET_LABEL20:(void)0;
515 }
516 var18 = var19;
517 }
518 if (var18){
519 {
520 { /* Inline parser_nodes#ANode#parent= (var_n_annotations,self) on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
521 var_n_annotations->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
522 RET_LABEL24:(void)0;
523 }
524 }
525 } else {
526 }
527 RET_LABEL:;
528 }
529 /* method parser_prod#AParam#init_aparam for (self: Object, nullable TId, nullable AType, nullable TDotdotdot, nullable AAnnotations) */
530 void VIRTUAL_parser_prod__AParam__init_aparam(val* self, val* p0, val* p1, val* p2, val* p3) {
531 parser_prod__AParam__init_aparam(self, p0, p1, p2, p3); /* Direct call parser_prod#AParam#init_aparam on <self:Object(AParam)>*/
532 RET_LABEL:;
533 }
534 /* method parser_prod#AParam#replace_child for (self: AParam, ANode, nullable ANode) */
535 void parser_prod__AParam__replace_child(val* self, val* p0, val* p1) {
536 val* var_old_child /* var old_child: ANode */;
537 val* var_new_child /* var new_child: nullable ANode */;
538 val* var /* : TId */;
539 short int var1 /* : Bool */;
540 short int var2 /* : Bool */;
541 val* var_other /* var other: nullable Object */;
542 short int var4 /* : Bool */;
543 short int var6 /* : Bool */;
544 short int var7 /* : Bool */;
545 int cltype;
546 int idtype;
547 const char* var_class_name;
548 val* var8 /* : nullable AType */;
549 short int var9 /* : Bool */;
550 short int var10 /* : Bool */;
551 short int var12 /* : Bool */;
552 short int var14 /* : Bool */;
553 short int var15 /* : Bool */;
554 int cltype16;
555 int idtype17;
556 const char* var_class_name18;
557 val* var19 /* : nullable TDotdotdot */;
558 short int var20 /* : Bool */;
559 short int var21 /* : Bool */;
560 short int var23 /* : Bool */;
561 short int var25 /* : Bool */;
562 short int var26 /* : Bool */;
563 int cltype27;
564 int idtype28;
565 const char* var_class_name29;
566 val* var30 /* : nullable AAnnotations */;
567 short int var31 /* : Bool */;
568 short int var32 /* : Bool */;
569 short int var34 /* : Bool */;
570 short int var36 /* : Bool */;
571 short int var37 /* : Bool */;
572 int cltype38;
573 int idtype39;
574 const char* var_class_name40;
575 var_old_child = p0;
576 var_new_child = p1;
577 var = self->attrs[COLOR_parser_nodes__AParam___n_id].val; /* _n_id on <self:AParam> */
578 if (unlikely(var == NULL)) {
579 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
580 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2802);
581 show_backtrace(1);
582 }
583 {
584 { /* Inline kernel#Object#== (var,var_old_child) on <var:TId> */
585 var_other = var_old_child;
586 {
587 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TId> */
588 var6 = var == var_other;
589 var4 = var6;
590 goto RET_LABEL5;
591 RET_LABEL5:(void)0;
592 }
593 }
594 var2 = var4;
595 goto RET_LABEL3;
596 RET_LABEL3:(void)0;
597 }
598 var1 = var2;
599 }
600 if (var1){
601 /* <var_new_child:nullable ANode> isa TId */
602 cltype = type_parser_nodes__TId.color;
603 idtype = type_parser_nodes__TId.id;
604 if(var_new_child == NULL) {
605 var7 = 0;
606 } else {
607 if(cltype >= var_new_child->type->table_size) {
608 var7 = 0;
609 } else {
610 var7 = var_new_child->type->type_table[cltype] == idtype;
611 }
612 }
613 if (unlikely(!var7)) {
614 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
615 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TId", var_class_name);
616 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2803);
617 show_backtrace(1);
618 }
619 {
620 parser_prod__AParam__n_id_61d(self, var_new_child); /* Direct call parser_prod#AParam#n_id= on <self:AParam>*/
621 }
622 goto RET_LABEL;
623 } else {
624 }
625 var8 = self->attrs[COLOR_parser_nodes__AParam___n_type].val; /* _n_type on <self:AParam> */
626 if (var8 == NULL) {
627 var9 = 0; /* <var_old_child:ANode> cannot be null */
628 } else {
629 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:nullable AType> */
630 var_other = var_old_child;
631 {
632 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:nullable AType(AType)> */
633 var14 = var8 == var_other;
634 var12 = var14;
635 goto RET_LABEL13;
636 RET_LABEL13:(void)0;
637 }
638 }
639 var10 = var12;
640 goto RET_LABEL11;
641 RET_LABEL11:(void)0;
642 }
643 var9 = var10;
644 }
645 if (var9){
646 /* <var_new_child:nullable ANode> isa nullable AType */
647 cltype16 = type_nullable_parser_nodes__AType.color;
648 idtype17 = type_nullable_parser_nodes__AType.id;
649 if(var_new_child == NULL) {
650 var15 = 1;
651 } else {
652 if(cltype16 >= var_new_child->type->table_size) {
653 var15 = 0;
654 } else {
655 var15 = var_new_child->type->type_table[cltype16] == idtype17;
656 }
657 }
658 if (unlikely(!var15)) {
659 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
660 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AType", var_class_name18);
661 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2807);
662 show_backtrace(1);
663 }
664 {
665 parser_prod__AParam__n_type_61d(self, var_new_child); /* Direct call parser_prod#AParam#n_type= on <self:AParam>*/
666 }
667 goto RET_LABEL;
668 } else {
669 }
670 var19 = self->attrs[COLOR_parser_nodes__AParam___n_dotdotdot].val; /* _n_dotdotdot on <self:AParam> */
671 if (var19 == NULL) {
672 var20 = 0; /* <var_old_child:ANode> cannot be null */
673 } else {
674 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:nullable TDotdotdot> */
675 var_other = var_old_child;
676 {
677 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:nullable TDotdotdot(TDotdotdot)> */
678 var25 = var19 == var_other;
679 var23 = var25;
680 goto RET_LABEL24;
681 RET_LABEL24:(void)0;
682 }
683 }
684 var21 = var23;
685 goto RET_LABEL22;
686 RET_LABEL22:(void)0;
687 }
688 var20 = var21;
689 }
690 if (var20){
691 /* <var_new_child:nullable ANode> isa nullable TDotdotdot */
692 cltype27 = type_nullable_parser_nodes__TDotdotdot.color;
693 idtype28 = type_nullable_parser_nodes__TDotdotdot.id;
694 if(var_new_child == NULL) {
695 var26 = 1;
696 } else {
697 if(cltype27 >= var_new_child->type->table_size) {
698 var26 = 0;
699 } else {
700 var26 = var_new_child->type->type_table[cltype27] == idtype28;
701 }
702 }
703 if (unlikely(!var26)) {
704 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
705 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TDotdotdot", var_class_name29);
706 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2811);
707 show_backtrace(1);
708 }
709 {
710 parser_prod__AParam__n_dotdotdot_61d(self, var_new_child); /* Direct call parser_prod#AParam#n_dotdotdot= on <self:AParam>*/
711 }
712 goto RET_LABEL;
713 } else {
714 }
715 var30 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AParam> */
716 if (var30 == NULL) {
717 var31 = 0; /* <var_old_child:ANode> cannot be null */
718 } else {
719 { /* Inline kernel#Object#== (var30,var_old_child) on <var30:nullable AAnnotations> */
720 var_other = var_old_child;
721 {
722 { /* Inline kernel#Object#is_same_instance (var30,var_other) on <var30:nullable AAnnotations(AAnnotations)> */
723 var36 = var30 == var_other;
724 var34 = var36;
725 goto RET_LABEL35;
726 RET_LABEL35:(void)0;
727 }
728 }
729 var32 = var34;
730 goto RET_LABEL33;
731 RET_LABEL33:(void)0;
732 }
733 var31 = var32;
734 }
735 if (var31){
736 /* <var_new_child:nullable ANode> isa nullable AAnnotations */
737 cltype38 = type_nullable_parser_nodes__AAnnotations.color;
738 idtype39 = type_nullable_parser_nodes__AAnnotations.id;
739 if(var_new_child == NULL) {
740 var37 = 1;
741 } else {
742 if(cltype38 >= var_new_child->type->table_size) {
743 var37 = 0;
744 } else {
745 var37 = var_new_child->type->type_table[cltype38] == idtype39;
746 }
747 }
748 if (unlikely(!var37)) {
749 var_class_name40 = var_new_child == NULL ? "null" : var_new_child->type->name;
750 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AAnnotations", var_class_name40);
751 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2815);
752 show_backtrace(1);
753 }
754 {
755 parser_prod__AParam__n_annotations_61d(self, var_new_child); /* Direct call parser_prod#AParam#n_annotations= on <self:AParam>*/
756 }
757 goto RET_LABEL;
758 } else {
759 }
760 RET_LABEL:;
761 }
762 /* method parser_prod#AParam#replace_child for (self: Object, ANode, nullable ANode) */
763 void VIRTUAL_parser_prod__AParam__replace_child(val* self, val* p0, val* p1) {
764 parser_prod__AParam__replace_child(self, p0, p1); /* Direct call parser_prod#AParam#replace_child on <self:Object(AParam)>*/
765 RET_LABEL:;
766 }
767 /* method parser_prod#AParam#n_id= for (self: AParam, TId) */
768 void parser_prod__AParam__n_id_61d(val* self, val* p0) {
769 val* var_node /* var node: TId */;
770 var_node = p0;
771 self->attrs[COLOR_parser_nodes__AParam___n_id].val = var_node; /* _n_id on <self:AParam> */
772 {
773 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TId> */
774 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TId> */
775 RET_LABEL1:(void)0;
776 }
777 }
778 RET_LABEL:;
779 }
780 /* method parser_prod#AParam#n_id= for (self: Object, TId) */
781 void VIRTUAL_parser_prod__AParam__n_id_61d(val* self, val* p0) {
782 parser_prod__AParam__n_id_61d(self, p0); /* Direct call parser_prod#AParam#n_id= on <self:Object(AParam)>*/
783 RET_LABEL:;
784 }
785 /* method parser_prod#AParam#n_type= for (self: AParam, nullable AType) */
786 void parser_prod__AParam__n_type_61d(val* self, val* p0) {
787 val* var_node /* var node: nullable AType */;
788 val* var /* : null */;
789 short int var1 /* : Bool */;
790 short int var2 /* : Bool */;
791 val* var_other /* var other: nullable Object */;
792 short int var4 /* : Bool */;
793 short int var5 /* : Bool */;
794 short int var6 /* : Bool */;
795 var_node = p0;
796 self->attrs[COLOR_parser_nodes__AParam___n_type].val = var_node; /* _n_type on <self:AParam> */
797 var = NULL;
798 if (var_node == NULL) {
799 var1 = 0; /* is null */
800 } else {
801 var1 = 1; /* arg is null and recv is not */
802 }
803 if (0) {
804 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AType> */
805 var_other = var;
806 {
807 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AType(AType)>*/;
808 var4 = var5;
809 }
810 var6 = !var4;
811 var2 = var6;
812 goto RET_LABEL3;
813 RET_LABEL3:(void)0;
814 }
815 var1 = var2;
816 }
817 if (var1){
818 {
819 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AType(AType)> */
820 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AType(AType)> */
821 RET_LABEL7:(void)0;
822 }
823 }
824 } else {
825 }
826 RET_LABEL:;
827 }
828 /* method parser_prod#AParam#n_type= for (self: Object, nullable AType) */
829 void VIRTUAL_parser_prod__AParam__n_type_61d(val* self, val* p0) {
830 parser_prod__AParam__n_type_61d(self, p0); /* Direct call parser_prod#AParam#n_type= on <self:Object(AParam)>*/
831 RET_LABEL:;
832 }
833 /* method parser_prod#AParam#n_dotdotdot= for (self: AParam, nullable TDotdotdot) */
834 void parser_prod__AParam__n_dotdotdot_61d(val* self, val* p0) {
835 val* var_node /* var node: nullable TDotdotdot */;
836 val* var /* : null */;
837 short int var1 /* : Bool */;
838 short int var2 /* : Bool */;
839 val* var_other /* var other: nullable Object */;
840 short int var4 /* : Bool */;
841 short int var5 /* : Bool */;
842 short int var6 /* : Bool */;
843 var_node = p0;
844 self->attrs[COLOR_parser_nodes__AParam___n_dotdotdot].val = var_node; /* _n_dotdotdot on <self:AParam> */
845 var = NULL;
846 if (var_node == NULL) {
847 var1 = 0; /* is null */
848 } else {
849 var1 = 1; /* arg is null and recv is not */
850 }
851 if (0) {
852 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable TDotdotdot> */
853 var_other = var;
854 {
855 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable TDotdotdot(TDotdotdot)>*/;
856 var4 = var5;
857 }
858 var6 = !var4;
859 var2 = var6;
860 goto RET_LABEL3;
861 RET_LABEL3:(void)0;
862 }
863 var1 = var2;
864 }
865 if (var1){
866 {
867 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TDotdotdot(TDotdotdot)> */
868 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TDotdotdot(TDotdotdot)> */
869 RET_LABEL7:(void)0;
870 }
871 }
872 } else {
873 }
874 RET_LABEL:;
875 }
876 /* method parser_prod#AParam#n_dotdotdot= for (self: Object, nullable TDotdotdot) */
877 void VIRTUAL_parser_prod__AParam__n_dotdotdot_61d(val* self, val* p0) {
878 parser_prod__AParam__n_dotdotdot_61d(self, p0); /* Direct call parser_prod#AParam#n_dotdotdot= on <self:Object(AParam)>*/
879 RET_LABEL:;
880 }
881 /* method parser_prod#AParam#n_annotations= for (self: AParam, nullable AAnnotations) */
882 void parser_prod__AParam__n_annotations_61d(val* self, val* p0) {
883 val* var_node /* var node: nullable AAnnotations */;
884 val* var /* : null */;
885 short int var1 /* : Bool */;
886 short int var2 /* : Bool */;
887 val* var_other /* var other: nullable Object */;
888 short int var4 /* : Bool */;
889 short int var5 /* : Bool */;
890 short int var6 /* : Bool */;
891 var_node = p0;
892 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_node; /* _n_annotations on <self:AParam> */
893 var = NULL;
894 if (var_node == NULL) {
895 var1 = 0; /* is null */
896 } else {
897 var1 = 1; /* arg is null and recv is not */
898 }
899 if (0) {
900 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AAnnotations> */
901 var_other = var;
902 {
903 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AAnnotations(AAnnotations)>*/;
904 var4 = var5;
905 }
906 var6 = !var4;
907 var2 = var6;
908 goto RET_LABEL3;
909 RET_LABEL3:(void)0;
910 }
911 var1 = var2;
912 }
913 if (var1){
914 {
915 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AAnnotations(AAnnotations)> */
916 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AAnnotations(AAnnotations)> */
917 RET_LABEL7:(void)0;
918 }
919 }
920 } else {
921 }
922 RET_LABEL:;
923 }
924 /* method parser_prod#AParam#n_annotations= for (self: Object, nullable AAnnotations) */
925 void VIRTUAL_parser_prod__AParam__n_annotations_61d(val* self, val* p0) {
926 parser_prod__AParam__n_annotations_61d(self, p0); /* Direct call parser_prod#AParam#n_annotations= on <self:Object(AParam)>*/
927 RET_LABEL:;
928 }
929 /* method parser_prod#AParam#visit_all for (self: AParam, Visitor) */
930 void parser_prod__AParam__visit_all(val* self, val* p0) {
931 val* var_v /* var v: Visitor */;
932 val* var /* : TId */;
933 val* var1 /* : nullable AType */;
934 val* var2 /* : nullable TDotdotdot */;
935 val* var3 /* : nullable AAnnotations */;
936 var_v = p0;
937 var = self->attrs[COLOR_parser_nodes__AParam___n_id].val; /* _n_id on <self:AParam> */
938 if (unlikely(var == NULL)) {
939 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
940 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2844);
941 show_backtrace(1);
942 }
943 {
944 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
945 }
946 var1 = self->attrs[COLOR_parser_nodes__AParam___n_type].val; /* _n_type on <self:AParam> */
947 {
948 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
949 }
950 var2 = self->attrs[COLOR_parser_nodes__AParam___n_dotdotdot].val; /* _n_dotdotdot on <self:AParam> */
951 {
952 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
953 }
954 var3 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AParam> */
955 {
956 parser_nodes__Visitor__enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
957 }
958 RET_LABEL:;
959 }
960 /* method parser_prod#AParam#visit_all for (self: Object, Visitor) */
961 void VIRTUAL_parser_prod__AParam__visit_all(val* self, val* p0) {
962 parser_prod__AParam__visit_all(self, p0); /* Direct call parser_prod#AParam#visit_all on <self:Object(AParam)>*/
963 RET_LABEL:;
964 }
965 /* method parser_prod#AType#init_atype for (self: AType, nullable TKwnullable, nullable TClassid, Collection[Object], nullable AAnnotations) */
966 void parser_prod__AType__init_atype(val* self, val* p0, val* p1, val* p2, val* p3) {
967 val* var_n_kwnullable /* var n_kwnullable: nullable TKwnullable */;
968 val* var_n_id /* var n_id: nullable TClassid */;
969 val* var_n_types /* var n_types: Collection[Object] */;
970 val* var_n_annotations /* var n_annotations: nullable AAnnotations */;
971 val* var /* : null */;
972 short int var1 /* : Bool */;
973 short int var2 /* : Bool */;
974 val* var_other /* var other: nullable Object */;
975 short int var4 /* : Bool */;
976 short int var5 /* : Bool */;
977 short int var6 /* : Bool */;
978 val* var9 /* : ANodes[AType] */;
979 val* var11 /* : ANodes[AType] */;
980 val* var12 /* : null */;
981 short int var13 /* : Bool */;
982 short int var14 /* : Bool */;
983 short int var16 /* : Bool */;
984 short int var17 /* : Bool */;
985 short int var18 /* : Bool */;
986 var_n_kwnullable = p0;
987 var_n_id = p1;
988 var_n_types = p2;
989 var_n_annotations = p3;
990 self->attrs[COLOR_parser_nodes__AType___n_kwnullable].val = var_n_kwnullable; /* _n_kwnullable on <self:AType> */
991 var = NULL;
992 if (var_n_kwnullable == NULL) {
993 var1 = 0; /* is null */
994 } else {
995 var1 = 1; /* arg is null and recv is not */
996 }
997 if (0) {
998 { /* Inline kernel#Object#!= (var_n_kwnullable,var) on <var_n_kwnullable:nullable TKwnullable> */
999 var_other = var;
1000 {
1001 var5 = ((short int (*)(val*, val*))(var_n_kwnullable->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_kwnullable, var_other) /* == on <var_n_kwnullable:nullable TKwnullable(TKwnullable)>*/;
1002 var4 = var5;
1003 }
1004 var6 = !var4;
1005 var2 = var6;
1006 goto RET_LABEL3;
1007 RET_LABEL3:(void)0;
1008 }
1009 var1 = var2;
1010 }
1011 if (var1){
1012 {
1013 { /* Inline parser_nodes#ANode#parent= (var_n_kwnullable,self) on <var_n_kwnullable:nullable TKwnullable(TKwnullable)> */
1014 var_n_kwnullable->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwnullable:nullable TKwnullable(TKwnullable)> */
1015 RET_LABEL7:(void)0;
1016 }
1017 }
1018 } else {
1019 }
1020 if (unlikely(var_n_id == NULL)) {
1021 PRINT_ERROR("Runtime error: %s", "Cast failed");
1022 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2860);
1023 show_backtrace(1);
1024 }
1025 self->attrs[COLOR_parser_nodes__AType___n_id].val = var_n_id; /* _n_id on <self:AType> */
1026 if (var_n_id == NULL) {
1027 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1028 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2861);
1029 show_backtrace(1);
1030 } else {
1031 { /* Inline parser_nodes#ANode#parent= (var_n_id,self) on <var_n_id:nullable TClassid> */
1032 if (unlikely(var_n_id == NULL)) {
1033 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1034 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
1035 show_backtrace(1);
1036 }
1037 var_n_id->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_id:nullable TClassid> */
1038 RET_LABEL8:(void)0;
1039 }
1040 }
1041 {
1042 { /* Inline parser_nodes#AType#n_types (self) on <self:AType> */
1043 var11 = self->attrs[COLOR_parser_nodes__AType___n_types].val; /* _n_types on <self:AType> */
1044 if (unlikely(var11 == NULL)) {
1045 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_types");
1046 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 1397);
1047 show_backtrace(1);
1048 }
1049 var9 = var11;
1050 RET_LABEL10:(void)0;
1051 }
1052 }
1053 {
1054 parser_nodes__ANodes__unsafe_add_all(var9, var_n_types); /* Direct call parser_nodes#ANodes#unsafe_add_all on <var9:ANodes[AType]>*/
1055 }
1056 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:AType> */
1057 var12 = NULL;
1058 if (var_n_annotations == NULL) {
1059 var13 = 0; /* is null */
1060 } else {
1061 var13 = 1; /* arg is null and recv is not */
1062 }
1063 if (0) {
1064 { /* Inline kernel#Object#!= (var_n_annotations,var12) on <var_n_annotations:nullable AAnnotations> */
1065 var_other = var12;
1066 {
1067 var17 = ((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)>*/;
1068 var16 = var17;
1069 }
1070 var18 = !var16;
1071 var14 = var18;
1072 goto RET_LABEL15;
1073 RET_LABEL15:(void)0;
1074 }
1075 var13 = var14;
1076 }
1077 if (var13){
1078 {
1079 { /* Inline parser_nodes#ANode#parent= (var_n_annotations,self) on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
1080 var_n_annotations->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
1081 RET_LABEL19:(void)0;
1082 }
1083 }
1084 } else {
1085 }
1086 RET_LABEL:;
1087 }
1088 /* method parser_prod#AType#init_atype for (self: Object, nullable TKwnullable, nullable TClassid, Collection[Object], nullable AAnnotations) */
1089 void VIRTUAL_parser_prod__AType__init_atype(val* self, val* p0, val* p1, val* p2, val* p3) {
1090 parser_prod__AType__init_atype(self, p0, p1, p2, p3); /* Direct call parser_prod#AType#init_atype on <self:Object(AType)>*/
1091 RET_LABEL:;
1092 }
1093 /* method parser_prod#AType#replace_child for (self: AType, ANode, nullable ANode) */
1094 void parser_prod__AType__replace_child(val* self, val* p0, val* p1) {
1095 val* var_old_child /* var old_child: ANode */;
1096 val* var_new_child /* var new_child: nullable ANode */;
1097 val* var /* : nullable TKwnullable */;
1098 short int var1 /* : Bool */;
1099 short int var2 /* : Bool */;
1100 val* var_other /* var other: nullable Object */;
1101 short int var4 /* : Bool */;
1102 short int var6 /* : Bool */;
1103 short int var7 /* : Bool */;
1104 int cltype;
1105 int idtype;
1106 const char* var_class_name;
1107 val* var8 /* : TClassid */;
1108 short int var9 /* : Bool */;
1109 short int var10 /* : Bool */;
1110 short int var12 /* : Bool */;
1111 short int var14 /* : Bool */;
1112 short int var15 /* : Bool */;
1113 int cltype16;
1114 int idtype17;
1115 const char* var_class_name18;
1116 val* var19 /* : ANodes[AType] */;
1117 val* var21 /* : ANodes[AType] */;
1118 short int var22 /* : Bool */;
1119 val* var23 /* : nullable AAnnotations */;
1120 short int var24 /* : Bool */;
1121 short int var25 /* : Bool */;
1122 short int var27 /* : Bool */;
1123 short int var29 /* : Bool */;
1124 short int var30 /* : Bool */;
1125 int cltype31;
1126 int idtype32;
1127 const char* var_class_name33;
1128 var_old_child = p0;
1129 var_new_child = p1;
1130 var = self->attrs[COLOR_parser_nodes__AType___n_kwnullable].val; /* _n_kwnullable on <self:AType> */
1131 if (var == NULL) {
1132 var1 = 0; /* <var_old_child:ANode> cannot be null */
1133 } else {
1134 { /* Inline kernel#Object#== (var,var_old_child) on <var:nullable TKwnullable> */
1135 var_other = var_old_child;
1136 {
1137 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:nullable TKwnullable(TKwnullable)> */
1138 var6 = var == var_other;
1139 var4 = var6;
1140 goto RET_LABEL5;
1141 RET_LABEL5:(void)0;
1142 }
1143 }
1144 var2 = var4;
1145 goto RET_LABEL3;
1146 RET_LABEL3:(void)0;
1147 }
1148 var1 = var2;
1149 }
1150 if (var1){
1151 /* <var_new_child:nullable ANode> isa nullable TKwnullable */
1152 cltype = type_nullable_parser_nodes__TKwnullable.color;
1153 idtype = type_nullable_parser_nodes__TKwnullable.id;
1154 if(var_new_child == NULL) {
1155 var7 = 1;
1156 } else {
1157 if(cltype >= var_new_child->type->table_size) {
1158 var7 = 0;
1159 } else {
1160 var7 = var_new_child->type->type_table[cltype] == idtype;
1161 }
1162 }
1163 if (unlikely(!var7)) {
1164 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
1165 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TKwnullable", var_class_name);
1166 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2870);
1167 show_backtrace(1);
1168 }
1169 {
1170 parser_prod__AType__n_kwnullable_61d(self, var_new_child); /* Direct call parser_prod#AType#n_kwnullable= on <self:AType>*/
1171 }
1172 goto RET_LABEL;
1173 } else {
1174 }
1175 var8 = self->attrs[COLOR_parser_nodes__AType___n_id].val; /* _n_id on <self:AType> */
1176 if (unlikely(var8 == NULL)) {
1177 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
1178 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2873);
1179 show_backtrace(1);
1180 }
1181 {
1182 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:TClassid> */
1183 var_other = var_old_child;
1184 {
1185 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:TClassid> */
1186 var14 = var8 == var_other;
1187 var12 = var14;
1188 goto RET_LABEL13;
1189 RET_LABEL13:(void)0;
1190 }
1191 }
1192 var10 = var12;
1193 goto RET_LABEL11;
1194 RET_LABEL11:(void)0;
1195 }
1196 var9 = var10;
1197 }
1198 if (var9){
1199 /* <var_new_child:nullable ANode> isa TClassid */
1200 cltype16 = type_parser_nodes__TClassid.color;
1201 idtype17 = type_parser_nodes__TClassid.id;
1202 if(var_new_child == NULL) {
1203 var15 = 0;
1204 } else {
1205 if(cltype16 >= var_new_child->type->table_size) {
1206 var15 = 0;
1207 } else {
1208 var15 = var_new_child->type->type_table[cltype16] == idtype17;
1209 }
1210 }
1211 if (unlikely(!var15)) {
1212 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
1213 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TClassid", var_class_name18);
1214 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2874);
1215 show_backtrace(1);
1216 }
1217 {
1218 parser_prod__AType__n_id_61d(self, var_new_child); /* Direct call parser_prod#AType#n_id= on <self:AType>*/
1219 }
1220 goto RET_LABEL;
1221 } else {
1222 }
1223 {
1224 { /* Inline parser_nodes#AType#n_types (self) on <self:AType> */
1225 var21 = self->attrs[COLOR_parser_nodes__AType___n_types].val; /* _n_types on <self:AType> */
1226 if (unlikely(var21 == NULL)) {
1227 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_types");
1228 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 1397);
1229 show_backtrace(1);
1230 }
1231 var19 = var21;
1232 RET_LABEL20:(void)0;
1233 }
1234 }
1235 {
1236 var22 = parser_nodes__ANodes__replace_child(var19, var_old_child, var_new_child);
1237 }
1238 if (var22){
1239 goto RET_LABEL;
1240 } else {
1241 }
1242 var23 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AType> */
1243 if (var23 == NULL) {
1244 var24 = 0; /* <var_old_child:ANode> cannot be null */
1245 } else {
1246 { /* Inline kernel#Object#== (var23,var_old_child) on <var23:nullable AAnnotations> */
1247 var_other = var_old_child;
1248 {
1249 { /* Inline kernel#Object#is_same_instance (var23,var_other) on <var23:nullable AAnnotations(AAnnotations)> */
1250 var29 = var23 == var_other;
1251 var27 = var29;
1252 goto RET_LABEL28;
1253 RET_LABEL28:(void)0;
1254 }
1255 }
1256 var25 = var27;
1257 goto RET_LABEL26;
1258 RET_LABEL26:(void)0;
1259 }
1260 var24 = var25;
1261 }
1262 if (var24){
1263 /* <var_new_child:nullable ANode> isa nullable AAnnotations */
1264 cltype31 = type_nullable_parser_nodes__AAnnotations.color;
1265 idtype32 = type_nullable_parser_nodes__AAnnotations.id;
1266 if(var_new_child == NULL) {
1267 var30 = 1;
1268 } else {
1269 if(cltype31 >= var_new_child->type->table_size) {
1270 var30 = 0;
1271 } else {
1272 var30 = var_new_child->type->type_table[cltype31] == idtype32;
1273 }
1274 }
1275 if (unlikely(!var30)) {
1276 var_class_name33 = var_new_child == NULL ? "null" : var_new_child->type->name;
1277 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AAnnotations", var_class_name33);
1278 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2879);
1279 show_backtrace(1);
1280 }
1281 {
1282 parser_prod__AType__n_annotations_61d(self, var_new_child); /* Direct call parser_prod#AType#n_annotations= on <self:AType>*/
1283 }
1284 goto RET_LABEL;
1285 } else {
1286 }
1287 RET_LABEL:;
1288 }
1289 /* method parser_prod#AType#replace_child for (self: Object, ANode, nullable ANode) */
1290 void VIRTUAL_parser_prod__AType__replace_child(val* self, val* p0, val* p1) {
1291 parser_prod__AType__replace_child(self, p0, p1); /* Direct call parser_prod#AType#replace_child on <self:Object(AType)>*/
1292 RET_LABEL:;
1293 }
1294 /* method parser_prod#AType#n_kwnullable= for (self: AType, nullable TKwnullable) */
1295 void parser_prod__AType__n_kwnullable_61d(val* self, val* p0) {
1296 val* var_node /* var node: nullable TKwnullable */;
1297 val* var /* : null */;
1298 short int var1 /* : Bool */;
1299 short int var2 /* : Bool */;
1300 val* var_other /* var other: nullable Object */;
1301 short int var4 /* : Bool */;
1302 short int var5 /* : Bool */;
1303 short int var6 /* : Bool */;
1304 var_node = p0;
1305 self->attrs[COLOR_parser_nodes__AType___n_kwnullable].val = var_node; /* _n_kwnullable on <self:AType> */
1306 var = NULL;
1307 if (var_node == NULL) {
1308 var1 = 0; /* is null */
1309 } else {
1310 var1 = 1; /* arg is null and recv is not */
1311 }
1312 if (0) {
1313 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable TKwnullable> */
1314 var_other = var;
1315 {
1316 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable TKwnullable(TKwnullable)>*/;
1317 var4 = var5;
1318 }
1319 var6 = !var4;
1320 var2 = var6;
1321 goto RET_LABEL3;
1322 RET_LABEL3:(void)0;
1323 }
1324 var1 = var2;
1325 }
1326 if (var1){
1327 {
1328 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TKwnullable(TKwnullable)> */
1329 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TKwnullable(TKwnullable)> */
1330 RET_LABEL7:(void)0;
1331 }
1332 }
1333 } else {
1334 }
1335 RET_LABEL:;
1336 }
1337 /* method parser_prod#AType#n_kwnullable= for (self: Object, nullable TKwnullable) */
1338 void VIRTUAL_parser_prod__AType__n_kwnullable_61d(val* self, val* p0) {
1339 parser_prod__AType__n_kwnullable_61d(self, p0); /* Direct call parser_prod#AType#n_kwnullable= on <self:Object(AType)>*/
1340 RET_LABEL:;
1341 }
1342 /* method parser_prod#AType#n_id= for (self: AType, TClassid) */
1343 void parser_prod__AType__n_id_61d(val* self, val* p0) {
1344 val* var_node /* var node: TClassid */;
1345 var_node = p0;
1346 self->attrs[COLOR_parser_nodes__AType___n_id].val = var_node; /* _n_id on <self:AType> */
1347 {
1348 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TClassid> */
1349 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TClassid> */
1350 RET_LABEL1:(void)0;
1351 }
1352 }
1353 RET_LABEL:;
1354 }
1355 /* method parser_prod#AType#n_id= for (self: Object, TClassid) */
1356 void VIRTUAL_parser_prod__AType__n_id_61d(val* self, val* p0) {
1357 parser_prod__AType__n_id_61d(self, p0); /* Direct call parser_prod#AType#n_id= on <self:Object(AType)>*/
1358 RET_LABEL:;
1359 }
1360 /* method parser_prod#AType#n_annotations= for (self: AType, nullable AAnnotations) */
1361 void parser_prod__AType__n_annotations_61d(val* self, val* p0) {
1362 val* var_node /* var node: nullable AAnnotations */;
1363 val* var /* : null */;
1364 short int var1 /* : Bool */;
1365 short int var2 /* : Bool */;
1366 val* var_other /* var other: nullable Object */;
1367 short int var4 /* : Bool */;
1368 short int var5 /* : Bool */;
1369 short int var6 /* : Bool */;
1370 var_node = p0;
1371 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_node; /* _n_annotations on <self:AType> */
1372 var = NULL;
1373 if (var_node == NULL) {
1374 var1 = 0; /* is null */
1375 } else {
1376 var1 = 1; /* arg is null and recv is not */
1377 }
1378 if (0) {
1379 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AAnnotations> */
1380 var_other = var;
1381 {
1382 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AAnnotations(AAnnotations)>*/;
1383 var4 = var5;
1384 }
1385 var6 = !var4;
1386 var2 = var6;
1387 goto RET_LABEL3;
1388 RET_LABEL3:(void)0;
1389 }
1390 var1 = var2;
1391 }
1392 if (var1){
1393 {
1394 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AAnnotations(AAnnotations)> */
1395 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AAnnotations(AAnnotations)> */
1396 RET_LABEL7:(void)0;
1397 }
1398 }
1399 } else {
1400 }
1401 RET_LABEL:;
1402 }
1403 /* method parser_prod#AType#n_annotations= for (self: Object, nullable AAnnotations) */
1404 void VIRTUAL_parser_prod__AType__n_annotations_61d(val* self, val* p0) {
1405 parser_prod__AType__n_annotations_61d(self, p0); /* Direct call parser_prod#AType#n_annotations= on <self:Object(AType)>*/
1406 RET_LABEL:;
1407 }
1408 /* method parser_prod#AType#visit_all for (self: AType, Visitor) */
1409 void parser_prod__AType__visit_all(val* self, val* p0) {
1410 val* var_v /* var v: Visitor */;
1411 val* var /* : nullable TKwnullable */;
1412 val* var1 /* : TClassid */;
1413 val* var2 /* : ANodes[AType] */;
1414 val* var4 /* : ANodes[AType] */;
1415 val* var5 /* : nullable AAnnotations */;
1416 var_v = p0;
1417 var = self->attrs[COLOR_parser_nodes__AType___n_kwnullable].val; /* _n_kwnullable on <self:AType> */
1418 {
1419 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1420 }
1421 var1 = self->attrs[COLOR_parser_nodes__AType___n_id].val; /* _n_id on <self:AType> */
1422 if (unlikely(var1 == NULL)) {
1423 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
1424 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2904);
1425 show_backtrace(1);
1426 }
1427 {
1428 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1429 }
1430 {
1431 { /* Inline parser_nodes#AType#n_types (self) on <self:AType> */
1432 var4 = self->attrs[COLOR_parser_nodes__AType___n_types].val; /* _n_types on <self:AType> */
1433 if (unlikely(var4 == NULL)) {
1434 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_types");
1435 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 1397);
1436 show_backtrace(1);
1437 }
1438 var2 = var4;
1439 RET_LABEL3:(void)0;
1440 }
1441 }
1442 {
1443 parser_nodes__ANodes__visit_all(var2, var_v); /* Direct call parser_nodes#ANodes#visit_all on <var2:ANodes[AType]>*/
1444 }
1445 var5 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AType> */
1446 {
1447 parser_nodes__Visitor__enter_visit(var_v, var5); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1448 }
1449 RET_LABEL:;
1450 }
1451 /* method parser_prod#AType#visit_all for (self: Object, Visitor) */
1452 void VIRTUAL_parser_prod__AType__visit_all(val* self, val* p0) {
1453 parser_prod__AType__visit_all(self, p0); /* Direct call parser_prod#AType#visit_all on <self:Object(AType)>*/
1454 RET_LABEL:;
1455 }
1456 /* method parser_prod#ALabel#init_alabel for (self: ALabel, nullable TKwlabel, nullable TId) */
1457 void parser_prod__ALabel__init_alabel(val* self, val* p0, val* p1) {
1458 val* var_n_kwlabel /* var n_kwlabel: nullable TKwlabel */;
1459 val* var_n_id /* var n_id: nullable TId */;
1460 val* var /* : null */;
1461 short int var2 /* : Bool */;
1462 short int var3 /* : Bool */;
1463 val* var_other /* var other: nullable Object */;
1464 short int var5 /* : Bool */;
1465 short int var6 /* : Bool */;
1466 short int var7 /* : Bool */;
1467 var_n_kwlabel = p0;
1468 var_n_id = p1;
1469 if (unlikely(var_n_kwlabel == NULL)) {
1470 PRINT_ERROR("Runtime error: %s", "Cast failed");
1471 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2915);
1472 show_backtrace(1);
1473 }
1474 self->attrs[COLOR_parser_nodes__ALabel___n_kwlabel].val = var_n_kwlabel; /* _n_kwlabel on <self:ALabel> */
1475 if (var_n_kwlabel == NULL) {
1476 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1477 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2916);
1478 show_backtrace(1);
1479 } else {
1480 { /* Inline parser_nodes#ANode#parent= (var_n_kwlabel,self) on <var_n_kwlabel:nullable TKwlabel> */
1481 if (unlikely(var_n_kwlabel == NULL)) {
1482 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1483 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
1484 show_backtrace(1);
1485 }
1486 var_n_kwlabel->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwlabel:nullable TKwlabel> */
1487 RET_LABEL1:(void)0;
1488 }
1489 }
1490 self->attrs[COLOR_parser_nodes__ALabel___n_id].val = var_n_id; /* _n_id on <self:ALabel> */
1491 var = NULL;
1492 if (var_n_id == NULL) {
1493 var2 = 0; /* is null */
1494 } else {
1495 var2 = 1; /* arg is null and recv is not */
1496 }
1497 if (0) {
1498 { /* Inline kernel#Object#!= (var_n_id,var) on <var_n_id:nullable TId> */
1499 var_other = var;
1500 {
1501 var6 = ((short int (*)(val*, val*))(var_n_id->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_id, var_other) /* == on <var_n_id:nullable TId(TId)>*/;
1502 var5 = var6;
1503 }
1504 var7 = !var5;
1505 var3 = var7;
1506 goto RET_LABEL4;
1507 RET_LABEL4:(void)0;
1508 }
1509 var2 = var3;
1510 }
1511 if (var2){
1512 {
1513 { /* Inline parser_nodes#ANode#parent= (var_n_id,self) on <var_n_id:nullable TId(TId)> */
1514 var_n_id->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_id:nullable TId(TId)> */
1515 RET_LABEL8:(void)0;
1516 }
1517 }
1518 } else {
1519 }
1520 RET_LABEL:;
1521 }
1522 /* method parser_prod#ALabel#init_alabel for (self: Object, nullable TKwlabel, nullable TId) */
1523 void VIRTUAL_parser_prod__ALabel__init_alabel(val* self, val* p0, val* p1) {
1524 parser_prod__ALabel__init_alabel(self, p0, p1); /* Direct call parser_prod#ALabel#init_alabel on <self:Object(ALabel)>*/
1525 RET_LABEL:;
1526 }
1527 /* method parser_prod#ALabel#replace_child for (self: ALabel, ANode, nullable ANode) */
1528 void parser_prod__ALabel__replace_child(val* self, val* p0, val* p1) {
1529 val* var_old_child /* var old_child: ANode */;
1530 val* var_new_child /* var new_child: nullable ANode */;
1531 val* var /* : TKwlabel */;
1532 short int var1 /* : Bool */;
1533 short int var2 /* : Bool */;
1534 val* var_other /* var other: nullable Object */;
1535 short int var4 /* : Bool */;
1536 short int var6 /* : Bool */;
1537 short int var7 /* : Bool */;
1538 int cltype;
1539 int idtype;
1540 const char* var_class_name;
1541 val* var8 /* : nullable TId */;
1542 short int var9 /* : Bool */;
1543 short int var10 /* : Bool */;
1544 short int var12 /* : Bool */;
1545 short int var14 /* : Bool */;
1546 short int var15 /* : Bool */;
1547 int cltype16;
1548 int idtype17;
1549 const char* var_class_name18;
1550 var_old_child = p0;
1551 var_new_child = p1;
1552 var = self->attrs[COLOR_parser_nodes__ALabel___n_kwlabel].val; /* _n_kwlabel on <self:ALabel> */
1553 if (unlikely(var == NULL)) {
1554 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwlabel");
1555 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2923);
1556 show_backtrace(1);
1557 }
1558 {
1559 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwlabel> */
1560 var_other = var_old_child;
1561 {
1562 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TKwlabel> */
1563 var6 = var == var_other;
1564 var4 = var6;
1565 goto RET_LABEL5;
1566 RET_LABEL5:(void)0;
1567 }
1568 }
1569 var2 = var4;
1570 goto RET_LABEL3;
1571 RET_LABEL3:(void)0;
1572 }
1573 var1 = var2;
1574 }
1575 if (var1){
1576 /* <var_new_child:nullable ANode> isa TKwlabel */
1577 cltype = type_parser_nodes__TKwlabel.color;
1578 idtype = type_parser_nodes__TKwlabel.id;
1579 if(var_new_child == NULL) {
1580 var7 = 0;
1581 } else {
1582 if(cltype >= var_new_child->type->table_size) {
1583 var7 = 0;
1584 } else {
1585 var7 = var_new_child->type->type_table[cltype] == idtype;
1586 }
1587 }
1588 if (unlikely(!var7)) {
1589 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
1590 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwlabel", var_class_name);
1591 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2924);
1592 show_backtrace(1);
1593 }
1594 {
1595 parser_prod__ALabel__n_kwlabel_61d(self, var_new_child); /* Direct call parser_prod#ALabel#n_kwlabel= on <self:ALabel>*/
1596 }
1597 goto RET_LABEL;
1598 } else {
1599 }
1600 var8 = self->attrs[COLOR_parser_nodes__ALabel___n_id].val; /* _n_id on <self:ALabel> */
1601 if (var8 == NULL) {
1602 var9 = 0; /* <var_old_child:ANode> cannot be null */
1603 } else {
1604 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:nullable TId> */
1605 var_other = var_old_child;
1606 {
1607 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:nullable TId(TId)> */
1608 var14 = var8 == var_other;
1609 var12 = var14;
1610 goto RET_LABEL13;
1611 RET_LABEL13:(void)0;
1612 }
1613 }
1614 var10 = var12;
1615 goto RET_LABEL11;
1616 RET_LABEL11:(void)0;
1617 }
1618 var9 = var10;
1619 }
1620 if (var9){
1621 /* <var_new_child:nullable ANode> isa nullable TId */
1622 cltype16 = type_nullable_parser_nodes__TId.color;
1623 idtype17 = type_nullable_parser_nodes__TId.id;
1624 if(var_new_child == NULL) {
1625 var15 = 1;
1626 } else {
1627 if(cltype16 >= var_new_child->type->table_size) {
1628 var15 = 0;
1629 } else {
1630 var15 = var_new_child->type->type_table[cltype16] == idtype17;
1631 }
1632 }
1633 if (unlikely(!var15)) {
1634 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
1635 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TId", var_class_name18);
1636 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2928);
1637 show_backtrace(1);
1638 }
1639 {
1640 parser_prod__ALabel__n_id_61d(self, var_new_child); /* Direct call parser_prod#ALabel#n_id= on <self:ALabel>*/
1641 }
1642 goto RET_LABEL;
1643 } else {
1644 }
1645 RET_LABEL:;
1646 }
1647 /* method parser_prod#ALabel#replace_child for (self: Object, ANode, nullable ANode) */
1648 void VIRTUAL_parser_prod__ALabel__replace_child(val* self, val* p0, val* p1) {
1649 parser_prod__ALabel__replace_child(self, p0, p1); /* Direct call parser_prod#ALabel#replace_child on <self:Object(ALabel)>*/
1650 RET_LABEL:;
1651 }
1652 /* method parser_prod#ALabel#n_kwlabel= for (self: ALabel, TKwlabel) */
1653 void parser_prod__ALabel__n_kwlabel_61d(val* self, val* p0) {
1654 val* var_node /* var node: TKwlabel */;
1655 var_node = p0;
1656 self->attrs[COLOR_parser_nodes__ALabel___n_kwlabel].val = var_node; /* _n_kwlabel on <self:ALabel> */
1657 {
1658 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwlabel> */
1659 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwlabel> */
1660 RET_LABEL1:(void)0;
1661 }
1662 }
1663 RET_LABEL:;
1664 }
1665 /* method parser_prod#ALabel#n_kwlabel= for (self: Object, TKwlabel) */
1666 void VIRTUAL_parser_prod__ALabel__n_kwlabel_61d(val* self, val* p0) {
1667 parser_prod__ALabel__n_kwlabel_61d(self, p0); /* Direct call parser_prod#ALabel#n_kwlabel= on <self:Object(ALabel)>*/
1668 RET_LABEL:;
1669 }
1670 /* method parser_prod#ALabel#n_id= for (self: ALabel, nullable TId) */
1671 void parser_prod__ALabel__n_id_61d(val* self, val* p0) {
1672 val* var_node /* var node: nullable TId */;
1673 val* var /* : null */;
1674 short int var1 /* : Bool */;
1675 short int var2 /* : Bool */;
1676 val* var_other /* var other: nullable Object */;
1677 short int var4 /* : Bool */;
1678 short int var5 /* : Bool */;
1679 short int var6 /* : Bool */;
1680 var_node = p0;
1681 self->attrs[COLOR_parser_nodes__ALabel___n_id].val = var_node; /* _n_id on <self:ALabel> */
1682 var = NULL;
1683 if (var_node == NULL) {
1684 var1 = 0; /* is null */
1685 } else {
1686 var1 = 1; /* arg is null and recv is not */
1687 }
1688 if (0) {
1689 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable TId> */
1690 var_other = var;
1691 {
1692 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable TId(TId)>*/;
1693 var4 = var5;
1694 }
1695 var6 = !var4;
1696 var2 = var6;
1697 goto RET_LABEL3;
1698 RET_LABEL3:(void)0;
1699 }
1700 var1 = var2;
1701 }
1702 if (var1){
1703 {
1704 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TId(TId)> */
1705 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TId(TId)> */
1706 RET_LABEL7:(void)0;
1707 }
1708 }
1709 } else {
1710 }
1711 RET_LABEL:;
1712 }
1713 /* method parser_prod#ALabel#n_id= for (self: Object, nullable TId) */
1714 void VIRTUAL_parser_prod__ALabel__n_id_61d(val* self, val* p0) {
1715 parser_prod__ALabel__n_id_61d(self, p0); /* Direct call parser_prod#ALabel#n_id= on <self:Object(ALabel)>*/
1716 RET_LABEL:;
1717 }
1718 /* method parser_prod#ALabel#visit_all for (self: ALabel, Visitor) */
1719 void parser_prod__ALabel__visit_all(val* self, val* p0) {
1720 val* var_v /* var v: Visitor */;
1721 val* var /* : TKwlabel */;
1722 val* var1 /* : nullable TId */;
1723 var_v = p0;
1724 var = self->attrs[COLOR_parser_nodes__ALabel___n_kwlabel].val; /* _n_kwlabel on <self:ALabel> */
1725 if (unlikely(var == NULL)) {
1726 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwlabel");
1727 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2947);
1728 show_backtrace(1);
1729 }
1730 {
1731 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1732 }
1733 var1 = self->attrs[COLOR_parser_nodes__ALabel___n_id].val; /* _n_id on <self:ALabel> */
1734 {
1735 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1736 }
1737 RET_LABEL:;
1738 }
1739 /* method parser_prod#ALabel#visit_all for (self: Object, Visitor) */
1740 void VIRTUAL_parser_prod__ALabel__visit_all(val* self, val* p0) {
1741 parser_prod__ALabel__visit_all(self, p0); /* Direct call parser_prod#ALabel#visit_all on <self:Object(ALabel)>*/
1742 RET_LABEL:;
1743 }
1744 /* method parser_prod#ABlockExpr#init_ablockexpr for (self: ABlockExpr, Collection[Object], nullable TKwend) */
1745 void parser_prod__ABlockExpr__init_ablockexpr(val* self, val* p0, val* p1) {
1746 val* var_n_expr /* var n_expr: Collection[Object] */;
1747 val* var_n_kwend /* var n_kwend: nullable TKwend */;
1748 val* var /* : ANodes[AExpr] */;
1749 val* var2 /* : ANodes[AExpr] */;
1750 val* var3 /* : null */;
1751 short int var4 /* : Bool */;
1752 short int var5 /* : Bool */;
1753 val* var_other /* var other: nullable Object */;
1754 short int var7 /* : Bool */;
1755 short int var8 /* : Bool */;
1756 short int var9 /* : Bool */;
1757 var_n_expr = p0;
1758 var_n_kwend = p1;
1759 {
1760 { /* Inline parser_nodes#ABlockExpr#n_expr (self) on <self:ABlockExpr> */
1761 var2 = self->attrs[COLOR_parser_nodes__ABlockExpr___n_expr].val; /* _n_expr on <self:ABlockExpr> */
1762 if (unlikely(var2 == NULL)) {
1763 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1764 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 1424);
1765 show_backtrace(1);
1766 }
1767 var = var2;
1768 RET_LABEL1:(void)0;
1769 }
1770 }
1771 {
1772 parser_nodes__ANodes__unsafe_add_all(var, var_n_expr); /* Direct call parser_nodes#ANodes#unsafe_add_all on <var:ANodes[AExpr]>*/
1773 }
1774 self->attrs[COLOR_parser_nodes__ABlockExpr___n_kwend].val = var_n_kwend; /* _n_kwend on <self:ABlockExpr> */
1775 var3 = NULL;
1776 if (var_n_kwend == NULL) {
1777 var4 = 0; /* is null */
1778 } else {
1779 var4 = 1; /* arg is null and recv is not */
1780 }
1781 if (0) {
1782 { /* Inline kernel#Object#!= (var_n_kwend,var3) on <var_n_kwend:nullable TKwend> */
1783 var_other = var3;
1784 {
1785 var8 = ((short int (*)(val*, val*))(var_n_kwend->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_kwend, var_other) /* == on <var_n_kwend:nullable TKwend(TKwend)>*/;
1786 var7 = var8;
1787 }
1788 var9 = !var7;
1789 var5 = var9;
1790 goto RET_LABEL6;
1791 RET_LABEL6:(void)0;
1792 }
1793 var4 = var5;
1794 }
1795 if (var4){
1796 {
1797 { /* Inline parser_nodes#ANode#parent= (var_n_kwend,self) on <var_n_kwend:nullable TKwend(TKwend)> */
1798 var_n_kwend->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwend:nullable TKwend(TKwend)> */
1799 RET_LABEL10:(void)0;
1800 }
1801 }
1802 } else {
1803 }
1804 RET_LABEL:;
1805 }
1806 /* method parser_prod#ABlockExpr#init_ablockexpr for (self: Object, Collection[Object], nullable TKwend) */
1807 void VIRTUAL_parser_prod__ABlockExpr__init_ablockexpr(val* self, val* p0, val* p1) {
1808 parser_prod__ABlockExpr__init_ablockexpr(self, p0, p1); /* Direct call parser_prod#ABlockExpr#init_ablockexpr on <self:Object(ABlockExpr)>*/
1809 RET_LABEL:;
1810 }
1811 /* method parser_prod#ABlockExpr#replace_child for (self: ABlockExpr, ANode, nullable ANode) */
1812 void parser_prod__ABlockExpr__replace_child(val* self, val* p0, val* p1) {
1813 val* var_old_child /* var old_child: ANode */;
1814 val* var_new_child /* var new_child: nullable ANode */;
1815 val* var /* : ANodes[AExpr] */;
1816 val* var2 /* : ANodes[AExpr] */;
1817 short int var3 /* : Bool */;
1818 val* var4 /* : nullable TKwend */;
1819 short int var5 /* : Bool */;
1820 short int var6 /* : Bool */;
1821 val* var_other /* var other: nullable Object */;
1822 short int var8 /* : Bool */;
1823 short int var10 /* : Bool */;
1824 short int var11 /* : Bool */;
1825 int cltype;
1826 int idtype;
1827 const char* var_class_name;
1828 var_old_child = p0;
1829 var_new_child = p1;
1830 {
1831 { /* Inline parser_nodes#ABlockExpr#n_expr (self) on <self:ABlockExpr> */
1832 var2 = self->attrs[COLOR_parser_nodes__ABlockExpr___n_expr].val; /* _n_expr on <self:ABlockExpr> */
1833 if (unlikely(var2 == NULL)) {
1834 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1835 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 1424);
1836 show_backtrace(1);
1837 }
1838 var = var2;
1839 RET_LABEL1:(void)0;
1840 }
1841 }
1842 {
1843 var3 = parser_nodes__ANodes__replace_child(var, var_old_child, var_new_child);
1844 }
1845 if (var3){
1846 goto RET_LABEL;
1847 } else {
1848 }
1849 var4 = self->attrs[COLOR_parser_nodes__ABlockExpr___n_kwend].val; /* _n_kwend on <self:ABlockExpr> */
1850 if (var4 == NULL) {
1851 var5 = 0; /* <var_old_child:ANode> cannot be null */
1852 } else {
1853 { /* Inline kernel#Object#== (var4,var_old_child) on <var4:nullable TKwend> */
1854 var_other = var_old_child;
1855 {
1856 { /* Inline kernel#Object#is_same_instance (var4,var_other) on <var4:nullable TKwend(TKwend)> */
1857 var10 = var4 == var_other;
1858 var8 = var10;
1859 goto RET_LABEL9;
1860 RET_LABEL9:(void)0;
1861 }
1862 }
1863 var6 = var8;
1864 goto RET_LABEL7;
1865 RET_LABEL7:(void)0;
1866 }
1867 var5 = var6;
1868 }
1869 if (var5){
1870 /* <var_new_child:nullable ANode> isa nullable TKwend */
1871 cltype = type_nullable_parser_nodes__TKwend.color;
1872 idtype = type_nullable_parser_nodes__TKwend.id;
1873 if(var_new_child == NULL) {
1874 var11 = 1;
1875 } else {
1876 if(cltype >= var_new_child->type->table_size) {
1877 var11 = 0;
1878 } else {
1879 var11 = var_new_child->type->type_table[cltype] == idtype;
1880 }
1881 }
1882 if (unlikely(!var11)) {
1883 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
1884 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TKwend", var_class_name);
1885 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2966);
1886 show_backtrace(1);
1887 }
1888 {
1889 parser_prod__ABlockExpr__n_kwend_61d(self, var_new_child); /* Direct call parser_prod#ABlockExpr#n_kwend= on <self:ABlockExpr>*/
1890 }
1891 goto RET_LABEL;
1892 } else {
1893 }
1894 RET_LABEL:;
1895 }
1896 /* method parser_prod#ABlockExpr#replace_child for (self: Object, ANode, nullable ANode) */
1897 void VIRTUAL_parser_prod__ABlockExpr__replace_child(val* self, val* p0, val* p1) {
1898 parser_prod__ABlockExpr__replace_child(self, p0, p1); /* Direct call parser_prod#ABlockExpr#replace_child on <self:Object(ABlockExpr)>*/
1899 RET_LABEL:;
1900 }
1901 /* method parser_prod#ABlockExpr#n_kwend= for (self: ABlockExpr, nullable TKwend) */
1902 void parser_prod__ABlockExpr__n_kwend_61d(val* self, val* p0) {
1903 val* var_node /* var node: nullable TKwend */;
1904 val* var /* : null */;
1905 short int var1 /* : Bool */;
1906 short int var2 /* : Bool */;
1907 val* var_other /* var other: nullable Object */;
1908 short int var4 /* : Bool */;
1909 short int var5 /* : Bool */;
1910 short int var6 /* : Bool */;
1911 var_node = p0;
1912 self->attrs[COLOR_parser_nodes__ABlockExpr___n_kwend].val = var_node; /* _n_kwend on <self:ABlockExpr> */
1913 var = NULL;
1914 if (var_node == NULL) {
1915 var1 = 0; /* is null */
1916 } else {
1917 var1 = 1; /* arg is null and recv is not */
1918 }
1919 if (0) {
1920 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable TKwend> */
1921 var_other = var;
1922 {
1923 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable TKwend(TKwend)>*/;
1924 var4 = var5;
1925 }
1926 var6 = !var4;
1927 var2 = var6;
1928 goto RET_LABEL3;
1929 RET_LABEL3:(void)0;
1930 }
1931 var1 = var2;
1932 }
1933 if (var1){
1934 {
1935 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TKwend(TKwend)> */
1936 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TKwend(TKwend)> */
1937 RET_LABEL7:(void)0;
1938 }
1939 }
1940 } else {
1941 }
1942 RET_LABEL:;
1943 }
1944 /* method parser_prod#ABlockExpr#n_kwend= for (self: Object, nullable TKwend) */
1945 void VIRTUAL_parser_prod__ABlockExpr__n_kwend_61d(val* self, val* p0) {
1946 parser_prod__ABlockExpr__n_kwend_61d(self, p0); /* Direct call parser_prod#ABlockExpr#n_kwend= on <self:Object(ABlockExpr)>*/
1947 RET_LABEL:;
1948 }
1949 /* method parser_prod#ABlockExpr#visit_all for (self: ABlockExpr, Visitor) */
1950 void parser_prod__ABlockExpr__visit_all(val* self, val* p0) {
1951 val* var_v /* var v: Visitor */;
1952 val* var /* : ANodes[AExpr] */;
1953 val* var2 /* : ANodes[AExpr] */;
1954 val* var3 /* : nullable TKwend */;
1955 var_v = p0;
1956 {
1957 { /* Inline parser_nodes#ABlockExpr#n_expr (self) on <self:ABlockExpr> */
1958 var2 = self->attrs[COLOR_parser_nodes__ABlockExpr___n_expr].val; /* _n_expr on <self:ABlockExpr> */
1959 if (unlikely(var2 == NULL)) {
1960 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1961 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 1424);
1962 show_backtrace(1);
1963 }
1964 var = var2;
1965 RET_LABEL1:(void)0;
1966 }
1967 }
1968 {
1969 parser_nodes__ANodes__visit_all(var, var_v); /* Direct call parser_nodes#ANodes#visit_all on <var:ANodes[AExpr]>*/
1970 }
1971 var3 = self->attrs[COLOR_parser_nodes__ABlockExpr___n_kwend].val; /* _n_kwend on <self:ABlockExpr> */
1972 {
1973 parser_nodes__Visitor__enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1974 }
1975 RET_LABEL:;
1976 }
1977 /* method parser_prod#ABlockExpr#visit_all for (self: Object, Visitor) */
1978 void VIRTUAL_parser_prod__ABlockExpr__visit_all(val* self, val* p0) {
1979 parser_prod__ABlockExpr__visit_all(self, p0); /* Direct call parser_prod#ABlockExpr#visit_all on <self:Object(ABlockExpr)>*/
1980 RET_LABEL:;
1981 }
1982 /* method parser_prod#AVardeclExpr#init_avardeclexpr for (self: AVardeclExpr, nullable TKwvar, nullable TId, nullable AType, nullable TAssign, nullable AExpr, nullable AAnnotations) */
1983 void parser_prod__AVardeclExpr__init_avardeclexpr(val* self, val* p0, val* p1, val* p2, val* p3, val* p4, val* p5) {
1984 val* var_n_kwvar /* var n_kwvar: nullable TKwvar */;
1985 val* var_n_id /* var n_id: nullable TId */;
1986 val* var_n_type /* var n_type: nullable AType */;
1987 val* var_n_assign /* var n_assign: nullable TAssign */;
1988 val* var_n_expr /* var n_expr: nullable AExpr */;
1989 val* var_n_annotations /* var n_annotations: nullable AAnnotations */;
1990 val* var /* : null */;
1991 short int var3 /* : Bool */;
1992 short int var4 /* : Bool */;
1993 val* var_other /* var other: nullable Object */;
1994 short int var6 /* : Bool */;
1995 short int var7 /* : Bool */;
1996 short int var8 /* : Bool */;
1997 val* var10 /* : null */;
1998 short int var11 /* : Bool */;
1999 short int var12 /* : Bool */;
2000 short int var14 /* : Bool */;
2001 short int var15 /* : Bool */;
2002 short int var16 /* : Bool */;
2003 val* var18 /* : null */;
2004 short int var19 /* : Bool */;
2005 short int var20 /* : Bool */;
2006 short int var22 /* : Bool */;
2007 short int var23 /* : Bool */;
2008 short int var24 /* : Bool */;
2009 val* var26 /* : null */;
2010 short int var27 /* : Bool */;
2011 short int var28 /* : Bool */;
2012 short int var30 /* : Bool */;
2013 short int var31 /* : Bool */;
2014 short int var32 /* : Bool */;
2015 var_n_kwvar = p0;
2016 var_n_id = p1;
2017 var_n_type = p2;
2018 var_n_assign = p3;
2019 var_n_expr = p4;
2020 var_n_annotations = p5;
2021 if (unlikely(var_n_kwvar == NULL)) {
2022 PRINT_ERROR("Runtime error: %s", "Cast failed");
2023 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2994);
2024 show_backtrace(1);
2025 }
2026 self->attrs[COLOR_parser_nodes__AVardeclExpr___n_kwvar].val = var_n_kwvar; /* _n_kwvar on <self:AVardeclExpr> */
2027 if (var_n_kwvar == NULL) {
2028 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2029 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2995);
2030 show_backtrace(1);
2031 } else {
2032 { /* Inline parser_nodes#ANode#parent= (var_n_kwvar,self) on <var_n_kwvar:nullable TKwvar> */
2033 if (unlikely(var_n_kwvar == NULL)) {
2034 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2035 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
2036 show_backtrace(1);
2037 }
2038 var_n_kwvar->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwvar:nullable TKwvar> */
2039 RET_LABEL1:(void)0;
2040 }
2041 }
2042 if (unlikely(var_n_id == NULL)) {
2043 PRINT_ERROR("Runtime error: %s", "Cast failed");
2044 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2996);
2045 show_backtrace(1);
2046 }
2047 self->attrs[COLOR_parser_nodes__AVardeclExpr___n_id].val = var_n_id; /* _n_id on <self:AVardeclExpr> */
2048 if (var_n_id == NULL) {
2049 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2050 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2997);
2051 show_backtrace(1);
2052 } else {
2053 { /* Inline parser_nodes#ANode#parent= (var_n_id,self) on <var_n_id:nullable TId> */
2054 if (unlikely(var_n_id == NULL)) {
2055 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2056 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
2057 show_backtrace(1);
2058 }
2059 var_n_id->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_id:nullable TId> */
2060 RET_LABEL2:(void)0;
2061 }
2062 }
2063 self->attrs[COLOR_parser_nodes__AVardeclExpr___n_type].val = var_n_type; /* _n_type on <self:AVardeclExpr> */
2064 var = NULL;
2065 if (var_n_type == NULL) {
2066 var3 = 0; /* is null */
2067 } else {
2068 var3 = 1; /* arg is null and recv is not */
2069 }
2070 if (0) {
2071 { /* Inline kernel#Object#!= (var_n_type,var) on <var_n_type:nullable AType> */
2072 var_other = var;
2073 {
2074 var7 = ((short int (*)(val*, val*))(var_n_type->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_type, var_other) /* == on <var_n_type:nullable AType(AType)>*/;
2075 var6 = var7;
2076 }
2077 var8 = !var6;
2078 var4 = var8;
2079 goto RET_LABEL5;
2080 RET_LABEL5:(void)0;
2081 }
2082 var3 = var4;
2083 }
2084 if (var3){
2085 {
2086 { /* Inline parser_nodes#ANode#parent= (var_n_type,self) on <var_n_type:nullable AType(AType)> */
2087 var_n_type->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_type:nullable AType(AType)> */
2088 RET_LABEL9:(void)0;
2089 }
2090 }
2091 } else {
2092 }
2093 self->attrs[COLOR_parser_nodes__AVardeclExpr___n_assign].val = var_n_assign; /* _n_assign on <self:AVardeclExpr> */
2094 var10 = NULL;
2095 if (var_n_assign == NULL) {
2096 var11 = 0; /* is null */
2097 } else {
2098 var11 = 1; /* arg is null and recv is not */
2099 }
2100 if (0) {
2101 { /* Inline kernel#Object#!= (var_n_assign,var10) on <var_n_assign:nullable TAssign> */
2102 var_other = var10;
2103 {
2104 var15 = ((short int (*)(val*, val*))(var_n_assign->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_assign, var_other) /* == on <var_n_assign:nullable TAssign(TAssign)>*/;
2105 var14 = var15;
2106 }
2107 var16 = !var14;
2108 var12 = var16;
2109 goto RET_LABEL13;
2110 RET_LABEL13:(void)0;
2111 }
2112 var11 = var12;
2113 }
2114 if (var11){
2115 {
2116 { /* Inline parser_nodes#ANode#parent= (var_n_assign,self) on <var_n_assign:nullable TAssign(TAssign)> */
2117 var_n_assign->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_assign:nullable TAssign(TAssign)> */
2118 RET_LABEL17:(void)0;
2119 }
2120 }
2121 } else {
2122 }
2123 self->attrs[COLOR_parser_nodes__AVardeclExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AVardeclExpr> */
2124 var18 = NULL;
2125 if (var_n_expr == NULL) {
2126 var19 = 0; /* is null */
2127 } else {
2128 var19 = 1; /* arg is null and recv is not */
2129 }
2130 if (0) {
2131 { /* Inline kernel#Object#!= (var_n_expr,var18) on <var_n_expr:nullable AExpr> */
2132 var_other = var18;
2133 {
2134 var23 = ((short int (*)(val*, val*))(var_n_expr->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_expr, var_other) /* == on <var_n_expr:nullable AExpr(AExpr)>*/;
2135 var22 = var23;
2136 }
2137 var24 = !var22;
2138 var20 = var24;
2139 goto RET_LABEL21;
2140 RET_LABEL21:(void)0;
2141 }
2142 var19 = var20;
2143 }
2144 if (var19){
2145 {
2146 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr(AExpr)> */
2147 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr(AExpr)> */
2148 RET_LABEL25:(void)0;
2149 }
2150 }
2151 } else {
2152 }
2153 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:AVardeclExpr> */
2154 var26 = NULL;
2155 if (var_n_annotations == NULL) {
2156 var27 = 0; /* is null */
2157 } else {
2158 var27 = 1; /* arg is null and recv is not */
2159 }
2160 if (0) {
2161 { /* Inline kernel#Object#!= (var_n_annotations,var26) on <var_n_annotations:nullable AAnnotations> */
2162 var_other = var26;
2163 {
2164 var31 = ((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)>*/;
2165 var30 = var31;
2166 }
2167 var32 = !var30;
2168 var28 = var32;
2169 goto RET_LABEL29;
2170 RET_LABEL29:(void)0;
2171 }
2172 var27 = var28;
2173 }
2174 if (var27){
2175 {
2176 { /* Inline parser_nodes#ANode#parent= (var_n_annotations,self) on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
2177 var_n_annotations->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
2178 RET_LABEL33:(void)0;
2179 }
2180 }
2181 } else {
2182 }
2183 RET_LABEL:;
2184 }
2185 /* method parser_prod#AVardeclExpr#init_avardeclexpr for (self: Object, nullable TKwvar, nullable TId, nullable AType, nullable TAssign, nullable AExpr, nullable AAnnotations) */
2186 void VIRTUAL_parser_prod__AVardeclExpr__init_avardeclexpr(val* self, val* p0, val* p1, val* p2, val* p3, val* p4, val* p5) {
2187 parser_prod__AVardeclExpr__init_avardeclexpr(self, p0, p1, p2, p3, p4, p5); /* Direct call parser_prod#AVardeclExpr#init_avardeclexpr on <self:Object(AVardeclExpr)>*/
2188 RET_LABEL:;
2189 }
2190 /* method parser_prod#AVardeclExpr#replace_child for (self: AVardeclExpr, ANode, nullable ANode) */
2191 void parser_prod__AVardeclExpr__replace_child(val* self, val* p0, val* p1) {
2192 val* var_old_child /* var old_child: ANode */;
2193 val* var_new_child /* var new_child: nullable ANode */;
2194 val* var /* : TKwvar */;
2195 short int var1 /* : Bool */;
2196 short int var2 /* : Bool */;
2197 val* var_other /* var other: nullable Object */;
2198 short int var4 /* : Bool */;
2199 short int var6 /* : Bool */;
2200 short int var7 /* : Bool */;
2201 int cltype;
2202 int idtype;
2203 const char* var_class_name;
2204 val* var8 /* : TId */;
2205 short int var9 /* : Bool */;
2206 short int var10 /* : Bool */;
2207 short int var12 /* : Bool */;
2208 short int var14 /* : Bool */;
2209 short int var15 /* : Bool */;
2210 int cltype16;
2211 int idtype17;
2212 const char* var_class_name18;
2213 val* var19 /* : nullable AType */;
2214 short int var20 /* : Bool */;
2215 short int var21 /* : Bool */;
2216 short int var23 /* : Bool */;
2217 short int var25 /* : Bool */;
2218 short int var26 /* : Bool */;
2219 int cltype27;
2220 int idtype28;
2221 const char* var_class_name29;
2222 val* var30 /* : nullable TAssign */;
2223 short int var31 /* : Bool */;
2224 short int var32 /* : Bool */;
2225 short int var34 /* : Bool */;
2226 short int var36 /* : Bool */;
2227 short int var37 /* : Bool */;
2228 int cltype38;
2229 int idtype39;
2230 const char* var_class_name40;
2231 val* var41 /* : nullable AExpr */;
2232 short int var42 /* : Bool */;
2233 short int var43 /* : Bool */;
2234 short int var45 /* : Bool */;
2235 short int var47 /* : Bool */;
2236 short int var48 /* : Bool */;
2237 int cltype49;
2238 int idtype50;
2239 const char* var_class_name51;
2240 val* var52 /* : nullable AAnnotations */;
2241 short int var53 /* : Bool */;
2242 short int var54 /* : Bool */;
2243 short int var56 /* : Bool */;
2244 short int var58 /* : Bool */;
2245 short int var59 /* : Bool */;
2246 int cltype60;
2247 int idtype61;
2248 const char* var_class_name62;
2249 var_old_child = p0;
2250 var_new_child = p1;
2251 var = self->attrs[COLOR_parser_nodes__AVardeclExpr___n_kwvar].val; /* _n_kwvar on <self:AVardeclExpr> */
2252 if (unlikely(var == NULL)) {
2253 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwvar");
2254 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3010);
2255 show_backtrace(1);
2256 }
2257 {
2258 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwvar> */
2259 var_other = var_old_child;
2260 {
2261 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TKwvar> */
2262 var6 = var == var_other;
2263 var4 = var6;
2264 goto RET_LABEL5;
2265 RET_LABEL5:(void)0;
2266 }
2267 }
2268 var2 = var4;
2269 goto RET_LABEL3;
2270 RET_LABEL3:(void)0;
2271 }
2272 var1 = var2;
2273 }
2274 if (var1){
2275 /* <var_new_child:nullable ANode> isa TKwvar */
2276 cltype = type_parser_nodes__TKwvar.color;
2277 idtype = type_parser_nodes__TKwvar.id;
2278 if(var_new_child == NULL) {
2279 var7 = 0;
2280 } else {
2281 if(cltype >= var_new_child->type->table_size) {
2282 var7 = 0;
2283 } else {
2284 var7 = var_new_child->type->type_table[cltype] == idtype;
2285 }
2286 }
2287 if (unlikely(!var7)) {
2288 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
2289 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwvar", var_class_name);
2290 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3011);
2291 show_backtrace(1);
2292 }
2293 {
2294 parser_prod__AVardeclExpr__n_kwvar_61d(self, var_new_child); /* Direct call parser_prod#AVardeclExpr#n_kwvar= on <self:AVardeclExpr>*/
2295 }
2296 goto RET_LABEL;
2297 } else {
2298 }
2299 var8 = self->attrs[COLOR_parser_nodes__AVardeclExpr___n_id].val; /* _n_id on <self:AVardeclExpr> */
2300 if (unlikely(var8 == NULL)) {
2301 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
2302 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3014);
2303 show_backtrace(1);
2304 }
2305 {
2306 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:TId> */
2307 var_other = var_old_child;
2308 {
2309 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:TId> */
2310 var14 = var8 == var_other;
2311 var12 = var14;
2312 goto RET_LABEL13;
2313 RET_LABEL13:(void)0;
2314 }
2315 }
2316 var10 = var12;
2317 goto RET_LABEL11;
2318 RET_LABEL11:(void)0;
2319 }
2320 var9 = var10;
2321 }
2322 if (var9){
2323 /* <var_new_child:nullable ANode> isa TId */
2324 cltype16 = type_parser_nodes__TId.color;
2325 idtype17 = type_parser_nodes__TId.id;
2326 if(var_new_child == NULL) {
2327 var15 = 0;
2328 } else {
2329 if(cltype16 >= var_new_child->type->table_size) {
2330 var15 = 0;
2331 } else {
2332 var15 = var_new_child->type->type_table[cltype16] == idtype17;
2333 }
2334 }
2335 if (unlikely(!var15)) {
2336 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
2337 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TId", var_class_name18);
2338 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3015);
2339 show_backtrace(1);
2340 }
2341 {
2342 parser_prod__AVardeclExpr__n_id_61d(self, var_new_child); /* Direct call parser_prod#AVardeclExpr#n_id= on <self:AVardeclExpr>*/
2343 }
2344 goto RET_LABEL;
2345 } else {
2346 }
2347 var19 = self->attrs[COLOR_parser_nodes__AVardeclExpr___n_type].val; /* _n_type on <self:AVardeclExpr> */
2348 if (var19 == NULL) {
2349 var20 = 0; /* <var_old_child:ANode> cannot be null */
2350 } else {
2351 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:nullable AType> */
2352 var_other = var_old_child;
2353 {
2354 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:nullable AType(AType)> */
2355 var25 = var19 == var_other;
2356 var23 = var25;
2357 goto RET_LABEL24;
2358 RET_LABEL24:(void)0;
2359 }
2360 }
2361 var21 = var23;
2362 goto RET_LABEL22;
2363 RET_LABEL22:(void)0;
2364 }
2365 var20 = var21;
2366 }
2367 if (var20){
2368 /* <var_new_child:nullable ANode> isa nullable AType */
2369 cltype27 = type_nullable_parser_nodes__AType.color;
2370 idtype28 = type_nullable_parser_nodes__AType.id;
2371 if(var_new_child == NULL) {
2372 var26 = 1;
2373 } else {
2374 if(cltype27 >= var_new_child->type->table_size) {
2375 var26 = 0;
2376 } else {
2377 var26 = var_new_child->type->type_table[cltype27] == idtype28;
2378 }
2379 }
2380 if (unlikely(!var26)) {
2381 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
2382 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AType", var_class_name29);
2383 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3019);
2384 show_backtrace(1);
2385 }
2386 {
2387 parser_prod__AVardeclExpr__n_type_61d(self, var_new_child); /* Direct call parser_prod#AVardeclExpr#n_type= on <self:AVardeclExpr>*/
2388 }
2389 goto RET_LABEL;
2390 } else {
2391 }
2392 var30 = self->attrs[COLOR_parser_nodes__AVardeclExpr___n_assign].val; /* _n_assign on <self:AVardeclExpr> */
2393 if (var30 == NULL) {
2394 var31 = 0; /* <var_old_child:ANode> cannot be null */
2395 } else {
2396 { /* Inline kernel#Object#== (var30,var_old_child) on <var30:nullable TAssign> */
2397 var_other = var_old_child;
2398 {
2399 { /* Inline kernel#Object#is_same_instance (var30,var_other) on <var30:nullable TAssign(TAssign)> */
2400 var36 = var30 == var_other;
2401 var34 = var36;
2402 goto RET_LABEL35;
2403 RET_LABEL35:(void)0;
2404 }
2405 }
2406 var32 = var34;
2407 goto RET_LABEL33;
2408 RET_LABEL33:(void)0;
2409 }
2410 var31 = var32;
2411 }
2412 if (var31){
2413 /* <var_new_child:nullable ANode> isa nullable TAssign */
2414 cltype38 = type_nullable_parser_nodes__TAssign.color;
2415 idtype39 = type_nullable_parser_nodes__TAssign.id;
2416 if(var_new_child == NULL) {
2417 var37 = 1;
2418 } else {
2419 if(cltype38 >= var_new_child->type->table_size) {
2420 var37 = 0;
2421 } else {
2422 var37 = var_new_child->type->type_table[cltype38] == idtype39;
2423 }
2424 }
2425 if (unlikely(!var37)) {
2426 var_class_name40 = var_new_child == NULL ? "null" : var_new_child->type->name;
2427 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TAssign", var_class_name40);
2428 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3023);
2429 show_backtrace(1);
2430 }
2431 {
2432 parser_prod__AVardeclExpr__n_assign_61d(self, var_new_child); /* Direct call parser_prod#AVardeclExpr#n_assign= on <self:AVardeclExpr>*/
2433 }
2434 goto RET_LABEL;
2435 } else {
2436 }
2437 var41 = self->attrs[COLOR_parser_nodes__AVardeclExpr___n_expr].val; /* _n_expr on <self:AVardeclExpr> */
2438 if (var41 == NULL) {
2439 var42 = 0; /* <var_old_child:ANode> cannot be null */
2440 } else {
2441 { /* Inline kernel#Object#== (var41,var_old_child) on <var41:nullable AExpr> */
2442 var_other = var_old_child;
2443 {
2444 { /* Inline kernel#Object#is_same_instance (var41,var_other) on <var41:nullable AExpr(AExpr)> */
2445 var47 = var41 == var_other;
2446 var45 = var47;
2447 goto RET_LABEL46;
2448 RET_LABEL46:(void)0;
2449 }
2450 }
2451 var43 = var45;
2452 goto RET_LABEL44;
2453 RET_LABEL44:(void)0;
2454 }
2455 var42 = var43;
2456 }
2457 if (var42){
2458 /* <var_new_child:nullable ANode> isa nullable AExpr */
2459 cltype49 = type_nullable_parser_nodes__AExpr.color;
2460 idtype50 = type_nullable_parser_nodes__AExpr.id;
2461 if(var_new_child == NULL) {
2462 var48 = 1;
2463 } else {
2464 if(cltype49 >= var_new_child->type->table_size) {
2465 var48 = 0;
2466 } else {
2467 var48 = var_new_child->type->type_table[cltype49] == idtype50;
2468 }
2469 }
2470 if (unlikely(!var48)) {
2471 var_class_name51 = var_new_child == NULL ? "null" : var_new_child->type->name;
2472 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AExpr", var_class_name51);
2473 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3027);
2474 show_backtrace(1);
2475 }
2476 {
2477 parser_prod__AVardeclExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AVardeclExpr#n_expr= on <self:AVardeclExpr>*/
2478 }
2479 goto RET_LABEL;
2480 } else {
2481 }
2482 var52 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AVardeclExpr> */
2483 if (var52 == NULL) {
2484 var53 = 0; /* <var_old_child:ANode> cannot be null */
2485 } else {
2486 { /* Inline kernel#Object#== (var52,var_old_child) on <var52:nullable AAnnotations> */
2487 var_other = var_old_child;
2488 {
2489 { /* Inline kernel#Object#is_same_instance (var52,var_other) on <var52:nullable AAnnotations(AAnnotations)> */
2490 var58 = var52 == var_other;
2491 var56 = var58;
2492 goto RET_LABEL57;
2493 RET_LABEL57:(void)0;
2494 }
2495 }
2496 var54 = var56;
2497 goto RET_LABEL55;
2498 RET_LABEL55:(void)0;
2499 }
2500 var53 = var54;
2501 }
2502 if (var53){
2503 /* <var_new_child:nullable ANode> isa nullable AAnnotations */
2504 cltype60 = type_nullable_parser_nodes__AAnnotations.color;
2505 idtype61 = type_nullable_parser_nodes__AAnnotations.id;
2506 if(var_new_child == NULL) {
2507 var59 = 1;
2508 } else {
2509 if(cltype60 >= var_new_child->type->table_size) {
2510 var59 = 0;
2511 } else {
2512 var59 = var_new_child->type->type_table[cltype60] == idtype61;
2513 }
2514 }
2515 if (unlikely(!var59)) {
2516 var_class_name62 = var_new_child == NULL ? "null" : var_new_child->type->name;
2517 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AAnnotations", var_class_name62);
2518 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3031);
2519 show_backtrace(1);
2520 }
2521 {
2522 parser_prod__AVardeclExpr__n_annotations_61d(self, var_new_child); /* Direct call parser_prod#AVardeclExpr#n_annotations= on <self:AVardeclExpr>*/
2523 }
2524 goto RET_LABEL;
2525 } else {
2526 }
2527 RET_LABEL:;
2528 }
2529 /* method parser_prod#AVardeclExpr#replace_child for (self: Object, ANode, nullable ANode) */
2530 void VIRTUAL_parser_prod__AVardeclExpr__replace_child(val* self, val* p0, val* p1) {
2531 parser_prod__AVardeclExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AVardeclExpr#replace_child on <self:Object(AVardeclExpr)>*/
2532 RET_LABEL:;
2533 }
2534 /* method parser_prod#AVardeclExpr#n_kwvar= for (self: AVardeclExpr, TKwvar) */
2535 void parser_prod__AVardeclExpr__n_kwvar_61d(val* self, val* p0) {
2536 val* var_node /* var node: TKwvar */;
2537 var_node = p0;
2538 self->attrs[COLOR_parser_nodes__AVardeclExpr___n_kwvar].val = var_node; /* _n_kwvar on <self:AVardeclExpr> */
2539 {
2540 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwvar> */
2541 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwvar> */
2542 RET_LABEL1:(void)0;
2543 }
2544 }
2545 RET_LABEL:;
2546 }
2547 /* method parser_prod#AVardeclExpr#n_kwvar= for (self: Object, TKwvar) */
2548 void VIRTUAL_parser_prod__AVardeclExpr__n_kwvar_61d(val* self, val* p0) {
2549 parser_prod__AVardeclExpr__n_kwvar_61d(self, p0); /* Direct call parser_prod#AVardeclExpr#n_kwvar= on <self:Object(AVardeclExpr)>*/
2550 RET_LABEL:;
2551 }
2552 /* method parser_prod#AVardeclExpr#n_id= for (self: AVardeclExpr, TId) */
2553 void parser_prod__AVardeclExpr__n_id_61d(val* self, val* p0) {
2554 val* var_node /* var node: TId */;
2555 var_node = p0;
2556 self->attrs[COLOR_parser_nodes__AVardeclExpr___n_id].val = var_node; /* _n_id on <self:AVardeclExpr> */
2557 {
2558 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TId> */
2559 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TId> */
2560 RET_LABEL1:(void)0;
2561 }
2562 }
2563 RET_LABEL:;
2564 }
2565 /* method parser_prod#AVardeclExpr#n_id= for (self: Object, TId) */
2566 void VIRTUAL_parser_prod__AVardeclExpr__n_id_61d(val* self, val* p0) {
2567 parser_prod__AVardeclExpr__n_id_61d(self, p0); /* Direct call parser_prod#AVardeclExpr#n_id= on <self:Object(AVardeclExpr)>*/
2568 RET_LABEL:;
2569 }
2570 /* method parser_prod#AVardeclExpr#n_type= for (self: AVardeclExpr, nullable AType) */
2571 void parser_prod__AVardeclExpr__n_type_61d(val* self, val* p0) {
2572 val* var_node /* var node: nullable AType */;
2573 val* var /* : null */;
2574 short int var1 /* : Bool */;
2575 short int var2 /* : Bool */;
2576 val* var_other /* var other: nullable Object */;
2577 short int var4 /* : Bool */;
2578 short int var5 /* : Bool */;
2579 short int var6 /* : Bool */;
2580 var_node = p0;
2581 self->attrs[COLOR_parser_nodes__AVardeclExpr___n_type].val = var_node; /* _n_type on <self:AVardeclExpr> */
2582 var = NULL;
2583 if (var_node == NULL) {
2584 var1 = 0; /* is null */
2585 } else {
2586 var1 = 1; /* arg is null and recv is not */
2587 }
2588 if (0) {
2589 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AType> */
2590 var_other = var;
2591 {
2592 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AType(AType)>*/;
2593 var4 = var5;
2594 }
2595 var6 = !var4;
2596 var2 = var6;
2597 goto RET_LABEL3;
2598 RET_LABEL3:(void)0;
2599 }
2600 var1 = var2;
2601 }
2602 if (var1){
2603 {
2604 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AType(AType)> */
2605 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AType(AType)> */
2606 RET_LABEL7:(void)0;
2607 }
2608 }
2609 } else {
2610 }
2611 RET_LABEL:;
2612 }
2613 /* method parser_prod#AVardeclExpr#n_type= for (self: Object, nullable AType) */
2614 void VIRTUAL_parser_prod__AVardeclExpr__n_type_61d(val* self, val* p0) {
2615 parser_prod__AVardeclExpr__n_type_61d(self, p0); /* Direct call parser_prod#AVardeclExpr#n_type= on <self:Object(AVardeclExpr)>*/
2616 RET_LABEL:;
2617 }
2618 /* method parser_prod#AVardeclExpr#n_assign= for (self: AVardeclExpr, nullable TAssign) */
2619 void parser_prod__AVardeclExpr__n_assign_61d(val* self, val* p0) {
2620 val* var_node /* var node: nullable TAssign */;
2621 val* var /* : null */;
2622 short int var1 /* : Bool */;
2623 short int var2 /* : Bool */;
2624 val* var_other /* var other: nullable Object */;
2625 short int var4 /* : Bool */;
2626 short int var5 /* : Bool */;
2627 short int var6 /* : Bool */;
2628 var_node = p0;
2629 self->attrs[COLOR_parser_nodes__AVardeclExpr___n_assign].val = var_node; /* _n_assign on <self:AVardeclExpr> */
2630 var = NULL;
2631 if (var_node == NULL) {
2632 var1 = 0; /* is null */
2633 } else {
2634 var1 = 1; /* arg is null and recv is not */
2635 }
2636 if (0) {
2637 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable TAssign> */
2638 var_other = var;
2639 {
2640 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable TAssign(TAssign)>*/;
2641 var4 = var5;
2642 }
2643 var6 = !var4;
2644 var2 = var6;
2645 goto RET_LABEL3;
2646 RET_LABEL3:(void)0;
2647 }
2648 var1 = var2;
2649 }
2650 if (var1){
2651 {
2652 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TAssign(TAssign)> */
2653 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TAssign(TAssign)> */
2654 RET_LABEL7:(void)0;
2655 }
2656 }
2657 } else {
2658 }
2659 RET_LABEL:;
2660 }
2661 /* method parser_prod#AVardeclExpr#n_assign= for (self: Object, nullable TAssign) */
2662 void VIRTUAL_parser_prod__AVardeclExpr__n_assign_61d(val* self, val* p0) {
2663 parser_prod__AVardeclExpr__n_assign_61d(self, p0); /* Direct call parser_prod#AVardeclExpr#n_assign= on <self:Object(AVardeclExpr)>*/
2664 RET_LABEL:;
2665 }
2666 /* method parser_prod#AVardeclExpr#n_expr= for (self: AVardeclExpr, nullable AExpr) */
2667 void parser_prod__AVardeclExpr__n_expr_61d(val* self, val* p0) {
2668 val* var_node /* var node: nullable AExpr */;
2669 val* var /* : null */;
2670 short int var1 /* : Bool */;
2671 short int var2 /* : Bool */;
2672 val* var_other /* var other: nullable Object */;
2673 short int var4 /* : Bool */;
2674 short int var5 /* : Bool */;
2675 short int var6 /* : Bool */;
2676 var_node = p0;
2677 self->attrs[COLOR_parser_nodes__AVardeclExpr___n_expr].val = var_node; /* _n_expr on <self:AVardeclExpr> */
2678 var = NULL;
2679 if (var_node == NULL) {
2680 var1 = 0; /* is null */
2681 } else {
2682 var1 = 1; /* arg is null and recv is not */
2683 }
2684 if (0) {
2685 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AExpr> */
2686 var_other = var;
2687 {
2688 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AExpr(AExpr)>*/;
2689 var4 = var5;
2690 }
2691 var6 = !var4;
2692 var2 = var6;
2693 goto RET_LABEL3;
2694 RET_LABEL3:(void)0;
2695 }
2696 var1 = var2;
2697 }
2698 if (var1){
2699 {
2700 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AExpr(AExpr)> */
2701 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AExpr(AExpr)> */
2702 RET_LABEL7:(void)0;
2703 }
2704 }
2705 } else {
2706 }
2707 RET_LABEL:;
2708 }
2709 /* method parser_prod#AVardeclExpr#n_expr= for (self: Object, nullable AExpr) */
2710 void VIRTUAL_parser_prod__AVardeclExpr__n_expr_61d(val* self, val* p0) {
2711 parser_prod__AVardeclExpr__n_expr_61d(self, p0); /* Direct call parser_prod#AVardeclExpr#n_expr= on <self:Object(AVardeclExpr)>*/
2712 RET_LABEL:;
2713 }
2714 /* method parser_prod#AVardeclExpr#n_annotations= for (self: AVardeclExpr, nullable AAnnotations) */
2715 void parser_prod__AVardeclExpr__n_annotations_61d(val* self, val* p0) {
2716 val* var_node /* var node: nullable AAnnotations */;
2717 val* var /* : null */;
2718 short int var1 /* : Bool */;
2719 short int var2 /* : Bool */;
2720 val* var_other /* var other: nullable Object */;
2721 short int var4 /* : Bool */;
2722 short int var5 /* : Bool */;
2723 short int var6 /* : Bool */;
2724 var_node = p0;
2725 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_node; /* _n_annotations on <self:AVardeclExpr> */
2726 var = NULL;
2727 if (var_node == NULL) {
2728 var1 = 0; /* is null */
2729 } else {
2730 var1 = 1; /* arg is null and recv is not */
2731 }
2732 if (0) {
2733 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AAnnotations> */
2734 var_other = var;
2735 {
2736 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AAnnotations(AAnnotations)>*/;
2737 var4 = var5;
2738 }
2739 var6 = !var4;
2740 var2 = var6;
2741 goto RET_LABEL3;
2742 RET_LABEL3:(void)0;
2743 }
2744 var1 = var2;
2745 }
2746 if (var1){
2747 {
2748 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AAnnotations(AAnnotations)> */
2749 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AAnnotations(AAnnotations)> */
2750 RET_LABEL7:(void)0;
2751 }
2752 }
2753 } else {
2754 }
2755 RET_LABEL:;
2756 }
2757 /* method parser_prod#AVardeclExpr#n_annotations= for (self: Object, nullable AAnnotations) */
2758 void VIRTUAL_parser_prod__AVardeclExpr__n_annotations_61d(val* self, val* p0) {
2759 parser_prod__AVardeclExpr__n_annotations_61d(self, p0); /* Direct call parser_prod#AVardeclExpr#n_annotations= on <self:Object(AVardeclExpr)>*/
2760 RET_LABEL:;
2761 }
2762 /* method parser_prod#AVardeclExpr#visit_all for (self: AVardeclExpr, Visitor) */
2763 void parser_prod__AVardeclExpr__visit_all(val* self, val* p0) {
2764 val* var_v /* var v: Visitor */;
2765 val* var /* : TKwvar */;
2766 val* var1 /* : TId */;
2767 val* var2 /* : nullable AType */;
2768 val* var3 /* : nullable TAssign */;
2769 val* var4 /* : nullable AExpr */;
2770 val* var5 /* : nullable AAnnotations */;
2771 var_v = p0;
2772 var = self->attrs[COLOR_parser_nodes__AVardeclExpr___n_kwvar].val; /* _n_kwvar on <self:AVardeclExpr> */
2773 if (unlikely(var == NULL)) {
2774 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwvar");
2775 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3070);
2776 show_backtrace(1);
2777 }
2778 {
2779 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2780 }
2781 var1 = self->attrs[COLOR_parser_nodes__AVardeclExpr___n_id].val; /* _n_id on <self:AVardeclExpr> */
2782 if (unlikely(var1 == NULL)) {
2783 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
2784 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3071);
2785 show_backtrace(1);
2786 }
2787 {
2788 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2789 }
2790 var2 = self->attrs[COLOR_parser_nodes__AVardeclExpr___n_type].val; /* _n_type on <self:AVardeclExpr> */
2791 {
2792 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2793 }
2794 var3 = self->attrs[COLOR_parser_nodes__AVardeclExpr___n_assign].val; /* _n_assign on <self:AVardeclExpr> */
2795 {
2796 parser_nodes__Visitor__enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2797 }
2798 var4 = self->attrs[COLOR_parser_nodes__AVardeclExpr___n_expr].val; /* _n_expr on <self:AVardeclExpr> */
2799 {
2800 parser_nodes__Visitor__enter_visit(var_v, var4); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2801 }
2802 var5 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AVardeclExpr> */
2803 {
2804 parser_nodes__Visitor__enter_visit(var_v, var5); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2805 }
2806 RET_LABEL:;
2807 }
2808 /* method parser_prod#AVardeclExpr#visit_all for (self: Object, Visitor) */
2809 void VIRTUAL_parser_prod__AVardeclExpr__visit_all(val* self, val* p0) {
2810 parser_prod__AVardeclExpr__visit_all(self, p0); /* Direct call parser_prod#AVardeclExpr#visit_all on <self:Object(AVardeclExpr)>*/
2811 RET_LABEL:;
2812 }
2813 /* method parser_prod#AReturnExpr#init_areturnexpr for (self: AReturnExpr, nullable TKwreturn, nullable AExpr) */
2814 void parser_prod__AReturnExpr__init_areturnexpr(val* self, val* p0, val* p1) {
2815 val* var_n_kwreturn /* var n_kwreturn: nullable TKwreturn */;
2816 val* var_n_expr /* var n_expr: nullable AExpr */;
2817 val* var /* : null */;
2818 short int var1 /* : Bool */;
2819 short int var2 /* : Bool */;
2820 val* var_other /* var other: nullable Object */;
2821 short int var4 /* : Bool */;
2822 short int var5 /* : Bool */;
2823 short int var6 /* : Bool */;
2824 val* var8 /* : null */;
2825 short int var9 /* : Bool */;
2826 short int var10 /* : Bool */;
2827 short int var12 /* : Bool */;
2828 short int var13 /* : Bool */;
2829 short int var14 /* : Bool */;
2830 var_n_kwreturn = p0;
2831 var_n_expr = p1;
2832 self->attrs[COLOR_parser_nodes__AReturnExpr___n_kwreturn].val = var_n_kwreturn; /* _n_kwreturn on <self:AReturnExpr> */
2833 var = NULL;
2834 if (var_n_kwreturn == NULL) {
2835 var1 = 0; /* is null */
2836 } else {
2837 var1 = 1; /* arg is null and recv is not */
2838 }
2839 if (0) {
2840 { /* Inline kernel#Object#!= (var_n_kwreturn,var) on <var_n_kwreturn:nullable TKwreturn> */
2841 var_other = var;
2842 {
2843 var5 = ((short int (*)(val*, val*))(var_n_kwreturn->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_kwreturn, var_other) /* == on <var_n_kwreturn:nullable TKwreturn(TKwreturn)>*/;
2844 var4 = var5;
2845 }
2846 var6 = !var4;
2847 var2 = var6;
2848 goto RET_LABEL3;
2849 RET_LABEL3:(void)0;
2850 }
2851 var1 = var2;
2852 }
2853 if (var1){
2854 {
2855 { /* Inline parser_nodes#ANode#parent= (var_n_kwreturn,self) on <var_n_kwreturn:nullable TKwreturn(TKwreturn)> */
2856 var_n_kwreturn->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwreturn:nullable TKwreturn(TKwreturn)> */
2857 RET_LABEL7:(void)0;
2858 }
2859 }
2860 } else {
2861 }
2862 self->attrs[COLOR_parser_nodes__AReturnExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AReturnExpr> */
2863 var8 = NULL;
2864 if (var_n_expr == NULL) {
2865 var9 = 0; /* is null */
2866 } else {
2867 var9 = 1; /* arg is null and recv is not */
2868 }
2869 if (0) {
2870 { /* Inline kernel#Object#!= (var_n_expr,var8) on <var_n_expr:nullable AExpr> */
2871 var_other = var8;
2872 {
2873 var13 = ((short int (*)(val*, val*))(var_n_expr->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_expr, var_other) /* == on <var_n_expr:nullable AExpr(AExpr)>*/;
2874 var12 = var13;
2875 }
2876 var14 = !var12;
2877 var10 = var14;
2878 goto RET_LABEL11;
2879 RET_LABEL11:(void)0;
2880 }
2881 var9 = var10;
2882 }
2883 if (var9){
2884 {
2885 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr(AExpr)> */
2886 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr(AExpr)> */
2887 RET_LABEL15:(void)0;
2888 }
2889 }
2890 } else {
2891 }
2892 RET_LABEL:;
2893 }
2894 /* method parser_prod#AReturnExpr#init_areturnexpr for (self: Object, nullable TKwreturn, nullable AExpr) */
2895 void VIRTUAL_parser_prod__AReturnExpr__init_areturnexpr(val* self, val* p0, val* p1) {
2896 parser_prod__AReturnExpr__init_areturnexpr(self, p0, p1); /* Direct call parser_prod#AReturnExpr#init_areturnexpr on <self:Object(AReturnExpr)>*/
2897 RET_LABEL:;
2898 }
2899 /* method parser_prod#AReturnExpr#replace_child for (self: AReturnExpr, ANode, nullable ANode) */
2900 void parser_prod__AReturnExpr__replace_child(val* self, val* p0, val* p1) {
2901 val* var_old_child /* var old_child: ANode */;
2902 val* var_new_child /* var new_child: nullable ANode */;
2903 val* var /* : nullable TKwreturn */;
2904 short int var1 /* : Bool */;
2905 short int var2 /* : Bool */;
2906 val* var_other /* var other: nullable Object */;
2907 short int var4 /* : Bool */;
2908 short int var6 /* : Bool */;
2909 short int var7 /* : Bool */;
2910 int cltype;
2911 int idtype;
2912 const char* var_class_name;
2913 val* var8 /* : nullable AExpr */;
2914 short int var9 /* : Bool */;
2915 short int var10 /* : Bool */;
2916 short int var12 /* : Bool */;
2917 short int var14 /* : Bool */;
2918 short int var15 /* : Bool */;
2919 int cltype16;
2920 int idtype17;
2921 const char* var_class_name18;
2922 var_old_child = p0;
2923 var_new_child = p1;
2924 var = self->attrs[COLOR_parser_nodes__AReturnExpr___n_kwreturn].val; /* _n_kwreturn on <self:AReturnExpr> */
2925 if (var == NULL) {
2926 var1 = 0; /* <var_old_child:ANode> cannot be null */
2927 } else {
2928 { /* Inline kernel#Object#== (var,var_old_child) on <var:nullable TKwreturn> */
2929 var_other = var_old_child;
2930 {
2931 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:nullable TKwreturn(TKwreturn)> */
2932 var6 = var == var_other;
2933 var4 = var6;
2934 goto RET_LABEL5;
2935 RET_LABEL5:(void)0;
2936 }
2937 }
2938 var2 = var4;
2939 goto RET_LABEL3;
2940 RET_LABEL3:(void)0;
2941 }
2942 var1 = var2;
2943 }
2944 if (var1){
2945 /* <var_new_child:nullable ANode> isa nullable TKwreturn */
2946 cltype = type_nullable_parser_nodes__TKwreturn.color;
2947 idtype = type_nullable_parser_nodes__TKwreturn.id;
2948 if(var_new_child == NULL) {
2949 var7 = 1;
2950 } else {
2951 if(cltype >= var_new_child->type->table_size) {
2952 var7 = 0;
2953 } else {
2954 var7 = var_new_child->type->type_table[cltype] == idtype;
2955 }
2956 }
2957 if (unlikely(!var7)) {
2958 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
2959 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TKwreturn", var_class_name);
2960 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3093);
2961 show_backtrace(1);
2962 }
2963 {
2964 parser_prod__AReturnExpr__n_kwreturn_61d(self, var_new_child); /* Direct call parser_prod#AReturnExpr#n_kwreturn= on <self:AReturnExpr>*/
2965 }
2966 goto RET_LABEL;
2967 } else {
2968 }
2969 var8 = self->attrs[COLOR_parser_nodes__AReturnExpr___n_expr].val; /* _n_expr on <self:AReturnExpr> */
2970 if (var8 == NULL) {
2971 var9 = 0; /* <var_old_child:ANode> cannot be null */
2972 } else {
2973 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:nullable AExpr> */
2974 var_other = var_old_child;
2975 {
2976 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:nullable AExpr(AExpr)> */
2977 var14 = var8 == var_other;
2978 var12 = var14;
2979 goto RET_LABEL13;
2980 RET_LABEL13:(void)0;
2981 }
2982 }
2983 var10 = var12;
2984 goto RET_LABEL11;
2985 RET_LABEL11:(void)0;
2986 }
2987 var9 = var10;
2988 }
2989 if (var9){
2990 /* <var_new_child:nullable ANode> isa nullable AExpr */
2991 cltype16 = type_nullable_parser_nodes__AExpr.color;
2992 idtype17 = type_nullable_parser_nodes__AExpr.id;
2993 if(var_new_child == NULL) {
2994 var15 = 1;
2995 } else {
2996 if(cltype16 >= var_new_child->type->table_size) {
2997 var15 = 0;
2998 } else {
2999 var15 = var_new_child->type->type_table[cltype16] == idtype17;
3000 }
3001 }
3002 if (unlikely(!var15)) {
3003 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
3004 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AExpr", var_class_name18);
3005 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3097);
3006 show_backtrace(1);
3007 }
3008 {
3009 parser_prod__AReturnExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AReturnExpr#n_expr= on <self:AReturnExpr>*/
3010 }
3011 goto RET_LABEL;
3012 } else {
3013 }
3014 RET_LABEL:;
3015 }
3016 /* method parser_prod#AReturnExpr#replace_child for (self: Object, ANode, nullable ANode) */
3017 void VIRTUAL_parser_prod__AReturnExpr__replace_child(val* self, val* p0, val* p1) {
3018 parser_prod__AReturnExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AReturnExpr#replace_child on <self:Object(AReturnExpr)>*/
3019 RET_LABEL:;
3020 }
3021 /* method parser_prod#AReturnExpr#n_kwreturn= for (self: AReturnExpr, nullable TKwreturn) */
3022 void parser_prod__AReturnExpr__n_kwreturn_61d(val* self, val* p0) {
3023 val* var_node /* var node: nullable TKwreturn */;
3024 val* var /* : null */;
3025 short int var1 /* : Bool */;
3026 short int var2 /* : Bool */;
3027 val* var_other /* var other: nullable Object */;
3028 short int var4 /* : Bool */;
3029 short int var5 /* : Bool */;
3030 short int var6 /* : Bool */;
3031 var_node = p0;
3032 self->attrs[COLOR_parser_nodes__AReturnExpr___n_kwreturn].val = var_node; /* _n_kwreturn on <self:AReturnExpr> */
3033 var = NULL;
3034 if (var_node == NULL) {
3035 var1 = 0; /* is null */
3036 } else {
3037 var1 = 1; /* arg is null and recv is not */
3038 }
3039 if (0) {
3040 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable TKwreturn> */
3041 var_other = var;
3042 {
3043 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable TKwreturn(TKwreturn)>*/;
3044 var4 = var5;
3045 }
3046 var6 = !var4;
3047 var2 = var6;
3048 goto RET_LABEL3;
3049 RET_LABEL3:(void)0;
3050 }
3051 var1 = var2;
3052 }
3053 if (var1){
3054 {
3055 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TKwreturn(TKwreturn)> */
3056 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TKwreturn(TKwreturn)> */
3057 RET_LABEL7:(void)0;
3058 }
3059 }
3060 } else {
3061 }
3062 RET_LABEL:;
3063 }
3064 /* method parser_prod#AReturnExpr#n_kwreturn= for (self: Object, nullable TKwreturn) */
3065 void VIRTUAL_parser_prod__AReturnExpr__n_kwreturn_61d(val* self, val* p0) {
3066 parser_prod__AReturnExpr__n_kwreturn_61d(self, p0); /* Direct call parser_prod#AReturnExpr#n_kwreturn= on <self:Object(AReturnExpr)>*/
3067 RET_LABEL:;
3068 }
3069 /* method parser_prod#AReturnExpr#n_expr= for (self: AReturnExpr, nullable AExpr) */
3070 void parser_prod__AReturnExpr__n_expr_61d(val* self, val* p0) {
3071 val* var_node /* var node: nullable AExpr */;
3072 val* var /* : null */;
3073 short int var1 /* : Bool */;
3074 short int var2 /* : Bool */;
3075 val* var_other /* var other: nullable Object */;
3076 short int var4 /* : Bool */;
3077 short int var5 /* : Bool */;
3078 short int var6 /* : Bool */;
3079 var_node = p0;
3080 self->attrs[COLOR_parser_nodes__AReturnExpr___n_expr].val = var_node; /* _n_expr on <self:AReturnExpr> */
3081 var = NULL;
3082 if (var_node == NULL) {
3083 var1 = 0; /* is null */
3084 } else {
3085 var1 = 1; /* arg is null and recv is not */
3086 }
3087 if (0) {
3088 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AExpr> */
3089 var_other = var;
3090 {
3091 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AExpr(AExpr)>*/;
3092 var4 = var5;
3093 }
3094 var6 = !var4;
3095 var2 = var6;
3096 goto RET_LABEL3;
3097 RET_LABEL3:(void)0;
3098 }
3099 var1 = var2;
3100 }
3101 if (var1){
3102 {
3103 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AExpr(AExpr)> */
3104 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AExpr(AExpr)> */
3105 RET_LABEL7:(void)0;
3106 }
3107 }
3108 } else {
3109 }
3110 RET_LABEL:;
3111 }
3112 /* method parser_prod#AReturnExpr#n_expr= for (self: Object, nullable AExpr) */
3113 void VIRTUAL_parser_prod__AReturnExpr__n_expr_61d(val* self, val* p0) {
3114 parser_prod__AReturnExpr__n_expr_61d(self, p0); /* Direct call parser_prod#AReturnExpr#n_expr= on <self:Object(AReturnExpr)>*/
3115 RET_LABEL:;
3116 }
3117 /* method parser_prod#AReturnExpr#visit_all for (self: AReturnExpr, Visitor) */
3118 void parser_prod__AReturnExpr__visit_all(val* self, val* p0) {
3119 val* var_v /* var v: Visitor */;
3120 val* var /* : nullable TKwreturn */;
3121 val* var1 /* : nullable AExpr */;
3122 var_v = p0;
3123 var = self->attrs[COLOR_parser_nodes__AReturnExpr___n_kwreturn].val; /* _n_kwreturn on <self:AReturnExpr> */
3124 {
3125 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3126 }
3127 var1 = self->attrs[COLOR_parser_nodes__AReturnExpr___n_expr].val; /* _n_expr on <self:AReturnExpr> */
3128 {
3129 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3130 }
3131 RET_LABEL:;
3132 }
3133 /* method parser_prod#AReturnExpr#visit_all for (self: Object, Visitor) */
3134 void VIRTUAL_parser_prod__AReturnExpr__visit_all(val* self, val* p0) {
3135 parser_prod__AReturnExpr__visit_all(self, p0); /* Direct call parser_prod#AReturnExpr#visit_all on <self:Object(AReturnExpr)>*/
3136 RET_LABEL:;
3137 }
3138 /* method parser_prod#ABreakExpr#init_abreakexpr for (self: ABreakExpr, nullable TKwbreak, nullable ALabel) */
3139 void parser_prod__ABreakExpr__init_abreakexpr(val* self, val* p0, val* p1) {
3140 val* var_n_kwbreak /* var n_kwbreak: nullable TKwbreak */;
3141 val* var_n_label /* var n_label: nullable ALabel */;
3142 val* var /* : null */;
3143 short int var2 /* : Bool */;
3144 short int var3 /* : Bool */;
3145 val* var_other /* var other: nullable Object */;
3146 short int var5 /* : Bool */;
3147 short int var6 /* : Bool */;
3148 short int var7 /* : Bool */;
3149 var_n_kwbreak = p0;
3150 var_n_label = p1;
3151 if (unlikely(var_n_kwbreak == NULL)) {
3152 PRINT_ERROR("Runtime error: %s", "Cast failed");
3153 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3126);
3154 show_backtrace(1);
3155 }
3156 self->attrs[COLOR_parser_nodes__ABreakExpr___n_kwbreak].val = var_n_kwbreak; /* _n_kwbreak on <self:ABreakExpr> */
3157 if (var_n_kwbreak == NULL) {
3158 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3159 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3127);
3160 show_backtrace(1);
3161 } else {
3162 { /* Inline parser_nodes#ANode#parent= (var_n_kwbreak,self) on <var_n_kwbreak:nullable TKwbreak> */
3163 if (unlikely(var_n_kwbreak == NULL)) {
3164 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3165 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
3166 show_backtrace(1);
3167 }
3168 var_n_kwbreak->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwbreak:nullable TKwbreak> */
3169 RET_LABEL1:(void)0;
3170 }
3171 }
3172 self->attrs[COLOR_parser_nodes__ALabelable___n_label].val = var_n_label; /* _n_label on <self:ABreakExpr> */
3173 var = NULL;
3174 if (var_n_label == NULL) {
3175 var2 = 0; /* is null */
3176 } else {
3177 var2 = 1; /* arg is null and recv is not */
3178 }
3179 if (0) {
3180 { /* Inline kernel#Object#!= (var_n_label,var) on <var_n_label:nullable ALabel> */
3181 var_other = var;
3182 {
3183 var6 = ((short int (*)(val*, val*))(var_n_label->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_label, var_other) /* == on <var_n_label:nullable ALabel(ALabel)>*/;
3184 var5 = var6;
3185 }
3186 var7 = !var5;
3187 var3 = var7;
3188 goto RET_LABEL4;
3189 RET_LABEL4:(void)0;
3190 }
3191 var2 = var3;
3192 }
3193 if (var2){
3194 {
3195 { /* Inline parser_nodes#ANode#parent= (var_n_label,self) on <var_n_label:nullable ALabel(ALabel)> */
3196 var_n_label->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_label:nullable ALabel(ALabel)> */
3197 RET_LABEL8:(void)0;
3198 }
3199 }
3200 } else {
3201 }
3202 RET_LABEL:;
3203 }
3204 /* method parser_prod#ABreakExpr#init_abreakexpr for (self: Object, nullable TKwbreak, nullable ALabel) */
3205 void VIRTUAL_parser_prod__ABreakExpr__init_abreakexpr(val* self, val* p0, val* p1) {
3206 parser_prod__ABreakExpr__init_abreakexpr(self, p0, p1); /* Direct call parser_prod#ABreakExpr#init_abreakexpr on <self:Object(ABreakExpr)>*/
3207 RET_LABEL:;
3208 }
3209 /* method parser_prod#ABreakExpr#replace_child for (self: ABreakExpr, ANode, nullable ANode) */
3210 void parser_prod__ABreakExpr__replace_child(val* self, val* p0, val* p1) {
3211 val* var_old_child /* var old_child: ANode */;
3212 val* var_new_child /* var new_child: nullable ANode */;
3213 val* var /* : TKwbreak */;
3214 short int var1 /* : Bool */;
3215 short int var2 /* : Bool */;
3216 val* var_other /* var other: nullable Object */;
3217 short int var4 /* : Bool */;
3218 short int var6 /* : Bool */;
3219 short int var7 /* : Bool */;
3220 int cltype;
3221 int idtype;
3222 const char* var_class_name;
3223 val* var8 /* : nullable ALabel */;
3224 short int var9 /* : Bool */;
3225 short int var10 /* : Bool */;
3226 short int var12 /* : Bool */;
3227 short int var14 /* : Bool */;
3228 short int var15 /* : Bool */;
3229 int cltype16;
3230 int idtype17;
3231 const char* var_class_name18;
3232 var_old_child = p0;
3233 var_new_child = p1;
3234 var = self->attrs[COLOR_parser_nodes__ABreakExpr___n_kwbreak].val; /* _n_kwbreak on <self:ABreakExpr> */
3235 if (unlikely(var == NULL)) {
3236 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwbreak");
3237 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3134);
3238 show_backtrace(1);
3239 }
3240 {
3241 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwbreak> */
3242 var_other = var_old_child;
3243 {
3244 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TKwbreak> */
3245 var6 = var == var_other;
3246 var4 = var6;
3247 goto RET_LABEL5;
3248 RET_LABEL5:(void)0;
3249 }
3250 }
3251 var2 = var4;
3252 goto RET_LABEL3;
3253 RET_LABEL3:(void)0;
3254 }
3255 var1 = var2;
3256 }
3257 if (var1){
3258 /* <var_new_child:nullable ANode> isa TKwbreak */
3259 cltype = type_parser_nodes__TKwbreak.color;
3260 idtype = type_parser_nodes__TKwbreak.id;
3261 if(var_new_child == NULL) {
3262 var7 = 0;
3263 } else {
3264 if(cltype >= var_new_child->type->table_size) {
3265 var7 = 0;
3266 } else {
3267 var7 = var_new_child->type->type_table[cltype] == idtype;
3268 }
3269 }
3270 if (unlikely(!var7)) {
3271 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
3272 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwbreak", var_class_name);
3273 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3135);
3274 show_backtrace(1);
3275 }
3276 {
3277 parser_prod__ABreakExpr__n_kwbreak_61d(self, var_new_child); /* Direct call parser_prod#ABreakExpr#n_kwbreak= on <self:ABreakExpr>*/
3278 }
3279 goto RET_LABEL;
3280 } else {
3281 }
3282 var8 = self->attrs[COLOR_parser_nodes__ALabelable___n_label].val; /* _n_label on <self:ABreakExpr> */
3283 if (var8 == NULL) {
3284 var9 = 0; /* <var_old_child:ANode> cannot be null */
3285 } else {
3286 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:nullable ALabel> */
3287 var_other = var_old_child;
3288 {
3289 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:nullable ALabel(ALabel)> */
3290 var14 = var8 == var_other;
3291 var12 = var14;
3292 goto RET_LABEL13;
3293 RET_LABEL13:(void)0;
3294 }
3295 }
3296 var10 = var12;
3297 goto RET_LABEL11;
3298 RET_LABEL11:(void)0;
3299 }
3300 var9 = var10;
3301 }
3302 if (var9){
3303 /* <var_new_child:nullable ANode> isa nullable ALabel */
3304 cltype16 = type_nullable_parser_nodes__ALabel.color;
3305 idtype17 = type_nullable_parser_nodes__ALabel.id;
3306 if(var_new_child == NULL) {
3307 var15 = 1;
3308 } else {
3309 if(cltype16 >= var_new_child->type->table_size) {
3310 var15 = 0;
3311 } else {
3312 var15 = var_new_child->type->type_table[cltype16] == idtype17;
3313 }
3314 }
3315 if (unlikely(!var15)) {
3316 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
3317 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ALabel", var_class_name18);
3318 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3139);
3319 show_backtrace(1);
3320 }
3321 {
3322 parser_prod__ABreakExpr__n_label_61d(self, var_new_child); /* Direct call parser_prod#ABreakExpr#n_label= on <self:ABreakExpr>*/
3323 }
3324 goto RET_LABEL;
3325 } else {
3326 }
3327 RET_LABEL:;
3328 }
3329 /* method parser_prod#ABreakExpr#replace_child for (self: Object, ANode, nullable ANode) */
3330 void VIRTUAL_parser_prod__ABreakExpr__replace_child(val* self, val* p0, val* p1) {
3331 parser_prod__ABreakExpr__replace_child(self, p0, p1); /* Direct call parser_prod#ABreakExpr#replace_child on <self:Object(ABreakExpr)>*/
3332 RET_LABEL:;
3333 }
3334 /* method parser_prod#ABreakExpr#n_kwbreak= for (self: ABreakExpr, TKwbreak) */
3335 void parser_prod__ABreakExpr__n_kwbreak_61d(val* self, val* p0) {
3336 val* var_node /* var node: TKwbreak */;
3337 var_node = p0;
3338 self->attrs[COLOR_parser_nodes__ABreakExpr___n_kwbreak].val = var_node; /* _n_kwbreak on <self:ABreakExpr> */
3339 {
3340 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwbreak> */
3341 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwbreak> */
3342 RET_LABEL1:(void)0;
3343 }
3344 }
3345 RET_LABEL:;
3346 }
3347 /* method parser_prod#ABreakExpr#n_kwbreak= for (self: Object, TKwbreak) */
3348 void VIRTUAL_parser_prod__ABreakExpr__n_kwbreak_61d(val* self, val* p0) {
3349 parser_prod__ABreakExpr__n_kwbreak_61d(self, p0); /* Direct call parser_prod#ABreakExpr#n_kwbreak= on <self:Object(ABreakExpr)>*/
3350 RET_LABEL:;
3351 }
3352 /* method parser_prod#ABreakExpr#n_label= for (self: ABreakExpr, nullable ALabel) */
3353 void parser_prod__ABreakExpr__n_label_61d(val* self, val* p0) {
3354 val* var_node /* var node: nullable ALabel */;
3355 val* var /* : null */;
3356 short int var1 /* : Bool */;
3357 short int var2 /* : Bool */;
3358 val* var_other /* var other: nullable Object */;
3359 short int var4 /* : Bool */;
3360 short int var5 /* : Bool */;
3361 short int var6 /* : Bool */;
3362 var_node = p0;
3363 self->attrs[COLOR_parser_nodes__ALabelable___n_label].val = var_node; /* _n_label on <self:ABreakExpr> */
3364 var = NULL;
3365 if (var_node == NULL) {
3366 var1 = 0; /* is null */
3367 } else {
3368 var1 = 1; /* arg is null and recv is not */
3369 }
3370 if (0) {
3371 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable ALabel> */
3372 var_other = var;
3373 {
3374 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable ALabel(ALabel)>*/;
3375 var4 = var5;
3376 }
3377 var6 = !var4;
3378 var2 = var6;
3379 goto RET_LABEL3;
3380 RET_LABEL3:(void)0;
3381 }
3382 var1 = var2;
3383 }
3384 if (var1){
3385 {
3386 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable ALabel(ALabel)> */
3387 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable ALabel(ALabel)> */
3388 RET_LABEL7:(void)0;
3389 }
3390 }
3391 } else {
3392 }
3393 RET_LABEL:;
3394 }
3395 /* method parser_prod#ABreakExpr#n_label= for (self: Object, nullable ALabel) */
3396 void VIRTUAL_parser_prod__ABreakExpr__n_label_61d(val* self, val* p0) {
3397 parser_prod__ABreakExpr__n_label_61d(self, p0); /* Direct call parser_prod#ABreakExpr#n_label= on <self:Object(ABreakExpr)>*/
3398 RET_LABEL:;
3399 }
3400 /* method parser_prod#ABreakExpr#visit_all for (self: ABreakExpr, Visitor) */
3401 void parser_prod__ABreakExpr__visit_all(val* self, val* p0) {
3402 val* var_v /* var v: Visitor */;
3403 val* var /* : TKwbreak */;
3404 val* var1 /* : nullable ALabel */;
3405 var_v = p0;
3406 var = self->attrs[COLOR_parser_nodes__ABreakExpr___n_kwbreak].val; /* _n_kwbreak on <self:ABreakExpr> */
3407 if (unlikely(var == NULL)) {
3408 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwbreak");
3409 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3158);
3410 show_backtrace(1);
3411 }
3412 {
3413 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3414 }
3415 var1 = self->attrs[COLOR_parser_nodes__ALabelable___n_label].val; /* _n_label on <self:ABreakExpr> */
3416 {
3417 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3418 }
3419 RET_LABEL:;
3420 }
3421 /* method parser_prod#ABreakExpr#visit_all for (self: Object, Visitor) */
3422 void VIRTUAL_parser_prod__ABreakExpr__visit_all(val* self, val* p0) {
3423 parser_prod__ABreakExpr__visit_all(self, p0); /* Direct call parser_prod#ABreakExpr#visit_all on <self:Object(ABreakExpr)>*/
3424 RET_LABEL:;
3425 }
3426 /* method parser_prod#AAbortExpr#init_aabortexpr for (self: AAbortExpr, nullable TKwabort) */
3427 void parser_prod__AAbortExpr__init_aabortexpr(val* self, val* p0) {
3428 val* var_n_kwabort /* var n_kwabort: nullable TKwabort */;
3429 var_n_kwabort = p0;
3430 if (unlikely(var_n_kwabort == NULL)) {
3431 PRINT_ERROR("Runtime error: %s", "Cast failed");
3432 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3167);
3433 show_backtrace(1);
3434 }
3435 self->attrs[COLOR_parser_nodes__AAbortExpr___n_kwabort].val = var_n_kwabort; /* _n_kwabort on <self:AAbortExpr> */
3436 if (var_n_kwabort == NULL) {
3437 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3438 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3168);
3439 show_backtrace(1);
3440 } else {
3441 { /* Inline parser_nodes#ANode#parent= (var_n_kwabort,self) on <var_n_kwabort:nullable TKwabort> */
3442 if (unlikely(var_n_kwabort == NULL)) {
3443 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3444 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
3445 show_backtrace(1);
3446 }
3447 var_n_kwabort->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwabort:nullable TKwabort> */
3448 RET_LABEL1:(void)0;
3449 }
3450 }
3451 RET_LABEL:;
3452 }
3453 /* method parser_prod#AAbortExpr#init_aabortexpr for (self: Object, nullable TKwabort) */
3454 void VIRTUAL_parser_prod__AAbortExpr__init_aabortexpr(val* self, val* p0) {
3455 parser_prod__AAbortExpr__init_aabortexpr(self, p0); /* Direct call parser_prod#AAbortExpr#init_aabortexpr on <self:Object(AAbortExpr)>*/
3456 RET_LABEL:;
3457 }
3458 /* method parser_prod#AAbortExpr#replace_child for (self: AAbortExpr, ANode, nullable ANode) */
3459 void parser_prod__AAbortExpr__replace_child(val* self, val* p0, val* p1) {
3460 val* var_old_child /* var old_child: ANode */;
3461 val* var_new_child /* var new_child: nullable ANode */;
3462 val* var /* : TKwabort */;
3463 short int var1 /* : Bool */;
3464 short int var2 /* : Bool */;
3465 val* var_other /* var other: nullable Object */;
3466 short int var4 /* : Bool */;
3467 short int var6 /* : Bool */;
3468 short int var7 /* : Bool */;
3469 int cltype;
3470 int idtype;
3471 const char* var_class_name;
3472 var_old_child = p0;
3473 var_new_child = p1;
3474 var = self->attrs[COLOR_parser_nodes__AAbortExpr___n_kwabort].val; /* _n_kwabort on <self:AAbortExpr> */
3475 if (unlikely(var == NULL)) {
3476 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwabort");
3477 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3173);
3478 show_backtrace(1);
3479 }
3480 {
3481 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwabort> */
3482 var_other = var_old_child;
3483 {
3484 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TKwabort> */
3485 var6 = var == var_other;
3486 var4 = var6;
3487 goto RET_LABEL5;
3488 RET_LABEL5:(void)0;
3489 }
3490 }
3491 var2 = var4;
3492 goto RET_LABEL3;
3493 RET_LABEL3:(void)0;
3494 }
3495 var1 = var2;
3496 }
3497 if (var1){
3498 /* <var_new_child:nullable ANode> isa TKwabort */
3499 cltype = type_parser_nodes__TKwabort.color;
3500 idtype = type_parser_nodes__TKwabort.id;
3501 if(var_new_child == NULL) {
3502 var7 = 0;
3503 } else {
3504 if(cltype >= var_new_child->type->table_size) {
3505 var7 = 0;
3506 } else {
3507 var7 = var_new_child->type->type_table[cltype] == idtype;
3508 }
3509 }
3510 if (unlikely(!var7)) {
3511 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
3512 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwabort", var_class_name);
3513 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3174);
3514 show_backtrace(1);
3515 }
3516 {
3517 parser_prod__AAbortExpr__n_kwabort_61d(self, var_new_child); /* Direct call parser_prod#AAbortExpr#n_kwabort= on <self:AAbortExpr>*/
3518 }
3519 goto RET_LABEL;
3520 } else {
3521 }
3522 RET_LABEL:;
3523 }
3524 /* method parser_prod#AAbortExpr#replace_child for (self: Object, ANode, nullable ANode) */
3525 void VIRTUAL_parser_prod__AAbortExpr__replace_child(val* self, val* p0, val* p1) {
3526 parser_prod__AAbortExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AAbortExpr#replace_child on <self:Object(AAbortExpr)>*/
3527 RET_LABEL:;
3528 }
3529 /* method parser_prod#AAbortExpr#n_kwabort= for (self: AAbortExpr, TKwabort) */
3530 void parser_prod__AAbortExpr__n_kwabort_61d(val* self, val* p0) {
3531 val* var_node /* var node: TKwabort */;
3532 var_node = p0;
3533 self->attrs[COLOR_parser_nodes__AAbortExpr___n_kwabort].val = var_node; /* _n_kwabort on <self:AAbortExpr> */
3534 {
3535 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwabort> */
3536 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwabort> */
3537 RET_LABEL1:(void)0;
3538 }
3539 }
3540 RET_LABEL:;
3541 }
3542 /* method parser_prod#AAbortExpr#n_kwabort= for (self: Object, TKwabort) */
3543 void VIRTUAL_parser_prod__AAbortExpr__n_kwabort_61d(val* self, val* p0) {
3544 parser_prod__AAbortExpr__n_kwabort_61d(self, p0); /* Direct call parser_prod#AAbortExpr#n_kwabort= on <self:Object(AAbortExpr)>*/
3545 RET_LABEL:;
3546 }
3547 /* method parser_prod#AAbortExpr#visit_all for (self: AAbortExpr, Visitor) */
3548 void parser_prod__AAbortExpr__visit_all(val* self, val* p0) {
3549 val* var_v /* var v: Visitor */;
3550 val* var /* : TKwabort */;
3551 var_v = p0;
3552 var = self->attrs[COLOR_parser_nodes__AAbortExpr___n_kwabort].val; /* _n_kwabort on <self:AAbortExpr> */
3553 if (unlikely(var == NULL)) {
3554 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwabort");
3555 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3188);
3556 show_backtrace(1);
3557 }
3558 {
3559 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3560 }
3561 RET_LABEL:;
3562 }
3563 /* method parser_prod#AAbortExpr#visit_all for (self: Object, Visitor) */
3564 void VIRTUAL_parser_prod__AAbortExpr__visit_all(val* self, val* p0) {
3565 parser_prod__AAbortExpr__visit_all(self, p0); /* Direct call parser_prod#AAbortExpr#visit_all on <self:Object(AAbortExpr)>*/
3566 RET_LABEL:;
3567 }
3568 /* method parser_prod#AContinueExpr#init_acontinueexpr for (self: AContinueExpr, nullable TKwcontinue, nullable ALabel) */
3569 void parser_prod__AContinueExpr__init_acontinueexpr(val* self, val* p0, val* p1) {
3570 val* var_n_kwcontinue /* var n_kwcontinue: nullable TKwcontinue */;
3571 val* var_n_label /* var n_label: nullable ALabel */;
3572 val* var /* : null */;
3573 short int var1 /* : Bool */;
3574 short int var2 /* : Bool */;
3575 val* var_other /* var other: nullable Object */;
3576 short int var4 /* : Bool */;
3577 short int var5 /* : Bool */;
3578 short int var6 /* : Bool */;
3579 val* var8 /* : null */;
3580 short int var9 /* : Bool */;
3581 short int var10 /* : Bool */;
3582 short int var12 /* : Bool */;
3583 short int var13 /* : Bool */;
3584 short int var14 /* : Bool */;
3585 var_n_kwcontinue = p0;
3586 var_n_label = p1;
3587 self->attrs[COLOR_parser_nodes__AContinueExpr___n_kwcontinue].val = var_n_kwcontinue; /* _n_kwcontinue on <self:AContinueExpr> */
3588 var = NULL;
3589 if (var_n_kwcontinue == NULL) {
3590 var1 = 0; /* is null */
3591 } else {
3592 var1 = 1; /* arg is null and recv is not */
3593 }
3594 if (0) {
3595 { /* Inline kernel#Object#!= (var_n_kwcontinue,var) on <var_n_kwcontinue:nullable TKwcontinue> */
3596 var_other = var;
3597 {
3598 var5 = ((short int (*)(val*, val*))(var_n_kwcontinue->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_kwcontinue, var_other) /* == on <var_n_kwcontinue:nullable TKwcontinue(TKwcontinue)>*/;
3599 var4 = var5;
3600 }
3601 var6 = !var4;
3602 var2 = var6;
3603 goto RET_LABEL3;
3604 RET_LABEL3:(void)0;
3605 }
3606 var1 = var2;
3607 }
3608 if (var1){
3609 {
3610 { /* Inline parser_nodes#ANode#parent= (var_n_kwcontinue,self) on <var_n_kwcontinue:nullable TKwcontinue(TKwcontinue)> */
3611 var_n_kwcontinue->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwcontinue:nullable TKwcontinue(TKwcontinue)> */
3612 RET_LABEL7:(void)0;
3613 }
3614 }
3615 } else {
3616 }
3617 self->attrs[COLOR_parser_nodes__ALabelable___n_label].val = var_n_label; /* _n_label on <self:AContinueExpr> */
3618 var8 = NULL;
3619 if (var_n_label == NULL) {
3620 var9 = 0; /* is null */
3621 } else {
3622 var9 = 1; /* arg is null and recv is not */
3623 }
3624 if (0) {
3625 { /* Inline kernel#Object#!= (var_n_label,var8) on <var_n_label:nullable ALabel> */
3626 var_other = var8;
3627 {
3628 var13 = ((short int (*)(val*, val*))(var_n_label->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_label, var_other) /* == on <var_n_label:nullable ALabel(ALabel)>*/;
3629 var12 = var13;
3630 }
3631 var14 = !var12;
3632 var10 = var14;
3633 goto RET_LABEL11;
3634 RET_LABEL11:(void)0;
3635 }
3636 var9 = var10;
3637 }
3638 if (var9){
3639 {
3640 { /* Inline parser_nodes#ANode#parent= (var_n_label,self) on <var_n_label:nullable ALabel(ALabel)> */
3641 var_n_label->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_label:nullable ALabel(ALabel)> */
3642 RET_LABEL15:(void)0;
3643 }
3644 }
3645 } else {
3646 }
3647 RET_LABEL:;
3648 }
3649 /* method parser_prod#AContinueExpr#init_acontinueexpr for (self: Object, nullable TKwcontinue, nullable ALabel) */
3650 void VIRTUAL_parser_prod__AContinueExpr__init_acontinueexpr(val* self, val* p0, val* p1) {
3651 parser_prod__AContinueExpr__init_acontinueexpr(self, p0, p1); /* Direct call parser_prod#AContinueExpr#init_acontinueexpr on <self:Object(AContinueExpr)>*/
3652 RET_LABEL:;
3653 }
3654 /* method parser_prod#AContinueExpr#replace_child for (self: AContinueExpr, ANode, nullable ANode) */
3655 void parser_prod__AContinueExpr__replace_child(val* self, val* p0, val* p1) {
3656 val* var_old_child /* var old_child: ANode */;
3657 val* var_new_child /* var new_child: nullable ANode */;
3658 val* var /* : nullable TKwcontinue */;
3659 short int var1 /* : Bool */;
3660 short int var2 /* : Bool */;
3661 val* var_other /* var other: nullable Object */;
3662 short int var4 /* : Bool */;
3663 short int var6 /* : Bool */;
3664 short int var7 /* : Bool */;
3665 int cltype;
3666 int idtype;
3667 const char* var_class_name;
3668 val* var8 /* : nullable ALabel */;
3669 short int var9 /* : Bool */;
3670 short int var10 /* : Bool */;
3671 short int var12 /* : Bool */;
3672 short int var14 /* : Bool */;
3673 short int var15 /* : Bool */;
3674 int cltype16;
3675 int idtype17;
3676 const char* var_class_name18;
3677 var_old_child = p0;
3678 var_new_child = p1;
3679 var = self->attrs[COLOR_parser_nodes__AContinueExpr___n_kwcontinue].val; /* _n_kwcontinue on <self:AContinueExpr> */
3680 if (var == NULL) {
3681 var1 = 0; /* <var_old_child:ANode> cannot be null */
3682 } else {
3683 { /* Inline kernel#Object#== (var,var_old_child) on <var:nullable TKwcontinue> */
3684 var_other = var_old_child;
3685 {
3686 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:nullable TKwcontinue(TKwcontinue)> */
3687 var6 = var == var_other;
3688 var4 = var6;
3689 goto RET_LABEL5;
3690 RET_LABEL5:(void)0;
3691 }
3692 }
3693 var2 = var4;
3694 goto RET_LABEL3;
3695 RET_LABEL3:(void)0;
3696 }
3697 var1 = var2;
3698 }
3699 if (var1){
3700 /* <var_new_child:nullable ANode> isa nullable TKwcontinue */
3701 cltype = type_nullable_parser_nodes__TKwcontinue.color;
3702 idtype = type_nullable_parser_nodes__TKwcontinue.id;
3703 if(var_new_child == NULL) {
3704 var7 = 1;
3705 } else {
3706 if(cltype >= var_new_child->type->table_size) {
3707 var7 = 0;
3708 } else {
3709 var7 = var_new_child->type->type_table[cltype] == idtype;
3710 }
3711 }
3712 if (unlikely(!var7)) {
3713 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
3714 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TKwcontinue", var_class_name);
3715 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3206);
3716 show_backtrace(1);
3717 }
3718 {
3719 parser_prod__AContinueExpr__n_kwcontinue_61d(self, var_new_child); /* Direct call parser_prod#AContinueExpr#n_kwcontinue= on <self:AContinueExpr>*/
3720 }
3721 goto RET_LABEL;
3722 } else {
3723 }
3724 var8 = self->attrs[COLOR_parser_nodes__ALabelable___n_label].val; /* _n_label on <self:AContinueExpr> */
3725 if (var8 == NULL) {
3726 var9 = 0; /* <var_old_child:ANode> cannot be null */
3727 } else {
3728 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:nullable ALabel> */
3729 var_other = var_old_child;
3730 {
3731 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:nullable ALabel(ALabel)> */
3732 var14 = var8 == var_other;
3733 var12 = var14;
3734 goto RET_LABEL13;
3735 RET_LABEL13:(void)0;
3736 }
3737 }
3738 var10 = var12;
3739 goto RET_LABEL11;
3740 RET_LABEL11:(void)0;
3741 }
3742 var9 = var10;
3743 }
3744 if (var9){
3745 /* <var_new_child:nullable ANode> isa nullable ALabel */
3746 cltype16 = type_nullable_parser_nodes__ALabel.color;
3747 idtype17 = type_nullable_parser_nodes__ALabel.id;
3748 if(var_new_child == NULL) {
3749 var15 = 1;
3750 } else {
3751 if(cltype16 >= var_new_child->type->table_size) {
3752 var15 = 0;
3753 } else {
3754 var15 = var_new_child->type->type_table[cltype16] == idtype17;
3755 }
3756 }
3757 if (unlikely(!var15)) {
3758 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
3759 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ALabel", var_class_name18);
3760 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3210);
3761 show_backtrace(1);
3762 }
3763 {
3764 parser_prod__AContinueExpr__n_label_61d(self, var_new_child); /* Direct call parser_prod#AContinueExpr#n_label= on <self:AContinueExpr>*/
3765 }
3766 goto RET_LABEL;
3767 } else {
3768 }
3769 RET_LABEL:;
3770 }
3771 /* method parser_prod#AContinueExpr#replace_child for (self: Object, ANode, nullable ANode) */
3772 void VIRTUAL_parser_prod__AContinueExpr__replace_child(val* self, val* p0, val* p1) {
3773 parser_prod__AContinueExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AContinueExpr#replace_child on <self:Object(AContinueExpr)>*/
3774 RET_LABEL:;
3775 }
3776 /* method parser_prod#AContinueExpr#n_kwcontinue= for (self: AContinueExpr, nullable TKwcontinue) */
3777 void parser_prod__AContinueExpr__n_kwcontinue_61d(val* self, val* p0) {
3778 val* var_node /* var node: nullable TKwcontinue */;
3779 val* var /* : null */;
3780 short int var1 /* : Bool */;
3781 short int var2 /* : Bool */;
3782 val* var_other /* var other: nullable Object */;
3783 short int var4 /* : Bool */;
3784 short int var5 /* : Bool */;
3785 short int var6 /* : Bool */;
3786 var_node = p0;
3787 self->attrs[COLOR_parser_nodes__AContinueExpr___n_kwcontinue].val = var_node; /* _n_kwcontinue on <self:AContinueExpr> */
3788 var = NULL;
3789 if (var_node == NULL) {
3790 var1 = 0; /* is null */
3791 } else {
3792 var1 = 1; /* arg is null and recv is not */
3793 }
3794 if (0) {
3795 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable TKwcontinue> */
3796 var_other = var;
3797 {
3798 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable TKwcontinue(TKwcontinue)>*/;
3799 var4 = var5;
3800 }
3801 var6 = !var4;
3802 var2 = var6;
3803 goto RET_LABEL3;
3804 RET_LABEL3:(void)0;
3805 }
3806 var1 = var2;
3807 }
3808 if (var1){
3809 {
3810 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TKwcontinue(TKwcontinue)> */
3811 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TKwcontinue(TKwcontinue)> */
3812 RET_LABEL7:(void)0;
3813 }
3814 }
3815 } else {
3816 }
3817 RET_LABEL:;
3818 }
3819 /* method parser_prod#AContinueExpr#n_kwcontinue= for (self: Object, nullable TKwcontinue) */
3820 void VIRTUAL_parser_prod__AContinueExpr__n_kwcontinue_61d(val* self, val* p0) {
3821 parser_prod__AContinueExpr__n_kwcontinue_61d(self, p0); /* Direct call parser_prod#AContinueExpr#n_kwcontinue= on <self:Object(AContinueExpr)>*/
3822 RET_LABEL:;
3823 }
3824 /* method parser_prod#AContinueExpr#n_label= for (self: AContinueExpr, nullable ALabel) */
3825 void parser_prod__AContinueExpr__n_label_61d(val* self, val* p0) {
3826 val* var_node /* var node: nullable ALabel */;
3827 val* var /* : null */;
3828 short int var1 /* : Bool */;
3829 short int var2 /* : Bool */;
3830 val* var_other /* var other: nullable Object */;
3831 short int var4 /* : Bool */;
3832 short int var5 /* : Bool */;
3833 short int var6 /* : Bool */;
3834 var_node = p0;
3835 self->attrs[COLOR_parser_nodes__ALabelable___n_label].val = var_node; /* _n_label on <self:AContinueExpr> */
3836 var = NULL;
3837 if (var_node == NULL) {
3838 var1 = 0; /* is null */
3839 } else {
3840 var1 = 1; /* arg is null and recv is not */
3841 }
3842 if (0) {
3843 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable ALabel> */
3844 var_other = var;
3845 {
3846 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable ALabel(ALabel)>*/;
3847 var4 = var5;
3848 }
3849 var6 = !var4;
3850 var2 = var6;
3851 goto RET_LABEL3;
3852 RET_LABEL3:(void)0;
3853 }
3854 var1 = var2;
3855 }
3856 if (var1){
3857 {
3858 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable ALabel(ALabel)> */
3859 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable ALabel(ALabel)> */
3860 RET_LABEL7:(void)0;
3861 }
3862 }
3863 } else {
3864 }
3865 RET_LABEL:;
3866 }
3867 /* method parser_prod#AContinueExpr#n_label= for (self: Object, nullable ALabel) */
3868 void VIRTUAL_parser_prod__AContinueExpr__n_label_61d(val* self, val* p0) {
3869 parser_prod__AContinueExpr__n_label_61d(self, p0); /* Direct call parser_prod#AContinueExpr#n_label= on <self:Object(AContinueExpr)>*/
3870 RET_LABEL:;
3871 }
3872 /* method parser_prod#AContinueExpr#visit_all for (self: AContinueExpr, Visitor) */
3873 void parser_prod__AContinueExpr__visit_all(val* self, val* p0) {
3874 val* var_v /* var v: Visitor */;
3875 val* var /* : nullable TKwcontinue */;
3876 val* var1 /* : nullable ALabel */;
3877 var_v = p0;
3878 var = self->attrs[COLOR_parser_nodes__AContinueExpr___n_kwcontinue].val; /* _n_kwcontinue on <self:AContinueExpr> */
3879 {
3880 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3881 }
3882 var1 = self->attrs[COLOR_parser_nodes__ALabelable___n_label].val; /* _n_label on <self:AContinueExpr> */
3883 {
3884 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3885 }
3886 RET_LABEL:;
3887 }
3888 /* method parser_prod#AContinueExpr#visit_all for (self: Object, Visitor) */
3889 void VIRTUAL_parser_prod__AContinueExpr__visit_all(val* self, val* p0) {
3890 parser_prod__AContinueExpr__visit_all(self, p0); /* Direct call parser_prod#AContinueExpr#visit_all on <self:Object(AContinueExpr)>*/
3891 RET_LABEL:;
3892 }
3893 /* method parser_prod#ADoExpr#init_adoexpr for (self: ADoExpr, nullable TKwdo, nullable AExpr, nullable ALabel) */
3894 void parser_prod__ADoExpr__init_adoexpr(val* self, val* p0, val* p1, val* p2) {
3895 val* var_n_kwdo /* var n_kwdo: nullable TKwdo */;
3896 val* var_n_block /* var n_block: nullable AExpr */;
3897 val* var_n_label /* var n_label: nullable ALabel */;
3898 val* var /* : null */;
3899 short int var2 /* : Bool */;
3900 short int var3 /* : Bool */;
3901 val* var_other /* var other: nullable Object */;
3902 short int var5 /* : Bool */;
3903 short int var6 /* : Bool */;
3904 short int var7 /* : Bool */;
3905 val* var9 /* : null */;
3906 short int var10 /* : Bool */;
3907 short int var11 /* : Bool */;
3908 short int var13 /* : Bool */;
3909 short int var14 /* : Bool */;
3910 short int var15 /* : Bool */;
3911 var_n_kwdo = p0;
3912 var_n_block = p1;
3913 var_n_label = p2;
3914 if (unlikely(var_n_kwdo == NULL)) {
3915 PRINT_ERROR("Runtime error: %s", "Cast failed");
3916 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3240);
3917 show_backtrace(1);
3918 }
3919 self->attrs[COLOR_parser_nodes__ADoExpr___n_kwdo].val = var_n_kwdo; /* _n_kwdo on <self:ADoExpr> */
3920 if (var_n_kwdo == NULL) {
3921 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3922 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3241);
3923 show_backtrace(1);
3924 } else {
3925 { /* Inline parser_nodes#ANode#parent= (var_n_kwdo,self) on <var_n_kwdo:nullable TKwdo> */
3926 if (unlikely(var_n_kwdo == NULL)) {
3927 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3928 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
3929 show_backtrace(1);
3930 }
3931 var_n_kwdo->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwdo:nullable TKwdo> */
3932 RET_LABEL1:(void)0;
3933 }
3934 }
3935 self->attrs[COLOR_parser_nodes__ADoExpr___n_block].val = var_n_block; /* _n_block on <self:ADoExpr> */
3936 var = NULL;
3937 if (var_n_block == NULL) {
3938 var2 = 0; /* is null */
3939 } else {
3940 var2 = 1; /* arg is null and recv is not */
3941 }
3942 if (0) {
3943 { /* Inline kernel#Object#!= (var_n_block,var) on <var_n_block:nullable AExpr> */
3944 var_other = var;
3945 {
3946 var6 = ((short int (*)(val*, val*))(var_n_block->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_block, var_other) /* == on <var_n_block:nullable AExpr(AExpr)>*/;
3947 var5 = var6;
3948 }
3949 var7 = !var5;
3950 var3 = var7;
3951 goto RET_LABEL4;
3952 RET_LABEL4:(void)0;
3953 }
3954 var2 = var3;
3955 }
3956 if (var2){
3957 {
3958 { /* Inline parser_nodes#ANode#parent= (var_n_block,self) on <var_n_block:nullable AExpr(AExpr)> */
3959 var_n_block->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_block:nullable AExpr(AExpr)> */
3960 RET_LABEL8:(void)0;
3961 }
3962 }
3963 } else {
3964 }
3965 self->attrs[COLOR_parser_nodes__ALabelable___n_label].val = var_n_label; /* _n_label on <self:ADoExpr> */
3966 var9 = NULL;
3967 if (var_n_label == NULL) {
3968 var10 = 0; /* is null */
3969 } else {
3970 var10 = 1; /* arg is null and recv is not */
3971 }
3972 if (0) {
3973 { /* Inline kernel#Object#!= (var_n_label,var9) on <var_n_label:nullable ALabel> */
3974 var_other = var9;
3975 {
3976 var14 = ((short int (*)(val*, val*))(var_n_label->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_label, var_other) /* == on <var_n_label:nullable ALabel(ALabel)>*/;
3977 var13 = var14;
3978 }
3979 var15 = !var13;
3980 var11 = var15;
3981 goto RET_LABEL12;
3982 RET_LABEL12:(void)0;
3983 }
3984 var10 = var11;
3985 }
3986 if (var10){
3987 {
3988 { /* Inline parser_nodes#ANode#parent= (var_n_label,self) on <var_n_label:nullable ALabel(ALabel)> */
3989 var_n_label->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_label:nullable ALabel(ALabel)> */
3990 RET_LABEL16:(void)0;
3991 }
3992 }
3993 } else {
3994 }
3995 RET_LABEL:;
3996 }
3997 /* method parser_prod#ADoExpr#init_adoexpr for (self: Object, nullable TKwdo, nullable AExpr, nullable ALabel) */
3998 void VIRTUAL_parser_prod__ADoExpr__init_adoexpr(val* self, val* p0, val* p1, val* p2) {
3999 parser_prod__ADoExpr__init_adoexpr(self, p0, p1, p2); /* Direct call parser_prod#ADoExpr#init_adoexpr on <self:Object(ADoExpr)>*/
4000 RET_LABEL:;
4001 }
4002 /* method parser_prod#ADoExpr#replace_child for (self: ADoExpr, ANode, nullable ANode) */
4003 void parser_prod__ADoExpr__replace_child(val* self, val* p0, val* p1) {
4004 val* var_old_child /* var old_child: ANode */;
4005 val* var_new_child /* var new_child: nullable ANode */;
4006 val* var /* : TKwdo */;
4007 short int var1 /* : Bool */;
4008 short int var2 /* : Bool */;
4009 val* var_other /* var other: nullable Object */;
4010 short int var4 /* : Bool */;
4011 short int var6 /* : Bool */;
4012 short int var7 /* : Bool */;
4013 int cltype;
4014 int idtype;
4015 const char* var_class_name;
4016 val* var8 /* : nullable AExpr */;
4017 short int var9 /* : Bool */;
4018 short int var10 /* : Bool */;
4019 short int var12 /* : Bool */;
4020 short int var14 /* : Bool */;
4021 short int var15 /* : Bool */;
4022 int cltype16;
4023 int idtype17;
4024 const char* var_class_name18;
4025 val* var19 /* : nullable ALabel */;
4026 short int var20 /* : Bool */;
4027 short int var21 /* : Bool */;
4028 short int var23 /* : Bool */;
4029 short int var25 /* : Bool */;
4030 short int var26 /* : Bool */;
4031 int cltype27;
4032 int idtype28;
4033 const char* var_class_name29;
4034 var_old_child = p0;
4035 var_new_child = p1;
4036 var = self->attrs[COLOR_parser_nodes__ADoExpr___n_kwdo].val; /* _n_kwdo on <self:ADoExpr> */
4037 if (unlikely(var == NULL)) {
4038 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwdo");
4039 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3250);
4040 show_backtrace(1);
4041 }
4042 {
4043 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwdo> */
4044 var_other = var_old_child;
4045 {
4046 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TKwdo> */
4047 var6 = var == var_other;
4048 var4 = var6;
4049 goto RET_LABEL5;
4050 RET_LABEL5:(void)0;
4051 }
4052 }
4053 var2 = var4;
4054 goto RET_LABEL3;
4055 RET_LABEL3:(void)0;
4056 }
4057 var1 = var2;
4058 }
4059 if (var1){
4060 /* <var_new_child:nullable ANode> isa TKwdo */
4061 cltype = type_parser_nodes__TKwdo.color;
4062 idtype = type_parser_nodes__TKwdo.id;
4063 if(var_new_child == NULL) {
4064 var7 = 0;
4065 } else {
4066 if(cltype >= var_new_child->type->table_size) {
4067 var7 = 0;
4068 } else {
4069 var7 = var_new_child->type->type_table[cltype] == idtype;
4070 }
4071 }
4072 if (unlikely(!var7)) {
4073 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
4074 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwdo", var_class_name);
4075 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3251);
4076 show_backtrace(1);
4077 }
4078 {
4079 parser_prod__ADoExpr__n_kwdo_61d(self, var_new_child); /* Direct call parser_prod#ADoExpr#n_kwdo= on <self:ADoExpr>*/
4080 }
4081 goto RET_LABEL;
4082 } else {
4083 }
4084 var8 = self->attrs[COLOR_parser_nodes__ADoExpr___n_block].val; /* _n_block on <self:ADoExpr> */
4085 if (var8 == NULL) {
4086 var9 = 0; /* <var_old_child:ANode> cannot be null */
4087 } else {
4088 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:nullable AExpr> */
4089 var_other = var_old_child;
4090 {
4091 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:nullable AExpr(AExpr)> */
4092 var14 = var8 == var_other;
4093 var12 = var14;
4094 goto RET_LABEL13;
4095 RET_LABEL13:(void)0;
4096 }
4097 }
4098 var10 = var12;
4099 goto RET_LABEL11;
4100 RET_LABEL11:(void)0;
4101 }
4102 var9 = var10;
4103 }
4104 if (var9){
4105 /* <var_new_child:nullable ANode> isa nullable AExpr */
4106 cltype16 = type_nullable_parser_nodes__AExpr.color;
4107 idtype17 = type_nullable_parser_nodes__AExpr.id;
4108 if(var_new_child == NULL) {
4109 var15 = 1;
4110 } else {
4111 if(cltype16 >= var_new_child->type->table_size) {
4112 var15 = 0;
4113 } else {
4114 var15 = var_new_child->type->type_table[cltype16] == idtype17;
4115 }
4116 }
4117 if (unlikely(!var15)) {
4118 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
4119 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AExpr", var_class_name18);
4120 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3255);
4121 show_backtrace(1);
4122 }
4123 {
4124 parser_prod__ADoExpr__n_block_61d(self, var_new_child); /* Direct call parser_prod#ADoExpr#n_block= on <self:ADoExpr>*/
4125 }
4126 goto RET_LABEL;
4127 } else {
4128 }
4129 var19 = self->attrs[COLOR_parser_nodes__ALabelable___n_label].val; /* _n_label on <self:ADoExpr> */
4130 if (var19 == NULL) {
4131 var20 = 0; /* <var_old_child:ANode> cannot be null */
4132 } else {
4133 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:nullable ALabel> */
4134 var_other = var_old_child;
4135 {
4136 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:nullable ALabel(ALabel)> */
4137 var25 = var19 == var_other;
4138 var23 = var25;
4139 goto RET_LABEL24;
4140 RET_LABEL24:(void)0;
4141 }
4142 }
4143 var21 = var23;
4144 goto RET_LABEL22;
4145 RET_LABEL22:(void)0;
4146 }
4147 var20 = var21;
4148 }
4149 if (var20){
4150 /* <var_new_child:nullable ANode> isa nullable ALabel */
4151 cltype27 = type_nullable_parser_nodes__ALabel.color;
4152 idtype28 = type_nullable_parser_nodes__ALabel.id;
4153 if(var_new_child == NULL) {
4154 var26 = 1;
4155 } else {
4156 if(cltype27 >= var_new_child->type->table_size) {
4157 var26 = 0;
4158 } else {
4159 var26 = var_new_child->type->type_table[cltype27] == idtype28;
4160 }
4161 }
4162 if (unlikely(!var26)) {
4163 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
4164 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ALabel", var_class_name29);
4165 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3259);
4166 show_backtrace(1);
4167 }
4168 {
4169 parser_prod__ADoExpr__n_label_61d(self, var_new_child); /* Direct call parser_prod#ADoExpr#n_label= on <self:ADoExpr>*/
4170 }
4171 goto RET_LABEL;
4172 } else {
4173 }
4174 RET_LABEL:;
4175 }
4176 /* method parser_prod#ADoExpr#replace_child for (self: Object, ANode, nullable ANode) */
4177 void VIRTUAL_parser_prod__ADoExpr__replace_child(val* self, val* p0, val* p1) {
4178 parser_prod__ADoExpr__replace_child(self, p0, p1); /* Direct call parser_prod#ADoExpr#replace_child on <self:Object(ADoExpr)>*/
4179 RET_LABEL:;
4180 }
4181 /* method parser_prod#ADoExpr#n_kwdo= for (self: ADoExpr, TKwdo) */
4182 void parser_prod__ADoExpr__n_kwdo_61d(val* self, val* p0) {
4183 val* var_node /* var node: TKwdo */;
4184 var_node = p0;
4185 self->attrs[COLOR_parser_nodes__ADoExpr___n_kwdo].val = var_node; /* _n_kwdo on <self:ADoExpr> */
4186 {
4187 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwdo> */
4188 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwdo> */
4189 RET_LABEL1:(void)0;
4190 }
4191 }
4192 RET_LABEL:;
4193 }
4194 /* method parser_prod#ADoExpr#n_kwdo= for (self: Object, TKwdo) */
4195 void VIRTUAL_parser_prod__ADoExpr__n_kwdo_61d(val* self, val* p0) {
4196 parser_prod__ADoExpr__n_kwdo_61d(self, p0); /* Direct call parser_prod#ADoExpr#n_kwdo= on <self:Object(ADoExpr)>*/
4197 RET_LABEL:;
4198 }
4199 /* method parser_prod#ADoExpr#n_block= for (self: ADoExpr, nullable AExpr) */
4200 void parser_prod__ADoExpr__n_block_61d(val* self, val* p0) {
4201 val* var_node /* var node: nullable AExpr */;
4202 val* var /* : null */;
4203 short int var1 /* : Bool */;
4204 short int var2 /* : Bool */;
4205 val* var_other /* var other: nullable Object */;
4206 short int var4 /* : Bool */;
4207 short int var5 /* : Bool */;
4208 short int var6 /* : Bool */;
4209 var_node = p0;
4210 self->attrs[COLOR_parser_nodes__ADoExpr___n_block].val = var_node; /* _n_block on <self:ADoExpr> */
4211 var = NULL;
4212 if (var_node == NULL) {
4213 var1 = 0; /* is null */
4214 } else {
4215 var1 = 1; /* arg is null and recv is not */
4216 }
4217 if (0) {
4218 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AExpr> */
4219 var_other = var;
4220 {
4221 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AExpr(AExpr)>*/;
4222 var4 = var5;
4223 }
4224 var6 = !var4;
4225 var2 = var6;
4226 goto RET_LABEL3;
4227 RET_LABEL3:(void)0;
4228 }
4229 var1 = var2;
4230 }
4231 if (var1){
4232 {
4233 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AExpr(AExpr)> */
4234 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AExpr(AExpr)> */
4235 RET_LABEL7:(void)0;
4236 }
4237 }
4238 } else {
4239 }
4240 RET_LABEL:;
4241 }
4242 /* method parser_prod#ADoExpr#n_block= for (self: Object, nullable AExpr) */
4243 void VIRTUAL_parser_prod__ADoExpr__n_block_61d(val* self, val* p0) {
4244 parser_prod__ADoExpr__n_block_61d(self, p0); /* Direct call parser_prod#ADoExpr#n_block= on <self:Object(ADoExpr)>*/
4245 RET_LABEL:;
4246 }
4247 /* method parser_prod#ADoExpr#n_label= for (self: ADoExpr, nullable ALabel) */
4248 void parser_prod__ADoExpr__n_label_61d(val* self, val* p0) {
4249 val* var_node /* var node: nullable ALabel */;
4250 val* var /* : null */;
4251 short int var1 /* : Bool */;
4252 short int var2 /* : Bool */;
4253 val* var_other /* var other: nullable Object */;
4254 short int var4 /* : Bool */;
4255 short int var5 /* : Bool */;
4256 short int var6 /* : Bool */;
4257 var_node = p0;
4258 self->attrs[COLOR_parser_nodes__ALabelable___n_label].val = var_node; /* _n_label on <self:ADoExpr> */
4259 var = NULL;
4260 if (var_node == NULL) {
4261 var1 = 0; /* is null */
4262 } else {
4263 var1 = 1; /* arg is null and recv is not */
4264 }
4265 if (0) {
4266 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable ALabel> */
4267 var_other = var;
4268 {
4269 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable ALabel(ALabel)>*/;
4270 var4 = var5;
4271 }
4272 var6 = !var4;
4273 var2 = var6;
4274 goto RET_LABEL3;
4275 RET_LABEL3:(void)0;
4276 }
4277 var1 = var2;
4278 }
4279 if (var1){
4280 {
4281 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable ALabel(ALabel)> */
4282 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable ALabel(ALabel)> */
4283 RET_LABEL7:(void)0;
4284 }
4285 }
4286 } else {
4287 }
4288 RET_LABEL:;
4289 }
4290 /* method parser_prod#ADoExpr#n_label= for (self: Object, nullable ALabel) */
4291 void VIRTUAL_parser_prod__ADoExpr__n_label_61d(val* self, val* p0) {
4292 parser_prod__ADoExpr__n_label_61d(self, p0); /* Direct call parser_prod#ADoExpr#n_label= on <self:Object(ADoExpr)>*/
4293 RET_LABEL:;
4294 }
4295 /* method parser_prod#ADoExpr#visit_all for (self: ADoExpr, Visitor) */
4296 void parser_prod__ADoExpr__visit_all(val* self, val* p0) {
4297 val* var_v /* var v: Visitor */;
4298 val* var /* : TKwdo */;
4299 val* var1 /* : nullable AExpr */;
4300 val* var2 /* : nullable ALabel */;
4301 var_v = p0;
4302 var = self->attrs[COLOR_parser_nodes__ADoExpr___n_kwdo].val; /* _n_kwdo on <self:ADoExpr> */
4303 if (unlikely(var == NULL)) {
4304 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwdo");
4305 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3283);
4306 show_backtrace(1);
4307 }
4308 {
4309 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4310 }
4311 var1 = self->attrs[COLOR_parser_nodes__ADoExpr___n_block].val; /* _n_block on <self:ADoExpr> */
4312 {
4313 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4314 }
4315 var2 = self->attrs[COLOR_parser_nodes__ALabelable___n_label].val; /* _n_label on <self:ADoExpr> */
4316 {
4317 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4318 }
4319 RET_LABEL:;
4320 }
4321 /* method parser_prod#ADoExpr#visit_all for (self: Object, Visitor) */
4322 void VIRTUAL_parser_prod__ADoExpr__visit_all(val* self, val* p0) {
4323 parser_prod__ADoExpr__visit_all(self, p0); /* Direct call parser_prod#ADoExpr#visit_all on <self:Object(ADoExpr)>*/
4324 RET_LABEL:;
4325 }
4326 /* method parser_prod#AIfExpr#init_aifexpr for (self: AIfExpr, nullable TKwif, nullable AExpr, nullable AExpr, nullable AExpr) */
4327 void parser_prod__AIfExpr__init_aifexpr(val* self, val* p0, val* p1, val* p2, val* p3) {
4328 val* var_n_kwif /* var n_kwif: nullable TKwif */;
4329 val* var_n_expr /* var n_expr: nullable AExpr */;
4330 val* var_n_then /* var n_then: nullable AExpr */;
4331 val* var_n_else /* var n_else: nullable AExpr */;
4332 val* var /* : null */;
4333 short int var3 /* : Bool */;
4334 short int var4 /* : Bool */;
4335 val* var_other /* var other: nullable Object */;
4336 short int var6 /* : Bool */;
4337 short int var7 /* : Bool */;
4338 short int var8 /* : Bool */;
4339 val* var10 /* : null */;
4340 short int var11 /* : Bool */;
4341 short int var12 /* : Bool */;
4342 short int var14 /* : Bool */;
4343 short int var15 /* : Bool */;
4344 short int var16 /* : Bool */;
4345 var_n_kwif = p0;
4346 var_n_expr = p1;
4347 var_n_then = p2;
4348 var_n_else = p3;
4349 if (unlikely(var_n_kwif == NULL)) {
4350 PRINT_ERROR("Runtime error: %s", "Cast failed");
4351 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3296);
4352 show_backtrace(1);
4353 }
4354 self->attrs[COLOR_parser_nodes__AIfExpr___n_kwif].val = var_n_kwif; /* _n_kwif on <self:AIfExpr> */
4355 if (var_n_kwif == NULL) {
4356 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4357 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3297);
4358 show_backtrace(1);
4359 } else {
4360 { /* Inline parser_nodes#ANode#parent= (var_n_kwif,self) on <var_n_kwif:nullable TKwif> */
4361 if (unlikely(var_n_kwif == NULL)) {
4362 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4363 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
4364 show_backtrace(1);
4365 }
4366 var_n_kwif->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwif:nullable TKwif> */
4367 RET_LABEL1:(void)0;
4368 }
4369 }
4370 if (unlikely(var_n_expr == NULL)) {
4371 PRINT_ERROR("Runtime error: %s", "Cast failed");
4372 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3298);
4373 show_backtrace(1);
4374 }
4375 self->attrs[COLOR_parser_nodes__AIfExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AIfExpr> */
4376 if (var_n_expr == NULL) {
4377 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4378 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3299);
4379 show_backtrace(1);
4380 } else {
4381 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
4382 if (unlikely(var_n_expr == NULL)) {
4383 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4384 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
4385 show_backtrace(1);
4386 }
4387 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
4388 RET_LABEL2:(void)0;
4389 }
4390 }
4391 self->attrs[COLOR_parser_nodes__AIfExpr___n_then].val = var_n_then; /* _n_then on <self:AIfExpr> */
4392 var = NULL;
4393 if (var_n_then == NULL) {
4394 var3 = 0; /* is null */
4395 } else {
4396 var3 = 1; /* arg is null and recv is not */
4397 }
4398 if (0) {
4399 { /* Inline kernel#Object#!= (var_n_then,var) on <var_n_then:nullable AExpr> */
4400 var_other = var;
4401 {
4402 var7 = ((short int (*)(val*, val*))(var_n_then->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_then, var_other) /* == on <var_n_then:nullable AExpr(AExpr)>*/;
4403 var6 = var7;
4404 }
4405 var8 = !var6;
4406 var4 = var8;
4407 goto RET_LABEL5;
4408 RET_LABEL5:(void)0;
4409 }
4410 var3 = var4;
4411 }
4412 if (var3){
4413 {
4414 { /* Inline parser_nodes#ANode#parent= (var_n_then,self) on <var_n_then:nullable AExpr(AExpr)> */
4415 var_n_then->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_then:nullable AExpr(AExpr)> */
4416 RET_LABEL9:(void)0;
4417 }
4418 }
4419 } else {
4420 }
4421 self->attrs[COLOR_parser_nodes__AIfExpr___n_else].val = var_n_else; /* _n_else on <self:AIfExpr> */
4422 var10 = NULL;
4423 if (var_n_else == NULL) {
4424 var11 = 0; /* is null */
4425 } else {
4426 var11 = 1; /* arg is null and recv is not */
4427 }
4428 if (0) {
4429 { /* Inline kernel#Object#!= (var_n_else,var10) on <var_n_else:nullable AExpr> */
4430 var_other = var10;
4431 {
4432 var15 = ((short int (*)(val*, val*))(var_n_else->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_else, var_other) /* == on <var_n_else:nullable AExpr(AExpr)>*/;
4433 var14 = var15;
4434 }
4435 var16 = !var14;
4436 var12 = var16;
4437 goto RET_LABEL13;
4438 RET_LABEL13:(void)0;
4439 }
4440 var11 = var12;
4441 }
4442 if (var11){
4443 {
4444 { /* Inline parser_nodes#ANode#parent= (var_n_else,self) on <var_n_else:nullable AExpr(AExpr)> */
4445 var_n_else->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_else:nullable AExpr(AExpr)> */
4446 RET_LABEL17:(void)0;
4447 }
4448 }
4449 } else {
4450 }
4451 RET_LABEL:;
4452 }
4453 /* method parser_prod#AIfExpr#init_aifexpr for (self: Object, nullable TKwif, nullable AExpr, nullable AExpr, nullable AExpr) */
4454 void VIRTUAL_parser_prod__AIfExpr__init_aifexpr(val* self, val* p0, val* p1, val* p2, val* p3) {
4455 parser_prod__AIfExpr__init_aifexpr(self, p0, p1, p2, p3); /* Direct call parser_prod#AIfExpr#init_aifexpr on <self:Object(AIfExpr)>*/
4456 RET_LABEL:;
4457 }
4458 /* method parser_prod#AIfExpr#replace_child for (self: AIfExpr, ANode, nullable ANode) */
4459 void parser_prod__AIfExpr__replace_child(val* self, val* p0, val* p1) {
4460 val* var_old_child /* var old_child: ANode */;
4461 val* var_new_child /* var new_child: nullable ANode */;
4462 val* var /* : TKwif */;
4463 short int var1 /* : Bool */;
4464 short int var2 /* : Bool */;
4465 val* var_other /* var other: nullable Object */;
4466 short int var4 /* : Bool */;
4467 short int var6 /* : Bool */;
4468 short int var7 /* : Bool */;
4469 int cltype;
4470 int idtype;
4471 const char* var_class_name;
4472 val* var8 /* : AExpr */;
4473 short int var9 /* : Bool */;
4474 short int var10 /* : Bool */;
4475 short int var12 /* : Bool */;
4476 short int var14 /* : Bool */;
4477 short int var15 /* : Bool */;
4478 int cltype16;
4479 int idtype17;
4480 const char* var_class_name18;
4481 val* var19 /* : nullable AExpr */;
4482 short int var20 /* : Bool */;
4483 short int var21 /* : Bool */;
4484 short int var23 /* : Bool */;
4485 short int var25 /* : Bool */;
4486 short int var26 /* : Bool */;
4487 int cltype27;
4488 int idtype28;
4489 const char* var_class_name29;
4490 val* var30 /* : nullable AExpr */;
4491 short int var31 /* : Bool */;
4492 short int var32 /* : Bool */;
4493 short int var34 /* : Bool */;
4494 short int var36 /* : Bool */;
4495 short int var37 /* : Bool */;
4496 int cltype38;
4497 int idtype39;
4498 const char* var_class_name40;
4499 var_old_child = p0;
4500 var_new_child = p1;
4501 var = self->attrs[COLOR_parser_nodes__AIfExpr___n_kwif].val; /* _n_kwif on <self:AIfExpr> */
4502 if (unlikely(var == NULL)) {
4503 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwif");
4504 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3308);
4505 show_backtrace(1);
4506 }
4507 {
4508 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwif> */
4509 var_other = var_old_child;
4510 {
4511 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TKwif> */
4512 var6 = var == var_other;
4513 var4 = var6;
4514 goto RET_LABEL5;
4515 RET_LABEL5:(void)0;
4516 }
4517 }
4518 var2 = var4;
4519 goto RET_LABEL3;
4520 RET_LABEL3:(void)0;
4521 }
4522 var1 = var2;
4523 }
4524 if (var1){
4525 /* <var_new_child:nullable ANode> isa TKwif */
4526 cltype = type_parser_nodes__TKwif.color;
4527 idtype = type_parser_nodes__TKwif.id;
4528 if(var_new_child == NULL) {
4529 var7 = 0;
4530 } else {
4531 if(cltype >= var_new_child->type->table_size) {
4532 var7 = 0;
4533 } else {
4534 var7 = var_new_child->type->type_table[cltype] == idtype;
4535 }
4536 }
4537 if (unlikely(!var7)) {
4538 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
4539 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwif", var_class_name);
4540 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3309);
4541 show_backtrace(1);
4542 }
4543 {
4544 parser_prod__AIfExpr__n_kwif_61d(self, var_new_child); /* Direct call parser_prod#AIfExpr#n_kwif= on <self:AIfExpr>*/
4545 }
4546 goto RET_LABEL;
4547 } else {
4548 }
4549 var8 = self->attrs[COLOR_parser_nodes__AIfExpr___n_expr].val; /* _n_expr on <self:AIfExpr> */
4550 if (unlikely(var8 == NULL)) {
4551 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
4552 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3312);
4553 show_backtrace(1);
4554 }
4555 {
4556 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExpr> */
4557 var_other = var_old_child;
4558 {
4559 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExpr> */
4560 var14 = var8 == var_other;
4561 var12 = var14;
4562 goto RET_LABEL13;
4563 RET_LABEL13:(void)0;
4564 }
4565 }
4566 var10 = var12;
4567 goto RET_LABEL11;
4568 RET_LABEL11:(void)0;
4569 }
4570 var9 = var10;
4571 }
4572 if (var9){
4573 /* <var_new_child:nullable ANode> isa AExpr */
4574 cltype16 = type_parser_nodes__AExpr.color;
4575 idtype17 = type_parser_nodes__AExpr.id;
4576 if(var_new_child == NULL) {
4577 var15 = 0;
4578 } else {
4579 if(cltype16 >= var_new_child->type->table_size) {
4580 var15 = 0;
4581 } else {
4582 var15 = var_new_child->type->type_table[cltype16] == idtype17;
4583 }
4584 }
4585 if (unlikely(!var15)) {
4586 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
4587 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name18);
4588 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3313);
4589 show_backtrace(1);
4590 }
4591 {
4592 parser_prod__AIfExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AIfExpr#n_expr= on <self:AIfExpr>*/
4593 }
4594 goto RET_LABEL;
4595 } else {
4596 }
4597 var19 = self->attrs[COLOR_parser_nodes__AIfExpr___n_then].val; /* _n_then on <self:AIfExpr> */
4598 if (var19 == NULL) {
4599 var20 = 0; /* <var_old_child:ANode> cannot be null */
4600 } else {
4601 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:nullable AExpr> */
4602 var_other = var_old_child;
4603 {
4604 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:nullable AExpr(AExpr)> */
4605 var25 = var19 == var_other;
4606 var23 = var25;
4607 goto RET_LABEL24;
4608 RET_LABEL24:(void)0;
4609 }
4610 }
4611 var21 = var23;
4612 goto RET_LABEL22;
4613 RET_LABEL22:(void)0;
4614 }
4615 var20 = var21;
4616 }
4617 if (var20){
4618 /* <var_new_child:nullable ANode> isa nullable AExpr */
4619 cltype27 = type_nullable_parser_nodes__AExpr.color;
4620 idtype28 = type_nullable_parser_nodes__AExpr.id;
4621 if(var_new_child == NULL) {
4622 var26 = 1;
4623 } else {
4624 if(cltype27 >= var_new_child->type->table_size) {
4625 var26 = 0;
4626 } else {
4627 var26 = var_new_child->type->type_table[cltype27] == idtype28;
4628 }
4629 }
4630 if (unlikely(!var26)) {
4631 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
4632 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AExpr", var_class_name29);
4633 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3317);
4634 show_backtrace(1);
4635 }
4636 {
4637 parser_prod__AIfExpr__n_then_61d(self, var_new_child); /* Direct call parser_prod#AIfExpr#n_then= on <self:AIfExpr>*/
4638 }
4639 goto RET_LABEL;
4640 } else {
4641 }
4642 var30 = self->attrs[COLOR_parser_nodes__AIfExpr___n_else].val; /* _n_else on <self:AIfExpr> */
4643 if (var30 == NULL) {
4644 var31 = 0; /* <var_old_child:ANode> cannot be null */
4645 } else {
4646 { /* Inline kernel#Object#== (var30,var_old_child) on <var30:nullable AExpr> */
4647 var_other = var_old_child;
4648 {
4649 { /* Inline kernel#Object#is_same_instance (var30,var_other) on <var30:nullable AExpr(AExpr)> */
4650 var36 = var30 == var_other;
4651 var34 = var36;
4652 goto RET_LABEL35;
4653 RET_LABEL35:(void)0;
4654 }
4655 }
4656 var32 = var34;
4657 goto RET_LABEL33;
4658 RET_LABEL33:(void)0;
4659 }
4660 var31 = var32;
4661 }
4662 if (var31){
4663 /* <var_new_child:nullable ANode> isa nullable AExpr */
4664 cltype38 = type_nullable_parser_nodes__AExpr.color;
4665 idtype39 = type_nullable_parser_nodes__AExpr.id;
4666 if(var_new_child == NULL) {
4667 var37 = 1;
4668 } else {
4669 if(cltype38 >= var_new_child->type->table_size) {
4670 var37 = 0;
4671 } else {
4672 var37 = var_new_child->type->type_table[cltype38] == idtype39;
4673 }
4674 }
4675 if (unlikely(!var37)) {
4676 var_class_name40 = var_new_child == NULL ? "null" : var_new_child->type->name;
4677 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AExpr", var_class_name40);
4678 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3321);
4679 show_backtrace(1);
4680 }
4681 {
4682 parser_prod__AIfExpr__n_else_61d(self, var_new_child); /* Direct call parser_prod#AIfExpr#n_else= on <self:AIfExpr>*/
4683 }
4684 goto RET_LABEL;
4685 } else {
4686 }
4687 RET_LABEL:;
4688 }
4689 /* method parser_prod#AIfExpr#replace_child for (self: Object, ANode, nullable ANode) */
4690 void VIRTUAL_parser_prod__AIfExpr__replace_child(val* self, val* p0, val* p1) {
4691 parser_prod__AIfExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AIfExpr#replace_child on <self:Object(AIfExpr)>*/
4692 RET_LABEL:;
4693 }
4694 /* method parser_prod#AIfExpr#n_kwif= for (self: AIfExpr, TKwif) */
4695 void parser_prod__AIfExpr__n_kwif_61d(val* self, val* p0) {
4696 val* var_node /* var node: TKwif */;
4697 var_node = p0;
4698 self->attrs[COLOR_parser_nodes__AIfExpr___n_kwif].val = var_node; /* _n_kwif on <self:AIfExpr> */
4699 {
4700 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwif> */
4701 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwif> */
4702 RET_LABEL1:(void)0;
4703 }
4704 }
4705 RET_LABEL:;
4706 }
4707 /* method parser_prod#AIfExpr#n_kwif= for (self: Object, TKwif) */
4708 void VIRTUAL_parser_prod__AIfExpr__n_kwif_61d(val* self, val* p0) {
4709 parser_prod__AIfExpr__n_kwif_61d(self, p0); /* Direct call parser_prod#AIfExpr#n_kwif= on <self:Object(AIfExpr)>*/
4710 RET_LABEL:;
4711 }
4712 /* method parser_prod#AIfExpr#n_expr= for (self: AIfExpr, AExpr) */
4713 void parser_prod__AIfExpr__n_expr_61d(val* self, val* p0) {
4714 val* var_node /* var node: AExpr */;
4715 var_node = p0;
4716 self->attrs[COLOR_parser_nodes__AIfExpr___n_expr].val = var_node; /* _n_expr on <self:AIfExpr> */
4717 {
4718 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
4719 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
4720 RET_LABEL1:(void)0;
4721 }
4722 }
4723 RET_LABEL:;
4724 }
4725 /* method parser_prod#AIfExpr#n_expr= for (self: Object, AExpr) */
4726 void VIRTUAL_parser_prod__AIfExpr__n_expr_61d(val* self, val* p0) {
4727 parser_prod__AIfExpr__n_expr_61d(self, p0); /* Direct call parser_prod#AIfExpr#n_expr= on <self:Object(AIfExpr)>*/
4728 RET_LABEL:;
4729 }
4730 /* method parser_prod#AIfExpr#n_then= for (self: AIfExpr, nullable AExpr) */
4731 void parser_prod__AIfExpr__n_then_61d(val* self, val* p0) {
4732 val* var_node /* var node: nullable AExpr */;
4733 val* var /* : null */;
4734 short int var1 /* : Bool */;
4735 short int var2 /* : Bool */;
4736 val* var_other /* var other: nullable Object */;
4737 short int var4 /* : Bool */;
4738 short int var5 /* : Bool */;
4739 short int var6 /* : Bool */;
4740 var_node = p0;
4741 self->attrs[COLOR_parser_nodes__AIfExpr___n_then].val = var_node; /* _n_then on <self:AIfExpr> */
4742 var = NULL;
4743 if (var_node == NULL) {
4744 var1 = 0; /* is null */
4745 } else {
4746 var1 = 1; /* arg is null and recv is not */
4747 }
4748 if (0) {
4749 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AExpr> */
4750 var_other = var;
4751 {
4752 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AExpr(AExpr)>*/;
4753 var4 = var5;
4754 }
4755 var6 = !var4;
4756 var2 = var6;
4757 goto RET_LABEL3;
4758 RET_LABEL3:(void)0;
4759 }
4760 var1 = var2;
4761 }
4762 if (var1){
4763 {
4764 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AExpr(AExpr)> */
4765 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AExpr(AExpr)> */
4766 RET_LABEL7:(void)0;
4767 }
4768 }
4769 } else {
4770 }
4771 RET_LABEL:;
4772 }
4773 /* method parser_prod#AIfExpr#n_then= for (self: Object, nullable AExpr) */
4774 void VIRTUAL_parser_prod__AIfExpr__n_then_61d(val* self, val* p0) {
4775 parser_prod__AIfExpr__n_then_61d(self, p0); /* Direct call parser_prod#AIfExpr#n_then= on <self:Object(AIfExpr)>*/
4776 RET_LABEL:;
4777 }
4778 /* method parser_prod#AIfExpr#n_else= for (self: AIfExpr, nullable AExpr) */
4779 void parser_prod__AIfExpr__n_else_61d(val* self, val* p0) {
4780 val* var_node /* var node: nullable AExpr */;
4781 val* var /* : null */;
4782 short int var1 /* : Bool */;
4783 short int var2 /* : Bool */;
4784 val* var_other /* var other: nullable Object */;
4785 short int var4 /* : Bool */;
4786 short int var5 /* : Bool */;
4787 short int var6 /* : Bool */;
4788 var_node = p0;
4789 self->attrs[COLOR_parser_nodes__AIfExpr___n_else].val = var_node; /* _n_else on <self:AIfExpr> */
4790 var = NULL;
4791 if (var_node == NULL) {
4792 var1 = 0; /* is null */
4793 } else {
4794 var1 = 1; /* arg is null and recv is not */
4795 }
4796 if (0) {
4797 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AExpr> */
4798 var_other = var;
4799 {
4800 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AExpr(AExpr)>*/;
4801 var4 = var5;
4802 }
4803 var6 = !var4;
4804 var2 = var6;
4805 goto RET_LABEL3;
4806 RET_LABEL3:(void)0;
4807 }
4808 var1 = var2;
4809 }
4810 if (var1){
4811 {
4812 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AExpr(AExpr)> */
4813 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AExpr(AExpr)> */
4814 RET_LABEL7:(void)0;
4815 }
4816 }
4817 } else {
4818 }
4819 RET_LABEL:;
4820 }
4821 /* method parser_prod#AIfExpr#n_else= for (self: Object, nullable AExpr) */
4822 void VIRTUAL_parser_prod__AIfExpr__n_else_61d(val* self, val* p0) {
4823 parser_prod__AIfExpr__n_else_61d(self, p0); /* Direct call parser_prod#AIfExpr#n_else= on <self:Object(AIfExpr)>*/
4824 RET_LABEL:;
4825 }
4826 /* method parser_prod#AIfExpr#visit_all for (self: AIfExpr, Visitor) */
4827 void parser_prod__AIfExpr__visit_all(val* self, val* p0) {
4828 val* var_v /* var v: Visitor */;
4829 val* var /* : TKwif */;
4830 val* var1 /* : AExpr */;
4831 val* var2 /* : nullable AExpr */;
4832 val* var3 /* : nullable AExpr */;
4833 var_v = p0;
4834 var = self->attrs[COLOR_parser_nodes__AIfExpr___n_kwif].val; /* _n_kwif on <self:AIfExpr> */
4835 if (unlikely(var == NULL)) {
4836 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwif");
4837 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3350);
4838 show_backtrace(1);
4839 }
4840 {
4841 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4842 }
4843 var1 = self->attrs[COLOR_parser_nodes__AIfExpr___n_expr].val; /* _n_expr on <self:AIfExpr> */
4844 if (unlikely(var1 == NULL)) {
4845 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
4846 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3351);
4847 show_backtrace(1);
4848 }
4849 {
4850 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4851 }
4852 var2 = self->attrs[COLOR_parser_nodes__AIfExpr___n_then].val; /* _n_then on <self:AIfExpr> */
4853 {
4854 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4855 }
4856 var3 = self->attrs[COLOR_parser_nodes__AIfExpr___n_else].val; /* _n_else on <self:AIfExpr> */
4857 {
4858 parser_nodes__Visitor__enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4859 }
4860 RET_LABEL:;
4861 }
4862 /* method parser_prod#AIfExpr#visit_all for (self: Object, Visitor) */
4863 void VIRTUAL_parser_prod__AIfExpr__visit_all(val* self, val* p0) {
4864 parser_prod__AIfExpr__visit_all(self, p0); /* Direct call parser_prod#AIfExpr#visit_all on <self:Object(AIfExpr)>*/
4865 RET_LABEL:;
4866 }
4867 /* method parser_prod#AIfexprExpr#init_aifexprexpr for (self: AIfexprExpr, nullable TKwif, nullable AExpr, nullable TKwthen, nullable AExpr, nullable TKwelse, nullable AExpr) */
4868 void parser_prod__AIfexprExpr__init_aifexprexpr(val* self, val* p0, val* p1, val* p2, val* p3, val* p4, val* p5) {
4869 val* var_n_kwif /* var n_kwif: nullable TKwif */;
4870 val* var_n_expr /* var n_expr: nullable AExpr */;
4871 val* var_n_kwthen /* var n_kwthen: nullable TKwthen */;
4872 val* var_n_then /* var n_then: nullable AExpr */;
4873 val* var_n_kwelse /* var n_kwelse: nullable TKwelse */;
4874 val* var_n_else /* var n_else: nullable AExpr */;
4875 var_n_kwif = p0;
4876 var_n_expr = p1;
4877 var_n_kwthen = p2;
4878 var_n_then = p3;
4879 var_n_kwelse = p4;
4880 var_n_else = p5;
4881 if (unlikely(var_n_kwif == NULL)) {
4882 PRINT_ERROR("Runtime error: %s", "Cast failed");
4883 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3366);
4884 show_backtrace(1);
4885 }
4886 self->attrs[COLOR_parser_nodes__AIfexprExpr___n_kwif].val = var_n_kwif; /* _n_kwif on <self:AIfexprExpr> */
4887 if (var_n_kwif == NULL) {
4888 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4889 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3367);
4890 show_backtrace(1);
4891 } else {
4892 { /* Inline parser_nodes#ANode#parent= (var_n_kwif,self) on <var_n_kwif:nullable TKwif> */
4893 if (unlikely(var_n_kwif == NULL)) {
4894 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4895 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
4896 show_backtrace(1);
4897 }
4898 var_n_kwif->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwif:nullable TKwif> */
4899 RET_LABEL1:(void)0;
4900 }
4901 }
4902 if (unlikely(var_n_expr == NULL)) {
4903 PRINT_ERROR("Runtime error: %s", "Cast failed");
4904 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3368);
4905 show_backtrace(1);
4906 }
4907 self->attrs[COLOR_parser_nodes__AIfexprExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AIfexprExpr> */
4908 if (var_n_expr == NULL) {
4909 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4910 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3369);
4911 show_backtrace(1);
4912 } else {
4913 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
4914 if (unlikely(var_n_expr == NULL)) {
4915 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4916 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
4917 show_backtrace(1);
4918 }
4919 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
4920 RET_LABEL2:(void)0;
4921 }
4922 }
4923 if (unlikely(var_n_kwthen == NULL)) {
4924 PRINT_ERROR("Runtime error: %s", "Cast failed");
4925 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3370);
4926 show_backtrace(1);
4927 }
4928 self->attrs[COLOR_parser_nodes__AIfexprExpr___n_kwthen].val = var_n_kwthen; /* _n_kwthen on <self:AIfexprExpr> */
4929 if (var_n_kwthen == NULL) {
4930 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4931 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3371);
4932 show_backtrace(1);
4933 } else {
4934 { /* Inline parser_nodes#ANode#parent= (var_n_kwthen,self) on <var_n_kwthen:nullable TKwthen> */
4935 if (unlikely(var_n_kwthen == NULL)) {
4936 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4937 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
4938 show_backtrace(1);
4939 }
4940 var_n_kwthen->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwthen:nullable TKwthen> */
4941 RET_LABEL3:(void)0;
4942 }
4943 }
4944 if (unlikely(var_n_then == NULL)) {
4945 PRINT_ERROR("Runtime error: %s", "Cast failed");
4946 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3372);
4947 show_backtrace(1);
4948 }
4949 self->attrs[COLOR_parser_nodes__AIfexprExpr___n_then].val = var_n_then; /* _n_then on <self:AIfexprExpr> */
4950 if (var_n_then == NULL) {
4951 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4952 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3373);
4953 show_backtrace(1);
4954 } else {
4955 { /* Inline parser_nodes#ANode#parent= (var_n_then,self) on <var_n_then:nullable AExpr> */
4956 if (unlikely(var_n_then == NULL)) {
4957 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4958 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
4959 show_backtrace(1);
4960 }
4961 var_n_then->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_then:nullable AExpr> */
4962 RET_LABEL4:(void)0;
4963 }
4964 }
4965 if (unlikely(var_n_kwelse == NULL)) {
4966 PRINT_ERROR("Runtime error: %s", "Cast failed");
4967 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3374);
4968 show_backtrace(1);
4969 }
4970 self->attrs[COLOR_parser_nodes__AIfexprExpr___n_kwelse].val = var_n_kwelse; /* _n_kwelse on <self:AIfexprExpr> */
4971 if (var_n_kwelse == NULL) {
4972 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4973 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3375);
4974 show_backtrace(1);
4975 } else {
4976 { /* Inline parser_nodes#ANode#parent= (var_n_kwelse,self) on <var_n_kwelse:nullable TKwelse> */
4977 if (unlikely(var_n_kwelse == NULL)) {
4978 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4979 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
4980 show_backtrace(1);
4981 }
4982 var_n_kwelse->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwelse:nullable TKwelse> */
4983 RET_LABEL5:(void)0;
4984 }
4985 }
4986 if (unlikely(var_n_else == NULL)) {
4987 PRINT_ERROR("Runtime error: %s", "Cast failed");
4988 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3376);
4989 show_backtrace(1);
4990 }
4991 self->attrs[COLOR_parser_nodes__AIfexprExpr___n_else].val = var_n_else; /* _n_else on <self:AIfexprExpr> */
4992 if (var_n_else == NULL) {
4993 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4994 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3377);
4995 show_backtrace(1);
4996 } else {
4997 { /* Inline parser_nodes#ANode#parent= (var_n_else,self) on <var_n_else:nullable AExpr> */
4998 if (unlikely(var_n_else == NULL)) {
4999 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5000 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
5001 show_backtrace(1);
5002 }
5003 var_n_else->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_else:nullable AExpr> */
5004 RET_LABEL6:(void)0;
5005 }
5006 }
5007 RET_LABEL:;
5008 }
5009 /* method parser_prod#AIfexprExpr#init_aifexprexpr for (self: Object, nullable TKwif, nullable AExpr, nullable TKwthen, nullable AExpr, nullable TKwelse, nullable AExpr) */
5010 void VIRTUAL_parser_prod__AIfexprExpr__init_aifexprexpr(val* self, val* p0, val* p1, val* p2, val* p3, val* p4, val* p5) {
5011 parser_prod__AIfexprExpr__init_aifexprexpr(self, p0, p1, p2, p3, p4, p5); /* Direct call parser_prod#AIfexprExpr#init_aifexprexpr on <self:Object(AIfexprExpr)>*/
5012 RET_LABEL:;
5013 }
5014 /* method parser_prod#AIfexprExpr#replace_child for (self: AIfexprExpr, ANode, nullable ANode) */
5015 void parser_prod__AIfexprExpr__replace_child(val* self, val* p0, val* p1) {
5016 val* var_old_child /* var old_child: ANode */;
5017 val* var_new_child /* var new_child: nullable ANode */;
5018 val* var /* : TKwif */;
5019 short int var1 /* : Bool */;
5020 short int var2 /* : Bool */;
5021 val* var_other /* var other: nullable Object */;
5022 short int var4 /* : Bool */;
5023 short int var6 /* : Bool */;
5024 short int var7 /* : Bool */;
5025 int cltype;
5026 int idtype;
5027 const char* var_class_name;
5028 val* var8 /* : AExpr */;
5029 short int var9 /* : Bool */;
5030 short int var10 /* : Bool */;
5031 short int var12 /* : Bool */;
5032 short int var14 /* : Bool */;
5033 short int var15 /* : Bool */;
5034 int cltype16;
5035 int idtype17;
5036 const char* var_class_name18;
5037 val* var19 /* : TKwthen */;
5038 short int var20 /* : Bool */;
5039 short int var21 /* : Bool */;
5040 short int var23 /* : Bool */;
5041 short int var25 /* : Bool */;
5042 short int var26 /* : Bool */;
5043 int cltype27;
5044 int idtype28;
5045 const char* var_class_name29;
5046 val* var30 /* : AExpr */;
5047 short int var31 /* : Bool */;
5048 short int var32 /* : Bool */;
5049 short int var34 /* : Bool */;
5050 short int var36 /* : Bool */;
5051 short int var37 /* : Bool */;
5052 int cltype38;
5053 int idtype39;
5054 const char* var_class_name40;
5055 val* var41 /* : TKwelse */;
5056 short int var42 /* : Bool */;
5057 short int var43 /* : Bool */;
5058 short int var45 /* : Bool */;
5059 short int var47 /* : Bool */;
5060 short int var48 /* : Bool */;
5061 int cltype49;
5062 int idtype50;
5063 const char* var_class_name51;
5064 val* var52 /* : AExpr */;
5065 short int var53 /* : Bool */;
5066 short int var54 /* : Bool */;
5067 short int var56 /* : Bool */;
5068 short int var58 /* : Bool */;
5069 short int var59 /* : Bool */;
5070 int cltype60;
5071 int idtype61;
5072 const char* var_class_name62;
5073 var_old_child = p0;
5074 var_new_child = p1;
5075 var = self->attrs[COLOR_parser_nodes__AIfexprExpr___n_kwif].val; /* _n_kwif on <self:AIfexprExpr> */
5076 if (unlikely(var == NULL)) {
5077 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwif");
5078 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3382);
5079 show_backtrace(1);
5080 }
5081 {
5082 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwif> */
5083 var_other = var_old_child;
5084 {
5085 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TKwif> */
5086 var6 = var == var_other;
5087 var4 = var6;
5088 goto RET_LABEL5;
5089 RET_LABEL5:(void)0;
5090 }
5091 }
5092 var2 = var4;
5093 goto RET_LABEL3;
5094 RET_LABEL3:(void)0;
5095 }
5096 var1 = var2;
5097 }
5098 if (var1){
5099 /* <var_new_child:nullable ANode> isa TKwif */
5100 cltype = type_parser_nodes__TKwif.color;
5101 idtype = type_parser_nodes__TKwif.id;
5102 if(var_new_child == NULL) {
5103 var7 = 0;
5104 } else {
5105 if(cltype >= var_new_child->type->table_size) {
5106 var7 = 0;
5107 } else {
5108 var7 = var_new_child->type->type_table[cltype] == idtype;
5109 }
5110 }
5111 if (unlikely(!var7)) {
5112 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
5113 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwif", var_class_name);
5114 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3383);
5115 show_backtrace(1);
5116 }
5117 {
5118 parser_prod__AIfexprExpr__n_kwif_61d(self, var_new_child); /* Direct call parser_prod#AIfexprExpr#n_kwif= on <self:AIfexprExpr>*/
5119 }
5120 goto RET_LABEL;
5121 } else {
5122 }
5123 var8 = self->attrs[COLOR_parser_nodes__AIfexprExpr___n_expr].val; /* _n_expr on <self:AIfexprExpr> */
5124 if (unlikely(var8 == NULL)) {
5125 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
5126 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3386);
5127 show_backtrace(1);
5128 }
5129 {
5130 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExpr> */
5131 var_other = var_old_child;
5132 {
5133 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExpr> */
5134 var14 = var8 == var_other;
5135 var12 = var14;
5136 goto RET_LABEL13;
5137 RET_LABEL13:(void)0;
5138 }
5139 }
5140 var10 = var12;
5141 goto RET_LABEL11;
5142 RET_LABEL11:(void)0;
5143 }
5144 var9 = var10;
5145 }
5146 if (var9){
5147 /* <var_new_child:nullable ANode> isa AExpr */
5148 cltype16 = type_parser_nodes__AExpr.color;
5149 idtype17 = type_parser_nodes__AExpr.id;
5150 if(var_new_child == NULL) {
5151 var15 = 0;
5152 } else {
5153 if(cltype16 >= var_new_child->type->table_size) {
5154 var15 = 0;
5155 } else {
5156 var15 = var_new_child->type->type_table[cltype16] == idtype17;
5157 }
5158 }
5159 if (unlikely(!var15)) {
5160 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
5161 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name18);
5162 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3387);
5163 show_backtrace(1);
5164 }
5165 {
5166 parser_prod__AIfexprExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AIfexprExpr#n_expr= on <self:AIfexprExpr>*/
5167 }
5168 goto RET_LABEL;
5169 } else {
5170 }
5171 var19 = self->attrs[COLOR_parser_nodes__AIfexprExpr___n_kwthen].val; /* _n_kwthen on <self:AIfexprExpr> */
5172 if (unlikely(var19 == NULL)) {
5173 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwthen");
5174 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3390);
5175 show_backtrace(1);
5176 }
5177 {
5178 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:TKwthen> */
5179 var_other = var_old_child;
5180 {
5181 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:TKwthen> */
5182 var25 = var19 == var_other;
5183 var23 = var25;
5184 goto RET_LABEL24;
5185 RET_LABEL24:(void)0;
5186 }
5187 }
5188 var21 = var23;
5189 goto RET_LABEL22;
5190 RET_LABEL22:(void)0;
5191 }
5192 var20 = var21;
5193 }
5194 if (var20){
5195 /* <var_new_child:nullable ANode> isa TKwthen */
5196 cltype27 = type_parser_nodes__TKwthen.color;
5197 idtype28 = type_parser_nodes__TKwthen.id;
5198 if(var_new_child == NULL) {
5199 var26 = 0;
5200 } else {
5201 if(cltype27 >= var_new_child->type->table_size) {
5202 var26 = 0;
5203 } else {
5204 var26 = var_new_child->type->type_table[cltype27] == idtype28;
5205 }
5206 }
5207 if (unlikely(!var26)) {
5208 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
5209 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwthen", var_class_name29);
5210 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3391);
5211 show_backtrace(1);
5212 }
5213 {
5214 parser_prod__AIfexprExpr__n_kwthen_61d(self, var_new_child); /* Direct call parser_prod#AIfexprExpr#n_kwthen= on <self:AIfexprExpr>*/
5215 }
5216 goto RET_LABEL;
5217 } else {
5218 }
5219 var30 = self->attrs[COLOR_parser_nodes__AIfexprExpr___n_then].val; /* _n_then on <self:AIfexprExpr> */
5220 if (unlikely(var30 == NULL)) {
5221 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_then");
5222 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3394);
5223 show_backtrace(1);
5224 }
5225 {
5226 { /* Inline kernel#Object#== (var30,var_old_child) on <var30:AExpr> */
5227 var_other = var_old_child;
5228 {
5229 { /* Inline kernel#Object#is_same_instance (var30,var_other) on <var30:AExpr> */
5230 var36 = var30 == var_other;
5231 var34 = var36;
5232 goto RET_LABEL35;
5233 RET_LABEL35:(void)0;
5234 }
5235 }
5236 var32 = var34;
5237 goto RET_LABEL33;
5238 RET_LABEL33:(void)0;
5239 }
5240 var31 = var32;
5241 }
5242 if (var31){
5243 /* <var_new_child:nullable ANode> isa AExpr */
5244 cltype38 = type_parser_nodes__AExpr.color;
5245 idtype39 = type_parser_nodes__AExpr.id;
5246 if(var_new_child == NULL) {
5247 var37 = 0;
5248 } else {
5249 if(cltype38 >= var_new_child->type->table_size) {
5250 var37 = 0;
5251 } else {
5252 var37 = var_new_child->type->type_table[cltype38] == idtype39;
5253 }
5254 }
5255 if (unlikely(!var37)) {
5256 var_class_name40 = var_new_child == NULL ? "null" : var_new_child->type->name;
5257 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name40);
5258 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3395);
5259 show_backtrace(1);
5260 }
5261 {
5262 parser_prod__AIfexprExpr__n_then_61d(self, var_new_child); /* Direct call parser_prod#AIfexprExpr#n_then= on <self:AIfexprExpr>*/
5263 }
5264 goto RET_LABEL;
5265 } else {
5266 }
5267 var41 = self->attrs[COLOR_parser_nodes__AIfexprExpr___n_kwelse].val; /* _n_kwelse on <self:AIfexprExpr> */
5268 if (unlikely(var41 == NULL)) {
5269 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwelse");
5270 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3398);
5271 show_backtrace(1);
5272 }
5273 {
5274 { /* Inline kernel#Object#== (var41,var_old_child) on <var41:TKwelse> */
5275 var_other = var_old_child;
5276 {
5277 { /* Inline kernel#Object#is_same_instance (var41,var_other) on <var41:TKwelse> */
5278 var47 = var41 == var_other;
5279 var45 = var47;
5280 goto RET_LABEL46;
5281 RET_LABEL46:(void)0;
5282 }
5283 }
5284 var43 = var45;
5285 goto RET_LABEL44;
5286 RET_LABEL44:(void)0;
5287 }
5288 var42 = var43;
5289 }
5290 if (var42){
5291 /* <var_new_child:nullable ANode> isa TKwelse */
5292 cltype49 = type_parser_nodes__TKwelse.color;
5293 idtype50 = type_parser_nodes__TKwelse.id;
5294 if(var_new_child == NULL) {
5295 var48 = 0;
5296 } else {
5297 if(cltype49 >= var_new_child->type->table_size) {
5298 var48 = 0;
5299 } else {
5300 var48 = var_new_child->type->type_table[cltype49] == idtype50;
5301 }
5302 }
5303 if (unlikely(!var48)) {
5304 var_class_name51 = var_new_child == NULL ? "null" : var_new_child->type->name;
5305 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwelse", var_class_name51);
5306 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3399);
5307 show_backtrace(1);
5308 }
5309 {
5310 parser_prod__AIfexprExpr__n_kwelse_61d(self, var_new_child); /* Direct call parser_prod#AIfexprExpr#n_kwelse= on <self:AIfexprExpr>*/
5311 }
5312 goto RET_LABEL;
5313 } else {
5314 }
5315 var52 = self->attrs[COLOR_parser_nodes__AIfexprExpr___n_else].val; /* _n_else on <self:AIfexprExpr> */
5316 if (unlikely(var52 == NULL)) {
5317 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_else");
5318 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3402);
5319 show_backtrace(1);
5320 }
5321 {
5322 { /* Inline kernel#Object#== (var52,var_old_child) on <var52:AExpr> */
5323 var_other = var_old_child;
5324 {
5325 { /* Inline kernel#Object#is_same_instance (var52,var_other) on <var52:AExpr> */
5326 var58 = var52 == var_other;
5327 var56 = var58;
5328 goto RET_LABEL57;
5329 RET_LABEL57:(void)0;
5330 }
5331 }
5332 var54 = var56;
5333 goto RET_LABEL55;
5334 RET_LABEL55:(void)0;
5335 }
5336 var53 = var54;
5337 }
5338 if (var53){
5339 /* <var_new_child:nullable ANode> isa AExpr */
5340 cltype60 = type_parser_nodes__AExpr.color;
5341 idtype61 = type_parser_nodes__AExpr.id;
5342 if(var_new_child == NULL) {
5343 var59 = 0;
5344 } else {
5345 if(cltype60 >= var_new_child->type->table_size) {
5346 var59 = 0;
5347 } else {
5348 var59 = var_new_child->type->type_table[cltype60] == idtype61;
5349 }
5350 }
5351 if (unlikely(!var59)) {
5352 var_class_name62 = var_new_child == NULL ? "null" : var_new_child->type->name;
5353 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name62);
5354 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3403);
5355 show_backtrace(1);
5356 }
5357 {
5358 parser_prod__AIfexprExpr__n_else_61d(self, var_new_child); /* Direct call parser_prod#AIfexprExpr#n_else= on <self:AIfexprExpr>*/
5359 }
5360 goto RET_LABEL;
5361 } else {
5362 }
5363 RET_LABEL:;
5364 }
5365 /* method parser_prod#AIfexprExpr#replace_child for (self: Object, ANode, nullable ANode) */
5366 void VIRTUAL_parser_prod__AIfexprExpr__replace_child(val* self, val* p0, val* p1) {
5367 parser_prod__AIfexprExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AIfexprExpr#replace_child on <self:Object(AIfexprExpr)>*/
5368 RET_LABEL:;
5369 }
5370 /* method parser_prod#AIfexprExpr#n_kwif= for (self: AIfexprExpr, TKwif) */
5371 void parser_prod__AIfexprExpr__n_kwif_61d(val* self, val* p0) {
5372 val* var_node /* var node: TKwif */;
5373 var_node = p0;
5374 self->attrs[COLOR_parser_nodes__AIfexprExpr___n_kwif].val = var_node; /* _n_kwif on <self:AIfexprExpr> */
5375 {
5376 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwif> */
5377 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwif> */
5378 RET_LABEL1:(void)0;
5379 }
5380 }
5381 RET_LABEL:;
5382 }
5383 /* method parser_prod#AIfexprExpr#n_kwif= for (self: Object, TKwif) */
5384 void VIRTUAL_parser_prod__AIfexprExpr__n_kwif_61d(val* self, val* p0) {
5385 parser_prod__AIfexprExpr__n_kwif_61d(self, p0); /* Direct call parser_prod#AIfexprExpr#n_kwif= on <self:Object(AIfexprExpr)>*/
5386 RET_LABEL:;
5387 }
5388 /* method parser_prod#AIfexprExpr#n_expr= for (self: AIfexprExpr, AExpr) */
5389 void parser_prod__AIfexprExpr__n_expr_61d(val* self, val* p0) {
5390 val* var_node /* var node: AExpr */;
5391 var_node = p0;
5392 self->attrs[COLOR_parser_nodes__AIfexprExpr___n_expr].val = var_node; /* _n_expr on <self:AIfexprExpr> */
5393 {
5394 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
5395 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
5396 RET_LABEL1:(void)0;
5397 }
5398 }
5399 RET_LABEL:;
5400 }
5401 /* method parser_prod#AIfexprExpr#n_expr= for (self: Object, AExpr) */
5402 void VIRTUAL_parser_prod__AIfexprExpr__n_expr_61d(val* self, val* p0) {
5403 parser_prod__AIfexprExpr__n_expr_61d(self, p0); /* Direct call parser_prod#AIfexprExpr#n_expr= on <self:Object(AIfexprExpr)>*/
5404 RET_LABEL:;
5405 }
5406 /* method parser_prod#AIfexprExpr#n_kwthen= for (self: AIfexprExpr, TKwthen) */
5407 void parser_prod__AIfexprExpr__n_kwthen_61d(val* self, val* p0) {
5408 val* var_node /* var node: TKwthen */;
5409 var_node = p0;
5410 self->attrs[COLOR_parser_nodes__AIfexprExpr___n_kwthen].val = var_node; /* _n_kwthen on <self:AIfexprExpr> */
5411 {
5412 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwthen> */
5413 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwthen> */
5414 RET_LABEL1:(void)0;
5415 }
5416 }
5417 RET_LABEL:;
5418 }
5419 /* method parser_prod#AIfexprExpr#n_kwthen= for (self: Object, TKwthen) */
5420 void VIRTUAL_parser_prod__AIfexprExpr__n_kwthen_61d(val* self, val* p0) {
5421 parser_prod__AIfexprExpr__n_kwthen_61d(self, p0); /* Direct call parser_prod#AIfexprExpr#n_kwthen= on <self:Object(AIfexprExpr)>*/
5422 RET_LABEL:;
5423 }
5424 /* method parser_prod#AIfexprExpr#n_then= for (self: AIfexprExpr, AExpr) */
5425 void parser_prod__AIfexprExpr__n_then_61d(val* self, val* p0) {
5426 val* var_node /* var node: AExpr */;
5427 var_node = p0;
5428 self->attrs[COLOR_parser_nodes__AIfexprExpr___n_then].val = var_node; /* _n_then on <self:AIfexprExpr> */
5429 {
5430 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
5431 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
5432 RET_LABEL1:(void)0;
5433 }
5434 }
5435 RET_LABEL:;
5436 }
5437 /* method parser_prod#AIfexprExpr#n_then= for (self: Object, AExpr) */
5438 void VIRTUAL_parser_prod__AIfexprExpr__n_then_61d(val* self, val* p0) {
5439 parser_prod__AIfexprExpr__n_then_61d(self, p0); /* Direct call parser_prod#AIfexprExpr#n_then= on <self:Object(AIfexprExpr)>*/
5440 RET_LABEL:;
5441 }
5442 /* method parser_prod#AIfexprExpr#n_kwelse= for (self: AIfexprExpr, TKwelse) */
5443 void parser_prod__AIfexprExpr__n_kwelse_61d(val* self, val* p0) {
5444 val* var_node /* var node: TKwelse */;
5445 var_node = p0;
5446 self->attrs[COLOR_parser_nodes__AIfexprExpr___n_kwelse].val = var_node; /* _n_kwelse on <self:AIfexprExpr> */
5447 {
5448 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwelse> */
5449 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwelse> */
5450 RET_LABEL1:(void)0;
5451 }
5452 }
5453 RET_LABEL:;
5454 }
5455 /* method parser_prod#AIfexprExpr#n_kwelse= for (self: Object, TKwelse) */
5456 void VIRTUAL_parser_prod__AIfexprExpr__n_kwelse_61d(val* self, val* p0) {
5457 parser_prod__AIfexprExpr__n_kwelse_61d(self, p0); /* Direct call parser_prod#AIfexprExpr#n_kwelse= on <self:Object(AIfexprExpr)>*/
5458 RET_LABEL:;
5459 }
5460 /* method parser_prod#AIfexprExpr#n_else= for (self: AIfexprExpr, AExpr) */
5461 void parser_prod__AIfexprExpr__n_else_61d(val* self, val* p0) {
5462 val* var_node /* var node: AExpr */;
5463 var_node = p0;
5464 self->attrs[COLOR_parser_nodes__AIfexprExpr___n_else].val = var_node; /* _n_else on <self:AIfexprExpr> */
5465 {
5466 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
5467 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
5468 RET_LABEL1:(void)0;
5469 }
5470 }
5471 RET_LABEL:;
5472 }
5473 /* method parser_prod#AIfexprExpr#n_else= for (self: Object, AExpr) */
5474 void VIRTUAL_parser_prod__AIfexprExpr__n_else_61d(val* self, val* p0) {
5475 parser_prod__AIfexprExpr__n_else_61d(self, p0); /* Direct call parser_prod#AIfexprExpr#n_else= on <self:Object(AIfexprExpr)>*/
5476 RET_LABEL:;
5477 }
5478 /* method parser_prod#AIfexprExpr#visit_all for (self: AIfexprExpr, Visitor) */
5479 void parser_prod__AIfexprExpr__visit_all(val* self, val* p0) {
5480 val* var_v /* var v: Visitor */;
5481 val* var /* : TKwif */;
5482 val* var1 /* : AExpr */;
5483 val* var2 /* : TKwthen */;
5484 val* var3 /* : AExpr */;
5485 val* var4 /* : TKwelse */;
5486 val* var5 /* : AExpr */;
5487 var_v = p0;
5488 var = self->attrs[COLOR_parser_nodes__AIfexprExpr___n_kwif].val; /* _n_kwif on <self:AIfexprExpr> */
5489 if (unlikely(var == NULL)) {
5490 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwif");
5491 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3442);
5492 show_backtrace(1);
5493 }
5494 {
5495 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
5496 }
5497 var1 = self->attrs[COLOR_parser_nodes__AIfexprExpr___n_expr].val; /* _n_expr on <self:AIfexprExpr> */
5498 if (unlikely(var1 == NULL)) {
5499 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
5500 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3443);
5501 show_backtrace(1);
5502 }
5503 {
5504 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
5505 }
5506 var2 = self->attrs[COLOR_parser_nodes__AIfexprExpr___n_kwthen].val; /* _n_kwthen on <self:AIfexprExpr> */
5507 if (unlikely(var2 == NULL)) {
5508 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwthen");
5509 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3444);
5510 show_backtrace(1);
5511 }
5512 {
5513 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
5514 }
5515 var3 = self->attrs[COLOR_parser_nodes__AIfexprExpr___n_then].val; /* _n_then on <self:AIfexprExpr> */
5516 if (unlikely(var3 == NULL)) {
5517 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_then");
5518 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3445);
5519 show_backtrace(1);
5520 }
5521 {
5522 parser_nodes__Visitor__enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
5523 }
5524 var4 = self->attrs[COLOR_parser_nodes__AIfexprExpr___n_kwelse].val; /* _n_kwelse on <self:AIfexprExpr> */
5525 if (unlikely(var4 == NULL)) {
5526 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwelse");
5527 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3446);
5528 show_backtrace(1);
5529 }
5530 {
5531 parser_nodes__Visitor__enter_visit(var_v, var4); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
5532 }
5533 var5 = self->attrs[COLOR_parser_nodes__AIfexprExpr___n_else].val; /* _n_else on <self:AIfexprExpr> */
5534 if (unlikely(var5 == NULL)) {
5535 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_else");
5536 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3447);
5537 show_backtrace(1);
5538 }
5539 {
5540 parser_nodes__Visitor__enter_visit(var_v, var5); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
5541 }
5542 RET_LABEL:;
5543 }
5544 /* method parser_prod#AIfexprExpr#visit_all for (self: Object, Visitor) */
5545 void VIRTUAL_parser_prod__AIfexprExpr__visit_all(val* self, val* p0) {
5546 parser_prod__AIfexprExpr__visit_all(self, p0); /* Direct call parser_prod#AIfexprExpr#visit_all on <self:Object(AIfexprExpr)>*/
5547 RET_LABEL:;
5548 }
5549 /* method parser_prod#AWhileExpr#init_awhileexpr for (self: AWhileExpr, nullable TKwwhile, nullable AExpr, nullable TKwdo, nullable AExpr, nullable ALabel) */
5550 void parser_prod__AWhileExpr__init_awhileexpr(val* self, val* p0, val* p1, val* p2, val* p3, val* p4) {
5551 val* var_n_kwwhile /* var n_kwwhile: nullable TKwwhile */;
5552 val* var_n_expr /* var n_expr: nullable AExpr */;
5553 val* var_n_kwdo /* var n_kwdo: nullable TKwdo */;
5554 val* var_n_block /* var n_block: nullable AExpr */;
5555 val* var_n_label /* var n_label: nullable ALabel */;
5556 val* var /* : null */;
5557 short int var4 /* : Bool */;
5558 short int var5 /* : Bool */;
5559 val* var_other /* var other: nullable Object */;
5560 short int var7 /* : Bool */;
5561 short int var8 /* : Bool */;
5562 short int var9 /* : Bool */;
5563 val* var11 /* : null */;
5564 short int var12 /* : Bool */;
5565 short int var13 /* : Bool */;
5566 short int var15 /* : Bool */;
5567 short int var16 /* : Bool */;
5568 short int var17 /* : Bool */;
5569 var_n_kwwhile = p0;
5570 var_n_expr = p1;
5571 var_n_kwdo = p2;
5572 var_n_block = p3;
5573 var_n_label = p4;
5574 if (unlikely(var_n_kwwhile == NULL)) {
5575 PRINT_ERROR("Runtime error: %s", "Cast failed");
5576 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3459);
5577 show_backtrace(1);
5578 }
5579 self->attrs[COLOR_parser_nodes__AWhileExpr___n_kwwhile].val = var_n_kwwhile; /* _n_kwwhile on <self:AWhileExpr> */
5580 if (var_n_kwwhile == NULL) {
5581 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5582 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3460);
5583 show_backtrace(1);
5584 } else {
5585 { /* Inline parser_nodes#ANode#parent= (var_n_kwwhile,self) on <var_n_kwwhile:nullable TKwwhile> */
5586 if (unlikely(var_n_kwwhile == NULL)) {
5587 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5588 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
5589 show_backtrace(1);
5590 }
5591 var_n_kwwhile->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwwhile:nullable TKwwhile> */
5592 RET_LABEL1:(void)0;
5593 }
5594 }
5595 if (unlikely(var_n_expr == NULL)) {
5596 PRINT_ERROR("Runtime error: %s", "Cast failed");
5597 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3461);
5598 show_backtrace(1);
5599 }
5600 self->attrs[COLOR_parser_nodes__AWhileExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AWhileExpr> */
5601 if (var_n_expr == NULL) {
5602 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5603 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3462);
5604 show_backtrace(1);
5605 } else {
5606 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
5607 if (unlikely(var_n_expr == NULL)) {
5608 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5609 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
5610 show_backtrace(1);
5611 }
5612 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
5613 RET_LABEL2:(void)0;
5614 }
5615 }
5616 if (unlikely(var_n_kwdo == NULL)) {
5617 PRINT_ERROR("Runtime error: %s", "Cast failed");
5618 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3463);
5619 show_backtrace(1);
5620 }
5621 self->attrs[COLOR_parser_nodes__AWhileExpr___n_kwdo].val = var_n_kwdo; /* _n_kwdo on <self:AWhileExpr> */
5622 if (var_n_kwdo == NULL) {
5623 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5624 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3464);
5625 show_backtrace(1);
5626 } else {
5627 { /* Inline parser_nodes#ANode#parent= (var_n_kwdo,self) on <var_n_kwdo:nullable TKwdo> */
5628 if (unlikely(var_n_kwdo == NULL)) {
5629 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5630 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
5631 show_backtrace(1);
5632 }
5633 var_n_kwdo->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwdo:nullable TKwdo> */
5634 RET_LABEL3:(void)0;
5635 }
5636 }
5637 self->attrs[COLOR_parser_nodes__AWhileExpr___n_block].val = var_n_block; /* _n_block on <self:AWhileExpr> */
5638 var = NULL;
5639 if (var_n_block == NULL) {
5640 var4 = 0; /* is null */
5641 } else {
5642 var4 = 1; /* arg is null and recv is not */
5643 }
5644 if (0) {
5645 { /* Inline kernel#Object#!= (var_n_block,var) on <var_n_block:nullable AExpr> */
5646 var_other = var;
5647 {
5648 var8 = ((short int (*)(val*, val*))(var_n_block->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_block, var_other) /* == on <var_n_block:nullable AExpr(AExpr)>*/;
5649 var7 = var8;
5650 }
5651 var9 = !var7;
5652 var5 = var9;
5653 goto RET_LABEL6;
5654 RET_LABEL6:(void)0;
5655 }
5656 var4 = var5;
5657 }
5658 if (var4){
5659 {
5660 { /* Inline parser_nodes#ANode#parent= (var_n_block,self) on <var_n_block:nullable AExpr(AExpr)> */
5661 var_n_block->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_block:nullable AExpr(AExpr)> */
5662 RET_LABEL10:(void)0;
5663 }
5664 }
5665 } else {
5666 }
5667 self->attrs[COLOR_parser_nodes__ALabelable___n_label].val = var_n_label; /* _n_label on <self:AWhileExpr> */
5668 var11 = NULL;
5669 if (var_n_label == NULL) {
5670 var12 = 0; /* is null */
5671 } else {
5672 var12 = 1; /* arg is null and recv is not */
5673 }
5674 if (0) {
5675 { /* Inline kernel#Object#!= (var_n_label,var11) on <var_n_label:nullable ALabel> */
5676 var_other = var11;
5677 {
5678 var16 = ((short int (*)(val*, val*))(var_n_label->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_label, var_other) /* == on <var_n_label:nullable ALabel(ALabel)>*/;
5679 var15 = var16;
5680 }
5681 var17 = !var15;
5682 var13 = var17;
5683 goto RET_LABEL14;
5684 RET_LABEL14:(void)0;
5685 }
5686 var12 = var13;
5687 }
5688 if (var12){
5689 {
5690 { /* Inline parser_nodes#ANode#parent= (var_n_label,self) on <var_n_label:nullable ALabel(ALabel)> */
5691 var_n_label->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_label:nullable ALabel(ALabel)> */
5692 RET_LABEL18:(void)0;
5693 }
5694 }
5695 } else {
5696 }
5697 RET_LABEL:;
5698 }
5699 /* method parser_prod#AWhileExpr#init_awhileexpr for (self: Object, nullable TKwwhile, nullable AExpr, nullable TKwdo, nullable AExpr, nullable ALabel) */
5700 void VIRTUAL_parser_prod__AWhileExpr__init_awhileexpr(val* self, val* p0, val* p1, val* p2, val* p3, val* p4) {
5701 parser_prod__AWhileExpr__init_awhileexpr(self, p0, p1, p2, p3, p4); /* Direct call parser_prod#AWhileExpr#init_awhileexpr on <self:Object(AWhileExpr)>*/
5702 RET_LABEL:;
5703 }
5704 /* method parser_prod#AWhileExpr#replace_child for (self: AWhileExpr, ANode, nullable ANode) */
5705 void parser_prod__AWhileExpr__replace_child(val* self, val* p0, val* p1) {
5706 val* var_old_child /* var old_child: ANode */;
5707 val* var_new_child /* var new_child: nullable ANode */;
5708 val* var /* : TKwwhile */;
5709 short int var1 /* : Bool */;
5710 short int var2 /* : Bool */;
5711 val* var_other /* var other: nullable Object */;
5712 short int var4 /* : Bool */;
5713 short int var6 /* : Bool */;
5714 short int var7 /* : Bool */;
5715 int cltype;
5716 int idtype;
5717 const char* var_class_name;
5718 val* var8 /* : AExpr */;
5719 short int var9 /* : Bool */;
5720 short int var10 /* : Bool */;
5721 short int var12 /* : Bool */;
5722 short int var14 /* : Bool */;
5723 short int var15 /* : Bool */;
5724 int cltype16;
5725 int idtype17;
5726 const char* var_class_name18;
5727 val* var19 /* : TKwdo */;
5728 short int var20 /* : Bool */;
5729 short int var21 /* : Bool */;
5730 short int var23 /* : Bool */;
5731 short int var25 /* : Bool */;
5732 short int var26 /* : Bool */;
5733 int cltype27;
5734 int idtype28;
5735 const char* var_class_name29;
5736 val* var30 /* : nullable AExpr */;
5737 short int var31 /* : Bool */;
5738 short int var32 /* : Bool */;
5739 short int var34 /* : Bool */;
5740 short int var36 /* : Bool */;
5741 short int var37 /* : Bool */;
5742 int cltype38;
5743 int idtype39;
5744 const char* var_class_name40;
5745 val* var41 /* : nullable ALabel */;
5746 short int var42 /* : Bool */;
5747 short int var43 /* : Bool */;
5748 short int var45 /* : Bool */;
5749 short int var47 /* : Bool */;
5750 short int var48 /* : Bool */;
5751 int cltype49;
5752 int idtype50;
5753 const char* var_class_name51;
5754 var_old_child = p0;
5755 var_new_child = p1;
5756 var = self->attrs[COLOR_parser_nodes__AWhileExpr___n_kwwhile].val; /* _n_kwwhile on <self:AWhileExpr> */
5757 if (unlikely(var == NULL)) {
5758 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwwhile");
5759 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3473);
5760 show_backtrace(1);
5761 }
5762 {
5763 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwwhile> */
5764 var_other = var_old_child;
5765 {
5766 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TKwwhile> */
5767 var6 = var == var_other;
5768 var4 = var6;
5769 goto RET_LABEL5;
5770 RET_LABEL5:(void)0;
5771 }
5772 }
5773 var2 = var4;
5774 goto RET_LABEL3;
5775 RET_LABEL3:(void)0;
5776 }
5777 var1 = var2;
5778 }
5779 if (var1){
5780 /* <var_new_child:nullable ANode> isa TKwwhile */
5781 cltype = type_parser_nodes__TKwwhile.color;
5782 idtype = type_parser_nodes__TKwwhile.id;
5783 if(var_new_child == NULL) {
5784 var7 = 0;
5785 } else {
5786 if(cltype >= var_new_child->type->table_size) {
5787 var7 = 0;
5788 } else {
5789 var7 = var_new_child->type->type_table[cltype] == idtype;
5790 }
5791 }
5792 if (unlikely(!var7)) {
5793 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
5794 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwwhile", var_class_name);
5795 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3474);
5796 show_backtrace(1);
5797 }
5798 {
5799 parser_prod__AWhileExpr__n_kwwhile_61d(self, var_new_child); /* Direct call parser_prod#AWhileExpr#n_kwwhile= on <self:AWhileExpr>*/
5800 }
5801 goto RET_LABEL;
5802 } else {
5803 }
5804 var8 = self->attrs[COLOR_parser_nodes__AWhileExpr___n_expr].val; /* _n_expr on <self:AWhileExpr> */
5805 if (unlikely(var8 == NULL)) {
5806 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
5807 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3477);
5808 show_backtrace(1);
5809 }
5810 {
5811 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExpr> */
5812 var_other = var_old_child;
5813 {
5814 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExpr> */
5815 var14 = var8 == var_other;
5816 var12 = var14;
5817 goto RET_LABEL13;
5818 RET_LABEL13:(void)0;
5819 }
5820 }
5821 var10 = var12;
5822 goto RET_LABEL11;
5823 RET_LABEL11:(void)0;
5824 }
5825 var9 = var10;
5826 }
5827 if (var9){
5828 /* <var_new_child:nullable ANode> isa AExpr */
5829 cltype16 = type_parser_nodes__AExpr.color;
5830 idtype17 = type_parser_nodes__AExpr.id;
5831 if(var_new_child == NULL) {
5832 var15 = 0;
5833 } else {
5834 if(cltype16 >= var_new_child->type->table_size) {
5835 var15 = 0;
5836 } else {
5837 var15 = var_new_child->type->type_table[cltype16] == idtype17;
5838 }
5839 }
5840 if (unlikely(!var15)) {
5841 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
5842 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name18);
5843 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3478);
5844 show_backtrace(1);
5845 }
5846 {
5847 parser_prod__AWhileExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AWhileExpr#n_expr= on <self:AWhileExpr>*/
5848 }
5849 goto RET_LABEL;
5850 } else {
5851 }
5852 var19 = self->attrs[COLOR_parser_nodes__AWhileExpr___n_kwdo].val; /* _n_kwdo on <self:AWhileExpr> */
5853 if (unlikely(var19 == NULL)) {
5854 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwdo");
5855 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3481);
5856 show_backtrace(1);
5857 }
5858 {
5859 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:TKwdo> */
5860 var_other = var_old_child;
5861 {
5862 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:TKwdo> */
5863 var25 = var19 == var_other;
5864 var23 = var25;
5865 goto RET_LABEL24;
5866 RET_LABEL24:(void)0;
5867 }
5868 }
5869 var21 = var23;
5870 goto RET_LABEL22;
5871 RET_LABEL22:(void)0;
5872 }
5873 var20 = var21;
5874 }
5875 if (var20){
5876 /* <var_new_child:nullable ANode> isa TKwdo */
5877 cltype27 = type_parser_nodes__TKwdo.color;
5878 idtype28 = type_parser_nodes__TKwdo.id;
5879 if(var_new_child == NULL) {
5880 var26 = 0;
5881 } else {
5882 if(cltype27 >= var_new_child->type->table_size) {
5883 var26 = 0;
5884 } else {
5885 var26 = var_new_child->type->type_table[cltype27] == idtype28;
5886 }
5887 }
5888 if (unlikely(!var26)) {
5889 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
5890 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwdo", var_class_name29);
5891 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3482);
5892 show_backtrace(1);
5893 }
5894 {
5895 parser_prod__AWhileExpr__n_kwdo_61d(self, var_new_child); /* Direct call parser_prod#AWhileExpr#n_kwdo= on <self:AWhileExpr>*/
5896 }
5897 goto RET_LABEL;
5898 } else {
5899 }
5900 var30 = self->attrs[COLOR_parser_nodes__AWhileExpr___n_block].val; /* _n_block on <self:AWhileExpr> */
5901 if (var30 == NULL) {
5902 var31 = 0; /* <var_old_child:ANode> cannot be null */
5903 } else {
5904 { /* Inline kernel#Object#== (var30,var_old_child) on <var30:nullable AExpr> */
5905 var_other = var_old_child;
5906 {
5907 { /* Inline kernel#Object#is_same_instance (var30,var_other) on <var30:nullable AExpr(AExpr)> */
5908 var36 = var30 == var_other;
5909 var34 = var36;
5910 goto RET_LABEL35;
5911 RET_LABEL35:(void)0;
5912 }
5913 }
5914 var32 = var34;
5915 goto RET_LABEL33;
5916 RET_LABEL33:(void)0;
5917 }
5918 var31 = var32;
5919 }
5920 if (var31){
5921 /* <var_new_child:nullable ANode> isa nullable AExpr */
5922 cltype38 = type_nullable_parser_nodes__AExpr.color;
5923 idtype39 = type_nullable_parser_nodes__AExpr.id;
5924 if(var_new_child == NULL) {
5925 var37 = 1;
5926 } else {
5927 if(cltype38 >= var_new_child->type->table_size) {
5928 var37 = 0;
5929 } else {
5930 var37 = var_new_child->type->type_table[cltype38] == idtype39;
5931 }
5932 }
5933 if (unlikely(!var37)) {
5934 var_class_name40 = var_new_child == NULL ? "null" : var_new_child->type->name;
5935 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AExpr", var_class_name40);
5936 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3486);
5937 show_backtrace(1);
5938 }
5939 {
5940 parser_prod__AWhileExpr__n_block_61d(self, var_new_child); /* Direct call parser_prod#AWhileExpr#n_block= on <self:AWhileExpr>*/
5941 }
5942 goto RET_LABEL;
5943 } else {
5944 }
5945 var41 = self->attrs[COLOR_parser_nodes__ALabelable___n_label].val; /* _n_label on <self:AWhileExpr> */
5946 if (var41 == NULL) {
5947 var42 = 0; /* <var_old_child:ANode> cannot be null */
5948 } else {
5949 { /* Inline kernel#Object#== (var41,var_old_child) on <var41:nullable ALabel> */
5950 var_other = var_old_child;
5951 {
5952 { /* Inline kernel#Object#is_same_instance (var41,var_other) on <var41:nullable ALabel(ALabel)> */
5953 var47 = var41 == var_other;
5954 var45 = var47;
5955 goto RET_LABEL46;
5956 RET_LABEL46:(void)0;
5957 }
5958 }
5959 var43 = var45;
5960 goto RET_LABEL44;
5961 RET_LABEL44:(void)0;
5962 }
5963 var42 = var43;
5964 }
5965 if (var42){
5966 /* <var_new_child:nullable ANode> isa nullable ALabel */
5967 cltype49 = type_nullable_parser_nodes__ALabel.color;
5968 idtype50 = type_nullable_parser_nodes__ALabel.id;
5969 if(var_new_child == NULL) {
5970 var48 = 1;
5971 } else {
5972 if(cltype49 >= var_new_child->type->table_size) {
5973 var48 = 0;
5974 } else {
5975 var48 = var_new_child->type->type_table[cltype49] == idtype50;
5976 }
5977 }
5978 if (unlikely(!var48)) {
5979 var_class_name51 = var_new_child == NULL ? "null" : var_new_child->type->name;
5980 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ALabel", var_class_name51);
5981 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3490);
5982 show_backtrace(1);
5983 }
5984 {
5985 parser_prod__AWhileExpr__n_label_61d(self, var_new_child); /* Direct call parser_prod#AWhileExpr#n_label= on <self:AWhileExpr>*/
5986 }
5987 goto RET_LABEL;
5988 } else {
5989 }
5990 RET_LABEL:;
5991 }
5992 /* method parser_prod#AWhileExpr#replace_child for (self: Object, ANode, nullable ANode) */
5993 void VIRTUAL_parser_prod__AWhileExpr__replace_child(val* self, val* p0, val* p1) {
5994 parser_prod__AWhileExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AWhileExpr#replace_child on <self:Object(AWhileExpr)>*/
5995 RET_LABEL:;
5996 }
5997 /* method parser_prod#AWhileExpr#n_kwwhile= for (self: AWhileExpr, TKwwhile) */
5998 void parser_prod__AWhileExpr__n_kwwhile_61d(val* self, val* p0) {
5999 val* var_node /* var node: TKwwhile */;
6000 var_node = p0;
6001 self->attrs[COLOR_parser_nodes__AWhileExpr___n_kwwhile].val = var_node; /* _n_kwwhile on <self:AWhileExpr> */
6002 {
6003 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwwhile> */
6004 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwwhile> */
6005 RET_LABEL1:(void)0;
6006 }
6007 }
6008 RET_LABEL:;
6009 }
6010 /* method parser_prod#AWhileExpr#n_kwwhile= for (self: Object, TKwwhile) */
6011 void VIRTUAL_parser_prod__AWhileExpr__n_kwwhile_61d(val* self, val* p0) {
6012 parser_prod__AWhileExpr__n_kwwhile_61d(self, p0); /* Direct call parser_prod#AWhileExpr#n_kwwhile= on <self:Object(AWhileExpr)>*/
6013 RET_LABEL:;
6014 }
6015 /* method parser_prod#AWhileExpr#n_expr= for (self: AWhileExpr, AExpr) */
6016 void parser_prod__AWhileExpr__n_expr_61d(val* self, val* p0) {
6017 val* var_node /* var node: AExpr */;
6018 var_node = p0;
6019 self->attrs[COLOR_parser_nodes__AWhileExpr___n_expr].val = var_node; /* _n_expr on <self:AWhileExpr> */
6020 {
6021 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
6022 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
6023 RET_LABEL1:(void)0;
6024 }
6025 }
6026 RET_LABEL:;
6027 }
6028 /* method parser_prod#AWhileExpr#n_expr= for (self: Object, AExpr) */
6029 void VIRTUAL_parser_prod__AWhileExpr__n_expr_61d(val* self, val* p0) {
6030 parser_prod__AWhileExpr__n_expr_61d(self, p0); /* Direct call parser_prod#AWhileExpr#n_expr= on <self:Object(AWhileExpr)>*/
6031 RET_LABEL:;
6032 }
6033 /* method parser_prod#AWhileExpr#n_kwdo= for (self: AWhileExpr, TKwdo) */
6034 void parser_prod__AWhileExpr__n_kwdo_61d(val* self, val* p0) {
6035 val* var_node /* var node: TKwdo */;
6036 var_node = p0;
6037 self->attrs[COLOR_parser_nodes__AWhileExpr___n_kwdo].val = var_node; /* _n_kwdo on <self:AWhileExpr> */
6038 {
6039 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwdo> */
6040 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwdo> */
6041 RET_LABEL1:(void)0;
6042 }
6043 }
6044 RET_LABEL:;
6045 }
6046 /* method parser_prod#AWhileExpr#n_kwdo= for (self: Object, TKwdo) */
6047 void VIRTUAL_parser_prod__AWhileExpr__n_kwdo_61d(val* self, val* p0) {
6048 parser_prod__AWhileExpr__n_kwdo_61d(self, p0); /* Direct call parser_prod#AWhileExpr#n_kwdo= on <self:Object(AWhileExpr)>*/
6049 RET_LABEL:;
6050 }
6051 /* method parser_prod#AWhileExpr#n_block= for (self: AWhileExpr, nullable AExpr) */
6052 void parser_prod__AWhileExpr__n_block_61d(val* self, val* p0) {
6053 val* var_node /* var node: nullable AExpr */;
6054 val* var /* : null */;
6055 short int var1 /* : Bool */;
6056 short int var2 /* : Bool */;
6057 val* var_other /* var other: nullable Object */;
6058 short int var4 /* : Bool */;
6059 short int var5 /* : Bool */;
6060 short int var6 /* : Bool */;
6061 var_node = p0;
6062 self->attrs[COLOR_parser_nodes__AWhileExpr___n_block].val = var_node; /* _n_block on <self:AWhileExpr> */
6063 var = NULL;
6064 if (var_node == NULL) {
6065 var1 = 0; /* is null */
6066 } else {
6067 var1 = 1; /* arg is null and recv is not */
6068 }
6069 if (0) {
6070 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AExpr> */
6071 var_other = var;
6072 {
6073 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AExpr(AExpr)>*/;
6074 var4 = var5;
6075 }
6076 var6 = !var4;
6077 var2 = var6;
6078 goto RET_LABEL3;
6079 RET_LABEL3:(void)0;
6080 }
6081 var1 = var2;
6082 }
6083 if (var1){
6084 {
6085 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AExpr(AExpr)> */
6086 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AExpr(AExpr)> */
6087 RET_LABEL7:(void)0;
6088 }
6089 }
6090 } else {
6091 }
6092 RET_LABEL:;
6093 }
6094 /* method parser_prod#AWhileExpr#n_block= for (self: Object, nullable AExpr) */
6095 void VIRTUAL_parser_prod__AWhileExpr__n_block_61d(val* self, val* p0) {
6096 parser_prod__AWhileExpr__n_block_61d(self, p0); /* Direct call parser_prod#AWhileExpr#n_block= on <self:Object(AWhileExpr)>*/
6097 RET_LABEL:;
6098 }
6099 /* method parser_prod#AWhileExpr#n_label= for (self: AWhileExpr, nullable ALabel) */
6100 void parser_prod__AWhileExpr__n_label_61d(val* self, val* p0) {
6101 val* var_node /* var node: nullable ALabel */;
6102 val* var /* : null */;
6103 short int var1 /* : Bool */;
6104 short int var2 /* : Bool */;
6105 val* var_other /* var other: nullable Object */;
6106 short int var4 /* : Bool */;
6107 short int var5 /* : Bool */;
6108 short int var6 /* : Bool */;
6109 var_node = p0;
6110 self->attrs[COLOR_parser_nodes__ALabelable___n_label].val = var_node; /* _n_label on <self:AWhileExpr> */
6111 var = NULL;
6112 if (var_node == NULL) {
6113 var1 = 0; /* is null */
6114 } else {
6115 var1 = 1; /* arg is null and recv is not */
6116 }
6117 if (0) {
6118 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable ALabel> */
6119 var_other = var;
6120 {
6121 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable ALabel(ALabel)>*/;
6122 var4 = var5;
6123 }
6124 var6 = !var4;
6125 var2 = var6;
6126 goto RET_LABEL3;
6127 RET_LABEL3:(void)0;
6128 }
6129 var1 = var2;
6130 }
6131 if (var1){
6132 {
6133 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable ALabel(ALabel)> */
6134 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable ALabel(ALabel)> */
6135 RET_LABEL7:(void)0;
6136 }
6137 }
6138 } else {
6139 }
6140 RET_LABEL:;
6141 }
6142 /* method parser_prod#AWhileExpr#n_label= for (self: Object, nullable ALabel) */
6143 void VIRTUAL_parser_prod__AWhileExpr__n_label_61d(val* self, val* p0) {
6144 parser_prod__AWhileExpr__n_label_61d(self, p0); /* Direct call parser_prod#AWhileExpr#n_label= on <self:Object(AWhileExpr)>*/
6145 RET_LABEL:;
6146 }
6147 /* method parser_prod#AWhileExpr#visit_all for (self: AWhileExpr, Visitor) */
6148 void parser_prod__AWhileExpr__visit_all(val* self, val* p0) {
6149 val* var_v /* var v: Visitor */;
6150 val* var /* : TKwwhile */;
6151 val* var1 /* : AExpr */;
6152 val* var2 /* : TKwdo */;
6153 val* var3 /* : nullable AExpr */;
6154 val* var4 /* : nullable ALabel */;
6155 var_v = p0;
6156 var = self->attrs[COLOR_parser_nodes__AWhileExpr___n_kwwhile].val; /* _n_kwwhile on <self:AWhileExpr> */
6157 if (unlikely(var == NULL)) {
6158 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwwhile");
6159 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3524);
6160 show_backtrace(1);
6161 }
6162 {
6163 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6164 }
6165 var1 = self->attrs[COLOR_parser_nodes__AWhileExpr___n_expr].val; /* _n_expr on <self:AWhileExpr> */
6166 if (unlikely(var1 == NULL)) {
6167 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
6168 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3525);
6169 show_backtrace(1);
6170 }
6171 {
6172 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6173 }
6174 var2 = self->attrs[COLOR_parser_nodes__AWhileExpr___n_kwdo].val; /* _n_kwdo on <self:AWhileExpr> */
6175 if (unlikely(var2 == NULL)) {
6176 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwdo");
6177 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3526);
6178 show_backtrace(1);
6179 }
6180 {
6181 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6182 }
6183 var3 = self->attrs[COLOR_parser_nodes__AWhileExpr___n_block].val; /* _n_block on <self:AWhileExpr> */
6184 {
6185 parser_nodes__Visitor__enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6186 }
6187 var4 = self->attrs[COLOR_parser_nodes__ALabelable___n_label].val; /* _n_label on <self:AWhileExpr> */
6188 {
6189 parser_nodes__Visitor__enter_visit(var_v, var4); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6190 }
6191 RET_LABEL:;
6192 }
6193 /* method parser_prod#AWhileExpr#visit_all for (self: Object, Visitor) */
6194 void VIRTUAL_parser_prod__AWhileExpr__visit_all(val* self, val* p0) {
6195 parser_prod__AWhileExpr__visit_all(self, p0); /* Direct call parser_prod#AWhileExpr#visit_all on <self:Object(AWhileExpr)>*/
6196 RET_LABEL:;
6197 }
6198 /* method parser_prod#ALoopExpr#init_aloopexpr for (self: ALoopExpr, nullable TKwloop, nullable AExpr, nullable ALabel) */
6199 void parser_prod__ALoopExpr__init_aloopexpr(val* self, val* p0, val* p1, val* p2) {
6200 val* var_n_kwloop /* var n_kwloop: nullable TKwloop */;
6201 val* var_n_block /* var n_block: nullable AExpr */;
6202 val* var_n_label /* var n_label: nullable ALabel */;
6203 val* var /* : null */;
6204 short int var2 /* : Bool */;
6205 short int var3 /* : Bool */;
6206 val* var_other /* var other: nullable Object */;
6207 short int var5 /* : Bool */;
6208 short int var6 /* : Bool */;
6209 short int var7 /* : Bool */;
6210 val* var9 /* : null */;
6211 short int var10 /* : Bool */;
6212 short int var11 /* : Bool */;
6213 short int var13 /* : Bool */;
6214 short int var14 /* : Bool */;
6215 short int var15 /* : Bool */;
6216 var_n_kwloop = p0;
6217 var_n_block = p1;
6218 var_n_label = p2;
6219 if (unlikely(var_n_kwloop == NULL)) {
6220 PRINT_ERROR("Runtime error: %s", "Cast failed");
6221 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3538);
6222 show_backtrace(1);
6223 }
6224 self->attrs[COLOR_parser_nodes__ALoopExpr___n_kwloop].val = var_n_kwloop; /* _n_kwloop on <self:ALoopExpr> */
6225 if (var_n_kwloop == NULL) {
6226 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6227 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3539);
6228 show_backtrace(1);
6229 } else {
6230 { /* Inline parser_nodes#ANode#parent= (var_n_kwloop,self) on <var_n_kwloop:nullable TKwloop> */
6231 if (unlikely(var_n_kwloop == NULL)) {
6232 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6233 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
6234 show_backtrace(1);
6235 }
6236 var_n_kwloop->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwloop:nullable TKwloop> */
6237 RET_LABEL1:(void)0;
6238 }
6239 }
6240 self->attrs[COLOR_parser_nodes__ALoopExpr___n_block].val = var_n_block; /* _n_block on <self:ALoopExpr> */
6241 var = NULL;
6242 if (var_n_block == NULL) {
6243 var2 = 0; /* is null */
6244 } else {
6245 var2 = 1; /* arg is null and recv is not */
6246 }
6247 if (0) {
6248 { /* Inline kernel#Object#!= (var_n_block,var) on <var_n_block:nullable AExpr> */
6249 var_other = var;
6250 {
6251 var6 = ((short int (*)(val*, val*))(var_n_block->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_block, var_other) /* == on <var_n_block:nullable AExpr(AExpr)>*/;
6252 var5 = var6;
6253 }
6254 var7 = !var5;
6255 var3 = var7;
6256 goto RET_LABEL4;
6257 RET_LABEL4:(void)0;
6258 }
6259 var2 = var3;
6260 }
6261 if (var2){
6262 {
6263 { /* Inline parser_nodes#ANode#parent= (var_n_block,self) on <var_n_block:nullable AExpr(AExpr)> */
6264 var_n_block->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_block:nullable AExpr(AExpr)> */
6265 RET_LABEL8:(void)0;
6266 }
6267 }
6268 } else {
6269 }
6270 self->attrs[COLOR_parser_nodes__ALabelable___n_label].val = var_n_label; /* _n_label on <self:ALoopExpr> */
6271 var9 = NULL;
6272 if (var_n_label == NULL) {
6273 var10 = 0; /* is null */
6274 } else {
6275 var10 = 1; /* arg is null and recv is not */
6276 }
6277 if (0) {
6278 { /* Inline kernel#Object#!= (var_n_label,var9) on <var_n_label:nullable ALabel> */
6279 var_other = var9;
6280 {
6281 var14 = ((short int (*)(val*, val*))(var_n_label->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_label, var_other) /* == on <var_n_label:nullable ALabel(ALabel)>*/;
6282 var13 = var14;
6283 }
6284 var15 = !var13;
6285 var11 = var15;
6286 goto RET_LABEL12;
6287 RET_LABEL12:(void)0;
6288 }
6289 var10 = var11;
6290 }
6291 if (var10){
6292 {
6293 { /* Inline parser_nodes#ANode#parent= (var_n_label,self) on <var_n_label:nullable ALabel(ALabel)> */
6294 var_n_label->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_label:nullable ALabel(ALabel)> */
6295 RET_LABEL16:(void)0;
6296 }
6297 }
6298 } else {
6299 }
6300 RET_LABEL:;
6301 }
6302 /* method parser_prod#ALoopExpr#init_aloopexpr for (self: Object, nullable TKwloop, nullable AExpr, nullable ALabel) */
6303 void VIRTUAL_parser_prod__ALoopExpr__init_aloopexpr(val* self, val* p0, val* p1, val* p2) {
6304 parser_prod__ALoopExpr__init_aloopexpr(self, p0, p1, p2); /* Direct call parser_prod#ALoopExpr#init_aloopexpr on <self:Object(ALoopExpr)>*/
6305 RET_LABEL:;
6306 }
6307 /* method parser_prod#ALoopExpr#replace_child for (self: ALoopExpr, ANode, nullable ANode) */
6308 void parser_prod__ALoopExpr__replace_child(val* self, val* p0, val* p1) {
6309 val* var_old_child /* var old_child: ANode */;
6310 val* var_new_child /* var new_child: nullable ANode */;
6311 val* var /* : TKwloop */;
6312 short int var1 /* : Bool */;
6313 short int var2 /* : Bool */;
6314 val* var_other /* var other: nullable Object */;
6315 short int var4 /* : Bool */;
6316 short int var6 /* : Bool */;
6317 short int var7 /* : Bool */;
6318 int cltype;
6319 int idtype;
6320 const char* var_class_name;
6321 val* var8 /* : nullable AExpr */;
6322 short int var9 /* : Bool */;
6323 short int var10 /* : Bool */;
6324 short int var12 /* : Bool */;
6325 short int var14 /* : Bool */;
6326 short int var15 /* : Bool */;
6327 int cltype16;
6328 int idtype17;
6329 const char* var_class_name18;
6330 val* var19 /* : nullable ALabel */;
6331 short int var20 /* : Bool */;
6332 short int var21 /* : Bool */;
6333 short int var23 /* : Bool */;
6334 short int var25 /* : Bool */;
6335 short int var26 /* : Bool */;
6336 int cltype27;
6337 int idtype28;
6338 const char* var_class_name29;
6339 var_old_child = p0;
6340 var_new_child = p1;
6341 var = self->attrs[COLOR_parser_nodes__ALoopExpr___n_kwloop].val; /* _n_kwloop on <self:ALoopExpr> */
6342 if (unlikely(var == NULL)) {
6343 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwloop");
6344 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3548);
6345 show_backtrace(1);
6346 }
6347 {
6348 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwloop> */
6349 var_other = var_old_child;
6350 {
6351 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TKwloop> */
6352 var6 = var == var_other;
6353 var4 = var6;
6354 goto RET_LABEL5;
6355 RET_LABEL5:(void)0;
6356 }
6357 }
6358 var2 = var4;
6359 goto RET_LABEL3;
6360 RET_LABEL3:(void)0;
6361 }
6362 var1 = var2;
6363 }
6364 if (var1){
6365 /* <var_new_child:nullable ANode> isa TKwloop */
6366 cltype = type_parser_nodes__TKwloop.color;
6367 idtype = type_parser_nodes__TKwloop.id;
6368 if(var_new_child == NULL) {
6369 var7 = 0;
6370 } else {
6371 if(cltype >= var_new_child->type->table_size) {
6372 var7 = 0;
6373 } else {
6374 var7 = var_new_child->type->type_table[cltype] == idtype;
6375 }
6376 }
6377 if (unlikely(!var7)) {
6378 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
6379 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwloop", var_class_name);
6380 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3549);
6381 show_backtrace(1);
6382 }
6383 {
6384 parser_prod__ALoopExpr__n_kwloop_61d(self, var_new_child); /* Direct call parser_prod#ALoopExpr#n_kwloop= on <self:ALoopExpr>*/
6385 }
6386 goto RET_LABEL;
6387 } else {
6388 }
6389 var8 = self->attrs[COLOR_parser_nodes__ALoopExpr___n_block].val; /* _n_block on <self:ALoopExpr> */
6390 if (var8 == NULL) {
6391 var9 = 0; /* <var_old_child:ANode> cannot be null */
6392 } else {
6393 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:nullable AExpr> */
6394 var_other = var_old_child;
6395 {
6396 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:nullable AExpr(AExpr)> */
6397 var14 = var8 == var_other;
6398 var12 = var14;
6399 goto RET_LABEL13;
6400 RET_LABEL13:(void)0;
6401 }
6402 }
6403 var10 = var12;
6404 goto RET_LABEL11;
6405 RET_LABEL11:(void)0;
6406 }
6407 var9 = var10;
6408 }
6409 if (var9){
6410 /* <var_new_child:nullable ANode> isa nullable AExpr */
6411 cltype16 = type_nullable_parser_nodes__AExpr.color;
6412 idtype17 = type_nullable_parser_nodes__AExpr.id;
6413 if(var_new_child == NULL) {
6414 var15 = 1;
6415 } else {
6416 if(cltype16 >= var_new_child->type->table_size) {
6417 var15 = 0;
6418 } else {
6419 var15 = var_new_child->type->type_table[cltype16] == idtype17;
6420 }
6421 }
6422 if (unlikely(!var15)) {
6423 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
6424 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AExpr", var_class_name18);
6425 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3553);
6426 show_backtrace(1);
6427 }
6428 {
6429 parser_prod__ALoopExpr__n_block_61d(self, var_new_child); /* Direct call parser_prod#ALoopExpr#n_block= on <self:ALoopExpr>*/
6430 }
6431 goto RET_LABEL;
6432 } else {
6433 }
6434 var19 = self->attrs[COLOR_parser_nodes__ALabelable___n_label].val; /* _n_label on <self:ALoopExpr> */
6435 if (var19 == NULL) {
6436 var20 = 0; /* <var_old_child:ANode> cannot be null */
6437 } else {
6438 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:nullable ALabel> */
6439 var_other = var_old_child;
6440 {
6441 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:nullable ALabel(ALabel)> */
6442 var25 = var19 == var_other;
6443 var23 = var25;
6444 goto RET_LABEL24;
6445 RET_LABEL24:(void)0;
6446 }
6447 }
6448 var21 = var23;
6449 goto RET_LABEL22;
6450 RET_LABEL22:(void)0;
6451 }
6452 var20 = var21;
6453 }
6454 if (var20){
6455 /* <var_new_child:nullable ANode> isa nullable ALabel */
6456 cltype27 = type_nullable_parser_nodes__ALabel.color;
6457 idtype28 = type_nullable_parser_nodes__ALabel.id;
6458 if(var_new_child == NULL) {
6459 var26 = 1;
6460 } else {
6461 if(cltype27 >= var_new_child->type->table_size) {
6462 var26 = 0;
6463 } else {
6464 var26 = var_new_child->type->type_table[cltype27] == idtype28;
6465 }
6466 }
6467 if (unlikely(!var26)) {
6468 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
6469 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ALabel", var_class_name29);
6470 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3557);
6471 show_backtrace(1);
6472 }
6473 {
6474 parser_prod__ALoopExpr__n_label_61d(self, var_new_child); /* Direct call parser_prod#ALoopExpr#n_label= on <self:ALoopExpr>*/
6475 }
6476 goto RET_LABEL;
6477 } else {
6478 }
6479 RET_LABEL:;
6480 }
6481 /* method parser_prod#ALoopExpr#replace_child for (self: Object, ANode, nullable ANode) */
6482 void VIRTUAL_parser_prod__ALoopExpr__replace_child(val* self, val* p0, val* p1) {
6483 parser_prod__ALoopExpr__replace_child(self, p0, p1); /* Direct call parser_prod#ALoopExpr#replace_child on <self:Object(ALoopExpr)>*/
6484 RET_LABEL:;
6485 }
6486 /* method parser_prod#ALoopExpr#n_kwloop= for (self: ALoopExpr, TKwloop) */
6487 void parser_prod__ALoopExpr__n_kwloop_61d(val* self, val* p0) {
6488 val* var_node /* var node: TKwloop */;
6489 var_node = p0;
6490 self->attrs[COLOR_parser_nodes__ALoopExpr___n_kwloop].val = var_node; /* _n_kwloop on <self:ALoopExpr> */
6491 {
6492 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwloop> */
6493 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwloop> */
6494 RET_LABEL1:(void)0;
6495 }
6496 }
6497 RET_LABEL:;
6498 }
6499 /* method parser_prod#ALoopExpr#n_kwloop= for (self: Object, TKwloop) */
6500 void VIRTUAL_parser_prod__ALoopExpr__n_kwloop_61d(val* self, val* p0) {
6501 parser_prod__ALoopExpr__n_kwloop_61d(self, p0); /* Direct call parser_prod#ALoopExpr#n_kwloop= on <self:Object(ALoopExpr)>*/
6502 RET_LABEL:;
6503 }
6504 /* method parser_prod#ALoopExpr#n_block= for (self: ALoopExpr, nullable AExpr) */
6505 void parser_prod__ALoopExpr__n_block_61d(val* self, val* p0) {
6506 val* var_node /* var node: nullable AExpr */;
6507 val* var /* : null */;
6508 short int var1 /* : Bool */;
6509 short int var2 /* : Bool */;
6510 val* var_other /* var other: nullable Object */;
6511 short int var4 /* : Bool */;
6512 short int var5 /* : Bool */;
6513 short int var6 /* : Bool */;
6514 var_node = p0;
6515 self->attrs[COLOR_parser_nodes__ALoopExpr___n_block].val = var_node; /* _n_block on <self:ALoopExpr> */
6516 var = NULL;
6517 if (var_node == NULL) {
6518 var1 = 0; /* is null */
6519 } else {
6520 var1 = 1; /* arg is null and recv is not */
6521 }
6522 if (0) {
6523 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AExpr> */
6524 var_other = var;
6525 {
6526 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AExpr(AExpr)>*/;
6527 var4 = var5;
6528 }
6529 var6 = !var4;
6530 var2 = var6;
6531 goto RET_LABEL3;
6532 RET_LABEL3:(void)0;
6533 }
6534 var1 = var2;
6535 }
6536 if (var1){
6537 {
6538 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AExpr(AExpr)> */
6539 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AExpr(AExpr)> */
6540 RET_LABEL7:(void)0;
6541 }
6542 }
6543 } else {
6544 }
6545 RET_LABEL:;
6546 }
6547 /* method parser_prod#ALoopExpr#n_block= for (self: Object, nullable AExpr) */
6548 void VIRTUAL_parser_prod__ALoopExpr__n_block_61d(val* self, val* p0) {
6549 parser_prod__ALoopExpr__n_block_61d(self, p0); /* Direct call parser_prod#ALoopExpr#n_block= on <self:Object(ALoopExpr)>*/
6550 RET_LABEL:;
6551 }
6552 /* method parser_prod#ALoopExpr#n_label= for (self: ALoopExpr, nullable ALabel) */
6553 void parser_prod__ALoopExpr__n_label_61d(val* self, val* p0) {
6554 val* var_node /* var node: nullable ALabel */;
6555 val* var /* : null */;
6556 short int var1 /* : Bool */;
6557 short int var2 /* : Bool */;
6558 val* var_other /* var other: nullable Object */;
6559 short int var4 /* : Bool */;
6560 short int var5 /* : Bool */;
6561 short int var6 /* : Bool */;
6562 var_node = p0;
6563 self->attrs[COLOR_parser_nodes__ALabelable___n_label].val = var_node; /* _n_label on <self:ALoopExpr> */
6564 var = NULL;
6565 if (var_node == NULL) {
6566 var1 = 0; /* is null */
6567 } else {
6568 var1 = 1; /* arg is null and recv is not */
6569 }
6570 if (0) {
6571 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable ALabel> */
6572 var_other = var;
6573 {
6574 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable ALabel(ALabel)>*/;
6575 var4 = var5;
6576 }
6577 var6 = !var4;
6578 var2 = var6;
6579 goto RET_LABEL3;
6580 RET_LABEL3:(void)0;
6581 }
6582 var1 = var2;
6583 }
6584 if (var1){
6585 {
6586 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable ALabel(ALabel)> */
6587 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable ALabel(ALabel)> */
6588 RET_LABEL7:(void)0;
6589 }
6590 }
6591 } else {
6592 }
6593 RET_LABEL:;
6594 }
6595 /* method parser_prod#ALoopExpr#n_label= for (self: Object, nullable ALabel) */
6596 void VIRTUAL_parser_prod__ALoopExpr__n_label_61d(val* self, val* p0) {
6597 parser_prod__ALoopExpr__n_label_61d(self, p0); /* Direct call parser_prod#ALoopExpr#n_label= on <self:Object(ALoopExpr)>*/
6598 RET_LABEL:;
6599 }
6600 /* method parser_prod#ALoopExpr#visit_all for (self: ALoopExpr, Visitor) */
6601 void parser_prod__ALoopExpr__visit_all(val* self, val* p0) {
6602 val* var_v /* var v: Visitor */;
6603 val* var /* : TKwloop */;
6604 val* var1 /* : nullable AExpr */;
6605 val* var2 /* : nullable ALabel */;
6606 var_v = p0;
6607 var = self->attrs[COLOR_parser_nodes__ALoopExpr___n_kwloop].val; /* _n_kwloop on <self:ALoopExpr> */
6608 if (unlikely(var == NULL)) {
6609 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwloop");
6610 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3581);
6611 show_backtrace(1);
6612 }
6613 {
6614 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6615 }
6616 var1 = self->attrs[COLOR_parser_nodes__ALoopExpr___n_block].val; /* _n_block on <self:ALoopExpr> */
6617 {
6618 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6619 }
6620 var2 = self->attrs[COLOR_parser_nodes__ALabelable___n_label].val; /* _n_label on <self:ALoopExpr> */
6621 {
6622 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6623 }
6624 RET_LABEL:;
6625 }
6626 /* method parser_prod#ALoopExpr#visit_all for (self: Object, Visitor) */
6627 void VIRTUAL_parser_prod__ALoopExpr__visit_all(val* self, val* p0) {
6628 parser_prod__ALoopExpr__visit_all(self, p0); /* Direct call parser_prod#ALoopExpr#visit_all on <self:Object(ALoopExpr)>*/
6629 RET_LABEL:;
6630 }
6631 /* method parser_prod#AForExpr#init_aforexpr for (self: AForExpr, nullable TKwfor, Collection[Object], nullable AExpr, nullable TKwdo, nullable AExpr, nullable ALabel) */
6632 void parser_prod__AForExpr__init_aforexpr(val* self, val* p0, val* p1, val* p2, val* p3, val* p4, val* p5) {
6633 val* var_n_kwfor /* var n_kwfor: nullable TKwfor */;
6634 val* var_n_ids /* var n_ids: Collection[Object] */;
6635 val* var_n_expr /* var n_expr: nullable AExpr */;
6636 val* var_n_kwdo /* var n_kwdo: nullable TKwdo */;
6637 val* var_n_block /* var n_block: nullable AExpr */;
6638 val* var_n_label /* var n_label: nullable ALabel */;
6639 val* var /* : ANodes[TId] */;
6640 val* var3 /* : ANodes[TId] */;
6641 val* var6 /* : null */;
6642 short int var7 /* : Bool */;
6643 short int var8 /* : Bool */;
6644 val* var_other /* var other: nullable Object */;
6645 short int var10 /* : Bool */;
6646 short int var11 /* : Bool */;
6647 short int var12 /* : Bool */;
6648 val* var14 /* : null */;
6649 short int var15 /* : Bool */;
6650 short int var16 /* : Bool */;
6651 short int var18 /* : Bool */;
6652 short int var19 /* : Bool */;
6653 short int var20 /* : Bool */;
6654 var_n_kwfor = p0;
6655 var_n_ids = p1;
6656 var_n_expr = p2;
6657 var_n_kwdo = p3;
6658 var_n_block = p4;
6659 var_n_label = p5;
6660 if (unlikely(var_n_kwfor == NULL)) {
6661 PRINT_ERROR("Runtime error: %s", "Cast failed");
6662 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3596);
6663 show_backtrace(1);
6664 }
6665 self->attrs[COLOR_parser_nodes__AForExpr___n_kwfor].val = var_n_kwfor; /* _n_kwfor on <self:AForExpr> */
6666 if (var_n_kwfor == NULL) {
6667 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6668 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3597);
6669 show_backtrace(1);
6670 } else {
6671 { /* Inline parser_nodes#ANode#parent= (var_n_kwfor,self) on <var_n_kwfor:nullable TKwfor> */
6672 if (unlikely(var_n_kwfor == NULL)) {
6673 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6674 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
6675 show_backtrace(1);
6676 }
6677 var_n_kwfor->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwfor:nullable TKwfor> */
6678 RET_LABEL1:(void)0;
6679 }
6680 }
6681 {
6682 { /* Inline parser_nodes#AForExpr#n_ids (self) on <self:AForExpr> */
6683 var3 = self->attrs[COLOR_parser_nodes__AForExpr___n_ids].val; /* _n_ids on <self:AForExpr> */
6684 if (unlikely(var3 == NULL)) {
6685 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_ids");
6686 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 1604);
6687 show_backtrace(1);
6688 }
6689 var = var3;
6690 RET_LABEL2:(void)0;
6691 }
6692 }
6693 {
6694 parser_nodes__ANodes__unsafe_add_all(var, var_n_ids); /* Direct call parser_nodes#ANodes#unsafe_add_all on <var:ANodes[TId]>*/
6695 }
6696 if (unlikely(var_n_expr == NULL)) {
6697 PRINT_ERROR("Runtime error: %s", "Cast failed");
6698 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3599);
6699 show_backtrace(1);
6700 }
6701 self->attrs[COLOR_parser_nodes__AForExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AForExpr> */
6702 if (var_n_expr == NULL) {
6703 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6704 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3600);
6705 show_backtrace(1);
6706 } else {
6707 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
6708 if (unlikely(var_n_expr == NULL)) {
6709 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6710 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
6711 show_backtrace(1);
6712 }
6713 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
6714 RET_LABEL4:(void)0;
6715 }
6716 }
6717 if (unlikely(var_n_kwdo == NULL)) {
6718 PRINT_ERROR("Runtime error: %s", "Cast failed");
6719 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3601);
6720 show_backtrace(1);
6721 }
6722 self->attrs[COLOR_parser_nodes__AForExpr___n_kwdo].val = var_n_kwdo; /* _n_kwdo on <self:AForExpr> */
6723 if (var_n_kwdo == NULL) {
6724 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6725 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3602);
6726 show_backtrace(1);
6727 } else {
6728 { /* Inline parser_nodes#ANode#parent= (var_n_kwdo,self) on <var_n_kwdo:nullable TKwdo> */
6729 if (unlikely(var_n_kwdo == NULL)) {
6730 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6731 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
6732 show_backtrace(1);
6733 }
6734 var_n_kwdo->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwdo:nullable TKwdo> */
6735 RET_LABEL5:(void)0;
6736 }
6737 }
6738 self->attrs[COLOR_parser_nodes__AForExpr___n_block].val = var_n_block; /* _n_block on <self:AForExpr> */
6739 var6 = NULL;
6740 if (var_n_block == NULL) {
6741 var7 = 0; /* is null */
6742 } else {
6743 var7 = 1; /* arg is null and recv is not */
6744 }
6745 if (0) {
6746 { /* Inline kernel#Object#!= (var_n_block,var6) on <var_n_block:nullable AExpr> */
6747 var_other = var6;
6748 {
6749 var11 = ((short int (*)(val*, val*))(var_n_block->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_block, var_other) /* == on <var_n_block:nullable AExpr(AExpr)>*/;
6750 var10 = var11;
6751 }
6752 var12 = !var10;
6753 var8 = var12;
6754 goto RET_LABEL9;
6755 RET_LABEL9:(void)0;
6756 }
6757 var7 = var8;
6758 }
6759 if (var7){
6760 {
6761 { /* Inline parser_nodes#ANode#parent= (var_n_block,self) on <var_n_block:nullable AExpr(AExpr)> */
6762 var_n_block->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_block:nullable AExpr(AExpr)> */
6763 RET_LABEL13:(void)0;
6764 }
6765 }
6766 } else {
6767 }
6768 self->attrs[COLOR_parser_nodes__ALabelable___n_label].val = var_n_label; /* _n_label on <self:AForExpr> */
6769 var14 = NULL;
6770 if (var_n_label == NULL) {
6771 var15 = 0; /* is null */
6772 } else {
6773 var15 = 1; /* arg is null and recv is not */
6774 }
6775 if (0) {
6776 { /* Inline kernel#Object#!= (var_n_label,var14) on <var_n_label:nullable ALabel> */
6777 var_other = var14;
6778 {
6779 var19 = ((short int (*)(val*, val*))(var_n_label->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_label, var_other) /* == on <var_n_label:nullable ALabel(ALabel)>*/;
6780 var18 = var19;
6781 }
6782 var20 = !var18;
6783 var16 = var20;
6784 goto RET_LABEL17;
6785 RET_LABEL17:(void)0;
6786 }
6787 var15 = var16;
6788 }
6789 if (var15){
6790 {
6791 { /* Inline parser_nodes#ANode#parent= (var_n_label,self) on <var_n_label:nullable ALabel(ALabel)> */
6792 var_n_label->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_label:nullable ALabel(ALabel)> */
6793 RET_LABEL21:(void)0;
6794 }
6795 }
6796 } else {
6797 }
6798 RET_LABEL:;
6799 }
6800 /* method parser_prod#AForExpr#init_aforexpr for (self: Object, nullable TKwfor, Collection[Object], nullable AExpr, nullable TKwdo, nullable AExpr, nullable ALabel) */
6801 void VIRTUAL_parser_prod__AForExpr__init_aforexpr(val* self, val* p0, val* p1, val* p2, val* p3, val* p4, val* p5) {
6802 parser_prod__AForExpr__init_aforexpr(self, p0, p1, p2, p3, p4, p5); /* Direct call parser_prod#AForExpr#init_aforexpr on <self:Object(AForExpr)>*/
6803 RET_LABEL:;
6804 }
6805 /* method parser_prod#AForExpr#replace_child for (self: AForExpr, ANode, nullable ANode) */
6806 void parser_prod__AForExpr__replace_child(val* self, val* p0, val* p1) {
6807 val* var_old_child /* var old_child: ANode */;
6808 val* var_new_child /* var new_child: nullable ANode */;
6809 val* var /* : TKwfor */;
6810 short int var1 /* : Bool */;
6811 short int var2 /* : Bool */;
6812 val* var_other /* var other: nullable Object */;
6813 short int var4 /* : Bool */;
6814 short int var6 /* : Bool */;
6815 short int var7 /* : Bool */;
6816 int cltype;
6817 int idtype;
6818 const char* var_class_name;
6819 val* var8 /* : ANodes[TId] */;
6820 val* var10 /* : ANodes[TId] */;
6821 short int var11 /* : Bool */;
6822 val* var12 /* : AExpr */;
6823 short int var13 /* : Bool */;
6824 short int var14 /* : Bool */;
6825 short int var16 /* : Bool */;
6826 short int var18 /* : Bool */;
6827 short int var19 /* : Bool */;
6828 int cltype20;
6829 int idtype21;
6830 const char* var_class_name22;
6831 val* var23 /* : TKwdo */;
6832 short int var24 /* : Bool */;
6833 short int var25 /* : Bool */;
6834 short int var27 /* : Bool */;
6835 short int var29 /* : Bool */;
6836 short int var30 /* : Bool */;
6837 int cltype31;
6838 int idtype32;
6839 const char* var_class_name33;
6840 val* var34 /* : nullable AExpr */;
6841 short int var35 /* : Bool */;
6842 short int var36 /* : Bool */;
6843 short int var38 /* : Bool */;
6844 short int var40 /* : Bool */;
6845 short int var41 /* : Bool */;
6846 int cltype42;
6847 int idtype43;
6848 const char* var_class_name44;
6849 val* var45 /* : nullable ALabel */;
6850 short int var46 /* : Bool */;
6851 short int var47 /* : Bool */;
6852 short int var49 /* : Bool */;
6853 short int var51 /* : Bool */;
6854 short int var52 /* : Bool */;
6855 int cltype53;
6856 int idtype54;
6857 const char* var_class_name55;
6858 var_old_child = p0;
6859 var_new_child = p1;
6860 var = self->attrs[COLOR_parser_nodes__AForExpr___n_kwfor].val; /* _n_kwfor on <self:AForExpr> */
6861 if (unlikely(var == NULL)) {
6862 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwfor");
6863 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3611);
6864 show_backtrace(1);
6865 }
6866 {
6867 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwfor> */
6868 var_other = var_old_child;
6869 {
6870 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TKwfor> */
6871 var6 = var == var_other;
6872 var4 = var6;
6873 goto RET_LABEL5;
6874 RET_LABEL5:(void)0;
6875 }
6876 }
6877 var2 = var4;
6878 goto RET_LABEL3;
6879 RET_LABEL3:(void)0;
6880 }
6881 var1 = var2;
6882 }
6883 if (var1){
6884 /* <var_new_child:nullable ANode> isa TKwfor */
6885 cltype = type_parser_nodes__TKwfor.color;
6886 idtype = type_parser_nodes__TKwfor.id;
6887 if(var_new_child == NULL) {
6888 var7 = 0;
6889 } else {
6890 if(cltype >= var_new_child->type->table_size) {
6891 var7 = 0;
6892 } else {
6893 var7 = var_new_child->type->type_table[cltype] == idtype;
6894 }
6895 }
6896 if (unlikely(!var7)) {
6897 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
6898 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwfor", var_class_name);
6899 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3612);
6900 show_backtrace(1);
6901 }
6902 {
6903 parser_prod__AForExpr__n_kwfor_61d(self, var_new_child); /* Direct call parser_prod#AForExpr#n_kwfor= on <self:AForExpr>*/
6904 }
6905 goto RET_LABEL;
6906 } else {
6907 }
6908 {
6909 { /* Inline parser_nodes#AForExpr#n_ids (self) on <self:AForExpr> */
6910 var10 = self->attrs[COLOR_parser_nodes__AForExpr___n_ids].val; /* _n_ids on <self:AForExpr> */
6911 if (unlikely(var10 == NULL)) {
6912 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_ids");
6913 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 1604);
6914 show_backtrace(1);
6915 }
6916 var8 = var10;
6917 RET_LABEL9:(void)0;
6918 }
6919 }
6920 {
6921 var11 = parser_nodes__ANodes__replace_child(var8, var_old_child, var_new_child);
6922 }
6923 if (var11){
6924 goto RET_LABEL;
6925 } else {
6926 }
6927 var12 = self->attrs[COLOR_parser_nodes__AForExpr___n_expr].val; /* _n_expr on <self:AForExpr> */
6928 if (unlikely(var12 == NULL)) {
6929 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
6930 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3616);
6931 show_backtrace(1);
6932 }
6933 {
6934 { /* Inline kernel#Object#== (var12,var_old_child) on <var12:AExpr> */
6935 var_other = var_old_child;
6936 {
6937 { /* Inline kernel#Object#is_same_instance (var12,var_other) on <var12:AExpr> */
6938 var18 = var12 == var_other;
6939 var16 = var18;
6940 goto RET_LABEL17;
6941 RET_LABEL17:(void)0;
6942 }
6943 }
6944 var14 = var16;
6945 goto RET_LABEL15;
6946 RET_LABEL15:(void)0;
6947 }
6948 var13 = var14;
6949 }
6950 if (var13){
6951 /* <var_new_child:nullable ANode> isa AExpr */
6952 cltype20 = type_parser_nodes__AExpr.color;
6953 idtype21 = type_parser_nodes__AExpr.id;
6954 if(var_new_child == NULL) {
6955 var19 = 0;
6956 } else {
6957 if(cltype20 >= var_new_child->type->table_size) {
6958 var19 = 0;
6959 } else {
6960 var19 = var_new_child->type->type_table[cltype20] == idtype21;
6961 }
6962 }
6963 if (unlikely(!var19)) {
6964 var_class_name22 = var_new_child == NULL ? "null" : var_new_child->type->name;
6965 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name22);
6966 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3617);
6967 show_backtrace(1);
6968 }
6969 {
6970 parser_prod__AForExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AForExpr#n_expr= on <self:AForExpr>*/
6971 }
6972 goto RET_LABEL;
6973 } else {
6974 }
6975 var23 = self->attrs[COLOR_parser_nodes__AForExpr___n_kwdo].val; /* _n_kwdo on <self:AForExpr> */
6976 if (unlikely(var23 == NULL)) {
6977 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwdo");
6978 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3620);
6979 show_backtrace(1);
6980 }
6981 {
6982 { /* Inline kernel#Object#== (var23,var_old_child) on <var23:TKwdo> */
6983 var_other = var_old_child;
6984 {
6985 { /* Inline kernel#Object#is_same_instance (var23,var_other) on <var23:TKwdo> */
6986 var29 = var23 == var_other;
6987 var27 = var29;
6988 goto RET_LABEL28;
6989 RET_LABEL28:(void)0;
6990 }
6991 }
6992 var25 = var27;
6993 goto RET_LABEL26;
6994 RET_LABEL26:(void)0;
6995 }
6996 var24 = var25;
6997 }
6998 if (var24){
6999 /* <var_new_child:nullable ANode> isa TKwdo */
7000 cltype31 = type_parser_nodes__TKwdo.color;
7001 idtype32 = type_parser_nodes__TKwdo.id;
7002 if(var_new_child == NULL) {
7003 var30 = 0;
7004 } else {
7005 if(cltype31 >= var_new_child->type->table_size) {
7006 var30 = 0;
7007 } else {
7008 var30 = var_new_child->type->type_table[cltype31] == idtype32;
7009 }
7010 }
7011 if (unlikely(!var30)) {
7012 var_class_name33 = var_new_child == NULL ? "null" : var_new_child->type->name;
7013 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwdo", var_class_name33);
7014 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3621);
7015 show_backtrace(1);
7016 }
7017 {
7018 parser_prod__AForExpr__n_kwdo_61d(self, var_new_child); /* Direct call parser_prod#AForExpr#n_kwdo= on <self:AForExpr>*/
7019 }
7020 goto RET_LABEL;
7021 } else {
7022 }
7023 var34 = self->attrs[COLOR_parser_nodes__AForExpr___n_block].val; /* _n_block on <self:AForExpr> */
7024 if (var34 == NULL) {
7025 var35 = 0; /* <var_old_child:ANode> cannot be null */
7026 } else {
7027 { /* Inline kernel#Object#== (var34,var_old_child) on <var34:nullable AExpr> */
7028 var_other = var_old_child;
7029 {
7030 { /* Inline kernel#Object#is_same_instance (var34,var_other) on <var34:nullable AExpr(AExpr)> */
7031 var40 = var34 == var_other;
7032 var38 = var40;
7033 goto RET_LABEL39;
7034 RET_LABEL39:(void)0;
7035 }
7036 }
7037 var36 = var38;
7038 goto RET_LABEL37;
7039 RET_LABEL37:(void)0;
7040 }
7041 var35 = var36;
7042 }
7043 if (var35){
7044 /* <var_new_child:nullable ANode> isa nullable AExpr */
7045 cltype42 = type_nullable_parser_nodes__AExpr.color;
7046 idtype43 = type_nullable_parser_nodes__AExpr.id;
7047 if(var_new_child == NULL) {
7048 var41 = 1;
7049 } else {
7050 if(cltype42 >= var_new_child->type->table_size) {
7051 var41 = 0;
7052 } else {
7053 var41 = var_new_child->type->type_table[cltype42] == idtype43;
7054 }
7055 }
7056 if (unlikely(!var41)) {
7057 var_class_name44 = var_new_child == NULL ? "null" : var_new_child->type->name;
7058 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AExpr", var_class_name44);
7059 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3625);
7060 show_backtrace(1);
7061 }
7062 {
7063 parser_prod__AForExpr__n_block_61d(self, var_new_child); /* Direct call parser_prod#AForExpr#n_block= on <self:AForExpr>*/
7064 }
7065 goto RET_LABEL;
7066 } else {
7067 }
7068 var45 = self->attrs[COLOR_parser_nodes__ALabelable___n_label].val; /* _n_label on <self:AForExpr> */
7069 if (var45 == NULL) {
7070 var46 = 0; /* <var_old_child:ANode> cannot be null */
7071 } else {
7072 { /* Inline kernel#Object#== (var45,var_old_child) on <var45:nullable ALabel> */
7073 var_other = var_old_child;
7074 {
7075 { /* Inline kernel#Object#is_same_instance (var45,var_other) on <var45:nullable ALabel(ALabel)> */
7076 var51 = var45 == var_other;
7077 var49 = var51;
7078 goto RET_LABEL50;
7079 RET_LABEL50:(void)0;
7080 }
7081 }
7082 var47 = var49;
7083 goto RET_LABEL48;
7084 RET_LABEL48:(void)0;
7085 }
7086 var46 = var47;
7087 }
7088 if (var46){
7089 /* <var_new_child:nullable ANode> isa nullable ALabel */
7090 cltype53 = type_nullable_parser_nodes__ALabel.color;
7091 idtype54 = type_nullable_parser_nodes__ALabel.id;
7092 if(var_new_child == NULL) {
7093 var52 = 1;
7094 } else {
7095 if(cltype53 >= var_new_child->type->table_size) {
7096 var52 = 0;
7097 } else {
7098 var52 = var_new_child->type->type_table[cltype53] == idtype54;
7099 }
7100 }
7101 if (unlikely(!var52)) {
7102 var_class_name55 = var_new_child == NULL ? "null" : var_new_child->type->name;
7103 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ALabel", var_class_name55);
7104 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3629);
7105 show_backtrace(1);
7106 }
7107 {
7108 parser_prod__AForExpr__n_label_61d(self, var_new_child); /* Direct call parser_prod#AForExpr#n_label= on <self:AForExpr>*/
7109 }
7110 goto RET_LABEL;
7111 } else {
7112 }
7113 RET_LABEL:;
7114 }
7115 /* method parser_prod#AForExpr#replace_child for (self: Object, ANode, nullable ANode) */
7116 void VIRTUAL_parser_prod__AForExpr__replace_child(val* self, val* p0, val* p1) {
7117 parser_prod__AForExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AForExpr#replace_child on <self:Object(AForExpr)>*/
7118 RET_LABEL:;
7119 }
7120 /* method parser_prod#AForExpr#n_kwfor= for (self: AForExpr, TKwfor) */
7121 void parser_prod__AForExpr__n_kwfor_61d(val* self, val* p0) {
7122 val* var_node /* var node: TKwfor */;
7123 var_node = p0;
7124 self->attrs[COLOR_parser_nodes__AForExpr___n_kwfor].val = var_node; /* _n_kwfor on <self:AForExpr> */
7125 {
7126 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwfor> */
7127 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwfor> */
7128 RET_LABEL1:(void)0;
7129 }
7130 }
7131 RET_LABEL:;
7132 }
7133 /* method parser_prod#AForExpr#n_kwfor= for (self: Object, TKwfor) */
7134 void VIRTUAL_parser_prod__AForExpr__n_kwfor_61d(val* self, val* p0) {
7135 parser_prod__AForExpr__n_kwfor_61d(self, p0); /* Direct call parser_prod#AForExpr#n_kwfor= on <self:Object(AForExpr)>*/
7136 RET_LABEL:;
7137 }
7138 /* method parser_prod#AForExpr#n_expr= for (self: AForExpr, AExpr) */
7139 void parser_prod__AForExpr__n_expr_61d(val* self, val* p0) {
7140 val* var_node /* var node: AExpr */;
7141 var_node = p0;
7142 self->attrs[COLOR_parser_nodes__AForExpr___n_expr].val = var_node; /* _n_expr on <self:AForExpr> */
7143 {
7144 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
7145 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
7146 RET_LABEL1:(void)0;
7147 }
7148 }
7149 RET_LABEL:;
7150 }
7151 /* method parser_prod#AForExpr#n_expr= for (self: Object, AExpr) */
7152 void VIRTUAL_parser_prod__AForExpr__n_expr_61d(val* self, val* p0) {
7153 parser_prod__AForExpr__n_expr_61d(self, p0); /* Direct call parser_prod#AForExpr#n_expr= on <self:Object(AForExpr)>*/
7154 RET_LABEL:;
7155 }
7156 /* method parser_prod#AForExpr#n_kwdo= for (self: AForExpr, TKwdo) */
7157 void parser_prod__AForExpr__n_kwdo_61d(val* self, val* p0) {
7158 val* var_node /* var node: TKwdo */;
7159 var_node = p0;
7160 self->attrs[COLOR_parser_nodes__AForExpr___n_kwdo].val = var_node; /* _n_kwdo on <self:AForExpr> */
7161 {
7162 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwdo> */
7163 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwdo> */
7164 RET_LABEL1:(void)0;
7165 }
7166 }
7167 RET_LABEL:;
7168 }
7169 /* method parser_prod#AForExpr#n_kwdo= for (self: Object, TKwdo) */
7170 void VIRTUAL_parser_prod__AForExpr__n_kwdo_61d(val* self, val* p0) {
7171 parser_prod__AForExpr__n_kwdo_61d(self, p0); /* Direct call parser_prod#AForExpr#n_kwdo= on <self:Object(AForExpr)>*/
7172 RET_LABEL:;
7173 }
7174 /* method parser_prod#AForExpr#n_block= for (self: AForExpr, nullable AExpr) */
7175 void parser_prod__AForExpr__n_block_61d(val* self, val* p0) {
7176 val* var_node /* var node: nullable AExpr */;
7177 val* var /* : null */;
7178 short int var1 /* : Bool */;
7179 short int var2 /* : Bool */;
7180 val* var_other /* var other: nullable Object */;
7181 short int var4 /* : Bool */;
7182 short int var5 /* : Bool */;
7183 short int var6 /* : Bool */;
7184 var_node = p0;
7185 self->attrs[COLOR_parser_nodes__AForExpr___n_block].val = var_node; /* _n_block on <self:AForExpr> */
7186 var = NULL;
7187 if (var_node == NULL) {
7188 var1 = 0; /* is null */
7189 } else {
7190 var1 = 1; /* arg is null and recv is not */
7191 }
7192 if (0) {
7193 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AExpr> */
7194 var_other = var;
7195 {
7196 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AExpr(AExpr)>*/;
7197 var4 = var5;
7198 }
7199 var6 = !var4;
7200 var2 = var6;
7201 goto RET_LABEL3;
7202 RET_LABEL3:(void)0;
7203 }
7204 var1 = var2;
7205 }
7206 if (var1){
7207 {
7208 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AExpr(AExpr)> */
7209 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AExpr(AExpr)> */
7210 RET_LABEL7:(void)0;
7211 }
7212 }
7213 } else {
7214 }
7215 RET_LABEL:;
7216 }
7217 /* method parser_prod#AForExpr#n_block= for (self: Object, nullable AExpr) */
7218 void VIRTUAL_parser_prod__AForExpr__n_block_61d(val* self, val* p0) {
7219 parser_prod__AForExpr__n_block_61d(self, p0); /* Direct call parser_prod#AForExpr#n_block= on <self:Object(AForExpr)>*/
7220 RET_LABEL:;
7221 }
7222 /* method parser_prod#AForExpr#n_label= for (self: AForExpr, nullable ALabel) */
7223 void parser_prod__AForExpr__n_label_61d(val* self, val* p0) {
7224 val* var_node /* var node: nullable ALabel */;
7225 val* var /* : null */;
7226 short int var1 /* : Bool */;
7227 short int var2 /* : Bool */;
7228 val* var_other /* var other: nullable Object */;
7229 short int var4 /* : Bool */;
7230 short int var5 /* : Bool */;
7231 short int var6 /* : Bool */;
7232 var_node = p0;
7233 self->attrs[COLOR_parser_nodes__ALabelable___n_label].val = var_node; /* _n_label on <self:AForExpr> */
7234 var = NULL;
7235 if (var_node == NULL) {
7236 var1 = 0; /* is null */
7237 } else {
7238 var1 = 1; /* arg is null and recv is not */
7239 }
7240 if (0) {
7241 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable ALabel> */
7242 var_other = var;
7243 {
7244 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable ALabel(ALabel)>*/;
7245 var4 = var5;
7246 }
7247 var6 = !var4;
7248 var2 = var6;
7249 goto RET_LABEL3;
7250 RET_LABEL3:(void)0;
7251 }
7252 var1 = var2;
7253 }
7254 if (var1){
7255 {
7256 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable ALabel(ALabel)> */
7257 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable ALabel(ALabel)> */
7258 RET_LABEL7:(void)0;
7259 }
7260 }
7261 } else {
7262 }
7263 RET_LABEL:;
7264 }
7265 /* method parser_prod#AForExpr#n_label= for (self: Object, nullable ALabel) */
7266 void VIRTUAL_parser_prod__AForExpr__n_label_61d(val* self, val* p0) {
7267 parser_prod__AForExpr__n_label_61d(self, p0); /* Direct call parser_prod#AForExpr#n_label= on <self:Object(AForExpr)>*/
7268 RET_LABEL:;
7269 }
7270 /* method parser_prod#AForExpr#visit_all for (self: AForExpr, Visitor) */
7271 void parser_prod__AForExpr__visit_all(val* self, val* p0) {
7272 val* var_v /* var v: Visitor */;
7273 val* var /* : TKwfor */;
7274 val* var1 /* : ANodes[TId] */;
7275 val* var3 /* : ANodes[TId] */;
7276 val* var4 /* : AExpr */;
7277 val* var5 /* : TKwdo */;
7278 val* var6 /* : nullable AExpr */;
7279 val* var7 /* : nullable ALabel */;
7280 var_v = p0;
7281 var = self->attrs[COLOR_parser_nodes__AForExpr___n_kwfor].val; /* _n_kwfor on <self:AForExpr> */
7282 if (unlikely(var == NULL)) {
7283 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwfor");
7284 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3663);
7285 show_backtrace(1);
7286 }
7287 {
7288 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7289 }
7290 {
7291 { /* Inline parser_nodes#AForExpr#n_ids (self) on <self:AForExpr> */
7292 var3 = self->attrs[COLOR_parser_nodes__AForExpr___n_ids].val; /* _n_ids on <self:AForExpr> */
7293 if (unlikely(var3 == NULL)) {
7294 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_ids");
7295 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 1604);
7296 show_backtrace(1);
7297 }
7298 var1 = var3;
7299 RET_LABEL2:(void)0;
7300 }
7301 }
7302 {
7303 parser_nodes__ANodes__visit_all(var1, var_v); /* Direct call parser_nodes#ANodes#visit_all on <var1:ANodes[TId]>*/
7304 }
7305 var4 = self->attrs[COLOR_parser_nodes__AForExpr___n_expr].val; /* _n_expr on <self:AForExpr> */
7306 if (unlikely(var4 == NULL)) {
7307 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
7308 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3665);
7309 show_backtrace(1);
7310 }
7311 {
7312 parser_nodes__Visitor__enter_visit(var_v, var4); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7313 }
7314 var5 = self->attrs[COLOR_parser_nodes__AForExpr___n_kwdo].val; /* _n_kwdo on <self:AForExpr> */
7315 if (unlikely(var5 == NULL)) {
7316 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwdo");
7317 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3666);
7318 show_backtrace(1);
7319 }
7320 {
7321 parser_nodes__Visitor__enter_visit(var_v, var5); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7322 }
7323 var6 = self->attrs[COLOR_parser_nodes__AForExpr___n_block].val; /* _n_block on <self:AForExpr> */
7324 {
7325 parser_nodes__Visitor__enter_visit(var_v, var6); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7326 }
7327 var7 = self->attrs[COLOR_parser_nodes__ALabelable___n_label].val; /* _n_label on <self:AForExpr> */
7328 {
7329 parser_nodes__Visitor__enter_visit(var_v, var7); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7330 }
7331 RET_LABEL:;
7332 }
7333 /* method parser_prod#AForExpr#visit_all for (self: Object, Visitor) */
7334 void VIRTUAL_parser_prod__AForExpr__visit_all(val* self, val* p0) {
7335 parser_prod__AForExpr__visit_all(self, p0); /* Direct call parser_prod#AForExpr#visit_all on <self:Object(AForExpr)>*/
7336 RET_LABEL:;
7337 }
7338 /* method parser_prod#AAssertExpr#init_aassertexpr for (self: AAssertExpr, nullable TKwassert, nullable TId, nullable AExpr, nullable AExpr) */
7339 void parser_prod__AAssertExpr__init_aassertexpr(val* self, val* p0, val* p1, val* p2, val* p3) {
7340 val* var_n_kwassert /* var n_kwassert: nullable TKwassert */;
7341 val* var_n_id /* var n_id: nullable TId */;
7342 val* var_n_expr /* var n_expr: nullable AExpr */;
7343 val* var_n_else /* var n_else: nullable AExpr */;
7344 val* var /* : null */;
7345 short int var2 /* : Bool */;
7346 short int var3 /* : Bool */;
7347 val* var_other /* var other: nullable Object */;
7348 short int var5 /* : Bool */;
7349 short int var6 /* : Bool */;
7350 short int var7 /* : Bool */;
7351 val* var10 /* : null */;
7352 short int var11 /* : Bool */;
7353 short int var12 /* : Bool */;
7354 short int var14 /* : Bool */;
7355 short int var15 /* : Bool */;
7356 short int var16 /* : Bool */;
7357 var_n_kwassert = p0;
7358 var_n_id = p1;
7359 var_n_expr = p2;
7360 var_n_else = p3;
7361 if (unlikely(var_n_kwassert == NULL)) {
7362 PRINT_ERROR("Runtime error: %s", "Cast failed");
7363 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3679);
7364 show_backtrace(1);
7365 }
7366 self->attrs[COLOR_parser_nodes__AAssertExpr___n_kwassert].val = var_n_kwassert; /* _n_kwassert on <self:AAssertExpr> */
7367 if (var_n_kwassert == NULL) {
7368 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7369 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3680);
7370 show_backtrace(1);
7371 } else {
7372 { /* Inline parser_nodes#ANode#parent= (var_n_kwassert,self) on <var_n_kwassert:nullable TKwassert> */
7373 if (unlikely(var_n_kwassert == NULL)) {
7374 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7375 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
7376 show_backtrace(1);
7377 }
7378 var_n_kwassert->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwassert:nullable TKwassert> */
7379 RET_LABEL1:(void)0;
7380 }
7381 }
7382 self->attrs[COLOR_parser_nodes__AAssertExpr___n_id].val = var_n_id; /* _n_id on <self:AAssertExpr> */
7383 var = NULL;
7384 if (var_n_id == NULL) {
7385 var2 = 0; /* is null */
7386 } else {
7387 var2 = 1; /* arg is null and recv is not */
7388 }
7389 if (0) {
7390 { /* Inline kernel#Object#!= (var_n_id,var) on <var_n_id:nullable TId> */
7391 var_other = var;
7392 {
7393 var6 = ((short int (*)(val*, val*))(var_n_id->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_id, var_other) /* == on <var_n_id:nullable TId(TId)>*/;
7394 var5 = var6;
7395 }
7396 var7 = !var5;
7397 var3 = var7;
7398 goto RET_LABEL4;
7399 RET_LABEL4:(void)0;
7400 }
7401 var2 = var3;
7402 }
7403 if (var2){
7404 {
7405 { /* Inline parser_nodes#ANode#parent= (var_n_id,self) on <var_n_id:nullable TId(TId)> */
7406 var_n_id->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_id:nullable TId(TId)> */
7407 RET_LABEL8:(void)0;
7408 }
7409 }
7410 } else {
7411 }
7412 if (unlikely(var_n_expr == NULL)) {
7413 PRINT_ERROR("Runtime error: %s", "Cast failed");
7414 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3683);
7415 show_backtrace(1);
7416 }
7417 self->attrs[COLOR_parser_nodes__AAssertExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AAssertExpr> */
7418 if (var_n_expr == NULL) {
7419 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7420 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3684);
7421 show_backtrace(1);
7422 } else {
7423 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
7424 if (unlikely(var_n_expr == NULL)) {
7425 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7426 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
7427 show_backtrace(1);
7428 }
7429 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
7430 RET_LABEL9:(void)0;
7431 }
7432 }
7433 self->attrs[COLOR_parser_nodes__AAssertExpr___n_else].val = var_n_else; /* _n_else on <self:AAssertExpr> */
7434 var10 = NULL;
7435 if (var_n_else == NULL) {
7436 var11 = 0; /* is null */
7437 } else {
7438 var11 = 1; /* arg is null and recv is not */
7439 }
7440 if (0) {
7441 { /* Inline kernel#Object#!= (var_n_else,var10) on <var_n_else:nullable AExpr> */
7442 var_other = var10;
7443 {
7444 var15 = ((short int (*)(val*, val*))(var_n_else->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_else, var_other) /* == on <var_n_else:nullable AExpr(AExpr)>*/;
7445 var14 = var15;
7446 }
7447 var16 = !var14;
7448 var12 = var16;
7449 goto RET_LABEL13;
7450 RET_LABEL13:(void)0;
7451 }
7452 var11 = var12;
7453 }
7454 if (var11){
7455 {
7456 { /* Inline parser_nodes#ANode#parent= (var_n_else,self) on <var_n_else:nullable AExpr(AExpr)> */
7457 var_n_else->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_else:nullable AExpr(AExpr)> */
7458 RET_LABEL17:(void)0;
7459 }
7460 }
7461 } else {
7462 }
7463 RET_LABEL:;
7464 }
7465 /* method parser_prod#AAssertExpr#init_aassertexpr for (self: Object, nullable TKwassert, nullable TId, nullable AExpr, nullable AExpr) */
7466 void VIRTUAL_parser_prod__AAssertExpr__init_aassertexpr(val* self, val* p0, val* p1, val* p2, val* p3) {
7467 parser_prod__AAssertExpr__init_aassertexpr(self, p0, p1, p2, p3); /* Direct call parser_prod#AAssertExpr#init_aassertexpr on <self:Object(AAssertExpr)>*/
7468 RET_LABEL:;
7469 }
7470 /* method parser_prod#AAssertExpr#replace_child for (self: AAssertExpr, ANode, nullable ANode) */
7471 void parser_prod__AAssertExpr__replace_child(val* self, val* p0, val* p1) {
7472 val* var_old_child /* var old_child: ANode */;
7473 val* var_new_child /* var new_child: nullable ANode */;
7474 val* var /* : TKwassert */;
7475 short int var1 /* : Bool */;
7476 short int var2 /* : Bool */;
7477 val* var_other /* var other: nullable Object */;
7478 short int var4 /* : Bool */;
7479 short int var6 /* : Bool */;
7480 short int var7 /* : Bool */;
7481 int cltype;
7482 int idtype;
7483 const char* var_class_name;
7484 val* var8 /* : nullable TId */;
7485 short int var9 /* : Bool */;
7486 short int var10 /* : Bool */;
7487 short int var12 /* : Bool */;
7488 short int var14 /* : Bool */;
7489 short int var15 /* : Bool */;
7490 int cltype16;
7491 int idtype17;
7492 const char* var_class_name18;
7493 val* var19 /* : AExpr */;
7494 short int var20 /* : Bool */;
7495 short int var21 /* : Bool */;
7496 short int var23 /* : Bool */;
7497 short int var25 /* : Bool */;
7498 short int var26 /* : Bool */;
7499 int cltype27;
7500 int idtype28;
7501 const char* var_class_name29;
7502 val* var30 /* : nullable AExpr */;
7503 short int var31 /* : Bool */;
7504 short int var32 /* : Bool */;
7505 short int var34 /* : Bool */;
7506 short int var36 /* : Bool */;
7507 short int var37 /* : Bool */;
7508 int cltype38;
7509 int idtype39;
7510 const char* var_class_name40;
7511 var_old_child = p0;
7512 var_new_child = p1;
7513 var = self->attrs[COLOR_parser_nodes__AAssertExpr___n_kwassert].val; /* _n_kwassert on <self:AAssertExpr> */
7514 if (unlikely(var == NULL)) {
7515 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwassert");
7516 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3691);
7517 show_backtrace(1);
7518 }
7519 {
7520 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwassert> */
7521 var_other = var_old_child;
7522 {
7523 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TKwassert> */
7524 var6 = var == var_other;
7525 var4 = var6;
7526 goto RET_LABEL5;
7527 RET_LABEL5:(void)0;
7528 }
7529 }
7530 var2 = var4;
7531 goto RET_LABEL3;
7532 RET_LABEL3:(void)0;
7533 }
7534 var1 = var2;
7535 }
7536 if (var1){
7537 /* <var_new_child:nullable ANode> isa TKwassert */
7538 cltype = type_parser_nodes__TKwassert.color;
7539 idtype = type_parser_nodes__TKwassert.id;
7540 if(var_new_child == NULL) {
7541 var7 = 0;
7542 } else {
7543 if(cltype >= var_new_child->type->table_size) {
7544 var7 = 0;
7545 } else {
7546 var7 = var_new_child->type->type_table[cltype] == idtype;
7547 }
7548 }
7549 if (unlikely(!var7)) {
7550 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
7551 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwassert", var_class_name);
7552 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3692);
7553 show_backtrace(1);
7554 }
7555 {
7556 parser_prod__AAssertExpr__n_kwassert_61d(self, var_new_child); /* Direct call parser_prod#AAssertExpr#n_kwassert= on <self:AAssertExpr>*/
7557 }
7558 goto RET_LABEL;
7559 } else {
7560 }
7561 var8 = self->attrs[COLOR_parser_nodes__AAssertExpr___n_id].val; /* _n_id on <self:AAssertExpr> */
7562 if (var8 == NULL) {
7563 var9 = 0; /* <var_old_child:ANode> cannot be null */
7564 } else {
7565 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:nullable TId> */
7566 var_other = var_old_child;
7567 {
7568 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:nullable TId(TId)> */
7569 var14 = var8 == var_other;
7570 var12 = var14;
7571 goto RET_LABEL13;
7572 RET_LABEL13:(void)0;
7573 }
7574 }
7575 var10 = var12;
7576 goto RET_LABEL11;
7577 RET_LABEL11:(void)0;
7578 }
7579 var9 = var10;
7580 }
7581 if (var9){
7582 /* <var_new_child:nullable ANode> isa nullable TId */
7583 cltype16 = type_nullable_parser_nodes__TId.color;
7584 idtype17 = type_nullable_parser_nodes__TId.id;
7585 if(var_new_child == NULL) {
7586 var15 = 1;
7587 } else {
7588 if(cltype16 >= var_new_child->type->table_size) {
7589 var15 = 0;
7590 } else {
7591 var15 = var_new_child->type->type_table[cltype16] == idtype17;
7592 }
7593 }
7594 if (unlikely(!var15)) {
7595 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
7596 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TId", var_class_name18);
7597 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3696);
7598 show_backtrace(1);
7599 }
7600 {
7601 parser_prod__AAssertExpr__n_id_61d(self, var_new_child); /* Direct call parser_prod#AAssertExpr#n_id= on <self:AAssertExpr>*/
7602 }
7603 goto RET_LABEL;
7604 } else {
7605 }
7606 var19 = self->attrs[COLOR_parser_nodes__AAssertExpr___n_expr].val; /* _n_expr on <self:AAssertExpr> */
7607 if (unlikely(var19 == NULL)) {
7608 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
7609 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3699);
7610 show_backtrace(1);
7611 }
7612 {
7613 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:AExpr> */
7614 var_other = var_old_child;
7615 {
7616 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:AExpr> */
7617 var25 = var19 == var_other;
7618 var23 = var25;
7619 goto RET_LABEL24;
7620 RET_LABEL24:(void)0;
7621 }
7622 }
7623 var21 = var23;
7624 goto RET_LABEL22;
7625 RET_LABEL22:(void)0;
7626 }
7627 var20 = var21;
7628 }
7629 if (var20){
7630 /* <var_new_child:nullable ANode> isa AExpr */
7631 cltype27 = type_parser_nodes__AExpr.color;
7632 idtype28 = type_parser_nodes__AExpr.id;
7633 if(var_new_child == NULL) {
7634 var26 = 0;
7635 } else {
7636 if(cltype27 >= var_new_child->type->table_size) {
7637 var26 = 0;
7638 } else {
7639 var26 = var_new_child->type->type_table[cltype27] == idtype28;
7640 }
7641 }
7642 if (unlikely(!var26)) {
7643 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
7644 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name29);
7645 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3700);
7646 show_backtrace(1);
7647 }
7648 {
7649 parser_prod__AAssertExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AAssertExpr#n_expr= on <self:AAssertExpr>*/
7650 }
7651 goto RET_LABEL;
7652 } else {
7653 }
7654 var30 = self->attrs[COLOR_parser_nodes__AAssertExpr___n_else].val; /* _n_else on <self:AAssertExpr> */
7655 if (var30 == NULL) {
7656 var31 = 0; /* <var_old_child:ANode> cannot be null */
7657 } else {
7658 { /* Inline kernel#Object#== (var30,var_old_child) on <var30:nullable AExpr> */
7659 var_other = var_old_child;
7660 {
7661 { /* Inline kernel#Object#is_same_instance (var30,var_other) on <var30:nullable AExpr(AExpr)> */
7662 var36 = var30 == var_other;
7663 var34 = var36;
7664 goto RET_LABEL35;
7665 RET_LABEL35:(void)0;
7666 }
7667 }
7668 var32 = var34;
7669 goto RET_LABEL33;
7670 RET_LABEL33:(void)0;
7671 }
7672 var31 = var32;
7673 }
7674 if (var31){
7675 /* <var_new_child:nullable ANode> isa nullable AExpr */
7676 cltype38 = type_nullable_parser_nodes__AExpr.color;
7677 idtype39 = type_nullable_parser_nodes__AExpr.id;
7678 if(var_new_child == NULL) {
7679 var37 = 1;
7680 } else {
7681 if(cltype38 >= var_new_child->type->table_size) {
7682 var37 = 0;
7683 } else {
7684 var37 = var_new_child->type->type_table[cltype38] == idtype39;
7685 }
7686 }
7687 if (unlikely(!var37)) {
7688 var_class_name40 = var_new_child == NULL ? "null" : var_new_child->type->name;
7689 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AExpr", var_class_name40);
7690 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3704);
7691 show_backtrace(1);
7692 }
7693 {
7694 parser_prod__AAssertExpr__n_else_61d(self, var_new_child); /* Direct call parser_prod#AAssertExpr#n_else= on <self:AAssertExpr>*/
7695 }
7696 goto RET_LABEL;
7697 } else {
7698 }
7699 RET_LABEL:;
7700 }
7701 /* method parser_prod#AAssertExpr#replace_child for (self: Object, ANode, nullable ANode) */
7702 void VIRTUAL_parser_prod__AAssertExpr__replace_child(val* self, val* p0, val* p1) {
7703 parser_prod__AAssertExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AAssertExpr#replace_child on <self:Object(AAssertExpr)>*/
7704 RET_LABEL:;
7705 }
7706 /* method parser_prod#AAssertExpr#n_kwassert= for (self: AAssertExpr, TKwassert) */
7707 void parser_prod__AAssertExpr__n_kwassert_61d(val* self, val* p0) {
7708 val* var_node /* var node: TKwassert */;
7709 var_node = p0;
7710 self->attrs[COLOR_parser_nodes__AAssertExpr___n_kwassert].val = var_node; /* _n_kwassert on <self:AAssertExpr> */
7711 {
7712 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwassert> */
7713 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwassert> */
7714 RET_LABEL1:(void)0;
7715 }
7716 }
7717 RET_LABEL:;
7718 }
7719 /* method parser_prod#AAssertExpr#n_kwassert= for (self: Object, TKwassert) */
7720 void VIRTUAL_parser_prod__AAssertExpr__n_kwassert_61d(val* self, val* p0) {
7721 parser_prod__AAssertExpr__n_kwassert_61d(self, p0); /* Direct call parser_prod#AAssertExpr#n_kwassert= on <self:Object(AAssertExpr)>*/
7722 RET_LABEL:;
7723 }
7724 /* method parser_prod#AAssertExpr#n_id= for (self: AAssertExpr, nullable TId) */
7725 void parser_prod__AAssertExpr__n_id_61d(val* self, val* p0) {
7726 val* var_node /* var node: nullable TId */;
7727 val* var /* : null */;
7728 short int var1 /* : Bool */;
7729 short int var2 /* : Bool */;
7730 val* var_other /* var other: nullable Object */;
7731 short int var4 /* : Bool */;
7732 short int var5 /* : Bool */;
7733 short int var6 /* : Bool */;
7734 var_node = p0;
7735 self->attrs[COLOR_parser_nodes__AAssertExpr___n_id].val = var_node; /* _n_id on <self:AAssertExpr> */
7736 var = NULL;
7737 if (var_node == NULL) {
7738 var1 = 0; /* is null */
7739 } else {
7740 var1 = 1; /* arg is null and recv is not */
7741 }
7742 if (0) {
7743 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable TId> */
7744 var_other = var;
7745 {
7746 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable TId(TId)>*/;
7747 var4 = var5;
7748 }
7749 var6 = !var4;
7750 var2 = var6;
7751 goto RET_LABEL3;
7752 RET_LABEL3:(void)0;
7753 }
7754 var1 = var2;
7755 }
7756 if (var1){
7757 {
7758 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TId(TId)> */
7759 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TId(TId)> */
7760 RET_LABEL7:(void)0;
7761 }
7762 }
7763 } else {
7764 }
7765 RET_LABEL:;
7766 }
7767 /* method parser_prod#AAssertExpr#n_id= for (self: Object, nullable TId) */
7768 void VIRTUAL_parser_prod__AAssertExpr__n_id_61d(val* self, val* p0) {
7769 parser_prod__AAssertExpr__n_id_61d(self, p0); /* Direct call parser_prod#AAssertExpr#n_id= on <self:Object(AAssertExpr)>*/
7770 RET_LABEL:;
7771 }
7772 /* method parser_prod#AAssertExpr#n_expr= for (self: AAssertExpr, AExpr) */
7773 void parser_prod__AAssertExpr__n_expr_61d(val* self, val* p0) {
7774 val* var_node /* var node: AExpr */;
7775 var_node = p0;
7776 self->attrs[COLOR_parser_nodes__AAssertExpr___n_expr].val = var_node; /* _n_expr on <self:AAssertExpr> */
7777 {
7778 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
7779 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
7780 RET_LABEL1:(void)0;
7781 }
7782 }
7783 RET_LABEL:;
7784 }
7785 /* method parser_prod#AAssertExpr#n_expr= for (self: Object, AExpr) */
7786 void VIRTUAL_parser_prod__AAssertExpr__n_expr_61d(val* self, val* p0) {
7787 parser_prod__AAssertExpr__n_expr_61d(self, p0); /* Direct call parser_prod#AAssertExpr#n_expr= on <self:Object(AAssertExpr)>*/
7788 RET_LABEL:;
7789 }
7790 /* method parser_prod#AAssertExpr#n_else= for (self: AAssertExpr, nullable AExpr) */
7791 void parser_prod__AAssertExpr__n_else_61d(val* self, val* p0) {
7792 val* var_node /* var node: nullable AExpr */;
7793 val* var /* : null */;
7794 short int var1 /* : Bool */;
7795 short int var2 /* : Bool */;
7796 val* var_other /* var other: nullable Object */;
7797 short int var4 /* : Bool */;
7798 short int var5 /* : Bool */;
7799 short int var6 /* : Bool */;
7800 var_node = p0;
7801 self->attrs[COLOR_parser_nodes__AAssertExpr___n_else].val = var_node; /* _n_else on <self:AAssertExpr> */
7802 var = NULL;
7803 if (var_node == NULL) {
7804 var1 = 0; /* is null */
7805 } else {
7806 var1 = 1; /* arg is null and recv is not */
7807 }
7808 if (0) {
7809 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AExpr> */
7810 var_other = var;
7811 {
7812 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AExpr(AExpr)>*/;
7813 var4 = var5;
7814 }
7815 var6 = !var4;
7816 var2 = var6;
7817 goto RET_LABEL3;
7818 RET_LABEL3:(void)0;
7819 }
7820 var1 = var2;
7821 }
7822 if (var1){
7823 {
7824 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AExpr(AExpr)> */
7825 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AExpr(AExpr)> */
7826 RET_LABEL7:(void)0;
7827 }
7828 }
7829 } else {
7830 }
7831 RET_LABEL:;
7832 }
7833 /* method parser_prod#AAssertExpr#n_else= for (self: Object, nullable AExpr) */
7834 void VIRTUAL_parser_prod__AAssertExpr__n_else_61d(val* self, val* p0) {
7835 parser_prod__AAssertExpr__n_else_61d(self, p0); /* Direct call parser_prod#AAssertExpr#n_else= on <self:Object(AAssertExpr)>*/
7836 RET_LABEL:;
7837 }
7838 /* method parser_prod#AAssertExpr#visit_all for (self: AAssertExpr, Visitor) */
7839 void parser_prod__AAssertExpr__visit_all(val* self, val* p0) {
7840 val* var_v /* var v: Visitor */;
7841 val* var /* : TKwassert */;
7842 val* var1 /* : nullable TId */;
7843 val* var2 /* : AExpr */;
7844 val* var3 /* : nullable AExpr */;
7845 var_v = p0;
7846 var = self->attrs[COLOR_parser_nodes__AAssertExpr___n_kwassert].val; /* _n_kwassert on <self:AAssertExpr> */
7847 if (unlikely(var == NULL)) {
7848 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwassert");
7849 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3733);
7850 show_backtrace(1);
7851 }
7852 {
7853 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7854 }
7855 var1 = self->attrs[COLOR_parser_nodes__AAssertExpr___n_id].val; /* _n_id on <self:AAssertExpr> */
7856 {
7857 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7858 }
7859 var2 = self->attrs[COLOR_parser_nodes__AAssertExpr___n_expr].val; /* _n_expr on <self:AAssertExpr> */
7860 if (unlikely(var2 == NULL)) {
7861 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
7862 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3735);
7863 show_backtrace(1);
7864 }
7865 {
7866 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7867 }
7868 var3 = self->attrs[COLOR_parser_nodes__AAssertExpr___n_else].val; /* _n_else on <self:AAssertExpr> */
7869 {
7870 parser_nodes__Visitor__enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7871 }
7872 RET_LABEL:;
7873 }
7874 /* method parser_prod#AAssertExpr#visit_all for (self: Object, Visitor) */
7875 void VIRTUAL_parser_prod__AAssertExpr__visit_all(val* self, val* p0) {
7876 parser_prod__AAssertExpr__visit_all(self, p0); /* Direct call parser_prod#AAssertExpr#visit_all on <self:Object(AAssertExpr)>*/
7877 RET_LABEL:;
7878 }
7879 /* method parser_prod#AOnceExpr#init_aonceexpr for (self: AOnceExpr, nullable TKwonce, nullable AExpr) */
7880 void parser_prod__AOnceExpr__init_aonceexpr(val* self, val* p0, val* p1) {
7881 val* var_n_kwonce /* var n_kwonce: nullable TKwonce */;
7882 val* var_n_expr /* var n_expr: nullable AExpr */;
7883 var_n_kwonce = p0;
7884 var_n_expr = p1;
7885 if (unlikely(var_n_kwonce == NULL)) {
7886 PRINT_ERROR("Runtime error: %s", "Cast failed");
7887 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3745);
7888 show_backtrace(1);
7889 }
7890 self->attrs[COLOR_parser_nodes__AOnceExpr___n_kwonce].val = var_n_kwonce; /* _n_kwonce on <self:AOnceExpr> */
7891 if (var_n_kwonce == NULL) {
7892 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7893 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3746);
7894 show_backtrace(1);
7895 } else {
7896 { /* Inline parser_nodes#ANode#parent= (var_n_kwonce,self) on <var_n_kwonce:nullable TKwonce> */
7897 if (unlikely(var_n_kwonce == NULL)) {
7898 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7899 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
7900 show_backtrace(1);
7901 }
7902 var_n_kwonce->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwonce:nullable TKwonce> */
7903 RET_LABEL1:(void)0;
7904 }
7905 }
7906 if (unlikely(var_n_expr == NULL)) {
7907 PRINT_ERROR("Runtime error: %s", "Cast failed");
7908 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3747);
7909 show_backtrace(1);
7910 }
7911 self->attrs[COLOR_parser_nodes__AProxyExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AOnceExpr> */
7912 if (var_n_expr == NULL) {
7913 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7914 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3748);
7915 show_backtrace(1);
7916 } else {
7917 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
7918 if (unlikely(var_n_expr == NULL)) {
7919 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7920 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
7921 show_backtrace(1);
7922 }
7923 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
7924 RET_LABEL2:(void)0;
7925 }
7926 }
7927 RET_LABEL:;
7928 }
7929 /* method parser_prod#AOnceExpr#init_aonceexpr for (self: Object, nullable TKwonce, nullable AExpr) */
7930 void VIRTUAL_parser_prod__AOnceExpr__init_aonceexpr(val* self, val* p0, val* p1) {
7931 parser_prod__AOnceExpr__init_aonceexpr(self, p0, p1); /* Direct call parser_prod#AOnceExpr#init_aonceexpr on <self:Object(AOnceExpr)>*/
7932 RET_LABEL:;
7933 }
7934 /* method parser_prod#AOnceExpr#replace_child for (self: AOnceExpr, ANode, nullable ANode) */
7935 void parser_prod__AOnceExpr__replace_child(val* self, val* p0, val* p1) {
7936 val* var_old_child /* var old_child: ANode */;
7937 val* var_new_child /* var new_child: nullable ANode */;
7938 val* var /* : TKwonce */;
7939 short int var1 /* : Bool */;
7940 short int var2 /* : Bool */;
7941 val* var_other /* var other: nullable Object */;
7942 short int var4 /* : Bool */;
7943 short int var6 /* : Bool */;
7944 short int var7 /* : Bool */;
7945 int cltype;
7946 int idtype;
7947 const char* var_class_name;
7948 val* var8 /* : AExpr */;
7949 short int var9 /* : Bool */;
7950 short int var10 /* : Bool */;
7951 short int var12 /* : Bool */;
7952 short int var14 /* : Bool */;
7953 short int var15 /* : Bool */;
7954 int cltype16;
7955 int idtype17;
7956 const char* var_class_name18;
7957 var_old_child = p0;
7958 var_new_child = p1;
7959 var = self->attrs[COLOR_parser_nodes__AOnceExpr___n_kwonce].val; /* _n_kwonce on <self:AOnceExpr> */
7960 if (unlikely(var == NULL)) {
7961 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwonce");
7962 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3753);
7963 show_backtrace(1);
7964 }
7965 {
7966 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwonce> */
7967 var_other = var_old_child;
7968 {
7969 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TKwonce> */
7970 var6 = var == var_other;
7971 var4 = var6;
7972 goto RET_LABEL5;
7973 RET_LABEL5:(void)0;
7974 }
7975 }
7976 var2 = var4;
7977 goto RET_LABEL3;
7978 RET_LABEL3:(void)0;
7979 }
7980 var1 = var2;
7981 }
7982 if (var1){
7983 /* <var_new_child:nullable ANode> isa TKwonce */
7984 cltype = type_parser_nodes__TKwonce.color;
7985 idtype = type_parser_nodes__TKwonce.id;
7986 if(var_new_child == NULL) {
7987 var7 = 0;
7988 } else {
7989 if(cltype >= var_new_child->type->table_size) {
7990 var7 = 0;
7991 } else {
7992 var7 = var_new_child->type->type_table[cltype] == idtype;
7993 }
7994 }
7995 if (unlikely(!var7)) {
7996 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
7997 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwonce", var_class_name);
7998 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3754);
7999 show_backtrace(1);
8000 }
8001 {
8002 parser_prod__AOnceExpr__n_kwonce_61d(self, var_new_child); /* Direct call parser_prod#AOnceExpr#n_kwonce= on <self:AOnceExpr>*/
8003 }
8004 goto RET_LABEL;
8005 } else {
8006 }
8007 var8 = self->attrs[COLOR_parser_nodes__AProxyExpr___n_expr].val; /* _n_expr on <self:AOnceExpr> */
8008 if (unlikely(var8 == NULL)) {
8009 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
8010 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3757);
8011 show_backtrace(1);
8012 }
8013 {
8014 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExpr> */
8015 var_other = var_old_child;
8016 {
8017 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExpr> */
8018 var14 = var8 == var_other;
8019 var12 = var14;
8020 goto RET_LABEL13;
8021 RET_LABEL13:(void)0;
8022 }
8023 }
8024 var10 = var12;
8025 goto RET_LABEL11;
8026 RET_LABEL11:(void)0;
8027 }
8028 var9 = var10;
8029 }
8030 if (var9){
8031 /* <var_new_child:nullable ANode> isa AExpr */
8032 cltype16 = type_parser_nodes__AExpr.color;
8033 idtype17 = type_parser_nodes__AExpr.id;
8034 if(var_new_child == NULL) {
8035 var15 = 0;
8036 } else {
8037 if(cltype16 >= var_new_child->type->table_size) {
8038 var15 = 0;
8039 } else {
8040 var15 = var_new_child->type->type_table[cltype16] == idtype17;
8041 }
8042 }
8043 if (unlikely(!var15)) {
8044 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
8045 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name18);
8046 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3758);
8047 show_backtrace(1);
8048 }
8049 {
8050 parser_prod__AOnceExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AOnceExpr#n_expr= on <self:AOnceExpr>*/
8051 }
8052 goto RET_LABEL;
8053 } else {
8054 }
8055 RET_LABEL:;
8056 }
8057 /* method parser_prod#AOnceExpr#replace_child for (self: Object, ANode, nullable ANode) */
8058 void VIRTUAL_parser_prod__AOnceExpr__replace_child(val* self, val* p0, val* p1) {
8059 parser_prod__AOnceExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AOnceExpr#replace_child on <self:Object(AOnceExpr)>*/
8060 RET_LABEL:;
8061 }
8062 /* method parser_prod#AOnceExpr#n_kwonce= for (self: AOnceExpr, TKwonce) */
8063 void parser_prod__AOnceExpr__n_kwonce_61d(val* self, val* p0) {
8064 val* var_node /* var node: TKwonce */;
8065 var_node = p0;
8066 self->attrs[COLOR_parser_nodes__AOnceExpr___n_kwonce].val = var_node; /* _n_kwonce on <self:AOnceExpr> */
8067 {
8068 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwonce> */
8069 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwonce> */
8070 RET_LABEL1:(void)0;
8071 }
8072 }
8073 RET_LABEL:;
8074 }
8075 /* method parser_prod#AOnceExpr#n_kwonce= for (self: Object, TKwonce) */
8076 void VIRTUAL_parser_prod__AOnceExpr__n_kwonce_61d(val* self, val* p0) {
8077 parser_prod__AOnceExpr__n_kwonce_61d(self, p0); /* Direct call parser_prod#AOnceExpr#n_kwonce= on <self:Object(AOnceExpr)>*/
8078 RET_LABEL:;
8079 }
8080 /* method parser_prod#AOnceExpr#n_expr= for (self: AOnceExpr, AExpr) */
8081 void parser_prod__AOnceExpr__n_expr_61d(val* self, val* p0) {
8082 val* var_node /* var node: AExpr */;
8083 var_node = p0;
8084 self->attrs[COLOR_parser_nodes__AProxyExpr___n_expr].val = var_node; /* _n_expr on <self:AOnceExpr> */
8085 {
8086 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
8087 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
8088 RET_LABEL1:(void)0;
8089 }
8090 }
8091 RET_LABEL:;
8092 }
8093 /* method parser_prod#AOnceExpr#n_expr= for (self: Object, AExpr) */
8094 void VIRTUAL_parser_prod__AOnceExpr__n_expr_61d(val* self, val* p0) {
8095 parser_prod__AOnceExpr__n_expr_61d(self, p0); /* Direct call parser_prod#AOnceExpr#n_expr= on <self:Object(AOnceExpr)>*/
8096 RET_LABEL:;
8097 }
8098 /* method parser_prod#AOnceExpr#visit_all for (self: AOnceExpr, Visitor) */
8099 void parser_prod__AOnceExpr__visit_all(val* self, val* p0) {
8100 val* var_v /* var v: Visitor */;
8101 val* var /* : TKwonce */;
8102 val* var1 /* : AExpr */;
8103 var_v = p0;
8104 var = self->attrs[COLOR_parser_nodes__AOnceExpr___n_kwonce].val; /* _n_kwonce on <self:AOnceExpr> */
8105 if (unlikely(var == NULL)) {
8106 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwonce");
8107 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3777);
8108 show_backtrace(1);
8109 }
8110 {
8111 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8112 }
8113 var1 = self->attrs[COLOR_parser_nodes__AProxyExpr___n_expr].val; /* _n_expr on <self:AOnceExpr> */
8114 if (unlikely(var1 == NULL)) {
8115 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
8116 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3778);
8117 show_backtrace(1);
8118 }
8119 {
8120 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8121 }
8122 RET_LABEL:;
8123 }
8124 /* method parser_prod#AOnceExpr#visit_all for (self: Object, Visitor) */
8125 void VIRTUAL_parser_prod__AOnceExpr__visit_all(val* self, val* p0) {
8126 parser_prod__AOnceExpr__visit_all(self, p0); /* Direct call parser_prod#AOnceExpr#visit_all on <self:Object(AOnceExpr)>*/
8127 RET_LABEL:;
8128 }
8129 /* method parser_prod#AOrExpr#init_aorexpr for (self: AOrExpr, nullable AExpr, nullable AExpr) */
8130 void parser_prod__AOrExpr__init_aorexpr(val* self, val* p0, val* p1) {
8131 val* var_n_expr /* var n_expr: nullable AExpr */;
8132 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
8133 var_n_expr = p0;
8134 var_n_expr2 = p1;
8135 if (unlikely(var_n_expr == NULL)) {
8136 PRINT_ERROR("Runtime error: %s", "Cast failed");
8137 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3858);
8138 show_backtrace(1);
8139 }
8140 self->attrs[COLOR_parser_nodes__AOrExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AOrExpr> */
8141 if (var_n_expr == NULL) {
8142 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8143 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3859);
8144 show_backtrace(1);
8145 } else {
8146 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
8147 if (unlikely(var_n_expr == NULL)) {
8148 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8149 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
8150 show_backtrace(1);
8151 }
8152 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
8153 RET_LABEL1:(void)0;
8154 }
8155 }
8156 if (unlikely(var_n_expr2 == NULL)) {
8157 PRINT_ERROR("Runtime error: %s", "Cast failed");
8158 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3860);
8159 show_backtrace(1);
8160 }
8161 self->attrs[COLOR_parser_nodes__AOrExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:AOrExpr> */
8162 if (var_n_expr2 == NULL) {
8163 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8164 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3861);
8165 show_backtrace(1);
8166 } else {
8167 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
8168 if (unlikely(var_n_expr2 == NULL)) {
8169 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8170 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
8171 show_backtrace(1);
8172 }
8173 var_n_expr2->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
8174 RET_LABEL2:(void)0;
8175 }
8176 }
8177 RET_LABEL:;
8178 }
8179 /* method parser_prod#AOrExpr#init_aorexpr for (self: Object, nullable AExpr, nullable AExpr) */
8180 void VIRTUAL_parser_prod__AOrExpr__init_aorexpr(val* self, val* p0, val* p1) {
8181 parser_prod__AOrExpr__init_aorexpr(self, p0, p1); /* Direct call parser_prod#AOrExpr#init_aorexpr on <self:Object(AOrExpr)>*/
8182 RET_LABEL:;
8183 }
8184 /* method parser_prod#AOrExpr#replace_child for (self: AOrExpr, ANode, nullable ANode) */
8185 void parser_prod__AOrExpr__replace_child(val* self, val* p0, val* p1) {
8186 val* var_old_child /* var old_child: ANode */;
8187 val* var_new_child /* var new_child: nullable ANode */;
8188 val* var /* : AExpr */;
8189 short int var1 /* : Bool */;
8190 short int var2 /* : Bool */;
8191 val* var_other /* var other: nullable Object */;
8192 short int var4 /* : Bool */;
8193 short int var6 /* : Bool */;
8194 short int var7 /* : Bool */;
8195 int cltype;
8196 int idtype;
8197 const char* var_class_name;
8198 val* var8 /* : AExpr */;
8199 short int var9 /* : Bool */;
8200 short int var10 /* : Bool */;
8201 short int var12 /* : Bool */;
8202 short int var14 /* : Bool */;
8203 short int var15 /* : Bool */;
8204 int cltype16;
8205 int idtype17;
8206 const char* var_class_name18;
8207 var_old_child = p0;
8208 var_new_child = p1;
8209 var = self->attrs[COLOR_parser_nodes__AOrExpr___n_expr].val; /* _n_expr on <self:AOrExpr> */
8210 if (unlikely(var == NULL)) {
8211 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
8212 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3866);
8213 show_backtrace(1);
8214 }
8215 {
8216 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
8217 var_other = var_old_child;
8218 {
8219 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
8220 var6 = var == var_other;
8221 var4 = var6;
8222 goto RET_LABEL5;
8223 RET_LABEL5:(void)0;
8224 }
8225 }
8226 var2 = var4;
8227 goto RET_LABEL3;
8228 RET_LABEL3:(void)0;
8229 }
8230 var1 = var2;
8231 }
8232 if (var1){
8233 /* <var_new_child:nullable ANode> isa AExpr */
8234 cltype = type_parser_nodes__AExpr.color;
8235 idtype = type_parser_nodes__AExpr.id;
8236 if(var_new_child == NULL) {
8237 var7 = 0;
8238 } else {
8239 if(cltype >= var_new_child->type->table_size) {
8240 var7 = 0;
8241 } else {
8242 var7 = var_new_child->type->type_table[cltype] == idtype;
8243 }
8244 }
8245 if (unlikely(!var7)) {
8246 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
8247 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
8248 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3867);
8249 show_backtrace(1);
8250 }
8251 {
8252 parser_prod__AOrExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AOrExpr#n_expr= on <self:AOrExpr>*/
8253 }
8254 goto RET_LABEL;
8255 } else {
8256 }
8257 var8 = self->attrs[COLOR_parser_nodes__AOrExpr___n_expr2].val; /* _n_expr2 on <self:AOrExpr> */
8258 if (unlikely(var8 == NULL)) {
8259 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
8260 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3870);
8261 show_backtrace(1);
8262 }
8263 {
8264 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExpr> */
8265 var_other = var_old_child;
8266 {
8267 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExpr> */
8268 var14 = var8 == var_other;
8269 var12 = var14;
8270 goto RET_LABEL13;
8271 RET_LABEL13:(void)0;
8272 }
8273 }
8274 var10 = var12;
8275 goto RET_LABEL11;
8276 RET_LABEL11:(void)0;
8277 }
8278 var9 = var10;
8279 }
8280 if (var9){
8281 /* <var_new_child:nullable ANode> isa AExpr */
8282 cltype16 = type_parser_nodes__AExpr.color;
8283 idtype17 = type_parser_nodes__AExpr.id;
8284 if(var_new_child == NULL) {
8285 var15 = 0;
8286 } else {
8287 if(cltype16 >= var_new_child->type->table_size) {
8288 var15 = 0;
8289 } else {
8290 var15 = var_new_child->type->type_table[cltype16] == idtype17;
8291 }
8292 }
8293 if (unlikely(!var15)) {
8294 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
8295 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name18);
8296 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3871);
8297 show_backtrace(1);
8298 }
8299 {
8300 parser_prod__AOrExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#AOrExpr#n_expr2= on <self:AOrExpr>*/
8301 }
8302 goto RET_LABEL;
8303 } else {
8304 }
8305 RET_LABEL:;
8306 }
8307 /* method parser_prod#AOrExpr#replace_child for (self: Object, ANode, nullable ANode) */
8308 void VIRTUAL_parser_prod__AOrExpr__replace_child(val* self, val* p0, val* p1) {
8309 parser_prod__AOrExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AOrExpr#replace_child on <self:Object(AOrExpr)>*/
8310 RET_LABEL:;
8311 }
8312 /* method parser_prod#AOrExpr#n_expr= for (self: AOrExpr, AExpr) */
8313 void parser_prod__AOrExpr__n_expr_61d(val* self, val* p0) {
8314 val* var_node /* var node: AExpr */;
8315 var_node = p0;
8316 self->attrs[COLOR_parser_nodes__AOrExpr___n_expr].val = var_node; /* _n_expr on <self:AOrExpr> */
8317 {
8318 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
8319 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
8320 RET_LABEL1:(void)0;
8321 }
8322 }
8323 RET_LABEL:;
8324 }
8325 /* method parser_prod#AOrExpr#n_expr= for (self: Object, AExpr) */
8326 void VIRTUAL_parser_prod__AOrExpr__n_expr_61d(val* self, val* p0) {
8327 parser_prod__AOrExpr__n_expr_61d(self, p0); /* Direct call parser_prod#AOrExpr#n_expr= on <self:Object(AOrExpr)>*/
8328 RET_LABEL:;
8329 }
8330 /* method parser_prod#AOrExpr#n_expr2= for (self: AOrExpr, AExpr) */
8331 void parser_prod__AOrExpr__n_expr2_61d(val* self, val* p0) {
8332 val* var_node /* var node: AExpr */;
8333 var_node = p0;
8334 self->attrs[COLOR_parser_nodes__AOrExpr___n_expr2].val = var_node; /* _n_expr2 on <self:AOrExpr> */
8335 {
8336 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
8337 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
8338 RET_LABEL1:(void)0;
8339 }
8340 }
8341 RET_LABEL:;
8342 }
8343 /* method parser_prod#AOrExpr#n_expr2= for (self: Object, AExpr) */
8344 void VIRTUAL_parser_prod__AOrExpr__n_expr2_61d(val* self, val* p0) {
8345 parser_prod__AOrExpr__n_expr2_61d(self, p0); /* Direct call parser_prod#AOrExpr#n_expr2= on <self:Object(AOrExpr)>*/
8346 RET_LABEL:;
8347 }
8348 /* method parser_prod#AOrExpr#visit_all for (self: AOrExpr, Visitor) */
8349 void parser_prod__AOrExpr__visit_all(val* self, val* p0) {
8350 val* var_v /* var v: Visitor */;
8351 val* var /* : AExpr */;
8352 val* var1 /* : AExpr */;
8353 var_v = p0;
8354 var = self->attrs[COLOR_parser_nodes__AOrExpr___n_expr].val; /* _n_expr on <self:AOrExpr> */
8355 if (unlikely(var == NULL)) {
8356 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
8357 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3890);
8358 show_backtrace(1);
8359 }
8360 {
8361 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8362 }
8363 var1 = self->attrs[COLOR_parser_nodes__AOrExpr___n_expr2].val; /* _n_expr2 on <self:AOrExpr> */
8364 if (unlikely(var1 == NULL)) {
8365 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
8366 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3891);
8367 show_backtrace(1);
8368 }
8369 {
8370 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8371 }
8372 RET_LABEL:;
8373 }
8374 /* method parser_prod#AOrExpr#visit_all for (self: Object, Visitor) */
8375 void VIRTUAL_parser_prod__AOrExpr__visit_all(val* self, val* p0) {
8376 parser_prod__AOrExpr__visit_all(self, p0); /* Direct call parser_prod#AOrExpr#visit_all on <self:Object(AOrExpr)>*/
8377 RET_LABEL:;
8378 }
8379 /* method parser_prod#AAndExpr#init_aandexpr for (self: AAndExpr, nullable AExpr, nullable AExpr) */
8380 void parser_prod__AAndExpr__init_aandexpr(val* self, val* p0, val* p1) {
8381 val* var_n_expr /* var n_expr: nullable AExpr */;
8382 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
8383 var_n_expr = p0;
8384 var_n_expr2 = p1;
8385 if (unlikely(var_n_expr == NULL)) {
8386 PRINT_ERROR("Runtime error: %s", "Cast failed");
8387 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3900);
8388 show_backtrace(1);
8389 }
8390 self->attrs[COLOR_parser_nodes__AAndExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AAndExpr> */
8391 if (var_n_expr == NULL) {
8392 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8393 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3901);
8394 show_backtrace(1);
8395 } else {
8396 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
8397 if (unlikely(var_n_expr == NULL)) {
8398 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8399 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
8400 show_backtrace(1);
8401 }
8402 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
8403 RET_LABEL1:(void)0;
8404 }
8405 }
8406 if (unlikely(var_n_expr2 == NULL)) {
8407 PRINT_ERROR("Runtime error: %s", "Cast failed");
8408 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3902);
8409 show_backtrace(1);
8410 }
8411 self->attrs[COLOR_parser_nodes__AAndExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:AAndExpr> */
8412 if (var_n_expr2 == NULL) {
8413 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8414 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3903);
8415 show_backtrace(1);
8416 } else {
8417 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
8418 if (unlikely(var_n_expr2 == NULL)) {
8419 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8420 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
8421 show_backtrace(1);
8422 }
8423 var_n_expr2->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
8424 RET_LABEL2:(void)0;
8425 }
8426 }
8427 RET_LABEL:;
8428 }
8429 /* method parser_prod#AAndExpr#init_aandexpr for (self: Object, nullable AExpr, nullable AExpr) */
8430 void VIRTUAL_parser_prod__AAndExpr__init_aandexpr(val* self, val* p0, val* p1) {
8431 parser_prod__AAndExpr__init_aandexpr(self, p0, p1); /* Direct call parser_prod#AAndExpr#init_aandexpr on <self:Object(AAndExpr)>*/
8432 RET_LABEL:;
8433 }
8434 /* method parser_prod#AAndExpr#replace_child for (self: AAndExpr, ANode, nullable ANode) */
8435 void parser_prod__AAndExpr__replace_child(val* self, val* p0, val* p1) {
8436 val* var_old_child /* var old_child: ANode */;
8437 val* var_new_child /* var new_child: nullable ANode */;
8438 val* var /* : AExpr */;
8439 short int var1 /* : Bool */;
8440 short int var2 /* : Bool */;
8441 val* var_other /* var other: nullable Object */;
8442 short int var4 /* : Bool */;
8443 short int var6 /* : Bool */;
8444 short int var7 /* : Bool */;
8445 int cltype;
8446 int idtype;
8447 const char* var_class_name;
8448 val* var8 /* : AExpr */;
8449 short int var9 /* : Bool */;
8450 short int var10 /* : Bool */;
8451 short int var12 /* : Bool */;
8452 short int var14 /* : Bool */;
8453 short int var15 /* : Bool */;
8454 int cltype16;
8455 int idtype17;
8456 const char* var_class_name18;
8457 var_old_child = p0;
8458 var_new_child = p1;
8459 var = self->attrs[COLOR_parser_nodes__AAndExpr___n_expr].val; /* _n_expr on <self:AAndExpr> */
8460 if (unlikely(var == NULL)) {
8461 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
8462 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3908);
8463 show_backtrace(1);
8464 }
8465 {
8466 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
8467 var_other = var_old_child;
8468 {
8469 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
8470 var6 = var == var_other;
8471 var4 = var6;
8472 goto RET_LABEL5;
8473 RET_LABEL5:(void)0;
8474 }
8475 }
8476 var2 = var4;
8477 goto RET_LABEL3;
8478 RET_LABEL3:(void)0;
8479 }
8480 var1 = var2;
8481 }
8482 if (var1){
8483 /* <var_new_child:nullable ANode> isa AExpr */
8484 cltype = type_parser_nodes__AExpr.color;
8485 idtype = type_parser_nodes__AExpr.id;
8486 if(var_new_child == NULL) {
8487 var7 = 0;
8488 } else {
8489 if(cltype >= var_new_child->type->table_size) {
8490 var7 = 0;
8491 } else {
8492 var7 = var_new_child->type->type_table[cltype] == idtype;
8493 }
8494 }
8495 if (unlikely(!var7)) {
8496 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
8497 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
8498 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3909);
8499 show_backtrace(1);
8500 }
8501 {
8502 parser_prod__AAndExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AAndExpr#n_expr= on <self:AAndExpr>*/
8503 }
8504 goto RET_LABEL;
8505 } else {
8506 }
8507 var8 = self->attrs[COLOR_parser_nodes__AAndExpr___n_expr2].val; /* _n_expr2 on <self:AAndExpr> */
8508 if (unlikely(var8 == NULL)) {
8509 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
8510 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3912);
8511 show_backtrace(1);
8512 }
8513 {
8514 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExpr> */
8515 var_other = var_old_child;
8516 {
8517 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExpr> */
8518 var14 = var8 == var_other;
8519 var12 = var14;
8520 goto RET_LABEL13;
8521 RET_LABEL13:(void)0;
8522 }
8523 }
8524 var10 = var12;
8525 goto RET_LABEL11;
8526 RET_LABEL11:(void)0;
8527 }
8528 var9 = var10;
8529 }
8530 if (var9){
8531 /* <var_new_child:nullable ANode> isa AExpr */
8532 cltype16 = type_parser_nodes__AExpr.color;
8533 idtype17 = type_parser_nodes__AExpr.id;
8534 if(var_new_child == NULL) {
8535 var15 = 0;
8536 } else {
8537 if(cltype16 >= var_new_child->type->table_size) {
8538 var15 = 0;
8539 } else {
8540 var15 = var_new_child->type->type_table[cltype16] == idtype17;
8541 }
8542 }
8543 if (unlikely(!var15)) {
8544 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
8545 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name18);
8546 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3913);
8547 show_backtrace(1);
8548 }
8549 {
8550 parser_prod__AAndExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#AAndExpr#n_expr2= on <self:AAndExpr>*/
8551 }
8552 goto RET_LABEL;
8553 } else {
8554 }
8555 RET_LABEL:;
8556 }
8557 /* method parser_prod#AAndExpr#replace_child for (self: Object, ANode, nullable ANode) */
8558 void VIRTUAL_parser_prod__AAndExpr__replace_child(val* self, val* p0, val* p1) {
8559 parser_prod__AAndExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AAndExpr#replace_child on <self:Object(AAndExpr)>*/
8560 RET_LABEL:;
8561 }
8562 /* method parser_prod#AAndExpr#n_expr= for (self: AAndExpr, AExpr) */
8563 void parser_prod__AAndExpr__n_expr_61d(val* self, val* p0) {
8564 val* var_node /* var node: AExpr */;
8565 var_node = p0;
8566 self->attrs[COLOR_parser_nodes__AAndExpr___n_expr].val = var_node; /* _n_expr on <self:AAndExpr> */
8567 {
8568 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
8569 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
8570 RET_LABEL1:(void)0;
8571 }
8572 }
8573 RET_LABEL:;
8574 }
8575 /* method parser_prod#AAndExpr#n_expr= for (self: Object, AExpr) */
8576 void VIRTUAL_parser_prod__AAndExpr__n_expr_61d(val* self, val* p0) {
8577 parser_prod__AAndExpr__n_expr_61d(self, p0); /* Direct call parser_prod#AAndExpr#n_expr= on <self:Object(AAndExpr)>*/
8578 RET_LABEL:;
8579 }
8580 /* method parser_prod#AAndExpr#n_expr2= for (self: AAndExpr, AExpr) */
8581 void parser_prod__AAndExpr__n_expr2_61d(val* self, val* p0) {
8582 val* var_node /* var node: AExpr */;
8583 var_node = p0;
8584 self->attrs[COLOR_parser_nodes__AAndExpr___n_expr2].val = var_node; /* _n_expr2 on <self:AAndExpr> */
8585 {
8586 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
8587 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
8588 RET_LABEL1:(void)0;
8589 }
8590 }
8591 RET_LABEL:;
8592 }
8593 /* method parser_prod#AAndExpr#n_expr2= for (self: Object, AExpr) */
8594 void VIRTUAL_parser_prod__AAndExpr__n_expr2_61d(val* self, val* p0) {
8595 parser_prod__AAndExpr__n_expr2_61d(self, p0); /* Direct call parser_prod#AAndExpr#n_expr2= on <self:Object(AAndExpr)>*/
8596 RET_LABEL:;
8597 }
8598 /* method parser_prod#AAndExpr#visit_all for (self: AAndExpr, Visitor) */
8599 void parser_prod__AAndExpr__visit_all(val* self, val* p0) {
8600 val* var_v /* var v: Visitor */;
8601 val* var /* : AExpr */;
8602 val* var1 /* : AExpr */;
8603 var_v = p0;
8604 var = self->attrs[COLOR_parser_nodes__AAndExpr___n_expr].val; /* _n_expr on <self:AAndExpr> */
8605 if (unlikely(var == NULL)) {
8606 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
8607 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3932);
8608 show_backtrace(1);
8609 }
8610 {
8611 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8612 }
8613 var1 = self->attrs[COLOR_parser_nodes__AAndExpr___n_expr2].val; /* _n_expr2 on <self:AAndExpr> */
8614 if (unlikely(var1 == NULL)) {
8615 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
8616 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3933);
8617 show_backtrace(1);
8618 }
8619 {
8620 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8621 }
8622 RET_LABEL:;
8623 }
8624 /* method parser_prod#AAndExpr#visit_all for (self: Object, Visitor) */
8625 void VIRTUAL_parser_prod__AAndExpr__visit_all(val* self, val* p0) {
8626 parser_prod__AAndExpr__visit_all(self, p0); /* Direct call parser_prod#AAndExpr#visit_all on <self:Object(AAndExpr)>*/
8627 RET_LABEL:;
8628 }
8629 /* method parser_prod#AOrElseExpr#init_aorelseexpr for (self: AOrElseExpr, nullable AExpr, nullable AExpr) */
8630 void parser_prod__AOrElseExpr__init_aorelseexpr(val* self, val* p0, val* p1) {
8631 val* var_n_expr /* var n_expr: nullable AExpr */;
8632 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
8633 var_n_expr = p0;
8634 var_n_expr2 = p1;
8635 if (unlikely(var_n_expr == NULL)) {
8636 PRINT_ERROR("Runtime error: %s", "Cast failed");
8637 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3942);
8638 show_backtrace(1);
8639 }
8640 self->attrs[COLOR_parser_nodes__AOrElseExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AOrElseExpr> */
8641 if (var_n_expr == NULL) {
8642 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8643 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3943);
8644 show_backtrace(1);
8645 } else {
8646 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
8647 if (unlikely(var_n_expr == NULL)) {
8648 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8649 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
8650 show_backtrace(1);
8651 }
8652 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
8653 RET_LABEL1:(void)0;
8654 }
8655 }
8656 if (unlikely(var_n_expr2 == NULL)) {
8657 PRINT_ERROR("Runtime error: %s", "Cast failed");
8658 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3944);
8659 show_backtrace(1);
8660 }
8661 self->attrs[COLOR_parser_nodes__AOrElseExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:AOrElseExpr> */
8662 if (var_n_expr2 == NULL) {
8663 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8664 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3945);
8665 show_backtrace(1);
8666 } else {
8667 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
8668 if (unlikely(var_n_expr2 == NULL)) {
8669 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8670 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
8671 show_backtrace(1);
8672 }
8673 var_n_expr2->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
8674 RET_LABEL2:(void)0;
8675 }
8676 }
8677 RET_LABEL:;
8678 }
8679 /* method parser_prod#AOrElseExpr#init_aorelseexpr for (self: Object, nullable AExpr, nullable AExpr) */
8680 void VIRTUAL_parser_prod__AOrElseExpr__init_aorelseexpr(val* self, val* p0, val* p1) {
8681 parser_prod__AOrElseExpr__init_aorelseexpr(self, p0, p1); /* Direct call parser_prod#AOrElseExpr#init_aorelseexpr on <self:Object(AOrElseExpr)>*/
8682 RET_LABEL:;
8683 }
8684 /* method parser_prod#AOrElseExpr#replace_child for (self: AOrElseExpr, ANode, nullable ANode) */
8685 void parser_prod__AOrElseExpr__replace_child(val* self, val* p0, val* p1) {
8686 val* var_old_child /* var old_child: ANode */;
8687 val* var_new_child /* var new_child: nullable ANode */;
8688 val* var /* : AExpr */;
8689 short int var1 /* : Bool */;
8690 short int var2 /* : Bool */;
8691 val* var_other /* var other: nullable Object */;
8692 short int var4 /* : Bool */;
8693 short int var6 /* : Bool */;
8694 short int var7 /* : Bool */;
8695 int cltype;
8696 int idtype;
8697 const char* var_class_name;
8698 val* var8 /* : AExpr */;
8699 short int var9 /* : Bool */;
8700 short int var10 /* : Bool */;
8701 short int var12 /* : Bool */;
8702 short int var14 /* : Bool */;
8703 short int var15 /* : Bool */;
8704 int cltype16;
8705 int idtype17;
8706 const char* var_class_name18;
8707 var_old_child = p0;
8708 var_new_child = p1;
8709 var = self->attrs[COLOR_parser_nodes__AOrElseExpr___n_expr].val; /* _n_expr on <self:AOrElseExpr> */
8710 if (unlikely(var == NULL)) {
8711 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
8712 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3950);
8713 show_backtrace(1);
8714 }
8715 {
8716 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
8717 var_other = var_old_child;
8718 {
8719 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
8720 var6 = var == var_other;
8721 var4 = var6;
8722 goto RET_LABEL5;
8723 RET_LABEL5:(void)0;
8724 }
8725 }
8726 var2 = var4;
8727 goto RET_LABEL3;
8728 RET_LABEL3:(void)0;
8729 }
8730 var1 = var2;
8731 }
8732 if (var1){
8733 /* <var_new_child:nullable ANode> isa AExpr */
8734 cltype = type_parser_nodes__AExpr.color;
8735 idtype = type_parser_nodes__AExpr.id;
8736 if(var_new_child == NULL) {
8737 var7 = 0;
8738 } else {
8739 if(cltype >= var_new_child->type->table_size) {
8740 var7 = 0;
8741 } else {
8742 var7 = var_new_child->type->type_table[cltype] == idtype;
8743 }
8744 }
8745 if (unlikely(!var7)) {
8746 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
8747 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
8748 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3951);
8749 show_backtrace(1);
8750 }
8751 {
8752 parser_prod__AOrElseExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AOrElseExpr#n_expr= on <self:AOrElseExpr>*/
8753 }
8754 goto RET_LABEL;
8755 } else {
8756 }
8757 var8 = self->attrs[COLOR_parser_nodes__AOrElseExpr___n_expr2].val; /* _n_expr2 on <self:AOrElseExpr> */
8758 if (unlikely(var8 == NULL)) {
8759 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
8760 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3954);
8761 show_backtrace(1);
8762 }
8763 {
8764 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExpr> */
8765 var_other = var_old_child;
8766 {
8767 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExpr> */
8768 var14 = var8 == var_other;
8769 var12 = var14;
8770 goto RET_LABEL13;
8771 RET_LABEL13:(void)0;
8772 }
8773 }
8774 var10 = var12;
8775 goto RET_LABEL11;
8776 RET_LABEL11:(void)0;
8777 }
8778 var9 = var10;
8779 }
8780 if (var9){
8781 /* <var_new_child:nullable ANode> isa AExpr */
8782 cltype16 = type_parser_nodes__AExpr.color;
8783 idtype17 = type_parser_nodes__AExpr.id;
8784 if(var_new_child == NULL) {
8785 var15 = 0;
8786 } else {
8787 if(cltype16 >= var_new_child->type->table_size) {
8788 var15 = 0;
8789 } else {
8790 var15 = var_new_child->type->type_table[cltype16] == idtype17;
8791 }
8792 }
8793 if (unlikely(!var15)) {
8794 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
8795 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name18);
8796 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3955);
8797 show_backtrace(1);
8798 }
8799 {
8800 parser_prod__AOrElseExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#AOrElseExpr#n_expr2= on <self:AOrElseExpr>*/
8801 }
8802 goto RET_LABEL;
8803 } else {
8804 }
8805 RET_LABEL:;
8806 }
8807 /* method parser_prod#AOrElseExpr#replace_child for (self: Object, ANode, nullable ANode) */
8808 void VIRTUAL_parser_prod__AOrElseExpr__replace_child(val* self, val* p0, val* p1) {
8809 parser_prod__AOrElseExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AOrElseExpr#replace_child on <self:Object(AOrElseExpr)>*/
8810 RET_LABEL:;
8811 }
8812 /* method parser_prod#AOrElseExpr#n_expr= for (self: AOrElseExpr, AExpr) */
8813 void parser_prod__AOrElseExpr__n_expr_61d(val* self, val* p0) {
8814 val* var_node /* var node: AExpr */;
8815 var_node = p0;
8816 self->attrs[COLOR_parser_nodes__AOrElseExpr___n_expr].val = var_node; /* _n_expr on <self:AOrElseExpr> */
8817 {
8818 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
8819 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
8820 RET_LABEL1:(void)0;
8821 }
8822 }
8823 RET_LABEL:;
8824 }
8825 /* method parser_prod#AOrElseExpr#n_expr= for (self: Object, AExpr) */
8826 void VIRTUAL_parser_prod__AOrElseExpr__n_expr_61d(val* self, val* p0) {
8827 parser_prod__AOrElseExpr__n_expr_61d(self, p0); /* Direct call parser_prod#AOrElseExpr#n_expr= on <self:Object(AOrElseExpr)>*/
8828 RET_LABEL:;
8829 }
8830 /* method parser_prod#AOrElseExpr#n_expr2= for (self: AOrElseExpr, AExpr) */
8831 void parser_prod__AOrElseExpr__n_expr2_61d(val* self, val* p0) {
8832 val* var_node /* var node: AExpr */;
8833 var_node = p0;
8834 self->attrs[COLOR_parser_nodes__AOrElseExpr___n_expr2].val = var_node; /* _n_expr2 on <self:AOrElseExpr> */
8835 {
8836 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
8837 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
8838 RET_LABEL1:(void)0;
8839 }
8840 }
8841 RET_LABEL:;
8842 }
8843 /* method parser_prod#AOrElseExpr#n_expr2= for (self: Object, AExpr) */
8844 void VIRTUAL_parser_prod__AOrElseExpr__n_expr2_61d(val* self, val* p0) {
8845 parser_prod__AOrElseExpr__n_expr2_61d(self, p0); /* Direct call parser_prod#AOrElseExpr#n_expr2= on <self:Object(AOrElseExpr)>*/
8846 RET_LABEL:;
8847 }
8848 /* method parser_prod#AOrElseExpr#visit_all for (self: AOrElseExpr, Visitor) */
8849 void parser_prod__AOrElseExpr__visit_all(val* self, val* p0) {
8850 val* var_v /* var v: Visitor */;
8851 val* var /* : AExpr */;
8852 val* var1 /* : AExpr */;
8853 var_v = p0;
8854 var = self->attrs[COLOR_parser_nodes__AOrElseExpr___n_expr].val; /* _n_expr on <self:AOrElseExpr> */
8855 if (unlikely(var == NULL)) {
8856 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
8857 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3974);
8858 show_backtrace(1);
8859 }
8860 {
8861 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8862 }
8863 var1 = self->attrs[COLOR_parser_nodes__AOrElseExpr___n_expr2].val; /* _n_expr2 on <self:AOrElseExpr> */
8864 if (unlikely(var1 == NULL)) {
8865 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
8866 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3975);
8867 show_backtrace(1);
8868 }
8869 {
8870 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8871 }
8872 RET_LABEL:;
8873 }
8874 /* method parser_prod#AOrElseExpr#visit_all for (self: Object, Visitor) */
8875 void VIRTUAL_parser_prod__AOrElseExpr__visit_all(val* self, val* p0) {
8876 parser_prod__AOrElseExpr__visit_all(self, p0); /* Direct call parser_prod#AOrElseExpr#visit_all on <self:Object(AOrElseExpr)>*/
8877 RET_LABEL:;
8878 }
8879 /* method parser_prod#AImpliesExpr#init_aimpliesexpr for (self: AImpliesExpr, nullable AExpr, nullable AExpr) */
8880 void parser_prod__AImpliesExpr__init_aimpliesexpr(val* self, val* p0, val* p1) {
8881 val* var_n_expr /* var n_expr: nullable AExpr */;
8882 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
8883 var_n_expr = p0;
8884 var_n_expr2 = p1;
8885 if (unlikely(var_n_expr == NULL)) {
8886 PRINT_ERROR("Runtime error: %s", "Cast failed");
8887 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3984);
8888 show_backtrace(1);
8889 }
8890 self->attrs[COLOR_parser_nodes__AImpliesExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AImpliesExpr> */
8891 if (var_n_expr == NULL) {
8892 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8893 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3985);
8894 show_backtrace(1);
8895 } else {
8896 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
8897 if (unlikely(var_n_expr == NULL)) {
8898 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8899 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
8900 show_backtrace(1);
8901 }
8902 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
8903 RET_LABEL1:(void)0;
8904 }
8905 }
8906 if (unlikely(var_n_expr2 == NULL)) {
8907 PRINT_ERROR("Runtime error: %s", "Cast failed");
8908 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3986);
8909 show_backtrace(1);
8910 }
8911 self->attrs[COLOR_parser_nodes__AImpliesExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:AImpliesExpr> */
8912 if (var_n_expr2 == NULL) {
8913 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8914 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3987);
8915 show_backtrace(1);
8916 } else {
8917 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
8918 if (unlikely(var_n_expr2 == NULL)) {
8919 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8920 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
8921 show_backtrace(1);
8922 }
8923 var_n_expr2->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
8924 RET_LABEL2:(void)0;
8925 }
8926 }
8927 RET_LABEL:;
8928 }
8929 /* method parser_prod#AImpliesExpr#init_aimpliesexpr for (self: Object, nullable AExpr, nullable AExpr) */
8930 void VIRTUAL_parser_prod__AImpliesExpr__init_aimpliesexpr(val* self, val* p0, val* p1) {
8931 parser_prod__AImpliesExpr__init_aimpliesexpr(self, p0, p1); /* Direct call parser_prod#AImpliesExpr#init_aimpliesexpr on <self:Object(AImpliesExpr)>*/
8932 RET_LABEL:;
8933 }
8934 /* method parser_prod#AImpliesExpr#replace_child for (self: AImpliesExpr, ANode, nullable ANode) */
8935 void parser_prod__AImpliesExpr__replace_child(val* self, val* p0, val* p1) {
8936 val* var_old_child /* var old_child: ANode */;
8937 val* var_new_child /* var new_child: nullable ANode */;
8938 val* var /* : AExpr */;
8939 short int var1 /* : Bool */;
8940 short int var2 /* : Bool */;
8941 val* var_other /* var other: nullable Object */;
8942 short int var4 /* : Bool */;
8943 short int var6 /* : Bool */;
8944 short int var7 /* : Bool */;
8945 int cltype;
8946 int idtype;
8947 const char* var_class_name;
8948 val* var8 /* : AExpr */;
8949 short int var9 /* : Bool */;
8950 short int var10 /* : Bool */;
8951 short int var12 /* : Bool */;
8952 short int var14 /* : Bool */;
8953 short int var15 /* : Bool */;
8954 int cltype16;
8955 int idtype17;
8956 const char* var_class_name18;
8957 var_old_child = p0;
8958 var_new_child = p1;
8959 var = self->attrs[COLOR_parser_nodes__AImpliesExpr___n_expr].val; /* _n_expr on <self:AImpliesExpr> */
8960 if (unlikely(var == NULL)) {
8961 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
8962 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3992);
8963 show_backtrace(1);
8964 }
8965 {
8966 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
8967 var_other = var_old_child;
8968 {
8969 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
8970 var6 = var == var_other;
8971 var4 = var6;
8972 goto RET_LABEL5;
8973 RET_LABEL5:(void)0;
8974 }
8975 }
8976 var2 = var4;
8977 goto RET_LABEL3;
8978 RET_LABEL3:(void)0;
8979 }
8980 var1 = var2;
8981 }
8982 if (var1){
8983 /* <var_new_child:nullable ANode> isa AExpr */
8984 cltype = type_parser_nodes__AExpr.color;
8985 idtype = type_parser_nodes__AExpr.id;
8986 if(var_new_child == NULL) {
8987 var7 = 0;
8988 } else {
8989 if(cltype >= var_new_child->type->table_size) {
8990 var7 = 0;
8991 } else {
8992 var7 = var_new_child->type->type_table[cltype] == idtype;
8993 }
8994 }
8995 if (unlikely(!var7)) {
8996 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
8997 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
8998 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3993);
8999 show_backtrace(1);
9000 }
9001 {
9002 parser_prod__AImpliesExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AImpliesExpr#n_expr= on <self:AImpliesExpr>*/
9003 }
9004 goto RET_LABEL;
9005 } else {
9006 }
9007 var8 = self->attrs[COLOR_parser_nodes__AImpliesExpr___n_expr2].val; /* _n_expr2 on <self:AImpliesExpr> */
9008 if (unlikely(var8 == NULL)) {
9009 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
9010 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3996);
9011 show_backtrace(1);
9012 }
9013 {
9014 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExpr> */
9015 var_other = var_old_child;
9016 {
9017 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExpr> */
9018 var14 = var8 == var_other;
9019 var12 = var14;
9020 goto RET_LABEL13;
9021 RET_LABEL13:(void)0;
9022 }
9023 }
9024 var10 = var12;
9025 goto RET_LABEL11;
9026 RET_LABEL11:(void)0;
9027 }
9028 var9 = var10;
9029 }
9030 if (var9){
9031 /* <var_new_child:nullable ANode> isa AExpr */
9032 cltype16 = type_parser_nodes__AExpr.color;
9033 idtype17 = type_parser_nodes__AExpr.id;
9034 if(var_new_child == NULL) {
9035 var15 = 0;
9036 } else {
9037 if(cltype16 >= var_new_child->type->table_size) {
9038 var15 = 0;
9039 } else {
9040 var15 = var_new_child->type->type_table[cltype16] == idtype17;
9041 }
9042 }
9043 if (unlikely(!var15)) {
9044 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
9045 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name18);
9046 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 3997);
9047 show_backtrace(1);
9048 }
9049 {
9050 parser_prod__AImpliesExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#AImpliesExpr#n_expr2= on <self:AImpliesExpr>*/
9051 }
9052 goto RET_LABEL;
9053 } else {
9054 }
9055 RET_LABEL:;
9056 }
9057 /* method parser_prod#AImpliesExpr#replace_child for (self: Object, ANode, nullable ANode) */
9058 void VIRTUAL_parser_prod__AImpliesExpr__replace_child(val* self, val* p0, val* p1) {
9059 parser_prod__AImpliesExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AImpliesExpr#replace_child on <self:Object(AImpliesExpr)>*/
9060 RET_LABEL:;
9061 }
9062 /* method parser_prod#AImpliesExpr#n_expr= for (self: AImpliesExpr, AExpr) */
9063 void parser_prod__AImpliesExpr__n_expr_61d(val* self, val* p0) {
9064 val* var_node /* var node: AExpr */;
9065 var_node = p0;
9066 self->attrs[COLOR_parser_nodes__AImpliesExpr___n_expr].val = var_node; /* _n_expr on <self:AImpliesExpr> */
9067 {
9068 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
9069 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
9070 RET_LABEL1:(void)0;
9071 }
9072 }
9073 RET_LABEL:;
9074 }
9075 /* method parser_prod#AImpliesExpr#n_expr= for (self: Object, AExpr) */
9076 void VIRTUAL_parser_prod__AImpliesExpr__n_expr_61d(val* self, val* p0) {
9077 parser_prod__AImpliesExpr__n_expr_61d(self, p0); /* Direct call parser_prod#AImpliesExpr#n_expr= on <self:Object(AImpliesExpr)>*/
9078 RET_LABEL:;
9079 }
9080 /* method parser_prod#AImpliesExpr#n_expr2= for (self: AImpliesExpr, AExpr) */
9081 void parser_prod__AImpliesExpr__n_expr2_61d(val* self, val* p0) {
9082 val* var_node /* var node: AExpr */;
9083 var_node = p0;
9084 self->attrs[COLOR_parser_nodes__AImpliesExpr___n_expr2].val = var_node; /* _n_expr2 on <self:AImpliesExpr> */
9085 {
9086 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
9087 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
9088 RET_LABEL1:(void)0;
9089 }
9090 }
9091 RET_LABEL:;
9092 }
9093 /* method parser_prod#AImpliesExpr#n_expr2= for (self: Object, AExpr) */
9094 void VIRTUAL_parser_prod__AImpliesExpr__n_expr2_61d(val* self, val* p0) {
9095 parser_prod__AImpliesExpr__n_expr2_61d(self, p0); /* Direct call parser_prod#AImpliesExpr#n_expr2= on <self:Object(AImpliesExpr)>*/
9096 RET_LABEL:;
9097 }
9098 /* method parser_prod#AImpliesExpr#visit_all for (self: AImpliesExpr, Visitor) */
9099 void parser_prod__AImpliesExpr__visit_all(val* self, val* p0) {
9100 val* var_v /* var v: Visitor */;
9101 val* var /* : AExpr */;
9102 val* var1 /* : AExpr */;
9103 var_v = p0;
9104 var = self->attrs[COLOR_parser_nodes__AImpliesExpr___n_expr].val; /* _n_expr on <self:AImpliesExpr> */
9105 if (unlikely(var == NULL)) {
9106 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
9107 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4016);
9108 show_backtrace(1);
9109 }
9110 {
9111 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9112 }
9113 var1 = self->attrs[COLOR_parser_nodes__AImpliesExpr___n_expr2].val; /* _n_expr2 on <self:AImpliesExpr> */
9114 if (unlikely(var1 == NULL)) {
9115 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
9116 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4017);
9117 show_backtrace(1);
9118 }
9119 {
9120 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9121 }
9122 RET_LABEL:;
9123 }
9124 /* method parser_prod#AImpliesExpr#visit_all for (self: Object, Visitor) */
9125 void VIRTUAL_parser_prod__AImpliesExpr__visit_all(val* self, val* p0) {
9126 parser_prod__AImpliesExpr__visit_all(self, p0); /* Direct call parser_prod#AImpliesExpr#visit_all on <self:Object(AImpliesExpr)>*/
9127 RET_LABEL:;
9128 }
9129 /* method parser_prod#ANotExpr#init_anotexpr for (self: ANotExpr, nullable TKwnot, nullable AExpr) */
9130 void parser_prod__ANotExpr__init_anotexpr(val* self, val* p0, val* p1) {
9131 val* var_n_kwnot /* var n_kwnot: nullable TKwnot */;
9132 val* var_n_expr /* var n_expr: nullable AExpr */;
9133 var_n_kwnot = p0;
9134 var_n_expr = p1;
9135 if (unlikely(var_n_kwnot == NULL)) {
9136 PRINT_ERROR("Runtime error: %s", "Cast failed");
9137 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4026);
9138 show_backtrace(1);
9139 }
9140 self->attrs[COLOR_parser_nodes__ANotExpr___n_kwnot].val = var_n_kwnot; /* _n_kwnot on <self:ANotExpr> */
9141 if (var_n_kwnot == NULL) {
9142 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9143 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4027);
9144 show_backtrace(1);
9145 } else {
9146 { /* Inline parser_nodes#ANode#parent= (var_n_kwnot,self) on <var_n_kwnot:nullable TKwnot> */
9147 if (unlikely(var_n_kwnot == NULL)) {
9148 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9149 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
9150 show_backtrace(1);
9151 }
9152 var_n_kwnot->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwnot:nullable TKwnot> */
9153 RET_LABEL1:(void)0;
9154 }
9155 }
9156 if (unlikely(var_n_expr == NULL)) {
9157 PRINT_ERROR("Runtime error: %s", "Cast failed");
9158 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4028);
9159 show_backtrace(1);
9160 }
9161 self->attrs[COLOR_parser_nodes__ANotExpr___n_expr].val = var_n_expr; /* _n_expr on <self:ANotExpr> */
9162 if (var_n_expr == NULL) {
9163 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9164 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4029);
9165 show_backtrace(1);
9166 } else {
9167 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
9168 if (unlikely(var_n_expr == NULL)) {
9169 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9170 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
9171 show_backtrace(1);
9172 }
9173 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
9174 RET_LABEL2:(void)0;
9175 }
9176 }
9177 RET_LABEL:;
9178 }
9179 /* method parser_prod#ANotExpr#init_anotexpr for (self: Object, nullable TKwnot, nullable AExpr) */
9180 void VIRTUAL_parser_prod__ANotExpr__init_anotexpr(val* self, val* p0, val* p1) {
9181 parser_prod__ANotExpr__init_anotexpr(self, p0, p1); /* Direct call parser_prod#ANotExpr#init_anotexpr on <self:Object(ANotExpr)>*/
9182 RET_LABEL:;
9183 }
9184 /* method parser_prod#ANotExpr#replace_child for (self: ANotExpr, ANode, nullable ANode) */
9185 void parser_prod__ANotExpr__replace_child(val* self, val* p0, val* p1) {
9186 val* var_old_child /* var old_child: ANode */;
9187 val* var_new_child /* var new_child: nullable ANode */;
9188 val* var /* : TKwnot */;
9189 short int var1 /* : Bool */;
9190 short int var2 /* : Bool */;
9191 val* var_other /* var other: nullable Object */;
9192 short int var4 /* : Bool */;
9193 short int var6 /* : Bool */;
9194 short int var7 /* : Bool */;
9195 int cltype;
9196 int idtype;
9197 const char* var_class_name;
9198 val* var8 /* : AExpr */;
9199 short int var9 /* : Bool */;
9200 short int var10 /* : Bool */;
9201 short int var12 /* : Bool */;
9202 short int var14 /* : Bool */;
9203 short int var15 /* : Bool */;
9204 int cltype16;
9205 int idtype17;
9206 const char* var_class_name18;
9207 var_old_child = p0;
9208 var_new_child = p1;
9209 var = self->attrs[COLOR_parser_nodes__ANotExpr___n_kwnot].val; /* _n_kwnot on <self:ANotExpr> */
9210 if (unlikely(var == NULL)) {
9211 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwnot");
9212 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4034);
9213 show_backtrace(1);
9214 }
9215 {
9216 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwnot> */
9217 var_other = var_old_child;
9218 {
9219 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TKwnot> */
9220 var6 = var == var_other;
9221 var4 = var6;
9222 goto RET_LABEL5;
9223 RET_LABEL5:(void)0;
9224 }
9225 }
9226 var2 = var4;
9227 goto RET_LABEL3;
9228 RET_LABEL3:(void)0;
9229 }
9230 var1 = var2;
9231 }
9232 if (var1){
9233 /* <var_new_child:nullable ANode> isa TKwnot */
9234 cltype = type_parser_nodes__TKwnot.color;
9235 idtype = type_parser_nodes__TKwnot.id;
9236 if(var_new_child == NULL) {
9237 var7 = 0;
9238 } else {
9239 if(cltype >= var_new_child->type->table_size) {
9240 var7 = 0;
9241 } else {
9242 var7 = var_new_child->type->type_table[cltype] == idtype;
9243 }
9244 }
9245 if (unlikely(!var7)) {
9246 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
9247 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwnot", var_class_name);
9248 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4035);
9249 show_backtrace(1);
9250 }
9251 {
9252 parser_prod__ANotExpr__n_kwnot_61d(self, var_new_child); /* Direct call parser_prod#ANotExpr#n_kwnot= on <self:ANotExpr>*/
9253 }
9254 goto RET_LABEL;
9255 } else {
9256 }
9257 var8 = self->attrs[COLOR_parser_nodes__ANotExpr___n_expr].val; /* _n_expr on <self:ANotExpr> */
9258 if (unlikely(var8 == NULL)) {
9259 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
9260 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4038);
9261 show_backtrace(1);
9262 }
9263 {
9264 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExpr> */
9265 var_other = var_old_child;
9266 {
9267 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExpr> */
9268 var14 = var8 == var_other;
9269 var12 = var14;
9270 goto RET_LABEL13;
9271 RET_LABEL13:(void)0;
9272 }
9273 }
9274 var10 = var12;
9275 goto RET_LABEL11;
9276 RET_LABEL11:(void)0;
9277 }
9278 var9 = var10;
9279 }
9280 if (var9){
9281 /* <var_new_child:nullable ANode> isa AExpr */
9282 cltype16 = type_parser_nodes__AExpr.color;
9283 idtype17 = type_parser_nodes__AExpr.id;
9284 if(var_new_child == NULL) {
9285 var15 = 0;
9286 } else {
9287 if(cltype16 >= var_new_child->type->table_size) {
9288 var15 = 0;
9289 } else {
9290 var15 = var_new_child->type->type_table[cltype16] == idtype17;
9291 }
9292 }
9293 if (unlikely(!var15)) {
9294 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
9295 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name18);
9296 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4039);
9297 show_backtrace(1);
9298 }
9299 {
9300 parser_prod__ANotExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#ANotExpr#n_expr= on <self:ANotExpr>*/
9301 }
9302 goto RET_LABEL;
9303 } else {
9304 }
9305 RET_LABEL:;
9306 }
9307 /* method parser_prod#ANotExpr#replace_child for (self: Object, ANode, nullable ANode) */
9308 void VIRTUAL_parser_prod__ANotExpr__replace_child(val* self, val* p0, val* p1) {
9309 parser_prod__ANotExpr__replace_child(self, p0, p1); /* Direct call parser_prod#ANotExpr#replace_child on <self:Object(ANotExpr)>*/
9310 RET_LABEL:;
9311 }
9312 /* method parser_prod#ANotExpr#n_kwnot= for (self: ANotExpr, TKwnot) */
9313 void parser_prod__ANotExpr__n_kwnot_61d(val* self, val* p0) {
9314 val* var_node /* var node: TKwnot */;
9315 var_node = p0;
9316 self->attrs[COLOR_parser_nodes__ANotExpr___n_kwnot].val = var_node; /* _n_kwnot on <self:ANotExpr> */
9317 {
9318 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwnot> */
9319 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwnot> */
9320 RET_LABEL1:(void)0;
9321 }
9322 }
9323 RET_LABEL:;
9324 }
9325 /* method parser_prod#ANotExpr#n_kwnot= for (self: Object, TKwnot) */
9326 void VIRTUAL_parser_prod__ANotExpr__n_kwnot_61d(val* self, val* p0) {
9327 parser_prod__ANotExpr__n_kwnot_61d(self, p0); /* Direct call parser_prod#ANotExpr#n_kwnot= on <self:Object(ANotExpr)>*/
9328 RET_LABEL:;
9329 }
9330 /* method parser_prod#ANotExpr#n_expr= for (self: ANotExpr, AExpr) */
9331 void parser_prod__ANotExpr__n_expr_61d(val* self, val* p0) {
9332 val* var_node /* var node: AExpr */;
9333 var_node = p0;
9334 self->attrs[COLOR_parser_nodes__ANotExpr___n_expr].val = var_node; /* _n_expr on <self:ANotExpr> */
9335 {
9336 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
9337 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
9338 RET_LABEL1:(void)0;
9339 }
9340 }
9341 RET_LABEL:;
9342 }
9343 /* method parser_prod#ANotExpr#n_expr= for (self: Object, AExpr) */
9344 void VIRTUAL_parser_prod__ANotExpr__n_expr_61d(val* self, val* p0) {
9345 parser_prod__ANotExpr__n_expr_61d(self, p0); /* Direct call parser_prod#ANotExpr#n_expr= on <self:Object(ANotExpr)>*/
9346 RET_LABEL:;
9347 }
9348 /* method parser_prod#ANotExpr#visit_all for (self: ANotExpr, Visitor) */
9349 void parser_prod__ANotExpr__visit_all(val* self, val* p0) {
9350 val* var_v /* var v: Visitor */;
9351 val* var /* : TKwnot */;
9352 val* var1 /* : AExpr */;
9353 var_v = p0;
9354 var = self->attrs[COLOR_parser_nodes__ANotExpr___n_kwnot].val; /* _n_kwnot on <self:ANotExpr> */
9355 if (unlikely(var == NULL)) {
9356 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwnot");
9357 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4058);
9358 show_backtrace(1);
9359 }
9360 {
9361 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9362 }
9363 var1 = self->attrs[COLOR_parser_nodes__ANotExpr___n_expr].val; /* _n_expr on <self:ANotExpr> */
9364 if (unlikely(var1 == NULL)) {
9365 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
9366 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4059);
9367 show_backtrace(1);
9368 }
9369 {
9370 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9371 }
9372 RET_LABEL:;
9373 }
9374 /* method parser_prod#ANotExpr#visit_all for (self: Object, Visitor) */
9375 void VIRTUAL_parser_prod__ANotExpr__visit_all(val* self, val* p0) {
9376 parser_prod__ANotExpr__visit_all(self, p0); /* Direct call parser_prod#ANotExpr#visit_all on <self:Object(ANotExpr)>*/
9377 RET_LABEL:;
9378 }
9379 /* method parser_prod#AEqExpr#init_aeqexpr for (self: AEqExpr, nullable AExpr, nullable AExpr) */
9380 void parser_prod__AEqExpr__init_aeqexpr(val* self, val* p0, val* p1) {
9381 val* var_n_expr /* var n_expr: nullable AExpr */;
9382 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
9383 var_n_expr = p0;
9384 var_n_expr2 = p1;
9385 if (unlikely(var_n_expr == NULL)) {
9386 PRINT_ERROR("Runtime error: %s", "Cast failed");
9387 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4068);
9388 show_backtrace(1);
9389 }
9390 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AEqExpr> */
9391 if (var_n_expr == NULL) {
9392 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9393 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4069);
9394 show_backtrace(1);
9395 } else {
9396 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
9397 if (unlikely(var_n_expr == NULL)) {
9398 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9399 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
9400 show_backtrace(1);
9401 }
9402 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
9403 RET_LABEL1:(void)0;
9404 }
9405 }
9406 if (unlikely(var_n_expr2 == NULL)) {
9407 PRINT_ERROR("Runtime error: %s", "Cast failed");
9408 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4070);
9409 show_backtrace(1);
9410 }
9411 self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:AEqExpr> */
9412 if (var_n_expr2 == NULL) {
9413 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9414 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4071);
9415 show_backtrace(1);
9416 } else {
9417 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
9418 if (unlikely(var_n_expr2 == NULL)) {
9419 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9420 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
9421 show_backtrace(1);
9422 }
9423 var_n_expr2->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
9424 RET_LABEL2:(void)0;
9425 }
9426 }
9427 RET_LABEL:;
9428 }
9429 /* method parser_prod#AEqExpr#init_aeqexpr for (self: Object, nullable AExpr, nullable AExpr) */
9430 void VIRTUAL_parser_prod__AEqExpr__init_aeqexpr(val* self, val* p0, val* p1) {
9431 parser_prod__AEqExpr__init_aeqexpr(self, p0, p1); /* Direct call parser_prod#AEqExpr#init_aeqexpr on <self:Object(AEqExpr)>*/
9432 RET_LABEL:;
9433 }
9434 /* method parser_prod#AEqExpr#replace_child for (self: AEqExpr, ANode, nullable ANode) */
9435 void parser_prod__AEqExpr__replace_child(val* self, val* p0, val* p1) {
9436 val* var_old_child /* var old_child: ANode */;
9437 val* var_new_child /* var new_child: nullable ANode */;
9438 val* var /* : AExpr */;
9439 short int var1 /* : Bool */;
9440 short int var2 /* : Bool */;
9441 val* var_other /* var other: nullable Object */;
9442 short int var4 /* : Bool */;
9443 short int var6 /* : Bool */;
9444 short int var7 /* : Bool */;
9445 int cltype;
9446 int idtype;
9447 const char* var_class_name;
9448 val* var8 /* : AExpr */;
9449 short int var9 /* : Bool */;
9450 short int var10 /* : Bool */;
9451 short int var12 /* : Bool */;
9452 short int var14 /* : Bool */;
9453 short int var15 /* : Bool */;
9454 int cltype16;
9455 int idtype17;
9456 const char* var_class_name18;
9457 var_old_child = p0;
9458 var_new_child = p1;
9459 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AEqExpr> */
9460 if (unlikely(var == NULL)) {
9461 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
9462 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4076);
9463 show_backtrace(1);
9464 }
9465 {
9466 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
9467 var_other = var_old_child;
9468 {
9469 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
9470 var6 = var == var_other;
9471 var4 = var6;
9472 goto RET_LABEL5;
9473 RET_LABEL5:(void)0;
9474 }
9475 }
9476 var2 = var4;
9477 goto RET_LABEL3;
9478 RET_LABEL3:(void)0;
9479 }
9480 var1 = var2;
9481 }
9482 if (var1){
9483 /* <var_new_child:nullable ANode> isa AExpr */
9484 cltype = type_parser_nodes__AExpr.color;
9485 idtype = type_parser_nodes__AExpr.id;
9486 if(var_new_child == NULL) {
9487 var7 = 0;
9488 } else {
9489 if(cltype >= var_new_child->type->table_size) {
9490 var7 = 0;
9491 } else {
9492 var7 = var_new_child->type->type_table[cltype] == idtype;
9493 }
9494 }
9495 if (unlikely(!var7)) {
9496 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
9497 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
9498 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4077);
9499 show_backtrace(1);
9500 }
9501 {
9502 parser_prod__AEqExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AEqExpr#n_expr= on <self:AEqExpr>*/
9503 }
9504 goto RET_LABEL;
9505 } else {
9506 }
9507 var8 = self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AEqExpr> */
9508 if (unlikely(var8 == NULL)) {
9509 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
9510 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4080);
9511 show_backtrace(1);
9512 }
9513 {
9514 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExpr> */
9515 var_other = var_old_child;
9516 {
9517 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExpr> */
9518 var14 = var8 == var_other;
9519 var12 = var14;
9520 goto RET_LABEL13;
9521 RET_LABEL13:(void)0;
9522 }
9523 }
9524 var10 = var12;
9525 goto RET_LABEL11;
9526 RET_LABEL11:(void)0;
9527 }
9528 var9 = var10;
9529 }
9530 if (var9){
9531 /* <var_new_child:nullable ANode> isa AExpr */
9532 cltype16 = type_parser_nodes__AExpr.color;
9533 idtype17 = type_parser_nodes__AExpr.id;
9534 if(var_new_child == NULL) {
9535 var15 = 0;
9536 } else {
9537 if(cltype16 >= var_new_child->type->table_size) {
9538 var15 = 0;
9539 } else {
9540 var15 = var_new_child->type->type_table[cltype16] == idtype17;
9541 }
9542 }
9543 if (unlikely(!var15)) {
9544 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
9545 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name18);
9546 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4081);
9547 show_backtrace(1);
9548 }
9549 {
9550 parser_prod__AEqExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#AEqExpr#n_expr2= on <self:AEqExpr>*/
9551 }
9552 goto RET_LABEL;
9553 } else {
9554 }
9555 RET_LABEL:;
9556 }
9557 /* method parser_prod#AEqExpr#replace_child for (self: Object, ANode, nullable ANode) */
9558 void VIRTUAL_parser_prod__AEqExpr__replace_child(val* self, val* p0, val* p1) {
9559 parser_prod__AEqExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AEqExpr#replace_child on <self:Object(AEqExpr)>*/
9560 RET_LABEL:;
9561 }
9562 /* method parser_prod#AEqExpr#n_expr= for (self: AEqExpr, AExpr) */
9563 void parser_prod__AEqExpr__n_expr_61d(val* self, val* p0) {
9564 val* var_node /* var node: AExpr */;
9565 var_node = p0;
9566 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:AEqExpr> */
9567 {
9568 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
9569 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
9570 RET_LABEL1:(void)0;
9571 }
9572 }
9573 RET_LABEL:;
9574 }
9575 /* method parser_prod#AEqExpr#n_expr= for (self: Object, AExpr) */
9576 void VIRTUAL_parser_prod__AEqExpr__n_expr_61d(val* self, val* p0) {
9577 parser_prod__AEqExpr__n_expr_61d(self, p0); /* Direct call parser_prod#AEqExpr#n_expr= on <self:Object(AEqExpr)>*/
9578 RET_LABEL:;
9579 }
9580 /* method parser_prod#AEqExpr#n_expr2= for (self: AEqExpr, AExpr) */
9581 void parser_prod__AEqExpr__n_expr2_61d(val* self, val* p0) {
9582 val* var_node /* var node: AExpr */;
9583 var_node = p0;
9584 self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val = var_node; /* _n_expr2 on <self:AEqExpr> */
9585 {
9586 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
9587 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
9588 RET_LABEL1:(void)0;
9589 }
9590 }
9591 RET_LABEL:;
9592 }
9593 /* method parser_prod#AEqExpr#n_expr2= for (self: Object, AExpr) */
9594 void VIRTUAL_parser_prod__AEqExpr__n_expr2_61d(val* self, val* p0) {
9595 parser_prod__AEqExpr__n_expr2_61d(self, p0); /* Direct call parser_prod#AEqExpr#n_expr2= on <self:Object(AEqExpr)>*/
9596 RET_LABEL:;
9597 }
9598 /* method parser_prod#AEqExpr#visit_all for (self: AEqExpr, Visitor) */
9599 void parser_prod__AEqExpr__visit_all(val* self, val* p0) {
9600 val* var_v /* var v: Visitor */;
9601 val* var /* : AExpr */;
9602 val* var1 /* : AExpr */;
9603 var_v = p0;
9604 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AEqExpr> */
9605 if (unlikely(var == NULL)) {
9606 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
9607 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4100);
9608 show_backtrace(1);
9609 }
9610 {
9611 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9612 }
9613 var1 = self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AEqExpr> */
9614 if (unlikely(var1 == NULL)) {
9615 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
9616 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4101);
9617 show_backtrace(1);
9618 }
9619 {
9620 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9621 }
9622 RET_LABEL:;
9623 }
9624 /* method parser_prod#AEqExpr#visit_all for (self: Object, Visitor) */
9625 void VIRTUAL_parser_prod__AEqExpr__visit_all(val* self, val* p0) {
9626 parser_prod__AEqExpr__visit_all(self, p0); /* Direct call parser_prod#AEqExpr#visit_all on <self:Object(AEqExpr)>*/
9627 RET_LABEL:;
9628 }
9629 /* method parser_prod#ANeExpr#init_aneexpr for (self: ANeExpr, nullable AExpr, nullable AExpr) */
9630 void parser_prod__ANeExpr__init_aneexpr(val* self, val* p0, val* p1) {
9631 val* var_n_expr /* var n_expr: nullable AExpr */;
9632 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
9633 var_n_expr = p0;
9634 var_n_expr2 = p1;
9635 if (unlikely(var_n_expr == NULL)) {
9636 PRINT_ERROR("Runtime error: %s", "Cast failed");
9637 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4110);
9638 show_backtrace(1);
9639 }
9640 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:ANeExpr> */
9641 if (var_n_expr == NULL) {
9642 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9643 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4111);
9644 show_backtrace(1);
9645 } else {
9646 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
9647 if (unlikely(var_n_expr == NULL)) {
9648 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9649 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
9650 show_backtrace(1);
9651 }
9652 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
9653 RET_LABEL1:(void)0;
9654 }
9655 }
9656 if (unlikely(var_n_expr2 == NULL)) {
9657 PRINT_ERROR("Runtime error: %s", "Cast failed");
9658 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4112);
9659 show_backtrace(1);
9660 }
9661 self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:ANeExpr> */
9662 if (var_n_expr2 == NULL) {
9663 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9664 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4113);
9665 show_backtrace(1);
9666 } else {
9667 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
9668 if (unlikely(var_n_expr2 == NULL)) {
9669 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9670 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
9671 show_backtrace(1);
9672 }
9673 var_n_expr2->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
9674 RET_LABEL2:(void)0;
9675 }
9676 }
9677 RET_LABEL:;
9678 }
9679 /* method parser_prod#ANeExpr#init_aneexpr for (self: Object, nullable AExpr, nullable AExpr) */
9680 void VIRTUAL_parser_prod__ANeExpr__init_aneexpr(val* self, val* p0, val* p1) {
9681 parser_prod__ANeExpr__init_aneexpr(self, p0, p1); /* Direct call parser_prod#ANeExpr#init_aneexpr on <self:Object(ANeExpr)>*/
9682 RET_LABEL:;
9683 }
9684 /* method parser_prod#ANeExpr#replace_child for (self: ANeExpr, ANode, nullable ANode) */
9685 void parser_prod__ANeExpr__replace_child(val* self, val* p0, val* p1) {
9686 val* var_old_child /* var old_child: ANode */;
9687 val* var_new_child /* var new_child: nullable ANode */;
9688 val* var /* : AExpr */;
9689 short int var1 /* : Bool */;
9690 short int var2 /* : Bool */;
9691 val* var_other /* var other: nullable Object */;
9692 short int var4 /* : Bool */;
9693 short int var6 /* : Bool */;
9694 short int var7 /* : Bool */;
9695 int cltype;
9696 int idtype;
9697 const char* var_class_name;
9698 val* var8 /* : AExpr */;
9699 short int var9 /* : Bool */;
9700 short int var10 /* : Bool */;
9701 short int var12 /* : Bool */;
9702 short int var14 /* : Bool */;
9703 short int var15 /* : Bool */;
9704 int cltype16;
9705 int idtype17;
9706 const char* var_class_name18;
9707 var_old_child = p0;
9708 var_new_child = p1;
9709 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ANeExpr> */
9710 if (unlikely(var == NULL)) {
9711 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
9712 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4118);
9713 show_backtrace(1);
9714 }
9715 {
9716 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
9717 var_other = var_old_child;
9718 {
9719 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
9720 var6 = var == var_other;
9721 var4 = var6;
9722 goto RET_LABEL5;
9723 RET_LABEL5:(void)0;
9724 }
9725 }
9726 var2 = var4;
9727 goto RET_LABEL3;
9728 RET_LABEL3:(void)0;
9729 }
9730 var1 = var2;
9731 }
9732 if (var1){
9733 /* <var_new_child:nullable ANode> isa AExpr */
9734 cltype = type_parser_nodes__AExpr.color;
9735 idtype = type_parser_nodes__AExpr.id;
9736 if(var_new_child == NULL) {
9737 var7 = 0;
9738 } else {
9739 if(cltype >= var_new_child->type->table_size) {
9740 var7 = 0;
9741 } else {
9742 var7 = var_new_child->type->type_table[cltype] == idtype;
9743 }
9744 }
9745 if (unlikely(!var7)) {
9746 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
9747 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
9748 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4119);
9749 show_backtrace(1);
9750 }
9751 {
9752 parser_prod__ANeExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#ANeExpr#n_expr= on <self:ANeExpr>*/
9753 }
9754 goto RET_LABEL;
9755 } else {
9756 }
9757 var8 = self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:ANeExpr> */
9758 if (unlikely(var8 == NULL)) {
9759 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
9760 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4122);
9761 show_backtrace(1);
9762 }
9763 {
9764 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExpr> */
9765 var_other = var_old_child;
9766 {
9767 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExpr> */
9768 var14 = var8 == var_other;
9769 var12 = var14;
9770 goto RET_LABEL13;
9771 RET_LABEL13:(void)0;
9772 }
9773 }
9774 var10 = var12;
9775 goto RET_LABEL11;
9776 RET_LABEL11:(void)0;
9777 }
9778 var9 = var10;
9779 }
9780 if (var9){
9781 /* <var_new_child:nullable ANode> isa AExpr */
9782 cltype16 = type_parser_nodes__AExpr.color;
9783 idtype17 = type_parser_nodes__AExpr.id;
9784 if(var_new_child == NULL) {
9785 var15 = 0;
9786 } else {
9787 if(cltype16 >= var_new_child->type->table_size) {
9788 var15 = 0;
9789 } else {
9790 var15 = var_new_child->type->type_table[cltype16] == idtype17;
9791 }
9792 }
9793 if (unlikely(!var15)) {
9794 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
9795 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name18);
9796 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4123);
9797 show_backtrace(1);
9798 }
9799 {
9800 parser_prod__ANeExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#ANeExpr#n_expr2= on <self:ANeExpr>*/
9801 }
9802 goto RET_LABEL;
9803 } else {
9804 }
9805 RET_LABEL:;
9806 }
9807 /* method parser_prod#ANeExpr#replace_child for (self: Object, ANode, nullable ANode) */
9808 void VIRTUAL_parser_prod__ANeExpr__replace_child(val* self, val* p0, val* p1) {
9809 parser_prod__ANeExpr__replace_child(self, p0, p1); /* Direct call parser_prod#ANeExpr#replace_child on <self:Object(ANeExpr)>*/
9810 RET_LABEL:;
9811 }
9812 /* method parser_prod#ANeExpr#n_expr= for (self: ANeExpr, AExpr) */
9813 void parser_prod__ANeExpr__n_expr_61d(val* self, val* p0) {
9814 val* var_node /* var node: AExpr */;
9815 var_node = p0;
9816 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:ANeExpr> */
9817 {
9818 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
9819 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
9820 RET_LABEL1:(void)0;
9821 }
9822 }
9823 RET_LABEL:;
9824 }
9825 /* method parser_prod#ANeExpr#n_expr= for (self: Object, AExpr) */
9826 void VIRTUAL_parser_prod__ANeExpr__n_expr_61d(val* self, val* p0) {
9827 parser_prod__ANeExpr__n_expr_61d(self, p0); /* Direct call parser_prod#ANeExpr#n_expr= on <self:Object(ANeExpr)>*/
9828 RET_LABEL:;
9829 }
9830 /* method parser_prod#ANeExpr#n_expr2= for (self: ANeExpr, AExpr) */
9831 void parser_prod__ANeExpr__n_expr2_61d(val* self, val* p0) {
9832 val* var_node /* var node: AExpr */;
9833 var_node = p0;
9834 self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val = var_node; /* _n_expr2 on <self:ANeExpr> */
9835 {
9836 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
9837 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
9838 RET_LABEL1:(void)0;
9839 }
9840 }
9841 RET_LABEL:;
9842 }
9843 /* method parser_prod#ANeExpr#n_expr2= for (self: Object, AExpr) */
9844 void VIRTUAL_parser_prod__ANeExpr__n_expr2_61d(val* self, val* p0) {
9845 parser_prod__ANeExpr__n_expr2_61d(self, p0); /* Direct call parser_prod#ANeExpr#n_expr2= on <self:Object(ANeExpr)>*/
9846 RET_LABEL:;
9847 }
9848 /* method parser_prod#ANeExpr#visit_all for (self: ANeExpr, Visitor) */
9849 void parser_prod__ANeExpr__visit_all(val* self, val* p0) {
9850 val* var_v /* var v: Visitor */;
9851 val* var /* : AExpr */;
9852 val* var1 /* : AExpr */;
9853 var_v = p0;
9854 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ANeExpr> */
9855 if (unlikely(var == NULL)) {
9856 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
9857 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4142);
9858 show_backtrace(1);
9859 }
9860 {
9861 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9862 }
9863 var1 = self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:ANeExpr> */
9864 if (unlikely(var1 == NULL)) {
9865 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
9866 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4143);
9867 show_backtrace(1);
9868 }
9869 {
9870 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9871 }
9872 RET_LABEL:;
9873 }
9874 /* method parser_prod#ANeExpr#visit_all for (self: Object, Visitor) */
9875 void VIRTUAL_parser_prod__ANeExpr__visit_all(val* self, val* p0) {
9876 parser_prod__ANeExpr__visit_all(self, p0); /* Direct call parser_prod#ANeExpr#visit_all on <self:Object(ANeExpr)>*/
9877 RET_LABEL:;
9878 }
9879 /* method parser_prod#ALtExpr#init_altexpr for (self: ALtExpr, nullable AExpr, nullable AExpr) */
9880 void parser_prod__ALtExpr__init_altexpr(val* self, val* p0, val* p1) {
9881 val* var_n_expr /* var n_expr: nullable AExpr */;
9882 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
9883 var_n_expr = p0;
9884 var_n_expr2 = p1;
9885 if (unlikely(var_n_expr == NULL)) {
9886 PRINT_ERROR("Runtime error: %s", "Cast failed");
9887 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4152);
9888 show_backtrace(1);
9889 }
9890 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:ALtExpr> */
9891 if (var_n_expr == NULL) {
9892 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9893 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4153);
9894 show_backtrace(1);
9895 } else {
9896 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
9897 if (unlikely(var_n_expr == NULL)) {
9898 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9899 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
9900 show_backtrace(1);
9901 }
9902 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
9903 RET_LABEL1:(void)0;
9904 }
9905 }
9906 if (unlikely(var_n_expr2 == NULL)) {
9907 PRINT_ERROR("Runtime error: %s", "Cast failed");
9908 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4154);
9909 show_backtrace(1);
9910 }
9911 self->attrs[COLOR_parser_nodes__ABinopExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:ALtExpr> */
9912 if (var_n_expr2 == NULL) {
9913 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9914 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 4155);
9915 show_backtrace(1);
9916 } else {
9917 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
9918 if (unlikely(var_n_expr2 == NULL)) {
9919 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9920 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
9921 show_backtrace(1);
9922 }
9923 var_n_expr2->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
9924 RET_LABEL2:(void)0;
9925 }
9926 }
9927 RET_LABEL:;
9928 }
9929 /* method parser_prod#ALtExpr#init_altexpr for (self: Object, nullable AExpr, nullable AExpr) */
9930 void VIRTUAL_parser_prod__ALtExpr__init_altexpr(val* self, val* p0, val* p1) {
9931 parser_prod__ALtExpr__init_altexpr(self, p0, p1); /* Direct call parser_prod#ALtExpr#init_altexpr on <self:Object(ALtExpr)>*/
9932 RET_LABEL:;
9933 }