update NOTICE
[nit.git] / c_src / parser_prod.sep.4.c
1 #include "parser_prod.sep.0.h"
2 /* method parser_prod#ACallReassignExpr#replace_child for (self: ACallReassignExpr, ANode, nullable ANode) */
3 void parser_prod__ACallReassignExpr__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 /* : TId */;
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 /* : AExprs */;
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 /* : AAssignOp */;
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 /* : AExpr */;
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 var_old_child = p0;
53 var_new_child = p1;
54 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ACallReassignExpr> */
55 if (unlikely(var == NULL)) {
56 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
57 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4351);
58 show_backtrace(1);
59 }
60 {
61 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
62 var_other = var_old_child;
63 {
64 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
65 var6 = var == var_other;
66 var4 = var6;
67 goto RET_LABEL5;
68 RET_LABEL5:(void)0;
69 }
70 }
71 var2 = var4;
72 goto RET_LABEL3;
73 RET_LABEL3:(void)0;
74 }
75 var1 = var2;
76 }
77 if (var1){
78 /* <var_new_child:nullable ANode> isa AExpr */
79 cltype = type_parser_nodes__AExpr.color;
80 idtype = type_parser_nodes__AExpr.id;
81 if(var_new_child == NULL) {
82 var7 = 0;
83 } else {
84 if(cltype >= var_new_child->type->table_size) {
85 var7 = 0;
86 } else {
87 var7 = var_new_child->type->type_table[cltype] == idtype;
88 }
89 }
90 if (unlikely(!var7)) {
91 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
92 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
93 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4352);
94 show_backtrace(1);
95 }
96 {
97 parser_prod__ACallReassignExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#ACallReassignExpr#n_expr= on <self:ACallReassignExpr>*/
98 }
99 goto RET_LABEL;
100 } else {
101 }
102 var8 = self->attrs[COLOR_parser_nodes__ACallFormExpr___n_id].val; /* _n_id on <self:ACallReassignExpr> */
103 if (unlikely(var8 == NULL)) {
104 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
105 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4355);
106 show_backtrace(1);
107 }
108 {
109 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:TId> */
110 var_other = var_old_child;
111 {
112 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:TId> */
113 var14 = var8 == var_other;
114 var12 = var14;
115 goto RET_LABEL13;
116 RET_LABEL13:(void)0;
117 }
118 }
119 var10 = var12;
120 goto RET_LABEL11;
121 RET_LABEL11:(void)0;
122 }
123 var9 = var10;
124 }
125 if (var9){
126 /* <var_new_child:nullable ANode> isa TId */
127 cltype16 = type_parser_nodes__TId.color;
128 idtype17 = type_parser_nodes__TId.id;
129 if(var_new_child == NULL) {
130 var15 = 0;
131 } else {
132 if(cltype16 >= var_new_child->type->table_size) {
133 var15 = 0;
134 } else {
135 var15 = var_new_child->type->type_table[cltype16] == idtype17;
136 }
137 }
138 if (unlikely(!var15)) {
139 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
140 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TId", var_class_name18);
141 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4356);
142 show_backtrace(1);
143 }
144 {
145 parser_prod__ACallReassignExpr__n_id_61d(self, var_new_child); /* Direct call parser_prod#ACallReassignExpr#n_id= on <self:ACallReassignExpr>*/
146 }
147 goto RET_LABEL;
148 } else {
149 }
150 var19 = self->attrs[COLOR_parser_nodes__ACallFormExpr___n_args].val; /* _n_args on <self:ACallReassignExpr> */
151 if (unlikely(var19 == NULL)) {
152 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
153 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4359);
154 show_backtrace(1);
155 }
156 {
157 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:AExprs> */
158 var_other = var_old_child;
159 {
160 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:AExprs> */
161 var25 = var19 == var_other;
162 var23 = var25;
163 goto RET_LABEL24;
164 RET_LABEL24:(void)0;
165 }
166 }
167 var21 = var23;
168 goto RET_LABEL22;
169 RET_LABEL22:(void)0;
170 }
171 var20 = var21;
172 }
173 if (var20){
174 /* <var_new_child:nullable ANode> isa AExprs */
175 cltype27 = type_parser_nodes__AExprs.color;
176 idtype28 = type_parser_nodes__AExprs.id;
177 if(var_new_child == NULL) {
178 var26 = 0;
179 } else {
180 if(cltype27 >= var_new_child->type->table_size) {
181 var26 = 0;
182 } else {
183 var26 = var_new_child->type->type_table[cltype27] == idtype28;
184 }
185 }
186 if (unlikely(!var26)) {
187 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
188 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExprs", var_class_name29);
189 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4360);
190 show_backtrace(1);
191 }
192 {
193 parser_prod__ACallReassignExpr__n_args_61d(self, var_new_child); /* Direct call parser_prod#ACallReassignExpr#n_args= on <self:ACallReassignExpr>*/
194 }
195 goto RET_LABEL;
196 } else {
197 }
198 var30 = self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_assign_op].val; /* _n_assign_op on <self:ACallReassignExpr> */
199 if (unlikely(var30 == NULL)) {
200 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_assign_op");
201 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4363);
202 show_backtrace(1);
203 }
204 {
205 { /* Inline kernel#Object#== (var30,var_old_child) on <var30:AAssignOp> */
206 var_other = var_old_child;
207 {
208 { /* Inline kernel#Object#is_same_instance (var30,var_other) on <var30:AAssignOp> */
209 var36 = var30 == var_other;
210 var34 = var36;
211 goto RET_LABEL35;
212 RET_LABEL35:(void)0;
213 }
214 }
215 var32 = var34;
216 goto RET_LABEL33;
217 RET_LABEL33:(void)0;
218 }
219 var31 = var32;
220 }
221 if (var31){
222 /* <var_new_child:nullable ANode> isa AAssignOp */
223 cltype38 = type_parser_nodes__AAssignOp.color;
224 idtype39 = type_parser_nodes__AAssignOp.id;
225 if(var_new_child == NULL) {
226 var37 = 0;
227 } else {
228 if(cltype38 >= var_new_child->type->table_size) {
229 var37 = 0;
230 } else {
231 var37 = var_new_child->type->type_table[cltype38] == idtype39;
232 }
233 }
234 if (unlikely(!var37)) {
235 var_class_name40 = var_new_child == NULL ? "null" : var_new_child->type->name;
236 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AAssignOp", var_class_name40);
237 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4364);
238 show_backtrace(1);
239 }
240 {
241 parser_prod__ACallReassignExpr__n_assign_op_61d(self, var_new_child); /* Direct call parser_prod#ACallReassignExpr#n_assign_op= on <self:ACallReassignExpr>*/
242 }
243 goto RET_LABEL;
244 } else {
245 }
246 var41 = self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_value].val; /* _n_value on <self:ACallReassignExpr> */
247 if (unlikely(var41 == NULL)) {
248 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
249 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4367);
250 show_backtrace(1);
251 }
252 {
253 { /* Inline kernel#Object#== (var41,var_old_child) on <var41:AExpr> */
254 var_other = var_old_child;
255 {
256 { /* Inline kernel#Object#is_same_instance (var41,var_other) on <var41:AExpr> */
257 var47 = var41 == var_other;
258 var45 = var47;
259 goto RET_LABEL46;
260 RET_LABEL46:(void)0;
261 }
262 }
263 var43 = var45;
264 goto RET_LABEL44;
265 RET_LABEL44:(void)0;
266 }
267 var42 = var43;
268 }
269 if (var42){
270 /* <var_new_child:nullable ANode> isa AExpr */
271 cltype49 = type_parser_nodes__AExpr.color;
272 idtype50 = type_parser_nodes__AExpr.id;
273 if(var_new_child == NULL) {
274 var48 = 0;
275 } else {
276 if(cltype49 >= var_new_child->type->table_size) {
277 var48 = 0;
278 } else {
279 var48 = var_new_child->type->type_table[cltype49] == idtype50;
280 }
281 }
282 if (unlikely(!var48)) {
283 var_class_name51 = var_new_child == NULL ? "null" : var_new_child->type->name;
284 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name51);
285 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4368);
286 show_backtrace(1);
287 }
288 {
289 parser_prod__ACallReassignExpr__n_value_61d(self, var_new_child); /* Direct call parser_prod#ACallReassignExpr#n_value= on <self:ACallReassignExpr>*/
290 }
291 goto RET_LABEL;
292 } else {
293 }
294 RET_LABEL:;
295 }
296 /* method parser_prod#ACallReassignExpr#replace_child for (self: Object, ANode, nullable ANode) */
297 void VIRTUAL_parser_prod__ACallReassignExpr__replace_child(val* self, val* p0, val* p1) {
298 parser_prod__ACallReassignExpr__replace_child(self, p0, p1); /* Direct call parser_prod#ACallReassignExpr#replace_child on <self:Object(ACallReassignExpr)>*/
299 RET_LABEL:;
300 }
301 /* method parser_prod#ACallReassignExpr#n_expr= for (self: ACallReassignExpr, AExpr) */
302 void parser_prod__ACallReassignExpr__n_expr_61d(val* self, val* p0) {
303 val* var_node /* var node: AExpr */;
304 var_node = p0;
305 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:ACallReassignExpr> */
306 {
307 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
308 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
309 RET_LABEL1:(void)0;
310 }
311 }
312 RET_LABEL:;
313 }
314 /* method parser_prod#ACallReassignExpr#n_expr= for (self: Object, AExpr) */
315 void VIRTUAL_parser_prod__ACallReassignExpr__n_expr_61d(val* self, val* p0) {
316 parser_prod__ACallReassignExpr__n_expr_61d(self, p0); /* Direct call parser_prod#ACallReassignExpr#n_expr= on <self:Object(ACallReassignExpr)>*/
317 RET_LABEL:;
318 }
319 /* method parser_prod#ACallReassignExpr#n_id= for (self: ACallReassignExpr, TId) */
320 void parser_prod__ACallReassignExpr__n_id_61d(val* self, val* p0) {
321 val* var_node /* var node: TId */;
322 var_node = p0;
323 self->attrs[COLOR_parser_nodes__ACallFormExpr___n_id].val = var_node; /* _n_id on <self:ACallReassignExpr> */
324 {
325 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TId> */
326 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TId> */
327 RET_LABEL1:(void)0;
328 }
329 }
330 RET_LABEL:;
331 }
332 /* method parser_prod#ACallReassignExpr#n_id= for (self: Object, TId) */
333 void VIRTUAL_parser_prod__ACallReassignExpr__n_id_61d(val* self, val* p0) {
334 parser_prod__ACallReassignExpr__n_id_61d(self, p0); /* Direct call parser_prod#ACallReassignExpr#n_id= on <self:Object(ACallReassignExpr)>*/
335 RET_LABEL:;
336 }
337 /* method parser_prod#ACallReassignExpr#n_args= for (self: ACallReassignExpr, AExprs) */
338 void parser_prod__ACallReassignExpr__n_args_61d(val* self, val* p0) {
339 val* var_node /* var node: AExprs */;
340 var_node = p0;
341 self->attrs[COLOR_parser_nodes__ACallFormExpr___n_args].val = var_node; /* _n_args on <self:ACallReassignExpr> */
342 {
343 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExprs> */
344 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExprs> */
345 RET_LABEL1:(void)0;
346 }
347 }
348 RET_LABEL:;
349 }
350 /* method parser_prod#ACallReassignExpr#n_args= for (self: Object, AExprs) */
351 void VIRTUAL_parser_prod__ACallReassignExpr__n_args_61d(val* self, val* p0) {
352 parser_prod__ACallReassignExpr__n_args_61d(self, p0); /* Direct call parser_prod#ACallReassignExpr#n_args= on <self:Object(ACallReassignExpr)>*/
353 RET_LABEL:;
354 }
355 /* method parser_prod#ACallReassignExpr#n_assign_op= for (self: ACallReassignExpr, AAssignOp) */
356 void parser_prod__ACallReassignExpr__n_assign_op_61d(val* self, val* p0) {
357 val* var_node /* var node: AAssignOp */;
358 var_node = p0;
359 self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_assign_op].val = var_node; /* _n_assign_op on <self:ACallReassignExpr> */
360 {
361 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AAssignOp> */
362 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AAssignOp> */
363 RET_LABEL1:(void)0;
364 }
365 }
366 RET_LABEL:;
367 }
368 /* method parser_prod#ACallReassignExpr#n_assign_op= for (self: Object, AAssignOp) */
369 void VIRTUAL_parser_prod__ACallReassignExpr__n_assign_op_61d(val* self, val* p0) {
370 parser_prod__ACallReassignExpr__n_assign_op_61d(self, p0); /* Direct call parser_prod#ACallReassignExpr#n_assign_op= on <self:Object(ACallReassignExpr)>*/
371 RET_LABEL:;
372 }
373 /* method parser_prod#ACallReassignExpr#n_value= for (self: ACallReassignExpr, AExpr) */
374 void parser_prod__ACallReassignExpr__n_value_61d(val* self, val* p0) {
375 val* var_node /* var node: AExpr */;
376 var_node = p0;
377 self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_value].val = var_node; /* _n_value on <self:ACallReassignExpr> */
378 {
379 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
380 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
381 RET_LABEL1:(void)0;
382 }
383 }
384 RET_LABEL:;
385 }
386 /* method parser_prod#ACallReassignExpr#n_value= for (self: Object, AExpr) */
387 void VIRTUAL_parser_prod__ACallReassignExpr__n_value_61d(val* self, val* p0) {
388 parser_prod__ACallReassignExpr__n_value_61d(self, p0); /* Direct call parser_prod#ACallReassignExpr#n_value= on <self:Object(ACallReassignExpr)>*/
389 RET_LABEL:;
390 }
391 /* method parser_prod#ACallReassignExpr#visit_all for (self: ACallReassignExpr, Visitor) */
392 void parser_prod__ACallReassignExpr__visit_all(val* self, val* p0) {
393 val* var_v /* var v: Visitor */;
394 val* var /* : AExpr */;
395 val* var1 /* : TId */;
396 val* var2 /* : AExprs */;
397 val* var3 /* : AAssignOp */;
398 val* var4 /* : AExpr */;
399 var_v = p0;
400 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ACallReassignExpr> */
401 if (unlikely(var == NULL)) {
402 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
403 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4402);
404 show_backtrace(1);
405 }
406 {
407 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
408 }
409 var1 = self->attrs[COLOR_parser_nodes__ACallFormExpr___n_id].val; /* _n_id on <self:ACallReassignExpr> */
410 if (unlikely(var1 == NULL)) {
411 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
412 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4403);
413 show_backtrace(1);
414 }
415 {
416 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
417 }
418 var2 = self->attrs[COLOR_parser_nodes__ACallFormExpr___n_args].val; /* _n_args on <self:ACallReassignExpr> */
419 if (unlikely(var2 == NULL)) {
420 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
421 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4404);
422 show_backtrace(1);
423 }
424 {
425 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
426 }
427 var3 = self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_assign_op].val; /* _n_assign_op on <self:ACallReassignExpr> */
428 if (unlikely(var3 == NULL)) {
429 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_assign_op");
430 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4405);
431 show_backtrace(1);
432 }
433 {
434 parser_nodes__Visitor__enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
435 }
436 var4 = self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_value].val; /* _n_value on <self:ACallReassignExpr> */
437 if (unlikely(var4 == NULL)) {
438 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
439 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4406);
440 show_backtrace(1);
441 }
442 {
443 parser_nodes__Visitor__enter_visit(var_v, var4); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
444 }
445 RET_LABEL:;
446 }
447 /* method parser_prod#ACallReassignExpr#visit_all for (self: Object, Visitor) */
448 void VIRTUAL_parser_prod__ACallReassignExpr__visit_all(val* self, val* p0) {
449 parser_prod__ACallReassignExpr__visit_all(self, p0); /* Direct call parser_prod#ACallReassignExpr#visit_all on <self:Object(ACallReassignExpr)>*/
450 RET_LABEL:;
451 }
452 /* method parser_prod#ASuperExpr#init_asuperexpr for (self: ASuperExpr, nullable AQualified, nullable TKwsuper, nullable AExprs) */
453 void parser_prod__ASuperExpr__init_asuperexpr(val* self, val* p0, val* p1, val* p2) {
454 val* var_n_qualified /* var n_qualified: nullable AQualified */;
455 val* var_n_kwsuper /* var n_kwsuper: nullable TKwsuper */;
456 val* var_n_args /* var n_args: nullable AExprs */;
457 val* var /* : null */;
458 short int var1 /* : Bool */;
459 short int var2 /* : Bool */;
460 val* var_other /* var other: nullable Object */;
461 short int var4 /* : Bool */;
462 short int var5 /* : Bool */;
463 short int var6 /* : Bool */;
464 var_n_qualified = p0;
465 var_n_kwsuper = p1;
466 var_n_args = p2;
467 self->attrs[COLOR_parser_nodes__ASuperExpr___n_qualified].val = var_n_qualified; /* _n_qualified on <self:ASuperExpr> */
468 var = NULL;
469 if (var_n_qualified == NULL) {
470 var1 = 0; /* is null */
471 } else {
472 var1 = 1; /* arg is null and recv is not */
473 }
474 if (0) {
475 { /* Inline kernel#Object#!= (var_n_qualified,var) on <var_n_qualified:nullable AQualified> */
476 var_other = var;
477 {
478 var5 = ((short int (*)(val*, val*))(var_n_qualified->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_qualified, var_other) /* == on <var_n_qualified:nullable AQualified(AQualified)>*/;
479 var4 = var5;
480 }
481 var6 = !var4;
482 var2 = var6;
483 goto RET_LABEL3;
484 RET_LABEL3:(void)0;
485 }
486 var1 = var2;
487 }
488 if (var1){
489 {
490 { /* Inline parser_nodes#ANode#parent= (var_n_qualified,self) on <var_n_qualified:nullable AQualified(AQualified)> */
491 var_n_qualified->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_qualified:nullable AQualified(AQualified)> */
492 RET_LABEL7:(void)0;
493 }
494 }
495 } else {
496 }
497 if (unlikely(var_n_kwsuper == NULL)) {
498 PRINT_ERROR("Runtime error: %s", "Cast failed");
499 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4418);
500 show_backtrace(1);
501 }
502 self->attrs[COLOR_parser_nodes__ASuperExpr___n_kwsuper].val = var_n_kwsuper; /* _n_kwsuper on <self:ASuperExpr> */
503 if (var_n_kwsuper == NULL) {
504 PRINT_ERROR("Runtime error: %s", "Receiver is null");
505 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4419);
506 show_backtrace(1);
507 } else {
508 { /* Inline parser_nodes#ANode#parent= (var_n_kwsuper,self) on <var_n_kwsuper:nullable TKwsuper> */
509 if (unlikely(var_n_kwsuper == NULL)) {
510 PRINT_ERROR("Runtime error: %s", "Receiver is null");
511 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
512 show_backtrace(1);
513 }
514 var_n_kwsuper->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwsuper:nullable TKwsuper> */
515 RET_LABEL8:(void)0;
516 }
517 }
518 if (unlikely(var_n_args == NULL)) {
519 PRINT_ERROR("Runtime error: %s", "Cast failed");
520 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4420);
521 show_backtrace(1);
522 }
523 self->attrs[COLOR_parser_nodes__ASuperExpr___n_args].val = var_n_args; /* _n_args on <self:ASuperExpr> */
524 if (var_n_args == NULL) {
525 PRINT_ERROR("Runtime error: %s", "Receiver is null");
526 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4421);
527 show_backtrace(1);
528 } else {
529 { /* Inline parser_nodes#ANode#parent= (var_n_args,self) on <var_n_args:nullable AExprs> */
530 if (unlikely(var_n_args == NULL)) {
531 PRINT_ERROR("Runtime error: %s", "Receiver is null");
532 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
533 show_backtrace(1);
534 }
535 var_n_args->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_args:nullable AExprs> */
536 RET_LABEL9:(void)0;
537 }
538 }
539 RET_LABEL:;
540 }
541 /* method parser_prod#ASuperExpr#init_asuperexpr for (self: Object, nullable AQualified, nullable TKwsuper, nullable AExprs) */
542 void VIRTUAL_parser_prod__ASuperExpr__init_asuperexpr(val* self, val* p0, val* p1, val* p2) {
543 parser_prod__ASuperExpr__init_asuperexpr(self, p0, p1, p2); /* Direct call parser_prod#ASuperExpr#init_asuperexpr on <self:Object(ASuperExpr)>*/
544 RET_LABEL:;
545 }
546 /* method parser_prod#ASuperExpr#replace_child for (self: ASuperExpr, ANode, nullable ANode) */
547 void parser_prod__ASuperExpr__replace_child(val* self, val* p0, val* p1) {
548 val* var_old_child /* var old_child: ANode */;
549 val* var_new_child /* var new_child: nullable ANode */;
550 val* var /* : nullable AQualified */;
551 short int var1 /* : Bool */;
552 short int var2 /* : Bool */;
553 val* var_other /* var other: nullable Object */;
554 short int var4 /* : Bool */;
555 short int var6 /* : Bool */;
556 short int var7 /* : Bool */;
557 int cltype;
558 int idtype;
559 const char* var_class_name;
560 val* var8 /* : TKwsuper */;
561 short int var9 /* : Bool */;
562 short int var10 /* : Bool */;
563 short int var12 /* : Bool */;
564 short int var14 /* : Bool */;
565 short int var15 /* : Bool */;
566 int cltype16;
567 int idtype17;
568 const char* var_class_name18;
569 val* var19 /* : AExprs */;
570 short int var20 /* : Bool */;
571 short int var21 /* : Bool */;
572 short int var23 /* : Bool */;
573 short int var25 /* : Bool */;
574 short int var26 /* : Bool */;
575 int cltype27;
576 int idtype28;
577 const char* var_class_name29;
578 var_old_child = p0;
579 var_new_child = p1;
580 var = self->attrs[COLOR_parser_nodes__ASuperExpr___n_qualified].val; /* _n_qualified on <self:ASuperExpr> */
581 if (var == NULL) {
582 var1 = 0; /* <var_old_child:ANode> cannot be null */
583 } else {
584 { /* Inline kernel#Object#== (var,var_old_child) on <var:nullable AQualified> */
585 var_other = var_old_child;
586 {
587 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:nullable AQualified(AQualified)> */
588 var6 = var == var_other;
589 var4 = var6;
590 goto RET_LABEL5;
591 RET_LABEL5:(void)0;
592 }
593 }
594 var2 = var4;
595 goto RET_LABEL3;
596 RET_LABEL3:(void)0;
597 }
598 var1 = var2;
599 }
600 if (var1){
601 /* <var_new_child:nullable ANode> isa nullable AQualified */
602 cltype = type_nullable_parser_nodes__AQualified.color;
603 idtype = type_nullable_parser_nodes__AQualified.id;
604 if(var_new_child == NULL) {
605 var7 = 1;
606 } else {
607 if(cltype >= var_new_child->type->table_size) {
608 var7 = 0;
609 } else {
610 var7 = var_new_child->type->type_table[cltype] == idtype;
611 }
612 }
613 if (unlikely(!var7)) {
614 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
615 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AQualified", var_class_name);
616 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4427);
617 show_backtrace(1);
618 }
619 {
620 parser_prod__ASuperExpr__n_qualified_61d(self, var_new_child); /* Direct call parser_prod#ASuperExpr#n_qualified= on <self:ASuperExpr>*/
621 }
622 goto RET_LABEL;
623 } else {
624 }
625 var8 = self->attrs[COLOR_parser_nodes__ASuperExpr___n_kwsuper].val; /* _n_kwsuper on <self:ASuperExpr> */
626 if (unlikely(var8 == NULL)) {
627 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwsuper");
628 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4430);
629 show_backtrace(1);
630 }
631 {
632 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:TKwsuper> */
633 var_other = var_old_child;
634 {
635 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:TKwsuper> */
636 var14 = var8 == var_other;
637 var12 = var14;
638 goto RET_LABEL13;
639 RET_LABEL13:(void)0;
640 }
641 }
642 var10 = var12;
643 goto RET_LABEL11;
644 RET_LABEL11:(void)0;
645 }
646 var9 = var10;
647 }
648 if (var9){
649 /* <var_new_child:nullable ANode> isa TKwsuper */
650 cltype16 = type_parser_nodes__TKwsuper.color;
651 idtype17 = type_parser_nodes__TKwsuper.id;
652 if(var_new_child == NULL) {
653 var15 = 0;
654 } else {
655 if(cltype16 >= var_new_child->type->table_size) {
656 var15 = 0;
657 } else {
658 var15 = var_new_child->type->type_table[cltype16] == idtype17;
659 }
660 }
661 if (unlikely(!var15)) {
662 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
663 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwsuper", var_class_name18);
664 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4431);
665 show_backtrace(1);
666 }
667 {
668 parser_prod__ASuperExpr__n_kwsuper_61d(self, var_new_child); /* Direct call parser_prod#ASuperExpr#n_kwsuper= on <self:ASuperExpr>*/
669 }
670 goto RET_LABEL;
671 } else {
672 }
673 var19 = self->attrs[COLOR_parser_nodes__ASuperExpr___n_args].val; /* _n_args on <self:ASuperExpr> */
674 if (unlikely(var19 == NULL)) {
675 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
676 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4434);
677 show_backtrace(1);
678 }
679 {
680 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:AExprs> */
681 var_other = var_old_child;
682 {
683 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:AExprs> */
684 var25 = var19 == var_other;
685 var23 = var25;
686 goto RET_LABEL24;
687 RET_LABEL24:(void)0;
688 }
689 }
690 var21 = var23;
691 goto RET_LABEL22;
692 RET_LABEL22:(void)0;
693 }
694 var20 = var21;
695 }
696 if (var20){
697 /* <var_new_child:nullable ANode> isa AExprs */
698 cltype27 = type_parser_nodes__AExprs.color;
699 idtype28 = type_parser_nodes__AExprs.id;
700 if(var_new_child == NULL) {
701 var26 = 0;
702 } else {
703 if(cltype27 >= var_new_child->type->table_size) {
704 var26 = 0;
705 } else {
706 var26 = var_new_child->type->type_table[cltype27] == idtype28;
707 }
708 }
709 if (unlikely(!var26)) {
710 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
711 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExprs", var_class_name29);
712 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4435);
713 show_backtrace(1);
714 }
715 {
716 parser_prod__ASuperExpr__n_args_61d(self, var_new_child); /* Direct call parser_prod#ASuperExpr#n_args= on <self:ASuperExpr>*/
717 }
718 goto RET_LABEL;
719 } else {
720 }
721 RET_LABEL:;
722 }
723 /* method parser_prod#ASuperExpr#replace_child for (self: Object, ANode, nullable ANode) */
724 void VIRTUAL_parser_prod__ASuperExpr__replace_child(val* self, val* p0, val* p1) {
725 parser_prod__ASuperExpr__replace_child(self, p0, p1); /* Direct call parser_prod#ASuperExpr#replace_child on <self:Object(ASuperExpr)>*/
726 RET_LABEL:;
727 }
728 /* method parser_prod#ASuperExpr#n_qualified= for (self: ASuperExpr, nullable AQualified) */
729 void parser_prod__ASuperExpr__n_qualified_61d(val* self, val* p0) {
730 val* var_node /* var node: nullable AQualified */;
731 val* var /* : null */;
732 short int var1 /* : Bool */;
733 short int var2 /* : Bool */;
734 val* var_other /* var other: nullable Object */;
735 short int var4 /* : Bool */;
736 short int var5 /* : Bool */;
737 short int var6 /* : Bool */;
738 var_node = p0;
739 self->attrs[COLOR_parser_nodes__ASuperExpr___n_qualified].val = var_node; /* _n_qualified on <self:ASuperExpr> */
740 var = NULL;
741 if (var_node == NULL) {
742 var1 = 0; /* is null */
743 } else {
744 var1 = 1; /* arg is null and recv is not */
745 }
746 if (0) {
747 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AQualified> */
748 var_other = var;
749 {
750 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AQualified(AQualified)>*/;
751 var4 = var5;
752 }
753 var6 = !var4;
754 var2 = var6;
755 goto RET_LABEL3;
756 RET_LABEL3:(void)0;
757 }
758 var1 = var2;
759 }
760 if (var1){
761 {
762 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AQualified(AQualified)> */
763 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AQualified(AQualified)> */
764 RET_LABEL7:(void)0;
765 }
766 }
767 } else {
768 }
769 RET_LABEL:;
770 }
771 /* method parser_prod#ASuperExpr#n_qualified= for (self: Object, nullable AQualified) */
772 void VIRTUAL_parser_prod__ASuperExpr__n_qualified_61d(val* self, val* p0) {
773 parser_prod__ASuperExpr__n_qualified_61d(self, p0); /* Direct call parser_prod#ASuperExpr#n_qualified= on <self:Object(ASuperExpr)>*/
774 RET_LABEL:;
775 }
776 /* method parser_prod#ASuperExpr#n_kwsuper= for (self: ASuperExpr, TKwsuper) */
777 void parser_prod__ASuperExpr__n_kwsuper_61d(val* self, val* p0) {
778 val* var_node /* var node: TKwsuper */;
779 var_node = p0;
780 self->attrs[COLOR_parser_nodes__ASuperExpr___n_kwsuper].val = var_node; /* _n_kwsuper on <self:ASuperExpr> */
781 {
782 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwsuper> */
783 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwsuper> */
784 RET_LABEL1:(void)0;
785 }
786 }
787 RET_LABEL:;
788 }
789 /* method parser_prod#ASuperExpr#n_kwsuper= for (self: Object, TKwsuper) */
790 void VIRTUAL_parser_prod__ASuperExpr__n_kwsuper_61d(val* self, val* p0) {
791 parser_prod__ASuperExpr__n_kwsuper_61d(self, p0); /* Direct call parser_prod#ASuperExpr#n_kwsuper= on <self:Object(ASuperExpr)>*/
792 RET_LABEL:;
793 }
794 /* method parser_prod#ASuperExpr#n_args= for (self: ASuperExpr, AExprs) */
795 void parser_prod__ASuperExpr__n_args_61d(val* self, val* p0) {
796 val* var_node /* var node: AExprs */;
797 var_node = p0;
798 self->attrs[COLOR_parser_nodes__ASuperExpr___n_args].val = var_node; /* _n_args on <self:ASuperExpr> */
799 {
800 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExprs> */
801 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExprs> */
802 RET_LABEL1:(void)0;
803 }
804 }
805 RET_LABEL:;
806 }
807 /* method parser_prod#ASuperExpr#n_args= for (self: Object, AExprs) */
808 void VIRTUAL_parser_prod__ASuperExpr__n_args_61d(val* self, val* p0) {
809 parser_prod__ASuperExpr__n_args_61d(self, p0); /* Direct call parser_prod#ASuperExpr#n_args= on <self:Object(ASuperExpr)>*/
810 RET_LABEL:;
811 }
812 /* method parser_prod#ASuperExpr#visit_all for (self: ASuperExpr, Visitor) */
813 void parser_prod__ASuperExpr__visit_all(val* self, val* p0) {
814 val* var_v /* var v: Visitor */;
815 val* var /* : nullable AQualified */;
816 val* var1 /* : TKwsuper */;
817 val* var2 /* : AExprs */;
818 var_v = p0;
819 var = self->attrs[COLOR_parser_nodes__ASuperExpr___n_qualified].val; /* _n_qualified on <self:ASuperExpr> */
820 {
821 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
822 }
823 var1 = self->attrs[COLOR_parser_nodes__ASuperExpr___n_kwsuper].val; /* _n_kwsuper on <self:ASuperExpr> */
824 if (unlikely(var1 == NULL)) {
825 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwsuper");
826 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4460);
827 show_backtrace(1);
828 }
829 {
830 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
831 }
832 var2 = self->attrs[COLOR_parser_nodes__ASuperExpr___n_args].val; /* _n_args on <self:ASuperExpr> */
833 if (unlikely(var2 == NULL)) {
834 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
835 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4461);
836 show_backtrace(1);
837 }
838 {
839 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
840 }
841 RET_LABEL:;
842 }
843 /* method parser_prod#ASuperExpr#visit_all for (self: Object, Visitor) */
844 void VIRTUAL_parser_prod__ASuperExpr__visit_all(val* self, val* p0) {
845 parser_prod__ASuperExpr__visit_all(self, p0); /* Direct call parser_prod#ASuperExpr#visit_all on <self:Object(ASuperExpr)>*/
846 RET_LABEL:;
847 }
848 /* method parser_prod#AInitExpr#init_ainitexpr for (self: AInitExpr, nullable AExpr, nullable TKwinit, nullable AExprs) */
849 void parser_prod__AInitExpr__init_ainitexpr(val* self, val* p0, val* p1, val* p2) {
850 val* var_n_expr /* var n_expr: nullable AExpr */;
851 val* var_n_kwinit /* var n_kwinit: nullable TKwinit */;
852 val* var_n_args /* var n_args: nullable AExprs */;
853 var_n_expr = p0;
854 var_n_kwinit = p1;
855 var_n_args = p2;
856 if (unlikely(var_n_expr == NULL)) {
857 PRINT_ERROR("Runtime error: %s", "Cast failed");
858 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4471);
859 show_backtrace(1);
860 }
861 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AInitExpr> */
862 if (var_n_expr == NULL) {
863 PRINT_ERROR("Runtime error: %s", "Receiver is null");
864 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4472);
865 show_backtrace(1);
866 } else {
867 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
868 if (unlikely(var_n_expr == NULL)) {
869 PRINT_ERROR("Runtime error: %s", "Receiver is null");
870 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
871 show_backtrace(1);
872 }
873 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
874 RET_LABEL1:(void)0;
875 }
876 }
877 if (unlikely(var_n_kwinit == NULL)) {
878 PRINT_ERROR("Runtime error: %s", "Cast failed");
879 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4473);
880 show_backtrace(1);
881 }
882 self->attrs[COLOR_parser_nodes__AInitExpr___n_kwinit].val = var_n_kwinit; /* _n_kwinit on <self:AInitExpr> */
883 if (var_n_kwinit == NULL) {
884 PRINT_ERROR("Runtime error: %s", "Receiver is null");
885 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4474);
886 show_backtrace(1);
887 } else {
888 { /* Inline parser_nodes#ANode#parent= (var_n_kwinit,self) on <var_n_kwinit:nullable TKwinit> */
889 if (unlikely(var_n_kwinit == NULL)) {
890 PRINT_ERROR("Runtime error: %s", "Receiver is null");
891 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
892 show_backtrace(1);
893 }
894 var_n_kwinit->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwinit:nullable TKwinit> */
895 RET_LABEL2:(void)0;
896 }
897 }
898 if (unlikely(var_n_args == NULL)) {
899 PRINT_ERROR("Runtime error: %s", "Cast failed");
900 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4475);
901 show_backtrace(1);
902 }
903 self->attrs[COLOR_parser_nodes__AInitExpr___n_args].val = var_n_args; /* _n_args on <self:AInitExpr> */
904 if (var_n_args == NULL) {
905 PRINT_ERROR("Runtime error: %s", "Receiver is null");
906 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4476);
907 show_backtrace(1);
908 } else {
909 { /* Inline parser_nodes#ANode#parent= (var_n_args,self) on <var_n_args:nullable AExprs> */
910 if (unlikely(var_n_args == NULL)) {
911 PRINT_ERROR("Runtime error: %s", "Receiver is null");
912 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
913 show_backtrace(1);
914 }
915 var_n_args->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_args:nullable AExprs> */
916 RET_LABEL3:(void)0;
917 }
918 }
919 RET_LABEL:;
920 }
921 /* method parser_prod#AInitExpr#init_ainitexpr for (self: Object, nullable AExpr, nullable TKwinit, nullable AExprs) */
922 void VIRTUAL_parser_prod__AInitExpr__init_ainitexpr(val* self, val* p0, val* p1, val* p2) {
923 parser_prod__AInitExpr__init_ainitexpr(self, p0, p1, p2); /* Direct call parser_prod#AInitExpr#init_ainitexpr on <self:Object(AInitExpr)>*/
924 RET_LABEL:;
925 }
926 /* method parser_prod#AInitExpr#replace_child for (self: AInitExpr, ANode, nullable ANode) */
927 void parser_prod__AInitExpr__replace_child(val* self, val* p0, val* p1) {
928 val* var_old_child /* var old_child: ANode */;
929 val* var_new_child /* var new_child: nullable ANode */;
930 val* var /* : AExpr */;
931 short int var1 /* : Bool */;
932 short int var2 /* : Bool */;
933 val* var_other /* var other: nullable Object */;
934 short int var4 /* : Bool */;
935 short int var6 /* : Bool */;
936 short int var7 /* : Bool */;
937 int cltype;
938 int idtype;
939 const char* var_class_name;
940 val* var8 /* : TKwinit */;
941 short int var9 /* : Bool */;
942 short int var10 /* : Bool */;
943 short int var12 /* : Bool */;
944 short int var14 /* : Bool */;
945 short int var15 /* : Bool */;
946 int cltype16;
947 int idtype17;
948 const char* var_class_name18;
949 val* var19 /* : AExprs */;
950 short int var20 /* : Bool */;
951 short int var21 /* : Bool */;
952 short int var23 /* : Bool */;
953 short int var25 /* : Bool */;
954 short int var26 /* : Bool */;
955 int cltype27;
956 int idtype28;
957 const char* var_class_name29;
958 var_old_child = p0;
959 var_new_child = p1;
960 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AInitExpr> */
961 if (unlikely(var == NULL)) {
962 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
963 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4481);
964 show_backtrace(1);
965 }
966 {
967 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
968 var_other = var_old_child;
969 {
970 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
971 var6 = var == var_other;
972 var4 = var6;
973 goto RET_LABEL5;
974 RET_LABEL5:(void)0;
975 }
976 }
977 var2 = var4;
978 goto RET_LABEL3;
979 RET_LABEL3:(void)0;
980 }
981 var1 = var2;
982 }
983 if (var1){
984 /* <var_new_child:nullable ANode> isa AExpr */
985 cltype = type_parser_nodes__AExpr.color;
986 idtype = type_parser_nodes__AExpr.id;
987 if(var_new_child == NULL) {
988 var7 = 0;
989 } else {
990 if(cltype >= var_new_child->type->table_size) {
991 var7 = 0;
992 } else {
993 var7 = var_new_child->type->type_table[cltype] == idtype;
994 }
995 }
996 if (unlikely(!var7)) {
997 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
998 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
999 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4482);
1000 show_backtrace(1);
1001 }
1002 {
1003 parser_prod__AInitExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AInitExpr#n_expr= on <self:AInitExpr>*/
1004 }
1005 goto RET_LABEL;
1006 } else {
1007 }
1008 var8 = self->attrs[COLOR_parser_nodes__AInitExpr___n_kwinit].val; /* _n_kwinit on <self:AInitExpr> */
1009 if (unlikely(var8 == NULL)) {
1010 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwinit");
1011 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4485);
1012 show_backtrace(1);
1013 }
1014 {
1015 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:TKwinit> */
1016 var_other = var_old_child;
1017 {
1018 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:TKwinit> */
1019 var14 = var8 == var_other;
1020 var12 = var14;
1021 goto RET_LABEL13;
1022 RET_LABEL13:(void)0;
1023 }
1024 }
1025 var10 = var12;
1026 goto RET_LABEL11;
1027 RET_LABEL11:(void)0;
1028 }
1029 var9 = var10;
1030 }
1031 if (var9){
1032 /* <var_new_child:nullable ANode> isa TKwinit */
1033 cltype16 = type_parser_nodes__TKwinit.color;
1034 idtype17 = type_parser_nodes__TKwinit.id;
1035 if(var_new_child == NULL) {
1036 var15 = 0;
1037 } else {
1038 if(cltype16 >= var_new_child->type->table_size) {
1039 var15 = 0;
1040 } else {
1041 var15 = var_new_child->type->type_table[cltype16] == idtype17;
1042 }
1043 }
1044 if (unlikely(!var15)) {
1045 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
1046 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwinit", var_class_name18);
1047 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4486);
1048 show_backtrace(1);
1049 }
1050 {
1051 parser_prod__AInitExpr__n_kwinit_61d(self, var_new_child); /* Direct call parser_prod#AInitExpr#n_kwinit= on <self:AInitExpr>*/
1052 }
1053 goto RET_LABEL;
1054 } else {
1055 }
1056 var19 = self->attrs[COLOR_parser_nodes__AInitExpr___n_args].val; /* _n_args on <self:AInitExpr> */
1057 if (unlikely(var19 == NULL)) {
1058 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
1059 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4489);
1060 show_backtrace(1);
1061 }
1062 {
1063 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:AExprs> */
1064 var_other = var_old_child;
1065 {
1066 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:AExprs> */
1067 var25 = var19 == var_other;
1068 var23 = var25;
1069 goto RET_LABEL24;
1070 RET_LABEL24:(void)0;
1071 }
1072 }
1073 var21 = var23;
1074 goto RET_LABEL22;
1075 RET_LABEL22:(void)0;
1076 }
1077 var20 = var21;
1078 }
1079 if (var20){
1080 /* <var_new_child:nullable ANode> isa AExprs */
1081 cltype27 = type_parser_nodes__AExprs.color;
1082 idtype28 = type_parser_nodes__AExprs.id;
1083 if(var_new_child == NULL) {
1084 var26 = 0;
1085 } else {
1086 if(cltype27 >= var_new_child->type->table_size) {
1087 var26 = 0;
1088 } else {
1089 var26 = var_new_child->type->type_table[cltype27] == idtype28;
1090 }
1091 }
1092 if (unlikely(!var26)) {
1093 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
1094 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExprs", var_class_name29);
1095 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4490);
1096 show_backtrace(1);
1097 }
1098 {
1099 parser_prod__AInitExpr__n_args_61d(self, var_new_child); /* Direct call parser_prod#AInitExpr#n_args= on <self:AInitExpr>*/
1100 }
1101 goto RET_LABEL;
1102 } else {
1103 }
1104 RET_LABEL:;
1105 }
1106 /* method parser_prod#AInitExpr#replace_child for (self: Object, ANode, nullable ANode) */
1107 void VIRTUAL_parser_prod__AInitExpr__replace_child(val* self, val* p0, val* p1) {
1108 parser_prod__AInitExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AInitExpr#replace_child on <self:Object(AInitExpr)>*/
1109 RET_LABEL:;
1110 }
1111 /* method parser_prod#AInitExpr#n_expr= for (self: AInitExpr, AExpr) */
1112 void parser_prod__AInitExpr__n_expr_61d(val* self, val* p0) {
1113 val* var_node /* var node: AExpr */;
1114 var_node = p0;
1115 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:AInitExpr> */
1116 {
1117 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
1118 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
1119 RET_LABEL1:(void)0;
1120 }
1121 }
1122 RET_LABEL:;
1123 }
1124 /* method parser_prod#AInitExpr#n_expr= for (self: Object, AExpr) */
1125 void VIRTUAL_parser_prod__AInitExpr__n_expr_61d(val* self, val* p0) {
1126 parser_prod__AInitExpr__n_expr_61d(self, p0); /* Direct call parser_prod#AInitExpr#n_expr= on <self:Object(AInitExpr)>*/
1127 RET_LABEL:;
1128 }
1129 /* method parser_prod#AInitExpr#n_kwinit= for (self: AInitExpr, TKwinit) */
1130 void parser_prod__AInitExpr__n_kwinit_61d(val* self, val* p0) {
1131 val* var_node /* var node: TKwinit */;
1132 var_node = p0;
1133 self->attrs[COLOR_parser_nodes__AInitExpr___n_kwinit].val = var_node; /* _n_kwinit on <self:AInitExpr> */
1134 {
1135 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwinit> */
1136 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwinit> */
1137 RET_LABEL1:(void)0;
1138 }
1139 }
1140 RET_LABEL:;
1141 }
1142 /* method parser_prod#AInitExpr#n_kwinit= for (self: Object, TKwinit) */
1143 void VIRTUAL_parser_prod__AInitExpr__n_kwinit_61d(val* self, val* p0) {
1144 parser_prod__AInitExpr__n_kwinit_61d(self, p0); /* Direct call parser_prod#AInitExpr#n_kwinit= on <self:Object(AInitExpr)>*/
1145 RET_LABEL:;
1146 }
1147 /* method parser_prod#AInitExpr#n_args= for (self: AInitExpr, AExprs) */
1148 void parser_prod__AInitExpr__n_args_61d(val* self, val* p0) {
1149 val* var_node /* var node: AExprs */;
1150 var_node = p0;
1151 self->attrs[COLOR_parser_nodes__AInitExpr___n_args].val = var_node; /* _n_args on <self:AInitExpr> */
1152 {
1153 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExprs> */
1154 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExprs> */
1155 RET_LABEL1:(void)0;
1156 }
1157 }
1158 RET_LABEL:;
1159 }
1160 /* method parser_prod#AInitExpr#n_args= for (self: Object, AExprs) */
1161 void VIRTUAL_parser_prod__AInitExpr__n_args_61d(val* self, val* p0) {
1162 parser_prod__AInitExpr__n_args_61d(self, p0); /* Direct call parser_prod#AInitExpr#n_args= on <self:Object(AInitExpr)>*/
1163 RET_LABEL:;
1164 }
1165 /* method parser_prod#AInitExpr#visit_all for (self: AInitExpr, Visitor) */
1166 void parser_prod__AInitExpr__visit_all(val* self, val* p0) {
1167 val* var_v /* var v: Visitor */;
1168 val* var /* : AExpr */;
1169 val* var1 /* : TKwinit */;
1170 val* var2 /* : AExprs */;
1171 var_v = p0;
1172 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AInitExpr> */
1173 if (unlikely(var == NULL)) {
1174 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1175 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4514);
1176 show_backtrace(1);
1177 }
1178 {
1179 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1180 }
1181 var1 = self->attrs[COLOR_parser_nodes__AInitExpr___n_kwinit].val; /* _n_kwinit on <self:AInitExpr> */
1182 if (unlikely(var1 == NULL)) {
1183 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwinit");
1184 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4515);
1185 show_backtrace(1);
1186 }
1187 {
1188 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1189 }
1190 var2 = self->attrs[COLOR_parser_nodes__AInitExpr___n_args].val; /* _n_args on <self:AInitExpr> */
1191 if (unlikely(var2 == NULL)) {
1192 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
1193 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4516);
1194 show_backtrace(1);
1195 }
1196 {
1197 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1198 }
1199 RET_LABEL:;
1200 }
1201 /* method parser_prod#AInitExpr#visit_all for (self: Object, Visitor) */
1202 void VIRTUAL_parser_prod__AInitExpr__visit_all(val* self, val* p0) {
1203 parser_prod__AInitExpr__visit_all(self, p0); /* Direct call parser_prod#AInitExpr#visit_all on <self:Object(AInitExpr)>*/
1204 RET_LABEL:;
1205 }
1206 /* method parser_prod#ABraExpr#init_abraexpr for (self: ABraExpr, nullable AExpr, nullable AExprs) */
1207 void parser_prod__ABraExpr__init_abraexpr(val* self, val* p0, val* p1) {
1208 val* var_n_expr /* var n_expr: nullable AExpr */;
1209 val* var_n_args /* var n_args: nullable AExprs */;
1210 var_n_expr = p0;
1211 var_n_args = p1;
1212 if (unlikely(var_n_expr == NULL)) {
1213 PRINT_ERROR("Runtime error: %s", "Cast failed");
1214 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4525);
1215 show_backtrace(1);
1216 }
1217 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:ABraExpr> */
1218 if (var_n_expr == NULL) {
1219 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1220 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4526);
1221 show_backtrace(1);
1222 } else {
1223 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
1224 if (unlikely(var_n_expr == NULL)) {
1225 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1226 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
1227 show_backtrace(1);
1228 }
1229 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
1230 RET_LABEL1:(void)0;
1231 }
1232 }
1233 if (unlikely(var_n_args == NULL)) {
1234 PRINT_ERROR("Runtime error: %s", "Cast failed");
1235 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4527);
1236 show_backtrace(1);
1237 }
1238 self->attrs[COLOR_parser_nodes__ABraFormExpr___n_args].val = var_n_args; /* _n_args on <self:ABraExpr> */
1239 if (var_n_args == NULL) {
1240 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1241 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4528);
1242 show_backtrace(1);
1243 } else {
1244 { /* Inline parser_nodes#ANode#parent= (var_n_args,self) on <var_n_args:nullable AExprs> */
1245 if (unlikely(var_n_args == NULL)) {
1246 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1247 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
1248 show_backtrace(1);
1249 }
1250 var_n_args->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_args:nullable AExprs> */
1251 RET_LABEL2:(void)0;
1252 }
1253 }
1254 RET_LABEL:;
1255 }
1256 /* method parser_prod#ABraExpr#init_abraexpr for (self: Object, nullable AExpr, nullable AExprs) */
1257 void VIRTUAL_parser_prod__ABraExpr__init_abraexpr(val* self, val* p0, val* p1) {
1258 parser_prod__ABraExpr__init_abraexpr(self, p0, p1); /* Direct call parser_prod#ABraExpr#init_abraexpr on <self:Object(ABraExpr)>*/
1259 RET_LABEL:;
1260 }
1261 /* method parser_prod#ABraExpr#replace_child for (self: ABraExpr, ANode, nullable ANode) */
1262 void parser_prod__ABraExpr__replace_child(val* self, val* p0, val* p1) {
1263 val* var_old_child /* var old_child: ANode */;
1264 val* var_new_child /* var new_child: nullable ANode */;
1265 val* var /* : AExpr */;
1266 short int var1 /* : Bool */;
1267 short int var2 /* : Bool */;
1268 val* var_other /* var other: nullable Object */;
1269 short int var4 /* : Bool */;
1270 short int var6 /* : Bool */;
1271 short int var7 /* : Bool */;
1272 int cltype;
1273 int idtype;
1274 const char* var_class_name;
1275 val* var8 /* : AExprs */;
1276 short int var9 /* : Bool */;
1277 short int var10 /* : Bool */;
1278 short int var12 /* : Bool */;
1279 short int var14 /* : Bool */;
1280 short int var15 /* : Bool */;
1281 int cltype16;
1282 int idtype17;
1283 const char* var_class_name18;
1284 var_old_child = p0;
1285 var_new_child = p1;
1286 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ABraExpr> */
1287 if (unlikely(var == NULL)) {
1288 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1289 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4533);
1290 show_backtrace(1);
1291 }
1292 {
1293 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
1294 var_other = var_old_child;
1295 {
1296 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
1297 var6 = var == var_other;
1298 var4 = var6;
1299 goto RET_LABEL5;
1300 RET_LABEL5:(void)0;
1301 }
1302 }
1303 var2 = var4;
1304 goto RET_LABEL3;
1305 RET_LABEL3:(void)0;
1306 }
1307 var1 = var2;
1308 }
1309 if (var1){
1310 /* <var_new_child:nullable ANode> isa AExpr */
1311 cltype = type_parser_nodes__AExpr.color;
1312 idtype = type_parser_nodes__AExpr.id;
1313 if(var_new_child == NULL) {
1314 var7 = 0;
1315 } else {
1316 if(cltype >= var_new_child->type->table_size) {
1317 var7 = 0;
1318 } else {
1319 var7 = var_new_child->type->type_table[cltype] == idtype;
1320 }
1321 }
1322 if (unlikely(!var7)) {
1323 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
1324 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
1325 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4534);
1326 show_backtrace(1);
1327 }
1328 {
1329 parser_prod__ABraExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#ABraExpr#n_expr= on <self:ABraExpr>*/
1330 }
1331 goto RET_LABEL;
1332 } else {
1333 }
1334 var8 = self->attrs[COLOR_parser_nodes__ABraFormExpr___n_args].val; /* _n_args on <self:ABraExpr> */
1335 if (unlikely(var8 == NULL)) {
1336 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
1337 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4537);
1338 show_backtrace(1);
1339 }
1340 {
1341 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExprs> */
1342 var_other = var_old_child;
1343 {
1344 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExprs> */
1345 var14 = var8 == var_other;
1346 var12 = var14;
1347 goto RET_LABEL13;
1348 RET_LABEL13:(void)0;
1349 }
1350 }
1351 var10 = var12;
1352 goto RET_LABEL11;
1353 RET_LABEL11:(void)0;
1354 }
1355 var9 = var10;
1356 }
1357 if (var9){
1358 /* <var_new_child:nullable ANode> isa AExprs */
1359 cltype16 = type_parser_nodes__AExprs.color;
1360 idtype17 = type_parser_nodes__AExprs.id;
1361 if(var_new_child == NULL) {
1362 var15 = 0;
1363 } else {
1364 if(cltype16 >= var_new_child->type->table_size) {
1365 var15 = 0;
1366 } else {
1367 var15 = var_new_child->type->type_table[cltype16] == idtype17;
1368 }
1369 }
1370 if (unlikely(!var15)) {
1371 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
1372 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExprs", var_class_name18);
1373 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4538);
1374 show_backtrace(1);
1375 }
1376 {
1377 parser_prod__ABraExpr__n_args_61d(self, var_new_child); /* Direct call parser_prod#ABraExpr#n_args= on <self:ABraExpr>*/
1378 }
1379 goto RET_LABEL;
1380 } else {
1381 }
1382 RET_LABEL:;
1383 }
1384 /* method parser_prod#ABraExpr#replace_child for (self: Object, ANode, nullable ANode) */
1385 void VIRTUAL_parser_prod__ABraExpr__replace_child(val* self, val* p0, val* p1) {
1386 parser_prod__ABraExpr__replace_child(self, p0, p1); /* Direct call parser_prod#ABraExpr#replace_child on <self:Object(ABraExpr)>*/
1387 RET_LABEL:;
1388 }
1389 /* method parser_prod#ABraExpr#n_expr= for (self: ABraExpr, AExpr) */
1390 void parser_prod__ABraExpr__n_expr_61d(val* self, val* p0) {
1391 val* var_node /* var node: AExpr */;
1392 var_node = p0;
1393 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:ABraExpr> */
1394 {
1395 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
1396 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
1397 RET_LABEL1:(void)0;
1398 }
1399 }
1400 RET_LABEL:;
1401 }
1402 /* method parser_prod#ABraExpr#n_expr= for (self: Object, AExpr) */
1403 void VIRTUAL_parser_prod__ABraExpr__n_expr_61d(val* self, val* p0) {
1404 parser_prod__ABraExpr__n_expr_61d(self, p0); /* Direct call parser_prod#ABraExpr#n_expr= on <self:Object(ABraExpr)>*/
1405 RET_LABEL:;
1406 }
1407 /* method parser_prod#ABraExpr#n_args= for (self: ABraExpr, AExprs) */
1408 void parser_prod__ABraExpr__n_args_61d(val* self, val* p0) {
1409 val* var_node /* var node: AExprs */;
1410 var_node = p0;
1411 self->attrs[COLOR_parser_nodes__ABraFormExpr___n_args].val = var_node; /* _n_args on <self:ABraExpr> */
1412 {
1413 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExprs> */
1414 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExprs> */
1415 RET_LABEL1:(void)0;
1416 }
1417 }
1418 RET_LABEL:;
1419 }
1420 /* method parser_prod#ABraExpr#n_args= for (self: Object, AExprs) */
1421 void VIRTUAL_parser_prod__ABraExpr__n_args_61d(val* self, val* p0) {
1422 parser_prod__ABraExpr__n_args_61d(self, p0); /* Direct call parser_prod#ABraExpr#n_args= on <self:Object(ABraExpr)>*/
1423 RET_LABEL:;
1424 }
1425 /* method parser_prod#ABraExpr#visit_all for (self: ABraExpr, Visitor) */
1426 void parser_prod__ABraExpr__visit_all(val* self, val* p0) {
1427 val* var_v /* var v: Visitor */;
1428 val* var /* : AExpr */;
1429 val* var1 /* : AExprs */;
1430 var_v = p0;
1431 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ABraExpr> */
1432 if (unlikely(var == NULL)) {
1433 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1434 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4557);
1435 show_backtrace(1);
1436 }
1437 {
1438 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1439 }
1440 var1 = self->attrs[COLOR_parser_nodes__ABraFormExpr___n_args].val; /* _n_args on <self:ABraExpr> */
1441 if (unlikely(var1 == NULL)) {
1442 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
1443 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4558);
1444 show_backtrace(1);
1445 }
1446 {
1447 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1448 }
1449 RET_LABEL:;
1450 }
1451 /* method parser_prod#ABraExpr#visit_all for (self: Object, Visitor) */
1452 void VIRTUAL_parser_prod__ABraExpr__visit_all(val* self, val* p0) {
1453 parser_prod__ABraExpr__visit_all(self, p0); /* Direct call parser_prod#ABraExpr#visit_all on <self:Object(ABraExpr)>*/
1454 RET_LABEL:;
1455 }
1456 /* method parser_prod#ABraAssignExpr#init_abraassignexpr for (self: ABraAssignExpr, nullable AExpr, nullable AExprs, nullable TAssign, nullable AExpr) */
1457 void parser_prod__ABraAssignExpr__init_abraassignexpr(val* self, val* p0, val* p1, val* p2, val* p3) {
1458 val* var_n_expr /* var n_expr: nullable AExpr */;
1459 val* var_n_args /* var n_args: nullable AExprs */;
1460 val* var_n_assign /* var n_assign: nullable TAssign */;
1461 val* var_n_value /* var n_value: nullable AExpr */;
1462 var_n_expr = p0;
1463 var_n_args = p1;
1464 var_n_assign = p2;
1465 var_n_value = p3;
1466 if (unlikely(var_n_expr == NULL)) {
1467 PRINT_ERROR("Runtime error: %s", "Cast failed");
1468 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4569);
1469 show_backtrace(1);
1470 }
1471 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:ABraAssignExpr> */
1472 if (var_n_expr == NULL) {
1473 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1474 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4570);
1475 show_backtrace(1);
1476 } else {
1477 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
1478 if (unlikely(var_n_expr == NULL)) {
1479 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1480 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
1481 show_backtrace(1);
1482 }
1483 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
1484 RET_LABEL1:(void)0;
1485 }
1486 }
1487 if (unlikely(var_n_args == NULL)) {
1488 PRINT_ERROR("Runtime error: %s", "Cast failed");
1489 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4571);
1490 show_backtrace(1);
1491 }
1492 self->attrs[COLOR_parser_nodes__ABraFormExpr___n_args].val = var_n_args; /* _n_args on <self:ABraAssignExpr> */
1493 if (var_n_args == NULL) {
1494 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1495 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4572);
1496 show_backtrace(1);
1497 } else {
1498 { /* Inline parser_nodes#ANode#parent= (var_n_args,self) on <var_n_args:nullable AExprs> */
1499 if (unlikely(var_n_args == NULL)) {
1500 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1501 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
1502 show_backtrace(1);
1503 }
1504 var_n_args->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_args:nullable AExprs> */
1505 RET_LABEL2:(void)0;
1506 }
1507 }
1508 if (unlikely(var_n_assign == NULL)) {
1509 PRINT_ERROR("Runtime error: %s", "Cast failed");
1510 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4573);
1511 show_backtrace(1);
1512 }
1513 self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_assign].val = var_n_assign; /* _n_assign on <self:ABraAssignExpr> */
1514 if (var_n_assign == NULL) {
1515 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1516 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4574);
1517 show_backtrace(1);
1518 } else {
1519 { /* Inline parser_nodes#ANode#parent= (var_n_assign,self) on <var_n_assign:nullable TAssign> */
1520 if (unlikely(var_n_assign == NULL)) {
1521 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1522 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
1523 show_backtrace(1);
1524 }
1525 var_n_assign->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_assign:nullable TAssign> */
1526 RET_LABEL3:(void)0;
1527 }
1528 }
1529 if (unlikely(var_n_value == NULL)) {
1530 PRINT_ERROR("Runtime error: %s", "Cast failed");
1531 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4575);
1532 show_backtrace(1);
1533 }
1534 self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_value].val = var_n_value; /* _n_value on <self:ABraAssignExpr> */
1535 if (var_n_value == NULL) {
1536 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1537 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4576);
1538 show_backtrace(1);
1539 } else {
1540 { /* Inline parser_nodes#ANode#parent= (var_n_value,self) on <var_n_value:nullable AExpr> */
1541 if (unlikely(var_n_value == NULL)) {
1542 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1543 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
1544 show_backtrace(1);
1545 }
1546 var_n_value->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_value:nullable AExpr> */
1547 RET_LABEL4:(void)0;
1548 }
1549 }
1550 RET_LABEL:;
1551 }
1552 /* method parser_prod#ABraAssignExpr#init_abraassignexpr for (self: Object, nullable AExpr, nullable AExprs, nullable TAssign, nullable AExpr) */
1553 void VIRTUAL_parser_prod__ABraAssignExpr__init_abraassignexpr(val* self, val* p0, val* p1, val* p2, val* p3) {
1554 parser_prod__ABraAssignExpr__init_abraassignexpr(self, p0, p1, p2, p3); /* Direct call parser_prod#ABraAssignExpr#init_abraassignexpr on <self:Object(ABraAssignExpr)>*/
1555 RET_LABEL:;
1556 }
1557 /* method parser_prod#ABraAssignExpr#replace_child for (self: ABraAssignExpr, ANode, nullable ANode) */
1558 void parser_prod__ABraAssignExpr__replace_child(val* self, val* p0, val* p1) {
1559 val* var_old_child /* var old_child: ANode */;
1560 val* var_new_child /* var new_child: nullable ANode */;
1561 val* var /* : AExpr */;
1562 short int var1 /* : Bool */;
1563 short int var2 /* : Bool */;
1564 val* var_other /* var other: nullable Object */;
1565 short int var4 /* : Bool */;
1566 short int var6 /* : Bool */;
1567 short int var7 /* : Bool */;
1568 int cltype;
1569 int idtype;
1570 const char* var_class_name;
1571 val* var8 /* : AExprs */;
1572 short int var9 /* : Bool */;
1573 short int var10 /* : Bool */;
1574 short int var12 /* : Bool */;
1575 short int var14 /* : Bool */;
1576 short int var15 /* : Bool */;
1577 int cltype16;
1578 int idtype17;
1579 const char* var_class_name18;
1580 val* var19 /* : TAssign */;
1581 short int var20 /* : Bool */;
1582 short int var21 /* : Bool */;
1583 short int var23 /* : Bool */;
1584 short int var25 /* : Bool */;
1585 short int var26 /* : Bool */;
1586 int cltype27;
1587 int idtype28;
1588 const char* var_class_name29;
1589 val* var30 /* : AExpr */;
1590 short int var31 /* : Bool */;
1591 short int var32 /* : Bool */;
1592 short int var34 /* : Bool */;
1593 short int var36 /* : Bool */;
1594 short int var37 /* : Bool */;
1595 int cltype38;
1596 int idtype39;
1597 const char* var_class_name40;
1598 var_old_child = p0;
1599 var_new_child = p1;
1600 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ABraAssignExpr> */
1601 if (unlikely(var == NULL)) {
1602 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1603 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4581);
1604 show_backtrace(1);
1605 }
1606 {
1607 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
1608 var_other = var_old_child;
1609 {
1610 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
1611 var6 = var == var_other;
1612 var4 = var6;
1613 goto RET_LABEL5;
1614 RET_LABEL5:(void)0;
1615 }
1616 }
1617 var2 = var4;
1618 goto RET_LABEL3;
1619 RET_LABEL3:(void)0;
1620 }
1621 var1 = var2;
1622 }
1623 if (var1){
1624 /* <var_new_child:nullable ANode> isa AExpr */
1625 cltype = type_parser_nodes__AExpr.color;
1626 idtype = type_parser_nodes__AExpr.id;
1627 if(var_new_child == NULL) {
1628 var7 = 0;
1629 } else {
1630 if(cltype >= var_new_child->type->table_size) {
1631 var7 = 0;
1632 } else {
1633 var7 = var_new_child->type->type_table[cltype] == idtype;
1634 }
1635 }
1636 if (unlikely(!var7)) {
1637 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
1638 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
1639 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4582);
1640 show_backtrace(1);
1641 }
1642 {
1643 parser_prod__ABraAssignExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#ABraAssignExpr#n_expr= on <self:ABraAssignExpr>*/
1644 }
1645 goto RET_LABEL;
1646 } else {
1647 }
1648 var8 = self->attrs[COLOR_parser_nodes__ABraFormExpr___n_args].val; /* _n_args on <self:ABraAssignExpr> */
1649 if (unlikely(var8 == NULL)) {
1650 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
1651 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4585);
1652 show_backtrace(1);
1653 }
1654 {
1655 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExprs> */
1656 var_other = var_old_child;
1657 {
1658 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExprs> */
1659 var14 = var8 == var_other;
1660 var12 = var14;
1661 goto RET_LABEL13;
1662 RET_LABEL13:(void)0;
1663 }
1664 }
1665 var10 = var12;
1666 goto RET_LABEL11;
1667 RET_LABEL11:(void)0;
1668 }
1669 var9 = var10;
1670 }
1671 if (var9){
1672 /* <var_new_child:nullable ANode> isa AExprs */
1673 cltype16 = type_parser_nodes__AExprs.color;
1674 idtype17 = type_parser_nodes__AExprs.id;
1675 if(var_new_child == NULL) {
1676 var15 = 0;
1677 } else {
1678 if(cltype16 >= var_new_child->type->table_size) {
1679 var15 = 0;
1680 } else {
1681 var15 = var_new_child->type->type_table[cltype16] == idtype17;
1682 }
1683 }
1684 if (unlikely(!var15)) {
1685 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
1686 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExprs", var_class_name18);
1687 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4586);
1688 show_backtrace(1);
1689 }
1690 {
1691 parser_prod__ABraAssignExpr__n_args_61d(self, var_new_child); /* Direct call parser_prod#ABraAssignExpr#n_args= on <self:ABraAssignExpr>*/
1692 }
1693 goto RET_LABEL;
1694 } else {
1695 }
1696 var19 = self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_assign].val; /* _n_assign on <self:ABraAssignExpr> */
1697 if (unlikely(var19 == NULL)) {
1698 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_assign");
1699 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4589);
1700 show_backtrace(1);
1701 }
1702 {
1703 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:TAssign> */
1704 var_other = var_old_child;
1705 {
1706 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:TAssign> */
1707 var25 = var19 == var_other;
1708 var23 = var25;
1709 goto RET_LABEL24;
1710 RET_LABEL24:(void)0;
1711 }
1712 }
1713 var21 = var23;
1714 goto RET_LABEL22;
1715 RET_LABEL22:(void)0;
1716 }
1717 var20 = var21;
1718 }
1719 if (var20){
1720 /* <var_new_child:nullable ANode> isa TAssign */
1721 cltype27 = type_parser_nodes__TAssign.color;
1722 idtype28 = type_parser_nodes__TAssign.id;
1723 if(var_new_child == NULL) {
1724 var26 = 0;
1725 } else {
1726 if(cltype27 >= var_new_child->type->table_size) {
1727 var26 = 0;
1728 } else {
1729 var26 = var_new_child->type->type_table[cltype27] == idtype28;
1730 }
1731 }
1732 if (unlikely(!var26)) {
1733 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
1734 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TAssign", var_class_name29);
1735 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4590);
1736 show_backtrace(1);
1737 }
1738 {
1739 parser_prod__ABraAssignExpr__n_assign_61d(self, var_new_child); /* Direct call parser_prod#ABraAssignExpr#n_assign= on <self:ABraAssignExpr>*/
1740 }
1741 goto RET_LABEL;
1742 } else {
1743 }
1744 var30 = self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_value].val; /* _n_value on <self:ABraAssignExpr> */
1745 if (unlikely(var30 == NULL)) {
1746 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
1747 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4593);
1748 show_backtrace(1);
1749 }
1750 {
1751 { /* Inline kernel#Object#== (var30,var_old_child) on <var30:AExpr> */
1752 var_other = var_old_child;
1753 {
1754 { /* Inline kernel#Object#is_same_instance (var30,var_other) on <var30:AExpr> */
1755 var36 = var30 == var_other;
1756 var34 = var36;
1757 goto RET_LABEL35;
1758 RET_LABEL35:(void)0;
1759 }
1760 }
1761 var32 = var34;
1762 goto RET_LABEL33;
1763 RET_LABEL33:(void)0;
1764 }
1765 var31 = var32;
1766 }
1767 if (var31){
1768 /* <var_new_child:nullable ANode> isa AExpr */
1769 cltype38 = type_parser_nodes__AExpr.color;
1770 idtype39 = type_parser_nodes__AExpr.id;
1771 if(var_new_child == NULL) {
1772 var37 = 0;
1773 } else {
1774 if(cltype38 >= var_new_child->type->table_size) {
1775 var37 = 0;
1776 } else {
1777 var37 = var_new_child->type->type_table[cltype38] == idtype39;
1778 }
1779 }
1780 if (unlikely(!var37)) {
1781 var_class_name40 = var_new_child == NULL ? "null" : var_new_child->type->name;
1782 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name40);
1783 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4594);
1784 show_backtrace(1);
1785 }
1786 {
1787 parser_prod__ABraAssignExpr__n_value_61d(self, var_new_child); /* Direct call parser_prod#ABraAssignExpr#n_value= on <self:ABraAssignExpr>*/
1788 }
1789 goto RET_LABEL;
1790 } else {
1791 }
1792 RET_LABEL:;
1793 }
1794 /* method parser_prod#ABraAssignExpr#replace_child for (self: Object, ANode, nullable ANode) */
1795 void VIRTUAL_parser_prod__ABraAssignExpr__replace_child(val* self, val* p0, val* p1) {
1796 parser_prod__ABraAssignExpr__replace_child(self, p0, p1); /* Direct call parser_prod#ABraAssignExpr#replace_child on <self:Object(ABraAssignExpr)>*/
1797 RET_LABEL:;
1798 }
1799 /* method parser_prod#ABraAssignExpr#n_expr= for (self: ABraAssignExpr, AExpr) */
1800 void parser_prod__ABraAssignExpr__n_expr_61d(val* self, val* p0) {
1801 val* var_node /* var node: AExpr */;
1802 var_node = p0;
1803 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:ABraAssignExpr> */
1804 {
1805 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
1806 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
1807 RET_LABEL1:(void)0;
1808 }
1809 }
1810 RET_LABEL:;
1811 }
1812 /* method parser_prod#ABraAssignExpr#n_expr= for (self: Object, AExpr) */
1813 void VIRTUAL_parser_prod__ABraAssignExpr__n_expr_61d(val* self, val* p0) {
1814 parser_prod__ABraAssignExpr__n_expr_61d(self, p0); /* Direct call parser_prod#ABraAssignExpr#n_expr= on <self:Object(ABraAssignExpr)>*/
1815 RET_LABEL:;
1816 }
1817 /* method parser_prod#ABraAssignExpr#n_args= for (self: ABraAssignExpr, AExprs) */
1818 void parser_prod__ABraAssignExpr__n_args_61d(val* self, val* p0) {
1819 val* var_node /* var node: AExprs */;
1820 var_node = p0;
1821 self->attrs[COLOR_parser_nodes__ABraFormExpr___n_args].val = var_node; /* _n_args on <self:ABraAssignExpr> */
1822 {
1823 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExprs> */
1824 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExprs> */
1825 RET_LABEL1:(void)0;
1826 }
1827 }
1828 RET_LABEL:;
1829 }
1830 /* method parser_prod#ABraAssignExpr#n_args= for (self: Object, AExprs) */
1831 void VIRTUAL_parser_prod__ABraAssignExpr__n_args_61d(val* self, val* p0) {
1832 parser_prod__ABraAssignExpr__n_args_61d(self, p0); /* Direct call parser_prod#ABraAssignExpr#n_args= on <self:Object(ABraAssignExpr)>*/
1833 RET_LABEL:;
1834 }
1835 /* method parser_prod#ABraAssignExpr#n_assign= for (self: ABraAssignExpr, TAssign) */
1836 void parser_prod__ABraAssignExpr__n_assign_61d(val* self, val* p0) {
1837 val* var_node /* var node: TAssign */;
1838 var_node = p0;
1839 self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_assign].val = var_node; /* _n_assign on <self:ABraAssignExpr> */
1840 {
1841 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TAssign> */
1842 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TAssign> */
1843 RET_LABEL1:(void)0;
1844 }
1845 }
1846 RET_LABEL:;
1847 }
1848 /* method parser_prod#ABraAssignExpr#n_assign= for (self: Object, TAssign) */
1849 void VIRTUAL_parser_prod__ABraAssignExpr__n_assign_61d(val* self, val* p0) {
1850 parser_prod__ABraAssignExpr__n_assign_61d(self, p0); /* Direct call parser_prod#ABraAssignExpr#n_assign= on <self:Object(ABraAssignExpr)>*/
1851 RET_LABEL:;
1852 }
1853 /* method parser_prod#ABraAssignExpr#n_value= for (self: ABraAssignExpr, AExpr) */
1854 void parser_prod__ABraAssignExpr__n_value_61d(val* self, val* p0) {
1855 val* var_node /* var node: AExpr */;
1856 var_node = p0;
1857 self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_value].val = var_node; /* _n_value on <self:ABraAssignExpr> */
1858 {
1859 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
1860 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
1861 RET_LABEL1:(void)0;
1862 }
1863 }
1864 RET_LABEL:;
1865 }
1866 /* method parser_prod#ABraAssignExpr#n_value= for (self: Object, AExpr) */
1867 void VIRTUAL_parser_prod__ABraAssignExpr__n_value_61d(val* self, val* p0) {
1868 parser_prod__ABraAssignExpr__n_value_61d(self, p0); /* Direct call parser_prod#ABraAssignExpr#n_value= on <self:Object(ABraAssignExpr)>*/
1869 RET_LABEL:;
1870 }
1871 /* method parser_prod#ABraAssignExpr#visit_all for (self: ABraAssignExpr, Visitor) */
1872 void parser_prod__ABraAssignExpr__visit_all(val* self, val* p0) {
1873 val* var_v /* var v: Visitor */;
1874 val* var /* : AExpr */;
1875 val* var1 /* : AExprs */;
1876 val* var2 /* : TAssign */;
1877 val* var3 /* : AExpr */;
1878 var_v = p0;
1879 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ABraAssignExpr> */
1880 if (unlikely(var == NULL)) {
1881 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1882 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4623);
1883 show_backtrace(1);
1884 }
1885 {
1886 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1887 }
1888 var1 = self->attrs[COLOR_parser_nodes__ABraFormExpr___n_args].val; /* _n_args on <self:ABraAssignExpr> */
1889 if (unlikely(var1 == NULL)) {
1890 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
1891 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4624);
1892 show_backtrace(1);
1893 }
1894 {
1895 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1896 }
1897 var2 = self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_assign].val; /* _n_assign on <self:ABraAssignExpr> */
1898 if (unlikely(var2 == NULL)) {
1899 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_assign");
1900 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4625);
1901 show_backtrace(1);
1902 }
1903 {
1904 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1905 }
1906 var3 = self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_value].val; /* _n_value on <self:ABraAssignExpr> */
1907 if (unlikely(var3 == NULL)) {
1908 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
1909 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4626);
1910 show_backtrace(1);
1911 }
1912 {
1913 parser_nodes__Visitor__enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1914 }
1915 RET_LABEL:;
1916 }
1917 /* method parser_prod#ABraAssignExpr#visit_all for (self: Object, Visitor) */
1918 void VIRTUAL_parser_prod__ABraAssignExpr__visit_all(val* self, val* p0) {
1919 parser_prod__ABraAssignExpr__visit_all(self, p0); /* Direct call parser_prod#ABraAssignExpr#visit_all on <self:Object(ABraAssignExpr)>*/
1920 RET_LABEL:;
1921 }
1922 /* method parser_prod#ABraReassignExpr#init_abrareassignexpr for (self: ABraReassignExpr, nullable AExpr, nullable AExprs, nullable AAssignOp, nullable AExpr) */
1923 void parser_prod__ABraReassignExpr__init_abrareassignexpr(val* self, val* p0, val* p1, val* p2, val* p3) {
1924 val* var_n_expr /* var n_expr: nullable AExpr */;
1925 val* var_n_args /* var n_args: nullable AExprs */;
1926 val* var_n_assign_op /* var n_assign_op: nullable AAssignOp */;
1927 val* var_n_value /* var n_value: nullable AExpr */;
1928 var_n_expr = p0;
1929 var_n_args = p1;
1930 var_n_assign_op = p2;
1931 var_n_value = p3;
1932 if (unlikely(var_n_expr == NULL)) {
1933 PRINT_ERROR("Runtime error: %s", "Cast failed");
1934 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4637);
1935 show_backtrace(1);
1936 }
1937 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_n_expr; /* _n_expr on <self:ABraReassignExpr> */
1938 if (var_n_expr == NULL) {
1939 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1940 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4638);
1941 show_backtrace(1);
1942 } else {
1943 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
1944 if (unlikely(var_n_expr == NULL)) {
1945 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1946 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
1947 show_backtrace(1);
1948 }
1949 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
1950 RET_LABEL1:(void)0;
1951 }
1952 }
1953 if (unlikely(var_n_args == NULL)) {
1954 PRINT_ERROR("Runtime error: %s", "Cast failed");
1955 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4639);
1956 show_backtrace(1);
1957 }
1958 self->attrs[COLOR_parser_nodes__ABraFormExpr___n_args].val = var_n_args; /* _n_args on <self:ABraReassignExpr> */
1959 if (var_n_args == NULL) {
1960 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1961 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4640);
1962 show_backtrace(1);
1963 } else {
1964 { /* Inline parser_nodes#ANode#parent= (var_n_args,self) on <var_n_args:nullable AExprs> */
1965 if (unlikely(var_n_args == NULL)) {
1966 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1967 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
1968 show_backtrace(1);
1969 }
1970 var_n_args->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_args:nullable AExprs> */
1971 RET_LABEL2:(void)0;
1972 }
1973 }
1974 if (unlikely(var_n_assign_op == NULL)) {
1975 PRINT_ERROR("Runtime error: %s", "Cast failed");
1976 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4641);
1977 show_backtrace(1);
1978 }
1979 self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_assign_op].val = var_n_assign_op; /* _n_assign_op on <self:ABraReassignExpr> */
1980 if (var_n_assign_op == NULL) {
1981 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1982 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4642);
1983 show_backtrace(1);
1984 } else {
1985 { /* Inline parser_nodes#ANode#parent= (var_n_assign_op,self) on <var_n_assign_op:nullable AAssignOp> */
1986 if (unlikely(var_n_assign_op == NULL)) {
1987 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1988 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
1989 show_backtrace(1);
1990 }
1991 var_n_assign_op->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_assign_op:nullable AAssignOp> */
1992 RET_LABEL3:(void)0;
1993 }
1994 }
1995 if (unlikely(var_n_value == NULL)) {
1996 PRINT_ERROR("Runtime error: %s", "Cast failed");
1997 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4643);
1998 show_backtrace(1);
1999 }
2000 self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_value].val = var_n_value; /* _n_value on <self:ABraReassignExpr> */
2001 if (var_n_value == NULL) {
2002 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2003 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4644);
2004 show_backtrace(1);
2005 } else {
2006 { /* Inline parser_nodes#ANode#parent= (var_n_value,self) on <var_n_value:nullable AExpr> */
2007 if (unlikely(var_n_value == NULL)) {
2008 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2009 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
2010 show_backtrace(1);
2011 }
2012 var_n_value->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_value:nullable AExpr> */
2013 RET_LABEL4:(void)0;
2014 }
2015 }
2016 RET_LABEL:;
2017 }
2018 /* method parser_prod#ABraReassignExpr#init_abrareassignexpr for (self: Object, nullable AExpr, nullable AExprs, nullable AAssignOp, nullable AExpr) */
2019 void VIRTUAL_parser_prod__ABraReassignExpr__init_abrareassignexpr(val* self, val* p0, val* p1, val* p2, val* p3) {
2020 parser_prod__ABraReassignExpr__init_abrareassignexpr(self, p0, p1, p2, p3); /* Direct call parser_prod#ABraReassignExpr#init_abrareassignexpr on <self:Object(ABraReassignExpr)>*/
2021 RET_LABEL:;
2022 }
2023 /* method parser_prod#ABraReassignExpr#replace_child for (self: ABraReassignExpr, ANode, nullable ANode) */
2024 void parser_prod__ABraReassignExpr__replace_child(val* self, val* p0, val* p1) {
2025 val* var_old_child /* var old_child: ANode */;
2026 val* var_new_child /* var new_child: nullable ANode */;
2027 val* var /* : AExpr */;
2028 short int var1 /* : Bool */;
2029 short int var2 /* : Bool */;
2030 val* var_other /* var other: nullable Object */;
2031 short int var4 /* : Bool */;
2032 short int var6 /* : Bool */;
2033 short int var7 /* : Bool */;
2034 int cltype;
2035 int idtype;
2036 const char* var_class_name;
2037 val* var8 /* : AExprs */;
2038 short int var9 /* : Bool */;
2039 short int var10 /* : Bool */;
2040 short int var12 /* : Bool */;
2041 short int var14 /* : Bool */;
2042 short int var15 /* : Bool */;
2043 int cltype16;
2044 int idtype17;
2045 const char* var_class_name18;
2046 val* var19 /* : AAssignOp */;
2047 short int var20 /* : Bool */;
2048 short int var21 /* : Bool */;
2049 short int var23 /* : Bool */;
2050 short int var25 /* : Bool */;
2051 short int var26 /* : Bool */;
2052 int cltype27;
2053 int idtype28;
2054 const char* var_class_name29;
2055 val* var30 /* : AExpr */;
2056 short int var31 /* : Bool */;
2057 short int var32 /* : Bool */;
2058 short int var34 /* : Bool */;
2059 short int var36 /* : Bool */;
2060 short int var37 /* : Bool */;
2061 int cltype38;
2062 int idtype39;
2063 const char* var_class_name40;
2064 var_old_child = p0;
2065 var_new_child = p1;
2066 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ABraReassignExpr> */
2067 if (unlikely(var == NULL)) {
2068 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2069 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4649);
2070 show_backtrace(1);
2071 }
2072 {
2073 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
2074 var_other = var_old_child;
2075 {
2076 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
2077 var6 = var == var_other;
2078 var4 = var6;
2079 goto RET_LABEL5;
2080 RET_LABEL5:(void)0;
2081 }
2082 }
2083 var2 = var4;
2084 goto RET_LABEL3;
2085 RET_LABEL3:(void)0;
2086 }
2087 var1 = var2;
2088 }
2089 if (var1){
2090 /* <var_new_child:nullable ANode> isa AExpr */
2091 cltype = type_parser_nodes__AExpr.color;
2092 idtype = type_parser_nodes__AExpr.id;
2093 if(var_new_child == NULL) {
2094 var7 = 0;
2095 } else {
2096 if(cltype >= var_new_child->type->table_size) {
2097 var7 = 0;
2098 } else {
2099 var7 = var_new_child->type->type_table[cltype] == idtype;
2100 }
2101 }
2102 if (unlikely(!var7)) {
2103 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
2104 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
2105 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4650);
2106 show_backtrace(1);
2107 }
2108 {
2109 parser_prod__ABraReassignExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#ABraReassignExpr#n_expr= on <self:ABraReassignExpr>*/
2110 }
2111 goto RET_LABEL;
2112 } else {
2113 }
2114 var8 = self->attrs[COLOR_parser_nodes__ABraFormExpr___n_args].val; /* _n_args on <self:ABraReassignExpr> */
2115 if (unlikely(var8 == NULL)) {
2116 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
2117 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4653);
2118 show_backtrace(1);
2119 }
2120 {
2121 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExprs> */
2122 var_other = var_old_child;
2123 {
2124 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExprs> */
2125 var14 = var8 == var_other;
2126 var12 = var14;
2127 goto RET_LABEL13;
2128 RET_LABEL13:(void)0;
2129 }
2130 }
2131 var10 = var12;
2132 goto RET_LABEL11;
2133 RET_LABEL11:(void)0;
2134 }
2135 var9 = var10;
2136 }
2137 if (var9){
2138 /* <var_new_child:nullable ANode> isa AExprs */
2139 cltype16 = type_parser_nodes__AExprs.color;
2140 idtype17 = type_parser_nodes__AExprs.id;
2141 if(var_new_child == NULL) {
2142 var15 = 0;
2143 } else {
2144 if(cltype16 >= var_new_child->type->table_size) {
2145 var15 = 0;
2146 } else {
2147 var15 = var_new_child->type->type_table[cltype16] == idtype17;
2148 }
2149 }
2150 if (unlikely(!var15)) {
2151 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
2152 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExprs", var_class_name18);
2153 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4654);
2154 show_backtrace(1);
2155 }
2156 {
2157 parser_prod__ABraReassignExpr__n_args_61d(self, var_new_child); /* Direct call parser_prod#ABraReassignExpr#n_args= on <self:ABraReassignExpr>*/
2158 }
2159 goto RET_LABEL;
2160 } else {
2161 }
2162 var19 = self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_assign_op].val; /* _n_assign_op on <self:ABraReassignExpr> */
2163 if (unlikely(var19 == NULL)) {
2164 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_assign_op");
2165 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4657);
2166 show_backtrace(1);
2167 }
2168 {
2169 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:AAssignOp> */
2170 var_other = var_old_child;
2171 {
2172 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:AAssignOp> */
2173 var25 = var19 == var_other;
2174 var23 = var25;
2175 goto RET_LABEL24;
2176 RET_LABEL24:(void)0;
2177 }
2178 }
2179 var21 = var23;
2180 goto RET_LABEL22;
2181 RET_LABEL22:(void)0;
2182 }
2183 var20 = var21;
2184 }
2185 if (var20){
2186 /* <var_new_child:nullable ANode> isa AAssignOp */
2187 cltype27 = type_parser_nodes__AAssignOp.color;
2188 idtype28 = type_parser_nodes__AAssignOp.id;
2189 if(var_new_child == NULL) {
2190 var26 = 0;
2191 } else {
2192 if(cltype27 >= var_new_child->type->table_size) {
2193 var26 = 0;
2194 } else {
2195 var26 = var_new_child->type->type_table[cltype27] == idtype28;
2196 }
2197 }
2198 if (unlikely(!var26)) {
2199 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
2200 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AAssignOp", var_class_name29);
2201 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4658);
2202 show_backtrace(1);
2203 }
2204 {
2205 parser_prod__ABraReassignExpr__n_assign_op_61d(self, var_new_child); /* Direct call parser_prod#ABraReassignExpr#n_assign_op= on <self:ABraReassignExpr>*/
2206 }
2207 goto RET_LABEL;
2208 } else {
2209 }
2210 var30 = self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_value].val; /* _n_value on <self:ABraReassignExpr> */
2211 if (unlikely(var30 == NULL)) {
2212 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
2213 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4661);
2214 show_backtrace(1);
2215 }
2216 {
2217 { /* Inline kernel#Object#== (var30,var_old_child) on <var30:AExpr> */
2218 var_other = var_old_child;
2219 {
2220 { /* Inline kernel#Object#is_same_instance (var30,var_other) on <var30:AExpr> */
2221 var36 = var30 == var_other;
2222 var34 = var36;
2223 goto RET_LABEL35;
2224 RET_LABEL35:(void)0;
2225 }
2226 }
2227 var32 = var34;
2228 goto RET_LABEL33;
2229 RET_LABEL33:(void)0;
2230 }
2231 var31 = var32;
2232 }
2233 if (var31){
2234 /* <var_new_child:nullable ANode> isa AExpr */
2235 cltype38 = type_parser_nodes__AExpr.color;
2236 idtype39 = type_parser_nodes__AExpr.id;
2237 if(var_new_child == NULL) {
2238 var37 = 0;
2239 } else {
2240 if(cltype38 >= var_new_child->type->table_size) {
2241 var37 = 0;
2242 } else {
2243 var37 = var_new_child->type->type_table[cltype38] == idtype39;
2244 }
2245 }
2246 if (unlikely(!var37)) {
2247 var_class_name40 = var_new_child == NULL ? "null" : var_new_child->type->name;
2248 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name40);
2249 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4662);
2250 show_backtrace(1);
2251 }
2252 {
2253 parser_prod__ABraReassignExpr__n_value_61d(self, var_new_child); /* Direct call parser_prod#ABraReassignExpr#n_value= on <self:ABraReassignExpr>*/
2254 }
2255 goto RET_LABEL;
2256 } else {
2257 }
2258 RET_LABEL:;
2259 }
2260 /* method parser_prod#ABraReassignExpr#replace_child for (self: Object, ANode, nullable ANode) */
2261 void VIRTUAL_parser_prod__ABraReassignExpr__replace_child(val* self, val* p0, val* p1) {
2262 parser_prod__ABraReassignExpr__replace_child(self, p0, p1); /* Direct call parser_prod#ABraReassignExpr#replace_child on <self:Object(ABraReassignExpr)>*/
2263 RET_LABEL:;
2264 }
2265 /* method parser_prod#ABraReassignExpr#n_expr= for (self: ABraReassignExpr, AExpr) */
2266 void parser_prod__ABraReassignExpr__n_expr_61d(val* self, val* p0) {
2267 val* var_node /* var node: AExpr */;
2268 var_node = p0;
2269 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_node; /* _n_expr on <self:ABraReassignExpr> */
2270 {
2271 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
2272 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
2273 RET_LABEL1:(void)0;
2274 }
2275 }
2276 RET_LABEL:;
2277 }
2278 /* method parser_prod#ABraReassignExpr#n_expr= for (self: Object, AExpr) */
2279 void VIRTUAL_parser_prod__ABraReassignExpr__n_expr_61d(val* self, val* p0) {
2280 parser_prod__ABraReassignExpr__n_expr_61d(self, p0); /* Direct call parser_prod#ABraReassignExpr#n_expr= on <self:Object(ABraReassignExpr)>*/
2281 RET_LABEL:;
2282 }
2283 /* method parser_prod#ABraReassignExpr#n_args= for (self: ABraReassignExpr, AExprs) */
2284 void parser_prod__ABraReassignExpr__n_args_61d(val* self, val* p0) {
2285 val* var_node /* var node: AExprs */;
2286 var_node = p0;
2287 self->attrs[COLOR_parser_nodes__ABraFormExpr___n_args].val = var_node; /* _n_args on <self:ABraReassignExpr> */
2288 {
2289 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExprs> */
2290 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExprs> */
2291 RET_LABEL1:(void)0;
2292 }
2293 }
2294 RET_LABEL:;
2295 }
2296 /* method parser_prod#ABraReassignExpr#n_args= for (self: Object, AExprs) */
2297 void VIRTUAL_parser_prod__ABraReassignExpr__n_args_61d(val* self, val* p0) {
2298 parser_prod__ABraReassignExpr__n_args_61d(self, p0); /* Direct call parser_prod#ABraReassignExpr#n_args= on <self:Object(ABraReassignExpr)>*/
2299 RET_LABEL:;
2300 }
2301 /* method parser_prod#ABraReassignExpr#n_assign_op= for (self: ABraReassignExpr, AAssignOp) */
2302 void parser_prod__ABraReassignExpr__n_assign_op_61d(val* self, val* p0) {
2303 val* var_node /* var node: AAssignOp */;
2304 var_node = p0;
2305 self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_assign_op].val = var_node; /* _n_assign_op on <self:ABraReassignExpr> */
2306 {
2307 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AAssignOp> */
2308 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AAssignOp> */
2309 RET_LABEL1:(void)0;
2310 }
2311 }
2312 RET_LABEL:;
2313 }
2314 /* method parser_prod#ABraReassignExpr#n_assign_op= for (self: Object, AAssignOp) */
2315 void VIRTUAL_parser_prod__ABraReassignExpr__n_assign_op_61d(val* self, val* p0) {
2316 parser_prod__ABraReassignExpr__n_assign_op_61d(self, p0); /* Direct call parser_prod#ABraReassignExpr#n_assign_op= on <self:Object(ABraReassignExpr)>*/
2317 RET_LABEL:;
2318 }
2319 /* method parser_prod#ABraReassignExpr#n_value= for (self: ABraReassignExpr, AExpr) */
2320 void parser_prod__ABraReassignExpr__n_value_61d(val* self, val* p0) {
2321 val* var_node /* var node: AExpr */;
2322 var_node = p0;
2323 self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_value].val = var_node; /* _n_value on <self:ABraReassignExpr> */
2324 {
2325 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
2326 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
2327 RET_LABEL1:(void)0;
2328 }
2329 }
2330 RET_LABEL:;
2331 }
2332 /* method parser_prod#ABraReassignExpr#n_value= for (self: Object, AExpr) */
2333 void VIRTUAL_parser_prod__ABraReassignExpr__n_value_61d(val* self, val* p0) {
2334 parser_prod__ABraReassignExpr__n_value_61d(self, p0); /* Direct call parser_prod#ABraReassignExpr#n_value= on <self:Object(ABraReassignExpr)>*/
2335 RET_LABEL:;
2336 }
2337 /* method parser_prod#ABraReassignExpr#visit_all for (self: ABraReassignExpr, Visitor) */
2338 void parser_prod__ABraReassignExpr__visit_all(val* self, val* p0) {
2339 val* var_v /* var v: Visitor */;
2340 val* var /* : AExpr */;
2341 val* var1 /* : AExprs */;
2342 val* var2 /* : AAssignOp */;
2343 val* var3 /* : AExpr */;
2344 var_v = p0;
2345 var = self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ABraReassignExpr> */
2346 if (unlikely(var == NULL)) {
2347 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2348 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4691);
2349 show_backtrace(1);
2350 }
2351 {
2352 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2353 }
2354 var1 = self->attrs[COLOR_parser_nodes__ABraFormExpr___n_args].val; /* _n_args on <self:ABraReassignExpr> */
2355 if (unlikely(var1 == NULL)) {
2356 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
2357 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4692);
2358 show_backtrace(1);
2359 }
2360 {
2361 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2362 }
2363 var2 = self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_assign_op].val; /* _n_assign_op on <self:ABraReassignExpr> */
2364 if (unlikely(var2 == NULL)) {
2365 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_assign_op");
2366 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4693);
2367 show_backtrace(1);
2368 }
2369 {
2370 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2371 }
2372 var3 = self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_value].val; /* _n_value on <self:ABraReassignExpr> */
2373 if (unlikely(var3 == NULL)) {
2374 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
2375 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4694);
2376 show_backtrace(1);
2377 }
2378 {
2379 parser_nodes__Visitor__enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2380 }
2381 RET_LABEL:;
2382 }
2383 /* method parser_prod#ABraReassignExpr#visit_all for (self: Object, Visitor) */
2384 void VIRTUAL_parser_prod__ABraReassignExpr__visit_all(val* self, val* p0) {
2385 parser_prod__ABraReassignExpr__visit_all(self, p0); /* Direct call parser_prod#ABraReassignExpr#visit_all on <self:Object(ABraReassignExpr)>*/
2386 RET_LABEL:;
2387 }
2388 /* method parser_prod#AVarExpr#init_avarexpr for (self: AVarExpr, nullable TId) */
2389 void parser_prod__AVarExpr__init_avarexpr(val* self, val* p0) {
2390 val* var_n_id /* var n_id: nullable TId */;
2391 var_n_id = p0;
2392 if (unlikely(var_n_id == NULL)) {
2393 PRINT_ERROR("Runtime error: %s", "Cast failed");
2394 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4702);
2395 show_backtrace(1);
2396 }
2397 self->attrs[COLOR_parser_nodes__AVarFormExpr___n_id].val = var_n_id; /* _n_id on <self:AVarExpr> */
2398 if (var_n_id == NULL) {
2399 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2400 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4703);
2401 show_backtrace(1);
2402 } else {
2403 { /* Inline parser_nodes#ANode#parent= (var_n_id,self) on <var_n_id:nullable TId> */
2404 if (unlikely(var_n_id == NULL)) {
2405 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2406 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
2407 show_backtrace(1);
2408 }
2409 var_n_id->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_id:nullable TId> */
2410 RET_LABEL1:(void)0;
2411 }
2412 }
2413 RET_LABEL:;
2414 }
2415 /* method parser_prod#AVarExpr#init_avarexpr for (self: Object, nullable TId) */
2416 void VIRTUAL_parser_prod__AVarExpr__init_avarexpr(val* self, val* p0) {
2417 parser_prod__AVarExpr__init_avarexpr(self, p0); /* Direct call parser_prod#AVarExpr#init_avarexpr on <self:Object(AVarExpr)>*/
2418 RET_LABEL:;
2419 }
2420 /* method parser_prod#AVarExpr#replace_child for (self: AVarExpr, ANode, nullable ANode) */
2421 void parser_prod__AVarExpr__replace_child(val* self, val* p0, val* p1) {
2422 val* var_old_child /* var old_child: ANode */;
2423 val* var_new_child /* var new_child: nullable ANode */;
2424 val* var /* : TId */;
2425 short int var1 /* : Bool */;
2426 short int var2 /* : Bool */;
2427 val* var_other /* var other: nullable Object */;
2428 short int var4 /* : Bool */;
2429 short int var6 /* : Bool */;
2430 short int var7 /* : Bool */;
2431 int cltype;
2432 int idtype;
2433 const char* var_class_name;
2434 var_old_child = p0;
2435 var_new_child = p1;
2436 var = self->attrs[COLOR_parser_nodes__AVarFormExpr___n_id].val; /* _n_id on <self:AVarExpr> */
2437 if (unlikely(var == NULL)) {
2438 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
2439 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4708);
2440 show_backtrace(1);
2441 }
2442 {
2443 { /* Inline kernel#Object#== (var,var_old_child) on <var:TId> */
2444 var_other = var_old_child;
2445 {
2446 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TId> */
2447 var6 = var == var_other;
2448 var4 = var6;
2449 goto RET_LABEL5;
2450 RET_LABEL5:(void)0;
2451 }
2452 }
2453 var2 = var4;
2454 goto RET_LABEL3;
2455 RET_LABEL3:(void)0;
2456 }
2457 var1 = var2;
2458 }
2459 if (var1){
2460 /* <var_new_child:nullable ANode> isa TId */
2461 cltype = type_parser_nodes__TId.color;
2462 idtype = type_parser_nodes__TId.id;
2463 if(var_new_child == NULL) {
2464 var7 = 0;
2465 } else {
2466 if(cltype >= var_new_child->type->table_size) {
2467 var7 = 0;
2468 } else {
2469 var7 = var_new_child->type->type_table[cltype] == idtype;
2470 }
2471 }
2472 if (unlikely(!var7)) {
2473 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
2474 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TId", var_class_name);
2475 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4709);
2476 show_backtrace(1);
2477 }
2478 {
2479 parser_prod__AVarExpr__n_id_61d(self, var_new_child); /* Direct call parser_prod#AVarExpr#n_id= on <self:AVarExpr>*/
2480 }
2481 goto RET_LABEL;
2482 } else {
2483 }
2484 RET_LABEL:;
2485 }
2486 /* method parser_prod#AVarExpr#replace_child for (self: Object, ANode, nullable ANode) */
2487 void VIRTUAL_parser_prod__AVarExpr__replace_child(val* self, val* p0, val* p1) {
2488 parser_prod__AVarExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AVarExpr#replace_child on <self:Object(AVarExpr)>*/
2489 RET_LABEL:;
2490 }
2491 /* method parser_prod#AVarExpr#n_id= for (self: AVarExpr, TId) */
2492 void parser_prod__AVarExpr__n_id_61d(val* self, val* p0) {
2493 val* var_node /* var node: TId */;
2494 var_node = p0;
2495 self->attrs[COLOR_parser_nodes__AVarFormExpr___n_id].val = var_node; /* _n_id on <self:AVarExpr> */
2496 {
2497 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TId> */
2498 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TId> */
2499 RET_LABEL1:(void)0;
2500 }
2501 }
2502 RET_LABEL:;
2503 }
2504 /* method parser_prod#AVarExpr#n_id= for (self: Object, TId) */
2505 void VIRTUAL_parser_prod__AVarExpr__n_id_61d(val* self, val* p0) {
2506 parser_prod__AVarExpr__n_id_61d(self, p0); /* Direct call parser_prod#AVarExpr#n_id= on <self:Object(AVarExpr)>*/
2507 RET_LABEL:;
2508 }
2509 /* method parser_prod#AVarExpr#visit_all for (self: AVarExpr, Visitor) */
2510 void parser_prod__AVarExpr__visit_all(val* self, val* p0) {
2511 val* var_v /* var v: Visitor */;
2512 val* var /* : TId */;
2513 var_v = p0;
2514 var = self->attrs[COLOR_parser_nodes__AVarFormExpr___n_id].val; /* _n_id on <self:AVarExpr> */
2515 if (unlikely(var == NULL)) {
2516 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
2517 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4723);
2518 show_backtrace(1);
2519 }
2520 {
2521 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2522 }
2523 RET_LABEL:;
2524 }
2525 /* method parser_prod#AVarExpr#visit_all for (self: Object, Visitor) */
2526 void VIRTUAL_parser_prod__AVarExpr__visit_all(val* self, val* p0) {
2527 parser_prod__AVarExpr__visit_all(self, p0); /* Direct call parser_prod#AVarExpr#visit_all on <self:Object(AVarExpr)>*/
2528 RET_LABEL:;
2529 }
2530 /* method parser_prod#AVarAssignExpr#init_avarassignexpr for (self: AVarAssignExpr, nullable TId, nullable TAssign, nullable AExpr) */
2531 void parser_prod__AVarAssignExpr__init_avarassignexpr(val* self, val* p0, val* p1, val* p2) {
2532 val* var_n_id /* var n_id: nullable TId */;
2533 val* var_n_assign /* var n_assign: nullable TAssign */;
2534 val* var_n_value /* var n_value: nullable AExpr */;
2535 var_n_id = p0;
2536 var_n_assign = p1;
2537 var_n_value = p2;
2538 if (unlikely(var_n_id == NULL)) {
2539 PRINT_ERROR("Runtime error: %s", "Cast failed");
2540 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4733);
2541 show_backtrace(1);
2542 }
2543 self->attrs[COLOR_parser_nodes__AVarFormExpr___n_id].val = var_n_id; /* _n_id on <self:AVarAssignExpr> */
2544 if (var_n_id == NULL) {
2545 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2546 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4734);
2547 show_backtrace(1);
2548 } else {
2549 { /* Inline parser_nodes#ANode#parent= (var_n_id,self) on <var_n_id:nullable TId> */
2550 if (unlikely(var_n_id == NULL)) {
2551 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2552 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
2553 show_backtrace(1);
2554 }
2555 var_n_id->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_id:nullable TId> */
2556 RET_LABEL1:(void)0;
2557 }
2558 }
2559 if (unlikely(var_n_assign == NULL)) {
2560 PRINT_ERROR("Runtime error: %s", "Cast failed");
2561 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4735);
2562 show_backtrace(1);
2563 }
2564 self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_assign].val = var_n_assign; /* _n_assign on <self:AVarAssignExpr> */
2565 if (var_n_assign == NULL) {
2566 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2567 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4736);
2568 show_backtrace(1);
2569 } else {
2570 { /* Inline parser_nodes#ANode#parent= (var_n_assign,self) on <var_n_assign:nullable TAssign> */
2571 if (unlikely(var_n_assign == NULL)) {
2572 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2573 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
2574 show_backtrace(1);
2575 }
2576 var_n_assign->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_assign:nullable TAssign> */
2577 RET_LABEL2:(void)0;
2578 }
2579 }
2580 if (unlikely(var_n_value == NULL)) {
2581 PRINT_ERROR("Runtime error: %s", "Cast failed");
2582 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4737);
2583 show_backtrace(1);
2584 }
2585 self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_value].val = var_n_value; /* _n_value on <self:AVarAssignExpr> */
2586 if (var_n_value == NULL) {
2587 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2588 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4738);
2589 show_backtrace(1);
2590 } else {
2591 { /* Inline parser_nodes#ANode#parent= (var_n_value,self) on <var_n_value:nullable AExpr> */
2592 if (unlikely(var_n_value == NULL)) {
2593 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2594 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
2595 show_backtrace(1);
2596 }
2597 var_n_value->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_value:nullable AExpr> */
2598 RET_LABEL3:(void)0;
2599 }
2600 }
2601 RET_LABEL:;
2602 }
2603 /* method parser_prod#AVarAssignExpr#init_avarassignexpr for (self: Object, nullable TId, nullable TAssign, nullable AExpr) */
2604 void VIRTUAL_parser_prod__AVarAssignExpr__init_avarassignexpr(val* self, val* p0, val* p1, val* p2) {
2605 parser_prod__AVarAssignExpr__init_avarassignexpr(self, p0, p1, p2); /* Direct call parser_prod#AVarAssignExpr#init_avarassignexpr on <self:Object(AVarAssignExpr)>*/
2606 RET_LABEL:;
2607 }
2608 /* method parser_prod#AVarAssignExpr#replace_child for (self: AVarAssignExpr, ANode, nullable ANode) */
2609 void parser_prod__AVarAssignExpr__replace_child(val* self, val* p0, val* p1) {
2610 val* var_old_child /* var old_child: ANode */;
2611 val* var_new_child /* var new_child: nullable ANode */;
2612 val* var /* : TId */;
2613 short int var1 /* : Bool */;
2614 short int var2 /* : Bool */;
2615 val* var_other /* var other: nullable Object */;
2616 short int var4 /* : Bool */;
2617 short int var6 /* : Bool */;
2618 short int var7 /* : Bool */;
2619 int cltype;
2620 int idtype;
2621 const char* var_class_name;
2622 val* var8 /* : TAssign */;
2623 short int var9 /* : Bool */;
2624 short int var10 /* : Bool */;
2625 short int var12 /* : Bool */;
2626 short int var14 /* : Bool */;
2627 short int var15 /* : Bool */;
2628 int cltype16;
2629 int idtype17;
2630 const char* var_class_name18;
2631 val* var19 /* : AExpr */;
2632 short int var20 /* : Bool */;
2633 short int var21 /* : Bool */;
2634 short int var23 /* : Bool */;
2635 short int var25 /* : Bool */;
2636 short int var26 /* : Bool */;
2637 int cltype27;
2638 int idtype28;
2639 const char* var_class_name29;
2640 var_old_child = p0;
2641 var_new_child = p1;
2642 var = self->attrs[COLOR_parser_nodes__AVarFormExpr___n_id].val; /* _n_id on <self:AVarAssignExpr> */
2643 if (unlikely(var == NULL)) {
2644 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
2645 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4743);
2646 show_backtrace(1);
2647 }
2648 {
2649 { /* Inline kernel#Object#== (var,var_old_child) on <var:TId> */
2650 var_other = var_old_child;
2651 {
2652 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TId> */
2653 var6 = var == var_other;
2654 var4 = var6;
2655 goto RET_LABEL5;
2656 RET_LABEL5:(void)0;
2657 }
2658 }
2659 var2 = var4;
2660 goto RET_LABEL3;
2661 RET_LABEL3:(void)0;
2662 }
2663 var1 = var2;
2664 }
2665 if (var1){
2666 /* <var_new_child:nullable ANode> isa TId */
2667 cltype = type_parser_nodes__TId.color;
2668 idtype = type_parser_nodes__TId.id;
2669 if(var_new_child == NULL) {
2670 var7 = 0;
2671 } else {
2672 if(cltype >= var_new_child->type->table_size) {
2673 var7 = 0;
2674 } else {
2675 var7 = var_new_child->type->type_table[cltype] == idtype;
2676 }
2677 }
2678 if (unlikely(!var7)) {
2679 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
2680 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TId", var_class_name);
2681 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4744);
2682 show_backtrace(1);
2683 }
2684 {
2685 parser_prod__AVarAssignExpr__n_id_61d(self, var_new_child); /* Direct call parser_prod#AVarAssignExpr#n_id= on <self:AVarAssignExpr>*/
2686 }
2687 goto RET_LABEL;
2688 } else {
2689 }
2690 var8 = self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_assign].val; /* _n_assign on <self:AVarAssignExpr> */
2691 if (unlikely(var8 == NULL)) {
2692 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_assign");
2693 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4747);
2694 show_backtrace(1);
2695 }
2696 {
2697 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:TAssign> */
2698 var_other = var_old_child;
2699 {
2700 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:TAssign> */
2701 var14 = var8 == var_other;
2702 var12 = var14;
2703 goto RET_LABEL13;
2704 RET_LABEL13:(void)0;
2705 }
2706 }
2707 var10 = var12;
2708 goto RET_LABEL11;
2709 RET_LABEL11:(void)0;
2710 }
2711 var9 = var10;
2712 }
2713 if (var9){
2714 /* <var_new_child:nullable ANode> isa TAssign */
2715 cltype16 = type_parser_nodes__TAssign.color;
2716 idtype17 = type_parser_nodes__TAssign.id;
2717 if(var_new_child == NULL) {
2718 var15 = 0;
2719 } else {
2720 if(cltype16 >= var_new_child->type->table_size) {
2721 var15 = 0;
2722 } else {
2723 var15 = var_new_child->type->type_table[cltype16] == idtype17;
2724 }
2725 }
2726 if (unlikely(!var15)) {
2727 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
2728 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TAssign", var_class_name18);
2729 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4748);
2730 show_backtrace(1);
2731 }
2732 {
2733 parser_prod__AVarAssignExpr__n_assign_61d(self, var_new_child); /* Direct call parser_prod#AVarAssignExpr#n_assign= on <self:AVarAssignExpr>*/
2734 }
2735 goto RET_LABEL;
2736 } else {
2737 }
2738 var19 = self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_value].val; /* _n_value on <self:AVarAssignExpr> */
2739 if (unlikely(var19 == NULL)) {
2740 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
2741 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4751);
2742 show_backtrace(1);
2743 }
2744 {
2745 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:AExpr> */
2746 var_other = var_old_child;
2747 {
2748 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:AExpr> */
2749 var25 = var19 == var_other;
2750 var23 = var25;
2751 goto RET_LABEL24;
2752 RET_LABEL24:(void)0;
2753 }
2754 }
2755 var21 = var23;
2756 goto RET_LABEL22;
2757 RET_LABEL22:(void)0;
2758 }
2759 var20 = var21;
2760 }
2761 if (var20){
2762 /* <var_new_child:nullable ANode> isa AExpr */
2763 cltype27 = type_parser_nodes__AExpr.color;
2764 idtype28 = type_parser_nodes__AExpr.id;
2765 if(var_new_child == NULL) {
2766 var26 = 0;
2767 } else {
2768 if(cltype27 >= var_new_child->type->table_size) {
2769 var26 = 0;
2770 } else {
2771 var26 = var_new_child->type->type_table[cltype27] == idtype28;
2772 }
2773 }
2774 if (unlikely(!var26)) {
2775 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
2776 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name29);
2777 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4752);
2778 show_backtrace(1);
2779 }
2780 {
2781 parser_prod__AVarAssignExpr__n_value_61d(self, var_new_child); /* Direct call parser_prod#AVarAssignExpr#n_value= on <self:AVarAssignExpr>*/
2782 }
2783 goto RET_LABEL;
2784 } else {
2785 }
2786 RET_LABEL:;
2787 }
2788 /* method parser_prod#AVarAssignExpr#replace_child for (self: Object, ANode, nullable ANode) */
2789 void VIRTUAL_parser_prod__AVarAssignExpr__replace_child(val* self, val* p0, val* p1) {
2790 parser_prod__AVarAssignExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AVarAssignExpr#replace_child on <self:Object(AVarAssignExpr)>*/
2791 RET_LABEL:;
2792 }
2793 /* method parser_prod#AVarAssignExpr#n_id= for (self: AVarAssignExpr, TId) */
2794 void parser_prod__AVarAssignExpr__n_id_61d(val* self, val* p0) {
2795 val* var_node /* var node: TId */;
2796 var_node = p0;
2797 self->attrs[COLOR_parser_nodes__AVarFormExpr___n_id].val = var_node; /* _n_id on <self:AVarAssignExpr> */
2798 {
2799 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TId> */
2800 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TId> */
2801 RET_LABEL1:(void)0;
2802 }
2803 }
2804 RET_LABEL:;
2805 }
2806 /* method parser_prod#AVarAssignExpr#n_id= for (self: Object, TId) */
2807 void VIRTUAL_parser_prod__AVarAssignExpr__n_id_61d(val* self, val* p0) {
2808 parser_prod__AVarAssignExpr__n_id_61d(self, p0); /* Direct call parser_prod#AVarAssignExpr#n_id= on <self:Object(AVarAssignExpr)>*/
2809 RET_LABEL:;
2810 }
2811 /* method parser_prod#AVarAssignExpr#n_assign= for (self: AVarAssignExpr, TAssign) */
2812 void parser_prod__AVarAssignExpr__n_assign_61d(val* self, val* p0) {
2813 val* var_node /* var node: TAssign */;
2814 var_node = p0;
2815 self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_assign].val = var_node; /* _n_assign on <self:AVarAssignExpr> */
2816 {
2817 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TAssign> */
2818 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TAssign> */
2819 RET_LABEL1:(void)0;
2820 }
2821 }
2822 RET_LABEL:;
2823 }
2824 /* method parser_prod#AVarAssignExpr#n_assign= for (self: Object, TAssign) */
2825 void VIRTUAL_parser_prod__AVarAssignExpr__n_assign_61d(val* self, val* p0) {
2826 parser_prod__AVarAssignExpr__n_assign_61d(self, p0); /* Direct call parser_prod#AVarAssignExpr#n_assign= on <self:Object(AVarAssignExpr)>*/
2827 RET_LABEL:;
2828 }
2829 /* method parser_prod#AVarAssignExpr#n_value= for (self: AVarAssignExpr, AExpr) */
2830 void parser_prod__AVarAssignExpr__n_value_61d(val* self, val* p0) {
2831 val* var_node /* var node: AExpr */;
2832 var_node = p0;
2833 self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_value].val = var_node; /* _n_value on <self:AVarAssignExpr> */
2834 {
2835 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
2836 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
2837 RET_LABEL1:(void)0;
2838 }
2839 }
2840 RET_LABEL:;
2841 }
2842 /* method parser_prod#AVarAssignExpr#n_value= for (self: Object, AExpr) */
2843 void VIRTUAL_parser_prod__AVarAssignExpr__n_value_61d(val* self, val* p0) {
2844 parser_prod__AVarAssignExpr__n_value_61d(self, p0); /* Direct call parser_prod#AVarAssignExpr#n_value= on <self:Object(AVarAssignExpr)>*/
2845 RET_LABEL:;
2846 }
2847 /* method parser_prod#AVarAssignExpr#visit_all for (self: AVarAssignExpr, Visitor) */
2848 void parser_prod__AVarAssignExpr__visit_all(val* self, val* p0) {
2849 val* var_v /* var v: Visitor */;
2850 val* var /* : TId */;
2851 val* var1 /* : TAssign */;
2852 val* var2 /* : AExpr */;
2853 var_v = p0;
2854 var = self->attrs[COLOR_parser_nodes__AVarFormExpr___n_id].val; /* _n_id on <self:AVarAssignExpr> */
2855 if (unlikely(var == NULL)) {
2856 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
2857 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4776);
2858 show_backtrace(1);
2859 }
2860 {
2861 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2862 }
2863 var1 = self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_assign].val; /* _n_assign on <self:AVarAssignExpr> */
2864 if (unlikely(var1 == NULL)) {
2865 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_assign");
2866 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4777);
2867 show_backtrace(1);
2868 }
2869 {
2870 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2871 }
2872 var2 = self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_value].val; /* _n_value on <self:AVarAssignExpr> */
2873 if (unlikely(var2 == NULL)) {
2874 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
2875 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4778);
2876 show_backtrace(1);
2877 }
2878 {
2879 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2880 }
2881 RET_LABEL:;
2882 }
2883 /* method parser_prod#AVarAssignExpr#visit_all for (self: Object, Visitor) */
2884 void VIRTUAL_parser_prod__AVarAssignExpr__visit_all(val* self, val* p0) {
2885 parser_prod__AVarAssignExpr__visit_all(self, p0); /* Direct call parser_prod#AVarAssignExpr#visit_all on <self:Object(AVarAssignExpr)>*/
2886 RET_LABEL:;
2887 }
2888 /* method parser_prod#AVarReassignExpr#init_avarreassignexpr for (self: AVarReassignExpr, nullable TId, nullable AAssignOp, nullable AExpr) */
2889 void parser_prod__AVarReassignExpr__init_avarreassignexpr(val* self, val* p0, val* p1, val* p2) {
2890 val* var_n_id /* var n_id: nullable TId */;
2891 val* var_n_assign_op /* var n_assign_op: nullable AAssignOp */;
2892 val* var_n_value /* var n_value: nullable AExpr */;
2893 var_n_id = p0;
2894 var_n_assign_op = p1;
2895 var_n_value = p2;
2896 if (unlikely(var_n_id == NULL)) {
2897 PRINT_ERROR("Runtime error: %s", "Cast failed");
2898 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4788);
2899 show_backtrace(1);
2900 }
2901 self->attrs[COLOR_parser_nodes__AVarFormExpr___n_id].val = var_n_id; /* _n_id on <self:AVarReassignExpr> */
2902 if (var_n_id == NULL) {
2903 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2904 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4789);
2905 show_backtrace(1);
2906 } else {
2907 { /* Inline parser_nodes#ANode#parent= (var_n_id,self) on <var_n_id:nullable TId> */
2908 if (unlikely(var_n_id == NULL)) {
2909 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2910 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
2911 show_backtrace(1);
2912 }
2913 var_n_id->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_id:nullable TId> */
2914 RET_LABEL1:(void)0;
2915 }
2916 }
2917 if (unlikely(var_n_assign_op == NULL)) {
2918 PRINT_ERROR("Runtime error: %s", "Cast failed");
2919 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4790);
2920 show_backtrace(1);
2921 }
2922 self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_assign_op].val = var_n_assign_op; /* _n_assign_op on <self:AVarReassignExpr> */
2923 if (var_n_assign_op == NULL) {
2924 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2925 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4791);
2926 show_backtrace(1);
2927 } else {
2928 { /* Inline parser_nodes#ANode#parent= (var_n_assign_op,self) on <var_n_assign_op:nullable AAssignOp> */
2929 if (unlikely(var_n_assign_op == NULL)) {
2930 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2931 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
2932 show_backtrace(1);
2933 }
2934 var_n_assign_op->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_assign_op:nullable AAssignOp> */
2935 RET_LABEL2:(void)0;
2936 }
2937 }
2938 if (unlikely(var_n_value == NULL)) {
2939 PRINT_ERROR("Runtime error: %s", "Cast failed");
2940 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4792);
2941 show_backtrace(1);
2942 }
2943 self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_value].val = var_n_value; /* _n_value on <self:AVarReassignExpr> */
2944 if (var_n_value == NULL) {
2945 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2946 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4793);
2947 show_backtrace(1);
2948 } else {
2949 { /* Inline parser_nodes#ANode#parent= (var_n_value,self) on <var_n_value:nullable AExpr> */
2950 if (unlikely(var_n_value == NULL)) {
2951 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2952 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
2953 show_backtrace(1);
2954 }
2955 var_n_value->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_value:nullable AExpr> */
2956 RET_LABEL3:(void)0;
2957 }
2958 }
2959 RET_LABEL:;
2960 }
2961 /* method parser_prod#AVarReassignExpr#init_avarreassignexpr for (self: Object, nullable TId, nullable AAssignOp, nullable AExpr) */
2962 void VIRTUAL_parser_prod__AVarReassignExpr__init_avarreassignexpr(val* self, val* p0, val* p1, val* p2) {
2963 parser_prod__AVarReassignExpr__init_avarreassignexpr(self, p0, p1, p2); /* Direct call parser_prod#AVarReassignExpr#init_avarreassignexpr on <self:Object(AVarReassignExpr)>*/
2964 RET_LABEL:;
2965 }
2966 /* method parser_prod#AVarReassignExpr#replace_child for (self: AVarReassignExpr, ANode, nullable ANode) */
2967 void parser_prod__AVarReassignExpr__replace_child(val* self, val* p0, val* p1) {
2968 val* var_old_child /* var old_child: ANode */;
2969 val* var_new_child /* var new_child: nullable ANode */;
2970 val* var /* : TId */;
2971 short int var1 /* : Bool */;
2972 short int var2 /* : Bool */;
2973 val* var_other /* var other: nullable Object */;
2974 short int var4 /* : Bool */;
2975 short int var6 /* : Bool */;
2976 short int var7 /* : Bool */;
2977 int cltype;
2978 int idtype;
2979 const char* var_class_name;
2980 val* var8 /* : AAssignOp */;
2981 short int var9 /* : Bool */;
2982 short int var10 /* : Bool */;
2983 short int var12 /* : Bool */;
2984 short int var14 /* : Bool */;
2985 short int var15 /* : Bool */;
2986 int cltype16;
2987 int idtype17;
2988 const char* var_class_name18;
2989 val* var19 /* : AExpr */;
2990 short int var20 /* : Bool */;
2991 short int var21 /* : Bool */;
2992 short int var23 /* : Bool */;
2993 short int var25 /* : Bool */;
2994 short int var26 /* : Bool */;
2995 int cltype27;
2996 int idtype28;
2997 const char* var_class_name29;
2998 var_old_child = p0;
2999 var_new_child = p1;
3000 var = self->attrs[COLOR_parser_nodes__AVarFormExpr___n_id].val; /* _n_id on <self:AVarReassignExpr> */
3001 if (unlikely(var == NULL)) {
3002 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
3003 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4798);
3004 show_backtrace(1);
3005 }
3006 {
3007 { /* Inline kernel#Object#== (var,var_old_child) on <var:TId> */
3008 var_other = var_old_child;
3009 {
3010 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TId> */
3011 var6 = var == var_other;
3012 var4 = var6;
3013 goto RET_LABEL5;
3014 RET_LABEL5:(void)0;
3015 }
3016 }
3017 var2 = var4;
3018 goto RET_LABEL3;
3019 RET_LABEL3:(void)0;
3020 }
3021 var1 = var2;
3022 }
3023 if (var1){
3024 /* <var_new_child:nullable ANode> isa TId */
3025 cltype = type_parser_nodes__TId.color;
3026 idtype = type_parser_nodes__TId.id;
3027 if(var_new_child == NULL) {
3028 var7 = 0;
3029 } else {
3030 if(cltype >= var_new_child->type->table_size) {
3031 var7 = 0;
3032 } else {
3033 var7 = var_new_child->type->type_table[cltype] == idtype;
3034 }
3035 }
3036 if (unlikely(!var7)) {
3037 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
3038 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TId", var_class_name);
3039 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4799);
3040 show_backtrace(1);
3041 }
3042 {
3043 parser_prod__AVarReassignExpr__n_id_61d(self, var_new_child); /* Direct call parser_prod#AVarReassignExpr#n_id= on <self:AVarReassignExpr>*/
3044 }
3045 goto RET_LABEL;
3046 } else {
3047 }
3048 var8 = self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_assign_op].val; /* _n_assign_op on <self:AVarReassignExpr> */
3049 if (unlikely(var8 == NULL)) {
3050 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_assign_op");
3051 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4802);
3052 show_backtrace(1);
3053 }
3054 {
3055 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AAssignOp> */
3056 var_other = var_old_child;
3057 {
3058 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AAssignOp> */
3059 var14 = var8 == var_other;
3060 var12 = var14;
3061 goto RET_LABEL13;
3062 RET_LABEL13:(void)0;
3063 }
3064 }
3065 var10 = var12;
3066 goto RET_LABEL11;
3067 RET_LABEL11:(void)0;
3068 }
3069 var9 = var10;
3070 }
3071 if (var9){
3072 /* <var_new_child:nullable ANode> isa AAssignOp */
3073 cltype16 = type_parser_nodes__AAssignOp.color;
3074 idtype17 = type_parser_nodes__AAssignOp.id;
3075 if(var_new_child == NULL) {
3076 var15 = 0;
3077 } else {
3078 if(cltype16 >= var_new_child->type->table_size) {
3079 var15 = 0;
3080 } else {
3081 var15 = var_new_child->type->type_table[cltype16] == idtype17;
3082 }
3083 }
3084 if (unlikely(!var15)) {
3085 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
3086 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AAssignOp", var_class_name18);
3087 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4803);
3088 show_backtrace(1);
3089 }
3090 {
3091 parser_prod__AVarReassignExpr__n_assign_op_61d(self, var_new_child); /* Direct call parser_prod#AVarReassignExpr#n_assign_op= on <self:AVarReassignExpr>*/
3092 }
3093 goto RET_LABEL;
3094 } else {
3095 }
3096 var19 = self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_value].val; /* _n_value on <self:AVarReassignExpr> */
3097 if (unlikely(var19 == NULL)) {
3098 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
3099 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4806);
3100 show_backtrace(1);
3101 }
3102 {
3103 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:AExpr> */
3104 var_other = var_old_child;
3105 {
3106 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:AExpr> */
3107 var25 = var19 == var_other;
3108 var23 = var25;
3109 goto RET_LABEL24;
3110 RET_LABEL24:(void)0;
3111 }
3112 }
3113 var21 = var23;
3114 goto RET_LABEL22;
3115 RET_LABEL22:(void)0;
3116 }
3117 var20 = var21;
3118 }
3119 if (var20){
3120 /* <var_new_child:nullable ANode> isa AExpr */
3121 cltype27 = type_parser_nodes__AExpr.color;
3122 idtype28 = type_parser_nodes__AExpr.id;
3123 if(var_new_child == NULL) {
3124 var26 = 0;
3125 } else {
3126 if(cltype27 >= var_new_child->type->table_size) {
3127 var26 = 0;
3128 } else {
3129 var26 = var_new_child->type->type_table[cltype27] == idtype28;
3130 }
3131 }
3132 if (unlikely(!var26)) {
3133 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
3134 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name29);
3135 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4807);
3136 show_backtrace(1);
3137 }
3138 {
3139 parser_prod__AVarReassignExpr__n_value_61d(self, var_new_child); /* Direct call parser_prod#AVarReassignExpr#n_value= on <self:AVarReassignExpr>*/
3140 }
3141 goto RET_LABEL;
3142 } else {
3143 }
3144 RET_LABEL:;
3145 }
3146 /* method parser_prod#AVarReassignExpr#replace_child for (self: Object, ANode, nullable ANode) */
3147 void VIRTUAL_parser_prod__AVarReassignExpr__replace_child(val* self, val* p0, val* p1) {
3148 parser_prod__AVarReassignExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AVarReassignExpr#replace_child on <self:Object(AVarReassignExpr)>*/
3149 RET_LABEL:;
3150 }
3151 /* method parser_prod#AVarReassignExpr#n_id= for (self: AVarReassignExpr, TId) */
3152 void parser_prod__AVarReassignExpr__n_id_61d(val* self, val* p0) {
3153 val* var_node /* var node: TId */;
3154 var_node = p0;
3155 self->attrs[COLOR_parser_nodes__AVarFormExpr___n_id].val = var_node; /* _n_id on <self:AVarReassignExpr> */
3156 {
3157 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TId> */
3158 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TId> */
3159 RET_LABEL1:(void)0;
3160 }
3161 }
3162 RET_LABEL:;
3163 }
3164 /* method parser_prod#AVarReassignExpr#n_id= for (self: Object, TId) */
3165 void VIRTUAL_parser_prod__AVarReassignExpr__n_id_61d(val* self, val* p0) {
3166 parser_prod__AVarReassignExpr__n_id_61d(self, p0); /* Direct call parser_prod#AVarReassignExpr#n_id= on <self:Object(AVarReassignExpr)>*/
3167 RET_LABEL:;
3168 }
3169 /* method parser_prod#AVarReassignExpr#n_assign_op= for (self: AVarReassignExpr, AAssignOp) */
3170 void parser_prod__AVarReassignExpr__n_assign_op_61d(val* self, val* p0) {
3171 val* var_node /* var node: AAssignOp */;
3172 var_node = p0;
3173 self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_assign_op].val = var_node; /* _n_assign_op on <self:AVarReassignExpr> */
3174 {
3175 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AAssignOp> */
3176 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AAssignOp> */
3177 RET_LABEL1:(void)0;
3178 }
3179 }
3180 RET_LABEL:;
3181 }
3182 /* method parser_prod#AVarReassignExpr#n_assign_op= for (self: Object, AAssignOp) */
3183 void VIRTUAL_parser_prod__AVarReassignExpr__n_assign_op_61d(val* self, val* p0) {
3184 parser_prod__AVarReassignExpr__n_assign_op_61d(self, p0); /* Direct call parser_prod#AVarReassignExpr#n_assign_op= on <self:Object(AVarReassignExpr)>*/
3185 RET_LABEL:;
3186 }
3187 /* method parser_prod#AVarReassignExpr#n_value= for (self: AVarReassignExpr, AExpr) */
3188 void parser_prod__AVarReassignExpr__n_value_61d(val* self, val* p0) {
3189 val* var_node /* var node: AExpr */;
3190 var_node = p0;
3191 self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_value].val = var_node; /* _n_value on <self:AVarReassignExpr> */
3192 {
3193 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
3194 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
3195 RET_LABEL1:(void)0;
3196 }
3197 }
3198 RET_LABEL:;
3199 }
3200 /* method parser_prod#AVarReassignExpr#n_value= for (self: Object, AExpr) */
3201 void VIRTUAL_parser_prod__AVarReassignExpr__n_value_61d(val* self, val* p0) {
3202 parser_prod__AVarReassignExpr__n_value_61d(self, p0); /* Direct call parser_prod#AVarReassignExpr#n_value= on <self:Object(AVarReassignExpr)>*/
3203 RET_LABEL:;
3204 }
3205 /* method parser_prod#AVarReassignExpr#visit_all for (self: AVarReassignExpr, Visitor) */
3206 void parser_prod__AVarReassignExpr__visit_all(val* self, val* p0) {
3207 val* var_v /* var v: Visitor */;
3208 val* var /* : TId */;
3209 val* var1 /* : AAssignOp */;
3210 val* var2 /* : AExpr */;
3211 var_v = p0;
3212 var = self->attrs[COLOR_parser_nodes__AVarFormExpr___n_id].val; /* _n_id on <self:AVarReassignExpr> */
3213 if (unlikely(var == NULL)) {
3214 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
3215 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4831);
3216 show_backtrace(1);
3217 }
3218 {
3219 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3220 }
3221 var1 = self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_assign_op].val; /* _n_assign_op on <self:AVarReassignExpr> */
3222 if (unlikely(var1 == NULL)) {
3223 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_assign_op");
3224 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4832);
3225 show_backtrace(1);
3226 }
3227 {
3228 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3229 }
3230 var2 = self->attrs[COLOR_parser_nodes__AReassignFormExpr___n_value].val; /* _n_value on <self:AVarReassignExpr> */
3231 if (unlikely(var2 == NULL)) {
3232 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
3233 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4833);
3234 show_backtrace(1);
3235 }
3236 {
3237 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3238 }
3239 RET_LABEL:;
3240 }
3241 /* method parser_prod#AVarReassignExpr#visit_all for (self: Object, Visitor) */
3242 void VIRTUAL_parser_prod__AVarReassignExpr__visit_all(val* self, val* p0) {
3243 parser_prod__AVarReassignExpr__visit_all(self, p0); /* Direct call parser_prod#AVarReassignExpr#visit_all on <self:Object(AVarReassignExpr)>*/
3244 RET_LABEL:;
3245 }
3246 /* method parser_prod#ACrangeExpr#init_acrangeexpr for (self: ACrangeExpr, nullable TObra, nullable AExpr, nullable AExpr, nullable TCbra, nullable AAnnotations) */
3247 void parser_prod__ACrangeExpr__init_acrangeexpr(val* self, val* p0, val* p1, val* p2, val* p3, val* p4) {
3248 val* var_n_obra /* var n_obra: nullable TObra */;
3249 val* var_n_expr /* var n_expr: nullable AExpr */;
3250 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
3251 val* var_n_cbra /* var n_cbra: nullable TCbra */;
3252 val* var_n_annotations /* var n_annotations: nullable AAnnotations */;
3253 val* var /* : null */;
3254 short int var5 /* : Bool */;
3255 short int var6 /* : Bool */;
3256 val* var_other /* var other: nullable Object */;
3257 short int var8 /* : Bool */;
3258 short int var9 /* : Bool */;
3259 short int var10 /* : Bool */;
3260 var_n_obra = p0;
3261 var_n_expr = p1;
3262 var_n_expr2 = p2;
3263 var_n_cbra = p3;
3264 var_n_annotations = p4;
3265 if (unlikely(var_n_obra == NULL)) {
3266 PRINT_ERROR("Runtime error: %s", "Cast failed");
3267 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4900);
3268 show_backtrace(1);
3269 }
3270 self->attrs[COLOR_parser_nodes__ACrangeExpr___n_obra].val = var_n_obra; /* _n_obra on <self:ACrangeExpr> */
3271 if (var_n_obra == NULL) {
3272 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3273 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4901);
3274 show_backtrace(1);
3275 } else {
3276 { /* Inline parser_nodes#ANode#parent= (var_n_obra,self) on <var_n_obra:nullable TObra> */
3277 if (unlikely(var_n_obra == NULL)) {
3278 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3279 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
3280 show_backtrace(1);
3281 }
3282 var_n_obra->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_obra:nullable TObra> */
3283 RET_LABEL1:(void)0;
3284 }
3285 }
3286 if (unlikely(var_n_expr == NULL)) {
3287 PRINT_ERROR("Runtime error: %s", "Cast failed");
3288 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4902);
3289 show_backtrace(1);
3290 }
3291 self->attrs[COLOR_parser_nodes__ARangeExpr___n_expr].val = var_n_expr; /* _n_expr on <self:ACrangeExpr> */
3292 if (var_n_expr == NULL) {
3293 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3294 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4903);
3295 show_backtrace(1);
3296 } else {
3297 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
3298 if (unlikely(var_n_expr == NULL)) {
3299 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3300 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
3301 show_backtrace(1);
3302 }
3303 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
3304 RET_LABEL2:(void)0;
3305 }
3306 }
3307 if (unlikely(var_n_expr2 == NULL)) {
3308 PRINT_ERROR("Runtime error: %s", "Cast failed");
3309 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4904);
3310 show_backtrace(1);
3311 }
3312 self->attrs[COLOR_parser_nodes__ARangeExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:ACrangeExpr> */
3313 if (var_n_expr2 == NULL) {
3314 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3315 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4905);
3316 show_backtrace(1);
3317 } else {
3318 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
3319 if (unlikely(var_n_expr2 == NULL)) {
3320 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3321 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
3322 show_backtrace(1);
3323 }
3324 var_n_expr2->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
3325 RET_LABEL3:(void)0;
3326 }
3327 }
3328 if (unlikely(var_n_cbra == NULL)) {
3329 PRINT_ERROR("Runtime error: %s", "Cast failed");
3330 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4906);
3331 show_backtrace(1);
3332 }
3333 self->attrs[COLOR_parser_nodes__ACrangeExpr___n_cbra].val = var_n_cbra; /* _n_cbra on <self:ACrangeExpr> */
3334 if (var_n_cbra == NULL) {
3335 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3336 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4907);
3337 show_backtrace(1);
3338 } else {
3339 { /* Inline parser_nodes#ANode#parent= (var_n_cbra,self) on <var_n_cbra:nullable TCbra> */
3340 if (unlikely(var_n_cbra == NULL)) {
3341 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3342 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
3343 show_backtrace(1);
3344 }
3345 var_n_cbra->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_cbra:nullable TCbra> */
3346 RET_LABEL4:(void)0;
3347 }
3348 }
3349 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:ACrangeExpr> */
3350 var = NULL;
3351 if (var_n_annotations == NULL) {
3352 var5 = 0; /* is null */
3353 } else {
3354 var5 = 1; /* arg is null and recv is not */
3355 }
3356 if (0) {
3357 { /* Inline kernel#Object#!= (var_n_annotations,var) on <var_n_annotations:nullable AAnnotations> */
3358 var_other = var;
3359 {
3360 var9 = ((short int (*)(val*, val*))(var_n_annotations->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_annotations, var_other) /* == on <var_n_annotations:nullable AAnnotations(AAnnotations)>*/;
3361 var8 = var9;
3362 }
3363 var10 = !var8;
3364 var6 = var10;
3365 goto RET_LABEL7;
3366 RET_LABEL7:(void)0;
3367 }
3368 var5 = var6;
3369 }
3370 if (var5){
3371 {
3372 { /* Inline parser_nodes#ANode#parent= (var_n_annotations,self) on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
3373 var_n_annotations->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
3374 RET_LABEL11:(void)0;
3375 }
3376 }
3377 } else {
3378 }
3379 RET_LABEL:;
3380 }
3381 /* method parser_prod#ACrangeExpr#init_acrangeexpr for (self: Object, nullable TObra, nullable AExpr, nullable AExpr, nullable TCbra, nullable AAnnotations) */
3382 void VIRTUAL_parser_prod__ACrangeExpr__init_acrangeexpr(val* self, val* p0, val* p1, val* p2, val* p3, val* p4) {
3383 parser_prod__ACrangeExpr__init_acrangeexpr(self, p0, p1, p2, p3, p4); /* Direct call parser_prod#ACrangeExpr#init_acrangeexpr on <self:Object(ACrangeExpr)>*/
3384 RET_LABEL:;
3385 }
3386 /* method parser_prod#ACrangeExpr#replace_child for (self: ACrangeExpr, ANode, nullable ANode) */
3387 void parser_prod__ACrangeExpr__replace_child(val* self, val* p0, val* p1) {
3388 val* var_old_child /* var old_child: ANode */;
3389 val* var_new_child /* var new_child: nullable ANode */;
3390 val* var /* : TObra */;
3391 short int var1 /* : Bool */;
3392 short int var2 /* : Bool */;
3393 val* var_other /* var other: nullable Object */;
3394 short int var4 /* : Bool */;
3395 short int var6 /* : Bool */;
3396 short int var7 /* : Bool */;
3397 int cltype;
3398 int idtype;
3399 const char* var_class_name;
3400 val* var8 /* : AExpr */;
3401 short int var9 /* : Bool */;
3402 short int var10 /* : Bool */;
3403 short int var12 /* : Bool */;
3404 short int var14 /* : Bool */;
3405 short int var15 /* : Bool */;
3406 int cltype16;
3407 int idtype17;
3408 const char* var_class_name18;
3409 val* var19 /* : AExpr */;
3410 short int var20 /* : Bool */;
3411 short int var21 /* : Bool */;
3412 short int var23 /* : Bool */;
3413 short int var25 /* : Bool */;
3414 short int var26 /* : Bool */;
3415 int cltype27;
3416 int idtype28;
3417 const char* var_class_name29;
3418 val* var30 /* : TCbra */;
3419 short int var31 /* : Bool */;
3420 short int var32 /* : Bool */;
3421 short int var34 /* : Bool */;
3422 short int var36 /* : Bool */;
3423 short int var37 /* : Bool */;
3424 int cltype38;
3425 int idtype39;
3426 const char* var_class_name40;
3427 val* var41 /* : nullable AAnnotations */;
3428 short int var42 /* : Bool */;
3429 short int var43 /* : Bool */;
3430 short int var45 /* : Bool */;
3431 short int var47 /* : Bool */;
3432 short int var48 /* : Bool */;
3433 int cltype49;
3434 int idtype50;
3435 const char* var_class_name51;
3436 var_old_child = p0;
3437 var_new_child = p1;
3438 var = self->attrs[COLOR_parser_nodes__ACrangeExpr___n_obra].val; /* _n_obra on <self:ACrangeExpr> */
3439 if (unlikely(var == NULL)) {
3440 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_obra");
3441 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4914);
3442 show_backtrace(1);
3443 }
3444 {
3445 { /* Inline kernel#Object#== (var,var_old_child) on <var:TObra> */
3446 var_other = var_old_child;
3447 {
3448 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TObra> */
3449 var6 = var == var_other;
3450 var4 = var6;
3451 goto RET_LABEL5;
3452 RET_LABEL5:(void)0;
3453 }
3454 }
3455 var2 = var4;
3456 goto RET_LABEL3;
3457 RET_LABEL3:(void)0;
3458 }
3459 var1 = var2;
3460 }
3461 if (var1){
3462 /* <var_new_child:nullable ANode> isa TObra */
3463 cltype = type_parser_nodes__TObra.color;
3464 idtype = type_parser_nodes__TObra.id;
3465 if(var_new_child == NULL) {
3466 var7 = 0;
3467 } else {
3468 if(cltype >= var_new_child->type->table_size) {
3469 var7 = 0;
3470 } else {
3471 var7 = var_new_child->type->type_table[cltype] == idtype;
3472 }
3473 }
3474 if (unlikely(!var7)) {
3475 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
3476 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TObra", var_class_name);
3477 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4915);
3478 show_backtrace(1);
3479 }
3480 {
3481 parser_prod__ACrangeExpr__n_obra_61d(self, var_new_child); /* Direct call parser_prod#ACrangeExpr#n_obra= on <self:ACrangeExpr>*/
3482 }
3483 goto RET_LABEL;
3484 } else {
3485 }
3486 var8 = self->attrs[COLOR_parser_nodes__ARangeExpr___n_expr].val; /* _n_expr on <self:ACrangeExpr> */
3487 if (unlikely(var8 == NULL)) {
3488 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3489 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4918);
3490 show_backtrace(1);
3491 }
3492 {
3493 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExpr> */
3494 var_other = var_old_child;
3495 {
3496 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExpr> */
3497 var14 = var8 == var_other;
3498 var12 = var14;
3499 goto RET_LABEL13;
3500 RET_LABEL13:(void)0;
3501 }
3502 }
3503 var10 = var12;
3504 goto RET_LABEL11;
3505 RET_LABEL11:(void)0;
3506 }
3507 var9 = var10;
3508 }
3509 if (var9){
3510 /* <var_new_child:nullable ANode> isa AExpr */
3511 cltype16 = type_parser_nodes__AExpr.color;
3512 idtype17 = type_parser_nodes__AExpr.id;
3513 if(var_new_child == NULL) {
3514 var15 = 0;
3515 } else {
3516 if(cltype16 >= var_new_child->type->table_size) {
3517 var15 = 0;
3518 } else {
3519 var15 = var_new_child->type->type_table[cltype16] == idtype17;
3520 }
3521 }
3522 if (unlikely(!var15)) {
3523 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
3524 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name18);
3525 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4919);
3526 show_backtrace(1);
3527 }
3528 {
3529 parser_prod__ACrangeExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#ACrangeExpr#n_expr= on <self:ACrangeExpr>*/
3530 }
3531 goto RET_LABEL;
3532 } else {
3533 }
3534 var19 = self->attrs[COLOR_parser_nodes__ARangeExpr___n_expr2].val; /* _n_expr2 on <self:ACrangeExpr> */
3535 if (unlikely(var19 == NULL)) {
3536 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
3537 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4922);
3538 show_backtrace(1);
3539 }
3540 {
3541 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:AExpr> */
3542 var_other = var_old_child;
3543 {
3544 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:AExpr> */
3545 var25 = var19 == var_other;
3546 var23 = var25;
3547 goto RET_LABEL24;
3548 RET_LABEL24:(void)0;
3549 }
3550 }
3551 var21 = var23;
3552 goto RET_LABEL22;
3553 RET_LABEL22:(void)0;
3554 }
3555 var20 = var21;
3556 }
3557 if (var20){
3558 /* <var_new_child:nullable ANode> isa AExpr */
3559 cltype27 = type_parser_nodes__AExpr.color;
3560 idtype28 = type_parser_nodes__AExpr.id;
3561 if(var_new_child == NULL) {
3562 var26 = 0;
3563 } else {
3564 if(cltype27 >= var_new_child->type->table_size) {
3565 var26 = 0;
3566 } else {
3567 var26 = var_new_child->type->type_table[cltype27] == idtype28;
3568 }
3569 }
3570 if (unlikely(!var26)) {
3571 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
3572 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name29);
3573 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4923);
3574 show_backtrace(1);
3575 }
3576 {
3577 parser_prod__ACrangeExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#ACrangeExpr#n_expr2= on <self:ACrangeExpr>*/
3578 }
3579 goto RET_LABEL;
3580 } else {
3581 }
3582 var30 = self->attrs[COLOR_parser_nodes__ACrangeExpr___n_cbra].val; /* _n_cbra on <self:ACrangeExpr> */
3583 if (unlikely(var30 == NULL)) {
3584 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_cbra");
3585 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4926);
3586 show_backtrace(1);
3587 }
3588 {
3589 { /* Inline kernel#Object#== (var30,var_old_child) on <var30:TCbra> */
3590 var_other = var_old_child;
3591 {
3592 { /* Inline kernel#Object#is_same_instance (var30,var_other) on <var30:TCbra> */
3593 var36 = var30 == var_other;
3594 var34 = var36;
3595 goto RET_LABEL35;
3596 RET_LABEL35:(void)0;
3597 }
3598 }
3599 var32 = var34;
3600 goto RET_LABEL33;
3601 RET_LABEL33:(void)0;
3602 }
3603 var31 = var32;
3604 }
3605 if (var31){
3606 /* <var_new_child:nullable ANode> isa TCbra */
3607 cltype38 = type_parser_nodes__TCbra.color;
3608 idtype39 = type_parser_nodes__TCbra.id;
3609 if(var_new_child == NULL) {
3610 var37 = 0;
3611 } else {
3612 if(cltype38 >= var_new_child->type->table_size) {
3613 var37 = 0;
3614 } else {
3615 var37 = var_new_child->type->type_table[cltype38] == idtype39;
3616 }
3617 }
3618 if (unlikely(!var37)) {
3619 var_class_name40 = var_new_child == NULL ? "null" : var_new_child->type->name;
3620 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TCbra", var_class_name40);
3621 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4927);
3622 show_backtrace(1);
3623 }
3624 {
3625 parser_prod__ACrangeExpr__n_cbra_61d(self, var_new_child); /* Direct call parser_prod#ACrangeExpr#n_cbra= on <self:ACrangeExpr>*/
3626 }
3627 goto RET_LABEL;
3628 } else {
3629 }
3630 var41 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:ACrangeExpr> */
3631 if (var41 == NULL) {
3632 var42 = 0; /* <var_old_child:ANode> cannot be null */
3633 } else {
3634 { /* Inline kernel#Object#== (var41,var_old_child) on <var41:nullable AAnnotations> */
3635 var_other = var_old_child;
3636 {
3637 { /* Inline kernel#Object#is_same_instance (var41,var_other) on <var41:nullable AAnnotations(AAnnotations)> */
3638 var47 = var41 == var_other;
3639 var45 = var47;
3640 goto RET_LABEL46;
3641 RET_LABEL46:(void)0;
3642 }
3643 }
3644 var43 = var45;
3645 goto RET_LABEL44;
3646 RET_LABEL44:(void)0;
3647 }
3648 var42 = var43;
3649 }
3650 if (var42){
3651 /* <var_new_child:nullable ANode> isa nullable AAnnotations */
3652 cltype49 = type_nullable_parser_nodes__AAnnotations.color;
3653 idtype50 = type_nullable_parser_nodes__AAnnotations.id;
3654 if(var_new_child == NULL) {
3655 var48 = 1;
3656 } else {
3657 if(cltype49 >= var_new_child->type->table_size) {
3658 var48 = 0;
3659 } else {
3660 var48 = var_new_child->type->type_table[cltype49] == idtype50;
3661 }
3662 }
3663 if (unlikely(!var48)) {
3664 var_class_name51 = var_new_child == NULL ? "null" : var_new_child->type->name;
3665 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AAnnotations", var_class_name51);
3666 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4931);
3667 show_backtrace(1);
3668 }
3669 {
3670 parser_prod__ACrangeExpr__n_annotations_61d(self, var_new_child); /* Direct call parser_prod#ACrangeExpr#n_annotations= on <self:ACrangeExpr>*/
3671 }
3672 goto RET_LABEL;
3673 } else {
3674 }
3675 RET_LABEL:;
3676 }
3677 /* method parser_prod#ACrangeExpr#replace_child for (self: Object, ANode, nullable ANode) */
3678 void VIRTUAL_parser_prod__ACrangeExpr__replace_child(val* self, val* p0, val* p1) {
3679 parser_prod__ACrangeExpr__replace_child(self, p0, p1); /* Direct call parser_prod#ACrangeExpr#replace_child on <self:Object(ACrangeExpr)>*/
3680 RET_LABEL:;
3681 }
3682 /* method parser_prod#ACrangeExpr#n_obra= for (self: ACrangeExpr, TObra) */
3683 void parser_prod__ACrangeExpr__n_obra_61d(val* self, val* p0) {
3684 val* var_node /* var node: TObra */;
3685 var_node = p0;
3686 self->attrs[COLOR_parser_nodes__ACrangeExpr___n_obra].val = var_node; /* _n_obra on <self:ACrangeExpr> */
3687 {
3688 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TObra> */
3689 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TObra> */
3690 RET_LABEL1:(void)0;
3691 }
3692 }
3693 RET_LABEL:;
3694 }
3695 /* method parser_prod#ACrangeExpr#n_obra= for (self: Object, TObra) */
3696 void VIRTUAL_parser_prod__ACrangeExpr__n_obra_61d(val* self, val* p0) {
3697 parser_prod__ACrangeExpr__n_obra_61d(self, p0); /* Direct call parser_prod#ACrangeExpr#n_obra= on <self:Object(ACrangeExpr)>*/
3698 RET_LABEL:;
3699 }
3700 /* method parser_prod#ACrangeExpr#n_expr= for (self: ACrangeExpr, AExpr) */
3701 void parser_prod__ACrangeExpr__n_expr_61d(val* self, val* p0) {
3702 val* var_node /* var node: AExpr */;
3703 var_node = p0;
3704 self->attrs[COLOR_parser_nodes__ARangeExpr___n_expr].val = var_node; /* _n_expr on <self:ACrangeExpr> */
3705 {
3706 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
3707 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
3708 RET_LABEL1:(void)0;
3709 }
3710 }
3711 RET_LABEL:;
3712 }
3713 /* method parser_prod#ACrangeExpr#n_expr= for (self: Object, AExpr) */
3714 void VIRTUAL_parser_prod__ACrangeExpr__n_expr_61d(val* self, val* p0) {
3715 parser_prod__ACrangeExpr__n_expr_61d(self, p0); /* Direct call parser_prod#ACrangeExpr#n_expr= on <self:Object(ACrangeExpr)>*/
3716 RET_LABEL:;
3717 }
3718 /* method parser_prod#ACrangeExpr#n_expr2= for (self: ACrangeExpr, AExpr) */
3719 void parser_prod__ACrangeExpr__n_expr2_61d(val* self, val* p0) {
3720 val* var_node /* var node: AExpr */;
3721 var_node = p0;
3722 self->attrs[COLOR_parser_nodes__ARangeExpr___n_expr2].val = var_node; /* _n_expr2 on <self:ACrangeExpr> */
3723 {
3724 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
3725 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
3726 RET_LABEL1:(void)0;
3727 }
3728 }
3729 RET_LABEL:;
3730 }
3731 /* method parser_prod#ACrangeExpr#n_expr2= for (self: Object, AExpr) */
3732 void VIRTUAL_parser_prod__ACrangeExpr__n_expr2_61d(val* self, val* p0) {
3733 parser_prod__ACrangeExpr__n_expr2_61d(self, p0); /* Direct call parser_prod#ACrangeExpr#n_expr2= on <self:Object(ACrangeExpr)>*/
3734 RET_LABEL:;
3735 }
3736 /* method parser_prod#ACrangeExpr#n_cbra= for (self: ACrangeExpr, TCbra) */
3737 void parser_prod__ACrangeExpr__n_cbra_61d(val* self, val* p0) {
3738 val* var_node /* var node: TCbra */;
3739 var_node = p0;
3740 self->attrs[COLOR_parser_nodes__ACrangeExpr___n_cbra].val = var_node; /* _n_cbra on <self:ACrangeExpr> */
3741 {
3742 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TCbra> */
3743 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TCbra> */
3744 RET_LABEL1:(void)0;
3745 }
3746 }
3747 RET_LABEL:;
3748 }
3749 /* method parser_prod#ACrangeExpr#n_cbra= for (self: Object, TCbra) */
3750 void VIRTUAL_parser_prod__ACrangeExpr__n_cbra_61d(val* self, val* p0) {
3751 parser_prod__ACrangeExpr__n_cbra_61d(self, p0); /* Direct call parser_prod#ACrangeExpr#n_cbra= on <self:Object(ACrangeExpr)>*/
3752 RET_LABEL:;
3753 }
3754 /* method parser_prod#ACrangeExpr#n_annotations= for (self: ACrangeExpr, nullable AAnnotations) */
3755 void parser_prod__ACrangeExpr__n_annotations_61d(val* self, val* p0) {
3756 val* var_node /* var node: nullable AAnnotations */;
3757 val* var /* : null */;
3758 short int var1 /* : Bool */;
3759 short int var2 /* : Bool */;
3760 val* var_other /* var other: nullable Object */;
3761 short int var4 /* : Bool */;
3762 short int var5 /* : Bool */;
3763 short int var6 /* : Bool */;
3764 var_node = p0;
3765 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_node; /* _n_annotations on <self:ACrangeExpr> */
3766 var = NULL;
3767 if (var_node == NULL) {
3768 var1 = 0; /* is null */
3769 } else {
3770 var1 = 1; /* arg is null and recv is not */
3771 }
3772 if (0) {
3773 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AAnnotations> */
3774 var_other = var;
3775 {
3776 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AAnnotations(AAnnotations)>*/;
3777 var4 = var5;
3778 }
3779 var6 = !var4;
3780 var2 = var6;
3781 goto RET_LABEL3;
3782 RET_LABEL3:(void)0;
3783 }
3784 var1 = var2;
3785 }
3786 if (var1){
3787 {
3788 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AAnnotations(AAnnotations)> */
3789 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AAnnotations(AAnnotations)> */
3790 RET_LABEL7:(void)0;
3791 }
3792 }
3793 } else {
3794 }
3795 RET_LABEL:;
3796 }
3797 /* method parser_prod#ACrangeExpr#n_annotations= for (self: Object, nullable AAnnotations) */
3798 void VIRTUAL_parser_prod__ACrangeExpr__n_annotations_61d(val* self, val* p0) {
3799 parser_prod__ACrangeExpr__n_annotations_61d(self, p0); /* Direct call parser_prod#ACrangeExpr#n_annotations= on <self:Object(ACrangeExpr)>*/
3800 RET_LABEL:;
3801 }
3802 /* method parser_prod#ACrangeExpr#visit_all for (self: ACrangeExpr, Visitor) */
3803 void parser_prod__ACrangeExpr__visit_all(val* self, val* p0) {
3804 val* var_v /* var v: Visitor */;
3805 val* var /* : TObra */;
3806 val* var1 /* : AExpr */;
3807 val* var2 /* : AExpr */;
3808 val* var3 /* : TCbra */;
3809 val* var4 /* : nullable AAnnotations */;
3810 var_v = p0;
3811 var = self->attrs[COLOR_parser_nodes__ACrangeExpr___n_obra].val; /* _n_obra on <self:ACrangeExpr> */
3812 if (unlikely(var == NULL)) {
3813 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_obra");
3814 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4965);
3815 show_backtrace(1);
3816 }
3817 {
3818 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3819 }
3820 var1 = self->attrs[COLOR_parser_nodes__ARangeExpr___n_expr].val; /* _n_expr on <self:ACrangeExpr> */
3821 if (unlikely(var1 == NULL)) {
3822 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3823 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4966);
3824 show_backtrace(1);
3825 }
3826 {
3827 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3828 }
3829 var2 = self->attrs[COLOR_parser_nodes__ARangeExpr___n_expr2].val; /* _n_expr2 on <self:ACrangeExpr> */
3830 if (unlikely(var2 == NULL)) {
3831 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
3832 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4967);
3833 show_backtrace(1);
3834 }
3835 {
3836 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3837 }
3838 var3 = self->attrs[COLOR_parser_nodes__ACrangeExpr___n_cbra].val; /* _n_cbra on <self:ACrangeExpr> */
3839 if (unlikely(var3 == NULL)) {
3840 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_cbra");
3841 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4968);
3842 show_backtrace(1);
3843 }
3844 {
3845 parser_nodes__Visitor__enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3846 }
3847 var4 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:ACrangeExpr> */
3848 {
3849 parser_nodes__Visitor__enter_visit(var_v, var4); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3850 }
3851 RET_LABEL:;
3852 }
3853 /* method parser_prod#ACrangeExpr#visit_all for (self: Object, Visitor) */
3854 void VIRTUAL_parser_prod__ACrangeExpr__visit_all(val* self, val* p0) {
3855 parser_prod__ACrangeExpr__visit_all(self, p0); /* Direct call parser_prod#ACrangeExpr#visit_all on <self:Object(ACrangeExpr)>*/
3856 RET_LABEL:;
3857 }
3858 /* method parser_prod#AOrangeExpr#init_aorangeexpr for (self: AOrangeExpr, nullable TObra, nullable AExpr, nullable AExpr, nullable TObra, nullable AAnnotations) */
3859 void parser_prod__AOrangeExpr__init_aorangeexpr(val* self, val* p0, val* p1, val* p2, val* p3, val* p4) {
3860 val* var_n_obra /* var n_obra: nullable TObra */;
3861 val* var_n_expr /* var n_expr: nullable AExpr */;
3862 val* var_n_expr2 /* var n_expr2: nullable AExpr */;
3863 val* var_n_cbra /* var n_cbra: nullable TObra */;
3864 val* var_n_annotations /* var n_annotations: nullable AAnnotations */;
3865 val* var /* : null */;
3866 short int var5 /* : Bool */;
3867 short int var6 /* : Bool */;
3868 val* var_other /* var other: nullable Object */;
3869 short int var8 /* : Bool */;
3870 short int var9 /* : Bool */;
3871 short int var10 /* : Bool */;
3872 var_n_obra = p0;
3873 var_n_expr = p1;
3874 var_n_expr2 = p2;
3875 var_n_cbra = p3;
3876 var_n_annotations = p4;
3877 if (unlikely(var_n_obra == NULL)) {
3878 PRINT_ERROR("Runtime error: %s", "Cast failed");
3879 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4981);
3880 show_backtrace(1);
3881 }
3882 self->attrs[COLOR_parser_nodes__AOrangeExpr___n_obra].val = var_n_obra; /* _n_obra on <self:AOrangeExpr> */
3883 if (var_n_obra == NULL) {
3884 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3885 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4982);
3886 show_backtrace(1);
3887 } else {
3888 { /* Inline parser_nodes#ANode#parent= (var_n_obra,self) on <var_n_obra:nullable TObra> */
3889 if (unlikely(var_n_obra == NULL)) {
3890 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3891 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
3892 show_backtrace(1);
3893 }
3894 var_n_obra->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_obra:nullable TObra> */
3895 RET_LABEL1:(void)0;
3896 }
3897 }
3898 if (unlikely(var_n_expr == NULL)) {
3899 PRINT_ERROR("Runtime error: %s", "Cast failed");
3900 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4983);
3901 show_backtrace(1);
3902 }
3903 self->attrs[COLOR_parser_nodes__ARangeExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AOrangeExpr> */
3904 if (var_n_expr == NULL) {
3905 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3906 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4984);
3907 show_backtrace(1);
3908 } else {
3909 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
3910 if (unlikely(var_n_expr == NULL)) {
3911 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3912 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
3913 show_backtrace(1);
3914 }
3915 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
3916 RET_LABEL2:(void)0;
3917 }
3918 }
3919 if (unlikely(var_n_expr2 == NULL)) {
3920 PRINT_ERROR("Runtime error: %s", "Cast failed");
3921 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4985);
3922 show_backtrace(1);
3923 }
3924 self->attrs[COLOR_parser_nodes__ARangeExpr___n_expr2].val = var_n_expr2; /* _n_expr2 on <self:AOrangeExpr> */
3925 if (var_n_expr2 == NULL) {
3926 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3927 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4986);
3928 show_backtrace(1);
3929 } else {
3930 { /* Inline parser_nodes#ANode#parent= (var_n_expr2,self) on <var_n_expr2:nullable AExpr> */
3931 if (unlikely(var_n_expr2 == NULL)) {
3932 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3933 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
3934 show_backtrace(1);
3935 }
3936 var_n_expr2->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr2:nullable AExpr> */
3937 RET_LABEL3:(void)0;
3938 }
3939 }
3940 if (unlikely(var_n_cbra == NULL)) {
3941 PRINT_ERROR("Runtime error: %s", "Cast failed");
3942 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4987);
3943 show_backtrace(1);
3944 }
3945 self->attrs[COLOR_parser_nodes__AOrangeExpr___n_cbra].val = var_n_cbra; /* _n_cbra on <self:AOrangeExpr> */
3946 if (var_n_cbra == NULL) {
3947 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3948 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4988);
3949 show_backtrace(1);
3950 } else {
3951 { /* Inline parser_nodes#ANode#parent= (var_n_cbra,self) on <var_n_cbra:nullable TObra> */
3952 if (unlikely(var_n_cbra == NULL)) {
3953 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3954 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
3955 show_backtrace(1);
3956 }
3957 var_n_cbra->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_cbra:nullable TObra> */
3958 RET_LABEL4:(void)0;
3959 }
3960 }
3961 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:AOrangeExpr> */
3962 var = NULL;
3963 if (var_n_annotations == NULL) {
3964 var5 = 0; /* is null */
3965 } else {
3966 var5 = 1; /* arg is null and recv is not */
3967 }
3968 if (0) {
3969 { /* Inline kernel#Object#!= (var_n_annotations,var) on <var_n_annotations:nullable AAnnotations> */
3970 var_other = var;
3971 {
3972 var9 = ((short int (*)(val*, val*))(var_n_annotations->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_annotations, var_other) /* == on <var_n_annotations:nullable AAnnotations(AAnnotations)>*/;
3973 var8 = var9;
3974 }
3975 var10 = !var8;
3976 var6 = var10;
3977 goto RET_LABEL7;
3978 RET_LABEL7:(void)0;
3979 }
3980 var5 = var6;
3981 }
3982 if (var5){
3983 {
3984 { /* Inline parser_nodes#ANode#parent= (var_n_annotations,self) on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
3985 var_n_annotations->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
3986 RET_LABEL11:(void)0;
3987 }
3988 }
3989 } else {
3990 }
3991 RET_LABEL:;
3992 }
3993 /* method parser_prod#AOrangeExpr#init_aorangeexpr for (self: Object, nullable TObra, nullable AExpr, nullable AExpr, nullable TObra, nullable AAnnotations) */
3994 void VIRTUAL_parser_prod__AOrangeExpr__init_aorangeexpr(val* self, val* p0, val* p1, val* p2, val* p3, val* p4) {
3995 parser_prod__AOrangeExpr__init_aorangeexpr(self, p0, p1, p2, p3, p4); /* Direct call parser_prod#AOrangeExpr#init_aorangeexpr on <self:Object(AOrangeExpr)>*/
3996 RET_LABEL:;
3997 }
3998 /* method parser_prod#AOrangeExpr#replace_child for (self: AOrangeExpr, ANode, nullable ANode) */
3999 void parser_prod__AOrangeExpr__replace_child(val* self, val* p0, val* p1) {
4000 val* var_old_child /* var old_child: ANode */;
4001 val* var_new_child /* var new_child: nullable ANode */;
4002 val* var /* : TObra */;
4003 short int var1 /* : Bool */;
4004 short int var2 /* : Bool */;
4005 val* var_other /* var other: nullable Object */;
4006 short int var4 /* : Bool */;
4007 short int var6 /* : Bool */;
4008 short int var7 /* : Bool */;
4009 int cltype;
4010 int idtype;
4011 const char* var_class_name;
4012 val* var8 /* : AExpr */;
4013 short int var9 /* : Bool */;
4014 short int var10 /* : Bool */;
4015 short int var12 /* : Bool */;
4016 short int var14 /* : Bool */;
4017 short int var15 /* : Bool */;
4018 int cltype16;
4019 int idtype17;
4020 const char* var_class_name18;
4021 val* var19 /* : AExpr */;
4022 short int var20 /* : Bool */;
4023 short int var21 /* : Bool */;
4024 short int var23 /* : Bool */;
4025 short int var25 /* : Bool */;
4026 short int var26 /* : Bool */;
4027 int cltype27;
4028 int idtype28;
4029 const char* var_class_name29;
4030 val* var30 /* : TObra */;
4031 short int var31 /* : Bool */;
4032 short int var32 /* : Bool */;
4033 short int var34 /* : Bool */;
4034 short int var36 /* : Bool */;
4035 short int var37 /* : Bool */;
4036 int cltype38;
4037 int idtype39;
4038 const char* var_class_name40;
4039 val* var41 /* : nullable AAnnotations */;
4040 short int var42 /* : Bool */;
4041 short int var43 /* : Bool */;
4042 short int var45 /* : Bool */;
4043 short int var47 /* : Bool */;
4044 short int var48 /* : Bool */;
4045 int cltype49;
4046 int idtype50;
4047 const char* var_class_name51;
4048 var_old_child = p0;
4049 var_new_child = p1;
4050 var = self->attrs[COLOR_parser_nodes__AOrangeExpr___n_obra].val; /* _n_obra on <self:AOrangeExpr> */
4051 if (unlikely(var == NULL)) {
4052 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_obra");
4053 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4995);
4054 show_backtrace(1);
4055 }
4056 {
4057 { /* Inline kernel#Object#== (var,var_old_child) on <var:TObra> */
4058 var_other = var_old_child;
4059 {
4060 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TObra> */
4061 var6 = var == var_other;
4062 var4 = var6;
4063 goto RET_LABEL5;
4064 RET_LABEL5:(void)0;
4065 }
4066 }
4067 var2 = var4;
4068 goto RET_LABEL3;
4069 RET_LABEL3:(void)0;
4070 }
4071 var1 = var2;
4072 }
4073 if (var1){
4074 /* <var_new_child:nullable ANode> isa TObra */
4075 cltype = type_parser_nodes__TObra.color;
4076 idtype = type_parser_nodes__TObra.id;
4077 if(var_new_child == NULL) {
4078 var7 = 0;
4079 } else {
4080 if(cltype >= var_new_child->type->table_size) {
4081 var7 = 0;
4082 } else {
4083 var7 = var_new_child->type->type_table[cltype] == idtype;
4084 }
4085 }
4086 if (unlikely(!var7)) {
4087 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
4088 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TObra", var_class_name);
4089 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4996);
4090 show_backtrace(1);
4091 }
4092 {
4093 parser_prod__AOrangeExpr__n_obra_61d(self, var_new_child); /* Direct call parser_prod#AOrangeExpr#n_obra= on <self:AOrangeExpr>*/
4094 }
4095 goto RET_LABEL;
4096 } else {
4097 }
4098 var8 = self->attrs[COLOR_parser_nodes__ARangeExpr___n_expr].val; /* _n_expr on <self:AOrangeExpr> */
4099 if (unlikely(var8 == NULL)) {
4100 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
4101 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 4999);
4102 show_backtrace(1);
4103 }
4104 {
4105 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExpr> */
4106 var_other = var_old_child;
4107 {
4108 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExpr> */
4109 var14 = var8 == var_other;
4110 var12 = var14;
4111 goto RET_LABEL13;
4112 RET_LABEL13:(void)0;
4113 }
4114 }
4115 var10 = var12;
4116 goto RET_LABEL11;
4117 RET_LABEL11:(void)0;
4118 }
4119 var9 = var10;
4120 }
4121 if (var9){
4122 /* <var_new_child:nullable ANode> isa AExpr */
4123 cltype16 = type_parser_nodes__AExpr.color;
4124 idtype17 = type_parser_nodes__AExpr.id;
4125 if(var_new_child == NULL) {
4126 var15 = 0;
4127 } else {
4128 if(cltype16 >= var_new_child->type->table_size) {
4129 var15 = 0;
4130 } else {
4131 var15 = var_new_child->type->type_table[cltype16] == idtype17;
4132 }
4133 }
4134 if (unlikely(!var15)) {
4135 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
4136 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name18);
4137 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5000);
4138 show_backtrace(1);
4139 }
4140 {
4141 parser_prod__AOrangeExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AOrangeExpr#n_expr= on <self:AOrangeExpr>*/
4142 }
4143 goto RET_LABEL;
4144 } else {
4145 }
4146 var19 = self->attrs[COLOR_parser_nodes__ARangeExpr___n_expr2].val; /* _n_expr2 on <self:AOrangeExpr> */
4147 if (unlikely(var19 == NULL)) {
4148 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
4149 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5003);
4150 show_backtrace(1);
4151 }
4152 {
4153 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:AExpr> */
4154 var_other = var_old_child;
4155 {
4156 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:AExpr> */
4157 var25 = var19 == var_other;
4158 var23 = var25;
4159 goto RET_LABEL24;
4160 RET_LABEL24:(void)0;
4161 }
4162 }
4163 var21 = var23;
4164 goto RET_LABEL22;
4165 RET_LABEL22:(void)0;
4166 }
4167 var20 = var21;
4168 }
4169 if (var20){
4170 /* <var_new_child:nullable ANode> isa AExpr */
4171 cltype27 = type_parser_nodes__AExpr.color;
4172 idtype28 = type_parser_nodes__AExpr.id;
4173 if(var_new_child == NULL) {
4174 var26 = 0;
4175 } else {
4176 if(cltype27 >= var_new_child->type->table_size) {
4177 var26 = 0;
4178 } else {
4179 var26 = var_new_child->type->type_table[cltype27] == idtype28;
4180 }
4181 }
4182 if (unlikely(!var26)) {
4183 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
4184 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name29);
4185 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5004);
4186 show_backtrace(1);
4187 }
4188 {
4189 parser_prod__AOrangeExpr__n_expr2_61d(self, var_new_child); /* Direct call parser_prod#AOrangeExpr#n_expr2= on <self:AOrangeExpr>*/
4190 }
4191 goto RET_LABEL;
4192 } else {
4193 }
4194 var30 = self->attrs[COLOR_parser_nodes__AOrangeExpr___n_cbra].val; /* _n_cbra on <self:AOrangeExpr> */
4195 if (unlikely(var30 == NULL)) {
4196 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_cbra");
4197 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5007);
4198 show_backtrace(1);
4199 }
4200 {
4201 { /* Inline kernel#Object#== (var30,var_old_child) on <var30:TObra> */
4202 var_other = var_old_child;
4203 {
4204 { /* Inline kernel#Object#is_same_instance (var30,var_other) on <var30:TObra> */
4205 var36 = var30 == var_other;
4206 var34 = var36;
4207 goto RET_LABEL35;
4208 RET_LABEL35:(void)0;
4209 }
4210 }
4211 var32 = var34;
4212 goto RET_LABEL33;
4213 RET_LABEL33:(void)0;
4214 }
4215 var31 = var32;
4216 }
4217 if (var31){
4218 /* <var_new_child:nullable ANode> isa TObra */
4219 cltype38 = type_parser_nodes__TObra.color;
4220 idtype39 = type_parser_nodes__TObra.id;
4221 if(var_new_child == NULL) {
4222 var37 = 0;
4223 } else {
4224 if(cltype38 >= var_new_child->type->table_size) {
4225 var37 = 0;
4226 } else {
4227 var37 = var_new_child->type->type_table[cltype38] == idtype39;
4228 }
4229 }
4230 if (unlikely(!var37)) {
4231 var_class_name40 = var_new_child == NULL ? "null" : var_new_child->type->name;
4232 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TObra", var_class_name40);
4233 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5008);
4234 show_backtrace(1);
4235 }
4236 {
4237 parser_prod__AOrangeExpr__n_cbra_61d(self, var_new_child); /* Direct call parser_prod#AOrangeExpr#n_cbra= on <self:AOrangeExpr>*/
4238 }
4239 goto RET_LABEL;
4240 } else {
4241 }
4242 var41 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AOrangeExpr> */
4243 if (var41 == NULL) {
4244 var42 = 0; /* <var_old_child:ANode> cannot be null */
4245 } else {
4246 { /* Inline kernel#Object#== (var41,var_old_child) on <var41:nullable AAnnotations> */
4247 var_other = var_old_child;
4248 {
4249 { /* Inline kernel#Object#is_same_instance (var41,var_other) on <var41:nullable AAnnotations(AAnnotations)> */
4250 var47 = var41 == var_other;
4251 var45 = var47;
4252 goto RET_LABEL46;
4253 RET_LABEL46:(void)0;
4254 }
4255 }
4256 var43 = var45;
4257 goto RET_LABEL44;
4258 RET_LABEL44:(void)0;
4259 }
4260 var42 = var43;
4261 }
4262 if (var42){
4263 /* <var_new_child:nullable ANode> isa nullable AAnnotations */
4264 cltype49 = type_nullable_parser_nodes__AAnnotations.color;
4265 idtype50 = type_nullable_parser_nodes__AAnnotations.id;
4266 if(var_new_child == NULL) {
4267 var48 = 1;
4268 } else {
4269 if(cltype49 >= var_new_child->type->table_size) {
4270 var48 = 0;
4271 } else {
4272 var48 = var_new_child->type->type_table[cltype49] == idtype50;
4273 }
4274 }
4275 if (unlikely(!var48)) {
4276 var_class_name51 = var_new_child == NULL ? "null" : var_new_child->type->name;
4277 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AAnnotations", var_class_name51);
4278 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5012);
4279 show_backtrace(1);
4280 }
4281 {
4282 parser_prod__AOrangeExpr__n_annotations_61d(self, var_new_child); /* Direct call parser_prod#AOrangeExpr#n_annotations= on <self:AOrangeExpr>*/
4283 }
4284 goto RET_LABEL;
4285 } else {
4286 }
4287 RET_LABEL:;
4288 }
4289 /* method parser_prod#AOrangeExpr#replace_child for (self: Object, ANode, nullable ANode) */
4290 void VIRTUAL_parser_prod__AOrangeExpr__replace_child(val* self, val* p0, val* p1) {
4291 parser_prod__AOrangeExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AOrangeExpr#replace_child on <self:Object(AOrangeExpr)>*/
4292 RET_LABEL:;
4293 }
4294 /* method parser_prod#AOrangeExpr#n_obra= for (self: AOrangeExpr, TObra) */
4295 void parser_prod__AOrangeExpr__n_obra_61d(val* self, val* p0) {
4296 val* var_node /* var node: TObra */;
4297 var_node = p0;
4298 self->attrs[COLOR_parser_nodes__AOrangeExpr___n_obra].val = var_node; /* _n_obra on <self:AOrangeExpr> */
4299 {
4300 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TObra> */
4301 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TObra> */
4302 RET_LABEL1:(void)0;
4303 }
4304 }
4305 RET_LABEL:;
4306 }
4307 /* method parser_prod#AOrangeExpr#n_obra= for (self: Object, TObra) */
4308 void VIRTUAL_parser_prod__AOrangeExpr__n_obra_61d(val* self, val* p0) {
4309 parser_prod__AOrangeExpr__n_obra_61d(self, p0); /* Direct call parser_prod#AOrangeExpr#n_obra= on <self:Object(AOrangeExpr)>*/
4310 RET_LABEL:;
4311 }
4312 /* method parser_prod#AOrangeExpr#n_expr= for (self: AOrangeExpr, AExpr) */
4313 void parser_prod__AOrangeExpr__n_expr_61d(val* self, val* p0) {
4314 val* var_node /* var node: AExpr */;
4315 var_node = p0;
4316 self->attrs[COLOR_parser_nodes__ARangeExpr___n_expr].val = var_node; /* _n_expr on <self:AOrangeExpr> */
4317 {
4318 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
4319 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
4320 RET_LABEL1:(void)0;
4321 }
4322 }
4323 RET_LABEL:;
4324 }
4325 /* method parser_prod#AOrangeExpr#n_expr= for (self: Object, AExpr) */
4326 void VIRTUAL_parser_prod__AOrangeExpr__n_expr_61d(val* self, val* p0) {
4327 parser_prod__AOrangeExpr__n_expr_61d(self, p0); /* Direct call parser_prod#AOrangeExpr#n_expr= on <self:Object(AOrangeExpr)>*/
4328 RET_LABEL:;
4329 }
4330 /* method parser_prod#AOrangeExpr#n_expr2= for (self: AOrangeExpr, AExpr) */
4331 void parser_prod__AOrangeExpr__n_expr2_61d(val* self, val* p0) {
4332 val* var_node /* var node: AExpr */;
4333 var_node = p0;
4334 self->attrs[COLOR_parser_nodes__ARangeExpr___n_expr2].val = var_node; /* _n_expr2 on <self:AOrangeExpr> */
4335 {
4336 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
4337 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
4338 RET_LABEL1:(void)0;
4339 }
4340 }
4341 RET_LABEL:;
4342 }
4343 /* method parser_prod#AOrangeExpr#n_expr2= for (self: Object, AExpr) */
4344 void VIRTUAL_parser_prod__AOrangeExpr__n_expr2_61d(val* self, val* p0) {
4345 parser_prod__AOrangeExpr__n_expr2_61d(self, p0); /* Direct call parser_prod#AOrangeExpr#n_expr2= on <self:Object(AOrangeExpr)>*/
4346 RET_LABEL:;
4347 }
4348 /* method parser_prod#AOrangeExpr#n_cbra= for (self: AOrangeExpr, TObra) */
4349 void parser_prod__AOrangeExpr__n_cbra_61d(val* self, val* p0) {
4350 val* var_node /* var node: TObra */;
4351 var_node = p0;
4352 self->attrs[COLOR_parser_nodes__AOrangeExpr___n_cbra].val = var_node; /* _n_cbra on <self:AOrangeExpr> */
4353 {
4354 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TObra> */
4355 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TObra> */
4356 RET_LABEL1:(void)0;
4357 }
4358 }
4359 RET_LABEL:;
4360 }
4361 /* method parser_prod#AOrangeExpr#n_cbra= for (self: Object, TObra) */
4362 void VIRTUAL_parser_prod__AOrangeExpr__n_cbra_61d(val* self, val* p0) {
4363 parser_prod__AOrangeExpr__n_cbra_61d(self, p0); /* Direct call parser_prod#AOrangeExpr#n_cbra= on <self:Object(AOrangeExpr)>*/
4364 RET_LABEL:;
4365 }
4366 /* method parser_prod#AOrangeExpr#n_annotations= for (self: AOrangeExpr, nullable AAnnotations) */
4367 void parser_prod__AOrangeExpr__n_annotations_61d(val* self, val* p0) {
4368 val* var_node /* var node: nullable AAnnotations */;
4369 val* var /* : null */;
4370 short int var1 /* : Bool */;
4371 short int var2 /* : Bool */;
4372 val* var_other /* var other: nullable Object */;
4373 short int var4 /* : Bool */;
4374 short int var5 /* : Bool */;
4375 short int var6 /* : Bool */;
4376 var_node = p0;
4377 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_node; /* _n_annotations on <self:AOrangeExpr> */
4378 var = NULL;
4379 if (var_node == NULL) {
4380 var1 = 0; /* is null */
4381 } else {
4382 var1 = 1; /* arg is null and recv is not */
4383 }
4384 if (0) {
4385 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AAnnotations> */
4386 var_other = var;
4387 {
4388 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AAnnotations(AAnnotations)>*/;
4389 var4 = var5;
4390 }
4391 var6 = !var4;
4392 var2 = var6;
4393 goto RET_LABEL3;
4394 RET_LABEL3:(void)0;
4395 }
4396 var1 = var2;
4397 }
4398 if (var1){
4399 {
4400 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AAnnotations(AAnnotations)> */
4401 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AAnnotations(AAnnotations)> */
4402 RET_LABEL7:(void)0;
4403 }
4404 }
4405 } else {
4406 }
4407 RET_LABEL:;
4408 }
4409 /* method parser_prod#AOrangeExpr#n_annotations= for (self: Object, nullable AAnnotations) */
4410 void VIRTUAL_parser_prod__AOrangeExpr__n_annotations_61d(val* self, val* p0) {
4411 parser_prod__AOrangeExpr__n_annotations_61d(self, p0); /* Direct call parser_prod#AOrangeExpr#n_annotations= on <self:Object(AOrangeExpr)>*/
4412 RET_LABEL:;
4413 }
4414 /* method parser_prod#AOrangeExpr#visit_all for (self: AOrangeExpr, Visitor) */
4415 void parser_prod__AOrangeExpr__visit_all(val* self, val* p0) {
4416 val* var_v /* var v: Visitor */;
4417 val* var /* : TObra */;
4418 val* var1 /* : AExpr */;
4419 val* var2 /* : AExpr */;
4420 val* var3 /* : TObra */;
4421 val* var4 /* : nullable AAnnotations */;
4422 var_v = p0;
4423 var = self->attrs[COLOR_parser_nodes__AOrangeExpr___n_obra].val; /* _n_obra on <self:AOrangeExpr> */
4424 if (unlikely(var == NULL)) {
4425 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_obra");
4426 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5046);
4427 show_backtrace(1);
4428 }
4429 {
4430 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4431 }
4432 var1 = self->attrs[COLOR_parser_nodes__ARangeExpr___n_expr].val; /* _n_expr on <self:AOrangeExpr> */
4433 if (unlikely(var1 == NULL)) {
4434 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
4435 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5047);
4436 show_backtrace(1);
4437 }
4438 {
4439 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4440 }
4441 var2 = self->attrs[COLOR_parser_nodes__ARangeExpr___n_expr2].val; /* _n_expr2 on <self:AOrangeExpr> */
4442 if (unlikely(var2 == NULL)) {
4443 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
4444 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5048);
4445 show_backtrace(1);
4446 }
4447 {
4448 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4449 }
4450 var3 = self->attrs[COLOR_parser_nodes__AOrangeExpr___n_cbra].val; /* _n_cbra on <self:AOrangeExpr> */
4451 if (unlikely(var3 == NULL)) {
4452 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_cbra");
4453 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5049);
4454 show_backtrace(1);
4455 }
4456 {
4457 parser_nodes__Visitor__enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4458 }
4459 var4 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AOrangeExpr> */
4460 {
4461 parser_nodes__Visitor__enter_visit(var_v, var4); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4462 }
4463 RET_LABEL:;
4464 }
4465 /* method parser_prod#AOrangeExpr#visit_all for (self: Object, Visitor) */
4466 void VIRTUAL_parser_prod__AOrangeExpr__visit_all(val* self, val* p0) {
4467 parser_prod__AOrangeExpr__visit_all(self, p0); /* Direct call parser_prod#AOrangeExpr#visit_all on <self:Object(AOrangeExpr)>*/
4468 RET_LABEL:;
4469 }
4470 /* method parser_prod#AArrayExpr#init_aarrayexpr for (self: AArrayExpr, nullable TObra, nullable AExprs, nullable AType, nullable TCbra, nullable AAnnotations) */
4471 void parser_prod__AArrayExpr__init_aarrayexpr(val* self, val* p0, val* p1, val* p2, val* p3, val* p4) {
4472 val* var_n_obra /* var n_obra: nullable TObra */;
4473 val* var_n_exprs /* var n_exprs: nullable AExprs */;
4474 val* var_n_type /* var n_type: nullable AType */;
4475 val* var_n_cbra /* var n_cbra: nullable TCbra */;
4476 val* var_n_annotations /* var n_annotations: nullable AAnnotations */;
4477 val* var /* : null */;
4478 short int var3 /* : Bool */;
4479 short int var4 /* : Bool */;
4480 val* var_other /* var other: nullable Object */;
4481 short int var6 /* : Bool */;
4482 short int var7 /* : Bool */;
4483 short int var8 /* : Bool */;
4484 val* var11 /* : null */;
4485 short int var12 /* : Bool */;
4486 short int var13 /* : Bool */;
4487 short int var15 /* : Bool */;
4488 short int var16 /* : Bool */;
4489 short int var17 /* : Bool */;
4490 var_n_obra = p0;
4491 var_n_exprs = p1;
4492 var_n_type = p2;
4493 var_n_cbra = p3;
4494 var_n_annotations = p4;
4495 if (unlikely(var_n_obra == NULL)) {
4496 PRINT_ERROR("Runtime error: %s", "Cast failed");
4497 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5062);
4498 show_backtrace(1);
4499 }
4500 self->attrs[COLOR_parser_nodes__AArrayExpr___n_obra].val = var_n_obra; /* _n_obra on <self:AArrayExpr> */
4501 if (var_n_obra == NULL) {
4502 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4503 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5063);
4504 show_backtrace(1);
4505 } else {
4506 { /* Inline parser_nodes#ANode#parent= (var_n_obra,self) on <var_n_obra:nullable TObra> */
4507 if (unlikely(var_n_obra == NULL)) {
4508 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4509 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
4510 show_backtrace(1);
4511 }
4512 var_n_obra->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_obra:nullable TObra> */
4513 RET_LABEL1:(void)0;
4514 }
4515 }
4516 if (unlikely(var_n_exprs == NULL)) {
4517 PRINT_ERROR("Runtime error: %s", "Cast failed");
4518 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5064);
4519 show_backtrace(1);
4520 }
4521 self->attrs[COLOR_parser_nodes__AArrayExpr___n_exprs].val = var_n_exprs; /* _n_exprs on <self:AArrayExpr> */
4522 if (var_n_exprs == NULL) {
4523 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4524 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5065);
4525 show_backtrace(1);
4526 } else {
4527 { /* Inline parser_nodes#ANode#parent= (var_n_exprs,self) on <var_n_exprs:nullable AExprs> */
4528 if (unlikely(var_n_exprs == NULL)) {
4529 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4530 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
4531 show_backtrace(1);
4532 }
4533 var_n_exprs->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_exprs:nullable AExprs> */
4534 RET_LABEL2:(void)0;
4535 }
4536 }
4537 self->attrs[COLOR_parser_nodes__AArrayExpr___n_type].val = var_n_type; /* _n_type on <self:AArrayExpr> */
4538 var = NULL;
4539 if (var_n_type == NULL) {
4540 var3 = 0; /* is null */
4541 } else {
4542 var3 = 1; /* arg is null and recv is not */
4543 }
4544 if (0) {
4545 { /* Inline kernel#Object#!= (var_n_type,var) on <var_n_type:nullable AType> */
4546 var_other = var;
4547 {
4548 var7 = ((short int (*)(val*, val*))(var_n_type->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_type, var_other) /* == on <var_n_type:nullable AType(AType)>*/;
4549 var6 = var7;
4550 }
4551 var8 = !var6;
4552 var4 = var8;
4553 goto RET_LABEL5;
4554 RET_LABEL5:(void)0;
4555 }
4556 var3 = var4;
4557 }
4558 if (var3){
4559 {
4560 { /* Inline parser_nodes#ANode#parent= (var_n_type,self) on <var_n_type:nullable AType(AType)> */
4561 var_n_type->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_type:nullable AType(AType)> */
4562 RET_LABEL9:(void)0;
4563 }
4564 }
4565 } else {
4566 }
4567 if (unlikely(var_n_cbra == NULL)) {
4568 PRINT_ERROR("Runtime error: %s", "Cast failed");
4569 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5068);
4570 show_backtrace(1);
4571 }
4572 self->attrs[COLOR_parser_nodes__AArrayExpr___n_cbra].val = var_n_cbra; /* _n_cbra on <self:AArrayExpr> */
4573 if (var_n_cbra == NULL) {
4574 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4575 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5069);
4576 show_backtrace(1);
4577 } else {
4578 { /* Inline parser_nodes#ANode#parent= (var_n_cbra,self) on <var_n_cbra:nullable TCbra> */
4579 if (unlikely(var_n_cbra == NULL)) {
4580 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4581 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
4582 show_backtrace(1);
4583 }
4584 var_n_cbra->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_cbra:nullable TCbra> */
4585 RET_LABEL10:(void)0;
4586 }
4587 }
4588 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:AArrayExpr> */
4589 var11 = NULL;
4590 if (var_n_annotations == NULL) {
4591 var12 = 0; /* is null */
4592 } else {
4593 var12 = 1; /* arg is null and recv is not */
4594 }
4595 if (0) {
4596 { /* Inline kernel#Object#!= (var_n_annotations,var11) on <var_n_annotations:nullable AAnnotations> */
4597 var_other = var11;
4598 {
4599 var16 = ((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)>*/;
4600 var15 = var16;
4601 }
4602 var17 = !var15;
4603 var13 = var17;
4604 goto RET_LABEL14;
4605 RET_LABEL14:(void)0;
4606 }
4607 var12 = var13;
4608 }
4609 if (var12){
4610 {
4611 { /* Inline parser_nodes#ANode#parent= (var_n_annotations,self) on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
4612 var_n_annotations->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
4613 RET_LABEL18:(void)0;
4614 }
4615 }
4616 } else {
4617 }
4618 RET_LABEL:;
4619 }
4620 /* method parser_prod#AArrayExpr#init_aarrayexpr for (self: Object, nullable TObra, nullable AExprs, nullable AType, nullable TCbra, nullable AAnnotations) */
4621 void VIRTUAL_parser_prod__AArrayExpr__init_aarrayexpr(val* self, val* p0, val* p1, val* p2, val* p3, val* p4) {
4622 parser_prod__AArrayExpr__init_aarrayexpr(self, p0, p1, p2, p3, p4); /* Direct call parser_prod#AArrayExpr#init_aarrayexpr on <self:Object(AArrayExpr)>*/
4623 RET_LABEL:;
4624 }
4625 /* method parser_prod#AArrayExpr#replace_child for (self: AArrayExpr, ANode, nullable ANode) */
4626 void parser_prod__AArrayExpr__replace_child(val* self, val* p0, val* p1) {
4627 val* var_old_child /* var old_child: ANode */;
4628 val* var_new_child /* var new_child: nullable ANode */;
4629 val* var /* : TObra */;
4630 short int var1 /* : Bool */;
4631 short int var2 /* : Bool */;
4632 val* var_other /* var other: nullable Object */;
4633 short int var4 /* : Bool */;
4634 short int var6 /* : Bool */;
4635 short int var7 /* : Bool */;
4636 int cltype;
4637 int idtype;
4638 const char* var_class_name;
4639 val* var8 /* : AExprs */;
4640 short int var9 /* : Bool */;
4641 short int var10 /* : Bool */;
4642 short int var12 /* : Bool */;
4643 short int var14 /* : Bool */;
4644 short int var15 /* : Bool */;
4645 int cltype16;
4646 int idtype17;
4647 const char* var_class_name18;
4648 val* var19 /* : nullable AType */;
4649 short int var20 /* : Bool */;
4650 short int var21 /* : Bool */;
4651 short int var23 /* : Bool */;
4652 short int var25 /* : Bool */;
4653 short int var26 /* : Bool */;
4654 int cltype27;
4655 int idtype28;
4656 const char* var_class_name29;
4657 val* var30 /* : TCbra */;
4658 short int var31 /* : Bool */;
4659 short int var32 /* : Bool */;
4660 short int var34 /* : Bool */;
4661 short int var36 /* : Bool */;
4662 short int var37 /* : Bool */;
4663 int cltype38;
4664 int idtype39;
4665 const char* var_class_name40;
4666 val* var41 /* : nullable AAnnotations */;
4667 short int var42 /* : Bool */;
4668 short int var43 /* : Bool */;
4669 short int var45 /* : Bool */;
4670 short int var47 /* : Bool */;
4671 short int var48 /* : Bool */;
4672 int cltype49;
4673 int idtype50;
4674 const char* var_class_name51;
4675 var_old_child = p0;
4676 var_new_child = p1;
4677 var = self->attrs[COLOR_parser_nodes__AArrayExpr___n_obra].val; /* _n_obra on <self:AArrayExpr> */
4678 if (unlikely(var == NULL)) {
4679 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_obra");
4680 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5076);
4681 show_backtrace(1);
4682 }
4683 {
4684 { /* Inline kernel#Object#== (var,var_old_child) on <var:TObra> */
4685 var_other = var_old_child;
4686 {
4687 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TObra> */
4688 var6 = var == var_other;
4689 var4 = var6;
4690 goto RET_LABEL5;
4691 RET_LABEL5:(void)0;
4692 }
4693 }
4694 var2 = var4;
4695 goto RET_LABEL3;
4696 RET_LABEL3:(void)0;
4697 }
4698 var1 = var2;
4699 }
4700 if (var1){
4701 /* <var_new_child:nullable ANode> isa TObra */
4702 cltype = type_parser_nodes__TObra.color;
4703 idtype = type_parser_nodes__TObra.id;
4704 if(var_new_child == NULL) {
4705 var7 = 0;
4706 } else {
4707 if(cltype >= var_new_child->type->table_size) {
4708 var7 = 0;
4709 } else {
4710 var7 = var_new_child->type->type_table[cltype] == idtype;
4711 }
4712 }
4713 if (unlikely(!var7)) {
4714 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
4715 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TObra", var_class_name);
4716 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5077);
4717 show_backtrace(1);
4718 }
4719 {
4720 parser_prod__AArrayExpr__n_obra_61d(self, var_new_child); /* Direct call parser_prod#AArrayExpr#n_obra= on <self:AArrayExpr>*/
4721 }
4722 goto RET_LABEL;
4723 } else {
4724 }
4725 var8 = self->attrs[COLOR_parser_nodes__AArrayExpr___n_exprs].val; /* _n_exprs on <self:AArrayExpr> */
4726 if (unlikely(var8 == NULL)) {
4727 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
4728 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5080);
4729 show_backtrace(1);
4730 }
4731 {
4732 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExprs> */
4733 var_other = var_old_child;
4734 {
4735 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExprs> */
4736 var14 = var8 == var_other;
4737 var12 = var14;
4738 goto RET_LABEL13;
4739 RET_LABEL13:(void)0;
4740 }
4741 }
4742 var10 = var12;
4743 goto RET_LABEL11;
4744 RET_LABEL11:(void)0;
4745 }
4746 var9 = var10;
4747 }
4748 if (var9){
4749 /* <var_new_child:nullable ANode> isa AExprs */
4750 cltype16 = type_parser_nodes__AExprs.color;
4751 idtype17 = type_parser_nodes__AExprs.id;
4752 if(var_new_child == NULL) {
4753 var15 = 0;
4754 } else {
4755 if(cltype16 >= var_new_child->type->table_size) {
4756 var15 = 0;
4757 } else {
4758 var15 = var_new_child->type->type_table[cltype16] == idtype17;
4759 }
4760 }
4761 if (unlikely(!var15)) {
4762 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
4763 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExprs", var_class_name18);
4764 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5081);
4765 show_backtrace(1);
4766 }
4767 {
4768 parser_prod__AArrayExpr__n_exprs_61d(self, var_new_child); /* Direct call parser_prod#AArrayExpr#n_exprs= on <self:AArrayExpr>*/
4769 }
4770 goto RET_LABEL;
4771 } else {
4772 }
4773 var19 = self->attrs[COLOR_parser_nodes__AArrayExpr___n_type].val; /* _n_type on <self:AArrayExpr> */
4774 if (var19 == NULL) {
4775 var20 = 0; /* <var_old_child:ANode> cannot be null */
4776 } else {
4777 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:nullable AType> */
4778 var_other = var_old_child;
4779 {
4780 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:nullable AType(AType)> */
4781 var25 = var19 == var_other;
4782 var23 = var25;
4783 goto RET_LABEL24;
4784 RET_LABEL24:(void)0;
4785 }
4786 }
4787 var21 = var23;
4788 goto RET_LABEL22;
4789 RET_LABEL22:(void)0;
4790 }
4791 var20 = var21;
4792 }
4793 if (var20){
4794 /* <var_new_child:nullable ANode> isa nullable AType */
4795 cltype27 = type_nullable_parser_nodes__AType.color;
4796 idtype28 = type_nullable_parser_nodes__AType.id;
4797 if(var_new_child == NULL) {
4798 var26 = 1;
4799 } else {
4800 if(cltype27 >= var_new_child->type->table_size) {
4801 var26 = 0;
4802 } else {
4803 var26 = var_new_child->type->type_table[cltype27] == idtype28;
4804 }
4805 }
4806 if (unlikely(!var26)) {
4807 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
4808 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AType", var_class_name29);
4809 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5085);
4810 show_backtrace(1);
4811 }
4812 {
4813 parser_prod__AArrayExpr__n_type_61d(self, var_new_child); /* Direct call parser_prod#AArrayExpr#n_type= on <self:AArrayExpr>*/
4814 }
4815 goto RET_LABEL;
4816 } else {
4817 }
4818 var30 = self->attrs[COLOR_parser_nodes__AArrayExpr___n_cbra].val; /* _n_cbra on <self:AArrayExpr> */
4819 if (unlikely(var30 == NULL)) {
4820 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_cbra");
4821 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5088);
4822 show_backtrace(1);
4823 }
4824 {
4825 { /* Inline kernel#Object#== (var30,var_old_child) on <var30:TCbra> */
4826 var_other = var_old_child;
4827 {
4828 { /* Inline kernel#Object#is_same_instance (var30,var_other) on <var30:TCbra> */
4829 var36 = var30 == var_other;
4830 var34 = var36;
4831 goto RET_LABEL35;
4832 RET_LABEL35:(void)0;
4833 }
4834 }
4835 var32 = var34;
4836 goto RET_LABEL33;
4837 RET_LABEL33:(void)0;
4838 }
4839 var31 = var32;
4840 }
4841 if (var31){
4842 /* <var_new_child:nullable ANode> isa TCbra */
4843 cltype38 = type_parser_nodes__TCbra.color;
4844 idtype39 = type_parser_nodes__TCbra.id;
4845 if(var_new_child == NULL) {
4846 var37 = 0;
4847 } else {
4848 if(cltype38 >= var_new_child->type->table_size) {
4849 var37 = 0;
4850 } else {
4851 var37 = var_new_child->type->type_table[cltype38] == idtype39;
4852 }
4853 }
4854 if (unlikely(!var37)) {
4855 var_class_name40 = var_new_child == NULL ? "null" : var_new_child->type->name;
4856 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TCbra", var_class_name40);
4857 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5089);
4858 show_backtrace(1);
4859 }
4860 {
4861 parser_prod__AArrayExpr__n_cbra_61d(self, var_new_child); /* Direct call parser_prod#AArrayExpr#n_cbra= on <self:AArrayExpr>*/
4862 }
4863 goto RET_LABEL;
4864 } else {
4865 }
4866 var41 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AArrayExpr> */
4867 if (var41 == NULL) {
4868 var42 = 0; /* <var_old_child:ANode> cannot be null */
4869 } else {
4870 { /* Inline kernel#Object#== (var41,var_old_child) on <var41:nullable AAnnotations> */
4871 var_other = var_old_child;
4872 {
4873 { /* Inline kernel#Object#is_same_instance (var41,var_other) on <var41:nullable AAnnotations(AAnnotations)> */
4874 var47 = var41 == var_other;
4875 var45 = var47;
4876 goto RET_LABEL46;
4877 RET_LABEL46:(void)0;
4878 }
4879 }
4880 var43 = var45;
4881 goto RET_LABEL44;
4882 RET_LABEL44:(void)0;
4883 }
4884 var42 = var43;
4885 }
4886 if (var42){
4887 /* <var_new_child:nullable ANode> isa nullable AAnnotations */
4888 cltype49 = type_nullable_parser_nodes__AAnnotations.color;
4889 idtype50 = type_nullable_parser_nodes__AAnnotations.id;
4890 if(var_new_child == NULL) {
4891 var48 = 1;
4892 } else {
4893 if(cltype49 >= var_new_child->type->table_size) {
4894 var48 = 0;
4895 } else {
4896 var48 = var_new_child->type->type_table[cltype49] == idtype50;
4897 }
4898 }
4899 if (unlikely(!var48)) {
4900 var_class_name51 = var_new_child == NULL ? "null" : var_new_child->type->name;
4901 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AAnnotations", var_class_name51);
4902 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5093);
4903 show_backtrace(1);
4904 }
4905 {
4906 parser_prod__AArrayExpr__n_annotations_61d(self, var_new_child); /* Direct call parser_prod#AArrayExpr#n_annotations= on <self:AArrayExpr>*/
4907 }
4908 goto RET_LABEL;
4909 } else {
4910 }
4911 RET_LABEL:;
4912 }
4913 /* method parser_prod#AArrayExpr#replace_child for (self: Object, ANode, nullable ANode) */
4914 void VIRTUAL_parser_prod__AArrayExpr__replace_child(val* self, val* p0, val* p1) {
4915 parser_prod__AArrayExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AArrayExpr#replace_child on <self:Object(AArrayExpr)>*/
4916 RET_LABEL:;
4917 }
4918 /* method parser_prod#AArrayExpr#n_obra= for (self: AArrayExpr, TObra) */
4919 void parser_prod__AArrayExpr__n_obra_61d(val* self, val* p0) {
4920 val* var_node /* var node: TObra */;
4921 var_node = p0;
4922 self->attrs[COLOR_parser_nodes__AArrayExpr___n_obra].val = var_node; /* _n_obra on <self:AArrayExpr> */
4923 {
4924 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TObra> */
4925 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TObra> */
4926 RET_LABEL1:(void)0;
4927 }
4928 }
4929 RET_LABEL:;
4930 }
4931 /* method parser_prod#AArrayExpr#n_obra= for (self: Object, TObra) */
4932 void VIRTUAL_parser_prod__AArrayExpr__n_obra_61d(val* self, val* p0) {
4933 parser_prod__AArrayExpr__n_obra_61d(self, p0); /* Direct call parser_prod#AArrayExpr#n_obra= on <self:Object(AArrayExpr)>*/
4934 RET_LABEL:;
4935 }
4936 /* method parser_prod#AArrayExpr#n_exprs= for (self: AArrayExpr, AExprs) */
4937 void parser_prod__AArrayExpr__n_exprs_61d(val* self, val* p0) {
4938 val* var_node /* var node: AExprs */;
4939 var_node = p0;
4940 self->attrs[COLOR_parser_nodes__AArrayExpr___n_exprs].val = var_node; /* _n_exprs on <self:AArrayExpr> */
4941 {
4942 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExprs> */
4943 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExprs> */
4944 RET_LABEL1:(void)0;
4945 }
4946 }
4947 RET_LABEL:;
4948 }
4949 /* method parser_prod#AArrayExpr#n_exprs= for (self: Object, AExprs) */
4950 void VIRTUAL_parser_prod__AArrayExpr__n_exprs_61d(val* self, val* p0) {
4951 parser_prod__AArrayExpr__n_exprs_61d(self, p0); /* Direct call parser_prod#AArrayExpr#n_exprs= on <self:Object(AArrayExpr)>*/
4952 RET_LABEL:;
4953 }
4954 /* method parser_prod#AArrayExpr#n_type= for (self: AArrayExpr, nullable AType) */
4955 void parser_prod__AArrayExpr__n_type_61d(val* self, val* p0) {
4956 val* var_node /* var node: nullable AType */;
4957 val* var /* : null */;
4958 short int var1 /* : Bool */;
4959 short int var2 /* : Bool */;
4960 val* var_other /* var other: nullable Object */;
4961 short int var4 /* : Bool */;
4962 short int var5 /* : Bool */;
4963 short int var6 /* : Bool */;
4964 var_node = p0;
4965 self->attrs[COLOR_parser_nodes__AArrayExpr___n_type].val = var_node; /* _n_type on <self:AArrayExpr> */
4966 var = NULL;
4967 if (var_node == NULL) {
4968 var1 = 0; /* is null */
4969 } else {
4970 var1 = 1; /* arg is null and recv is not */
4971 }
4972 if (0) {
4973 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AType> */
4974 var_other = var;
4975 {
4976 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AType(AType)>*/;
4977 var4 = var5;
4978 }
4979 var6 = !var4;
4980 var2 = var6;
4981 goto RET_LABEL3;
4982 RET_LABEL3:(void)0;
4983 }
4984 var1 = var2;
4985 }
4986 if (var1){
4987 {
4988 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AType(AType)> */
4989 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AType(AType)> */
4990 RET_LABEL7:(void)0;
4991 }
4992 }
4993 } else {
4994 }
4995 RET_LABEL:;
4996 }
4997 /* method parser_prod#AArrayExpr#n_type= for (self: Object, nullable AType) */
4998 void VIRTUAL_parser_prod__AArrayExpr__n_type_61d(val* self, val* p0) {
4999 parser_prod__AArrayExpr__n_type_61d(self, p0); /* Direct call parser_prod#AArrayExpr#n_type= on <self:Object(AArrayExpr)>*/
5000 RET_LABEL:;
5001 }
5002 /* method parser_prod#AArrayExpr#n_cbra= for (self: AArrayExpr, TCbra) */
5003 void parser_prod__AArrayExpr__n_cbra_61d(val* self, val* p0) {
5004 val* var_node /* var node: TCbra */;
5005 var_node = p0;
5006 self->attrs[COLOR_parser_nodes__AArrayExpr___n_cbra].val = var_node; /* _n_cbra on <self:AArrayExpr> */
5007 {
5008 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TCbra> */
5009 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TCbra> */
5010 RET_LABEL1:(void)0;
5011 }
5012 }
5013 RET_LABEL:;
5014 }
5015 /* method parser_prod#AArrayExpr#n_cbra= for (self: Object, TCbra) */
5016 void VIRTUAL_parser_prod__AArrayExpr__n_cbra_61d(val* self, val* p0) {
5017 parser_prod__AArrayExpr__n_cbra_61d(self, p0); /* Direct call parser_prod#AArrayExpr#n_cbra= on <self:Object(AArrayExpr)>*/
5018 RET_LABEL:;
5019 }
5020 /* method parser_prod#AArrayExpr#n_annotations= for (self: AArrayExpr, nullable AAnnotations) */
5021 void parser_prod__AArrayExpr__n_annotations_61d(val* self, val* p0) {
5022 val* var_node /* var node: nullable AAnnotations */;
5023 val* var /* : null */;
5024 short int var1 /* : Bool */;
5025 short int var2 /* : Bool */;
5026 val* var_other /* var other: nullable Object */;
5027 short int var4 /* : Bool */;
5028 short int var5 /* : Bool */;
5029 short int var6 /* : Bool */;
5030 var_node = p0;
5031 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_node; /* _n_annotations on <self:AArrayExpr> */
5032 var = NULL;
5033 if (var_node == NULL) {
5034 var1 = 0; /* is null */
5035 } else {
5036 var1 = 1; /* arg is null and recv is not */
5037 }
5038 if (0) {
5039 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AAnnotations> */
5040 var_other = var;
5041 {
5042 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AAnnotations(AAnnotations)>*/;
5043 var4 = var5;
5044 }
5045 var6 = !var4;
5046 var2 = var6;
5047 goto RET_LABEL3;
5048 RET_LABEL3:(void)0;
5049 }
5050 var1 = var2;
5051 }
5052 if (var1){
5053 {
5054 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AAnnotations(AAnnotations)> */
5055 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AAnnotations(AAnnotations)> */
5056 RET_LABEL7:(void)0;
5057 }
5058 }
5059 } else {
5060 }
5061 RET_LABEL:;
5062 }
5063 /* method parser_prod#AArrayExpr#n_annotations= for (self: Object, nullable AAnnotations) */
5064 void VIRTUAL_parser_prod__AArrayExpr__n_annotations_61d(val* self, val* p0) {
5065 parser_prod__AArrayExpr__n_annotations_61d(self, p0); /* Direct call parser_prod#AArrayExpr#n_annotations= on <self:Object(AArrayExpr)>*/
5066 RET_LABEL:;
5067 }
5068 /* method parser_prod#AArrayExpr#visit_all for (self: AArrayExpr, Visitor) */
5069 void parser_prod__AArrayExpr__visit_all(val* self, val* p0) {
5070 val* var_v /* var v: Visitor */;
5071 val* var /* : TObra */;
5072 val* var1 /* : AExprs */;
5073 val* var2 /* : nullable AType */;
5074 val* var3 /* : TCbra */;
5075 val* var4 /* : nullable AAnnotations */;
5076 var_v = p0;
5077 var = self->attrs[COLOR_parser_nodes__AArrayExpr___n_obra].val; /* _n_obra on <self:AArrayExpr> */
5078 if (unlikely(var == NULL)) {
5079 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_obra");
5080 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5127);
5081 show_backtrace(1);
5082 }
5083 {
5084 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
5085 }
5086 var1 = self->attrs[COLOR_parser_nodes__AArrayExpr___n_exprs].val; /* _n_exprs on <self:AArrayExpr> */
5087 if (unlikely(var1 == NULL)) {
5088 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
5089 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5128);
5090 show_backtrace(1);
5091 }
5092 {
5093 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
5094 }
5095 var2 = self->attrs[COLOR_parser_nodes__AArrayExpr___n_type].val; /* _n_type on <self:AArrayExpr> */
5096 {
5097 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
5098 }
5099 var3 = self->attrs[COLOR_parser_nodes__AArrayExpr___n_cbra].val; /* _n_cbra on <self:AArrayExpr> */
5100 if (unlikely(var3 == NULL)) {
5101 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_cbra");
5102 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5130);
5103 show_backtrace(1);
5104 }
5105 {
5106 parser_nodes__Visitor__enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
5107 }
5108 var4 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AArrayExpr> */
5109 {
5110 parser_nodes__Visitor__enter_visit(var_v, var4); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
5111 }
5112 RET_LABEL:;
5113 }
5114 /* method parser_prod#AArrayExpr#visit_all for (self: Object, Visitor) */
5115 void VIRTUAL_parser_prod__AArrayExpr__visit_all(val* self, val* p0) {
5116 parser_prod__AArrayExpr__visit_all(self, p0); /* Direct call parser_prod#AArrayExpr#visit_all on <self:Object(AArrayExpr)>*/
5117 RET_LABEL:;
5118 }
5119 /* method parser_prod#ASelfExpr#init_aselfexpr for (self: ASelfExpr, nullable TKwself, nullable AAnnotations) */
5120 void parser_prod__ASelfExpr__init_aselfexpr(val* self, val* p0, val* p1) {
5121 val* var_n_kwself /* var n_kwself: nullable TKwself */;
5122 val* var_n_annotations /* var n_annotations: nullable AAnnotations */;
5123 val* var /* : null */;
5124 short int var2 /* : Bool */;
5125 short int var3 /* : Bool */;
5126 val* var_other /* var other: nullable Object */;
5127 short int var5 /* : Bool */;
5128 short int var6 /* : Bool */;
5129 short int var7 /* : Bool */;
5130 var_n_kwself = p0;
5131 var_n_annotations = p1;
5132 if (unlikely(var_n_kwself == NULL)) {
5133 PRINT_ERROR("Runtime error: %s", "Cast failed");
5134 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5140);
5135 show_backtrace(1);
5136 }
5137 self->attrs[COLOR_parser_nodes__ASelfExpr___n_kwself].val = var_n_kwself; /* _n_kwself on <self:ASelfExpr> */
5138 if (var_n_kwself == NULL) {
5139 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5140 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5141);
5141 show_backtrace(1);
5142 } else {
5143 { /* Inline parser_nodes#ANode#parent= (var_n_kwself,self) on <var_n_kwself:nullable TKwself> */
5144 if (unlikely(var_n_kwself == NULL)) {
5145 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5146 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
5147 show_backtrace(1);
5148 }
5149 var_n_kwself->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwself:nullable TKwself> */
5150 RET_LABEL1:(void)0;
5151 }
5152 }
5153 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:ASelfExpr> */
5154 var = NULL;
5155 if (var_n_annotations == NULL) {
5156 var2 = 0; /* is null */
5157 } else {
5158 var2 = 1; /* arg is null and recv is not */
5159 }
5160 if (0) {
5161 { /* Inline kernel#Object#!= (var_n_annotations,var) on <var_n_annotations:nullable AAnnotations> */
5162 var_other = var;
5163 {
5164 var6 = ((short int (*)(val*, val*))(var_n_annotations->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_annotations, var_other) /* == on <var_n_annotations:nullable AAnnotations(AAnnotations)>*/;
5165 var5 = var6;
5166 }
5167 var7 = !var5;
5168 var3 = var7;
5169 goto RET_LABEL4;
5170 RET_LABEL4:(void)0;
5171 }
5172 var2 = var3;
5173 }
5174 if (var2){
5175 {
5176 { /* Inline parser_nodes#ANode#parent= (var_n_annotations,self) on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
5177 var_n_annotations->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
5178 RET_LABEL8:(void)0;
5179 }
5180 }
5181 } else {
5182 }
5183 RET_LABEL:;
5184 }
5185 /* method parser_prod#ASelfExpr#init_aselfexpr for (self: Object, nullable TKwself, nullable AAnnotations) */
5186 void VIRTUAL_parser_prod__ASelfExpr__init_aselfexpr(val* self, val* p0, val* p1) {
5187 parser_prod__ASelfExpr__init_aselfexpr(self, p0, p1); /* Direct call parser_prod#ASelfExpr#init_aselfexpr on <self:Object(ASelfExpr)>*/
5188 RET_LABEL:;
5189 }
5190 /* method parser_prod#ASelfExpr#replace_child for (self: ASelfExpr, ANode, nullable ANode) */
5191 void parser_prod__ASelfExpr__replace_child(val* self, val* p0, val* p1) {
5192 val* var_old_child /* var old_child: ANode */;
5193 val* var_new_child /* var new_child: nullable ANode */;
5194 val* var /* : nullable TKwself */;
5195 short int var1 /* : Bool */;
5196 short int var2 /* : Bool */;
5197 val* var_other /* var other: nullable Object */;
5198 short int var4 /* : Bool */;
5199 short int var6 /* : Bool */;
5200 short int var7 /* : Bool */;
5201 int cltype;
5202 int idtype;
5203 const char* var_class_name;
5204 val* var8 /* : nullable AAnnotations */;
5205 short int var9 /* : Bool */;
5206 short int var10 /* : Bool */;
5207 short int var12 /* : Bool */;
5208 short int var14 /* : Bool */;
5209 short int var15 /* : Bool */;
5210 int cltype16;
5211 int idtype17;
5212 const char* var_class_name18;
5213 var_old_child = p0;
5214 var_new_child = p1;
5215 var = self->attrs[COLOR_parser_nodes__ASelfExpr___n_kwself].val; /* _n_kwself on <self:ASelfExpr> */
5216 if (var == NULL) {
5217 var1 = 0; /* <var_old_child:ANode> cannot be null */
5218 } else {
5219 { /* Inline kernel#Object#== (var,var_old_child) on <var:nullable TKwself> */
5220 var_other = var_old_child;
5221 {
5222 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:nullable TKwself(TKwself)> */
5223 var6 = var == var_other;
5224 var4 = var6;
5225 goto RET_LABEL5;
5226 RET_LABEL5:(void)0;
5227 }
5228 }
5229 var2 = var4;
5230 goto RET_LABEL3;
5231 RET_LABEL3:(void)0;
5232 }
5233 var1 = var2;
5234 }
5235 if (var1){
5236 /* <var_new_child:nullable ANode> isa TKwself */
5237 cltype = type_parser_nodes__TKwself.color;
5238 idtype = type_parser_nodes__TKwself.id;
5239 if(var_new_child == NULL) {
5240 var7 = 0;
5241 } else {
5242 if(cltype >= var_new_child->type->table_size) {
5243 var7 = 0;
5244 } else {
5245 var7 = var_new_child->type->type_table[cltype] == idtype;
5246 }
5247 }
5248 if (unlikely(!var7)) {
5249 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
5250 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwself", var_class_name);
5251 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5149);
5252 show_backtrace(1);
5253 }
5254 {
5255 parser_prod__ASelfExpr__n_kwself_61d(self, var_new_child); /* Direct call parser_prod#ASelfExpr#n_kwself= on <self:ASelfExpr>*/
5256 }
5257 goto RET_LABEL;
5258 } else {
5259 }
5260 var8 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:ASelfExpr> */
5261 if (var8 == NULL) {
5262 var9 = 0; /* <var_old_child:ANode> cannot be null */
5263 } else {
5264 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:nullable AAnnotations> */
5265 var_other = var_old_child;
5266 {
5267 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:nullable AAnnotations(AAnnotations)> */
5268 var14 = var8 == var_other;
5269 var12 = var14;
5270 goto RET_LABEL13;
5271 RET_LABEL13:(void)0;
5272 }
5273 }
5274 var10 = var12;
5275 goto RET_LABEL11;
5276 RET_LABEL11:(void)0;
5277 }
5278 var9 = var10;
5279 }
5280 if (var9){
5281 /* <var_new_child:nullable ANode> isa nullable AAnnotations */
5282 cltype16 = type_nullable_parser_nodes__AAnnotations.color;
5283 idtype17 = type_nullable_parser_nodes__AAnnotations.id;
5284 if(var_new_child == NULL) {
5285 var15 = 1;
5286 } else {
5287 if(cltype16 >= var_new_child->type->table_size) {
5288 var15 = 0;
5289 } else {
5290 var15 = var_new_child->type->type_table[cltype16] == idtype17;
5291 }
5292 }
5293 if (unlikely(!var15)) {
5294 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
5295 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AAnnotations", var_class_name18);
5296 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5153);
5297 show_backtrace(1);
5298 }
5299 {
5300 parser_prod__ASelfExpr__n_annotations_61d(self, var_new_child); /* Direct call parser_prod#ASelfExpr#n_annotations= on <self:ASelfExpr>*/
5301 }
5302 goto RET_LABEL;
5303 } else {
5304 }
5305 RET_LABEL:;
5306 }
5307 /* method parser_prod#ASelfExpr#replace_child for (self: Object, ANode, nullable ANode) */
5308 void VIRTUAL_parser_prod__ASelfExpr__replace_child(val* self, val* p0, val* p1) {
5309 parser_prod__ASelfExpr__replace_child(self, p0, p1); /* Direct call parser_prod#ASelfExpr#replace_child on <self:Object(ASelfExpr)>*/
5310 RET_LABEL:;
5311 }
5312 /* method parser_prod#ASelfExpr#n_kwself= for (self: ASelfExpr, nullable TKwself) */
5313 void parser_prod__ASelfExpr__n_kwself_61d(val* self, val* p0) {
5314 val* var_node /* var node: nullable TKwself */;
5315 var_node = p0;
5316 self->attrs[COLOR_parser_nodes__ASelfExpr___n_kwself].val = var_node; /* _n_kwself on <self:ASelfExpr> */
5317 if (var_node == NULL) {
5318 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5319 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5161);
5320 show_backtrace(1);
5321 } else {
5322 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TKwself> */
5323 if (unlikely(var_node == NULL)) {
5324 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5325 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
5326 show_backtrace(1);
5327 }
5328 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TKwself> */
5329 RET_LABEL1:(void)0;
5330 }
5331 }
5332 RET_LABEL:;
5333 }
5334 /* method parser_prod#ASelfExpr#n_kwself= for (self: Object, nullable TKwself) */
5335 void VIRTUAL_parser_prod__ASelfExpr__n_kwself_61d(val* self, val* p0) {
5336 parser_prod__ASelfExpr__n_kwself_61d(self, p0); /* Direct call parser_prod#ASelfExpr#n_kwself= on <self:Object(ASelfExpr)>*/
5337 RET_LABEL:;
5338 }
5339 /* method parser_prod#ASelfExpr#n_annotations= for (self: ASelfExpr, nullable AAnnotations) */
5340 void parser_prod__ASelfExpr__n_annotations_61d(val* self, val* p0) {
5341 val* var_node /* var node: nullable AAnnotations */;
5342 val* var /* : null */;
5343 short int var1 /* : Bool */;
5344 short int var2 /* : Bool */;
5345 val* var_other /* var other: nullable Object */;
5346 short int var4 /* : Bool */;
5347 short int var5 /* : Bool */;
5348 short int var6 /* : Bool */;
5349 var_node = p0;
5350 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_node; /* _n_annotations on <self:ASelfExpr> */
5351 var = NULL;
5352 if (var_node == NULL) {
5353 var1 = 0; /* is null */
5354 } else {
5355 var1 = 1; /* arg is null and recv is not */
5356 }
5357 if (0) {
5358 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AAnnotations> */
5359 var_other = var;
5360 {
5361 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AAnnotations(AAnnotations)>*/;
5362 var4 = var5;
5363 }
5364 var6 = !var4;
5365 var2 = var6;
5366 goto RET_LABEL3;
5367 RET_LABEL3:(void)0;
5368 }
5369 var1 = var2;
5370 }
5371 if (var1){
5372 {
5373 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AAnnotations(AAnnotations)> */
5374 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AAnnotations(AAnnotations)> */
5375 RET_LABEL7:(void)0;
5376 }
5377 }
5378 } else {
5379 }
5380 RET_LABEL:;
5381 }
5382 /* method parser_prod#ASelfExpr#n_annotations= for (self: Object, nullable AAnnotations) */
5383 void VIRTUAL_parser_prod__ASelfExpr__n_annotations_61d(val* self, val* p0) {
5384 parser_prod__ASelfExpr__n_annotations_61d(self, p0); /* Direct call parser_prod#ASelfExpr#n_annotations= on <self:Object(ASelfExpr)>*/
5385 RET_LABEL:;
5386 }
5387 /* method parser_prod#ASelfExpr#visit_all for (self: ASelfExpr, Visitor) */
5388 void parser_prod__ASelfExpr__visit_all(val* self, val* p0) {
5389 val* var_v /* var v: Visitor */;
5390 val* var /* : nullable TKwself */;
5391 val* var1 /* : nullable AAnnotations */;
5392 var_v = p0;
5393 var = self->attrs[COLOR_parser_nodes__ASelfExpr___n_kwself].val; /* _n_kwself on <self:ASelfExpr> */
5394 {
5395 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
5396 }
5397 var1 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:ASelfExpr> */
5398 {
5399 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
5400 }
5401 RET_LABEL:;
5402 }
5403 /* method parser_prod#ASelfExpr#visit_all for (self: Object, Visitor) */
5404 void VIRTUAL_parser_prod__ASelfExpr__visit_all(val* self, val* p0) {
5405 parser_prod__ASelfExpr__visit_all(self, p0); /* Direct call parser_prod#ASelfExpr#visit_all on <self:Object(ASelfExpr)>*/
5406 RET_LABEL:;
5407 }
5408 /* method parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr for (self: AImplicitSelfExpr) */
5409 void parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr(val* self) {
5410 RET_LABEL:;
5411 }
5412 /* method parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr for (self: Object) */
5413 void VIRTUAL_parser_prod__AImplicitSelfExpr__init_aimplicitselfexpr(val* self) {
5414 { /* Inline parser_prod#AImplicitSelfExpr#init_aimplicitselfexpr (self) on <self:Object(AImplicitSelfExpr)> */
5415 RET_LABEL1:(void)0;
5416 }
5417 RET_LABEL:;
5418 }
5419 /* method parser_prod#AImplicitSelfExpr#replace_child for (self: AImplicitSelfExpr, ANode, nullable ANode) */
5420 void parser_prod__AImplicitSelfExpr__replace_child(val* self, val* p0, val* p1) {
5421 val* var_old_child /* var old_child: ANode */;
5422 val* var_new_child /* var new_child: nullable ANode */;
5423 var_old_child = p0;
5424 var_new_child = p1;
5425 RET_LABEL:;
5426 }
5427 /* method parser_prod#AImplicitSelfExpr#replace_child for (self: Object, ANode, nullable ANode) */
5428 void VIRTUAL_parser_prod__AImplicitSelfExpr__replace_child(val* self, val* p0, val* p1) {
5429 val* var_old_child /* var old_child: ANode */;
5430 val* var_new_child /* var new_child: nullable ANode */;
5431 { /* Inline parser_prod#AImplicitSelfExpr#replace_child (self,p0,p1) on <self:Object(AImplicitSelfExpr)> */
5432 var_old_child = p0;
5433 var_new_child = p1;
5434 RET_LABEL1:(void)0;
5435 }
5436 RET_LABEL:;
5437 }
5438 /* method parser_prod#AImplicitSelfExpr#visit_all for (self: AImplicitSelfExpr, Visitor) */
5439 void parser_prod__AImplicitSelfExpr__visit_all(val* self, val* p0) {
5440 val* var_v /* var v: Visitor */;
5441 var_v = p0;
5442 RET_LABEL:;
5443 }
5444 /* method parser_prod#AImplicitSelfExpr#visit_all for (self: Object, Visitor) */
5445 void VIRTUAL_parser_prod__AImplicitSelfExpr__visit_all(val* self, val* p0) {
5446 val* var_v /* var v: Visitor */;
5447 { /* Inline parser_prod#AImplicitSelfExpr#visit_all (self,p0) on <self:Object(AImplicitSelfExpr)> */
5448 var_v = p0;
5449 RET_LABEL1:(void)0;
5450 }
5451 RET_LABEL:;
5452 }
5453 /* method parser_prod#ATrueExpr#init_atrueexpr for (self: ATrueExpr, nullable TKwtrue, nullable AAnnotations) */
5454 void parser_prod__ATrueExpr__init_atrueexpr(val* self, val* p0, val* p1) {
5455 val* var_n_kwtrue /* var n_kwtrue: nullable TKwtrue */;
5456 val* var_n_annotations /* var n_annotations: nullable AAnnotations */;
5457 val* var /* : null */;
5458 short int var2 /* : Bool */;
5459 short int var3 /* : Bool */;
5460 val* var_other /* var other: nullable Object */;
5461 short int var5 /* : Bool */;
5462 short int var6 /* : Bool */;
5463 short int var7 /* : Bool */;
5464 var_n_kwtrue = p0;
5465 var_n_annotations = p1;
5466 if (unlikely(var_n_kwtrue == NULL)) {
5467 PRINT_ERROR("Runtime error: %s", "Cast failed");
5468 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5197);
5469 show_backtrace(1);
5470 }
5471 self->attrs[COLOR_parser_nodes__ATrueExpr___n_kwtrue].val = var_n_kwtrue; /* _n_kwtrue on <self:ATrueExpr> */
5472 if (var_n_kwtrue == NULL) {
5473 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5474 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5198);
5475 show_backtrace(1);
5476 } else {
5477 { /* Inline parser_nodes#ANode#parent= (var_n_kwtrue,self) on <var_n_kwtrue:nullable TKwtrue> */
5478 if (unlikely(var_n_kwtrue == NULL)) {
5479 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5480 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
5481 show_backtrace(1);
5482 }
5483 var_n_kwtrue->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwtrue:nullable TKwtrue> */
5484 RET_LABEL1:(void)0;
5485 }
5486 }
5487 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:ATrueExpr> */
5488 var = NULL;
5489 if (var_n_annotations == NULL) {
5490 var2 = 0; /* is null */
5491 } else {
5492 var2 = 1; /* arg is null and recv is not */
5493 }
5494 if (0) {
5495 { /* Inline kernel#Object#!= (var_n_annotations,var) on <var_n_annotations:nullable AAnnotations> */
5496 var_other = var;
5497 {
5498 var6 = ((short int (*)(val*, val*))(var_n_annotations->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_annotations, var_other) /* == on <var_n_annotations:nullable AAnnotations(AAnnotations)>*/;
5499 var5 = var6;
5500 }
5501 var7 = !var5;
5502 var3 = var7;
5503 goto RET_LABEL4;
5504 RET_LABEL4:(void)0;
5505 }
5506 var2 = var3;
5507 }
5508 if (var2){
5509 {
5510 { /* Inline parser_nodes#ANode#parent= (var_n_annotations,self) on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
5511 var_n_annotations->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
5512 RET_LABEL8:(void)0;
5513 }
5514 }
5515 } else {
5516 }
5517 RET_LABEL:;
5518 }
5519 /* method parser_prod#ATrueExpr#init_atrueexpr for (self: Object, nullable TKwtrue, nullable AAnnotations) */
5520 void VIRTUAL_parser_prod__ATrueExpr__init_atrueexpr(val* self, val* p0, val* p1) {
5521 parser_prod__ATrueExpr__init_atrueexpr(self, p0, p1); /* Direct call parser_prod#ATrueExpr#init_atrueexpr on <self:Object(ATrueExpr)>*/
5522 RET_LABEL:;
5523 }
5524 /* method parser_prod#ATrueExpr#replace_child for (self: ATrueExpr, ANode, nullable ANode) */
5525 void parser_prod__ATrueExpr__replace_child(val* self, val* p0, val* p1) {
5526 val* var_old_child /* var old_child: ANode */;
5527 val* var_new_child /* var new_child: nullable ANode */;
5528 val* var /* : TKwtrue */;
5529 short int var1 /* : Bool */;
5530 short int var2 /* : Bool */;
5531 val* var_other /* var other: nullable Object */;
5532 short int var4 /* : Bool */;
5533 short int var6 /* : Bool */;
5534 short int var7 /* : Bool */;
5535 int cltype;
5536 int idtype;
5537 const char* var_class_name;
5538 val* var8 /* : nullable AAnnotations */;
5539 short int var9 /* : Bool */;
5540 short int var10 /* : Bool */;
5541 short int var12 /* : Bool */;
5542 short int var14 /* : Bool */;
5543 short int var15 /* : Bool */;
5544 int cltype16;
5545 int idtype17;
5546 const char* var_class_name18;
5547 var_old_child = p0;
5548 var_new_child = p1;
5549 var = self->attrs[COLOR_parser_nodes__ATrueExpr___n_kwtrue].val; /* _n_kwtrue on <self:ATrueExpr> */
5550 if (unlikely(var == NULL)) {
5551 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwtrue");
5552 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5205);
5553 show_backtrace(1);
5554 }
5555 {
5556 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwtrue> */
5557 var_other = var_old_child;
5558 {
5559 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TKwtrue> */
5560 var6 = var == var_other;
5561 var4 = var6;
5562 goto RET_LABEL5;
5563 RET_LABEL5:(void)0;
5564 }
5565 }
5566 var2 = var4;
5567 goto RET_LABEL3;
5568 RET_LABEL3:(void)0;
5569 }
5570 var1 = var2;
5571 }
5572 if (var1){
5573 /* <var_new_child:nullable ANode> isa TKwtrue */
5574 cltype = type_parser_nodes__TKwtrue.color;
5575 idtype = type_parser_nodes__TKwtrue.id;
5576 if(var_new_child == NULL) {
5577 var7 = 0;
5578 } else {
5579 if(cltype >= var_new_child->type->table_size) {
5580 var7 = 0;
5581 } else {
5582 var7 = var_new_child->type->type_table[cltype] == idtype;
5583 }
5584 }
5585 if (unlikely(!var7)) {
5586 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
5587 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwtrue", var_class_name);
5588 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5206);
5589 show_backtrace(1);
5590 }
5591 {
5592 parser_prod__ATrueExpr__n_kwtrue_61d(self, var_new_child); /* Direct call parser_prod#ATrueExpr#n_kwtrue= on <self:ATrueExpr>*/
5593 }
5594 goto RET_LABEL;
5595 } else {
5596 }
5597 var8 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:ATrueExpr> */
5598 if (var8 == NULL) {
5599 var9 = 0; /* <var_old_child:ANode> cannot be null */
5600 } else {
5601 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:nullable AAnnotations> */
5602 var_other = var_old_child;
5603 {
5604 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:nullable AAnnotations(AAnnotations)> */
5605 var14 = var8 == var_other;
5606 var12 = var14;
5607 goto RET_LABEL13;
5608 RET_LABEL13:(void)0;
5609 }
5610 }
5611 var10 = var12;
5612 goto RET_LABEL11;
5613 RET_LABEL11:(void)0;
5614 }
5615 var9 = var10;
5616 }
5617 if (var9){
5618 /* <var_new_child:nullable ANode> isa nullable AAnnotations */
5619 cltype16 = type_nullable_parser_nodes__AAnnotations.color;
5620 idtype17 = type_nullable_parser_nodes__AAnnotations.id;
5621 if(var_new_child == NULL) {
5622 var15 = 1;
5623 } else {
5624 if(cltype16 >= var_new_child->type->table_size) {
5625 var15 = 0;
5626 } else {
5627 var15 = var_new_child->type->type_table[cltype16] == idtype17;
5628 }
5629 }
5630 if (unlikely(!var15)) {
5631 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
5632 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AAnnotations", var_class_name18);
5633 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5210);
5634 show_backtrace(1);
5635 }
5636 {
5637 parser_prod__ATrueExpr__n_annotations_61d(self, var_new_child); /* Direct call parser_prod#ATrueExpr#n_annotations= on <self:ATrueExpr>*/
5638 }
5639 goto RET_LABEL;
5640 } else {
5641 }
5642 RET_LABEL:;
5643 }
5644 /* method parser_prod#ATrueExpr#replace_child for (self: Object, ANode, nullable ANode) */
5645 void VIRTUAL_parser_prod__ATrueExpr__replace_child(val* self, val* p0, val* p1) {
5646 parser_prod__ATrueExpr__replace_child(self, p0, p1); /* Direct call parser_prod#ATrueExpr#replace_child on <self:Object(ATrueExpr)>*/
5647 RET_LABEL:;
5648 }
5649 /* method parser_prod#ATrueExpr#n_kwtrue= for (self: ATrueExpr, TKwtrue) */
5650 void parser_prod__ATrueExpr__n_kwtrue_61d(val* self, val* p0) {
5651 val* var_node /* var node: TKwtrue */;
5652 var_node = p0;
5653 self->attrs[COLOR_parser_nodes__ATrueExpr___n_kwtrue].val = var_node; /* _n_kwtrue on <self:ATrueExpr> */
5654 {
5655 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwtrue> */
5656 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwtrue> */
5657 RET_LABEL1:(void)0;
5658 }
5659 }
5660 RET_LABEL:;
5661 }
5662 /* method parser_prod#ATrueExpr#n_kwtrue= for (self: Object, TKwtrue) */
5663 void VIRTUAL_parser_prod__ATrueExpr__n_kwtrue_61d(val* self, val* p0) {
5664 parser_prod__ATrueExpr__n_kwtrue_61d(self, p0); /* Direct call parser_prod#ATrueExpr#n_kwtrue= on <self:Object(ATrueExpr)>*/
5665 RET_LABEL:;
5666 }
5667 /* method parser_prod#ATrueExpr#n_annotations= for (self: ATrueExpr, nullable AAnnotations) */
5668 void parser_prod__ATrueExpr__n_annotations_61d(val* self, val* p0) {
5669 val* var_node /* var node: nullable AAnnotations */;
5670 val* var /* : null */;
5671 short int var1 /* : Bool */;
5672 short int var2 /* : Bool */;
5673 val* var_other /* var other: nullable Object */;
5674 short int var4 /* : Bool */;
5675 short int var5 /* : Bool */;
5676 short int var6 /* : Bool */;
5677 var_node = p0;
5678 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_node; /* _n_annotations on <self:ATrueExpr> */
5679 var = NULL;
5680 if (var_node == NULL) {
5681 var1 = 0; /* is null */
5682 } else {
5683 var1 = 1; /* arg is null and recv is not */
5684 }
5685 if (0) {
5686 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AAnnotations> */
5687 var_other = var;
5688 {
5689 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AAnnotations(AAnnotations)>*/;
5690 var4 = var5;
5691 }
5692 var6 = !var4;
5693 var2 = var6;
5694 goto RET_LABEL3;
5695 RET_LABEL3:(void)0;
5696 }
5697 var1 = var2;
5698 }
5699 if (var1){
5700 {
5701 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AAnnotations(AAnnotations)> */
5702 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AAnnotations(AAnnotations)> */
5703 RET_LABEL7:(void)0;
5704 }
5705 }
5706 } else {
5707 }
5708 RET_LABEL:;
5709 }
5710 /* method parser_prod#ATrueExpr#n_annotations= for (self: Object, nullable AAnnotations) */
5711 void VIRTUAL_parser_prod__ATrueExpr__n_annotations_61d(val* self, val* p0) {
5712 parser_prod__ATrueExpr__n_annotations_61d(self, p0); /* Direct call parser_prod#ATrueExpr#n_annotations= on <self:Object(ATrueExpr)>*/
5713 RET_LABEL:;
5714 }
5715 /* method parser_prod#ATrueExpr#visit_all for (self: ATrueExpr, Visitor) */
5716 void parser_prod__ATrueExpr__visit_all(val* self, val* p0) {
5717 val* var_v /* var v: Visitor */;
5718 val* var /* : TKwtrue */;
5719 val* var1 /* : nullable AAnnotations */;
5720 var_v = p0;
5721 var = self->attrs[COLOR_parser_nodes__ATrueExpr___n_kwtrue].val; /* _n_kwtrue on <self:ATrueExpr> */
5722 if (unlikely(var == NULL)) {
5723 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwtrue");
5724 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5229);
5725 show_backtrace(1);
5726 }
5727 {
5728 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
5729 }
5730 var1 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:ATrueExpr> */
5731 {
5732 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
5733 }
5734 RET_LABEL:;
5735 }
5736 /* method parser_prod#ATrueExpr#visit_all for (self: Object, Visitor) */
5737 void VIRTUAL_parser_prod__ATrueExpr__visit_all(val* self, val* p0) {
5738 parser_prod__ATrueExpr__visit_all(self, p0); /* Direct call parser_prod#ATrueExpr#visit_all on <self:Object(ATrueExpr)>*/
5739 RET_LABEL:;
5740 }
5741 /* method parser_prod#AFalseExpr#init_afalseexpr for (self: AFalseExpr, nullable TKwfalse, nullable AAnnotations) */
5742 void parser_prod__AFalseExpr__init_afalseexpr(val* self, val* p0, val* p1) {
5743 val* var_n_kwfalse /* var n_kwfalse: nullable TKwfalse */;
5744 val* var_n_annotations /* var n_annotations: nullable AAnnotations */;
5745 val* var /* : null */;
5746 short int var2 /* : Bool */;
5747 short int var3 /* : Bool */;
5748 val* var_other /* var other: nullable Object */;
5749 short int var5 /* : Bool */;
5750 short int var6 /* : Bool */;
5751 short int var7 /* : Bool */;
5752 var_n_kwfalse = p0;
5753 var_n_annotations = p1;
5754 if (unlikely(var_n_kwfalse == NULL)) {
5755 PRINT_ERROR("Runtime error: %s", "Cast failed");
5756 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5239);
5757 show_backtrace(1);
5758 }
5759 self->attrs[COLOR_parser_nodes__AFalseExpr___n_kwfalse].val = var_n_kwfalse; /* _n_kwfalse on <self:AFalseExpr> */
5760 if (var_n_kwfalse == NULL) {
5761 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5762 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5240);
5763 show_backtrace(1);
5764 } else {
5765 { /* Inline parser_nodes#ANode#parent= (var_n_kwfalse,self) on <var_n_kwfalse:nullable TKwfalse> */
5766 if (unlikely(var_n_kwfalse == NULL)) {
5767 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5768 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
5769 show_backtrace(1);
5770 }
5771 var_n_kwfalse->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwfalse:nullable TKwfalse> */
5772 RET_LABEL1:(void)0;
5773 }
5774 }
5775 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:AFalseExpr> */
5776 var = NULL;
5777 if (var_n_annotations == NULL) {
5778 var2 = 0; /* is null */
5779 } else {
5780 var2 = 1; /* arg is null and recv is not */
5781 }
5782 if (0) {
5783 { /* Inline kernel#Object#!= (var_n_annotations,var) on <var_n_annotations:nullable AAnnotations> */
5784 var_other = var;
5785 {
5786 var6 = ((short int (*)(val*, val*))(var_n_annotations->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_annotations, var_other) /* == on <var_n_annotations:nullable AAnnotations(AAnnotations)>*/;
5787 var5 = var6;
5788 }
5789 var7 = !var5;
5790 var3 = var7;
5791 goto RET_LABEL4;
5792 RET_LABEL4:(void)0;
5793 }
5794 var2 = var3;
5795 }
5796 if (var2){
5797 {
5798 { /* Inline parser_nodes#ANode#parent= (var_n_annotations,self) on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
5799 var_n_annotations->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
5800 RET_LABEL8:(void)0;
5801 }
5802 }
5803 } else {
5804 }
5805 RET_LABEL:;
5806 }
5807 /* method parser_prod#AFalseExpr#init_afalseexpr for (self: Object, nullable TKwfalse, nullable AAnnotations) */
5808 void VIRTUAL_parser_prod__AFalseExpr__init_afalseexpr(val* self, val* p0, val* p1) {
5809 parser_prod__AFalseExpr__init_afalseexpr(self, p0, p1); /* Direct call parser_prod#AFalseExpr#init_afalseexpr on <self:Object(AFalseExpr)>*/
5810 RET_LABEL:;
5811 }
5812 /* method parser_prod#AFalseExpr#replace_child for (self: AFalseExpr, ANode, nullable ANode) */
5813 void parser_prod__AFalseExpr__replace_child(val* self, val* p0, val* p1) {
5814 val* var_old_child /* var old_child: ANode */;
5815 val* var_new_child /* var new_child: nullable ANode */;
5816 val* var /* : TKwfalse */;
5817 short int var1 /* : Bool */;
5818 short int var2 /* : Bool */;
5819 val* var_other /* var other: nullable Object */;
5820 short int var4 /* : Bool */;
5821 short int var6 /* : Bool */;
5822 short int var7 /* : Bool */;
5823 int cltype;
5824 int idtype;
5825 const char* var_class_name;
5826 val* var8 /* : nullable AAnnotations */;
5827 short int var9 /* : Bool */;
5828 short int var10 /* : Bool */;
5829 short int var12 /* : Bool */;
5830 short int var14 /* : Bool */;
5831 short int var15 /* : Bool */;
5832 int cltype16;
5833 int idtype17;
5834 const char* var_class_name18;
5835 var_old_child = p0;
5836 var_new_child = p1;
5837 var = self->attrs[COLOR_parser_nodes__AFalseExpr___n_kwfalse].val; /* _n_kwfalse on <self:AFalseExpr> */
5838 if (unlikely(var == NULL)) {
5839 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwfalse");
5840 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5247);
5841 show_backtrace(1);
5842 }
5843 {
5844 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwfalse> */
5845 var_other = var_old_child;
5846 {
5847 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TKwfalse> */
5848 var6 = var == var_other;
5849 var4 = var6;
5850 goto RET_LABEL5;
5851 RET_LABEL5:(void)0;
5852 }
5853 }
5854 var2 = var4;
5855 goto RET_LABEL3;
5856 RET_LABEL3:(void)0;
5857 }
5858 var1 = var2;
5859 }
5860 if (var1){
5861 /* <var_new_child:nullable ANode> isa TKwfalse */
5862 cltype = type_parser_nodes__TKwfalse.color;
5863 idtype = type_parser_nodes__TKwfalse.id;
5864 if(var_new_child == NULL) {
5865 var7 = 0;
5866 } else {
5867 if(cltype >= var_new_child->type->table_size) {
5868 var7 = 0;
5869 } else {
5870 var7 = var_new_child->type->type_table[cltype] == idtype;
5871 }
5872 }
5873 if (unlikely(!var7)) {
5874 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
5875 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwfalse", var_class_name);
5876 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5248);
5877 show_backtrace(1);
5878 }
5879 {
5880 parser_prod__AFalseExpr__n_kwfalse_61d(self, var_new_child); /* Direct call parser_prod#AFalseExpr#n_kwfalse= on <self:AFalseExpr>*/
5881 }
5882 goto RET_LABEL;
5883 } else {
5884 }
5885 var8 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AFalseExpr> */
5886 if (var8 == NULL) {
5887 var9 = 0; /* <var_old_child:ANode> cannot be null */
5888 } else {
5889 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:nullable AAnnotations> */
5890 var_other = var_old_child;
5891 {
5892 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:nullable AAnnotations(AAnnotations)> */
5893 var14 = var8 == var_other;
5894 var12 = var14;
5895 goto RET_LABEL13;
5896 RET_LABEL13:(void)0;
5897 }
5898 }
5899 var10 = var12;
5900 goto RET_LABEL11;
5901 RET_LABEL11:(void)0;
5902 }
5903 var9 = var10;
5904 }
5905 if (var9){
5906 /* <var_new_child:nullable ANode> isa nullable AAnnotations */
5907 cltype16 = type_nullable_parser_nodes__AAnnotations.color;
5908 idtype17 = type_nullable_parser_nodes__AAnnotations.id;
5909 if(var_new_child == NULL) {
5910 var15 = 1;
5911 } else {
5912 if(cltype16 >= var_new_child->type->table_size) {
5913 var15 = 0;
5914 } else {
5915 var15 = var_new_child->type->type_table[cltype16] == idtype17;
5916 }
5917 }
5918 if (unlikely(!var15)) {
5919 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
5920 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AAnnotations", var_class_name18);
5921 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5252);
5922 show_backtrace(1);
5923 }
5924 {
5925 parser_prod__AFalseExpr__n_annotations_61d(self, var_new_child); /* Direct call parser_prod#AFalseExpr#n_annotations= on <self:AFalseExpr>*/
5926 }
5927 goto RET_LABEL;
5928 } else {
5929 }
5930 RET_LABEL:;
5931 }
5932 /* method parser_prod#AFalseExpr#replace_child for (self: Object, ANode, nullable ANode) */
5933 void VIRTUAL_parser_prod__AFalseExpr__replace_child(val* self, val* p0, val* p1) {
5934 parser_prod__AFalseExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AFalseExpr#replace_child on <self:Object(AFalseExpr)>*/
5935 RET_LABEL:;
5936 }
5937 /* method parser_prod#AFalseExpr#n_kwfalse= for (self: AFalseExpr, TKwfalse) */
5938 void parser_prod__AFalseExpr__n_kwfalse_61d(val* self, val* p0) {
5939 val* var_node /* var node: TKwfalse */;
5940 var_node = p0;
5941 self->attrs[COLOR_parser_nodes__AFalseExpr___n_kwfalse].val = var_node; /* _n_kwfalse on <self:AFalseExpr> */
5942 {
5943 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwfalse> */
5944 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwfalse> */
5945 RET_LABEL1:(void)0;
5946 }
5947 }
5948 RET_LABEL:;
5949 }
5950 /* method parser_prod#AFalseExpr#n_kwfalse= for (self: Object, TKwfalse) */
5951 void VIRTUAL_parser_prod__AFalseExpr__n_kwfalse_61d(val* self, val* p0) {
5952 parser_prod__AFalseExpr__n_kwfalse_61d(self, p0); /* Direct call parser_prod#AFalseExpr#n_kwfalse= on <self:Object(AFalseExpr)>*/
5953 RET_LABEL:;
5954 }
5955 /* method parser_prod#AFalseExpr#n_annotations= for (self: AFalseExpr, nullable AAnnotations) */
5956 void parser_prod__AFalseExpr__n_annotations_61d(val* self, val* p0) {
5957 val* var_node /* var node: nullable AAnnotations */;
5958 val* var /* : null */;
5959 short int var1 /* : Bool */;
5960 short int var2 /* : Bool */;
5961 val* var_other /* var other: nullable Object */;
5962 short int var4 /* : Bool */;
5963 short int var5 /* : Bool */;
5964 short int var6 /* : Bool */;
5965 var_node = p0;
5966 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_node; /* _n_annotations on <self:AFalseExpr> */
5967 var = NULL;
5968 if (var_node == NULL) {
5969 var1 = 0; /* is null */
5970 } else {
5971 var1 = 1; /* arg is null and recv is not */
5972 }
5973 if (0) {
5974 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AAnnotations> */
5975 var_other = var;
5976 {
5977 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AAnnotations(AAnnotations)>*/;
5978 var4 = var5;
5979 }
5980 var6 = !var4;
5981 var2 = var6;
5982 goto RET_LABEL3;
5983 RET_LABEL3:(void)0;
5984 }
5985 var1 = var2;
5986 }
5987 if (var1){
5988 {
5989 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AAnnotations(AAnnotations)> */
5990 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AAnnotations(AAnnotations)> */
5991 RET_LABEL7:(void)0;
5992 }
5993 }
5994 } else {
5995 }
5996 RET_LABEL:;
5997 }
5998 /* method parser_prod#AFalseExpr#n_annotations= for (self: Object, nullable AAnnotations) */
5999 void VIRTUAL_parser_prod__AFalseExpr__n_annotations_61d(val* self, val* p0) {
6000 parser_prod__AFalseExpr__n_annotations_61d(self, p0); /* Direct call parser_prod#AFalseExpr#n_annotations= on <self:Object(AFalseExpr)>*/
6001 RET_LABEL:;
6002 }
6003 /* method parser_prod#AFalseExpr#visit_all for (self: AFalseExpr, Visitor) */
6004 void parser_prod__AFalseExpr__visit_all(val* self, val* p0) {
6005 val* var_v /* var v: Visitor */;
6006 val* var /* : TKwfalse */;
6007 val* var1 /* : nullable AAnnotations */;
6008 var_v = p0;
6009 var = self->attrs[COLOR_parser_nodes__AFalseExpr___n_kwfalse].val; /* _n_kwfalse on <self:AFalseExpr> */
6010 if (unlikely(var == NULL)) {
6011 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwfalse");
6012 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5271);
6013 show_backtrace(1);
6014 }
6015 {
6016 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6017 }
6018 var1 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AFalseExpr> */
6019 {
6020 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6021 }
6022 RET_LABEL:;
6023 }
6024 /* method parser_prod#AFalseExpr#visit_all for (self: Object, Visitor) */
6025 void VIRTUAL_parser_prod__AFalseExpr__visit_all(val* self, val* p0) {
6026 parser_prod__AFalseExpr__visit_all(self, p0); /* Direct call parser_prod#AFalseExpr#visit_all on <self:Object(AFalseExpr)>*/
6027 RET_LABEL:;
6028 }
6029 /* method parser_prod#ANullExpr#init_anullexpr for (self: ANullExpr, nullable TKwnull, nullable AAnnotations) */
6030 void parser_prod__ANullExpr__init_anullexpr(val* self, val* p0, val* p1) {
6031 val* var_n_kwnull /* var n_kwnull: nullable TKwnull */;
6032 val* var_n_annotations /* var n_annotations: nullable AAnnotations */;
6033 val* var /* : null */;
6034 short int var2 /* : Bool */;
6035 short int var3 /* : Bool */;
6036 val* var_other /* var other: nullable Object */;
6037 short int var5 /* : Bool */;
6038 short int var6 /* : Bool */;
6039 short int var7 /* : Bool */;
6040 var_n_kwnull = p0;
6041 var_n_annotations = p1;
6042 if (unlikely(var_n_kwnull == NULL)) {
6043 PRINT_ERROR("Runtime error: %s", "Cast failed");
6044 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5281);
6045 show_backtrace(1);
6046 }
6047 self->attrs[COLOR_parser_nodes__ANullExpr___n_kwnull].val = var_n_kwnull; /* _n_kwnull on <self:ANullExpr> */
6048 if (var_n_kwnull == NULL) {
6049 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6050 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5282);
6051 show_backtrace(1);
6052 } else {
6053 { /* Inline parser_nodes#ANode#parent= (var_n_kwnull,self) on <var_n_kwnull:nullable TKwnull> */
6054 if (unlikely(var_n_kwnull == NULL)) {
6055 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6056 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
6057 show_backtrace(1);
6058 }
6059 var_n_kwnull->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwnull:nullable TKwnull> */
6060 RET_LABEL1:(void)0;
6061 }
6062 }
6063 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:ANullExpr> */
6064 var = NULL;
6065 if (var_n_annotations == NULL) {
6066 var2 = 0; /* is null */
6067 } else {
6068 var2 = 1; /* arg is null and recv is not */
6069 }
6070 if (0) {
6071 { /* Inline kernel#Object#!= (var_n_annotations,var) on <var_n_annotations:nullable AAnnotations> */
6072 var_other = var;
6073 {
6074 var6 = ((short int (*)(val*, val*))(var_n_annotations->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_annotations, var_other) /* == on <var_n_annotations:nullable AAnnotations(AAnnotations)>*/;
6075 var5 = var6;
6076 }
6077 var7 = !var5;
6078 var3 = var7;
6079 goto RET_LABEL4;
6080 RET_LABEL4:(void)0;
6081 }
6082 var2 = var3;
6083 }
6084 if (var2){
6085 {
6086 { /* Inline parser_nodes#ANode#parent= (var_n_annotations,self) on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
6087 var_n_annotations->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
6088 RET_LABEL8:(void)0;
6089 }
6090 }
6091 } else {
6092 }
6093 RET_LABEL:;
6094 }
6095 /* method parser_prod#ANullExpr#init_anullexpr for (self: Object, nullable TKwnull, nullable AAnnotations) */
6096 void VIRTUAL_parser_prod__ANullExpr__init_anullexpr(val* self, val* p0, val* p1) {
6097 parser_prod__ANullExpr__init_anullexpr(self, p0, p1); /* Direct call parser_prod#ANullExpr#init_anullexpr on <self:Object(ANullExpr)>*/
6098 RET_LABEL:;
6099 }
6100 /* method parser_prod#ANullExpr#replace_child for (self: ANullExpr, ANode, nullable ANode) */
6101 void parser_prod__ANullExpr__replace_child(val* self, val* p0, val* p1) {
6102 val* var_old_child /* var old_child: ANode */;
6103 val* var_new_child /* var new_child: nullable ANode */;
6104 val* var /* : TKwnull */;
6105 short int var1 /* : Bool */;
6106 short int var2 /* : Bool */;
6107 val* var_other /* var other: nullable Object */;
6108 short int var4 /* : Bool */;
6109 short int var6 /* : Bool */;
6110 short int var7 /* : Bool */;
6111 int cltype;
6112 int idtype;
6113 const char* var_class_name;
6114 val* var8 /* : nullable AAnnotations */;
6115 short int var9 /* : Bool */;
6116 short int var10 /* : Bool */;
6117 short int var12 /* : Bool */;
6118 short int var14 /* : Bool */;
6119 short int var15 /* : Bool */;
6120 int cltype16;
6121 int idtype17;
6122 const char* var_class_name18;
6123 var_old_child = p0;
6124 var_new_child = p1;
6125 var = self->attrs[COLOR_parser_nodes__ANullExpr___n_kwnull].val; /* _n_kwnull on <self:ANullExpr> */
6126 if (unlikely(var == NULL)) {
6127 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwnull");
6128 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5289);
6129 show_backtrace(1);
6130 }
6131 {
6132 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwnull> */
6133 var_other = var_old_child;
6134 {
6135 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TKwnull> */
6136 var6 = var == var_other;
6137 var4 = var6;
6138 goto RET_LABEL5;
6139 RET_LABEL5:(void)0;
6140 }
6141 }
6142 var2 = var4;
6143 goto RET_LABEL3;
6144 RET_LABEL3:(void)0;
6145 }
6146 var1 = var2;
6147 }
6148 if (var1){
6149 /* <var_new_child:nullable ANode> isa TKwnull */
6150 cltype = type_parser_nodes__TKwnull.color;
6151 idtype = type_parser_nodes__TKwnull.id;
6152 if(var_new_child == NULL) {
6153 var7 = 0;
6154 } else {
6155 if(cltype >= var_new_child->type->table_size) {
6156 var7 = 0;
6157 } else {
6158 var7 = var_new_child->type->type_table[cltype] == idtype;
6159 }
6160 }
6161 if (unlikely(!var7)) {
6162 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
6163 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwnull", var_class_name);
6164 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5290);
6165 show_backtrace(1);
6166 }
6167 {
6168 parser_prod__ANullExpr__n_kwnull_61d(self, var_new_child); /* Direct call parser_prod#ANullExpr#n_kwnull= on <self:ANullExpr>*/
6169 }
6170 goto RET_LABEL;
6171 } else {
6172 }
6173 var8 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:ANullExpr> */
6174 if (var8 == NULL) {
6175 var9 = 0; /* <var_old_child:ANode> cannot be null */
6176 } else {
6177 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:nullable AAnnotations> */
6178 var_other = var_old_child;
6179 {
6180 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:nullable AAnnotations(AAnnotations)> */
6181 var14 = var8 == var_other;
6182 var12 = var14;
6183 goto RET_LABEL13;
6184 RET_LABEL13:(void)0;
6185 }
6186 }
6187 var10 = var12;
6188 goto RET_LABEL11;
6189 RET_LABEL11:(void)0;
6190 }
6191 var9 = var10;
6192 }
6193 if (var9){
6194 /* <var_new_child:nullable ANode> isa nullable AAnnotations */
6195 cltype16 = type_nullable_parser_nodes__AAnnotations.color;
6196 idtype17 = type_nullable_parser_nodes__AAnnotations.id;
6197 if(var_new_child == NULL) {
6198 var15 = 1;
6199 } else {
6200 if(cltype16 >= var_new_child->type->table_size) {
6201 var15 = 0;
6202 } else {
6203 var15 = var_new_child->type->type_table[cltype16] == idtype17;
6204 }
6205 }
6206 if (unlikely(!var15)) {
6207 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
6208 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AAnnotations", var_class_name18);
6209 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5294);
6210 show_backtrace(1);
6211 }
6212 {
6213 parser_prod__ANullExpr__n_annotations_61d(self, var_new_child); /* Direct call parser_prod#ANullExpr#n_annotations= on <self:ANullExpr>*/
6214 }
6215 goto RET_LABEL;
6216 } else {
6217 }
6218 RET_LABEL:;
6219 }
6220 /* method parser_prod#ANullExpr#replace_child for (self: Object, ANode, nullable ANode) */
6221 void VIRTUAL_parser_prod__ANullExpr__replace_child(val* self, val* p0, val* p1) {
6222 parser_prod__ANullExpr__replace_child(self, p0, p1); /* Direct call parser_prod#ANullExpr#replace_child on <self:Object(ANullExpr)>*/
6223 RET_LABEL:;
6224 }
6225 /* method parser_prod#ANullExpr#n_kwnull= for (self: ANullExpr, TKwnull) */
6226 void parser_prod__ANullExpr__n_kwnull_61d(val* self, val* p0) {
6227 val* var_node /* var node: TKwnull */;
6228 var_node = p0;
6229 self->attrs[COLOR_parser_nodes__ANullExpr___n_kwnull].val = var_node; /* _n_kwnull on <self:ANullExpr> */
6230 {
6231 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwnull> */
6232 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwnull> */
6233 RET_LABEL1:(void)0;
6234 }
6235 }
6236 RET_LABEL:;
6237 }
6238 /* method parser_prod#ANullExpr#n_kwnull= for (self: Object, TKwnull) */
6239 void VIRTUAL_parser_prod__ANullExpr__n_kwnull_61d(val* self, val* p0) {
6240 parser_prod__ANullExpr__n_kwnull_61d(self, p0); /* Direct call parser_prod#ANullExpr#n_kwnull= on <self:Object(ANullExpr)>*/
6241 RET_LABEL:;
6242 }
6243 /* method parser_prod#ANullExpr#n_annotations= for (self: ANullExpr, nullable AAnnotations) */
6244 void parser_prod__ANullExpr__n_annotations_61d(val* self, val* p0) {
6245 val* var_node /* var node: nullable AAnnotations */;
6246 val* var /* : null */;
6247 short int var1 /* : Bool */;
6248 short int var2 /* : Bool */;
6249 val* var_other /* var other: nullable Object */;
6250 short int var4 /* : Bool */;
6251 short int var5 /* : Bool */;
6252 short int var6 /* : Bool */;
6253 var_node = p0;
6254 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_node; /* _n_annotations on <self:ANullExpr> */
6255 var = NULL;
6256 if (var_node == NULL) {
6257 var1 = 0; /* is null */
6258 } else {
6259 var1 = 1; /* arg is null and recv is not */
6260 }
6261 if (0) {
6262 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AAnnotations> */
6263 var_other = var;
6264 {
6265 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AAnnotations(AAnnotations)>*/;
6266 var4 = var5;
6267 }
6268 var6 = !var4;
6269 var2 = var6;
6270 goto RET_LABEL3;
6271 RET_LABEL3:(void)0;
6272 }
6273 var1 = var2;
6274 }
6275 if (var1){
6276 {
6277 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AAnnotations(AAnnotations)> */
6278 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AAnnotations(AAnnotations)> */
6279 RET_LABEL7:(void)0;
6280 }
6281 }
6282 } else {
6283 }
6284 RET_LABEL:;
6285 }
6286 /* method parser_prod#ANullExpr#n_annotations= for (self: Object, nullable AAnnotations) */
6287 void VIRTUAL_parser_prod__ANullExpr__n_annotations_61d(val* self, val* p0) {
6288 parser_prod__ANullExpr__n_annotations_61d(self, p0); /* Direct call parser_prod#ANullExpr#n_annotations= on <self:Object(ANullExpr)>*/
6289 RET_LABEL:;
6290 }
6291 /* method parser_prod#ANullExpr#visit_all for (self: ANullExpr, Visitor) */
6292 void parser_prod__ANullExpr__visit_all(val* self, val* p0) {
6293 val* var_v /* var v: Visitor */;
6294 val* var /* : TKwnull */;
6295 val* var1 /* : nullable AAnnotations */;
6296 var_v = p0;
6297 var = self->attrs[COLOR_parser_nodes__ANullExpr___n_kwnull].val; /* _n_kwnull on <self:ANullExpr> */
6298 if (unlikely(var == NULL)) {
6299 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwnull");
6300 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5313);
6301 show_backtrace(1);
6302 }
6303 {
6304 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6305 }
6306 var1 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:ANullExpr> */
6307 {
6308 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6309 }
6310 RET_LABEL:;
6311 }
6312 /* method parser_prod#ANullExpr#visit_all for (self: Object, Visitor) */
6313 void VIRTUAL_parser_prod__ANullExpr__visit_all(val* self, val* p0) {
6314 parser_prod__ANullExpr__visit_all(self, p0); /* Direct call parser_prod#ANullExpr#visit_all on <self:Object(ANullExpr)>*/
6315 RET_LABEL:;
6316 }
6317 /* method parser_prod#ADecIntExpr#init_adecintexpr for (self: ADecIntExpr, nullable TNumber, nullable AAnnotations) */
6318 void parser_prod__ADecIntExpr__init_adecintexpr(val* self, val* p0, val* p1) {
6319 val* var_n_number /* var n_number: nullable TNumber */;
6320 val* var_n_annotations /* var n_annotations: nullable AAnnotations */;
6321 val* var /* : null */;
6322 short int var2 /* : Bool */;
6323 short int var3 /* : Bool */;
6324 val* var_other /* var other: nullable Object */;
6325 short int var5 /* : Bool */;
6326 short int var6 /* : Bool */;
6327 short int var7 /* : Bool */;
6328 var_n_number = p0;
6329 var_n_annotations = p1;
6330 if (unlikely(var_n_number == NULL)) {
6331 PRINT_ERROR("Runtime error: %s", "Cast failed");
6332 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5323);
6333 show_backtrace(1);
6334 }
6335 self->attrs[COLOR_parser_nodes__ADecIntExpr___n_number].val = var_n_number; /* _n_number on <self:ADecIntExpr> */
6336 if (var_n_number == NULL) {
6337 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6338 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5324);
6339 show_backtrace(1);
6340 } else {
6341 { /* Inline parser_nodes#ANode#parent= (var_n_number,self) on <var_n_number:nullable TNumber> */
6342 if (unlikely(var_n_number == NULL)) {
6343 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6344 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
6345 show_backtrace(1);
6346 }
6347 var_n_number->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_number:nullable TNumber> */
6348 RET_LABEL1:(void)0;
6349 }
6350 }
6351 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:ADecIntExpr> */
6352 var = NULL;
6353 if (var_n_annotations == NULL) {
6354 var2 = 0; /* is null */
6355 } else {
6356 var2 = 1; /* arg is null and recv is not */
6357 }
6358 if (0) {
6359 { /* Inline kernel#Object#!= (var_n_annotations,var) on <var_n_annotations:nullable AAnnotations> */
6360 var_other = var;
6361 {
6362 var6 = ((short int (*)(val*, val*))(var_n_annotations->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_annotations, var_other) /* == on <var_n_annotations:nullable AAnnotations(AAnnotations)>*/;
6363 var5 = var6;
6364 }
6365 var7 = !var5;
6366 var3 = var7;
6367 goto RET_LABEL4;
6368 RET_LABEL4:(void)0;
6369 }
6370 var2 = var3;
6371 }
6372 if (var2){
6373 {
6374 { /* Inline parser_nodes#ANode#parent= (var_n_annotations,self) on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
6375 var_n_annotations->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
6376 RET_LABEL8:(void)0;
6377 }
6378 }
6379 } else {
6380 }
6381 RET_LABEL:;
6382 }
6383 /* method parser_prod#ADecIntExpr#init_adecintexpr for (self: Object, nullable TNumber, nullable AAnnotations) */
6384 void VIRTUAL_parser_prod__ADecIntExpr__init_adecintexpr(val* self, val* p0, val* p1) {
6385 parser_prod__ADecIntExpr__init_adecintexpr(self, p0, p1); /* Direct call parser_prod#ADecIntExpr#init_adecintexpr on <self:Object(ADecIntExpr)>*/
6386 RET_LABEL:;
6387 }
6388 /* method parser_prod#ADecIntExpr#replace_child for (self: ADecIntExpr, ANode, nullable ANode) */
6389 void parser_prod__ADecIntExpr__replace_child(val* self, val* p0, val* p1) {
6390 val* var_old_child /* var old_child: ANode */;
6391 val* var_new_child /* var new_child: nullable ANode */;
6392 val* var /* : TNumber */;
6393 short int var1 /* : Bool */;
6394 short int var2 /* : Bool */;
6395 val* var_other /* var other: nullable Object */;
6396 short int var4 /* : Bool */;
6397 short int var6 /* : Bool */;
6398 short int var7 /* : Bool */;
6399 int cltype;
6400 int idtype;
6401 const char* var_class_name;
6402 val* var8 /* : nullable AAnnotations */;
6403 short int var9 /* : Bool */;
6404 short int var10 /* : Bool */;
6405 short int var12 /* : Bool */;
6406 short int var14 /* : Bool */;
6407 short int var15 /* : Bool */;
6408 int cltype16;
6409 int idtype17;
6410 const char* var_class_name18;
6411 var_old_child = p0;
6412 var_new_child = p1;
6413 var = self->attrs[COLOR_parser_nodes__ADecIntExpr___n_number].val; /* _n_number on <self:ADecIntExpr> */
6414 if (unlikely(var == NULL)) {
6415 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_number");
6416 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5331);
6417 show_backtrace(1);
6418 }
6419 {
6420 { /* Inline kernel#Object#== (var,var_old_child) on <var:TNumber> */
6421 var_other = var_old_child;
6422 {
6423 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TNumber> */
6424 var6 = var == var_other;
6425 var4 = var6;
6426 goto RET_LABEL5;
6427 RET_LABEL5:(void)0;
6428 }
6429 }
6430 var2 = var4;
6431 goto RET_LABEL3;
6432 RET_LABEL3:(void)0;
6433 }
6434 var1 = var2;
6435 }
6436 if (var1){
6437 /* <var_new_child:nullable ANode> isa TNumber */
6438 cltype = type_parser_nodes__TNumber.color;
6439 idtype = type_parser_nodes__TNumber.id;
6440 if(var_new_child == NULL) {
6441 var7 = 0;
6442 } else {
6443 if(cltype >= var_new_child->type->table_size) {
6444 var7 = 0;
6445 } else {
6446 var7 = var_new_child->type->type_table[cltype] == idtype;
6447 }
6448 }
6449 if (unlikely(!var7)) {
6450 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
6451 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TNumber", var_class_name);
6452 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5332);
6453 show_backtrace(1);
6454 }
6455 {
6456 parser_prod__ADecIntExpr__n_number_61d(self, var_new_child); /* Direct call parser_prod#ADecIntExpr#n_number= on <self:ADecIntExpr>*/
6457 }
6458 goto RET_LABEL;
6459 } else {
6460 }
6461 var8 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:ADecIntExpr> */
6462 if (var8 == NULL) {
6463 var9 = 0; /* <var_old_child:ANode> cannot be null */
6464 } else {
6465 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:nullable AAnnotations> */
6466 var_other = var_old_child;
6467 {
6468 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:nullable AAnnotations(AAnnotations)> */
6469 var14 = var8 == var_other;
6470 var12 = var14;
6471 goto RET_LABEL13;
6472 RET_LABEL13:(void)0;
6473 }
6474 }
6475 var10 = var12;
6476 goto RET_LABEL11;
6477 RET_LABEL11:(void)0;
6478 }
6479 var9 = var10;
6480 }
6481 if (var9){
6482 /* <var_new_child:nullable ANode> isa nullable AAnnotations */
6483 cltype16 = type_nullable_parser_nodes__AAnnotations.color;
6484 idtype17 = type_nullable_parser_nodes__AAnnotations.id;
6485 if(var_new_child == NULL) {
6486 var15 = 1;
6487 } else {
6488 if(cltype16 >= var_new_child->type->table_size) {
6489 var15 = 0;
6490 } else {
6491 var15 = var_new_child->type->type_table[cltype16] == idtype17;
6492 }
6493 }
6494 if (unlikely(!var15)) {
6495 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
6496 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AAnnotations", var_class_name18);
6497 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5336);
6498 show_backtrace(1);
6499 }
6500 {
6501 parser_prod__ADecIntExpr__n_annotations_61d(self, var_new_child); /* Direct call parser_prod#ADecIntExpr#n_annotations= on <self:ADecIntExpr>*/
6502 }
6503 goto RET_LABEL;
6504 } else {
6505 }
6506 RET_LABEL:;
6507 }
6508 /* method parser_prod#ADecIntExpr#replace_child for (self: Object, ANode, nullable ANode) */
6509 void VIRTUAL_parser_prod__ADecIntExpr__replace_child(val* self, val* p0, val* p1) {
6510 parser_prod__ADecIntExpr__replace_child(self, p0, p1); /* Direct call parser_prod#ADecIntExpr#replace_child on <self:Object(ADecIntExpr)>*/
6511 RET_LABEL:;
6512 }
6513 /* method parser_prod#ADecIntExpr#n_number= for (self: ADecIntExpr, TNumber) */
6514 void parser_prod__ADecIntExpr__n_number_61d(val* self, val* p0) {
6515 val* var_node /* var node: TNumber */;
6516 var_node = p0;
6517 self->attrs[COLOR_parser_nodes__ADecIntExpr___n_number].val = var_node; /* _n_number on <self:ADecIntExpr> */
6518 {
6519 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TNumber> */
6520 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TNumber> */
6521 RET_LABEL1:(void)0;
6522 }
6523 }
6524 RET_LABEL:;
6525 }
6526 /* method parser_prod#ADecIntExpr#n_number= for (self: Object, TNumber) */
6527 void VIRTUAL_parser_prod__ADecIntExpr__n_number_61d(val* self, val* p0) {
6528 parser_prod__ADecIntExpr__n_number_61d(self, p0); /* Direct call parser_prod#ADecIntExpr#n_number= on <self:Object(ADecIntExpr)>*/
6529 RET_LABEL:;
6530 }
6531 /* method parser_prod#ADecIntExpr#n_annotations= for (self: ADecIntExpr, nullable AAnnotations) */
6532 void parser_prod__ADecIntExpr__n_annotations_61d(val* self, val* p0) {
6533 val* var_node /* var node: nullable AAnnotations */;
6534 val* var /* : null */;
6535 short int var1 /* : Bool */;
6536 short int var2 /* : Bool */;
6537 val* var_other /* var other: nullable Object */;
6538 short int var4 /* : Bool */;
6539 short int var5 /* : Bool */;
6540 short int var6 /* : Bool */;
6541 var_node = p0;
6542 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_node; /* _n_annotations on <self:ADecIntExpr> */
6543 var = NULL;
6544 if (var_node == NULL) {
6545 var1 = 0; /* is null */
6546 } else {
6547 var1 = 1; /* arg is null and recv is not */
6548 }
6549 if (0) {
6550 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AAnnotations> */
6551 var_other = var;
6552 {
6553 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AAnnotations(AAnnotations)>*/;
6554 var4 = var5;
6555 }
6556 var6 = !var4;
6557 var2 = var6;
6558 goto RET_LABEL3;
6559 RET_LABEL3:(void)0;
6560 }
6561 var1 = var2;
6562 }
6563 if (var1){
6564 {
6565 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AAnnotations(AAnnotations)> */
6566 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AAnnotations(AAnnotations)> */
6567 RET_LABEL7:(void)0;
6568 }
6569 }
6570 } else {
6571 }
6572 RET_LABEL:;
6573 }
6574 /* method parser_prod#ADecIntExpr#n_annotations= for (self: Object, nullable AAnnotations) */
6575 void VIRTUAL_parser_prod__ADecIntExpr__n_annotations_61d(val* self, val* p0) {
6576 parser_prod__ADecIntExpr__n_annotations_61d(self, p0); /* Direct call parser_prod#ADecIntExpr#n_annotations= on <self:Object(ADecIntExpr)>*/
6577 RET_LABEL:;
6578 }
6579 /* method parser_prod#ADecIntExpr#visit_all for (self: ADecIntExpr, Visitor) */
6580 void parser_prod__ADecIntExpr__visit_all(val* self, val* p0) {
6581 val* var_v /* var v: Visitor */;
6582 val* var /* : TNumber */;
6583 val* var1 /* : nullable AAnnotations */;
6584 var_v = p0;
6585 var = self->attrs[COLOR_parser_nodes__ADecIntExpr___n_number].val; /* _n_number on <self:ADecIntExpr> */
6586 if (unlikely(var == NULL)) {
6587 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_number");
6588 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5355);
6589 show_backtrace(1);
6590 }
6591 {
6592 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6593 }
6594 var1 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:ADecIntExpr> */
6595 {
6596 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6597 }
6598 RET_LABEL:;
6599 }
6600 /* method parser_prod#ADecIntExpr#visit_all for (self: Object, Visitor) */
6601 void VIRTUAL_parser_prod__ADecIntExpr__visit_all(val* self, val* p0) {
6602 parser_prod__ADecIntExpr__visit_all(self, p0); /* Direct call parser_prod#ADecIntExpr#visit_all on <self:Object(ADecIntExpr)>*/
6603 RET_LABEL:;
6604 }
6605 /* method parser_prod#AHexIntExpr#init_ahexintexpr for (self: AHexIntExpr, nullable THexNumber, nullable AAnnotations) */
6606 void parser_prod__AHexIntExpr__init_ahexintexpr(val* self, val* p0, val* p1) {
6607 val* var_n_hex_number /* var n_hex_number: nullable THexNumber */;
6608 val* var_n_annotations /* var n_annotations: nullable AAnnotations */;
6609 val* var /* : null */;
6610 short int var2 /* : Bool */;
6611 short int var3 /* : Bool */;
6612 val* var_other /* var other: nullable Object */;
6613 short int var5 /* : Bool */;
6614 short int var6 /* : Bool */;
6615 short int var7 /* : Bool */;
6616 var_n_hex_number = p0;
6617 var_n_annotations = p1;
6618 if (unlikely(var_n_hex_number == NULL)) {
6619 PRINT_ERROR("Runtime error: %s", "Cast failed");
6620 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5365);
6621 show_backtrace(1);
6622 }
6623 self->attrs[COLOR_parser_nodes__AHexIntExpr___n_hex_number].val = var_n_hex_number; /* _n_hex_number on <self:AHexIntExpr> */
6624 if (var_n_hex_number == NULL) {
6625 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6626 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5366);
6627 show_backtrace(1);
6628 } else {
6629 { /* Inline parser_nodes#ANode#parent= (var_n_hex_number,self) on <var_n_hex_number:nullable THexNumber> */
6630 if (unlikely(var_n_hex_number == NULL)) {
6631 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6632 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
6633 show_backtrace(1);
6634 }
6635 var_n_hex_number->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_hex_number:nullable THexNumber> */
6636 RET_LABEL1:(void)0;
6637 }
6638 }
6639 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:AHexIntExpr> */
6640 var = NULL;
6641 if (var_n_annotations == NULL) {
6642 var2 = 0; /* is null */
6643 } else {
6644 var2 = 1; /* arg is null and recv is not */
6645 }
6646 if (0) {
6647 { /* Inline kernel#Object#!= (var_n_annotations,var) on <var_n_annotations:nullable AAnnotations> */
6648 var_other = var;
6649 {
6650 var6 = ((short int (*)(val*, val*))(var_n_annotations->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_annotations, var_other) /* == on <var_n_annotations:nullable AAnnotations(AAnnotations)>*/;
6651 var5 = var6;
6652 }
6653 var7 = !var5;
6654 var3 = var7;
6655 goto RET_LABEL4;
6656 RET_LABEL4:(void)0;
6657 }
6658 var2 = var3;
6659 }
6660 if (var2){
6661 {
6662 { /* Inline parser_nodes#ANode#parent= (var_n_annotations,self) on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
6663 var_n_annotations->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
6664 RET_LABEL8:(void)0;
6665 }
6666 }
6667 } else {
6668 }
6669 RET_LABEL:;
6670 }
6671 /* method parser_prod#AHexIntExpr#init_ahexintexpr for (self: Object, nullable THexNumber, nullable AAnnotations) */
6672 void VIRTUAL_parser_prod__AHexIntExpr__init_ahexintexpr(val* self, val* p0, val* p1) {
6673 parser_prod__AHexIntExpr__init_ahexintexpr(self, p0, p1); /* Direct call parser_prod#AHexIntExpr#init_ahexintexpr on <self:Object(AHexIntExpr)>*/
6674 RET_LABEL:;
6675 }
6676 /* method parser_prod#AHexIntExpr#replace_child for (self: AHexIntExpr, ANode, nullable ANode) */
6677 void parser_prod__AHexIntExpr__replace_child(val* self, val* p0, val* p1) {
6678 val* var_old_child /* var old_child: ANode */;
6679 val* var_new_child /* var new_child: nullable ANode */;
6680 val* var /* : THexNumber */;
6681 short int var1 /* : Bool */;
6682 short int var2 /* : Bool */;
6683 val* var_other /* var other: nullable Object */;
6684 short int var4 /* : Bool */;
6685 short int var6 /* : Bool */;
6686 short int var7 /* : Bool */;
6687 int cltype;
6688 int idtype;
6689 const char* var_class_name;
6690 val* var8 /* : nullable AAnnotations */;
6691 short int var9 /* : Bool */;
6692 short int var10 /* : Bool */;
6693 short int var12 /* : Bool */;
6694 short int var14 /* : Bool */;
6695 short int var15 /* : Bool */;
6696 int cltype16;
6697 int idtype17;
6698 const char* var_class_name18;
6699 var_old_child = p0;
6700 var_new_child = p1;
6701 var = self->attrs[COLOR_parser_nodes__AHexIntExpr___n_hex_number].val; /* _n_hex_number on <self:AHexIntExpr> */
6702 if (unlikely(var == NULL)) {
6703 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_hex_number");
6704 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5373);
6705 show_backtrace(1);
6706 }
6707 {
6708 { /* Inline kernel#Object#== (var,var_old_child) on <var:THexNumber> */
6709 var_other = var_old_child;
6710 {
6711 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:THexNumber> */
6712 var6 = var == var_other;
6713 var4 = var6;
6714 goto RET_LABEL5;
6715 RET_LABEL5:(void)0;
6716 }
6717 }
6718 var2 = var4;
6719 goto RET_LABEL3;
6720 RET_LABEL3:(void)0;
6721 }
6722 var1 = var2;
6723 }
6724 if (var1){
6725 /* <var_new_child:nullable ANode> isa THexNumber */
6726 cltype = type_parser_nodes__THexNumber.color;
6727 idtype = type_parser_nodes__THexNumber.id;
6728 if(var_new_child == NULL) {
6729 var7 = 0;
6730 } else {
6731 if(cltype >= var_new_child->type->table_size) {
6732 var7 = 0;
6733 } else {
6734 var7 = var_new_child->type->type_table[cltype] == idtype;
6735 }
6736 }
6737 if (unlikely(!var7)) {
6738 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
6739 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "THexNumber", var_class_name);
6740 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5374);
6741 show_backtrace(1);
6742 }
6743 {
6744 parser_prod__AHexIntExpr__n_hex_number_61d(self, var_new_child); /* Direct call parser_prod#AHexIntExpr#n_hex_number= on <self:AHexIntExpr>*/
6745 }
6746 goto RET_LABEL;
6747 } else {
6748 }
6749 var8 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AHexIntExpr> */
6750 if (var8 == NULL) {
6751 var9 = 0; /* <var_old_child:ANode> cannot be null */
6752 } else {
6753 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:nullable AAnnotations> */
6754 var_other = var_old_child;
6755 {
6756 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:nullable AAnnotations(AAnnotations)> */
6757 var14 = var8 == var_other;
6758 var12 = var14;
6759 goto RET_LABEL13;
6760 RET_LABEL13:(void)0;
6761 }
6762 }
6763 var10 = var12;
6764 goto RET_LABEL11;
6765 RET_LABEL11:(void)0;
6766 }
6767 var9 = var10;
6768 }
6769 if (var9){
6770 /* <var_new_child:nullable ANode> isa nullable AAnnotations */
6771 cltype16 = type_nullable_parser_nodes__AAnnotations.color;
6772 idtype17 = type_nullable_parser_nodes__AAnnotations.id;
6773 if(var_new_child == NULL) {
6774 var15 = 1;
6775 } else {
6776 if(cltype16 >= var_new_child->type->table_size) {
6777 var15 = 0;
6778 } else {
6779 var15 = var_new_child->type->type_table[cltype16] == idtype17;
6780 }
6781 }
6782 if (unlikely(!var15)) {
6783 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
6784 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AAnnotations", var_class_name18);
6785 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5378);
6786 show_backtrace(1);
6787 }
6788 {
6789 parser_prod__AHexIntExpr__n_annotations_61d(self, var_new_child); /* Direct call parser_prod#AHexIntExpr#n_annotations= on <self:AHexIntExpr>*/
6790 }
6791 goto RET_LABEL;
6792 } else {
6793 }
6794 RET_LABEL:;
6795 }
6796 /* method parser_prod#AHexIntExpr#replace_child for (self: Object, ANode, nullable ANode) */
6797 void VIRTUAL_parser_prod__AHexIntExpr__replace_child(val* self, val* p0, val* p1) {
6798 parser_prod__AHexIntExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AHexIntExpr#replace_child on <self:Object(AHexIntExpr)>*/
6799 RET_LABEL:;
6800 }
6801 /* method parser_prod#AHexIntExpr#n_hex_number= for (self: AHexIntExpr, THexNumber) */
6802 void parser_prod__AHexIntExpr__n_hex_number_61d(val* self, val* p0) {
6803 val* var_node /* var node: THexNumber */;
6804 var_node = p0;
6805 self->attrs[COLOR_parser_nodes__AHexIntExpr___n_hex_number].val = var_node; /* _n_hex_number on <self:AHexIntExpr> */
6806 {
6807 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:THexNumber> */
6808 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:THexNumber> */
6809 RET_LABEL1:(void)0;
6810 }
6811 }
6812 RET_LABEL:;
6813 }
6814 /* method parser_prod#AHexIntExpr#n_hex_number= for (self: Object, THexNumber) */
6815 void VIRTUAL_parser_prod__AHexIntExpr__n_hex_number_61d(val* self, val* p0) {
6816 parser_prod__AHexIntExpr__n_hex_number_61d(self, p0); /* Direct call parser_prod#AHexIntExpr#n_hex_number= on <self:Object(AHexIntExpr)>*/
6817 RET_LABEL:;
6818 }
6819 /* method parser_prod#AHexIntExpr#n_annotations= for (self: AHexIntExpr, nullable AAnnotations) */
6820 void parser_prod__AHexIntExpr__n_annotations_61d(val* self, val* p0) {
6821 val* var_node /* var node: nullable AAnnotations */;
6822 val* var /* : null */;
6823 short int var1 /* : Bool */;
6824 short int var2 /* : Bool */;
6825 val* var_other /* var other: nullable Object */;
6826 short int var4 /* : Bool */;
6827 short int var5 /* : Bool */;
6828 short int var6 /* : Bool */;
6829 var_node = p0;
6830 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_node; /* _n_annotations on <self:AHexIntExpr> */
6831 var = NULL;
6832 if (var_node == NULL) {
6833 var1 = 0; /* is null */
6834 } else {
6835 var1 = 1; /* arg is null and recv is not */
6836 }
6837 if (0) {
6838 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AAnnotations> */
6839 var_other = var;
6840 {
6841 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AAnnotations(AAnnotations)>*/;
6842 var4 = var5;
6843 }
6844 var6 = !var4;
6845 var2 = var6;
6846 goto RET_LABEL3;
6847 RET_LABEL3:(void)0;
6848 }
6849 var1 = var2;
6850 }
6851 if (var1){
6852 {
6853 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AAnnotations(AAnnotations)> */
6854 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AAnnotations(AAnnotations)> */
6855 RET_LABEL7:(void)0;
6856 }
6857 }
6858 } else {
6859 }
6860 RET_LABEL:;
6861 }
6862 /* method parser_prod#AHexIntExpr#n_annotations= for (self: Object, nullable AAnnotations) */
6863 void VIRTUAL_parser_prod__AHexIntExpr__n_annotations_61d(val* self, val* p0) {
6864 parser_prod__AHexIntExpr__n_annotations_61d(self, p0); /* Direct call parser_prod#AHexIntExpr#n_annotations= on <self:Object(AHexIntExpr)>*/
6865 RET_LABEL:;
6866 }
6867 /* method parser_prod#AHexIntExpr#visit_all for (self: AHexIntExpr, Visitor) */
6868 void parser_prod__AHexIntExpr__visit_all(val* self, val* p0) {
6869 val* var_v /* var v: Visitor */;
6870 val* var /* : THexNumber */;
6871 val* var1 /* : nullable AAnnotations */;
6872 var_v = p0;
6873 var = self->attrs[COLOR_parser_nodes__AHexIntExpr___n_hex_number].val; /* _n_hex_number on <self:AHexIntExpr> */
6874 if (unlikely(var == NULL)) {
6875 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_hex_number");
6876 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5397);
6877 show_backtrace(1);
6878 }
6879 {
6880 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6881 }
6882 var1 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AHexIntExpr> */
6883 {
6884 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6885 }
6886 RET_LABEL:;
6887 }
6888 /* method parser_prod#AHexIntExpr#visit_all for (self: Object, Visitor) */
6889 void VIRTUAL_parser_prod__AHexIntExpr__visit_all(val* self, val* p0) {
6890 parser_prod__AHexIntExpr__visit_all(self, p0); /* Direct call parser_prod#AHexIntExpr#visit_all on <self:Object(AHexIntExpr)>*/
6891 RET_LABEL:;
6892 }
6893 /* method parser_prod#AFloatExpr#init_afloatexpr for (self: AFloatExpr, nullable TFloat, nullable AAnnotations) */
6894 void parser_prod__AFloatExpr__init_afloatexpr(val* self, val* p0, val* p1) {
6895 val* var_n_float /* var n_float: nullable TFloat */;
6896 val* var_n_annotations /* var n_annotations: nullable AAnnotations */;
6897 val* var /* : null */;
6898 short int var2 /* : Bool */;
6899 short int var3 /* : Bool */;
6900 val* var_other /* var other: nullable Object */;
6901 short int var5 /* : Bool */;
6902 short int var6 /* : Bool */;
6903 short int var7 /* : Bool */;
6904 var_n_float = p0;
6905 var_n_annotations = p1;
6906 if (unlikely(var_n_float == NULL)) {
6907 PRINT_ERROR("Runtime error: %s", "Cast failed");
6908 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5407);
6909 show_backtrace(1);
6910 }
6911 self->attrs[COLOR_parser_nodes__AFloatExpr___n_float].val = var_n_float; /* _n_float on <self:AFloatExpr> */
6912 if (var_n_float == NULL) {
6913 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6914 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5408);
6915 show_backtrace(1);
6916 } else {
6917 { /* Inline parser_nodes#ANode#parent= (var_n_float,self) on <var_n_float:nullable TFloat> */
6918 if (unlikely(var_n_float == NULL)) {
6919 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6920 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
6921 show_backtrace(1);
6922 }
6923 var_n_float->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_float:nullable TFloat> */
6924 RET_LABEL1:(void)0;
6925 }
6926 }
6927 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:AFloatExpr> */
6928 var = NULL;
6929 if (var_n_annotations == NULL) {
6930 var2 = 0; /* is null */
6931 } else {
6932 var2 = 1; /* arg is null and recv is not */
6933 }
6934 if (0) {
6935 { /* Inline kernel#Object#!= (var_n_annotations,var) on <var_n_annotations:nullable AAnnotations> */
6936 var_other = var;
6937 {
6938 var6 = ((short int (*)(val*, val*))(var_n_annotations->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_annotations, var_other) /* == on <var_n_annotations:nullable AAnnotations(AAnnotations)>*/;
6939 var5 = var6;
6940 }
6941 var7 = !var5;
6942 var3 = var7;
6943 goto RET_LABEL4;
6944 RET_LABEL4:(void)0;
6945 }
6946 var2 = var3;
6947 }
6948 if (var2){
6949 {
6950 { /* Inline parser_nodes#ANode#parent= (var_n_annotations,self) on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
6951 var_n_annotations->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
6952 RET_LABEL8:(void)0;
6953 }
6954 }
6955 } else {
6956 }
6957 RET_LABEL:;
6958 }
6959 /* method parser_prod#AFloatExpr#init_afloatexpr for (self: Object, nullable TFloat, nullable AAnnotations) */
6960 void VIRTUAL_parser_prod__AFloatExpr__init_afloatexpr(val* self, val* p0, val* p1) {
6961 parser_prod__AFloatExpr__init_afloatexpr(self, p0, p1); /* Direct call parser_prod#AFloatExpr#init_afloatexpr on <self:Object(AFloatExpr)>*/
6962 RET_LABEL:;
6963 }
6964 /* method parser_prod#AFloatExpr#replace_child for (self: AFloatExpr, ANode, nullable ANode) */
6965 void parser_prod__AFloatExpr__replace_child(val* self, val* p0, val* p1) {
6966 val* var_old_child /* var old_child: ANode */;
6967 val* var_new_child /* var new_child: nullable ANode */;
6968 val* var /* : TFloat */;
6969 short int var1 /* : Bool */;
6970 short int var2 /* : Bool */;
6971 val* var_other /* var other: nullable Object */;
6972 short int var4 /* : Bool */;
6973 short int var6 /* : Bool */;
6974 short int var7 /* : Bool */;
6975 int cltype;
6976 int idtype;
6977 const char* var_class_name;
6978 val* var8 /* : nullable AAnnotations */;
6979 short int var9 /* : Bool */;
6980 short int var10 /* : Bool */;
6981 short int var12 /* : Bool */;
6982 short int var14 /* : Bool */;
6983 short int var15 /* : Bool */;
6984 int cltype16;
6985 int idtype17;
6986 const char* var_class_name18;
6987 var_old_child = p0;
6988 var_new_child = p1;
6989 var = self->attrs[COLOR_parser_nodes__AFloatExpr___n_float].val; /* _n_float on <self:AFloatExpr> */
6990 if (unlikely(var == NULL)) {
6991 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_float");
6992 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5415);
6993 show_backtrace(1);
6994 }
6995 {
6996 { /* Inline kernel#Object#== (var,var_old_child) on <var:TFloat> */
6997 var_other = var_old_child;
6998 {
6999 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TFloat> */
7000 var6 = var == var_other;
7001 var4 = var6;
7002 goto RET_LABEL5;
7003 RET_LABEL5:(void)0;
7004 }
7005 }
7006 var2 = var4;
7007 goto RET_LABEL3;
7008 RET_LABEL3:(void)0;
7009 }
7010 var1 = var2;
7011 }
7012 if (var1){
7013 /* <var_new_child:nullable ANode> isa TFloat */
7014 cltype = type_parser_nodes__TFloat.color;
7015 idtype = type_parser_nodes__TFloat.id;
7016 if(var_new_child == NULL) {
7017 var7 = 0;
7018 } else {
7019 if(cltype >= var_new_child->type->table_size) {
7020 var7 = 0;
7021 } else {
7022 var7 = var_new_child->type->type_table[cltype] == idtype;
7023 }
7024 }
7025 if (unlikely(!var7)) {
7026 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
7027 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TFloat", var_class_name);
7028 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5416);
7029 show_backtrace(1);
7030 }
7031 {
7032 parser_prod__AFloatExpr__n_float_61d(self, var_new_child); /* Direct call parser_prod#AFloatExpr#n_float= on <self:AFloatExpr>*/
7033 }
7034 goto RET_LABEL;
7035 } else {
7036 }
7037 var8 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AFloatExpr> */
7038 if (var8 == NULL) {
7039 var9 = 0; /* <var_old_child:ANode> cannot be null */
7040 } else {
7041 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:nullable AAnnotations> */
7042 var_other = var_old_child;
7043 {
7044 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:nullable AAnnotations(AAnnotations)> */
7045 var14 = var8 == var_other;
7046 var12 = var14;
7047 goto RET_LABEL13;
7048 RET_LABEL13:(void)0;
7049 }
7050 }
7051 var10 = var12;
7052 goto RET_LABEL11;
7053 RET_LABEL11:(void)0;
7054 }
7055 var9 = var10;
7056 }
7057 if (var9){
7058 /* <var_new_child:nullable ANode> isa nullable AAnnotations */
7059 cltype16 = type_nullable_parser_nodes__AAnnotations.color;
7060 idtype17 = type_nullable_parser_nodes__AAnnotations.id;
7061 if(var_new_child == NULL) {
7062 var15 = 1;
7063 } else {
7064 if(cltype16 >= var_new_child->type->table_size) {
7065 var15 = 0;
7066 } else {
7067 var15 = var_new_child->type->type_table[cltype16] == idtype17;
7068 }
7069 }
7070 if (unlikely(!var15)) {
7071 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
7072 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AAnnotations", var_class_name18);
7073 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5420);
7074 show_backtrace(1);
7075 }
7076 {
7077 parser_prod__AFloatExpr__n_annotations_61d(self, var_new_child); /* Direct call parser_prod#AFloatExpr#n_annotations= on <self:AFloatExpr>*/
7078 }
7079 goto RET_LABEL;
7080 } else {
7081 }
7082 RET_LABEL:;
7083 }
7084 /* method parser_prod#AFloatExpr#replace_child for (self: Object, ANode, nullable ANode) */
7085 void VIRTUAL_parser_prod__AFloatExpr__replace_child(val* self, val* p0, val* p1) {
7086 parser_prod__AFloatExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AFloatExpr#replace_child on <self:Object(AFloatExpr)>*/
7087 RET_LABEL:;
7088 }
7089 /* method parser_prod#AFloatExpr#n_float= for (self: AFloatExpr, TFloat) */
7090 void parser_prod__AFloatExpr__n_float_61d(val* self, val* p0) {
7091 val* var_node /* var node: TFloat */;
7092 var_node = p0;
7093 self->attrs[COLOR_parser_nodes__AFloatExpr___n_float].val = var_node; /* _n_float on <self:AFloatExpr> */
7094 {
7095 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TFloat> */
7096 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TFloat> */
7097 RET_LABEL1:(void)0;
7098 }
7099 }
7100 RET_LABEL:;
7101 }
7102 /* method parser_prod#AFloatExpr#n_float= for (self: Object, TFloat) */
7103 void VIRTUAL_parser_prod__AFloatExpr__n_float_61d(val* self, val* p0) {
7104 parser_prod__AFloatExpr__n_float_61d(self, p0); /* Direct call parser_prod#AFloatExpr#n_float= on <self:Object(AFloatExpr)>*/
7105 RET_LABEL:;
7106 }
7107 /* method parser_prod#AFloatExpr#n_annotations= for (self: AFloatExpr, nullable AAnnotations) */
7108 void parser_prod__AFloatExpr__n_annotations_61d(val* self, val* p0) {
7109 val* var_node /* var node: nullable AAnnotations */;
7110 val* var /* : null */;
7111 short int var1 /* : Bool */;
7112 short int var2 /* : Bool */;
7113 val* var_other /* var other: nullable Object */;
7114 short int var4 /* : Bool */;
7115 short int var5 /* : Bool */;
7116 short int var6 /* : Bool */;
7117 var_node = p0;
7118 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_node; /* _n_annotations on <self:AFloatExpr> */
7119 var = NULL;
7120 if (var_node == NULL) {
7121 var1 = 0; /* is null */
7122 } else {
7123 var1 = 1; /* arg is null and recv is not */
7124 }
7125 if (0) {
7126 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AAnnotations> */
7127 var_other = var;
7128 {
7129 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AAnnotations(AAnnotations)>*/;
7130 var4 = var5;
7131 }
7132 var6 = !var4;
7133 var2 = var6;
7134 goto RET_LABEL3;
7135 RET_LABEL3:(void)0;
7136 }
7137 var1 = var2;
7138 }
7139 if (var1){
7140 {
7141 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AAnnotations(AAnnotations)> */
7142 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AAnnotations(AAnnotations)> */
7143 RET_LABEL7:(void)0;
7144 }
7145 }
7146 } else {
7147 }
7148 RET_LABEL:;
7149 }
7150 /* method parser_prod#AFloatExpr#n_annotations= for (self: Object, nullable AAnnotations) */
7151 void VIRTUAL_parser_prod__AFloatExpr__n_annotations_61d(val* self, val* p0) {
7152 parser_prod__AFloatExpr__n_annotations_61d(self, p0); /* Direct call parser_prod#AFloatExpr#n_annotations= on <self:Object(AFloatExpr)>*/
7153 RET_LABEL:;
7154 }
7155 /* method parser_prod#AFloatExpr#visit_all for (self: AFloatExpr, Visitor) */
7156 void parser_prod__AFloatExpr__visit_all(val* self, val* p0) {
7157 val* var_v /* var v: Visitor */;
7158 val* var /* : TFloat */;
7159 val* var1 /* : nullable AAnnotations */;
7160 var_v = p0;
7161 var = self->attrs[COLOR_parser_nodes__AFloatExpr___n_float].val; /* _n_float on <self:AFloatExpr> */
7162 if (unlikely(var == NULL)) {
7163 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_float");
7164 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5439);
7165 show_backtrace(1);
7166 }
7167 {
7168 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7169 }
7170 var1 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AFloatExpr> */
7171 {
7172 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7173 }
7174 RET_LABEL:;
7175 }
7176 /* method parser_prod#AFloatExpr#visit_all for (self: Object, Visitor) */
7177 void VIRTUAL_parser_prod__AFloatExpr__visit_all(val* self, val* p0) {
7178 parser_prod__AFloatExpr__visit_all(self, p0); /* Direct call parser_prod#AFloatExpr#visit_all on <self:Object(AFloatExpr)>*/
7179 RET_LABEL:;
7180 }
7181 /* method parser_prod#ACharExpr#init_acharexpr for (self: ACharExpr, nullable TChar, nullable AAnnotations) */
7182 void parser_prod__ACharExpr__init_acharexpr(val* self, val* p0, val* p1) {
7183 val* var_n_char /* var n_char: nullable TChar */;
7184 val* var_n_annotations /* var n_annotations: nullable AAnnotations */;
7185 val* var /* : null */;
7186 short int var2 /* : Bool */;
7187 short int var3 /* : Bool */;
7188 val* var_other /* var other: nullable Object */;
7189 short int var5 /* : Bool */;
7190 short int var6 /* : Bool */;
7191 short int var7 /* : Bool */;
7192 var_n_char = p0;
7193 var_n_annotations = p1;
7194 if (unlikely(var_n_char == NULL)) {
7195 PRINT_ERROR("Runtime error: %s", "Cast failed");
7196 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5449);
7197 show_backtrace(1);
7198 }
7199 self->attrs[COLOR_parser_nodes__ACharExpr___n_char].val = var_n_char; /* _n_char on <self:ACharExpr> */
7200 if (var_n_char == NULL) {
7201 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7202 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5450);
7203 show_backtrace(1);
7204 } else {
7205 { /* Inline parser_nodes#ANode#parent= (var_n_char,self) on <var_n_char:nullable TChar> */
7206 if (unlikely(var_n_char == NULL)) {
7207 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7208 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
7209 show_backtrace(1);
7210 }
7211 var_n_char->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_char:nullable TChar> */
7212 RET_LABEL1:(void)0;
7213 }
7214 }
7215 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:ACharExpr> */
7216 var = NULL;
7217 if (var_n_annotations == NULL) {
7218 var2 = 0; /* is null */
7219 } else {
7220 var2 = 1; /* arg is null and recv is not */
7221 }
7222 if (0) {
7223 { /* Inline kernel#Object#!= (var_n_annotations,var) on <var_n_annotations:nullable AAnnotations> */
7224 var_other = var;
7225 {
7226 var6 = ((short int (*)(val*, val*))(var_n_annotations->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_annotations, var_other) /* == on <var_n_annotations:nullable AAnnotations(AAnnotations)>*/;
7227 var5 = var6;
7228 }
7229 var7 = !var5;
7230 var3 = var7;
7231 goto RET_LABEL4;
7232 RET_LABEL4:(void)0;
7233 }
7234 var2 = var3;
7235 }
7236 if (var2){
7237 {
7238 { /* Inline parser_nodes#ANode#parent= (var_n_annotations,self) on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
7239 var_n_annotations->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
7240 RET_LABEL8:(void)0;
7241 }
7242 }
7243 } else {
7244 }
7245 RET_LABEL:;
7246 }
7247 /* method parser_prod#ACharExpr#init_acharexpr for (self: Object, nullable TChar, nullable AAnnotations) */
7248 void VIRTUAL_parser_prod__ACharExpr__init_acharexpr(val* self, val* p0, val* p1) {
7249 parser_prod__ACharExpr__init_acharexpr(self, p0, p1); /* Direct call parser_prod#ACharExpr#init_acharexpr on <self:Object(ACharExpr)>*/
7250 RET_LABEL:;
7251 }
7252 /* method parser_prod#ACharExpr#replace_child for (self: ACharExpr, ANode, nullable ANode) */
7253 void parser_prod__ACharExpr__replace_child(val* self, val* p0, val* p1) {
7254 val* var_old_child /* var old_child: ANode */;
7255 val* var_new_child /* var new_child: nullable ANode */;
7256 val* var /* : TChar */;
7257 short int var1 /* : Bool */;
7258 short int var2 /* : Bool */;
7259 val* var_other /* var other: nullable Object */;
7260 short int var4 /* : Bool */;
7261 short int var6 /* : Bool */;
7262 short int var7 /* : Bool */;
7263 int cltype;
7264 int idtype;
7265 const char* var_class_name;
7266 val* var8 /* : nullable AAnnotations */;
7267 short int var9 /* : Bool */;
7268 short int var10 /* : Bool */;
7269 short int var12 /* : Bool */;
7270 short int var14 /* : Bool */;
7271 short int var15 /* : Bool */;
7272 int cltype16;
7273 int idtype17;
7274 const char* var_class_name18;
7275 var_old_child = p0;
7276 var_new_child = p1;
7277 var = self->attrs[COLOR_parser_nodes__ACharExpr___n_char].val; /* _n_char on <self:ACharExpr> */
7278 if (unlikely(var == NULL)) {
7279 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_char");
7280 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5457);
7281 show_backtrace(1);
7282 }
7283 {
7284 { /* Inline kernel#Object#== (var,var_old_child) on <var:TChar> */
7285 var_other = var_old_child;
7286 {
7287 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TChar> */
7288 var6 = var == var_other;
7289 var4 = var6;
7290 goto RET_LABEL5;
7291 RET_LABEL5:(void)0;
7292 }
7293 }
7294 var2 = var4;
7295 goto RET_LABEL3;
7296 RET_LABEL3:(void)0;
7297 }
7298 var1 = var2;
7299 }
7300 if (var1){
7301 /* <var_new_child:nullable ANode> isa TChar */
7302 cltype = type_parser_nodes__TChar.color;
7303 idtype = type_parser_nodes__TChar.id;
7304 if(var_new_child == NULL) {
7305 var7 = 0;
7306 } else {
7307 if(cltype >= var_new_child->type->table_size) {
7308 var7 = 0;
7309 } else {
7310 var7 = var_new_child->type->type_table[cltype] == idtype;
7311 }
7312 }
7313 if (unlikely(!var7)) {
7314 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
7315 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TChar", var_class_name);
7316 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5458);
7317 show_backtrace(1);
7318 }
7319 {
7320 parser_prod__ACharExpr__n_char_61d(self, var_new_child); /* Direct call parser_prod#ACharExpr#n_char= on <self:ACharExpr>*/
7321 }
7322 goto RET_LABEL;
7323 } else {
7324 }
7325 var8 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:ACharExpr> */
7326 if (var8 == NULL) {
7327 var9 = 0; /* <var_old_child:ANode> cannot be null */
7328 } else {
7329 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:nullable AAnnotations> */
7330 var_other = var_old_child;
7331 {
7332 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:nullable AAnnotations(AAnnotations)> */
7333 var14 = var8 == var_other;
7334 var12 = var14;
7335 goto RET_LABEL13;
7336 RET_LABEL13:(void)0;
7337 }
7338 }
7339 var10 = var12;
7340 goto RET_LABEL11;
7341 RET_LABEL11:(void)0;
7342 }
7343 var9 = var10;
7344 }
7345 if (var9){
7346 /* <var_new_child:nullable ANode> isa nullable AAnnotations */
7347 cltype16 = type_nullable_parser_nodes__AAnnotations.color;
7348 idtype17 = type_nullable_parser_nodes__AAnnotations.id;
7349 if(var_new_child == NULL) {
7350 var15 = 1;
7351 } else {
7352 if(cltype16 >= var_new_child->type->table_size) {
7353 var15 = 0;
7354 } else {
7355 var15 = var_new_child->type->type_table[cltype16] == idtype17;
7356 }
7357 }
7358 if (unlikely(!var15)) {
7359 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
7360 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AAnnotations", var_class_name18);
7361 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5462);
7362 show_backtrace(1);
7363 }
7364 {
7365 parser_prod__ACharExpr__n_annotations_61d(self, var_new_child); /* Direct call parser_prod#ACharExpr#n_annotations= on <self:ACharExpr>*/
7366 }
7367 goto RET_LABEL;
7368 } else {
7369 }
7370 RET_LABEL:;
7371 }
7372 /* method parser_prod#ACharExpr#replace_child for (self: Object, ANode, nullable ANode) */
7373 void VIRTUAL_parser_prod__ACharExpr__replace_child(val* self, val* p0, val* p1) {
7374 parser_prod__ACharExpr__replace_child(self, p0, p1); /* Direct call parser_prod#ACharExpr#replace_child on <self:Object(ACharExpr)>*/
7375 RET_LABEL:;
7376 }
7377 /* method parser_prod#ACharExpr#n_char= for (self: ACharExpr, TChar) */
7378 void parser_prod__ACharExpr__n_char_61d(val* self, val* p0) {
7379 val* var_node /* var node: TChar */;
7380 var_node = p0;
7381 self->attrs[COLOR_parser_nodes__ACharExpr___n_char].val = var_node; /* _n_char on <self:ACharExpr> */
7382 {
7383 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TChar> */
7384 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TChar> */
7385 RET_LABEL1:(void)0;
7386 }
7387 }
7388 RET_LABEL:;
7389 }
7390 /* method parser_prod#ACharExpr#n_char= for (self: Object, TChar) */
7391 void VIRTUAL_parser_prod__ACharExpr__n_char_61d(val* self, val* p0) {
7392 parser_prod__ACharExpr__n_char_61d(self, p0); /* Direct call parser_prod#ACharExpr#n_char= on <self:Object(ACharExpr)>*/
7393 RET_LABEL:;
7394 }
7395 /* method parser_prod#ACharExpr#n_annotations= for (self: ACharExpr, nullable AAnnotations) */
7396 void parser_prod__ACharExpr__n_annotations_61d(val* self, val* p0) {
7397 val* var_node /* var node: nullable AAnnotations */;
7398 val* var /* : null */;
7399 short int var1 /* : Bool */;
7400 short int var2 /* : Bool */;
7401 val* var_other /* var other: nullable Object */;
7402 short int var4 /* : Bool */;
7403 short int var5 /* : Bool */;
7404 short int var6 /* : Bool */;
7405 var_node = p0;
7406 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_node; /* _n_annotations on <self:ACharExpr> */
7407 var = NULL;
7408 if (var_node == NULL) {
7409 var1 = 0; /* is null */
7410 } else {
7411 var1 = 1; /* arg is null and recv is not */
7412 }
7413 if (0) {
7414 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AAnnotations> */
7415 var_other = var;
7416 {
7417 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AAnnotations(AAnnotations)>*/;
7418 var4 = var5;
7419 }
7420 var6 = !var4;
7421 var2 = var6;
7422 goto RET_LABEL3;
7423 RET_LABEL3:(void)0;
7424 }
7425 var1 = var2;
7426 }
7427 if (var1){
7428 {
7429 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AAnnotations(AAnnotations)> */
7430 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AAnnotations(AAnnotations)> */
7431 RET_LABEL7:(void)0;
7432 }
7433 }
7434 } else {
7435 }
7436 RET_LABEL:;
7437 }
7438 /* method parser_prod#ACharExpr#n_annotations= for (self: Object, nullable AAnnotations) */
7439 void VIRTUAL_parser_prod__ACharExpr__n_annotations_61d(val* self, val* p0) {
7440 parser_prod__ACharExpr__n_annotations_61d(self, p0); /* Direct call parser_prod#ACharExpr#n_annotations= on <self:Object(ACharExpr)>*/
7441 RET_LABEL:;
7442 }
7443 /* method parser_prod#ACharExpr#visit_all for (self: ACharExpr, Visitor) */
7444 void parser_prod__ACharExpr__visit_all(val* self, val* p0) {
7445 val* var_v /* var v: Visitor */;
7446 val* var /* : TChar */;
7447 val* var1 /* : nullable AAnnotations */;
7448 var_v = p0;
7449 var = self->attrs[COLOR_parser_nodes__ACharExpr___n_char].val; /* _n_char on <self:ACharExpr> */
7450 if (unlikely(var == NULL)) {
7451 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_char");
7452 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5481);
7453 show_backtrace(1);
7454 }
7455 {
7456 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7457 }
7458 var1 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:ACharExpr> */
7459 {
7460 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7461 }
7462 RET_LABEL:;
7463 }
7464 /* method parser_prod#ACharExpr#visit_all for (self: Object, Visitor) */
7465 void VIRTUAL_parser_prod__ACharExpr__visit_all(val* self, val* p0) {
7466 parser_prod__ACharExpr__visit_all(self, p0); /* Direct call parser_prod#ACharExpr#visit_all on <self:Object(ACharExpr)>*/
7467 RET_LABEL:;
7468 }
7469 /* method parser_prod#AStringExpr#init_astringexpr for (self: AStringExpr, nullable TString, nullable AAnnotations) */
7470 void parser_prod__AStringExpr__init_astringexpr(val* self, val* p0, val* p1) {
7471 val* var_n_string /* var n_string: nullable TString */;
7472 val* var_n_annotations /* var n_annotations: nullable AAnnotations */;
7473 val* var /* : null */;
7474 short int var2 /* : Bool */;
7475 short int var3 /* : Bool */;
7476 val* var_other /* var other: nullable Object */;
7477 short int var5 /* : Bool */;
7478 short int var6 /* : Bool */;
7479 short int var7 /* : Bool */;
7480 var_n_string = p0;
7481 var_n_annotations = p1;
7482 if (unlikely(var_n_string == NULL)) {
7483 PRINT_ERROR("Runtime error: %s", "Cast failed");
7484 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5491);
7485 show_backtrace(1);
7486 }
7487 self->attrs[COLOR_parser_nodes__AStringFormExpr___n_string].val = var_n_string; /* _n_string on <self:AStringExpr> */
7488 if (var_n_string == NULL) {
7489 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7490 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5492);
7491 show_backtrace(1);
7492 } else {
7493 { /* Inline parser_nodes#ANode#parent= (var_n_string,self) on <var_n_string:nullable TString> */
7494 if (unlikely(var_n_string == NULL)) {
7495 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7496 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
7497 show_backtrace(1);
7498 }
7499 var_n_string->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_string:nullable TString> */
7500 RET_LABEL1:(void)0;
7501 }
7502 }
7503 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:AStringExpr> */
7504 var = NULL;
7505 if (var_n_annotations == NULL) {
7506 var2 = 0; /* is null */
7507 } else {
7508 var2 = 1; /* arg is null and recv is not */
7509 }
7510 if (0) {
7511 { /* Inline kernel#Object#!= (var_n_annotations,var) on <var_n_annotations:nullable AAnnotations> */
7512 var_other = var;
7513 {
7514 var6 = ((short int (*)(val*, val*))(var_n_annotations->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_annotations, var_other) /* == on <var_n_annotations:nullable AAnnotations(AAnnotations)>*/;
7515 var5 = var6;
7516 }
7517 var7 = !var5;
7518 var3 = var7;
7519 goto RET_LABEL4;
7520 RET_LABEL4:(void)0;
7521 }
7522 var2 = var3;
7523 }
7524 if (var2){
7525 {
7526 { /* Inline parser_nodes#ANode#parent= (var_n_annotations,self) on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
7527 var_n_annotations->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
7528 RET_LABEL8:(void)0;
7529 }
7530 }
7531 } else {
7532 }
7533 RET_LABEL:;
7534 }
7535 /* method parser_prod#AStringExpr#init_astringexpr for (self: Object, nullable TString, nullable AAnnotations) */
7536 void VIRTUAL_parser_prod__AStringExpr__init_astringexpr(val* self, val* p0, val* p1) {
7537 parser_prod__AStringExpr__init_astringexpr(self, p0, p1); /* Direct call parser_prod#AStringExpr#init_astringexpr on <self:Object(AStringExpr)>*/
7538 RET_LABEL:;
7539 }
7540 /* method parser_prod#AStringExpr#replace_child for (self: AStringExpr, ANode, nullable ANode) */
7541 void parser_prod__AStringExpr__replace_child(val* self, val* p0, val* p1) {
7542 val* var_old_child /* var old_child: ANode */;
7543 val* var_new_child /* var new_child: nullable ANode */;
7544 val* var /* : Token */;
7545 short int var1 /* : Bool */;
7546 short int var2 /* : Bool */;
7547 val* var_other /* var other: nullable Object */;
7548 short int var4 /* : Bool */;
7549 short int var6 /* : Bool */;
7550 short int var7 /* : Bool */;
7551 int cltype;
7552 int idtype;
7553 const char* var_class_name;
7554 val* var8 /* : nullable AAnnotations */;
7555 short int var9 /* : Bool */;
7556 short int var10 /* : Bool */;
7557 short int var12 /* : Bool */;
7558 short int var14 /* : Bool */;
7559 short int var15 /* : Bool */;
7560 int cltype16;
7561 int idtype17;
7562 const char* var_class_name18;
7563 var_old_child = p0;
7564 var_new_child = p1;
7565 var = self->attrs[COLOR_parser_nodes__AStringFormExpr___n_string].val; /* _n_string on <self:AStringExpr> */
7566 if (unlikely(var == NULL)) {
7567 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_string");
7568 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5499);
7569 show_backtrace(1);
7570 }
7571 {
7572 { /* Inline kernel#Object#== (var,var_old_child) on <var:Token> */
7573 var_other = var_old_child;
7574 {
7575 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:Token> */
7576 var6 = var == var_other;
7577 var4 = var6;
7578 goto RET_LABEL5;
7579 RET_LABEL5:(void)0;
7580 }
7581 }
7582 var2 = var4;
7583 goto RET_LABEL3;
7584 RET_LABEL3:(void)0;
7585 }
7586 var1 = var2;
7587 }
7588 if (var1){
7589 /* <var_new_child:nullable ANode> isa TString */
7590 cltype = type_parser_nodes__TString.color;
7591 idtype = type_parser_nodes__TString.id;
7592 if(var_new_child == NULL) {
7593 var7 = 0;
7594 } else {
7595 if(cltype >= var_new_child->type->table_size) {
7596 var7 = 0;
7597 } else {
7598 var7 = var_new_child->type->type_table[cltype] == idtype;
7599 }
7600 }
7601 if (unlikely(!var7)) {
7602 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
7603 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TString", var_class_name);
7604 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5500);
7605 show_backtrace(1);
7606 }
7607 {
7608 parser_prod__AStringExpr__n_string_61d(self, var_new_child); /* Direct call parser_prod#AStringExpr#n_string= on <self:AStringExpr>*/
7609 }
7610 goto RET_LABEL;
7611 } else {
7612 }
7613 var8 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AStringExpr> */
7614 if (var8 == NULL) {
7615 var9 = 0; /* <var_old_child:ANode> cannot be null */
7616 } else {
7617 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:nullable AAnnotations> */
7618 var_other = var_old_child;
7619 {
7620 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:nullable AAnnotations(AAnnotations)> */
7621 var14 = var8 == var_other;
7622 var12 = var14;
7623 goto RET_LABEL13;
7624 RET_LABEL13:(void)0;
7625 }
7626 }
7627 var10 = var12;
7628 goto RET_LABEL11;
7629 RET_LABEL11:(void)0;
7630 }
7631 var9 = var10;
7632 }
7633 if (var9){
7634 /* <var_new_child:nullable ANode> isa nullable AAnnotations */
7635 cltype16 = type_nullable_parser_nodes__AAnnotations.color;
7636 idtype17 = type_nullable_parser_nodes__AAnnotations.id;
7637 if(var_new_child == NULL) {
7638 var15 = 1;
7639 } else {
7640 if(cltype16 >= var_new_child->type->table_size) {
7641 var15 = 0;
7642 } else {
7643 var15 = var_new_child->type->type_table[cltype16] == idtype17;
7644 }
7645 }
7646 if (unlikely(!var15)) {
7647 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
7648 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AAnnotations", var_class_name18);
7649 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5504);
7650 show_backtrace(1);
7651 }
7652 {
7653 parser_prod__AStringExpr__n_annotations_61d(self, var_new_child); /* Direct call parser_prod#AStringExpr#n_annotations= on <self:AStringExpr>*/
7654 }
7655 goto RET_LABEL;
7656 } else {
7657 }
7658 RET_LABEL:;
7659 }
7660 /* method parser_prod#AStringExpr#replace_child for (self: Object, ANode, nullable ANode) */
7661 void VIRTUAL_parser_prod__AStringExpr__replace_child(val* self, val* p0, val* p1) {
7662 parser_prod__AStringExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AStringExpr#replace_child on <self:Object(AStringExpr)>*/
7663 RET_LABEL:;
7664 }
7665 /* method parser_prod#AStringExpr#n_string= for (self: AStringExpr, Token) */
7666 void parser_prod__AStringExpr__n_string_61d(val* self, val* p0) {
7667 val* var_node /* var node: Token */;
7668 var_node = p0;
7669 self->attrs[COLOR_parser_nodes__AStringFormExpr___n_string].val = var_node; /* _n_string on <self:AStringExpr> */
7670 {
7671 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:Token> */
7672 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:Token> */
7673 RET_LABEL1:(void)0;
7674 }
7675 }
7676 RET_LABEL:;
7677 }
7678 /* method parser_prod#AStringExpr#n_string= for (self: Object, Token) */
7679 void VIRTUAL_parser_prod__AStringExpr__n_string_61d(val* self, val* p0) {
7680 parser_prod__AStringExpr__n_string_61d(self, p0); /* Direct call parser_prod#AStringExpr#n_string= on <self:Object(AStringExpr)>*/
7681 RET_LABEL:;
7682 }
7683 /* method parser_prod#AStringExpr#n_annotations= for (self: AStringExpr, nullable AAnnotations) */
7684 void parser_prod__AStringExpr__n_annotations_61d(val* self, val* p0) {
7685 val* var_node /* var node: nullable AAnnotations */;
7686 val* var /* : null */;
7687 short int var1 /* : Bool */;
7688 short int var2 /* : Bool */;
7689 val* var_other /* var other: nullable Object */;
7690 short int var4 /* : Bool */;
7691 short int var5 /* : Bool */;
7692 short int var6 /* : Bool */;
7693 var_node = p0;
7694 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_node; /* _n_annotations on <self:AStringExpr> */
7695 var = NULL;
7696 if (var_node == NULL) {
7697 var1 = 0; /* is null */
7698 } else {
7699 var1 = 1; /* arg is null and recv is not */
7700 }
7701 if (0) {
7702 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AAnnotations> */
7703 var_other = var;
7704 {
7705 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AAnnotations(AAnnotations)>*/;
7706 var4 = var5;
7707 }
7708 var6 = !var4;
7709 var2 = var6;
7710 goto RET_LABEL3;
7711 RET_LABEL3:(void)0;
7712 }
7713 var1 = var2;
7714 }
7715 if (var1){
7716 {
7717 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AAnnotations(AAnnotations)> */
7718 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AAnnotations(AAnnotations)> */
7719 RET_LABEL7:(void)0;
7720 }
7721 }
7722 } else {
7723 }
7724 RET_LABEL:;
7725 }
7726 /* method parser_prod#AStringExpr#n_annotations= for (self: Object, nullable AAnnotations) */
7727 void VIRTUAL_parser_prod__AStringExpr__n_annotations_61d(val* self, val* p0) {
7728 parser_prod__AStringExpr__n_annotations_61d(self, p0); /* Direct call parser_prod#AStringExpr#n_annotations= on <self:Object(AStringExpr)>*/
7729 RET_LABEL:;
7730 }
7731 /* method parser_prod#AStringExpr#visit_all for (self: AStringExpr, Visitor) */
7732 void parser_prod__AStringExpr__visit_all(val* self, val* p0) {
7733 val* var_v /* var v: Visitor */;
7734 val* var /* : Token */;
7735 val* var1 /* : nullable AAnnotations */;
7736 var_v = p0;
7737 var = self->attrs[COLOR_parser_nodes__AStringFormExpr___n_string].val; /* _n_string on <self:AStringExpr> */
7738 if (unlikely(var == NULL)) {
7739 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_string");
7740 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5523);
7741 show_backtrace(1);
7742 }
7743 {
7744 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7745 }
7746 var1 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AStringExpr> */
7747 {
7748 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7749 }
7750 RET_LABEL:;
7751 }
7752 /* method parser_prod#AStringExpr#visit_all for (self: Object, Visitor) */
7753 void VIRTUAL_parser_prod__AStringExpr__visit_all(val* self, val* p0) {
7754 parser_prod__AStringExpr__visit_all(self, p0); /* Direct call parser_prod#AStringExpr#visit_all on <self:Object(AStringExpr)>*/
7755 RET_LABEL:;
7756 }
7757 /* method parser_prod#AStartStringExpr#init_astartstringexpr for (self: AStartStringExpr, nullable TStartString) */
7758 void parser_prod__AStartStringExpr__init_astartstringexpr(val* self, val* p0) {
7759 val* var_n_string /* var n_string: nullable TStartString */;
7760 var_n_string = p0;
7761 if (unlikely(var_n_string == NULL)) {
7762 PRINT_ERROR("Runtime error: %s", "Cast failed");
7763 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5532);
7764 show_backtrace(1);
7765 }
7766 self->attrs[COLOR_parser_nodes__AStringFormExpr___n_string].val = var_n_string; /* _n_string on <self:AStartStringExpr> */
7767 if (var_n_string == NULL) {
7768 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7769 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5533);
7770 show_backtrace(1);
7771 } else {
7772 { /* Inline parser_nodes#ANode#parent= (var_n_string,self) on <var_n_string:nullable TStartString> */
7773 if (unlikely(var_n_string == NULL)) {
7774 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7775 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
7776 show_backtrace(1);
7777 }
7778 var_n_string->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_string:nullable TStartString> */
7779 RET_LABEL1:(void)0;
7780 }
7781 }
7782 RET_LABEL:;
7783 }
7784 /* method parser_prod#AStartStringExpr#init_astartstringexpr for (self: Object, nullable TStartString) */
7785 void VIRTUAL_parser_prod__AStartStringExpr__init_astartstringexpr(val* self, val* p0) {
7786 parser_prod__AStartStringExpr__init_astartstringexpr(self, p0); /* Direct call parser_prod#AStartStringExpr#init_astartstringexpr on <self:Object(AStartStringExpr)>*/
7787 RET_LABEL:;
7788 }
7789 /* method parser_prod#AStartStringExpr#replace_child for (self: AStartStringExpr, ANode, nullable ANode) */
7790 void parser_prod__AStartStringExpr__replace_child(val* self, val* p0, val* p1) {
7791 val* var_old_child /* var old_child: ANode */;
7792 val* var_new_child /* var new_child: nullable ANode */;
7793 val* var /* : Token */;
7794 short int var1 /* : Bool */;
7795 short int var2 /* : Bool */;
7796 val* var_other /* var other: nullable Object */;
7797 short int var4 /* : Bool */;
7798 short int var6 /* : Bool */;
7799 short int var7 /* : Bool */;
7800 int cltype;
7801 int idtype;
7802 const char* var_class_name;
7803 var_old_child = p0;
7804 var_new_child = p1;
7805 var = self->attrs[COLOR_parser_nodes__AStringFormExpr___n_string].val; /* _n_string on <self:AStartStringExpr> */
7806 if (unlikely(var == NULL)) {
7807 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_string");
7808 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5538);
7809 show_backtrace(1);
7810 }
7811 {
7812 { /* Inline kernel#Object#== (var,var_old_child) on <var:Token> */
7813 var_other = var_old_child;
7814 {
7815 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:Token> */
7816 var6 = var == var_other;
7817 var4 = var6;
7818 goto RET_LABEL5;
7819 RET_LABEL5:(void)0;
7820 }
7821 }
7822 var2 = var4;
7823 goto RET_LABEL3;
7824 RET_LABEL3:(void)0;
7825 }
7826 var1 = var2;
7827 }
7828 if (var1){
7829 /* <var_new_child:nullable ANode> isa TStartString */
7830 cltype = type_parser_nodes__TStartString.color;
7831 idtype = type_parser_nodes__TStartString.id;
7832 if(var_new_child == NULL) {
7833 var7 = 0;
7834 } else {
7835 if(cltype >= var_new_child->type->table_size) {
7836 var7 = 0;
7837 } else {
7838 var7 = var_new_child->type->type_table[cltype] == idtype;
7839 }
7840 }
7841 if (unlikely(!var7)) {
7842 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
7843 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TStartString", var_class_name);
7844 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5539);
7845 show_backtrace(1);
7846 }
7847 {
7848 parser_prod__AStartStringExpr__n_string_61d(self, var_new_child); /* Direct call parser_prod#AStartStringExpr#n_string= on <self:AStartStringExpr>*/
7849 }
7850 goto RET_LABEL;
7851 } else {
7852 }
7853 RET_LABEL:;
7854 }
7855 /* method parser_prod#AStartStringExpr#replace_child for (self: Object, ANode, nullable ANode) */
7856 void VIRTUAL_parser_prod__AStartStringExpr__replace_child(val* self, val* p0, val* p1) {
7857 parser_prod__AStartStringExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AStartStringExpr#replace_child on <self:Object(AStartStringExpr)>*/
7858 RET_LABEL:;
7859 }
7860 /* method parser_prod#AStartStringExpr#n_string= for (self: AStartStringExpr, Token) */
7861 void parser_prod__AStartStringExpr__n_string_61d(val* self, val* p0) {
7862 val* var_node /* var node: Token */;
7863 var_node = p0;
7864 self->attrs[COLOR_parser_nodes__AStringFormExpr___n_string].val = var_node; /* _n_string on <self:AStartStringExpr> */
7865 {
7866 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:Token> */
7867 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:Token> */
7868 RET_LABEL1:(void)0;
7869 }
7870 }
7871 RET_LABEL:;
7872 }
7873 /* method parser_prod#AStartStringExpr#n_string= for (self: Object, Token) */
7874 void VIRTUAL_parser_prod__AStartStringExpr__n_string_61d(val* self, val* p0) {
7875 parser_prod__AStartStringExpr__n_string_61d(self, p0); /* Direct call parser_prod#AStartStringExpr#n_string= on <self:Object(AStartStringExpr)>*/
7876 RET_LABEL:;
7877 }
7878 /* method parser_prod#AStartStringExpr#visit_all for (self: AStartStringExpr, Visitor) */
7879 void parser_prod__AStartStringExpr__visit_all(val* self, val* p0) {
7880 val* var_v /* var v: Visitor */;
7881 val* var /* : Token */;
7882 var_v = p0;
7883 var = self->attrs[COLOR_parser_nodes__AStringFormExpr___n_string].val; /* _n_string on <self:AStartStringExpr> */
7884 if (unlikely(var == NULL)) {
7885 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_string");
7886 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5553);
7887 show_backtrace(1);
7888 }
7889 {
7890 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7891 }
7892 RET_LABEL:;
7893 }
7894 /* method parser_prod#AStartStringExpr#visit_all for (self: Object, Visitor) */
7895 void VIRTUAL_parser_prod__AStartStringExpr__visit_all(val* self, val* p0) {
7896 parser_prod__AStartStringExpr__visit_all(self, p0); /* Direct call parser_prod#AStartStringExpr#visit_all on <self:Object(AStartStringExpr)>*/
7897 RET_LABEL:;
7898 }
7899 /* method parser_prod#AMidStringExpr#init_amidstringexpr for (self: AMidStringExpr, nullable TMidString) */
7900 void parser_prod__AMidStringExpr__init_amidstringexpr(val* self, val* p0) {
7901 val* var_n_string /* var n_string: nullable TMidString */;
7902 var_n_string = p0;
7903 if (unlikely(var_n_string == NULL)) {
7904 PRINT_ERROR("Runtime error: %s", "Cast failed");
7905 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5561);
7906 show_backtrace(1);
7907 }
7908 self->attrs[COLOR_parser_nodes__AStringFormExpr___n_string].val = var_n_string; /* _n_string on <self:AMidStringExpr> */
7909 if (var_n_string == NULL) {
7910 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7911 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5562);
7912 show_backtrace(1);
7913 } else {
7914 { /* Inline parser_nodes#ANode#parent= (var_n_string,self) on <var_n_string:nullable TMidString> */
7915 if (unlikely(var_n_string == NULL)) {
7916 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7917 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
7918 show_backtrace(1);
7919 }
7920 var_n_string->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_string:nullable TMidString> */
7921 RET_LABEL1:(void)0;
7922 }
7923 }
7924 RET_LABEL:;
7925 }
7926 /* method parser_prod#AMidStringExpr#init_amidstringexpr for (self: Object, nullable TMidString) */
7927 void VIRTUAL_parser_prod__AMidStringExpr__init_amidstringexpr(val* self, val* p0) {
7928 parser_prod__AMidStringExpr__init_amidstringexpr(self, p0); /* Direct call parser_prod#AMidStringExpr#init_amidstringexpr on <self:Object(AMidStringExpr)>*/
7929 RET_LABEL:;
7930 }
7931 /* method parser_prod#AMidStringExpr#replace_child for (self: AMidStringExpr, ANode, nullable ANode) */
7932 void parser_prod__AMidStringExpr__replace_child(val* self, val* p0, val* p1) {
7933 val* var_old_child /* var old_child: ANode */;
7934 val* var_new_child /* var new_child: nullable ANode */;
7935 val* var /* : Token */;
7936 short int var1 /* : Bool */;
7937 short int var2 /* : Bool */;
7938 val* var_other /* var other: nullable Object */;
7939 short int var4 /* : Bool */;
7940 short int var6 /* : Bool */;
7941 short int var7 /* : Bool */;
7942 int cltype;
7943 int idtype;
7944 const char* var_class_name;
7945 var_old_child = p0;
7946 var_new_child = p1;
7947 var = self->attrs[COLOR_parser_nodes__AStringFormExpr___n_string].val; /* _n_string on <self:AMidStringExpr> */
7948 if (unlikely(var == NULL)) {
7949 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_string");
7950 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5567);
7951 show_backtrace(1);
7952 }
7953 {
7954 { /* Inline kernel#Object#== (var,var_old_child) on <var:Token> */
7955 var_other = var_old_child;
7956 {
7957 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:Token> */
7958 var6 = var == var_other;
7959 var4 = var6;
7960 goto RET_LABEL5;
7961 RET_LABEL5:(void)0;
7962 }
7963 }
7964 var2 = var4;
7965 goto RET_LABEL3;
7966 RET_LABEL3:(void)0;
7967 }
7968 var1 = var2;
7969 }
7970 if (var1){
7971 /* <var_new_child:nullable ANode> isa TMidString */
7972 cltype = type_parser_nodes__TMidString.color;
7973 idtype = type_parser_nodes__TMidString.id;
7974 if(var_new_child == NULL) {
7975 var7 = 0;
7976 } else {
7977 if(cltype >= var_new_child->type->table_size) {
7978 var7 = 0;
7979 } else {
7980 var7 = var_new_child->type->type_table[cltype] == idtype;
7981 }
7982 }
7983 if (unlikely(!var7)) {
7984 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
7985 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TMidString", var_class_name);
7986 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5568);
7987 show_backtrace(1);
7988 }
7989 {
7990 parser_prod__AMidStringExpr__n_string_61d(self, var_new_child); /* Direct call parser_prod#AMidStringExpr#n_string= on <self:AMidStringExpr>*/
7991 }
7992 goto RET_LABEL;
7993 } else {
7994 }
7995 RET_LABEL:;
7996 }
7997 /* method parser_prod#AMidStringExpr#replace_child for (self: Object, ANode, nullable ANode) */
7998 void VIRTUAL_parser_prod__AMidStringExpr__replace_child(val* self, val* p0, val* p1) {
7999 parser_prod__AMidStringExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AMidStringExpr#replace_child on <self:Object(AMidStringExpr)>*/
8000 RET_LABEL:;
8001 }
8002 /* method parser_prod#AMidStringExpr#n_string= for (self: AMidStringExpr, Token) */
8003 void parser_prod__AMidStringExpr__n_string_61d(val* self, val* p0) {
8004 val* var_node /* var node: Token */;
8005 var_node = p0;
8006 self->attrs[COLOR_parser_nodes__AStringFormExpr___n_string].val = var_node; /* _n_string on <self:AMidStringExpr> */
8007 {
8008 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:Token> */
8009 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:Token> */
8010 RET_LABEL1:(void)0;
8011 }
8012 }
8013 RET_LABEL:;
8014 }
8015 /* method parser_prod#AMidStringExpr#n_string= for (self: Object, Token) */
8016 void VIRTUAL_parser_prod__AMidStringExpr__n_string_61d(val* self, val* p0) {
8017 parser_prod__AMidStringExpr__n_string_61d(self, p0); /* Direct call parser_prod#AMidStringExpr#n_string= on <self:Object(AMidStringExpr)>*/
8018 RET_LABEL:;
8019 }
8020 /* method parser_prod#AMidStringExpr#visit_all for (self: AMidStringExpr, Visitor) */
8021 void parser_prod__AMidStringExpr__visit_all(val* self, val* p0) {
8022 val* var_v /* var v: Visitor */;
8023 val* var /* : Token */;
8024 var_v = p0;
8025 var = self->attrs[COLOR_parser_nodes__AStringFormExpr___n_string].val; /* _n_string on <self:AMidStringExpr> */
8026 if (unlikely(var == NULL)) {
8027 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_string");
8028 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5582);
8029 show_backtrace(1);
8030 }
8031 {
8032 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8033 }
8034 RET_LABEL:;
8035 }
8036 /* method parser_prod#AMidStringExpr#visit_all for (self: Object, Visitor) */
8037 void VIRTUAL_parser_prod__AMidStringExpr__visit_all(val* self, val* p0) {
8038 parser_prod__AMidStringExpr__visit_all(self, p0); /* Direct call parser_prod#AMidStringExpr#visit_all on <self:Object(AMidStringExpr)>*/
8039 RET_LABEL:;
8040 }
8041 /* method parser_prod#AEndStringExpr#init_aendstringexpr for (self: AEndStringExpr, nullable TEndString) */
8042 void parser_prod__AEndStringExpr__init_aendstringexpr(val* self, val* p0) {
8043 val* var_n_string /* var n_string: nullable TEndString */;
8044 var_n_string = p0;
8045 if (unlikely(var_n_string == NULL)) {
8046 PRINT_ERROR("Runtime error: %s", "Cast failed");
8047 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5590);
8048 show_backtrace(1);
8049 }
8050 self->attrs[COLOR_parser_nodes__AStringFormExpr___n_string].val = var_n_string; /* _n_string on <self:AEndStringExpr> */
8051 if (var_n_string == NULL) {
8052 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8053 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5591);
8054 show_backtrace(1);
8055 } else {
8056 { /* Inline parser_nodes#ANode#parent= (var_n_string,self) on <var_n_string:nullable TEndString> */
8057 if (unlikely(var_n_string == NULL)) {
8058 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8059 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
8060 show_backtrace(1);
8061 }
8062 var_n_string->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_string:nullable TEndString> */
8063 RET_LABEL1:(void)0;
8064 }
8065 }
8066 RET_LABEL:;
8067 }
8068 /* method parser_prod#AEndStringExpr#init_aendstringexpr for (self: Object, nullable TEndString) */
8069 void VIRTUAL_parser_prod__AEndStringExpr__init_aendstringexpr(val* self, val* p0) {
8070 parser_prod__AEndStringExpr__init_aendstringexpr(self, p0); /* Direct call parser_prod#AEndStringExpr#init_aendstringexpr on <self:Object(AEndStringExpr)>*/
8071 RET_LABEL:;
8072 }
8073 /* method parser_prod#AEndStringExpr#replace_child for (self: AEndStringExpr, ANode, nullable ANode) */
8074 void parser_prod__AEndStringExpr__replace_child(val* self, val* p0, val* p1) {
8075 val* var_old_child /* var old_child: ANode */;
8076 val* var_new_child /* var new_child: nullable ANode */;
8077 val* var /* : Token */;
8078 short int var1 /* : Bool */;
8079 short int var2 /* : Bool */;
8080 val* var_other /* var other: nullable Object */;
8081 short int var4 /* : Bool */;
8082 short int var6 /* : Bool */;
8083 short int var7 /* : Bool */;
8084 int cltype;
8085 int idtype;
8086 const char* var_class_name;
8087 var_old_child = p0;
8088 var_new_child = p1;
8089 var = self->attrs[COLOR_parser_nodes__AStringFormExpr___n_string].val; /* _n_string on <self:AEndStringExpr> */
8090 if (unlikely(var == NULL)) {
8091 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_string");
8092 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5596);
8093 show_backtrace(1);
8094 }
8095 {
8096 { /* Inline kernel#Object#== (var,var_old_child) on <var:Token> */
8097 var_other = var_old_child;
8098 {
8099 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:Token> */
8100 var6 = var == var_other;
8101 var4 = var6;
8102 goto RET_LABEL5;
8103 RET_LABEL5:(void)0;
8104 }
8105 }
8106 var2 = var4;
8107 goto RET_LABEL3;
8108 RET_LABEL3:(void)0;
8109 }
8110 var1 = var2;
8111 }
8112 if (var1){
8113 /* <var_new_child:nullable ANode> isa TEndString */
8114 cltype = type_parser_nodes__TEndString.color;
8115 idtype = type_parser_nodes__TEndString.id;
8116 if(var_new_child == NULL) {
8117 var7 = 0;
8118 } else {
8119 if(cltype >= var_new_child->type->table_size) {
8120 var7 = 0;
8121 } else {
8122 var7 = var_new_child->type->type_table[cltype] == idtype;
8123 }
8124 }
8125 if (unlikely(!var7)) {
8126 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
8127 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TEndString", var_class_name);
8128 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5597);
8129 show_backtrace(1);
8130 }
8131 {
8132 parser_prod__AEndStringExpr__n_string_61d(self, var_new_child); /* Direct call parser_prod#AEndStringExpr#n_string= on <self:AEndStringExpr>*/
8133 }
8134 goto RET_LABEL;
8135 } else {
8136 }
8137 RET_LABEL:;
8138 }
8139 /* method parser_prod#AEndStringExpr#replace_child for (self: Object, ANode, nullable ANode) */
8140 void VIRTUAL_parser_prod__AEndStringExpr__replace_child(val* self, val* p0, val* p1) {
8141 parser_prod__AEndStringExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AEndStringExpr#replace_child on <self:Object(AEndStringExpr)>*/
8142 RET_LABEL:;
8143 }
8144 /* method parser_prod#AEndStringExpr#n_string= for (self: AEndStringExpr, Token) */
8145 void parser_prod__AEndStringExpr__n_string_61d(val* self, val* p0) {
8146 val* var_node /* var node: Token */;
8147 var_node = p0;
8148 self->attrs[COLOR_parser_nodes__AStringFormExpr___n_string].val = var_node; /* _n_string on <self:AEndStringExpr> */
8149 {
8150 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:Token> */
8151 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:Token> */
8152 RET_LABEL1:(void)0;
8153 }
8154 }
8155 RET_LABEL:;
8156 }
8157 /* method parser_prod#AEndStringExpr#n_string= for (self: Object, Token) */
8158 void VIRTUAL_parser_prod__AEndStringExpr__n_string_61d(val* self, val* p0) {
8159 parser_prod__AEndStringExpr__n_string_61d(self, p0); /* Direct call parser_prod#AEndStringExpr#n_string= on <self:Object(AEndStringExpr)>*/
8160 RET_LABEL:;
8161 }
8162 /* method parser_prod#AEndStringExpr#visit_all for (self: AEndStringExpr, Visitor) */
8163 void parser_prod__AEndStringExpr__visit_all(val* self, val* p0) {
8164 val* var_v /* var v: Visitor */;
8165 val* var /* : Token */;
8166 var_v = p0;
8167 var = self->attrs[COLOR_parser_nodes__AStringFormExpr___n_string].val; /* _n_string on <self:AEndStringExpr> */
8168 if (unlikely(var == NULL)) {
8169 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_string");
8170 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5611);
8171 show_backtrace(1);
8172 }
8173 {
8174 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8175 }
8176 RET_LABEL:;
8177 }
8178 /* method parser_prod#AEndStringExpr#visit_all for (self: Object, Visitor) */
8179 void VIRTUAL_parser_prod__AEndStringExpr__visit_all(val* self, val* p0) {
8180 parser_prod__AEndStringExpr__visit_all(self, p0); /* Direct call parser_prod#AEndStringExpr#visit_all on <self:Object(AEndStringExpr)>*/
8181 RET_LABEL:;
8182 }
8183 /* method parser_prod#ASuperstringExpr#init_asuperstringexpr for (self: ASuperstringExpr, Collection[Object], nullable AAnnotations) */
8184 void parser_prod__ASuperstringExpr__init_asuperstringexpr(val* self, val* p0, val* p1) {
8185 val* var_n_exprs /* var n_exprs: Collection[Object] */;
8186 val* var_n_annotations /* var n_annotations: nullable AAnnotations */;
8187 val* var /* : ANodes[AExpr] */;
8188 val* var2 /* : ANodes[AExpr] */;
8189 val* var3 /* : null */;
8190 short int var4 /* : Bool */;
8191 short int var5 /* : Bool */;
8192 val* var_other /* var other: nullable Object */;
8193 short int var7 /* : Bool */;
8194 short int var8 /* : Bool */;
8195 short int var9 /* : Bool */;
8196 var_n_exprs = p0;
8197 var_n_annotations = p1;
8198 {
8199 { /* Inline parser_nodes#ASuperstringExpr#n_exprs (self) on <self:ASuperstringExpr> */
8200 var2 = self->attrs[COLOR_parser_nodes__ASuperstringExpr___n_exprs].val; /* _n_exprs on <self:ASuperstringExpr> */
8201 if (unlikely(var2 == NULL)) {
8202 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
8203 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1861);
8204 show_backtrace(1);
8205 }
8206 var = var2;
8207 RET_LABEL1:(void)0;
8208 }
8209 }
8210 {
8211 parser_nodes__ANodes__unsafe_add_all(var, var_n_exprs); /* Direct call parser_nodes#ANodes#unsafe_add_all on <var:ANodes[AExpr]>*/
8212 }
8213 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:ASuperstringExpr> */
8214 var3 = NULL;
8215 if (var_n_annotations == NULL) {
8216 var4 = 0; /* is null */
8217 } else {
8218 var4 = 1; /* arg is null and recv is not */
8219 }
8220 if (0) {
8221 { /* Inline kernel#Object#!= (var_n_annotations,var3) on <var_n_annotations:nullable AAnnotations> */
8222 var_other = var3;
8223 {
8224 var8 = ((short int (*)(val*, val*))(var_n_annotations->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_annotations, var_other) /* == on <var_n_annotations:nullable AAnnotations(AAnnotations)>*/;
8225 var7 = var8;
8226 }
8227 var9 = !var7;
8228 var5 = var9;
8229 goto RET_LABEL6;
8230 RET_LABEL6:(void)0;
8231 }
8232 var4 = var5;
8233 }
8234 if (var4){
8235 {
8236 { /* Inline parser_nodes#ANode#parent= (var_n_annotations,self) on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
8237 var_n_annotations->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
8238 RET_LABEL10:(void)0;
8239 }
8240 }
8241 } else {
8242 }
8243 RET_LABEL:;
8244 }
8245 /* method parser_prod#ASuperstringExpr#init_asuperstringexpr for (self: Object, Collection[Object], nullable AAnnotations) */
8246 void VIRTUAL_parser_prod__ASuperstringExpr__init_asuperstringexpr(val* self, val* p0, val* p1) {
8247 parser_prod__ASuperstringExpr__init_asuperstringexpr(self, p0, p1); /* Direct call parser_prod#ASuperstringExpr#init_asuperstringexpr on <self:Object(ASuperstringExpr)>*/
8248 RET_LABEL:;
8249 }
8250 /* method parser_prod#ASuperstringExpr#replace_child for (self: ASuperstringExpr, ANode, nullable ANode) */
8251 void parser_prod__ASuperstringExpr__replace_child(val* self, val* p0, val* p1) {
8252 val* var_old_child /* var old_child: ANode */;
8253 val* var_new_child /* var new_child: nullable ANode */;
8254 val* var /* : ANodes[AExpr] */;
8255 val* var2 /* : ANodes[AExpr] */;
8256 short int var3 /* : Bool */;
8257 val* var4 /* : nullable AAnnotations */;
8258 short int var5 /* : Bool */;
8259 short int var6 /* : Bool */;
8260 val* var_other /* var other: nullable Object */;
8261 short int var8 /* : Bool */;
8262 short int var10 /* : Bool */;
8263 short int var11 /* : Bool */;
8264 int cltype;
8265 int idtype;
8266 const char* var_class_name;
8267 var_old_child = p0;
8268 var_new_child = p1;
8269 {
8270 { /* Inline parser_nodes#ASuperstringExpr#n_exprs (self) on <self:ASuperstringExpr> */
8271 var2 = self->attrs[COLOR_parser_nodes__ASuperstringExpr___n_exprs].val; /* _n_exprs on <self:ASuperstringExpr> */
8272 if (unlikely(var2 == NULL)) {
8273 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
8274 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1861);
8275 show_backtrace(1);
8276 }
8277 var = var2;
8278 RET_LABEL1:(void)0;
8279 }
8280 }
8281 {
8282 var3 = parser_nodes__ANodes__replace_child(var, var_old_child, var_new_child);
8283 }
8284 if (var3){
8285 goto RET_LABEL;
8286 } else {
8287 }
8288 var4 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:ASuperstringExpr> */
8289 if (var4 == NULL) {
8290 var5 = 0; /* <var_old_child:ANode> cannot be null */
8291 } else {
8292 { /* Inline kernel#Object#== (var4,var_old_child) on <var4:nullable AAnnotations> */
8293 var_other = var_old_child;
8294 {
8295 { /* Inline kernel#Object#is_same_instance (var4,var_other) on <var4:nullable AAnnotations(AAnnotations)> */
8296 var10 = var4 == var_other;
8297 var8 = var10;
8298 goto RET_LABEL9;
8299 RET_LABEL9:(void)0;
8300 }
8301 }
8302 var6 = var8;
8303 goto RET_LABEL7;
8304 RET_LABEL7:(void)0;
8305 }
8306 var5 = var6;
8307 }
8308 if (var5){
8309 /* <var_new_child:nullable ANode> isa nullable AAnnotations */
8310 cltype = type_nullable_parser_nodes__AAnnotations.color;
8311 idtype = type_nullable_parser_nodes__AAnnotations.id;
8312 if(var_new_child == NULL) {
8313 var11 = 1;
8314 } else {
8315 if(cltype >= var_new_child->type->table_size) {
8316 var11 = 0;
8317 } else {
8318 var11 = var_new_child->type->type_table[cltype] == idtype;
8319 }
8320 }
8321 if (unlikely(!var11)) {
8322 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
8323 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AAnnotations", var_class_name);
8324 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5629);
8325 show_backtrace(1);
8326 }
8327 {
8328 parser_prod__ASuperstringExpr__n_annotations_61d(self, var_new_child); /* Direct call parser_prod#ASuperstringExpr#n_annotations= on <self:ASuperstringExpr>*/
8329 }
8330 goto RET_LABEL;
8331 } else {
8332 }
8333 RET_LABEL:;
8334 }
8335 /* method parser_prod#ASuperstringExpr#replace_child for (self: Object, ANode, nullable ANode) */
8336 void VIRTUAL_parser_prod__ASuperstringExpr__replace_child(val* self, val* p0, val* p1) {
8337 parser_prod__ASuperstringExpr__replace_child(self, p0, p1); /* Direct call parser_prod#ASuperstringExpr#replace_child on <self:Object(ASuperstringExpr)>*/
8338 RET_LABEL:;
8339 }
8340 /* method parser_prod#ASuperstringExpr#n_annotations= for (self: ASuperstringExpr, nullable AAnnotations) */
8341 void parser_prod__ASuperstringExpr__n_annotations_61d(val* self, val* p0) {
8342 val* var_node /* var node: nullable AAnnotations */;
8343 val* var /* : null */;
8344 short int var1 /* : Bool */;
8345 short int var2 /* : Bool */;
8346 val* var_other /* var other: nullable Object */;
8347 short int var4 /* : Bool */;
8348 short int var5 /* : Bool */;
8349 short int var6 /* : Bool */;
8350 var_node = p0;
8351 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_node; /* _n_annotations on <self:ASuperstringExpr> */
8352 var = NULL;
8353 if (var_node == NULL) {
8354 var1 = 0; /* is null */
8355 } else {
8356 var1 = 1; /* arg is null and recv is not */
8357 }
8358 if (0) {
8359 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AAnnotations> */
8360 var_other = var;
8361 {
8362 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AAnnotations(AAnnotations)>*/;
8363 var4 = var5;
8364 }
8365 var6 = !var4;
8366 var2 = var6;
8367 goto RET_LABEL3;
8368 RET_LABEL3:(void)0;
8369 }
8370 var1 = var2;
8371 }
8372 if (var1){
8373 {
8374 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AAnnotations(AAnnotations)> */
8375 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AAnnotations(AAnnotations)> */
8376 RET_LABEL7:(void)0;
8377 }
8378 }
8379 } else {
8380 }
8381 RET_LABEL:;
8382 }
8383 /* method parser_prod#ASuperstringExpr#n_annotations= for (self: Object, nullable AAnnotations) */
8384 void VIRTUAL_parser_prod__ASuperstringExpr__n_annotations_61d(val* self, val* p0) {
8385 parser_prod__ASuperstringExpr__n_annotations_61d(self, p0); /* Direct call parser_prod#ASuperstringExpr#n_annotations= on <self:Object(ASuperstringExpr)>*/
8386 RET_LABEL:;
8387 }
8388 /* method parser_prod#ASuperstringExpr#visit_all for (self: ASuperstringExpr, Visitor) */
8389 void parser_prod__ASuperstringExpr__visit_all(val* self, val* p0) {
8390 val* var_v /* var v: Visitor */;
8391 val* var /* : ANodes[AExpr] */;
8392 val* var2 /* : ANodes[AExpr] */;
8393 val* var3 /* : nullable AAnnotations */;
8394 var_v = p0;
8395 {
8396 { /* Inline parser_nodes#ASuperstringExpr#n_exprs (self) on <self:ASuperstringExpr> */
8397 var2 = self->attrs[COLOR_parser_nodes__ASuperstringExpr___n_exprs].val; /* _n_exprs on <self:ASuperstringExpr> */
8398 if (unlikely(var2 == NULL)) {
8399 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
8400 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1861);
8401 show_backtrace(1);
8402 }
8403 var = var2;
8404 RET_LABEL1:(void)0;
8405 }
8406 }
8407 {
8408 parser_nodes__ANodes__visit_all(var, var_v); /* Direct call parser_nodes#ANodes#visit_all on <var:ANodes[AExpr]>*/
8409 }
8410 var3 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:ASuperstringExpr> */
8411 {
8412 parser_nodes__Visitor__enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8413 }
8414 RET_LABEL:;
8415 }
8416 /* method parser_prod#ASuperstringExpr#visit_all for (self: Object, Visitor) */
8417 void VIRTUAL_parser_prod__ASuperstringExpr__visit_all(val* self, val* p0) {
8418 parser_prod__ASuperstringExpr__visit_all(self, p0); /* Direct call parser_prod#ASuperstringExpr#visit_all on <self:Object(ASuperstringExpr)>*/
8419 RET_LABEL:;
8420 }
8421 /* method parser_prod#AParExpr#init_aparexpr for (self: AParExpr, nullable TOpar, nullable AExpr, nullable TCpar, nullable AAnnotations) */
8422 void parser_prod__AParExpr__init_aparexpr(val* self, val* p0, val* p1, val* p2, val* p3) {
8423 val* var_n_opar /* var n_opar: nullable TOpar */;
8424 val* var_n_expr /* var n_expr: nullable AExpr */;
8425 val* var_n_cpar /* var n_cpar: nullable TCpar */;
8426 val* var_n_annotations /* var n_annotations: nullable AAnnotations */;
8427 val* var /* : null */;
8428 short int var4 /* : Bool */;
8429 short int var5 /* : Bool */;
8430 val* var_other /* var other: nullable Object */;
8431 short int var7 /* : Bool */;
8432 short int var8 /* : Bool */;
8433 short int var9 /* : Bool */;
8434 var_n_opar = p0;
8435 var_n_expr = p1;
8436 var_n_cpar = p2;
8437 var_n_annotations = p3;
8438 if (unlikely(var_n_opar == NULL)) {
8439 PRINT_ERROR("Runtime error: %s", "Cast failed");
8440 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5655);
8441 show_backtrace(1);
8442 }
8443 self->attrs[COLOR_parser_nodes__AParExpr___n_opar].val = var_n_opar; /* _n_opar on <self:AParExpr> */
8444 if (var_n_opar == NULL) {
8445 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8446 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5656);
8447 show_backtrace(1);
8448 } else {
8449 { /* Inline parser_nodes#ANode#parent= (var_n_opar,self) on <var_n_opar:nullable TOpar> */
8450 if (unlikely(var_n_opar == 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_opar->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_opar:nullable TOpar> */
8456 RET_LABEL1:(void)0;
8457 }
8458 }
8459 if (unlikely(var_n_expr == NULL)) {
8460 PRINT_ERROR("Runtime error: %s", "Cast failed");
8461 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5657);
8462 show_backtrace(1);
8463 }
8464 self->attrs[COLOR_parser_nodes__AParExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AParExpr> */
8465 if (var_n_expr == NULL) {
8466 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8467 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5658);
8468 show_backtrace(1);
8469 } else {
8470 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
8471 if (unlikely(var_n_expr == NULL)) {
8472 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8473 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
8474 show_backtrace(1);
8475 }
8476 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
8477 RET_LABEL2:(void)0;
8478 }
8479 }
8480 if (unlikely(var_n_cpar == NULL)) {
8481 PRINT_ERROR("Runtime error: %s", "Cast failed");
8482 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5659);
8483 show_backtrace(1);
8484 }
8485 self->attrs[COLOR_parser_nodes__AParExpr___n_cpar].val = var_n_cpar; /* _n_cpar on <self:AParExpr> */
8486 if (var_n_cpar == NULL) {
8487 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8488 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5660);
8489 show_backtrace(1);
8490 } else {
8491 { /* Inline parser_nodes#ANode#parent= (var_n_cpar,self) on <var_n_cpar:nullable TCpar> */
8492 if (unlikely(var_n_cpar == NULL)) {
8493 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8494 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
8495 show_backtrace(1);
8496 }
8497 var_n_cpar->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_cpar:nullable TCpar> */
8498 RET_LABEL3:(void)0;
8499 }
8500 }
8501 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:AParExpr> */
8502 var = NULL;
8503 if (var_n_annotations == NULL) {
8504 var4 = 0; /* is null */
8505 } else {
8506 var4 = 1; /* arg is null and recv is not */
8507 }
8508 if (0) {
8509 { /* Inline kernel#Object#!= (var_n_annotations,var) on <var_n_annotations:nullable AAnnotations> */
8510 var_other = var;
8511 {
8512 var8 = ((short int (*)(val*, val*))(var_n_annotations->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_annotations, var_other) /* == on <var_n_annotations:nullable AAnnotations(AAnnotations)>*/;
8513 var7 = var8;
8514 }
8515 var9 = !var7;
8516 var5 = var9;
8517 goto RET_LABEL6;
8518 RET_LABEL6:(void)0;
8519 }
8520 var4 = var5;
8521 }
8522 if (var4){
8523 {
8524 { /* Inline parser_nodes#ANode#parent= (var_n_annotations,self) on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
8525 var_n_annotations->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
8526 RET_LABEL10:(void)0;
8527 }
8528 }
8529 } else {
8530 }
8531 RET_LABEL:;
8532 }
8533 /* method parser_prod#AParExpr#init_aparexpr for (self: Object, nullable TOpar, nullable AExpr, nullable TCpar, nullable AAnnotations) */
8534 void VIRTUAL_parser_prod__AParExpr__init_aparexpr(val* self, val* p0, val* p1, val* p2, val* p3) {
8535 parser_prod__AParExpr__init_aparexpr(self, p0, p1, p2, p3); /* Direct call parser_prod#AParExpr#init_aparexpr on <self:Object(AParExpr)>*/
8536 RET_LABEL:;
8537 }
8538 /* method parser_prod#AParExpr#replace_child for (self: AParExpr, ANode, nullable ANode) */
8539 void parser_prod__AParExpr__replace_child(val* self, val* p0, val* p1) {
8540 val* var_old_child /* var old_child: ANode */;
8541 val* var_new_child /* var new_child: nullable ANode */;
8542 val* var /* : TOpar */;
8543 short int var1 /* : Bool */;
8544 short int var2 /* : Bool */;
8545 val* var_other /* var other: nullable Object */;
8546 short int var4 /* : Bool */;
8547 short int var6 /* : Bool */;
8548 short int var7 /* : Bool */;
8549 int cltype;
8550 int idtype;
8551 const char* var_class_name;
8552 val* var8 /* : AExpr */;
8553 short int var9 /* : Bool */;
8554 short int var10 /* : Bool */;
8555 short int var12 /* : Bool */;
8556 short int var14 /* : Bool */;
8557 short int var15 /* : Bool */;
8558 int cltype16;
8559 int idtype17;
8560 const char* var_class_name18;
8561 val* var19 /* : TCpar */;
8562 short int var20 /* : Bool */;
8563 short int var21 /* : Bool */;
8564 short int var23 /* : Bool */;
8565 short int var25 /* : Bool */;
8566 short int var26 /* : Bool */;
8567 int cltype27;
8568 int idtype28;
8569 const char* var_class_name29;
8570 val* var30 /* : nullable AAnnotations */;
8571 short int var31 /* : Bool */;
8572 short int var32 /* : Bool */;
8573 short int var34 /* : Bool */;
8574 short int var36 /* : Bool */;
8575 short int var37 /* : Bool */;
8576 int cltype38;
8577 int idtype39;
8578 const char* var_class_name40;
8579 var_old_child = p0;
8580 var_new_child = p1;
8581 var = self->attrs[COLOR_parser_nodes__AParExpr___n_opar].val; /* _n_opar on <self:AParExpr> */
8582 if (unlikely(var == NULL)) {
8583 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_opar");
8584 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5667);
8585 show_backtrace(1);
8586 }
8587 {
8588 { /* Inline kernel#Object#== (var,var_old_child) on <var:TOpar> */
8589 var_other = var_old_child;
8590 {
8591 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TOpar> */
8592 var6 = var == var_other;
8593 var4 = var6;
8594 goto RET_LABEL5;
8595 RET_LABEL5:(void)0;
8596 }
8597 }
8598 var2 = var4;
8599 goto RET_LABEL3;
8600 RET_LABEL3:(void)0;
8601 }
8602 var1 = var2;
8603 }
8604 if (var1){
8605 /* <var_new_child:nullable ANode> isa TOpar */
8606 cltype = type_parser_nodes__TOpar.color;
8607 idtype = type_parser_nodes__TOpar.id;
8608 if(var_new_child == NULL) {
8609 var7 = 0;
8610 } else {
8611 if(cltype >= var_new_child->type->table_size) {
8612 var7 = 0;
8613 } else {
8614 var7 = var_new_child->type->type_table[cltype] == idtype;
8615 }
8616 }
8617 if (unlikely(!var7)) {
8618 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
8619 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TOpar", var_class_name);
8620 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5668);
8621 show_backtrace(1);
8622 }
8623 {
8624 parser_prod__AParExpr__n_opar_61d(self, var_new_child); /* Direct call parser_prod#AParExpr#n_opar= on <self:AParExpr>*/
8625 }
8626 goto RET_LABEL;
8627 } else {
8628 }
8629 var8 = self->attrs[COLOR_parser_nodes__AParExpr___n_expr].val; /* _n_expr on <self:AParExpr> */
8630 if (unlikely(var8 == NULL)) {
8631 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
8632 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5671);
8633 show_backtrace(1);
8634 }
8635 {
8636 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExpr> */
8637 var_other = var_old_child;
8638 {
8639 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExpr> */
8640 var14 = var8 == var_other;
8641 var12 = var14;
8642 goto RET_LABEL13;
8643 RET_LABEL13:(void)0;
8644 }
8645 }
8646 var10 = var12;
8647 goto RET_LABEL11;
8648 RET_LABEL11:(void)0;
8649 }
8650 var9 = var10;
8651 }
8652 if (var9){
8653 /* <var_new_child:nullable ANode> isa AExpr */
8654 cltype16 = type_parser_nodes__AExpr.color;
8655 idtype17 = type_parser_nodes__AExpr.id;
8656 if(var_new_child == NULL) {
8657 var15 = 0;
8658 } else {
8659 if(cltype16 >= var_new_child->type->table_size) {
8660 var15 = 0;
8661 } else {
8662 var15 = var_new_child->type->type_table[cltype16] == idtype17;
8663 }
8664 }
8665 if (unlikely(!var15)) {
8666 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
8667 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name18);
8668 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5672);
8669 show_backtrace(1);
8670 }
8671 {
8672 parser_prod__AParExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AParExpr#n_expr= on <self:AParExpr>*/
8673 }
8674 goto RET_LABEL;
8675 } else {
8676 }
8677 var19 = self->attrs[COLOR_parser_nodes__AParExpr___n_cpar].val; /* _n_cpar on <self:AParExpr> */
8678 if (unlikely(var19 == NULL)) {
8679 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_cpar");
8680 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5675);
8681 show_backtrace(1);
8682 }
8683 {
8684 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:TCpar> */
8685 var_other = var_old_child;
8686 {
8687 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:TCpar> */
8688 var25 = var19 == var_other;
8689 var23 = var25;
8690 goto RET_LABEL24;
8691 RET_LABEL24:(void)0;
8692 }
8693 }
8694 var21 = var23;
8695 goto RET_LABEL22;
8696 RET_LABEL22:(void)0;
8697 }
8698 var20 = var21;
8699 }
8700 if (var20){
8701 /* <var_new_child:nullable ANode> isa TCpar */
8702 cltype27 = type_parser_nodes__TCpar.color;
8703 idtype28 = type_parser_nodes__TCpar.id;
8704 if(var_new_child == NULL) {
8705 var26 = 0;
8706 } else {
8707 if(cltype27 >= var_new_child->type->table_size) {
8708 var26 = 0;
8709 } else {
8710 var26 = var_new_child->type->type_table[cltype27] == idtype28;
8711 }
8712 }
8713 if (unlikely(!var26)) {
8714 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
8715 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TCpar", var_class_name29);
8716 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5676);
8717 show_backtrace(1);
8718 }
8719 {
8720 parser_prod__AParExpr__n_cpar_61d(self, var_new_child); /* Direct call parser_prod#AParExpr#n_cpar= on <self:AParExpr>*/
8721 }
8722 goto RET_LABEL;
8723 } else {
8724 }
8725 var30 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AParExpr> */
8726 if (var30 == NULL) {
8727 var31 = 0; /* <var_old_child:ANode> cannot be null */
8728 } else {
8729 { /* Inline kernel#Object#== (var30,var_old_child) on <var30:nullable AAnnotations> */
8730 var_other = var_old_child;
8731 {
8732 { /* Inline kernel#Object#is_same_instance (var30,var_other) on <var30:nullable AAnnotations(AAnnotations)> */
8733 var36 = var30 == var_other;
8734 var34 = var36;
8735 goto RET_LABEL35;
8736 RET_LABEL35:(void)0;
8737 }
8738 }
8739 var32 = var34;
8740 goto RET_LABEL33;
8741 RET_LABEL33:(void)0;
8742 }
8743 var31 = var32;
8744 }
8745 if (var31){
8746 /* <var_new_child:nullable ANode> isa nullable AAnnotations */
8747 cltype38 = type_nullable_parser_nodes__AAnnotations.color;
8748 idtype39 = type_nullable_parser_nodes__AAnnotations.id;
8749 if(var_new_child == NULL) {
8750 var37 = 1;
8751 } else {
8752 if(cltype38 >= var_new_child->type->table_size) {
8753 var37 = 0;
8754 } else {
8755 var37 = var_new_child->type->type_table[cltype38] == idtype39;
8756 }
8757 }
8758 if (unlikely(!var37)) {
8759 var_class_name40 = var_new_child == NULL ? "null" : var_new_child->type->name;
8760 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AAnnotations", var_class_name40);
8761 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5680);
8762 show_backtrace(1);
8763 }
8764 {
8765 parser_prod__AParExpr__n_annotations_61d(self, var_new_child); /* Direct call parser_prod#AParExpr#n_annotations= on <self:AParExpr>*/
8766 }
8767 goto RET_LABEL;
8768 } else {
8769 }
8770 RET_LABEL:;
8771 }
8772 /* method parser_prod#AParExpr#replace_child for (self: Object, ANode, nullable ANode) */
8773 void VIRTUAL_parser_prod__AParExpr__replace_child(val* self, val* p0, val* p1) {
8774 parser_prod__AParExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AParExpr#replace_child on <self:Object(AParExpr)>*/
8775 RET_LABEL:;
8776 }
8777 /* method parser_prod#AParExpr#n_opar= for (self: AParExpr, TOpar) */
8778 void parser_prod__AParExpr__n_opar_61d(val* self, val* p0) {
8779 val* var_node /* var node: TOpar */;
8780 var_node = p0;
8781 self->attrs[COLOR_parser_nodes__AParExpr___n_opar].val = var_node; /* _n_opar on <self:AParExpr> */
8782 {
8783 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TOpar> */
8784 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TOpar> */
8785 RET_LABEL1:(void)0;
8786 }
8787 }
8788 RET_LABEL:;
8789 }
8790 /* method parser_prod#AParExpr#n_opar= for (self: Object, TOpar) */
8791 void VIRTUAL_parser_prod__AParExpr__n_opar_61d(val* self, val* p0) {
8792 parser_prod__AParExpr__n_opar_61d(self, p0); /* Direct call parser_prod#AParExpr#n_opar= on <self:Object(AParExpr)>*/
8793 RET_LABEL:;
8794 }
8795 /* method parser_prod#AParExpr#n_expr= for (self: AParExpr, AExpr) */
8796 void parser_prod__AParExpr__n_expr_61d(val* self, val* p0) {
8797 val* var_node /* var node: AExpr */;
8798 var_node = p0;
8799 self->attrs[COLOR_parser_nodes__AParExpr___n_expr].val = var_node; /* _n_expr on <self:AParExpr> */
8800 {
8801 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
8802 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
8803 RET_LABEL1:(void)0;
8804 }
8805 }
8806 RET_LABEL:;
8807 }
8808 /* method parser_prod#AParExpr#n_expr= for (self: Object, AExpr) */
8809 void VIRTUAL_parser_prod__AParExpr__n_expr_61d(val* self, val* p0) {
8810 parser_prod__AParExpr__n_expr_61d(self, p0); /* Direct call parser_prod#AParExpr#n_expr= on <self:Object(AParExpr)>*/
8811 RET_LABEL:;
8812 }
8813 /* method parser_prod#AParExpr#n_cpar= for (self: AParExpr, TCpar) */
8814 void parser_prod__AParExpr__n_cpar_61d(val* self, val* p0) {
8815 val* var_node /* var node: TCpar */;
8816 var_node = p0;
8817 self->attrs[COLOR_parser_nodes__AParExpr___n_cpar].val = var_node; /* _n_cpar on <self:AParExpr> */
8818 {
8819 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TCpar> */
8820 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TCpar> */
8821 RET_LABEL1:(void)0;
8822 }
8823 }
8824 RET_LABEL:;
8825 }
8826 /* method parser_prod#AParExpr#n_cpar= for (self: Object, TCpar) */
8827 void VIRTUAL_parser_prod__AParExpr__n_cpar_61d(val* self, val* p0) {
8828 parser_prod__AParExpr__n_cpar_61d(self, p0); /* Direct call parser_prod#AParExpr#n_cpar= on <self:Object(AParExpr)>*/
8829 RET_LABEL:;
8830 }
8831 /* method parser_prod#AParExpr#n_annotations= for (self: AParExpr, nullable AAnnotations) */
8832 void parser_prod__AParExpr__n_annotations_61d(val* self, val* p0) {
8833 val* var_node /* var node: nullable AAnnotations */;
8834 val* var /* : null */;
8835 short int var1 /* : Bool */;
8836 short int var2 /* : Bool */;
8837 val* var_other /* var other: nullable Object */;
8838 short int var4 /* : Bool */;
8839 short int var5 /* : Bool */;
8840 short int var6 /* : Bool */;
8841 var_node = p0;
8842 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_node; /* _n_annotations on <self:AParExpr> */
8843 var = NULL;
8844 if (var_node == NULL) {
8845 var1 = 0; /* is null */
8846 } else {
8847 var1 = 1; /* arg is null and recv is not */
8848 }
8849 if (0) {
8850 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AAnnotations> */
8851 var_other = var;
8852 {
8853 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AAnnotations(AAnnotations)>*/;
8854 var4 = var5;
8855 }
8856 var6 = !var4;
8857 var2 = var6;
8858 goto RET_LABEL3;
8859 RET_LABEL3:(void)0;
8860 }
8861 var1 = var2;
8862 }
8863 if (var1){
8864 {
8865 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AAnnotations(AAnnotations)> */
8866 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AAnnotations(AAnnotations)> */
8867 RET_LABEL7:(void)0;
8868 }
8869 }
8870 } else {
8871 }
8872 RET_LABEL:;
8873 }
8874 /* method parser_prod#AParExpr#n_annotations= for (self: Object, nullable AAnnotations) */
8875 void VIRTUAL_parser_prod__AParExpr__n_annotations_61d(val* self, val* p0) {
8876 parser_prod__AParExpr__n_annotations_61d(self, p0); /* Direct call parser_prod#AParExpr#n_annotations= on <self:Object(AParExpr)>*/
8877 RET_LABEL:;
8878 }
8879 /* method parser_prod#AParExpr#visit_all for (self: AParExpr, Visitor) */
8880 void parser_prod__AParExpr__visit_all(val* self, val* p0) {
8881 val* var_v /* var v: Visitor */;
8882 val* var /* : TOpar */;
8883 val* var1 /* : AExpr */;
8884 val* var2 /* : TCpar */;
8885 val* var3 /* : nullable AAnnotations */;
8886 var_v = p0;
8887 var = self->attrs[COLOR_parser_nodes__AParExpr___n_opar].val; /* _n_opar on <self:AParExpr> */
8888 if (unlikely(var == NULL)) {
8889 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_opar");
8890 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5709);
8891 show_backtrace(1);
8892 }
8893 {
8894 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8895 }
8896 var1 = self->attrs[COLOR_parser_nodes__AParExpr___n_expr].val; /* _n_expr on <self:AParExpr> */
8897 if (unlikely(var1 == NULL)) {
8898 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
8899 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5710);
8900 show_backtrace(1);
8901 }
8902 {
8903 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8904 }
8905 var2 = self->attrs[COLOR_parser_nodes__AParExpr___n_cpar].val; /* _n_cpar on <self:AParExpr> */
8906 if (unlikely(var2 == NULL)) {
8907 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_cpar");
8908 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5711);
8909 show_backtrace(1);
8910 }
8911 {
8912 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8913 }
8914 var3 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AParExpr> */
8915 {
8916 parser_nodes__Visitor__enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8917 }
8918 RET_LABEL:;
8919 }
8920 /* method parser_prod#AParExpr#visit_all for (self: Object, Visitor) */
8921 void VIRTUAL_parser_prod__AParExpr__visit_all(val* self, val* p0) {
8922 parser_prod__AParExpr__visit_all(self, p0); /* Direct call parser_prod#AParExpr#visit_all on <self:Object(AParExpr)>*/
8923 RET_LABEL:;
8924 }
8925 /* method parser_prod#AAsCastExpr#init_aascastexpr for (self: AAsCastExpr, nullable AExpr, nullable TKwas, nullable TOpar, nullable AType, nullable TCpar) */
8926 void parser_prod__AAsCastExpr__init_aascastexpr(val* self, val* p0, val* p1, val* p2, val* p3, val* p4) {
8927 val* var_n_expr /* var n_expr: nullable AExpr */;
8928 val* var_n_kwas /* var n_kwas: nullable TKwas */;
8929 val* var_n_opar /* var n_opar: nullable TOpar */;
8930 val* var_n_type /* var n_type: nullable AType */;
8931 val* var_n_cpar /* var n_cpar: nullable TCpar */;
8932 val* var /* : null */;
8933 short int var3 /* : Bool */;
8934 short int var4 /* : Bool */;
8935 val* var_other /* var other: nullable Object */;
8936 short int var6 /* : Bool */;
8937 short int var7 /* : Bool */;
8938 short int var8 /* : Bool */;
8939 val* var11 /* : null */;
8940 short int var12 /* : Bool */;
8941 short int var13 /* : Bool */;
8942 short int var15 /* : Bool */;
8943 short int var16 /* : Bool */;
8944 short int var17 /* : Bool */;
8945 var_n_expr = p0;
8946 var_n_kwas = p1;
8947 var_n_opar = p2;
8948 var_n_type = p3;
8949 var_n_cpar = p4;
8950 if (unlikely(var_n_expr == NULL)) {
8951 PRINT_ERROR("Runtime error: %s", "Cast failed");
8952 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5724);
8953 show_backtrace(1);
8954 }
8955 self->attrs[COLOR_parser_nodes__AAsCastExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AAsCastExpr> */
8956 if (var_n_expr == NULL) {
8957 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8958 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5725);
8959 show_backtrace(1);
8960 } else {
8961 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
8962 if (unlikely(var_n_expr == NULL)) {
8963 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8964 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
8965 show_backtrace(1);
8966 }
8967 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
8968 RET_LABEL1:(void)0;
8969 }
8970 }
8971 if (unlikely(var_n_kwas == NULL)) {
8972 PRINT_ERROR("Runtime error: %s", "Cast failed");
8973 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5726);
8974 show_backtrace(1);
8975 }
8976 self->attrs[COLOR_parser_nodes__AAsCastExpr___n_kwas].val = var_n_kwas; /* _n_kwas on <self:AAsCastExpr> */
8977 if (var_n_kwas == NULL) {
8978 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8979 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5727);
8980 show_backtrace(1);
8981 } else {
8982 { /* Inline parser_nodes#ANode#parent= (var_n_kwas,self) on <var_n_kwas:nullable TKwas> */
8983 if (unlikely(var_n_kwas == NULL)) {
8984 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8985 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
8986 show_backtrace(1);
8987 }
8988 var_n_kwas->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwas:nullable TKwas> */
8989 RET_LABEL2:(void)0;
8990 }
8991 }
8992 self->attrs[COLOR_parser_nodes__AAsCastExpr___n_opar].val = var_n_opar; /* _n_opar on <self:AAsCastExpr> */
8993 var = NULL;
8994 if (var_n_opar == NULL) {
8995 var3 = 0; /* is null */
8996 } else {
8997 var3 = 1; /* arg is null and recv is not */
8998 }
8999 if (0) {
9000 { /* Inline kernel#Object#!= (var_n_opar,var) on <var_n_opar:nullable TOpar> */
9001 var_other = var;
9002 {
9003 var7 = ((short int (*)(val*, val*))(var_n_opar->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_opar, var_other) /* == on <var_n_opar:nullable TOpar(TOpar)>*/;
9004 var6 = var7;
9005 }
9006 var8 = !var6;
9007 var4 = var8;
9008 goto RET_LABEL5;
9009 RET_LABEL5:(void)0;
9010 }
9011 var3 = var4;
9012 }
9013 if (var3){
9014 {
9015 { /* Inline parser_nodes#ANode#parent= (var_n_opar,self) on <var_n_opar:nullable TOpar(TOpar)> */
9016 var_n_opar->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_opar:nullable TOpar(TOpar)> */
9017 RET_LABEL9:(void)0;
9018 }
9019 }
9020 } else {
9021 }
9022 if (unlikely(var_n_type == NULL)) {
9023 PRINT_ERROR("Runtime error: %s", "Cast failed");
9024 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5730);
9025 show_backtrace(1);
9026 }
9027 self->attrs[COLOR_parser_nodes__AAsCastExpr___n_type].val = var_n_type; /* _n_type on <self:AAsCastExpr> */
9028 if (var_n_type == NULL) {
9029 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9030 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5731);
9031 show_backtrace(1);
9032 } else {
9033 { /* Inline parser_nodes#ANode#parent= (var_n_type,self) on <var_n_type:nullable AType> */
9034 if (unlikely(var_n_type == NULL)) {
9035 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9036 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
9037 show_backtrace(1);
9038 }
9039 var_n_type->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_type:nullable AType> */
9040 RET_LABEL10:(void)0;
9041 }
9042 }
9043 self->attrs[COLOR_parser_nodes__AAsCastExpr___n_cpar].val = var_n_cpar; /* _n_cpar on <self:AAsCastExpr> */
9044 var11 = NULL;
9045 if (var_n_cpar == NULL) {
9046 var12 = 0; /* is null */
9047 } else {
9048 var12 = 1; /* arg is null and recv is not */
9049 }
9050 if (0) {
9051 { /* Inline kernel#Object#!= (var_n_cpar,var11) on <var_n_cpar:nullable TCpar> */
9052 var_other = var11;
9053 {
9054 var16 = ((short int (*)(val*, val*))(var_n_cpar->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_cpar, var_other) /* == on <var_n_cpar:nullable TCpar(TCpar)>*/;
9055 var15 = var16;
9056 }
9057 var17 = !var15;
9058 var13 = var17;
9059 goto RET_LABEL14;
9060 RET_LABEL14:(void)0;
9061 }
9062 var12 = var13;
9063 }
9064 if (var12){
9065 {
9066 { /* Inline parser_nodes#ANode#parent= (var_n_cpar,self) on <var_n_cpar:nullable TCpar(TCpar)> */
9067 var_n_cpar->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_cpar:nullable TCpar(TCpar)> */
9068 RET_LABEL18:(void)0;
9069 }
9070 }
9071 } else {
9072 }
9073 RET_LABEL:;
9074 }
9075 /* method parser_prod#AAsCastExpr#init_aascastexpr for (self: Object, nullable AExpr, nullable TKwas, nullable TOpar, nullable AType, nullable TCpar) */
9076 void VIRTUAL_parser_prod__AAsCastExpr__init_aascastexpr(val* self, val* p0, val* p1, val* p2, val* p3, val* p4) {
9077 parser_prod__AAsCastExpr__init_aascastexpr(self, p0, p1, p2, p3, p4); /* Direct call parser_prod#AAsCastExpr#init_aascastexpr on <self:Object(AAsCastExpr)>*/
9078 RET_LABEL:;
9079 }
9080 /* method parser_prod#AAsCastExpr#replace_child for (self: AAsCastExpr, ANode, nullable ANode) */
9081 void parser_prod__AAsCastExpr__replace_child(val* self, val* p0, val* p1) {
9082 val* var_old_child /* var old_child: ANode */;
9083 val* var_new_child /* var new_child: nullable ANode */;
9084 val* var /* : AExpr */;
9085 short int var1 /* : Bool */;
9086 short int var2 /* : Bool */;
9087 val* var_other /* var other: nullable Object */;
9088 short int var4 /* : Bool */;
9089 short int var6 /* : Bool */;
9090 short int var7 /* : Bool */;
9091 int cltype;
9092 int idtype;
9093 const char* var_class_name;
9094 val* var8 /* : TKwas */;
9095 short int var9 /* : Bool */;
9096 short int var10 /* : Bool */;
9097 short int var12 /* : Bool */;
9098 short int var14 /* : Bool */;
9099 short int var15 /* : Bool */;
9100 int cltype16;
9101 int idtype17;
9102 const char* var_class_name18;
9103 val* var19 /* : nullable TOpar */;
9104 short int var20 /* : Bool */;
9105 short int var21 /* : Bool */;
9106 short int var23 /* : Bool */;
9107 short int var25 /* : Bool */;
9108 short int var26 /* : Bool */;
9109 int cltype27;
9110 int idtype28;
9111 const char* var_class_name29;
9112 val* var30 /* : AType */;
9113 short int var31 /* : Bool */;
9114 short int var32 /* : Bool */;
9115 short int var34 /* : Bool */;
9116 short int var36 /* : Bool */;
9117 short int var37 /* : Bool */;
9118 int cltype38;
9119 int idtype39;
9120 const char* var_class_name40;
9121 val* var41 /* : nullable TCpar */;
9122 short int var42 /* : Bool */;
9123 short int var43 /* : Bool */;
9124 short int var45 /* : Bool */;
9125 short int var47 /* : Bool */;
9126 short int var48 /* : Bool */;
9127 int cltype49;
9128 int idtype50;
9129 const char* var_class_name51;
9130 var_old_child = p0;
9131 var_new_child = p1;
9132 var = self->attrs[COLOR_parser_nodes__AAsCastExpr___n_expr].val; /* _n_expr on <self:AAsCastExpr> */
9133 if (unlikely(var == NULL)) {
9134 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
9135 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5738);
9136 show_backtrace(1);
9137 }
9138 {
9139 { /* Inline kernel#Object#== (var,var_old_child) on <var:AExpr> */
9140 var_other = var_old_child;
9141 {
9142 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AExpr> */
9143 var6 = var == var_other;
9144 var4 = var6;
9145 goto RET_LABEL5;
9146 RET_LABEL5:(void)0;
9147 }
9148 }
9149 var2 = var4;
9150 goto RET_LABEL3;
9151 RET_LABEL3:(void)0;
9152 }
9153 var1 = var2;
9154 }
9155 if (var1){
9156 /* <var_new_child:nullable ANode> isa AExpr */
9157 cltype = type_parser_nodes__AExpr.color;
9158 idtype = type_parser_nodes__AExpr.id;
9159 if(var_new_child == NULL) {
9160 var7 = 0;
9161 } else {
9162 if(cltype >= var_new_child->type->table_size) {
9163 var7 = 0;
9164 } else {
9165 var7 = var_new_child->type->type_table[cltype] == idtype;
9166 }
9167 }
9168 if (unlikely(!var7)) {
9169 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
9170 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name);
9171 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5739);
9172 show_backtrace(1);
9173 }
9174 {
9175 parser_prod__AAsCastExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AAsCastExpr#n_expr= on <self:AAsCastExpr>*/
9176 }
9177 goto RET_LABEL;
9178 } else {
9179 }
9180 var8 = self->attrs[COLOR_parser_nodes__AAsCastExpr___n_kwas].val; /* _n_kwas on <self:AAsCastExpr> */
9181 if (unlikely(var8 == NULL)) {
9182 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwas");
9183 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5742);
9184 show_backtrace(1);
9185 }
9186 {
9187 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:TKwas> */
9188 var_other = var_old_child;
9189 {
9190 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:TKwas> */
9191 var14 = var8 == var_other;
9192 var12 = var14;
9193 goto RET_LABEL13;
9194 RET_LABEL13:(void)0;
9195 }
9196 }
9197 var10 = var12;
9198 goto RET_LABEL11;
9199 RET_LABEL11:(void)0;
9200 }
9201 var9 = var10;
9202 }
9203 if (var9){
9204 /* <var_new_child:nullable ANode> isa TKwas */
9205 cltype16 = type_parser_nodes__TKwas.color;
9206 idtype17 = type_parser_nodes__TKwas.id;
9207 if(var_new_child == NULL) {
9208 var15 = 0;
9209 } else {
9210 if(cltype16 >= var_new_child->type->table_size) {
9211 var15 = 0;
9212 } else {
9213 var15 = var_new_child->type->type_table[cltype16] == idtype17;
9214 }
9215 }
9216 if (unlikely(!var15)) {
9217 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
9218 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwas", var_class_name18);
9219 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5743);
9220 show_backtrace(1);
9221 }
9222 {
9223 parser_prod__AAsCastExpr__n_kwas_61d(self, var_new_child); /* Direct call parser_prod#AAsCastExpr#n_kwas= on <self:AAsCastExpr>*/
9224 }
9225 goto RET_LABEL;
9226 } else {
9227 }
9228 var19 = self->attrs[COLOR_parser_nodes__AAsCastExpr___n_opar].val; /* _n_opar on <self:AAsCastExpr> */
9229 if (var19 == NULL) {
9230 var20 = 0; /* <var_old_child:ANode> cannot be null */
9231 } else {
9232 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:nullable TOpar> */
9233 var_other = var_old_child;
9234 {
9235 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:nullable TOpar(TOpar)> */
9236 var25 = var19 == var_other;
9237 var23 = var25;
9238 goto RET_LABEL24;
9239 RET_LABEL24:(void)0;
9240 }
9241 }
9242 var21 = var23;
9243 goto RET_LABEL22;
9244 RET_LABEL22:(void)0;
9245 }
9246 var20 = var21;
9247 }
9248 if (var20){
9249 /* <var_new_child:nullable ANode> isa nullable TOpar */
9250 cltype27 = type_nullable_parser_nodes__TOpar.color;
9251 idtype28 = type_nullable_parser_nodes__TOpar.id;
9252 if(var_new_child == NULL) {
9253 var26 = 1;
9254 } else {
9255 if(cltype27 >= var_new_child->type->table_size) {
9256 var26 = 0;
9257 } else {
9258 var26 = var_new_child->type->type_table[cltype27] == idtype28;
9259 }
9260 }
9261 if (unlikely(!var26)) {
9262 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
9263 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TOpar", var_class_name29);
9264 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5747);
9265 show_backtrace(1);
9266 }
9267 {
9268 parser_prod__AAsCastExpr__n_opar_61d(self, var_new_child); /* Direct call parser_prod#AAsCastExpr#n_opar= on <self:AAsCastExpr>*/
9269 }
9270 goto RET_LABEL;
9271 } else {
9272 }
9273 var30 = self->attrs[COLOR_parser_nodes__AAsCastExpr___n_type].val; /* _n_type on <self:AAsCastExpr> */
9274 if (unlikely(var30 == NULL)) {
9275 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
9276 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5750);
9277 show_backtrace(1);
9278 }
9279 {
9280 { /* Inline kernel#Object#== (var30,var_old_child) on <var30:AType> */
9281 var_other = var_old_child;
9282 {
9283 { /* Inline kernel#Object#is_same_instance (var30,var_other) on <var30:AType> */
9284 var36 = var30 == var_other;
9285 var34 = var36;
9286 goto RET_LABEL35;
9287 RET_LABEL35:(void)0;
9288 }
9289 }
9290 var32 = var34;
9291 goto RET_LABEL33;
9292 RET_LABEL33:(void)0;
9293 }
9294 var31 = var32;
9295 }
9296 if (var31){
9297 /* <var_new_child:nullable ANode> isa AType */
9298 cltype38 = type_parser_nodes__AType.color;
9299 idtype39 = type_parser_nodes__AType.id;
9300 if(var_new_child == NULL) {
9301 var37 = 0;
9302 } else {
9303 if(cltype38 >= var_new_child->type->table_size) {
9304 var37 = 0;
9305 } else {
9306 var37 = var_new_child->type->type_table[cltype38] == idtype39;
9307 }
9308 }
9309 if (unlikely(!var37)) {
9310 var_class_name40 = var_new_child == NULL ? "null" : var_new_child->type->name;
9311 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AType", var_class_name40);
9312 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5751);
9313 show_backtrace(1);
9314 }
9315 {
9316 parser_prod__AAsCastExpr__n_type_61d(self, var_new_child); /* Direct call parser_prod#AAsCastExpr#n_type= on <self:AAsCastExpr>*/
9317 }
9318 goto RET_LABEL;
9319 } else {
9320 }
9321 var41 = self->attrs[COLOR_parser_nodes__AAsCastExpr___n_cpar].val; /* _n_cpar on <self:AAsCastExpr> */
9322 if (var41 == NULL) {
9323 var42 = 0; /* <var_old_child:ANode> cannot be null */
9324 } else {
9325 { /* Inline kernel#Object#== (var41,var_old_child) on <var41:nullable TCpar> */
9326 var_other = var_old_child;
9327 {
9328 { /* Inline kernel#Object#is_same_instance (var41,var_other) on <var41:nullable TCpar(TCpar)> */
9329 var47 = var41 == var_other;
9330 var45 = var47;
9331 goto RET_LABEL46;
9332 RET_LABEL46:(void)0;
9333 }
9334 }
9335 var43 = var45;
9336 goto RET_LABEL44;
9337 RET_LABEL44:(void)0;
9338 }
9339 var42 = var43;
9340 }
9341 if (var42){
9342 /* <var_new_child:nullable ANode> isa nullable TCpar */
9343 cltype49 = type_nullable_parser_nodes__TCpar.color;
9344 idtype50 = type_nullable_parser_nodes__TCpar.id;
9345 if(var_new_child == NULL) {
9346 var48 = 1;
9347 } else {
9348 if(cltype49 >= var_new_child->type->table_size) {
9349 var48 = 0;
9350 } else {
9351 var48 = var_new_child->type->type_table[cltype49] == idtype50;
9352 }
9353 }
9354 if (unlikely(!var48)) {
9355 var_class_name51 = var_new_child == NULL ? "null" : var_new_child->type->name;
9356 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TCpar", var_class_name51);
9357 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5755);
9358 show_backtrace(1);
9359 }
9360 {
9361 parser_prod__AAsCastExpr__n_cpar_61d(self, var_new_child); /* Direct call parser_prod#AAsCastExpr#n_cpar= on <self:AAsCastExpr>*/
9362 }
9363 goto RET_LABEL;
9364 } else {
9365 }
9366 RET_LABEL:;
9367 }
9368 /* method parser_prod#AAsCastExpr#replace_child for (self: Object, ANode, nullable ANode) */
9369 void VIRTUAL_parser_prod__AAsCastExpr__replace_child(val* self, val* p0, val* p1) {
9370 parser_prod__AAsCastExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AAsCastExpr#replace_child on <self:Object(AAsCastExpr)>*/
9371 RET_LABEL:;
9372 }
9373 /* method parser_prod#AAsCastExpr#n_expr= for (self: AAsCastExpr, AExpr) */
9374 void parser_prod__AAsCastExpr__n_expr_61d(val* self, val* p0) {
9375 val* var_node /* var node: AExpr */;
9376 var_node = p0;
9377 self->attrs[COLOR_parser_nodes__AAsCastExpr___n_expr].val = var_node; /* _n_expr on <self:AAsCastExpr> */
9378 {
9379 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
9380 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
9381 RET_LABEL1:(void)0;
9382 }
9383 }
9384 RET_LABEL:;
9385 }
9386 /* method parser_prod#AAsCastExpr#n_expr= for (self: Object, AExpr) */
9387 void VIRTUAL_parser_prod__AAsCastExpr__n_expr_61d(val* self, val* p0) {
9388 parser_prod__AAsCastExpr__n_expr_61d(self, p0); /* Direct call parser_prod#AAsCastExpr#n_expr= on <self:Object(AAsCastExpr)>*/
9389 RET_LABEL:;
9390 }
9391 /* method parser_prod#AAsCastExpr#n_kwas= for (self: AAsCastExpr, TKwas) */
9392 void parser_prod__AAsCastExpr__n_kwas_61d(val* self, val* p0) {
9393 val* var_node /* var node: TKwas */;
9394 var_node = p0;
9395 self->attrs[COLOR_parser_nodes__AAsCastExpr___n_kwas].val = var_node; /* _n_kwas on <self:AAsCastExpr> */
9396 {
9397 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwas> */
9398 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwas> */
9399 RET_LABEL1:(void)0;
9400 }
9401 }
9402 RET_LABEL:;
9403 }
9404 /* method parser_prod#AAsCastExpr#n_kwas= for (self: Object, TKwas) */
9405 void VIRTUAL_parser_prod__AAsCastExpr__n_kwas_61d(val* self, val* p0) {
9406 parser_prod__AAsCastExpr__n_kwas_61d(self, p0); /* Direct call parser_prod#AAsCastExpr#n_kwas= on <self:Object(AAsCastExpr)>*/
9407 RET_LABEL:;
9408 }
9409 /* method parser_prod#AAsCastExpr#n_opar= for (self: AAsCastExpr, nullable TOpar) */
9410 void parser_prod__AAsCastExpr__n_opar_61d(val* self, val* p0) {
9411 val* var_node /* var node: nullable TOpar */;
9412 val* var /* : null */;
9413 short int var1 /* : Bool */;
9414 short int var2 /* : Bool */;
9415 val* var_other /* var other: nullable Object */;
9416 short int var4 /* : Bool */;
9417 short int var5 /* : Bool */;
9418 short int var6 /* : Bool */;
9419 var_node = p0;
9420 self->attrs[COLOR_parser_nodes__AAsCastExpr___n_opar].val = var_node; /* _n_opar on <self:AAsCastExpr> */
9421 var = NULL;
9422 if (var_node == NULL) {
9423 var1 = 0; /* is null */
9424 } else {
9425 var1 = 1; /* arg is null and recv is not */
9426 }
9427 if (0) {
9428 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable TOpar> */
9429 var_other = var;
9430 {
9431 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable TOpar(TOpar)>*/;
9432 var4 = var5;
9433 }
9434 var6 = !var4;
9435 var2 = var6;
9436 goto RET_LABEL3;
9437 RET_LABEL3:(void)0;
9438 }
9439 var1 = var2;
9440 }
9441 if (var1){
9442 {
9443 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TOpar(TOpar)> */
9444 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TOpar(TOpar)> */
9445 RET_LABEL7:(void)0;
9446 }
9447 }
9448 } else {
9449 }
9450 RET_LABEL:;
9451 }
9452 /* method parser_prod#AAsCastExpr#n_opar= for (self: Object, nullable TOpar) */
9453 void VIRTUAL_parser_prod__AAsCastExpr__n_opar_61d(val* self, val* p0) {
9454 parser_prod__AAsCastExpr__n_opar_61d(self, p0); /* Direct call parser_prod#AAsCastExpr#n_opar= on <self:Object(AAsCastExpr)>*/
9455 RET_LABEL:;
9456 }
9457 /* method parser_prod#AAsCastExpr#n_type= for (self: AAsCastExpr, AType) */
9458 void parser_prod__AAsCastExpr__n_type_61d(val* self, val* p0) {
9459 val* var_node /* var node: AType */;
9460 var_node = p0;
9461 self->attrs[COLOR_parser_nodes__AAsCastExpr___n_type].val = var_node; /* _n_type on <self:AAsCastExpr> */
9462 {
9463 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AType> */
9464 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AType> */
9465 RET_LABEL1:(void)0;
9466 }
9467 }
9468 RET_LABEL:;
9469 }
9470 /* method parser_prod#AAsCastExpr#n_type= for (self: Object, AType) */
9471 void VIRTUAL_parser_prod__AAsCastExpr__n_type_61d(val* self, val* p0) {
9472 parser_prod__AAsCastExpr__n_type_61d(self, p0); /* Direct call parser_prod#AAsCastExpr#n_type= on <self:Object(AAsCastExpr)>*/
9473 RET_LABEL:;
9474 }
9475 /* method parser_prod#AAsCastExpr#n_cpar= for (self: AAsCastExpr, nullable TCpar) */
9476 void parser_prod__AAsCastExpr__n_cpar_61d(val* self, val* p0) {
9477 val* var_node /* var node: nullable TCpar */;
9478 val* var /* : null */;
9479 short int var1 /* : Bool */;
9480 short int var2 /* : Bool */;
9481 val* var_other /* var other: nullable Object */;
9482 short int var4 /* : Bool */;
9483 short int var5 /* : Bool */;
9484 short int var6 /* : Bool */;
9485 var_node = p0;
9486 self->attrs[COLOR_parser_nodes__AAsCastExpr___n_cpar].val = var_node; /* _n_cpar on <self:AAsCastExpr> */
9487 var = NULL;
9488 if (var_node == NULL) {
9489 var1 = 0; /* is null */
9490 } else {
9491 var1 = 1; /* arg is null and recv is not */
9492 }
9493 if (0) {
9494 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable TCpar> */
9495 var_other = var;
9496 {
9497 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable TCpar(TCpar)>*/;
9498 var4 = var5;
9499 }
9500 var6 = !var4;
9501 var2 = var6;
9502 goto RET_LABEL3;
9503 RET_LABEL3:(void)0;
9504 }
9505 var1 = var2;
9506 }
9507 if (var1){
9508 {
9509 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TCpar(TCpar)> */
9510 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TCpar(TCpar)> */
9511 RET_LABEL7:(void)0;
9512 }
9513 }
9514 } else {
9515 }
9516 RET_LABEL:;
9517 }
9518 /* method parser_prod#AAsCastExpr#n_cpar= for (self: Object, nullable TCpar) */
9519 void VIRTUAL_parser_prod__AAsCastExpr__n_cpar_61d(val* self, val* p0) {
9520 parser_prod__AAsCastExpr__n_cpar_61d(self, p0); /* Direct call parser_prod#AAsCastExpr#n_cpar= on <self:Object(AAsCastExpr)>*/
9521 RET_LABEL:;
9522 }
9523 /* method parser_prod#AAsCastExpr#visit_all for (self: AAsCastExpr, Visitor) */
9524 void parser_prod__AAsCastExpr__visit_all(val* self, val* p0) {
9525 val* var_v /* var v: Visitor */;
9526 val* var /* : AExpr */;
9527 val* var1 /* : TKwas */;
9528 val* var2 /* : nullable TOpar */;
9529 val* var3 /* : AType */;
9530 val* var4 /* : nullable TCpar */;
9531 var_v = p0;
9532 var = self->attrs[COLOR_parser_nodes__AAsCastExpr___n_expr].val; /* _n_expr on <self:AAsCastExpr> */
9533 if (unlikely(var == NULL)) {
9534 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
9535 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5789);
9536 show_backtrace(1);
9537 }
9538 {
9539 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9540 }
9541 var1 = self->attrs[COLOR_parser_nodes__AAsCastExpr___n_kwas].val; /* _n_kwas on <self:AAsCastExpr> */
9542 if (unlikely(var1 == NULL)) {
9543 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwas");
9544 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5790);
9545 show_backtrace(1);
9546 }
9547 {
9548 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9549 }
9550 var2 = self->attrs[COLOR_parser_nodes__AAsCastExpr___n_opar].val; /* _n_opar on <self:AAsCastExpr> */
9551 {
9552 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9553 }
9554 var3 = self->attrs[COLOR_parser_nodes__AAsCastExpr___n_type].val; /* _n_type on <self:AAsCastExpr> */
9555 if (unlikely(var3 == NULL)) {
9556 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
9557 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5792);
9558 show_backtrace(1);
9559 }
9560 {
9561 parser_nodes__Visitor__enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9562 }
9563 var4 = self->attrs[COLOR_parser_nodes__AAsCastExpr___n_cpar].val; /* _n_cpar on <self:AAsCastExpr> */
9564 {
9565 parser_nodes__Visitor__enter_visit(var_v, var4); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9566 }
9567 RET_LABEL:;
9568 }
9569 /* method parser_prod#AAsCastExpr#visit_all for (self: Object, Visitor) */
9570 void VIRTUAL_parser_prod__AAsCastExpr__visit_all(val* self, val* p0) {
9571 parser_prod__AAsCastExpr__visit_all(self, p0); /* Direct call parser_prod#AAsCastExpr#visit_all on <self:Object(AAsCastExpr)>*/
9572 RET_LABEL:;
9573 }
9574 /* method parser_prod#AAsNotnullExpr#init_aasnotnullexpr for (self: AAsNotnullExpr, nullable AExpr, nullable TKwas, nullable TOpar, nullable TKwnot, nullable TKwnull, nullable TCpar) */
9575 void parser_prod__AAsNotnullExpr__init_aasnotnullexpr(val* self, val* p0, val* p1, val* p2, val* p3, val* p4, val* p5) {
9576 val* var_n_expr /* var n_expr: nullable AExpr */;
9577 val* var_n_kwas /* var n_kwas: nullable TKwas */;
9578 val* var_n_opar /* var n_opar: nullable TOpar */;
9579 val* var_n_kwnot /* var n_kwnot: nullable TKwnot */;
9580 val* var_n_kwnull /* var n_kwnull: nullable TKwnull */;
9581 val* var_n_cpar /* var n_cpar: nullable TCpar */;
9582 val* var /* : null */;
9583 short int var3 /* : Bool */;
9584 short int var4 /* : Bool */;
9585 val* var_other /* var other: nullable Object */;
9586 short int var6 /* : Bool */;
9587 short int var7 /* : Bool */;
9588 short int var8 /* : Bool */;
9589 val* var12 /* : null */;
9590 short int var13 /* : Bool */;
9591 short int var14 /* : Bool */;
9592 short int var16 /* : Bool */;
9593 short int var17 /* : Bool */;
9594 short int var18 /* : Bool */;
9595 var_n_expr = p0;
9596 var_n_kwas = p1;
9597 var_n_opar = p2;
9598 var_n_kwnot = p3;
9599 var_n_kwnull = p4;
9600 var_n_cpar = p5;
9601 if (unlikely(var_n_expr == NULL)) {
9602 PRINT_ERROR("Runtime error: %s", "Cast failed");
9603 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5806);
9604 show_backtrace(1);
9605 }
9606 self->attrs[COLOR_parser_nodes__AAsNotnullExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AAsNotnullExpr> */
9607 if (var_n_expr == NULL) {
9608 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9609 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5807);
9610 show_backtrace(1);
9611 } else {
9612 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
9613 if (unlikely(var_n_expr == NULL)) {
9614 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9615 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
9616 show_backtrace(1);
9617 }
9618 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
9619 RET_LABEL1:(void)0;
9620 }
9621 }
9622 if (unlikely(var_n_kwas == NULL)) {
9623 PRINT_ERROR("Runtime error: %s", "Cast failed");
9624 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5808);
9625 show_backtrace(1);
9626 }
9627 self->attrs[COLOR_parser_nodes__AAsNotnullExpr___n_kwas].val = var_n_kwas; /* _n_kwas on <self:AAsNotnullExpr> */
9628 if (var_n_kwas == NULL) {
9629 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9630 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5809);
9631 show_backtrace(1);
9632 } else {
9633 { /* Inline parser_nodes#ANode#parent= (var_n_kwas,self) on <var_n_kwas:nullable TKwas> */
9634 if (unlikely(var_n_kwas == NULL)) {
9635 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9636 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
9637 show_backtrace(1);
9638 }
9639 var_n_kwas->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwas:nullable TKwas> */
9640 RET_LABEL2:(void)0;
9641 }
9642 }
9643 self->attrs[COLOR_parser_nodes__AAsNotnullExpr___n_opar].val = var_n_opar; /* _n_opar on <self:AAsNotnullExpr> */
9644 var = NULL;
9645 if (var_n_opar == NULL) {
9646 var3 = 0; /* is null */
9647 } else {
9648 var3 = 1; /* arg is null and recv is not */
9649 }
9650 if (0) {
9651 { /* Inline kernel#Object#!= (var_n_opar,var) on <var_n_opar:nullable TOpar> */
9652 var_other = var;
9653 {
9654 var7 = ((short int (*)(val*, val*))(var_n_opar->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_opar, var_other) /* == on <var_n_opar:nullable TOpar(TOpar)>*/;
9655 var6 = var7;
9656 }
9657 var8 = !var6;
9658 var4 = var8;
9659 goto RET_LABEL5;
9660 RET_LABEL5:(void)0;
9661 }
9662 var3 = var4;
9663 }
9664 if (var3){
9665 {
9666 { /* Inline parser_nodes#ANode#parent= (var_n_opar,self) on <var_n_opar:nullable TOpar(TOpar)> */
9667 var_n_opar->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_opar:nullable TOpar(TOpar)> */
9668 RET_LABEL9:(void)0;
9669 }
9670 }
9671 } else {
9672 }
9673 if (unlikely(var_n_kwnot == NULL)) {
9674 PRINT_ERROR("Runtime error: %s", "Cast failed");
9675 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5812);
9676 show_backtrace(1);
9677 }
9678 self->attrs[COLOR_parser_nodes__AAsNotnullExpr___n_kwnot].val = var_n_kwnot; /* _n_kwnot on <self:AAsNotnullExpr> */
9679 if (var_n_kwnot == NULL) {
9680 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9681 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5813);
9682 show_backtrace(1);
9683 } else {
9684 { /* Inline parser_nodes#ANode#parent= (var_n_kwnot,self) on <var_n_kwnot:nullable TKwnot> */
9685 if (unlikely(var_n_kwnot == NULL)) {
9686 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9687 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
9688 show_backtrace(1);
9689 }
9690 var_n_kwnot->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwnot:nullable TKwnot> */
9691 RET_LABEL10:(void)0;
9692 }
9693 }
9694 if (unlikely(var_n_kwnull == NULL)) {
9695 PRINT_ERROR("Runtime error: %s", "Cast failed");
9696 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5814);
9697 show_backtrace(1);
9698 }
9699 self->attrs[COLOR_parser_nodes__AAsNotnullExpr___n_kwnull].val = var_n_kwnull; /* _n_kwnull on <self:AAsNotnullExpr> */
9700 if (var_n_kwnull == NULL) {
9701 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9702 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 5815);
9703 show_backtrace(1);
9704 } else {
9705 { /* Inline parser_nodes#ANode#parent= (var_n_kwnull,self) on <var_n_kwnull:nullable TKwnull> */
9706 if (unlikely(var_n_kwnull == NULL)) {
9707 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9708 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
9709 show_backtrace(1);
9710 }
9711 var_n_kwnull->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwnull:nullable TKwnull> */
9712 RET_LABEL11:(void)0;
9713 }
9714 }
9715 self->attrs[COLOR_parser_nodes__AAsNotnullExpr___n_cpar].val = var_n_cpar; /* _n_cpar on <self:AAsNotnullExpr> */
9716 var12 = NULL;
9717 if (var_n_cpar == NULL) {
9718 var13 = 0; /* is null */
9719 } else {
9720 var13 = 1; /* arg is null and recv is not */
9721 }
9722 if (0) {
9723 { /* Inline kernel#Object#!= (var_n_cpar,var12) on <var_n_cpar:nullable TCpar> */
9724 var_other = var12;
9725 {
9726 var17 = ((short int (*)(val*, val*))(var_n_cpar->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_cpar, var_other) /* == on <var_n_cpar:nullable TCpar(TCpar)>*/;
9727 var16 = var17;
9728 }
9729 var18 = !var16;
9730 var14 = var18;
9731 goto RET_LABEL15;
9732 RET_LABEL15:(void)0;
9733 }
9734 var13 = var14;
9735 }
9736 if (var13){
9737 {
9738 { /* Inline parser_nodes#ANode#parent= (var_n_cpar,self) on <var_n_cpar:nullable TCpar(TCpar)> */
9739 var_n_cpar->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_cpar:nullable TCpar(TCpar)> */
9740 RET_LABEL19:(void)0;
9741 }
9742 }
9743 } else {
9744 }
9745 RET_LABEL:;
9746 }
9747 /* method parser_prod#AAsNotnullExpr#init_aasnotnullexpr for (self: Object, nullable AExpr, nullable TKwas, nullable TOpar, nullable TKwnot, nullable TKwnull, nullable TCpar) */
9748 void VIRTUAL_parser_prod__AAsNotnullExpr__init_aasnotnullexpr(val* self, val* p0, val* p1, val* p2, val* p3, val* p4, val* p5) {
9749 parser_prod__AAsNotnullExpr__init_aasnotnullexpr(self, p0, p1, p2, p3, p4, p5); /* Direct call parser_prod#AAsNotnullExpr#init_aasnotnullexpr on <self:Object(AAsNotnullExpr)>*/
9750 RET_LABEL:;
9751 }