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