NOTICE: update dates and authors.
[nit.git] / c_src / parser_prod.sep.5.c
1 #include "parser_prod.sep.0.h"
2 /* method parser_prod#ACrangeExpr#visit_all for (self: ACrangeExpr, Visitor) */
3 void parser_prod__ACrangeExpr__visit_all(val* self, val* p0) {
4 val* var_v /* var v: Visitor */;
5 val* var /* : TObra */;
6 val* var1 /* : AExpr */;
7 val* var2 /* : AExpr */;
8 val* var3 /* : TCbra */;
9 val* var4 /* : nullable AAnnotations */;
10 var_v = p0;
11 var = self->attrs[COLOR_parser_nodes__ACrangeExpr___n_obra].val; /* _n_obra on <self:ACrangeExpr> */
12 if (unlikely(var == NULL)) {
13 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_obra");
14 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5753);
15 show_backtrace(1);
16 }
17 {
18 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
19 }
20 var1 = self->attrs[COLOR_parser_nodes__ARangeExpr___n_expr].val; /* _n_expr on <self:ACrangeExpr> */
21 if (unlikely(var1 == NULL)) {
22 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
23 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5754);
24 show_backtrace(1);
25 }
26 {
27 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
28 }
29 var2 = self->attrs[COLOR_parser_nodes__ARangeExpr___n_expr2].val; /* _n_expr2 on <self:ACrangeExpr> */
30 if (unlikely(var2 == NULL)) {
31 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
32 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5755);
33 show_backtrace(1);
34 }
35 {
36 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
37 }
38 var3 = self->attrs[COLOR_parser_nodes__ACrangeExpr___n_cbra].val; /* _n_cbra on <self:ACrangeExpr> */
39 if (unlikely(var3 == NULL)) {
40 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_cbra");
41 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5756);
42 show_backtrace(1);
43 }
44 {
45 parser_nodes__Visitor__enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
46 }
47 var4 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:ACrangeExpr> */
48 {
49 parser_nodes__Visitor__enter_visit(var_v, var4); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
50 }
51 RET_LABEL:;
52 }
53 /* method parser_prod#ACrangeExpr#visit_all for (self: Object, Visitor) */
54 void VIRTUAL_parser_prod__ACrangeExpr__visit_all(val* self, val* p0) {
55 parser_prod__ACrangeExpr__visit_all(self, p0); /* Direct call parser_prod#ACrangeExpr#visit_all on <self:Object(ACrangeExpr)>*/
56 RET_LABEL:;
57 }
58 /* method parser_prod#AOrangeExpr#init_aorangeexpr for (self: AOrangeExpr, nullable TObra, nullable AExpr, nullable AExpr, nullable TObra, nullable AAnnotations) */
59 void parser_prod__AOrangeExpr__init_aorangeexpr(val* self, val* p0, val* p1, val* p2, val* p3, val* p4) {
60 val* var_n_obra /* var n_obra: nullable TObra */;
61 val* var_n_expr /* var n_expr: nullable AExpr */;
62 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
63 val* var_n_cbra /* var n_cbra: nullable TObra */;
64 val* var_n_annotations /* var n_annotations: nullable AAnnotations */;
65 val* var /* : null */;
66 short int var5 /* : Bool */;
67 short int var6 /* : Bool */;
68 val* var_other /* var other: nullable Object */;
69 short int var8 /* : Bool */;
70 short int var9 /* : Bool */;
71 short int var10 /* : Bool */;
72 var_n_obra = p0;
73 var_n_expr = p1;
74 var_n_expr2 = p2;
75 var_n_cbra = p3;
76 var_n_annotations = p4;
77 if (unlikely(var_n_obra == NULL)) {
78 PRINT_ERROR("Runtime error: %s", "Cast failed");
79 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5769);
80 show_backtrace(1);
81 }
82 self->attrs[COLOR_parser_nodes__AOrangeExpr___n_obra].val = var_n_obra; /* _n_obra on <self:AOrangeExpr> */
83 if (var_n_obra == NULL) {
84 PRINT_ERROR("Runtime error: %s", "Receiver is null");
85 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5770);
86 show_backtrace(1);
87 } else {
88 { /* Inline parser_nodes#ANode#parent= (var_n_obra,self) on <var_n_obra:nullable TObra> */
89 if (unlikely(var_n_obra == NULL)) {
90 PRINT_ERROR("Runtime error: %s", "Receiver is null");
91 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
92 show_backtrace(1);
93 }
94 var_n_obra->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_obra:nullable TObra> */
95 RET_LABEL1:(void)0;
96 }
97 }
98 if (unlikely(var_n_expr == NULL)) {
99 PRINT_ERROR("Runtime error: %s", "Cast failed");
100 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5771);
101 show_backtrace(1);
102 }
103 self->attrs[COLOR_parser_nodes__ARangeExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AOrangeExpr> */
104 if (var_n_expr == NULL) {
105 PRINT_ERROR("Runtime error: %s", "Receiver is null");
106 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5772);
107 show_backtrace(1);
108 } else {
109 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
110 if (unlikely(var_n_expr == NULL)) {
111 PRINT_ERROR("Runtime error: %s", "Receiver is null");
112 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
113 show_backtrace(1);
114 }
115 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
116 RET_LABEL2:(void)0;
117 }
118 }
119 if (unlikely(var_n_expr2 == NULL)) {
120 PRINT_ERROR("Runtime error: %s", "Cast failed");
121 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5773);
122 show_backtrace(1);
123 }
124 self->attrs[COLOR_parser_nodes__ARangeExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:AOrangeExpr> */
125 if (var_n_expr2 == NULL) {
126 PRINT_ERROR("Runtime error: %s", "Receiver is null");
127 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5774);
128 show_backtrace(1);
129 } else {
130 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
131 if (unlikely(var_n_expr2 == NULL)) {
132 PRINT_ERROR("Runtime error: %s", "Receiver is null");
133 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
134 show_backtrace(1);
135 }
136 var_n_expr2->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
137 RET_LABEL3:(void)0;
138 }
139 }
140 if (unlikely(var_n_cbra == NULL)) {
141 PRINT_ERROR("Runtime error: %s", "Cast failed");
142 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5775);
143 show_backtrace(1);
144 }
145 self->attrs[COLOR_parser_nodes__AOrangeExpr___n_cbra].val = var_n_cbra; /* _n_cbra on <self:AOrangeExpr> */
146 if (var_n_cbra == NULL) {
147 PRINT_ERROR("Runtime error: %s", "Receiver is null");
148 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5776);
149 show_backtrace(1);
150 } else {
151 { /* Inline parser_nodes#ANode#parent= (var_n_cbra,self) on <var_n_cbra:nullable TObra> */
152 if (unlikely(var_n_cbra == NULL)) {
153 PRINT_ERROR("Runtime error: %s", "Receiver is null");
154 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
155 show_backtrace(1);
156 }
157 var_n_cbra->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_cbra:nullable TObra> */
158 RET_LABEL4:(void)0;
159 }
160 }
161 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:AOrangeExpr> */
162 var = NULL;
163 if (var_n_annotations == NULL) {
164 var5 = 0; /* is null */
165 } else {
166 var5 = 1; /* arg is null and recv is not */
167 }
168 if (0) {
169 { /* Inline kernel#Object#!= (var_n_annotations,var) on <var_n_annotations:nullable AAnnotations> */
170 var_other = var;
171 {
172 var9 = ((short int (*)(val*, val*))(var_n_annotations->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_annotations, var_other) /* == on <var_n_annotations:nullable AAnnotations(AAnnotations)>*/;
173 var8 = var9;
174 }
175 var10 = !var8;
176 var6 = var10;
177 goto RET_LABEL7;
178 RET_LABEL7:(void)0;
179 }
180 var5 = var6;
181 }
182 if (var5){
183 {
184 { /* Inline parser_nodes#ANode#parent= (var_n_annotations,self) on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
185 var_n_annotations->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
186 RET_LABEL11:(void)0;
187 }
188 }
189 } else {
190 }
191 RET_LABEL:;
192 }
193 /* method parser_prod#AOrangeExpr#init_aorangeexpr for (self: Object, nullable TObra, nullable AExpr, nullable AExpr, nullable TObra, nullable AAnnotations) */
194 void VIRTUAL_parser_prod__AOrangeExpr__init_aorangeexpr(val* self, val* p0, val* p1, val* p2, val* p3, val* p4) {
195 parser_prod__AOrangeExpr__init_aorangeexpr(self, p0, p1, p2, p3, p4); /* Direct call parser_prod#AOrangeExpr#init_aorangeexpr on <self:Object(AOrangeExpr)>*/
196 RET_LABEL:;
197 }
198 /* method parser_prod#AOrangeExpr#replace_child for (self: AOrangeExpr, ANode, nullable ANode) */
199 void parser_prod__AOrangeExpr__replace_child(val* self, val* p0, val* p1) {
200 val* var_old_child /* var old_child: ANode */;
201 val* var_new_child /* var new_child: nullable ANode */;
202 val* var /* : TObra */;
203 short int var1 /* : Bool */;
204 short int var2 /* : Bool */;
205 val* var_other /* var other: nullable Object */;
206 short int var4 /* : Bool */;
207 short int var6 /* : Bool */;
208 short int var7 /* : Bool */;
209 int cltype;
210 int idtype;
211 const char* var_class_name;
212 val* var8 /* : AExpr */;
213 short int var9 /* : Bool */;
214 short int var10 /* : Bool */;
215 short int var12 /* : Bool */;
216 short int var14 /* : Bool */;
217 short int var15 /* : Bool */;
218 int cltype16;
219 int idtype17;
220 const char* var_class_name18;
221 val* var19 /* : AExpr */;
222 short int var20 /* : Bool */;
223 short int var21 /* : Bool */;
224 short int var23 /* : Bool */;
225 short int var25 /* : Bool */;
226 short int var26 /* : Bool */;
227 int cltype27;
228 int idtype28;
229 const char* var_class_name29;
230 val* var30 /* : TObra */;
231 short int var31 /* : Bool */;
232 short int var32 /* : Bool */;
233 short int var34 /* : Bool */;
234 short int var36 /* : Bool */;
235 short int var37 /* : Bool */;
236 int cltype38;
237 int idtype39;
238 const char* var_class_name40;
239 val* var41 /* : nullable AAnnotations */;
240 short int var42 /* : Bool */;
241 short int var43 /* : Bool */;
242 short int var45 /* : Bool */;
243 short int var47 /* : Bool */;
244 short int var48 /* : Bool */;
245 int cltype49;
246 int idtype50;
247 const char* var_class_name51;
248 var_old_child = p0;
249 var_new_child = p1;
250 var = self->attrs[COLOR_parser_nodes__AOrangeExpr___n_obra].val; /* _n_obra on <self:AOrangeExpr> */
251 if (unlikely(var == NULL)) {
252 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_obra");
253 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5783);
254 show_backtrace(1);
255 }
256 {
257 { /* Inline kernel#Object#== (var,var_old_child) on <var:TObra> */
258 var_other = var_old_child;
259 {
260 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TObra> */
261 var6 = var == var_other;
262 var4 = var6;
263 goto RET_LABEL5;
264 RET_LABEL5:(void)0;
265 }
266 }
267 var2 = var4;
268 goto RET_LABEL3;
269 RET_LABEL3:(void)0;
270 }
271 var1 = var2;
272 }
273 if (var1){
274 /* <var_new_child:nullable ANode> isa TObra */
275 cltype = type_parser_nodes__TObra.color;
276 idtype = type_parser_nodes__TObra.id;
277 if(var_new_child == NULL) {
278 var7 = 0;
279 } else {
280 if(cltype >= var_new_child->type->table_size) {
281 var7 = 0;
282 } else {
283 var7 = var_new_child->type->type_table[cltype] == idtype;
284 }
285 }
286 if (unlikely(!var7)) {
287 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
288 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TObra", var_class_name);
289 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5784);
290 show_backtrace(1);
291 }
292 {
293 parser_prod__AOrangeExpr__n_obra_61d(self, var_new_child); /* Direct call parser_prod#AOrangeExpr#n_obra= on <self:AOrangeExpr>*/
294 }
295 goto RET_LABEL;
296 } else {
297 }
298 var8 = self->attrs[COLOR_parser_nodes__ARangeExpr___n_expr].val; /* _n_expr on <self:AOrangeExpr> */
299 if (unlikely(var8 == NULL)) {
300 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
301 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5787);
302 show_backtrace(1);
303 }
304 {
305 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExpr> */
306 var_other = var_old_child;
307 {
308 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExpr> */
309 var14 = var8 == var_other;
310 var12 = var14;
311 goto RET_LABEL13;
312 RET_LABEL13:(void)0;
313 }
314 }
315 var10 = var12;
316 goto RET_LABEL11;
317 RET_LABEL11:(void)0;
318 }
319 var9 = var10;
320 }
321 if (var9){
322 /* <var_new_child:nullable ANode> isa AExpr */
323 cltype16 = type_parser_nodes__AExpr.color;
324 idtype17 = type_parser_nodes__AExpr.id;
325 if(var_new_child == NULL) {
326 var15 = 0;
327 } else {
328 if(cltype16 >= var_new_child->type->table_size) {
329 var15 = 0;
330 } else {
331 var15 = var_new_child->type->type_table[cltype16] == idtype17;
332 }
333 }
334 if (unlikely(!var15)) {
335 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
336 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name18);
337 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5788);
338 show_backtrace(1);
339 }
340 {
341 parser_prod__AOrangeExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AOrangeExpr#n_expr= on <self:AOrangeExpr>*/
342 }
343 goto RET_LABEL;
344 } else {
345 }
346 var19 = self->attrs[COLOR_parser_nodes__ARangeExpr___n_expr2].val; /* _n_expr2 on <self:AOrangeExpr> */
347 if (unlikely(var19 == NULL)) {
348 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
349 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5791);
350 show_backtrace(1);
351 }
352 {
353 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:AExpr> */
354 var_other = var_old_child;
355 {
356 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:AExpr> */
357 var25 = var19 == var_other;
358 var23 = var25;
359 goto RET_LABEL24;
360 RET_LABEL24:(void)0;
361 }
362 }
363 var21 = var23;
364 goto RET_LABEL22;
365 RET_LABEL22:(void)0;
366 }
367 var20 = var21;
368 }
369 if (var20){
370 /* <var_new_child:nullable ANode> isa AExpr */
371 cltype27 = type_parser_nodes__AExpr.color;
372 idtype28 = type_parser_nodes__AExpr.id;
373 if(var_new_child == NULL) {
374 var26 = 0;
375 } else {
376 if(cltype27 >= var_new_child->type->table_size) {
377 var26 = 0;
378 } else {
379 var26 = var_new_child->type->type_table[cltype27] == idtype28;
380 }
381 }
382 if (unlikely(!var26)) {
383 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
384 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name29);
385 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5792);
386 show_backtrace(1);
387 }
388 {
389 parser_prod__AOrangeExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#AOrangeExpr#n_expr2= on <self:AOrangeExpr>*/
390 }
391 goto RET_LABEL;
392 } else {
393 }
394 var30 = self->attrs[COLOR_parser_nodes__AOrangeExpr___n_cbra].val; /* _n_cbra on <self:AOrangeExpr> */
395 if (unlikely(var30 == NULL)) {
396 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_cbra");
397 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5795);
398 show_backtrace(1);
399 }
400 {
401 { /* Inline kernel#Object#== (var30,var_old_child) on <var30:TObra> */
402 var_other = var_old_child;
403 {
404 { /* Inline kernel#Object#is_same_instance (var30,var_other) on <var30:TObra> */
405 var36 = var30 == var_other;
406 var34 = var36;
407 goto RET_LABEL35;
408 RET_LABEL35:(void)0;
409 }
410 }
411 var32 = var34;
412 goto RET_LABEL33;
413 RET_LABEL33:(void)0;
414 }
415 var31 = var32;
416 }
417 if (var31){
418 /* <var_new_child:nullable ANode> isa TObra */
419 cltype38 = type_parser_nodes__TObra.color;
420 idtype39 = type_parser_nodes__TObra.id;
421 if(var_new_child == NULL) {
422 var37 = 0;
423 } else {
424 if(cltype38 >= var_new_child->type->table_size) {
425 var37 = 0;
426 } else {
427 var37 = var_new_child->type->type_table[cltype38] == idtype39;
428 }
429 }
430 if (unlikely(!var37)) {
431 var_class_name40 = var_new_child == NULL ? "null" : var_new_child->type->name;
432 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TObra", var_class_name40);
433 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5796);
434 show_backtrace(1);
435 }
436 {
437 parser_prod__AOrangeExpr__n_cbra_61d(self, var_new_child); /* Direct call parser_prod#AOrangeExpr#n_cbra= on <self:AOrangeExpr>*/
438 }
439 goto RET_LABEL;
440 } else {
441 }
442 var41 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AOrangeExpr> */
443 if (var41 == NULL) {
444 var42 = 0; /* <var_old_child:ANode> cannot be null */
445 } else {
446 { /* Inline kernel#Object#== (var41,var_old_child) on <var41:nullable AAnnotations> */
447 var_other = var_old_child;
448 {
449 { /* Inline kernel#Object#is_same_instance (var41,var_other) on <var41:nullable AAnnotations(AAnnotations)> */
450 var47 = var41 == var_other;
451 var45 = var47;
452 goto RET_LABEL46;
453 RET_LABEL46:(void)0;
454 }
455 }
456 var43 = var45;
457 goto RET_LABEL44;
458 RET_LABEL44:(void)0;
459 }
460 var42 = var43;
461 }
462 if (var42){
463 /* <var_new_child:nullable ANode> isa nullable AAnnotations */
464 cltype49 = type_nullable_parser_nodes__AAnnotations.color;
465 idtype50 = type_nullable_parser_nodes__AAnnotations.id;
466 if(var_new_child == NULL) {
467 var48 = 1;
468 } else {
469 if(cltype49 >= var_new_child->type->table_size) {
470 var48 = 0;
471 } else {
472 var48 = var_new_child->type->type_table[cltype49] == idtype50;
473 }
474 }
475 if (unlikely(!var48)) {
476 var_class_name51 = var_new_child == NULL ? "null" : var_new_child->type->name;
477 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AAnnotations", var_class_name51);
478 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5800);
479 show_backtrace(1);
480 }
481 {
482 parser_prod__AOrangeExpr__n_annotations_61d(self, var_new_child); /* Direct call parser_prod#AOrangeExpr#n_annotations= on <self:AOrangeExpr>*/
483 }
484 goto RET_LABEL;
485 } else {
486 }
487 RET_LABEL:;
488 }
489 /* method parser_prod#AOrangeExpr#replace_child for (self: Object, ANode, nullable ANode) */
490 void VIRTUAL_parser_prod__AOrangeExpr__replace_child(val* self, val* p0, val* p1) {
491 parser_prod__AOrangeExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AOrangeExpr#replace_child on <self:Object(AOrangeExpr)>*/
492 RET_LABEL:;
493 }
494 /* method parser_prod#AOrangeExpr#n_obra= for (self: AOrangeExpr, TObra) */
495 void parser_prod__AOrangeExpr__n_obra_61d(val* self, val* p0) {
496 val* var_node /* var node: TObra */;
497 var_node = p0;
498 self->attrs[COLOR_parser_nodes__AOrangeExpr___n_obra].val = var_node; /* _n_obra on <self:AOrangeExpr> */
499 {
500 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TObra> */
501 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TObra> */
502 RET_LABEL1:(void)0;
503 }
504 }
505 RET_LABEL:;
506 }
507 /* method parser_prod#AOrangeExpr#n_obra= for (self: Object, TObra) */
508 void VIRTUAL_parser_prod__AOrangeExpr__n_obra_61d(val* self, val* p0) {
509 parser_prod__AOrangeExpr__n_obra_61d(self, p0); /* Direct call parser_prod#AOrangeExpr#n_obra= on <self:Object(AOrangeExpr)>*/
510 RET_LABEL:;
511 }
512 /* method parser_prod#AOrangeExpr#n_expr= for (self: AOrangeExpr, AExpr) */
513 void parser_prod__AOrangeExpr__n_expr_61d(val* self, val* p0) {
514 val* var_node /* var node: AExpr */;
515 var_node = p0;
516 self->attrs[COLOR_parser_nodes__ARangeExpr___n_expr].val = var_node; /* _n_expr on <self:AOrangeExpr> */
517 {
518 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
519 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
520 RET_LABEL1:(void)0;
521 }
522 }
523 RET_LABEL:;
524 }
525 /* method parser_prod#AOrangeExpr#n_expr= for (self: Object, AExpr) */
526 void VIRTUAL_parser_prod__AOrangeExpr__n_expr_61d(val* self, val* p0) {
527 parser_prod__AOrangeExpr__n_expr_61d(self, p0); /* Direct call parser_prod#AOrangeExpr#n_expr= on <self:Object(AOrangeExpr)>*/
528 RET_LABEL:;
529 }
530 /* method parser_prod#AOrangeExpr#n_expr2= for (self: AOrangeExpr, AExpr) */
531 void parser_prod__AOrangeExpr__n_expr2_61d(val* self, val* p0) {
532 val* var_node /* var node: AExpr */;
533 var_node = p0;
534 self->attrs[COLOR_parser_nodes__ARangeExpr___n_expr2].val = var_node; /* _n_expr2 on <self:AOrangeExpr> */
535 {
536 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
537 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
538 RET_LABEL1:(void)0;
539 }
540 }
541 RET_LABEL:;
542 }
543 /* method parser_prod#AOrangeExpr#n_expr2= for (self: Object, AExpr) */
544 void VIRTUAL_parser_prod__AOrangeExpr__n_expr2_61d(val* self, val* p0) {
545 parser_prod__AOrangeExpr__n_expr2_61d(self, p0); /* Direct call parser_prod#AOrangeExpr#n_expr2= on <self:Object(AOrangeExpr)>*/
546 RET_LABEL:;
547 }
548 /* method parser_prod#AOrangeExpr#n_cbra= for (self: AOrangeExpr, TObra) */
549 void parser_prod__AOrangeExpr__n_cbra_61d(val* self, val* p0) {
550 val* var_node /* var node: TObra */;
551 var_node = p0;
552 self->attrs[COLOR_parser_nodes__AOrangeExpr___n_cbra].val = var_node; /* _n_cbra on <self:AOrangeExpr> */
553 {
554 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TObra> */
555 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TObra> */
556 RET_LABEL1:(void)0;
557 }
558 }
559 RET_LABEL:;
560 }
561 /* method parser_prod#AOrangeExpr#n_cbra= for (self: Object, TObra) */
562 void VIRTUAL_parser_prod__AOrangeExpr__n_cbra_61d(val* self, val* p0) {
563 parser_prod__AOrangeExpr__n_cbra_61d(self, p0); /* Direct call parser_prod#AOrangeExpr#n_cbra= on <self:Object(AOrangeExpr)>*/
564 RET_LABEL:;
565 }
566 /* method parser_prod#AOrangeExpr#n_annotations= for (self: AOrangeExpr, nullable AAnnotations) */
567 void parser_prod__AOrangeExpr__n_annotations_61d(val* self, val* p0) {
568 val* var_node /* var node: nullable AAnnotations */;
569 val* var /* : null */;
570 short int var1 /* : Bool */;
571 short int var2 /* : Bool */;
572 val* var_other /* var other: nullable Object */;
573 short int var4 /* : Bool */;
574 short int var5 /* : Bool */;
575 short int var6 /* : Bool */;
576 var_node = p0;
577 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_node; /* _n_annotations on <self:AOrangeExpr> */
578 var = NULL;
579 if (var_node == NULL) {
580 var1 = 0; /* is null */
581 } else {
582 var1 = 1; /* arg is null and recv is not */
583 }
584 if (0) {
585 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AAnnotations> */
586 var_other = var;
587 {
588 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AAnnotations(AAnnotations)>*/;
589 var4 = var5;
590 }
591 var6 = !var4;
592 var2 = var6;
593 goto RET_LABEL3;
594 RET_LABEL3:(void)0;
595 }
596 var1 = var2;
597 }
598 if (var1){
599 {
600 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AAnnotations(AAnnotations)> */
601 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AAnnotations(AAnnotations)> */
602 RET_LABEL7:(void)0;
603 }
604 }
605 } else {
606 }
607 RET_LABEL:;
608 }
609 /* method parser_prod#AOrangeExpr#n_annotations= for (self: Object, nullable AAnnotations) */
610 void VIRTUAL_parser_prod__AOrangeExpr__n_annotations_61d(val* self, val* p0) {
611 parser_prod__AOrangeExpr__n_annotations_61d(self, p0); /* Direct call parser_prod#AOrangeExpr#n_annotations= on <self:Object(AOrangeExpr)>*/
612 RET_LABEL:;
613 }
614 /* method parser_prod#AOrangeExpr#visit_all for (self: AOrangeExpr, Visitor) */
615 void parser_prod__AOrangeExpr__visit_all(val* self, val* p0) {
616 val* var_v /* var v: Visitor */;
617 val* var /* : TObra */;
618 val* var1 /* : AExpr */;
619 val* var2 /* : AExpr */;
620 val* var3 /* : TObra */;
621 val* var4 /* : nullable AAnnotations */;
622 var_v = p0;
623 var = self->attrs[COLOR_parser_nodes__AOrangeExpr___n_obra].val; /* _n_obra on <self:AOrangeExpr> */
624 if (unlikely(var == NULL)) {
625 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_obra");
626 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5834);
627 show_backtrace(1);
628 }
629 {
630 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
631 }
632 var1 = self->attrs[COLOR_parser_nodes__ARangeExpr___n_expr].val; /* _n_expr on <self:AOrangeExpr> */
633 if (unlikely(var1 == NULL)) {
634 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
635 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5835);
636 show_backtrace(1);
637 }
638 {
639 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
640 }
641 var2 = self->attrs[COLOR_parser_nodes__ARangeExpr___n_expr2].val; /* _n_expr2 on <self:AOrangeExpr> */
642 if (unlikely(var2 == NULL)) {
643 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
644 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5836);
645 show_backtrace(1);
646 }
647 {
648 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
649 }
650 var3 = self->attrs[COLOR_parser_nodes__AOrangeExpr___n_cbra].val; /* _n_cbra on <self:AOrangeExpr> */
651 if (unlikely(var3 == NULL)) {
652 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_cbra");
653 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5837);
654 show_backtrace(1);
655 }
656 {
657 parser_nodes__Visitor__enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
658 }
659 var4 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AOrangeExpr> */
660 {
661 parser_nodes__Visitor__enter_visit(var_v, var4); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
662 }
663 RET_LABEL:;
664 }
665 /* method parser_prod#AOrangeExpr#visit_all for (self: Object, Visitor) */
666 void VIRTUAL_parser_prod__AOrangeExpr__visit_all(val* self, val* p0) {
667 parser_prod__AOrangeExpr__visit_all(self, p0); /* Direct call parser_prod#AOrangeExpr#visit_all on <self:Object(AOrangeExpr)>*/
668 RET_LABEL:;
669 }
670 /* method parser_prod#AArrayExpr#init_aarrayexpr for (self: AArrayExpr, nullable AExprs, nullable AAnnotations) */
671 void parser_prod__AArrayExpr__init_aarrayexpr(val* self, val* p0, val* p1) {
672 val* var_n_exprs /* var n_exprs: nullable AExprs */;
673 val* var_n_annotations /* var n_annotations: nullable AAnnotations */;
674 val* var /* : null */;
675 short int var2 /* : Bool */;
676 short int var3 /* : Bool */;
677 val* var_other /* var other: nullable Object */;
678 short int var5 /* : Bool */;
679 short int var6 /* : Bool */;
680 short int var7 /* : Bool */;
681 var_n_exprs = p0;
682 var_n_annotations = p1;
683 if (unlikely(var_n_exprs == NULL)) {
684 PRINT_ERROR("Runtime error: %s", "Cast failed");
685 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5847);
686 show_backtrace(1);
687 }
688 self->attrs[COLOR_parser_nodes__AArrayExpr___n_exprs].val = var_n_exprs; /* _n_exprs on <self:AArrayExpr> */
689 if (var_n_exprs == NULL) {
690 PRINT_ERROR("Runtime error: %s", "Receiver is null");
691 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5848);
692 show_backtrace(1);
693 } else {
694 { /* Inline parser_nodes#ANode#parent= (var_n_exprs,self) on <var_n_exprs:nullable AExprs> */
695 if (unlikely(var_n_exprs == NULL)) {
696 PRINT_ERROR("Runtime error: %s", "Receiver is null");
697 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
698 show_backtrace(1);
699 }
700 var_n_exprs->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_exprs:nullable AExprs> */
701 RET_LABEL1:(void)0;
702 }
703 }
704 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:AArrayExpr> */
705 var = NULL;
706 if (var_n_annotations == NULL) {
707 var2 = 0; /* is null */
708 } else {
709 var2 = 1; /* arg is null and recv is not */
710 }
711 if (0) {
712 { /* Inline kernel#Object#!= (var_n_annotations,var) on <var_n_annotations:nullable AAnnotations> */
713 var_other = var;
714 {
715 var6 = ((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)>*/;
716 var5 = var6;
717 }
718 var7 = !var5;
719 var3 = var7;
720 goto RET_LABEL4;
721 RET_LABEL4:(void)0;
722 }
723 var2 = var3;
724 }
725 if (var2){
726 {
727 { /* Inline parser_nodes#ANode#parent= (var_n_annotations,self) on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
728 var_n_annotations->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
729 RET_LABEL8:(void)0;
730 }
731 }
732 } else {
733 }
734 RET_LABEL:;
735 }
736 /* method parser_prod#AArrayExpr#init_aarrayexpr for (self: Object, nullable AExprs, nullable AAnnotations) */
737 void VIRTUAL_parser_prod__AArrayExpr__init_aarrayexpr(val* self, val* p0, val* p1) {
738 parser_prod__AArrayExpr__init_aarrayexpr(self, p0, p1); /* Direct call parser_prod#AArrayExpr#init_aarrayexpr on <self:Object(AArrayExpr)>*/
739 RET_LABEL:;
740 }
741 /* method parser_prod#AArrayExpr#replace_child for (self: AArrayExpr, ANode, nullable ANode) */
742 void parser_prod__AArrayExpr__replace_child(val* self, val* p0, val* p1) {
743 val* var_old_child /* var old_child: ANode */;
744 val* var_new_child /* var new_child: nullable ANode */;
745 val* var /* : AExprs */;
746 short int var1 /* : Bool */;
747 short int var2 /* : Bool */;
748 val* var_other /* var other: nullable Object */;
749 short int var4 /* : Bool */;
750 short int var6 /* : Bool */;
751 short int var7 /* : Bool */;
752 int cltype;
753 int idtype;
754 const char* var_class_name;
755 val* var8 /* : nullable AAnnotations */;
756 short int var9 /* : Bool */;
757 short int var10 /* : Bool */;
758 short int var12 /* : Bool */;
759 short int var14 /* : Bool */;
760 short int var15 /* : Bool */;
761 int cltype16;
762 int idtype17;
763 const char* var_class_name18;
764 var_old_child = p0;
765 var_new_child = p1;
766 var = self->attrs[COLOR_parser_nodes__AArrayExpr___n_exprs].val; /* _n_exprs on <self:AArrayExpr> */
767 if (unlikely(var == NULL)) {
768 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
769 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5855);
770 show_backtrace(1);
771 }
772 {
773 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExprs> */
774 var_other = var_old_child;
775 {
776 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExprs> */
777 var6 = var == var_other;
778 var4 = var6;
779 goto RET_LABEL5;
780 RET_LABEL5:(void)0;
781 }
782 }
783 var2 = var4;
784 goto RET_LABEL3;
785 RET_LABEL3:(void)0;
786 }
787 var1 = var2;
788 }
789 if (var1){
790 /* <var_new_child:nullable ANode> isa AExprs */
791 cltype = type_parser_nodes__AExprs.color;
792 idtype = type_parser_nodes__AExprs.id;
793 if(var_new_child == NULL) {
794 var7 = 0;
795 } else {
796 if(cltype >= var_new_child->type->table_size) {
797 var7 = 0;
798 } else {
799 var7 = var_new_child->type->type_table[cltype] == idtype;
800 }
801 }
802 if (unlikely(!var7)) {
803 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
804 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExprs", var_class_name);
805 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5856);
806 show_backtrace(1);
807 }
808 {
809 parser_prod__AArrayExpr__n_exprs_61d(self, var_new_child); /* Direct call parser_prod#AArrayExpr#n_exprs= on <self:AArrayExpr>*/
810 }
811 goto RET_LABEL;
812 } else {
813 }
814 var8 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AArrayExpr> */
815 if (var8 == NULL) {
816 var9 = 0; /* <var_old_child:ANode> cannot be null */
817 } else {
818 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:nullable AAnnotations> */
819 var_other = var_old_child;
820 {
821 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:nullable AAnnotations(AAnnotations)> */
822 var14 = var8 == var_other;
823 var12 = var14;
824 goto RET_LABEL13;
825 RET_LABEL13:(void)0;
826 }
827 }
828 var10 = var12;
829 goto RET_LABEL11;
830 RET_LABEL11:(void)0;
831 }
832 var9 = var10;
833 }
834 if (var9){
835 /* <var_new_child:nullable ANode> isa nullable AAnnotations */
836 cltype16 = type_nullable_parser_nodes__AAnnotations.color;
837 idtype17 = type_nullable_parser_nodes__AAnnotations.id;
838 if(var_new_child == NULL) {
839 var15 = 1;
840 } else {
841 if(cltype16 >= var_new_child->type->table_size) {
842 var15 = 0;
843 } else {
844 var15 = var_new_child->type->type_table[cltype16] == idtype17;
845 }
846 }
847 if (unlikely(!var15)) {
848 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
849 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AAnnotations", var_class_name18);
850 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5860);
851 show_backtrace(1);
852 }
853 {
854 parser_prod__AArrayExpr__n_annotations_61d(self, var_new_child); /* Direct call parser_prod#AArrayExpr#n_annotations= on <self:AArrayExpr>*/
855 }
856 goto RET_LABEL;
857 } else {
858 }
859 RET_LABEL:;
860 }
861 /* method parser_prod#AArrayExpr#replace_child for (self: Object, ANode, nullable ANode) */
862 void VIRTUAL_parser_prod__AArrayExpr__replace_child(val* self, val* p0, val* p1) {
863 parser_prod__AArrayExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AArrayExpr#replace_child on <self:Object(AArrayExpr)>*/
864 RET_LABEL:;
865 }
866 /* method parser_prod#AArrayExpr#n_exprs= for (self: AArrayExpr, AExprs) */
867 void parser_prod__AArrayExpr__n_exprs_61d(val* self, val* p0) {
868 val* var_node /* var node: AExprs */;
869 var_node = p0;
870 self->attrs[COLOR_parser_nodes__AArrayExpr___n_exprs].val = var_node; /* _n_exprs on <self:AArrayExpr> */
871 {
872 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExprs> */
873 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExprs> */
874 RET_LABEL1:(void)0;
875 }
876 }
877 RET_LABEL:;
878 }
879 /* method parser_prod#AArrayExpr#n_exprs= for (self: Object, AExprs) */
880 void VIRTUAL_parser_prod__AArrayExpr__n_exprs_61d(val* self, val* p0) {
881 parser_prod__AArrayExpr__n_exprs_61d(self, p0); /* Direct call parser_prod#AArrayExpr#n_exprs= on <self:Object(AArrayExpr)>*/
882 RET_LABEL:;
883 }
884 /* method parser_prod#AArrayExpr#n_annotations= for (self: AArrayExpr, nullable AAnnotations) */
885 void parser_prod__AArrayExpr__n_annotations_61d(val* self, val* p0) {
886 val* var_node /* var node: nullable AAnnotations */;
887 val* var /* : null */;
888 short int var1 /* : Bool */;
889 short int var2 /* : Bool */;
890 val* var_other /* var other: nullable Object */;
891 short int var4 /* : Bool */;
892 short int var5 /* : Bool */;
893 short int var6 /* : Bool */;
894 var_node = p0;
895 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_node; /* _n_annotations on <self:AArrayExpr> */
896 var = NULL;
897 if (var_node == NULL) {
898 var1 = 0; /* is null */
899 } else {
900 var1 = 1; /* arg is null and recv is not */
901 }
902 if (0) {
903 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AAnnotations> */
904 var_other = var;
905 {
906 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AAnnotations(AAnnotations)>*/;
907 var4 = var5;
908 }
909 var6 = !var4;
910 var2 = var6;
911 goto RET_LABEL3;
912 RET_LABEL3:(void)0;
913 }
914 var1 = var2;
915 }
916 if (var1){
917 {
918 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AAnnotations(AAnnotations)> */
919 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AAnnotations(AAnnotations)> */
920 RET_LABEL7:(void)0;
921 }
922 }
923 } else {
924 }
925 RET_LABEL:;
926 }
927 /* method parser_prod#AArrayExpr#n_annotations= for (self: Object, nullable AAnnotations) */
928 void VIRTUAL_parser_prod__AArrayExpr__n_annotations_61d(val* self, val* p0) {
929 parser_prod__AArrayExpr__n_annotations_61d(self, p0); /* Direct call parser_prod#AArrayExpr#n_annotations= on <self:Object(AArrayExpr)>*/
930 RET_LABEL:;
931 }
932 /* method parser_prod#AArrayExpr#visit_all for (self: AArrayExpr, Visitor) */
933 void parser_prod__AArrayExpr__visit_all(val* self, val* p0) {
934 val* var_v /* var v: Visitor */;
935 val* var /* : AExprs */;
936 val* var1 /* : nullable AAnnotations */;
937 var_v = p0;
938 var = self->attrs[COLOR_parser_nodes__AArrayExpr___n_exprs].val; /* _n_exprs on <self:AArrayExpr> */
939 if (unlikely(var == NULL)) {
940 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
941 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5879);
942 show_backtrace(1);
943 }
944 {
945 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
946 }
947 var1 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AArrayExpr> */
948 {
949 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
950 }
951 RET_LABEL:;
952 }
953 /* method parser_prod#AArrayExpr#visit_all for (self: Object, Visitor) */
954 void VIRTUAL_parser_prod__AArrayExpr__visit_all(val* self, val* p0) {
955 parser_prod__AArrayExpr__visit_all(self, p0); /* Direct call parser_prod#AArrayExpr#visit_all on <self:Object(AArrayExpr)>*/
956 RET_LABEL:;
957 }
958 /* method parser_prod#ASelfExpr#init_aselfexpr for (self: ASelfExpr, nullable TKwself, nullable AAnnotations) */
959 void parser_prod__ASelfExpr__init_aselfexpr(val* self, val* p0, val* p1) {
960 val* var_n_kwself /* var n_kwself: nullable TKwself */;
961 val* var_n_annotations /* var n_annotations: nullable AAnnotations */;
962 val* var /* : null */;
963 short int var2 /* : Bool */;
964 short int var3 /* : Bool */;
965 val* var_other /* var other: nullable Object */;
966 short int var5 /* : Bool */;
967 short int var6 /* : Bool */;
968 short int var7 /* : Bool */;
969 var_n_kwself = p0;
970 var_n_annotations = p1;
971 if (unlikely(var_n_kwself == NULL)) {
972 PRINT_ERROR("Runtime error: %s", "Cast failed");
973 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5889);
974 show_backtrace(1);
975 }
976 self->attrs[COLOR_parser_nodes__ASelfExpr___n_kwself].val = var_n_kwself; /* _n_kwself on <self:ASelfExpr> */
977 if (var_n_kwself == NULL) {
978 PRINT_ERROR("Runtime error: %s", "Receiver is null");
979 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5890);
980 show_backtrace(1);
981 } else {
982 { /* Inline parser_nodes#ANode#parent= (var_n_kwself,self) on <var_n_kwself:nullable TKwself> */
983 if (unlikely(var_n_kwself == NULL)) {
984 PRINT_ERROR("Runtime error: %s", "Receiver is null");
985 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
986 show_backtrace(1);
987 }
988 var_n_kwself->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwself:nullable TKwself> */
989 RET_LABEL1:(void)0;
990 }
991 }
992 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:ASelfExpr> */
993 var = NULL;
994 if (var_n_annotations == NULL) {
995 var2 = 0; /* is null */
996 } else {
997 var2 = 1; /* arg is null and recv is not */
998 }
999 if (0) {
1000 { /* Inline kernel#Object#!= (var_n_annotations,var) on <var_n_annotations:nullable AAnnotations> */
1001 var_other = var;
1002 {
1003 var6 = ((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)>*/;
1004 var5 = var6;
1005 }
1006 var7 = !var5;
1007 var3 = var7;
1008 goto RET_LABEL4;
1009 RET_LABEL4:(void)0;
1010 }
1011 var2 = var3;
1012 }
1013 if (var2){
1014 {
1015 { /* Inline parser_nodes#ANode#parent= (var_n_annotations,self) on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
1016 var_n_annotations->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
1017 RET_LABEL8:(void)0;
1018 }
1019 }
1020 } else {
1021 }
1022 RET_LABEL:;
1023 }
1024 /* method parser_prod#ASelfExpr#init_aselfexpr for (self: Object, nullable TKwself, nullable AAnnotations) */
1025 void VIRTUAL_parser_prod__ASelfExpr__init_aselfexpr(val* self, val* p0, val* p1) {
1026 parser_prod__ASelfExpr__init_aselfexpr(self, p0, p1); /* Direct call parser_prod#ASelfExpr#init_aselfexpr on <self:Object(ASelfExpr)>*/
1027 RET_LABEL:;
1028 }
1029 /* method parser_prod#ASelfExpr#replace_child for (self: ASelfExpr, ANode, nullable ANode) */
1030 void parser_prod__ASelfExpr__replace_child(val* self, val* p0, val* p1) {
1031 val* var_old_child /* var old_child: ANode */;
1032 val* var_new_child /* var new_child: nullable ANode */;
1033 val* var /* : nullable TKwself */;
1034 short int var1 /* : Bool */;
1035 short int var2 /* : Bool */;
1036 val* var_other /* var other: nullable Object */;
1037 short int var4 /* : Bool */;
1038 short int var6 /* : Bool */;
1039 short int var7 /* : Bool */;
1040 int cltype;
1041 int idtype;
1042 const char* var_class_name;
1043 val* var8 /* : nullable AAnnotations */;
1044 short int var9 /* : Bool */;
1045 short int var10 /* : Bool */;
1046 short int var12 /* : Bool */;
1047 short int var14 /* : Bool */;
1048 short int var15 /* : Bool */;
1049 int cltype16;
1050 int idtype17;
1051 const char* var_class_name18;
1052 var_old_child = p0;
1053 var_new_child = p1;
1054 var = self->attrs[COLOR_parser_nodes__ASelfExpr___n_kwself].val; /* _n_kwself on <self:ASelfExpr> */
1055 if (var == NULL) {
1056 var1 = 0; /* <var_old_child:ANode> cannot be null */
1057 } else {
1058 { /* Inline kernel#Object#== (var,var_old_child) on <var:nullable TKwself> */
1059 var_other = var_old_child;
1060 {
1061 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:nullable TKwself(TKwself)> */
1062 var6 = var == var_other;
1063 var4 = var6;
1064 goto RET_LABEL5;
1065 RET_LABEL5:(void)0;
1066 }
1067 }
1068 var2 = var4;
1069 goto RET_LABEL3;
1070 RET_LABEL3:(void)0;
1071 }
1072 var1 = var2;
1073 }
1074 if (var1){
1075 /* <var_new_child:nullable ANode> isa TKwself */
1076 cltype = type_parser_nodes__TKwself.color;
1077 idtype = type_parser_nodes__TKwself.id;
1078 if(var_new_child == NULL) {
1079 var7 = 0;
1080 } else {
1081 if(cltype >= var_new_child->type->table_size) {
1082 var7 = 0;
1083 } else {
1084 var7 = var_new_child->type->type_table[cltype] == idtype;
1085 }
1086 }
1087 if (unlikely(!var7)) {
1088 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
1089 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwself", var_class_name);
1090 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5898);
1091 show_backtrace(1);
1092 }
1093 {
1094 parser_prod__ASelfExpr__n_kwself_61d(self, var_new_child); /* Direct call parser_prod#ASelfExpr#n_kwself= on <self:ASelfExpr>*/
1095 }
1096 goto RET_LABEL;
1097 } else {
1098 }
1099 var8 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:ASelfExpr> */
1100 if (var8 == NULL) {
1101 var9 = 0; /* <var_old_child:ANode> cannot be null */
1102 } else {
1103 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:nullable AAnnotations> */
1104 var_other = var_old_child;
1105 {
1106 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:nullable AAnnotations(AAnnotations)> */
1107 var14 = var8 == var_other;
1108 var12 = var14;
1109 goto RET_LABEL13;
1110 RET_LABEL13:(void)0;
1111 }
1112 }
1113 var10 = var12;
1114 goto RET_LABEL11;
1115 RET_LABEL11:(void)0;
1116 }
1117 var9 = var10;
1118 }
1119 if (var9){
1120 /* <var_new_child:nullable ANode> isa nullable AAnnotations */
1121 cltype16 = type_nullable_parser_nodes__AAnnotations.color;
1122 idtype17 = type_nullable_parser_nodes__AAnnotations.id;
1123 if(var_new_child == NULL) {
1124 var15 = 1;
1125 } else {
1126 if(cltype16 >= var_new_child->type->table_size) {
1127 var15 = 0;
1128 } else {
1129 var15 = var_new_child->type->type_table[cltype16] == idtype17;
1130 }
1131 }
1132 if (unlikely(!var15)) {
1133 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
1134 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AAnnotations", var_class_name18);
1135 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5902);
1136 show_backtrace(1);
1137 }
1138 {
1139 parser_prod__ASelfExpr__n_annotations_61d(self, var_new_child); /* Direct call parser_prod#ASelfExpr#n_annotations= on <self:ASelfExpr>*/
1140 }
1141 goto RET_LABEL;
1142 } else {
1143 }
1144 RET_LABEL:;
1145 }
1146 /* method parser_prod#ASelfExpr#replace_child for (self: Object, ANode, nullable ANode) */
1147 void VIRTUAL_parser_prod__ASelfExpr__replace_child(val* self, val* p0, val* p1) {
1148 parser_prod__ASelfExpr__replace_child(self, p0, p1); /* Direct call parser_prod#ASelfExpr#replace_child on <self:Object(ASelfExpr)>*/
1149 RET_LABEL:;
1150 }
1151 /* method parser_prod#ASelfExpr#n_kwself= for (self: ASelfExpr, nullable TKwself) */
1152 void parser_prod__ASelfExpr__n_kwself_61d(val* self, val* p0) {
1153 val* var_node /* var node: nullable TKwself */;
1154 var_node = p0;
1155 self->attrs[COLOR_parser_nodes__ASelfExpr___n_kwself].val = var_node; /* _n_kwself on <self:ASelfExpr> */
1156 if (var_node == NULL) {
1157 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1158 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5910);
1159 show_backtrace(1);
1160 } else {
1161 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TKwself> */
1162 if (unlikely(var_node == NULL)) {
1163 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1164 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
1165 show_backtrace(1);
1166 }
1167 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TKwself> */
1168 RET_LABEL1:(void)0;
1169 }
1170 }
1171 RET_LABEL:;
1172 }
1173 /* method parser_prod#ASelfExpr#n_kwself= for (self: Object, nullable TKwself) */
1174 void VIRTUAL_parser_prod__ASelfExpr__n_kwself_61d(val* self, val* p0) {
1175 parser_prod__ASelfExpr__n_kwself_61d(self, p0); /* Direct call parser_prod#ASelfExpr#n_kwself= on <self:Object(ASelfExpr)>*/
1176 RET_LABEL:;
1177 }
1178 /* method parser_prod#ASelfExpr#n_annotations= for (self: ASelfExpr, nullable AAnnotations) */
1179 void parser_prod__ASelfExpr__n_annotations_61d(val* self, val* p0) {
1180 val* var_node /* var node: nullable AAnnotations */;
1181 val* var /* : null */;
1182 short int var1 /* : Bool */;
1183 short int var2 /* : Bool */;
1184 val* var_other /* var other: nullable Object */;
1185 short int var4 /* : Bool */;
1186 short int var5 /* : Bool */;
1187 short int var6 /* : Bool */;
1188 var_node = p0;
1189 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_node; /* _n_annotations on <self:ASelfExpr> */
1190 var = NULL;
1191 if (var_node == NULL) {
1192 var1 = 0; /* is null */
1193 } else {
1194 var1 = 1; /* arg is null and recv is not */
1195 }
1196 if (0) {
1197 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AAnnotations> */
1198 var_other = var;
1199 {
1200 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AAnnotations(AAnnotations)>*/;
1201 var4 = var5;
1202 }
1203 var6 = !var4;
1204 var2 = var6;
1205 goto RET_LABEL3;
1206 RET_LABEL3:(void)0;
1207 }
1208 var1 = var2;
1209 }
1210 if (var1){
1211 {
1212 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AAnnotations(AAnnotations)> */
1213 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AAnnotations(AAnnotations)> */
1214 RET_LABEL7:(void)0;
1215 }
1216 }
1217 } else {
1218 }
1219 RET_LABEL:;
1220 }
1221 /* method parser_prod#ASelfExpr#n_annotations= for (self: Object, nullable AAnnotations) */
1222 void VIRTUAL_parser_prod__ASelfExpr__n_annotations_61d(val* self, val* p0) {
1223 parser_prod__ASelfExpr__n_annotations_61d(self, p0); /* Direct call parser_prod#ASelfExpr#n_annotations= on <self:Object(ASelfExpr)>*/
1224 RET_LABEL:;
1225 }
1226 /* method parser_prod#ASelfExpr#visit_all for (self: ASelfExpr, Visitor) */
1227 void parser_prod__ASelfExpr__visit_all(val* self, val* p0) {
1228 val* var_v /* var v: Visitor */;
1229 val* var /* : nullable TKwself */;
1230 val* var1 /* : nullable AAnnotations */;
1231 var_v = p0;
1232 var = self->attrs[COLOR_parser_nodes__ASelfExpr___n_kwself].val; /* _n_kwself on <self:ASelfExpr> */
1233 {
1234 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1235 }
1236 var1 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:ASelfExpr> */
1237 {
1238 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1239 }
1240 RET_LABEL:;
1241 }
1242 /* method parser_prod#ASelfExpr#visit_all for (self: Object, Visitor) */
1243 void VIRTUAL_parser_prod__ASelfExpr__visit_all(val* self, val* p0) {
1244 parser_prod__ASelfExpr__visit_all(self, p0); /* Direct call parser_prod#ASelfExpr#visit_all on <self:Object(ASelfExpr)>*/
1245 RET_LABEL:;
1246 }
1247 /* method parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr for (self: AImplicitSelfExpr) */
1248 void parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr(val* self) {
1249 RET_LABEL:;
1250 }
1251 /* method parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr for (self: Object) */
1252 void VIRTUAL_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr(val* self) {
1253 { /* Inline parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr (self) on <self:Object(AImplicitSelfExpr)> */
1254 RET_LABEL1:(void)0;
1255 }
1256 RET_LABEL:;
1257 }
1258 /* method parser_prod#AImplicitSelfExpr#replace_child for (self: AImplicitSelfExpr, ANode, nullable ANode) */
1259 void parser_prod__AImplicitSelfExpr__replace_child(val* self, val* p0, val* p1) {
1260 val* var_old_child /* var old_child: ANode */;
1261 val* var_new_child /* var new_child: nullable ANode */;
1262 var_old_child = p0;
1263 var_new_child = p1;
1264 RET_LABEL:;
1265 }
1266 /* method parser_prod#AImplicitSelfExpr#replace_child for (self: Object, ANode, nullable ANode) */
1267 void VIRTUAL_parser_prod__AImplicitSelfExpr__replace_child(val* self, val* p0, val* p1) {
1268 val* var_old_child /* var old_child: ANode */;
1269 val* var_new_child /* var new_child: nullable ANode */;
1270 { /* Inline parser_prod#AImplicitSelfExpr#replace_child (self,p0,p1) on <self:Object(AImplicitSelfExpr)> */
1271 var_old_child = p0;
1272 var_new_child = p1;
1273 RET_LABEL1:(void)0;
1274 }
1275 RET_LABEL:;
1276 }
1277 /* method parser_prod#AImplicitSelfExpr#visit_all for (self: AImplicitSelfExpr, Visitor) */
1278 void parser_prod__AImplicitSelfExpr__visit_all(val* self, val* p0) {
1279 val* var_v /* var v: Visitor */;
1280 var_v = p0;
1281 RET_LABEL:;
1282 }
1283 /* method parser_prod#AImplicitSelfExpr#visit_all for (self: Object, Visitor) */
1284 void VIRTUAL_parser_prod__AImplicitSelfExpr__visit_all(val* self, val* p0) {
1285 val* var_v /* var v: Visitor */;
1286 { /* Inline parser_prod#AImplicitSelfExpr#visit_all (self,p0) on <self:Object(AImplicitSelfExpr)> */
1287 var_v = p0;
1288 RET_LABEL1:(void)0;
1289 }
1290 RET_LABEL:;
1291 }
1292 /* method parser_prod#ATrueExpr#init_atrueexpr for (self: ATrueExpr, nullable TKwtrue, nullable AAnnotations) */
1293 void parser_prod__ATrueExpr__init_atrueexpr(val* self, val* p0, val* p1) {
1294 val* var_n_kwtrue /* var n_kwtrue: nullable TKwtrue */;
1295 val* var_n_annotations /* var n_annotations: nullable AAnnotations */;
1296 val* var /* : null */;
1297 short int var2 /* : Bool */;
1298 short int var3 /* : Bool */;
1299 val* var_other /* var other: nullable Object */;
1300 short int var5 /* : Bool */;
1301 short int var6 /* : Bool */;
1302 short int var7 /* : Bool */;
1303 var_n_kwtrue = p0;
1304 var_n_annotations = p1;
1305 if (unlikely(var_n_kwtrue == NULL)) {
1306 PRINT_ERROR("Runtime error: %s", "Cast failed");
1307 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5946);
1308 show_backtrace(1);
1309 }
1310 self->attrs[COLOR_parser_nodes__ATrueExpr___n_kwtrue].val = var_n_kwtrue; /* _n_kwtrue on <self:ATrueExpr> */
1311 if (var_n_kwtrue == NULL) {
1312 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1313 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5947);
1314 show_backtrace(1);
1315 } else {
1316 { /* Inline parser_nodes#ANode#parent= (var_n_kwtrue,self) on <var_n_kwtrue:nullable TKwtrue> */
1317 if (unlikely(var_n_kwtrue == NULL)) {
1318 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1319 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
1320 show_backtrace(1);
1321 }
1322 var_n_kwtrue->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwtrue:nullable TKwtrue> */
1323 RET_LABEL1:(void)0;
1324 }
1325 }
1326 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:ATrueExpr> */
1327 var = NULL;
1328 if (var_n_annotations == NULL) {
1329 var2 = 0; /* is null */
1330 } else {
1331 var2 = 1; /* arg is null and recv is not */
1332 }
1333 if (0) {
1334 { /* Inline kernel#Object#!= (var_n_annotations,var) on <var_n_annotations:nullable AAnnotations> */
1335 var_other = var;
1336 {
1337 var6 = ((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)>*/;
1338 var5 = var6;
1339 }
1340 var7 = !var5;
1341 var3 = var7;
1342 goto RET_LABEL4;
1343 RET_LABEL4:(void)0;
1344 }
1345 var2 = var3;
1346 }
1347 if (var2){
1348 {
1349 { /* Inline parser_nodes#ANode#parent= (var_n_annotations,self) on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
1350 var_n_annotations->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
1351 RET_LABEL8:(void)0;
1352 }
1353 }
1354 } else {
1355 }
1356 RET_LABEL:;
1357 }
1358 /* method parser_prod#ATrueExpr#init_atrueexpr for (self: Object, nullable TKwtrue, nullable AAnnotations) */
1359 void VIRTUAL_parser_prod__ATrueExpr__init_atrueexpr(val* self, val* p0, val* p1) {
1360 parser_prod__ATrueExpr__init_atrueexpr(self, p0, p1); /* Direct call parser_prod#ATrueExpr#init_atrueexpr on <self:Object(ATrueExpr)>*/
1361 RET_LABEL:;
1362 }
1363 /* method parser_prod#ATrueExpr#replace_child for (self: ATrueExpr, ANode, nullable ANode) */
1364 void parser_prod__ATrueExpr__replace_child(val* self, val* p0, val* p1) {
1365 val* var_old_child /* var old_child: ANode */;
1366 val* var_new_child /* var new_child: nullable ANode */;
1367 val* var /* : TKwtrue */;
1368 short int var1 /* : Bool */;
1369 short int var2 /* : Bool */;
1370 val* var_other /* var other: nullable Object */;
1371 short int var4 /* : Bool */;
1372 short int var6 /* : Bool */;
1373 short int var7 /* : Bool */;
1374 int cltype;
1375 int idtype;
1376 const char* var_class_name;
1377 val* var8 /* : nullable AAnnotations */;
1378 short int var9 /* : Bool */;
1379 short int var10 /* : Bool */;
1380 short int var12 /* : Bool */;
1381 short int var14 /* : Bool */;
1382 short int var15 /* : Bool */;
1383 int cltype16;
1384 int idtype17;
1385 const char* var_class_name18;
1386 var_old_child = p0;
1387 var_new_child = p1;
1388 var = self->attrs[COLOR_parser_nodes__ATrueExpr___n_kwtrue].val; /* _n_kwtrue on <self:ATrueExpr> */
1389 if (unlikely(var == NULL)) {
1390 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwtrue");
1391 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5954);
1392 show_backtrace(1);
1393 }
1394 {
1395 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwtrue> */
1396 var_other = var_old_child;
1397 {
1398 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TKwtrue> */
1399 var6 = var == var_other;
1400 var4 = var6;
1401 goto RET_LABEL5;
1402 RET_LABEL5:(void)0;
1403 }
1404 }
1405 var2 = var4;
1406 goto RET_LABEL3;
1407 RET_LABEL3:(void)0;
1408 }
1409 var1 = var2;
1410 }
1411 if (var1){
1412 /* <var_new_child:nullable ANode> isa TKwtrue */
1413 cltype = type_parser_nodes__TKwtrue.color;
1414 idtype = type_parser_nodes__TKwtrue.id;
1415 if(var_new_child == NULL) {
1416 var7 = 0;
1417 } else {
1418 if(cltype >= var_new_child->type->table_size) {
1419 var7 = 0;
1420 } else {
1421 var7 = var_new_child->type->type_table[cltype] == idtype;
1422 }
1423 }
1424 if (unlikely(!var7)) {
1425 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
1426 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwtrue", var_class_name);
1427 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5955);
1428 show_backtrace(1);
1429 }
1430 {
1431 parser_prod__ATrueExpr__n_kwtrue_61d(self, var_new_child); /* Direct call parser_prod#ATrueExpr#n_kwtrue= on <self:ATrueExpr>*/
1432 }
1433 goto RET_LABEL;
1434 } else {
1435 }
1436 var8 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:ATrueExpr> */
1437 if (var8 == NULL) {
1438 var9 = 0; /* <var_old_child:ANode> cannot be null */
1439 } else {
1440 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:nullable AAnnotations> */
1441 var_other = var_old_child;
1442 {
1443 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:nullable AAnnotations(AAnnotations)> */
1444 var14 = var8 == var_other;
1445 var12 = var14;
1446 goto RET_LABEL13;
1447 RET_LABEL13:(void)0;
1448 }
1449 }
1450 var10 = var12;
1451 goto RET_LABEL11;
1452 RET_LABEL11:(void)0;
1453 }
1454 var9 = var10;
1455 }
1456 if (var9){
1457 /* <var_new_child:nullable ANode> isa nullable AAnnotations */
1458 cltype16 = type_nullable_parser_nodes__AAnnotations.color;
1459 idtype17 = type_nullable_parser_nodes__AAnnotations.id;
1460 if(var_new_child == NULL) {
1461 var15 = 1;
1462 } else {
1463 if(cltype16 >= var_new_child->type->table_size) {
1464 var15 = 0;
1465 } else {
1466 var15 = var_new_child->type->type_table[cltype16] == idtype17;
1467 }
1468 }
1469 if (unlikely(!var15)) {
1470 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
1471 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AAnnotations", var_class_name18);
1472 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5959);
1473 show_backtrace(1);
1474 }
1475 {
1476 parser_prod__ATrueExpr__n_annotations_61d(self, var_new_child); /* Direct call parser_prod#ATrueExpr#n_annotations= on <self:ATrueExpr>*/
1477 }
1478 goto RET_LABEL;
1479 } else {
1480 }
1481 RET_LABEL:;
1482 }
1483 /* method parser_prod#ATrueExpr#replace_child for (self: Object, ANode, nullable ANode) */
1484 void VIRTUAL_parser_prod__ATrueExpr__replace_child(val* self, val* p0, val* p1) {
1485 parser_prod__ATrueExpr__replace_child(self, p0, p1); /* Direct call parser_prod#ATrueExpr#replace_child on <self:Object(ATrueExpr)>*/
1486 RET_LABEL:;
1487 }
1488 /* method parser_prod#ATrueExpr#n_kwtrue= for (self: ATrueExpr, TKwtrue) */
1489 void parser_prod__ATrueExpr__n_kwtrue_61d(val* self, val* p0) {
1490 val* var_node /* var node: TKwtrue */;
1491 var_node = p0;
1492 self->attrs[COLOR_parser_nodes__ATrueExpr___n_kwtrue].val = var_node; /* _n_kwtrue on <self:ATrueExpr> */
1493 {
1494 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwtrue> */
1495 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwtrue> */
1496 RET_LABEL1:(void)0;
1497 }
1498 }
1499 RET_LABEL:;
1500 }
1501 /* method parser_prod#ATrueExpr#n_kwtrue= for (self: Object, TKwtrue) */
1502 void VIRTUAL_parser_prod__ATrueExpr__n_kwtrue_61d(val* self, val* p0) {
1503 parser_prod__ATrueExpr__n_kwtrue_61d(self, p0); /* Direct call parser_prod#ATrueExpr#n_kwtrue= on <self:Object(ATrueExpr)>*/
1504 RET_LABEL:;
1505 }
1506 /* method parser_prod#ATrueExpr#n_annotations= for (self: ATrueExpr, nullable AAnnotations) */
1507 void parser_prod__ATrueExpr__n_annotations_61d(val* self, val* p0) {
1508 val* var_node /* var node: nullable AAnnotations */;
1509 val* var /* : null */;
1510 short int var1 /* : Bool */;
1511 short int var2 /* : Bool */;
1512 val* var_other /* var other: nullable Object */;
1513 short int var4 /* : Bool */;
1514 short int var5 /* : Bool */;
1515 short int var6 /* : Bool */;
1516 var_node = p0;
1517 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_node; /* _n_annotations on <self:ATrueExpr> */
1518 var = NULL;
1519 if (var_node == NULL) {
1520 var1 = 0; /* is null */
1521 } else {
1522 var1 = 1; /* arg is null and recv is not */
1523 }
1524 if (0) {
1525 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AAnnotations> */
1526 var_other = var;
1527 {
1528 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AAnnotations(AAnnotations)>*/;
1529 var4 = var5;
1530 }
1531 var6 = !var4;
1532 var2 = var6;
1533 goto RET_LABEL3;
1534 RET_LABEL3:(void)0;
1535 }
1536 var1 = var2;
1537 }
1538 if (var1){
1539 {
1540 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AAnnotations(AAnnotations)> */
1541 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AAnnotations(AAnnotations)> */
1542 RET_LABEL7:(void)0;
1543 }
1544 }
1545 } else {
1546 }
1547 RET_LABEL:;
1548 }
1549 /* method parser_prod#ATrueExpr#n_annotations= for (self: Object, nullable AAnnotations) */
1550 void VIRTUAL_parser_prod__ATrueExpr__n_annotations_61d(val* self, val* p0) {
1551 parser_prod__ATrueExpr__n_annotations_61d(self, p0); /* Direct call parser_prod#ATrueExpr#n_annotations= on <self:Object(ATrueExpr)>*/
1552 RET_LABEL:;
1553 }
1554 /* method parser_prod#ATrueExpr#visit_all for (self: ATrueExpr, Visitor) */
1555 void parser_prod__ATrueExpr__visit_all(val* self, val* p0) {
1556 val* var_v /* var v: Visitor */;
1557 val* var /* : TKwtrue */;
1558 val* var1 /* : nullable AAnnotations */;
1559 var_v = p0;
1560 var = self->attrs[COLOR_parser_nodes__ATrueExpr___n_kwtrue].val; /* _n_kwtrue on <self:ATrueExpr> */
1561 if (unlikely(var == NULL)) {
1562 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwtrue");
1563 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5978);
1564 show_backtrace(1);
1565 }
1566 {
1567 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1568 }
1569 var1 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:ATrueExpr> */
1570 {
1571 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1572 }
1573 RET_LABEL:;
1574 }
1575 /* method parser_prod#ATrueExpr#visit_all for (self: Object, Visitor) */
1576 void VIRTUAL_parser_prod__ATrueExpr__visit_all(val* self, val* p0) {
1577 parser_prod__ATrueExpr__visit_all(self, p0); /* Direct call parser_prod#ATrueExpr#visit_all on <self:Object(ATrueExpr)>*/
1578 RET_LABEL:;
1579 }
1580 /* method parser_prod#AFalseExpr#init_afalseexpr for (self: AFalseExpr, nullable TKwfalse, nullable AAnnotations) */
1581 void parser_prod__AFalseExpr__init_afalseexpr(val* self, val* p0, val* p1) {
1582 val* var_n_kwfalse /* var n_kwfalse: nullable TKwfalse */;
1583 val* var_n_annotations /* var n_annotations: nullable AAnnotations */;
1584 val* var /* : null */;
1585 short int var2 /* : Bool */;
1586 short int var3 /* : Bool */;
1587 val* var_other /* var other: nullable Object */;
1588 short int var5 /* : Bool */;
1589 short int var6 /* : Bool */;
1590 short int var7 /* : Bool */;
1591 var_n_kwfalse = p0;
1592 var_n_annotations = p1;
1593 if (unlikely(var_n_kwfalse == NULL)) {
1594 PRINT_ERROR("Runtime error: %s", "Cast failed");
1595 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5988);
1596 show_backtrace(1);
1597 }
1598 self->attrs[COLOR_parser_nodes__AFalseExpr___n_kwfalse].val = var_n_kwfalse; /* _n_kwfalse on <self:AFalseExpr> */
1599 if (var_n_kwfalse == NULL) {
1600 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1601 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5989);
1602 show_backtrace(1);
1603 } else {
1604 { /* Inline parser_nodes#ANode#parent= (var_n_kwfalse,self) on <var_n_kwfalse:nullable TKwfalse> */
1605 if (unlikely(var_n_kwfalse == NULL)) {
1606 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1607 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
1608 show_backtrace(1);
1609 }
1610 var_n_kwfalse->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwfalse:nullable TKwfalse> */
1611 RET_LABEL1:(void)0;
1612 }
1613 }
1614 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:AFalseExpr> */
1615 var = NULL;
1616 if (var_n_annotations == NULL) {
1617 var2 = 0; /* is null */
1618 } else {
1619 var2 = 1; /* arg is null and recv is not */
1620 }
1621 if (0) {
1622 { /* Inline kernel#Object#!= (var_n_annotations,var) on <var_n_annotations:nullable AAnnotations> */
1623 var_other = var;
1624 {
1625 var6 = ((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)>*/;
1626 var5 = var6;
1627 }
1628 var7 = !var5;
1629 var3 = var7;
1630 goto RET_LABEL4;
1631 RET_LABEL4:(void)0;
1632 }
1633 var2 = var3;
1634 }
1635 if (var2){
1636 {
1637 { /* Inline parser_nodes#ANode#parent= (var_n_annotations,self) on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
1638 var_n_annotations->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
1639 RET_LABEL8:(void)0;
1640 }
1641 }
1642 } else {
1643 }
1644 RET_LABEL:;
1645 }
1646 /* method parser_prod#AFalseExpr#init_afalseexpr for (self: Object, nullable TKwfalse, nullable AAnnotations) */
1647 void VIRTUAL_parser_prod__AFalseExpr__init_afalseexpr(val* self, val* p0, val* p1) {
1648 parser_prod__AFalseExpr__init_afalseexpr(self, p0, p1); /* Direct call parser_prod#AFalseExpr#init_afalseexpr on <self:Object(AFalseExpr)>*/
1649 RET_LABEL:;
1650 }
1651 /* method parser_prod#AFalseExpr#replace_child for (self: AFalseExpr, ANode, nullable ANode) */
1652 void parser_prod__AFalseExpr__replace_child(val* self, val* p0, val* p1) {
1653 val* var_old_child /* var old_child: ANode */;
1654 val* var_new_child /* var new_child: nullable ANode */;
1655 val* var /* : TKwfalse */;
1656 short int var1 /* : Bool */;
1657 short int var2 /* : Bool */;
1658 val* var_other /* var other: nullable Object */;
1659 short int var4 /* : Bool */;
1660 short int var6 /* : Bool */;
1661 short int var7 /* : Bool */;
1662 int cltype;
1663 int idtype;
1664 const char* var_class_name;
1665 val* var8 /* : nullable AAnnotations */;
1666 short int var9 /* : Bool */;
1667 short int var10 /* : Bool */;
1668 short int var12 /* : Bool */;
1669 short int var14 /* : Bool */;
1670 short int var15 /* : Bool */;
1671 int cltype16;
1672 int idtype17;
1673 const char* var_class_name18;
1674 var_old_child = p0;
1675 var_new_child = p1;
1676 var = self->attrs[COLOR_parser_nodes__AFalseExpr___n_kwfalse].val; /* _n_kwfalse on <self:AFalseExpr> */
1677 if (unlikely(var == NULL)) {
1678 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwfalse");
1679 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5996);
1680 show_backtrace(1);
1681 }
1682 {
1683 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwfalse> */
1684 var_other = var_old_child;
1685 {
1686 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TKwfalse> */
1687 var6 = var == var_other;
1688 var4 = var6;
1689 goto RET_LABEL5;
1690 RET_LABEL5:(void)0;
1691 }
1692 }
1693 var2 = var4;
1694 goto RET_LABEL3;
1695 RET_LABEL3:(void)0;
1696 }
1697 var1 = var2;
1698 }
1699 if (var1){
1700 /* <var_new_child:nullable ANode> isa TKwfalse */
1701 cltype = type_parser_nodes__TKwfalse.color;
1702 idtype = type_parser_nodes__TKwfalse.id;
1703 if(var_new_child == NULL) {
1704 var7 = 0;
1705 } else {
1706 if(cltype >= var_new_child->type->table_size) {
1707 var7 = 0;
1708 } else {
1709 var7 = var_new_child->type->type_table[cltype] == idtype;
1710 }
1711 }
1712 if (unlikely(!var7)) {
1713 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
1714 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwfalse", var_class_name);
1715 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 5997);
1716 show_backtrace(1);
1717 }
1718 {
1719 parser_prod__AFalseExpr__n_kwfalse_61d(self, var_new_child); /* Direct call parser_prod#AFalseExpr#n_kwfalse= on <self:AFalseExpr>*/
1720 }
1721 goto RET_LABEL;
1722 } else {
1723 }
1724 var8 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AFalseExpr> */
1725 if (var8 == NULL) {
1726 var9 = 0; /* <var_old_child:ANode> cannot be null */
1727 } else {
1728 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:nullable AAnnotations> */
1729 var_other = var_old_child;
1730 {
1731 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:nullable AAnnotations(AAnnotations)> */
1732 var14 = var8 == var_other;
1733 var12 = var14;
1734 goto RET_LABEL13;
1735 RET_LABEL13:(void)0;
1736 }
1737 }
1738 var10 = var12;
1739 goto RET_LABEL11;
1740 RET_LABEL11:(void)0;
1741 }
1742 var9 = var10;
1743 }
1744 if (var9){
1745 /* <var_new_child:nullable ANode> isa nullable AAnnotations */
1746 cltype16 = type_nullable_parser_nodes__AAnnotations.color;
1747 idtype17 = type_nullable_parser_nodes__AAnnotations.id;
1748 if(var_new_child == NULL) {
1749 var15 = 1;
1750 } else {
1751 if(cltype16 >= var_new_child->type->table_size) {
1752 var15 = 0;
1753 } else {
1754 var15 = var_new_child->type->type_table[cltype16] == idtype17;
1755 }
1756 }
1757 if (unlikely(!var15)) {
1758 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
1759 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AAnnotations", var_class_name18);
1760 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6001);
1761 show_backtrace(1);
1762 }
1763 {
1764 parser_prod__AFalseExpr__n_annotations_61d(self, var_new_child); /* Direct call parser_prod#AFalseExpr#n_annotations= on <self:AFalseExpr>*/
1765 }
1766 goto RET_LABEL;
1767 } else {
1768 }
1769 RET_LABEL:;
1770 }
1771 /* method parser_prod#AFalseExpr#replace_child for (self: Object, ANode, nullable ANode) */
1772 void VIRTUAL_parser_prod__AFalseExpr__replace_child(val* self, val* p0, val* p1) {
1773 parser_prod__AFalseExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AFalseExpr#replace_child on <self:Object(AFalseExpr)>*/
1774 RET_LABEL:;
1775 }
1776 /* method parser_prod#AFalseExpr#n_kwfalse= for (self: AFalseExpr, TKwfalse) */
1777 void parser_prod__AFalseExpr__n_kwfalse_61d(val* self, val* p0) {
1778 val* var_node /* var node: TKwfalse */;
1779 var_node = p0;
1780 self->attrs[COLOR_parser_nodes__AFalseExpr___n_kwfalse].val = var_node; /* _n_kwfalse on <self:AFalseExpr> */
1781 {
1782 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwfalse> */
1783 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwfalse> */
1784 RET_LABEL1:(void)0;
1785 }
1786 }
1787 RET_LABEL:;
1788 }
1789 /* method parser_prod#AFalseExpr#n_kwfalse= for (self: Object, TKwfalse) */
1790 void VIRTUAL_parser_prod__AFalseExpr__n_kwfalse_61d(val* self, val* p0) {
1791 parser_prod__AFalseExpr__n_kwfalse_61d(self, p0); /* Direct call parser_prod#AFalseExpr#n_kwfalse= on <self:Object(AFalseExpr)>*/
1792 RET_LABEL:;
1793 }
1794 /* method parser_prod#AFalseExpr#n_annotations= for (self: AFalseExpr, nullable AAnnotations) */
1795 void parser_prod__AFalseExpr__n_annotations_61d(val* self, val* p0) {
1796 val* var_node /* var node: nullable AAnnotations */;
1797 val* var /* : null */;
1798 short int var1 /* : Bool */;
1799 short int var2 /* : Bool */;
1800 val* var_other /* var other: nullable Object */;
1801 short int var4 /* : Bool */;
1802 short int var5 /* : Bool */;
1803 short int var6 /* : Bool */;
1804 var_node = p0;
1805 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_node; /* _n_annotations on <self:AFalseExpr> */
1806 var = NULL;
1807 if (var_node == NULL) {
1808 var1 = 0; /* is null */
1809 } else {
1810 var1 = 1; /* arg is null and recv is not */
1811 }
1812 if (0) {
1813 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AAnnotations> */
1814 var_other = var;
1815 {
1816 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AAnnotations(AAnnotations)>*/;
1817 var4 = var5;
1818 }
1819 var6 = !var4;
1820 var2 = var6;
1821 goto RET_LABEL3;
1822 RET_LABEL3:(void)0;
1823 }
1824 var1 = var2;
1825 }
1826 if (var1){
1827 {
1828 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AAnnotations(AAnnotations)> */
1829 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AAnnotations(AAnnotations)> */
1830 RET_LABEL7:(void)0;
1831 }
1832 }
1833 } else {
1834 }
1835 RET_LABEL:;
1836 }
1837 /* method parser_prod#AFalseExpr#n_annotations= for (self: Object, nullable AAnnotations) */
1838 void VIRTUAL_parser_prod__AFalseExpr__n_annotations_61d(val* self, val* p0) {
1839 parser_prod__AFalseExpr__n_annotations_61d(self, p0); /* Direct call parser_prod#AFalseExpr#n_annotations= on <self:Object(AFalseExpr)>*/
1840 RET_LABEL:;
1841 }
1842 /* method parser_prod#AFalseExpr#visit_all for (self: AFalseExpr, Visitor) */
1843 void parser_prod__AFalseExpr__visit_all(val* self, val* p0) {
1844 val* var_v /* var v: Visitor */;
1845 val* var /* : TKwfalse */;
1846 val* var1 /* : nullable AAnnotations */;
1847 var_v = p0;
1848 var = self->attrs[COLOR_parser_nodes__AFalseExpr___n_kwfalse].val; /* _n_kwfalse on <self:AFalseExpr> */
1849 if (unlikely(var == NULL)) {
1850 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwfalse");
1851 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6020);
1852 show_backtrace(1);
1853 }
1854 {
1855 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1856 }
1857 var1 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AFalseExpr> */
1858 {
1859 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1860 }
1861 RET_LABEL:;
1862 }
1863 /* method parser_prod#AFalseExpr#visit_all for (self: Object, Visitor) */
1864 void VIRTUAL_parser_prod__AFalseExpr__visit_all(val* self, val* p0) {
1865 parser_prod__AFalseExpr__visit_all(self, p0); /* Direct call parser_prod#AFalseExpr#visit_all on <self:Object(AFalseExpr)>*/
1866 RET_LABEL:;
1867 }
1868 /* method parser_prod#ANullExpr#init_anullexpr for (self: ANullExpr, nullable TKwnull, nullable AAnnotations) */
1869 void parser_prod__ANullExpr__init_anullexpr(val* self, val* p0, val* p1) {
1870 val* var_n_kwnull /* var n_kwnull: nullable TKwnull */;
1871 val* var_n_annotations /* var n_annotations: nullable AAnnotations */;
1872 val* var /* : null */;
1873 short int var2 /* : Bool */;
1874 short int var3 /* : Bool */;
1875 val* var_other /* var other: nullable Object */;
1876 short int var5 /* : Bool */;
1877 short int var6 /* : Bool */;
1878 short int var7 /* : Bool */;
1879 var_n_kwnull = p0;
1880 var_n_annotations = p1;
1881 if (unlikely(var_n_kwnull == NULL)) {
1882 PRINT_ERROR("Runtime error: %s", "Cast failed");
1883 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6030);
1884 show_backtrace(1);
1885 }
1886 self->attrs[COLOR_parser_nodes__ANullExpr___n_kwnull].val = var_n_kwnull; /* _n_kwnull on <self:ANullExpr> */
1887 if (var_n_kwnull == NULL) {
1888 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1889 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6031);
1890 show_backtrace(1);
1891 } else {
1892 { /* Inline parser_nodes#ANode#parent= (var_n_kwnull,self) on <var_n_kwnull:nullable TKwnull> */
1893 if (unlikely(var_n_kwnull == NULL)) {
1894 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1895 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
1896 show_backtrace(1);
1897 }
1898 var_n_kwnull->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwnull:nullable TKwnull> */
1899 RET_LABEL1:(void)0;
1900 }
1901 }
1902 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:ANullExpr> */
1903 var = NULL;
1904 if (var_n_annotations == NULL) {
1905 var2 = 0; /* is null */
1906 } else {
1907 var2 = 1; /* arg is null and recv is not */
1908 }
1909 if (0) {
1910 { /* Inline kernel#Object#!= (var_n_annotations,var) on <var_n_annotations:nullable AAnnotations> */
1911 var_other = var;
1912 {
1913 var6 = ((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)>*/;
1914 var5 = var6;
1915 }
1916 var7 = !var5;
1917 var3 = var7;
1918 goto RET_LABEL4;
1919 RET_LABEL4:(void)0;
1920 }
1921 var2 = var3;
1922 }
1923 if (var2){
1924 {
1925 { /* Inline parser_nodes#ANode#parent= (var_n_annotations,self) on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
1926 var_n_annotations->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
1927 RET_LABEL8:(void)0;
1928 }
1929 }
1930 } else {
1931 }
1932 RET_LABEL:;
1933 }
1934 /* method parser_prod#ANullExpr#init_anullexpr for (self: Object, nullable TKwnull, nullable AAnnotations) */
1935 void VIRTUAL_parser_prod__ANullExpr__init_anullexpr(val* self, val* p0, val* p1) {
1936 parser_prod__ANullExpr__init_anullexpr(self, p0, p1); /* Direct call parser_prod#ANullExpr#init_anullexpr on <self:Object(ANullExpr)>*/
1937 RET_LABEL:;
1938 }
1939 /* method parser_prod#ANullExpr#replace_child for (self: ANullExpr, ANode, nullable ANode) */
1940 void parser_prod__ANullExpr__replace_child(val* self, val* p0, val* p1) {
1941 val* var_old_child /* var old_child: ANode */;
1942 val* var_new_child /* var new_child: nullable ANode */;
1943 val* var /* : TKwnull */;
1944 short int var1 /* : Bool */;
1945 short int var2 /* : Bool */;
1946 val* var_other /* var other: nullable Object */;
1947 short int var4 /* : Bool */;
1948 short int var6 /* : Bool */;
1949 short int var7 /* : Bool */;
1950 int cltype;
1951 int idtype;
1952 const char* var_class_name;
1953 val* var8 /* : nullable AAnnotations */;
1954 short int var9 /* : Bool */;
1955 short int var10 /* : Bool */;
1956 short int var12 /* : Bool */;
1957 short int var14 /* : Bool */;
1958 short int var15 /* : Bool */;
1959 int cltype16;
1960 int idtype17;
1961 const char* var_class_name18;
1962 var_old_child = p0;
1963 var_new_child = p1;
1964 var = self->attrs[COLOR_parser_nodes__ANullExpr___n_kwnull].val; /* _n_kwnull on <self:ANullExpr> */
1965 if (unlikely(var == NULL)) {
1966 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwnull");
1967 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6038);
1968 show_backtrace(1);
1969 }
1970 {
1971 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwnull> */
1972 var_other = var_old_child;
1973 {
1974 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TKwnull> */
1975 var6 = var == var_other;
1976 var4 = var6;
1977 goto RET_LABEL5;
1978 RET_LABEL5:(void)0;
1979 }
1980 }
1981 var2 = var4;
1982 goto RET_LABEL3;
1983 RET_LABEL3:(void)0;
1984 }
1985 var1 = var2;
1986 }
1987 if (var1){
1988 /* <var_new_child:nullable ANode> isa TKwnull */
1989 cltype = type_parser_nodes__TKwnull.color;
1990 idtype = type_parser_nodes__TKwnull.id;
1991 if(var_new_child == NULL) {
1992 var7 = 0;
1993 } else {
1994 if(cltype >= var_new_child->type->table_size) {
1995 var7 = 0;
1996 } else {
1997 var7 = var_new_child->type->type_table[cltype] == idtype;
1998 }
1999 }
2000 if (unlikely(!var7)) {
2001 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
2002 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwnull", var_class_name);
2003 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6039);
2004 show_backtrace(1);
2005 }
2006 {
2007 parser_prod__ANullExpr__n_kwnull_61d(self, var_new_child); /* Direct call parser_prod#ANullExpr#n_kwnull= on <self:ANullExpr>*/
2008 }
2009 goto RET_LABEL;
2010 } else {
2011 }
2012 var8 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:ANullExpr> */
2013 if (var8 == NULL) {
2014 var9 = 0; /* <var_old_child:ANode> cannot be null */
2015 } else {
2016 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:nullable AAnnotations> */
2017 var_other = var_old_child;
2018 {
2019 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:nullable AAnnotations(AAnnotations)> */
2020 var14 = var8 == var_other;
2021 var12 = var14;
2022 goto RET_LABEL13;
2023 RET_LABEL13:(void)0;
2024 }
2025 }
2026 var10 = var12;
2027 goto RET_LABEL11;
2028 RET_LABEL11:(void)0;
2029 }
2030 var9 = var10;
2031 }
2032 if (var9){
2033 /* <var_new_child:nullable ANode> isa nullable AAnnotations */
2034 cltype16 = type_nullable_parser_nodes__AAnnotations.color;
2035 idtype17 = type_nullable_parser_nodes__AAnnotations.id;
2036 if(var_new_child == NULL) {
2037 var15 = 1;
2038 } else {
2039 if(cltype16 >= var_new_child->type->table_size) {
2040 var15 = 0;
2041 } else {
2042 var15 = var_new_child->type->type_table[cltype16] == idtype17;
2043 }
2044 }
2045 if (unlikely(!var15)) {
2046 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
2047 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AAnnotations", var_class_name18);
2048 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6043);
2049 show_backtrace(1);
2050 }
2051 {
2052 parser_prod__ANullExpr__n_annotations_61d(self, var_new_child); /* Direct call parser_prod#ANullExpr#n_annotations= on <self:ANullExpr>*/
2053 }
2054 goto RET_LABEL;
2055 } else {
2056 }
2057 RET_LABEL:;
2058 }
2059 /* method parser_prod#ANullExpr#replace_child for (self: Object, ANode, nullable ANode) */
2060 void VIRTUAL_parser_prod__ANullExpr__replace_child(val* self, val* p0, val* p1) {
2061 parser_prod__ANullExpr__replace_child(self, p0, p1); /* Direct call parser_prod#ANullExpr#replace_child on <self:Object(ANullExpr)>*/
2062 RET_LABEL:;
2063 }
2064 /* method parser_prod#ANullExpr#n_kwnull= for (self: ANullExpr, TKwnull) */
2065 void parser_prod__ANullExpr__n_kwnull_61d(val* self, val* p0) {
2066 val* var_node /* var node: TKwnull */;
2067 var_node = p0;
2068 self->attrs[COLOR_parser_nodes__ANullExpr___n_kwnull].val = var_node; /* _n_kwnull on <self:ANullExpr> */
2069 {
2070 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwnull> */
2071 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwnull> */
2072 RET_LABEL1:(void)0;
2073 }
2074 }
2075 RET_LABEL:;
2076 }
2077 /* method parser_prod#ANullExpr#n_kwnull= for (self: Object, TKwnull) */
2078 void VIRTUAL_parser_prod__ANullExpr__n_kwnull_61d(val* self, val* p0) {
2079 parser_prod__ANullExpr__n_kwnull_61d(self, p0); /* Direct call parser_prod#ANullExpr#n_kwnull= on <self:Object(ANullExpr)>*/
2080 RET_LABEL:;
2081 }
2082 /* method parser_prod#ANullExpr#n_annotations= for (self: ANullExpr, nullable AAnnotations) */
2083 void parser_prod__ANullExpr__n_annotations_61d(val* self, val* p0) {
2084 val* var_node /* var node: nullable AAnnotations */;
2085 val* var /* : null */;
2086 short int var1 /* : Bool */;
2087 short int var2 /* : Bool */;
2088 val* var_other /* var other: nullable Object */;
2089 short int var4 /* : Bool */;
2090 short int var5 /* : Bool */;
2091 short int var6 /* : Bool */;
2092 var_node = p0;
2093 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_node; /* _n_annotations on <self:ANullExpr> */
2094 var = NULL;
2095 if (var_node == NULL) {
2096 var1 = 0; /* is null */
2097 } else {
2098 var1 = 1; /* arg is null and recv is not */
2099 }
2100 if (0) {
2101 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AAnnotations> */
2102 var_other = var;
2103 {
2104 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AAnnotations(AAnnotations)>*/;
2105 var4 = var5;
2106 }
2107 var6 = !var4;
2108 var2 = var6;
2109 goto RET_LABEL3;
2110 RET_LABEL3:(void)0;
2111 }
2112 var1 = var2;
2113 }
2114 if (var1){
2115 {
2116 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AAnnotations(AAnnotations)> */
2117 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AAnnotations(AAnnotations)> */
2118 RET_LABEL7:(void)0;
2119 }
2120 }
2121 } else {
2122 }
2123 RET_LABEL:;
2124 }
2125 /* method parser_prod#ANullExpr#n_annotations= for (self: Object, nullable AAnnotations) */
2126 void VIRTUAL_parser_prod__ANullExpr__n_annotations_61d(val* self, val* p0) {
2127 parser_prod__ANullExpr__n_annotations_61d(self, p0); /* Direct call parser_prod#ANullExpr#n_annotations= on <self:Object(ANullExpr)>*/
2128 RET_LABEL:;
2129 }
2130 /* method parser_prod#ANullExpr#visit_all for (self: ANullExpr, Visitor) */
2131 void parser_prod__ANullExpr__visit_all(val* self, val* p0) {
2132 val* var_v /* var v: Visitor */;
2133 val* var /* : TKwnull */;
2134 val* var1 /* : nullable AAnnotations */;
2135 var_v = p0;
2136 var = self->attrs[COLOR_parser_nodes__ANullExpr___n_kwnull].val; /* _n_kwnull on <self:ANullExpr> */
2137 if (unlikely(var == NULL)) {
2138 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwnull");
2139 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6062);
2140 show_backtrace(1);
2141 }
2142 {
2143 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2144 }
2145 var1 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:ANullExpr> */
2146 {
2147 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2148 }
2149 RET_LABEL:;
2150 }
2151 /* method parser_prod#ANullExpr#visit_all for (self: Object, Visitor) */
2152 void VIRTUAL_parser_prod__ANullExpr__visit_all(val* self, val* p0) {
2153 parser_prod__ANullExpr__visit_all(self, p0); /* Direct call parser_prod#ANullExpr#visit_all on <self:Object(ANullExpr)>*/
2154 RET_LABEL:;
2155 }
2156 /* method parser_prod#ADecIntExpr#init_adecintexpr for (self: ADecIntExpr, nullable TNumber, nullable AAnnotations) */
2157 void parser_prod__ADecIntExpr__init_adecintexpr(val* self, val* p0, val* p1) {
2158 val* var_n_number /* var n_number: nullable TNumber */;
2159 val* var_n_annotations /* var n_annotations: nullable AAnnotations */;
2160 val* var /* : null */;
2161 short int var2 /* : Bool */;
2162 short int var3 /* : Bool */;
2163 val* var_other /* var other: nullable Object */;
2164 short int var5 /* : Bool */;
2165 short int var6 /* : Bool */;
2166 short int var7 /* : Bool */;
2167 var_n_number = p0;
2168 var_n_annotations = p1;
2169 if (unlikely(var_n_number == NULL)) {
2170 PRINT_ERROR("Runtime error: %s", "Cast failed");
2171 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6072);
2172 show_backtrace(1);
2173 }
2174 self->attrs[COLOR_parser_nodes__ADecIntExpr___n_number].val = var_n_number; /* _n_number on <self:ADecIntExpr> */
2175 if (var_n_number == NULL) {
2176 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2177 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6073);
2178 show_backtrace(1);
2179 } else {
2180 { /* Inline parser_nodes#ANode#parent= (var_n_number,self) on <var_n_number:nullable TNumber> */
2181 if (unlikely(var_n_number == NULL)) {
2182 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2183 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
2184 show_backtrace(1);
2185 }
2186 var_n_number->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_number:nullable TNumber> */
2187 RET_LABEL1:(void)0;
2188 }
2189 }
2190 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:ADecIntExpr> */
2191 var = NULL;
2192 if (var_n_annotations == NULL) {
2193 var2 = 0; /* is null */
2194 } else {
2195 var2 = 1; /* arg is null and recv is not */
2196 }
2197 if (0) {
2198 { /* Inline kernel#Object#!= (var_n_annotations,var) on <var_n_annotations:nullable AAnnotations> */
2199 var_other = var;
2200 {
2201 var6 = ((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)>*/;
2202 var5 = var6;
2203 }
2204 var7 = !var5;
2205 var3 = var7;
2206 goto RET_LABEL4;
2207 RET_LABEL4:(void)0;
2208 }
2209 var2 = var3;
2210 }
2211 if (var2){
2212 {
2213 { /* Inline parser_nodes#ANode#parent= (var_n_annotations,self) on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
2214 var_n_annotations->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
2215 RET_LABEL8:(void)0;
2216 }
2217 }
2218 } else {
2219 }
2220 RET_LABEL:;
2221 }
2222 /* method parser_prod#ADecIntExpr#init_adecintexpr for (self: Object, nullable TNumber, nullable AAnnotations) */
2223 void VIRTUAL_parser_prod__ADecIntExpr__init_adecintexpr(val* self, val* p0, val* p1) {
2224 parser_prod__ADecIntExpr__init_adecintexpr(self, p0, p1); /* Direct call parser_prod#ADecIntExpr#init_adecintexpr on <self:Object(ADecIntExpr)>*/
2225 RET_LABEL:;
2226 }
2227 /* method parser_prod#ADecIntExpr#replace_child for (self: ADecIntExpr, ANode, nullable ANode) */
2228 void parser_prod__ADecIntExpr__replace_child(val* self, val* p0, val* p1) {
2229 val* var_old_child /* var old_child: ANode */;
2230 val* var_new_child /* var new_child: nullable ANode */;
2231 val* var /* : TNumber */;
2232 short int var1 /* : Bool */;
2233 short int var2 /* : Bool */;
2234 val* var_other /* var other: nullable Object */;
2235 short int var4 /* : Bool */;
2236 short int var6 /* : Bool */;
2237 short int var7 /* : Bool */;
2238 int cltype;
2239 int idtype;
2240 const char* var_class_name;
2241 val* var8 /* : nullable AAnnotations */;
2242 short int var9 /* : Bool */;
2243 short int var10 /* : Bool */;
2244 short int var12 /* : Bool */;
2245 short int var14 /* : Bool */;
2246 short int var15 /* : Bool */;
2247 int cltype16;
2248 int idtype17;
2249 const char* var_class_name18;
2250 var_old_child = p0;
2251 var_new_child = p1;
2252 var = self->attrs[COLOR_parser_nodes__ADecIntExpr___n_number].val; /* _n_number on <self:ADecIntExpr> */
2253 if (unlikely(var == NULL)) {
2254 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_number");
2255 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6080);
2256 show_backtrace(1);
2257 }
2258 {
2259 { /* Inline kernel#Object#== (var,var_old_child) on <var:TNumber> */
2260 var_other = var_old_child;
2261 {
2262 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TNumber> */
2263 var6 = var == var_other;
2264 var4 = var6;
2265 goto RET_LABEL5;
2266 RET_LABEL5:(void)0;
2267 }
2268 }
2269 var2 = var4;
2270 goto RET_LABEL3;
2271 RET_LABEL3:(void)0;
2272 }
2273 var1 = var2;
2274 }
2275 if (var1){
2276 /* <var_new_child:nullable ANode> isa TNumber */
2277 cltype = type_parser_nodes__TNumber.color;
2278 idtype = type_parser_nodes__TNumber.id;
2279 if(var_new_child == NULL) {
2280 var7 = 0;
2281 } else {
2282 if(cltype >= var_new_child->type->table_size) {
2283 var7 = 0;
2284 } else {
2285 var7 = var_new_child->type->type_table[cltype] == idtype;
2286 }
2287 }
2288 if (unlikely(!var7)) {
2289 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
2290 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TNumber", var_class_name);
2291 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6081);
2292 show_backtrace(1);
2293 }
2294 {
2295 parser_prod__ADecIntExpr__n_number_61d(self, var_new_child); /* Direct call parser_prod#ADecIntExpr#n_number= on <self:ADecIntExpr>*/
2296 }
2297 goto RET_LABEL;
2298 } else {
2299 }
2300 var8 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:ADecIntExpr> */
2301 if (var8 == NULL) {
2302 var9 = 0; /* <var_old_child:ANode> cannot be null */
2303 } else {
2304 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:nullable AAnnotations> */
2305 var_other = var_old_child;
2306 {
2307 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:nullable AAnnotations(AAnnotations)> */
2308 var14 = var8 == var_other;
2309 var12 = var14;
2310 goto RET_LABEL13;
2311 RET_LABEL13:(void)0;
2312 }
2313 }
2314 var10 = var12;
2315 goto RET_LABEL11;
2316 RET_LABEL11:(void)0;
2317 }
2318 var9 = var10;
2319 }
2320 if (var9){
2321 /* <var_new_child:nullable ANode> isa nullable AAnnotations */
2322 cltype16 = type_nullable_parser_nodes__AAnnotations.color;
2323 idtype17 = type_nullable_parser_nodes__AAnnotations.id;
2324 if(var_new_child == NULL) {
2325 var15 = 1;
2326 } else {
2327 if(cltype16 >= var_new_child->type->table_size) {
2328 var15 = 0;
2329 } else {
2330 var15 = var_new_child->type->type_table[cltype16] == idtype17;
2331 }
2332 }
2333 if (unlikely(!var15)) {
2334 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
2335 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AAnnotations", var_class_name18);
2336 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6085);
2337 show_backtrace(1);
2338 }
2339 {
2340 parser_prod__ADecIntExpr__n_annotations_61d(self, var_new_child); /* Direct call parser_prod#ADecIntExpr#n_annotations= on <self:ADecIntExpr>*/
2341 }
2342 goto RET_LABEL;
2343 } else {
2344 }
2345 RET_LABEL:;
2346 }
2347 /* method parser_prod#ADecIntExpr#replace_child for (self: Object, ANode, nullable ANode) */
2348 void VIRTUAL_parser_prod__ADecIntExpr__replace_child(val* self, val* p0, val* p1) {
2349 parser_prod__ADecIntExpr__replace_child(self, p0, p1); /* Direct call parser_prod#ADecIntExpr#replace_child on <self:Object(ADecIntExpr)>*/
2350 RET_LABEL:;
2351 }
2352 /* method parser_prod#ADecIntExpr#n_number= for (self: ADecIntExpr, TNumber) */
2353 void parser_prod__ADecIntExpr__n_number_61d(val* self, val* p0) {
2354 val* var_node /* var node: TNumber */;
2355 var_node = p0;
2356 self->attrs[COLOR_parser_nodes__ADecIntExpr___n_number].val = var_node; /* _n_number on <self:ADecIntExpr> */
2357 {
2358 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TNumber> */
2359 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TNumber> */
2360 RET_LABEL1:(void)0;
2361 }
2362 }
2363 RET_LABEL:;
2364 }
2365 /* method parser_prod#ADecIntExpr#n_number= for (self: Object, TNumber) */
2366 void VIRTUAL_parser_prod__ADecIntExpr__n_number_61d(val* self, val* p0) {
2367 parser_prod__ADecIntExpr__n_number_61d(self, p0); /* Direct call parser_prod#ADecIntExpr#n_number= on <self:Object(ADecIntExpr)>*/
2368 RET_LABEL:;
2369 }
2370 /* method parser_prod#ADecIntExpr#n_annotations= for (self: ADecIntExpr, nullable AAnnotations) */
2371 void parser_prod__ADecIntExpr__n_annotations_61d(val* self, val* p0) {
2372 val* var_node /* var node: nullable AAnnotations */;
2373 val* var /* : null */;
2374 short int var1 /* : Bool */;
2375 short int var2 /* : Bool */;
2376 val* var_other /* var other: nullable Object */;
2377 short int var4 /* : Bool */;
2378 short int var5 /* : Bool */;
2379 short int var6 /* : Bool */;
2380 var_node = p0;
2381 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_node; /* _n_annotations on <self:ADecIntExpr> */
2382 var = NULL;
2383 if (var_node == NULL) {
2384 var1 = 0; /* is null */
2385 } else {
2386 var1 = 1; /* arg is null and recv is not */
2387 }
2388 if (0) {
2389 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AAnnotations> */
2390 var_other = var;
2391 {
2392 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AAnnotations(AAnnotations)>*/;
2393 var4 = var5;
2394 }
2395 var6 = !var4;
2396 var2 = var6;
2397 goto RET_LABEL3;
2398 RET_LABEL3:(void)0;
2399 }
2400 var1 = var2;
2401 }
2402 if (var1){
2403 {
2404 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AAnnotations(AAnnotations)> */
2405 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AAnnotations(AAnnotations)> */
2406 RET_LABEL7:(void)0;
2407 }
2408 }
2409 } else {
2410 }
2411 RET_LABEL:;
2412 }
2413 /* method parser_prod#ADecIntExpr#n_annotations= for (self: Object, nullable AAnnotations) */
2414 void VIRTUAL_parser_prod__ADecIntExpr__n_annotations_61d(val* self, val* p0) {
2415 parser_prod__ADecIntExpr__n_annotations_61d(self, p0); /* Direct call parser_prod#ADecIntExpr#n_annotations= on <self:Object(ADecIntExpr)>*/
2416 RET_LABEL:;
2417 }
2418 /* method parser_prod#ADecIntExpr#visit_all for (self: ADecIntExpr, Visitor) */
2419 void parser_prod__ADecIntExpr__visit_all(val* self, val* p0) {
2420 val* var_v /* var v: Visitor */;
2421 val* var /* : TNumber */;
2422 val* var1 /* : nullable AAnnotations */;
2423 var_v = p0;
2424 var = self->attrs[COLOR_parser_nodes__ADecIntExpr___n_number].val; /* _n_number on <self:ADecIntExpr> */
2425 if (unlikely(var == NULL)) {
2426 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_number");
2427 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6104);
2428 show_backtrace(1);
2429 }
2430 {
2431 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2432 }
2433 var1 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:ADecIntExpr> */
2434 {
2435 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2436 }
2437 RET_LABEL:;
2438 }
2439 /* method parser_prod#ADecIntExpr#visit_all for (self: Object, Visitor) */
2440 void VIRTUAL_parser_prod__ADecIntExpr__visit_all(val* self, val* p0) {
2441 parser_prod__ADecIntExpr__visit_all(self, p0); /* Direct call parser_prod#ADecIntExpr#visit_all on <self:Object(ADecIntExpr)>*/
2442 RET_LABEL:;
2443 }
2444 /* method parser_prod#AHexIntExpr#init_ahexintexpr for (self: AHexIntExpr, nullable THexNumber, nullable AAnnotations) */
2445 void parser_prod__AHexIntExpr__init_ahexintexpr(val* self, val* p0, val* p1) {
2446 val* var_n_hex_number /* var n_hex_number: nullable THexNumber */;
2447 val* var_n_annotations /* var n_annotations: nullable AAnnotations */;
2448 val* var /* : null */;
2449 short int var2 /* : Bool */;
2450 short int var3 /* : Bool */;
2451 val* var_other /* var other: nullable Object */;
2452 short int var5 /* : Bool */;
2453 short int var6 /* : Bool */;
2454 short int var7 /* : Bool */;
2455 var_n_hex_number = p0;
2456 var_n_annotations = p1;
2457 if (unlikely(var_n_hex_number == NULL)) {
2458 PRINT_ERROR("Runtime error: %s", "Cast failed");
2459 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6114);
2460 show_backtrace(1);
2461 }
2462 self->attrs[COLOR_parser_nodes__AHexIntExpr___n_hex_number].val = var_n_hex_number; /* _n_hex_number on <self:AHexIntExpr> */
2463 if (var_n_hex_number == NULL) {
2464 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2465 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6115);
2466 show_backtrace(1);
2467 } else {
2468 { /* Inline parser_nodes#ANode#parent= (var_n_hex_number,self) on <var_n_hex_number:nullable THexNumber> */
2469 if (unlikely(var_n_hex_number == NULL)) {
2470 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2471 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
2472 show_backtrace(1);
2473 }
2474 var_n_hex_number->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_hex_number:nullable THexNumber> */
2475 RET_LABEL1:(void)0;
2476 }
2477 }
2478 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:AHexIntExpr> */
2479 var = NULL;
2480 if (var_n_annotations == NULL) {
2481 var2 = 0; /* is null */
2482 } else {
2483 var2 = 1; /* arg is null and recv is not */
2484 }
2485 if (0) {
2486 { /* Inline kernel#Object#!= (var_n_annotations,var) on <var_n_annotations:nullable AAnnotations> */
2487 var_other = var;
2488 {
2489 var6 = ((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)>*/;
2490 var5 = var6;
2491 }
2492 var7 = !var5;
2493 var3 = var7;
2494 goto RET_LABEL4;
2495 RET_LABEL4:(void)0;
2496 }
2497 var2 = var3;
2498 }
2499 if (var2){
2500 {
2501 { /* Inline parser_nodes#ANode#parent= (var_n_annotations,self) on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
2502 var_n_annotations->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
2503 RET_LABEL8:(void)0;
2504 }
2505 }
2506 } else {
2507 }
2508 RET_LABEL:;
2509 }
2510 /* method parser_prod#AHexIntExpr#init_ahexintexpr for (self: Object, nullable THexNumber, nullable AAnnotations) */
2511 void VIRTUAL_parser_prod__AHexIntExpr__init_ahexintexpr(val* self, val* p0, val* p1) {
2512 parser_prod__AHexIntExpr__init_ahexintexpr(self, p0, p1); /* Direct call parser_prod#AHexIntExpr#init_ahexintexpr on <self:Object(AHexIntExpr)>*/
2513 RET_LABEL:;
2514 }
2515 /* method parser_prod#AHexIntExpr#replace_child for (self: AHexIntExpr, ANode, nullable ANode) */
2516 void parser_prod__AHexIntExpr__replace_child(val* self, val* p0, val* p1) {
2517 val* var_old_child /* var old_child: ANode */;
2518 val* var_new_child /* var new_child: nullable ANode */;
2519 val* var /* : THexNumber */;
2520 short int var1 /* : Bool */;
2521 short int var2 /* : Bool */;
2522 val* var_other /* var other: nullable Object */;
2523 short int var4 /* : Bool */;
2524 short int var6 /* : Bool */;
2525 short int var7 /* : Bool */;
2526 int cltype;
2527 int idtype;
2528 const char* var_class_name;
2529 val* var8 /* : nullable AAnnotations */;
2530 short int var9 /* : Bool */;
2531 short int var10 /* : Bool */;
2532 short int var12 /* : Bool */;
2533 short int var14 /* : Bool */;
2534 short int var15 /* : Bool */;
2535 int cltype16;
2536 int idtype17;
2537 const char* var_class_name18;
2538 var_old_child = p0;
2539 var_new_child = p1;
2540 var = self->attrs[COLOR_parser_nodes__AHexIntExpr___n_hex_number].val; /* _n_hex_number on <self:AHexIntExpr> */
2541 if (unlikely(var == NULL)) {
2542 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_hex_number");
2543 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6122);
2544 show_backtrace(1);
2545 }
2546 {
2547 { /* Inline kernel#Object#== (var,var_old_child) on <var:THexNumber> */
2548 var_other = var_old_child;
2549 {
2550 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:THexNumber> */
2551 var6 = var == var_other;
2552 var4 = var6;
2553 goto RET_LABEL5;
2554 RET_LABEL5:(void)0;
2555 }
2556 }
2557 var2 = var4;
2558 goto RET_LABEL3;
2559 RET_LABEL3:(void)0;
2560 }
2561 var1 = var2;
2562 }
2563 if (var1){
2564 /* <var_new_child:nullable ANode> isa THexNumber */
2565 cltype = type_parser_nodes__THexNumber.color;
2566 idtype = type_parser_nodes__THexNumber.id;
2567 if(var_new_child == NULL) {
2568 var7 = 0;
2569 } else {
2570 if(cltype >= var_new_child->type->table_size) {
2571 var7 = 0;
2572 } else {
2573 var7 = var_new_child->type->type_table[cltype] == idtype;
2574 }
2575 }
2576 if (unlikely(!var7)) {
2577 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
2578 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "THexNumber", var_class_name);
2579 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6123);
2580 show_backtrace(1);
2581 }
2582 {
2583 parser_prod__AHexIntExpr__n_hex_number_61d(self, var_new_child); /* Direct call parser_prod#AHexIntExpr#n_hex_number= on <self:AHexIntExpr>*/
2584 }
2585 goto RET_LABEL;
2586 } else {
2587 }
2588 var8 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AHexIntExpr> */
2589 if (var8 == NULL) {
2590 var9 = 0; /* <var_old_child:ANode> cannot be null */
2591 } else {
2592 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:nullable AAnnotations> */
2593 var_other = var_old_child;
2594 {
2595 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:nullable AAnnotations(AAnnotations)> */
2596 var14 = var8 == var_other;
2597 var12 = var14;
2598 goto RET_LABEL13;
2599 RET_LABEL13:(void)0;
2600 }
2601 }
2602 var10 = var12;
2603 goto RET_LABEL11;
2604 RET_LABEL11:(void)0;
2605 }
2606 var9 = var10;
2607 }
2608 if (var9){
2609 /* <var_new_child:nullable ANode> isa nullable AAnnotations */
2610 cltype16 = type_nullable_parser_nodes__AAnnotations.color;
2611 idtype17 = type_nullable_parser_nodes__AAnnotations.id;
2612 if(var_new_child == NULL) {
2613 var15 = 1;
2614 } else {
2615 if(cltype16 >= var_new_child->type->table_size) {
2616 var15 = 0;
2617 } else {
2618 var15 = var_new_child->type->type_table[cltype16] == idtype17;
2619 }
2620 }
2621 if (unlikely(!var15)) {
2622 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
2623 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AAnnotations", var_class_name18);
2624 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6127);
2625 show_backtrace(1);
2626 }
2627 {
2628 parser_prod__AHexIntExpr__n_annotations_61d(self, var_new_child); /* Direct call parser_prod#AHexIntExpr#n_annotations= on <self:AHexIntExpr>*/
2629 }
2630 goto RET_LABEL;
2631 } else {
2632 }
2633 RET_LABEL:;
2634 }
2635 /* method parser_prod#AHexIntExpr#replace_child for (self: Object, ANode, nullable ANode) */
2636 void VIRTUAL_parser_prod__AHexIntExpr__replace_child(val* self, val* p0, val* p1) {
2637 parser_prod__AHexIntExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AHexIntExpr#replace_child on <self:Object(AHexIntExpr)>*/
2638 RET_LABEL:;
2639 }
2640 /* method parser_prod#AHexIntExpr#n_hex_number= for (self: AHexIntExpr, THexNumber) */
2641 void parser_prod__AHexIntExpr__n_hex_number_61d(val* self, val* p0) {
2642 val* var_node /* var node: THexNumber */;
2643 var_node = p0;
2644 self->attrs[COLOR_parser_nodes__AHexIntExpr___n_hex_number].val = var_node; /* _n_hex_number on <self:AHexIntExpr> */
2645 {
2646 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:THexNumber> */
2647 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:THexNumber> */
2648 RET_LABEL1:(void)0;
2649 }
2650 }
2651 RET_LABEL:;
2652 }
2653 /* method parser_prod#AHexIntExpr#n_hex_number= for (self: Object, THexNumber) */
2654 void VIRTUAL_parser_prod__AHexIntExpr__n_hex_number_61d(val* self, val* p0) {
2655 parser_prod__AHexIntExpr__n_hex_number_61d(self, p0); /* Direct call parser_prod#AHexIntExpr#n_hex_number= on <self:Object(AHexIntExpr)>*/
2656 RET_LABEL:;
2657 }
2658 /* method parser_prod#AHexIntExpr#n_annotations= for (self: AHexIntExpr, nullable AAnnotations) */
2659 void parser_prod__AHexIntExpr__n_annotations_61d(val* self, val* p0) {
2660 val* var_node /* var node: nullable AAnnotations */;
2661 val* var /* : null */;
2662 short int var1 /* : Bool */;
2663 short int var2 /* : Bool */;
2664 val* var_other /* var other: nullable Object */;
2665 short int var4 /* : Bool */;
2666 short int var5 /* : Bool */;
2667 short int var6 /* : Bool */;
2668 var_node = p0;
2669 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_node; /* _n_annotations on <self:AHexIntExpr> */
2670 var = NULL;
2671 if (var_node == NULL) {
2672 var1 = 0; /* is null */
2673 } else {
2674 var1 = 1; /* arg is null and recv is not */
2675 }
2676 if (0) {
2677 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AAnnotations> */
2678 var_other = var;
2679 {
2680 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AAnnotations(AAnnotations)>*/;
2681 var4 = var5;
2682 }
2683 var6 = !var4;
2684 var2 = var6;
2685 goto RET_LABEL3;
2686 RET_LABEL3:(void)0;
2687 }
2688 var1 = var2;
2689 }
2690 if (var1){
2691 {
2692 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AAnnotations(AAnnotations)> */
2693 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AAnnotations(AAnnotations)> */
2694 RET_LABEL7:(void)0;
2695 }
2696 }
2697 } else {
2698 }
2699 RET_LABEL:;
2700 }
2701 /* method parser_prod#AHexIntExpr#n_annotations= for (self: Object, nullable AAnnotations) */
2702 void VIRTUAL_parser_prod__AHexIntExpr__n_annotations_61d(val* self, val* p0) {
2703 parser_prod__AHexIntExpr__n_annotations_61d(self, p0); /* Direct call parser_prod#AHexIntExpr#n_annotations= on <self:Object(AHexIntExpr)>*/
2704 RET_LABEL:;
2705 }
2706 /* method parser_prod#AHexIntExpr#visit_all for (self: AHexIntExpr, Visitor) */
2707 void parser_prod__AHexIntExpr__visit_all(val* self, val* p0) {
2708 val* var_v /* var v: Visitor */;
2709 val* var /* : THexNumber */;
2710 val* var1 /* : nullable AAnnotations */;
2711 var_v = p0;
2712 var = self->attrs[COLOR_parser_nodes__AHexIntExpr___n_hex_number].val; /* _n_hex_number on <self:AHexIntExpr> */
2713 if (unlikely(var == NULL)) {
2714 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_hex_number");
2715 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6146);
2716 show_backtrace(1);
2717 }
2718 {
2719 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2720 }
2721 var1 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AHexIntExpr> */
2722 {
2723 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2724 }
2725 RET_LABEL:;
2726 }
2727 /* method parser_prod#AHexIntExpr#visit_all for (self: Object, Visitor) */
2728 void VIRTUAL_parser_prod__AHexIntExpr__visit_all(val* self, val* p0) {
2729 parser_prod__AHexIntExpr__visit_all(self, p0); /* Direct call parser_prod#AHexIntExpr#visit_all on <self:Object(AHexIntExpr)>*/
2730 RET_LABEL:;
2731 }
2732 /* method parser_prod#AFloatExpr#init_afloatexpr for (self: AFloatExpr, nullable TFloat, nullable AAnnotations) */
2733 void parser_prod__AFloatExpr__init_afloatexpr(val* self, val* p0, val* p1) {
2734 val* var_n_float /* var n_float: nullable TFloat */;
2735 val* var_n_annotations /* var n_annotations: nullable AAnnotations */;
2736 val* var /* : null */;
2737 short int var2 /* : Bool */;
2738 short int var3 /* : Bool */;
2739 val* var_other /* var other: nullable Object */;
2740 short int var5 /* : Bool */;
2741 short int var6 /* : Bool */;
2742 short int var7 /* : Bool */;
2743 var_n_float = p0;
2744 var_n_annotations = p1;
2745 if (unlikely(var_n_float == NULL)) {
2746 PRINT_ERROR("Runtime error: %s", "Cast failed");
2747 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6156);
2748 show_backtrace(1);
2749 }
2750 self->attrs[COLOR_parser_nodes__AFloatExpr___n_float].val = var_n_float; /* _n_float on <self:AFloatExpr> */
2751 if (var_n_float == NULL) {
2752 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2753 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6157);
2754 show_backtrace(1);
2755 } else {
2756 { /* Inline parser_nodes#ANode#parent= (var_n_float,self) on <var_n_float:nullable TFloat> */
2757 if (unlikely(var_n_float == NULL)) {
2758 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2759 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
2760 show_backtrace(1);
2761 }
2762 var_n_float->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_float:nullable TFloat> */
2763 RET_LABEL1:(void)0;
2764 }
2765 }
2766 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:AFloatExpr> */
2767 var = NULL;
2768 if (var_n_annotations == NULL) {
2769 var2 = 0; /* is null */
2770 } else {
2771 var2 = 1; /* arg is null and recv is not */
2772 }
2773 if (0) {
2774 { /* Inline kernel#Object#!= (var_n_annotations,var) on <var_n_annotations:nullable AAnnotations> */
2775 var_other = var;
2776 {
2777 var6 = ((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)>*/;
2778 var5 = var6;
2779 }
2780 var7 = !var5;
2781 var3 = var7;
2782 goto RET_LABEL4;
2783 RET_LABEL4:(void)0;
2784 }
2785 var2 = var3;
2786 }
2787 if (var2){
2788 {
2789 { /* Inline parser_nodes#ANode#parent= (var_n_annotations,self) on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
2790 var_n_annotations->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
2791 RET_LABEL8:(void)0;
2792 }
2793 }
2794 } else {
2795 }
2796 RET_LABEL:;
2797 }
2798 /* method parser_prod#AFloatExpr#init_afloatexpr for (self: Object, nullable TFloat, nullable AAnnotations) */
2799 void VIRTUAL_parser_prod__AFloatExpr__init_afloatexpr(val* self, val* p0, val* p1) {
2800 parser_prod__AFloatExpr__init_afloatexpr(self, p0, p1); /* Direct call parser_prod#AFloatExpr#init_afloatexpr on <self:Object(AFloatExpr)>*/
2801 RET_LABEL:;
2802 }
2803 /* method parser_prod#AFloatExpr#replace_child for (self: AFloatExpr, ANode, nullable ANode) */
2804 void parser_prod__AFloatExpr__replace_child(val* self, val* p0, val* p1) {
2805 val* var_old_child /* var old_child: ANode */;
2806 val* var_new_child /* var new_child: nullable ANode */;
2807 val* var /* : TFloat */;
2808 short int var1 /* : Bool */;
2809 short int var2 /* : Bool */;
2810 val* var_other /* var other: nullable Object */;
2811 short int var4 /* : Bool */;
2812 short int var6 /* : Bool */;
2813 short int var7 /* : Bool */;
2814 int cltype;
2815 int idtype;
2816 const char* var_class_name;
2817 val* var8 /* : nullable AAnnotations */;
2818 short int var9 /* : Bool */;
2819 short int var10 /* : Bool */;
2820 short int var12 /* : Bool */;
2821 short int var14 /* : Bool */;
2822 short int var15 /* : Bool */;
2823 int cltype16;
2824 int idtype17;
2825 const char* var_class_name18;
2826 var_old_child = p0;
2827 var_new_child = p1;
2828 var = self->attrs[COLOR_parser_nodes__AFloatExpr___n_float].val; /* _n_float on <self:AFloatExpr> */
2829 if (unlikely(var == NULL)) {
2830 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_float");
2831 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6164);
2832 show_backtrace(1);
2833 }
2834 {
2835 { /* Inline kernel#Object#== (var,var_old_child) on <var:TFloat> */
2836 var_other = var_old_child;
2837 {
2838 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TFloat> */
2839 var6 = var == var_other;
2840 var4 = var6;
2841 goto RET_LABEL5;
2842 RET_LABEL5:(void)0;
2843 }
2844 }
2845 var2 = var4;
2846 goto RET_LABEL3;
2847 RET_LABEL3:(void)0;
2848 }
2849 var1 = var2;
2850 }
2851 if (var1){
2852 /* <var_new_child:nullable ANode> isa TFloat */
2853 cltype = type_parser_nodes__TFloat.color;
2854 idtype = type_parser_nodes__TFloat.id;
2855 if(var_new_child == NULL) {
2856 var7 = 0;
2857 } else {
2858 if(cltype >= var_new_child->type->table_size) {
2859 var7 = 0;
2860 } else {
2861 var7 = var_new_child->type->type_table[cltype] == idtype;
2862 }
2863 }
2864 if (unlikely(!var7)) {
2865 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
2866 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TFloat", var_class_name);
2867 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6165);
2868 show_backtrace(1);
2869 }
2870 {
2871 parser_prod__AFloatExpr__n_float_61d(self, var_new_child); /* Direct call parser_prod#AFloatExpr#n_float= on <self:AFloatExpr>*/
2872 }
2873 goto RET_LABEL;
2874 } else {
2875 }
2876 var8 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AFloatExpr> */
2877 if (var8 == NULL) {
2878 var9 = 0; /* <var_old_child:ANode> cannot be null */
2879 } else {
2880 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:nullable AAnnotations> */
2881 var_other = var_old_child;
2882 {
2883 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:nullable AAnnotations(AAnnotations)> */
2884 var14 = var8 == var_other;
2885 var12 = var14;
2886 goto RET_LABEL13;
2887 RET_LABEL13:(void)0;
2888 }
2889 }
2890 var10 = var12;
2891 goto RET_LABEL11;
2892 RET_LABEL11:(void)0;
2893 }
2894 var9 = var10;
2895 }
2896 if (var9){
2897 /* <var_new_child:nullable ANode> isa nullable AAnnotations */
2898 cltype16 = type_nullable_parser_nodes__AAnnotations.color;
2899 idtype17 = type_nullable_parser_nodes__AAnnotations.id;
2900 if(var_new_child == NULL) {
2901 var15 = 1;
2902 } else {
2903 if(cltype16 >= var_new_child->type->table_size) {
2904 var15 = 0;
2905 } else {
2906 var15 = var_new_child->type->type_table[cltype16] == idtype17;
2907 }
2908 }
2909 if (unlikely(!var15)) {
2910 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
2911 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AAnnotations", var_class_name18);
2912 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6169);
2913 show_backtrace(1);
2914 }
2915 {
2916 parser_prod__AFloatExpr__n_annotations_61d(self, var_new_child); /* Direct call parser_prod#AFloatExpr#n_annotations= on <self:AFloatExpr>*/
2917 }
2918 goto RET_LABEL;
2919 } else {
2920 }
2921 RET_LABEL:;
2922 }
2923 /* method parser_prod#AFloatExpr#replace_child for (self: Object, ANode, nullable ANode) */
2924 void VIRTUAL_parser_prod__AFloatExpr__replace_child(val* self, val* p0, val* p1) {
2925 parser_prod__AFloatExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AFloatExpr#replace_child on <self:Object(AFloatExpr)>*/
2926 RET_LABEL:;
2927 }
2928 /* method parser_prod#AFloatExpr#n_float= for (self: AFloatExpr, TFloat) */
2929 void parser_prod__AFloatExpr__n_float_61d(val* self, val* p0) {
2930 val* var_node /* var node: TFloat */;
2931 var_node = p0;
2932 self->attrs[COLOR_parser_nodes__AFloatExpr___n_float].val = var_node; /* _n_float on <self:AFloatExpr> */
2933 {
2934 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TFloat> */
2935 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TFloat> */
2936 RET_LABEL1:(void)0;
2937 }
2938 }
2939 RET_LABEL:;
2940 }
2941 /* method parser_prod#AFloatExpr#n_float= for (self: Object, TFloat) */
2942 void VIRTUAL_parser_prod__AFloatExpr__n_float_61d(val* self, val* p0) {
2943 parser_prod__AFloatExpr__n_float_61d(self, p0); /* Direct call parser_prod#AFloatExpr#n_float= on <self:Object(AFloatExpr)>*/
2944 RET_LABEL:;
2945 }
2946 /* method parser_prod#AFloatExpr#n_annotations= for (self: AFloatExpr, nullable AAnnotations) */
2947 void parser_prod__AFloatExpr__n_annotations_61d(val* self, val* p0) {
2948 val* var_node /* var node: nullable AAnnotations */;
2949 val* var /* : null */;
2950 short int var1 /* : Bool */;
2951 short int var2 /* : Bool */;
2952 val* var_other /* var other: nullable Object */;
2953 short int var4 /* : Bool */;
2954 short int var5 /* : Bool */;
2955 short int var6 /* : Bool */;
2956 var_node = p0;
2957 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_node; /* _n_annotations on <self:AFloatExpr> */
2958 var = NULL;
2959 if (var_node == NULL) {
2960 var1 = 0; /* is null */
2961 } else {
2962 var1 = 1; /* arg is null and recv is not */
2963 }
2964 if (0) {
2965 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AAnnotations> */
2966 var_other = var;
2967 {
2968 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AAnnotations(AAnnotations)>*/;
2969 var4 = var5;
2970 }
2971 var6 = !var4;
2972 var2 = var6;
2973 goto RET_LABEL3;
2974 RET_LABEL3:(void)0;
2975 }
2976 var1 = var2;
2977 }
2978 if (var1){
2979 {
2980 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AAnnotations(AAnnotations)> */
2981 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AAnnotations(AAnnotations)> */
2982 RET_LABEL7:(void)0;
2983 }
2984 }
2985 } else {
2986 }
2987 RET_LABEL:;
2988 }
2989 /* method parser_prod#AFloatExpr#n_annotations= for (self: Object, nullable AAnnotations) */
2990 void VIRTUAL_parser_prod__AFloatExpr__n_annotations_61d(val* self, val* p0) {
2991 parser_prod__AFloatExpr__n_annotations_61d(self, p0); /* Direct call parser_prod#AFloatExpr#n_annotations= on <self:Object(AFloatExpr)>*/
2992 RET_LABEL:;
2993 }
2994 /* method parser_prod#AFloatExpr#visit_all for (self: AFloatExpr, Visitor) */
2995 void parser_prod__AFloatExpr__visit_all(val* self, val* p0) {
2996 val* var_v /* var v: Visitor */;
2997 val* var /* : TFloat */;
2998 val* var1 /* : nullable AAnnotations */;
2999 var_v = p0;
3000 var = self->attrs[COLOR_parser_nodes__AFloatExpr___n_float].val; /* _n_float on <self:AFloatExpr> */
3001 if (unlikely(var == NULL)) {
3002 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_float");
3003 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6188);
3004 show_backtrace(1);
3005 }
3006 {
3007 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3008 }
3009 var1 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AFloatExpr> */
3010 {
3011 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3012 }
3013 RET_LABEL:;
3014 }
3015 /* method parser_prod#AFloatExpr#visit_all for (self: Object, Visitor) */
3016 void VIRTUAL_parser_prod__AFloatExpr__visit_all(val* self, val* p0) {
3017 parser_prod__AFloatExpr__visit_all(self, p0); /* Direct call parser_prod#AFloatExpr#visit_all on <self:Object(AFloatExpr)>*/
3018 RET_LABEL:;
3019 }
3020 /* method parser_prod#ACharExpr#init_acharexpr for (self: ACharExpr, nullable TChar, nullable AAnnotations) */
3021 void parser_prod__ACharExpr__init_acharexpr(val* self, val* p0, val* p1) {
3022 val* var_n_char /* var n_char: nullable TChar */;
3023 val* var_n_annotations /* var n_annotations: nullable AAnnotations */;
3024 val* var /* : null */;
3025 short int var2 /* : Bool */;
3026 short int var3 /* : Bool */;
3027 val* var_other /* var other: nullable Object */;
3028 short int var5 /* : Bool */;
3029 short int var6 /* : Bool */;
3030 short int var7 /* : Bool */;
3031 var_n_char = p0;
3032 var_n_annotations = p1;
3033 if (unlikely(var_n_char == NULL)) {
3034 PRINT_ERROR("Runtime error: %s", "Cast failed");
3035 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6198);
3036 show_backtrace(1);
3037 }
3038 self->attrs[COLOR_parser_nodes__ACharExpr___n_char].val = var_n_char; /* _n_char on <self:ACharExpr> */
3039 if (var_n_char == NULL) {
3040 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3041 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6199);
3042 show_backtrace(1);
3043 } else {
3044 { /* Inline parser_nodes#ANode#parent= (var_n_char,self) on <var_n_char:nullable TChar> */
3045 if (unlikely(var_n_char == NULL)) {
3046 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3047 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
3048 show_backtrace(1);
3049 }
3050 var_n_char->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_char:nullable TChar> */
3051 RET_LABEL1:(void)0;
3052 }
3053 }
3054 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:ACharExpr> */
3055 var = NULL;
3056 if (var_n_annotations == NULL) {
3057 var2 = 0; /* is null */
3058 } else {
3059 var2 = 1; /* arg is null and recv is not */
3060 }
3061 if (0) {
3062 { /* Inline kernel#Object#!= (var_n_annotations,var) on <var_n_annotations:nullable AAnnotations> */
3063 var_other = var;
3064 {
3065 var6 = ((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)>*/;
3066 var5 = var6;
3067 }
3068 var7 = !var5;
3069 var3 = var7;
3070 goto RET_LABEL4;
3071 RET_LABEL4:(void)0;
3072 }
3073 var2 = var3;
3074 }
3075 if (var2){
3076 {
3077 { /* Inline parser_nodes#ANode#parent= (var_n_annotations,self) on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
3078 var_n_annotations->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
3079 RET_LABEL8:(void)0;
3080 }
3081 }
3082 } else {
3083 }
3084 RET_LABEL:;
3085 }
3086 /* method parser_prod#ACharExpr#init_acharexpr for (self: Object, nullable TChar, nullable AAnnotations) */
3087 void VIRTUAL_parser_prod__ACharExpr__init_acharexpr(val* self, val* p0, val* p1) {
3088 parser_prod__ACharExpr__init_acharexpr(self, p0, p1); /* Direct call parser_prod#ACharExpr#init_acharexpr on <self:Object(ACharExpr)>*/
3089 RET_LABEL:;
3090 }
3091 /* method parser_prod#ACharExpr#replace_child for (self: ACharExpr, ANode, nullable ANode) */
3092 void parser_prod__ACharExpr__replace_child(val* self, val* p0, val* p1) {
3093 val* var_old_child /* var old_child: ANode */;
3094 val* var_new_child /* var new_child: nullable ANode */;
3095 val* var /* : TChar */;
3096 short int var1 /* : Bool */;
3097 short int var2 /* : Bool */;
3098 val* var_other /* var other: nullable Object */;
3099 short int var4 /* : Bool */;
3100 short int var6 /* : Bool */;
3101 short int var7 /* : Bool */;
3102 int cltype;
3103 int idtype;
3104 const char* var_class_name;
3105 val* var8 /* : nullable AAnnotations */;
3106 short int var9 /* : Bool */;
3107 short int var10 /* : Bool */;
3108 short int var12 /* : Bool */;
3109 short int var14 /* : Bool */;
3110 short int var15 /* : Bool */;
3111 int cltype16;
3112 int idtype17;
3113 const char* var_class_name18;
3114 var_old_child = p0;
3115 var_new_child = p1;
3116 var = self->attrs[COLOR_parser_nodes__ACharExpr___n_char].val; /* _n_char on <self:ACharExpr> */
3117 if (unlikely(var == NULL)) {
3118 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_char");
3119 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6206);
3120 show_backtrace(1);
3121 }
3122 {
3123 { /* Inline kernel#Object#== (var,var_old_child) on <var:TChar> */
3124 var_other = var_old_child;
3125 {
3126 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TChar> */
3127 var6 = var == var_other;
3128 var4 = var6;
3129 goto RET_LABEL5;
3130 RET_LABEL5:(void)0;
3131 }
3132 }
3133 var2 = var4;
3134 goto RET_LABEL3;
3135 RET_LABEL3:(void)0;
3136 }
3137 var1 = var2;
3138 }
3139 if (var1){
3140 /* <var_new_child:nullable ANode> isa TChar */
3141 cltype = type_parser_nodes__TChar.color;
3142 idtype = type_parser_nodes__TChar.id;
3143 if(var_new_child == NULL) {
3144 var7 = 0;
3145 } else {
3146 if(cltype >= var_new_child->type->table_size) {
3147 var7 = 0;
3148 } else {
3149 var7 = var_new_child->type->type_table[cltype] == idtype;
3150 }
3151 }
3152 if (unlikely(!var7)) {
3153 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
3154 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TChar", var_class_name);
3155 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6207);
3156 show_backtrace(1);
3157 }
3158 {
3159 parser_prod__ACharExpr__n_char_61d(self, var_new_child); /* Direct call parser_prod#ACharExpr#n_char= on <self:ACharExpr>*/
3160 }
3161 goto RET_LABEL;
3162 } else {
3163 }
3164 var8 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:ACharExpr> */
3165 if (var8 == NULL) {
3166 var9 = 0; /* <var_old_child:ANode> cannot be null */
3167 } else {
3168 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:nullable AAnnotations> */
3169 var_other = var_old_child;
3170 {
3171 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:nullable AAnnotations(AAnnotations)> */
3172 var14 = var8 == var_other;
3173 var12 = var14;
3174 goto RET_LABEL13;
3175 RET_LABEL13:(void)0;
3176 }
3177 }
3178 var10 = var12;
3179 goto RET_LABEL11;
3180 RET_LABEL11:(void)0;
3181 }
3182 var9 = var10;
3183 }
3184 if (var9){
3185 /* <var_new_child:nullable ANode> isa nullable AAnnotations */
3186 cltype16 = type_nullable_parser_nodes__AAnnotations.color;
3187 idtype17 = type_nullable_parser_nodes__AAnnotations.id;
3188 if(var_new_child == NULL) {
3189 var15 = 1;
3190 } else {
3191 if(cltype16 >= var_new_child->type->table_size) {
3192 var15 = 0;
3193 } else {
3194 var15 = var_new_child->type->type_table[cltype16] == idtype17;
3195 }
3196 }
3197 if (unlikely(!var15)) {
3198 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
3199 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AAnnotations", var_class_name18);
3200 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6211);
3201 show_backtrace(1);
3202 }
3203 {
3204 parser_prod__ACharExpr__n_annotations_61d(self, var_new_child); /* Direct call parser_prod#ACharExpr#n_annotations= on <self:ACharExpr>*/
3205 }
3206 goto RET_LABEL;
3207 } else {
3208 }
3209 RET_LABEL:;
3210 }
3211 /* method parser_prod#ACharExpr#replace_child for (self: Object, ANode, nullable ANode) */
3212 void VIRTUAL_parser_prod__ACharExpr__replace_child(val* self, val* p0, val* p1) {
3213 parser_prod__ACharExpr__replace_child(self, p0, p1); /* Direct call parser_prod#ACharExpr#replace_child on <self:Object(ACharExpr)>*/
3214 RET_LABEL:;
3215 }
3216 /* method parser_prod#ACharExpr#n_char= for (self: ACharExpr, TChar) */
3217 void parser_prod__ACharExpr__n_char_61d(val* self, val* p0) {
3218 val* var_node /* var node: TChar */;
3219 var_node = p0;
3220 self->attrs[COLOR_parser_nodes__ACharExpr___n_char].val = var_node; /* _n_char on <self:ACharExpr> */
3221 {
3222 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TChar> */
3223 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TChar> */
3224 RET_LABEL1:(void)0;
3225 }
3226 }
3227 RET_LABEL:;
3228 }
3229 /* method parser_prod#ACharExpr#n_char= for (self: Object, TChar) */
3230 void VIRTUAL_parser_prod__ACharExpr__n_char_61d(val* self, val* p0) {
3231 parser_prod__ACharExpr__n_char_61d(self, p0); /* Direct call parser_prod#ACharExpr#n_char= on <self:Object(ACharExpr)>*/
3232 RET_LABEL:;
3233 }
3234 /* method parser_prod#ACharExpr#n_annotations= for (self: ACharExpr, nullable AAnnotations) */
3235 void parser_prod__ACharExpr__n_annotations_61d(val* self, val* p0) {
3236 val* var_node /* var node: nullable AAnnotations */;
3237 val* var /* : null */;
3238 short int var1 /* : Bool */;
3239 short int var2 /* : Bool */;
3240 val* var_other /* var other: nullable Object */;
3241 short int var4 /* : Bool */;
3242 short int var5 /* : Bool */;
3243 short int var6 /* : Bool */;
3244 var_node = p0;
3245 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_node; /* _n_annotations on <self:ACharExpr> */
3246 var = NULL;
3247 if (var_node == NULL) {
3248 var1 = 0; /* is null */
3249 } else {
3250 var1 = 1; /* arg is null and recv is not */
3251 }
3252 if (0) {
3253 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AAnnotations> */
3254 var_other = var;
3255 {
3256 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AAnnotations(AAnnotations)>*/;
3257 var4 = var5;
3258 }
3259 var6 = !var4;
3260 var2 = var6;
3261 goto RET_LABEL3;
3262 RET_LABEL3:(void)0;
3263 }
3264 var1 = var2;
3265 }
3266 if (var1){
3267 {
3268 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AAnnotations(AAnnotations)> */
3269 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AAnnotations(AAnnotations)> */
3270 RET_LABEL7:(void)0;
3271 }
3272 }
3273 } else {
3274 }
3275 RET_LABEL:;
3276 }
3277 /* method parser_prod#ACharExpr#n_annotations= for (self: Object, nullable AAnnotations) */
3278 void VIRTUAL_parser_prod__ACharExpr__n_annotations_61d(val* self, val* p0) {
3279 parser_prod__ACharExpr__n_annotations_61d(self, p0); /* Direct call parser_prod#ACharExpr#n_annotations= on <self:Object(ACharExpr)>*/
3280 RET_LABEL:;
3281 }
3282 /* method parser_prod#ACharExpr#visit_all for (self: ACharExpr, Visitor) */
3283 void parser_prod__ACharExpr__visit_all(val* self, val* p0) {
3284 val* var_v /* var v: Visitor */;
3285 val* var /* : TChar */;
3286 val* var1 /* : nullable AAnnotations */;
3287 var_v = p0;
3288 var = self->attrs[COLOR_parser_nodes__ACharExpr___n_char].val; /* _n_char on <self:ACharExpr> */
3289 if (unlikely(var == NULL)) {
3290 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_char");
3291 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6230);
3292 show_backtrace(1);
3293 }
3294 {
3295 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3296 }
3297 var1 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:ACharExpr> */
3298 {
3299 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3300 }
3301 RET_LABEL:;
3302 }
3303 /* method parser_prod#ACharExpr#visit_all for (self: Object, Visitor) */
3304 void VIRTUAL_parser_prod__ACharExpr__visit_all(val* self, val* p0) {
3305 parser_prod__ACharExpr__visit_all(self, p0); /* Direct call parser_prod#ACharExpr#visit_all on <self:Object(ACharExpr)>*/
3306 RET_LABEL:;
3307 }
3308 /* method parser_prod#AStringExpr#init_astringexpr for (self: AStringExpr, nullable TString, nullable AAnnotations) */
3309 void parser_prod__AStringExpr__init_astringexpr(val* self, val* p0, val* p1) {
3310 val* var_n_string /* var n_string: nullable TString */;
3311 val* var_n_annotations /* var n_annotations: nullable AAnnotations */;
3312 val* var /* : null */;
3313 short int var2 /* : Bool */;
3314 short int var3 /* : Bool */;
3315 val* var_other /* var other: nullable Object */;
3316 short int var5 /* : Bool */;
3317 short int var6 /* : Bool */;
3318 short int var7 /* : Bool */;
3319 var_n_string = p0;
3320 var_n_annotations = p1;
3321 if (unlikely(var_n_string == NULL)) {
3322 PRINT_ERROR("Runtime error: %s", "Cast failed");
3323 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6240);
3324 show_backtrace(1);
3325 }
3326 self->attrs[COLOR_parser_nodes__AStringFormExpr___n_string].val = var_n_string; /* _n_string on <self:AStringExpr> */
3327 if (var_n_string == NULL) {
3328 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3329 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6241);
3330 show_backtrace(1);
3331 } else {
3332 { /* Inline parser_nodes#ANode#parent= (var_n_string,self) on <var_n_string:nullable TString> */
3333 if (unlikely(var_n_string == NULL)) {
3334 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3335 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
3336 show_backtrace(1);
3337 }
3338 var_n_string->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_string:nullable TString> */
3339 RET_LABEL1:(void)0;
3340 }
3341 }
3342 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:AStringExpr> */
3343 var = NULL;
3344 if (var_n_annotations == NULL) {
3345 var2 = 0; /* is null */
3346 } else {
3347 var2 = 1; /* arg is null and recv is not */
3348 }
3349 if (0) {
3350 { /* Inline kernel#Object#!= (var_n_annotations,var) on <var_n_annotations:nullable AAnnotations> */
3351 var_other = var;
3352 {
3353 var6 = ((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)>*/;
3354 var5 = var6;
3355 }
3356 var7 = !var5;
3357 var3 = var7;
3358 goto RET_LABEL4;
3359 RET_LABEL4:(void)0;
3360 }
3361 var2 = var3;
3362 }
3363 if (var2){
3364 {
3365 { /* Inline parser_nodes#ANode#parent= (var_n_annotations,self) on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
3366 var_n_annotations->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
3367 RET_LABEL8:(void)0;
3368 }
3369 }
3370 } else {
3371 }
3372 RET_LABEL:;
3373 }
3374 /* method parser_prod#AStringExpr#init_astringexpr for (self: Object, nullable TString, nullable AAnnotations) */
3375 void VIRTUAL_parser_prod__AStringExpr__init_astringexpr(val* self, val* p0, val* p1) {
3376 parser_prod__AStringExpr__init_astringexpr(self, p0, p1); /* Direct call parser_prod#AStringExpr#init_astringexpr on <self:Object(AStringExpr)>*/
3377 RET_LABEL:;
3378 }
3379 /* method parser_prod#AStringExpr#replace_child for (self: AStringExpr, ANode, nullable ANode) */
3380 void parser_prod__AStringExpr__replace_child(val* self, val* p0, val* p1) {
3381 val* var_old_child /* var old_child: ANode */;
3382 val* var_new_child /* var new_child: nullable ANode */;
3383 val* var /* : Token */;
3384 short int var1 /* : Bool */;
3385 short int var2 /* : Bool */;
3386 val* var_other /* var other: nullable Object */;
3387 short int var4 /* : Bool */;
3388 short int var6 /* : Bool */;
3389 short int var7 /* : Bool */;
3390 int cltype;
3391 int idtype;
3392 const char* var_class_name;
3393 val* var8 /* : nullable AAnnotations */;
3394 short int var9 /* : Bool */;
3395 short int var10 /* : Bool */;
3396 short int var12 /* : Bool */;
3397 short int var14 /* : Bool */;
3398 short int var15 /* : Bool */;
3399 int cltype16;
3400 int idtype17;
3401 const char* var_class_name18;
3402 var_old_child = p0;
3403 var_new_child = p1;
3404 var = self->attrs[COLOR_parser_nodes__AStringFormExpr___n_string].val; /* _n_string on <self:AStringExpr> */
3405 if (unlikely(var == NULL)) {
3406 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_string");
3407 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6248);
3408 show_backtrace(1);
3409 }
3410 {
3411 { /* Inline kernel#Object#== (var,var_old_child) on <var:Token> */
3412 var_other = var_old_child;
3413 {
3414 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:Token> */
3415 var6 = var == var_other;
3416 var4 = var6;
3417 goto RET_LABEL5;
3418 RET_LABEL5:(void)0;
3419 }
3420 }
3421 var2 = var4;
3422 goto RET_LABEL3;
3423 RET_LABEL3:(void)0;
3424 }
3425 var1 = var2;
3426 }
3427 if (var1){
3428 /* <var_new_child:nullable ANode> isa TString */
3429 cltype = type_parser_nodes__TString.color;
3430 idtype = type_parser_nodes__TString.id;
3431 if(var_new_child == NULL) {
3432 var7 = 0;
3433 } else {
3434 if(cltype >= var_new_child->type->table_size) {
3435 var7 = 0;
3436 } else {
3437 var7 = var_new_child->type->type_table[cltype] == idtype;
3438 }
3439 }
3440 if (unlikely(!var7)) {
3441 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
3442 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TString", var_class_name);
3443 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6249);
3444 show_backtrace(1);
3445 }
3446 {
3447 parser_prod__AStringExpr__n_string_61d(self, var_new_child); /* Direct call parser_prod#AStringExpr#n_string= on <self:AStringExpr>*/
3448 }
3449 goto RET_LABEL;
3450 } else {
3451 }
3452 var8 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AStringExpr> */
3453 if (var8 == NULL) {
3454 var9 = 0; /* <var_old_child:ANode> cannot be null */
3455 } else {
3456 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:nullable AAnnotations> */
3457 var_other = var_old_child;
3458 {
3459 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:nullable AAnnotations(AAnnotations)> */
3460 var14 = var8 == var_other;
3461 var12 = var14;
3462 goto RET_LABEL13;
3463 RET_LABEL13:(void)0;
3464 }
3465 }
3466 var10 = var12;
3467 goto RET_LABEL11;
3468 RET_LABEL11:(void)0;
3469 }
3470 var9 = var10;
3471 }
3472 if (var9){
3473 /* <var_new_child:nullable ANode> isa nullable AAnnotations */
3474 cltype16 = type_nullable_parser_nodes__AAnnotations.color;
3475 idtype17 = type_nullable_parser_nodes__AAnnotations.id;
3476 if(var_new_child == NULL) {
3477 var15 = 1;
3478 } else {
3479 if(cltype16 >= var_new_child->type->table_size) {
3480 var15 = 0;
3481 } else {
3482 var15 = var_new_child->type->type_table[cltype16] == idtype17;
3483 }
3484 }
3485 if (unlikely(!var15)) {
3486 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
3487 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AAnnotations", var_class_name18);
3488 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6253);
3489 show_backtrace(1);
3490 }
3491 {
3492 parser_prod__AStringExpr__n_annotations_61d(self, var_new_child); /* Direct call parser_prod#AStringExpr#n_annotations= on <self:AStringExpr>*/
3493 }
3494 goto RET_LABEL;
3495 } else {
3496 }
3497 RET_LABEL:;
3498 }
3499 /* method parser_prod#AStringExpr#replace_child for (self: Object, ANode, nullable ANode) */
3500 void VIRTUAL_parser_prod__AStringExpr__replace_child(val* self, val* p0, val* p1) {
3501 parser_prod__AStringExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AStringExpr#replace_child on <self:Object(AStringExpr)>*/
3502 RET_LABEL:;
3503 }
3504 /* method parser_prod#AStringExpr#n_string= for (self: AStringExpr, Token) */
3505 void parser_prod__AStringExpr__n_string_61d(val* self, val* p0) {
3506 val* var_node /* var node: Token */;
3507 var_node = p0;
3508 self->attrs[COLOR_parser_nodes__AStringFormExpr___n_string].val = var_node; /* _n_string on <self:AStringExpr> */
3509 {
3510 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:Token> */
3511 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:Token> */
3512 RET_LABEL1:(void)0;
3513 }
3514 }
3515 RET_LABEL:;
3516 }
3517 /* method parser_prod#AStringExpr#n_string= for (self: Object, Token) */
3518 void VIRTUAL_parser_prod__AStringExpr__n_string_61d(val* self, val* p0) {
3519 parser_prod__AStringExpr__n_string_61d(self, p0); /* Direct call parser_prod#AStringExpr#n_string= on <self:Object(AStringExpr)>*/
3520 RET_LABEL:;
3521 }
3522 /* method parser_prod#AStringExpr#n_annotations= for (self: AStringExpr, nullable AAnnotations) */
3523 void parser_prod__AStringExpr__n_annotations_61d(val* self, val* p0) {
3524 val* var_node /* var node: nullable AAnnotations */;
3525 val* var /* : null */;
3526 short int var1 /* : Bool */;
3527 short int var2 /* : Bool */;
3528 val* var_other /* var other: nullable Object */;
3529 short int var4 /* : Bool */;
3530 short int var5 /* : Bool */;
3531 short int var6 /* : Bool */;
3532 var_node = p0;
3533 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_node; /* _n_annotations on <self:AStringExpr> */
3534 var = NULL;
3535 if (var_node == NULL) {
3536 var1 = 0; /* is null */
3537 } else {
3538 var1 = 1; /* arg is null and recv is not */
3539 }
3540 if (0) {
3541 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AAnnotations> */
3542 var_other = var;
3543 {
3544 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AAnnotations(AAnnotations)>*/;
3545 var4 = var5;
3546 }
3547 var6 = !var4;
3548 var2 = var6;
3549 goto RET_LABEL3;
3550 RET_LABEL3:(void)0;
3551 }
3552 var1 = var2;
3553 }
3554 if (var1){
3555 {
3556 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AAnnotations(AAnnotations)> */
3557 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AAnnotations(AAnnotations)> */
3558 RET_LABEL7:(void)0;
3559 }
3560 }
3561 } else {
3562 }
3563 RET_LABEL:;
3564 }
3565 /* method parser_prod#AStringExpr#n_annotations= for (self: Object, nullable AAnnotations) */
3566 void VIRTUAL_parser_prod__AStringExpr__n_annotations_61d(val* self, val* p0) {
3567 parser_prod__AStringExpr__n_annotations_61d(self, p0); /* Direct call parser_prod#AStringExpr#n_annotations= on <self:Object(AStringExpr)>*/
3568 RET_LABEL:;
3569 }
3570 /* method parser_prod#AStringExpr#visit_all for (self: AStringExpr, Visitor) */
3571 void parser_prod__AStringExpr__visit_all(val* self, val* p0) {
3572 val* var_v /* var v: Visitor */;
3573 val* var /* : Token */;
3574 val* var1 /* : nullable AAnnotations */;
3575 var_v = p0;
3576 var = self->attrs[COLOR_parser_nodes__AStringFormExpr___n_string].val; /* _n_string on <self:AStringExpr> */
3577 if (unlikely(var == NULL)) {
3578 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_string");
3579 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6272);
3580 show_backtrace(1);
3581 }
3582 {
3583 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3584 }
3585 var1 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AStringExpr> */
3586 {
3587 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3588 }
3589 RET_LABEL:;
3590 }
3591 /* method parser_prod#AStringExpr#visit_all for (self: Object, Visitor) */
3592 void VIRTUAL_parser_prod__AStringExpr__visit_all(val* self, val* p0) {
3593 parser_prod__AStringExpr__visit_all(self, p0); /* Direct call parser_prod#AStringExpr#visit_all on <self:Object(AStringExpr)>*/
3594 RET_LABEL:;
3595 }
3596 /* method parser_prod#AStartStringExpr#init_astartstringexpr for (self: AStartStringExpr, nullable TStartString) */
3597 void parser_prod__AStartStringExpr__init_astartstringexpr(val* self, val* p0) {
3598 val* var_n_string /* var n_string: nullable TStartString */;
3599 var_n_string = p0;
3600 if (unlikely(var_n_string == NULL)) {
3601 PRINT_ERROR("Runtime error: %s", "Cast failed");
3602 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6281);
3603 show_backtrace(1);
3604 }
3605 self->attrs[COLOR_parser_nodes__AStringFormExpr___n_string].val = var_n_string; /* _n_string on <self:AStartStringExpr> */
3606 if (var_n_string == NULL) {
3607 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3608 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6282);
3609 show_backtrace(1);
3610 } else {
3611 { /* Inline parser_nodes#ANode#parent= (var_n_string,self) on <var_n_string:nullable TStartString> */
3612 if (unlikely(var_n_string == NULL)) {
3613 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3614 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
3615 show_backtrace(1);
3616 }
3617 var_n_string->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_string:nullable TStartString> */
3618 RET_LABEL1:(void)0;
3619 }
3620 }
3621 RET_LABEL:;
3622 }
3623 /* method parser_prod#AStartStringExpr#init_astartstringexpr for (self: Object, nullable TStartString) */
3624 void VIRTUAL_parser_prod__AStartStringExpr__init_astartstringexpr(val* self, val* p0) {
3625 parser_prod__AStartStringExpr__init_astartstringexpr(self, p0); /* Direct call parser_prod#AStartStringExpr#init_astartstringexpr on <self:Object(AStartStringExpr)>*/
3626 RET_LABEL:;
3627 }
3628 /* method parser_prod#AStartStringExpr#replace_child for (self: AStartStringExpr, ANode, nullable ANode) */
3629 void parser_prod__AStartStringExpr__replace_child(val* self, val* p0, val* p1) {
3630 val* var_old_child /* var old_child: ANode */;
3631 val* var_new_child /* var new_child: nullable ANode */;
3632 val* var /* : Token */;
3633 short int var1 /* : Bool */;
3634 short int var2 /* : Bool */;
3635 val* var_other /* var other: nullable Object */;
3636 short int var4 /* : Bool */;
3637 short int var6 /* : Bool */;
3638 short int var7 /* : Bool */;
3639 int cltype;
3640 int idtype;
3641 const char* var_class_name;
3642 var_old_child = p0;
3643 var_new_child = p1;
3644 var = self->attrs[COLOR_parser_nodes__AStringFormExpr___n_string].val; /* _n_string on <self:AStartStringExpr> */
3645 if (unlikely(var == NULL)) {
3646 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_string");
3647 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6287);
3648 show_backtrace(1);
3649 }
3650 {
3651 { /* Inline kernel#Object#== (var,var_old_child) on <var:Token> */
3652 var_other = var_old_child;
3653 {
3654 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:Token> */
3655 var6 = var == var_other;
3656 var4 = var6;
3657 goto RET_LABEL5;
3658 RET_LABEL5:(void)0;
3659 }
3660 }
3661 var2 = var4;
3662 goto RET_LABEL3;
3663 RET_LABEL3:(void)0;
3664 }
3665 var1 = var2;
3666 }
3667 if (var1){
3668 /* <var_new_child:nullable ANode> isa TStartString */
3669 cltype = type_parser_nodes__TStartString.color;
3670 idtype = type_parser_nodes__TStartString.id;
3671 if(var_new_child == NULL) {
3672 var7 = 0;
3673 } else {
3674 if(cltype >= var_new_child->type->table_size) {
3675 var7 = 0;
3676 } else {
3677 var7 = var_new_child->type->type_table[cltype] == idtype;
3678 }
3679 }
3680 if (unlikely(!var7)) {
3681 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
3682 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TStartString", var_class_name);
3683 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6288);
3684 show_backtrace(1);
3685 }
3686 {
3687 parser_prod__AStartStringExpr__n_string_61d(self, var_new_child); /* Direct call parser_prod#AStartStringExpr#n_string= on <self:AStartStringExpr>*/
3688 }
3689 goto RET_LABEL;
3690 } else {
3691 }
3692 RET_LABEL:;
3693 }
3694 /* method parser_prod#AStartStringExpr#replace_child for (self: Object, ANode, nullable ANode) */
3695 void VIRTUAL_parser_prod__AStartStringExpr__replace_child(val* self, val* p0, val* p1) {
3696 parser_prod__AStartStringExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AStartStringExpr#replace_child on <self:Object(AStartStringExpr)>*/
3697 RET_LABEL:;
3698 }
3699 /* method parser_prod#AStartStringExpr#n_string= for (self: AStartStringExpr, Token) */
3700 void parser_prod__AStartStringExpr__n_string_61d(val* self, val* p0) {
3701 val* var_node /* var node: Token */;
3702 var_node = p0;
3703 self->attrs[COLOR_parser_nodes__AStringFormExpr___n_string].val = var_node; /* _n_string on <self:AStartStringExpr> */
3704 {
3705 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:Token> */
3706 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:Token> */
3707 RET_LABEL1:(void)0;
3708 }
3709 }
3710 RET_LABEL:;
3711 }
3712 /* method parser_prod#AStartStringExpr#n_string= for (self: Object, Token) */
3713 void VIRTUAL_parser_prod__AStartStringExpr__n_string_61d(val* self, val* p0) {
3714 parser_prod__AStartStringExpr__n_string_61d(self, p0); /* Direct call parser_prod#AStartStringExpr#n_string= on <self:Object(AStartStringExpr)>*/
3715 RET_LABEL:;
3716 }
3717 /* method parser_prod#AStartStringExpr#visit_all for (self: AStartStringExpr, Visitor) */
3718 void parser_prod__AStartStringExpr__visit_all(val* self, val* p0) {
3719 val* var_v /* var v: Visitor */;
3720 val* var /* : Token */;
3721 var_v = p0;
3722 var = self->attrs[COLOR_parser_nodes__AStringFormExpr___n_string].val; /* _n_string on <self:AStartStringExpr> */
3723 if (unlikely(var == NULL)) {
3724 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_string");
3725 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6302);
3726 show_backtrace(1);
3727 }
3728 {
3729 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3730 }
3731 RET_LABEL:;
3732 }
3733 /* method parser_prod#AStartStringExpr#visit_all for (self: Object, Visitor) */
3734 void VIRTUAL_parser_prod__AStartStringExpr__visit_all(val* self, val* p0) {
3735 parser_prod__AStartStringExpr__visit_all(self, p0); /* Direct call parser_prod#AStartStringExpr#visit_all on <self:Object(AStartStringExpr)>*/
3736 RET_LABEL:;
3737 }
3738 /* method parser_prod#AMidStringExpr#init_amidstringexpr for (self: AMidStringExpr, nullable TMidString) */
3739 void parser_prod__AMidStringExpr__init_amidstringexpr(val* self, val* p0) {
3740 val* var_n_string /* var n_string: nullable TMidString */;
3741 var_n_string = p0;
3742 if (unlikely(var_n_string == NULL)) {
3743 PRINT_ERROR("Runtime error: %s", "Cast failed");
3744 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6310);
3745 show_backtrace(1);
3746 }
3747 self->attrs[COLOR_parser_nodes__AStringFormExpr___n_string].val = var_n_string; /* _n_string on <self:AMidStringExpr> */
3748 if (var_n_string == NULL) {
3749 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3750 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6311);
3751 show_backtrace(1);
3752 } else {
3753 { /* Inline parser_nodes#ANode#parent= (var_n_string,self) on <var_n_string:nullable TMidString> */
3754 if (unlikely(var_n_string == NULL)) {
3755 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3756 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
3757 show_backtrace(1);
3758 }
3759 var_n_string->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_string:nullable TMidString> */
3760 RET_LABEL1:(void)0;
3761 }
3762 }
3763 RET_LABEL:;
3764 }
3765 /* method parser_prod#AMidStringExpr#init_amidstringexpr for (self: Object, nullable TMidString) */
3766 void VIRTUAL_parser_prod__AMidStringExpr__init_amidstringexpr(val* self, val* p0) {
3767 parser_prod__AMidStringExpr__init_amidstringexpr(self, p0); /* Direct call parser_prod#AMidStringExpr#init_amidstringexpr on <self:Object(AMidStringExpr)>*/
3768 RET_LABEL:;
3769 }
3770 /* method parser_prod#AMidStringExpr#replace_child for (self: AMidStringExpr, ANode, nullable ANode) */
3771 void parser_prod__AMidStringExpr__replace_child(val* self, val* p0, val* p1) {
3772 val* var_old_child /* var old_child: ANode */;
3773 val* var_new_child /* var new_child: nullable ANode */;
3774 val* var /* : Token */;
3775 short int var1 /* : Bool */;
3776 short int var2 /* : Bool */;
3777 val* var_other /* var other: nullable Object */;
3778 short int var4 /* : Bool */;
3779 short int var6 /* : Bool */;
3780 short int var7 /* : Bool */;
3781 int cltype;
3782 int idtype;
3783 const char* var_class_name;
3784 var_old_child = p0;
3785 var_new_child = p1;
3786 var = self->attrs[COLOR_parser_nodes__AStringFormExpr___n_string].val; /* _n_string on <self:AMidStringExpr> */
3787 if (unlikely(var == NULL)) {
3788 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_string");
3789 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6316);
3790 show_backtrace(1);
3791 }
3792 {
3793 { /* Inline kernel#Object#== (var,var_old_child) on <var:Token> */
3794 var_other = var_old_child;
3795 {
3796 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:Token> */
3797 var6 = var == var_other;
3798 var4 = var6;
3799 goto RET_LABEL5;
3800 RET_LABEL5:(void)0;
3801 }
3802 }
3803 var2 = var4;
3804 goto RET_LABEL3;
3805 RET_LABEL3:(void)0;
3806 }
3807 var1 = var2;
3808 }
3809 if (var1){
3810 /* <var_new_child:nullable ANode> isa TMidString */
3811 cltype = type_parser_nodes__TMidString.color;
3812 idtype = type_parser_nodes__TMidString.id;
3813 if(var_new_child == NULL) {
3814 var7 = 0;
3815 } else {
3816 if(cltype >= var_new_child->type->table_size) {
3817 var7 = 0;
3818 } else {
3819 var7 = var_new_child->type->type_table[cltype] == idtype;
3820 }
3821 }
3822 if (unlikely(!var7)) {
3823 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
3824 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TMidString", var_class_name);
3825 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6317);
3826 show_backtrace(1);
3827 }
3828 {
3829 parser_prod__AMidStringExpr__n_string_61d(self, var_new_child); /* Direct call parser_prod#AMidStringExpr#n_string= on <self:AMidStringExpr>*/
3830 }
3831 goto RET_LABEL;
3832 } else {
3833 }
3834 RET_LABEL:;
3835 }
3836 /* method parser_prod#AMidStringExpr#replace_child for (self: Object, ANode, nullable ANode) */
3837 void VIRTUAL_parser_prod__AMidStringExpr__replace_child(val* self, val* p0, val* p1) {
3838 parser_prod__AMidStringExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AMidStringExpr#replace_child on <self:Object(AMidStringExpr)>*/
3839 RET_LABEL:;
3840 }
3841 /* method parser_prod#AMidStringExpr#n_string= for (self: AMidStringExpr, Token) */
3842 void parser_prod__AMidStringExpr__n_string_61d(val* self, val* p0) {
3843 val* var_node /* var node: Token */;
3844 var_node = p0;
3845 self->attrs[COLOR_parser_nodes__AStringFormExpr___n_string].val = var_node; /* _n_string on <self:AMidStringExpr> */
3846 {
3847 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:Token> */
3848 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:Token> */
3849 RET_LABEL1:(void)0;
3850 }
3851 }
3852 RET_LABEL:;
3853 }
3854 /* method parser_prod#AMidStringExpr#n_string= for (self: Object, Token) */
3855 void VIRTUAL_parser_prod__AMidStringExpr__n_string_61d(val* self, val* p0) {
3856 parser_prod__AMidStringExpr__n_string_61d(self, p0); /* Direct call parser_prod#AMidStringExpr#n_string= on <self:Object(AMidStringExpr)>*/
3857 RET_LABEL:;
3858 }
3859 /* method parser_prod#AMidStringExpr#visit_all for (self: AMidStringExpr, Visitor) */
3860 void parser_prod__AMidStringExpr__visit_all(val* self, val* p0) {
3861 val* var_v /* var v: Visitor */;
3862 val* var /* : Token */;
3863 var_v = p0;
3864 var = self->attrs[COLOR_parser_nodes__AStringFormExpr___n_string].val; /* _n_string on <self:AMidStringExpr> */
3865 if (unlikely(var == NULL)) {
3866 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_string");
3867 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6331);
3868 show_backtrace(1);
3869 }
3870 {
3871 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3872 }
3873 RET_LABEL:;
3874 }
3875 /* method parser_prod#AMidStringExpr#visit_all for (self: Object, Visitor) */
3876 void VIRTUAL_parser_prod__AMidStringExpr__visit_all(val* self, val* p0) {
3877 parser_prod__AMidStringExpr__visit_all(self, p0); /* Direct call parser_prod#AMidStringExpr#visit_all on <self:Object(AMidStringExpr)>*/
3878 RET_LABEL:;
3879 }
3880 /* method parser_prod#AEndStringExpr#init_aendstringexpr for (self: AEndStringExpr, nullable TEndString) */
3881 void parser_prod__AEndStringExpr__init_aendstringexpr(val* self, val* p0) {
3882 val* var_n_string /* var n_string: nullable TEndString */;
3883 var_n_string = p0;
3884 if (unlikely(var_n_string == NULL)) {
3885 PRINT_ERROR("Runtime error: %s", "Cast failed");
3886 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6339);
3887 show_backtrace(1);
3888 }
3889 self->attrs[COLOR_parser_nodes__AStringFormExpr___n_string].val = var_n_string; /* _n_string on <self:AEndStringExpr> */
3890 if (var_n_string == NULL) {
3891 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3892 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6340);
3893 show_backtrace(1);
3894 } else {
3895 { /* Inline parser_nodes#ANode#parent= (var_n_string,self) on <var_n_string:nullable TEndString> */
3896 if (unlikely(var_n_string == NULL)) {
3897 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3898 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
3899 show_backtrace(1);
3900 }
3901 var_n_string->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_string:nullable TEndString> */
3902 RET_LABEL1:(void)0;
3903 }
3904 }
3905 RET_LABEL:;
3906 }
3907 /* method parser_prod#AEndStringExpr#init_aendstringexpr for (self: Object, nullable TEndString) */
3908 void VIRTUAL_parser_prod__AEndStringExpr__init_aendstringexpr(val* self, val* p0) {
3909 parser_prod__AEndStringExpr__init_aendstringexpr(self, p0); /* Direct call parser_prod#AEndStringExpr#init_aendstringexpr on <self:Object(AEndStringExpr)>*/
3910 RET_LABEL:;
3911 }
3912 /* method parser_prod#AEndStringExpr#replace_child for (self: AEndStringExpr, ANode, nullable ANode) */
3913 void parser_prod__AEndStringExpr__replace_child(val* self, val* p0, val* p1) {
3914 val* var_old_child /* var old_child: ANode */;
3915 val* var_new_child /* var new_child: nullable ANode */;
3916 val* var /* : Token */;
3917 short int var1 /* : Bool */;
3918 short int var2 /* : Bool */;
3919 val* var_other /* var other: nullable Object */;
3920 short int var4 /* : Bool */;
3921 short int var6 /* : Bool */;
3922 short int var7 /* : Bool */;
3923 int cltype;
3924 int idtype;
3925 const char* var_class_name;
3926 var_old_child = p0;
3927 var_new_child = p1;
3928 var = self->attrs[COLOR_parser_nodes__AStringFormExpr___n_string].val; /* _n_string on <self:AEndStringExpr> */
3929 if (unlikely(var == NULL)) {
3930 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_string");
3931 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6345);
3932 show_backtrace(1);
3933 }
3934 {
3935 { /* Inline kernel#Object#== (var,var_old_child) on <var:Token> */
3936 var_other = var_old_child;
3937 {
3938 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:Token> */
3939 var6 = var == var_other;
3940 var4 = var6;
3941 goto RET_LABEL5;
3942 RET_LABEL5:(void)0;
3943 }
3944 }
3945 var2 = var4;
3946 goto RET_LABEL3;
3947 RET_LABEL3:(void)0;
3948 }
3949 var1 = var2;
3950 }
3951 if (var1){
3952 /* <var_new_child:nullable ANode> isa TEndString */
3953 cltype = type_parser_nodes__TEndString.color;
3954 idtype = type_parser_nodes__TEndString.id;
3955 if(var_new_child == NULL) {
3956 var7 = 0;
3957 } else {
3958 if(cltype >= var_new_child->type->table_size) {
3959 var7 = 0;
3960 } else {
3961 var7 = var_new_child->type->type_table[cltype] == idtype;
3962 }
3963 }
3964 if (unlikely(!var7)) {
3965 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
3966 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TEndString", var_class_name);
3967 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6346);
3968 show_backtrace(1);
3969 }
3970 {
3971 parser_prod__AEndStringExpr__n_string_61d(self, var_new_child); /* Direct call parser_prod#AEndStringExpr#n_string= on <self:AEndStringExpr>*/
3972 }
3973 goto RET_LABEL;
3974 } else {
3975 }
3976 RET_LABEL:;
3977 }
3978 /* method parser_prod#AEndStringExpr#replace_child for (self: Object, ANode, nullable ANode) */
3979 void VIRTUAL_parser_prod__AEndStringExpr__replace_child(val* self, val* p0, val* p1) {
3980 parser_prod__AEndStringExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AEndStringExpr#replace_child on <self:Object(AEndStringExpr)>*/
3981 RET_LABEL:;
3982 }
3983 /* method parser_prod#AEndStringExpr#n_string= for (self: AEndStringExpr, Token) */
3984 void parser_prod__AEndStringExpr__n_string_61d(val* self, val* p0) {
3985 val* var_node /* var node: Token */;
3986 var_node = p0;
3987 self->attrs[COLOR_parser_nodes__AStringFormExpr___n_string].val = var_node; /* _n_string on <self:AEndStringExpr> */
3988 {
3989 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:Token> */
3990 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:Token> */
3991 RET_LABEL1:(void)0;
3992 }
3993 }
3994 RET_LABEL:;
3995 }
3996 /* method parser_prod#AEndStringExpr#n_string= for (self: Object, Token) */
3997 void VIRTUAL_parser_prod__AEndStringExpr__n_string_61d(val* self, val* p0) {
3998 parser_prod__AEndStringExpr__n_string_61d(self, p0); /* Direct call parser_prod#AEndStringExpr#n_string= on <self:Object(AEndStringExpr)>*/
3999 RET_LABEL:;
4000 }
4001 /* method parser_prod#AEndStringExpr#visit_all for (self: AEndStringExpr, Visitor) */
4002 void parser_prod__AEndStringExpr__visit_all(val* self, val* p0) {
4003 val* var_v /* var v: Visitor */;
4004 val* var /* : Token */;
4005 var_v = p0;
4006 var = self->attrs[COLOR_parser_nodes__AStringFormExpr___n_string].val; /* _n_string on <self:AEndStringExpr> */
4007 if (unlikely(var == NULL)) {
4008 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_string");
4009 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6360);
4010 show_backtrace(1);
4011 }
4012 {
4013 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4014 }
4015 RET_LABEL:;
4016 }
4017 /* method parser_prod#AEndStringExpr#visit_all for (self: Object, Visitor) */
4018 void VIRTUAL_parser_prod__AEndStringExpr__visit_all(val* self, val* p0) {
4019 parser_prod__AEndStringExpr__visit_all(self, p0); /* Direct call parser_prod#AEndStringExpr#visit_all on <self:Object(AEndStringExpr)>*/
4020 RET_LABEL:;
4021 }
4022 /* method parser_prod#ASuperstringExpr#init_asuperstringexpr for (self: ASuperstringExpr, Collection[Object], nullable AAnnotations) */
4023 void parser_prod__ASuperstringExpr__init_asuperstringexpr(val* self, val* p0, val* p1) {
4024 val* var_n_exprs /* var n_exprs: Collection[Object] */;
4025 val* var_n_annotations /* var n_annotations: nullable AAnnotations */;
4026 val* var /* : ANodes[AExpr] */;
4027 val* var2 /* : ANodes[AExpr] */;
4028 val* var3 /* : null */;
4029 short int var4 /* : Bool */;
4030 short int var5 /* : Bool */;
4031 val* var_other /* var other: nullable Object */;
4032 short int var7 /* : Bool */;
4033 short int var8 /* : Bool */;
4034 short int var9 /* : Bool */;
4035 var_n_exprs = p0;
4036 var_n_annotations = p1;
4037 {
4038 { /* Inline parser_nodes#ASuperstringExpr#n_exprs (self) on <self:ASuperstringExpr> */
4039 var2 = self->attrs[COLOR_parser_nodes__ASuperstringExpr___n_exprs].val; /* _n_exprs on <self:ASuperstringExpr> */
4040 if (unlikely(var2 == NULL)) {
4041 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
4042 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 2180);
4043 show_backtrace(1);
4044 }
4045 var = var2;
4046 RET_LABEL1:(void)0;
4047 }
4048 }
4049 {
4050 parser_nodes__ANodes__unsafe_add_all(var, var_n_exprs); /* Direct call parser_nodes#ANodes#unsafe_add_all on <var:ANodes[AExpr]>*/
4051 }
4052 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:ASuperstringExpr> */
4053 var3 = NULL;
4054 if (var_n_annotations == NULL) {
4055 var4 = 0; /* is null */
4056 } else {
4057 var4 = 1; /* arg is null and recv is not */
4058 }
4059 if (0) {
4060 { /* Inline kernel#Object#!= (var_n_annotations,var3) on <var_n_annotations:nullable AAnnotations> */
4061 var_other = var3;
4062 {
4063 var8 = ((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)>*/;
4064 var7 = var8;
4065 }
4066 var9 = !var7;
4067 var5 = var9;
4068 goto RET_LABEL6;
4069 RET_LABEL6:(void)0;
4070 }
4071 var4 = var5;
4072 }
4073 if (var4){
4074 {
4075 { /* Inline parser_nodes#ANode#parent= (var_n_annotations,self) on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
4076 var_n_annotations->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
4077 RET_LABEL10:(void)0;
4078 }
4079 }
4080 } else {
4081 }
4082 RET_LABEL:;
4083 }
4084 /* method parser_prod#ASuperstringExpr#init_asuperstringexpr for (self: Object, Collection[Object], nullable AAnnotations) */
4085 void VIRTUAL_parser_prod__ASuperstringExpr__init_asuperstringexpr(val* self, val* p0, val* p1) {
4086 parser_prod__ASuperstringExpr__init_asuperstringexpr(self, p0, p1); /* Direct call parser_prod#ASuperstringExpr#init_asuperstringexpr on <self:Object(ASuperstringExpr)>*/
4087 RET_LABEL:;
4088 }
4089 /* method parser_prod#ASuperstringExpr#replace_child for (self: ASuperstringExpr, ANode, nullable ANode) */
4090 void parser_prod__ASuperstringExpr__replace_child(val* self, val* p0, val* p1) {
4091 val* var_old_child /* var old_child: ANode */;
4092 val* var_new_child /* var new_child: nullable ANode */;
4093 val* var /* : ANodes[AExpr] */;
4094 val* var2 /* : ANodes[AExpr] */;
4095 short int var3 /* : Bool */;
4096 val* var4 /* : nullable AAnnotations */;
4097 short int var5 /* : Bool */;
4098 short int var6 /* : Bool */;
4099 val* var_other /* var other: nullable Object */;
4100 short int var8 /* : Bool */;
4101 short int var10 /* : Bool */;
4102 short int var11 /* : Bool */;
4103 int cltype;
4104 int idtype;
4105 const char* var_class_name;
4106 var_old_child = p0;
4107 var_new_child = p1;
4108 {
4109 { /* Inline parser_nodes#ASuperstringExpr#n_exprs (self) on <self:ASuperstringExpr> */
4110 var2 = self->attrs[COLOR_parser_nodes__ASuperstringExpr___n_exprs].val; /* _n_exprs on <self:ASuperstringExpr> */
4111 if (unlikely(var2 == NULL)) {
4112 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
4113 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 2180);
4114 show_backtrace(1);
4115 }
4116 var = var2;
4117 RET_LABEL1:(void)0;
4118 }
4119 }
4120 {
4121 var3 = parser_nodes__ANodes__replace_child(var, var_old_child, var_new_child);
4122 }
4123 if (var3){
4124 goto RET_LABEL;
4125 } else {
4126 }
4127 var4 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:ASuperstringExpr> */
4128 if (var4 == NULL) {
4129 var5 = 0; /* <var_old_child:ANode> cannot be null */
4130 } else {
4131 { /* Inline kernel#Object#== (var4,var_old_child) on <var4:nullable AAnnotations> */
4132 var_other = var_old_child;
4133 {
4134 { /* Inline kernel#Object#is_same_instance (var4,var_other) on <var4:nullable AAnnotations(AAnnotations)> */
4135 var10 = var4 == var_other;
4136 var8 = var10;
4137 goto RET_LABEL9;
4138 RET_LABEL9:(void)0;
4139 }
4140 }
4141 var6 = var8;
4142 goto RET_LABEL7;
4143 RET_LABEL7:(void)0;
4144 }
4145 var5 = var6;
4146 }
4147 if (var5){
4148 /* <var_new_child:nullable ANode> isa nullable AAnnotations */
4149 cltype = type_nullable_parser_nodes__AAnnotations.color;
4150 idtype = type_nullable_parser_nodes__AAnnotations.id;
4151 if(var_new_child == NULL) {
4152 var11 = 1;
4153 } else {
4154 if(cltype >= var_new_child->type->table_size) {
4155 var11 = 0;
4156 } else {
4157 var11 = var_new_child->type->type_table[cltype] == idtype;
4158 }
4159 }
4160 if (unlikely(!var11)) {
4161 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
4162 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AAnnotations", var_class_name);
4163 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6378);
4164 show_backtrace(1);
4165 }
4166 {
4167 parser_prod__ASuperstringExpr__n_annotations_61d(self, var_new_child); /* Direct call parser_prod#ASuperstringExpr#n_annotations= on <self:ASuperstringExpr>*/
4168 }
4169 goto RET_LABEL;
4170 } else {
4171 }
4172 RET_LABEL:;
4173 }
4174 /* method parser_prod#ASuperstringExpr#replace_child for (self: Object, ANode, nullable ANode) */
4175 void VIRTUAL_parser_prod__ASuperstringExpr__replace_child(val* self, val* p0, val* p1) {
4176 parser_prod__ASuperstringExpr__replace_child(self, p0, p1); /* Direct call parser_prod#ASuperstringExpr#replace_child on <self:Object(ASuperstringExpr)>*/
4177 RET_LABEL:;
4178 }
4179 /* method parser_prod#ASuperstringExpr#n_annotations= for (self: ASuperstringExpr, nullable AAnnotations) */
4180 void parser_prod__ASuperstringExpr__n_annotations_61d(val* self, val* p0) {
4181 val* var_node /* var node: nullable AAnnotations */;
4182 val* var /* : null */;
4183 short int var1 /* : Bool */;
4184 short int var2 /* : Bool */;
4185 val* var_other /* var other: nullable Object */;
4186 short int var4 /* : Bool */;
4187 short int var5 /* : Bool */;
4188 short int var6 /* : Bool */;
4189 var_node = p0;
4190 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_node; /* _n_annotations on <self:ASuperstringExpr> */
4191 var = NULL;
4192 if (var_node == NULL) {
4193 var1 = 0; /* is null */
4194 } else {
4195 var1 = 1; /* arg is null and recv is not */
4196 }
4197 if (0) {
4198 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AAnnotations> */
4199 var_other = var;
4200 {
4201 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AAnnotations(AAnnotations)>*/;
4202 var4 = var5;
4203 }
4204 var6 = !var4;
4205 var2 = var6;
4206 goto RET_LABEL3;
4207 RET_LABEL3:(void)0;
4208 }
4209 var1 = var2;
4210 }
4211 if (var1){
4212 {
4213 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AAnnotations(AAnnotations)> */
4214 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AAnnotations(AAnnotations)> */
4215 RET_LABEL7:(void)0;
4216 }
4217 }
4218 } else {
4219 }
4220 RET_LABEL:;
4221 }
4222 /* method parser_prod#ASuperstringExpr#n_annotations= for (self: Object, nullable AAnnotations) */
4223 void VIRTUAL_parser_prod__ASuperstringExpr__n_annotations_61d(val* self, val* p0) {
4224 parser_prod__ASuperstringExpr__n_annotations_61d(self, p0); /* Direct call parser_prod#ASuperstringExpr#n_annotations= on <self:Object(ASuperstringExpr)>*/
4225 RET_LABEL:;
4226 }
4227 /* method parser_prod#ASuperstringExpr#visit_all for (self: ASuperstringExpr, Visitor) */
4228 void parser_prod__ASuperstringExpr__visit_all(val* self, val* p0) {
4229 val* var_v /* var v: Visitor */;
4230 val* var /* : ANodes[AExpr] */;
4231 val* var2 /* : ANodes[AExpr] */;
4232 val* var3 /* : nullable AAnnotations */;
4233 var_v = p0;
4234 {
4235 { /* Inline parser_nodes#ASuperstringExpr#n_exprs (self) on <self:ASuperstringExpr> */
4236 var2 = self->attrs[COLOR_parser_nodes__ASuperstringExpr___n_exprs].val; /* _n_exprs on <self:ASuperstringExpr> */
4237 if (unlikely(var2 == NULL)) {
4238 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
4239 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 2180);
4240 show_backtrace(1);
4241 }
4242 var = var2;
4243 RET_LABEL1:(void)0;
4244 }
4245 }
4246 {
4247 parser_nodes__ANodes__visit_all(var, var_v); /* Direct call parser_nodes#ANodes#visit_all on <var:ANodes[AExpr]>*/
4248 }
4249 var3 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:ASuperstringExpr> */
4250 {
4251 parser_nodes__Visitor__enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4252 }
4253 RET_LABEL:;
4254 }
4255 /* method parser_prod#ASuperstringExpr#visit_all for (self: Object, Visitor) */
4256 void VIRTUAL_parser_prod__ASuperstringExpr__visit_all(val* self, val* p0) {
4257 parser_prod__ASuperstringExpr__visit_all(self, p0); /* Direct call parser_prod#ASuperstringExpr#visit_all on <self:Object(ASuperstringExpr)>*/
4258 RET_LABEL:;
4259 }
4260 /* method parser_prod#AParExpr#init_aparexpr for (self: AParExpr, nullable TOpar, nullable AExpr, nullable TCpar, nullable AAnnotations) */
4261 void parser_prod__AParExpr__init_aparexpr(val* self, val* p0, val* p1, val* p2, val* p3) {
4262 val* var_n_opar /* var n_opar: nullable TOpar */;
4263 val* var_n_expr /* var n_expr: nullable AExpr */;
4264 val* var_n_cpar /* var n_cpar: nullable TCpar */;
4265 val* var_n_annotations /* var n_annotations: nullable AAnnotations */;
4266 val* var /* : null */;
4267 short int var4 /* : Bool */;
4268 short int var5 /* : Bool */;
4269 val* var_other /* var other: nullable Object */;
4270 short int var7 /* : Bool */;
4271 short int var8 /* : Bool */;
4272 short int var9 /* : Bool */;
4273 var_n_opar = p0;
4274 var_n_expr = p1;
4275 var_n_cpar = p2;
4276 var_n_annotations = p3;
4277 if (unlikely(var_n_opar == NULL)) {
4278 PRINT_ERROR("Runtime error: %s", "Cast failed");
4279 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6404);
4280 show_backtrace(1);
4281 }
4282 self->attrs[COLOR_parser_nodes__AParExpr___n_opar].val = var_n_opar; /* _n_opar on <self:AParExpr> */
4283 if (var_n_opar == NULL) {
4284 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4285 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6405);
4286 show_backtrace(1);
4287 } else {
4288 { /* Inline parser_nodes#ANode#parent= (var_n_opar,self) on <var_n_opar:nullable TOpar> */
4289 if (unlikely(var_n_opar == NULL)) {
4290 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4291 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
4292 show_backtrace(1);
4293 }
4294 var_n_opar->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_opar:nullable TOpar> */
4295 RET_LABEL1:(void)0;
4296 }
4297 }
4298 if (unlikely(var_n_expr == NULL)) {
4299 PRINT_ERROR("Runtime error: %s", "Cast failed");
4300 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6406);
4301 show_backtrace(1);
4302 }
4303 self->attrs[COLOR_parser_nodes__AProxyExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AParExpr> */
4304 if (var_n_expr == NULL) {
4305 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4306 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6407);
4307 show_backtrace(1);
4308 } else {
4309 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
4310 if (unlikely(var_n_expr == NULL)) {
4311 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4312 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
4313 show_backtrace(1);
4314 }
4315 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
4316 RET_LABEL2:(void)0;
4317 }
4318 }
4319 if (unlikely(var_n_cpar == NULL)) {
4320 PRINT_ERROR("Runtime error: %s", "Cast failed");
4321 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6408);
4322 show_backtrace(1);
4323 }
4324 self->attrs[COLOR_parser_nodes__AParExpr___n_cpar].val = var_n_cpar; /* _n_cpar on <self:AParExpr> */
4325 if (var_n_cpar == NULL) {
4326 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4327 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6409);
4328 show_backtrace(1);
4329 } else {
4330 { /* Inline parser_nodes#ANode#parent= (var_n_cpar,self) on <var_n_cpar:nullable TCpar> */
4331 if (unlikely(var_n_cpar == NULL)) {
4332 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4333 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
4334 show_backtrace(1);
4335 }
4336 var_n_cpar->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_cpar:nullable TCpar> */
4337 RET_LABEL3:(void)0;
4338 }
4339 }
4340 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:AParExpr> */
4341 var = NULL;
4342 if (var_n_annotations == NULL) {
4343 var4 = 0; /* is null */
4344 } else {
4345 var4 = 1; /* arg is null and recv is not */
4346 }
4347 if (0) {
4348 { /* Inline kernel#Object#!= (var_n_annotations,var) on <var_n_annotations:nullable AAnnotations> */
4349 var_other = var;
4350 {
4351 var8 = ((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)>*/;
4352 var7 = var8;
4353 }
4354 var9 = !var7;
4355 var5 = var9;
4356 goto RET_LABEL6;
4357 RET_LABEL6:(void)0;
4358 }
4359 var4 = var5;
4360 }
4361 if (var4){
4362 {
4363 { /* Inline parser_nodes#ANode#parent= (var_n_annotations,self) on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
4364 var_n_annotations->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
4365 RET_LABEL10:(void)0;
4366 }
4367 }
4368 } else {
4369 }
4370 RET_LABEL:;
4371 }
4372 /* method parser_prod#AParExpr#init_aparexpr for (self: Object, nullable TOpar, nullable AExpr, nullable TCpar, nullable AAnnotations) */
4373 void VIRTUAL_parser_prod__AParExpr__init_aparexpr(val* self, val* p0, val* p1, val* p2, val* p3) {
4374 parser_prod__AParExpr__init_aparexpr(self, p0, p1, p2, p3); /* Direct call parser_prod#AParExpr#init_aparexpr on <self:Object(AParExpr)>*/
4375 RET_LABEL:;
4376 }
4377 /* method parser_prod#AParExpr#replace_child for (self: AParExpr, ANode, nullable ANode) */
4378 void parser_prod__AParExpr__replace_child(val* self, val* p0, val* p1) {
4379 val* var_old_child /* var old_child: ANode */;
4380 val* var_new_child /* var new_child: nullable ANode */;
4381 val* var /* : TOpar */;
4382 short int var1 /* : Bool */;
4383 short int var2 /* : Bool */;
4384 val* var_other /* var other: nullable Object */;
4385 short int var4 /* : Bool */;
4386 short int var6 /* : Bool */;
4387 short int var7 /* : Bool */;
4388 int cltype;
4389 int idtype;
4390 const char* var_class_name;
4391 val* var8 /* : AExpr */;
4392 short int var9 /* : Bool */;
4393 short int var10 /* : Bool */;
4394 short int var12 /* : Bool */;
4395 short int var14 /* : Bool */;
4396 short int var15 /* : Bool */;
4397 int cltype16;
4398 int idtype17;
4399 const char* var_class_name18;
4400 val* var19 /* : TCpar */;
4401 short int var20 /* : Bool */;
4402 short int var21 /* : Bool */;
4403 short int var23 /* : Bool */;
4404 short int var25 /* : Bool */;
4405 short int var26 /* : Bool */;
4406 int cltype27;
4407 int idtype28;
4408 const char* var_class_name29;
4409 val* var30 /* : nullable AAnnotations */;
4410 short int var31 /* : Bool */;
4411 short int var32 /* : Bool */;
4412 short int var34 /* : Bool */;
4413 short int var36 /* : Bool */;
4414 short int var37 /* : Bool */;
4415 int cltype38;
4416 int idtype39;
4417 const char* var_class_name40;
4418 var_old_child = p0;
4419 var_new_child = p1;
4420 var = self->attrs[COLOR_parser_nodes__AParExpr___n_opar].val; /* _n_opar on <self:AParExpr> */
4421 if (unlikely(var == NULL)) {
4422 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_opar");
4423 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6416);
4424 show_backtrace(1);
4425 }
4426 {
4427 { /* Inline kernel#Object#== (var,var_old_child) on <var:TOpar> */
4428 var_other = var_old_child;
4429 {
4430 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TOpar> */
4431 var6 = var == var_other;
4432 var4 = var6;
4433 goto RET_LABEL5;
4434 RET_LABEL5:(void)0;
4435 }
4436 }
4437 var2 = var4;
4438 goto RET_LABEL3;
4439 RET_LABEL3:(void)0;
4440 }
4441 var1 = var2;
4442 }
4443 if (var1){
4444 /* <var_new_child:nullable ANode> isa TOpar */
4445 cltype = type_parser_nodes__TOpar.color;
4446 idtype = type_parser_nodes__TOpar.id;
4447 if(var_new_child == NULL) {
4448 var7 = 0;
4449 } else {
4450 if(cltype >= var_new_child->type->table_size) {
4451 var7 = 0;
4452 } else {
4453 var7 = var_new_child->type->type_table[cltype] == idtype;
4454 }
4455 }
4456 if (unlikely(!var7)) {
4457 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
4458 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TOpar", var_class_name);
4459 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6417);
4460 show_backtrace(1);
4461 }
4462 {
4463 parser_prod__AParExpr__n_opar_61d(self, var_new_child); /* Direct call parser_prod#AParExpr#n_opar= on <self:AParExpr>*/
4464 }
4465 goto RET_LABEL;
4466 } else {
4467 }
4468 var8 = self->attrs[COLOR_parser_nodes__AProxyExpr___n_expr].val; /* _n_expr on <self:AParExpr> */
4469 if (unlikely(var8 == NULL)) {
4470 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
4471 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6420);
4472 show_backtrace(1);
4473 }
4474 {
4475 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExpr> */
4476 var_other = var_old_child;
4477 {
4478 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExpr> */
4479 var14 = var8 == var_other;
4480 var12 = var14;
4481 goto RET_LABEL13;
4482 RET_LABEL13:(void)0;
4483 }
4484 }
4485 var10 = var12;
4486 goto RET_LABEL11;
4487 RET_LABEL11:(void)0;
4488 }
4489 var9 = var10;
4490 }
4491 if (var9){
4492 /* <var_new_child:nullable ANode> isa AExpr */
4493 cltype16 = type_parser_nodes__AExpr.color;
4494 idtype17 = type_parser_nodes__AExpr.id;
4495 if(var_new_child == NULL) {
4496 var15 = 0;
4497 } else {
4498 if(cltype16 >= var_new_child->type->table_size) {
4499 var15 = 0;
4500 } else {
4501 var15 = var_new_child->type->type_table[cltype16] == idtype17;
4502 }
4503 }
4504 if (unlikely(!var15)) {
4505 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
4506 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name18);
4507 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6421);
4508 show_backtrace(1);
4509 }
4510 {
4511 parser_prod__AParExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AParExpr#n_expr= on <self:AParExpr>*/
4512 }
4513 goto RET_LABEL;
4514 } else {
4515 }
4516 var19 = self->attrs[COLOR_parser_nodes__AParExpr___n_cpar].val; /* _n_cpar on <self:AParExpr> */
4517 if (unlikely(var19 == NULL)) {
4518 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_cpar");
4519 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6424);
4520 show_backtrace(1);
4521 }
4522 {
4523 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:TCpar> */
4524 var_other = var_old_child;
4525 {
4526 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:TCpar> */
4527 var25 = var19 == var_other;
4528 var23 = var25;
4529 goto RET_LABEL24;
4530 RET_LABEL24:(void)0;
4531 }
4532 }
4533 var21 = var23;
4534 goto RET_LABEL22;
4535 RET_LABEL22:(void)0;
4536 }
4537 var20 = var21;
4538 }
4539 if (var20){
4540 /* <var_new_child:nullable ANode> isa TCpar */
4541 cltype27 = type_parser_nodes__TCpar.color;
4542 idtype28 = type_parser_nodes__TCpar.id;
4543 if(var_new_child == NULL) {
4544 var26 = 0;
4545 } else {
4546 if(cltype27 >= var_new_child->type->table_size) {
4547 var26 = 0;
4548 } else {
4549 var26 = var_new_child->type->type_table[cltype27] == idtype28;
4550 }
4551 }
4552 if (unlikely(!var26)) {
4553 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
4554 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TCpar", var_class_name29);
4555 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6425);
4556 show_backtrace(1);
4557 }
4558 {
4559 parser_prod__AParExpr__n_cpar_61d(self, var_new_child); /* Direct call parser_prod#AParExpr#n_cpar= on <self:AParExpr>*/
4560 }
4561 goto RET_LABEL;
4562 } else {
4563 }
4564 var30 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AParExpr> */
4565 if (var30 == NULL) {
4566 var31 = 0; /* <var_old_child:ANode> cannot be null */
4567 } else {
4568 { /* Inline kernel#Object#== (var30,var_old_child) on <var30:nullable AAnnotations> */
4569 var_other = var_old_child;
4570 {
4571 { /* Inline kernel#Object#is_same_instance (var30,var_other) on <var30:nullable AAnnotations(AAnnotations)> */
4572 var36 = var30 == var_other;
4573 var34 = var36;
4574 goto RET_LABEL35;
4575 RET_LABEL35:(void)0;
4576 }
4577 }
4578 var32 = var34;
4579 goto RET_LABEL33;
4580 RET_LABEL33:(void)0;
4581 }
4582 var31 = var32;
4583 }
4584 if (var31){
4585 /* <var_new_child:nullable ANode> isa nullable AAnnotations */
4586 cltype38 = type_nullable_parser_nodes__AAnnotations.color;
4587 idtype39 = type_nullable_parser_nodes__AAnnotations.id;
4588 if(var_new_child == NULL) {
4589 var37 = 1;
4590 } else {
4591 if(cltype38 >= var_new_child->type->table_size) {
4592 var37 = 0;
4593 } else {
4594 var37 = var_new_child->type->type_table[cltype38] == idtype39;
4595 }
4596 }
4597 if (unlikely(!var37)) {
4598 var_class_name40 = var_new_child == NULL ? "null" : var_new_child->type->name;
4599 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AAnnotations", var_class_name40);
4600 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6429);
4601 show_backtrace(1);
4602 }
4603 {
4604 parser_prod__AParExpr__n_annotations_61d(self, var_new_child); /* Direct call parser_prod#AParExpr#n_annotations= on <self:AParExpr>*/
4605 }
4606 goto RET_LABEL;
4607 } else {
4608 }
4609 RET_LABEL:;
4610 }
4611 /* method parser_prod#AParExpr#replace_child for (self: Object, ANode, nullable ANode) */
4612 void VIRTUAL_parser_prod__AParExpr__replace_child(val* self, val* p0, val* p1) {
4613 parser_prod__AParExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AParExpr#replace_child on <self:Object(AParExpr)>*/
4614 RET_LABEL:;
4615 }
4616 /* method parser_prod#AParExpr#n_opar= for (self: AParExpr, TOpar) */
4617 void parser_prod__AParExpr__n_opar_61d(val* self, val* p0) {
4618 val* var_node /* var node: TOpar */;
4619 var_node = p0;
4620 self->attrs[COLOR_parser_nodes__AParExpr___n_opar].val = var_node; /* _n_opar on <self:AParExpr> */
4621 {
4622 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TOpar> */
4623 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TOpar> */
4624 RET_LABEL1:(void)0;
4625 }
4626 }
4627 RET_LABEL:;
4628 }
4629 /* method parser_prod#AParExpr#n_opar= for (self: Object, TOpar) */
4630 void VIRTUAL_parser_prod__AParExpr__n_opar_61d(val* self, val* p0) {
4631 parser_prod__AParExpr__n_opar_61d(self, p0); /* Direct call parser_prod#AParExpr#n_opar= on <self:Object(AParExpr)>*/
4632 RET_LABEL:;
4633 }
4634 /* method parser_prod#AParExpr#n_expr= for (self: AParExpr, AExpr) */
4635 void parser_prod__AParExpr__n_expr_61d(val* self, val* p0) {
4636 val* var_node /* var node: AExpr */;
4637 var_node = p0;
4638 self->attrs[COLOR_parser_nodes__AProxyExpr___n_expr].val = var_node; /* _n_expr on <self:AParExpr> */
4639 {
4640 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
4641 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
4642 RET_LABEL1:(void)0;
4643 }
4644 }
4645 RET_LABEL:;
4646 }
4647 /* method parser_prod#AParExpr#n_expr= for (self: Object, AExpr) */
4648 void VIRTUAL_parser_prod__AParExpr__n_expr_61d(val* self, val* p0) {
4649 parser_prod__AParExpr__n_expr_61d(self, p0); /* Direct call parser_prod#AParExpr#n_expr= on <self:Object(AParExpr)>*/
4650 RET_LABEL:;
4651 }
4652 /* method parser_prod#AParExpr#n_cpar= for (self: AParExpr, TCpar) */
4653 void parser_prod__AParExpr__n_cpar_61d(val* self, val* p0) {
4654 val* var_node /* var node: TCpar */;
4655 var_node = p0;
4656 self->attrs[COLOR_parser_nodes__AParExpr___n_cpar].val = var_node; /* _n_cpar on <self:AParExpr> */
4657 {
4658 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TCpar> */
4659 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TCpar> */
4660 RET_LABEL1:(void)0;
4661 }
4662 }
4663 RET_LABEL:;
4664 }
4665 /* method parser_prod#AParExpr#n_cpar= for (self: Object, TCpar) */
4666 void VIRTUAL_parser_prod__AParExpr__n_cpar_61d(val* self, val* p0) {
4667 parser_prod__AParExpr__n_cpar_61d(self, p0); /* Direct call parser_prod#AParExpr#n_cpar= on <self:Object(AParExpr)>*/
4668 RET_LABEL:;
4669 }
4670 /* method parser_prod#AParExpr#n_annotations= for (self: AParExpr, nullable AAnnotations) */
4671 void parser_prod__AParExpr__n_annotations_61d(val* self, val* p0) {
4672 val* var_node /* var node: nullable AAnnotations */;
4673 val* var /* : null */;
4674 short int var1 /* : Bool */;
4675 short int var2 /* : Bool */;
4676 val* var_other /* var other: nullable Object */;
4677 short int var4 /* : Bool */;
4678 short int var5 /* : Bool */;
4679 short int var6 /* : Bool */;
4680 var_node = p0;
4681 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_node; /* _n_annotations on <self:AParExpr> */
4682 var = NULL;
4683 if (var_node == NULL) {
4684 var1 = 0; /* is null */
4685 } else {
4686 var1 = 1; /* arg is null and recv is not */
4687 }
4688 if (0) {
4689 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AAnnotations> */
4690 var_other = var;
4691 {
4692 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AAnnotations(AAnnotations)>*/;
4693 var4 = var5;
4694 }
4695 var6 = !var4;
4696 var2 = var6;
4697 goto RET_LABEL3;
4698 RET_LABEL3:(void)0;
4699 }
4700 var1 = var2;
4701 }
4702 if (var1){
4703 {
4704 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AAnnotations(AAnnotations)> */
4705 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AAnnotations(AAnnotations)> */
4706 RET_LABEL7:(void)0;
4707 }
4708 }
4709 } else {
4710 }
4711 RET_LABEL:;
4712 }
4713 /* method parser_prod#AParExpr#n_annotations= for (self: Object, nullable AAnnotations) */
4714 void VIRTUAL_parser_prod__AParExpr__n_annotations_61d(val* self, val* p0) {
4715 parser_prod__AParExpr__n_annotations_61d(self, p0); /* Direct call parser_prod#AParExpr#n_annotations= on <self:Object(AParExpr)>*/
4716 RET_LABEL:;
4717 }
4718 /* method parser_prod#AParExpr#visit_all for (self: AParExpr, Visitor) */
4719 void parser_prod__AParExpr__visit_all(val* self, val* p0) {
4720 val* var_v /* var v: Visitor */;
4721 val* var /* : TOpar */;
4722 val* var1 /* : AExpr */;
4723 val* var2 /* : TCpar */;
4724 val* var3 /* : nullable AAnnotations */;
4725 var_v = p0;
4726 var = self->attrs[COLOR_parser_nodes__AParExpr___n_opar].val; /* _n_opar on <self:AParExpr> */
4727 if (unlikely(var == NULL)) {
4728 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_opar");
4729 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6458);
4730 show_backtrace(1);
4731 }
4732 {
4733 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4734 }
4735 var1 = self->attrs[COLOR_parser_nodes__AProxyExpr___n_expr].val; /* _n_expr on <self:AParExpr> */
4736 if (unlikely(var1 == NULL)) {
4737 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
4738 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6459);
4739 show_backtrace(1);
4740 }
4741 {
4742 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4743 }
4744 var2 = self->attrs[COLOR_parser_nodes__AParExpr___n_cpar].val; /* _n_cpar on <self:AParExpr> */
4745 if (unlikely(var2 == NULL)) {
4746 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_cpar");
4747 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6460);
4748 show_backtrace(1);
4749 }
4750 {
4751 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4752 }
4753 var3 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AParExpr> */
4754 {
4755 parser_nodes__Visitor__enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4756 }
4757 RET_LABEL:;
4758 }
4759 /* method parser_prod#AParExpr#visit_all for (self: Object, Visitor) */
4760 void VIRTUAL_parser_prod__AParExpr__visit_all(val* self, val* p0) {
4761 parser_prod__AParExpr__visit_all(self, p0); /* Direct call parser_prod#AParExpr#visit_all on <self:Object(AParExpr)>*/
4762 RET_LABEL:;
4763 }
4764 /* method parser_prod#AAsCastExpr#init_aascastexpr for (self: AAsCastExpr, nullable AExpr, nullable TKwas, nullable TOpar, nullable AType, nullable TCpar) */
4765 void parser_prod__AAsCastExpr__init_aascastexpr(val* self, val* p0, val* p1, val* p2, val* p3, val* p4) {
4766 val* var_n_expr /* var n_expr: nullable AExpr */;
4767 val* var_n_kwas /* var n_kwas: nullable TKwas */;
4768 val* var_n_opar /* var n_opar: nullable TOpar */;
4769 val* var_n_type /* var n_type: nullable AType */;
4770 val* var_n_cpar /* var n_cpar: nullable TCpar */;
4771 val* var /* : null */;
4772 short int var3 /* : Bool */;
4773 short int var4 /* : Bool */;
4774 val* var_other /* var other: nullable Object */;
4775 short int var6 /* : Bool */;
4776 short int var7 /* : Bool */;
4777 short int var8 /* : Bool */;
4778 val* var11 /* : null */;
4779 short int var12 /* : Bool */;
4780 short int var13 /* : Bool */;
4781 short int var15 /* : Bool */;
4782 short int var16 /* : Bool */;
4783 short int var17 /* : Bool */;
4784 var_n_expr = p0;
4785 var_n_kwas = p1;
4786 var_n_opar = p2;
4787 var_n_type = p3;
4788 var_n_cpar = p4;
4789 if (unlikely(var_n_expr == NULL)) {
4790 PRINT_ERROR("Runtime error: %s", "Cast failed");
4791 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6473);
4792 show_backtrace(1);
4793 }
4794 self->attrs[COLOR_parser_nodes__AAsCastExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AAsCastExpr> */
4795 if (var_n_expr == NULL) {
4796 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4797 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6474);
4798 show_backtrace(1);
4799 } else {
4800 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
4801 if (unlikely(var_n_expr == NULL)) {
4802 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4803 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
4804 show_backtrace(1);
4805 }
4806 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
4807 RET_LABEL1:(void)0;
4808 }
4809 }
4810 if (unlikely(var_n_kwas == NULL)) {
4811 PRINT_ERROR("Runtime error: %s", "Cast failed");
4812 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6475);
4813 show_backtrace(1);
4814 }
4815 self->attrs[COLOR_parser_nodes__AAsCastExpr___n_kwas].val = var_n_kwas; /* _n_kwas on <self:AAsCastExpr> */
4816 if (var_n_kwas == NULL) {
4817 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4818 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6476);
4819 show_backtrace(1);
4820 } else {
4821 { /* Inline parser_nodes#ANode#parent= (var_n_kwas,self) on <var_n_kwas:nullable TKwas> */
4822 if (unlikely(var_n_kwas == NULL)) {
4823 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4824 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
4825 show_backtrace(1);
4826 }
4827 var_n_kwas->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwas:nullable TKwas> */
4828 RET_LABEL2:(void)0;
4829 }
4830 }
4831 self->attrs[COLOR_parser_nodes__AAsCastExpr___n_opar].val = var_n_opar; /* _n_opar on <self:AAsCastExpr> */
4832 var = NULL;
4833 if (var_n_opar == NULL) {
4834 var3 = 0; /* is null */
4835 } else {
4836 var3 = 1; /* arg is null and recv is not */
4837 }
4838 if (0) {
4839 { /* Inline kernel#Object#!= (var_n_opar,var) on <var_n_opar:nullable TOpar> */
4840 var_other = var;
4841 {
4842 var7 = ((short int (*)(val*, val*))(var_n_opar->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_opar, var_other) /* == on <var_n_opar:nullable TOpar(TOpar)>*/;
4843 var6 = var7;
4844 }
4845 var8 = !var6;
4846 var4 = var8;
4847 goto RET_LABEL5;
4848 RET_LABEL5:(void)0;
4849 }
4850 var3 = var4;
4851 }
4852 if (var3){
4853 {
4854 { /* Inline parser_nodes#ANode#parent= (var_n_opar,self) on <var_n_opar:nullable TOpar(TOpar)> */
4855 var_n_opar->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_opar:nullable TOpar(TOpar)> */
4856 RET_LABEL9:(void)0;
4857 }
4858 }
4859 } else {
4860 }
4861 if (unlikely(var_n_type == NULL)) {
4862 PRINT_ERROR("Runtime error: %s", "Cast failed");
4863 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6479);
4864 show_backtrace(1);
4865 }
4866 self->attrs[COLOR_parser_nodes__AAsCastExpr___n_type].val = var_n_type; /* _n_type on <self:AAsCastExpr> */
4867 if (var_n_type == NULL) {
4868 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4869 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6480);
4870 show_backtrace(1);
4871 } else {
4872 { /* Inline parser_nodes#ANode#parent= (var_n_type,self) on <var_n_type:nullable AType> */
4873 if (unlikely(var_n_type == NULL)) {
4874 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4875 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
4876 show_backtrace(1);
4877 }
4878 var_n_type->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_type:nullable AType> */
4879 RET_LABEL10:(void)0;
4880 }
4881 }
4882 self->attrs[COLOR_parser_nodes__AAsCastExpr___n_cpar].val = var_n_cpar; /* _n_cpar on <self:AAsCastExpr> */
4883 var11 = NULL;
4884 if (var_n_cpar == NULL) {
4885 var12 = 0; /* is null */
4886 } else {
4887 var12 = 1; /* arg is null and recv is not */
4888 }
4889 if (0) {
4890 { /* Inline kernel#Object#!= (var_n_cpar,var11) on <var_n_cpar:nullable TCpar> */
4891 var_other = var11;
4892 {
4893 var16 = ((short int (*)(val*, val*))(var_n_cpar->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_cpar, var_other) /* == on <var_n_cpar:nullable TCpar(TCpar)>*/;
4894 var15 = var16;
4895 }
4896 var17 = !var15;
4897 var13 = var17;
4898 goto RET_LABEL14;
4899 RET_LABEL14:(void)0;
4900 }
4901 var12 = var13;
4902 }
4903 if (var12){
4904 {
4905 { /* Inline parser_nodes#ANode#parent= (var_n_cpar,self) on <var_n_cpar:nullable TCpar(TCpar)> */
4906 var_n_cpar->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_cpar:nullable TCpar(TCpar)> */
4907 RET_LABEL18:(void)0;
4908 }
4909 }
4910 } else {
4911 }
4912 RET_LABEL:;
4913 }
4914 /* method parser_prod#AAsCastExpr#init_aascastexpr for (self: Object, nullable AExpr, nullable TKwas, nullable TOpar, nullable AType, nullable TCpar) */
4915 void VIRTUAL_parser_prod__AAsCastExpr__init_aascastexpr(val* self, val* p0, val* p1, val* p2, val* p3, val* p4) {
4916 parser_prod__AAsCastExpr__init_aascastexpr(self, p0, p1, p2, p3, p4); /* Direct call parser_prod#AAsCastExpr#init_aascastexpr on <self:Object(AAsCastExpr)>*/
4917 RET_LABEL:;
4918 }
4919 /* method parser_prod#AAsCastExpr#replace_child for (self: AAsCastExpr, ANode, nullable ANode) */
4920 void parser_prod__AAsCastExpr__replace_child(val* self, val* p0, val* p1) {
4921 val* var_old_child /* var old_child: ANode */;
4922 val* var_new_child /* var new_child: nullable ANode */;
4923 val* var /* : AExpr */;
4924 short int var1 /* : Bool */;
4925 short int var2 /* : Bool */;
4926 val* var_other /* var other: nullable Object */;
4927 short int var4 /* : Bool */;
4928 short int var6 /* : Bool */;
4929 short int var7 /* : Bool */;
4930 int cltype;
4931 int idtype;
4932 const char* var_class_name;
4933 val* var8 /* : TKwas */;
4934 short int var9 /* : Bool */;
4935 short int var10 /* : Bool */;
4936 short int var12 /* : Bool */;
4937 short int var14 /* : Bool */;
4938 short int var15 /* : Bool */;
4939 int cltype16;
4940 int idtype17;
4941 const char* var_class_name18;
4942 val* var19 /* : nullable TOpar */;
4943 short int var20 /* : Bool */;
4944 short int var21 /* : Bool */;
4945 short int var23 /* : Bool */;
4946 short int var25 /* : Bool */;
4947 short int var26 /* : Bool */;
4948 int cltype27;
4949 int idtype28;
4950 const char* var_class_name29;
4951 val* var30 /* : AType */;
4952 short int var31 /* : Bool */;
4953 short int var32 /* : Bool */;
4954 short int var34 /* : Bool */;
4955 short int var36 /* : Bool */;
4956 short int var37 /* : Bool */;
4957 int cltype38;
4958 int idtype39;
4959 const char* var_class_name40;
4960 val* var41 /* : nullable TCpar */;
4961 short int var42 /* : Bool */;
4962 short int var43 /* : Bool */;
4963 short int var45 /* : Bool */;
4964 short int var47 /* : Bool */;
4965 short int var48 /* : Bool */;
4966 int cltype49;
4967 int idtype50;
4968 const char* var_class_name51;
4969 var_old_child = p0;
4970 var_new_child = p1;
4971 var = self->attrs[COLOR_parser_nodes__AAsCastExpr___n_expr].val; /* _n_expr on <self:AAsCastExpr> */
4972 if (unlikely(var == NULL)) {
4973 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
4974 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6487);
4975 show_backtrace(1);
4976 }
4977 {
4978 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
4979 var_other = var_old_child;
4980 {
4981 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
4982 var6 = var == var_other;
4983 var4 = var6;
4984 goto RET_LABEL5;
4985 RET_LABEL5:(void)0;
4986 }
4987 }
4988 var2 = var4;
4989 goto RET_LABEL3;
4990 RET_LABEL3:(void)0;
4991 }
4992 var1 = var2;
4993 }
4994 if (var1){
4995 /* <var_new_child:nullable ANode> isa AExpr */
4996 cltype = type_parser_nodes__AExpr.color;
4997 idtype = type_parser_nodes__AExpr.id;
4998 if(var_new_child == NULL) {
4999 var7 = 0;
5000 } else {
5001 if(cltype >= var_new_child->type->table_size) {
5002 var7 = 0;
5003 } else {
5004 var7 = var_new_child->type->type_table[cltype] == idtype;
5005 }
5006 }
5007 if (unlikely(!var7)) {
5008 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
5009 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
5010 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6488);
5011 show_backtrace(1);
5012 }
5013 {
5014 parser_prod__AAsCastExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AAsCastExpr#n_expr= on <self:AAsCastExpr>*/
5015 }
5016 goto RET_LABEL;
5017 } else {
5018 }
5019 var8 = self->attrs[COLOR_parser_nodes__AAsCastExpr___n_kwas].val; /* _n_kwas on <self:AAsCastExpr> */
5020 if (unlikely(var8 == NULL)) {
5021 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwas");
5022 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6491);
5023 show_backtrace(1);
5024 }
5025 {
5026 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:TKwas> */
5027 var_other = var_old_child;
5028 {
5029 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:TKwas> */
5030 var14 = var8 == var_other;
5031 var12 = var14;
5032 goto RET_LABEL13;
5033 RET_LABEL13:(void)0;
5034 }
5035 }
5036 var10 = var12;
5037 goto RET_LABEL11;
5038 RET_LABEL11:(void)0;
5039 }
5040 var9 = var10;
5041 }
5042 if (var9){
5043 /* <var_new_child:nullable ANode> isa TKwas */
5044 cltype16 = type_parser_nodes__TKwas.color;
5045 idtype17 = type_parser_nodes__TKwas.id;
5046 if(var_new_child == NULL) {
5047 var15 = 0;
5048 } else {
5049 if(cltype16 >= var_new_child->type->table_size) {
5050 var15 = 0;
5051 } else {
5052 var15 = var_new_child->type->type_table[cltype16] == idtype17;
5053 }
5054 }
5055 if (unlikely(!var15)) {
5056 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
5057 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwas", var_class_name18);
5058 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6492);
5059 show_backtrace(1);
5060 }
5061 {
5062 parser_prod__AAsCastExpr__n_kwas_61d(self, var_new_child); /* Direct call parser_prod#AAsCastExpr#n_kwas= on <self:AAsCastExpr>*/
5063 }
5064 goto RET_LABEL;
5065 } else {
5066 }
5067 var19 = self->attrs[COLOR_parser_nodes__AAsCastExpr___n_opar].val; /* _n_opar on <self:AAsCastExpr> */
5068 if (var19 == NULL) {
5069 var20 = 0; /* <var_old_child:ANode> cannot be null */
5070 } else {
5071 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:nullable TOpar> */
5072 var_other = var_old_child;
5073 {
5074 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:nullable TOpar(TOpar)> */
5075 var25 = var19 == var_other;
5076 var23 = var25;
5077 goto RET_LABEL24;
5078 RET_LABEL24:(void)0;
5079 }
5080 }
5081 var21 = var23;
5082 goto RET_LABEL22;
5083 RET_LABEL22:(void)0;
5084 }
5085 var20 = var21;
5086 }
5087 if (var20){
5088 /* <var_new_child:nullable ANode> isa nullable TOpar */
5089 cltype27 = type_nullable_parser_nodes__TOpar.color;
5090 idtype28 = type_nullable_parser_nodes__TOpar.id;
5091 if(var_new_child == NULL) {
5092 var26 = 1;
5093 } else {
5094 if(cltype27 >= var_new_child->type->table_size) {
5095 var26 = 0;
5096 } else {
5097 var26 = var_new_child->type->type_table[cltype27] == idtype28;
5098 }
5099 }
5100 if (unlikely(!var26)) {
5101 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
5102 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TOpar", var_class_name29);
5103 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6496);
5104 show_backtrace(1);
5105 }
5106 {
5107 parser_prod__AAsCastExpr__n_opar_61d(self, var_new_child); /* Direct call parser_prod#AAsCastExpr#n_opar= on <self:AAsCastExpr>*/
5108 }
5109 goto RET_LABEL;
5110 } else {
5111 }
5112 var30 = self->attrs[COLOR_parser_nodes__AAsCastExpr___n_type].val; /* _n_type on <self:AAsCastExpr> */
5113 if (unlikely(var30 == NULL)) {
5114 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
5115 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6499);
5116 show_backtrace(1);
5117 }
5118 {
5119 { /* Inline kernel#Object#== (var30,var_old_child) on <var30:AType> */
5120 var_other = var_old_child;
5121 {
5122 { /* Inline kernel#Object#is_same_instance (var30,var_other) on <var30:AType> */
5123 var36 = var30 == var_other;
5124 var34 = var36;
5125 goto RET_LABEL35;
5126 RET_LABEL35:(void)0;
5127 }
5128 }
5129 var32 = var34;
5130 goto RET_LABEL33;
5131 RET_LABEL33:(void)0;
5132 }
5133 var31 = var32;
5134 }
5135 if (var31){
5136 /* <var_new_child:nullable ANode> isa AType */
5137 cltype38 = type_parser_nodes__AType.color;
5138 idtype39 = type_parser_nodes__AType.id;
5139 if(var_new_child == NULL) {
5140 var37 = 0;
5141 } else {
5142 if(cltype38 >= var_new_child->type->table_size) {
5143 var37 = 0;
5144 } else {
5145 var37 = var_new_child->type->type_table[cltype38] == idtype39;
5146 }
5147 }
5148 if (unlikely(!var37)) {
5149 var_class_name40 = var_new_child == NULL ? "null" : var_new_child->type->name;
5150 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AType", var_class_name40);
5151 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6500);
5152 show_backtrace(1);
5153 }
5154 {
5155 parser_prod__AAsCastExpr__n_type_61d(self, var_new_child); /* Direct call parser_prod#AAsCastExpr#n_type= on <self:AAsCastExpr>*/
5156 }
5157 goto RET_LABEL;
5158 } else {
5159 }
5160 var41 = self->attrs[COLOR_parser_nodes__AAsCastExpr___n_cpar].val; /* _n_cpar on <self:AAsCastExpr> */
5161 if (var41 == NULL) {
5162 var42 = 0; /* <var_old_child:ANode> cannot be null */
5163 } else {
5164 { /* Inline kernel#Object#== (var41,var_old_child) on <var41:nullable TCpar> */
5165 var_other = var_old_child;
5166 {
5167 { /* Inline kernel#Object#is_same_instance (var41,var_other) on <var41:nullable TCpar(TCpar)> */
5168 var47 = var41 == var_other;
5169 var45 = var47;
5170 goto RET_LABEL46;
5171 RET_LABEL46:(void)0;
5172 }
5173 }
5174 var43 = var45;
5175 goto RET_LABEL44;
5176 RET_LABEL44:(void)0;
5177 }
5178 var42 = var43;
5179 }
5180 if (var42){
5181 /* <var_new_child:nullable ANode> isa nullable TCpar */
5182 cltype49 = type_nullable_parser_nodes__TCpar.color;
5183 idtype50 = type_nullable_parser_nodes__TCpar.id;
5184 if(var_new_child == NULL) {
5185 var48 = 1;
5186 } else {
5187 if(cltype49 >= var_new_child->type->table_size) {
5188 var48 = 0;
5189 } else {
5190 var48 = var_new_child->type->type_table[cltype49] == idtype50;
5191 }
5192 }
5193 if (unlikely(!var48)) {
5194 var_class_name51 = var_new_child == NULL ? "null" : var_new_child->type->name;
5195 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TCpar", var_class_name51);
5196 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6504);
5197 show_backtrace(1);
5198 }
5199 {
5200 parser_prod__AAsCastExpr__n_cpar_61d(self, var_new_child); /* Direct call parser_prod#AAsCastExpr#n_cpar= on <self:AAsCastExpr>*/
5201 }
5202 goto RET_LABEL;
5203 } else {
5204 }
5205 RET_LABEL:;
5206 }
5207 /* method parser_prod#AAsCastExpr#replace_child for (self: Object, ANode, nullable ANode) */
5208 void VIRTUAL_parser_prod__AAsCastExpr__replace_child(val* self, val* p0, val* p1) {
5209 parser_prod__AAsCastExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AAsCastExpr#replace_child on <self:Object(AAsCastExpr)>*/
5210 RET_LABEL:;
5211 }
5212 /* method parser_prod#AAsCastExpr#n_expr= for (self: AAsCastExpr, AExpr) */
5213 void parser_prod__AAsCastExpr__n_expr_61d(val* self, val* p0) {
5214 val* var_node /* var node: AExpr */;
5215 var_node = p0;
5216 self->attrs[COLOR_parser_nodes__AAsCastExpr___n_expr].val = var_node; /* _n_expr on <self:AAsCastExpr> */
5217 {
5218 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
5219 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
5220 RET_LABEL1:(void)0;
5221 }
5222 }
5223 RET_LABEL:;
5224 }
5225 /* method parser_prod#AAsCastExpr#n_expr= for (self: Object, AExpr) */
5226 void VIRTUAL_parser_prod__AAsCastExpr__n_expr_61d(val* self, val* p0) {
5227 parser_prod__AAsCastExpr__n_expr_61d(self, p0); /* Direct call parser_prod#AAsCastExpr#n_expr= on <self:Object(AAsCastExpr)>*/
5228 RET_LABEL:;
5229 }
5230 /* method parser_prod#AAsCastExpr#n_kwas= for (self: AAsCastExpr, TKwas) */
5231 void parser_prod__AAsCastExpr__n_kwas_61d(val* self, val* p0) {
5232 val* var_node /* var node: TKwas */;
5233 var_node = p0;
5234 self->attrs[COLOR_parser_nodes__AAsCastExpr___n_kwas].val = var_node; /* _n_kwas on <self:AAsCastExpr> */
5235 {
5236 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwas> */
5237 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwas> */
5238 RET_LABEL1:(void)0;
5239 }
5240 }
5241 RET_LABEL:;
5242 }
5243 /* method parser_prod#AAsCastExpr#n_kwas= for (self: Object, TKwas) */
5244 void VIRTUAL_parser_prod__AAsCastExpr__n_kwas_61d(val* self, val* p0) {
5245 parser_prod__AAsCastExpr__n_kwas_61d(self, p0); /* Direct call parser_prod#AAsCastExpr#n_kwas= on <self:Object(AAsCastExpr)>*/
5246 RET_LABEL:;
5247 }
5248 /* method parser_prod#AAsCastExpr#n_opar= for (self: AAsCastExpr, nullable TOpar) */
5249 void parser_prod__AAsCastExpr__n_opar_61d(val* self, val* p0) {
5250 val* var_node /* var node: nullable TOpar */;
5251 val* var /* : null */;
5252 short int var1 /* : Bool */;
5253 short int var2 /* : Bool */;
5254 val* var_other /* var other: nullable Object */;
5255 short int var4 /* : Bool */;
5256 short int var5 /* : Bool */;
5257 short int var6 /* : Bool */;
5258 var_node = p0;
5259 self->attrs[COLOR_parser_nodes__AAsCastExpr___n_opar].val = var_node; /* _n_opar on <self:AAsCastExpr> */
5260 var = NULL;
5261 if (var_node == NULL) {
5262 var1 = 0; /* is null */
5263 } else {
5264 var1 = 1; /* arg is null and recv is not */
5265 }
5266 if (0) {
5267 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable TOpar> */
5268 var_other = var;
5269 {
5270 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable TOpar(TOpar)>*/;
5271 var4 = var5;
5272 }
5273 var6 = !var4;
5274 var2 = var6;
5275 goto RET_LABEL3;
5276 RET_LABEL3:(void)0;
5277 }
5278 var1 = var2;
5279 }
5280 if (var1){
5281 {
5282 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TOpar(TOpar)> */
5283 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TOpar(TOpar)> */
5284 RET_LABEL7:(void)0;
5285 }
5286 }
5287 } else {
5288 }
5289 RET_LABEL:;
5290 }
5291 /* method parser_prod#AAsCastExpr#n_opar= for (self: Object, nullable TOpar) */
5292 void VIRTUAL_parser_prod__AAsCastExpr__n_opar_61d(val* self, val* p0) {
5293 parser_prod__AAsCastExpr__n_opar_61d(self, p0); /* Direct call parser_prod#AAsCastExpr#n_opar= on <self:Object(AAsCastExpr)>*/
5294 RET_LABEL:;
5295 }
5296 /* method parser_prod#AAsCastExpr#n_type= for (self: AAsCastExpr, AType) */
5297 void parser_prod__AAsCastExpr__n_type_61d(val* self, val* p0) {
5298 val* var_node /* var node: AType */;
5299 var_node = p0;
5300 self->attrs[COLOR_parser_nodes__AAsCastExpr___n_type].val = var_node; /* _n_type on <self:AAsCastExpr> */
5301 {
5302 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AType> */
5303 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AType> */
5304 RET_LABEL1:(void)0;
5305 }
5306 }
5307 RET_LABEL:;
5308 }
5309 /* method parser_prod#AAsCastExpr#n_type= for (self: Object, AType) */
5310 void VIRTUAL_parser_prod__AAsCastExpr__n_type_61d(val* self, val* p0) {
5311 parser_prod__AAsCastExpr__n_type_61d(self, p0); /* Direct call parser_prod#AAsCastExpr#n_type= on <self:Object(AAsCastExpr)>*/
5312 RET_LABEL:;
5313 }
5314 /* method parser_prod#AAsCastExpr#n_cpar= for (self: AAsCastExpr, nullable TCpar) */
5315 void parser_prod__AAsCastExpr__n_cpar_61d(val* self, val* p0) {
5316 val* var_node /* var node: nullable TCpar */;
5317 val* var /* : null */;
5318 short int var1 /* : Bool */;
5319 short int var2 /* : Bool */;
5320 val* var_other /* var other: nullable Object */;
5321 short int var4 /* : Bool */;
5322 short int var5 /* : Bool */;
5323 short int var6 /* : Bool */;
5324 var_node = p0;
5325 self->attrs[COLOR_parser_nodes__AAsCastExpr___n_cpar].val = var_node; /* _n_cpar on <self:AAsCastExpr> */
5326 var = NULL;
5327 if (var_node == NULL) {
5328 var1 = 0; /* is null */
5329 } else {
5330 var1 = 1; /* arg is null and recv is not */
5331 }
5332 if (0) {
5333 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable TCpar> */
5334 var_other = var;
5335 {
5336 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable TCpar(TCpar)>*/;
5337 var4 = var5;
5338 }
5339 var6 = !var4;
5340 var2 = var6;
5341 goto RET_LABEL3;
5342 RET_LABEL3:(void)0;
5343 }
5344 var1 = var2;
5345 }
5346 if (var1){
5347 {
5348 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TCpar(TCpar)> */
5349 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TCpar(TCpar)> */
5350 RET_LABEL7:(void)0;
5351 }
5352 }
5353 } else {
5354 }
5355 RET_LABEL:;
5356 }
5357 /* method parser_prod#AAsCastExpr#n_cpar= for (self: Object, nullable TCpar) */
5358 void VIRTUAL_parser_prod__AAsCastExpr__n_cpar_61d(val* self, val* p0) {
5359 parser_prod__AAsCastExpr__n_cpar_61d(self, p0); /* Direct call parser_prod#AAsCastExpr#n_cpar= on <self:Object(AAsCastExpr)>*/
5360 RET_LABEL:;
5361 }
5362 /* method parser_prod#AAsCastExpr#visit_all for (self: AAsCastExpr, Visitor) */
5363 void parser_prod__AAsCastExpr__visit_all(val* self, val* p0) {
5364 val* var_v /* var v: Visitor */;
5365 val* var /* : AExpr */;
5366 val* var1 /* : TKwas */;
5367 val* var2 /* : nullable TOpar */;
5368 val* var3 /* : AType */;
5369 val* var4 /* : nullable TCpar */;
5370 var_v = p0;
5371 var = self->attrs[COLOR_parser_nodes__AAsCastExpr___n_expr].val; /* _n_expr on <self:AAsCastExpr> */
5372 if (unlikely(var == NULL)) {
5373 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
5374 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6538);
5375 show_backtrace(1);
5376 }
5377 {
5378 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
5379 }
5380 var1 = self->attrs[COLOR_parser_nodes__AAsCastExpr___n_kwas].val; /* _n_kwas on <self:AAsCastExpr> */
5381 if (unlikely(var1 == NULL)) {
5382 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwas");
5383 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6539);
5384 show_backtrace(1);
5385 }
5386 {
5387 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
5388 }
5389 var2 = self->attrs[COLOR_parser_nodes__AAsCastExpr___n_opar].val; /* _n_opar on <self:AAsCastExpr> */
5390 {
5391 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
5392 }
5393 var3 = self->attrs[COLOR_parser_nodes__AAsCastExpr___n_type].val; /* _n_type on <self:AAsCastExpr> */
5394 if (unlikely(var3 == NULL)) {
5395 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
5396 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6541);
5397 show_backtrace(1);
5398 }
5399 {
5400 parser_nodes__Visitor__enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
5401 }
5402 var4 = self->attrs[COLOR_parser_nodes__AAsCastExpr___n_cpar].val; /* _n_cpar on <self:AAsCastExpr> */
5403 {
5404 parser_nodes__Visitor__enter_visit(var_v, var4); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
5405 }
5406 RET_LABEL:;
5407 }
5408 /* method parser_prod#AAsCastExpr#visit_all for (self: Object, Visitor) */
5409 void VIRTUAL_parser_prod__AAsCastExpr__visit_all(val* self, val* p0) {
5410 parser_prod__AAsCastExpr__visit_all(self, p0); /* Direct call parser_prod#AAsCastExpr#visit_all on <self:Object(AAsCastExpr)>*/
5411 RET_LABEL:;
5412 }
5413 /* method parser_prod#AAsNotnullExpr#init_aasnotnullexpr for (self: AAsNotnullExpr, nullable AExpr, nullable TKwas, nullable TOpar, nullable TKwnot, nullable TKwnull, nullable TCpar) */
5414 void parser_prod__AAsNotnullExpr__init_aasnotnullexpr(val* self, val* p0, val* p1, val* p2, val* p3, val* p4, val* p5) {
5415 val* var_n_expr /* var n_expr: nullable AExpr */;
5416 val* var_n_kwas /* var n_kwas: nullable TKwas */;
5417 val* var_n_opar /* var n_opar: nullable TOpar */;
5418 val* var_n_kwnot /* var n_kwnot: nullable TKwnot */;
5419 val* var_n_kwnull /* var n_kwnull: nullable TKwnull */;
5420 val* var_n_cpar /* var n_cpar: nullable TCpar */;
5421 val* var /* : null */;
5422 short int var3 /* : Bool */;
5423 short int var4 /* : Bool */;
5424 val* var_other /* var other: nullable Object */;
5425 short int var6 /* : Bool */;
5426 short int var7 /* : Bool */;
5427 short int var8 /* : Bool */;
5428 val* var12 /* : null */;
5429 short int var13 /* : Bool */;
5430 short int var14 /* : Bool */;
5431 short int var16 /* : Bool */;
5432 short int var17 /* : Bool */;
5433 short int var18 /* : Bool */;
5434 var_n_expr = p0;
5435 var_n_kwas = p1;
5436 var_n_opar = p2;
5437 var_n_kwnot = p3;
5438 var_n_kwnull = p4;
5439 var_n_cpar = p5;
5440 if (unlikely(var_n_expr == NULL)) {
5441 PRINT_ERROR("Runtime error: %s", "Cast failed");
5442 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6555);
5443 show_backtrace(1);
5444 }
5445 self->attrs[COLOR_parser_nodes__AAsNotnullExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AAsNotnullExpr> */
5446 if (var_n_expr == NULL) {
5447 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5448 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6556);
5449 show_backtrace(1);
5450 } else {
5451 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
5452 if (unlikely(var_n_expr == NULL)) {
5453 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5454 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
5455 show_backtrace(1);
5456 }
5457 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
5458 RET_LABEL1:(void)0;
5459 }
5460 }
5461 if (unlikely(var_n_kwas == NULL)) {
5462 PRINT_ERROR("Runtime error: %s", "Cast failed");
5463 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6557);
5464 show_backtrace(1);
5465 }
5466 self->attrs[COLOR_parser_nodes__AAsNotnullExpr___n_kwas].val = var_n_kwas; /* _n_kwas on <self:AAsNotnullExpr> */
5467 if (var_n_kwas == NULL) {
5468 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5469 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6558);
5470 show_backtrace(1);
5471 } else {
5472 { /* Inline parser_nodes#ANode#parent= (var_n_kwas,self) on <var_n_kwas:nullable TKwas> */
5473 if (unlikely(var_n_kwas == NULL)) {
5474 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5475 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
5476 show_backtrace(1);
5477 }
5478 var_n_kwas->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwas:nullable TKwas> */
5479 RET_LABEL2:(void)0;
5480 }
5481 }
5482 self->attrs[COLOR_parser_nodes__AAsNotnullExpr___n_opar].val = var_n_opar; /* _n_opar on <self:AAsNotnullExpr> */
5483 var = NULL;
5484 if (var_n_opar == NULL) {
5485 var3 = 0; /* is null */
5486 } else {
5487 var3 = 1; /* arg is null and recv is not */
5488 }
5489 if (0) {
5490 { /* Inline kernel#Object#!= (var_n_opar,var) on <var_n_opar:nullable TOpar> */
5491 var_other = var;
5492 {
5493 var7 = ((short int (*)(val*, val*))(var_n_opar->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_opar, var_other) /* == on <var_n_opar:nullable TOpar(TOpar)>*/;
5494 var6 = var7;
5495 }
5496 var8 = !var6;
5497 var4 = var8;
5498 goto RET_LABEL5;
5499 RET_LABEL5:(void)0;
5500 }
5501 var3 = var4;
5502 }
5503 if (var3){
5504 {
5505 { /* Inline parser_nodes#ANode#parent= (var_n_opar,self) on <var_n_opar:nullable TOpar(TOpar)> */
5506 var_n_opar->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_opar:nullable TOpar(TOpar)> */
5507 RET_LABEL9:(void)0;
5508 }
5509 }
5510 } else {
5511 }
5512 if (unlikely(var_n_kwnot == NULL)) {
5513 PRINT_ERROR("Runtime error: %s", "Cast failed");
5514 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6561);
5515 show_backtrace(1);
5516 }
5517 self->attrs[COLOR_parser_nodes__AAsNotnullExpr___n_kwnot].val = var_n_kwnot; /* _n_kwnot on <self:AAsNotnullExpr> */
5518 if (var_n_kwnot == NULL) {
5519 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5520 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6562);
5521 show_backtrace(1);
5522 } else {
5523 { /* Inline parser_nodes#ANode#parent= (var_n_kwnot,self) on <var_n_kwnot:nullable TKwnot> */
5524 if (unlikely(var_n_kwnot == NULL)) {
5525 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5526 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
5527 show_backtrace(1);
5528 }
5529 var_n_kwnot->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwnot:nullable TKwnot> */
5530 RET_LABEL10:(void)0;
5531 }
5532 }
5533 if (unlikely(var_n_kwnull == NULL)) {
5534 PRINT_ERROR("Runtime error: %s", "Cast failed");
5535 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6563);
5536 show_backtrace(1);
5537 }
5538 self->attrs[COLOR_parser_nodes__AAsNotnullExpr___n_kwnull].val = var_n_kwnull; /* _n_kwnull on <self:AAsNotnullExpr> */
5539 if (var_n_kwnull == NULL) {
5540 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5541 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6564);
5542 show_backtrace(1);
5543 } else {
5544 { /* Inline parser_nodes#ANode#parent= (var_n_kwnull,self) on <var_n_kwnull:nullable TKwnull> */
5545 if (unlikely(var_n_kwnull == NULL)) {
5546 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5547 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
5548 show_backtrace(1);
5549 }
5550 var_n_kwnull->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwnull:nullable TKwnull> */
5551 RET_LABEL11:(void)0;
5552 }
5553 }
5554 self->attrs[COLOR_parser_nodes__AAsNotnullExpr___n_cpar].val = var_n_cpar; /* _n_cpar on <self:AAsNotnullExpr> */
5555 var12 = NULL;
5556 if (var_n_cpar == NULL) {
5557 var13 = 0; /* is null */
5558 } else {
5559 var13 = 1; /* arg is null and recv is not */
5560 }
5561 if (0) {
5562 { /* Inline kernel#Object#!= (var_n_cpar,var12) on <var_n_cpar:nullable TCpar> */
5563 var_other = var12;
5564 {
5565 var17 = ((short int (*)(val*, val*))(var_n_cpar->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_cpar, var_other) /* == on <var_n_cpar:nullable TCpar(TCpar)>*/;
5566 var16 = var17;
5567 }
5568 var18 = !var16;
5569 var14 = var18;
5570 goto RET_LABEL15;
5571 RET_LABEL15:(void)0;
5572 }
5573 var13 = var14;
5574 }
5575 if (var13){
5576 {
5577 { /* Inline parser_nodes#ANode#parent= (var_n_cpar,self) on <var_n_cpar:nullable TCpar(TCpar)> */
5578 var_n_cpar->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_cpar:nullable TCpar(TCpar)> */
5579 RET_LABEL19:(void)0;
5580 }
5581 }
5582 } else {
5583 }
5584 RET_LABEL:;
5585 }
5586 /* method parser_prod#AAsNotnullExpr#init_aasnotnullexpr for (self: Object, nullable AExpr, nullable TKwas, nullable TOpar, nullable TKwnot, nullable TKwnull, nullable TCpar) */
5587 void VIRTUAL_parser_prod__AAsNotnullExpr__init_aasnotnullexpr(val* self, val* p0, val* p1, val* p2, val* p3, val* p4, val* p5) {
5588 parser_prod__AAsNotnullExpr__init_aasnotnullexpr(self, p0, p1, p2, p3, p4, p5); /* Direct call parser_prod#AAsNotnullExpr#init_aasnotnullexpr on <self:Object(AAsNotnullExpr)>*/
5589 RET_LABEL:;
5590 }
5591 /* method parser_prod#AAsNotnullExpr#replace_child for (self: AAsNotnullExpr, ANode, nullable ANode) */
5592 void parser_prod__AAsNotnullExpr__replace_child(val* self, val* p0, val* p1) {
5593 val* var_old_child /* var old_child: ANode */;
5594 val* var_new_child /* var new_child: nullable ANode */;
5595 val* var /* : AExpr */;
5596 short int var1 /* : Bool */;
5597 short int var2 /* : Bool */;
5598 val* var_other /* var other: nullable Object */;
5599 short int var4 /* : Bool */;
5600 short int var6 /* : Bool */;
5601 short int var7 /* : Bool */;
5602 int cltype;
5603 int idtype;
5604 const char* var_class_name;
5605 val* var8 /* : TKwas */;
5606 short int var9 /* : Bool */;
5607 short int var10 /* : Bool */;
5608 short int var12 /* : Bool */;
5609 short int var14 /* : Bool */;
5610 short int var15 /* : Bool */;
5611 int cltype16;
5612 int idtype17;
5613 const char* var_class_name18;
5614 val* var19 /* : nullable TOpar */;
5615 short int var20 /* : Bool */;
5616 short int var21 /* : Bool */;
5617 short int var23 /* : Bool */;
5618 short int var25 /* : Bool */;
5619 short int var26 /* : Bool */;
5620 int cltype27;
5621 int idtype28;
5622 const char* var_class_name29;
5623 val* var30 /* : TKwnot */;
5624 short int var31 /* : Bool */;
5625 short int var32 /* : Bool */;
5626 short int var34 /* : Bool */;
5627 short int var36 /* : Bool */;
5628 short int var37 /* : Bool */;
5629 int cltype38;
5630 int idtype39;
5631 const char* var_class_name40;
5632 val* var41 /* : TKwnull */;
5633 short int var42 /* : Bool */;
5634 short int var43 /* : Bool */;
5635 short int var45 /* : Bool */;
5636 short int var47 /* : Bool */;
5637 short int var48 /* : Bool */;
5638 int cltype49;
5639 int idtype50;
5640 const char* var_class_name51;
5641 val* var52 /* : nullable TCpar */;
5642 short int var53 /* : Bool */;
5643 short int var54 /* : Bool */;
5644 short int var56 /* : Bool */;
5645 short int var58 /* : Bool */;
5646 short int var59 /* : Bool */;
5647 int cltype60;
5648 int idtype61;
5649 const char* var_class_name62;
5650 var_old_child = p0;
5651 var_new_child = p1;
5652 var = self->attrs[COLOR_parser_nodes__AAsNotnullExpr___n_expr].val; /* _n_expr on <self:AAsNotnullExpr> */
5653 if (unlikely(var == NULL)) {
5654 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
5655 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6571);
5656 show_backtrace(1);
5657 }
5658 {
5659 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
5660 var_other = var_old_child;
5661 {
5662 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
5663 var6 = var == var_other;
5664 var4 = var6;
5665 goto RET_LABEL5;
5666 RET_LABEL5:(void)0;
5667 }
5668 }
5669 var2 = var4;
5670 goto RET_LABEL3;
5671 RET_LABEL3:(void)0;
5672 }
5673 var1 = var2;
5674 }
5675 if (var1){
5676 /* <var_new_child:nullable ANode> isa AExpr */
5677 cltype = type_parser_nodes__AExpr.color;
5678 idtype = type_parser_nodes__AExpr.id;
5679 if(var_new_child == NULL) {
5680 var7 = 0;
5681 } else {
5682 if(cltype >= var_new_child->type->table_size) {
5683 var7 = 0;
5684 } else {
5685 var7 = var_new_child->type->type_table[cltype] == idtype;
5686 }
5687 }
5688 if (unlikely(!var7)) {
5689 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
5690 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
5691 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6572);
5692 show_backtrace(1);
5693 }
5694 {
5695 parser_prod__AAsNotnullExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AAsNotnullExpr#n_expr= on <self:AAsNotnullExpr>*/
5696 }
5697 goto RET_LABEL;
5698 } else {
5699 }
5700 var8 = self->attrs[COLOR_parser_nodes__AAsNotnullExpr___n_kwas].val; /* _n_kwas on <self:AAsNotnullExpr> */
5701 if (unlikely(var8 == NULL)) {
5702 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwas");
5703 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6575);
5704 show_backtrace(1);
5705 }
5706 {
5707 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:TKwas> */
5708 var_other = var_old_child;
5709 {
5710 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:TKwas> */
5711 var14 = var8 == var_other;
5712 var12 = var14;
5713 goto RET_LABEL13;
5714 RET_LABEL13:(void)0;
5715 }
5716 }
5717 var10 = var12;
5718 goto RET_LABEL11;
5719 RET_LABEL11:(void)0;
5720 }
5721 var9 = var10;
5722 }
5723 if (var9){
5724 /* <var_new_child:nullable ANode> isa TKwas */
5725 cltype16 = type_parser_nodes__TKwas.color;
5726 idtype17 = type_parser_nodes__TKwas.id;
5727 if(var_new_child == NULL) {
5728 var15 = 0;
5729 } else {
5730 if(cltype16 >= var_new_child->type->table_size) {
5731 var15 = 0;
5732 } else {
5733 var15 = var_new_child->type->type_table[cltype16] == idtype17;
5734 }
5735 }
5736 if (unlikely(!var15)) {
5737 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
5738 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwas", var_class_name18);
5739 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6576);
5740 show_backtrace(1);
5741 }
5742 {
5743 parser_prod__AAsNotnullExpr__n_kwas_61d(self, var_new_child); /* Direct call parser_prod#AAsNotnullExpr#n_kwas= on <self:AAsNotnullExpr>*/
5744 }
5745 goto RET_LABEL;
5746 } else {
5747 }
5748 var19 = self->attrs[COLOR_parser_nodes__AAsNotnullExpr___n_opar].val; /* _n_opar on <self:AAsNotnullExpr> */
5749 if (var19 == NULL) {
5750 var20 = 0; /* <var_old_child:ANode> cannot be null */
5751 } else {
5752 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:nullable TOpar> */
5753 var_other = var_old_child;
5754 {
5755 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:nullable TOpar(TOpar)> */
5756 var25 = var19 == var_other;
5757 var23 = var25;
5758 goto RET_LABEL24;
5759 RET_LABEL24:(void)0;
5760 }
5761 }
5762 var21 = var23;
5763 goto RET_LABEL22;
5764 RET_LABEL22:(void)0;
5765 }
5766 var20 = var21;
5767 }
5768 if (var20){
5769 /* <var_new_child:nullable ANode> isa nullable TOpar */
5770 cltype27 = type_nullable_parser_nodes__TOpar.color;
5771 idtype28 = type_nullable_parser_nodes__TOpar.id;
5772 if(var_new_child == NULL) {
5773 var26 = 1;
5774 } else {
5775 if(cltype27 >= var_new_child->type->table_size) {
5776 var26 = 0;
5777 } else {
5778 var26 = var_new_child->type->type_table[cltype27] == idtype28;
5779 }
5780 }
5781 if (unlikely(!var26)) {
5782 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
5783 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TOpar", var_class_name29);
5784 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6580);
5785 show_backtrace(1);
5786 }
5787 {
5788 parser_prod__AAsNotnullExpr__n_opar_61d(self, var_new_child); /* Direct call parser_prod#AAsNotnullExpr#n_opar= on <self:AAsNotnullExpr>*/
5789 }
5790 goto RET_LABEL;
5791 } else {
5792 }
5793 var30 = self->attrs[COLOR_parser_nodes__AAsNotnullExpr___n_kwnot].val; /* _n_kwnot on <self:AAsNotnullExpr> */
5794 if (unlikely(var30 == NULL)) {
5795 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwnot");
5796 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6583);
5797 show_backtrace(1);
5798 }
5799 {
5800 { /* Inline kernel#Object#== (var30,var_old_child) on <var30:TKwnot> */
5801 var_other = var_old_child;
5802 {
5803 { /* Inline kernel#Object#is_same_instance (var30,var_other) on <var30:TKwnot> */
5804 var36 = var30 == var_other;
5805 var34 = var36;
5806 goto RET_LABEL35;
5807 RET_LABEL35:(void)0;
5808 }
5809 }
5810 var32 = var34;
5811 goto RET_LABEL33;
5812 RET_LABEL33:(void)0;
5813 }
5814 var31 = var32;
5815 }
5816 if (var31){
5817 /* <var_new_child:nullable ANode> isa TKwnot */
5818 cltype38 = type_parser_nodes__TKwnot.color;
5819 idtype39 = type_parser_nodes__TKwnot.id;
5820 if(var_new_child == NULL) {
5821 var37 = 0;
5822 } else {
5823 if(cltype38 >= var_new_child->type->table_size) {
5824 var37 = 0;
5825 } else {
5826 var37 = var_new_child->type->type_table[cltype38] == idtype39;
5827 }
5828 }
5829 if (unlikely(!var37)) {
5830 var_class_name40 = var_new_child == NULL ? "null" : var_new_child->type->name;
5831 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwnot", var_class_name40);
5832 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6584);
5833 show_backtrace(1);
5834 }
5835 {
5836 parser_prod__AAsNotnullExpr__n_kwnot_61d(self, var_new_child); /* Direct call parser_prod#AAsNotnullExpr#n_kwnot= on <self:AAsNotnullExpr>*/
5837 }
5838 goto RET_LABEL;
5839 } else {
5840 }
5841 var41 = self->attrs[COLOR_parser_nodes__AAsNotnullExpr___n_kwnull].val; /* _n_kwnull on <self:AAsNotnullExpr> */
5842 if (unlikely(var41 == NULL)) {
5843 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwnull");
5844 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6587);
5845 show_backtrace(1);
5846 }
5847 {
5848 { /* Inline kernel#Object#== (var41,var_old_child) on <var41:TKwnull> */
5849 var_other = var_old_child;
5850 {
5851 { /* Inline kernel#Object#is_same_instance (var41,var_other) on <var41:TKwnull> */
5852 var47 = var41 == var_other;
5853 var45 = var47;
5854 goto RET_LABEL46;
5855 RET_LABEL46:(void)0;
5856 }
5857 }
5858 var43 = var45;
5859 goto RET_LABEL44;
5860 RET_LABEL44:(void)0;
5861 }
5862 var42 = var43;
5863 }
5864 if (var42){
5865 /* <var_new_child:nullable ANode> isa TKwnull */
5866 cltype49 = type_parser_nodes__TKwnull.color;
5867 idtype50 = type_parser_nodes__TKwnull.id;
5868 if(var_new_child == NULL) {
5869 var48 = 0;
5870 } else {
5871 if(cltype49 >= var_new_child->type->table_size) {
5872 var48 = 0;
5873 } else {
5874 var48 = var_new_child->type->type_table[cltype49] == idtype50;
5875 }
5876 }
5877 if (unlikely(!var48)) {
5878 var_class_name51 = var_new_child == NULL ? "null" : var_new_child->type->name;
5879 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwnull", var_class_name51);
5880 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6588);
5881 show_backtrace(1);
5882 }
5883 {
5884 parser_prod__AAsNotnullExpr__n_kwnull_61d(self, var_new_child); /* Direct call parser_prod#AAsNotnullExpr#n_kwnull= on <self:AAsNotnullExpr>*/
5885 }
5886 goto RET_LABEL;
5887 } else {
5888 }
5889 var52 = self->attrs[COLOR_parser_nodes__AAsNotnullExpr___n_cpar].val; /* _n_cpar on <self:AAsNotnullExpr> */
5890 if (var52 == NULL) {
5891 var53 = 0; /* <var_old_child:ANode> cannot be null */
5892 } else {
5893 { /* Inline kernel#Object#== (var52,var_old_child) on <var52:nullable TCpar> */
5894 var_other = var_old_child;
5895 {
5896 { /* Inline kernel#Object#is_same_instance (var52,var_other) on <var52:nullable TCpar(TCpar)> */
5897 var58 = var52 == var_other;
5898 var56 = var58;
5899 goto RET_LABEL57;
5900 RET_LABEL57:(void)0;
5901 }
5902 }
5903 var54 = var56;
5904 goto RET_LABEL55;
5905 RET_LABEL55:(void)0;
5906 }
5907 var53 = var54;
5908 }
5909 if (var53){
5910 /* <var_new_child:nullable ANode> isa nullable TCpar */
5911 cltype60 = type_nullable_parser_nodes__TCpar.color;
5912 idtype61 = type_nullable_parser_nodes__TCpar.id;
5913 if(var_new_child == NULL) {
5914 var59 = 1;
5915 } else {
5916 if(cltype60 >= var_new_child->type->table_size) {
5917 var59 = 0;
5918 } else {
5919 var59 = var_new_child->type->type_table[cltype60] == idtype61;
5920 }
5921 }
5922 if (unlikely(!var59)) {
5923 var_class_name62 = var_new_child == NULL ? "null" : var_new_child->type->name;
5924 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TCpar", var_class_name62);
5925 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6592);
5926 show_backtrace(1);
5927 }
5928 {
5929 parser_prod__AAsNotnullExpr__n_cpar_61d(self, var_new_child); /* Direct call parser_prod#AAsNotnullExpr#n_cpar= on <self:AAsNotnullExpr>*/
5930 }
5931 goto RET_LABEL;
5932 } else {
5933 }
5934 RET_LABEL:;
5935 }
5936 /* method parser_prod#AAsNotnullExpr#replace_child for (self: Object, ANode, nullable ANode) */
5937 void VIRTUAL_parser_prod__AAsNotnullExpr__replace_child(val* self, val* p0, val* p1) {
5938 parser_prod__AAsNotnullExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AAsNotnullExpr#replace_child on <self:Object(AAsNotnullExpr)>*/
5939 RET_LABEL:;
5940 }
5941 /* method parser_prod#AAsNotnullExpr#n_expr= for (self: AAsNotnullExpr, AExpr) */
5942 void parser_prod__AAsNotnullExpr__n_expr_61d(val* self, val* p0) {
5943 val* var_node /* var node: AExpr */;
5944 var_node = p0;
5945 self->attrs[COLOR_parser_nodes__AAsNotnullExpr___n_expr].val = var_node; /* _n_expr on <self:AAsNotnullExpr> */
5946 {
5947 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
5948 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
5949 RET_LABEL1:(void)0;
5950 }
5951 }
5952 RET_LABEL:;
5953 }
5954 /* method parser_prod#AAsNotnullExpr#n_expr= for (self: Object, AExpr) */
5955 void VIRTUAL_parser_prod__AAsNotnullExpr__n_expr_61d(val* self, val* p0) {
5956 parser_prod__AAsNotnullExpr__n_expr_61d(self, p0); /* Direct call parser_prod#AAsNotnullExpr#n_expr= on <self:Object(AAsNotnullExpr)>*/
5957 RET_LABEL:;
5958 }
5959 /* method parser_prod#AAsNotnullExpr#n_kwas= for (self: AAsNotnullExpr, TKwas) */
5960 void parser_prod__AAsNotnullExpr__n_kwas_61d(val* self, val* p0) {
5961 val* var_node /* var node: TKwas */;
5962 var_node = p0;
5963 self->attrs[COLOR_parser_nodes__AAsNotnullExpr___n_kwas].val = var_node; /* _n_kwas on <self:AAsNotnullExpr> */
5964 {
5965 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwas> */
5966 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwas> */
5967 RET_LABEL1:(void)0;
5968 }
5969 }
5970 RET_LABEL:;
5971 }
5972 /* method parser_prod#AAsNotnullExpr#n_kwas= for (self: Object, TKwas) */
5973 void VIRTUAL_parser_prod__AAsNotnullExpr__n_kwas_61d(val* self, val* p0) {
5974 parser_prod__AAsNotnullExpr__n_kwas_61d(self, p0); /* Direct call parser_prod#AAsNotnullExpr#n_kwas= on <self:Object(AAsNotnullExpr)>*/
5975 RET_LABEL:;
5976 }
5977 /* method parser_prod#AAsNotnullExpr#n_opar= for (self: AAsNotnullExpr, nullable TOpar) */
5978 void parser_prod__AAsNotnullExpr__n_opar_61d(val* self, val* p0) {
5979 val* var_node /* var node: nullable TOpar */;
5980 val* var /* : null */;
5981 short int var1 /* : Bool */;
5982 short int var2 /* : Bool */;
5983 val* var_other /* var other: nullable Object */;
5984 short int var4 /* : Bool */;
5985 short int var5 /* : Bool */;
5986 short int var6 /* : Bool */;
5987 var_node = p0;
5988 self->attrs[COLOR_parser_nodes__AAsNotnullExpr___n_opar].val = var_node; /* _n_opar on <self:AAsNotnullExpr> */
5989 var = NULL;
5990 if (var_node == NULL) {
5991 var1 = 0; /* is null */
5992 } else {
5993 var1 = 1; /* arg is null and recv is not */
5994 }
5995 if (0) {
5996 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable TOpar> */
5997 var_other = var;
5998 {
5999 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable TOpar(TOpar)>*/;
6000 var4 = var5;
6001 }
6002 var6 = !var4;
6003 var2 = var6;
6004 goto RET_LABEL3;
6005 RET_LABEL3:(void)0;
6006 }
6007 var1 = var2;
6008 }
6009 if (var1){
6010 {
6011 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TOpar(TOpar)> */
6012 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TOpar(TOpar)> */
6013 RET_LABEL7:(void)0;
6014 }
6015 }
6016 } else {
6017 }
6018 RET_LABEL:;
6019 }
6020 /* method parser_prod#AAsNotnullExpr#n_opar= for (self: Object, nullable TOpar) */
6021 void VIRTUAL_parser_prod__AAsNotnullExpr__n_opar_61d(val* self, val* p0) {
6022 parser_prod__AAsNotnullExpr__n_opar_61d(self, p0); /* Direct call parser_prod#AAsNotnullExpr#n_opar= on <self:Object(AAsNotnullExpr)>*/
6023 RET_LABEL:;
6024 }
6025 /* method parser_prod#AAsNotnullExpr#n_kwnot= for (self: AAsNotnullExpr, TKwnot) */
6026 void parser_prod__AAsNotnullExpr__n_kwnot_61d(val* self, val* p0) {
6027 val* var_node /* var node: TKwnot */;
6028 var_node = p0;
6029 self->attrs[COLOR_parser_nodes__AAsNotnullExpr___n_kwnot].val = var_node; /* _n_kwnot on <self:AAsNotnullExpr> */
6030 {
6031 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwnot> */
6032 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwnot> */
6033 RET_LABEL1:(void)0;
6034 }
6035 }
6036 RET_LABEL:;
6037 }
6038 /* method parser_prod#AAsNotnullExpr#n_kwnot= for (self: Object, TKwnot) */
6039 void VIRTUAL_parser_prod__AAsNotnullExpr__n_kwnot_61d(val* self, val* p0) {
6040 parser_prod__AAsNotnullExpr__n_kwnot_61d(self, p0); /* Direct call parser_prod#AAsNotnullExpr#n_kwnot= on <self:Object(AAsNotnullExpr)>*/
6041 RET_LABEL:;
6042 }
6043 /* method parser_prod#AAsNotnullExpr#n_kwnull= for (self: AAsNotnullExpr, TKwnull) */
6044 void parser_prod__AAsNotnullExpr__n_kwnull_61d(val* self, val* p0) {
6045 val* var_node /* var node: TKwnull */;
6046 var_node = p0;
6047 self->attrs[COLOR_parser_nodes__AAsNotnullExpr___n_kwnull].val = var_node; /* _n_kwnull on <self:AAsNotnullExpr> */
6048 {
6049 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwnull> */
6050 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwnull> */
6051 RET_LABEL1:(void)0;
6052 }
6053 }
6054 RET_LABEL:;
6055 }
6056 /* method parser_prod#AAsNotnullExpr#n_kwnull= for (self: Object, TKwnull) */
6057 void VIRTUAL_parser_prod__AAsNotnullExpr__n_kwnull_61d(val* self, val* p0) {
6058 parser_prod__AAsNotnullExpr__n_kwnull_61d(self, p0); /* Direct call parser_prod#AAsNotnullExpr#n_kwnull= on <self:Object(AAsNotnullExpr)>*/
6059 RET_LABEL:;
6060 }
6061 /* method parser_prod#AAsNotnullExpr#n_cpar= for (self: AAsNotnullExpr, nullable TCpar) */
6062 void parser_prod__AAsNotnullExpr__n_cpar_61d(val* self, val* p0) {
6063 val* var_node /* var node: nullable TCpar */;
6064 val* var /* : null */;
6065 short int var1 /* : Bool */;
6066 short int var2 /* : Bool */;
6067 val* var_other /* var other: nullable Object */;
6068 short int var4 /* : Bool */;
6069 short int var5 /* : Bool */;
6070 short int var6 /* : Bool */;
6071 var_node = p0;
6072 self->attrs[COLOR_parser_nodes__AAsNotnullExpr___n_cpar].val = var_node; /* _n_cpar on <self:AAsNotnullExpr> */
6073 var = NULL;
6074 if (var_node == NULL) {
6075 var1 = 0; /* is null */
6076 } else {
6077 var1 = 1; /* arg is null and recv is not */
6078 }
6079 if (0) {
6080 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable TCpar> */
6081 var_other = var;
6082 {
6083 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable TCpar(TCpar)>*/;
6084 var4 = var5;
6085 }
6086 var6 = !var4;
6087 var2 = var6;
6088 goto RET_LABEL3;
6089 RET_LABEL3:(void)0;
6090 }
6091 var1 = var2;
6092 }
6093 if (var1){
6094 {
6095 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TCpar(TCpar)> */
6096 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TCpar(TCpar)> */
6097 RET_LABEL7:(void)0;
6098 }
6099 }
6100 } else {
6101 }
6102 RET_LABEL:;
6103 }
6104 /* method parser_prod#AAsNotnullExpr#n_cpar= for (self: Object, nullable TCpar) */
6105 void VIRTUAL_parser_prod__AAsNotnullExpr__n_cpar_61d(val* self, val* p0) {
6106 parser_prod__AAsNotnullExpr__n_cpar_61d(self, p0); /* Direct call parser_prod#AAsNotnullExpr#n_cpar= on <self:Object(AAsNotnullExpr)>*/
6107 RET_LABEL:;
6108 }
6109 /* method parser_prod#AAsNotnullExpr#visit_all for (self: AAsNotnullExpr, Visitor) */
6110 void parser_prod__AAsNotnullExpr__visit_all(val* self, val* p0) {
6111 val* var_v /* var v: Visitor */;
6112 val* var /* : AExpr */;
6113 val* var1 /* : TKwas */;
6114 val* var2 /* : nullable TOpar */;
6115 val* var3 /* : TKwnot */;
6116 val* var4 /* : TKwnull */;
6117 val* var5 /* : nullable TCpar */;
6118 var_v = p0;
6119 var = self->attrs[COLOR_parser_nodes__AAsNotnullExpr___n_expr].val; /* _n_expr on <self:AAsNotnullExpr> */
6120 if (unlikely(var == NULL)) {
6121 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
6122 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6631);
6123 show_backtrace(1);
6124 }
6125 {
6126 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6127 }
6128 var1 = self->attrs[COLOR_parser_nodes__AAsNotnullExpr___n_kwas].val; /* _n_kwas on <self:AAsNotnullExpr> */
6129 if (unlikely(var1 == NULL)) {
6130 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwas");
6131 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6632);
6132 show_backtrace(1);
6133 }
6134 {
6135 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6136 }
6137 var2 = self->attrs[COLOR_parser_nodes__AAsNotnullExpr___n_opar].val; /* _n_opar on <self:AAsNotnullExpr> */
6138 {
6139 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6140 }
6141 var3 = self->attrs[COLOR_parser_nodes__AAsNotnullExpr___n_kwnot].val; /* _n_kwnot on <self:AAsNotnullExpr> */
6142 if (unlikely(var3 == NULL)) {
6143 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwnot");
6144 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6634);
6145 show_backtrace(1);
6146 }
6147 {
6148 parser_nodes__Visitor__enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6149 }
6150 var4 = self->attrs[COLOR_parser_nodes__AAsNotnullExpr___n_kwnull].val; /* _n_kwnull on <self:AAsNotnullExpr> */
6151 if (unlikely(var4 == NULL)) {
6152 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwnull");
6153 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6635);
6154 show_backtrace(1);
6155 }
6156 {
6157 parser_nodes__Visitor__enter_visit(var_v, var4); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6158 }
6159 var5 = self->attrs[COLOR_parser_nodes__AAsNotnullExpr___n_cpar].val; /* _n_cpar on <self:AAsNotnullExpr> */
6160 {
6161 parser_nodes__Visitor__enter_visit(var_v, var5); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6162 }
6163 RET_LABEL:;
6164 }
6165 /* method parser_prod#AAsNotnullExpr#visit_all for (self: Object, Visitor) */
6166 void VIRTUAL_parser_prod__AAsNotnullExpr__visit_all(val* self, val* p0) {
6167 parser_prod__AAsNotnullExpr__visit_all(self, p0); /* Direct call parser_prod#AAsNotnullExpr#visit_all on <self:Object(AAsNotnullExpr)>*/
6168 RET_LABEL:;
6169 }
6170 /* method parser_prod#AIssetAttrExpr#init_aissetattrexpr for (self: AIssetAttrExpr, nullable TKwisset, nullable AExpr, nullable TAttrid) */
6171 void parser_prod__AIssetAttrExpr__init_aissetattrexpr(val* self, val* p0, val* p1, val* p2) {
6172 val* var_n_kwisset /* var n_kwisset: nullable TKwisset */;
6173 val* var_n_expr /* var n_expr: nullable AExpr */;
6174 val* var_n_id /* var n_id: nullable TAttrid */;
6175 var_n_kwisset = p0;
6176 var_n_expr = p1;
6177 var_n_id = p2;
6178 if (unlikely(var_n_kwisset == NULL)) {
6179 PRINT_ERROR("Runtime error: %s", "Cast failed");
6180 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6646);
6181 show_backtrace(1);
6182 }
6183 self->attrs[COLOR_parser_nodes__AIssetAttrExpr___n_kwisset].val = var_n_kwisset; /* _n_kwisset on <self:AIssetAttrExpr> */
6184 if (var_n_kwisset == NULL) {
6185 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6186 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6647);
6187 show_backtrace(1);
6188 } else {
6189 { /* Inline parser_nodes#ANode#parent= (var_n_kwisset,self) on <var_n_kwisset:nullable TKwisset> */
6190 if (unlikely(var_n_kwisset == NULL)) {
6191 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6192 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
6193 show_backtrace(1);
6194 }
6195 var_n_kwisset->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwisset:nullable TKwisset> */
6196 RET_LABEL1:(void)0;
6197 }
6198 }
6199 if (unlikely(var_n_expr == NULL)) {
6200 PRINT_ERROR("Runtime error: %s", "Cast failed");
6201 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6648);
6202 show_backtrace(1);
6203 }
6204 self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AIssetAttrExpr> */
6205 if (var_n_expr == NULL) {
6206 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6207 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6649);
6208 show_backtrace(1);
6209 } else {
6210 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
6211 if (unlikely(var_n_expr == NULL)) {
6212 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6213 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
6214 show_backtrace(1);
6215 }
6216 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
6217 RET_LABEL2:(void)0;
6218 }
6219 }
6220 if (unlikely(var_n_id == NULL)) {
6221 PRINT_ERROR("Runtime error: %s", "Cast failed");
6222 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6650);
6223 show_backtrace(1);
6224 }
6225 self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_id].val = var_n_id; /* _n_id on <self:AIssetAttrExpr> */
6226 if (var_n_id == NULL) {
6227 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6228 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6651);
6229 show_backtrace(1);
6230 } else {
6231 { /* Inline parser_nodes#ANode#parent= (var_n_id,self) on <var_n_id:nullable TAttrid> */
6232 if (unlikely(var_n_id == NULL)) {
6233 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6234 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
6235 show_backtrace(1);
6236 }
6237 var_n_id->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_id:nullable TAttrid> */
6238 RET_LABEL3:(void)0;
6239 }
6240 }
6241 RET_LABEL:;
6242 }
6243 /* method parser_prod#AIssetAttrExpr#init_aissetattrexpr for (self: Object, nullable TKwisset, nullable AExpr, nullable TAttrid) */
6244 void VIRTUAL_parser_prod__AIssetAttrExpr__init_aissetattrexpr(val* self, val* p0, val* p1, val* p2) {
6245 parser_prod__AIssetAttrExpr__init_aissetattrexpr(self, p0, p1, p2); /* Direct call parser_prod#AIssetAttrExpr#init_aissetattrexpr on <self:Object(AIssetAttrExpr)>*/
6246 RET_LABEL:;
6247 }
6248 /* method parser_prod#AIssetAttrExpr#replace_child for (self: AIssetAttrExpr, ANode, nullable ANode) */
6249 void parser_prod__AIssetAttrExpr__replace_child(val* self, val* p0, val* p1) {
6250 val* var_old_child /* var old_child: ANode */;
6251 val* var_new_child /* var new_child: nullable ANode */;
6252 val* var /* : TKwisset */;
6253 short int var1 /* : Bool */;
6254 short int var2 /* : Bool */;
6255 val* var_other /* var other: nullable Object */;
6256 short int var4 /* : Bool */;
6257 short int var6 /* : Bool */;
6258 short int var7 /* : Bool */;
6259 int cltype;
6260 int idtype;
6261 const char* var_class_name;
6262 val* var8 /* : AExpr */;
6263 short int var9 /* : Bool */;
6264 short int var10 /* : Bool */;
6265 short int var12 /* : Bool */;
6266 short int var14 /* : Bool */;
6267 short int var15 /* : Bool */;
6268 int cltype16;
6269 int idtype17;
6270 const char* var_class_name18;
6271 val* var19 /* : TAttrid */;
6272 short int var20 /* : Bool */;
6273 short int var21 /* : Bool */;
6274 short int var23 /* : Bool */;
6275 short int var25 /* : Bool */;
6276 short int var26 /* : Bool */;
6277 int cltype27;
6278 int idtype28;
6279 const char* var_class_name29;
6280 var_old_child = p0;
6281 var_new_child = p1;
6282 var = self->attrs[COLOR_parser_nodes__AIssetAttrExpr___n_kwisset].val; /* _n_kwisset on <self:AIssetAttrExpr> */
6283 if (unlikely(var == NULL)) {
6284 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwisset");
6285 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6656);
6286 show_backtrace(1);
6287 }
6288 {
6289 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwisset> */
6290 var_other = var_old_child;
6291 {
6292 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TKwisset> */
6293 var6 = var == var_other;
6294 var4 = var6;
6295 goto RET_LABEL5;
6296 RET_LABEL5:(void)0;
6297 }
6298 }
6299 var2 = var4;
6300 goto RET_LABEL3;
6301 RET_LABEL3:(void)0;
6302 }
6303 var1 = var2;
6304 }
6305 if (var1){
6306 /* <var_new_child:nullable ANode> isa TKwisset */
6307 cltype = type_parser_nodes__TKwisset.color;
6308 idtype = type_parser_nodes__TKwisset.id;
6309 if(var_new_child == NULL) {
6310 var7 = 0;
6311 } else {
6312 if(cltype >= var_new_child->type->table_size) {
6313 var7 = 0;
6314 } else {
6315 var7 = var_new_child->type->type_table[cltype] == idtype;
6316 }
6317 }
6318 if (unlikely(!var7)) {
6319 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
6320 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwisset", var_class_name);
6321 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6657);
6322 show_backtrace(1);
6323 }
6324 {
6325 parser_prod__AIssetAttrExpr__n_kwisset_61d(self, var_new_child); /* Direct call parser_prod#AIssetAttrExpr#n_kwisset= on <self:AIssetAttrExpr>*/
6326 }
6327 goto RET_LABEL;
6328 } else {
6329 }
6330 var8 = self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_expr].val; /* _n_expr on <self:AIssetAttrExpr> */
6331 if (unlikely(var8 == NULL)) {
6332 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
6333 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6660);
6334 show_backtrace(1);
6335 }
6336 {
6337 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExpr> */
6338 var_other = var_old_child;
6339 {
6340 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExpr> */
6341 var14 = var8 == var_other;
6342 var12 = var14;
6343 goto RET_LABEL13;
6344 RET_LABEL13:(void)0;
6345 }
6346 }
6347 var10 = var12;
6348 goto RET_LABEL11;
6349 RET_LABEL11:(void)0;
6350 }
6351 var9 = var10;
6352 }
6353 if (var9){
6354 /* <var_new_child:nullable ANode> isa AExpr */
6355 cltype16 = type_parser_nodes__AExpr.color;
6356 idtype17 = type_parser_nodes__AExpr.id;
6357 if(var_new_child == NULL) {
6358 var15 = 0;
6359 } else {
6360 if(cltype16 >= var_new_child->type->table_size) {
6361 var15 = 0;
6362 } else {
6363 var15 = var_new_child->type->type_table[cltype16] == idtype17;
6364 }
6365 }
6366 if (unlikely(!var15)) {
6367 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
6368 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name18);
6369 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6661);
6370 show_backtrace(1);
6371 }
6372 {
6373 parser_prod__AIssetAttrExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AIssetAttrExpr#n_expr= on <self:AIssetAttrExpr>*/
6374 }
6375 goto RET_LABEL;
6376 } else {
6377 }
6378 var19 = self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_id].val; /* _n_id on <self:AIssetAttrExpr> */
6379 if (unlikely(var19 == NULL)) {
6380 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
6381 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6664);
6382 show_backtrace(1);
6383 }
6384 {
6385 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:TAttrid> */
6386 var_other = var_old_child;
6387 {
6388 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:TAttrid> */
6389 var25 = var19 == var_other;
6390 var23 = var25;
6391 goto RET_LABEL24;
6392 RET_LABEL24:(void)0;
6393 }
6394 }
6395 var21 = var23;
6396 goto RET_LABEL22;
6397 RET_LABEL22:(void)0;
6398 }
6399 var20 = var21;
6400 }
6401 if (var20){
6402 /* <var_new_child:nullable ANode> isa TAttrid */
6403 cltype27 = type_parser_nodes__TAttrid.color;
6404 idtype28 = type_parser_nodes__TAttrid.id;
6405 if(var_new_child == NULL) {
6406 var26 = 0;
6407 } else {
6408 if(cltype27 >= var_new_child->type->table_size) {
6409 var26 = 0;
6410 } else {
6411 var26 = var_new_child->type->type_table[cltype27] == idtype28;
6412 }
6413 }
6414 if (unlikely(!var26)) {
6415 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
6416 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TAttrid", var_class_name29);
6417 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6665);
6418 show_backtrace(1);
6419 }
6420 {
6421 parser_prod__AIssetAttrExpr__n_id_61d(self, var_new_child); /* Direct call parser_prod#AIssetAttrExpr#n_id= on <self:AIssetAttrExpr>*/
6422 }
6423 goto RET_LABEL;
6424 } else {
6425 }
6426 RET_LABEL:;
6427 }
6428 /* method parser_prod#AIssetAttrExpr#replace_child for (self: Object, ANode, nullable ANode) */
6429 void VIRTUAL_parser_prod__AIssetAttrExpr__replace_child(val* self, val* p0, val* p1) {
6430 parser_prod__AIssetAttrExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AIssetAttrExpr#replace_child on <self:Object(AIssetAttrExpr)>*/
6431 RET_LABEL:;
6432 }
6433 /* method parser_prod#AIssetAttrExpr#n_kwisset= for (self: AIssetAttrExpr, TKwisset) */
6434 void parser_prod__AIssetAttrExpr__n_kwisset_61d(val* self, val* p0) {
6435 val* var_node /* var node: TKwisset */;
6436 var_node = p0;
6437 self->attrs[COLOR_parser_nodes__AIssetAttrExpr___n_kwisset].val = var_node; /* _n_kwisset on <self:AIssetAttrExpr> */
6438 {
6439 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwisset> */
6440 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwisset> */
6441 RET_LABEL1:(void)0;
6442 }
6443 }
6444 RET_LABEL:;
6445 }
6446 /* method parser_prod#AIssetAttrExpr#n_kwisset= for (self: Object, TKwisset) */
6447 void VIRTUAL_parser_prod__AIssetAttrExpr__n_kwisset_61d(val* self, val* p0) {
6448 parser_prod__AIssetAttrExpr__n_kwisset_61d(self, p0); /* Direct call parser_prod#AIssetAttrExpr#n_kwisset= on <self:Object(AIssetAttrExpr)>*/
6449 RET_LABEL:;
6450 }
6451 /* method parser_prod#AIssetAttrExpr#n_expr= for (self: AIssetAttrExpr, AExpr) */
6452 void parser_prod__AIssetAttrExpr__n_expr_61d(val* self, val* p0) {
6453 val* var_node /* var node: AExpr */;
6454 var_node = p0;
6455 self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_expr].val = var_node; /* _n_expr on <self:AIssetAttrExpr> */
6456 {
6457 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
6458 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
6459 RET_LABEL1:(void)0;
6460 }
6461 }
6462 RET_LABEL:;
6463 }
6464 /* method parser_prod#AIssetAttrExpr#n_expr= for (self: Object, AExpr) */
6465 void VIRTUAL_parser_prod__AIssetAttrExpr__n_expr_61d(val* self, val* p0) {
6466 parser_prod__AIssetAttrExpr__n_expr_61d(self, p0); /* Direct call parser_prod#AIssetAttrExpr#n_expr= on <self:Object(AIssetAttrExpr)>*/
6467 RET_LABEL:;
6468 }
6469 /* method parser_prod#AIssetAttrExpr#n_id= for (self: AIssetAttrExpr, TAttrid) */
6470 void parser_prod__AIssetAttrExpr__n_id_61d(val* self, val* p0) {
6471 val* var_node /* var node: TAttrid */;
6472 var_node = p0;
6473 self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_id].val = var_node; /* _n_id on <self:AIssetAttrExpr> */
6474 {
6475 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TAttrid> */
6476 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TAttrid> */
6477 RET_LABEL1:(void)0;
6478 }
6479 }
6480 RET_LABEL:;
6481 }
6482 /* method parser_prod#AIssetAttrExpr#n_id= for (self: Object, TAttrid) */
6483 void VIRTUAL_parser_prod__AIssetAttrExpr__n_id_61d(val* self, val* p0) {
6484 parser_prod__AIssetAttrExpr__n_id_61d(self, p0); /* Direct call parser_prod#AIssetAttrExpr#n_id= on <self:Object(AIssetAttrExpr)>*/
6485 RET_LABEL:;
6486 }
6487 /* method parser_prod#AIssetAttrExpr#visit_all for (self: AIssetAttrExpr, Visitor) */
6488 void parser_prod__AIssetAttrExpr__visit_all(val* self, val* p0) {
6489 val* var_v /* var v: Visitor */;
6490 val* var /* : TKwisset */;
6491 val* var1 /* : AExpr */;
6492 val* var2 /* : TAttrid */;
6493 var_v = p0;
6494 var = self->attrs[COLOR_parser_nodes__AIssetAttrExpr___n_kwisset].val; /* _n_kwisset on <self:AIssetAttrExpr> */
6495 if (unlikely(var == NULL)) {
6496 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwisset");
6497 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6689);
6498 show_backtrace(1);
6499 }
6500 {
6501 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6502 }
6503 var1 = self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_expr].val; /* _n_expr on <self:AIssetAttrExpr> */
6504 if (unlikely(var1 == NULL)) {
6505 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
6506 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6690);
6507 show_backtrace(1);
6508 }
6509 {
6510 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6511 }
6512 var2 = self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_id].val; /* _n_id on <self:AIssetAttrExpr> */
6513 if (unlikely(var2 == NULL)) {
6514 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
6515 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6691);
6516 show_backtrace(1);
6517 }
6518 {
6519 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6520 }
6521 RET_LABEL:;
6522 }
6523 /* method parser_prod#AIssetAttrExpr#visit_all for (self: Object, Visitor) */
6524 void VIRTUAL_parser_prod__AIssetAttrExpr__visit_all(val* self, val* p0) {
6525 parser_prod__AIssetAttrExpr__visit_all(self, p0); /* Direct call parser_prod#AIssetAttrExpr#visit_all on <self:Object(AIssetAttrExpr)>*/
6526 RET_LABEL:;
6527 }
6528 /* method parser_prod#ADebugTypeExpr#init_adebugtypeexpr for (self: ADebugTypeExpr, nullable TKwdebug, nullable TKwtype, nullable AExpr, nullable AType) */
6529 void parser_prod__ADebugTypeExpr__init_adebugtypeexpr(val* self, val* p0, val* p1, val* p2, val* p3) {
6530 val* var_n_kwdebug /* var n_kwdebug: nullable TKwdebug */;
6531 val* var_n_kwtype /* var n_kwtype: nullable TKwtype */;
6532 val* var_n_expr /* var n_expr: nullable AExpr */;
6533 val* var_n_type /* var n_type: nullable AType */;
6534 var_n_kwdebug = p0;
6535 var_n_kwtype = p1;
6536 var_n_expr = p2;
6537 var_n_type = p3;
6538 if (unlikely(var_n_kwdebug == NULL)) {
6539 PRINT_ERROR("Runtime error: %s", "Cast failed");
6540 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6702);
6541 show_backtrace(1);
6542 }
6543 self->attrs[COLOR_parser_nodes__ADebugTypeExpr___n_kwdebug].val = var_n_kwdebug; /* _n_kwdebug on <self:ADebugTypeExpr> */
6544 if (var_n_kwdebug == NULL) {
6545 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6546 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6703);
6547 show_backtrace(1);
6548 } else {
6549 { /* Inline parser_nodes#ANode#parent= (var_n_kwdebug,self) on <var_n_kwdebug:nullable TKwdebug> */
6550 if (unlikely(var_n_kwdebug == NULL)) {
6551 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6552 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
6553 show_backtrace(1);
6554 }
6555 var_n_kwdebug->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwdebug:nullable TKwdebug> */
6556 RET_LABEL1:(void)0;
6557 }
6558 }
6559 if (unlikely(var_n_kwtype == NULL)) {
6560 PRINT_ERROR("Runtime error: %s", "Cast failed");
6561 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6704);
6562 show_backtrace(1);
6563 }
6564 self->attrs[COLOR_parser_nodes__ADebugTypeExpr___n_kwtype].val = var_n_kwtype; /* _n_kwtype on <self:ADebugTypeExpr> */
6565 if (var_n_kwtype == NULL) {
6566 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6567 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6705);
6568 show_backtrace(1);
6569 } else {
6570 { /* Inline parser_nodes#ANode#parent= (var_n_kwtype,self) on <var_n_kwtype:nullable TKwtype> */
6571 if (unlikely(var_n_kwtype == NULL)) {
6572 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6573 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
6574 show_backtrace(1);
6575 }
6576 var_n_kwtype->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwtype:nullable TKwtype> */
6577 RET_LABEL2:(void)0;
6578 }
6579 }
6580 if (unlikely(var_n_expr == NULL)) {
6581 PRINT_ERROR("Runtime error: %s", "Cast failed");
6582 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6706);
6583 show_backtrace(1);
6584 }
6585 self->attrs[COLOR_parser_nodes__ADebugTypeExpr___n_expr].val = var_n_expr; /* _n_expr on <self:ADebugTypeExpr> */
6586 if (var_n_expr == NULL) {
6587 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6588 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6707);
6589 show_backtrace(1);
6590 } else {
6591 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
6592 if (unlikely(var_n_expr == NULL)) {
6593 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6594 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
6595 show_backtrace(1);
6596 }
6597 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
6598 RET_LABEL3:(void)0;
6599 }
6600 }
6601 if (unlikely(var_n_type == NULL)) {
6602 PRINT_ERROR("Runtime error: %s", "Cast failed");
6603 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6708);
6604 show_backtrace(1);
6605 }
6606 self->attrs[COLOR_parser_nodes__ADebugTypeExpr___n_type].val = var_n_type; /* _n_type on <self:ADebugTypeExpr> */
6607 if (var_n_type == NULL) {
6608 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6609 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6709);
6610 show_backtrace(1);
6611 } else {
6612 { /* Inline parser_nodes#ANode#parent= (var_n_type,self) on <var_n_type:nullable AType> */
6613 if (unlikely(var_n_type == NULL)) {
6614 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6615 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
6616 show_backtrace(1);
6617 }
6618 var_n_type->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_type:nullable AType> */
6619 RET_LABEL4:(void)0;
6620 }
6621 }
6622 RET_LABEL:;
6623 }
6624 /* method parser_prod#ADebugTypeExpr#init_adebugtypeexpr for (self: Object, nullable TKwdebug, nullable TKwtype, nullable AExpr, nullable AType) */
6625 void VIRTUAL_parser_prod__ADebugTypeExpr__init_adebugtypeexpr(val* self, val* p0, val* p1, val* p2, val* p3) {
6626 parser_prod__ADebugTypeExpr__init_adebugtypeexpr(self, p0, p1, p2, p3); /* Direct call parser_prod#ADebugTypeExpr#init_adebugtypeexpr on <self:Object(ADebugTypeExpr)>*/
6627 RET_LABEL:;
6628 }
6629 /* method parser_prod#ADebugTypeExpr#replace_child for (self: ADebugTypeExpr, ANode, nullable ANode) */
6630 void parser_prod__ADebugTypeExpr__replace_child(val* self, val* p0, val* p1) {
6631 val* var_old_child /* var old_child: ANode */;
6632 val* var_new_child /* var new_child: nullable ANode */;
6633 val* var /* : TKwdebug */;
6634 short int var1 /* : Bool */;
6635 short int var2 /* : Bool */;
6636 val* var_other /* var other: nullable Object */;
6637 short int var4 /* : Bool */;
6638 short int var6 /* : Bool */;
6639 short int var7 /* : Bool */;
6640 int cltype;
6641 int idtype;
6642 const char* var_class_name;
6643 val* var8 /* : TKwtype */;
6644 short int var9 /* : Bool */;
6645 short int var10 /* : Bool */;
6646 short int var12 /* : Bool */;
6647 short int var14 /* : Bool */;
6648 short int var15 /* : Bool */;
6649 int cltype16;
6650 int idtype17;
6651 const char* var_class_name18;
6652 val* var19 /* : AExpr */;
6653 short int var20 /* : Bool */;
6654 short int var21 /* : Bool */;
6655 short int var23 /* : Bool */;
6656 short int var25 /* : Bool */;
6657 short int var26 /* : Bool */;
6658 int cltype27;
6659 int idtype28;
6660 const char* var_class_name29;
6661 val* var30 /* : AType */;
6662 short int var31 /* : Bool */;
6663 short int var32 /* : Bool */;
6664 short int var34 /* : Bool */;
6665 short int var36 /* : Bool */;
6666 short int var37 /* : Bool */;
6667 int cltype38;
6668 int idtype39;
6669 const char* var_class_name40;
6670 var_old_child = p0;
6671 var_new_child = p1;
6672 var = self->attrs[COLOR_parser_nodes__ADebugTypeExpr___n_kwdebug].val; /* _n_kwdebug on <self:ADebugTypeExpr> */
6673 if (unlikely(var == NULL)) {
6674 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwdebug");
6675 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6714);
6676 show_backtrace(1);
6677 }
6678 {
6679 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwdebug> */
6680 var_other = var_old_child;
6681 {
6682 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TKwdebug> */
6683 var6 = var == var_other;
6684 var4 = var6;
6685 goto RET_LABEL5;
6686 RET_LABEL5:(void)0;
6687 }
6688 }
6689 var2 = var4;
6690 goto RET_LABEL3;
6691 RET_LABEL3:(void)0;
6692 }
6693 var1 = var2;
6694 }
6695 if (var1){
6696 /* <var_new_child:nullable ANode> isa TKwdebug */
6697 cltype = type_parser_nodes__TKwdebug.color;
6698 idtype = type_parser_nodes__TKwdebug.id;
6699 if(var_new_child == NULL) {
6700 var7 = 0;
6701 } else {
6702 if(cltype >= var_new_child->type->table_size) {
6703 var7 = 0;
6704 } else {
6705 var7 = var_new_child->type->type_table[cltype] == idtype;
6706 }
6707 }
6708 if (unlikely(!var7)) {
6709 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
6710 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwdebug", var_class_name);
6711 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6715);
6712 show_backtrace(1);
6713 }
6714 {
6715 parser_prod__ADebugTypeExpr__n_kwdebug_61d(self, var_new_child); /* Direct call parser_prod#ADebugTypeExpr#n_kwdebug= on <self:ADebugTypeExpr>*/
6716 }
6717 goto RET_LABEL;
6718 } else {
6719 }
6720 var8 = self->attrs[COLOR_parser_nodes__ADebugTypeExpr___n_kwtype].val; /* _n_kwtype on <self:ADebugTypeExpr> */
6721 if (unlikely(var8 == NULL)) {
6722 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwtype");
6723 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6718);
6724 show_backtrace(1);
6725 }
6726 {
6727 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:TKwtype> */
6728 var_other = var_old_child;
6729 {
6730 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:TKwtype> */
6731 var14 = var8 == var_other;
6732 var12 = var14;
6733 goto RET_LABEL13;
6734 RET_LABEL13:(void)0;
6735 }
6736 }
6737 var10 = var12;
6738 goto RET_LABEL11;
6739 RET_LABEL11:(void)0;
6740 }
6741 var9 = var10;
6742 }
6743 if (var9){
6744 /* <var_new_child:nullable ANode> isa TKwtype */
6745 cltype16 = type_parser_nodes__TKwtype.color;
6746 idtype17 = type_parser_nodes__TKwtype.id;
6747 if(var_new_child == NULL) {
6748 var15 = 0;
6749 } else {
6750 if(cltype16 >= var_new_child->type->table_size) {
6751 var15 = 0;
6752 } else {
6753 var15 = var_new_child->type->type_table[cltype16] == idtype17;
6754 }
6755 }
6756 if (unlikely(!var15)) {
6757 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
6758 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwtype", var_class_name18);
6759 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6719);
6760 show_backtrace(1);
6761 }
6762 {
6763 parser_prod__ADebugTypeExpr__n_kwtype_61d(self, var_new_child); /* Direct call parser_prod#ADebugTypeExpr#n_kwtype= on <self:ADebugTypeExpr>*/
6764 }
6765 goto RET_LABEL;
6766 } else {
6767 }
6768 var19 = self->attrs[COLOR_parser_nodes__ADebugTypeExpr___n_expr].val; /* _n_expr on <self:ADebugTypeExpr> */
6769 if (unlikely(var19 == NULL)) {
6770 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
6771 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6722);
6772 show_backtrace(1);
6773 }
6774 {
6775 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:AExpr> */
6776 var_other = var_old_child;
6777 {
6778 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:AExpr> */
6779 var25 = var19 == var_other;
6780 var23 = var25;
6781 goto RET_LABEL24;
6782 RET_LABEL24:(void)0;
6783 }
6784 }
6785 var21 = var23;
6786 goto RET_LABEL22;
6787 RET_LABEL22:(void)0;
6788 }
6789 var20 = var21;
6790 }
6791 if (var20){
6792 /* <var_new_child:nullable ANode> isa AExpr */
6793 cltype27 = type_parser_nodes__AExpr.color;
6794 idtype28 = type_parser_nodes__AExpr.id;
6795 if(var_new_child == NULL) {
6796 var26 = 0;
6797 } else {
6798 if(cltype27 >= var_new_child->type->table_size) {
6799 var26 = 0;
6800 } else {
6801 var26 = var_new_child->type->type_table[cltype27] == idtype28;
6802 }
6803 }
6804 if (unlikely(!var26)) {
6805 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
6806 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name29);
6807 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6723);
6808 show_backtrace(1);
6809 }
6810 {
6811 parser_prod__ADebugTypeExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#ADebugTypeExpr#n_expr= on <self:ADebugTypeExpr>*/
6812 }
6813 goto RET_LABEL;
6814 } else {
6815 }
6816 var30 = self->attrs[COLOR_parser_nodes__ADebugTypeExpr___n_type].val; /* _n_type on <self:ADebugTypeExpr> */
6817 if (unlikely(var30 == NULL)) {
6818 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
6819 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6726);
6820 show_backtrace(1);
6821 }
6822 {
6823 { /* Inline kernel#Object#== (var30,var_old_child) on <var30:AType> */
6824 var_other = var_old_child;
6825 {
6826 { /* Inline kernel#Object#is_same_instance (var30,var_other) on <var30:AType> */
6827 var36 = var30 == var_other;
6828 var34 = var36;
6829 goto RET_LABEL35;
6830 RET_LABEL35:(void)0;
6831 }
6832 }
6833 var32 = var34;
6834 goto RET_LABEL33;
6835 RET_LABEL33:(void)0;
6836 }
6837 var31 = var32;
6838 }
6839 if (var31){
6840 /* <var_new_child:nullable ANode> isa AType */
6841 cltype38 = type_parser_nodes__AType.color;
6842 idtype39 = type_parser_nodes__AType.id;
6843 if(var_new_child == NULL) {
6844 var37 = 0;
6845 } else {
6846 if(cltype38 >= var_new_child->type->table_size) {
6847 var37 = 0;
6848 } else {
6849 var37 = var_new_child->type->type_table[cltype38] == idtype39;
6850 }
6851 }
6852 if (unlikely(!var37)) {
6853 var_class_name40 = var_new_child == NULL ? "null" : var_new_child->type->name;
6854 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AType", var_class_name40);
6855 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6727);
6856 show_backtrace(1);
6857 }
6858 {
6859 parser_prod__ADebugTypeExpr__n_type_61d(self, var_new_child); /* Direct call parser_prod#ADebugTypeExpr#n_type= on <self:ADebugTypeExpr>*/
6860 }
6861 goto RET_LABEL;
6862 } else {
6863 }
6864 RET_LABEL:;
6865 }
6866 /* method parser_prod#ADebugTypeExpr#replace_child for (self: Object, ANode, nullable ANode) */
6867 void VIRTUAL_parser_prod__ADebugTypeExpr__replace_child(val* self, val* p0, val* p1) {
6868 parser_prod__ADebugTypeExpr__replace_child(self, p0, p1); /* Direct call parser_prod#ADebugTypeExpr#replace_child on <self:Object(ADebugTypeExpr)>*/
6869 RET_LABEL:;
6870 }
6871 /* method parser_prod#ADebugTypeExpr#n_kwdebug= for (self: ADebugTypeExpr, TKwdebug) */
6872 void parser_prod__ADebugTypeExpr__n_kwdebug_61d(val* self, val* p0) {
6873 val* var_node /* var node: TKwdebug */;
6874 var_node = p0;
6875 self->attrs[COLOR_parser_nodes__ADebugTypeExpr___n_kwdebug].val = var_node; /* _n_kwdebug on <self:ADebugTypeExpr> */
6876 {
6877 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwdebug> */
6878 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwdebug> */
6879 RET_LABEL1:(void)0;
6880 }
6881 }
6882 RET_LABEL:;
6883 }
6884 /* method parser_prod#ADebugTypeExpr#n_kwdebug= for (self: Object, TKwdebug) */
6885 void VIRTUAL_parser_prod__ADebugTypeExpr__n_kwdebug_61d(val* self, val* p0) {
6886 parser_prod__ADebugTypeExpr__n_kwdebug_61d(self, p0); /* Direct call parser_prod#ADebugTypeExpr#n_kwdebug= on <self:Object(ADebugTypeExpr)>*/
6887 RET_LABEL:;
6888 }
6889 /* method parser_prod#ADebugTypeExpr#n_kwtype= for (self: ADebugTypeExpr, TKwtype) */
6890 void parser_prod__ADebugTypeExpr__n_kwtype_61d(val* self, val* p0) {
6891 val* var_node /* var node: TKwtype */;
6892 var_node = p0;
6893 self->attrs[COLOR_parser_nodes__ADebugTypeExpr___n_kwtype].val = var_node; /* _n_kwtype on <self:ADebugTypeExpr> */
6894 {
6895 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwtype> */
6896 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwtype> */
6897 RET_LABEL1:(void)0;
6898 }
6899 }
6900 RET_LABEL:;
6901 }
6902 /* method parser_prod#ADebugTypeExpr#n_kwtype= for (self: Object, TKwtype) */
6903 void VIRTUAL_parser_prod__ADebugTypeExpr__n_kwtype_61d(val* self, val* p0) {
6904 parser_prod__ADebugTypeExpr__n_kwtype_61d(self, p0); /* Direct call parser_prod#ADebugTypeExpr#n_kwtype= on <self:Object(ADebugTypeExpr)>*/
6905 RET_LABEL:;
6906 }
6907 /* method parser_prod#ADebugTypeExpr#n_expr= for (self: ADebugTypeExpr, AExpr) */
6908 void parser_prod__ADebugTypeExpr__n_expr_61d(val* self, val* p0) {
6909 val* var_node /* var node: AExpr */;
6910 var_node = p0;
6911 self->attrs[COLOR_parser_nodes__ADebugTypeExpr___n_expr].val = var_node; /* _n_expr on <self:ADebugTypeExpr> */
6912 {
6913 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
6914 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
6915 RET_LABEL1:(void)0;
6916 }
6917 }
6918 RET_LABEL:;
6919 }
6920 /* method parser_prod#ADebugTypeExpr#n_expr= for (self: Object, AExpr) */
6921 void VIRTUAL_parser_prod__ADebugTypeExpr__n_expr_61d(val* self, val* p0) {
6922 parser_prod__ADebugTypeExpr__n_expr_61d(self, p0); /* Direct call parser_prod#ADebugTypeExpr#n_expr= on <self:Object(ADebugTypeExpr)>*/
6923 RET_LABEL:;
6924 }
6925 /* method parser_prod#ADebugTypeExpr#n_type= for (self: ADebugTypeExpr, AType) */
6926 void parser_prod__ADebugTypeExpr__n_type_61d(val* self, val* p0) {
6927 val* var_node /* var node: AType */;
6928 var_node = p0;
6929 self->attrs[COLOR_parser_nodes__ADebugTypeExpr___n_type].val = var_node; /* _n_type on <self:ADebugTypeExpr> */
6930 {
6931 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AType> */
6932 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AType> */
6933 RET_LABEL1:(void)0;
6934 }
6935 }
6936 RET_LABEL:;
6937 }
6938 /* method parser_prod#ADebugTypeExpr#n_type= for (self: Object, AType) */
6939 void VIRTUAL_parser_prod__ADebugTypeExpr__n_type_61d(val* self, val* p0) {
6940 parser_prod__ADebugTypeExpr__n_type_61d(self, p0); /* Direct call parser_prod#ADebugTypeExpr#n_type= on <self:Object(ADebugTypeExpr)>*/
6941 RET_LABEL:;
6942 }
6943 /* method parser_prod#ADebugTypeExpr#visit_all for (self: ADebugTypeExpr, Visitor) */
6944 void parser_prod__ADebugTypeExpr__visit_all(val* self, val* p0) {
6945 val* var_v /* var v: Visitor */;
6946 val* var /* : TKwdebug */;
6947 val* var1 /* : TKwtype */;
6948 val* var2 /* : AExpr */;
6949 val* var3 /* : AType */;
6950 var_v = p0;
6951 var = self->attrs[COLOR_parser_nodes__ADebugTypeExpr___n_kwdebug].val; /* _n_kwdebug on <self:ADebugTypeExpr> */
6952 if (unlikely(var == NULL)) {
6953 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwdebug");
6954 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6756);
6955 show_backtrace(1);
6956 }
6957 {
6958 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6959 }
6960 var1 = self->attrs[COLOR_parser_nodes__ADebugTypeExpr___n_kwtype].val; /* _n_kwtype on <self:ADebugTypeExpr> */
6961 if (unlikely(var1 == NULL)) {
6962 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwtype");
6963 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6757);
6964 show_backtrace(1);
6965 }
6966 {
6967 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6968 }
6969 var2 = self->attrs[COLOR_parser_nodes__ADebugTypeExpr___n_expr].val; /* _n_expr on <self:ADebugTypeExpr> */
6970 if (unlikely(var2 == NULL)) {
6971 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
6972 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6758);
6973 show_backtrace(1);
6974 }
6975 {
6976 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6977 }
6978 var3 = self->attrs[COLOR_parser_nodes__ADebugTypeExpr___n_type].val; /* _n_type on <self:ADebugTypeExpr> */
6979 if (unlikely(var3 == NULL)) {
6980 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
6981 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6759);
6982 show_backtrace(1);
6983 }
6984 {
6985 parser_nodes__Visitor__enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6986 }
6987 RET_LABEL:;
6988 }
6989 /* method parser_prod#ADebugTypeExpr#visit_all for (self: Object, Visitor) */
6990 void VIRTUAL_parser_prod__ADebugTypeExpr__visit_all(val* self, val* p0) {
6991 parser_prod__ADebugTypeExpr__visit_all(self, p0); /* Direct call parser_prod#ADebugTypeExpr#visit_all on <self:Object(ADebugTypeExpr)>*/
6992 RET_LABEL:;
6993 }
6994 /* method parser_prod#AVarargExpr#init_avarargexpr for (self: AVarargExpr, nullable AExpr, nullable TDotdotdot) */
6995 void parser_prod__AVarargExpr__init_avarargexpr(val* self, val* p0, val* p1) {
6996 val* var_n_expr /* var n_expr: nullable AExpr */;
6997 val* var_n_dotdotdot /* var n_dotdotdot: nullable TDotdotdot */;
6998 var_n_expr = p0;
6999 var_n_dotdotdot = p1;
7000 if (unlikely(var_n_expr == NULL)) {
7001 PRINT_ERROR("Runtime error: %s", "Cast failed");
7002 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6768);
7003 show_backtrace(1);
7004 }
7005 self->attrs[COLOR_parser_nodes__AVarargExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AVarargExpr> */
7006 if (var_n_expr == NULL) {
7007 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7008 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6769);
7009 show_backtrace(1);
7010 } else {
7011 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
7012 if (unlikely(var_n_expr == NULL)) {
7013 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7014 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
7015 show_backtrace(1);
7016 }
7017 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
7018 RET_LABEL1:(void)0;
7019 }
7020 }
7021 if (unlikely(var_n_dotdotdot == NULL)) {
7022 PRINT_ERROR("Runtime error: %s", "Cast failed");
7023 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6770);
7024 show_backtrace(1);
7025 }
7026 self->attrs[COLOR_parser_nodes__AVarargExpr___n_dotdotdot].val = var_n_dotdotdot; /* _n_dotdotdot on <self:AVarargExpr> */
7027 if (var_n_dotdotdot == NULL) {
7028 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7029 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6771);
7030 show_backtrace(1);
7031 } else {
7032 { /* Inline parser_nodes#ANode#parent= (var_n_dotdotdot,self) on <var_n_dotdotdot:nullable TDotdotdot> */
7033 if (unlikely(var_n_dotdotdot == NULL)) {
7034 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7035 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
7036 show_backtrace(1);
7037 }
7038 var_n_dotdotdot->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_dotdotdot:nullable TDotdotdot> */
7039 RET_LABEL2:(void)0;
7040 }
7041 }
7042 RET_LABEL:;
7043 }
7044 /* method parser_prod#AVarargExpr#init_avarargexpr for (self: Object, nullable AExpr, nullable TDotdotdot) */
7045 void VIRTUAL_parser_prod__AVarargExpr__init_avarargexpr(val* self, val* p0, val* p1) {
7046 parser_prod__AVarargExpr__init_avarargexpr(self, p0, p1); /* Direct call parser_prod#AVarargExpr#init_avarargexpr on <self:Object(AVarargExpr)>*/
7047 RET_LABEL:;
7048 }
7049 /* method parser_prod#AVarargExpr#replace_child for (self: AVarargExpr, ANode, nullable ANode) */
7050 void parser_prod__AVarargExpr__replace_child(val* self, val* p0, val* p1) {
7051 val* var_old_child /* var old_child: ANode */;
7052 val* var_new_child /* var new_child: nullable ANode */;
7053 val* var /* : AExpr */;
7054 short int var1 /* : Bool */;
7055 short int var2 /* : Bool */;
7056 val* var_other /* var other: nullable Object */;
7057 short int var4 /* : Bool */;
7058 short int var6 /* : Bool */;
7059 short int var7 /* : Bool */;
7060 int cltype;
7061 int idtype;
7062 const char* var_class_name;
7063 val* var8 /* : TDotdotdot */;
7064 short int var9 /* : Bool */;
7065 short int var10 /* : Bool */;
7066 short int var12 /* : Bool */;
7067 short int var14 /* : Bool */;
7068 short int var15 /* : Bool */;
7069 int cltype16;
7070 int idtype17;
7071 const char* var_class_name18;
7072 var_old_child = p0;
7073 var_new_child = p1;
7074 var = self->attrs[COLOR_parser_nodes__AVarargExpr___n_expr].val; /* _n_expr on <self:AVarargExpr> */
7075 if (unlikely(var == NULL)) {
7076 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
7077 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6776);
7078 show_backtrace(1);
7079 }
7080 {
7081 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
7082 var_other = var_old_child;
7083 {
7084 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
7085 var6 = var == var_other;
7086 var4 = var6;
7087 goto RET_LABEL5;
7088 RET_LABEL5:(void)0;
7089 }
7090 }
7091 var2 = var4;
7092 goto RET_LABEL3;
7093 RET_LABEL3:(void)0;
7094 }
7095 var1 = var2;
7096 }
7097 if (var1){
7098 /* <var_new_child:nullable ANode> isa AExpr */
7099 cltype = type_parser_nodes__AExpr.color;
7100 idtype = type_parser_nodes__AExpr.id;
7101 if(var_new_child == NULL) {
7102 var7 = 0;
7103 } else {
7104 if(cltype >= var_new_child->type->table_size) {
7105 var7 = 0;
7106 } else {
7107 var7 = var_new_child->type->type_table[cltype] == idtype;
7108 }
7109 }
7110 if (unlikely(!var7)) {
7111 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
7112 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
7113 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6777);
7114 show_backtrace(1);
7115 }
7116 {
7117 parser_prod__AVarargExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AVarargExpr#n_expr= on <self:AVarargExpr>*/
7118 }
7119 goto RET_LABEL;
7120 } else {
7121 }
7122 var8 = self->attrs[COLOR_parser_nodes__AVarargExpr___n_dotdotdot].val; /* _n_dotdotdot on <self:AVarargExpr> */
7123 if (unlikely(var8 == NULL)) {
7124 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_dotdotdot");
7125 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6780);
7126 show_backtrace(1);
7127 }
7128 {
7129 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:TDotdotdot> */
7130 var_other = var_old_child;
7131 {
7132 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:TDotdotdot> */
7133 var14 = var8 == var_other;
7134 var12 = var14;
7135 goto RET_LABEL13;
7136 RET_LABEL13:(void)0;
7137 }
7138 }
7139 var10 = var12;
7140 goto RET_LABEL11;
7141 RET_LABEL11:(void)0;
7142 }
7143 var9 = var10;
7144 }
7145 if (var9){
7146 /* <var_new_child:nullable ANode> isa TDotdotdot */
7147 cltype16 = type_parser_nodes__TDotdotdot.color;
7148 idtype17 = type_parser_nodes__TDotdotdot.id;
7149 if(var_new_child == NULL) {
7150 var15 = 0;
7151 } else {
7152 if(cltype16 >= var_new_child->type->table_size) {
7153 var15 = 0;
7154 } else {
7155 var15 = var_new_child->type->type_table[cltype16] == idtype17;
7156 }
7157 }
7158 if (unlikely(!var15)) {
7159 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
7160 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TDotdotdot", var_class_name18);
7161 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6781);
7162 show_backtrace(1);
7163 }
7164 {
7165 parser_prod__AVarargExpr__n_dotdotdot_61d(self, var_new_child); /* Direct call parser_prod#AVarargExpr#n_dotdotdot= on <self:AVarargExpr>*/
7166 }
7167 goto RET_LABEL;
7168 } else {
7169 }
7170 RET_LABEL:;
7171 }
7172 /* method parser_prod#AVarargExpr#replace_child for (self: Object, ANode, nullable ANode) */
7173 void VIRTUAL_parser_prod__AVarargExpr__replace_child(val* self, val* p0, val* p1) {
7174 parser_prod__AVarargExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AVarargExpr#replace_child on <self:Object(AVarargExpr)>*/
7175 RET_LABEL:;
7176 }
7177 /* method parser_prod#AVarargExpr#n_expr= for (self: AVarargExpr, AExpr) */
7178 void parser_prod__AVarargExpr__n_expr_61d(val* self, val* p0) {
7179 val* var_node /* var node: AExpr */;
7180 var_node = p0;
7181 self->attrs[COLOR_parser_nodes__AVarargExpr___n_expr].val = var_node; /* _n_expr on <self:AVarargExpr> */
7182 {
7183 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
7184 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
7185 RET_LABEL1:(void)0;
7186 }
7187 }
7188 RET_LABEL:;
7189 }
7190 /* method parser_prod#AVarargExpr#n_expr= for (self: Object, AExpr) */
7191 void VIRTUAL_parser_prod__AVarargExpr__n_expr_61d(val* self, val* p0) {
7192 parser_prod__AVarargExpr__n_expr_61d(self, p0); /* Direct call parser_prod#AVarargExpr#n_expr= on <self:Object(AVarargExpr)>*/
7193 RET_LABEL:;
7194 }
7195 /* method parser_prod#AVarargExpr#n_dotdotdot= for (self: AVarargExpr, TDotdotdot) */
7196 void parser_prod__AVarargExpr__n_dotdotdot_61d(val* self, val* p0) {
7197 val* var_node /* var node: TDotdotdot */;
7198 var_node = p0;
7199 self->attrs[COLOR_parser_nodes__AVarargExpr___n_dotdotdot].val = var_node; /* _n_dotdotdot on <self:AVarargExpr> */
7200 {
7201 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TDotdotdot> */
7202 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TDotdotdot> */
7203 RET_LABEL1:(void)0;
7204 }
7205 }
7206 RET_LABEL:;
7207 }
7208 /* method parser_prod#AVarargExpr#n_dotdotdot= for (self: Object, TDotdotdot) */
7209 void VIRTUAL_parser_prod__AVarargExpr__n_dotdotdot_61d(val* self, val* p0) {
7210 parser_prod__AVarargExpr__n_dotdotdot_61d(self, p0); /* Direct call parser_prod#AVarargExpr#n_dotdotdot= on <self:Object(AVarargExpr)>*/
7211 RET_LABEL:;
7212 }
7213 /* method parser_prod#AVarargExpr#visit_all for (self: AVarargExpr, Visitor) */
7214 void parser_prod__AVarargExpr__visit_all(val* self, val* p0) {
7215 val* var_v /* var v: Visitor */;
7216 val* var /* : AExpr */;
7217 val* var1 /* : TDotdotdot */;
7218 var_v = p0;
7219 var = self->attrs[COLOR_parser_nodes__AVarargExpr___n_expr].val; /* _n_expr on <self:AVarargExpr> */
7220 if (unlikely(var == NULL)) {
7221 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
7222 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6800);
7223 show_backtrace(1);
7224 }
7225 {
7226 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7227 }
7228 var1 = self->attrs[COLOR_parser_nodes__AVarargExpr___n_dotdotdot].val; /* _n_dotdotdot on <self:AVarargExpr> */
7229 if (unlikely(var1 == NULL)) {
7230 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_dotdotdot");
7231 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6801);
7232 show_backtrace(1);
7233 }
7234 {
7235 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7236 }
7237 RET_LABEL:;
7238 }
7239 /* method parser_prod#AVarargExpr#visit_all for (self: Object, Visitor) */
7240 void VIRTUAL_parser_prod__AVarargExpr__visit_all(val* self, val* p0) {
7241 parser_prod__AVarargExpr__visit_all(self, p0); /* Direct call parser_prod#AVarargExpr#visit_all on <self:Object(AVarargExpr)>*/
7242 RET_LABEL:;
7243 }
7244 /* method parser_prod#AListExprs#init_alistexprs for (self: AListExprs, Collection[Object]) */
7245 void parser_prod__AListExprs__init_alistexprs(val* self, val* p0) {
7246 val* var_n_exprs /* var n_exprs: Collection[Object] */;
7247 val* var /* : ANodes[AExpr] */;
7248 val* var2 /* : ANodes[AExpr] */;
7249 var_n_exprs = p0;
7250 {
7251 { /* Inline parser_nodes#AExprs#n_exprs (self) on <self:AListExprs> */
7252 var2 = self->attrs[COLOR_parser_nodes__AExprs___n_exprs].val; /* _n_exprs on <self:AListExprs> */
7253 if (unlikely(var2 == NULL)) {
7254 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
7255 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 2274);
7256 show_backtrace(1);
7257 }
7258 var = var2;
7259 RET_LABEL1:(void)0;
7260 }
7261 }
7262 {
7263 parser_nodes__ANodes__unsafe_add_all(var, var_n_exprs); /* Direct call parser_nodes#ANodes#unsafe_add_all on <var:ANodes[AExpr]>*/
7264 }
7265 RET_LABEL:;
7266 }
7267 /* method parser_prod#AListExprs#init_alistexprs for (self: Object, Collection[Object]) */
7268 void VIRTUAL_parser_prod__AListExprs__init_alistexprs(val* self, val* p0) {
7269 parser_prod__AListExprs__init_alistexprs(self, p0); /* Direct call parser_prod#AListExprs#init_alistexprs on <self:Object(AListExprs)>*/
7270 RET_LABEL:;
7271 }
7272 /* method parser_prod#AListExprs#replace_child for (self: AListExprs, ANode, nullable ANode) */
7273 void parser_prod__AListExprs__replace_child(val* self, val* p0, val* p1) {
7274 val* var_old_child /* var old_child: ANode */;
7275 val* var_new_child /* var new_child: nullable ANode */;
7276 val* var /* : ANodes[AExpr] */;
7277 val* var2 /* : ANodes[AExpr] */;
7278 short int var3 /* : Bool */;
7279 var_old_child = p0;
7280 var_new_child = p1;
7281 {
7282 { /* Inline parser_nodes#AExprs#n_exprs (self) on <self:AListExprs> */
7283 var2 = self->attrs[COLOR_parser_nodes__AExprs___n_exprs].val; /* _n_exprs on <self:AListExprs> */
7284 if (unlikely(var2 == NULL)) {
7285 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
7286 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 2274);
7287 show_backtrace(1);
7288 }
7289 var = var2;
7290 RET_LABEL1:(void)0;
7291 }
7292 }
7293 {
7294 var3 = parser_nodes__ANodes__replace_child(var, var_old_child, var_new_child);
7295 }
7296 if (var3){
7297 goto RET_LABEL;
7298 } else {
7299 }
7300 RET_LABEL:;
7301 }
7302 /* method parser_prod#AListExprs#replace_child for (self: Object, ANode, nullable ANode) */
7303 void VIRTUAL_parser_prod__AListExprs__replace_child(val* self, val* p0, val* p1) {
7304 parser_prod__AListExprs__replace_child(self, p0, p1); /* Direct call parser_prod#AListExprs#replace_child on <self:Object(AListExprs)>*/
7305 RET_LABEL:;
7306 }
7307 /* method parser_prod#AListExprs#visit_all for (self: AListExprs, Visitor) */
7308 void parser_prod__AListExprs__visit_all(val* self, val* p0) {
7309 val* var_v /* var v: Visitor */;
7310 val* var /* : ANodes[AExpr] */;
7311 val* var2 /* : ANodes[AExpr] */;
7312 var_v = p0;
7313 {
7314 { /* Inline parser_nodes#AExprs#n_exprs (self) on <self:AListExprs> */
7315 var2 = self->attrs[COLOR_parser_nodes__AExprs___n_exprs].val; /* _n_exprs on <self:AListExprs> */
7316 if (unlikely(var2 == NULL)) {
7317 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
7318 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 2274);
7319 show_backtrace(1);
7320 }
7321 var = var2;
7322 RET_LABEL1:(void)0;
7323 }
7324 }
7325 {
7326 parser_nodes__ANodes__visit_all(var, var_v); /* Direct call parser_nodes#ANodes#visit_all on <var:ANodes[AExpr]>*/
7327 }
7328 RET_LABEL:;
7329 }
7330 /* method parser_prod#AListExprs#visit_all for (self: Object, Visitor) */
7331 void VIRTUAL_parser_prod__AListExprs__visit_all(val* self, val* p0) {
7332 parser_prod__AListExprs__visit_all(self, p0); /* Direct call parser_prod#AListExprs#visit_all on <self:Object(AListExprs)>*/
7333 RET_LABEL:;
7334 }
7335 /* method parser_prod#AParExprs#init_aparexprs for (self: AParExprs, nullable TOpar, Collection[Object], nullable TCpar) */
7336 void parser_prod__AParExprs__init_aparexprs(val* self, val* p0, val* p1, val* p2) {
7337 val* var_n_opar /* var n_opar: nullable TOpar */;
7338 val* var_n_exprs /* var n_exprs: Collection[Object] */;
7339 val* var_n_cpar /* var n_cpar: nullable TCpar */;
7340 val* var /* : ANodes[AExpr] */;
7341 val* var3 /* : ANodes[AExpr] */;
7342 var_n_opar = p0;
7343 var_n_exprs = p1;
7344 var_n_cpar = p2;
7345 if (unlikely(var_n_opar == NULL)) {
7346 PRINT_ERROR("Runtime error: %s", "Cast failed");
7347 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6831);
7348 show_backtrace(1);
7349 }
7350 self->attrs[COLOR_parser_nodes__AParExprs___n_opar].val = var_n_opar; /* _n_opar on <self:AParExprs> */
7351 if (var_n_opar == NULL) {
7352 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7353 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6832);
7354 show_backtrace(1);
7355 } else {
7356 { /* Inline parser_nodes#ANode#parent= (var_n_opar,self) on <var_n_opar:nullable TOpar> */
7357 if (unlikely(var_n_opar == NULL)) {
7358 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7359 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
7360 show_backtrace(1);
7361 }
7362 var_n_opar->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_opar:nullable TOpar> */
7363 RET_LABEL1:(void)0;
7364 }
7365 }
7366 {
7367 { /* Inline parser_nodes#AExprs#n_exprs (self) on <self:AParExprs> */
7368 var3 = self->attrs[COLOR_parser_nodes__AExprs___n_exprs].val; /* _n_exprs on <self:AParExprs> */
7369 if (unlikely(var3 == NULL)) {
7370 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
7371 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 2274);
7372 show_backtrace(1);
7373 }
7374 var = var3;
7375 RET_LABEL2:(void)0;
7376 }
7377 }
7378 {
7379 parser_nodes__ANodes__unsafe_add_all(var, var_n_exprs); /* Direct call parser_nodes#ANodes#unsafe_add_all on <var:ANodes[AExpr]>*/
7380 }
7381 if (unlikely(var_n_cpar == NULL)) {
7382 PRINT_ERROR("Runtime error: %s", "Cast failed");
7383 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6834);
7384 show_backtrace(1);
7385 }
7386 self->attrs[COLOR_parser_nodes__AParExprs___n_cpar].val = var_n_cpar; /* _n_cpar on <self:AParExprs> */
7387 if (var_n_cpar == NULL) {
7388 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7389 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6835);
7390 show_backtrace(1);
7391 } else {
7392 { /* Inline parser_nodes#ANode#parent= (var_n_cpar,self) on <var_n_cpar:nullable TCpar> */
7393 if (unlikely(var_n_cpar == NULL)) {
7394 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7395 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
7396 show_backtrace(1);
7397 }
7398 var_n_cpar->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_cpar:nullable TCpar> */
7399 RET_LABEL4:(void)0;
7400 }
7401 }
7402 RET_LABEL:;
7403 }
7404 /* method parser_prod#AParExprs#init_aparexprs for (self: Object, nullable TOpar, Collection[Object], nullable TCpar) */
7405 void VIRTUAL_parser_prod__AParExprs__init_aparexprs(val* self, val* p0, val* p1, val* p2) {
7406 parser_prod__AParExprs__init_aparexprs(self, p0, p1, p2); /* Direct call parser_prod#AParExprs#init_aparexprs on <self:Object(AParExprs)>*/
7407 RET_LABEL:;
7408 }
7409 /* method parser_prod#AParExprs#replace_child for (self: AParExprs, ANode, nullable ANode) */
7410 void parser_prod__AParExprs__replace_child(val* self, val* p0, val* p1) {
7411 val* var_old_child /* var old_child: ANode */;
7412 val* var_new_child /* var new_child: nullable ANode */;
7413 val* var /* : TOpar */;
7414 short int var1 /* : Bool */;
7415 short int var2 /* : Bool */;
7416 val* var_other /* var other: nullable Object */;
7417 short int var4 /* : Bool */;
7418 short int var6 /* : Bool */;
7419 short int var7 /* : Bool */;
7420 int cltype;
7421 int idtype;
7422 const char* var_class_name;
7423 val* var8 /* : ANodes[AExpr] */;
7424 val* var10 /* : ANodes[AExpr] */;
7425 short int var11 /* : Bool */;
7426 val* var12 /* : TCpar */;
7427 short int var13 /* : Bool */;
7428 short int var14 /* : Bool */;
7429 short int var16 /* : Bool */;
7430 short int var18 /* : Bool */;
7431 short int var19 /* : Bool */;
7432 int cltype20;
7433 int idtype21;
7434 const char* var_class_name22;
7435 var_old_child = p0;
7436 var_new_child = p1;
7437 var = self->attrs[COLOR_parser_nodes__AParExprs___n_opar].val; /* _n_opar on <self:AParExprs> */
7438 if (unlikely(var == NULL)) {
7439 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_opar");
7440 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6840);
7441 show_backtrace(1);
7442 }
7443 {
7444 { /* Inline kernel#Object#== (var,var_old_child) on <var:TOpar> */
7445 var_other = var_old_child;
7446 {
7447 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TOpar> */
7448 var6 = var == var_other;
7449 var4 = var6;
7450 goto RET_LABEL5;
7451 RET_LABEL5:(void)0;
7452 }
7453 }
7454 var2 = var4;
7455 goto RET_LABEL3;
7456 RET_LABEL3:(void)0;
7457 }
7458 var1 = var2;
7459 }
7460 if (var1){
7461 /* <var_new_child:nullable ANode> isa TOpar */
7462 cltype = type_parser_nodes__TOpar.color;
7463 idtype = type_parser_nodes__TOpar.id;
7464 if(var_new_child == NULL) {
7465 var7 = 0;
7466 } else {
7467 if(cltype >= var_new_child->type->table_size) {
7468 var7 = 0;
7469 } else {
7470 var7 = var_new_child->type->type_table[cltype] == idtype;
7471 }
7472 }
7473 if (unlikely(!var7)) {
7474 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
7475 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TOpar", var_class_name);
7476 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6841);
7477 show_backtrace(1);
7478 }
7479 {
7480 parser_prod__AParExprs__n_opar_61d(self, var_new_child); /* Direct call parser_prod#AParExprs#n_opar= on <self:AParExprs>*/
7481 }
7482 goto RET_LABEL;
7483 } else {
7484 }
7485 {
7486 { /* Inline parser_nodes#AExprs#n_exprs (self) on <self:AParExprs> */
7487 var10 = self->attrs[COLOR_parser_nodes__AExprs___n_exprs].val; /* _n_exprs on <self:AParExprs> */
7488 if (unlikely(var10 == NULL)) {
7489 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
7490 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 2274);
7491 show_backtrace(1);
7492 }
7493 var8 = var10;
7494 RET_LABEL9:(void)0;
7495 }
7496 }
7497 {
7498 var11 = parser_nodes__ANodes__replace_child(var8, var_old_child, var_new_child);
7499 }
7500 if (var11){
7501 goto RET_LABEL;
7502 } else {
7503 }
7504 var12 = self->attrs[COLOR_parser_nodes__AParExprs___n_cpar].val; /* _n_cpar on <self:AParExprs> */
7505 if (unlikely(var12 == NULL)) {
7506 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_cpar");
7507 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6845);
7508 show_backtrace(1);
7509 }
7510 {
7511 { /* Inline kernel#Object#== (var12,var_old_child) on <var12:TCpar> */
7512 var_other = var_old_child;
7513 {
7514 { /* Inline kernel#Object#is_same_instance (var12,var_other) on <var12:TCpar> */
7515 var18 = var12 == var_other;
7516 var16 = var18;
7517 goto RET_LABEL17;
7518 RET_LABEL17:(void)0;
7519 }
7520 }
7521 var14 = var16;
7522 goto RET_LABEL15;
7523 RET_LABEL15:(void)0;
7524 }
7525 var13 = var14;
7526 }
7527 if (var13){
7528 /* <var_new_child:nullable ANode> isa TCpar */
7529 cltype20 = type_parser_nodes__TCpar.color;
7530 idtype21 = type_parser_nodes__TCpar.id;
7531 if(var_new_child == NULL) {
7532 var19 = 0;
7533 } else {
7534 if(cltype20 >= var_new_child->type->table_size) {
7535 var19 = 0;
7536 } else {
7537 var19 = var_new_child->type->type_table[cltype20] == idtype21;
7538 }
7539 }
7540 if (unlikely(!var19)) {
7541 var_class_name22 = var_new_child == NULL ? "null" : var_new_child->type->name;
7542 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TCpar", var_class_name22);
7543 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6846);
7544 show_backtrace(1);
7545 }
7546 {
7547 parser_prod__AParExprs__n_cpar_61d(self, var_new_child); /* Direct call parser_prod#AParExprs#n_cpar= on <self:AParExprs>*/
7548 }
7549 goto RET_LABEL;
7550 } else {
7551 }
7552 RET_LABEL:;
7553 }
7554 /* method parser_prod#AParExprs#replace_child for (self: Object, ANode, nullable ANode) */
7555 void VIRTUAL_parser_prod__AParExprs__replace_child(val* self, val* p0, val* p1) {
7556 parser_prod__AParExprs__replace_child(self, p0, p1); /* Direct call parser_prod#AParExprs#replace_child on <self:Object(AParExprs)>*/
7557 RET_LABEL:;
7558 }
7559 /* method parser_prod#AParExprs#n_opar= for (self: AParExprs, TOpar) */
7560 void parser_prod__AParExprs__n_opar_61d(val* self, val* p0) {
7561 val* var_node /* var node: TOpar */;
7562 var_node = p0;
7563 self->attrs[COLOR_parser_nodes__AParExprs___n_opar].val = var_node; /* _n_opar on <self:AParExprs> */
7564 {
7565 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TOpar> */
7566 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TOpar> */
7567 RET_LABEL1:(void)0;
7568 }
7569 }
7570 RET_LABEL:;
7571 }
7572 /* method parser_prod#AParExprs#n_opar= for (self: Object, TOpar) */
7573 void VIRTUAL_parser_prod__AParExprs__n_opar_61d(val* self, val* p0) {
7574 parser_prod__AParExprs__n_opar_61d(self, p0); /* Direct call parser_prod#AParExprs#n_opar= on <self:Object(AParExprs)>*/
7575 RET_LABEL:;
7576 }
7577 /* method parser_prod#AParExprs#n_cpar= for (self: AParExprs, TCpar) */
7578 void parser_prod__AParExprs__n_cpar_61d(val* self, val* p0) {
7579 val* var_node /* var node: TCpar */;
7580 var_node = p0;
7581 self->attrs[COLOR_parser_nodes__AParExprs___n_cpar].val = var_node; /* _n_cpar on <self:AParExprs> */
7582 {
7583 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TCpar> */
7584 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TCpar> */
7585 RET_LABEL1:(void)0;
7586 }
7587 }
7588 RET_LABEL:;
7589 }
7590 /* method parser_prod#AParExprs#n_cpar= for (self: Object, TCpar) */
7591 void VIRTUAL_parser_prod__AParExprs__n_cpar_61d(val* self, val* p0) {
7592 parser_prod__AParExprs__n_cpar_61d(self, p0); /* Direct call parser_prod#AParExprs#n_cpar= on <self:Object(AParExprs)>*/
7593 RET_LABEL:;
7594 }
7595 /* method parser_prod#AParExprs#visit_all for (self: AParExprs, Visitor) */
7596 void parser_prod__AParExprs__visit_all(val* self, val* p0) {
7597 val* var_v /* var v: Visitor */;
7598 val* var /* : TOpar */;
7599 val* var1 /* : ANodes[AExpr] */;
7600 val* var3 /* : ANodes[AExpr] */;
7601 val* var4 /* : TCpar */;
7602 var_v = p0;
7603 var = self->attrs[COLOR_parser_nodes__AParExprs___n_opar].val; /* _n_opar on <self:AParExprs> */
7604 if (unlikely(var == NULL)) {
7605 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_opar");
7606 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6865);
7607 show_backtrace(1);
7608 }
7609 {
7610 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7611 }
7612 {
7613 { /* Inline parser_nodes#AExprs#n_exprs (self) on <self:AParExprs> */
7614 var3 = self->attrs[COLOR_parser_nodes__AExprs___n_exprs].val; /* _n_exprs on <self:AParExprs> */
7615 if (unlikely(var3 == NULL)) {
7616 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
7617 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 2274);
7618 show_backtrace(1);
7619 }
7620 var1 = var3;
7621 RET_LABEL2:(void)0;
7622 }
7623 }
7624 {
7625 parser_nodes__ANodes__visit_all(var1, var_v); /* Direct call parser_nodes#ANodes#visit_all on <var1:ANodes[AExpr]>*/
7626 }
7627 var4 = self->attrs[COLOR_parser_nodes__AParExprs___n_cpar].val; /* _n_cpar on <self:AParExprs> */
7628 if (unlikely(var4 == NULL)) {
7629 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_cpar");
7630 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6867);
7631 show_backtrace(1);
7632 }
7633 {
7634 parser_nodes__Visitor__enter_visit(var_v, var4); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7635 }
7636 RET_LABEL:;
7637 }
7638 /* method parser_prod#AParExprs#visit_all for (self: Object, Visitor) */
7639 void VIRTUAL_parser_prod__AParExprs__visit_all(val* self, val* p0) {
7640 parser_prod__AParExprs__visit_all(self, p0); /* Direct call parser_prod#AParExprs#visit_all on <self:Object(AParExprs)>*/
7641 RET_LABEL:;
7642 }
7643 /* method parser_prod#ABraExprs#init_abraexprs for (self: ABraExprs, nullable TObra, Collection[Object], nullable TCbra) */
7644 void parser_prod__ABraExprs__init_abraexprs(val* self, val* p0, val* p1, val* p2) {
7645 val* var_n_obra /* var n_obra: nullable TObra */;
7646 val* var_n_exprs /* var n_exprs: Collection[Object] */;
7647 val* var_n_cbra /* var n_cbra: nullable TCbra */;
7648 val* var /* : ANodes[AExpr] */;
7649 val* var3 /* : ANodes[AExpr] */;
7650 var_n_obra = p0;
7651 var_n_exprs = p1;
7652 var_n_cbra = p2;
7653 if (unlikely(var_n_obra == NULL)) {
7654 PRINT_ERROR("Runtime error: %s", "Cast failed");
7655 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6877);
7656 show_backtrace(1);
7657 }
7658 self->attrs[COLOR_parser_nodes__ABraExprs___n_obra].val = var_n_obra; /* _n_obra on <self:ABraExprs> */
7659 if (var_n_obra == NULL) {
7660 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7661 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6878);
7662 show_backtrace(1);
7663 } else {
7664 { /* Inline parser_nodes#ANode#parent= (var_n_obra,self) on <var_n_obra:nullable TObra> */
7665 if (unlikely(var_n_obra == NULL)) {
7666 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7667 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
7668 show_backtrace(1);
7669 }
7670 var_n_obra->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_obra:nullable TObra> */
7671 RET_LABEL1:(void)0;
7672 }
7673 }
7674 {
7675 { /* Inline parser_nodes#AExprs#n_exprs (self) on <self:ABraExprs> */
7676 var3 = self->attrs[COLOR_parser_nodes__AExprs___n_exprs].val; /* _n_exprs on <self:ABraExprs> */
7677 if (unlikely(var3 == NULL)) {
7678 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
7679 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 2274);
7680 show_backtrace(1);
7681 }
7682 var = var3;
7683 RET_LABEL2:(void)0;
7684 }
7685 }
7686 {
7687 parser_nodes__ANodes__unsafe_add_all(var, var_n_exprs); /* Direct call parser_nodes#ANodes#unsafe_add_all on <var:ANodes[AExpr]>*/
7688 }
7689 if (unlikely(var_n_cbra == NULL)) {
7690 PRINT_ERROR("Runtime error: %s", "Cast failed");
7691 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6880);
7692 show_backtrace(1);
7693 }
7694 self->attrs[COLOR_parser_nodes__ABraExprs___n_cbra].val = var_n_cbra; /* _n_cbra on <self:ABraExprs> */
7695 if (var_n_cbra == NULL) {
7696 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7697 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6881);
7698 show_backtrace(1);
7699 } else {
7700 { /* Inline parser_nodes#ANode#parent= (var_n_cbra,self) on <var_n_cbra:nullable TCbra> */
7701 if (unlikely(var_n_cbra == NULL)) {
7702 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7703 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
7704 show_backtrace(1);
7705 }
7706 var_n_cbra->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_cbra:nullable TCbra> */
7707 RET_LABEL4:(void)0;
7708 }
7709 }
7710 RET_LABEL:;
7711 }
7712 /* method parser_prod#ABraExprs#init_abraexprs for (self: Object, nullable TObra, Collection[Object], nullable TCbra) */
7713 void VIRTUAL_parser_prod__ABraExprs__init_abraexprs(val* self, val* p0, val* p1, val* p2) {
7714 parser_prod__ABraExprs__init_abraexprs(self, p0, p1, p2); /* Direct call parser_prod#ABraExprs#init_abraexprs on <self:Object(ABraExprs)>*/
7715 RET_LABEL:;
7716 }
7717 /* method parser_prod#ABraExprs#replace_child for (self: ABraExprs, ANode, nullable ANode) */
7718 void parser_prod__ABraExprs__replace_child(val* self, val* p0, val* p1) {
7719 val* var_old_child /* var old_child: ANode */;
7720 val* var_new_child /* var new_child: nullable ANode */;
7721 val* var /* : TObra */;
7722 short int var1 /* : Bool */;
7723 short int var2 /* : Bool */;
7724 val* var_other /* var other: nullable Object */;
7725 short int var4 /* : Bool */;
7726 short int var6 /* : Bool */;
7727 short int var7 /* : Bool */;
7728 int cltype;
7729 int idtype;
7730 const char* var_class_name;
7731 val* var8 /* : ANodes[AExpr] */;
7732 val* var10 /* : ANodes[AExpr] */;
7733 short int var11 /* : Bool */;
7734 val* var12 /* : TCbra */;
7735 short int var13 /* : Bool */;
7736 short int var14 /* : Bool */;
7737 short int var16 /* : Bool */;
7738 short int var18 /* : Bool */;
7739 short int var19 /* : Bool */;
7740 int cltype20;
7741 int idtype21;
7742 const char* var_class_name22;
7743 var_old_child = p0;
7744 var_new_child = p1;
7745 var = self->attrs[COLOR_parser_nodes__ABraExprs___n_obra].val; /* _n_obra on <self:ABraExprs> */
7746 if (unlikely(var == NULL)) {
7747 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_obra");
7748 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6886);
7749 show_backtrace(1);
7750 }
7751 {
7752 { /* Inline kernel#Object#== (var,var_old_child) on <var:TObra> */
7753 var_other = var_old_child;
7754 {
7755 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TObra> */
7756 var6 = var == var_other;
7757 var4 = var6;
7758 goto RET_LABEL5;
7759 RET_LABEL5:(void)0;
7760 }
7761 }
7762 var2 = var4;
7763 goto RET_LABEL3;
7764 RET_LABEL3:(void)0;
7765 }
7766 var1 = var2;
7767 }
7768 if (var1){
7769 /* <var_new_child:nullable ANode> isa TObra */
7770 cltype = type_parser_nodes__TObra.color;
7771 idtype = type_parser_nodes__TObra.id;
7772 if(var_new_child == NULL) {
7773 var7 = 0;
7774 } else {
7775 if(cltype >= var_new_child->type->table_size) {
7776 var7 = 0;
7777 } else {
7778 var7 = var_new_child->type->type_table[cltype] == idtype;
7779 }
7780 }
7781 if (unlikely(!var7)) {
7782 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
7783 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TObra", var_class_name);
7784 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6887);
7785 show_backtrace(1);
7786 }
7787 {
7788 parser_prod__ABraExprs__n_obra_61d(self, var_new_child); /* Direct call parser_prod#ABraExprs#n_obra= on <self:ABraExprs>*/
7789 }
7790 goto RET_LABEL;
7791 } else {
7792 }
7793 {
7794 { /* Inline parser_nodes#AExprs#n_exprs (self) on <self:ABraExprs> */
7795 var10 = self->attrs[COLOR_parser_nodes__AExprs___n_exprs].val; /* _n_exprs on <self:ABraExprs> */
7796 if (unlikely(var10 == NULL)) {
7797 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
7798 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 2274);
7799 show_backtrace(1);
7800 }
7801 var8 = var10;
7802 RET_LABEL9:(void)0;
7803 }
7804 }
7805 {
7806 var11 = parser_nodes__ANodes__replace_child(var8, var_old_child, var_new_child);
7807 }
7808 if (var11){
7809 goto RET_LABEL;
7810 } else {
7811 }
7812 var12 = self->attrs[COLOR_parser_nodes__ABraExprs___n_cbra].val; /* _n_cbra on <self:ABraExprs> */
7813 if (unlikely(var12 == NULL)) {
7814 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_cbra");
7815 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6891);
7816 show_backtrace(1);
7817 }
7818 {
7819 { /* Inline kernel#Object#== (var12,var_old_child) on <var12:TCbra> */
7820 var_other = var_old_child;
7821 {
7822 { /* Inline kernel#Object#is_same_instance (var12,var_other) on <var12:TCbra> */
7823 var18 = var12 == var_other;
7824 var16 = var18;
7825 goto RET_LABEL17;
7826 RET_LABEL17:(void)0;
7827 }
7828 }
7829 var14 = var16;
7830 goto RET_LABEL15;
7831 RET_LABEL15:(void)0;
7832 }
7833 var13 = var14;
7834 }
7835 if (var13){
7836 /* <var_new_child:nullable ANode> isa TCbra */
7837 cltype20 = type_parser_nodes__TCbra.color;
7838 idtype21 = type_parser_nodes__TCbra.id;
7839 if(var_new_child == NULL) {
7840 var19 = 0;
7841 } else {
7842 if(cltype20 >= var_new_child->type->table_size) {
7843 var19 = 0;
7844 } else {
7845 var19 = var_new_child->type->type_table[cltype20] == idtype21;
7846 }
7847 }
7848 if (unlikely(!var19)) {
7849 var_class_name22 = var_new_child == NULL ? "null" : var_new_child->type->name;
7850 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TCbra", var_class_name22);
7851 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6892);
7852 show_backtrace(1);
7853 }
7854 {
7855 parser_prod__ABraExprs__n_cbra_61d(self, var_new_child); /* Direct call parser_prod#ABraExprs#n_cbra= on <self:ABraExprs>*/
7856 }
7857 goto RET_LABEL;
7858 } else {
7859 }
7860 RET_LABEL:;
7861 }
7862 /* method parser_prod#ABraExprs#replace_child for (self: Object, ANode, nullable ANode) */
7863 void VIRTUAL_parser_prod__ABraExprs__replace_child(val* self, val* p0, val* p1) {
7864 parser_prod__ABraExprs__replace_child(self, p0, p1); /* Direct call parser_prod#ABraExprs#replace_child on <self:Object(ABraExprs)>*/
7865 RET_LABEL:;
7866 }
7867 /* method parser_prod#ABraExprs#n_obra= for (self: ABraExprs, TObra) */
7868 void parser_prod__ABraExprs__n_obra_61d(val* self, val* p0) {
7869 val* var_node /* var node: TObra */;
7870 var_node = p0;
7871 self->attrs[COLOR_parser_nodes__ABraExprs___n_obra].val = var_node; /* _n_obra on <self:ABraExprs> */
7872 {
7873 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TObra> */
7874 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TObra> */
7875 RET_LABEL1:(void)0;
7876 }
7877 }
7878 RET_LABEL:;
7879 }
7880 /* method parser_prod#ABraExprs#n_obra= for (self: Object, TObra) */
7881 void VIRTUAL_parser_prod__ABraExprs__n_obra_61d(val* self, val* p0) {
7882 parser_prod__ABraExprs__n_obra_61d(self, p0); /* Direct call parser_prod#ABraExprs#n_obra= on <self:Object(ABraExprs)>*/
7883 RET_LABEL:;
7884 }
7885 /* method parser_prod#ABraExprs#n_cbra= for (self: ABraExprs, TCbra) */
7886 void parser_prod__ABraExprs__n_cbra_61d(val* self, val* p0) {
7887 val* var_node /* var node: TCbra */;
7888 var_node = p0;
7889 self->attrs[COLOR_parser_nodes__ABraExprs___n_cbra].val = var_node; /* _n_cbra on <self:ABraExprs> */
7890 {
7891 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TCbra> */
7892 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TCbra> */
7893 RET_LABEL1:(void)0;
7894 }
7895 }
7896 RET_LABEL:;
7897 }
7898 /* method parser_prod#ABraExprs#n_cbra= for (self: Object, TCbra) */
7899 void VIRTUAL_parser_prod__ABraExprs__n_cbra_61d(val* self, val* p0) {
7900 parser_prod__ABraExprs__n_cbra_61d(self, p0); /* Direct call parser_prod#ABraExprs#n_cbra= on <self:Object(ABraExprs)>*/
7901 RET_LABEL:;
7902 }
7903 /* method parser_prod#ABraExprs#visit_all for (self: ABraExprs, Visitor) */
7904 void parser_prod__ABraExprs__visit_all(val* self, val* p0) {
7905 val* var_v /* var v: Visitor */;
7906 val* var /* : TObra */;
7907 val* var1 /* : ANodes[AExpr] */;
7908 val* var3 /* : ANodes[AExpr] */;
7909 val* var4 /* : TCbra */;
7910 var_v = p0;
7911 var = self->attrs[COLOR_parser_nodes__ABraExprs___n_obra].val; /* _n_obra on <self:ABraExprs> */
7912 if (unlikely(var == NULL)) {
7913 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_obra");
7914 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6911);
7915 show_backtrace(1);
7916 }
7917 {
7918 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7919 }
7920 {
7921 { /* Inline parser_nodes#AExprs#n_exprs (self) on <self:ABraExprs> */
7922 var3 = self->attrs[COLOR_parser_nodes__AExprs___n_exprs].val; /* _n_exprs on <self:ABraExprs> */
7923 if (unlikely(var3 == NULL)) {
7924 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
7925 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 2274);
7926 show_backtrace(1);
7927 }
7928 var1 = var3;
7929 RET_LABEL2:(void)0;
7930 }
7931 }
7932 {
7933 parser_nodes__ANodes__visit_all(var1, var_v); /* Direct call parser_nodes#ANodes#visit_all on <var1:ANodes[AExpr]>*/
7934 }
7935 var4 = self->attrs[COLOR_parser_nodes__ABraExprs___n_cbra].val; /* _n_cbra on <self:ABraExprs> */
7936 if (unlikely(var4 == NULL)) {
7937 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_cbra");
7938 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6913);
7939 show_backtrace(1);
7940 }
7941 {
7942 parser_nodes__Visitor__enter_visit(var_v, var4); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7943 }
7944 RET_LABEL:;
7945 }
7946 /* method parser_prod#ABraExprs#visit_all for (self: Object, Visitor) */
7947 void VIRTUAL_parser_prod__ABraExprs__visit_all(val* self, val* p0) {
7948 parser_prod__ABraExprs__visit_all(self, p0); /* Direct call parser_prod#ABraExprs#visit_all on <self:Object(ABraExprs)>*/
7949 RET_LABEL:;
7950 }
7951 /* method parser_prod#APlusAssignOp#init_aplusassignop for (self: APlusAssignOp, nullable TPluseq) */
7952 void parser_prod__APlusAssignOp__init_aplusassignop(val* self, val* p0) {
7953 val* var_n_pluseq /* var n_pluseq: nullable TPluseq */;
7954 var_n_pluseq = p0;
7955 if (unlikely(var_n_pluseq == NULL)) {
7956 PRINT_ERROR("Runtime error: %s", "Cast failed");
7957 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6921);
7958 show_backtrace(1);
7959 }
7960 self->attrs[COLOR_parser_nodes__APlusAssignOp___n_pluseq].val = var_n_pluseq; /* _n_pluseq on <self:APlusAssignOp> */
7961 if (var_n_pluseq == NULL) {
7962 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7963 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6922);
7964 show_backtrace(1);
7965 } else {
7966 { /* Inline parser_nodes#ANode#parent= (var_n_pluseq,self) on <var_n_pluseq:nullable TPluseq> */
7967 if (unlikely(var_n_pluseq == NULL)) {
7968 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7969 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
7970 show_backtrace(1);
7971 }
7972 var_n_pluseq->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_pluseq:nullable TPluseq> */
7973 RET_LABEL1:(void)0;
7974 }
7975 }
7976 RET_LABEL:;
7977 }
7978 /* method parser_prod#APlusAssignOp#init_aplusassignop for (self: Object, nullable TPluseq) */
7979 void VIRTUAL_parser_prod__APlusAssignOp__init_aplusassignop(val* self, val* p0) {
7980 parser_prod__APlusAssignOp__init_aplusassignop(self, p0); /* Direct call parser_prod#APlusAssignOp#init_aplusassignop on <self:Object(APlusAssignOp)>*/
7981 RET_LABEL:;
7982 }
7983 /* method parser_prod#APlusAssignOp#replace_child for (self: APlusAssignOp, ANode, nullable ANode) */
7984 void parser_prod__APlusAssignOp__replace_child(val* self, val* p0, val* p1) {
7985 val* var_old_child /* var old_child: ANode */;
7986 val* var_new_child /* var new_child: nullable ANode */;
7987 val* var /* : TPluseq */;
7988 short int var1 /* : Bool */;
7989 short int var2 /* : Bool */;
7990 val* var_other /* var other: nullable Object */;
7991 short int var4 /* : Bool */;
7992 short int var6 /* : Bool */;
7993 short int var7 /* : Bool */;
7994 int cltype;
7995 int idtype;
7996 const char* var_class_name;
7997 var_old_child = p0;
7998 var_new_child = p1;
7999 var = self->attrs[COLOR_parser_nodes__APlusAssignOp___n_pluseq].val; /* _n_pluseq on <self:APlusAssignOp> */
8000 if (unlikely(var == NULL)) {
8001 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_pluseq");
8002 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6927);
8003 show_backtrace(1);
8004 }
8005 {
8006 { /* Inline kernel#Object#== (var,var_old_child) on <var:TPluseq> */
8007 var_other = var_old_child;
8008 {
8009 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TPluseq> */
8010 var6 = var == var_other;
8011 var4 = var6;
8012 goto RET_LABEL5;
8013 RET_LABEL5:(void)0;
8014 }
8015 }
8016 var2 = var4;
8017 goto RET_LABEL3;
8018 RET_LABEL3:(void)0;
8019 }
8020 var1 = var2;
8021 }
8022 if (var1){
8023 /* <var_new_child:nullable ANode> isa TPluseq */
8024 cltype = type_parser_nodes__TPluseq.color;
8025 idtype = type_parser_nodes__TPluseq.id;
8026 if(var_new_child == NULL) {
8027 var7 = 0;
8028 } else {
8029 if(cltype >= var_new_child->type->table_size) {
8030 var7 = 0;
8031 } else {
8032 var7 = var_new_child->type->type_table[cltype] == idtype;
8033 }
8034 }
8035 if (unlikely(!var7)) {
8036 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
8037 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TPluseq", var_class_name);
8038 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6928);
8039 show_backtrace(1);
8040 }
8041 {
8042 parser_prod__APlusAssignOp__n_pluseq_61d(self, var_new_child); /* Direct call parser_prod#APlusAssignOp#n_pluseq= on <self:APlusAssignOp>*/
8043 }
8044 goto RET_LABEL;
8045 } else {
8046 }
8047 RET_LABEL:;
8048 }
8049 /* method parser_prod#APlusAssignOp#replace_child for (self: Object, ANode, nullable ANode) */
8050 void VIRTUAL_parser_prod__APlusAssignOp__replace_child(val* self, val* p0, val* p1) {
8051 parser_prod__APlusAssignOp__replace_child(self, p0, p1); /* Direct call parser_prod#APlusAssignOp#replace_child on <self:Object(APlusAssignOp)>*/
8052 RET_LABEL:;
8053 }
8054 /* method parser_prod#APlusAssignOp#n_pluseq= for (self: APlusAssignOp, TPluseq) */
8055 void parser_prod__APlusAssignOp__n_pluseq_61d(val* self, val* p0) {
8056 val* var_node /* var node: TPluseq */;
8057 var_node = p0;
8058 self->attrs[COLOR_parser_nodes__APlusAssignOp___n_pluseq].val = var_node; /* _n_pluseq on <self:APlusAssignOp> */
8059 {
8060 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TPluseq> */
8061 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TPluseq> */
8062 RET_LABEL1:(void)0;
8063 }
8064 }
8065 RET_LABEL:;
8066 }
8067 /* method parser_prod#APlusAssignOp#n_pluseq= for (self: Object, TPluseq) */
8068 void VIRTUAL_parser_prod__APlusAssignOp__n_pluseq_61d(val* self, val* p0) {
8069 parser_prod__APlusAssignOp__n_pluseq_61d(self, p0); /* Direct call parser_prod#APlusAssignOp#n_pluseq= on <self:Object(APlusAssignOp)>*/
8070 RET_LABEL:;
8071 }
8072 /* method parser_prod#APlusAssignOp#visit_all for (self: APlusAssignOp, Visitor) */
8073 void parser_prod__APlusAssignOp__visit_all(val* self, val* p0) {
8074 val* var_v /* var v: Visitor */;
8075 val* var /* : TPluseq */;
8076 var_v = p0;
8077 var = self->attrs[COLOR_parser_nodes__APlusAssignOp___n_pluseq].val; /* _n_pluseq on <self:APlusAssignOp> */
8078 if (unlikely(var == NULL)) {
8079 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_pluseq");
8080 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6942);
8081 show_backtrace(1);
8082 }
8083 {
8084 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8085 }
8086 RET_LABEL:;
8087 }
8088 /* method parser_prod#APlusAssignOp#visit_all for (self: Object, Visitor) */
8089 void VIRTUAL_parser_prod__APlusAssignOp__visit_all(val* self, val* p0) {
8090 parser_prod__APlusAssignOp__visit_all(self, p0); /* Direct call parser_prod#APlusAssignOp#visit_all on <self:Object(APlusAssignOp)>*/
8091 RET_LABEL:;
8092 }
8093 /* method parser_prod#AMinusAssignOp#init_aminusassignop for (self: AMinusAssignOp, nullable TMinuseq) */
8094 void parser_prod__AMinusAssignOp__init_aminusassignop(val* self, val* p0) {
8095 val* var_n_minuseq /* var n_minuseq: nullable TMinuseq */;
8096 var_n_minuseq = p0;
8097 if (unlikely(var_n_minuseq == NULL)) {
8098 PRINT_ERROR("Runtime error: %s", "Cast failed");
8099 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6950);
8100 show_backtrace(1);
8101 }
8102 self->attrs[COLOR_parser_nodes__AMinusAssignOp___n_minuseq].val = var_n_minuseq; /* _n_minuseq on <self:AMinusAssignOp> */
8103 if (var_n_minuseq == NULL) {
8104 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8105 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6951);
8106 show_backtrace(1);
8107 } else {
8108 { /* Inline parser_nodes#ANode#parent= (var_n_minuseq,self) on <var_n_minuseq:nullable TMinuseq> */
8109 if (unlikely(var_n_minuseq == NULL)) {
8110 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8111 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
8112 show_backtrace(1);
8113 }
8114 var_n_minuseq->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_minuseq:nullable TMinuseq> */
8115 RET_LABEL1:(void)0;
8116 }
8117 }
8118 RET_LABEL:;
8119 }
8120 /* method parser_prod#AMinusAssignOp#init_aminusassignop for (self: Object, nullable TMinuseq) */
8121 void VIRTUAL_parser_prod__AMinusAssignOp__init_aminusassignop(val* self, val* p0) {
8122 parser_prod__AMinusAssignOp__init_aminusassignop(self, p0); /* Direct call parser_prod#AMinusAssignOp#init_aminusassignop on <self:Object(AMinusAssignOp)>*/
8123 RET_LABEL:;
8124 }
8125 /* method parser_prod#AMinusAssignOp#replace_child for (self: AMinusAssignOp, ANode, nullable ANode) */
8126 void parser_prod__AMinusAssignOp__replace_child(val* self, val* p0, val* p1) {
8127 val* var_old_child /* var old_child: ANode */;
8128 val* var_new_child /* var new_child: nullable ANode */;
8129 val* var /* : TMinuseq */;
8130 short int var1 /* : Bool */;
8131 short int var2 /* : Bool */;
8132 val* var_other /* var other: nullable Object */;
8133 short int var4 /* : Bool */;
8134 short int var6 /* : Bool */;
8135 short int var7 /* : Bool */;
8136 int cltype;
8137 int idtype;
8138 const char* var_class_name;
8139 var_old_child = p0;
8140 var_new_child = p1;
8141 var = self->attrs[COLOR_parser_nodes__AMinusAssignOp___n_minuseq].val; /* _n_minuseq on <self:AMinusAssignOp> */
8142 if (unlikely(var == NULL)) {
8143 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_minuseq");
8144 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6956);
8145 show_backtrace(1);
8146 }
8147 {
8148 { /* Inline kernel#Object#== (var,var_old_child) on <var:TMinuseq> */
8149 var_other = var_old_child;
8150 {
8151 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TMinuseq> */
8152 var6 = var == var_other;
8153 var4 = var6;
8154 goto RET_LABEL5;
8155 RET_LABEL5:(void)0;
8156 }
8157 }
8158 var2 = var4;
8159 goto RET_LABEL3;
8160 RET_LABEL3:(void)0;
8161 }
8162 var1 = var2;
8163 }
8164 if (var1){
8165 /* <var_new_child:nullable ANode> isa TMinuseq */
8166 cltype = type_parser_nodes__TMinuseq.color;
8167 idtype = type_parser_nodes__TMinuseq.id;
8168 if(var_new_child == NULL) {
8169 var7 = 0;
8170 } else {
8171 if(cltype >= var_new_child->type->table_size) {
8172 var7 = 0;
8173 } else {
8174 var7 = var_new_child->type->type_table[cltype] == idtype;
8175 }
8176 }
8177 if (unlikely(!var7)) {
8178 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
8179 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TMinuseq", var_class_name);
8180 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6957);
8181 show_backtrace(1);
8182 }
8183 {
8184 parser_prod__AMinusAssignOp__n_minuseq_61d(self, var_new_child); /* Direct call parser_prod#AMinusAssignOp#n_minuseq= on <self:AMinusAssignOp>*/
8185 }
8186 goto RET_LABEL;
8187 } else {
8188 }
8189 RET_LABEL:;
8190 }
8191 /* method parser_prod#AMinusAssignOp#replace_child for (self: Object, ANode, nullable ANode) */
8192 void VIRTUAL_parser_prod__AMinusAssignOp__replace_child(val* self, val* p0, val* p1) {
8193 parser_prod__AMinusAssignOp__replace_child(self, p0, p1); /* Direct call parser_prod#AMinusAssignOp#replace_child on <self:Object(AMinusAssignOp)>*/
8194 RET_LABEL:;
8195 }
8196 /* method parser_prod#AMinusAssignOp#n_minuseq= for (self: AMinusAssignOp, TMinuseq) */
8197 void parser_prod__AMinusAssignOp__n_minuseq_61d(val* self, val* p0) {
8198 val* var_node /* var node: TMinuseq */;
8199 var_node = p0;
8200 self->attrs[COLOR_parser_nodes__AMinusAssignOp___n_minuseq].val = var_node; /* _n_minuseq on <self:AMinusAssignOp> */
8201 {
8202 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TMinuseq> */
8203 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TMinuseq> */
8204 RET_LABEL1:(void)0;
8205 }
8206 }
8207 RET_LABEL:;
8208 }
8209 /* method parser_prod#AMinusAssignOp#n_minuseq= for (self: Object, TMinuseq) */
8210 void VIRTUAL_parser_prod__AMinusAssignOp__n_minuseq_61d(val* self, val* p0) {
8211 parser_prod__AMinusAssignOp__n_minuseq_61d(self, p0); /* Direct call parser_prod#AMinusAssignOp#n_minuseq= on <self:Object(AMinusAssignOp)>*/
8212 RET_LABEL:;
8213 }
8214 /* method parser_prod#AMinusAssignOp#visit_all for (self: AMinusAssignOp, Visitor) */
8215 void parser_prod__AMinusAssignOp__visit_all(val* self, val* p0) {
8216 val* var_v /* var v: Visitor */;
8217 val* var /* : TMinuseq */;
8218 var_v = p0;
8219 var = self->attrs[COLOR_parser_nodes__AMinusAssignOp___n_minuseq].val; /* _n_minuseq on <self:AMinusAssignOp> */
8220 if (unlikely(var == NULL)) {
8221 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_minuseq");
8222 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6971);
8223 show_backtrace(1);
8224 }
8225 {
8226 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8227 }
8228 RET_LABEL:;
8229 }
8230 /* method parser_prod#AMinusAssignOp#visit_all for (self: Object, Visitor) */
8231 void VIRTUAL_parser_prod__AMinusAssignOp__visit_all(val* self, val* p0) {
8232 parser_prod__AMinusAssignOp__visit_all(self, p0); /* Direct call parser_prod#AMinusAssignOp#visit_all on <self:Object(AMinusAssignOp)>*/
8233 RET_LABEL:;
8234 }
8235 /* method parser_prod#AModuleName#init_amodulename for (self: AModuleName, nullable TQuad, Collection[Object], nullable TId) */
8236 void parser_prod__AModuleName__init_amodulename(val* self, val* p0, val* p1, val* p2) {
8237 val* var_n_quad /* var n_quad: nullable TQuad */;
8238 val* var_n_path /* var n_path: Collection[Object] */;
8239 val* var_n_id /* var n_id: nullable TId */;
8240 val* var /* : null */;
8241 short int var1 /* : Bool */;
8242 short int var2 /* : Bool */;
8243 val* var_other /* var other: nullable Object */;
8244 short int var4 /* : Bool */;
8245 short int var5 /* : Bool */;
8246 short int var6 /* : Bool */;
8247 val* var8 /* : ANodes[TId] */;
8248 val* var10 /* : ANodes[TId] */;
8249 var_n_quad = p0;
8250 var_n_path = p1;
8251 var_n_id = p2;
8252 self->attrs[COLOR_parser_nodes__AModuleName___n_quad].val = var_n_quad; /* _n_quad on <self:AModuleName> */
8253 var = NULL;
8254 if (var_n_quad == NULL) {
8255 var1 = 0; /* is null */
8256 } else {
8257 var1 = 1; /* arg is null and recv is not */
8258 }
8259 if (0) {
8260 { /* Inline kernel#Object#!= (var_n_quad,var) on <var_n_quad:nullable TQuad> */
8261 var_other = var;
8262 {
8263 var5 = ((short int (*)(val*, val*))(var_n_quad->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_quad, var_other) /* == on <var_n_quad:nullable TQuad(TQuad)>*/;
8264 var4 = var5;
8265 }
8266 var6 = !var4;
8267 var2 = var6;
8268 goto RET_LABEL3;
8269 RET_LABEL3:(void)0;
8270 }
8271 var1 = var2;
8272 }
8273 if (var1){
8274 {
8275 { /* Inline parser_nodes#ANode#parent= (var_n_quad,self) on <var_n_quad:nullable TQuad(TQuad)> */
8276 var_n_quad->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_quad:nullable TQuad(TQuad)> */
8277 RET_LABEL7:(void)0;
8278 }
8279 }
8280 } else {
8281 }
8282 {
8283 { /* Inline parser_nodes#AModuleName#n_path (self) on <self:AModuleName> */
8284 var10 = self->attrs[COLOR_parser_nodes__AModuleName___n_path].val; /* _n_path on <self:AModuleName> */
8285 if (unlikely(var10 == NULL)) {
8286 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_path");
8287 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 2349);
8288 show_backtrace(1);
8289 }
8290 var8 = var10;
8291 RET_LABEL9:(void)0;
8292 }
8293 }
8294 {
8295 parser_nodes__ANodes__unsafe_add_all(var8, var_n_path); /* Direct call parser_nodes#ANodes#unsafe_add_all on <var8:ANodes[TId]>*/
8296 }
8297 if (unlikely(var_n_id == NULL)) {
8298 PRINT_ERROR("Runtime error: %s", "Cast failed");
8299 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6984);
8300 show_backtrace(1);
8301 }
8302 self->attrs[COLOR_parser_nodes__AModuleName___n_id].val = var_n_id; /* _n_id on <self:AModuleName> */
8303 if (var_n_id == NULL) {
8304 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8305 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6985);
8306 show_backtrace(1);
8307 } else {
8308 { /* Inline parser_nodes#ANode#parent= (var_n_id,self) on <var_n_id:nullable TId> */
8309 if (unlikely(var_n_id == NULL)) {
8310 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8311 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
8312 show_backtrace(1);
8313 }
8314 var_n_id->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_id:nullable TId> */
8315 RET_LABEL11:(void)0;
8316 }
8317 }
8318 RET_LABEL:;
8319 }
8320 /* method parser_prod#AModuleName#init_amodulename for (self: Object, nullable TQuad, Collection[Object], nullable TId) */
8321 void VIRTUAL_parser_prod__AModuleName__init_amodulename(val* self, val* p0, val* p1, val* p2) {
8322 parser_prod__AModuleName__init_amodulename(self, p0, p1, p2); /* Direct call parser_prod#AModuleName#init_amodulename on <self:Object(AModuleName)>*/
8323 RET_LABEL:;
8324 }
8325 /* method parser_prod#AModuleName#replace_child for (self: AModuleName, ANode, nullable ANode) */
8326 void parser_prod__AModuleName__replace_child(val* self, val* p0, val* p1) {
8327 val* var_old_child /* var old_child: ANode */;
8328 val* var_new_child /* var new_child: nullable ANode */;
8329 val* var /* : nullable TQuad */;
8330 short int var1 /* : Bool */;
8331 short int var2 /* : Bool */;
8332 val* var_other /* var other: nullable Object */;
8333 short int var4 /* : Bool */;
8334 short int var6 /* : Bool */;
8335 short int var7 /* : Bool */;
8336 int cltype;
8337 int idtype;
8338 const char* var_class_name;
8339 val* var8 /* : ANodes[TId] */;
8340 val* var10 /* : ANodes[TId] */;
8341 short int var11 /* : Bool */;
8342 val* var12 /* : TId */;
8343 short int var13 /* : Bool */;
8344 short int var14 /* : Bool */;
8345 short int var16 /* : Bool */;
8346 short int var18 /* : Bool */;
8347 short int var19 /* : Bool */;
8348 int cltype20;
8349 int idtype21;
8350 const char* var_class_name22;
8351 var_old_child = p0;
8352 var_new_child = p1;
8353 var = self->attrs[COLOR_parser_nodes__AModuleName___n_quad].val; /* _n_quad on <self:AModuleName> */
8354 if (var == NULL) {
8355 var1 = 0; /* <var_old_child:ANode> cannot be null */
8356 } else {
8357 { /* Inline kernel#Object#== (var,var_old_child) on <var:nullable TQuad> */
8358 var_other = var_old_child;
8359 {
8360 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:nullable TQuad(TQuad)> */
8361 var6 = var == var_other;
8362 var4 = var6;
8363 goto RET_LABEL5;
8364 RET_LABEL5:(void)0;
8365 }
8366 }
8367 var2 = var4;
8368 goto RET_LABEL3;
8369 RET_LABEL3:(void)0;
8370 }
8371 var1 = var2;
8372 }
8373 if (var1){
8374 /* <var_new_child:nullable ANode> isa nullable TQuad */
8375 cltype = type_nullable_parser_nodes__TQuad.color;
8376 idtype = type_nullable_parser_nodes__TQuad.id;
8377 if(var_new_child == NULL) {
8378 var7 = 1;
8379 } else {
8380 if(cltype >= var_new_child->type->table_size) {
8381 var7 = 0;
8382 } else {
8383 var7 = var_new_child->type->type_table[cltype] == idtype;
8384 }
8385 }
8386 if (unlikely(!var7)) {
8387 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
8388 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TQuad", var_class_name);
8389 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6991);
8390 show_backtrace(1);
8391 }
8392 {
8393 parser_prod__AModuleName__n_quad_61d(self, var_new_child); /* Direct call parser_prod#AModuleName#n_quad= on <self:AModuleName>*/
8394 }
8395 goto RET_LABEL;
8396 } else {
8397 }
8398 {
8399 { /* Inline parser_nodes#AModuleName#n_path (self) on <self:AModuleName> */
8400 var10 = self->attrs[COLOR_parser_nodes__AModuleName___n_path].val; /* _n_path on <self:AModuleName> */
8401 if (unlikely(var10 == NULL)) {
8402 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_path");
8403 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 2349);
8404 show_backtrace(1);
8405 }
8406 var8 = var10;
8407 RET_LABEL9:(void)0;
8408 }
8409 }
8410 {
8411 var11 = parser_nodes__ANodes__replace_child(var8, var_old_child, var_new_child);
8412 }
8413 if (var11){
8414 goto RET_LABEL;
8415 } else {
8416 }
8417 var12 = self->attrs[COLOR_parser_nodes__AModuleName___n_id].val; /* _n_id on <self:AModuleName> */
8418 if (unlikely(var12 == NULL)) {
8419 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
8420 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6995);
8421 show_backtrace(1);
8422 }
8423 {
8424 { /* Inline kernel#Object#== (var12,var_old_child) on <var12:TId> */
8425 var_other = var_old_child;
8426 {
8427 { /* Inline kernel#Object#is_same_instance (var12,var_other) on <var12:TId> */
8428 var18 = var12 == var_other;
8429 var16 = var18;
8430 goto RET_LABEL17;
8431 RET_LABEL17:(void)0;
8432 }
8433 }
8434 var14 = var16;
8435 goto RET_LABEL15;
8436 RET_LABEL15:(void)0;
8437 }
8438 var13 = var14;
8439 }
8440 if (var13){
8441 /* <var_new_child:nullable ANode> isa TId */
8442 cltype20 = type_parser_nodes__TId.color;
8443 idtype21 = type_parser_nodes__TId.id;
8444 if(var_new_child == NULL) {
8445 var19 = 0;
8446 } else {
8447 if(cltype20 >= var_new_child->type->table_size) {
8448 var19 = 0;
8449 } else {
8450 var19 = var_new_child->type->type_table[cltype20] == idtype21;
8451 }
8452 }
8453 if (unlikely(!var19)) {
8454 var_class_name22 = var_new_child == NULL ? "null" : var_new_child->type->name;
8455 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TId", var_class_name22);
8456 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 6996);
8457 show_backtrace(1);
8458 }
8459 {
8460 parser_prod__AModuleName__n_id_61d(self, var_new_child); /* Direct call parser_prod#AModuleName#n_id= on <self:AModuleName>*/
8461 }
8462 goto RET_LABEL;
8463 } else {
8464 }
8465 RET_LABEL:;
8466 }
8467 /* method parser_prod#AModuleName#replace_child for (self: Object, ANode, nullable ANode) */
8468 void VIRTUAL_parser_prod__AModuleName__replace_child(val* self, val* p0, val* p1) {
8469 parser_prod__AModuleName__replace_child(self, p0, p1); /* Direct call parser_prod#AModuleName#replace_child on <self:Object(AModuleName)>*/
8470 RET_LABEL:;
8471 }
8472 /* method parser_prod#AModuleName#n_quad= for (self: AModuleName, nullable TQuad) */
8473 void parser_prod__AModuleName__n_quad_61d(val* self, val* p0) {
8474 val* var_node /* var node: nullable TQuad */;
8475 val* var /* : null */;
8476 short int var1 /* : Bool */;
8477 short int var2 /* : Bool */;
8478 val* var_other /* var other: nullable Object */;
8479 short int var4 /* : Bool */;
8480 short int var5 /* : Bool */;
8481 short int var6 /* : Bool */;
8482 var_node = p0;
8483 self->attrs[COLOR_parser_nodes__AModuleName___n_quad].val = var_node; /* _n_quad on <self:AModuleName> */
8484 var = NULL;
8485 if (var_node == NULL) {
8486 var1 = 0; /* is null */
8487 } else {
8488 var1 = 1; /* arg is null and recv is not */
8489 }
8490 if (0) {
8491 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable TQuad> */
8492 var_other = var;
8493 {
8494 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable TQuad(TQuad)>*/;
8495 var4 = var5;
8496 }
8497 var6 = !var4;
8498 var2 = var6;
8499 goto RET_LABEL3;
8500 RET_LABEL3:(void)0;
8501 }
8502 var1 = var2;
8503 }
8504 if (var1){
8505 {
8506 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TQuad(TQuad)> */
8507 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TQuad(TQuad)> */
8508 RET_LABEL7:(void)0;
8509 }
8510 }
8511 } else {
8512 }
8513 RET_LABEL:;
8514 }
8515 /* method parser_prod#AModuleName#n_quad= for (self: Object, nullable TQuad) */
8516 void VIRTUAL_parser_prod__AModuleName__n_quad_61d(val* self, val* p0) {
8517 parser_prod__AModuleName__n_quad_61d(self, p0); /* Direct call parser_prod#AModuleName#n_quad= on <self:Object(AModuleName)>*/
8518 RET_LABEL:;
8519 }
8520 /* method parser_prod#AModuleName#n_id= for (self: AModuleName, TId) */
8521 void parser_prod__AModuleName__n_id_61d(val* self, val* p0) {
8522 val* var_node /* var node: TId */;
8523 var_node = p0;
8524 self->attrs[COLOR_parser_nodes__AModuleName___n_id].val = var_node; /* _n_id on <self:AModuleName> */
8525 {
8526 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TId> */
8527 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TId> */
8528 RET_LABEL1:(void)0;
8529 }
8530 }
8531 RET_LABEL:;
8532 }
8533 /* method parser_prod#AModuleName#n_id= for (self: Object, TId) */
8534 void VIRTUAL_parser_prod__AModuleName__n_id_61d(val* self, val* p0) {
8535 parser_prod__AModuleName__n_id_61d(self, p0); /* Direct call parser_prod#AModuleName#n_id= on <self:Object(AModuleName)>*/
8536 RET_LABEL:;
8537 }
8538 /* method parser_prod#AModuleName#visit_all for (self: AModuleName, Visitor) */
8539 void parser_prod__AModuleName__visit_all(val* self, val* p0) {
8540 val* var_v /* var v: Visitor */;
8541 val* var /* : nullable TQuad */;
8542 val* var1 /* : ANodes[TId] */;
8543 val* var3 /* : ANodes[TId] */;
8544 val* var4 /* : TId */;
8545 var_v = p0;
8546 var = self->attrs[COLOR_parser_nodes__AModuleName___n_quad].val; /* _n_quad on <self:AModuleName> */
8547 {
8548 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8549 }
8550 {
8551 { /* Inline parser_nodes#AModuleName#n_path (self) on <self:AModuleName> */
8552 var3 = self->attrs[COLOR_parser_nodes__AModuleName___n_path].val; /* _n_path on <self:AModuleName> */
8553 if (unlikely(var3 == NULL)) {
8554 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_path");
8555 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 2349);
8556 show_backtrace(1);
8557 }
8558 var1 = var3;
8559 RET_LABEL2:(void)0;
8560 }
8561 }
8562 {
8563 parser_nodes__ANodes__visit_all(var1, var_v); /* Direct call parser_nodes#ANodes#visit_all on <var1:ANodes[TId]>*/
8564 }
8565 var4 = self->attrs[COLOR_parser_nodes__AModuleName___n_id].val; /* _n_id on <self:AModuleName> */
8566 if (unlikely(var4 == NULL)) {
8567 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
8568 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 7017);
8569 show_backtrace(1);
8570 }
8571 {
8572 parser_nodes__Visitor__enter_visit(var_v, var4); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8573 }
8574 RET_LABEL:;
8575 }
8576 /* method parser_prod#AModuleName#visit_all for (self: Object, Visitor) */
8577 void VIRTUAL_parser_prod__AModuleName__visit_all(val* self, val* p0) {
8578 parser_prod__AModuleName__visit_all(self, p0); /* Direct call parser_prod#AModuleName#visit_all on <self:Object(AModuleName)>*/
8579 RET_LABEL:;
8580 }
8581 /* method parser_prod#AExternCalls#init_aexterncalls for (self: AExternCalls, nullable TKwimport, Collection[Object]) */
8582 void parser_prod__AExternCalls__init_aexterncalls(val* self, val* p0, val* p1) {
8583 val* var_n_kwimport /* var n_kwimport: nullable TKwimport */;
8584 val* var_n_extern_calls /* var n_extern_calls: Collection[Object] */;
8585 val* var /* : ANodes[AExternCall] */;
8586 val* var3 /* : ANodes[AExternCall] */;
8587 var_n_kwimport = p0;
8588 var_n_extern_calls = p1;
8589 if (unlikely(var_n_kwimport == NULL)) {
8590 PRINT_ERROR("Runtime error: %s", "Cast failed");
8591 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 7026);
8592 show_backtrace(1);
8593 }
8594 self->attrs[COLOR_parser_nodes__AExternCalls___n_kwimport].val = var_n_kwimport; /* _n_kwimport on <self:AExternCalls> */
8595 if (var_n_kwimport == NULL) {
8596 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8597 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 7027);
8598 show_backtrace(1);
8599 } else {
8600 { /* Inline parser_nodes#ANode#parent= (var_n_kwimport,self) on <var_n_kwimport:nullable TKwimport> */
8601 if (unlikely(var_n_kwimport == NULL)) {
8602 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8603 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
8604 show_backtrace(1);
8605 }
8606 var_n_kwimport->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwimport:nullable TKwimport> */
8607 RET_LABEL1:(void)0;
8608 }
8609 }
8610 {
8611 { /* Inline parser_nodes#AExternCalls#n_extern_calls (self) on <self:AExternCalls> */
8612 var3 = self->attrs[COLOR_parser_nodes__AExternCalls___n_extern_calls].val; /* _n_extern_calls on <self:AExternCalls> */
8613 if (unlikely(var3 == NULL)) {
8614 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_extern_calls");
8615 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 1073);
8616 show_backtrace(1);
8617 }
8618 var = var3;
8619 RET_LABEL2:(void)0;
8620 }
8621 }
8622 {
8623 parser_nodes__ANodes__unsafe_add_all(var, var_n_extern_calls); /* Direct call parser_nodes#ANodes#unsafe_add_all on <var:ANodes[AExternCall]>*/
8624 }
8625 RET_LABEL:;
8626 }
8627 /* method parser_prod#AExternCalls#init_aexterncalls for (self: Object, nullable TKwimport, Collection[Object]) */
8628 void VIRTUAL_parser_prod__AExternCalls__init_aexterncalls(val* self, val* p0, val* p1) {
8629 parser_prod__AExternCalls__init_aexterncalls(self, p0, p1); /* Direct call parser_prod#AExternCalls#init_aexterncalls on <self:Object(AExternCalls)>*/
8630 RET_LABEL:;
8631 }
8632 /* method parser_prod#AExternCalls#replace_child for (self: AExternCalls, ANode, nullable ANode) */
8633 void parser_prod__AExternCalls__replace_child(val* self, val* p0, val* p1) {
8634 val* var_old_child /* var old_child: ANode */;
8635 val* var_new_child /* var new_child: nullable ANode */;
8636 val* var /* : TKwimport */;
8637 short int var1 /* : Bool */;
8638 short int var2 /* : Bool */;
8639 val* var_other /* var other: nullable Object */;
8640 short int var4 /* : Bool */;
8641 short int var6 /* : Bool */;
8642 short int var7 /* : Bool */;
8643 int cltype;
8644 int idtype;
8645 const char* var_class_name;
8646 val* var8 /* : ANodes[AExternCall] */;
8647 val* var10 /* : ANodes[AExternCall] */;
8648 short int var11 /* : Bool */;
8649 var_old_child = p0;
8650 var_new_child = p1;
8651 var = self->attrs[COLOR_parser_nodes__AExternCalls___n_kwimport].val; /* _n_kwimport on <self:AExternCalls> */
8652 if (unlikely(var == NULL)) {
8653 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwimport");
8654 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 7033);
8655 show_backtrace(1);
8656 }
8657 {
8658 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwimport> */
8659 var_other = var_old_child;
8660 {
8661 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TKwimport> */
8662 var6 = var == var_other;
8663 var4 = var6;
8664 goto RET_LABEL5;
8665 RET_LABEL5:(void)0;
8666 }
8667 }
8668 var2 = var4;
8669 goto RET_LABEL3;
8670 RET_LABEL3:(void)0;
8671 }
8672 var1 = var2;
8673 }
8674 if (var1){
8675 /* <var_new_child:nullable ANode> isa TKwimport */
8676 cltype = type_parser_nodes__TKwimport.color;
8677 idtype = type_parser_nodes__TKwimport.id;
8678 if(var_new_child == NULL) {
8679 var7 = 0;
8680 } else {
8681 if(cltype >= var_new_child->type->table_size) {
8682 var7 = 0;
8683 } else {
8684 var7 = var_new_child->type->type_table[cltype] == idtype;
8685 }
8686 }
8687 if (unlikely(!var7)) {
8688 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
8689 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwimport", var_class_name);
8690 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 7034);
8691 show_backtrace(1);
8692 }
8693 {
8694 parser_prod__AExternCalls__n_kwimport_61d(self, var_new_child); /* Direct call parser_prod#AExternCalls#n_kwimport= on <self:AExternCalls>*/
8695 }
8696 goto RET_LABEL;
8697 } else {
8698 }
8699 {
8700 { /* Inline parser_nodes#AExternCalls#n_extern_calls (self) on <self:AExternCalls> */
8701 var10 = self->attrs[COLOR_parser_nodes__AExternCalls___n_extern_calls].val; /* _n_extern_calls on <self:AExternCalls> */
8702 if (unlikely(var10 == NULL)) {
8703 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_extern_calls");
8704 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 1073);
8705 show_backtrace(1);
8706 }
8707 var8 = var10;
8708 RET_LABEL9:(void)0;
8709 }
8710 }
8711 {
8712 var11 = parser_nodes__ANodes__replace_child(var8, var_old_child, var_new_child);
8713 }
8714 if (var11){
8715 goto RET_LABEL;
8716 } else {
8717 }
8718 RET_LABEL:;
8719 }
8720 /* method parser_prod#AExternCalls#replace_child for (self: Object, ANode, nullable ANode) */
8721 void VIRTUAL_parser_prod__AExternCalls__replace_child(val* self, val* p0, val* p1) {
8722 parser_prod__AExternCalls__replace_child(self, p0, p1); /* Direct call parser_prod#AExternCalls#replace_child on <self:Object(AExternCalls)>*/
8723 RET_LABEL:;
8724 }
8725 /* method parser_prod#AExternCalls#n_kwimport= for (self: AExternCalls, TKwimport) */
8726 void parser_prod__AExternCalls__n_kwimport_61d(val* self, val* p0) {
8727 val* var_node /* var node: TKwimport */;
8728 var_node = p0;
8729 self->attrs[COLOR_parser_nodes__AExternCalls___n_kwimport].val = var_node; /* _n_kwimport on <self:AExternCalls> */
8730 {
8731 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwimport> */
8732 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwimport> */
8733 RET_LABEL1:(void)0;
8734 }
8735 }
8736 RET_LABEL:;
8737 }
8738 /* method parser_prod#AExternCalls#n_kwimport= for (self: Object, TKwimport) */
8739 void VIRTUAL_parser_prod__AExternCalls__n_kwimport_61d(val* self, val* p0) {
8740 parser_prod__AExternCalls__n_kwimport_61d(self, p0); /* Direct call parser_prod#AExternCalls#n_kwimport= on <self:Object(AExternCalls)>*/
8741 RET_LABEL:;
8742 }
8743 /* method parser_prod#AExternCalls#visit_all for (self: AExternCalls, Visitor) */
8744 void parser_prod__AExternCalls__visit_all(val* self, val* p0) {
8745 val* var_v /* var v: Visitor */;
8746 val* var /* : TKwimport */;
8747 val* var1 /* : ANodes[AExternCall] */;
8748 val* var3 /* : ANodes[AExternCall] */;
8749 var_v = p0;
8750 var = self->attrs[COLOR_parser_nodes__AExternCalls___n_kwimport].val; /* _n_kwimport on <self:AExternCalls> */
8751 if (unlikely(var == NULL)) {
8752 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwimport");
8753 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 7049);
8754 show_backtrace(1);
8755 }
8756 {
8757 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8758 }
8759 {
8760 { /* Inline parser_nodes#AExternCalls#n_extern_calls (self) on <self:AExternCalls> */
8761 var3 = self->attrs[COLOR_parser_nodes__AExternCalls___n_extern_calls].val; /* _n_extern_calls on <self:AExternCalls> */
8762 if (unlikely(var3 == NULL)) {
8763 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_extern_calls");
8764 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 1073);
8765 show_backtrace(1);
8766 }
8767 var1 = var3;
8768 RET_LABEL2:(void)0;
8769 }
8770 }
8771 {
8772 parser_nodes__ANodes__visit_all(var1, var_v); /* Direct call parser_nodes#ANodes#visit_all on <var1:ANodes[AExternCall]>*/
8773 }
8774 RET_LABEL:;
8775 }
8776 /* method parser_prod#AExternCalls#visit_all for (self: Object, Visitor) */
8777 void VIRTUAL_parser_prod__AExternCalls__visit_all(val* self, val* p0) {
8778 parser_prod__AExternCalls__visit_all(self, p0); /* Direct call parser_prod#AExternCalls#visit_all on <self:Object(AExternCalls)>*/
8779 RET_LABEL:;
8780 }
8781 /* method parser_prod#ASuperExternCall#init_asuperexterncall for (self: ASuperExternCall, nullable TKwsuper) */
8782 void parser_prod__ASuperExternCall__init_asuperexterncall(val* self, val* p0) {
8783 val* var_n_kwsuper /* var n_kwsuper: nullable TKwsuper */;
8784 var_n_kwsuper = p0;
8785 if (unlikely(var_n_kwsuper == NULL)) {
8786 PRINT_ERROR("Runtime error: %s", "Cast failed");
8787 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 7073);
8788 show_backtrace(1);
8789 }
8790 self->attrs[COLOR_parser_nodes__ASuperExternCall___n_kwsuper].val = var_n_kwsuper; /* _n_kwsuper on <self:ASuperExternCall> */
8791 if (var_n_kwsuper == NULL) {
8792 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8793 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 7074);
8794 show_backtrace(1);
8795 } else {
8796 { /* Inline parser_nodes#ANode#parent= (var_n_kwsuper,self) on <var_n_kwsuper:nullable TKwsuper> */
8797 if (unlikely(var_n_kwsuper == NULL)) {
8798 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8799 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
8800 show_backtrace(1);
8801 }
8802 var_n_kwsuper->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwsuper:nullable TKwsuper> */
8803 RET_LABEL1:(void)0;
8804 }
8805 }
8806 RET_LABEL:;
8807 }
8808 /* method parser_prod#ASuperExternCall#init_asuperexterncall for (self: Object, nullable TKwsuper) */
8809 void VIRTUAL_parser_prod__ASuperExternCall__init_asuperexterncall(val* self, val* p0) {
8810 parser_prod__ASuperExternCall__init_asuperexterncall(self, p0); /* Direct call parser_prod#ASuperExternCall#init_asuperexterncall on <self:Object(ASuperExternCall)>*/
8811 RET_LABEL:;
8812 }
8813 /* method parser_prod#ASuperExternCall#replace_child for (self: ASuperExternCall, ANode, nullable ANode) */
8814 void parser_prod__ASuperExternCall__replace_child(val* self, val* p0, val* p1) {
8815 val* var_old_child /* var old_child: ANode */;
8816 val* var_new_child /* var new_child: nullable ANode */;
8817 val* var /* : TKwsuper */;
8818 short int var1 /* : Bool */;
8819 short int var2 /* : Bool */;
8820 val* var_other /* var other: nullable Object */;
8821 short int var4 /* : Bool */;
8822 short int var6 /* : Bool */;
8823 short int var7 /* : Bool */;
8824 int cltype;
8825 int idtype;
8826 const char* var_class_name;
8827 var_old_child = p0;
8828 var_new_child = p1;
8829 var = self->attrs[COLOR_parser_nodes__ASuperExternCall___n_kwsuper].val; /* _n_kwsuper on <self:ASuperExternCall> */
8830 if (unlikely(var == NULL)) {
8831 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwsuper");
8832 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 7079);
8833 show_backtrace(1);
8834 }
8835 {
8836 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwsuper> */
8837 var_other = var_old_child;
8838 {
8839 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TKwsuper> */
8840 var6 = var == var_other;
8841 var4 = var6;
8842 goto RET_LABEL5;
8843 RET_LABEL5:(void)0;
8844 }
8845 }
8846 var2 = var4;
8847 goto RET_LABEL3;
8848 RET_LABEL3:(void)0;
8849 }
8850 var1 = var2;
8851 }
8852 if (var1){
8853 /* <var_new_child:nullable ANode> isa TKwsuper */
8854 cltype = type_parser_nodes__TKwsuper.color;
8855 idtype = type_parser_nodes__TKwsuper.id;
8856 if(var_new_child == NULL) {
8857 var7 = 0;
8858 } else {
8859 if(cltype >= var_new_child->type->table_size) {
8860 var7 = 0;
8861 } else {
8862 var7 = var_new_child->type->type_table[cltype] == idtype;
8863 }
8864 }
8865 if (unlikely(!var7)) {
8866 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
8867 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwsuper", var_class_name);
8868 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 7080);
8869 show_backtrace(1);
8870 }
8871 {
8872 parser_prod__ASuperExternCall__n_kwsuper_61d(self, var_new_child); /* Direct call parser_prod#ASuperExternCall#n_kwsuper= on <self:ASuperExternCall>*/
8873 }
8874 goto RET_LABEL;
8875 } else {
8876 }
8877 RET_LABEL:;
8878 }
8879 /* method parser_prod#ASuperExternCall#replace_child for (self: Object, ANode, nullable ANode) */
8880 void VIRTUAL_parser_prod__ASuperExternCall__replace_child(val* self, val* p0, val* p1) {
8881 parser_prod__ASuperExternCall__replace_child(self, p0, p1); /* Direct call parser_prod#ASuperExternCall#replace_child on <self:Object(ASuperExternCall)>*/
8882 RET_LABEL:;
8883 }
8884 /* method parser_prod#ASuperExternCall#n_kwsuper= for (self: ASuperExternCall, TKwsuper) */
8885 void parser_prod__ASuperExternCall__n_kwsuper_61d(val* self, val* p0) {
8886 val* var_node /* var node: TKwsuper */;
8887 var_node = p0;
8888 self->attrs[COLOR_parser_nodes__ASuperExternCall___n_kwsuper].val = var_node; /* _n_kwsuper on <self:ASuperExternCall> */
8889 {
8890 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwsuper> */
8891 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwsuper> */
8892 RET_LABEL1:(void)0;
8893 }
8894 }
8895 RET_LABEL:;
8896 }
8897 /* method parser_prod#ASuperExternCall#n_kwsuper= for (self: Object, TKwsuper) */
8898 void VIRTUAL_parser_prod__ASuperExternCall__n_kwsuper_61d(val* self, val* p0) {
8899 parser_prod__ASuperExternCall__n_kwsuper_61d(self, p0); /* Direct call parser_prod#ASuperExternCall#n_kwsuper= on <self:Object(ASuperExternCall)>*/
8900 RET_LABEL:;
8901 }
8902 /* method parser_prod#ASuperExternCall#visit_all for (self: ASuperExternCall, Visitor) */
8903 void parser_prod__ASuperExternCall__visit_all(val* self, val* p0) {
8904 val* var_v /* var v: Visitor */;
8905 val* var /* : TKwsuper */;
8906 var_v = p0;
8907 var = self->attrs[COLOR_parser_nodes__ASuperExternCall___n_kwsuper].val; /* _n_kwsuper on <self:ASuperExternCall> */
8908 if (unlikely(var == NULL)) {
8909 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwsuper");
8910 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 7094);
8911 show_backtrace(1);
8912 }
8913 {
8914 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8915 }
8916 RET_LABEL:;
8917 }
8918 /* method parser_prod#ASuperExternCall#visit_all for (self: Object, Visitor) */
8919 void VIRTUAL_parser_prod__ASuperExternCall__visit_all(val* self, val* p0) {
8920 parser_prod__ASuperExternCall__visit_all(self, p0); /* Direct call parser_prod#ASuperExternCall#visit_all on <self:Object(ASuperExternCall)>*/
8921 RET_LABEL:;
8922 }
8923 /* method parser_prod#ALocalPropExternCall#init_alocalpropexterncall for (self: ALocalPropExternCall, nullable AMethid) */
8924 void parser_prod__ALocalPropExternCall__init_alocalpropexterncall(val* self, val* p0) {
8925 val* var_n_methid /* var n_methid: nullable AMethid */;
8926 var_n_methid = p0;
8927 if (unlikely(var_n_methid == NULL)) {
8928 PRINT_ERROR("Runtime error: %s", "Cast failed");
8929 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 7102);
8930 show_backtrace(1);
8931 }
8932 self->attrs[COLOR_parser_nodes__ALocalPropExternCall___n_methid].val = var_n_methid; /* _n_methid on <self:ALocalPropExternCall> */
8933 if (var_n_methid == NULL) {
8934 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8935 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 7103);
8936 show_backtrace(1);
8937 } else {
8938 { /* Inline parser_nodes#ANode#parent= (var_n_methid,self) on <var_n_methid:nullable AMethid> */
8939 if (unlikely(var_n_methid == NULL)) {
8940 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8941 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
8942 show_backtrace(1);
8943 }
8944 var_n_methid->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_methid:nullable AMethid> */
8945 RET_LABEL1:(void)0;
8946 }
8947 }
8948 RET_LABEL:;
8949 }
8950 /* method parser_prod#ALocalPropExternCall#init_alocalpropexterncall for (self: Object, nullable AMethid) */
8951 void VIRTUAL_parser_prod__ALocalPropExternCall__init_alocalpropexterncall(val* self, val* p0) {
8952 parser_prod__ALocalPropExternCall__init_alocalpropexterncall(self, p0); /* Direct call parser_prod#ALocalPropExternCall#init_alocalpropexterncall on <self:Object(ALocalPropExternCall)>*/
8953 RET_LABEL:;
8954 }
8955 /* method parser_prod#ALocalPropExternCall#replace_child for (self: ALocalPropExternCall, ANode, nullable ANode) */
8956 void parser_prod__ALocalPropExternCall__replace_child(val* self, val* p0, val* p1) {
8957 val* var_old_child /* var old_child: ANode */;
8958 val* var_new_child /* var new_child: nullable ANode */;
8959 val* var /* : AMethid */;
8960 short int var1 /* : Bool */;
8961 short int var2 /* : Bool */;
8962 val* var_other /* var other: nullable Object */;
8963 short int var4 /* : Bool */;
8964 short int var6 /* : Bool */;
8965 short int var7 /* : Bool */;
8966 int cltype;
8967 int idtype;
8968 const char* var_class_name;
8969 var_old_child = p0;
8970 var_new_child = p1;
8971 var = self->attrs[COLOR_parser_nodes__ALocalPropExternCall___n_methid].val; /* _n_methid on <self:ALocalPropExternCall> */
8972 if (unlikely(var == NULL)) {
8973 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_methid");
8974 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 7108);
8975 show_backtrace(1);
8976 }
8977 {
8978 { /* Inline kernel#Object#== (var,var_old_child) on <var:AMethid> */
8979 var_other = var_old_child;
8980 {
8981 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AMethid> */
8982 var6 = var == var_other;
8983 var4 = var6;
8984 goto RET_LABEL5;
8985 RET_LABEL5:(void)0;
8986 }
8987 }
8988 var2 = var4;
8989 goto RET_LABEL3;
8990 RET_LABEL3:(void)0;
8991 }
8992 var1 = var2;
8993 }
8994 if (var1){
8995 /* <var_new_child:nullable ANode> isa AMethid */
8996 cltype = type_parser_nodes__AMethid.color;
8997 idtype = type_parser_nodes__AMethid.id;
8998 if(var_new_child == NULL) {
8999 var7 = 0;
9000 } else {
9001 if(cltype >= var_new_child->type->table_size) {
9002 var7 = 0;
9003 } else {
9004 var7 = var_new_child->type->type_table[cltype] == idtype;
9005 }
9006 }
9007 if (unlikely(!var7)) {
9008 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
9009 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AMethid", var_class_name);
9010 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 7109);
9011 show_backtrace(1);
9012 }
9013 {
9014 parser_prod__ALocalPropExternCall__n_methid_61d(self, var_new_child); /* Direct call parser_prod#ALocalPropExternCall#n_methid= on <self:ALocalPropExternCall>*/
9015 }
9016 goto RET_LABEL;
9017 } else {
9018 }
9019 RET_LABEL:;
9020 }
9021 /* method parser_prod#ALocalPropExternCall#replace_child for (self: Object, ANode, nullable ANode) */
9022 void VIRTUAL_parser_prod__ALocalPropExternCall__replace_child(val* self, val* p0, val* p1) {
9023 parser_prod__ALocalPropExternCall__replace_child(self, p0, p1); /* Direct call parser_prod#ALocalPropExternCall#replace_child on <self:Object(ALocalPropExternCall)>*/
9024 RET_LABEL:;
9025 }
9026 /* method parser_prod#ALocalPropExternCall#n_methid= for (self: ALocalPropExternCall, AMethid) */
9027 void parser_prod__ALocalPropExternCall__n_methid_61d(val* self, val* p0) {
9028 val* var_node /* var node: AMethid */;
9029 var_node = p0;
9030 self->attrs[COLOR_parser_nodes__ALocalPropExternCall___n_methid].val = var_node; /* _n_methid on <self:ALocalPropExternCall> */
9031 {
9032 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AMethid> */
9033 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AMethid> */
9034 RET_LABEL1:(void)0;
9035 }
9036 }
9037 RET_LABEL:;
9038 }
9039 /* method parser_prod#ALocalPropExternCall#n_methid= for (self: Object, AMethid) */
9040 void VIRTUAL_parser_prod__ALocalPropExternCall__n_methid_61d(val* self, val* p0) {
9041 parser_prod__ALocalPropExternCall__n_methid_61d(self, p0); /* Direct call parser_prod#ALocalPropExternCall#n_methid= on <self:Object(ALocalPropExternCall)>*/
9042 RET_LABEL:;
9043 }
9044 /* method parser_prod#ALocalPropExternCall#visit_all for (self: ALocalPropExternCall, Visitor) */
9045 void parser_prod__ALocalPropExternCall__visit_all(val* self, val* p0) {
9046 val* var_v /* var v: Visitor */;
9047 val* var /* : AMethid */;
9048 var_v = p0;
9049 var = self->attrs[COLOR_parser_nodes__ALocalPropExternCall___n_methid].val; /* _n_methid on <self:ALocalPropExternCall> */
9050 if (unlikely(var == NULL)) {
9051 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_methid");
9052 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 7123);
9053 show_backtrace(1);
9054 }
9055 {
9056 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9057 }
9058 RET_LABEL:;
9059 }
9060 /* method parser_prod#ALocalPropExternCall#visit_all for (self: Object, Visitor) */
9061 void VIRTUAL_parser_prod__ALocalPropExternCall__visit_all(val* self, val* p0) {
9062 parser_prod__ALocalPropExternCall__visit_all(self, p0); /* Direct call parser_prod#ALocalPropExternCall#visit_all on <self:Object(ALocalPropExternCall)>*/
9063 RET_LABEL:;
9064 }
9065 /* method parser_prod#AFullPropExternCall#init_afullpropexterncall for (self: AFullPropExternCall, nullable AType, nullable TDot, nullable AMethid) */
9066 void parser_prod__AFullPropExternCall__init_afullpropexterncall(val* self, val* p0, val* p1, val* p2) {
9067 val* var_n_type /* var n_type: nullable AType */;
9068 val* var_n_dot /* var n_dot: nullable TDot */;
9069 val* var_n_methid /* var n_methid: nullable AMethid */;
9070 val* var /* : null */;
9071 short int var2 /* : Bool */;
9072 short int var3 /* : Bool */;
9073 val* var_other /* var other: nullable Object */;
9074 short int var5 /* : Bool */;
9075 short int var6 /* : Bool */;
9076 short int var7 /* : Bool */;
9077 var_n_type = p0;
9078 var_n_dot = p1;
9079 var_n_methid = p2;
9080 if (unlikely(var_n_type == NULL)) {
9081 PRINT_ERROR("Runtime error: %s", "Cast failed");
9082 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 7133);
9083 show_backtrace(1);
9084 }
9085 self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_type].val = var_n_type; /* _n_type on <self:AFullPropExternCall> */
9086 if (var_n_type == NULL) {
9087 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9088 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 7134);
9089 show_backtrace(1);
9090 } else {
9091 { /* Inline parser_nodes#ANode#parent= (var_n_type,self) on <var_n_type:nullable AType> */
9092 if (unlikely(var_n_type == NULL)) {
9093 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9094 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
9095 show_backtrace(1);
9096 }
9097 var_n_type->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_type:nullable AType> */
9098 RET_LABEL1:(void)0;
9099 }
9100 }
9101 self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_dot].val = var_n_dot; /* _n_dot on <self:AFullPropExternCall> */
9102 var = NULL;
9103 if (var_n_dot == NULL) {
9104 var2 = 0; /* is null */
9105 } else {
9106 var2 = 1; /* arg is null and recv is not */
9107 }
9108 if (0) {
9109 { /* Inline kernel#Object#!= (var_n_dot,var) on <var_n_dot:nullable TDot> */
9110 var_other = var;
9111 {
9112 var6 = ((short int (*)(val*, val*))(var_n_dot->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_dot, var_other) /* == on <var_n_dot:nullable TDot(TDot)>*/;
9113 var5 = var6;
9114 }
9115 var7 = !var5;
9116 var3 = var7;
9117 goto RET_LABEL4;
9118 RET_LABEL4:(void)0;
9119 }
9120 var2 = var3;
9121 }
9122 if (var2){
9123 {
9124 { /* Inline parser_nodes#ANode#parent= (var_n_dot,self) on <var_n_dot:nullable TDot(TDot)> */
9125 var_n_dot->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_dot:nullable TDot(TDot)> */
9126 RET_LABEL8:(void)0;
9127 }
9128 }
9129 } else {
9130 }
9131 if (unlikely(var_n_methid == NULL)) {
9132 PRINT_ERROR("Runtime error: %s", "Cast failed");
9133 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 7137);
9134 show_backtrace(1);
9135 }
9136 self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_methid].val = var_n_methid; /* _n_methid on <self:AFullPropExternCall> */
9137 if (var_n_methid == NULL) {
9138 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9139 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 7138);
9140 show_backtrace(1);
9141 } else {
9142 { /* Inline parser_nodes#ANode#parent= (var_n_methid,self) on <var_n_methid:nullable AMethid> */
9143 if (unlikely(var_n_methid == NULL)) {
9144 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9145 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
9146 show_backtrace(1);
9147 }
9148 var_n_methid->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_methid:nullable AMethid> */
9149 RET_LABEL9:(void)0;
9150 }
9151 }
9152 RET_LABEL:;
9153 }
9154 /* method parser_prod#AFullPropExternCall#init_afullpropexterncall for (self: Object, nullable AType, nullable TDot, nullable AMethid) */
9155 void VIRTUAL_parser_prod__AFullPropExternCall__init_afullpropexterncall(val* self, val* p0, val* p1, val* p2) {
9156 parser_prod__AFullPropExternCall__init_afullpropexterncall(self, p0, p1, p2); /* Direct call parser_prod#AFullPropExternCall#init_afullpropexterncall on <self:Object(AFullPropExternCall)>*/
9157 RET_LABEL:;
9158 }
9159 /* method parser_prod#AFullPropExternCall#replace_child for (self: AFullPropExternCall, ANode, nullable ANode) */
9160 void parser_prod__AFullPropExternCall__replace_child(val* self, val* p0, val* p1) {
9161 val* var_old_child /* var old_child: ANode */;
9162 val* var_new_child /* var new_child: nullable ANode */;
9163 val* var /* : AType */;
9164 short int var1 /* : Bool */;
9165 short int var2 /* : Bool */;
9166 val* var_other /* var other: nullable Object */;
9167 short int var4 /* : Bool */;
9168 short int var6 /* : Bool */;
9169 short int var7 /* : Bool */;
9170 int cltype;
9171 int idtype;
9172 const char* var_class_name;
9173 val* var8 /* : nullable TDot */;
9174 short int var9 /* : Bool */;
9175 short int var10 /* : Bool */;
9176 short int var12 /* : Bool */;
9177 short int var14 /* : Bool */;
9178 short int var15 /* : Bool */;
9179 int cltype16;
9180 int idtype17;
9181 const char* var_class_name18;
9182 val* var19 /* : AMethid */;
9183 short int var20 /* : Bool */;
9184 short int var21 /* : Bool */;
9185 short int var23 /* : Bool */;
9186 short int var25 /* : Bool */;
9187 short int var26 /* : Bool */;
9188 int cltype27;
9189 int idtype28;
9190 const char* var_class_name29;
9191 var_old_child = p0;
9192 var_new_child = p1;
9193 var = self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_type].val; /* _n_type on <self:AFullPropExternCall> */
9194 if (unlikely(var == NULL)) {
9195 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
9196 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 7143);
9197 show_backtrace(1);
9198 }
9199 {
9200 { /* Inline kernel#Object#== (var,var_old_child) on <var:AType> */
9201 var_other = var_old_child;
9202 {
9203 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AType> */
9204 var6 = var == var_other;
9205 var4 = var6;
9206 goto RET_LABEL5;
9207 RET_LABEL5:(void)0;
9208 }
9209 }
9210 var2 = var4;
9211 goto RET_LABEL3;
9212 RET_LABEL3:(void)0;
9213 }
9214 var1 = var2;
9215 }
9216 if (var1){
9217 /* <var_new_child:nullable ANode> isa AType */
9218 cltype = type_parser_nodes__AType.color;
9219 idtype = type_parser_nodes__AType.id;
9220 if(var_new_child == NULL) {
9221 var7 = 0;
9222 } else {
9223 if(cltype >= var_new_child->type->table_size) {
9224 var7 = 0;
9225 } else {
9226 var7 = var_new_child->type->type_table[cltype] == idtype;
9227 }
9228 }
9229 if (unlikely(!var7)) {
9230 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
9231 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AType", var_class_name);
9232 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 7144);
9233 show_backtrace(1);
9234 }
9235 {
9236 parser_prod__AFullPropExternCall__n_type_61d(self, var_new_child); /* Direct call parser_prod#AFullPropExternCall#n_type= on <self:AFullPropExternCall>*/
9237 }
9238 goto RET_LABEL;
9239 } else {
9240 }
9241 var8 = self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_dot].val; /* _n_dot on <self:AFullPropExternCall> */
9242 if (var8 == NULL) {
9243 var9 = 0; /* <var_old_child:ANode> cannot be null */
9244 } else {
9245 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:nullable TDot> */
9246 var_other = var_old_child;
9247 {
9248 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:nullable TDot(TDot)> */
9249 var14 = var8 == var_other;
9250 var12 = var14;
9251 goto RET_LABEL13;
9252 RET_LABEL13:(void)0;
9253 }
9254 }
9255 var10 = var12;
9256 goto RET_LABEL11;
9257 RET_LABEL11:(void)0;
9258 }
9259 var9 = var10;
9260 }
9261 if (var9){
9262 /* <var_new_child:nullable ANode> isa nullable TDot */
9263 cltype16 = type_nullable_parser_nodes__TDot.color;
9264 idtype17 = type_nullable_parser_nodes__TDot.id;
9265 if(var_new_child == NULL) {
9266 var15 = 1;
9267 } else {
9268 if(cltype16 >= var_new_child->type->table_size) {
9269 var15 = 0;
9270 } else {
9271 var15 = var_new_child->type->type_table[cltype16] == idtype17;
9272 }
9273 }
9274 if (unlikely(!var15)) {
9275 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
9276 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TDot", var_class_name18);
9277 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 7148);
9278 show_backtrace(1);
9279 }
9280 {
9281 parser_prod__AFullPropExternCall__n_dot_61d(self, var_new_child); /* Direct call parser_prod#AFullPropExternCall#n_dot= on <self:AFullPropExternCall>*/
9282 }
9283 goto RET_LABEL;
9284 } else {
9285 }
9286 var19 = self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_methid].val; /* _n_methid on <self:AFullPropExternCall> */
9287 if (unlikely(var19 == NULL)) {
9288 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_methid");
9289 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 7151);
9290 show_backtrace(1);
9291 }
9292 {
9293 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:AMethid> */
9294 var_other = var_old_child;
9295 {
9296 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:AMethid> */
9297 var25 = var19 == var_other;
9298 var23 = var25;
9299 goto RET_LABEL24;
9300 RET_LABEL24:(void)0;
9301 }
9302 }
9303 var21 = var23;
9304 goto RET_LABEL22;
9305 RET_LABEL22:(void)0;
9306 }
9307 var20 = var21;
9308 }
9309 if (var20){
9310 /* <var_new_child:nullable ANode> isa AMethid */
9311 cltype27 = type_parser_nodes__AMethid.color;
9312 idtype28 = type_parser_nodes__AMethid.id;
9313 if(var_new_child == NULL) {
9314 var26 = 0;
9315 } else {
9316 if(cltype27 >= var_new_child->type->table_size) {
9317 var26 = 0;
9318 } else {
9319 var26 = var_new_child->type->type_table[cltype27] == idtype28;
9320 }
9321 }
9322 if (unlikely(!var26)) {
9323 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
9324 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AMethid", var_class_name29);
9325 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 7152);
9326 show_backtrace(1);
9327 }
9328 {
9329 parser_prod__AFullPropExternCall__n_methid_61d(self, var_new_child); /* Direct call parser_prod#AFullPropExternCall#n_methid= on <self:AFullPropExternCall>*/
9330 }
9331 goto RET_LABEL;
9332 } else {
9333 }
9334 RET_LABEL:;
9335 }
9336 /* method parser_prod#AFullPropExternCall#replace_child for (self: Object, ANode, nullable ANode) */
9337 void VIRTUAL_parser_prod__AFullPropExternCall__replace_child(val* self, val* p0, val* p1) {
9338 parser_prod__AFullPropExternCall__replace_child(self, p0, p1); /* Direct call parser_prod#AFullPropExternCall#replace_child on <self:Object(AFullPropExternCall)>*/
9339 RET_LABEL:;
9340 }
9341 /* method parser_prod#AFullPropExternCall#n_type= for (self: AFullPropExternCall, AType) */
9342 void parser_prod__AFullPropExternCall__n_type_61d(val* self, val* p0) {
9343 val* var_node /* var node: AType */;
9344 var_node = p0;
9345 self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_type].val = var_node; /* _n_type on <self:AFullPropExternCall> */
9346 {
9347 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AType> */
9348 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AType> */
9349 RET_LABEL1:(void)0;
9350 }
9351 }
9352 RET_LABEL:;
9353 }
9354 /* method parser_prod#AFullPropExternCall#n_type= for (self: Object, AType) */
9355 void VIRTUAL_parser_prod__AFullPropExternCall__n_type_61d(val* self, val* p0) {
9356 parser_prod__AFullPropExternCall__n_type_61d(self, p0); /* Direct call parser_prod#AFullPropExternCall#n_type= on <self:Object(AFullPropExternCall)>*/
9357 RET_LABEL:;
9358 }
9359 /* method parser_prod#AFullPropExternCall#n_dot= for (self: AFullPropExternCall, nullable TDot) */
9360 void parser_prod__AFullPropExternCall__n_dot_61d(val* self, val* p0) {
9361 val* var_node /* var node: nullable TDot */;
9362 val* var /* : null */;
9363 short int var1 /* : Bool */;
9364 short int var2 /* : Bool */;
9365 val* var_other /* var other: nullable Object */;
9366 short int var4 /* : Bool */;
9367 short int var5 /* : Bool */;
9368 short int var6 /* : Bool */;
9369 var_node = p0;
9370 self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_dot].val = var_node; /* _n_dot on <self:AFullPropExternCall> */
9371 var = NULL;
9372 if (var_node == NULL) {
9373 var1 = 0; /* is null */
9374 } else {
9375 var1 = 1; /* arg is null and recv is not */
9376 }
9377 if (0) {
9378 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable TDot> */
9379 var_other = var;
9380 {
9381 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable TDot(TDot)>*/;
9382 var4 = var5;
9383 }
9384 var6 = !var4;
9385 var2 = var6;
9386 goto RET_LABEL3;
9387 RET_LABEL3:(void)0;
9388 }
9389 var1 = var2;
9390 }
9391 if (var1){
9392 {
9393 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TDot(TDot)> */
9394 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TDot(TDot)> */
9395 RET_LABEL7:(void)0;
9396 }
9397 }
9398 } else {
9399 }
9400 RET_LABEL:;
9401 }
9402 /* method parser_prod#AFullPropExternCall#n_dot= for (self: Object, nullable TDot) */
9403 void VIRTUAL_parser_prod__AFullPropExternCall__n_dot_61d(val* self, val* p0) {
9404 parser_prod__AFullPropExternCall__n_dot_61d(self, p0); /* Direct call parser_prod#AFullPropExternCall#n_dot= on <self:Object(AFullPropExternCall)>*/
9405 RET_LABEL:;
9406 }
9407 /* method parser_prod#AFullPropExternCall#n_methid= for (self: AFullPropExternCall, AMethid) */
9408 void parser_prod__AFullPropExternCall__n_methid_61d(val* self, val* p0) {
9409 val* var_node /* var node: AMethid */;
9410 var_node = p0;
9411 self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_methid].val = var_node; /* _n_methid on <self:AFullPropExternCall> */
9412 {
9413 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AMethid> */
9414 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AMethid> */
9415 RET_LABEL1:(void)0;
9416 }
9417 }
9418 RET_LABEL:;
9419 }
9420 /* method parser_prod#AFullPropExternCall#n_methid= for (self: Object, AMethid) */
9421 void VIRTUAL_parser_prod__AFullPropExternCall__n_methid_61d(val* self, val* p0) {
9422 parser_prod__AFullPropExternCall__n_methid_61d(self, p0); /* Direct call parser_prod#AFullPropExternCall#n_methid= on <self:Object(AFullPropExternCall)>*/
9423 RET_LABEL:;
9424 }
9425 /* method parser_prod#AFullPropExternCall#visit_all for (self: AFullPropExternCall, Visitor) */
9426 void parser_prod__AFullPropExternCall__visit_all(val* self, val* p0) {
9427 val* var_v /* var v: Visitor */;
9428 val* var /* : AType */;
9429 val* var1 /* : nullable TDot */;
9430 val* var2 /* : AMethid */;
9431 var_v = p0;
9432 var = self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_type].val; /* _n_type on <self:AFullPropExternCall> */
9433 if (unlikely(var == NULL)) {
9434 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
9435 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 7176);
9436 show_backtrace(1);
9437 }
9438 {
9439 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9440 }
9441 var1 = self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_dot].val; /* _n_dot on <self:AFullPropExternCall> */
9442 {
9443 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9444 }
9445 var2 = self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_methid].val; /* _n_methid on <self:AFullPropExternCall> */
9446 if (unlikely(var2 == NULL)) {
9447 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_methid");
9448 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 7178);
9449 show_backtrace(1);
9450 }
9451 {
9452 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9453 }
9454 RET_LABEL:;
9455 }
9456 /* method parser_prod#AFullPropExternCall#visit_all for (self: Object, Visitor) */
9457 void VIRTUAL_parser_prod__AFullPropExternCall__visit_all(val* self, val* p0) {
9458 parser_prod__AFullPropExternCall__visit_all(self, p0); /* Direct call parser_prod#AFullPropExternCall#visit_all on <self:Object(AFullPropExternCall)>*/
9459 RET_LABEL:;
9460 }
9461 /* method parser_prod#AInitPropExternCall#init_ainitpropexterncall for (self: AInitPropExternCall, nullable AType) */
9462 void parser_prod__AInitPropExternCall__init_ainitpropexterncall(val* self, val* p0) {
9463 val* var_n_type /* var n_type: nullable AType */;
9464 var_n_type = p0;
9465 if (unlikely(var_n_type == NULL)) {
9466 PRINT_ERROR("Runtime error: %s", "Cast failed");
9467 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 7186);
9468 show_backtrace(1);
9469 }
9470 self->attrs[COLOR_parser_nodes__AInitPropExternCall___n_type].val = var_n_type; /* _n_type on <self:AInitPropExternCall> */
9471 if (var_n_type == NULL) {
9472 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9473 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 7187);
9474 show_backtrace(1);
9475 } else {
9476 { /* Inline parser_nodes#ANode#parent= (var_n_type,self) on <var_n_type:nullable AType> */
9477 if (unlikely(var_n_type == NULL)) {
9478 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9479 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
9480 show_backtrace(1);
9481 }
9482 var_n_type->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_type:nullable AType> */
9483 RET_LABEL1:(void)0;
9484 }
9485 }
9486 RET_LABEL:;
9487 }
9488 /* method parser_prod#AInitPropExternCall#init_ainitpropexterncall for (self: Object, nullable AType) */
9489 void VIRTUAL_parser_prod__AInitPropExternCall__init_ainitpropexterncall(val* self, val* p0) {
9490 parser_prod__AInitPropExternCall__init_ainitpropexterncall(self, p0); /* Direct call parser_prod#AInitPropExternCall#init_ainitpropexterncall on <self:Object(AInitPropExternCall)>*/
9491 RET_LABEL:;
9492 }
9493 /* method parser_prod#AInitPropExternCall#replace_child for (self: AInitPropExternCall, ANode, nullable ANode) */
9494 void parser_prod__AInitPropExternCall__replace_child(val* self, val* p0, val* p1) {
9495 val* var_old_child /* var old_child: ANode */;
9496 val* var_new_child /* var new_child: nullable ANode */;
9497 val* var /* : AType */;
9498 short int var1 /* : Bool */;
9499 short int var2 /* : Bool */;
9500 val* var_other /* var other: nullable Object */;
9501 short int var4 /* : Bool */;
9502 short int var6 /* : Bool */;
9503 short int var7 /* : Bool */;
9504 int cltype;
9505 int idtype;
9506 const char* var_class_name;
9507 var_old_child = p0;
9508 var_new_child = p1;
9509 var = self->attrs[COLOR_parser_nodes__AInitPropExternCall___n_type].val; /* _n_type on <self:AInitPropExternCall> */
9510 if (unlikely(var == NULL)) {
9511 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
9512 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 7192);
9513 show_backtrace(1);
9514 }
9515 {
9516 { /* Inline kernel#Object#== (var,var_old_child) on <var:AType> */
9517 var_other = var_old_child;
9518 {
9519 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AType> */
9520 var6 = var == var_other;
9521 var4 = var6;
9522 goto RET_LABEL5;
9523 RET_LABEL5:(void)0;
9524 }
9525 }
9526 var2 = var4;
9527 goto RET_LABEL3;
9528 RET_LABEL3:(void)0;
9529 }
9530 var1 = var2;
9531 }
9532 if (var1){
9533 /* <var_new_child:nullable ANode> isa AType */
9534 cltype = type_parser_nodes__AType.color;
9535 idtype = type_parser_nodes__AType.id;
9536 if(var_new_child == NULL) {
9537 var7 = 0;
9538 } else {
9539 if(cltype >= var_new_child->type->table_size) {
9540 var7 = 0;
9541 } else {
9542 var7 = var_new_child->type->type_table[cltype] == idtype;
9543 }
9544 }
9545 if (unlikely(!var7)) {
9546 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
9547 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AType", var_class_name);
9548 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 7193);
9549 show_backtrace(1);
9550 }
9551 {
9552 parser_prod__AInitPropExternCall__n_type_61d(self, var_new_child); /* Direct call parser_prod#AInitPropExternCall#n_type= on <self:AInitPropExternCall>*/
9553 }
9554 goto RET_LABEL;
9555 } else {
9556 }
9557 RET_LABEL:;
9558 }
9559 /* method parser_prod#AInitPropExternCall#replace_child for (self: Object, ANode, nullable ANode) */
9560 void VIRTUAL_parser_prod__AInitPropExternCall__replace_child(val* self, val* p0, val* p1) {
9561 parser_prod__AInitPropExternCall__replace_child(self, p0, p1); /* Direct call parser_prod#AInitPropExternCall#replace_child on <self:Object(AInitPropExternCall)>*/
9562 RET_LABEL:;
9563 }
9564 /* method parser_prod#AInitPropExternCall#n_type= for (self: AInitPropExternCall, AType) */
9565 void parser_prod__AInitPropExternCall__n_type_61d(val* self, val* p0) {
9566 val* var_node /* var node: AType */;
9567 var_node = p0;
9568 self->attrs[COLOR_parser_nodes__AInitPropExternCall___n_type].val = var_node; /* _n_type on <self:AInitPropExternCall> */
9569 {
9570 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AType> */
9571 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AType> */
9572 RET_LABEL1:(void)0;
9573 }
9574 }
9575 RET_LABEL:;
9576 }
9577 /* method parser_prod#AInitPropExternCall#n_type= for (self: Object, AType) */
9578 void VIRTUAL_parser_prod__AInitPropExternCall__n_type_61d(val* self, val* p0) {
9579 parser_prod__AInitPropExternCall__n_type_61d(self, p0); /* Direct call parser_prod#AInitPropExternCall#n_type= on <self:Object(AInitPropExternCall)>*/
9580 RET_LABEL:;
9581 }
9582 /* method parser_prod#AInitPropExternCall#visit_all for (self: AInitPropExternCall, Visitor) */
9583 void parser_prod__AInitPropExternCall__visit_all(val* self, val* p0) {
9584 val* var_v /* var v: Visitor */;
9585 val* var /* : AType */;
9586 var_v = p0;
9587 var = self->attrs[COLOR_parser_nodes__AInitPropExternCall___n_type].val; /* _n_type on <self:AInitPropExternCall> */
9588 if (unlikely(var == NULL)) {
9589 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
9590 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 7207);
9591 show_backtrace(1);
9592 }
9593 {
9594 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9595 }
9596 RET_LABEL:;
9597 }
9598 /* method parser_prod#AInitPropExternCall#visit_all for (self: Object, Visitor) */
9599 void VIRTUAL_parser_prod__AInitPropExternCall__visit_all(val* self, val* p0) {
9600 parser_prod__AInitPropExternCall__visit_all(self, p0); /* Direct call parser_prod#AInitPropExternCall#visit_all on <self:Object(AInitPropExternCall)>*/
9601 RET_LABEL:;
9602 }
9603 /* method parser_prod#ACastAsExternCall#init_acastasexterncall for (self: ACastAsExternCall, nullable AType, nullable TDot, nullable TKwas, nullable AType) */
9604 void parser_prod__ACastAsExternCall__init_acastasexterncall(val* self, val* p0, val* p1, val* p2, val* p3) {
9605 val* var_n_from_type /* var n_from_type: nullable AType */;
9606 val* var_n_dot /* var n_dot: nullable TDot */;
9607 val* var_n_kwas /* var n_kwas: nullable TKwas */;
9608 val* var_n_to_type /* var n_to_type: nullable AType */;
9609 val* var /* : null */;
9610 short int var2 /* : Bool */;
9611 short int var3 /* : Bool */;
9612 val* var_other /* var other: nullable Object */;
9613 short int var5 /* : Bool */;
9614 short int var6 /* : Bool */;
9615 short int var7 /* : Bool */;
9616 var_n_from_type = p0;
9617 var_n_dot = p1;
9618 var_n_kwas = p2;
9619 var_n_to_type = p3;
9620 if (unlikely(var_n_from_type == NULL)) {
9621 PRINT_ERROR("Runtime error: %s", "Cast failed");
9622 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 7218);
9623 show_backtrace(1);
9624 }
9625 self->attrs[COLOR_parser_nodes__ACastAsExternCall___n_from_type].val = var_n_from_type; /* _n_from_type on <self:ACastAsExternCall> */
9626 if (var_n_from_type == NULL) {
9627 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9628 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 7219);
9629 show_backtrace(1);
9630 } else {
9631 { /* Inline parser_nodes#ANode#parent= (var_n_from_type,self) on <var_n_from_type:nullable AType> */
9632 if (unlikely(var_n_from_type == NULL)) {
9633 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9634 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
9635 show_backtrace(1);
9636 }
9637 var_n_from_type->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_from_type:nullable AType> */
9638 RET_LABEL1:(void)0;
9639 }
9640 }
9641 self->attrs[COLOR_parser_nodes__ACastAsExternCall___n_dot].val = var_n_dot; /* _n_dot on <self:ACastAsExternCall> */
9642 var = NULL;
9643 if (var_n_dot == NULL) {
9644 var2 = 0; /* is null */
9645 } else {
9646 var2 = 1; /* arg is null and recv is not */
9647 }
9648 if (0) {
9649 { /* Inline kernel#Object#!= (var_n_dot,var) on <var_n_dot:nullable TDot> */
9650 var_other = var;
9651 {
9652 var6 = ((short int (*)(val*, val*))(var_n_dot->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_dot, var_other) /* == on <var_n_dot:nullable TDot(TDot)>*/;
9653 var5 = var6;
9654 }
9655 var7 = !var5;
9656 var3 = var7;
9657 goto RET_LABEL4;
9658 RET_LABEL4:(void)0;
9659 }
9660 var2 = var3;
9661 }
9662 if (var2){
9663 {
9664 { /* Inline parser_nodes#ANode#parent= (var_n_dot,self) on <var_n_dot:nullable TDot(TDot)> */
9665 var_n_dot->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_dot:nullable TDot(TDot)> */
9666 RET_LABEL8:(void)0;
9667 }
9668 }
9669 } else {
9670 }
9671 if (unlikely(var_n_kwas == NULL)) {
9672 PRINT_ERROR("Runtime error: %s", "Cast failed");
9673 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 7222);
9674 show_backtrace(1);
9675 }
9676 self->attrs[COLOR_parser_nodes__ACastAsExternCall___n_kwas].val = var_n_kwas; /* _n_kwas on <self:ACastAsExternCall> */
9677 if (var_n_kwas == NULL) {
9678 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9679 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 7223);
9680 show_backtrace(1);
9681 } else {
9682 { /* Inline parser_nodes#ANode#parent= (var_n_kwas,self) on <var_n_kwas:nullable TKwas> */
9683 if (unlikely(var_n_kwas == NULL)) {
9684 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9685 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
9686 show_backtrace(1);
9687 }
9688 var_n_kwas->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwas:nullable TKwas> */
9689 RET_LABEL9:(void)0;
9690 }
9691 }
9692 if (unlikely(var_n_to_type == NULL)) {
9693 PRINT_ERROR("Runtime error: %s", "Cast failed");
9694 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 7224);
9695 show_backtrace(1);
9696 }
9697 self->attrs[COLOR_parser_nodes__ACastAsExternCall___n_to_type].val = var_n_to_type; /* _n_to_type on <self:ACastAsExternCall> */
9698 if (var_n_to_type == NULL) {
9699 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9700 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 7225);
9701 show_backtrace(1);
9702 } else {
9703 { /* Inline parser_nodes#ANode#parent= (var_n_to_type,self) on <var_n_to_type:nullable AType> */
9704 if (unlikely(var_n_to_type == NULL)) {
9705 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9706 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
9707 show_backtrace(1);
9708 }
9709 var_n_to_type->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_to_type:nullable AType> */
9710 RET_LABEL10:(void)0;
9711 }
9712 }
9713 RET_LABEL:;
9714 }
9715 /* method parser_prod#ACastAsExternCall#init_acastasexterncall for (self: Object, nullable AType, nullable TDot, nullable TKwas, nullable AType) */
9716 void VIRTUAL_parser_prod__ACastAsExternCall__init_acastasexterncall(val* self, val* p0, val* p1, val* p2, val* p3) {
9717 parser_prod__ACastAsExternCall__init_acastasexterncall(self, p0, p1, p2, p3); /* Direct call parser_prod#ACastAsExternCall#init_acastasexterncall on <self:Object(ACastAsExternCall)>*/
9718 RET_LABEL:;
9719 }
9720 /* method parser_prod#ACastAsExternCall#replace_child for (self: ACastAsExternCall, ANode, nullable ANode) */
9721 void parser_prod__ACastAsExternCall__replace_child(val* self, val* p0, val* p1) {
9722 val* var_old_child /* var old_child: ANode */;
9723 val* var_new_child /* var new_child: nullable ANode */;
9724 val* var /* : AType */;
9725 short int var1 /* : Bool */;
9726 short int var2 /* : Bool */;
9727 val* var_other /* var other: nullable Object */;
9728 short int var4 /* : Bool */;
9729 short int var6 /* : Bool */;
9730 short int var7 /* : Bool */;
9731 int cltype;
9732 int idtype;
9733 const char* var_class_name;
9734 val* var8 /* : nullable TDot */;
9735 short int var9 /* : Bool */;
9736 short int var10 /* : Bool */;
9737 short int var12 /* : Bool */;
9738 short int var14 /* : Bool */;
9739 short int var15 /* : Bool */;
9740 int cltype16;
9741 int idtype17;
9742 const char* var_class_name18;
9743 val* var19 /* : TKwas */;
9744 short int var20 /* : Bool */;
9745 short int var21 /* : Bool */;
9746 short int var23 /* : Bool */;
9747 short int var25 /* : Bool */;
9748 short int var26 /* : Bool */;
9749 int cltype27;
9750 int idtype28;
9751 const char* var_class_name29;
9752 val* var30 /* : AType */;
9753 short int var31 /* : Bool */;
9754 short int var32 /* : Bool */;
9755 short int var34 /* : Bool */;
9756 short int var36 /* : Bool */;
9757 short int var37 /* : Bool */;
9758 int cltype38;
9759 int idtype39;
9760 const char* var_class_name40;
9761 var_old_child = p0;
9762 var_new_child = p1;
9763 var = self->attrs[COLOR_parser_nodes__ACastAsExternCall___n_from_type].val; /* _n_from_type on <self:ACastAsExternCall> */
9764 if (unlikely(var == NULL)) {
9765 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_from_type");
9766 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 7230);
9767 show_backtrace(1);
9768 }
9769 {
9770 { /* Inline kernel#Object#== (var,var_old_child) on <var:AType> */
9771 var_other = var_old_child;
9772 {
9773 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AType> */
9774 var6 = var == var_other;
9775 var4 = var6;
9776 goto RET_LABEL5;
9777 RET_LABEL5:(void)0;
9778 }
9779 }
9780 var2 = var4;
9781 goto RET_LABEL3;
9782 RET_LABEL3:(void)0;
9783 }
9784 var1 = var2;
9785 }
9786 if (var1){
9787 /* <var_new_child:nullable ANode> isa AType */
9788 cltype = type_parser_nodes__AType.color;
9789 idtype = type_parser_nodes__AType.id;
9790 if(var_new_child == NULL) {
9791 var7 = 0;
9792 } else {
9793 if(cltype >= var_new_child->type->table_size) {
9794 var7 = 0;
9795 } else {
9796 var7 = var_new_child->type->type_table[cltype] == idtype;
9797 }
9798 }
9799 if (unlikely(!var7)) {
9800 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
9801 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AType", var_class_name);
9802 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 7231);
9803 show_backtrace(1);
9804 }
9805 {
9806 parser_prod__ACastAsExternCall__n_from_type_61d(self, var_new_child); /* Direct call parser_prod#ACastAsExternCall#n_from_type= on <self:ACastAsExternCall>*/
9807 }
9808 goto RET_LABEL;
9809 } else {
9810 }
9811 var8 = self->attrs[COLOR_parser_nodes__ACastAsExternCall___n_dot].val; /* _n_dot on <self:ACastAsExternCall> */
9812 if (var8 == NULL) {
9813 var9 = 0; /* <var_old_child:ANode> cannot be null */
9814 } else {
9815 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:nullable TDot> */
9816 var_other = var_old_child;
9817 {
9818 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:nullable TDot(TDot)> */
9819 var14 = var8 == var_other;
9820 var12 = var14;
9821 goto RET_LABEL13;
9822 RET_LABEL13:(void)0;
9823 }
9824 }
9825 var10 = var12;
9826 goto RET_LABEL11;
9827 RET_LABEL11:(void)0;
9828 }
9829 var9 = var10;
9830 }
9831 if (var9){
9832 /* <var_new_child:nullable ANode> isa nullable TDot */
9833 cltype16 = type_nullable_parser_nodes__TDot.color;
9834 idtype17 = type_nullable_parser_nodes__TDot.id;
9835 if(var_new_child == NULL) {
9836 var15 = 1;
9837 } else {
9838 if(cltype16 >= var_new_child->type->table_size) {
9839 var15 = 0;
9840 } else {
9841 var15 = var_new_child->type->type_table[cltype16] == idtype17;
9842 }
9843 }
9844 if (unlikely(!var15)) {
9845 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
9846 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TDot", var_class_name18);
9847 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 7235);
9848 show_backtrace(1);
9849 }
9850 {
9851 parser_prod__ACastAsExternCall__n_dot_61d(self, var_new_child); /* Direct call parser_prod#ACastAsExternCall#n_dot= on <self:ACastAsExternCall>*/
9852 }
9853 goto RET_LABEL;
9854 } else {
9855 }
9856 var19 = self->attrs[COLOR_parser_nodes__ACastAsExternCall___n_kwas].val; /* _n_kwas on <self:ACastAsExternCall> */
9857 if (unlikely(var19 == NULL)) {
9858 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwas");
9859 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 7238);
9860 show_backtrace(1);
9861 }
9862 {
9863 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:TKwas> */
9864 var_other = var_old_child;
9865 {
9866 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:TKwas> */
9867 var25 = var19 == var_other;
9868 var23 = var25;
9869 goto RET_LABEL24;
9870 RET_LABEL24:(void)0;
9871 }
9872 }
9873 var21 = var23;
9874 goto RET_LABEL22;
9875 RET_LABEL22:(void)0;
9876 }
9877 var20 = var21;
9878 }
9879 if (var20){
9880 /* <var_new_child:nullable ANode> isa TKwas */
9881 cltype27 = type_parser_nodes__TKwas.color;
9882 idtype28 = type_parser_nodes__TKwas.id;
9883 if(var_new_child == NULL) {
9884 var26 = 0;
9885 } else {
9886 if(cltype27 >= var_new_child->type->table_size) {
9887 var26 = 0;
9888 } else {
9889 var26 = var_new_child->type->type_table[cltype27] == idtype28;
9890 }
9891 }
9892 if (unlikely(!var26)) {
9893 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
9894 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwas", var_class_name29);
9895 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 7239);
9896 show_backtrace(1);
9897 }
9898 {
9899 parser_prod__ACastAsExternCall__n_kwas_61d(self, var_new_child); /* Direct call parser_prod#ACastAsExternCall#n_kwas= on <self:ACastAsExternCall>*/
9900 }
9901 goto RET_LABEL;
9902 } else {
9903 }
9904 var30 = self->attrs[COLOR_parser_nodes__ACastAsExternCall___n_to_type].val; /* _n_to_type on <self:ACastAsExternCall> */
9905 if (unlikely(var30 == NULL)) {
9906 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_to_type");
9907 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 7242);
9908 show_backtrace(1);
9909 }
9910 {
9911 { /* Inline kernel#Object#== (var30,var_old_child) on <var30:AType> */
9912 var_other = var_old_child;
9913 {
9914 { /* Inline kernel#Object#is_same_instance (var30,var_other) on <var30:AType> */
9915 var36 = var30 == var_other;
9916 var34 = var36;
9917 goto RET_LABEL35;
9918 RET_LABEL35:(void)0;
9919 }
9920 }
9921 var32 = var34;
9922 goto RET_LABEL33;
9923 RET_LABEL33:(void)0;
9924 }
9925 var31 = var32;
9926 }
9927 if (var31){
9928 /* <var_new_child:nullable ANode> isa AType */
9929 cltype38 = type_parser_nodes__AType.color;
9930 idtype39 = type_parser_nodes__AType.id;
9931 if(var_new_child == NULL) {
9932 var37 = 0;
9933 } else {
9934 if(cltype38 >= var_new_child->type->table_size) {
9935 var37 = 0;
9936 } else {
9937 var37 = var_new_child->type->type_table[cltype38] == idtype39;
9938 }
9939 }
9940 if (unlikely(!var37)) {
9941 var_class_name40 = var_new_child == NULL ? "null" : var_new_child->type->name;
9942 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AType", var_class_name40);
9943 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 7243);
9944 show_backtrace(1);
9945 }
9946 {
9947 parser_prod__ACastAsExternCall__n_to_type_61d(self, var_new_child); /* Direct call parser_prod#ACastAsExternCall#n_to_type= on <self:ACastAsExternCall>*/
9948 }
9949 goto RET_LABEL;
9950 } else {
9951 }
9952 RET_LABEL:;
9953 }
9954 /* method parser_prod#ACastAsExternCall#replace_child for (self: Object, ANode, nullable ANode) */
9955 void VIRTUAL_parser_prod__ACastAsExternCall__replace_child(val* self, val* p0, val* p1) {
9956 parser_prod__ACastAsExternCall__replace_child(self, p0, p1); /* Direct call parser_prod#ACastAsExternCall#replace_child on <self:Object(ACastAsExternCall)>*/
9957 RET_LABEL:;
9958 }
9959 /* method parser_prod#ACastAsExternCall#n_from_type= for (self: ACastAsExternCall, AType) */
9960 void parser_prod__ACastAsExternCall__n_from_type_61d(val* self, val* p0) {
9961 val* var_node /* var node: AType */;
9962 var_node = p0;
9963 self->attrs[COLOR_parser_nodes__ACastAsExternCall___n_from_type].val = var_node; /* _n_from_type on <self:ACastAsExternCall> */
9964 {
9965 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AType> */
9966 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AType> */
9967 RET_LABEL1:(void)0;
9968 }
9969 }
9970 RET_LABEL:;
9971 }
9972 /* method parser_prod#ACastAsExternCall#n_from_type= for (self: Object, AType) */
9973 void VIRTUAL_parser_prod__ACastAsExternCall__n_from_type_61d(val* self, val* p0) {
9974 parser_prod__ACastAsExternCall__n_from_type_61d(self, p0); /* Direct call parser_prod#ACastAsExternCall#n_from_type= on <self:Object(ACastAsExternCall)>*/
9975 RET_LABEL:;
9976 }