update NOTICE
[nit.git] / c_src / parser_prod.sep.2.c
1 #include "parser_prod.sep.0.h"
2 /* method parser_prod#AMethPropdef#visit_all for (self: AMethPropdef, Visitor) */
3 void parser_prod__AMethPropdef__visit_all(val* self, val* p0) {
4 val* var_v /* var v: Visitor */;
5 val* var /* : nullable ADoc */;
6 val* var1 /* : nullable TKwredef */;
7 val* var2 /* : nullable AVisibility */;
8 val* var3 /* : nullable TKwmeth */;
9 val* var4 /* : nullable TKwinit */;
10 val* var5 /* : nullable TKwnew */;
11 val* var6 /* : nullable AMethid */;
12 val* var7 /* : nullable ASignature */;
13 val* var8 /* : nullable AAnnotations */;
14 val* var9 /* : nullable AExternCalls */;
15 val* var10 /* : nullable AExternCodeBlock */;
16 val* var11 /* : nullable AExpr */;
17 var_v = p0;
18 var = self->attrs[COLOR_parser_nodes__APropdef___n_doc].val; /* _n_doc on <self:AMethPropdef> */
19 {
20 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
21 }
22 var1 = self->attrs[COLOR_parser_nodes__APropdef___n_kwredef].val; /* _n_kwredef on <self:AMethPropdef> */
23 {
24 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
25 }
26 var2 = self->attrs[COLOR_parser_nodes__APropdef___n_visibility].val; /* _n_visibility on <self:AMethPropdef> */
27 {
28 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
29 }
30 var3 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_kwmeth].val; /* _n_kwmeth on <self:AMethPropdef> */
31 {
32 parser_nodes__Visitor__enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
33 }
34 var4 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_kwinit].val; /* _n_kwinit on <self:AMethPropdef> */
35 {
36 parser_nodes__Visitor__enter_visit(var_v, var4); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
37 }
38 var5 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_kwnew].val; /* _n_kwnew on <self:AMethPropdef> */
39 {
40 parser_nodes__Visitor__enter_visit(var_v, var5); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
41 }
42 var6 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_methid].val; /* _n_methid on <self:AMethPropdef> */
43 {
44 parser_nodes__Visitor__enter_visit(var_v, var6); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
45 }
46 var7 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_signature].val; /* _n_signature on <self:AMethPropdef> */
47 {
48 parser_nodes__Visitor__enter_visit(var_v, var7); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
49 }
50 var8 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AMethPropdef> */
51 {
52 parser_nodes__Visitor__enter_visit(var_v, var8); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
53 }
54 var9 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_extern_calls].val; /* _n_extern_calls on <self:AMethPropdef> */
55 {
56 parser_nodes__Visitor__enter_visit(var_v, var9); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
57 }
58 var10 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_extern_code_block].val; /* _n_extern_code_block on <self:AMethPropdef> */
59 {
60 parser_nodes__Visitor__enter_visit(var_v, var10); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
61 }
62 var11 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_block].val; /* _n_block on <self:AMethPropdef> */
63 {
64 parser_nodes__Visitor__enter_visit(var_v, var11); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
65 }
66 RET_LABEL:;
67 }
68 /* method parser_prod#AMethPropdef#visit_all for (self: Object, Visitor) */
69 void VIRTUAL_parser_prod__AMethPropdef__visit_all(val* self, val* p0) {
70 parser_prod__AMethPropdef__visit_all(self, p0); /* Direct call parser_prod#AMethPropdef#visit_all on <self:Object(AMethPropdef)>*/
71 RET_LABEL:;
72 }
73 /* method parser_prod#AIdMethid#init_aidmethid for (self: AIdMethid, nullable TId) */
74 void parser_prod__AIdMethid__init_aidmethid(val* self, val* p0) {
75 val* var_n_id /* var n_id: nullable TId */;
76 var_n_id = p0;
77 if (unlikely(var_n_id == NULL)) {
78 PRINT_ERROR("Runtime error: %s", "Cast failed");
79 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1295);
80 show_backtrace(1);
81 }
82 self->attrs[COLOR_parser_nodes__AIdMethid___n_id].val = var_n_id; /* _n_id on <self:AIdMethid> */
83 if (var_n_id == NULL) {
84 PRINT_ERROR("Runtime error: %s", "Receiver is null");
85 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1296);
86 show_backtrace(1);
87 } else {
88 { /* Inline parser_nodes#ANode#parent= (var_n_id,self) on <var_n_id:nullable TId> */
89 if (unlikely(var_n_id == NULL)) {
90 PRINT_ERROR("Runtime error: %s", "Receiver is null");
91 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
92 show_backtrace(1);
93 }
94 var_n_id->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_id:nullable TId> */
95 RET_LABEL1:(void)0;
96 }
97 }
98 RET_LABEL:;
99 }
100 /* method parser_prod#AIdMethid#init_aidmethid for (self: Object, nullable TId) */
101 void VIRTUAL_parser_prod__AIdMethid__init_aidmethid(val* self, val* p0) {
102 parser_prod__AIdMethid__init_aidmethid(self, p0); /* Direct call parser_prod#AIdMethid#init_aidmethid on <self:Object(AIdMethid)>*/
103 RET_LABEL:;
104 }
105 /* method parser_prod#AIdMethid#replace_child for (self: AIdMethid, ANode, nullable ANode) */
106 void parser_prod__AIdMethid__replace_child(val* self, val* p0, val* p1) {
107 val* var_old_child /* var old_child: ANode */;
108 val* var_new_child /* var new_child: nullable ANode */;
109 val* var /* : TId */;
110 short int var1 /* : Bool */;
111 short int var2 /* : Bool */;
112 val* var_other /* var other: nullable Object */;
113 short int var4 /* : Bool */;
114 short int var6 /* : Bool */;
115 short int var7 /* : Bool */;
116 int cltype;
117 int idtype;
118 const char* var_class_name;
119 var_old_child = p0;
120 var_new_child = p1;
121 var = self->attrs[COLOR_parser_nodes__AIdMethid___n_id].val; /* _n_id on <self:AIdMethid> */
122 if (unlikely(var == NULL)) {
123 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
124 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1301);
125 show_backtrace(1);
126 }
127 {
128 { /* Inline kernel#Object#== (var,var_old_child) on <var:TId> */
129 var_other = var_old_child;
130 {
131 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TId> */
132 var6 = var == var_other;
133 var4 = var6;
134 goto RET_LABEL5;
135 RET_LABEL5:(void)0;
136 }
137 }
138 var2 = var4;
139 goto RET_LABEL3;
140 RET_LABEL3:(void)0;
141 }
142 var1 = var2;
143 }
144 if (var1){
145 /* <var_new_child:nullable ANode> isa TId */
146 cltype = type_parser_nodes__TId.color;
147 idtype = type_parser_nodes__TId.id;
148 if(var_new_child == NULL) {
149 var7 = 0;
150 } else {
151 if(cltype >= var_new_child->type->table_size) {
152 var7 = 0;
153 } else {
154 var7 = var_new_child->type->type_table[cltype] == idtype;
155 }
156 }
157 if (unlikely(!var7)) {
158 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
159 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TId", var_class_name);
160 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1302);
161 show_backtrace(1);
162 }
163 {
164 parser_prod__AIdMethid__n_id_61d(self, var_new_child); /* Direct call parser_prod#AIdMethid#n_id= on <self:AIdMethid>*/
165 }
166 goto RET_LABEL;
167 } else {
168 }
169 RET_LABEL:;
170 }
171 /* method parser_prod#AIdMethid#replace_child for (self: Object, ANode, nullable ANode) */
172 void VIRTUAL_parser_prod__AIdMethid__replace_child(val* self, val* p0, val* p1) {
173 parser_prod__AIdMethid__replace_child(self, p0, p1); /* Direct call parser_prod#AIdMethid#replace_child on <self:Object(AIdMethid)>*/
174 RET_LABEL:;
175 }
176 /* method parser_prod#AIdMethid#n_id= for (self: AIdMethid, TId) */
177 void parser_prod__AIdMethid__n_id_61d(val* self, val* p0) {
178 val* var_node /* var node: TId */;
179 var_node = p0;
180 self->attrs[COLOR_parser_nodes__AIdMethid___n_id].val = var_node; /* _n_id on <self:AIdMethid> */
181 {
182 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TId> */
183 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TId> */
184 RET_LABEL1:(void)0;
185 }
186 }
187 RET_LABEL:;
188 }
189 /* method parser_prod#AIdMethid#n_id= for (self: Object, TId) */
190 void VIRTUAL_parser_prod__AIdMethid__n_id_61d(val* self, val* p0) {
191 parser_prod__AIdMethid__n_id_61d(self, p0); /* Direct call parser_prod#AIdMethid#n_id= on <self:Object(AIdMethid)>*/
192 RET_LABEL:;
193 }
194 /* method parser_prod#AIdMethid#visit_all for (self: AIdMethid, Visitor) */
195 void parser_prod__AIdMethid__visit_all(val* self, val* p0) {
196 val* var_v /* var v: Visitor */;
197 val* var /* : TId */;
198 var_v = p0;
199 var = self->attrs[COLOR_parser_nodes__AIdMethid___n_id].val; /* _n_id on <self:AIdMethid> */
200 if (unlikely(var == NULL)) {
201 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
202 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1316);
203 show_backtrace(1);
204 }
205 {
206 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
207 }
208 RET_LABEL:;
209 }
210 /* method parser_prod#AIdMethid#visit_all for (self: Object, Visitor) */
211 void VIRTUAL_parser_prod__AIdMethid__visit_all(val* self, val* p0) {
212 parser_prod__AIdMethid__visit_all(self, p0); /* Direct call parser_prod#AIdMethid#visit_all on <self:Object(AIdMethid)>*/
213 RET_LABEL:;
214 }
215 /* method parser_prod#APlusMethid#init_aplusmethid for (self: APlusMethid, nullable TPlus) */
216 void parser_prod__APlusMethid__init_aplusmethid(val* self, val* p0) {
217 val* var_n_plus /* var n_plus: nullable TPlus */;
218 var_n_plus = p0;
219 if (unlikely(var_n_plus == NULL)) {
220 PRINT_ERROR("Runtime error: %s", "Cast failed");
221 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1324);
222 show_backtrace(1);
223 }
224 self->attrs[COLOR_parser_nodes__APlusMethid___n_plus].val = var_n_plus; /* _n_plus on <self:APlusMethid> */
225 if (var_n_plus == NULL) {
226 PRINT_ERROR("Runtime error: %s", "Receiver is null");
227 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1325);
228 show_backtrace(1);
229 } else {
230 { /* Inline parser_nodes#ANode#parent= (var_n_plus,self) on <var_n_plus:nullable TPlus> */
231 if (unlikely(var_n_plus == NULL)) {
232 PRINT_ERROR("Runtime error: %s", "Receiver is null");
233 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
234 show_backtrace(1);
235 }
236 var_n_plus->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_plus:nullable TPlus> */
237 RET_LABEL1:(void)0;
238 }
239 }
240 RET_LABEL:;
241 }
242 /* method parser_prod#APlusMethid#init_aplusmethid for (self: Object, nullable TPlus) */
243 void VIRTUAL_parser_prod__APlusMethid__init_aplusmethid(val* self, val* p0) {
244 parser_prod__APlusMethid__init_aplusmethid(self, p0); /* Direct call parser_prod#APlusMethid#init_aplusmethid on <self:Object(APlusMethid)>*/
245 RET_LABEL:;
246 }
247 /* method parser_prod#APlusMethid#replace_child for (self: APlusMethid, ANode, nullable ANode) */
248 void parser_prod__APlusMethid__replace_child(val* self, val* p0, val* p1) {
249 val* var_old_child /* var old_child: ANode */;
250 val* var_new_child /* var new_child: nullable ANode */;
251 val* var /* : TPlus */;
252 short int var1 /* : Bool */;
253 short int var2 /* : Bool */;
254 val* var_other /* var other: nullable Object */;
255 short int var4 /* : Bool */;
256 short int var6 /* : Bool */;
257 short int var7 /* : Bool */;
258 int cltype;
259 int idtype;
260 const char* var_class_name;
261 var_old_child = p0;
262 var_new_child = p1;
263 var = self->attrs[COLOR_parser_nodes__APlusMethid___n_plus].val; /* _n_plus on <self:APlusMethid> */
264 if (unlikely(var == NULL)) {
265 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_plus");
266 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1330);
267 show_backtrace(1);
268 }
269 {
270 { /* Inline kernel#Object#== (var,var_old_child) on <var:TPlus> */
271 var_other = var_old_child;
272 {
273 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TPlus> */
274 var6 = var == var_other;
275 var4 = var6;
276 goto RET_LABEL5;
277 RET_LABEL5:(void)0;
278 }
279 }
280 var2 = var4;
281 goto RET_LABEL3;
282 RET_LABEL3:(void)0;
283 }
284 var1 = var2;
285 }
286 if (var1){
287 /* <var_new_child:nullable ANode> isa TPlus */
288 cltype = type_parser_nodes__TPlus.color;
289 idtype = type_parser_nodes__TPlus.id;
290 if(var_new_child == NULL) {
291 var7 = 0;
292 } else {
293 if(cltype >= var_new_child->type->table_size) {
294 var7 = 0;
295 } else {
296 var7 = var_new_child->type->type_table[cltype] == idtype;
297 }
298 }
299 if (unlikely(!var7)) {
300 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
301 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TPlus", var_class_name);
302 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1331);
303 show_backtrace(1);
304 }
305 {
306 parser_prod__APlusMethid__n_plus_61d(self, var_new_child); /* Direct call parser_prod#APlusMethid#n_plus= on <self:APlusMethid>*/
307 }
308 goto RET_LABEL;
309 } else {
310 }
311 RET_LABEL:;
312 }
313 /* method parser_prod#APlusMethid#replace_child for (self: Object, ANode, nullable ANode) */
314 void VIRTUAL_parser_prod__APlusMethid__replace_child(val* self, val* p0, val* p1) {
315 parser_prod__APlusMethid__replace_child(self, p0, p1); /* Direct call parser_prod#APlusMethid#replace_child on <self:Object(APlusMethid)>*/
316 RET_LABEL:;
317 }
318 /* method parser_prod#APlusMethid#n_plus= for (self: APlusMethid, TPlus) */
319 void parser_prod__APlusMethid__n_plus_61d(val* self, val* p0) {
320 val* var_node /* var node: TPlus */;
321 var_node = p0;
322 self->attrs[COLOR_parser_nodes__APlusMethid___n_plus].val = var_node; /* _n_plus on <self:APlusMethid> */
323 {
324 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TPlus> */
325 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TPlus> */
326 RET_LABEL1:(void)0;
327 }
328 }
329 RET_LABEL:;
330 }
331 /* method parser_prod#APlusMethid#n_plus= for (self: Object, TPlus) */
332 void VIRTUAL_parser_prod__APlusMethid__n_plus_61d(val* self, val* p0) {
333 parser_prod__APlusMethid__n_plus_61d(self, p0); /* Direct call parser_prod#APlusMethid#n_plus= on <self:Object(APlusMethid)>*/
334 RET_LABEL:;
335 }
336 /* method parser_prod#APlusMethid#visit_all for (self: APlusMethid, Visitor) */
337 void parser_prod__APlusMethid__visit_all(val* self, val* p0) {
338 val* var_v /* var v: Visitor */;
339 val* var /* : TPlus */;
340 var_v = p0;
341 var = self->attrs[COLOR_parser_nodes__APlusMethid___n_plus].val; /* _n_plus on <self:APlusMethid> */
342 if (unlikely(var == NULL)) {
343 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_plus");
344 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1345);
345 show_backtrace(1);
346 }
347 {
348 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
349 }
350 RET_LABEL:;
351 }
352 /* method parser_prod#APlusMethid#visit_all for (self: Object, Visitor) */
353 void VIRTUAL_parser_prod__APlusMethid__visit_all(val* self, val* p0) {
354 parser_prod__APlusMethid__visit_all(self, p0); /* Direct call parser_prod#APlusMethid#visit_all on <self:Object(APlusMethid)>*/
355 RET_LABEL:;
356 }
357 /* method parser_prod#AMinusMethid#init_aminusmethid for (self: AMinusMethid, nullable TMinus) */
358 void parser_prod__AMinusMethid__init_aminusmethid(val* self, val* p0) {
359 val* var_n_minus /* var n_minus: nullable TMinus */;
360 var_n_minus = p0;
361 if (unlikely(var_n_minus == NULL)) {
362 PRINT_ERROR("Runtime error: %s", "Cast failed");
363 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1353);
364 show_backtrace(1);
365 }
366 self->attrs[COLOR_parser_nodes__AMinusMethid___n_minus].val = var_n_minus; /* _n_minus on <self:AMinusMethid> */
367 if (var_n_minus == NULL) {
368 PRINT_ERROR("Runtime error: %s", "Receiver is null");
369 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1354);
370 show_backtrace(1);
371 } else {
372 { /* Inline parser_nodes#ANode#parent= (var_n_minus,self) on <var_n_minus:nullable TMinus> */
373 if (unlikely(var_n_minus == NULL)) {
374 PRINT_ERROR("Runtime error: %s", "Receiver is null");
375 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
376 show_backtrace(1);
377 }
378 var_n_minus->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_minus:nullable TMinus> */
379 RET_LABEL1:(void)0;
380 }
381 }
382 RET_LABEL:;
383 }
384 /* method parser_prod#AMinusMethid#init_aminusmethid for (self: Object, nullable TMinus) */
385 void VIRTUAL_parser_prod__AMinusMethid__init_aminusmethid(val* self, val* p0) {
386 parser_prod__AMinusMethid__init_aminusmethid(self, p0); /* Direct call parser_prod#AMinusMethid#init_aminusmethid on <self:Object(AMinusMethid)>*/
387 RET_LABEL:;
388 }
389 /* method parser_prod#AMinusMethid#replace_child for (self: AMinusMethid, ANode, nullable ANode) */
390 void parser_prod__AMinusMethid__replace_child(val* self, val* p0, val* p1) {
391 val* var_old_child /* var old_child: ANode */;
392 val* var_new_child /* var new_child: nullable ANode */;
393 val* var /* : TMinus */;
394 short int var1 /* : Bool */;
395 short int var2 /* : Bool */;
396 val* var_other /* var other: nullable Object */;
397 short int var4 /* : Bool */;
398 short int var6 /* : Bool */;
399 short int var7 /* : Bool */;
400 int cltype;
401 int idtype;
402 const char* var_class_name;
403 var_old_child = p0;
404 var_new_child = p1;
405 var = self->attrs[COLOR_parser_nodes__AMinusMethid___n_minus].val; /* _n_minus on <self:AMinusMethid> */
406 if (unlikely(var == NULL)) {
407 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_minus");
408 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1359);
409 show_backtrace(1);
410 }
411 {
412 { /* Inline kernel#Object#== (var,var_old_child) on <var:TMinus> */
413 var_other = var_old_child;
414 {
415 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TMinus> */
416 var6 = var == var_other;
417 var4 = var6;
418 goto RET_LABEL5;
419 RET_LABEL5:(void)0;
420 }
421 }
422 var2 = var4;
423 goto RET_LABEL3;
424 RET_LABEL3:(void)0;
425 }
426 var1 = var2;
427 }
428 if (var1){
429 /* <var_new_child:nullable ANode> isa TMinus */
430 cltype = type_parser_nodes__TMinus.color;
431 idtype = type_parser_nodes__TMinus.id;
432 if(var_new_child == NULL) {
433 var7 = 0;
434 } else {
435 if(cltype >= var_new_child->type->table_size) {
436 var7 = 0;
437 } else {
438 var7 = var_new_child->type->type_table[cltype] == idtype;
439 }
440 }
441 if (unlikely(!var7)) {
442 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
443 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TMinus", var_class_name);
444 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1360);
445 show_backtrace(1);
446 }
447 {
448 parser_prod__AMinusMethid__n_minus_61d(self, var_new_child); /* Direct call parser_prod#AMinusMethid#n_minus= on <self:AMinusMethid>*/
449 }
450 goto RET_LABEL;
451 } else {
452 }
453 RET_LABEL:;
454 }
455 /* method parser_prod#AMinusMethid#replace_child for (self: Object, ANode, nullable ANode) */
456 void VIRTUAL_parser_prod__AMinusMethid__replace_child(val* self, val* p0, val* p1) {
457 parser_prod__AMinusMethid__replace_child(self, p0, p1); /* Direct call parser_prod#AMinusMethid#replace_child on <self:Object(AMinusMethid)>*/
458 RET_LABEL:;
459 }
460 /* method parser_prod#AMinusMethid#n_minus= for (self: AMinusMethid, TMinus) */
461 void parser_prod__AMinusMethid__n_minus_61d(val* self, val* p0) {
462 val* var_node /* var node: TMinus */;
463 var_node = p0;
464 self->attrs[COLOR_parser_nodes__AMinusMethid___n_minus].val = var_node; /* _n_minus on <self:AMinusMethid> */
465 {
466 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TMinus> */
467 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TMinus> */
468 RET_LABEL1:(void)0;
469 }
470 }
471 RET_LABEL:;
472 }
473 /* method parser_prod#AMinusMethid#n_minus= for (self: Object, TMinus) */
474 void VIRTUAL_parser_prod__AMinusMethid__n_minus_61d(val* self, val* p0) {
475 parser_prod__AMinusMethid__n_minus_61d(self, p0); /* Direct call parser_prod#AMinusMethid#n_minus= on <self:Object(AMinusMethid)>*/
476 RET_LABEL:;
477 }
478 /* method parser_prod#AMinusMethid#visit_all for (self: AMinusMethid, Visitor) */
479 void parser_prod__AMinusMethid__visit_all(val* self, val* p0) {
480 val* var_v /* var v: Visitor */;
481 val* var /* : TMinus */;
482 var_v = p0;
483 var = self->attrs[COLOR_parser_nodes__AMinusMethid___n_minus].val; /* _n_minus on <self:AMinusMethid> */
484 if (unlikely(var == NULL)) {
485 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_minus");
486 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1374);
487 show_backtrace(1);
488 }
489 {
490 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
491 }
492 RET_LABEL:;
493 }
494 /* method parser_prod#AMinusMethid#visit_all for (self: Object, Visitor) */
495 void VIRTUAL_parser_prod__AMinusMethid__visit_all(val* self, val* p0) {
496 parser_prod__AMinusMethid__visit_all(self, p0); /* Direct call parser_prod#AMinusMethid#visit_all on <self:Object(AMinusMethid)>*/
497 RET_LABEL:;
498 }
499 /* method parser_prod#AStarMethid#init_astarmethid for (self: AStarMethid, nullable TStar) */
500 void parser_prod__AStarMethid__init_astarmethid(val* self, val* p0) {
501 val* var_n_star /* var n_star: nullable TStar */;
502 var_n_star = p0;
503 if (unlikely(var_n_star == NULL)) {
504 PRINT_ERROR("Runtime error: %s", "Cast failed");
505 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1382);
506 show_backtrace(1);
507 }
508 self->attrs[COLOR_parser_nodes__AStarMethid___n_star].val = var_n_star; /* _n_star on <self:AStarMethid> */
509 if (var_n_star == NULL) {
510 PRINT_ERROR("Runtime error: %s", "Receiver is null");
511 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1383);
512 show_backtrace(1);
513 } else {
514 { /* Inline parser_nodes#ANode#parent= (var_n_star,self) on <var_n_star:nullable TStar> */
515 if (unlikely(var_n_star == NULL)) {
516 PRINT_ERROR("Runtime error: %s", "Receiver is null");
517 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
518 show_backtrace(1);
519 }
520 var_n_star->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_star:nullable TStar> */
521 RET_LABEL1:(void)0;
522 }
523 }
524 RET_LABEL:;
525 }
526 /* method parser_prod#AStarMethid#init_astarmethid for (self: Object, nullable TStar) */
527 void VIRTUAL_parser_prod__AStarMethid__init_astarmethid(val* self, val* p0) {
528 parser_prod__AStarMethid__init_astarmethid(self, p0); /* Direct call parser_prod#AStarMethid#init_astarmethid on <self:Object(AStarMethid)>*/
529 RET_LABEL:;
530 }
531 /* method parser_prod#AStarMethid#replace_child for (self: AStarMethid, ANode, nullable ANode) */
532 void parser_prod__AStarMethid__replace_child(val* self, val* p0, val* p1) {
533 val* var_old_child /* var old_child: ANode */;
534 val* var_new_child /* var new_child: nullable ANode */;
535 val* var /* : TStar */;
536 short int var1 /* : Bool */;
537 short int var2 /* : Bool */;
538 val* var_other /* var other: nullable Object */;
539 short int var4 /* : Bool */;
540 short int var6 /* : Bool */;
541 short int var7 /* : Bool */;
542 int cltype;
543 int idtype;
544 const char* var_class_name;
545 var_old_child = p0;
546 var_new_child = p1;
547 var = self->attrs[COLOR_parser_nodes__AStarMethid___n_star].val; /* _n_star on <self:AStarMethid> */
548 if (unlikely(var == NULL)) {
549 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_star");
550 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1388);
551 show_backtrace(1);
552 }
553 {
554 { /* Inline kernel#Object#== (var,var_old_child) on <var:TStar> */
555 var_other = var_old_child;
556 {
557 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TStar> */
558 var6 = var == var_other;
559 var4 = var6;
560 goto RET_LABEL5;
561 RET_LABEL5:(void)0;
562 }
563 }
564 var2 = var4;
565 goto RET_LABEL3;
566 RET_LABEL3:(void)0;
567 }
568 var1 = var2;
569 }
570 if (var1){
571 /* <var_new_child:nullable ANode> isa TStar */
572 cltype = type_parser_nodes__TStar.color;
573 idtype = type_parser_nodes__TStar.id;
574 if(var_new_child == NULL) {
575 var7 = 0;
576 } else {
577 if(cltype >= var_new_child->type->table_size) {
578 var7 = 0;
579 } else {
580 var7 = var_new_child->type->type_table[cltype] == idtype;
581 }
582 }
583 if (unlikely(!var7)) {
584 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
585 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TStar", var_class_name);
586 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1389);
587 show_backtrace(1);
588 }
589 {
590 parser_prod__AStarMethid__n_star_61d(self, var_new_child); /* Direct call parser_prod#AStarMethid#n_star= on <self:AStarMethid>*/
591 }
592 goto RET_LABEL;
593 } else {
594 }
595 RET_LABEL:;
596 }
597 /* method parser_prod#AStarMethid#replace_child for (self: Object, ANode, nullable ANode) */
598 void VIRTUAL_parser_prod__AStarMethid__replace_child(val* self, val* p0, val* p1) {
599 parser_prod__AStarMethid__replace_child(self, p0, p1); /* Direct call parser_prod#AStarMethid#replace_child on <self:Object(AStarMethid)>*/
600 RET_LABEL:;
601 }
602 /* method parser_prod#AStarMethid#n_star= for (self: AStarMethid, TStar) */
603 void parser_prod__AStarMethid__n_star_61d(val* self, val* p0) {
604 val* var_node /* var node: TStar */;
605 var_node = p0;
606 self->attrs[COLOR_parser_nodes__AStarMethid___n_star].val = var_node; /* _n_star on <self:AStarMethid> */
607 {
608 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TStar> */
609 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TStar> */
610 RET_LABEL1:(void)0;
611 }
612 }
613 RET_LABEL:;
614 }
615 /* method parser_prod#AStarMethid#n_star= for (self: Object, TStar) */
616 void VIRTUAL_parser_prod__AStarMethid__n_star_61d(val* self, val* p0) {
617 parser_prod__AStarMethid__n_star_61d(self, p0); /* Direct call parser_prod#AStarMethid#n_star= on <self:Object(AStarMethid)>*/
618 RET_LABEL:;
619 }
620 /* method parser_prod#AStarMethid#visit_all for (self: AStarMethid, Visitor) */
621 void parser_prod__AStarMethid__visit_all(val* self, val* p0) {
622 val* var_v /* var v: Visitor */;
623 val* var /* : TStar */;
624 var_v = p0;
625 var = self->attrs[COLOR_parser_nodes__AStarMethid___n_star].val; /* _n_star on <self:AStarMethid> */
626 if (unlikely(var == NULL)) {
627 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_star");
628 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1403);
629 show_backtrace(1);
630 }
631 {
632 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
633 }
634 RET_LABEL:;
635 }
636 /* method parser_prod#AStarMethid#visit_all for (self: Object, Visitor) */
637 void VIRTUAL_parser_prod__AStarMethid__visit_all(val* self, val* p0) {
638 parser_prod__AStarMethid__visit_all(self, p0); /* Direct call parser_prod#AStarMethid#visit_all on <self:Object(AStarMethid)>*/
639 RET_LABEL:;
640 }
641 /* method parser_prod#AStarstarMethid#init_astarstarmethid for (self: AStarstarMethid, nullable TStarstar) */
642 void parser_prod__AStarstarMethid__init_astarstarmethid(val* self, val* p0) {
643 val* var_n_starstar /* var n_starstar: nullable TStarstar */;
644 var_n_starstar = p0;
645 if (unlikely(var_n_starstar == NULL)) {
646 PRINT_ERROR("Runtime error: %s", "Cast failed");
647 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1411);
648 show_backtrace(1);
649 }
650 self->attrs[COLOR_parser_nodes__AStarstarMethid___n_starstar].val = var_n_starstar; /* _n_starstar on <self:AStarstarMethid> */
651 if (var_n_starstar == NULL) {
652 PRINT_ERROR("Runtime error: %s", "Receiver is null");
653 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1412);
654 show_backtrace(1);
655 } else {
656 { /* Inline parser_nodes#ANode#parent= (var_n_starstar,self) on <var_n_starstar:nullable TStarstar> */
657 if (unlikely(var_n_starstar == NULL)) {
658 PRINT_ERROR("Runtime error: %s", "Receiver is null");
659 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
660 show_backtrace(1);
661 }
662 var_n_starstar->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_starstar:nullable TStarstar> */
663 RET_LABEL1:(void)0;
664 }
665 }
666 RET_LABEL:;
667 }
668 /* method parser_prod#AStarstarMethid#init_astarstarmethid for (self: Object, nullable TStarstar) */
669 void VIRTUAL_parser_prod__AStarstarMethid__init_astarstarmethid(val* self, val* p0) {
670 parser_prod__AStarstarMethid__init_astarstarmethid(self, p0); /* Direct call parser_prod#AStarstarMethid#init_astarstarmethid on <self:Object(AStarstarMethid)>*/
671 RET_LABEL:;
672 }
673 /* method parser_prod#AStarstarMethid#replace_child for (self: AStarstarMethid, ANode, nullable ANode) */
674 void parser_prod__AStarstarMethid__replace_child(val* self, val* p0, val* p1) {
675 val* var_old_child /* var old_child: ANode */;
676 val* var_new_child /* var new_child: nullable ANode */;
677 val* var /* : TStarstar */;
678 short int var1 /* : Bool */;
679 short int var2 /* : Bool */;
680 val* var_other /* var other: nullable Object */;
681 short int var4 /* : Bool */;
682 short int var6 /* : Bool */;
683 short int var7 /* : Bool */;
684 int cltype;
685 int idtype;
686 const char* var_class_name;
687 var_old_child = p0;
688 var_new_child = p1;
689 var = self->attrs[COLOR_parser_nodes__AStarstarMethid___n_starstar].val; /* _n_starstar on <self:AStarstarMethid> */
690 if (unlikely(var == NULL)) {
691 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_starstar");
692 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1417);
693 show_backtrace(1);
694 }
695 {
696 { /* Inline kernel#Object#== (var,var_old_child) on <var:TStarstar> */
697 var_other = var_old_child;
698 {
699 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TStarstar> */
700 var6 = var == var_other;
701 var4 = var6;
702 goto RET_LABEL5;
703 RET_LABEL5:(void)0;
704 }
705 }
706 var2 = var4;
707 goto RET_LABEL3;
708 RET_LABEL3:(void)0;
709 }
710 var1 = var2;
711 }
712 if (var1){
713 /* <var_new_child:nullable ANode> isa TStarstar */
714 cltype = type_parser_nodes__TStarstar.color;
715 idtype = type_parser_nodes__TStarstar.id;
716 if(var_new_child == NULL) {
717 var7 = 0;
718 } else {
719 if(cltype >= var_new_child->type->table_size) {
720 var7 = 0;
721 } else {
722 var7 = var_new_child->type->type_table[cltype] == idtype;
723 }
724 }
725 if (unlikely(!var7)) {
726 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
727 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TStarstar", var_class_name);
728 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1418);
729 show_backtrace(1);
730 }
731 {
732 parser_prod__AStarstarMethid__n_starstar_61d(self, var_new_child); /* Direct call parser_prod#AStarstarMethid#n_starstar= on <self:AStarstarMethid>*/
733 }
734 goto RET_LABEL;
735 } else {
736 }
737 RET_LABEL:;
738 }
739 /* method parser_prod#AStarstarMethid#replace_child for (self: Object, ANode, nullable ANode) */
740 void VIRTUAL_parser_prod__AStarstarMethid__replace_child(val* self, val* p0, val* p1) {
741 parser_prod__AStarstarMethid__replace_child(self, p0, p1); /* Direct call parser_prod#AStarstarMethid#replace_child on <self:Object(AStarstarMethid)>*/
742 RET_LABEL:;
743 }
744 /* method parser_prod#AStarstarMethid#n_starstar= for (self: AStarstarMethid, TStarstar) */
745 void parser_prod__AStarstarMethid__n_starstar_61d(val* self, val* p0) {
746 val* var_node /* var node: TStarstar */;
747 var_node = p0;
748 self->attrs[COLOR_parser_nodes__AStarstarMethid___n_starstar].val = var_node; /* _n_starstar on <self:AStarstarMethid> */
749 {
750 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TStarstar> */
751 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TStarstar> */
752 RET_LABEL1:(void)0;
753 }
754 }
755 RET_LABEL:;
756 }
757 /* method parser_prod#AStarstarMethid#n_starstar= for (self: Object, TStarstar) */
758 void VIRTUAL_parser_prod__AStarstarMethid__n_starstar_61d(val* self, val* p0) {
759 parser_prod__AStarstarMethid__n_starstar_61d(self, p0); /* Direct call parser_prod#AStarstarMethid#n_starstar= on <self:Object(AStarstarMethid)>*/
760 RET_LABEL:;
761 }
762 /* method parser_prod#AStarstarMethid#visit_all for (self: AStarstarMethid, Visitor) */
763 void parser_prod__AStarstarMethid__visit_all(val* self, val* p0) {
764 val* var_v /* var v: Visitor */;
765 val* var /* : TStarstar */;
766 var_v = p0;
767 var = self->attrs[COLOR_parser_nodes__AStarstarMethid___n_starstar].val; /* _n_starstar on <self:AStarstarMethid> */
768 if (unlikely(var == NULL)) {
769 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_starstar");
770 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1432);
771 show_backtrace(1);
772 }
773 {
774 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
775 }
776 RET_LABEL:;
777 }
778 /* method parser_prod#AStarstarMethid#visit_all for (self: Object, Visitor) */
779 void VIRTUAL_parser_prod__AStarstarMethid__visit_all(val* self, val* p0) {
780 parser_prod__AStarstarMethid__visit_all(self, p0); /* Direct call parser_prod#AStarstarMethid#visit_all on <self:Object(AStarstarMethid)>*/
781 RET_LABEL:;
782 }
783 /* method parser_prod#ASlashMethid#init_aslashmethid for (self: ASlashMethid, nullable TSlash) */
784 void parser_prod__ASlashMethid__init_aslashmethid(val* self, val* p0) {
785 val* var_n_slash /* var n_slash: nullable TSlash */;
786 var_n_slash = p0;
787 if (unlikely(var_n_slash == NULL)) {
788 PRINT_ERROR("Runtime error: %s", "Cast failed");
789 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1440);
790 show_backtrace(1);
791 }
792 self->attrs[COLOR_parser_nodes__ASlashMethid___n_slash].val = var_n_slash; /* _n_slash on <self:ASlashMethid> */
793 if (var_n_slash == NULL) {
794 PRINT_ERROR("Runtime error: %s", "Receiver is null");
795 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1441);
796 show_backtrace(1);
797 } else {
798 { /* Inline parser_nodes#ANode#parent= (var_n_slash,self) on <var_n_slash:nullable TSlash> */
799 if (unlikely(var_n_slash == NULL)) {
800 PRINT_ERROR("Runtime error: %s", "Receiver is null");
801 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
802 show_backtrace(1);
803 }
804 var_n_slash->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_slash:nullable TSlash> */
805 RET_LABEL1:(void)0;
806 }
807 }
808 RET_LABEL:;
809 }
810 /* method parser_prod#ASlashMethid#init_aslashmethid for (self: Object, nullable TSlash) */
811 void VIRTUAL_parser_prod__ASlashMethid__init_aslashmethid(val* self, val* p0) {
812 parser_prod__ASlashMethid__init_aslashmethid(self, p0); /* Direct call parser_prod#ASlashMethid#init_aslashmethid on <self:Object(ASlashMethid)>*/
813 RET_LABEL:;
814 }
815 /* method parser_prod#ASlashMethid#replace_child for (self: ASlashMethid, ANode, nullable ANode) */
816 void parser_prod__ASlashMethid__replace_child(val* self, val* p0, val* p1) {
817 val* var_old_child /* var old_child: ANode */;
818 val* var_new_child /* var new_child: nullable ANode */;
819 val* var /* : TSlash */;
820 short int var1 /* : Bool */;
821 short int var2 /* : Bool */;
822 val* var_other /* var other: nullable Object */;
823 short int var4 /* : Bool */;
824 short int var6 /* : Bool */;
825 short int var7 /* : Bool */;
826 int cltype;
827 int idtype;
828 const char* var_class_name;
829 var_old_child = p0;
830 var_new_child = p1;
831 var = self->attrs[COLOR_parser_nodes__ASlashMethid___n_slash].val; /* _n_slash on <self:ASlashMethid> */
832 if (unlikely(var == NULL)) {
833 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_slash");
834 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1446);
835 show_backtrace(1);
836 }
837 {
838 { /* Inline kernel#Object#== (var,var_old_child) on <var:TSlash> */
839 var_other = var_old_child;
840 {
841 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TSlash> */
842 var6 = var == var_other;
843 var4 = var6;
844 goto RET_LABEL5;
845 RET_LABEL5:(void)0;
846 }
847 }
848 var2 = var4;
849 goto RET_LABEL3;
850 RET_LABEL3:(void)0;
851 }
852 var1 = var2;
853 }
854 if (var1){
855 /* <var_new_child:nullable ANode> isa TSlash */
856 cltype = type_parser_nodes__TSlash.color;
857 idtype = type_parser_nodes__TSlash.id;
858 if(var_new_child == NULL) {
859 var7 = 0;
860 } else {
861 if(cltype >= var_new_child->type->table_size) {
862 var7 = 0;
863 } else {
864 var7 = var_new_child->type->type_table[cltype] == idtype;
865 }
866 }
867 if (unlikely(!var7)) {
868 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
869 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TSlash", var_class_name);
870 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1447);
871 show_backtrace(1);
872 }
873 {
874 parser_prod__ASlashMethid__n_slash_61d(self, var_new_child); /* Direct call parser_prod#ASlashMethid#n_slash= on <self:ASlashMethid>*/
875 }
876 goto RET_LABEL;
877 } else {
878 }
879 RET_LABEL:;
880 }
881 /* method parser_prod#ASlashMethid#replace_child for (self: Object, ANode, nullable ANode) */
882 void VIRTUAL_parser_prod__ASlashMethid__replace_child(val* self, val* p0, val* p1) {
883 parser_prod__ASlashMethid__replace_child(self, p0, p1); /* Direct call parser_prod#ASlashMethid#replace_child on <self:Object(ASlashMethid)>*/
884 RET_LABEL:;
885 }
886 /* method parser_prod#ASlashMethid#n_slash= for (self: ASlashMethid, TSlash) */
887 void parser_prod__ASlashMethid__n_slash_61d(val* self, val* p0) {
888 val* var_node /* var node: TSlash */;
889 var_node = p0;
890 self->attrs[COLOR_parser_nodes__ASlashMethid___n_slash].val = var_node; /* _n_slash on <self:ASlashMethid> */
891 {
892 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TSlash> */
893 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TSlash> */
894 RET_LABEL1:(void)0;
895 }
896 }
897 RET_LABEL:;
898 }
899 /* method parser_prod#ASlashMethid#n_slash= for (self: Object, TSlash) */
900 void VIRTUAL_parser_prod__ASlashMethid__n_slash_61d(val* self, val* p0) {
901 parser_prod__ASlashMethid__n_slash_61d(self, p0); /* Direct call parser_prod#ASlashMethid#n_slash= on <self:Object(ASlashMethid)>*/
902 RET_LABEL:;
903 }
904 /* method parser_prod#ASlashMethid#visit_all for (self: ASlashMethid, Visitor) */
905 void parser_prod__ASlashMethid__visit_all(val* self, val* p0) {
906 val* var_v /* var v: Visitor */;
907 val* var /* : TSlash */;
908 var_v = p0;
909 var = self->attrs[COLOR_parser_nodes__ASlashMethid___n_slash].val; /* _n_slash on <self:ASlashMethid> */
910 if (unlikely(var == NULL)) {
911 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_slash");
912 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1461);
913 show_backtrace(1);
914 }
915 {
916 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
917 }
918 RET_LABEL:;
919 }
920 /* method parser_prod#ASlashMethid#visit_all for (self: Object, Visitor) */
921 void VIRTUAL_parser_prod__ASlashMethid__visit_all(val* self, val* p0) {
922 parser_prod__ASlashMethid__visit_all(self, p0); /* Direct call parser_prod#ASlashMethid#visit_all on <self:Object(ASlashMethid)>*/
923 RET_LABEL:;
924 }
925 /* method parser_prod#APercentMethid#init_apercentmethid for (self: APercentMethid, nullable TPercent) */
926 void parser_prod__APercentMethid__init_apercentmethid(val* self, val* p0) {
927 val* var_n_percent /* var n_percent: nullable TPercent */;
928 var_n_percent = p0;
929 if (unlikely(var_n_percent == NULL)) {
930 PRINT_ERROR("Runtime error: %s", "Cast failed");
931 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1469);
932 show_backtrace(1);
933 }
934 self->attrs[COLOR_parser_nodes__APercentMethid___n_percent].val = var_n_percent; /* _n_percent on <self:APercentMethid> */
935 if (var_n_percent == NULL) {
936 PRINT_ERROR("Runtime error: %s", "Receiver is null");
937 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1470);
938 show_backtrace(1);
939 } else {
940 { /* Inline parser_nodes#ANode#parent= (var_n_percent,self) on <var_n_percent:nullable TPercent> */
941 if (unlikely(var_n_percent == NULL)) {
942 PRINT_ERROR("Runtime error: %s", "Receiver is null");
943 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
944 show_backtrace(1);
945 }
946 var_n_percent->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_percent:nullable TPercent> */
947 RET_LABEL1:(void)0;
948 }
949 }
950 RET_LABEL:;
951 }
952 /* method parser_prod#APercentMethid#init_apercentmethid for (self: Object, nullable TPercent) */
953 void VIRTUAL_parser_prod__APercentMethid__init_apercentmethid(val* self, val* p0) {
954 parser_prod__APercentMethid__init_apercentmethid(self, p0); /* Direct call parser_prod#APercentMethid#init_apercentmethid on <self:Object(APercentMethid)>*/
955 RET_LABEL:;
956 }
957 /* method parser_prod#APercentMethid#replace_child for (self: APercentMethid, ANode, nullable ANode) */
958 void parser_prod__APercentMethid__replace_child(val* self, val* p0, val* p1) {
959 val* var_old_child /* var old_child: ANode */;
960 val* var_new_child /* var new_child: nullable ANode */;
961 val* var /* : TPercent */;
962 short int var1 /* : Bool */;
963 short int var2 /* : Bool */;
964 val* var_other /* var other: nullable Object */;
965 short int var4 /* : Bool */;
966 short int var6 /* : Bool */;
967 short int var7 /* : Bool */;
968 int cltype;
969 int idtype;
970 const char* var_class_name;
971 var_old_child = p0;
972 var_new_child = p1;
973 var = self->attrs[COLOR_parser_nodes__APercentMethid___n_percent].val; /* _n_percent on <self:APercentMethid> */
974 if (unlikely(var == NULL)) {
975 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_percent");
976 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1475);
977 show_backtrace(1);
978 }
979 {
980 { /* Inline kernel#Object#== (var,var_old_child) on <var:TPercent> */
981 var_other = var_old_child;
982 {
983 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TPercent> */
984 var6 = var == var_other;
985 var4 = var6;
986 goto RET_LABEL5;
987 RET_LABEL5:(void)0;
988 }
989 }
990 var2 = var4;
991 goto RET_LABEL3;
992 RET_LABEL3:(void)0;
993 }
994 var1 = var2;
995 }
996 if (var1){
997 /* <var_new_child:nullable ANode> isa TPercent */
998 cltype = type_parser_nodes__TPercent.color;
999 idtype = type_parser_nodes__TPercent.id;
1000 if(var_new_child == NULL) {
1001 var7 = 0;
1002 } else {
1003 if(cltype >= var_new_child->type->table_size) {
1004 var7 = 0;
1005 } else {
1006 var7 = var_new_child->type->type_table[cltype] == idtype;
1007 }
1008 }
1009 if (unlikely(!var7)) {
1010 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
1011 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TPercent", var_class_name);
1012 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1476);
1013 show_backtrace(1);
1014 }
1015 {
1016 parser_prod__APercentMethid__n_percent_61d(self, var_new_child); /* Direct call parser_prod#APercentMethid#n_percent= on <self:APercentMethid>*/
1017 }
1018 goto RET_LABEL;
1019 } else {
1020 }
1021 RET_LABEL:;
1022 }
1023 /* method parser_prod#APercentMethid#replace_child for (self: Object, ANode, nullable ANode) */
1024 void VIRTUAL_parser_prod__APercentMethid__replace_child(val* self, val* p0, val* p1) {
1025 parser_prod__APercentMethid__replace_child(self, p0, p1); /* Direct call parser_prod#APercentMethid#replace_child on <self:Object(APercentMethid)>*/
1026 RET_LABEL:;
1027 }
1028 /* method parser_prod#APercentMethid#n_percent= for (self: APercentMethid, TPercent) */
1029 void parser_prod__APercentMethid__n_percent_61d(val* self, val* p0) {
1030 val* var_node /* var node: TPercent */;
1031 var_node = p0;
1032 self->attrs[COLOR_parser_nodes__APercentMethid___n_percent].val = var_node; /* _n_percent on <self:APercentMethid> */
1033 {
1034 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TPercent> */
1035 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TPercent> */
1036 RET_LABEL1:(void)0;
1037 }
1038 }
1039 RET_LABEL:;
1040 }
1041 /* method parser_prod#APercentMethid#n_percent= for (self: Object, TPercent) */
1042 void VIRTUAL_parser_prod__APercentMethid__n_percent_61d(val* self, val* p0) {
1043 parser_prod__APercentMethid__n_percent_61d(self, p0); /* Direct call parser_prod#APercentMethid#n_percent= on <self:Object(APercentMethid)>*/
1044 RET_LABEL:;
1045 }
1046 /* method parser_prod#APercentMethid#visit_all for (self: APercentMethid, Visitor) */
1047 void parser_prod__APercentMethid__visit_all(val* self, val* p0) {
1048 val* var_v /* var v: Visitor */;
1049 val* var /* : TPercent */;
1050 var_v = p0;
1051 var = self->attrs[COLOR_parser_nodes__APercentMethid___n_percent].val; /* _n_percent on <self:APercentMethid> */
1052 if (unlikely(var == NULL)) {
1053 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_percent");
1054 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1490);
1055 show_backtrace(1);
1056 }
1057 {
1058 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1059 }
1060 RET_LABEL:;
1061 }
1062 /* method parser_prod#APercentMethid#visit_all for (self: Object, Visitor) */
1063 void VIRTUAL_parser_prod__APercentMethid__visit_all(val* self, val* p0) {
1064 parser_prod__APercentMethid__visit_all(self, p0); /* Direct call parser_prod#APercentMethid#visit_all on <self:Object(APercentMethid)>*/
1065 RET_LABEL:;
1066 }
1067 /* method parser_prod#AEqMethid#init_aeqmethid for (self: AEqMethid, nullable TEq) */
1068 void parser_prod__AEqMethid__init_aeqmethid(val* self, val* p0) {
1069 val* var_n_eq /* var n_eq: nullable TEq */;
1070 var_n_eq = p0;
1071 if (unlikely(var_n_eq == NULL)) {
1072 PRINT_ERROR("Runtime error: %s", "Cast failed");
1073 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1498);
1074 show_backtrace(1);
1075 }
1076 self->attrs[COLOR_parser_nodes__AEqMethid___n_eq].val = var_n_eq; /* _n_eq on <self:AEqMethid> */
1077 if (var_n_eq == NULL) {
1078 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1079 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1499);
1080 show_backtrace(1);
1081 } else {
1082 { /* Inline parser_nodes#ANode#parent= (var_n_eq,self) on <var_n_eq:nullable TEq> */
1083 if (unlikely(var_n_eq == NULL)) {
1084 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1085 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
1086 show_backtrace(1);
1087 }
1088 var_n_eq->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_eq:nullable TEq> */
1089 RET_LABEL1:(void)0;
1090 }
1091 }
1092 RET_LABEL:;
1093 }
1094 /* method parser_prod#AEqMethid#init_aeqmethid for (self: Object, nullable TEq) */
1095 void VIRTUAL_parser_prod__AEqMethid__init_aeqmethid(val* self, val* p0) {
1096 parser_prod__AEqMethid__init_aeqmethid(self, p0); /* Direct call parser_prod#AEqMethid#init_aeqmethid on <self:Object(AEqMethid)>*/
1097 RET_LABEL:;
1098 }
1099 /* method parser_prod#AEqMethid#replace_child for (self: AEqMethid, ANode, nullable ANode) */
1100 void parser_prod__AEqMethid__replace_child(val* self, val* p0, val* p1) {
1101 val* var_old_child /* var old_child: ANode */;
1102 val* var_new_child /* var new_child: nullable ANode */;
1103 val* var /* : TEq */;
1104 short int var1 /* : Bool */;
1105 short int var2 /* : Bool */;
1106 val* var_other /* var other: nullable Object */;
1107 short int var4 /* : Bool */;
1108 short int var6 /* : Bool */;
1109 short int var7 /* : Bool */;
1110 int cltype;
1111 int idtype;
1112 const char* var_class_name;
1113 var_old_child = p0;
1114 var_new_child = p1;
1115 var = self->attrs[COLOR_parser_nodes__AEqMethid___n_eq].val; /* _n_eq on <self:AEqMethid> */
1116 if (unlikely(var == NULL)) {
1117 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_eq");
1118 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1504);
1119 show_backtrace(1);
1120 }
1121 {
1122 { /* Inline kernel#Object#== (var,var_old_child) on <var:TEq> */
1123 var_other = var_old_child;
1124 {
1125 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TEq> */
1126 var6 = var == var_other;
1127 var4 = var6;
1128 goto RET_LABEL5;
1129 RET_LABEL5:(void)0;
1130 }
1131 }
1132 var2 = var4;
1133 goto RET_LABEL3;
1134 RET_LABEL3:(void)0;
1135 }
1136 var1 = var2;
1137 }
1138 if (var1){
1139 /* <var_new_child:nullable ANode> isa TEq */
1140 cltype = type_parser_nodes__TEq.color;
1141 idtype = type_parser_nodes__TEq.id;
1142 if(var_new_child == NULL) {
1143 var7 = 0;
1144 } else {
1145 if(cltype >= var_new_child->type->table_size) {
1146 var7 = 0;
1147 } else {
1148 var7 = var_new_child->type->type_table[cltype] == idtype;
1149 }
1150 }
1151 if (unlikely(!var7)) {
1152 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
1153 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TEq", var_class_name);
1154 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1505);
1155 show_backtrace(1);
1156 }
1157 {
1158 parser_prod__AEqMethid__n_eq_61d(self, var_new_child); /* Direct call parser_prod#AEqMethid#n_eq= on <self:AEqMethid>*/
1159 }
1160 goto RET_LABEL;
1161 } else {
1162 }
1163 RET_LABEL:;
1164 }
1165 /* method parser_prod#AEqMethid#replace_child for (self: Object, ANode, nullable ANode) */
1166 void VIRTUAL_parser_prod__AEqMethid__replace_child(val* self, val* p0, val* p1) {
1167 parser_prod__AEqMethid__replace_child(self, p0, p1); /* Direct call parser_prod#AEqMethid#replace_child on <self:Object(AEqMethid)>*/
1168 RET_LABEL:;
1169 }
1170 /* method parser_prod#AEqMethid#n_eq= for (self: AEqMethid, TEq) */
1171 void parser_prod__AEqMethid__n_eq_61d(val* self, val* p0) {
1172 val* var_node /* var node: TEq */;
1173 var_node = p0;
1174 self->attrs[COLOR_parser_nodes__AEqMethid___n_eq].val = var_node; /* _n_eq on <self:AEqMethid> */
1175 {
1176 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TEq> */
1177 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TEq> */
1178 RET_LABEL1:(void)0;
1179 }
1180 }
1181 RET_LABEL:;
1182 }
1183 /* method parser_prod#AEqMethid#n_eq= for (self: Object, TEq) */
1184 void VIRTUAL_parser_prod__AEqMethid__n_eq_61d(val* self, val* p0) {
1185 parser_prod__AEqMethid__n_eq_61d(self, p0); /* Direct call parser_prod#AEqMethid#n_eq= on <self:Object(AEqMethid)>*/
1186 RET_LABEL:;
1187 }
1188 /* method parser_prod#AEqMethid#visit_all for (self: AEqMethid, Visitor) */
1189 void parser_prod__AEqMethid__visit_all(val* self, val* p0) {
1190 val* var_v /* var v: Visitor */;
1191 val* var /* : TEq */;
1192 var_v = p0;
1193 var = self->attrs[COLOR_parser_nodes__AEqMethid___n_eq].val; /* _n_eq on <self:AEqMethid> */
1194 if (unlikely(var == NULL)) {
1195 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_eq");
1196 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1519);
1197 show_backtrace(1);
1198 }
1199 {
1200 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1201 }
1202 RET_LABEL:;
1203 }
1204 /* method parser_prod#AEqMethid#visit_all for (self: Object, Visitor) */
1205 void VIRTUAL_parser_prod__AEqMethid__visit_all(val* self, val* p0) {
1206 parser_prod__AEqMethid__visit_all(self, p0); /* Direct call parser_prod#AEqMethid#visit_all on <self:Object(AEqMethid)>*/
1207 RET_LABEL:;
1208 }
1209 /* method parser_prod#ANeMethid#init_anemethid for (self: ANeMethid, nullable TNe) */
1210 void parser_prod__ANeMethid__init_anemethid(val* self, val* p0) {
1211 val* var_n_ne /* var n_ne: nullable TNe */;
1212 var_n_ne = p0;
1213 if (unlikely(var_n_ne == NULL)) {
1214 PRINT_ERROR("Runtime error: %s", "Cast failed");
1215 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1527);
1216 show_backtrace(1);
1217 }
1218 self->attrs[COLOR_parser_nodes__ANeMethid___n_ne].val = var_n_ne; /* _n_ne on <self:ANeMethid> */
1219 if (var_n_ne == NULL) {
1220 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1221 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1528);
1222 show_backtrace(1);
1223 } else {
1224 { /* Inline parser_nodes#ANode#parent= (var_n_ne,self) on <var_n_ne:nullable TNe> */
1225 if (unlikely(var_n_ne == NULL)) {
1226 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1227 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
1228 show_backtrace(1);
1229 }
1230 var_n_ne->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_ne:nullable TNe> */
1231 RET_LABEL1:(void)0;
1232 }
1233 }
1234 RET_LABEL:;
1235 }
1236 /* method parser_prod#ANeMethid#init_anemethid for (self: Object, nullable TNe) */
1237 void VIRTUAL_parser_prod__ANeMethid__init_anemethid(val* self, val* p0) {
1238 parser_prod__ANeMethid__init_anemethid(self, p0); /* Direct call parser_prod#ANeMethid#init_anemethid on <self:Object(ANeMethid)>*/
1239 RET_LABEL:;
1240 }
1241 /* method parser_prod#ANeMethid#replace_child for (self: ANeMethid, ANode, nullable ANode) */
1242 void parser_prod__ANeMethid__replace_child(val* self, val* p0, val* p1) {
1243 val* var_old_child /* var old_child: ANode */;
1244 val* var_new_child /* var new_child: nullable ANode */;
1245 val* var /* : TNe */;
1246 short int var1 /* : Bool */;
1247 short int var2 /* : Bool */;
1248 val* var_other /* var other: nullable Object */;
1249 short int var4 /* : Bool */;
1250 short int var6 /* : Bool */;
1251 short int var7 /* : Bool */;
1252 int cltype;
1253 int idtype;
1254 const char* var_class_name;
1255 var_old_child = p0;
1256 var_new_child = p1;
1257 var = self->attrs[COLOR_parser_nodes__ANeMethid___n_ne].val; /* _n_ne on <self:ANeMethid> */
1258 if (unlikely(var == NULL)) {
1259 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_ne");
1260 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1533);
1261 show_backtrace(1);
1262 }
1263 {
1264 { /* Inline kernel#Object#== (var,var_old_child) on <var:TNe> */
1265 var_other = var_old_child;
1266 {
1267 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TNe> */
1268 var6 = var == var_other;
1269 var4 = var6;
1270 goto RET_LABEL5;
1271 RET_LABEL5:(void)0;
1272 }
1273 }
1274 var2 = var4;
1275 goto RET_LABEL3;
1276 RET_LABEL3:(void)0;
1277 }
1278 var1 = var2;
1279 }
1280 if (var1){
1281 /* <var_new_child:nullable ANode> isa TNe */
1282 cltype = type_parser_nodes__TNe.color;
1283 idtype = type_parser_nodes__TNe.id;
1284 if(var_new_child == NULL) {
1285 var7 = 0;
1286 } else {
1287 if(cltype >= var_new_child->type->table_size) {
1288 var7 = 0;
1289 } else {
1290 var7 = var_new_child->type->type_table[cltype] == idtype;
1291 }
1292 }
1293 if (unlikely(!var7)) {
1294 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
1295 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TNe", var_class_name);
1296 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1534);
1297 show_backtrace(1);
1298 }
1299 {
1300 parser_prod__ANeMethid__n_ne_61d(self, var_new_child); /* Direct call parser_prod#ANeMethid#n_ne= on <self:ANeMethid>*/
1301 }
1302 goto RET_LABEL;
1303 } else {
1304 }
1305 RET_LABEL:;
1306 }
1307 /* method parser_prod#ANeMethid#replace_child for (self: Object, ANode, nullable ANode) */
1308 void VIRTUAL_parser_prod__ANeMethid__replace_child(val* self, val* p0, val* p1) {
1309 parser_prod__ANeMethid__replace_child(self, p0, p1); /* Direct call parser_prod#ANeMethid#replace_child on <self:Object(ANeMethid)>*/
1310 RET_LABEL:;
1311 }
1312 /* method parser_prod#ANeMethid#n_ne= for (self: ANeMethid, TNe) */
1313 void parser_prod__ANeMethid__n_ne_61d(val* self, val* p0) {
1314 val* var_node /* var node: TNe */;
1315 var_node = p0;
1316 self->attrs[COLOR_parser_nodes__ANeMethid___n_ne].val = var_node; /* _n_ne on <self:ANeMethid> */
1317 {
1318 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TNe> */
1319 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TNe> */
1320 RET_LABEL1:(void)0;
1321 }
1322 }
1323 RET_LABEL:;
1324 }
1325 /* method parser_prod#ANeMethid#n_ne= for (self: Object, TNe) */
1326 void VIRTUAL_parser_prod__ANeMethid__n_ne_61d(val* self, val* p0) {
1327 parser_prod__ANeMethid__n_ne_61d(self, p0); /* Direct call parser_prod#ANeMethid#n_ne= on <self:Object(ANeMethid)>*/
1328 RET_LABEL:;
1329 }
1330 /* method parser_prod#ANeMethid#visit_all for (self: ANeMethid, Visitor) */
1331 void parser_prod__ANeMethid__visit_all(val* self, val* p0) {
1332 val* var_v /* var v: Visitor */;
1333 val* var /* : TNe */;
1334 var_v = p0;
1335 var = self->attrs[COLOR_parser_nodes__ANeMethid___n_ne].val; /* _n_ne on <self:ANeMethid> */
1336 if (unlikely(var == NULL)) {
1337 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_ne");
1338 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1548);
1339 show_backtrace(1);
1340 }
1341 {
1342 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1343 }
1344 RET_LABEL:;
1345 }
1346 /* method parser_prod#ANeMethid#visit_all for (self: Object, Visitor) */
1347 void VIRTUAL_parser_prod__ANeMethid__visit_all(val* self, val* p0) {
1348 parser_prod__ANeMethid__visit_all(self, p0); /* Direct call parser_prod#ANeMethid#visit_all on <self:Object(ANeMethid)>*/
1349 RET_LABEL:;
1350 }
1351 /* method parser_prod#ALeMethid#init_alemethid for (self: ALeMethid, nullable TLe) */
1352 void parser_prod__ALeMethid__init_alemethid(val* self, val* p0) {
1353 val* var_n_le /* var n_le: nullable TLe */;
1354 var_n_le = p0;
1355 if (unlikely(var_n_le == NULL)) {
1356 PRINT_ERROR("Runtime error: %s", "Cast failed");
1357 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1556);
1358 show_backtrace(1);
1359 }
1360 self->attrs[COLOR_parser_nodes__ALeMethid___n_le].val = var_n_le; /* _n_le on <self:ALeMethid> */
1361 if (var_n_le == NULL) {
1362 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1363 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1557);
1364 show_backtrace(1);
1365 } else {
1366 { /* Inline parser_nodes#ANode#parent= (var_n_le,self) on <var_n_le:nullable TLe> */
1367 if (unlikely(var_n_le == NULL)) {
1368 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1369 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
1370 show_backtrace(1);
1371 }
1372 var_n_le->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_le:nullable TLe> */
1373 RET_LABEL1:(void)0;
1374 }
1375 }
1376 RET_LABEL:;
1377 }
1378 /* method parser_prod#ALeMethid#init_alemethid for (self: Object, nullable TLe) */
1379 void VIRTUAL_parser_prod__ALeMethid__init_alemethid(val* self, val* p0) {
1380 parser_prod__ALeMethid__init_alemethid(self, p0); /* Direct call parser_prod#ALeMethid#init_alemethid on <self:Object(ALeMethid)>*/
1381 RET_LABEL:;
1382 }
1383 /* method parser_prod#ALeMethid#replace_child for (self: ALeMethid, ANode, nullable ANode) */
1384 void parser_prod__ALeMethid__replace_child(val* self, val* p0, val* p1) {
1385 val* var_old_child /* var old_child: ANode */;
1386 val* var_new_child /* var new_child: nullable ANode */;
1387 val* var /* : TLe */;
1388 short int var1 /* : Bool */;
1389 short int var2 /* : Bool */;
1390 val* var_other /* var other: nullable Object */;
1391 short int var4 /* : Bool */;
1392 short int var6 /* : Bool */;
1393 short int var7 /* : Bool */;
1394 int cltype;
1395 int idtype;
1396 const char* var_class_name;
1397 var_old_child = p0;
1398 var_new_child = p1;
1399 var = self->attrs[COLOR_parser_nodes__ALeMethid___n_le].val; /* _n_le on <self:ALeMethid> */
1400 if (unlikely(var == NULL)) {
1401 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_le");
1402 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1562);
1403 show_backtrace(1);
1404 }
1405 {
1406 { /* Inline kernel#Object#== (var,var_old_child) on <var:TLe> */
1407 var_other = var_old_child;
1408 {
1409 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TLe> */
1410 var6 = var == var_other;
1411 var4 = var6;
1412 goto RET_LABEL5;
1413 RET_LABEL5:(void)0;
1414 }
1415 }
1416 var2 = var4;
1417 goto RET_LABEL3;
1418 RET_LABEL3:(void)0;
1419 }
1420 var1 = var2;
1421 }
1422 if (var1){
1423 /* <var_new_child:nullable ANode> isa TLe */
1424 cltype = type_parser_nodes__TLe.color;
1425 idtype = type_parser_nodes__TLe.id;
1426 if(var_new_child == NULL) {
1427 var7 = 0;
1428 } else {
1429 if(cltype >= var_new_child->type->table_size) {
1430 var7 = 0;
1431 } else {
1432 var7 = var_new_child->type->type_table[cltype] == idtype;
1433 }
1434 }
1435 if (unlikely(!var7)) {
1436 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
1437 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TLe", var_class_name);
1438 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1563);
1439 show_backtrace(1);
1440 }
1441 {
1442 parser_prod__ALeMethid__n_le_61d(self, var_new_child); /* Direct call parser_prod#ALeMethid#n_le= on <self:ALeMethid>*/
1443 }
1444 goto RET_LABEL;
1445 } else {
1446 }
1447 RET_LABEL:;
1448 }
1449 /* method parser_prod#ALeMethid#replace_child for (self: Object, ANode, nullable ANode) */
1450 void VIRTUAL_parser_prod__ALeMethid__replace_child(val* self, val* p0, val* p1) {
1451 parser_prod__ALeMethid__replace_child(self, p0, p1); /* Direct call parser_prod#ALeMethid#replace_child on <self:Object(ALeMethid)>*/
1452 RET_LABEL:;
1453 }
1454 /* method parser_prod#ALeMethid#n_le= for (self: ALeMethid, TLe) */
1455 void parser_prod__ALeMethid__n_le_61d(val* self, val* p0) {
1456 val* var_node /* var node: TLe */;
1457 var_node = p0;
1458 self->attrs[COLOR_parser_nodes__ALeMethid___n_le].val = var_node; /* _n_le on <self:ALeMethid> */
1459 {
1460 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TLe> */
1461 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TLe> */
1462 RET_LABEL1:(void)0;
1463 }
1464 }
1465 RET_LABEL:;
1466 }
1467 /* method parser_prod#ALeMethid#n_le= for (self: Object, TLe) */
1468 void VIRTUAL_parser_prod__ALeMethid__n_le_61d(val* self, val* p0) {
1469 parser_prod__ALeMethid__n_le_61d(self, p0); /* Direct call parser_prod#ALeMethid#n_le= on <self:Object(ALeMethid)>*/
1470 RET_LABEL:;
1471 }
1472 /* method parser_prod#ALeMethid#visit_all for (self: ALeMethid, Visitor) */
1473 void parser_prod__ALeMethid__visit_all(val* self, val* p0) {
1474 val* var_v /* var v: Visitor */;
1475 val* var /* : TLe */;
1476 var_v = p0;
1477 var = self->attrs[COLOR_parser_nodes__ALeMethid___n_le].val; /* _n_le on <self:ALeMethid> */
1478 if (unlikely(var == NULL)) {
1479 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_le");
1480 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1577);
1481 show_backtrace(1);
1482 }
1483 {
1484 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1485 }
1486 RET_LABEL:;
1487 }
1488 /* method parser_prod#ALeMethid#visit_all for (self: Object, Visitor) */
1489 void VIRTUAL_parser_prod__ALeMethid__visit_all(val* self, val* p0) {
1490 parser_prod__ALeMethid__visit_all(self, p0); /* Direct call parser_prod#ALeMethid#visit_all on <self:Object(ALeMethid)>*/
1491 RET_LABEL:;
1492 }
1493 /* method parser_prod#AGeMethid#init_agemethid for (self: AGeMethid, nullable TGe) */
1494 void parser_prod__AGeMethid__init_agemethid(val* self, val* p0) {
1495 val* var_n_ge /* var n_ge: nullable TGe */;
1496 var_n_ge = p0;
1497 if (unlikely(var_n_ge == NULL)) {
1498 PRINT_ERROR("Runtime error: %s", "Cast failed");
1499 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1585);
1500 show_backtrace(1);
1501 }
1502 self->attrs[COLOR_parser_nodes__AGeMethid___n_ge].val = var_n_ge; /* _n_ge on <self:AGeMethid> */
1503 if (var_n_ge == NULL) {
1504 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1505 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1586);
1506 show_backtrace(1);
1507 } else {
1508 { /* Inline parser_nodes#ANode#parent= (var_n_ge,self) on <var_n_ge:nullable TGe> */
1509 if (unlikely(var_n_ge == NULL)) {
1510 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1511 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
1512 show_backtrace(1);
1513 }
1514 var_n_ge->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_ge:nullable TGe> */
1515 RET_LABEL1:(void)0;
1516 }
1517 }
1518 RET_LABEL:;
1519 }
1520 /* method parser_prod#AGeMethid#init_agemethid for (self: Object, nullable TGe) */
1521 void VIRTUAL_parser_prod__AGeMethid__init_agemethid(val* self, val* p0) {
1522 parser_prod__AGeMethid__init_agemethid(self, p0); /* Direct call parser_prod#AGeMethid#init_agemethid on <self:Object(AGeMethid)>*/
1523 RET_LABEL:;
1524 }
1525 /* method parser_prod#AGeMethid#replace_child for (self: AGeMethid, ANode, nullable ANode) */
1526 void parser_prod__AGeMethid__replace_child(val* self, val* p0, val* p1) {
1527 val* var_old_child /* var old_child: ANode */;
1528 val* var_new_child /* var new_child: nullable ANode */;
1529 val* var /* : TGe */;
1530 short int var1 /* : Bool */;
1531 short int var2 /* : Bool */;
1532 val* var_other /* var other: nullable Object */;
1533 short int var4 /* : Bool */;
1534 short int var6 /* : Bool */;
1535 short int var7 /* : Bool */;
1536 int cltype;
1537 int idtype;
1538 const char* var_class_name;
1539 var_old_child = p0;
1540 var_new_child = p1;
1541 var = self->attrs[COLOR_parser_nodes__AGeMethid___n_ge].val; /* _n_ge on <self:AGeMethid> */
1542 if (unlikely(var == NULL)) {
1543 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_ge");
1544 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1591);
1545 show_backtrace(1);
1546 }
1547 {
1548 { /* Inline kernel#Object#== (var,var_old_child) on <var:TGe> */
1549 var_other = var_old_child;
1550 {
1551 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TGe> */
1552 var6 = var == var_other;
1553 var4 = var6;
1554 goto RET_LABEL5;
1555 RET_LABEL5:(void)0;
1556 }
1557 }
1558 var2 = var4;
1559 goto RET_LABEL3;
1560 RET_LABEL3:(void)0;
1561 }
1562 var1 = var2;
1563 }
1564 if (var1){
1565 /* <var_new_child:nullable ANode> isa TGe */
1566 cltype = type_parser_nodes__TGe.color;
1567 idtype = type_parser_nodes__TGe.id;
1568 if(var_new_child == NULL) {
1569 var7 = 0;
1570 } else {
1571 if(cltype >= var_new_child->type->table_size) {
1572 var7 = 0;
1573 } else {
1574 var7 = var_new_child->type->type_table[cltype] == idtype;
1575 }
1576 }
1577 if (unlikely(!var7)) {
1578 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
1579 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TGe", var_class_name);
1580 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1592);
1581 show_backtrace(1);
1582 }
1583 {
1584 parser_prod__AGeMethid__n_ge_61d(self, var_new_child); /* Direct call parser_prod#AGeMethid#n_ge= on <self:AGeMethid>*/
1585 }
1586 goto RET_LABEL;
1587 } else {
1588 }
1589 RET_LABEL:;
1590 }
1591 /* method parser_prod#AGeMethid#replace_child for (self: Object, ANode, nullable ANode) */
1592 void VIRTUAL_parser_prod__AGeMethid__replace_child(val* self, val* p0, val* p1) {
1593 parser_prod__AGeMethid__replace_child(self, p0, p1); /* Direct call parser_prod#AGeMethid#replace_child on <self:Object(AGeMethid)>*/
1594 RET_LABEL:;
1595 }
1596 /* method parser_prod#AGeMethid#n_ge= for (self: AGeMethid, TGe) */
1597 void parser_prod__AGeMethid__n_ge_61d(val* self, val* p0) {
1598 val* var_node /* var node: TGe */;
1599 var_node = p0;
1600 self->attrs[COLOR_parser_nodes__AGeMethid___n_ge].val = var_node; /* _n_ge on <self:AGeMethid> */
1601 {
1602 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TGe> */
1603 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TGe> */
1604 RET_LABEL1:(void)0;
1605 }
1606 }
1607 RET_LABEL:;
1608 }
1609 /* method parser_prod#AGeMethid#n_ge= for (self: Object, TGe) */
1610 void VIRTUAL_parser_prod__AGeMethid__n_ge_61d(val* self, val* p0) {
1611 parser_prod__AGeMethid__n_ge_61d(self, p0); /* Direct call parser_prod#AGeMethid#n_ge= on <self:Object(AGeMethid)>*/
1612 RET_LABEL:;
1613 }
1614 /* method parser_prod#AGeMethid#visit_all for (self: AGeMethid, Visitor) */
1615 void parser_prod__AGeMethid__visit_all(val* self, val* p0) {
1616 val* var_v /* var v: Visitor */;
1617 val* var /* : TGe */;
1618 var_v = p0;
1619 var = self->attrs[COLOR_parser_nodes__AGeMethid___n_ge].val; /* _n_ge on <self:AGeMethid> */
1620 if (unlikely(var == NULL)) {
1621 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_ge");
1622 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1606);
1623 show_backtrace(1);
1624 }
1625 {
1626 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1627 }
1628 RET_LABEL:;
1629 }
1630 /* method parser_prod#AGeMethid#visit_all for (self: Object, Visitor) */
1631 void VIRTUAL_parser_prod__AGeMethid__visit_all(val* self, val* p0) {
1632 parser_prod__AGeMethid__visit_all(self, p0); /* Direct call parser_prod#AGeMethid#visit_all on <self:Object(AGeMethid)>*/
1633 RET_LABEL:;
1634 }
1635 /* method parser_prod#ALtMethid#init_altmethid for (self: ALtMethid, nullable TLt) */
1636 void parser_prod__ALtMethid__init_altmethid(val* self, val* p0) {
1637 val* var_n_lt /* var n_lt: nullable TLt */;
1638 var_n_lt = p0;
1639 if (unlikely(var_n_lt == NULL)) {
1640 PRINT_ERROR("Runtime error: %s", "Cast failed");
1641 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1614);
1642 show_backtrace(1);
1643 }
1644 self->attrs[COLOR_parser_nodes__ALtMethid___n_lt].val = var_n_lt; /* _n_lt on <self:ALtMethid> */
1645 if (var_n_lt == NULL) {
1646 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1647 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1615);
1648 show_backtrace(1);
1649 } else {
1650 { /* Inline parser_nodes#ANode#parent= (var_n_lt,self) on <var_n_lt:nullable TLt> */
1651 if (unlikely(var_n_lt == NULL)) {
1652 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1653 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
1654 show_backtrace(1);
1655 }
1656 var_n_lt->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_lt:nullable TLt> */
1657 RET_LABEL1:(void)0;
1658 }
1659 }
1660 RET_LABEL:;
1661 }
1662 /* method parser_prod#ALtMethid#init_altmethid for (self: Object, nullable TLt) */
1663 void VIRTUAL_parser_prod__ALtMethid__init_altmethid(val* self, val* p0) {
1664 parser_prod__ALtMethid__init_altmethid(self, p0); /* Direct call parser_prod#ALtMethid#init_altmethid on <self:Object(ALtMethid)>*/
1665 RET_LABEL:;
1666 }
1667 /* method parser_prod#ALtMethid#replace_child for (self: ALtMethid, ANode, nullable ANode) */
1668 void parser_prod__ALtMethid__replace_child(val* self, val* p0, val* p1) {
1669 val* var_old_child /* var old_child: ANode */;
1670 val* var_new_child /* var new_child: nullable ANode */;
1671 val* var /* : TLt */;
1672 short int var1 /* : Bool */;
1673 short int var2 /* : Bool */;
1674 val* var_other /* var other: nullable Object */;
1675 short int var4 /* : Bool */;
1676 short int var6 /* : Bool */;
1677 short int var7 /* : Bool */;
1678 int cltype;
1679 int idtype;
1680 const char* var_class_name;
1681 var_old_child = p0;
1682 var_new_child = p1;
1683 var = self->attrs[COLOR_parser_nodes__ALtMethid___n_lt].val; /* _n_lt on <self:ALtMethid> */
1684 if (unlikely(var == NULL)) {
1685 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_lt");
1686 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1620);
1687 show_backtrace(1);
1688 }
1689 {
1690 { /* Inline kernel#Object#== (var,var_old_child) on <var:TLt> */
1691 var_other = var_old_child;
1692 {
1693 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TLt> */
1694 var6 = var == var_other;
1695 var4 = var6;
1696 goto RET_LABEL5;
1697 RET_LABEL5:(void)0;
1698 }
1699 }
1700 var2 = var4;
1701 goto RET_LABEL3;
1702 RET_LABEL3:(void)0;
1703 }
1704 var1 = var2;
1705 }
1706 if (var1){
1707 /* <var_new_child:nullable ANode> isa TLt */
1708 cltype = type_parser_nodes__TLt.color;
1709 idtype = type_parser_nodes__TLt.id;
1710 if(var_new_child == NULL) {
1711 var7 = 0;
1712 } else {
1713 if(cltype >= var_new_child->type->table_size) {
1714 var7 = 0;
1715 } else {
1716 var7 = var_new_child->type->type_table[cltype] == idtype;
1717 }
1718 }
1719 if (unlikely(!var7)) {
1720 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
1721 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TLt", var_class_name);
1722 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1621);
1723 show_backtrace(1);
1724 }
1725 {
1726 parser_prod__ALtMethid__n_lt_61d(self, var_new_child); /* Direct call parser_prod#ALtMethid#n_lt= on <self:ALtMethid>*/
1727 }
1728 goto RET_LABEL;
1729 } else {
1730 }
1731 RET_LABEL:;
1732 }
1733 /* method parser_prod#ALtMethid#replace_child for (self: Object, ANode, nullable ANode) */
1734 void VIRTUAL_parser_prod__ALtMethid__replace_child(val* self, val* p0, val* p1) {
1735 parser_prod__ALtMethid__replace_child(self, p0, p1); /* Direct call parser_prod#ALtMethid#replace_child on <self:Object(ALtMethid)>*/
1736 RET_LABEL:;
1737 }
1738 /* method parser_prod#ALtMethid#n_lt= for (self: ALtMethid, TLt) */
1739 void parser_prod__ALtMethid__n_lt_61d(val* self, val* p0) {
1740 val* var_node /* var node: TLt */;
1741 var_node = p0;
1742 self->attrs[COLOR_parser_nodes__ALtMethid___n_lt].val = var_node; /* _n_lt on <self:ALtMethid> */
1743 {
1744 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TLt> */
1745 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TLt> */
1746 RET_LABEL1:(void)0;
1747 }
1748 }
1749 RET_LABEL:;
1750 }
1751 /* method parser_prod#ALtMethid#n_lt= for (self: Object, TLt) */
1752 void VIRTUAL_parser_prod__ALtMethid__n_lt_61d(val* self, val* p0) {
1753 parser_prod__ALtMethid__n_lt_61d(self, p0); /* Direct call parser_prod#ALtMethid#n_lt= on <self:Object(ALtMethid)>*/
1754 RET_LABEL:;
1755 }
1756 /* method parser_prod#ALtMethid#visit_all for (self: ALtMethid, Visitor) */
1757 void parser_prod__ALtMethid__visit_all(val* self, val* p0) {
1758 val* var_v /* var v: Visitor */;
1759 val* var /* : TLt */;
1760 var_v = p0;
1761 var = self->attrs[COLOR_parser_nodes__ALtMethid___n_lt].val; /* _n_lt on <self:ALtMethid> */
1762 if (unlikely(var == NULL)) {
1763 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_lt");
1764 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1635);
1765 show_backtrace(1);
1766 }
1767 {
1768 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1769 }
1770 RET_LABEL:;
1771 }
1772 /* method parser_prod#ALtMethid#visit_all for (self: Object, Visitor) */
1773 void VIRTUAL_parser_prod__ALtMethid__visit_all(val* self, val* p0) {
1774 parser_prod__ALtMethid__visit_all(self, p0); /* Direct call parser_prod#ALtMethid#visit_all on <self:Object(ALtMethid)>*/
1775 RET_LABEL:;
1776 }
1777 /* method parser_prod#AGtMethid#init_agtmethid for (self: AGtMethid, nullable TGt) */
1778 void parser_prod__AGtMethid__init_agtmethid(val* self, val* p0) {
1779 val* var_n_gt /* var n_gt: nullable TGt */;
1780 var_n_gt = p0;
1781 if (unlikely(var_n_gt == NULL)) {
1782 PRINT_ERROR("Runtime error: %s", "Cast failed");
1783 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1643);
1784 show_backtrace(1);
1785 }
1786 self->attrs[COLOR_parser_nodes__AGtMethid___n_gt].val = var_n_gt; /* _n_gt on <self:AGtMethid> */
1787 if (var_n_gt == NULL) {
1788 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1789 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1644);
1790 show_backtrace(1);
1791 } else {
1792 { /* Inline parser_nodes#ANode#parent= (var_n_gt,self) on <var_n_gt:nullable TGt> */
1793 if (unlikely(var_n_gt == NULL)) {
1794 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1795 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
1796 show_backtrace(1);
1797 }
1798 var_n_gt->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_gt:nullable TGt> */
1799 RET_LABEL1:(void)0;
1800 }
1801 }
1802 RET_LABEL:;
1803 }
1804 /* method parser_prod#AGtMethid#init_agtmethid for (self: Object, nullable TGt) */
1805 void VIRTUAL_parser_prod__AGtMethid__init_agtmethid(val* self, val* p0) {
1806 parser_prod__AGtMethid__init_agtmethid(self, p0); /* Direct call parser_prod#AGtMethid#init_agtmethid on <self:Object(AGtMethid)>*/
1807 RET_LABEL:;
1808 }
1809 /* method parser_prod#AGtMethid#replace_child for (self: AGtMethid, ANode, nullable ANode) */
1810 void parser_prod__AGtMethid__replace_child(val* self, val* p0, val* p1) {
1811 val* var_old_child /* var old_child: ANode */;
1812 val* var_new_child /* var new_child: nullable ANode */;
1813 val* var /* : TGt */;
1814 short int var1 /* : Bool */;
1815 short int var2 /* : Bool */;
1816 val* var_other /* var other: nullable Object */;
1817 short int var4 /* : Bool */;
1818 short int var6 /* : Bool */;
1819 short int var7 /* : Bool */;
1820 int cltype;
1821 int idtype;
1822 const char* var_class_name;
1823 var_old_child = p0;
1824 var_new_child = p1;
1825 var = self->attrs[COLOR_parser_nodes__AGtMethid___n_gt].val; /* _n_gt on <self:AGtMethid> */
1826 if (unlikely(var == NULL)) {
1827 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_gt");
1828 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1649);
1829 show_backtrace(1);
1830 }
1831 {
1832 { /* Inline kernel#Object#== (var,var_old_child) on <var:TGt> */
1833 var_other = var_old_child;
1834 {
1835 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TGt> */
1836 var6 = var == var_other;
1837 var4 = var6;
1838 goto RET_LABEL5;
1839 RET_LABEL5:(void)0;
1840 }
1841 }
1842 var2 = var4;
1843 goto RET_LABEL3;
1844 RET_LABEL3:(void)0;
1845 }
1846 var1 = var2;
1847 }
1848 if (var1){
1849 /* <var_new_child:nullable ANode> isa TGt */
1850 cltype = type_parser_nodes__TGt.color;
1851 idtype = type_parser_nodes__TGt.id;
1852 if(var_new_child == NULL) {
1853 var7 = 0;
1854 } else {
1855 if(cltype >= var_new_child->type->table_size) {
1856 var7 = 0;
1857 } else {
1858 var7 = var_new_child->type->type_table[cltype] == idtype;
1859 }
1860 }
1861 if (unlikely(!var7)) {
1862 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
1863 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TGt", var_class_name);
1864 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1650);
1865 show_backtrace(1);
1866 }
1867 {
1868 parser_prod__AGtMethid__n_gt_61d(self, var_new_child); /* Direct call parser_prod#AGtMethid#n_gt= on <self:AGtMethid>*/
1869 }
1870 goto RET_LABEL;
1871 } else {
1872 }
1873 RET_LABEL:;
1874 }
1875 /* method parser_prod#AGtMethid#replace_child for (self: Object, ANode, nullable ANode) */
1876 void VIRTUAL_parser_prod__AGtMethid__replace_child(val* self, val* p0, val* p1) {
1877 parser_prod__AGtMethid__replace_child(self, p0, p1); /* Direct call parser_prod#AGtMethid#replace_child on <self:Object(AGtMethid)>*/
1878 RET_LABEL:;
1879 }
1880 /* method parser_prod#AGtMethid#n_gt= for (self: AGtMethid, TGt) */
1881 void parser_prod__AGtMethid__n_gt_61d(val* self, val* p0) {
1882 val* var_node /* var node: TGt */;
1883 var_node = p0;
1884 self->attrs[COLOR_parser_nodes__AGtMethid___n_gt].val = var_node; /* _n_gt on <self:AGtMethid> */
1885 {
1886 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TGt> */
1887 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TGt> */
1888 RET_LABEL1:(void)0;
1889 }
1890 }
1891 RET_LABEL:;
1892 }
1893 /* method parser_prod#AGtMethid#n_gt= for (self: Object, TGt) */
1894 void VIRTUAL_parser_prod__AGtMethid__n_gt_61d(val* self, val* p0) {
1895 parser_prod__AGtMethid__n_gt_61d(self, p0); /* Direct call parser_prod#AGtMethid#n_gt= on <self:Object(AGtMethid)>*/
1896 RET_LABEL:;
1897 }
1898 /* method parser_prod#AGtMethid#visit_all for (self: AGtMethid, Visitor) */
1899 void parser_prod__AGtMethid__visit_all(val* self, val* p0) {
1900 val* var_v /* var v: Visitor */;
1901 val* var /* : TGt */;
1902 var_v = p0;
1903 var = self->attrs[COLOR_parser_nodes__AGtMethid___n_gt].val; /* _n_gt on <self:AGtMethid> */
1904 if (unlikely(var == NULL)) {
1905 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_gt");
1906 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1664);
1907 show_backtrace(1);
1908 }
1909 {
1910 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1911 }
1912 RET_LABEL:;
1913 }
1914 /* method parser_prod#AGtMethid#visit_all for (self: Object, Visitor) */
1915 void VIRTUAL_parser_prod__AGtMethid__visit_all(val* self, val* p0) {
1916 parser_prod__AGtMethid__visit_all(self, p0); /* Direct call parser_prod#AGtMethid#visit_all on <self:Object(AGtMethid)>*/
1917 RET_LABEL:;
1918 }
1919 /* method parser_prod#ALlMethid#init_allmethid for (self: ALlMethid, nullable TLl) */
1920 void parser_prod__ALlMethid__init_allmethid(val* self, val* p0) {
1921 val* var_n_ll /* var n_ll: nullable TLl */;
1922 var_n_ll = p0;
1923 if (unlikely(var_n_ll == NULL)) {
1924 PRINT_ERROR("Runtime error: %s", "Cast failed");
1925 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1672);
1926 show_backtrace(1);
1927 }
1928 self->attrs[COLOR_parser_nodes__ALlMethid___n_ll].val = var_n_ll; /* _n_ll on <self:ALlMethid> */
1929 if (var_n_ll == NULL) {
1930 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1931 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1673);
1932 show_backtrace(1);
1933 } else {
1934 { /* Inline parser_nodes#ANode#parent= (var_n_ll,self) on <var_n_ll:nullable TLl> */
1935 if (unlikely(var_n_ll == NULL)) {
1936 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1937 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
1938 show_backtrace(1);
1939 }
1940 var_n_ll->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_ll:nullable TLl> */
1941 RET_LABEL1:(void)0;
1942 }
1943 }
1944 RET_LABEL:;
1945 }
1946 /* method parser_prod#ALlMethid#init_allmethid for (self: Object, nullable TLl) */
1947 void VIRTUAL_parser_prod__ALlMethid__init_allmethid(val* self, val* p0) {
1948 parser_prod__ALlMethid__init_allmethid(self, p0); /* Direct call parser_prod#ALlMethid#init_allmethid on <self:Object(ALlMethid)>*/
1949 RET_LABEL:;
1950 }
1951 /* method parser_prod#ALlMethid#replace_child for (self: ALlMethid, ANode, nullable ANode) */
1952 void parser_prod__ALlMethid__replace_child(val* self, val* p0, val* p1) {
1953 val* var_old_child /* var old_child: ANode */;
1954 val* var_new_child /* var new_child: nullable ANode */;
1955 val* var /* : TLl */;
1956 short int var1 /* : Bool */;
1957 short int var2 /* : Bool */;
1958 val* var_other /* var other: nullable Object */;
1959 short int var4 /* : Bool */;
1960 short int var6 /* : Bool */;
1961 short int var7 /* : Bool */;
1962 int cltype;
1963 int idtype;
1964 const char* var_class_name;
1965 var_old_child = p0;
1966 var_new_child = p1;
1967 var = self->attrs[COLOR_parser_nodes__ALlMethid___n_ll].val; /* _n_ll on <self:ALlMethid> */
1968 if (unlikely(var == NULL)) {
1969 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_ll");
1970 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1678);
1971 show_backtrace(1);
1972 }
1973 {
1974 { /* Inline kernel#Object#== (var,var_old_child) on <var:TLl> */
1975 var_other = var_old_child;
1976 {
1977 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TLl> */
1978 var6 = var == var_other;
1979 var4 = var6;
1980 goto RET_LABEL5;
1981 RET_LABEL5:(void)0;
1982 }
1983 }
1984 var2 = var4;
1985 goto RET_LABEL3;
1986 RET_LABEL3:(void)0;
1987 }
1988 var1 = var2;
1989 }
1990 if (var1){
1991 /* <var_new_child:nullable ANode> isa TLl */
1992 cltype = type_parser_nodes__TLl.color;
1993 idtype = type_parser_nodes__TLl.id;
1994 if(var_new_child == NULL) {
1995 var7 = 0;
1996 } else {
1997 if(cltype >= var_new_child->type->table_size) {
1998 var7 = 0;
1999 } else {
2000 var7 = var_new_child->type->type_table[cltype] == idtype;
2001 }
2002 }
2003 if (unlikely(!var7)) {
2004 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
2005 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TLl", var_class_name);
2006 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1679);
2007 show_backtrace(1);
2008 }
2009 {
2010 parser_prod__ALlMethid__n_ll_61d(self, var_new_child); /* Direct call parser_prod#ALlMethid#n_ll= on <self:ALlMethid>*/
2011 }
2012 goto RET_LABEL;
2013 } else {
2014 }
2015 RET_LABEL:;
2016 }
2017 /* method parser_prod#ALlMethid#replace_child for (self: Object, ANode, nullable ANode) */
2018 void VIRTUAL_parser_prod__ALlMethid__replace_child(val* self, val* p0, val* p1) {
2019 parser_prod__ALlMethid__replace_child(self, p0, p1); /* Direct call parser_prod#ALlMethid#replace_child on <self:Object(ALlMethid)>*/
2020 RET_LABEL:;
2021 }
2022 /* method parser_prod#ALlMethid#n_ll= for (self: ALlMethid, TLl) */
2023 void parser_prod__ALlMethid__n_ll_61d(val* self, val* p0) {
2024 val* var_node /* var node: TLl */;
2025 var_node = p0;
2026 self->attrs[COLOR_parser_nodes__ALlMethid___n_ll].val = var_node; /* _n_ll on <self:ALlMethid> */
2027 {
2028 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TLl> */
2029 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TLl> */
2030 RET_LABEL1:(void)0;
2031 }
2032 }
2033 RET_LABEL:;
2034 }
2035 /* method parser_prod#ALlMethid#n_ll= for (self: Object, TLl) */
2036 void VIRTUAL_parser_prod__ALlMethid__n_ll_61d(val* self, val* p0) {
2037 parser_prod__ALlMethid__n_ll_61d(self, p0); /* Direct call parser_prod#ALlMethid#n_ll= on <self:Object(ALlMethid)>*/
2038 RET_LABEL:;
2039 }
2040 /* method parser_prod#ALlMethid#visit_all for (self: ALlMethid, Visitor) */
2041 void parser_prod__ALlMethid__visit_all(val* self, val* p0) {
2042 val* var_v /* var v: Visitor */;
2043 val* var /* : TLl */;
2044 var_v = p0;
2045 var = self->attrs[COLOR_parser_nodes__ALlMethid___n_ll].val; /* _n_ll on <self:ALlMethid> */
2046 if (unlikely(var == NULL)) {
2047 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_ll");
2048 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1693);
2049 show_backtrace(1);
2050 }
2051 {
2052 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2053 }
2054 RET_LABEL:;
2055 }
2056 /* method parser_prod#ALlMethid#visit_all for (self: Object, Visitor) */
2057 void VIRTUAL_parser_prod__ALlMethid__visit_all(val* self, val* p0) {
2058 parser_prod__ALlMethid__visit_all(self, p0); /* Direct call parser_prod#ALlMethid#visit_all on <self:Object(ALlMethid)>*/
2059 RET_LABEL:;
2060 }
2061 /* method parser_prod#AGgMethid#init_aggmethid for (self: AGgMethid, nullable TGg) */
2062 void parser_prod__AGgMethid__init_aggmethid(val* self, val* p0) {
2063 val* var_n_gg /* var n_gg: nullable TGg */;
2064 var_n_gg = p0;
2065 if (unlikely(var_n_gg == NULL)) {
2066 PRINT_ERROR("Runtime error: %s", "Cast failed");
2067 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1701);
2068 show_backtrace(1);
2069 }
2070 self->attrs[COLOR_parser_nodes__AGgMethid___n_gg].val = var_n_gg; /* _n_gg on <self:AGgMethid> */
2071 if (var_n_gg == NULL) {
2072 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2073 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1702);
2074 show_backtrace(1);
2075 } else {
2076 { /* Inline parser_nodes#ANode#parent= (var_n_gg,self) on <var_n_gg:nullable TGg> */
2077 if (unlikely(var_n_gg == NULL)) {
2078 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2079 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
2080 show_backtrace(1);
2081 }
2082 var_n_gg->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_gg:nullable TGg> */
2083 RET_LABEL1:(void)0;
2084 }
2085 }
2086 RET_LABEL:;
2087 }
2088 /* method parser_prod#AGgMethid#init_aggmethid for (self: Object, nullable TGg) */
2089 void VIRTUAL_parser_prod__AGgMethid__init_aggmethid(val* self, val* p0) {
2090 parser_prod__AGgMethid__init_aggmethid(self, p0); /* Direct call parser_prod#AGgMethid#init_aggmethid on <self:Object(AGgMethid)>*/
2091 RET_LABEL:;
2092 }
2093 /* method parser_prod#AGgMethid#replace_child for (self: AGgMethid, ANode, nullable ANode) */
2094 void parser_prod__AGgMethid__replace_child(val* self, val* p0, val* p1) {
2095 val* var_old_child /* var old_child: ANode */;
2096 val* var_new_child /* var new_child: nullable ANode */;
2097 val* var /* : TGg */;
2098 short int var1 /* : Bool */;
2099 short int var2 /* : Bool */;
2100 val* var_other /* var other: nullable Object */;
2101 short int var4 /* : Bool */;
2102 short int var6 /* : Bool */;
2103 short int var7 /* : Bool */;
2104 int cltype;
2105 int idtype;
2106 const char* var_class_name;
2107 var_old_child = p0;
2108 var_new_child = p1;
2109 var = self->attrs[COLOR_parser_nodes__AGgMethid___n_gg].val; /* _n_gg on <self:AGgMethid> */
2110 if (unlikely(var == NULL)) {
2111 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_gg");
2112 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1707);
2113 show_backtrace(1);
2114 }
2115 {
2116 { /* Inline kernel#Object#== (var,var_old_child) on <var:TGg> */
2117 var_other = var_old_child;
2118 {
2119 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TGg> */
2120 var6 = var == var_other;
2121 var4 = var6;
2122 goto RET_LABEL5;
2123 RET_LABEL5:(void)0;
2124 }
2125 }
2126 var2 = var4;
2127 goto RET_LABEL3;
2128 RET_LABEL3:(void)0;
2129 }
2130 var1 = var2;
2131 }
2132 if (var1){
2133 /* <var_new_child:nullable ANode> isa TGg */
2134 cltype = type_parser_nodes__TGg.color;
2135 idtype = type_parser_nodes__TGg.id;
2136 if(var_new_child == NULL) {
2137 var7 = 0;
2138 } else {
2139 if(cltype >= var_new_child->type->table_size) {
2140 var7 = 0;
2141 } else {
2142 var7 = var_new_child->type->type_table[cltype] == idtype;
2143 }
2144 }
2145 if (unlikely(!var7)) {
2146 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
2147 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TGg", var_class_name);
2148 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1708);
2149 show_backtrace(1);
2150 }
2151 {
2152 parser_prod__AGgMethid__n_gg_61d(self, var_new_child); /* Direct call parser_prod#AGgMethid#n_gg= on <self:AGgMethid>*/
2153 }
2154 goto RET_LABEL;
2155 } else {
2156 }
2157 RET_LABEL:;
2158 }
2159 /* method parser_prod#AGgMethid#replace_child for (self: Object, ANode, nullable ANode) */
2160 void VIRTUAL_parser_prod__AGgMethid__replace_child(val* self, val* p0, val* p1) {
2161 parser_prod__AGgMethid__replace_child(self, p0, p1); /* Direct call parser_prod#AGgMethid#replace_child on <self:Object(AGgMethid)>*/
2162 RET_LABEL:;
2163 }
2164 /* method parser_prod#AGgMethid#n_gg= for (self: AGgMethid, TGg) */
2165 void parser_prod__AGgMethid__n_gg_61d(val* self, val* p0) {
2166 val* var_node /* var node: TGg */;
2167 var_node = p0;
2168 self->attrs[COLOR_parser_nodes__AGgMethid___n_gg].val = var_node; /* _n_gg on <self:AGgMethid> */
2169 {
2170 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TGg> */
2171 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TGg> */
2172 RET_LABEL1:(void)0;
2173 }
2174 }
2175 RET_LABEL:;
2176 }
2177 /* method parser_prod#AGgMethid#n_gg= for (self: Object, TGg) */
2178 void VIRTUAL_parser_prod__AGgMethid__n_gg_61d(val* self, val* p0) {
2179 parser_prod__AGgMethid__n_gg_61d(self, p0); /* Direct call parser_prod#AGgMethid#n_gg= on <self:Object(AGgMethid)>*/
2180 RET_LABEL:;
2181 }
2182 /* method parser_prod#AGgMethid#visit_all for (self: AGgMethid, Visitor) */
2183 void parser_prod__AGgMethid__visit_all(val* self, val* p0) {
2184 val* var_v /* var v: Visitor */;
2185 val* var /* : TGg */;
2186 var_v = p0;
2187 var = self->attrs[COLOR_parser_nodes__AGgMethid___n_gg].val; /* _n_gg on <self:AGgMethid> */
2188 if (unlikely(var == NULL)) {
2189 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_gg");
2190 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1722);
2191 show_backtrace(1);
2192 }
2193 {
2194 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2195 }
2196 RET_LABEL:;
2197 }
2198 /* method parser_prod#AGgMethid#visit_all for (self: Object, Visitor) */
2199 void VIRTUAL_parser_prod__AGgMethid__visit_all(val* self, val* p0) {
2200 parser_prod__AGgMethid__visit_all(self, p0); /* Direct call parser_prod#AGgMethid#visit_all on <self:Object(AGgMethid)>*/
2201 RET_LABEL:;
2202 }
2203 /* method parser_prod#ABraMethid#init_abramethid for (self: ABraMethid, nullable TObra, nullable TCbra) */
2204 void parser_prod__ABraMethid__init_abramethid(val* self, val* p0, val* p1) {
2205 val* var_n_obra /* var n_obra: nullable TObra */;
2206 val* var_n_cbra /* var n_cbra: nullable TCbra */;
2207 var_n_obra = p0;
2208 var_n_cbra = p1;
2209 if (unlikely(var_n_obra == NULL)) {
2210 PRINT_ERROR("Runtime error: %s", "Cast failed");
2211 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1731);
2212 show_backtrace(1);
2213 }
2214 self->attrs[COLOR_parser_nodes__ABraMethid___n_obra].val = var_n_obra; /* _n_obra on <self:ABraMethid> */
2215 if (var_n_obra == NULL) {
2216 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2217 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1732);
2218 show_backtrace(1);
2219 } else {
2220 { /* Inline parser_nodes#ANode#parent= (var_n_obra,self) on <var_n_obra:nullable TObra> */
2221 if (unlikely(var_n_obra == NULL)) {
2222 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2223 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
2224 show_backtrace(1);
2225 }
2226 var_n_obra->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_obra:nullable TObra> */
2227 RET_LABEL1:(void)0;
2228 }
2229 }
2230 if (unlikely(var_n_cbra == NULL)) {
2231 PRINT_ERROR("Runtime error: %s", "Cast failed");
2232 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1733);
2233 show_backtrace(1);
2234 }
2235 self->attrs[COLOR_parser_nodes__ABraMethid___n_cbra].val = var_n_cbra; /* _n_cbra on <self:ABraMethid> */
2236 if (var_n_cbra == NULL) {
2237 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2238 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1734);
2239 show_backtrace(1);
2240 } else {
2241 { /* Inline parser_nodes#ANode#parent= (var_n_cbra,self) on <var_n_cbra:nullable TCbra> */
2242 if (unlikely(var_n_cbra == NULL)) {
2243 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2244 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
2245 show_backtrace(1);
2246 }
2247 var_n_cbra->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_cbra:nullable TCbra> */
2248 RET_LABEL2:(void)0;
2249 }
2250 }
2251 RET_LABEL:;
2252 }
2253 /* method parser_prod#ABraMethid#init_abramethid for (self: Object, nullable TObra, nullable TCbra) */
2254 void VIRTUAL_parser_prod__ABraMethid__init_abramethid(val* self, val* p0, val* p1) {
2255 parser_prod__ABraMethid__init_abramethid(self, p0, p1); /* Direct call parser_prod#ABraMethid#init_abramethid on <self:Object(ABraMethid)>*/
2256 RET_LABEL:;
2257 }
2258 /* method parser_prod#ABraMethid#replace_child for (self: ABraMethid, ANode, nullable ANode) */
2259 void parser_prod__ABraMethid__replace_child(val* self, val* p0, val* p1) {
2260 val* var_old_child /* var old_child: ANode */;
2261 val* var_new_child /* var new_child: nullable ANode */;
2262 val* var /* : TObra */;
2263 short int var1 /* : Bool */;
2264 short int var2 /* : Bool */;
2265 val* var_other /* var other: nullable Object */;
2266 short int var4 /* : Bool */;
2267 short int var6 /* : Bool */;
2268 short int var7 /* : Bool */;
2269 int cltype;
2270 int idtype;
2271 const char* var_class_name;
2272 val* var8 /* : TCbra */;
2273 short int var9 /* : Bool */;
2274 short int var10 /* : Bool */;
2275 short int var12 /* : Bool */;
2276 short int var14 /* : Bool */;
2277 short int var15 /* : Bool */;
2278 int cltype16;
2279 int idtype17;
2280 const char* var_class_name18;
2281 var_old_child = p0;
2282 var_new_child = p1;
2283 var = self->attrs[COLOR_parser_nodes__ABraMethid___n_obra].val; /* _n_obra on <self:ABraMethid> */
2284 if (unlikely(var == NULL)) {
2285 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_obra");
2286 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1739);
2287 show_backtrace(1);
2288 }
2289 {
2290 { /* Inline kernel#Object#== (var,var_old_child) on <var:TObra> */
2291 var_other = var_old_child;
2292 {
2293 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TObra> */
2294 var6 = var == var_other;
2295 var4 = var6;
2296 goto RET_LABEL5;
2297 RET_LABEL5:(void)0;
2298 }
2299 }
2300 var2 = var4;
2301 goto RET_LABEL3;
2302 RET_LABEL3:(void)0;
2303 }
2304 var1 = var2;
2305 }
2306 if (var1){
2307 /* <var_new_child:nullable ANode> isa TObra */
2308 cltype = type_parser_nodes__TObra.color;
2309 idtype = type_parser_nodes__TObra.id;
2310 if(var_new_child == NULL) {
2311 var7 = 0;
2312 } else {
2313 if(cltype >= var_new_child->type->table_size) {
2314 var7 = 0;
2315 } else {
2316 var7 = var_new_child->type->type_table[cltype] == idtype;
2317 }
2318 }
2319 if (unlikely(!var7)) {
2320 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
2321 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TObra", var_class_name);
2322 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1740);
2323 show_backtrace(1);
2324 }
2325 {
2326 parser_prod__ABraMethid__n_obra_61d(self, var_new_child); /* Direct call parser_prod#ABraMethid#n_obra= on <self:ABraMethid>*/
2327 }
2328 goto RET_LABEL;
2329 } else {
2330 }
2331 var8 = self->attrs[COLOR_parser_nodes__ABraMethid___n_cbra].val; /* _n_cbra on <self:ABraMethid> */
2332 if (unlikely(var8 == NULL)) {
2333 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_cbra");
2334 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1743);
2335 show_backtrace(1);
2336 }
2337 {
2338 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:TCbra> */
2339 var_other = var_old_child;
2340 {
2341 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:TCbra> */
2342 var14 = var8 == var_other;
2343 var12 = var14;
2344 goto RET_LABEL13;
2345 RET_LABEL13:(void)0;
2346 }
2347 }
2348 var10 = var12;
2349 goto RET_LABEL11;
2350 RET_LABEL11:(void)0;
2351 }
2352 var9 = var10;
2353 }
2354 if (var9){
2355 /* <var_new_child:nullable ANode> isa TCbra */
2356 cltype16 = type_parser_nodes__TCbra.color;
2357 idtype17 = type_parser_nodes__TCbra.id;
2358 if(var_new_child == NULL) {
2359 var15 = 0;
2360 } else {
2361 if(cltype16 >= var_new_child->type->table_size) {
2362 var15 = 0;
2363 } else {
2364 var15 = var_new_child->type->type_table[cltype16] == idtype17;
2365 }
2366 }
2367 if (unlikely(!var15)) {
2368 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
2369 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TCbra", var_class_name18);
2370 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1744);
2371 show_backtrace(1);
2372 }
2373 {
2374 parser_prod__ABraMethid__n_cbra_61d(self, var_new_child); /* Direct call parser_prod#ABraMethid#n_cbra= on <self:ABraMethid>*/
2375 }
2376 goto RET_LABEL;
2377 } else {
2378 }
2379 RET_LABEL:;
2380 }
2381 /* method parser_prod#ABraMethid#replace_child for (self: Object, ANode, nullable ANode) */
2382 void VIRTUAL_parser_prod__ABraMethid__replace_child(val* self, val* p0, val* p1) {
2383 parser_prod__ABraMethid__replace_child(self, p0, p1); /* Direct call parser_prod#ABraMethid#replace_child on <self:Object(ABraMethid)>*/
2384 RET_LABEL:;
2385 }
2386 /* method parser_prod#ABraMethid#n_obra= for (self: ABraMethid, TObra) */
2387 void parser_prod__ABraMethid__n_obra_61d(val* self, val* p0) {
2388 val* var_node /* var node: TObra */;
2389 var_node = p0;
2390 self->attrs[COLOR_parser_nodes__ABraMethid___n_obra].val = var_node; /* _n_obra on <self:ABraMethid> */
2391 {
2392 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TObra> */
2393 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TObra> */
2394 RET_LABEL1:(void)0;
2395 }
2396 }
2397 RET_LABEL:;
2398 }
2399 /* method parser_prod#ABraMethid#n_obra= for (self: Object, TObra) */
2400 void VIRTUAL_parser_prod__ABraMethid__n_obra_61d(val* self, val* p0) {
2401 parser_prod__ABraMethid__n_obra_61d(self, p0); /* Direct call parser_prod#ABraMethid#n_obra= on <self:Object(ABraMethid)>*/
2402 RET_LABEL:;
2403 }
2404 /* method parser_prod#ABraMethid#n_cbra= for (self: ABraMethid, TCbra) */
2405 void parser_prod__ABraMethid__n_cbra_61d(val* self, val* p0) {
2406 val* var_node /* var node: TCbra */;
2407 var_node = p0;
2408 self->attrs[COLOR_parser_nodes__ABraMethid___n_cbra].val = var_node; /* _n_cbra on <self:ABraMethid> */
2409 {
2410 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TCbra> */
2411 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TCbra> */
2412 RET_LABEL1:(void)0;
2413 }
2414 }
2415 RET_LABEL:;
2416 }
2417 /* method parser_prod#ABraMethid#n_cbra= for (self: Object, TCbra) */
2418 void VIRTUAL_parser_prod__ABraMethid__n_cbra_61d(val* self, val* p0) {
2419 parser_prod__ABraMethid__n_cbra_61d(self, p0); /* Direct call parser_prod#ABraMethid#n_cbra= on <self:Object(ABraMethid)>*/
2420 RET_LABEL:;
2421 }
2422 /* method parser_prod#ABraMethid#visit_all for (self: ABraMethid, Visitor) */
2423 void parser_prod__ABraMethid__visit_all(val* self, val* p0) {
2424 val* var_v /* var v: Visitor */;
2425 val* var /* : TObra */;
2426 val* var1 /* : TCbra */;
2427 var_v = p0;
2428 var = self->attrs[COLOR_parser_nodes__ABraMethid___n_obra].val; /* _n_obra on <self:ABraMethid> */
2429 if (unlikely(var == NULL)) {
2430 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_obra");
2431 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1763);
2432 show_backtrace(1);
2433 }
2434 {
2435 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2436 }
2437 var1 = self->attrs[COLOR_parser_nodes__ABraMethid___n_cbra].val; /* _n_cbra on <self:ABraMethid> */
2438 if (unlikely(var1 == NULL)) {
2439 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_cbra");
2440 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1764);
2441 show_backtrace(1);
2442 }
2443 {
2444 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2445 }
2446 RET_LABEL:;
2447 }
2448 /* method parser_prod#ABraMethid#visit_all for (self: Object, Visitor) */
2449 void VIRTUAL_parser_prod__ABraMethid__visit_all(val* self, val* p0) {
2450 parser_prod__ABraMethid__visit_all(self, p0); /* Direct call parser_prod#ABraMethid#visit_all on <self:Object(ABraMethid)>*/
2451 RET_LABEL:;
2452 }
2453 /* method parser_prod#AStarshipMethid#init_astarshipmethid for (self: AStarshipMethid, nullable TStarship) */
2454 void parser_prod__AStarshipMethid__init_astarshipmethid(val* self, val* p0) {
2455 val* var_n_starship /* var n_starship: nullable TStarship */;
2456 var_n_starship = p0;
2457 if (unlikely(var_n_starship == NULL)) {
2458 PRINT_ERROR("Runtime error: %s", "Cast failed");
2459 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1772);
2460 show_backtrace(1);
2461 }
2462 self->attrs[COLOR_parser_nodes__AStarshipMethid___n_starship].val = var_n_starship; /* _n_starship on <self:AStarshipMethid> */
2463 if (var_n_starship == NULL) {
2464 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2465 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1773);
2466 show_backtrace(1);
2467 } else {
2468 { /* Inline parser_nodes#ANode#parent= (var_n_starship,self) on <var_n_starship:nullable TStarship> */
2469 if (unlikely(var_n_starship == NULL)) {
2470 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2471 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
2472 show_backtrace(1);
2473 }
2474 var_n_starship->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_starship:nullable TStarship> */
2475 RET_LABEL1:(void)0;
2476 }
2477 }
2478 RET_LABEL:;
2479 }
2480 /* method parser_prod#AStarshipMethid#init_astarshipmethid for (self: Object, nullable TStarship) */
2481 void VIRTUAL_parser_prod__AStarshipMethid__init_astarshipmethid(val* self, val* p0) {
2482 parser_prod__AStarshipMethid__init_astarshipmethid(self, p0); /* Direct call parser_prod#AStarshipMethid#init_astarshipmethid on <self:Object(AStarshipMethid)>*/
2483 RET_LABEL:;
2484 }
2485 /* method parser_prod#AStarshipMethid#replace_child for (self: AStarshipMethid, ANode, nullable ANode) */
2486 void parser_prod__AStarshipMethid__replace_child(val* self, val* p0, val* p1) {
2487 val* var_old_child /* var old_child: ANode */;
2488 val* var_new_child /* var new_child: nullable ANode */;
2489 val* var /* : TStarship */;
2490 short int var1 /* : Bool */;
2491 short int var2 /* : Bool */;
2492 val* var_other /* var other: nullable Object */;
2493 short int var4 /* : Bool */;
2494 short int var6 /* : Bool */;
2495 short int var7 /* : Bool */;
2496 int cltype;
2497 int idtype;
2498 const char* var_class_name;
2499 var_old_child = p0;
2500 var_new_child = p1;
2501 var = self->attrs[COLOR_parser_nodes__AStarshipMethid___n_starship].val; /* _n_starship on <self:AStarshipMethid> */
2502 if (unlikely(var == NULL)) {
2503 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_starship");
2504 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1778);
2505 show_backtrace(1);
2506 }
2507 {
2508 { /* Inline kernel#Object#== (var,var_old_child) on <var:TStarship> */
2509 var_other = var_old_child;
2510 {
2511 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TStarship> */
2512 var6 = var == var_other;
2513 var4 = var6;
2514 goto RET_LABEL5;
2515 RET_LABEL5:(void)0;
2516 }
2517 }
2518 var2 = var4;
2519 goto RET_LABEL3;
2520 RET_LABEL3:(void)0;
2521 }
2522 var1 = var2;
2523 }
2524 if (var1){
2525 /* <var_new_child:nullable ANode> isa TStarship */
2526 cltype = type_parser_nodes__TStarship.color;
2527 idtype = type_parser_nodes__TStarship.id;
2528 if(var_new_child == NULL) {
2529 var7 = 0;
2530 } else {
2531 if(cltype >= var_new_child->type->table_size) {
2532 var7 = 0;
2533 } else {
2534 var7 = var_new_child->type->type_table[cltype] == idtype;
2535 }
2536 }
2537 if (unlikely(!var7)) {
2538 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
2539 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TStarship", var_class_name);
2540 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1779);
2541 show_backtrace(1);
2542 }
2543 {
2544 parser_prod__AStarshipMethid__n_starship_61d(self, var_new_child); /* Direct call parser_prod#AStarshipMethid#n_starship= on <self:AStarshipMethid>*/
2545 }
2546 goto RET_LABEL;
2547 } else {
2548 }
2549 RET_LABEL:;
2550 }
2551 /* method parser_prod#AStarshipMethid#replace_child for (self: Object, ANode, nullable ANode) */
2552 void VIRTUAL_parser_prod__AStarshipMethid__replace_child(val* self, val* p0, val* p1) {
2553 parser_prod__AStarshipMethid__replace_child(self, p0, p1); /* Direct call parser_prod#AStarshipMethid#replace_child on <self:Object(AStarshipMethid)>*/
2554 RET_LABEL:;
2555 }
2556 /* method parser_prod#AStarshipMethid#n_starship= for (self: AStarshipMethid, TStarship) */
2557 void parser_prod__AStarshipMethid__n_starship_61d(val* self, val* p0) {
2558 val* var_node /* var node: TStarship */;
2559 var_node = p0;
2560 self->attrs[COLOR_parser_nodes__AStarshipMethid___n_starship].val = var_node; /* _n_starship on <self:AStarshipMethid> */
2561 {
2562 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TStarship> */
2563 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TStarship> */
2564 RET_LABEL1:(void)0;
2565 }
2566 }
2567 RET_LABEL:;
2568 }
2569 /* method parser_prod#AStarshipMethid#n_starship= for (self: Object, TStarship) */
2570 void VIRTUAL_parser_prod__AStarshipMethid__n_starship_61d(val* self, val* p0) {
2571 parser_prod__AStarshipMethid__n_starship_61d(self, p0); /* Direct call parser_prod#AStarshipMethid#n_starship= on <self:Object(AStarshipMethid)>*/
2572 RET_LABEL:;
2573 }
2574 /* method parser_prod#AStarshipMethid#visit_all for (self: AStarshipMethid, Visitor) */
2575 void parser_prod__AStarshipMethid__visit_all(val* self, val* p0) {
2576 val* var_v /* var v: Visitor */;
2577 val* var /* : TStarship */;
2578 var_v = p0;
2579 var = self->attrs[COLOR_parser_nodes__AStarshipMethid___n_starship].val; /* _n_starship on <self:AStarshipMethid> */
2580 if (unlikely(var == NULL)) {
2581 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_starship");
2582 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1793);
2583 show_backtrace(1);
2584 }
2585 {
2586 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2587 }
2588 RET_LABEL:;
2589 }
2590 /* method parser_prod#AStarshipMethid#visit_all for (self: Object, Visitor) */
2591 void VIRTUAL_parser_prod__AStarshipMethid__visit_all(val* self, val* p0) {
2592 parser_prod__AStarshipMethid__visit_all(self, p0); /* Direct call parser_prod#AStarshipMethid#visit_all on <self:Object(AStarshipMethid)>*/
2593 RET_LABEL:;
2594 }
2595 /* method parser_prod#AAssignMethid#init_aassignmethid for (self: AAssignMethid, nullable TId, nullable TAssign) */
2596 void parser_prod__AAssignMethid__init_aassignmethid(val* self, val* p0, val* p1) {
2597 val* var_n_id /* var n_id: nullable TId */;
2598 val* var_n_assign /* var n_assign: nullable TAssign */;
2599 var_n_id = p0;
2600 var_n_assign = p1;
2601 if (unlikely(var_n_id == NULL)) {
2602 PRINT_ERROR("Runtime error: %s", "Cast failed");
2603 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1802);
2604 show_backtrace(1);
2605 }
2606 self->attrs[COLOR_parser_nodes__AAssignMethid___n_id].val = var_n_id; /* _n_id on <self:AAssignMethid> */
2607 if (var_n_id == NULL) {
2608 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2609 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1803);
2610 show_backtrace(1);
2611 } else {
2612 { /* Inline parser_nodes#ANode#parent= (var_n_id,self) on <var_n_id:nullable TId> */
2613 if (unlikely(var_n_id == NULL)) {
2614 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2615 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
2616 show_backtrace(1);
2617 }
2618 var_n_id->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_id:nullable TId> */
2619 RET_LABEL1:(void)0;
2620 }
2621 }
2622 if (unlikely(var_n_assign == NULL)) {
2623 PRINT_ERROR("Runtime error: %s", "Cast failed");
2624 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1804);
2625 show_backtrace(1);
2626 }
2627 self->attrs[COLOR_parser_nodes__AAssignMethid___n_assign].val = var_n_assign; /* _n_assign on <self:AAssignMethid> */
2628 if (var_n_assign == NULL) {
2629 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2630 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1805);
2631 show_backtrace(1);
2632 } else {
2633 { /* Inline parser_nodes#ANode#parent= (var_n_assign,self) on <var_n_assign:nullable TAssign> */
2634 if (unlikely(var_n_assign == NULL)) {
2635 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2636 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
2637 show_backtrace(1);
2638 }
2639 var_n_assign->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_assign:nullable TAssign> */
2640 RET_LABEL2:(void)0;
2641 }
2642 }
2643 RET_LABEL:;
2644 }
2645 /* method parser_prod#AAssignMethid#init_aassignmethid for (self: Object, nullable TId, nullable TAssign) */
2646 void VIRTUAL_parser_prod__AAssignMethid__init_aassignmethid(val* self, val* p0, val* p1) {
2647 parser_prod__AAssignMethid__init_aassignmethid(self, p0, p1); /* Direct call parser_prod#AAssignMethid#init_aassignmethid on <self:Object(AAssignMethid)>*/
2648 RET_LABEL:;
2649 }
2650 /* method parser_prod#AAssignMethid#replace_child for (self: AAssignMethid, ANode, nullable ANode) */
2651 void parser_prod__AAssignMethid__replace_child(val* self, val* p0, val* p1) {
2652 val* var_old_child /* var old_child: ANode */;
2653 val* var_new_child /* var new_child: nullable ANode */;
2654 val* var /* : TId */;
2655 short int var1 /* : Bool */;
2656 short int var2 /* : Bool */;
2657 val* var_other /* var other: nullable Object */;
2658 short int var4 /* : Bool */;
2659 short int var6 /* : Bool */;
2660 short int var7 /* : Bool */;
2661 int cltype;
2662 int idtype;
2663 const char* var_class_name;
2664 val* var8 /* : TAssign */;
2665 short int var9 /* : Bool */;
2666 short int var10 /* : Bool */;
2667 short int var12 /* : Bool */;
2668 short int var14 /* : Bool */;
2669 short int var15 /* : Bool */;
2670 int cltype16;
2671 int idtype17;
2672 const char* var_class_name18;
2673 var_old_child = p0;
2674 var_new_child = p1;
2675 var = self->attrs[COLOR_parser_nodes__AAssignMethid___n_id].val; /* _n_id on <self:AAssignMethid> */
2676 if (unlikely(var == NULL)) {
2677 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
2678 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1810);
2679 show_backtrace(1);
2680 }
2681 {
2682 { /* Inline kernel#Object#== (var,var_old_child) on <var:TId> */
2683 var_other = var_old_child;
2684 {
2685 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TId> */
2686 var6 = var == var_other;
2687 var4 = var6;
2688 goto RET_LABEL5;
2689 RET_LABEL5:(void)0;
2690 }
2691 }
2692 var2 = var4;
2693 goto RET_LABEL3;
2694 RET_LABEL3:(void)0;
2695 }
2696 var1 = var2;
2697 }
2698 if (var1){
2699 /* <var_new_child:nullable ANode> isa TId */
2700 cltype = type_parser_nodes__TId.color;
2701 idtype = type_parser_nodes__TId.id;
2702 if(var_new_child == NULL) {
2703 var7 = 0;
2704 } else {
2705 if(cltype >= var_new_child->type->table_size) {
2706 var7 = 0;
2707 } else {
2708 var7 = var_new_child->type->type_table[cltype] == idtype;
2709 }
2710 }
2711 if (unlikely(!var7)) {
2712 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
2713 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TId", var_class_name);
2714 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1811);
2715 show_backtrace(1);
2716 }
2717 {
2718 parser_prod__AAssignMethid__n_id_61d(self, var_new_child); /* Direct call parser_prod#AAssignMethid#n_id= on <self:AAssignMethid>*/
2719 }
2720 goto RET_LABEL;
2721 } else {
2722 }
2723 var8 = self->attrs[COLOR_parser_nodes__AAssignMethid___n_assign].val; /* _n_assign on <self:AAssignMethid> */
2724 if (unlikely(var8 == NULL)) {
2725 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_assign");
2726 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1814);
2727 show_backtrace(1);
2728 }
2729 {
2730 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:TAssign> */
2731 var_other = var_old_child;
2732 {
2733 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:TAssign> */
2734 var14 = var8 == var_other;
2735 var12 = var14;
2736 goto RET_LABEL13;
2737 RET_LABEL13:(void)0;
2738 }
2739 }
2740 var10 = var12;
2741 goto RET_LABEL11;
2742 RET_LABEL11:(void)0;
2743 }
2744 var9 = var10;
2745 }
2746 if (var9){
2747 /* <var_new_child:nullable ANode> isa TAssign */
2748 cltype16 = type_parser_nodes__TAssign.color;
2749 idtype17 = type_parser_nodes__TAssign.id;
2750 if(var_new_child == NULL) {
2751 var15 = 0;
2752 } else {
2753 if(cltype16 >= var_new_child->type->table_size) {
2754 var15 = 0;
2755 } else {
2756 var15 = var_new_child->type->type_table[cltype16] == idtype17;
2757 }
2758 }
2759 if (unlikely(!var15)) {
2760 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
2761 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TAssign", var_class_name18);
2762 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1815);
2763 show_backtrace(1);
2764 }
2765 {
2766 parser_prod__AAssignMethid__n_assign_61d(self, var_new_child); /* Direct call parser_prod#AAssignMethid#n_assign= on <self:AAssignMethid>*/
2767 }
2768 goto RET_LABEL;
2769 } else {
2770 }
2771 RET_LABEL:;
2772 }
2773 /* method parser_prod#AAssignMethid#replace_child for (self: Object, ANode, nullable ANode) */
2774 void VIRTUAL_parser_prod__AAssignMethid__replace_child(val* self, val* p0, val* p1) {
2775 parser_prod__AAssignMethid__replace_child(self, p0, p1); /* Direct call parser_prod#AAssignMethid#replace_child on <self:Object(AAssignMethid)>*/
2776 RET_LABEL:;
2777 }
2778 /* method parser_prod#AAssignMethid#n_id= for (self: AAssignMethid, TId) */
2779 void parser_prod__AAssignMethid__n_id_61d(val* self, val* p0) {
2780 val* var_node /* var node: TId */;
2781 var_node = p0;
2782 self->attrs[COLOR_parser_nodes__AAssignMethid___n_id].val = var_node; /* _n_id on <self:AAssignMethid> */
2783 {
2784 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TId> */
2785 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TId> */
2786 RET_LABEL1:(void)0;
2787 }
2788 }
2789 RET_LABEL:;
2790 }
2791 /* method parser_prod#AAssignMethid#n_id= for (self: Object, TId) */
2792 void VIRTUAL_parser_prod__AAssignMethid__n_id_61d(val* self, val* p0) {
2793 parser_prod__AAssignMethid__n_id_61d(self, p0); /* Direct call parser_prod#AAssignMethid#n_id= on <self:Object(AAssignMethid)>*/
2794 RET_LABEL:;
2795 }
2796 /* method parser_prod#AAssignMethid#n_assign= for (self: AAssignMethid, TAssign) */
2797 void parser_prod__AAssignMethid__n_assign_61d(val* self, val* p0) {
2798 val* var_node /* var node: TAssign */;
2799 var_node = p0;
2800 self->attrs[COLOR_parser_nodes__AAssignMethid___n_assign].val = var_node; /* _n_assign on <self:AAssignMethid> */
2801 {
2802 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TAssign> */
2803 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TAssign> */
2804 RET_LABEL1:(void)0;
2805 }
2806 }
2807 RET_LABEL:;
2808 }
2809 /* method parser_prod#AAssignMethid#n_assign= for (self: Object, TAssign) */
2810 void VIRTUAL_parser_prod__AAssignMethid__n_assign_61d(val* self, val* p0) {
2811 parser_prod__AAssignMethid__n_assign_61d(self, p0); /* Direct call parser_prod#AAssignMethid#n_assign= on <self:Object(AAssignMethid)>*/
2812 RET_LABEL:;
2813 }
2814 /* method parser_prod#AAssignMethid#visit_all for (self: AAssignMethid, Visitor) */
2815 void parser_prod__AAssignMethid__visit_all(val* self, val* p0) {
2816 val* var_v /* var v: Visitor */;
2817 val* var /* : TId */;
2818 val* var1 /* : TAssign */;
2819 var_v = p0;
2820 var = self->attrs[COLOR_parser_nodes__AAssignMethid___n_id].val; /* _n_id on <self:AAssignMethid> */
2821 if (unlikely(var == NULL)) {
2822 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
2823 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1834);
2824 show_backtrace(1);
2825 }
2826 {
2827 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2828 }
2829 var1 = self->attrs[COLOR_parser_nodes__AAssignMethid___n_assign].val; /* _n_assign on <self:AAssignMethid> */
2830 if (unlikely(var1 == NULL)) {
2831 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_assign");
2832 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1835);
2833 show_backtrace(1);
2834 }
2835 {
2836 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2837 }
2838 RET_LABEL:;
2839 }
2840 /* method parser_prod#AAssignMethid#visit_all for (self: Object, Visitor) */
2841 void VIRTUAL_parser_prod__AAssignMethid__visit_all(val* self, val* p0) {
2842 parser_prod__AAssignMethid__visit_all(self, p0); /* Direct call parser_prod#AAssignMethid#visit_all on <self:Object(AAssignMethid)>*/
2843 RET_LABEL:;
2844 }
2845 /* method parser_prod#ABraassignMethid#init_abraassignmethid for (self: ABraassignMethid, nullable TObra, nullable TCbra, nullable TAssign) */
2846 void parser_prod__ABraassignMethid__init_abraassignmethid(val* self, val* p0, val* p1, val* p2) {
2847 val* var_n_obra /* var n_obra: nullable TObra */;
2848 val* var_n_cbra /* var n_cbra: nullable TCbra */;
2849 val* var_n_assign /* var n_assign: nullable TAssign */;
2850 var_n_obra = p0;
2851 var_n_cbra = p1;
2852 var_n_assign = p2;
2853 if (unlikely(var_n_obra == NULL)) {
2854 PRINT_ERROR("Runtime error: %s", "Cast failed");
2855 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1845);
2856 show_backtrace(1);
2857 }
2858 self->attrs[COLOR_parser_nodes__ABraassignMethid___n_obra].val = var_n_obra; /* _n_obra on <self:ABraassignMethid> */
2859 if (var_n_obra == NULL) {
2860 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2861 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1846);
2862 show_backtrace(1);
2863 } else {
2864 { /* Inline parser_nodes#ANode#parent= (var_n_obra,self) on <var_n_obra:nullable TObra> */
2865 if (unlikely(var_n_obra == NULL)) {
2866 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2867 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
2868 show_backtrace(1);
2869 }
2870 var_n_obra->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_obra:nullable TObra> */
2871 RET_LABEL1:(void)0;
2872 }
2873 }
2874 if (unlikely(var_n_cbra == NULL)) {
2875 PRINT_ERROR("Runtime error: %s", "Cast failed");
2876 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1847);
2877 show_backtrace(1);
2878 }
2879 self->attrs[COLOR_parser_nodes__ABraassignMethid___n_cbra].val = var_n_cbra; /* _n_cbra on <self:ABraassignMethid> */
2880 if (var_n_cbra == NULL) {
2881 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2882 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1848);
2883 show_backtrace(1);
2884 } else {
2885 { /* Inline parser_nodes#ANode#parent= (var_n_cbra,self) on <var_n_cbra:nullable TCbra> */
2886 if (unlikely(var_n_cbra == NULL)) {
2887 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2888 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
2889 show_backtrace(1);
2890 }
2891 var_n_cbra->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_cbra:nullable TCbra> */
2892 RET_LABEL2:(void)0;
2893 }
2894 }
2895 if (unlikely(var_n_assign == NULL)) {
2896 PRINT_ERROR("Runtime error: %s", "Cast failed");
2897 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1849);
2898 show_backtrace(1);
2899 }
2900 self->attrs[COLOR_parser_nodes__ABraassignMethid___n_assign].val = var_n_assign; /* _n_assign on <self:ABraassignMethid> */
2901 if (var_n_assign == NULL) {
2902 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2903 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1850);
2904 show_backtrace(1);
2905 } else {
2906 { /* Inline parser_nodes#ANode#parent= (var_n_assign,self) on <var_n_assign:nullable TAssign> */
2907 if (unlikely(var_n_assign == NULL)) {
2908 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2909 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
2910 show_backtrace(1);
2911 }
2912 var_n_assign->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_assign:nullable TAssign> */
2913 RET_LABEL3:(void)0;
2914 }
2915 }
2916 RET_LABEL:;
2917 }
2918 /* method parser_prod#ABraassignMethid#init_abraassignmethid for (self: Object, nullable TObra, nullable TCbra, nullable TAssign) */
2919 void VIRTUAL_parser_prod__ABraassignMethid__init_abraassignmethid(val* self, val* p0, val* p1, val* p2) {
2920 parser_prod__ABraassignMethid__init_abraassignmethid(self, p0, p1, p2); /* Direct call parser_prod#ABraassignMethid#init_abraassignmethid on <self:Object(ABraassignMethid)>*/
2921 RET_LABEL:;
2922 }
2923 /* method parser_prod#ABraassignMethid#replace_child for (self: ABraassignMethid, ANode, nullable ANode) */
2924 void parser_prod__ABraassignMethid__replace_child(val* self, val* p0, val* p1) {
2925 val* var_old_child /* var old_child: ANode */;
2926 val* var_new_child /* var new_child: nullable ANode */;
2927 val* var /* : TObra */;
2928 short int var1 /* : Bool */;
2929 short int var2 /* : Bool */;
2930 val* var_other /* var other: nullable Object */;
2931 short int var4 /* : Bool */;
2932 short int var6 /* : Bool */;
2933 short int var7 /* : Bool */;
2934 int cltype;
2935 int idtype;
2936 const char* var_class_name;
2937 val* var8 /* : TCbra */;
2938 short int var9 /* : Bool */;
2939 short int var10 /* : Bool */;
2940 short int var12 /* : Bool */;
2941 short int var14 /* : Bool */;
2942 short int var15 /* : Bool */;
2943 int cltype16;
2944 int idtype17;
2945 const char* var_class_name18;
2946 val* var19 /* : TAssign */;
2947 short int var20 /* : Bool */;
2948 short int var21 /* : Bool */;
2949 short int var23 /* : Bool */;
2950 short int var25 /* : Bool */;
2951 short int var26 /* : Bool */;
2952 int cltype27;
2953 int idtype28;
2954 const char* var_class_name29;
2955 var_old_child = p0;
2956 var_new_child = p1;
2957 var = self->attrs[COLOR_parser_nodes__ABraassignMethid___n_obra].val; /* _n_obra on <self:ABraassignMethid> */
2958 if (unlikely(var == NULL)) {
2959 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_obra");
2960 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1855);
2961 show_backtrace(1);
2962 }
2963 {
2964 { /* Inline kernel#Object#== (var,var_old_child) on <var:TObra> */
2965 var_other = var_old_child;
2966 {
2967 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TObra> */
2968 var6 = var == var_other;
2969 var4 = var6;
2970 goto RET_LABEL5;
2971 RET_LABEL5:(void)0;
2972 }
2973 }
2974 var2 = var4;
2975 goto RET_LABEL3;
2976 RET_LABEL3:(void)0;
2977 }
2978 var1 = var2;
2979 }
2980 if (var1){
2981 /* <var_new_child:nullable ANode> isa TObra */
2982 cltype = type_parser_nodes__TObra.color;
2983 idtype = type_parser_nodes__TObra.id;
2984 if(var_new_child == NULL) {
2985 var7 = 0;
2986 } else {
2987 if(cltype >= var_new_child->type->table_size) {
2988 var7 = 0;
2989 } else {
2990 var7 = var_new_child->type->type_table[cltype] == idtype;
2991 }
2992 }
2993 if (unlikely(!var7)) {
2994 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
2995 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TObra", var_class_name);
2996 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1856);
2997 show_backtrace(1);
2998 }
2999 {
3000 parser_prod__ABraassignMethid__n_obra_61d(self, var_new_child); /* Direct call parser_prod#ABraassignMethid#n_obra= on <self:ABraassignMethid>*/
3001 }
3002 goto RET_LABEL;
3003 } else {
3004 }
3005 var8 = self->attrs[COLOR_parser_nodes__ABraassignMethid___n_cbra].val; /* _n_cbra on <self:ABraassignMethid> */
3006 if (unlikely(var8 == NULL)) {
3007 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_cbra");
3008 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1859);
3009 show_backtrace(1);
3010 }
3011 {
3012 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:TCbra> */
3013 var_other = var_old_child;
3014 {
3015 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:TCbra> */
3016 var14 = var8 == var_other;
3017 var12 = var14;
3018 goto RET_LABEL13;
3019 RET_LABEL13:(void)0;
3020 }
3021 }
3022 var10 = var12;
3023 goto RET_LABEL11;
3024 RET_LABEL11:(void)0;
3025 }
3026 var9 = var10;
3027 }
3028 if (var9){
3029 /* <var_new_child:nullable ANode> isa TCbra */
3030 cltype16 = type_parser_nodes__TCbra.color;
3031 idtype17 = type_parser_nodes__TCbra.id;
3032 if(var_new_child == NULL) {
3033 var15 = 0;
3034 } else {
3035 if(cltype16 >= var_new_child->type->table_size) {
3036 var15 = 0;
3037 } else {
3038 var15 = var_new_child->type->type_table[cltype16] == idtype17;
3039 }
3040 }
3041 if (unlikely(!var15)) {
3042 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
3043 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TCbra", var_class_name18);
3044 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1860);
3045 show_backtrace(1);
3046 }
3047 {
3048 parser_prod__ABraassignMethid__n_cbra_61d(self, var_new_child); /* Direct call parser_prod#ABraassignMethid#n_cbra= on <self:ABraassignMethid>*/
3049 }
3050 goto RET_LABEL;
3051 } else {
3052 }
3053 var19 = self->attrs[COLOR_parser_nodes__ABraassignMethid___n_assign].val; /* _n_assign on <self:ABraassignMethid> */
3054 if (unlikely(var19 == NULL)) {
3055 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_assign");
3056 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1863);
3057 show_backtrace(1);
3058 }
3059 {
3060 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:TAssign> */
3061 var_other = var_old_child;
3062 {
3063 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:TAssign> */
3064 var25 = var19 == var_other;
3065 var23 = var25;
3066 goto RET_LABEL24;
3067 RET_LABEL24:(void)0;
3068 }
3069 }
3070 var21 = var23;
3071 goto RET_LABEL22;
3072 RET_LABEL22:(void)0;
3073 }
3074 var20 = var21;
3075 }
3076 if (var20){
3077 /* <var_new_child:nullable ANode> isa TAssign */
3078 cltype27 = type_parser_nodes__TAssign.color;
3079 idtype28 = type_parser_nodes__TAssign.id;
3080 if(var_new_child == NULL) {
3081 var26 = 0;
3082 } else {
3083 if(cltype27 >= var_new_child->type->table_size) {
3084 var26 = 0;
3085 } else {
3086 var26 = var_new_child->type->type_table[cltype27] == idtype28;
3087 }
3088 }
3089 if (unlikely(!var26)) {
3090 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
3091 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TAssign", var_class_name29);
3092 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1864);
3093 show_backtrace(1);
3094 }
3095 {
3096 parser_prod__ABraassignMethid__n_assign_61d(self, var_new_child); /* Direct call parser_prod#ABraassignMethid#n_assign= on <self:ABraassignMethid>*/
3097 }
3098 goto RET_LABEL;
3099 } else {
3100 }
3101 RET_LABEL:;
3102 }
3103 /* method parser_prod#ABraassignMethid#replace_child for (self: Object, ANode, nullable ANode) */
3104 void VIRTUAL_parser_prod__ABraassignMethid__replace_child(val* self, val* p0, val* p1) {
3105 parser_prod__ABraassignMethid__replace_child(self, p0, p1); /* Direct call parser_prod#ABraassignMethid#replace_child on <self:Object(ABraassignMethid)>*/
3106 RET_LABEL:;
3107 }
3108 /* method parser_prod#ABraassignMethid#n_obra= for (self: ABraassignMethid, TObra) */
3109 void parser_prod__ABraassignMethid__n_obra_61d(val* self, val* p0) {
3110 val* var_node /* var node: TObra */;
3111 var_node = p0;
3112 self->attrs[COLOR_parser_nodes__ABraassignMethid___n_obra].val = var_node; /* _n_obra on <self:ABraassignMethid> */
3113 {
3114 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TObra> */
3115 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TObra> */
3116 RET_LABEL1:(void)0;
3117 }
3118 }
3119 RET_LABEL:;
3120 }
3121 /* method parser_prod#ABraassignMethid#n_obra= for (self: Object, TObra) */
3122 void VIRTUAL_parser_prod__ABraassignMethid__n_obra_61d(val* self, val* p0) {
3123 parser_prod__ABraassignMethid__n_obra_61d(self, p0); /* Direct call parser_prod#ABraassignMethid#n_obra= on <self:Object(ABraassignMethid)>*/
3124 RET_LABEL:;
3125 }
3126 /* method parser_prod#ABraassignMethid#n_cbra= for (self: ABraassignMethid, TCbra) */
3127 void parser_prod__ABraassignMethid__n_cbra_61d(val* self, val* p0) {
3128 val* var_node /* var node: TCbra */;
3129 var_node = p0;
3130 self->attrs[COLOR_parser_nodes__ABraassignMethid___n_cbra].val = var_node; /* _n_cbra on <self:ABraassignMethid> */
3131 {
3132 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TCbra> */
3133 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TCbra> */
3134 RET_LABEL1:(void)0;
3135 }
3136 }
3137 RET_LABEL:;
3138 }
3139 /* method parser_prod#ABraassignMethid#n_cbra= for (self: Object, TCbra) */
3140 void VIRTUAL_parser_prod__ABraassignMethid__n_cbra_61d(val* self, val* p0) {
3141 parser_prod__ABraassignMethid__n_cbra_61d(self, p0); /* Direct call parser_prod#ABraassignMethid#n_cbra= on <self:Object(ABraassignMethid)>*/
3142 RET_LABEL:;
3143 }
3144 /* method parser_prod#ABraassignMethid#n_assign= for (self: ABraassignMethid, TAssign) */
3145 void parser_prod__ABraassignMethid__n_assign_61d(val* self, val* p0) {
3146 val* var_node /* var node: TAssign */;
3147 var_node = p0;
3148 self->attrs[COLOR_parser_nodes__ABraassignMethid___n_assign].val = var_node; /* _n_assign on <self:ABraassignMethid> */
3149 {
3150 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TAssign> */
3151 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TAssign> */
3152 RET_LABEL1:(void)0;
3153 }
3154 }
3155 RET_LABEL:;
3156 }
3157 /* method parser_prod#ABraassignMethid#n_assign= for (self: Object, TAssign) */
3158 void VIRTUAL_parser_prod__ABraassignMethid__n_assign_61d(val* self, val* p0) {
3159 parser_prod__ABraassignMethid__n_assign_61d(self, p0); /* Direct call parser_prod#ABraassignMethid#n_assign= on <self:Object(ABraassignMethid)>*/
3160 RET_LABEL:;
3161 }
3162 /* method parser_prod#ABraassignMethid#visit_all for (self: ABraassignMethid, Visitor) */
3163 void parser_prod__ABraassignMethid__visit_all(val* self, val* p0) {
3164 val* var_v /* var v: Visitor */;
3165 val* var /* : TObra */;
3166 val* var1 /* : TCbra */;
3167 val* var2 /* : TAssign */;
3168 var_v = p0;
3169 var = self->attrs[COLOR_parser_nodes__ABraassignMethid___n_obra].val; /* _n_obra on <self:ABraassignMethid> */
3170 if (unlikely(var == NULL)) {
3171 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_obra");
3172 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1888);
3173 show_backtrace(1);
3174 }
3175 {
3176 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3177 }
3178 var1 = self->attrs[COLOR_parser_nodes__ABraassignMethid___n_cbra].val; /* _n_cbra on <self:ABraassignMethid> */
3179 if (unlikely(var1 == NULL)) {
3180 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_cbra");
3181 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1889);
3182 show_backtrace(1);
3183 }
3184 {
3185 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3186 }
3187 var2 = self->attrs[COLOR_parser_nodes__ABraassignMethid___n_assign].val; /* _n_assign on <self:ABraassignMethid> */
3188 if (unlikely(var2 == NULL)) {
3189 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_assign");
3190 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1890);
3191 show_backtrace(1);
3192 }
3193 {
3194 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3195 }
3196 RET_LABEL:;
3197 }
3198 /* method parser_prod#ABraassignMethid#visit_all for (self: Object, Visitor) */
3199 void VIRTUAL_parser_prod__ABraassignMethid__visit_all(val* self, val* p0) {
3200 parser_prod__ABraassignMethid__visit_all(self, p0); /* Direct call parser_prod#ABraassignMethid#visit_all on <self:Object(ABraassignMethid)>*/
3201 RET_LABEL:;
3202 }
3203 /* method parser_prod#ASignature#init_asignature for (self: ASignature, nullable TOpar, Collection[Object], nullable TCpar, nullable AType) */
3204 void parser_prod__ASignature__init_asignature(val* self, val* p0, val* p1, val* p2, val* p3) {
3205 val* var_n_opar /* var n_opar: nullable TOpar */;
3206 val* var_n_params /* var n_params: Collection[Object] */;
3207 val* var_n_cpar /* var n_cpar: nullable TCpar */;
3208 val* var_n_type /* var n_type: nullable AType */;
3209 val* var /* : null */;
3210 short int var1 /* : Bool */;
3211 short int var2 /* : Bool */;
3212 val* var_other /* var other: nullable Object */;
3213 short int var4 /* : Bool */;
3214 short int var5 /* : Bool */;
3215 short int var6 /* : Bool */;
3216 val* var8 /* : ANodes[AParam] */;
3217 val* var10 /* : ANodes[AParam] */;
3218 val* var11 /* : null */;
3219 short int var12 /* : Bool */;
3220 short int var13 /* : Bool */;
3221 short int var15 /* : Bool */;
3222 short int var16 /* : Bool */;
3223 short int var17 /* : Bool */;
3224 val* var19 /* : null */;
3225 short int var20 /* : Bool */;
3226 short int var21 /* : Bool */;
3227 short int var23 /* : Bool */;
3228 short int var24 /* : Bool */;
3229 short int var25 /* : Bool */;
3230 var_n_opar = p0;
3231 var_n_params = p1;
3232 var_n_cpar = p2;
3233 var_n_type = p3;
3234 self->attrs[COLOR_parser_nodes__ASignature___n_opar].val = var_n_opar; /* _n_opar on <self:ASignature> */
3235 var = NULL;
3236 if (var_n_opar == NULL) {
3237 var1 = 0; /* is null */
3238 } else {
3239 var1 = 1; /* arg is null and recv is not */
3240 }
3241 if (0) {
3242 { /* Inline kernel#Object#!= (var_n_opar,var) on <var_n_opar:nullable TOpar> */
3243 var_other = var;
3244 {
3245 var5 = ((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)>*/;
3246 var4 = var5;
3247 }
3248 var6 = !var4;
3249 var2 = var6;
3250 goto RET_LABEL3;
3251 RET_LABEL3:(void)0;
3252 }
3253 var1 = var2;
3254 }
3255 if (var1){
3256 {
3257 { /* Inline parser_nodes#ANode#parent= (var_n_opar,self) on <var_n_opar:nullable TOpar(TOpar)> */
3258 var_n_opar->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_opar:nullable TOpar(TOpar)> */
3259 RET_LABEL7:(void)0;
3260 }
3261 }
3262 } else {
3263 }
3264 {
3265 { /* Inline parser_nodes#ASignature#n_params (self) on <self:ASignature> */
3266 var10 = self->attrs[COLOR_parser_nodes__ASignature___n_params].val; /* _n_params on <self:ASignature> */
3267 if (unlikely(var10 == NULL)) {
3268 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_params");
3269 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1279);
3270 show_backtrace(1);
3271 }
3272 var8 = var10;
3273 RET_LABEL9:(void)0;
3274 }
3275 }
3276 {
3277 parser_nodes__ANodes__unsafe_add_all(var8, var_n_params); /* Direct call parser_nodes#ANodes#unsafe_add_all on <var8:ANodes[AParam]>*/
3278 }
3279 self->attrs[COLOR_parser_nodes__ASignature___n_cpar].val = var_n_cpar; /* _n_cpar on <self:ASignature> */
3280 var11 = NULL;
3281 if (var_n_cpar == NULL) {
3282 var12 = 0; /* is null */
3283 } else {
3284 var12 = 1; /* arg is null and recv is not */
3285 }
3286 if (0) {
3287 { /* Inline kernel#Object#!= (var_n_cpar,var11) on <var_n_cpar:nullable TCpar> */
3288 var_other = var11;
3289 {
3290 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)>*/;
3291 var15 = var16;
3292 }
3293 var17 = !var15;
3294 var13 = var17;
3295 goto RET_LABEL14;
3296 RET_LABEL14:(void)0;
3297 }
3298 var12 = var13;
3299 }
3300 if (var12){
3301 {
3302 { /* Inline parser_nodes#ANode#parent= (var_n_cpar,self) on <var_n_cpar:nullable TCpar(TCpar)> */
3303 var_n_cpar->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_cpar:nullable TCpar(TCpar)> */
3304 RET_LABEL18:(void)0;
3305 }
3306 }
3307 } else {
3308 }
3309 self->attrs[COLOR_parser_nodes__ASignature___n_type].val = var_n_type; /* _n_type on <self:ASignature> */
3310 var19 = NULL;
3311 if (var_n_type == NULL) {
3312 var20 = 0; /* is null */
3313 } else {
3314 var20 = 1; /* arg is null and recv is not */
3315 }
3316 if (0) {
3317 { /* Inline kernel#Object#!= (var_n_type,var19) on <var_n_type:nullable AType> */
3318 var_other = var19;
3319 {
3320 var24 = ((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)>*/;
3321 var23 = var24;
3322 }
3323 var25 = !var23;
3324 var21 = var25;
3325 goto RET_LABEL22;
3326 RET_LABEL22:(void)0;
3327 }
3328 var20 = var21;
3329 }
3330 if (var20){
3331 {
3332 { /* Inline parser_nodes#ANode#parent= (var_n_type,self) on <var_n_type:nullable AType(AType)> */
3333 var_n_type->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_type:nullable AType(AType)> */
3334 RET_LABEL26:(void)0;
3335 }
3336 }
3337 } else {
3338 }
3339 RET_LABEL:;
3340 }
3341 /* method parser_prod#ASignature#init_asignature for (self: Object, nullable TOpar, Collection[Object], nullable TCpar, nullable AType) */
3342 void VIRTUAL_parser_prod__ASignature__init_asignature(val* self, val* p0, val* p1, val* p2, val* p3) {
3343 parser_prod__ASignature__init_asignature(self, p0, p1, p2, p3); /* Direct call parser_prod#ASignature#init_asignature on <self:Object(ASignature)>*/
3344 RET_LABEL:;
3345 }
3346 /* method parser_prod#ASignature#replace_child for (self: ASignature, ANode, nullable ANode) */
3347 void parser_prod__ASignature__replace_child(val* self, val* p0, val* p1) {
3348 val* var_old_child /* var old_child: ANode */;
3349 val* var_new_child /* var new_child: nullable ANode */;
3350 val* var /* : nullable TOpar */;
3351 short int var1 /* : Bool */;
3352 short int var2 /* : Bool */;
3353 val* var_other /* var other: nullable Object */;
3354 short int var4 /* : Bool */;
3355 short int var6 /* : Bool */;
3356 short int var7 /* : Bool */;
3357 int cltype;
3358 int idtype;
3359 const char* var_class_name;
3360 val* var8 /* : ANodes[AParam] */;
3361 val* var10 /* : ANodes[AParam] */;
3362 short int var11 /* : Bool */;
3363 val* var12 /* : nullable TCpar */;
3364 short int var13 /* : Bool */;
3365 short int var14 /* : Bool */;
3366 short int var16 /* : Bool */;
3367 short int var18 /* : Bool */;
3368 short int var19 /* : Bool */;
3369 int cltype20;
3370 int idtype21;
3371 const char* var_class_name22;
3372 val* var23 /* : nullable AType */;
3373 short int var24 /* : Bool */;
3374 short int var25 /* : Bool */;
3375 short int var27 /* : Bool */;
3376 short int var29 /* : Bool */;
3377 short int var30 /* : Bool */;
3378 int cltype31;
3379 int idtype32;
3380 const char* var_class_name33;
3381 var_old_child = p0;
3382 var_new_child = p1;
3383 var = self->attrs[COLOR_parser_nodes__ASignature___n_opar].val; /* _n_opar on <self:ASignature> */
3384 if (var == NULL) {
3385 var1 = 0; /* <var_old_child:ANode> cannot be null */
3386 } else {
3387 { /* Inline kernel#Object#== (var,var_old_child) on <var:nullable TOpar> */
3388 var_other = var_old_child;
3389 {
3390 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:nullable TOpar(TOpar)> */
3391 var6 = var == var_other;
3392 var4 = var6;
3393 goto RET_LABEL5;
3394 RET_LABEL5:(void)0;
3395 }
3396 }
3397 var2 = var4;
3398 goto RET_LABEL3;
3399 RET_LABEL3:(void)0;
3400 }
3401 var1 = var2;
3402 }
3403 if (var1){
3404 /* <var_new_child:nullable ANode> isa nullable TOpar */
3405 cltype = type_nullable_parser_nodes__TOpar.color;
3406 idtype = type_nullable_parser_nodes__TOpar.id;
3407 if(var_new_child == NULL) {
3408 var7 = 1;
3409 } else {
3410 if(cltype >= var_new_child->type->table_size) {
3411 var7 = 0;
3412 } else {
3413 var7 = var_new_child->type->type_table[cltype] == idtype;
3414 }
3415 }
3416 if (unlikely(!var7)) {
3417 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
3418 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TOpar", var_class_name);
3419 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1913);
3420 show_backtrace(1);
3421 }
3422 {
3423 parser_prod__ASignature__n_opar_61d(self, var_new_child); /* Direct call parser_prod#ASignature#n_opar= on <self:ASignature>*/
3424 }
3425 goto RET_LABEL;
3426 } else {
3427 }
3428 {
3429 { /* Inline parser_nodes#ASignature#n_params (self) on <self:ASignature> */
3430 var10 = self->attrs[COLOR_parser_nodes__ASignature___n_params].val; /* _n_params on <self:ASignature> */
3431 if (unlikely(var10 == NULL)) {
3432 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_params");
3433 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1279);
3434 show_backtrace(1);
3435 }
3436 var8 = var10;
3437 RET_LABEL9:(void)0;
3438 }
3439 }
3440 {
3441 var11 = parser_nodes__ANodes__replace_child(var8, var_old_child, var_new_child);
3442 }
3443 if (var11){
3444 goto RET_LABEL;
3445 } else {
3446 }
3447 var12 = self->attrs[COLOR_parser_nodes__ASignature___n_cpar].val; /* _n_cpar on <self:ASignature> */
3448 if (var12 == NULL) {
3449 var13 = 0; /* <var_old_child:ANode> cannot be null */
3450 } else {
3451 { /* Inline kernel#Object#== (var12,var_old_child) on <var12:nullable TCpar> */
3452 var_other = var_old_child;
3453 {
3454 { /* Inline kernel#Object#is_same_instance (var12,var_other) on <var12:nullable TCpar(TCpar)> */
3455 var18 = var12 == var_other;
3456 var16 = var18;
3457 goto RET_LABEL17;
3458 RET_LABEL17:(void)0;
3459 }
3460 }
3461 var14 = var16;
3462 goto RET_LABEL15;
3463 RET_LABEL15:(void)0;
3464 }
3465 var13 = var14;
3466 }
3467 if (var13){
3468 /* <var_new_child:nullable ANode> isa nullable TCpar */
3469 cltype20 = type_nullable_parser_nodes__TCpar.color;
3470 idtype21 = type_nullable_parser_nodes__TCpar.id;
3471 if(var_new_child == NULL) {
3472 var19 = 1;
3473 } else {
3474 if(cltype20 >= var_new_child->type->table_size) {
3475 var19 = 0;
3476 } else {
3477 var19 = var_new_child->type->type_table[cltype20] == idtype21;
3478 }
3479 }
3480 if (unlikely(!var19)) {
3481 var_class_name22 = var_new_child == NULL ? "null" : var_new_child->type->name;
3482 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TCpar", var_class_name22);
3483 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1918);
3484 show_backtrace(1);
3485 }
3486 {
3487 parser_prod__ASignature__n_cpar_61d(self, var_new_child); /* Direct call parser_prod#ASignature#n_cpar= on <self:ASignature>*/
3488 }
3489 goto RET_LABEL;
3490 } else {
3491 }
3492 var23 = self->attrs[COLOR_parser_nodes__ASignature___n_type].val; /* _n_type on <self:ASignature> */
3493 if (var23 == NULL) {
3494 var24 = 0; /* <var_old_child:ANode> cannot be null */
3495 } else {
3496 { /* Inline kernel#Object#== (var23,var_old_child) on <var23:nullable AType> */
3497 var_other = var_old_child;
3498 {
3499 { /* Inline kernel#Object#is_same_instance (var23,var_other) on <var23:nullable AType(AType)> */
3500 var29 = var23 == var_other;
3501 var27 = var29;
3502 goto RET_LABEL28;
3503 RET_LABEL28:(void)0;
3504 }
3505 }
3506 var25 = var27;
3507 goto RET_LABEL26;
3508 RET_LABEL26:(void)0;
3509 }
3510 var24 = var25;
3511 }
3512 if (var24){
3513 /* <var_new_child:nullable ANode> isa nullable AType */
3514 cltype31 = type_nullable_parser_nodes__AType.color;
3515 idtype32 = type_nullable_parser_nodes__AType.id;
3516 if(var_new_child == NULL) {
3517 var30 = 1;
3518 } else {
3519 if(cltype31 >= var_new_child->type->table_size) {
3520 var30 = 0;
3521 } else {
3522 var30 = var_new_child->type->type_table[cltype31] == idtype32;
3523 }
3524 }
3525 if (unlikely(!var30)) {
3526 var_class_name33 = var_new_child == NULL ? "null" : var_new_child->type->name;
3527 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AType", var_class_name33);
3528 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1922);
3529 show_backtrace(1);
3530 }
3531 {
3532 parser_prod__ASignature__n_type_61d(self, var_new_child); /* Direct call parser_prod#ASignature#n_type= on <self:ASignature>*/
3533 }
3534 goto RET_LABEL;
3535 } else {
3536 }
3537 RET_LABEL:;
3538 }
3539 /* method parser_prod#ASignature#replace_child for (self: Object, ANode, nullable ANode) */
3540 void VIRTUAL_parser_prod__ASignature__replace_child(val* self, val* p0, val* p1) {
3541 parser_prod__ASignature__replace_child(self, p0, p1); /* Direct call parser_prod#ASignature#replace_child on <self:Object(ASignature)>*/
3542 RET_LABEL:;
3543 }
3544 /* method parser_prod#ASignature#n_opar= for (self: ASignature, nullable TOpar) */
3545 void parser_prod__ASignature__n_opar_61d(val* self, val* p0) {
3546 val* var_node /* var node: nullable TOpar */;
3547 val* var /* : null */;
3548 short int var1 /* : Bool */;
3549 short int var2 /* : Bool */;
3550 val* var_other /* var other: nullable Object */;
3551 short int var4 /* : Bool */;
3552 short int var5 /* : Bool */;
3553 short int var6 /* : Bool */;
3554 var_node = p0;
3555 self->attrs[COLOR_parser_nodes__ASignature___n_opar].val = var_node; /* _n_opar on <self:ASignature> */
3556 var = NULL;
3557 if (var_node == NULL) {
3558 var1 = 0; /* is null */
3559 } else {
3560 var1 = 1; /* arg is null and recv is not */
3561 }
3562 if (0) {
3563 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable TOpar> */
3564 var_other = var;
3565 {
3566 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable TOpar(TOpar)>*/;
3567 var4 = var5;
3568 }
3569 var6 = !var4;
3570 var2 = var6;
3571 goto RET_LABEL3;
3572 RET_LABEL3:(void)0;
3573 }
3574 var1 = var2;
3575 }
3576 if (var1){
3577 {
3578 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TOpar(TOpar)> */
3579 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TOpar(TOpar)> */
3580 RET_LABEL7:(void)0;
3581 }
3582 }
3583 } else {
3584 }
3585 RET_LABEL:;
3586 }
3587 /* method parser_prod#ASignature#n_opar= for (self: Object, nullable TOpar) */
3588 void VIRTUAL_parser_prod__ASignature__n_opar_61d(val* self, val* p0) {
3589 parser_prod__ASignature__n_opar_61d(self, p0); /* Direct call parser_prod#ASignature#n_opar= on <self:Object(ASignature)>*/
3590 RET_LABEL:;
3591 }
3592 /* method parser_prod#ASignature#n_cpar= for (self: ASignature, nullable TCpar) */
3593 void parser_prod__ASignature__n_cpar_61d(val* self, val* p0) {
3594 val* var_node /* var node: nullable TCpar */;
3595 val* var /* : null */;
3596 short int var1 /* : Bool */;
3597 short int var2 /* : Bool */;
3598 val* var_other /* var other: nullable Object */;
3599 short int var4 /* : Bool */;
3600 short int var5 /* : Bool */;
3601 short int var6 /* : Bool */;
3602 var_node = p0;
3603 self->attrs[COLOR_parser_nodes__ASignature___n_cpar].val = var_node; /* _n_cpar on <self:ASignature> */
3604 var = NULL;
3605 if (var_node == NULL) {
3606 var1 = 0; /* is null */
3607 } else {
3608 var1 = 1; /* arg is null and recv is not */
3609 }
3610 if (0) {
3611 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable TCpar> */
3612 var_other = var;
3613 {
3614 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable TCpar(TCpar)>*/;
3615 var4 = var5;
3616 }
3617 var6 = !var4;
3618 var2 = var6;
3619 goto RET_LABEL3;
3620 RET_LABEL3:(void)0;
3621 }
3622 var1 = var2;
3623 }
3624 if (var1){
3625 {
3626 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TCpar(TCpar)> */
3627 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TCpar(TCpar)> */
3628 RET_LABEL7:(void)0;
3629 }
3630 }
3631 } else {
3632 }
3633 RET_LABEL:;
3634 }
3635 /* method parser_prod#ASignature#n_cpar= for (self: Object, nullable TCpar) */
3636 void VIRTUAL_parser_prod__ASignature__n_cpar_61d(val* self, val* p0) {
3637 parser_prod__ASignature__n_cpar_61d(self, p0); /* Direct call parser_prod#ASignature#n_cpar= on <self:Object(ASignature)>*/
3638 RET_LABEL:;
3639 }
3640 /* method parser_prod#ASignature#n_type= for (self: ASignature, nullable AType) */
3641 void parser_prod__ASignature__n_type_61d(val* self, val* p0) {
3642 val* var_node /* var node: nullable AType */;
3643 val* var /* : null */;
3644 short int var1 /* : Bool */;
3645 short int var2 /* : Bool */;
3646 val* var_other /* var other: nullable Object */;
3647 short int var4 /* : Bool */;
3648 short int var5 /* : Bool */;
3649 short int var6 /* : Bool */;
3650 var_node = p0;
3651 self->attrs[COLOR_parser_nodes__ASignature___n_type].val = var_node; /* _n_type on <self:ASignature> */
3652 var = NULL;
3653 if (var_node == NULL) {
3654 var1 = 0; /* is null */
3655 } else {
3656 var1 = 1; /* arg is null and recv is not */
3657 }
3658 if (0) {
3659 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AType> */
3660 var_other = var;
3661 {
3662 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AType(AType)>*/;
3663 var4 = var5;
3664 }
3665 var6 = !var4;
3666 var2 = var6;
3667 goto RET_LABEL3;
3668 RET_LABEL3:(void)0;
3669 }
3670 var1 = var2;
3671 }
3672 if (var1){
3673 {
3674 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AType(AType)> */
3675 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AType(AType)> */
3676 RET_LABEL7:(void)0;
3677 }
3678 }
3679 } else {
3680 }
3681 RET_LABEL:;
3682 }
3683 /* method parser_prod#ASignature#n_type= for (self: Object, nullable AType) */
3684 void VIRTUAL_parser_prod__ASignature__n_type_61d(val* self, val* p0) {
3685 parser_prod__ASignature__n_type_61d(self, p0); /* Direct call parser_prod#ASignature#n_type= on <self:Object(ASignature)>*/
3686 RET_LABEL:;
3687 }
3688 /* method parser_prod#ASignature#visit_all for (self: ASignature, Visitor) */
3689 void parser_prod__ASignature__visit_all(val* self, val* p0) {
3690 val* var_v /* var v: Visitor */;
3691 val* var /* : nullable TOpar */;
3692 val* var1 /* : ANodes[AParam] */;
3693 val* var3 /* : ANodes[AParam] */;
3694 val* var4 /* : nullable TCpar */;
3695 val* var5 /* : nullable AType */;
3696 var_v = p0;
3697 var = self->attrs[COLOR_parser_nodes__ASignature___n_opar].val; /* _n_opar on <self:ASignature> */
3698 {
3699 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3700 }
3701 {
3702 { /* Inline parser_nodes#ASignature#n_params (self) on <self:ASignature> */
3703 var3 = self->attrs[COLOR_parser_nodes__ASignature___n_params].val; /* _n_params on <self:ASignature> */
3704 if (unlikely(var3 == NULL)) {
3705 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_params");
3706 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1279);
3707 show_backtrace(1);
3708 }
3709 var1 = var3;
3710 RET_LABEL2:(void)0;
3711 }
3712 }
3713 {
3714 parser_nodes__ANodes__visit_all(var1, var_v); /* Direct call parser_nodes#ANodes#visit_all on <var1:ANodes[AParam]>*/
3715 }
3716 var4 = self->attrs[COLOR_parser_nodes__ASignature___n_cpar].val; /* _n_cpar on <self:ASignature> */
3717 {
3718 parser_nodes__Visitor__enter_visit(var_v, var4); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3719 }
3720 var5 = self->attrs[COLOR_parser_nodes__ASignature___n_type].val; /* _n_type on <self:ASignature> */
3721 {
3722 parser_nodes__Visitor__enter_visit(var_v, var5); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3723 }
3724 RET_LABEL:;
3725 }
3726 /* method parser_prod#ASignature#visit_all for (self: Object, Visitor) */
3727 void VIRTUAL_parser_prod__ASignature__visit_all(val* self, val* p0) {
3728 parser_prod__ASignature__visit_all(self, p0); /* Direct call parser_prod#ASignature#visit_all on <self:Object(ASignature)>*/
3729 RET_LABEL:;
3730 }
3731 /* method parser_prod#AParam#init_aparam for (self: AParam, nullable TId, nullable AType, nullable TDotdotdot, nullable AAnnotations) */
3732 void parser_prod__AParam__init_aparam(val* self, val* p0, val* p1, val* p2, val* p3) {
3733 val* var_n_id /* var n_id: nullable TId */;
3734 val* var_n_type /* var n_type: nullable AType */;
3735 val* var_n_dotdotdot /* var n_dotdotdot: nullable TDotdotdot */;
3736 val* var_n_annotations /* var n_annotations: nullable AAnnotations */;
3737 val* var /* : null */;
3738 short int var2 /* : Bool */;
3739 short int var3 /* : Bool */;
3740 val* var_other /* var other: nullable Object */;
3741 short int var5 /* : Bool */;
3742 short int var6 /* : Bool */;
3743 short int var7 /* : Bool */;
3744 val* var9 /* : null */;
3745 short int var10 /* : Bool */;
3746 short int var11 /* : Bool */;
3747 short int var13 /* : Bool */;
3748 short int var14 /* : Bool */;
3749 short int var15 /* : Bool */;
3750 val* var17 /* : null */;
3751 short int var18 /* : Bool */;
3752 short int var19 /* : Bool */;
3753 short int var21 /* : Bool */;
3754 short int var22 /* : Bool */;
3755 short int var23 /* : Bool */;
3756 var_n_id = p0;
3757 var_n_type = p1;
3758 var_n_dotdotdot = p2;
3759 var_n_annotations = p3;
3760 if (unlikely(var_n_id == NULL)) {
3761 PRINT_ERROR("Runtime error: %s", "Cast failed");
3762 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1960);
3763 show_backtrace(1);
3764 }
3765 self->attrs[COLOR_parser_nodes__AParam___n_id].val = var_n_id; /* _n_id on <self:AParam> */
3766 if (var_n_id == NULL) {
3767 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3768 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1961);
3769 show_backtrace(1);
3770 } else {
3771 { /* Inline parser_nodes#ANode#parent= (var_n_id,self) on <var_n_id:nullable TId> */
3772 if (unlikely(var_n_id == NULL)) {
3773 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3774 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
3775 show_backtrace(1);
3776 }
3777 var_n_id->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_id:nullable TId> */
3778 RET_LABEL1:(void)0;
3779 }
3780 }
3781 self->attrs[COLOR_parser_nodes__AParam___n_type].val = var_n_type; /* _n_type on <self:AParam> */
3782 var = NULL;
3783 if (var_n_type == NULL) {
3784 var2 = 0; /* is null */
3785 } else {
3786 var2 = 1; /* arg is null and recv is not */
3787 }
3788 if (0) {
3789 { /* Inline kernel#Object#!= (var_n_type,var) on <var_n_type:nullable AType> */
3790 var_other = var;
3791 {
3792 var6 = ((short int (*)(val*, val*))(var_n_type->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_type, var_other) /* == on <var_n_type:nullable AType(AType)>*/;
3793 var5 = var6;
3794 }
3795 var7 = !var5;
3796 var3 = var7;
3797 goto RET_LABEL4;
3798 RET_LABEL4:(void)0;
3799 }
3800 var2 = var3;
3801 }
3802 if (var2){
3803 {
3804 { /* Inline parser_nodes#ANode#parent= (var_n_type,self) on <var_n_type:nullable AType(AType)> */
3805 var_n_type->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_type:nullable AType(AType)> */
3806 RET_LABEL8:(void)0;
3807 }
3808 }
3809 } else {
3810 }
3811 self->attrs[COLOR_parser_nodes__AParam___n_dotdotdot].val = var_n_dotdotdot; /* _n_dotdotdot on <self:AParam> */
3812 var9 = NULL;
3813 if (var_n_dotdotdot == NULL) {
3814 var10 = 0; /* is null */
3815 } else {
3816 var10 = 1; /* arg is null and recv is not */
3817 }
3818 if (0) {
3819 { /* Inline kernel#Object#!= (var_n_dotdotdot,var9) on <var_n_dotdotdot:nullable TDotdotdot> */
3820 var_other = var9;
3821 {
3822 var14 = ((short int (*)(val*, val*))(var_n_dotdotdot->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_dotdotdot, var_other) /* == on <var_n_dotdotdot:nullable TDotdotdot(TDotdotdot)>*/;
3823 var13 = var14;
3824 }
3825 var15 = !var13;
3826 var11 = var15;
3827 goto RET_LABEL12;
3828 RET_LABEL12:(void)0;
3829 }
3830 var10 = var11;
3831 }
3832 if (var10){
3833 {
3834 { /* Inline parser_nodes#ANode#parent= (var_n_dotdotdot,self) on <var_n_dotdotdot:nullable TDotdotdot(TDotdotdot)> */
3835 var_n_dotdotdot->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_dotdotdot:nullable TDotdotdot(TDotdotdot)> */
3836 RET_LABEL16:(void)0;
3837 }
3838 }
3839 } else {
3840 }
3841 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:AParam> */
3842 var17 = NULL;
3843 if (var_n_annotations == NULL) {
3844 var18 = 0; /* is null */
3845 } else {
3846 var18 = 1; /* arg is null and recv is not */
3847 }
3848 if (0) {
3849 { /* Inline kernel#Object#!= (var_n_annotations,var17) on <var_n_annotations:nullable AAnnotations> */
3850 var_other = var17;
3851 {
3852 var22 = ((short int (*)(val*, val*))(var_n_annotations->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_annotations, var_other) /* == on <var_n_annotations:nullable AAnnotations(AAnnotations)>*/;
3853 var21 = var22;
3854 }
3855 var23 = !var21;
3856 var19 = var23;
3857 goto RET_LABEL20;
3858 RET_LABEL20:(void)0;
3859 }
3860 var18 = var19;
3861 }
3862 if (var18){
3863 {
3864 { /* Inline parser_nodes#ANode#parent= (var_n_annotations,self) on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
3865 var_n_annotations->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
3866 RET_LABEL24:(void)0;
3867 }
3868 }
3869 } else {
3870 }
3871 RET_LABEL:;
3872 }
3873 /* method parser_prod#AParam#init_aparam for (self: Object, nullable TId, nullable AType, nullable TDotdotdot, nullable AAnnotations) */
3874 void VIRTUAL_parser_prod__AParam__init_aparam(val* self, val* p0, val* p1, val* p2, val* p3) {
3875 parser_prod__AParam__init_aparam(self, p0, p1, p2, p3); /* Direct call parser_prod#AParam#init_aparam on <self:Object(AParam)>*/
3876 RET_LABEL:;
3877 }
3878 /* method parser_prod#AParam#replace_child for (self: AParam, ANode, nullable ANode) */
3879 void parser_prod__AParam__replace_child(val* self, val* p0, val* p1) {
3880 val* var_old_child /* var old_child: ANode */;
3881 val* var_new_child /* var new_child: nullable ANode */;
3882 val* var /* : TId */;
3883 short int var1 /* : Bool */;
3884 short int var2 /* : Bool */;
3885 val* var_other /* var other: nullable Object */;
3886 short int var4 /* : Bool */;
3887 short int var6 /* : Bool */;
3888 short int var7 /* : Bool */;
3889 int cltype;
3890 int idtype;
3891 const char* var_class_name;
3892 val* var8 /* : nullable AType */;
3893 short int var9 /* : Bool */;
3894 short int var10 /* : Bool */;
3895 short int var12 /* : Bool */;
3896 short int var14 /* : Bool */;
3897 short int var15 /* : Bool */;
3898 int cltype16;
3899 int idtype17;
3900 const char* var_class_name18;
3901 val* var19 /* : nullable TDotdotdot */;
3902 short int var20 /* : Bool */;
3903 short int var21 /* : Bool */;
3904 short int var23 /* : Bool */;
3905 short int var25 /* : Bool */;
3906 short int var26 /* : Bool */;
3907 int cltype27;
3908 int idtype28;
3909 const char* var_class_name29;
3910 val* var30 /* : nullable AAnnotations */;
3911 short int var31 /* : Bool */;
3912 short int var32 /* : Bool */;
3913 short int var34 /* : Bool */;
3914 short int var36 /* : Bool */;
3915 short int var37 /* : Bool */;
3916 int cltype38;
3917 int idtype39;
3918 const char* var_class_name40;
3919 var_old_child = p0;
3920 var_new_child = p1;
3921 var = self->attrs[COLOR_parser_nodes__AParam___n_id].val; /* _n_id on <self:AParam> */
3922 if (unlikely(var == NULL)) {
3923 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
3924 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1972);
3925 show_backtrace(1);
3926 }
3927 {
3928 { /* Inline kernel#Object#== (var,var_old_child) on <var:TId> */
3929 var_other = var_old_child;
3930 {
3931 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TId> */
3932 var6 = var == var_other;
3933 var4 = var6;
3934 goto RET_LABEL5;
3935 RET_LABEL5:(void)0;
3936 }
3937 }
3938 var2 = var4;
3939 goto RET_LABEL3;
3940 RET_LABEL3:(void)0;
3941 }
3942 var1 = var2;
3943 }
3944 if (var1){
3945 /* <var_new_child:nullable ANode> isa TId */
3946 cltype = type_parser_nodes__TId.color;
3947 idtype = type_parser_nodes__TId.id;
3948 if(var_new_child == NULL) {
3949 var7 = 0;
3950 } else {
3951 if(cltype >= var_new_child->type->table_size) {
3952 var7 = 0;
3953 } else {
3954 var7 = var_new_child->type->type_table[cltype] == idtype;
3955 }
3956 }
3957 if (unlikely(!var7)) {
3958 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
3959 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TId", var_class_name);
3960 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1973);
3961 show_backtrace(1);
3962 }
3963 {
3964 parser_prod__AParam__n_id_61d(self, var_new_child); /* Direct call parser_prod#AParam#n_id= on <self:AParam>*/
3965 }
3966 goto RET_LABEL;
3967 } else {
3968 }
3969 var8 = self->attrs[COLOR_parser_nodes__AParam___n_type].val; /* _n_type on <self:AParam> */
3970 if (var8 == NULL) {
3971 var9 = 0; /* <var_old_child:ANode> cannot be null */
3972 } else {
3973 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:nullable AType> */
3974 var_other = var_old_child;
3975 {
3976 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:nullable AType(AType)> */
3977 var14 = var8 == var_other;
3978 var12 = var14;
3979 goto RET_LABEL13;
3980 RET_LABEL13:(void)0;
3981 }
3982 }
3983 var10 = var12;
3984 goto RET_LABEL11;
3985 RET_LABEL11:(void)0;
3986 }
3987 var9 = var10;
3988 }
3989 if (var9){
3990 /* <var_new_child:nullable ANode> isa nullable AType */
3991 cltype16 = type_nullable_parser_nodes__AType.color;
3992 idtype17 = type_nullable_parser_nodes__AType.id;
3993 if(var_new_child == NULL) {
3994 var15 = 1;
3995 } else {
3996 if(cltype16 >= var_new_child->type->table_size) {
3997 var15 = 0;
3998 } else {
3999 var15 = var_new_child->type->type_table[cltype16] == idtype17;
4000 }
4001 }
4002 if (unlikely(!var15)) {
4003 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
4004 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AType", var_class_name18);
4005 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1977);
4006 show_backtrace(1);
4007 }
4008 {
4009 parser_prod__AParam__n_type_61d(self, var_new_child); /* Direct call parser_prod#AParam#n_type= on <self:AParam>*/
4010 }
4011 goto RET_LABEL;
4012 } else {
4013 }
4014 var19 = self->attrs[COLOR_parser_nodes__AParam___n_dotdotdot].val; /* _n_dotdotdot on <self:AParam> */
4015 if (var19 == NULL) {
4016 var20 = 0; /* <var_old_child:ANode> cannot be null */
4017 } else {
4018 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:nullable TDotdotdot> */
4019 var_other = var_old_child;
4020 {
4021 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:nullable TDotdotdot(TDotdotdot)> */
4022 var25 = var19 == var_other;
4023 var23 = var25;
4024 goto RET_LABEL24;
4025 RET_LABEL24:(void)0;
4026 }
4027 }
4028 var21 = var23;
4029 goto RET_LABEL22;
4030 RET_LABEL22:(void)0;
4031 }
4032 var20 = var21;
4033 }
4034 if (var20){
4035 /* <var_new_child:nullable ANode> isa nullable TDotdotdot */
4036 cltype27 = type_nullable_parser_nodes__TDotdotdot.color;
4037 idtype28 = type_nullable_parser_nodes__TDotdotdot.id;
4038 if(var_new_child == NULL) {
4039 var26 = 1;
4040 } else {
4041 if(cltype27 >= var_new_child->type->table_size) {
4042 var26 = 0;
4043 } else {
4044 var26 = var_new_child->type->type_table[cltype27] == idtype28;
4045 }
4046 }
4047 if (unlikely(!var26)) {
4048 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
4049 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TDotdotdot", var_class_name29);
4050 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1981);
4051 show_backtrace(1);
4052 }
4053 {
4054 parser_prod__AParam__n_dotdotdot_61d(self, var_new_child); /* Direct call parser_prod#AParam#n_dotdotdot= on <self:AParam>*/
4055 }
4056 goto RET_LABEL;
4057 } else {
4058 }
4059 var30 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AParam> */
4060 if (var30 == NULL) {
4061 var31 = 0; /* <var_old_child:ANode> cannot be null */
4062 } else {
4063 { /* Inline kernel#Object#== (var30,var_old_child) on <var30:nullable AAnnotations> */
4064 var_other = var_old_child;
4065 {
4066 { /* Inline kernel#Object#is_same_instance (var30,var_other) on <var30:nullable AAnnotations(AAnnotations)> */
4067 var36 = var30 == var_other;
4068 var34 = var36;
4069 goto RET_LABEL35;
4070 RET_LABEL35:(void)0;
4071 }
4072 }
4073 var32 = var34;
4074 goto RET_LABEL33;
4075 RET_LABEL33:(void)0;
4076 }
4077 var31 = var32;
4078 }
4079 if (var31){
4080 /* <var_new_child:nullable ANode> isa nullable AAnnotations */
4081 cltype38 = type_nullable_parser_nodes__AAnnotations.color;
4082 idtype39 = type_nullable_parser_nodes__AAnnotations.id;
4083 if(var_new_child == NULL) {
4084 var37 = 1;
4085 } else {
4086 if(cltype38 >= var_new_child->type->table_size) {
4087 var37 = 0;
4088 } else {
4089 var37 = var_new_child->type->type_table[cltype38] == idtype39;
4090 }
4091 }
4092 if (unlikely(!var37)) {
4093 var_class_name40 = var_new_child == NULL ? "null" : var_new_child->type->name;
4094 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AAnnotations", var_class_name40);
4095 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 1985);
4096 show_backtrace(1);
4097 }
4098 {
4099 parser_prod__AParam__n_annotations_61d(self, var_new_child); /* Direct call parser_prod#AParam#n_annotations= on <self:AParam>*/
4100 }
4101 goto RET_LABEL;
4102 } else {
4103 }
4104 RET_LABEL:;
4105 }
4106 /* method parser_prod#AParam#replace_child for (self: Object, ANode, nullable ANode) */
4107 void VIRTUAL_parser_prod__AParam__replace_child(val* self, val* p0, val* p1) {
4108 parser_prod__AParam__replace_child(self, p0, p1); /* Direct call parser_prod#AParam#replace_child on <self:Object(AParam)>*/
4109 RET_LABEL:;
4110 }
4111 /* method parser_prod#AParam#n_id= for (self: AParam, TId) */
4112 void parser_prod__AParam__n_id_61d(val* self, val* p0) {
4113 val* var_node /* var node: TId */;
4114 var_node = p0;
4115 self->attrs[COLOR_parser_nodes__AParam___n_id].val = var_node; /* _n_id on <self:AParam> */
4116 {
4117 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TId> */
4118 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TId> */
4119 RET_LABEL1:(void)0;
4120 }
4121 }
4122 RET_LABEL:;
4123 }
4124 /* method parser_prod#AParam#n_id= for (self: Object, TId) */
4125 void VIRTUAL_parser_prod__AParam__n_id_61d(val* self, val* p0) {
4126 parser_prod__AParam__n_id_61d(self, p0); /* Direct call parser_prod#AParam#n_id= on <self:Object(AParam)>*/
4127 RET_LABEL:;
4128 }
4129 /* method parser_prod#AParam#n_type= for (self: AParam, nullable AType) */
4130 void parser_prod__AParam__n_type_61d(val* self, val* p0) {
4131 val* var_node /* var node: nullable AType */;
4132 val* var /* : null */;
4133 short int var1 /* : Bool */;
4134 short int var2 /* : Bool */;
4135 val* var_other /* var other: nullable Object */;
4136 short int var4 /* : Bool */;
4137 short int var5 /* : Bool */;
4138 short int var6 /* : Bool */;
4139 var_node = p0;
4140 self->attrs[COLOR_parser_nodes__AParam___n_type].val = var_node; /* _n_type on <self:AParam> */
4141 var = NULL;
4142 if (var_node == NULL) {
4143 var1 = 0; /* is null */
4144 } else {
4145 var1 = 1; /* arg is null and recv is not */
4146 }
4147 if (0) {
4148 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AType> */
4149 var_other = var;
4150 {
4151 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AType(AType)>*/;
4152 var4 = var5;
4153 }
4154 var6 = !var4;
4155 var2 = var6;
4156 goto RET_LABEL3;
4157 RET_LABEL3:(void)0;
4158 }
4159 var1 = var2;
4160 }
4161 if (var1){
4162 {
4163 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AType(AType)> */
4164 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AType(AType)> */
4165 RET_LABEL7:(void)0;
4166 }
4167 }
4168 } else {
4169 }
4170 RET_LABEL:;
4171 }
4172 /* method parser_prod#AParam#n_type= for (self: Object, nullable AType) */
4173 void VIRTUAL_parser_prod__AParam__n_type_61d(val* self, val* p0) {
4174 parser_prod__AParam__n_type_61d(self, p0); /* Direct call parser_prod#AParam#n_type= on <self:Object(AParam)>*/
4175 RET_LABEL:;
4176 }
4177 /* method parser_prod#AParam#n_dotdotdot= for (self: AParam, nullable TDotdotdot) */
4178 void parser_prod__AParam__n_dotdotdot_61d(val* self, val* p0) {
4179 val* var_node /* var node: nullable TDotdotdot */;
4180 val* var /* : null */;
4181 short int var1 /* : Bool */;
4182 short int var2 /* : Bool */;
4183 val* var_other /* var other: nullable Object */;
4184 short int var4 /* : Bool */;
4185 short int var5 /* : Bool */;
4186 short int var6 /* : Bool */;
4187 var_node = p0;
4188 self->attrs[COLOR_parser_nodes__AParam___n_dotdotdot].val = var_node; /* _n_dotdotdot on <self:AParam> */
4189 var = NULL;
4190 if (var_node == NULL) {
4191 var1 = 0; /* is null */
4192 } else {
4193 var1 = 1; /* arg is null and recv is not */
4194 }
4195 if (0) {
4196 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable TDotdotdot> */
4197 var_other = var;
4198 {
4199 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable TDotdotdot(TDotdotdot)>*/;
4200 var4 = var5;
4201 }
4202 var6 = !var4;
4203 var2 = var6;
4204 goto RET_LABEL3;
4205 RET_LABEL3:(void)0;
4206 }
4207 var1 = var2;
4208 }
4209 if (var1){
4210 {
4211 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TDotdotdot(TDotdotdot)> */
4212 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TDotdotdot(TDotdotdot)> */
4213 RET_LABEL7:(void)0;
4214 }
4215 }
4216 } else {
4217 }
4218 RET_LABEL:;
4219 }
4220 /* method parser_prod#AParam#n_dotdotdot= for (self: Object, nullable TDotdotdot) */
4221 void VIRTUAL_parser_prod__AParam__n_dotdotdot_61d(val* self, val* p0) {
4222 parser_prod__AParam__n_dotdotdot_61d(self, p0); /* Direct call parser_prod#AParam#n_dotdotdot= on <self:Object(AParam)>*/
4223 RET_LABEL:;
4224 }
4225 /* method parser_prod#AParam#n_annotations= for (self: AParam, nullable AAnnotations) */
4226 void parser_prod__AParam__n_annotations_61d(val* self, val* p0) {
4227 val* var_node /* var node: nullable AAnnotations */;
4228 val* var /* : null */;
4229 short int var1 /* : Bool */;
4230 short int var2 /* : Bool */;
4231 val* var_other /* var other: nullable Object */;
4232 short int var4 /* : Bool */;
4233 short int var5 /* : Bool */;
4234 short int var6 /* : Bool */;
4235 var_node = p0;
4236 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_node; /* _n_annotations on <self:AParam> */
4237 var = NULL;
4238 if (var_node == NULL) {
4239 var1 = 0; /* is null */
4240 } else {
4241 var1 = 1; /* arg is null and recv is not */
4242 }
4243 if (0) {
4244 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AAnnotations> */
4245 var_other = var;
4246 {
4247 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AAnnotations(AAnnotations)>*/;
4248 var4 = var5;
4249 }
4250 var6 = !var4;
4251 var2 = var6;
4252 goto RET_LABEL3;
4253 RET_LABEL3:(void)0;
4254 }
4255 var1 = var2;
4256 }
4257 if (var1){
4258 {
4259 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AAnnotations(AAnnotations)> */
4260 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AAnnotations(AAnnotations)> */
4261 RET_LABEL7:(void)0;
4262 }
4263 }
4264 } else {
4265 }
4266 RET_LABEL:;
4267 }
4268 /* method parser_prod#AParam#n_annotations= for (self: Object, nullable AAnnotations) */
4269 void VIRTUAL_parser_prod__AParam__n_annotations_61d(val* self, val* p0) {
4270 parser_prod__AParam__n_annotations_61d(self, p0); /* Direct call parser_prod#AParam#n_annotations= on <self:Object(AParam)>*/
4271 RET_LABEL:;
4272 }
4273 /* method parser_prod#AParam#visit_all for (self: AParam, Visitor) */
4274 void parser_prod__AParam__visit_all(val* self, val* p0) {
4275 val* var_v /* var v: Visitor */;
4276 val* var /* : TId */;
4277 val* var1 /* : nullable AType */;
4278 val* var2 /* : nullable TDotdotdot */;
4279 val* var3 /* : nullable AAnnotations */;
4280 var_v = p0;
4281 var = self->attrs[COLOR_parser_nodes__AParam___n_id].val; /* _n_id on <self:AParam> */
4282 if (unlikely(var == NULL)) {
4283 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
4284 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2014);
4285 show_backtrace(1);
4286 }
4287 {
4288 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4289 }
4290 var1 = self->attrs[COLOR_parser_nodes__AParam___n_type].val; /* _n_type on <self:AParam> */
4291 {
4292 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4293 }
4294 var2 = self->attrs[COLOR_parser_nodes__AParam___n_dotdotdot].val; /* _n_dotdotdot on <self:AParam> */
4295 {
4296 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4297 }
4298 var3 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AParam> */
4299 {
4300 parser_nodes__Visitor__enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4301 }
4302 RET_LABEL:;
4303 }
4304 /* method parser_prod#AParam#visit_all for (self: Object, Visitor) */
4305 void VIRTUAL_parser_prod__AParam__visit_all(val* self, val* p0) {
4306 parser_prod__AParam__visit_all(self, p0); /* Direct call parser_prod#AParam#visit_all on <self:Object(AParam)>*/
4307 RET_LABEL:;
4308 }
4309 /* method parser_prod#AType#init_atype for (self: AType, nullable TKwnullable, nullable TClassid, Collection[Object], nullable AAnnotations) */
4310 void parser_prod__AType__init_atype(val* self, val* p0, val* p1, val* p2, val* p3) {
4311 val* var_n_kwnullable /* var n_kwnullable: nullable TKwnullable */;
4312 val* var_n_id /* var n_id: nullable TClassid */;
4313 val* var_n_types /* var n_types: Collection[Object] */;
4314 val* var_n_annotations /* var n_annotations: nullable AAnnotations */;
4315 val* var /* : null */;
4316 short int var1 /* : Bool */;
4317 short int var2 /* : Bool */;
4318 val* var_other /* var other: nullable Object */;
4319 short int var4 /* : Bool */;
4320 short int var5 /* : Bool */;
4321 short int var6 /* : Bool */;
4322 val* var9 /* : ANodes[AType] */;
4323 val* var11 /* : ANodes[AType] */;
4324 val* var12 /* : null */;
4325 short int var13 /* : Bool */;
4326 short int var14 /* : Bool */;
4327 short int var16 /* : Bool */;
4328 short int var17 /* : Bool */;
4329 short int var18 /* : Bool */;
4330 var_n_kwnullable = p0;
4331 var_n_id = p1;
4332 var_n_types = p2;
4333 var_n_annotations = p3;
4334 self->attrs[COLOR_parser_nodes__AType___n_kwnullable].val = var_n_kwnullable; /* _n_kwnullable on <self:AType> */
4335 var = NULL;
4336 if (var_n_kwnullable == NULL) {
4337 var1 = 0; /* is null */
4338 } else {
4339 var1 = 1; /* arg is null and recv is not */
4340 }
4341 if (0) {
4342 { /* Inline kernel#Object#!= (var_n_kwnullable,var) on <var_n_kwnullable:nullable TKwnullable> */
4343 var_other = var;
4344 {
4345 var5 = ((short int (*)(val*, val*))(var_n_kwnullable->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_kwnullable, var_other) /* == on <var_n_kwnullable:nullable TKwnullable(TKwnullable)>*/;
4346 var4 = var5;
4347 }
4348 var6 = !var4;
4349 var2 = var6;
4350 goto RET_LABEL3;
4351 RET_LABEL3:(void)0;
4352 }
4353 var1 = var2;
4354 }
4355 if (var1){
4356 {
4357 { /* Inline parser_nodes#ANode#parent= (var_n_kwnullable,self) on <var_n_kwnullable:nullable TKwnullable(TKwnullable)> */
4358 var_n_kwnullable->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwnullable:nullable TKwnullable(TKwnullable)> */
4359 RET_LABEL7:(void)0;
4360 }
4361 }
4362 } else {
4363 }
4364 if (unlikely(var_n_id == NULL)) {
4365 PRINT_ERROR("Runtime error: %s", "Cast failed");
4366 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2030);
4367 show_backtrace(1);
4368 }
4369 self->attrs[COLOR_parser_nodes__AType___n_id].val = var_n_id; /* _n_id on <self:AType> */
4370 if (var_n_id == NULL) {
4371 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4372 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2031);
4373 show_backtrace(1);
4374 } else {
4375 { /* Inline parser_nodes#ANode#parent= (var_n_id,self) on <var_n_id:nullable TClassid> */
4376 if (unlikely(var_n_id == NULL)) {
4377 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4378 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
4379 show_backtrace(1);
4380 }
4381 var_n_id->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_id:nullable TClassid> */
4382 RET_LABEL8:(void)0;
4383 }
4384 }
4385 {
4386 { /* Inline parser_nodes#AType#n_types (self) on <self:AType> */
4387 var11 = self->attrs[COLOR_parser_nodes__AType___n_types].val; /* _n_types on <self:AType> */
4388 if (unlikely(var11 == NULL)) {
4389 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_types");
4390 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1300);
4391 show_backtrace(1);
4392 }
4393 var9 = var11;
4394 RET_LABEL10:(void)0;
4395 }
4396 }
4397 {
4398 parser_nodes__ANodes__unsafe_add_all(var9, var_n_types); /* Direct call parser_nodes#ANodes#unsafe_add_all on <var9:ANodes[AType]>*/
4399 }
4400 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:AType> */
4401 var12 = NULL;
4402 if (var_n_annotations == NULL) {
4403 var13 = 0; /* is null */
4404 } else {
4405 var13 = 1; /* arg is null and recv is not */
4406 }
4407 if (0) {
4408 { /* Inline kernel#Object#!= (var_n_annotations,var12) on <var_n_annotations:nullable AAnnotations> */
4409 var_other = var12;
4410 {
4411 var17 = ((short int (*)(val*, val*))(var_n_annotations->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_annotations, var_other) /* == on <var_n_annotations:nullable AAnnotations(AAnnotations)>*/;
4412 var16 = var17;
4413 }
4414 var18 = !var16;
4415 var14 = var18;
4416 goto RET_LABEL15;
4417 RET_LABEL15:(void)0;
4418 }
4419 var13 = var14;
4420 }
4421 if (var13){
4422 {
4423 { /* Inline parser_nodes#ANode#parent= (var_n_annotations,self) on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
4424 var_n_annotations->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
4425 RET_LABEL19:(void)0;
4426 }
4427 }
4428 } else {
4429 }
4430 RET_LABEL:;
4431 }
4432 /* method parser_prod#AType#init_atype for (self: Object, nullable TKwnullable, nullable TClassid, Collection[Object], nullable AAnnotations) */
4433 void VIRTUAL_parser_prod__AType__init_atype(val* self, val* p0, val* p1, val* p2, val* p3) {
4434 parser_prod__AType__init_atype(self, p0, p1, p2, p3); /* Direct call parser_prod#AType#init_atype on <self:Object(AType)>*/
4435 RET_LABEL:;
4436 }
4437 /* method parser_prod#AType#replace_child for (self: AType, ANode, nullable ANode) */
4438 void parser_prod__AType__replace_child(val* self, val* p0, val* p1) {
4439 val* var_old_child /* var old_child: ANode */;
4440 val* var_new_child /* var new_child: nullable ANode */;
4441 val* var /* : nullable TKwnullable */;
4442 short int var1 /* : Bool */;
4443 short int var2 /* : Bool */;
4444 val* var_other /* var other: nullable Object */;
4445 short int var4 /* : Bool */;
4446 short int var6 /* : Bool */;
4447 short int var7 /* : Bool */;
4448 int cltype;
4449 int idtype;
4450 const char* var_class_name;
4451 val* var8 /* : TClassid */;
4452 short int var9 /* : Bool */;
4453 short int var10 /* : Bool */;
4454 short int var12 /* : Bool */;
4455 short int var14 /* : Bool */;
4456 short int var15 /* : Bool */;
4457 int cltype16;
4458 int idtype17;
4459 const char* var_class_name18;
4460 val* var19 /* : ANodes[AType] */;
4461 val* var21 /* : ANodes[AType] */;
4462 short int var22 /* : Bool */;
4463 val* var23 /* : nullable AAnnotations */;
4464 short int var24 /* : Bool */;
4465 short int var25 /* : Bool */;
4466 short int var27 /* : Bool */;
4467 short int var29 /* : Bool */;
4468 short int var30 /* : Bool */;
4469 int cltype31;
4470 int idtype32;
4471 const char* var_class_name33;
4472 var_old_child = p0;
4473 var_new_child = p1;
4474 var = self->attrs[COLOR_parser_nodes__AType___n_kwnullable].val; /* _n_kwnullable on <self:AType> */
4475 if (var == NULL) {
4476 var1 = 0; /* <var_old_child:ANode> cannot be null */
4477 } else {
4478 { /* Inline kernel#Object#== (var,var_old_child) on <var:nullable TKwnullable> */
4479 var_other = var_old_child;
4480 {
4481 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:nullable TKwnullable(TKwnullable)> */
4482 var6 = var == var_other;
4483 var4 = var6;
4484 goto RET_LABEL5;
4485 RET_LABEL5:(void)0;
4486 }
4487 }
4488 var2 = var4;
4489 goto RET_LABEL3;
4490 RET_LABEL3:(void)0;
4491 }
4492 var1 = var2;
4493 }
4494 if (var1){
4495 /* <var_new_child:nullable ANode> isa nullable TKwnullable */
4496 cltype = type_nullable_parser_nodes__TKwnullable.color;
4497 idtype = type_nullable_parser_nodes__TKwnullable.id;
4498 if(var_new_child == NULL) {
4499 var7 = 1;
4500 } else {
4501 if(cltype >= var_new_child->type->table_size) {
4502 var7 = 0;
4503 } else {
4504 var7 = var_new_child->type->type_table[cltype] == idtype;
4505 }
4506 }
4507 if (unlikely(!var7)) {
4508 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
4509 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TKwnullable", var_class_name);
4510 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2040);
4511 show_backtrace(1);
4512 }
4513 {
4514 parser_prod__AType__n_kwnullable_61d(self, var_new_child); /* Direct call parser_prod#AType#n_kwnullable= on <self:AType>*/
4515 }
4516 goto RET_LABEL;
4517 } else {
4518 }
4519 var8 = self->attrs[COLOR_parser_nodes__AType___n_id].val; /* _n_id on <self:AType> */
4520 if (unlikely(var8 == NULL)) {
4521 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
4522 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2043);
4523 show_backtrace(1);
4524 }
4525 {
4526 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:TClassid> */
4527 var_other = var_old_child;
4528 {
4529 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:TClassid> */
4530 var14 = var8 == var_other;
4531 var12 = var14;
4532 goto RET_LABEL13;
4533 RET_LABEL13:(void)0;
4534 }
4535 }
4536 var10 = var12;
4537 goto RET_LABEL11;
4538 RET_LABEL11:(void)0;
4539 }
4540 var9 = var10;
4541 }
4542 if (var9){
4543 /* <var_new_child:nullable ANode> isa TClassid */
4544 cltype16 = type_parser_nodes__TClassid.color;
4545 idtype17 = type_parser_nodes__TClassid.id;
4546 if(var_new_child == NULL) {
4547 var15 = 0;
4548 } else {
4549 if(cltype16 >= var_new_child->type->table_size) {
4550 var15 = 0;
4551 } else {
4552 var15 = var_new_child->type->type_table[cltype16] == idtype17;
4553 }
4554 }
4555 if (unlikely(!var15)) {
4556 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
4557 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TClassid", var_class_name18);
4558 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2044);
4559 show_backtrace(1);
4560 }
4561 {
4562 parser_prod__AType__n_id_61d(self, var_new_child); /* Direct call parser_prod#AType#n_id= on <self:AType>*/
4563 }
4564 goto RET_LABEL;
4565 } else {
4566 }
4567 {
4568 { /* Inline parser_nodes#AType#n_types (self) on <self:AType> */
4569 var21 = self->attrs[COLOR_parser_nodes__AType___n_types].val; /* _n_types on <self:AType> */
4570 if (unlikely(var21 == NULL)) {
4571 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_types");
4572 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1300);
4573 show_backtrace(1);
4574 }
4575 var19 = var21;
4576 RET_LABEL20:(void)0;
4577 }
4578 }
4579 {
4580 var22 = parser_nodes__ANodes__replace_child(var19, var_old_child, var_new_child);
4581 }
4582 if (var22){
4583 goto RET_LABEL;
4584 } else {
4585 }
4586 var23 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AType> */
4587 if (var23 == NULL) {
4588 var24 = 0; /* <var_old_child:ANode> cannot be null */
4589 } else {
4590 { /* Inline kernel#Object#== (var23,var_old_child) on <var23:nullable AAnnotations> */
4591 var_other = var_old_child;
4592 {
4593 { /* Inline kernel#Object#is_same_instance (var23,var_other) on <var23:nullable AAnnotations(AAnnotations)> */
4594 var29 = var23 == var_other;
4595 var27 = var29;
4596 goto RET_LABEL28;
4597 RET_LABEL28:(void)0;
4598 }
4599 }
4600 var25 = var27;
4601 goto RET_LABEL26;
4602 RET_LABEL26:(void)0;
4603 }
4604 var24 = var25;
4605 }
4606 if (var24){
4607 /* <var_new_child:nullable ANode> isa nullable AAnnotations */
4608 cltype31 = type_nullable_parser_nodes__AAnnotations.color;
4609 idtype32 = type_nullable_parser_nodes__AAnnotations.id;
4610 if(var_new_child == NULL) {
4611 var30 = 1;
4612 } else {
4613 if(cltype31 >= var_new_child->type->table_size) {
4614 var30 = 0;
4615 } else {
4616 var30 = var_new_child->type->type_table[cltype31] == idtype32;
4617 }
4618 }
4619 if (unlikely(!var30)) {
4620 var_class_name33 = var_new_child == NULL ? "null" : var_new_child->type->name;
4621 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AAnnotations", var_class_name33);
4622 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2049);
4623 show_backtrace(1);
4624 }
4625 {
4626 parser_prod__AType__n_annotations_61d(self, var_new_child); /* Direct call parser_prod#AType#n_annotations= on <self:AType>*/
4627 }
4628 goto RET_LABEL;
4629 } else {
4630 }
4631 RET_LABEL:;
4632 }
4633 /* method parser_prod#AType#replace_child for (self: Object, ANode, nullable ANode) */
4634 void VIRTUAL_parser_prod__AType__replace_child(val* self, val* p0, val* p1) {
4635 parser_prod__AType__replace_child(self, p0, p1); /* Direct call parser_prod#AType#replace_child on <self:Object(AType)>*/
4636 RET_LABEL:;
4637 }
4638 /* method parser_prod#AType#n_kwnullable= for (self: AType, nullable TKwnullable) */
4639 void parser_prod__AType__n_kwnullable_61d(val* self, val* p0) {
4640 val* var_node /* var node: nullable TKwnullable */;
4641 val* var /* : null */;
4642 short int var1 /* : Bool */;
4643 short int var2 /* : Bool */;
4644 val* var_other /* var other: nullable Object */;
4645 short int var4 /* : Bool */;
4646 short int var5 /* : Bool */;
4647 short int var6 /* : Bool */;
4648 var_node = p0;
4649 self->attrs[COLOR_parser_nodes__AType___n_kwnullable].val = var_node; /* _n_kwnullable on <self:AType> */
4650 var = NULL;
4651 if (var_node == NULL) {
4652 var1 = 0; /* is null */
4653 } else {
4654 var1 = 1; /* arg is null and recv is not */
4655 }
4656 if (0) {
4657 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable TKwnullable> */
4658 var_other = var;
4659 {
4660 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable TKwnullable(TKwnullable)>*/;
4661 var4 = var5;
4662 }
4663 var6 = !var4;
4664 var2 = var6;
4665 goto RET_LABEL3;
4666 RET_LABEL3:(void)0;
4667 }
4668 var1 = var2;
4669 }
4670 if (var1){
4671 {
4672 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TKwnullable(TKwnullable)> */
4673 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TKwnullable(TKwnullable)> */
4674 RET_LABEL7:(void)0;
4675 }
4676 }
4677 } else {
4678 }
4679 RET_LABEL:;
4680 }
4681 /* method parser_prod#AType#n_kwnullable= for (self: Object, nullable TKwnullable) */
4682 void VIRTUAL_parser_prod__AType__n_kwnullable_61d(val* self, val* p0) {
4683 parser_prod__AType__n_kwnullable_61d(self, p0); /* Direct call parser_prod#AType#n_kwnullable= on <self:Object(AType)>*/
4684 RET_LABEL:;
4685 }
4686 /* method parser_prod#AType#n_id= for (self: AType, TClassid) */
4687 void parser_prod__AType__n_id_61d(val* self, val* p0) {
4688 val* var_node /* var node: TClassid */;
4689 var_node = p0;
4690 self->attrs[COLOR_parser_nodes__AType___n_id].val = var_node; /* _n_id on <self:AType> */
4691 {
4692 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TClassid> */
4693 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TClassid> */
4694 RET_LABEL1:(void)0;
4695 }
4696 }
4697 RET_LABEL:;
4698 }
4699 /* method parser_prod#AType#n_id= for (self: Object, TClassid) */
4700 void VIRTUAL_parser_prod__AType__n_id_61d(val* self, val* p0) {
4701 parser_prod__AType__n_id_61d(self, p0); /* Direct call parser_prod#AType#n_id= on <self:Object(AType)>*/
4702 RET_LABEL:;
4703 }
4704 /* method parser_prod#AType#n_annotations= for (self: AType, nullable AAnnotations) */
4705 void parser_prod__AType__n_annotations_61d(val* self, val* p0) {
4706 val* var_node /* var node: nullable AAnnotations */;
4707 val* var /* : null */;
4708 short int var1 /* : Bool */;
4709 short int var2 /* : Bool */;
4710 val* var_other /* var other: nullable Object */;
4711 short int var4 /* : Bool */;
4712 short int var5 /* : Bool */;
4713 short int var6 /* : Bool */;
4714 var_node = p0;
4715 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_node; /* _n_annotations on <self:AType> */
4716 var = NULL;
4717 if (var_node == NULL) {
4718 var1 = 0; /* is null */
4719 } else {
4720 var1 = 1; /* arg is null and recv is not */
4721 }
4722 if (0) {
4723 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AAnnotations> */
4724 var_other = var;
4725 {
4726 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AAnnotations(AAnnotations)>*/;
4727 var4 = var5;
4728 }
4729 var6 = !var4;
4730 var2 = var6;
4731 goto RET_LABEL3;
4732 RET_LABEL3:(void)0;
4733 }
4734 var1 = var2;
4735 }
4736 if (var1){
4737 {
4738 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AAnnotations(AAnnotations)> */
4739 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AAnnotations(AAnnotations)> */
4740 RET_LABEL7:(void)0;
4741 }
4742 }
4743 } else {
4744 }
4745 RET_LABEL:;
4746 }
4747 /* method parser_prod#AType#n_annotations= for (self: Object, nullable AAnnotations) */
4748 void VIRTUAL_parser_prod__AType__n_annotations_61d(val* self, val* p0) {
4749 parser_prod__AType__n_annotations_61d(self, p0); /* Direct call parser_prod#AType#n_annotations= on <self:Object(AType)>*/
4750 RET_LABEL:;
4751 }
4752 /* method parser_prod#AType#visit_all for (self: AType, Visitor) */
4753 void parser_prod__AType__visit_all(val* self, val* p0) {
4754 val* var_v /* var v: Visitor */;
4755 val* var /* : nullable TKwnullable */;
4756 val* var1 /* : TClassid */;
4757 val* var2 /* : ANodes[AType] */;
4758 val* var4 /* : ANodes[AType] */;
4759 val* var5 /* : nullable AAnnotations */;
4760 var_v = p0;
4761 var = self->attrs[COLOR_parser_nodes__AType___n_kwnullable].val; /* _n_kwnullable on <self:AType> */
4762 {
4763 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4764 }
4765 var1 = self->attrs[COLOR_parser_nodes__AType___n_id].val; /* _n_id on <self:AType> */
4766 if (unlikely(var1 == NULL)) {
4767 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
4768 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2074);
4769 show_backtrace(1);
4770 }
4771 {
4772 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4773 }
4774 {
4775 { /* Inline parser_nodes#AType#n_types (self) on <self:AType> */
4776 var4 = self->attrs[COLOR_parser_nodes__AType___n_types].val; /* _n_types on <self:AType> */
4777 if (unlikely(var4 == NULL)) {
4778 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_types");
4779 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1300);
4780 show_backtrace(1);
4781 }
4782 var2 = var4;
4783 RET_LABEL3:(void)0;
4784 }
4785 }
4786 {
4787 parser_nodes__ANodes__visit_all(var2, var_v); /* Direct call parser_nodes#ANodes#visit_all on <var2:ANodes[AType]>*/
4788 }
4789 var5 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AType> */
4790 {
4791 parser_nodes__Visitor__enter_visit(var_v, var5); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4792 }
4793 RET_LABEL:;
4794 }
4795 /* method parser_prod#AType#visit_all for (self: Object, Visitor) */
4796 void VIRTUAL_parser_prod__AType__visit_all(val* self, val* p0) {
4797 parser_prod__AType__visit_all(self, p0); /* Direct call parser_prod#AType#visit_all on <self:Object(AType)>*/
4798 RET_LABEL:;
4799 }
4800 /* method parser_prod#ALabel#init_alabel for (self: ALabel, nullable TKwlabel, nullable TId) */
4801 void parser_prod__ALabel__init_alabel(val* self, val* p0, val* p1) {
4802 val* var_n_kwlabel /* var n_kwlabel: nullable TKwlabel */;
4803 val* var_n_id /* var n_id: nullable TId */;
4804 val* var /* : null */;
4805 short int var2 /* : Bool */;
4806 short int var3 /* : Bool */;
4807 val* var_other /* var other: nullable Object */;
4808 short int var5 /* : Bool */;
4809 short int var6 /* : Bool */;
4810 short int var7 /* : Bool */;
4811 var_n_kwlabel = p0;
4812 var_n_id = p1;
4813 if (unlikely(var_n_kwlabel == NULL)) {
4814 PRINT_ERROR("Runtime error: %s", "Cast failed");
4815 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2085);
4816 show_backtrace(1);
4817 }
4818 self->attrs[COLOR_parser_nodes__ALabel___n_kwlabel].val = var_n_kwlabel; /* _n_kwlabel on <self:ALabel> */
4819 if (var_n_kwlabel == NULL) {
4820 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4821 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2086);
4822 show_backtrace(1);
4823 } else {
4824 { /* Inline parser_nodes#ANode#parent= (var_n_kwlabel,self) on <var_n_kwlabel:nullable TKwlabel> */
4825 if (unlikely(var_n_kwlabel == NULL)) {
4826 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4827 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
4828 show_backtrace(1);
4829 }
4830 var_n_kwlabel->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwlabel:nullable TKwlabel> */
4831 RET_LABEL1:(void)0;
4832 }
4833 }
4834 self->attrs[COLOR_parser_nodes__ALabel___n_id].val = var_n_id; /* _n_id on <self:ALabel> */
4835 var = NULL;
4836 if (var_n_id == NULL) {
4837 var2 = 0; /* is null */
4838 } else {
4839 var2 = 1; /* arg is null and recv is not */
4840 }
4841 if (0) {
4842 { /* Inline kernel#Object#!= (var_n_id,var) on <var_n_id:nullable TId> */
4843 var_other = var;
4844 {
4845 var6 = ((short int (*)(val*, val*))(var_n_id->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_id, var_other) /* == on <var_n_id:nullable TId(TId)>*/;
4846 var5 = var6;
4847 }
4848 var7 = !var5;
4849 var3 = var7;
4850 goto RET_LABEL4;
4851 RET_LABEL4:(void)0;
4852 }
4853 var2 = var3;
4854 }
4855 if (var2){
4856 {
4857 { /* Inline parser_nodes#ANode#parent= (var_n_id,self) on <var_n_id:nullable TId(TId)> */
4858 var_n_id->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_id:nullable TId(TId)> */
4859 RET_LABEL8:(void)0;
4860 }
4861 }
4862 } else {
4863 }
4864 RET_LABEL:;
4865 }
4866 /* method parser_prod#ALabel#init_alabel for (self: Object, nullable TKwlabel, nullable TId) */
4867 void VIRTUAL_parser_prod__ALabel__init_alabel(val* self, val* p0, val* p1) {
4868 parser_prod__ALabel__init_alabel(self, p0, p1); /* Direct call parser_prod#ALabel#init_alabel on <self:Object(ALabel)>*/
4869 RET_LABEL:;
4870 }
4871 /* method parser_prod#ALabel#replace_child for (self: ALabel, ANode, nullable ANode) */
4872 void parser_prod__ALabel__replace_child(val* self, val* p0, val* p1) {
4873 val* var_old_child /* var old_child: ANode */;
4874 val* var_new_child /* var new_child: nullable ANode */;
4875 val* var /* : TKwlabel */;
4876 short int var1 /* : Bool */;
4877 short int var2 /* : Bool */;
4878 val* var_other /* var other: nullable Object */;
4879 short int var4 /* : Bool */;
4880 short int var6 /* : Bool */;
4881 short int var7 /* : Bool */;
4882 int cltype;
4883 int idtype;
4884 const char* var_class_name;
4885 val* var8 /* : nullable TId */;
4886 short int var9 /* : Bool */;
4887 short int var10 /* : Bool */;
4888 short int var12 /* : Bool */;
4889 short int var14 /* : Bool */;
4890 short int var15 /* : Bool */;
4891 int cltype16;
4892 int idtype17;
4893 const char* var_class_name18;
4894 var_old_child = p0;
4895 var_new_child = p1;
4896 var = self->attrs[COLOR_parser_nodes__ALabel___n_kwlabel].val; /* _n_kwlabel on <self:ALabel> */
4897 if (unlikely(var == NULL)) {
4898 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwlabel");
4899 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2093);
4900 show_backtrace(1);
4901 }
4902 {
4903 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwlabel> */
4904 var_other = var_old_child;
4905 {
4906 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TKwlabel> */
4907 var6 = var == var_other;
4908 var4 = var6;
4909 goto RET_LABEL5;
4910 RET_LABEL5:(void)0;
4911 }
4912 }
4913 var2 = var4;
4914 goto RET_LABEL3;
4915 RET_LABEL3:(void)0;
4916 }
4917 var1 = var2;
4918 }
4919 if (var1){
4920 /* <var_new_child:nullable ANode> isa TKwlabel */
4921 cltype = type_parser_nodes__TKwlabel.color;
4922 idtype = type_parser_nodes__TKwlabel.id;
4923 if(var_new_child == NULL) {
4924 var7 = 0;
4925 } else {
4926 if(cltype >= var_new_child->type->table_size) {
4927 var7 = 0;
4928 } else {
4929 var7 = var_new_child->type->type_table[cltype] == idtype;
4930 }
4931 }
4932 if (unlikely(!var7)) {
4933 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
4934 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwlabel", var_class_name);
4935 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2094);
4936 show_backtrace(1);
4937 }
4938 {
4939 parser_prod__ALabel__n_kwlabel_61d(self, var_new_child); /* Direct call parser_prod#ALabel#n_kwlabel= on <self:ALabel>*/
4940 }
4941 goto RET_LABEL;
4942 } else {
4943 }
4944 var8 = self->attrs[COLOR_parser_nodes__ALabel___n_id].val; /* _n_id on <self:ALabel> */
4945 if (var8 == NULL) {
4946 var9 = 0; /* <var_old_child:ANode> cannot be null */
4947 } else {
4948 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:nullable TId> */
4949 var_other = var_old_child;
4950 {
4951 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:nullable TId(TId)> */
4952 var14 = var8 == var_other;
4953 var12 = var14;
4954 goto RET_LABEL13;
4955 RET_LABEL13:(void)0;
4956 }
4957 }
4958 var10 = var12;
4959 goto RET_LABEL11;
4960 RET_LABEL11:(void)0;
4961 }
4962 var9 = var10;
4963 }
4964 if (var9){
4965 /* <var_new_child:nullable ANode> isa nullable TId */
4966 cltype16 = type_nullable_parser_nodes__TId.color;
4967 idtype17 = type_nullable_parser_nodes__TId.id;
4968 if(var_new_child == NULL) {
4969 var15 = 1;
4970 } else {
4971 if(cltype16 >= var_new_child->type->table_size) {
4972 var15 = 0;
4973 } else {
4974 var15 = var_new_child->type->type_table[cltype16] == idtype17;
4975 }
4976 }
4977 if (unlikely(!var15)) {
4978 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
4979 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TId", var_class_name18);
4980 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2098);
4981 show_backtrace(1);
4982 }
4983 {
4984 parser_prod__ALabel__n_id_61d(self, var_new_child); /* Direct call parser_prod#ALabel#n_id= on <self:ALabel>*/
4985 }
4986 goto RET_LABEL;
4987 } else {
4988 }
4989 RET_LABEL:;
4990 }
4991 /* method parser_prod#ALabel#replace_child for (self: Object, ANode, nullable ANode) */
4992 void VIRTUAL_parser_prod__ALabel__replace_child(val* self, val* p0, val* p1) {
4993 parser_prod__ALabel__replace_child(self, p0, p1); /* Direct call parser_prod#ALabel#replace_child on <self:Object(ALabel)>*/
4994 RET_LABEL:;
4995 }
4996 /* method parser_prod#ALabel#n_kwlabel= for (self: ALabel, TKwlabel) */
4997 void parser_prod__ALabel__n_kwlabel_61d(val* self, val* p0) {
4998 val* var_node /* var node: TKwlabel */;
4999 var_node = p0;
5000 self->attrs[COLOR_parser_nodes__ALabel___n_kwlabel].val = var_node; /* _n_kwlabel on <self:ALabel> */
5001 {
5002 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwlabel> */
5003 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwlabel> */
5004 RET_LABEL1:(void)0;
5005 }
5006 }
5007 RET_LABEL:;
5008 }
5009 /* method parser_prod#ALabel#n_kwlabel= for (self: Object, TKwlabel) */
5010 void VIRTUAL_parser_prod__ALabel__n_kwlabel_61d(val* self, val* p0) {
5011 parser_prod__ALabel__n_kwlabel_61d(self, p0); /* Direct call parser_prod#ALabel#n_kwlabel= on <self:Object(ALabel)>*/
5012 RET_LABEL:;
5013 }
5014 /* method parser_prod#ALabel#n_id= for (self: ALabel, nullable TId) */
5015 void parser_prod__ALabel__n_id_61d(val* self, val* p0) {
5016 val* var_node /* var node: nullable TId */;
5017 val* var /* : null */;
5018 short int var1 /* : Bool */;
5019 short int var2 /* : Bool */;
5020 val* var_other /* var other: nullable Object */;
5021 short int var4 /* : Bool */;
5022 short int var5 /* : Bool */;
5023 short int var6 /* : Bool */;
5024 var_node = p0;
5025 self->attrs[COLOR_parser_nodes__ALabel___n_id].val = var_node; /* _n_id on <self:ALabel> */
5026 var = NULL;
5027 if (var_node == NULL) {
5028 var1 = 0; /* is null */
5029 } else {
5030 var1 = 1; /* arg is null and recv is not */
5031 }
5032 if (0) {
5033 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable TId> */
5034 var_other = var;
5035 {
5036 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable TId(TId)>*/;
5037 var4 = var5;
5038 }
5039 var6 = !var4;
5040 var2 = var6;
5041 goto RET_LABEL3;
5042 RET_LABEL3:(void)0;
5043 }
5044 var1 = var2;
5045 }
5046 if (var1){
5047 {
5048 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TId(TId)> */
5049 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TId(TId)> */
5050 RET_LABEL7:(void)0;
5051 }
5052 }
5053 } else {
5054 }
5055 RET_LABEL:;
5056 }
5057 /* method parser_prod#ALabel#n_id= for (self: Object, nullable TId) */
5058 void VIRTUAL_parser_prod__ALabel__n_id_61d(val* self, val* p0) {
5059 parser_prod__ALabel__n_id_61d(self, p0); /* Direct call parser_prod#ALabel#n_id= on <self:Object(ALabel)>*/
5060 RET_LABEL:;
5061 }
5062 /* method parser_prod#ALabel#visit_all for (self: ALabel, Visitor) */
5063 void parser_prod__ALabel__visit_all(val* self, val* p0) {
5064 val* var_v /* var v: Visitor */;
5065 val* var /* : TKwlabel */;
5066 val* var1 /* : nullable TId */;
5067 var_v = p0;
5068 var = self->attrs[COLOR_parser_nodes__ALabel___n_kwlabel].val; /* _n_kwlabel on <self:ALabel> */
5069 if (unlikely(var == NULL)) {
5070 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwlabel");
5071 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2117);
5072 show_backtrace(1);
5073 }
5074 {
5075 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
5076 }
5077 var1 = self->attrs[COLOR_parser_nodes__ALabel___n_id].val; /* _n_id on <self:ALabel> */
5078 {
5079 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
5080 }
5081 RET_LABEL:;
5082 }
5083 /* method parser_prod#ALabel#visit_all for (self: Object, Visitor) */
5084 void VIRTUAL_parser_prod__ALabel__visit_all(val* self, val* p0) {
5085 parser_prod__ALabel__visit_all(self, p0); /* Direct call parser_prod#ALabel#visit_all on <self:Object(ALabel)>*/
5086 RET_LABEL:;
5087 }
5088 /* method parser_prod#ABlockExpr#init_ablockexpr for (self: ABlockExpr, Collection[Object], nullable TKwend) */
5089 void parser_prod__ABlockExpr__init_ablockexpr(val* self, val* p0, val* p1) {
5090 val* var_n_expr /* var n_expr: Collection[Object] */;
5091 val* var_n_kwend /* var n_kwend: nullable TKwend */;
5092 val* var /* : ANodes[AExpr] */;
5093 val* var2 /* : ANodes[AExpr] */;
5094 val* var3 /* : null */;
5095 short int var4 /* : Bool */;
5096 short int var5 /* : Bool */;
5097 val* var_other /* var other: nullable Object */;
5098 short int var7 /* : Bool */;
5099 short int var8 /* : Bool */;
5100 short int var9 /* : Bool */;
5101 var_n_expr = p0;
5102 var_n_kwend = p1;
5103 {
5104 { /* Inline parser_nodes#ABlockExpr#n_expr (self) on <self:ABlockExpr> */
5105 var2 = self->attrs[COLOR_parser_nodes__ABlockExpr___n_expr].val; /* _n_expr on <self:ABlockExpr> */
5106 if (unlikely(var2 == NULL)) {
5107 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
5108 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1321);
5109 show_backtrace(1);
5110 }
5111 var = var2;
5112 RET_LABEL1:(void)0;
5113 }
5114 }
5115 {
5116 parser_nodes__ANodes__unsafe_add_all(var, var_n_expr); /* Direct call parser_nodes#ANodes#unsafe_add_all on <var:ANodes[AExpr]>*/
5117 }
5118 self->attrs[COLOR_parser_nodes__ABlockExpr___n_kwend].val = var_n_kwend; /* _n_kwend on <self:ABlockExpr> */
5119 var3 = NULL;
5120 if (var_n_kwend == NULL) {
5121 var4 = 0; /* is null */
5122 } else {
5123 var4 = 1; /* arg is null and recv is not */
5124 }
5125 if (0) {
5126 { /* Inline kernel#Object#!= (var_n_kwend,var3) on <var_n_kwend:nullable TKwend> */
5127 var_other = var3;
5128 {
5129 var8 = ((short int (*)(val*, val*))(var_n_kwend->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_kwend, var_other) /* == on <var_n_kwend:nullable TKwend(TKwend)>*/;
5130 var7 = var8;
5131 }
5132 var9 = !var7;
5133 var5 = var9;
5134 goto RET_LABEL6;
5135 RET_LABEL6:(void)0;
5136 }
5137 var4 = var5;
5138 }
5139 if (var4){
5140 {
5141 { /* Inline parser_nodes#ANode#parent= (var_n_kwend,self) on <var_n_kwend:nullable TKwend(TKwend)> */
5142 var_n_kwend->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwend:nullable TKwend(TKwend)> */
5143 RET_LABEL10:(void)0;
5144 }
5145 }
5146 } else {
5147 }
5148 RET_LABEL:;
5149 }
5150 /* method parser_prod#ABlockExpr#init_ablockexpr for (self: Object, Collection[Object], nullable TKwend) */
5151 void VIRTUAL_parser_prod__ABlockExpr__init_ablockexpr(val* self, val* p0, val* p1) {
5152 parser_prod__ABlockExpr__init_ablockexpr(self, p0, p1); /* Direct call parser_prod#ABlockExpr#init_ablockexpr on <self:Object(ABlockExpr)>*/
5153 RET_LABEL:;
5154 }
5155 /* method parser_prod#ABlockExpr#replace_child for (self: ABlockExpr, ANode, nullable ANode) */
5156 void parser_prod__ABlockExpr__replace_child(val* self, val* p0, val* p1) {
5157 val* var_old_child /* var old_child: ANode */;
5158 val* var_new_child /* var new_child: nullable ANode */;
5159 val* var /* : ANodes[AExpr] */;
5160 val* var2 /* : ANodes[AExpr] */;
5161 short int var3 /* : Bool */;
5162 val* var4 /* : nullable TKwend */;
5163 short int var5 /* : Bool */;
5164 short int var6 /* : Bool */;
5165 val* var_other /* var other: nullable Object */;
5166 short int var8 /* : Bool */;
5167 short int var10 /* : Bool */;
5168 short int var11 /* : Bool */;
5169 int cltype;
5170 int idtype;
5171 const char* var_class_name;
5172 var_old_child = p0;
5173 var_new_child = p1;
5174 {
5175 { /* Inline parser_nodes#ABlockExpr#n_expr (self) on <self:ABlockExpr> */
5176 var2 = self->attrs[COLOR_parser_nodes__ABlockExpr___n_expr].val; /* _n_expr on <self:ABlockExpr> */
5177 if (unlikely(var2 == NULL)) {
5178 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
5179 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1321);
5180 show_backtrace(1);
5181 }
5182 var = var2;
5183 RET_LABEL1:(void)0;
5184 }
5185 }
5186 {
5187 var3 = parser_nodes__ANodes__replace_child(var, var_old_child, var_new_child);
5188 }
5189 if (var3){
5190 goto RET_LABEL;
5191 } else {
5192 }
5193 var4 = self->attrs[COLOR_parser_nodes__ABlockExpr___n_kwend].val; /* _n_kwend on <self:ABlockExpr> */
5194 if (var4 == NULL) {
5195 var5 = 0; /* <var_old_child:ANode> cannot be null */
5196 } else {
5197 { /* Inline kernel#Object#== (var4,var_old_child) on <var4:nullable TKwend> */
5198 var_other = var_old_child;
5199 {
5200 { /* Inline kernel#Object#is_same_instance (var4,var_other) on <var4:nullable TKwend(TKwend)> */
5201 var10 = var4 == var_other;
5202 var8 = var10;
5203 goto RET_LABEL9;
5204 RET_LABEL9:(void)0;
5205 }
5206 }
5207 var6 = var8;
5208 goto RET_LABEL7;
5209 RET_LABEL7:(void)0;
5210 }
5211 var5 = var6;
5212 }
5213 if (var5){
5214 /* <var_new_child:nullable ANode> isa nullable TKwend */
5215 cltype = type_nullable_parser_nodes__TKwend.color;
5216 idtype = type_nullable_parser_nodes__TKwend.id;
5217 if(var_new_child == NULL) {
5218 var11 = 1;
5219 } else {
5220 if(cltype >= var_new_child->type->table_size) {
5221 var11 = 0;
5222 } else {
5223 var11 = var_new_child->type->type_table[cltype] == idtype;
5224 }
5225 }
5226 if (unlikely(!var11)) {
5227 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
5228 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TKwend", var_class_name);
5229 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2136);
5230 show_backtrace(1);
5231 }
5232 {
5233 parser_prod__ABlockExpr__n_kwend_61d(self, var_new_child); /* Direct call parser_prod#ABlockExpr#n_kwend= on <self:ABlockExpr>*/
5234 }
5235 goto RET_LABEL;
5236 } else {
5237 }
5238 RET_LABEL:;
5239 }
5240 /* method parser_prod#ABlockExpr#replace_child for (self: Object, ANode, nullable ANode) */
5241 void VIRTUAL_parser_prod__ABlockExpr__replace_child(val* self, val* p0, val* p1) {
5242 parser_prod__ABlockExpr__replace_child(self, p0, p1); /* Direct call parser_prod#ABlockExpr#replace_child on <self:Object(ABlockExpr)>*/
5243 RET_LABEL:;
5244 }
5245 /* method parser_prod#ABlockExpr#n_kwend= for (self: ABlockExpr, nullable TKwend) */
5246 void parser_prod__ABlockExpr__n_kwend_61d(val* self, val* p0) {
5247 val* var_node /* var node: nullable TKwend */;
5248 val* var /* : null */;
5249 short int var1 /* : Bool */;
5250 short int var2 /* : Bool */;
5251 val* var_other /* var other: nullable Object */;
5252 short int var4 /* : Bool */;
5253 short int var5 /* : Bool */;
5254 short int var6 /* : Bool */;
5255 var_node = p0;
5256 self->attrs[COLOR_parser_nodes__ABlockExpr___n_kwend].val = var_node; /* _n_kwend on <self:ABlockExpr> */
5257 var = NULL;
5258 if (var_node == NULL) {
5259 var1 = 0; /* is null */
5260 } else {
5261 var1 = 1; /* arg is null and recv is not */
5262 }
5263 if (0) {
5264 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable TKwend> */
5265 var_other = var;
5266 {
5267 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable TKwend(TKwend)>*/;
5268 var4 = var5;
5269 }
5270 var6 = !var4;
5271 var2 = var6;
5272 goto RET_LABEL3;
5273 RET_LABEL3:(void)0;
5274 }
5275 var1 = var2;
5276 }
5277 if (var1){
5278 {
5279 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TKwend(TKwend)> */
5280 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TKwend(TKwend)> */
5281 RET_LABEL7:(void)0;
5282 }
5283 }
5284 } else {
5285 }
5286 RET_LABEL:;
5287 }
5288 /* method parser_prod#ABlockExpr#n_kwend= for (self: Object, nullable TKwend) */
5289 void VIRTUAL_parser_prod__ABlockExpr__n_kwend_61d(val* self, val* p0) {
5290 parser_prod__ABlockExpr__n_kwend_61d(self, p0); /* Direct call parser_prod#ABlockExpr#n_kwend= on <self:Object(ABlockExpr)>*/
5291 RET_LABEL:;
5292 }
5293 /* method parser_prod#ABlockExpr#visit_all for (self: ABlockExpr, Visitor) */
5294 void parser_prod__ABlockExpr__visit_all(val* self, val* p0) {
5295 val* var_v /* var v: Visitor */;
5296 val* var /* : ANodes[AExpr] */;
5297 val* var2 /* : ANodes[AExpr] */;
5298 val* var3 /* : nullable TKwend */;
5299 var_v = p0;
5300 {
5301 { /* Inline parser_nodes#ABlockExpr#n_expr (self) on <self:ABlockExpr> */
5302 var2 = self->attrs[COLOR_parser_nodes__ABlockExpr___n_expr].val; /* _n_expr on <self:ABlockExpr> */
5303 if (unlikely(var2 == NULL)) {
5304 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
5305 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 1321);
5306 show_backtrace(1);
5307 }
5308 var = var2;
5309 RET_LABEL1:(void)0;
5310 }
5311 }
5312 {
5313 parser_nodes__ANodes__visit_all(var, var_v); /* Direct call parser_nodes#ANodes#visit_all on <var:ANodes[AExpr]>*/
5314 }
5315 var3 = self->attrs[COLOR_parser_nodes__ABlockExpr___n_kwend].val; /* _n_kwend on <self:ABlockExpr> */
5316 {
5317 parser_nodes__Visitor__enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
5318 }
5319 RET_LABEL:;
5320 }
5321 /* method parser_prod#ABlockExpr#visit_all for (self: Object, Visitor) */
5322 void VIRTUAL_parser_prod__ABlockExpr__visit_all(val* self, val* p0) {
5323 parser_prod__ABlockExpr__visit_all(self, p0); /* Direct call parser_prod#ABlockExpr#visit_all on <self:Object(ABlockExpr)>*/
5324 RET_LABEL:;
5325 }
5326 /* method parser_prod#AVardeclExpr#init_avardeclexpr for (self: AVardeclExpr, nullable TKwvar, nullable TId, nullable AType, nullable TAssign, nullable AExpr, nullable AAnnotations) */
5327 void parser_prod__AVardeclExpr__init_avardeclexpr(val* self, val* p0, val* p1, val* p2, val* p3, val* p4, val* p5) {
5328 val* var_n_kwvar /* var n_kwvar: nullable TKwvar */;
5329 val* var_n_id /* var n_id: nullable TId */;
5330 val* var_n_type /* var n_type: nullable AType */;
5331 val* var_n_assign /* var n_assign: nullable TAssign */;
5332 val* var_n_expr /* var n_expr: nullable AExpr */;
5333 val* var_n_annotations /* var n_annotations: nullable AAnnotations */;
5334 val* var /* : null */;
5335 short int var3 /* : Bool */;
5336 short int var4 /* : Bool */;
5337 val* var_other /* var other: nullable Object */;
5338 short int var6 /* : Bool */;
5339 short int var7 /* : Bool */;
5340 short int var8 /* : Bool */;
5341 val* var10 /* : null */;
5342 short int var11 /* : Bool */;
5343 short int var12 /* : Bool */;
5344 short int var14 /* : Bool */;
5345 short int var15 /* : Bool */;
5346 short int var16 /* : Bool */;
5347 val* var18 /* : null */;
5348 short int var19 /* : Bool */;
5349 short int var20 /* : Bool */;
5350 short int var22 /* : Bool */;
5351 short int var23 /* : Bool */;
5352 short int var24 /* : Bool */;
5353 val* var26 /* : null */;
5354 short int var27 /* : Bool */;
5355 short int var28 /* : Bool */;
5356 short int var30 /* : Bool */;
5357 short int var31 /* : Bool */;
5358 short int var32 /* : Bool */;
5359 var_n_kwvar = p0;
5360 var_n_id = p1;
5361 var_n_type = p2;
5362 var_n_assign = p3;
5363 var_n_expr = p4;
5364 var_n_annotations = p5;
5365 if (unlikely(var_n_kwvar == NULL)) {
5366 PRINT_ERROR("Runtime error: %s", "Cast failed");
5367 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2164);
5368 show_backtrace(1);
5369 }
5370 self->attrs[COLOR_parser_nodes__AVardeclExpr___n_kwvar].val = var_n_kwvar; /* _n_kwvar on <self:AVardeclExpr> */
5371 if (var_n_kwvar == NULL) {
5372 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5373 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2165);
5374 show_backtrace(1);
5375 } else {
5376 { /* Inline parser_nodes#ANode#parent= (var_n_kwvar,self) on <var_n_kwvar:nullable TKwvar> */
5377 if (unlikely(var_n_kwvar == NULL)) {
5378 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5379 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
5380 show_backtrace(1);
5381 }
5382 var_n_kwvar->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwvar:nullable TKwvar> */
5383 RET_LABEL1:(void)0;
5384 }
5385 }
5386 if (unlikely(var_n_id == NULL)) {
5387 PRINT_ERROR("Runtime error: %s", "Cast failed");
5388 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2166);
5389 show_backtrace(1);
5390 }
5391 self->attrs[COLOR_parser_nodes__AVardeclExpr___n_id].val = var_n_id; /* _n_id on <self:AVardeclExpr> */
5392 if (var_n_id == NULL) {
5393 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5394 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2167);
5395 show_backtrace(1);
5396 } else {
5397 { /* Inline parser_nodes#ANode#parent= (var_n_id,self) on <var_n_id:nullable TId> */
5398 if (unlikely(var_n_id == NULL)) {
5399 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5400 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
5401 show_backtrace(1);
5402 }
5403 var_n_id->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_id:nullable TId> */
5404 RET_LABEL2:(void)0;
5405 }
5406 }
5407 self->attrs[COLOR_parser_nodes__AVardeclExpr___n_type].val = var_n_type; /* _n_type on <self:AVardeclExpr> */
5408 var = NULL;
5409 if (var_n_type == NULL) {
5410 var3 = 0; /* is null */
5411 } else {
5412 var3 = 1; /* arg is null and recv is not */
5413 }
5414 if (0) {
5415 { /* Inline kernel#Object#!= (var_n_type,var) on <var_n_type:nullable AType> */
5416 var_other = var;
5417 {
5418 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)>*/;
5419 var6 = var7;
5420 }
5421 var8 = !var6;
5422 var4 = var8;
5423 goto RET_LABEL5;
5424 RET_LABEL5:(void)0;
5425 }
5426 var3 = var4;
5427 }
5428 if (var3){
5429 {
5430 { /* Inline parser_nodes#ANode#parent= (var_n_type,self) on <var_n_type:nullable AType(AType)> */
5431 var_n_type->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_type:nullable AType(AType)> */
5432 RET_LABEL9:(void)0;
5433 }
5434 }
5435 } else {
5436 }
5437 self->attrs[COLOR_parser_nodes__AVardeclExpr___n_assign].val = var_n_assign; /* _n_assign on <self:AVardeclExpr> */
5438 var10 = NULL;
5439 if (var_n_assign == NULL) {
5440 var11 = 0; /* is null */
5441 } else {
5442 var11 = 1; /* arg is null and recv is not */
5443 }
5444 if (0) {
5445 { /* Inline kernel#Object#!= (var_n_assign,var10) on <var_n_assign:nullable TAssign> */
5446 var_other = var10;
5447 {
5448 var15 = ((short int (*)(val*, val*))(var_n_assign->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_assign, var_other) /* == on <var_n_assign:nullable TAssign(TAssign)>*/;
5449 var14 = var15;
5450 }
5451 var16 = !var14;
5452 var12 = var16;
5453 goto RET_LABEL13;
5454 RET_LABEL13:(void)0;
5455 }
5456 var11 = var12;
5457 }
5458 if (var11){
5459 {
5460 { /* Inline parser_nodes#ANode#parent= (var_n_assign,self) on <var_n_assign:nullable TAssign(TAssign)> */
5461 var_n_assign->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_assign:nullable TAssign(TAssign)> */
5462 RET_LABEL17:(void)0;
5463 }
5464 }
5465 } else {
5466 }
5467 self->attrs[COLOR_parser_nodes__AVardeclExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AVardeclExpr> */
5468 var18 = NULL;
5469 if (var_n_expr == NULL) {
5470 var19 = 0; /* is null */
5471 } else {
5472 var19 = 1; /* arg is null and recv is not */
5473 }
5474 if (0) {
5475 { /* Inline kernel#Object#!= (var_n_expr,var18) on <var_n_expr:nullable AExpr> */
5476 var_other = var18;
5477 {
5478 var23 = ((short int (*)(val*, val*))(var_n_expr->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_expr, var_other) /* == on <var_n_expr:nullable AExpr(AExpr)>*/;
5479 var22 = var23;
5480 }
5481 var24 = !var22;
5482 var20 = var24;
5483 goto RET_LABEL21;
5484 RET_LABEL21:(void)0;
5485 }
5486 var19 = var20;
5487 }
5488 if (var19){
5489 {
5490 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr(AExpr)> */
5491 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr(AExpr)> */
5492 RET_LABEL25:(void)0;
5493 }
5494 }
5495 } else {
5496 }
5497 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:AVardeclExpr> */
5498 var26 = NULL;
5499 if (var_n_annotations == NULL) {
5500 var27 = 0; /* is null */
5501 } else {
5502 var27 = 1; /* arg is null and recv is not */
5503 }
5504 if (0) {
5505 { /* Inline kernel#Object#!= (var_n_annotations,var26) on <var_n_annotations:nullable AAnnotations> */
5506 var_other = var26;
5507 {
5508 var31 = ((short int (*)(val*, val*))(var_n_annotations->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_annotations, var_other) /* == on <var_n_annotations:nullable AAnnotations(AAnnotations)>*/;
5509 var30 = var31;
5510 }
5511 var32 = !var30;
5512 var28 = var32;
5513 goto RET_LABEL29;
5514 RET_LABEL29:(void)0;
5515 }
5516 var27 = var28;
5517 }
5518 if (var27){
5519 {
5520 { /* Inline parser_nodes#ANode#parent= (var_n_annotations,self) on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
5521 var_n_annotations->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
5522 RET_LABEL33:(void)0;
5523 }
5524 }
5525 } else {
5526 }
5527 RET_LABEL:;
5528 }
5529 /* method parser_prod#AVardeclExpr#init_avardeclexpr for (self: Object, nullable TKwvar, nullable TId, nullable AType, nullable TAssign, nullable AExpr, nullable AAnnotations) */
5530 void VIRTUAL_parser_prod__AVardeclExpr__init_avardeclexpr(val* self, val* p0, val* p1, val* p2, val* p3, val* p4, val* p5) {
5531 parser_prod__AVardeclExpr__init_avardeclexpr(self, p0, p1, p2, p3, p4, p5); /* Direct call parser_prod#AVardeclExpr#init_avardeclexpr on <self:Object(AVardeclExpr)>*/
5532 RET_LABEL:;
5533 }
5534 /* method parser_prod#AVardeclExpr#replace_child for (self: AVardeclExpr, ANode, nullable ANode) */
5535 void parser_prod__AVardeclExpr__replace_child(val* self, val* p0, val* p1) {
5536 val* var_old_child /* var old_child: ANode */;
5537 val* var_new_child /* var new_child: nullable ANode */;
5538 val* var /* : TKwvar */;
5539 short int var1 /* : Bool */;
5540 short int var2 /* : Bool */;
5541 val* var_other /* var other: nullable Object */;
5542 short int var4 /* : Bool */;
5543 short int var6 /* : Bool */;
5544 short int var7 /* : Bool */;
5545 int cltype;
5546 int idtype;
5547 const char* var_class_name;
5548 val* var8 /* : TId */;
5549 short int var9 /* : Bool */;
5550 short int var10 /* : Bool */;
5551 short int var12 /* : Bool */;
5552 short int var14 /* : Bool */;
5553 short int var15 /* : Bool */;
5554 int cltype16;
5555 int idtype17;
5556 const char* var_class_name18;
5557 val* var19 /* : nullable AType */;
5558 short int var20 /* : Bool */;
5559 short int var21 /* : Bool */;
5560 short int var23 /* : Bool */;
5561 short int var25 /* : Bool */;
5562 short int var26 /* : Bool */;
5563 int cltype27;
5564 int idtype28;
5565 const char* var_class_name29;
5566 val* var30 /* : nullable TAssign */;
5567 short int var31 /* : Bool */;
5568 short int var32 /* : Bool */;
5569 short int var34 /* : Bool */;
5570 short int var36 /* : Bool */;
5571 short int var37 /* : Bool */;
5572 int cltype38;
5573 int idtype39;
5574 const char* var_class_name40;
5575 val* var41 /* : nullable AExpr */;
5576 short int var42 /* : Bool */;
5577 short int var43 /* : Bool */;
5578 short int var45 /* : Bool */;
5579 short int var47 /* : Bool */;
5580 short int var48 /* : Bool */;
5581 int cltype49;
5582 int idtype50;
5583 const char* var_class_name51;
5584 val* var52 /* : nullable AAnnotations */;
5585 short int var53 /* : Bool */;
5586 short int var54 /* : Bool */;
5587 short int var56 /* : Bool */;
5588 short int var58 /* : Bool */;
5589 short int var59 /* : Bool */;
5590 int cltype60;
5591 int idtype61;
5592 const char* var_class_name62;
5593 var_old_child = p0;
5594 var_new_child = p1;
5595 var = self->attrs[COLOR_parser_nodes__AVardeclExpr___n_kwvar].val; /* _n_kwvar on <self:AVardeclExpr> */
5596 if (unlikely(var == NULL)) {
5597 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwvar");
5598 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2180);
5599 show_backtrace(1);
5600 }
5601 {
5602 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwvar> */
5603 var_other = var_old_child;
5604 {
5605 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TKwvar> */
5606 var6 = var == var_other;
5607 var4 = var6;
5608 goto RET_LABEL5;
5609 RET_LABEL5:(void)0;
5610 }
5611 }
5612 var2 = var4;
5613 goto RET_LABEL3;
5614 RET_LABEL3:(void)0;
5615 }
5616 var1 = var2;
5617 }
5618 if (var1){
5619 /* <var_new_child:nullable ANode> isa TKwvar */
5620 cltype = type_parser_nodes__TKwvar.color;
5621 idtype = type_parser_nodes__TKwvar.id;
5622 if(var_new_child == NULL) {
5623 var7 = 0;
5624 } else {
5625 if(cltype >= var_new_child->type->table_size) {
5626 var7 = 0;
5627 } else {
5628 var7 = var_new_child->type->type_table[cltype] == idtype;
5629 }
5630 }
5631 if (unlikely(!var7)) {
5632 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
5633 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwvar", var_class_name);
5634 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2181);
5635 show_backtrace(1);
5636 }
5637 {
5638 parser_prod__AVardeclExpr__n_kwvar_61d(self, var_new_child); /* Direct call parser_prod#AVardeclExpr#n_kwvar= on <self:AVardeclExpr>*/
5639 }
5640 goto RET_LABEL;
5641 } else {
5642 }
5643 var8 = self->attrs[COLOR_parser_nodes__AVardeclExpr___n_id].val; /* _n_id on <self:AVardeclExpr> */
5644 if (unlikely(var8 == NULL)) {
5645 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
5646 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2184);
5647 show_backtrace(1);
5648 }
5649 {
5650 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:TId> */
5651 var_other = var_old_child;
5652 {
5653 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:TId> */
5654 var14 = var8 == var_other;
5655 var12 = var14;
5656 goto RET_LABEL13;
5657 RET_LABEL13:(void)0;
5658 }
5659 }
5660 var10 = var12;
5661 goto RET_LABEL11;
5662 RET_LABEL11:(void)0;
5663 }
5664 var9 = var10;
5665 }
5666 if (var9){
5667 /* <var_new_child:nullable ANode> isa TId */
5668 cltype16 = type_parser_nodes__TId.color;
5669 idtype17 = type_parser_nodes__TId.id;
5670 if(var_new_child == NULL) {
5671 var15 = 0;
5672 } else {
5673 if(cltype16 >= var_new_child->type->table_size) {
5674 var15 = 0;
5675 } else {
5676 var15 = var_new_child->type->type_table[cltype16] == idtype17;
5677 }
5678 }
5679 if (unlikely(!var15)) {
5680 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
5681 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TId", var_class_name18);
5682 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2185);
5683 show_backtrace(1);
5684 }
5685 {
5686 parser_prod__AVardeclExpr__n_id_61d(self, var_new_child); /* Direct call parser_prod#AVardeclExpr#n_id= on <self:AVardeclExpr>*/
5687 }
5688 goto RET_LABEL;
5689 } else {
5690 }
5691 var19 = self->attrs[COLOR_parser_nodes__AVardeclExpr___n_type].val; /* _n_type on <self:AVardeclExpr> */
5692 if (var19 == NULL) {
5693 var20 = 0; /* <var_old_child:ANode> cannot be null */
5694 } else {
5695 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:nullable AType> */
5696 var_other = var_old_child;
5697 {
5698 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:nullable AType(AType)> */
5699 var25 = var19 == var_other;
5700 var23 = var25;
5701 goto RET_LABEL24;
5702 RET_LABEL24:(void)0;
5703 }
5704 }
5705 var21 = var23;
5706 goto RET_LABEL22;
5707 RET_LABEL22:(void)0;
5708 }
5709 var20 = var21;
5710 }
5711 if (var20){
5712 /* <var_new_child:nullable ANode> isa nullable AType */
5713 cltype27 = type_nullable_parser_nodes__AType.color;
5714 idtype28 = type_nullable_parser_nodes__AType.id;
5715 if(var_new_child == NULL) {
5716 var26 = 1;
5717 } else {
5718 if(cltype27 >= var_new_child->type->table_size) {
5719 var26 = 0;
5720 } else {
5721 var26 = var_new_child->type->type_table[cltype27] == idtype28;
5722 }
5723 }
5724 if (unlikely(!var26)) {
5725 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
5726 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AType", var_class_name29);
5727 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2189);
5728 show_backtrace(1);
5729 }
5730 {
5731 parser_prod__AVardeclExpr__n_type_61d(self, var_new_child); /* Direct call parser_prod#AVardeclExpr#n_type= on <self:AVardeclExpr>*/
5732 }
5733 goto RET_LABEL;
5734 } else {
5735 }
5736 var30 = self->attrs[COLOR_parser_nodes__AVardeclExpr___n_assign].val; /* _n_assign on <self:AVardeclExpr> */
5737 if (var30 == NULL) {
5738 var31 = 0; /* <var_old_child:ANode> cannot be null */
5739 } else {
5740 { /* Inline kernel#Object#== (var30,var_old_child) on <var30:nullable TAssign> */
5741 var_other = var_old_child;
5742 {
5743 { /* Inline kernel#Object#is_same_instance (var30,var_other) on <var30:nullable TAssign(TAssign)> */
5744 var36 = var30 == var_other;
5745 var34 = var36;
5746 goto RET_LABEL35;
5747 RET_LABEL35:(void)0;
5748 }
5749 }
5750 var32 = var34;
5751 goto RET_LABEL33;
5752 RET_LABEL33:(void)0;
5753 }
5754 var31 = var32;
5755 }
5756 if (var31){
5757 /* <var_new_child:nullable ANode> isa nullable TAssign */
5758 cltype38 = type_nullable_parser_nodes__TAssign.color;
5759 idtype39 = type_nullable_parser_nodes__TAssign.id;
5760 if(var_new_child == NULL) {
5761 var37 = 1;
5762 } else {
5763 if(cltype38 >= var_new_child->type->table_size) {
5764 var37 = 0;
5765 } else {
5766 var37 = var_new_child->type->type_table[cltype38] == idtype39;
5767 }
5768 }
5769 if (unlikely(!var37)) {
5770 var_class_name40 = var_new_child == NULL ? "null" : var_new_child->type->name;
5771 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TAssign", var_class_name40);
5772 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2193);
5773 show_backtrace(1);
5774 }
5775 {
5776 parser_prod__AVardeclExpr__n_assign_61d(self, var_new_child); /* Direct call parser_prod#AVardeclExpr#n_assign= on <self:AVardeclExpr>*/
5777 }
5778 goto RET_LABEL;
5779 } else {
5780 }
5781 var41 = self->attrs[COLOR_parser_nodes__AVardeclExpr___n_expr].val; /* _n_expr on <self:AVardeclExpr> */
5782 if (var41 == NULL) {
5783 var42 = 0; /* <var_old_child:ANode> cannot be null */
5784 } else {
5785 { /* Inline kernel#Object#== (var41,var_old_child) on <var41:nullable AExpr> */
5786 var_other = var_old_child;
5787 {
5788 { /* Inline kernel#Object#is_same_instance (var41,var_other) on <var41:nullable AExpr(AExpr)> */
5789 var47 = var41 == var_other;
5790 var45 = var47;
5791 goto RET_LABEL46;
5792 RET_LABEL46:(void)0;
5793 }
5794 }
5795 var43 = var45;
5796 goto RET_LABEL44;
5797 RET_LABEL44:(void)0;
5798 }
5799 var42 = var43;
5800 }
5801 if (var42){
5802 /* <var_new_child:nullable ANode> isa nullable AExpr */
5803 cltype49 = type_nullable_parser_nodes__AExpr.color;
5804 idtype50 = type_nullable_parser_nodes__AExpr.id;
5805 if(var_new_child == NULL) {
5806 var48 = 1;
5807 } else {
5808 if(cltype49 >= var_new_child->type->table_size) {
5809 var48 = 0;
5810 } else {
5811 var48 = var_new_child->type->type_table[cltype49] == idtype50;
5812 }
5813 }
5814 if (unlikely(!var48)) {
5815 var_class_name51 = var_new_child == NULL ? "null" : var_new_child->type->name;
5816 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AExpr", var_class_name51);
5817 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2197);
5818 show_backtrace(1);
5819 }
5820 {
5821 parser_prod__AVardeclExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AVardeclExpr#n_expr= on <self:AVardeclExpr>*/
5822 }
5823 goto RET_LABEL;
5824 } else {
5825 }
5826 var52 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AVardeclExpr> */
5827 if (var52 == NULL) {
5828 var53 = 0; /* <var_old_child:ANode> cannot be null */
5829 } else {
5830 { /* Inline kernel#Object#== (var52,var_old_child) on <var52:nullable AAnnotations> */
5831 var_other = var_old_child;
5832 {
5833 { /* Inline kernel#Object#is_same_instance (var52,var_other) on <var52:nullable AAnnotations(AAnnotations)> */
5834 var58 = var52 == var_other;
5835 var56 = var58;
5836 goto RET_LABEL57;
5837 RET_LABEL57:(void)0;
5838 }
5839 }
5840 var54 = var56;
5841 goto RET_LABEL55;
5842 RET_LABEL55:(void)0;
5843 }
5844 var53 = var54;
5845 }
5846 if (var53){
5847 /* <var_new_child:nullable ANode> isa nullable AAnnotations */
5848 cltype60 = type_nullable_parser_nodes__AAnnotations.color;
5849 idtype61 = type_nullable_parser_nodes__AAnnotations.id;
5850 if(var_new_child == NULL) {
5851 var59 = 1;
5852 } else {
5853 if(cltype60 >= var_new_child->type->table_size) {
5854 var59 = 0;
5855 } else {
5856 var59 = var_new_child->type->type_table[cltype60] == idtype61;
5857 }
5858 }
5859 if (unlikely(!var59)) {
5860 var_class_name62 = var_new_child == NULL ? "null" : var_new_child->type->name;
5861 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AAnnotations", var_class_name62);
5862 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2201);
5863 show_backtrace(1);
5864 }
5865 {
5866 parser_prod__AVardeclExpr__n_annotations_61d(self, var_new_child); /* Direct call parser_prod#AVardeclExpr#n_annotations= on <self:AVardeclExpr>*/
5867 }
5868 goto RET_LABEL;
5869 } else {
5870 }
5871 RET_LABEL:;
5872 }
5873 /* method parser_prod#AVardeclExpr#replace_child for (self: Object, ANode, nullable ANode) */
5874 void VIRTUAL_parser_prod__AVardeclExpr__replace_child(val* self, val* p0, val* p1) {
5875 parser_prod__AVardeclExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AVardeclExpr#replace_child on <self:Object(AVardeclExpr)>*/
5876 RET_LABEL:;
5877 }
5878 /* method parser_prod#AVardeclExpr#n_kwvar= for (self: AVardeclExpr, TKwvar) */
5879 void parser_prod__AVardeclExpr__n_kwvar_61d(val* self, val* p0) {
5880 val* var_node /* var node: TKwvar */;
5881 var_node = p0;
5882 self->attrs[COLOR_parser_nodes__AVardeclExpr___n_kwvar].val = var_node; /* _n_kwvar on <self:AVardeclExpr> */
5883 {
5884 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwvar> */
5885 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwvar> */
5886 RET_LABEL1:(void)0;
5887 }
5888 }
5889 RET_LABEL:;
5890 }
5891 /* method parser_prod#AVardeclExpr#n_kwvar= for (self: Object, TKwvar) */
5892 void VIRTUAL_parser_prod__AVardeclExpr__n_kwvar_61d(val* self, val* p0) {
5893 parser_prod__AVardeclExpr__n_kwvar_61d(self, p0); /* Direct call parser_prod#AVardeclExpr#n_kwvar= on <self:Object(AVardeclExpr)>*/
5894 RET_LABEL:;
5895 }
5896 /* method parser_prod#AVardeclExpr#n_id= for (self: AVardeclExpr, TId) */
5897 void parser_prod__AVardeclExpr__n_id_61d(val* self, val* p0) {
5898 val* var_node /* var node: TId */;
5899 var_node = p0;
5900 self->attrs[COLOR_parser_nodes__AVardeclExpr___n_id].val = var_node; /* _n_id on <self:AVardeclExpr> */
5901 {
5902 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TId> */
5903 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TId> */
5904 RET_LABEL1:(void)0;
5905 }
5906 }
5907 RET_LABEL:;
5908 }
5909 /* method parser_prod#AVardeclExpr#n_id= for (self: Object, TId) */
5910 void VIRTUAL_parser_prod__AVardeclExpr__n_id_61d(val* self, val* p0) {
5911 parser_prod__AVardeclExpr__n_id_61d(self, p0); /* Direct call parser_prod#AVardeclExpr#n_id= on <self:Object(AVardeclExpr)>*/
5912 RET_LABEL:;
5913 }
5914 /* method parser_prod#AVardeclExpr#n_type= for (self: AVardeclExpr, nullable AType) */
5915 void parser_prod__AVardeclExpr__n_type_61d(val* self, val* p0) {
5916 val* var_node /* var node: nullable AType */;
5917 val* var /* : null */;
5918 short int var1 /* : Bool */;
5919 short int var2 /* : Bool */;
5920 val* var_other /* var other: nullable Object */;
5921 short int var4 /* : Bool */;
5922 short int var5 /* : Bool */;
5923 short int var6 /* : Bool */;
5924 var_node = p0;
5925 self->attrs[COLOR_parser_nodes__AVardeclExpr___n_type].val = var_node; /* _n_type on <self:AVardeclExpr> */
5926 var = NULL;
5927 if (var_node == NULL) {
5928 var1 = 0; /* is null */
5929 } else {
5930 var1 = 1; /* arg is null and recv is not */
5931 }
5932 if (0) {
5933 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AType> */
5934 var_other = var;
5935 {
5936 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AType(AType)>*/;
5937 var4 = var5;
5938 }
5939 var6 = !var4;
5940 var2 = var6;
5941 goto RET_LABEL3;
5942 RET_LABEL3:(void)0;
5943 }
5944 var1 = var2;
5945 }
5946 if (var1){
5947 {
5948 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AType(AType)> */
5949 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AType(AType)> */
5950 RET_LABEL7:(void)0;
5951 }
5952 }
5953 } else {
5954 }
5955 RET_LABEL:;
5956 }
5957 /* method parser_prod#AVardeclExpr#n_type= for (self: Object, nullable AType) */
5958 void VIRTUAL_parser_prod__AVardeclExpr__n_type_61d(val* self, val* p0) {
5959 parser_prod__AVardeclExpr__n_type_61d(self, p0); /* Direct call parser_prod#AVardeclExpr#n_type= on <self:Object(AVardeclExpr)>*/
5960 RET_LABEL:;
5961 }
5962 /* method parser_prod#AVardeclExpr#n_assign= for (self: AVardeclExpr, nullable TAssign) */
5963 void parser_prod__AVardeclExpr__n_assign_61d(val* self, val* p0) {
5964 val* var_node /* var node: nullable TAssign */;
5965 val* var /* : null */;
5966 short int var1 /* : Bool */;
5967 short int var2 /* : Bool */;
5968 val* var_other /* var other: nullable Object */;
5969 short int var4 /* : Bool */;
5970 short int var5 /* : Bool */;
5971 short int var6 /* : Bool */;
5972 var_node = p0;
5973 self->attrs[COLOR_parser_nodes__AVardeclExpr___n_assign].val = var_node; /* _n_assign on <self:AVardeclExpr> */
5974 var = NULL;
5975 if (var_node == NULL) {
5976 var1 = 0; /* is null */
5977 } else {
5978 var1 = 1; /* arg is null and recv is not */
5979 }
5980 if (0) {
5981 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable TAssign> */
5982 var_other = var;
5983 {
5984 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable TAssign(TAssign)>*/;
5985 var4 = var5;
5986 }
5987 var6 = !var4;
5988 var2 = var6;
5989 goto RET_LABEL3;
5990 RET_LABEL3:(void)0;
5991 }
5992 var1 = var2;
5993 }
5994 if (var1){
5995 {
5996 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TAssign(TAssign)> */
5997 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TAssign(TAssign)> */
5998 RET_LABEL7:(void)0;
5999 }
6000 }
6001 } else {
6002 }
6003 RET_LABEL:;
6004 }
6005 /* method parser_prod#AVardeclExpr#n_assign= for (self: Object, nullable TAssign) */
6006 void VIRTUAL_parser_prod__AVardeclExpr__n_assign_61d(val* self, val* p0) {
6007 parser_prod__AVardeclExpr__n_assign_61d(self, p0); /* Direct call parser_prod#AVardeclExpr#n_assign= on <self:Object(AVardeclExpr)>*/
6008 RET_LABEL:;
6009 }
6010 /* method parser_prod#AVardeclExpr#n_expr= for (self: AVardeclExpr, nullable AExpr) */
6011 void parser_prod__AVardeclExpr__n_expr_61d(val* self, val* p0) {
6012 val* var_node /* var node: nullable AExpr */;
6013 val* var /* : null */;
6014 short int var1 /* : Bool */;
6015 short int var2 /* : Bool */;
6016 val* var_other /* var other: nullable Object */;
6017 short int var4 /* : Bool */;
6018 short int var5 /* : Bool */;
6019 short int var6 /* : Bool */;
6020 var_node = p0;
6021 self->attrs[COLOR_parser_nodes__AVardeclExpr___n_expr].val = var_node; /* _n_expr on <self:AVardeclExpr> */
6022 var = NULL;
6023 if (var_node == NULL) {
6024 var1 = 0; /* is null */
6025 } else {
6026 var1 = 1; /* arg is null and recv is not */
6027 }
6028 if (0) {
6029 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AExpr> */
6030 var_other = var;
6031 {
6032 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AExpr(AExpr)>*/;
6033 var4 = var5;
6034 }
6035 var6 = !var4;
6036 var2 = var6;
6037 goto RET_LABEL3;
6038 RET_LABEL3:(void)0;
6039 }
6040 var1 = var2;
6041 }
6042 if (var1){
6043 {
6044 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AExpr(AExpr)> */
6045 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AExpr(AExpr)> */
6046 RET_LABEL7:(void)0;
6047 }
6048 }
6049 } else {
6050 }
6051 RET_LABEL:;
6052 }
6053 /* method parser_prod#AVardeclExpr#n_expr= for (self: Object, nullable AExpr) */
6054 void VIRTUAL_parser_prod__AVardeclExpr__n_expr_61d(val* self, val* p0) {
6055 parser_prod__AVardeclExpr__n_expr_61d(self, p0); /* Direct call parser_prod#AVardeclExpr#n_expr= on <self:Object(AVardeclExpr)>*/
6056 RET_LABEL:;
6057 }
6058 /* method parser_prod#AVardeclExpr#n_annotations= for (self: AVardeclExpr, nullable AAnnotations) */
6059 void parser_prod__AVardeclExpr__n_annotations_61d(val* self, val* p0) {
6060 val* var_node /* var node: nullable AAnnotations */;
6061 val* var /* : null */;
6062 short int var1 /* : Bool */;
6063 short int var2 /* : Bool */;
6064 val* var_other /* var other: nullable Object */;
6065 short int var4 /* : Bool */;
6066 short int var5 /* : Bool */;
6067 short int var6 /* : Bool */;
6068 var_node = p0;
6069 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_node; /* _n_annotations on <self:AVardeclExpr> */
6070 var = NULL;
6071 if (var_node == NULL) {
6072 var1 = 0; /* is null */
6073 } else {
6074 var1 = 1; /* arg is null and recv is not */
6075 }
6076 if (0) {
6077 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AAnnotations> */
6078 var_other = var;
6079 {
6080 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AAnnotations(AAnnotations)>*/;
6081 var4 = var5;
6082 }
6083 var6 = !var4;
6084 var2 = var6;
6085 goto RET_LABEL3;
6086 RET_LABEL3:(void)0;
6087 }
6088 var1 = var2;
6089 }
6090 if (var1){
6091 {
6092 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AAnnotations(AAnnotations)> */
6093 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AAnnotations(AAnnotations)> */
6094 RET_LABEL7:(void)0;
6095 }
6096 }
6097 } else {
6098 }
6099 RET_LABEL:;
6100 }
6101 /* method parser_prod#AVardeclExpr#n_annotations= for (self: Object, nullable AAnnotations) */
6102 void VIRTUAL_parser_prod__AVardeclExpr__n_annotations_61d(val* self, val* p0) {
6103 parser_prod__AVardeclExpr__n_annotations_61d(self, p0); /* Direct call parser_prod#AVardeclExpr#n_annotations= on <self:Object(AVardeclExpr)>*/
6104 RET_LABEL:;
6105 }
6106 /* method parser_prod#AVardeclExpr#visit_all for (self: AVardeclExpr, Visitor) */
6107 void parser_prod__AVardeclExpr__visit_all(val* self, val* p0) {
6108 val* var_v /* var v: Visitor */;
6109 val* var /* : TKwvar */;
6110 val* var1 /* : TId */;
6111 val* var2 /* : nullable AType */;
6112 val* var3 /* : nullable TAssign */;
6113 val* var4 /* : nullable AExpr */;
6114 val* var5 /* : nullable AAnnotations */;
6115 var_v = p0;
6116 var = self->attrs[COLOR_parser_nodes__AVardeclExpr___n_kwvar].val; /* _n_kwvar on <self:AVardeclExpr> */
6117 if (unlikely(var == NULL)) {
6118 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwvar");
6119 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2240);
6120 show_backtrace(1);
6121 }
6122 {
6123 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6124 }
6125 var1 = self->attrs[COLOR_parser_nodes__AVardeclExpr___n_id].val; /* _n_id on <self:AVardeclExpr> */
6126 if (unlikely(var1 == NULL)) {
6127 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
6128 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2241);
6129 show_backtrace(1);
6130 }
6131 {
6132 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6133 }
6134 var2 = self->attrs[COLOR_parser_nodes__AVardeclExpr___n_type].val; /* _n_type on <self:AVardeclExpr> */
6135 {
6136 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6137 }
6138 var3 = self->attrs[COLOR_parser_nodes__AVardeclExpr___n_assign].val; /* _n_assign on <self:AVardeclExpr> */
6139 {
6140 parser_nodes__Visitor__enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6141 }
6142 var4 = self->attrs[COLOR_parser_nodes__AVardeclExpr___n_expr].val; /* _n_expr on <self:AVardeclExpr> */
6143 {
6144 parser_nodes__Visitor__enter_visit(var_v, var4); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6145 }
6146 var5 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AVardeclExpr> */
6147 {
6148 parser_nodes__Visitor__enter_visit(var_v, var5); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6149 }
6150 RET_LABEL:;
6151 }
6152 /* method parser_prod#AVardeclExpr#visit_all for (self: Object, Visitor) */
6153 void VIRTUAL_parser_prod__AVardeclExpr__visit_all(val* self, val* p0) {
6154 parser_prod__AVardeclExpr__visit_all(self, p0); /* Direct call parser_prod#AVardeclExpr#visit_all on <self:Object(AVardeclExpr)>*/
6155 RET_LABEL:;
6156 }
6157 /* method parser_prod#AReturnExpr#init_areturnexpr for (self: AReturnExpr, nullable TKwreturn, nullable AExpr) */
6158 void parser_prod__AReturnExpr__init_areturnexpr(val* self, val* p0, val* p1) {
6159 val* var_n_kwreturn /* var n_kwreturn: nullable TKwreturn */;
6160 val* var_n_expr /* var n_expr: nullable AExpr */;
6161 val* var /* : null */;
6162 short int var1 /* : Bool */;
6163 short int var2 /* : Bool */;
6164 val* var_other /* var other: nullable Object */;
6165 short int var4 /* : Bool */;
6166 short int var5 /* : Bool */;
6167 short int var6 /* : Bool */;
6168 val* var8 /* : null */;
6169 short int var9 /* : Bool */;
6170 short int var10 /* : Bool */;
6171 short int var12 /* : Bool */;
6172 short int var13 /* : Bool */;
6173 short int var14 /* : Bool */;
6174 var_n_kwreturn = p0;
6175 var_n_expr = p1;
6176 self->attrs[COLOR_parser_nodes__AReturnExpr___n_kwreturn].val = var_n_kwreturn; /* _n_kwreturn on <self:AReturnExpr> */
6177 var = NULL;
6178 if (var_n_kwreturn == NULL) {
6179 var1 = 0; /* is null */
6180 } else {
6181 var1 = 1; /* arg is null and recv is not */
6182 }
6183 if (0) {
6184 { /* Inline kernel#Object#!= (var_n_kwreturn,var) on <var_n_kwreturn:nullable TKwreturn> */
6185 var_other = var;
6186 {
6187 var5 = ((short int (*)(val*, val*))(var_n_kwreturn->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_kwreturn, var_other) /* == on <var_n_kwreturn:nullable TKwreturn(TKwreturn)>*/;
6188 var4 = var5;
6189 }
6190 var6 = !var4;
6191 var2 = var6;
6192 goto RET_LABEL3;
6193 RET_LABEL3:(void)0;
6194 }
6195 var1 = var2;
6196 }
6197 if (var1){
6198 {
6199 { /* Inline parser_nodes#ANode#parent= (var_n_kwreturn,self) on <var_n_kwreturn:nullable TKwreturn(TKwreturn)> */
6200 var_n_kwreturn->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwreturn:nullable TKwreturn(TKwreturn)> */
6201 RET_LABEL7:(void)0;
6202 }
6203 }
6204 } else {
6205 }
6206 self->attrs[COLOR_parser_nodes__AReturnExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AReturnExpr> */
6207 var8 = NULL;
6208 if (var_n_expr == NULL) {
6209 var9 = 0; /* is null */
6210 } else {
6211 var9 = 1; /* arg is null and recv is not */
6212 }
6213 if (0) {
6214 { /* Inline kernel#Object#!= (var_n_expr,var8) on <var_n_expr:nullable AExpr> */
6215 var_other = var8;
6216 {
6217 var13 = ((short int (*)(val*, val*))(var_n_expr->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_expr, var_other) /* == on <var_n_expr:nullable AExpr(AExpr)>*/;
6218 var12 = var13;
6219 }
6220 var14 = !var12;
6221 var10 = var14;
6222 goto RET_LABEL11;
6223 RET_LABEL11:(void)0;
6224 }
6225 var9 = var10;
6226 }
6227 if (var9){
6228 {
6229 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr(AExpr)> */
6230 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr(AExpr)> */
6231 RET_LABEL15:(void)0;
6232 }
6233 }
6234 } else {
6235 }
6236 RET_LABEL:;
6237 }
6238 /* method parser_prod#AReturnExpr#init_areturnexpr for (self: Object, nullable TKwreturn, nullable AExpr) */
6239 void VIRTUAL_parser_prod__AReturnExpr__init_areturnexpr(val* self, val* p0, val* p1) {
6240 parser_prod__AReturnExpr__init_areturnexpr(self, p0, p1); /* Direct call parser_prod#AReturnExpr#init_areturnexpr on <self:Object(AReturnExpr)>*/
6241 RET_LABEL:;
6242 }
6243 /* method parser_prod#AReturnExpr#replace_child for (self: AReturnExpr, ANode, nullable ANode) */
6244 void parser_prod__AReturnExpr__replace_child(val* self, val* p0, val* p1) {
6245 val* var_old_child /* var old_child: ANode */;
6246 val* var_new_child /* var new_child: nullable ANode */;
6247 val* var /* : nullable TKwreturn */;
6248 short int var1 /* : Bool */;
6249 short int var2 /* : Bool */;
6250 val* var_other /* var other: nullable Object */;
6251 short int var4 /* : Bool */;
6252 short int var6 /* : Bool */;
6253 short int var7 /* : Bool */;
6254 int cltype;
6255 int idtype;
6256 const char* var_class_name;
6257 val* var8 /* : nullable AExpr */;
6258 short int var9 /* : Bool */;
6259 short int var10 /* : Bool */;
6260 short int var12 /* : Bool */;
6261 short int var14 /* : Bool */;
6262 short int var15 /* : Bool */;
6263 int cltype16;
6264 int idtype17;
6265 const char* var_class_name18;
6266 var_old_child = p0;
6267 var_new_child = p1;
6268 var = self->attrs[COLOR_parser_nodes__AReturnExpr___n_kwreturn].val; /* _n_kwreturn on <self:AReturnExpr> */
6269 if (var == NULL) {
6270 var1 = 0; /* <var_old_child:ANode> cannot be null */
6271 } else {
6272 { /* Inline kernel#Object#== (var,var_old_child) on <var:nullable TKwreturn> */
6273 var_other = var_old_child;
6274 {
6275 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:nullable TKwreturn(TKwreturn)> */
6276 var6 = var == var_other;
6277 var4 = var6;
6278 goto RET_LABEL5;
6279 RET_LABEL5:(void)0;
6280 }
6281 }
6282 var2 = var4;
6283 goto RET_LABEL3;
6284 RET_LABEL3:(void)0;
6285 }
6286 var1 = var2;
6287 }
6288 if (var1){
6289 /* <var_new_child:nullable ANode> isa nullable TKwreturn */
6290 cltype = type_nullable_parser_nodes__TKwreturn.color;
6291 idtype = type_nullable_parser_nodes__TKwreturn.id;
6292 if(var_new_child == NULL) {
6293 var7 = 1;
6294 } else {
6295 if(cltype >= var_new_child->type->table_size) {
6296 var7 = 0;
6297 } else {
6298 var7 = var_new_child->type->type_table[cltype] == idtype;
6299 }
6300 }
6301 if (unlikely(!var7)) {
6302 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
6303 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TKwreturn", var_class_name);
6304 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2263);
6305 show_backtrace(1);
6306 }
6307 {
6308 parser_prod__AReturnExpr__n_kwreturn_61d(self, var_new_child); /* Direct call parser_prod#AReturnExpr#n_kwreturn= on <self:AReturnExpr>*/
6309 }
6310 goto RET_LABEL;
6311 } else {
6312 }
6313 var8 = self->attrs[COLOR_parser_nodes__AReturnExpr___n_expr].val; /* _n_expr on <self:AReturnExpr> */
6314 if (var8 == NULL) {
6315 var9 = 0; /* <var_old_child:ANode> cannot be null */
6316 } else {
6317 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:nullable AExpr> */
6318 var_other = var_old_child;
6319 {
6320 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:nullable AExpr(AExpr)> */
6321 var14 = var8 == var_other;
6322 var12 = var14;
6323 goto RET_LABEL13;
6324 RET_LABEL13:(void)0;
6325 }
6326 }
6327 var10 = var12;
6328 goto RET_LABEL11;
6329 RET_LABEL11:(void)0;
6330 }
6331 var9 = var10;
6332 }
6333 if (var9){
6334 /* <var_new_child:nullable ANode> isa nullable AExpr */
6335 cltype16 = type_nullable_parser_nodes__AExpr.color;
6336 idtype17 = type_nullable_parser_nodes__AExpr.id;
6337 if(var_new_child == NULL) {
6338 var15 = 1;
6339 } else {
6340 if(cltype16 >= var_new_child->type->table_size) {
6341 var15 = 0;
6342 } else {
6343 var15 = var_new_child->type->type_table[cltype16] == idtype17;
6344 }
6345 }
6346 if (unlikely(!var15)) {
6347 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
6348 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AExpr", var_class_name18);
6349 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2267);
6350 show_backtrace(1);
6351 }
6352 {
6353 parser_prod__AReturnExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AReturnExpr#n_expr= on <self:AReturnExpr>*/
6354 }
6355 goto RET_LABEL;
6356 } else {
6357 }
6358 RET_LABEL:;
6359 }
6360 /* method parser_prod#AReturnExpr#replace_child for (self: Object, ANode, nullable ANode) */
6361 void VIRTUAL_parser_prod__AReturnExpr__replace_child(val* self, val* p0, val* p1) {
6362 parser_prod__AReturnExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AReturnExpr#replace_child on <self:Object(AReturnExpr)>*/
6363 RET_LABEL:;
6364 }
6365 /* method parser_prod#AReturnExpr#n_kwreturn= for (self: AReturnExpr, nullable TKwreturn) */
6366 void parser_prod__AReturnExpr__n_kwreturn_61d(val* self, val* p0) {
6367 val* var_node /* var node: nullable TKwreturn */;
6368 val* var /* : null */;
6369 short int var1 /* : Bool */;
6370 short int var2 /* : Bool */;
6371 val* var_other /* var other: nullable Object */;
6372 short int var4 /* : Bool */;
6373 short int var5 /* : Bool */;
6374 short int var6 /* : Bool */;
6375 var_node = p0;
6376 self->attrs[COLOR_parser_nodes__AReturnExpr___n_kwreturn].val = var_node; /* _n_kwreturn on <self:AReturnExpr> */
6377 var = NULL;
6378 if (var_node == NULL) {
6379 var1 = 0; /* is null */
6380 } else {
6381 var1 = 1; /* arg is null and recv is not */
6382 }
6383 if (0) {
6384 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable TKwreturn> */
6385 var_other = var;
6386 {
6387 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable TKwreturn(TKwreturn)>*/;
6388 var4 = var5;
6389 }
6390 var6 = !var4;
6391 var2 = var6;
6392 goto RET_LABEL3;
6393 RET_LABEL3:(void)0;
6394 }
6395 var1 = var2;
6396 }
6397 if (var1){
6398 {
6399 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TKwreturn(TKwreturn)> */
6400 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TKwreturn(TKwreturn)> */
6401 RET_LABEL7:(void)0;
6402 }
6403 }
6404 } else {
6405 }
6406 RET_LABEL:;
6407 }
6408 /* method parser_prod#AReturnExpr#n_kwreturn= for (self: Object, nullable TKwreturn) */
6409 void VIRTUAL_parser_prod__AReturnExpr__n_kwreturn_61d(val* self, val* p0) {
6410 parser_prod__AReturnExpr__n_kwreturn_61d(self, p0); /* Direct call parser_prod#AReturnExpr#n_kwreturn= on <self:Object(AReturnExpr)>*/
6411 RET_LABEL:;
6412 }
6413 /* method parser_prod#AReturnExpr#n_expr= for (self: AReturnExpr, nullable AExpr) */
6414 void parser_prod__AReturnExpr__n_expr_61d(val* self, val* p0) {
6415 val* var_node /* var node: nullable AExpr */;
6416 val* var /* : null */;
6417 short int var1 /* : Bool */;
6418 short int var2 /* : Bool */;
6419 val* var_other /* var other: nullable Object */;
6420 short int var4 /* : Bool */;
6421 short int var5 /* : Bool */;
6422 short int var6 /* : Bool */;
6423 var_node = p0;
6424 self->attrs[COLOR_parser_nodes__AReturnExpr___n_expr].val = var_node; /* _n_expr on <self:AReturnExpr> */
6425 var = NULL;
6426 if (var_node == NULL) {
6427 var1 = 0; /* is null */
6428 } else {
6429 var1 = 1; /* arg is null and recv is not */
6430 }
6431 if (0) {
6432 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AExpr> */
6433 var_other = var;
6434 {
6435 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AExpr(AExpr)>*/;
6436 var4 = var5;
6437 }
6438 var6 = !var4;
6439 var2 = var6;
6440 goto RET_LABEL3;
6441 RET_LABEL3:(void)0;
6442 }
6443 var1 = var2;
6444 }
6445 if (var1){
6446 {
6447 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AExpr(AExpr)> */
6448 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AExpr(AExpr)> */
6449 RET_LABEL7:(void)0;
6450 }
6451 }
6452 } else {
6453 }
6454 RET_LABEL:;
6455 }
6456 /* method parser_prod#AReturnExpr#n_expr= for (self: Object, nullable AExpr) */
6457 void VIRTUAL_parser_prod__AReturnExpr__n_expr_61d(val* self, val* p0) {
6458 parser_prod__AReturnExpr__n_expr_61d(self, p0); /* Direct call parser_prod#AReturnExpr#n_expr= on <self:Object(AReturnExpr)>*/
6459 RET_LABEL:;
6460 }
6461 /* method parser_prod#AReturnExpr#visit_all for (self: AReturnExpr, Visitor) */
6462 void parser_prod__AReturnExpr__visit_all(val* self, val* p0) {
6463 val* var_v /* var v: Visitor */;
6464 val* var /* : nullable TKwreturn */;
6465 val* var1 /* : nullable AExpr */;
6466 var_v = p0;
6467 var = self->attrs[COLOR_parser_nodes__AReturnExpr___n_kwreturn].val; /* _n_kwreturn on <self:AReturnExpr> */
6468 {
6469 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6470 }
6471 var1 = self->attrs[COLOR_parser_nodes__AReturnExpr___n_expr].val; /* _n_expr on <self:AReturnExpr> */
6472 {
6473 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6474 }
6475 RET_LABEL:;
6476 }
6477 /* method parser_prod#AReturnExpr#visit_all for (self: Object, Visitor) */
6478 void VIRTUAL_parser_prod__AReturnExpr__visit_all(val* self, val* p0) {
6479 parser_prod__AReturnExpr__visit_all(self, p0); /* Direct call parser_prod#AReturnExpr#visit_all on <self:Object(AReturnExpr)>*/
6480 RET_LABEL:;
6481 }
6482 /* method parser_prod#ABreakExpr#init_abreakexpr for (self: ABreakExpr, nullable TKwbreak, nullable ALabel) */
6483 void parser_prod__ABreakExpr__init_abreakexpr(val* self, val* p0, val* p1) {
6484 val* var_n_kwbreak /* var n_kwbreak: nullable TKwbreak */;
6485 val* var_n_label /* var n_label: nullable ALabel */;
6486 val* var /* : null */;
6487 short int var2 /* : Bool */;
6488 short int var3 /* : Bool */;
6489 val* var_other /* var other: nullable Object */;
6490 short int var5 /* : Bool */;
6491 short int var6 /* : Bool */;
6492 short int var7 /* : Bool */;
6493 var_n_kwbreak = p0;
6494 var_n_label = p1;
6495 if (unlikely(var_n_kwbreak == NULL)) {
6496 PRINT_ERROR("Runtime error: %s", "Cast failed");
6497 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2296);
6498 show_backtrace(1);
6499 }
6500 self->attrs[COLOR_parser_nodes__ABreakExpr___n_kwbreak].val = var_n_kwbreak; /* _n_kwbreak on <self:ABreakExpr> */
6501 if (var_n_kwbreak == NULL) {
6502 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6503 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2297);
6504 show_backtrace(1);
6505 } else {
6506 { /* Inline parser_nodes#ANode#parent= (var_n_kwbreak,self) on <var_n_kwbreak:nullable TKwbreak> */
6507 if (unlikely(var_n_kwbreak == NULL)) {
6508 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6509 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
6510 show_backtrace(1);
6511 }
6512 var_n_kwbreak->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwbreak:nullable TKwbreak> */
6513 RET_LABEL1:(void)0;
6514 }
6515 }
6516 self->attrs[COLOR_parser_nodes__ALabelable___n_label].val = var_n_label; /* _n_label on <self:ABreakExpr> */
6517 var = NULL;
6518 if (var_n_label == NULL) {
6519 var2 = 0; /* is null */
6520 } else {
6521 var2 = 1; /* arg is null and recv is not */
6522 }
6523 if (0) {
6524 { /* Inline kernel#Object#!= (var_n_label,var) on <var_n_label:nullable ALabel> */
6525 var_other = var;
6526 {
6527 var6 = ((short int (*)(val*, val*))(var_n_label->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_label, var_other) /* == on <var_n_label:nullable ALabel(ALabel)>*/;
6528 var5 = var6;
6529 }
6530 var7 = !var5;
6531 var3 = var7;
6532 goto RET_LABEL4;
6533 RET_LABEL4:(void)0;
6534 }
6535 var2 = var3;
6536 }
6537 if (var2){
6538 {
6539 { /* Inline parser_nodes#ANode#parent= (var_n_label,self) on <var_n_label:nullable ALabel(ALabel)> */
6540 var_n_label->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_label:nullable ALabel(ALabel)> */
6541 RET_LABEL8:(void)0;
6542 }
6543 }
6544 } else {
6545 }
6546 RET_LABEL:;
6547 }
6548 /* method parser_prod#ABreakExpr#init_abreakexpr for (self: Object, nullable TKwbreak, nullable ALabel) */
6549 void VIRTUAL_parser_prod__ABreakExpr__init_abreakexpr(val* self, val* p0, val* p1) {
6550 parser_prod__ABreakExpr__init_abreakexpr(self, p0, p1); /* Direct call parser_prod#ABreakExpr#init_abreakexpr on <self:Object(ABreakExpr)>*/
6551 RET_LABEL:;
6552 }
6553 /* method parser_prod#ABreakExpr#replace_child for (self: ABreakExpr, ANode, nullable ANode) */
6554 void parser_prod__ABreakExpr__replace_child(val* self, val* p0, val* p1) {
6555 val* var_old_child /* var old_child: ANode */;
6556 val* var_new_child /* var new_child: nullable ANode */;
6557 val* var /* : TKwbreak */;
6558 short int var1 /* : Bool */;
6559 short int var2 /* : Bool */;
6560 val* var_other /* var other: nullable Object */;
6561 short int var4 /* : Bool */;
6562 short int var6 /* : Bool */;
6563 short int var7 /* : Bool */;
6564 int cltype;
6565 int idtype;
6566 const char* var_class_name;
6567 val* var8 /* : nullable ALabel */;
6568 short int var9 /* : Bool */;
6569 short int var10 /* : Bool */;
6570 short int var12 /* : Bool */;
6571 short int var14 /* : Bool */;
6572 short int var15 /* : Bool */;
6573 int cltype16;
6574 int idtype17;
6575 const char* var_class_name18;
6576 var_old_child = p0;
6577 var_new_child = p1;
6578 var = self->attrs[COLOR_parser_nodes__ABreakExpr___n_kwbreak].val; /* _n_kwbreak on <self:ABreakExpr> */
6579 if (unlikely(var == NULL)) {
6580 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwbreak");
6581 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2304);
6582 show_backtrace(1);
6583 }
6584 {
6585 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwbreak> */
6586 var_other = var_old_child;
6587 {
6588 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TKwbreak> */
6589 var6 = var == var_other;
6590 var4 = var6;
6591 goto RET_LABEL5;
6592 RET_LABEL5:(void)0;
6593 }
6594 }
6595 var2 = var4;
6596 goto RET_LABEL3;
6597 RET_LABEL3:(void)0;
6598 }
6599 var1 = var2;
6600 }
6601 if (var1){
6602 /* <var_new_child:nullable ANode> isa TKwbreak */
6603 cltype = type_parser_nodes__TKwbreak.color;
6604 idtype = type_parser_nodes__TKwbreak.id;
6605 if(var_new_child == NULL) {
6606 var7 = 0;
6607 } else {
6608 if(cltype >= var_new_child->type->table_size) {
6609 var7 = 0;
6610 } else {
6611 var7 = var_new_child->type->type_table[cltype] == idtype;
6612 }
6613 }
6614 if (unlikely(!var7)) {
6615 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
6616 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwbreak", var_class_name);
6617 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2305);
6618 show_backtrace(1);
6619 }
6620 {
6621 parser_prod__ABreakExpr__n_kwbreak_61d(self, var_new_child); /* Direct call parser_prod#ABreakExpr#n_kwbreak= on <self:ABreakExpr>*/
6622 }
6623 goto RET_LABEL;
6624 } else {
6625 }
6626 var8 = self->attrs[COLOR_parser_nodes__ALabelable___n_label].val; /* _n_label on <self:ABreakExpr> */
6627 if (var8 == NULL) {
6628 var9 = 0; /* <var_old_child:ANode> cannot be null */
6629 } else {
6630 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:nullable ALabel> */
6631 var_other = var_old_child;
6632 {
6633 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:nullable ALabel(ALabel)> */
6634 var14 = var8 == var_other;
6635 var12 = var14;
6636 goto RET_LABEL13;
6637 RET_LABEL13:(void)0;
6638 }
6639 }
6640 var10 = var12;
6641 goto RET_LABEL11;
6642 RET_LABEL11:(void)0;
6643 }
6644 var9 = var10;
6645 }
6646 if (var9){
6647 /* <var_new_child:nullable ANode> isa nullable ALabel */
6648 cltype16 = type_nullable_parser_nodes__ALabel.color;
6649 idtype17 = type_nullable_parser_nodes__ALabel.id;
6650 if(var_new_child == NULL) {
6651 var15 = 1;
6652 } else {
6653 if(cltype16 >= var_new_child->type->table_size) {
6654 var15 = 0;
6655 } else {
6656 var15 = var_new_child->type->type_table[cltype16] == idtype17;
6657 }
6658 }
6659 if (unlikely(!var15)) {
6660 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
6661 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ALabel", var_class_name18);
6662 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2309);
6663 show_backtrace(1);
6664 }
6665 {
6666 parser_prod__ABreakExpr__n_label_61d(self, var_new_child); /* Direct call parser_prod#ABreakExpr#n_label= on <self:ABreakExpr>*/
6667 }
6668 goto RET_LABEL;
6669 } else {
6670 }
6671 RET_LABEL:;
6672 }
6673 /* method parser_prod#ABreakExpr#replace_child for (self: Object, ANode, nullable ANode) */
6674 void VIRTUAL_parser_prod__ABreakExpr__replace_child(val* self, val* p0, val* p1) {
6675 parser_prod__ABreakExpr__replace_child(self, p0, p1); /* Direct call parser_prod#ABreakExpr#replace_child on <self:Object(ABreakExpr)>*/
6676 RET_LABEL:;
6677 }
6678 /* method parser_prod#ABreakExpr#n_kwbreak= for (self: ABreakExpr, TKwbreak) */
6679 void parser_prod__ABreakExpr__n_kwbreak_61d(val* self, val* p0) {
6680 val* var_node /* var node: TKwbreak */;
6681 var_node = p0;
6682 self->attrs[COLOR_parser_nodes__ABreakExpr___n_kwbreak].val = var_node; /* _n_kwbreak on <self:ABreakExpr> */
6683 {
6684 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwbreak> */
6685 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwbreak> */
6686 RET_LABEL1:(void)0;
6687 }
6688 }
6689 RET_LABEL:;
6690 }
6691 /* method parser_prod#ABreakExpr#n_kwbreak= for (self: Object, TKwbreak) */
6692 void VIRTUAL_parser_prod__ABreakExpr__n_kwbreak_61d(val* self, val* p0) {
6693 parser_prod__ABreakExpr__n_kwbreak_61d(self, p0); /* Direct call parser_prod#ABreakExpr#n_kwbreak= on <self:Object(ABreakExpr)>*/
6694 RET_LABEL:;
6695 }
6696 /* method parser_prod#ABreakExpr#n_label= for (self: ABreakExpr, nullable ALabel) */
6697 void parser_prod__ABreakExpr__n_label_61d(val* self, val* p0) {
6698 val* var_node /* var node: nullable ALabel */;
6699 val* var /* : null */;
6700 short int var1 /* : Bool */;
6701 short int var2 /* : Bool */;
6702 val* var_other /* var other: nullable Object */;
6703 short int var4 /* : Bool */;
6704 short int var5 /* : Bool */;
6705 short int var6 /* : Bool */;
6706 var_node = p0;
6707 self->attrs[COLOR_parser_nodes__ALabelable___n_label].val = var_node; /* _n_label on <self:ABreakExpr> */
6708 var = NULL;
6709 if (var_node == NULL) {
6710 var1 = 0; /* is null */
6711 } else {
6712 var1 = 1; /* arg is null and recv is not */
6713 }
6714 if (0) {
6715 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable ALabel> */
6716 var_other = var;
6717 {
6718 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable ALabel(ALabel)>*/;
6719 var4 = var5;
6720 }
6721 var6 = !var4;
6722 var2 = var6;
6723 goto RET_LABEL3;
6724 RET_LABEL3:(void)0;
6725 }
6726 var1 = var2;
6727 }
6728 if (var1){
6729 {
6730 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable ALabel(ALabel)> */
6731 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable ALabel(ALabel)> */
6732 RET_LABEL7:(void)0;
6733 }
6734 }
6735 } else {
6736 }
6737 RET_LABEL:;
6738 }
6739 /* method parser_prod#ABreakExpr#n_label= for (self: Object, nullable ALabel) */
6740 void VIRTUAL_parser_prod__ABreakExpr__n_label_61d(val* self, val* p0) {
6741 parser_prod__ABreakExpr__n_label_61d(self, p0); /* Direct call parser_prod#ABreakExpr#n_label= on <self:Object(ABreakExpr)>*/
6742 RET_LABEL:;
6743 }
6744 /* method parser_prod#ABreakExpr#visit_all for (self: ABreakExpr, Visitor) */
6745 void parser_prod__ABreakExpr__visit_all(val* self, val* p0) {
6746 val* var_v /* var v: Visitor */;
6747 val* var /* : TKwbreak */;
6748 val* var1 /* : nullable ALabel */;
6749 var_v = p0;
6750 var = self->attrs[COLOR_parser_nodes__ABreakExpr___n_kwbreak].val; /* _n_kwbreak on <self:ABreakExpr> */
6751 if (unlikely(var == NULL)) {
6752 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwbreak");
6753 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2328);
6754 show_backtrace(1);
6755 }
6756 {
6757 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6758 }
6759 var1 = self->attrs[COLOR_parser_nodes__ALabelable___n_label].val; /* _n_label on <self:ABreakExpr> */
6760 {
6761 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6762 }
6763 RET_LABEL:;
6764 }
6765 /* method parser_prod#ABreakExpr#visit_all for (self: Object, Visitor) */
6766 void VIRTUAL_parser_prod__ABreakExpr__visit_all(val* self, val* p0) {
6767 parser_prod__ABreakExpr__visit_all(self, p0); /* Direct call parser_prod#ABreakExpr#visit_all on <self:Object(ABreakExpr)>*/
6768 RET_LABEL:;
6769 }
6770 /* method parser_prod#AAbortExpr#init_aabortexpr for (self: AAbortExpr, nullable TKwabort) */
6771 void parser_prod__AAbortExpr__init_aabortexpr(val* self, val* p0) {
6772 val* var_n_kwabort /* var n_kwabort: nullable TKwabort */;
6773 var_n_kwabort = p0;
6774 if (unlikely(var_n_kwabort == NULL)) {
6775 PRINT_ERROR("Runtime error: %s", "Cast failed");
6776 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2337);
6777 show_backtrace(1);
6778 }
6779 self->attrs[COLOR_parser_nodes__AAbortExpr___n_kwabort].val = var_n_kwabort; /* _n_kwabort on <self:AAbortExpr> */
6780 if (var_n_kwabort == NULL) {
6781 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6782 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2338);
6783 show_backtrace(1);
6784 } else {
6785 { /* Inline parser_nodes#ANode#parent= (var_n_kwabort,self) on <var_n_kwabort:nullable TKwabort> */
6786 if (unlikely(var_n_kwabort == NULL)) {
6787 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6788 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
6789 show_backtrace(1);
6790 }
6791 var_n_kwabort->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwabort:nullable TKwabort> */
6792 RET_LABEL1:(void)0;
6793 }
6794 }
6795 RET_LABEL:;
6796 }
6797 /* method parser_prod#AAbortExpr#init_aabortexpr for (self: Object, nullable TKwabort) */
6798 void VIRTUAL_parser_prod__AAbortExpr__init_aabortexpr(val* self, val* p0) {
6799 parser_prod__AAbortExpr__init_aabortexpr(self, p0); /* Direct call parser_prod#AAbortExpr#init_aabortexpr on <self:Object(AAbortExpr)>*/
6800 RET_LABEL:;
6801 }
6802 /* method parser_prod#AAbortExpr#replace_child for (self: AAbortExpr, ANode, nullable ANode) */
6803 void parser_prod__AAbortExpr__replace_child(val* self, val* p0, val* p1) {
6804 val* var_old_child /* var old_child: ANode */;
6805 val* var_new_child /* var new_child: nullable ANode */;
6806 val* var /* : TKwabort */;
6807 short int var1 /* : Bool */;
6808 short int var2 /* : Bool */;
6809 val* var_other /* var other: nullable Object */;
6810 short int var4 /* : Bool */;
6811 short int var6 /* : Bool */;
6812 short int var7 /* : Bool */;
6813 int cltype;
6814 int idtype;
6815 const char* var_class_name;
6816 var_old_child = p0;
6817 var_new_child = p1;
6818 var = self->attrs[COLOR_parser_nodes__AAbortExpr___n_kwabort].val; /* _n_kwabort on <self:AAbortExpr> */
6819 if (unlikely(var == NULL)) {
6820 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwabort");
6821 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2343);
6822 show_backtrace(1);
6823 }
6824 {
6825 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwabort> */
6826 var_other = var_old_child;
6827 {
6828 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TKwabort> */
6829 var6 = var == var_other;
6830 var4 = var6;
6831 goto RET_LABEL5;
6832 RET_LABEL5:(void)0;
6833 }
6834 }
6835 var2 = var4;
6836 goto RET_LABEL3;
6837 RET_LABEL3:(void)0;
6838 }
6839 var1 = var2;
6840 }
6841 if (var1){
6842 /* <var_new_child:nullable ANode> isa TKwabort */
6843 cltype = type_parser_nodes__TKwabort.color;
6844 idtype = type_parser_nodes__TKwabort.id;
6845 if(var_new_child == NULL) {
6846 var7 = 0;
6847 } else {
6848 if(cltype >= var_new_child->type->table_size) {
6849 var7 = 0;
6850 } else {
6851 var7 = var_new_child->type->type_table[cltype] == idtype;
6852 }
6853 }
6854 if (unlikely(!var7)) {
6855 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
6856 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwabort", var_class_name);
6857 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2344);
6858 show_backtrace(1);
6859 }
6860 {
6861 parser_prod__AAbortExpr__n_kwabort_61d(self, var_new_child); /* Direct call parser_prod#AAbortExpr#n_kwabort= on <self:AAbortExpr>*/
6862 }
6863 goto RET_LABEL;
6864 } else {
6865 }
6866 RET_LABEL:;
6867 }
6868 /* method parser_prod#AAbortExpr#replace_child for (self: Object, ANode, nullable ANode) */
6869 void VIRTUAL_parser_prod__AAbortExpr__replace_child(val* self, val* p0, val* p1) {
6870 parser_prod__AAbortExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AAbortExpr#replace_child on <self:Object(AAbortExpr)>*/
6871 RET_LABEL:;
6872 }
6873 /* method parser_prod#AAbortExpr#n_kwabort= for (self: AAbortExpr, TKwabort) */
6874 void parser_prod__AAbortExpr__n_kwabort_61d(val* self, val* p0) {
6875 val* var_node /* var node: TKwabort */;
6876 var_node = p0;
6877 self->attrs[COLOR_parser_nodes__AAbortExpr___n_kwabort].val = var_node; /* _n_kwabort on <self:AAbortExpr> */
6878 {
6879 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwabort> */
6880 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwabort> */
6881 RET_LABEL1:(void)0;
6882 }
6883 }
6884 RET_LABEL:;
6885 }
6886 /* method parser_prod#AAbortExpr#n_kwabort= for (self: Object, TKwabort) */
6887 void VIRTUAL_parser_prod__AAbortExpr__n_kwabort_61d(val* self, val* p0) {
6888 parser_prod__AAbortExpr__n_kwabort_61d(self, p0); /* Direct call parser_prod#AAbortExpr#n_kwabort= on <self:Object(AAbortExpr)>*/
6889 RET_LABEL:;
6890 }
6891 /* method parser_prod#AAbortExpr#visit_all for (self: AAbortExpr, Visitor) */
6892 void parser_prod__AAbortExpr__visit_all(val* self, val* p0) {
6893 val* var_v /* var v: Visitor */;
6894 val* var /* : TKwabort */;
6895 var_v = p0;
6896 var = self->attrs[COLOR_parser_nodes__AAbortExpr___n_kwabort].val; /* _n_kwabort on <self:AAbortExpr> */
6897 if (unlikely(var == NULL)) {
6898 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwabort");
6899 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2358);
6900 show_backtrace(1);
6901 }
6902 {
6903 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6904 }
6905 RET_LABEL:;
6906 }
6907 /* method parser_prod#AAbortExpr#visit_all for (self: Object, Visitor) */
6908 void VIRTUAL_parser_prod__AAbortExpr__visit_all(val* self, val* p0) {
6909 parser_prod__AAbortExpr__visit_all(self, p0); /* Direct call parser_prod#AAbortExpr#visit_all on <self:Object(AAbortExpr)>*/
6910 RET_LABEL:;
6911 }
6912 /* method parser_prod#AContinueExpr#init_acontinueexpr for (self: AContinueExpr, nullable TKwcontinue, nullable ALabel) */
6913 void parser_prod__AContinueExpr__init_acontinueexpr(val* self, val* p0, val* p1) {
6914 val* var_n_kwcontinue /* var n_kwcontinue: nullable TKwcontinue */;
6915 val* var_n_label /* var n_label: nullable ALabel */;
6916 val* var /* : null */;
6917 short int var1 /* : Bool */;
6918 short int var2 /* : Bool */;
6919 val* var_other /* var other: nullable Object */;
6920 short int var4 /* : Bool */;
6921 short int var5 /* : Bool */;
6922 short int var6 /* : Bool */;
6923 val* var8 /* : null */;
6924 short int var9 /* : Bool */;
6925 short int var10 /* : Bool */;
6926 short int var12 /* : Bool */;
6927 short int var13 /* : Bool */;
6928 short int var14 /* : Bool */;
6929 var_n_kwcontinue = p0;
6930 var_n_label = p1;
6931 self->attrs[COLOR_parser_nodes__AContinueExpr___n_kwcontinue].val = var_n_kwcontinue; /* _n_kwcontinue on <self:AContinueExpr> */
6932 var = NULL;
6933 if (var_n_kwcontinue == NULL) {
6934 var1 = 0; /* is null */
6935 } else {
6936 var1 = 1; /* arg is null and recv is not */
6937 }
6938 if (0) {
6939 { /* Inline kernel#Object#!= (var_n_kwcontinue,var) on <var_n_kwcontinue:nullable TKwcontinue> */
6940 var_other = var;
6941 {
6942 var5 = ((short int (*)(val*, val*))(var_n_kwcontinue->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_kwcontinue, var_other) /* == on <var_n_kwcontinue:nullable TKwcontinue(TKwcontinue)>*/;
6943 var4 = var5;
6944 }
6945 var6 = !var4;
6946 var2 = var6;
6947 goto RET_LABEL3;
6948 RET_LABEL3:(void)0;
6949 }
6950 var1 = var2;
6951 }
6952 if (var1){
6953 {
6954 { /* Inline parser_nodes#ANode#parent= (var_n_kwcontinue,self) on <var_n_kwcontinue:nullable TKwcontinue(TKwcontinue)> */
6955 var_n_kwcontinue->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwcontinue:nullable TKwcontinue(TKwcontinue)> */
6956 RET_LABEL7:(void)0;
6957 }
6958 }
6959 } else {
6960 }
6961 self->attrs[COLOR_parser_nodes__ALabelable___n_label].val = var_n_label; /* _n_label on <self:AContinueExpr> */
6962 var8 = NULL;
6963 if (var_n_label == NULL) {
6964 var9 = 0; /* is null */
6965 } else {
6966 var9 = 1; /* arg is null and recv is not */
6967 }
6968 if (0) {
6969 { /* Inline kernel#Object#!= (var_n_label,var8) on <var_n_label:nullable ALabel> */
6970 var_other = var8;
6971 {
6972 var13 = ((short int (*)(val*, val*))(var_n_label->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_label, var_other) /* == on <var_n_label:nullable ALabel(ALabel)>*/;
6973 var12 = var13;
6974 }
6975 var14 = !var12;
6976 var10 = var14;
6977 goto RET_LABEL11;
6978 RET_LABEL11:(void)0;
6979 }
6980 var9 = var10;
6981 }
6982 if (var9){
6983 {
6984 { /* Inline parser_nodes#ANode#parent= (var_n_label,self) on <var_n_label:nullable ALabel(ALabel)> */
6985 var_n_label->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_label:nullable ALabel(ALabel)> */
6986 RET_LABEL15:(void)0;
6987 }
6988 }
6989 } else {
6990 }
6991 RET_LABEL:;
6992 }
6993 /* method parser_prod#AContinueExpr#init_acontinueexpr for (self: Object, nullable TKwcontinue, nullable ALabel) */
6994 void VIRTUAL_parser_prod__AContinueExpr__init_acontinueexpr(val* self, val* p0, val* p1) {
6995 parser_prod__AContinueExpr__init_acontinueexpr(self, p0, p1); /* Direct call parser_prod#AContinueExpr#init_acontinueexpr on <self:Object(AContinueExpr)>*/
6996 RET_LABEL:;
6997 }
6998 /* method parser_prod#AContinueExpr#replace_child for (self: AContinueExpr, ANode, nullable ANode) */
6999 void parser_prod__AContinueExpr__replace_child(val* self, val* p0, val* p1) {
7000 val* var_old_child /* var old_child: ANode */;
7001 val* var_new_child /* var new_child: nullable ANode */;
7002 val* var /* : nullable TKwcontinue */;
7003 short int var1 /* : Bool */;
7004 short int var2 /* : Bool */;
7005 val* var_other /* var other: nullable Object */;
7006 short int var4 /* : Bool */;
7007 short int var6 /* : Bool */;
7008 short int var7 /* : Bool */;
7009 int cltype;
7010 int idtype;
7011 const char* var_class_name;
7012 val* var8 /* : nullable ALabel */;
7013 short int var9 /* : Bool */;
7014 short int var10 /* : Bool */;
7015 short int var12 /* : Bool */;
7016 short int var14 /* : Bool */;
7017 short int var15 /* : Bool */;
7018 int cltype16;
7019 int idtype17;
7020 const char* var_class_name18;
7021 var_old_child = p0;
7022 var_new_child = p1;
7023 var = self->attrs[COLOR_parser_nodes__AContinueExpr___n_kwcontinue].val; /* _n_kwcontinue on <self:AContinueExpr> */
7024 if (var == NULL) {
7025 var1 = 0; /* <var_old_child:ANode> cannot be null */
7026 } else {
7027 { /* Inline kernel#Object#== (var,var_old_child) on <var:nullable TKwcontinue> */
7028 var_other = var_old_child;
7029 {
7030 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:nullable TKwcontinue(TKwcontinue)> */
7031 var6 = var == var_other;
7032 var4 = var6;
7033 goto RET_LABEL5;
7034 RET_LABEL5:(void)0;
7035 }
7036 }
7037 var2 = var4;
7038 goto RET_LABEL3;
7039 RET_LABEL3:(void)0;
7040 }
7041 var1 = var2;
7042 }
7043 if (var1){
7044 /* <var_new_child:nullable ANode> isa nullable TKwcontinue */
7045 cltype = type_nullable_parser_nodes__TKwcontinue.color;
7046 idtype = type_nullable_parser_nodes__TKwcontinue.id;
7047 if(var_new_child == NULL) {
7048 var7 = 1;
7049 } else {
7050 if(cltype >= var_new_child->type->table_size) {
7051 var7 = 0;
7052 } else {
7053 var7 = var_new_child->type->type_table[cltype] == idtype;
7054 }
7055 }
7056 if (unlikely(!var7)) {
7057 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
7058 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TKwcontinue", var_class_name);
7059 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2376);
7060 show_backtrace(1);
7061 }
7062 {
7063 parser_prod__AContinueExpr__n_kwcontinue_61d(self, var_new_child); /* Direct call parser_prod#AContinueExpr#n_kwcontinue= on <self:AContinueExpr>*/
7064 }
7065 goto RET_LABEL;
7066 } else {
7067 }
7068 var8 = self->attrs[COLOR_parser_nodes__ALabelable___n_label].val; /* _n_label on <self:AContinueExpr> */
7069 if (var8 == NULL) {
7070 var9 = 0; /* <var_old_child:ANode> cannot be null */
7071 } else {
7072 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:nullable ALabel> */
7073 var_other = var_old_child;
7074 {
7075 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:nullable ALabel(ALabel)> */
7076 var14 = var8 == var_other;
7077 var12 = var14;
7078 goto RET_LABEL13;
7079 RET_LABEL13:(void)0;
7080 }
7081 }
7082 var10 = var12;
7083 goto RET_LABEL11;
7084 RET_LABEL11:(void)0;
7085 }
7086 var9 = var10;
7087 }
7088 if (var9){
7089 /* <var_new_child:nullable ANode> isa nullable ALabel */
7090 cltype16 = type_nullable_parser_nodes__ALabel.color;
7091 idtype17 = type_nullable_parser_nodes__ALabel.id;
7092 if(var_new_child == NULL) {
7093 var15 = 1;
7094 } else {
7095 if(cltype16 >= var_new_child->type->table_size) {
7096 var15 = 0;
7097 } else {
7098 var15 = var_new_child->type->type_table[cltype16] == idtype17;
7099 }
7100 }
7101 if (unlikely(!var15)) {
7102 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
7103 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ALabel", var_class_name18);
7104 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2380);
7105 show_backtrace(1);
7106 }
7107 {
7108 parser_prod__AContinueExpr__n_label_61d(self, var_new_child); /* Direct call parser_prod#AContinueExpr#n_label= on <self:AContinueExpr>*/
7109 }
7110 goto RET_LABEL;
7111 } else {
7112 }
7113 RET_LABEL:;
7114 }
7115 /* method parser_prod#AContinueExpr#replace_child for (self: Object, ANode, nullable ANode) */
7116 void VIRTUAL_parser_prod__AContinueExpr__replace_child(val* self, val* p0, val* p1) {
7117 parser_prod__AContinueExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AContinueExpr#replace_child on <self:Object(AContinueExpr)>*/
7118 RET_LABEL:;
7119 }
7120 /* method parser_prod#AContinueExpr#n_kwcontinue= for (self: AContinueExpr, nullable TKwcontinue) */
7121 void parser_prod__AContinueExpr__n_kwcontinue_61d(val* self, val* p0) {
7122 val* var_node /* var node: nullable TKwcontinue */;
7123 val* var /* : null */;
7124 short int var1 /* : Bool */;
7125 short int var2 /* : Bool */;
7126 val* var_other /* var other: nullable Object */;
7127 short int var4 /* : Bool */;
7128 short int var5 /* : Bool */;
7129 short int var6 /* : Bool */;
7130 var_node = p0;
7131 self->attrs[COLOR_parser_nodes__AContinueExpr___n_kwcontinue].val = var_node; /* _n_kwcontinue on <self:AContinueExpr> */
7132 var = NULL;
7133 if (var_node == NULL) {
7134 var1 = 0; /* is null */
7135 } else {
7136 var1 = 1; /* arg is null and recv is not */
7137 }
7138 if (0) {
7139 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable TKwcontinue> */
7140 var_other = var;
7141 {
7142 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable TKwcontinue(TKwcontinue)>*/;
7143 var4 = var5;
7144 }
7145 var6 = !var4;
7146 var2 = var6;
7147 goto RET_LABEL3;
7148 RET_LABEL3:(void)0;
7149 }
7150 var1 = var2;
7151 }
7152 if (var1){
7153 {
7154 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TKwcontinue(TKwcontinue)> */
7155 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TKwcontinue(TKwcontinue)> */
7156 RET_LABEL7:(void)0;
7157 }
7158 }
7159 } else {
7160 }
7161 RET_LABEL:;
7162 }
7163 /* method parser_prod#AContinueExpr#n_kwcontinue= for (self: Object, nullable TKwcontinue) */
7164 void VIRTUAL_parser_prod__AContinueExpr__n_kwcontinue_61d(val* self, val* p0) {
7165 parser_prod__AContinueExpr__n_kwcontinue_61d(self, p0); /* Direct call parser_prod#AContinueExpr#n_kwcontinue= on <self:Object(AContinueExpr)>*/
7166 RET_LABEL:;
7167 }
7168 /* method parser_prod#AContinueExpr#n_label= for (self: AContinueExpr, nullable ALabel) */
7169 void parser_prod__AContinueExpr__n_label_61d(val* self, val* p0) {
7170 val* var_node /* var node: nullable ALabel */;
7171 val* var /* : null */;
7172 short int var1 /* : Bool */;
7173 short int var2 /* : Bool */;
7174 val* var_other /* var other: nullable Object */;
7175 short int var4 /* : Bool */;
7176 short int var5 /* : Bool */;
7177 short int var6 /* : Bool */;
7178 var_node = p0;
7179 self->attrs[COLOR_parser_nodes__ALabelable___n_label].val = var_node; /* _n_label on <self:AContinueExpr> */
7180 var = NULL;
7181 if (var_node == NULL) {
7182 var1 = 0; /* is null */
7183 } else {
7184 var1 = 1; /* arg is null and recv is not */
7185 }
7186 if (0) {
7187 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable ALabel> */
7188 var_other = var;
7189 {
7190 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable ALabel(ALabel)>*/;
7191 var4 = var5;
7192 }
7193 var6 = !var4;
7194 var2 = var6;
7195 goto RET_LABEL3;
7196 RET_LABEL3:(void)0;
7197 }
7198 var1 = var2;
7199 }
7200 if (var1){
7201 {
7202 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable ALabel(ALabel)> */
7203 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable ALabel(ALabel)> */
7204 RET_LABEL7:(void)0;
7205 }
7206 }
7207 } else {
7208 }
7209 RET_LABEL:;
7210 }
7211 /* method parser_prod#AContinueExpr#n_label= for (self: Object, nullable ALabel) */
7212 void VIRTUAL_parser_prod__AContinueExpr__n_label_61d(val* self, val* p0) {
7213 parser_prod__AContinueExpr__n_label_61d(self, p0); /* Direct call parser_prod#AContinueExpr#n_label= on <self:Object(AContinueExpr)>*/
7214 RET_LABEL:;
7215 }
7216 /* method parser_prod#AContinueExpr#visit_all for (self: AContinueExpr, Visitor) */
7217 void parser_prod__AContinueExpr__visit_all(val* self, val* p0) {
7218 val* var_v /* var v: Visitor */;
7219 val* var /* : nullable TKwcontinue */;
7220 val* var1 /* : nullable ALabel */;
7221 var_v = p0;
7222 var = self->attrs[COLOR_parser_nodes__AContinueExpr___n_kwcontinue].val; /* _n_kwcontinue on <self:AContinueExpr> */
7223 {
7224 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7225 }
7226 var1 = self->attrs[COLOR_parser_nodes__ALabelable___n_label].val; /* _n_label on <self:AContinueExpr> */
7227 {
7228 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7229 }
7230 RET_LABEL:;
7231 }
7232 /* method parser_prod#AContinueExpr#visit_all for (self: Object, Visitor) */
7233 void VIRTUAL_parser_prod__AContinueExpr__visit_all(val* self, val* p0) {
7234 parser_prod__AContinueExpr__visit_all(self, p0); /* Direct call parser_prod#AContinueExpr#visit_all on <self:Object(AContinueExpr)>*/
7235 RET_LABEL:;
7236 }
7237 /* method parser_prod#ADoExpr#init_adoexpr for (self: ADoExpr, nullable TKwdo, nullable AExpr, nullable ALabel) */
7238 void parser_prod__ADoExpr__init_adoexpr(val* self, val* p0, val* p1, val* p2) {
7239 val* var_n_kwdo /* var n_kwdo: nullable TKwdo */;
7240 val* var_n_block /* var n_block: nullable AExpr */;
7241 val* var_n_label /* var n_label: nullable ALabel */;
7242 val* var /* : null */;
7243 short int var2 /* : Bool */;
7244 short int var3 /* : Bool */;
7245 val* var_other /* var other: nullable Object */;
7246 short int var5 /* : Bool */;
7247 short int var6 /* : Bool */;
7248 short int var7 /* : Bool */;
7249 val* var9 /* : null */;
7250 short int var10 /* : Bool */;
7251 short int var11 /* : Bool */;
7252 short int var13 /* : Bool */;
7253 short int var14 /* : Bool */;
7254 short int var15 /* : Bool */;
7255 var_n_kwdo = p0;
7256 var_n_block = p1;
7257 var_n_label = p2;
7258 if (unlikely(var_n_kwdo == NULL)) {
7259 PRINT_ERROR("Runtime error: %s", "Cast failed");
7260 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2410);
7261 show_backtrace(1);
7262 }
7263 self->attrs[COLOR_parser_nodes__ADoExpr___n_kwdo].val = var_n_kwdo; /* _n_kwdo on <self:ADoExpr> */
7264 if (var_n_kwdo == NULL) {
7265 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7266 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2411);
7267 show_backtrace(1);
7268 } else {
7269 { /* Inline parser_nodes#ANode#parent= (var_n_kwdo,self) on <var_n_kwdo:nullable TKwdo> */
7270 if (unlikely(var_n_kwdo == NULL)) {
7271 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7272 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
7273 show_backtrace(1);
7274 }
7275 var_n_kwdo->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwdo:nullable TKwdo> */
7276 RET_LABEL1:(void)0;
7277 }
7278 }
7279 self->attrs[COLOR_parser_nodes__ADoExpr___n_block].val = var_n_block; /* _n_block on <self:ADoExpr> */
7280 var = NULL;
7281 if (var_n_block == NULL) {
7282 var2 = 0; /* is null */
7283 } else {
7284 var2 = 1; /* arg is null and recv is not */
7285 }
7286 if (0) {
7287 { /* Inline kernel#Object#!= (var_n_block,var) on <var_n_block:nullable AExpr> */
7288 var_other = var;
7289 {
7290 var6 = ((short int (*)(val*, val*))(var_n_block->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_block, var_other) /* == on <var_n_block:nullable AExpr(AExpr)>*/;
7291 var5 = var6;
7292 }
7293 var7 = !var5;
7294 var3 = var7;
7295 goto RET_LABEL4;
7296 RET_LABEL4:(void)0;
7297 }
7298 var2 = var3;
7299 }
7300 if (var2){
7301 {
7302 { /* Inline parser_nodes#ANode#parent= (var_n_block,self) on <var_n_block:nullable AExpr(AExpr)> */
7303 var_n_block->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_block:nullable AExpr(AExpr)> */
7304 RET_LABEL8:(void)0;
7305 }
7306 }
7307 } else {
7308 }
7309 self->attrs[COLOR_parser_nodes__ALabelable___n_label].val = var_n_label; /* _n_label on <self:ADoExpr> */
7310 var9 = NULL;
7311 if (var_n_label == NULL) {
7312 var10 = 0; /* is null */
7313 } else {
7314 var10 = 1; /* arg is null and recv is not */
7315 }
7316 if (0) {
7317 { /* Inline kernel#Object#!= (var_n_label,var9) on <var_n_label:nullable ALabel> */
7318 var_other = var9;
7319 {
7320 var14 = ((short int (*)(val*, val*))(var_n_label->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_label, var_other) /* == on <var_n_label:nullable ALabel(ALabel)>*/;
7321 var13 = var14;
7322 }
7323 var15 = !var13;
7324 var11 = var15;
7325 goto RET_LABEL12;
7326 RET_LABEL12:(void)0;
7327 }
7328 var10 = var11;
7329 }
7330 if (var10){
7331 {
7332 { /* Inline parser_nodes#ANode#parent= (var_n_label,self) on <var_n_label:nullable ALabel(ALabel)> */
7333 var_n_label->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_label:nullable ALabel(ALabel)> */
7334 RET_LABEL16:(void)0;
7335 }
7336 }
7337 } else {
7338 }
7339 RET_LABEL:;
7340 }
7341 /* method parser_prod#ADoExpr#init_adoexpr for (self: Object, nullable TKwdo, nullable AExpr, nullable ALabel) */
7342 void VIRTUAL_parser_prod__ADoExpr__init_adoexpr(val* self, val* p0, val* p1, val* p2) {
7343 parser_prod__ADoExpr__init_adoexpr(self, p0, p1, p2); /* Direct call parser_prod#ADoExpr#init_adoexpr on <self:Object(ADoExpr)>*/
7344 RET_LABEL:;
7345 }
7346 /* method parser_prod#ADoExpr#replace_child for (self: ADoExpr, ANode, nullable ANode) */
7347 void parser_prod__ADoExpr__replace_child(val* self, val* p0, val* p1) {
7348 val* var_old_child /* var old_child: ANode */;
7349 val* var_new_child /* var new_child: nullable ANode */;
7350 val* var /* : TKwdo */;
7351 short int var1 /* : Bool */;
7352 short int var2 /* : Bool */;
7353 val* var_other /* var other: nullable Object */;
7354 short int var4 /* : Bool */;
7355 short int var6 /* : Bool */;
7356 short int var7 /* : Bool */;
7357 int cltype;
7358 int idtype;
7359 const char* var_class_name;
7360 val* var8 /* : nullable AExpr */;
7361 short int var9 /* : Bool */;
7362 short int var10 /* : Bool */;
7363 short int var12 /* : Bool */;
7364 short int var14 /* : Bool */;
7365 short int var15 /* : Bool */;
7366 int cltype16;
7367 int idtype17;
7368 const char* var_class_name18;
7369 val* var19 /* : nullable ALabel */;
7370 short int var20 /* : Bool */;
7371 short int var21 /* : Bool */;
7372 short int var23 /* : Bool */;
7373 short int var25 /* : Bool */;
7374 short int var26 /* : Bool */;
7375 int cltype27;
7376 int idtype28;
7377 const char* var_class_name29;
7378 var_old_child = p0;
7379 var_new_child = p1;
7380 var = self->attrs[COLOR_parser_nodes__ADoExpr___n_kwdo].val; /* _n_kwdo on <self:ADoExpr> */
7381 if (unlikely(var == NULL)) {
7382 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwdo");
7383 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2420);
7384 show_backtrace(1);
7385 }
7386 {
7387 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwdo> */
7388 var_other = var_old_child;
7389 {
7390 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TKwdo> */
7391 var6 = var == var_other;
7392 var4 = var6;
7393 goto RET_LABEL5;
7394 RET_LABEL5:(void)0;
7395 }
7396 }
7397 var2 = var4;
7398 goto RET_LABEL3;
7399 RET_LABEL3:(void)0;
7400 }
7401 var1 = var2;
7402 }
7403 if (var1){
7404 /* <var_new_child:nullable ANode> isa TKwdo */
7405 cltype = type_parser_nodes__TKwdo.color;
7406 idtype = type_parser_nodes__TKwdo.id;
7407 if(var_new_child == NULL) {
7408 var7 = 0;
7409 } else {
7410 if(cltype >= var_new_child->type->table_size) {
7411 var7 = 0;
7412 } else {
7413 var7 = var_new_child->type->type_table[cltype] == idtype;
7414 }
7415 }
7416 if (unlikely(!var7)) {
7417 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
7418 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwdo", var_class_name);
7419 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2421);
7420 show_backtrace(1);
7421 }
7422 {
7423 parser_prod__ADoExpr__n_kwdo_61d(self, var_new_child); /* Direct call parser_prod#ADoExpr#n_kwdo= on <self:ADoExpr>*/
7424 }
7425 goto RET_LABEL;
7426 } else {
7427 }
7428 var8 = self->attrs[COLOR_parser_nodes__ADoExpr___n_block].val; /* _n_block on <self:ADoExpr> */
7429 if (var8 == NULL) {
7430 var9 = 0; /* <var_old_child:ANode> cannot be null */
7431 } else {
7432 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:nullable AExpr> */
7433 var_other = var_old_child;
7434 {
7435 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:nullable AExpr(AExpr)> */
7436 var14 = var8 == var_other;
7437 var12 = var14;
7438 goto RET_LABEL13;
7439 RET_LABEL13:(void)0;
7440 }
7441 }
7442 var10 = var12;
7443 goto RET_LABEL11;
7444 RET_LABEL11:(void)0;
7445 }
7446 var9 = var10;
7447 }
7448 if (var9){
7449 /* <var_new_child:nullable ANode> isa nullable AExpr */
7450 cltype16 = type_nullable_parser_nodes__AExpr.color;
7451 idtype17 = type_nullable_parser_nodes__AExpr.id;
7452 if(var_new_child == NULL) {
7453 var15 = 1;
7454 } else {
7455 if(cltype16 >= var_new_child->type->table_size) {
7456 var15 = 0;
7457 } else {
7458 var15 = var_new_child->type->type_table[cltype16] == idtype17;
7459 }
7460 }
7461 if (unlikely(!var15)) {
7462 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
7463 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AExpr", var_class_name18);
7464 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2425);
7465 show_backtrace(1);
7466 }
7467 {
7468 parser_prod__ADoExpr__n_block_61d(self, var_new_child); /* Direct call parser_prod#ADoExpr#n_block= on <self:ADoExpr>*/
7469 }
7470 goto RET_LABEL;
7471 } else {
7472 }
7473 var19 = self->attrs[COLOR_parser_nodes__ALabelable___n_label].val; /* _n_label on <self:ADoExpr> */
7474 if (var19 == NULL) {
7475 var20 = 0; /* <var_old_child:ANode> cannot be null */
7476 } else {
7477 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:nullable ALabel> */
7478 var_other = var_old_child;
7479 {
7480 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:nullable ALabel(ALabel)> */
7481 var25 = var19 == var_other;
7482 var23 = var25;
7483 goto RET_LABEL24;
7484 RET_LABEL24:(void)0;
7485 }
7486 }
7487 var21 = var23;
7488 goto RET_LABEL22;
7489 RET_LABEL22:(void)0;
7490 }
7491 var20 = var21;
7492 }
7493 if (var20){
7494 /* <var_new_child:nullable ANode> isa nullable ALabel */
7495 cltype27 = type_nullable_parser_nodes__ALabel.color;
7496 idtype28 = type_nullable_parser_nodes__ALabel.id;
7497 if(var_new_child == NULL) {
7498 var26 = 1;
7499 } else {
7500 if(cltype27 >= var_new_child->type->table_size) {
7501 var26 = 0;
7502 } else {
7503 var26 = var_new_child->type->type_table[cltype27] == idtype28;
7504 }
7505 }
7506 if (unlikely(!var26)) {
7507 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
7508 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ALabel", var_class_name29);
7509 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2429);
7510 show_backtrace(1);
7511 }
7512 {
7513 parser_prod__ADoExpr__n_label_61d(self, var_new_child); /* Direct call parser_prod#ADoExpr#n_label= on <self:ADoExpr>*/
7514 }
7515 goto RET_LABEL;
7516 } else {
7517 }
7518 RET_LABEL:;
7519 }
7520 /* method parser_prod#ADoExpr#replace_child for (self: Object, ANode, nullable ANode) */
7521 void VIRTUAL_parser_prod__ADoExpr__replace_child(val* self, val* p0, val* p1) {
7522 parser_prod__ADoExpr__replace_child(self, p0, p1); /* Direct call parser_prod#ADoExpr#replace_child on <self:Object(ADoExpr)>*/
7523 RET_LABEL:;
7524 }
7525 /* method parser_prod#ADoExpr#n_kwdo= for (self: ADoExpr, TKwdo) */
7526 void parser_prod__ADoExpr__n_kwdo_61d(val* self, val* p0) {
7527 val* var_node /* var node: TKwdo */;
7528 var_node = p0;
7529 self->attrs[COLOR_parser_nodes__ADoExpr___n_kwdo].val = var_node; /* _n_kwdo on <self:ADoExpr> */
7530 {
7531 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwdo> */
7532 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwdo> */
7533 RET_LABEL1:(void)0;
7534 }
7535 }
7536 RET_LABEL:;
7537 }
7538 /* method parser_prod#ADoExpr#n_kwdo= for (self: Object, TKwdo) */
7539 void VIRTUAL_parser_prod__ADoExpr__n_kwdo_61d(val* self, val* p0) {
7540 parser_prod__ADoExpr__n_kwdo_61d(self, p0); /* Direct call parser_prod#ADoExpr#n_kwdo= on <self:Object(ADoExpr)>*/
7541 RET_LABEL:;
7542 }
7543 /* method parser_prod#ADoExpr#n_block= for (self: ADoExpr, nullable AExpr) */
7544 void parser_prod__ADoExpr__n_block_61d(val* self, val* p0) {
7545 val* var_node /* var node: nullable AExpr */;
7546 val* var /* : null */;
7547 short int var1 /* : Bool */;
7548 short int var2 /* : Bool */;
7549 val* var_other /* var other: nullable Object */;
7550 short int var4 /* : Bool */;
7551 short int var5 /* : Bool */;
7552 short int var6 /* : Bool */;
7553 var_node = p0;
7554 self->attrs[COLOR_parser_nodes__ADoExpr___n_block].val = var_node; /* _n_block on <self:ADoExpr> */
7555 var = NULL;
7556 if (var_node == NULL) {
7557 var1 = 0; /* is null */
7558 } else {
7559 var1 = 1; /* arg is null and recv is not */
7560 }
7561 if (0) {
7562 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AExpr> */
7563 var_other = var;
7564 {
7565 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AExpr(AExpr)>*/;
7566 var4 = var5;
7567 }
7568 var6 = !var4;
7569 var2 = var6;
7570 goto RET_LABEL3;
7571 RET_LABEL3:(void)0;
7572 }
7573 var1 = var2;
7574 }
7575 if (var1){
7576 {
7577 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AExpr(AExpr)> */
7578 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AExpr(AExpr)> */
7579 RET_LABEL7:(void)0;
7580 }
7581 }
7582 } else {
7583 }
7584 RET_LABEL:;
7585 }
7586 /* method parser_prod#ADoExpr#n_block= for (self: Object, nullable AExpr) */
7587 void VIRTUAL_parser_prod__ADoExpr__n_block_61d(val* self, val* p0) {
7588 parser_prod__ADoExpr__n_block_61d(self, p0); /* Direct call parser_prod#ADoExpr#n_block= on <self:Object(ADoExpr)>*/
7589 RET_LABEL:;
7590 }
7591 /* method parser_prod#ADoExpr#n_label= for (self: ADoExpr, nullable ALabel) */
7592 void parser_prod__ADoExpr__n_label_61d(val* self, val* p0) {
7593 val* var_node /* var node: nullable ALabel */;
7594 val* var /* : null */;
7595 short int var1 /* : Bool */;
7596 short int var2 /* : Bool */;
7597 val* var_other /* var other: nullable Object */;
7598 short int var4 /* : Bool */;
7599 short int var5 /* : Bool */;
7600 short int var6 /* : Bool */;
7601 var_node = p0;
7602 self->attrs[COLOR_parser_nodes__ALabelable___n_label].val = var_node; /* _n_label on <self:ADoExpr> */
7603 var = NULL;
7604 if (var_node == NULL) {
7605 var1 = 0; /* is null */
7606 } else {
7607 var1 = 1; /* arg is null and recv is not */
7608 }
7609 if (0) {
7610 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable ALabel> */
7611 var_other = var;
7612 {
7613 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable ALabel(ALabel)>*/;
7614 var4 = var5;
7615 }
7616 var6 = !var4;
7617 var2 = var6;
7618 goto RET_LABEL3;
7619 RET_LABEL3:(void)0;
7620 }
7621 var1 = var2;
7622 }
7623 if (var1){
7624 {
7625 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable ALabel(ALabel)> */
7626 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable ALabel(ALabel)> */
7627 RET_LABEL7:(void)0;
7628 }
7629 }
7630 } else {
7631 }
7632 RET_LABEL:;
7633 }
7634 /* method parser_prod#ADoExpr#n_label= for (self: Object, nullable ALabel) */
7635 void VIRTUAL_parser_prod__ADoExpr__n_label_61d(val* self, val* p0) {
7636 parser_prod__ADoExpr__n_label_61d(self, p0); /* Direct call parser_prod#ADoExpr#n_label= on <self:Object(ADoExpr)>*/
7637 RET_LABEL:;
7638 }
7639 /* method parser_prod#ADoExpr#visit_all for (self: ADoExpr, Visitor) */
7640 void parser_prod__ADoExpr__visit_all(val* self, val* p0) {
7641 val* var_v /* var v: Visitor */;
7642 val* var /* : TKwdo */;
7643 val* var1 /* : nullable AExpr */;
7644 val* var2 /* : nullable ALabel */;
7645 var_v = p0;
7646 var = self->attrs[COLOR_parser_nodes__ADoExpr___n_kwdo].val; /* _n_kwdo on <self:ADoExpr> */
7647 if (unlikely(var == NULL)) {
7648 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwdo");
7649 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2453);
7650 show_backtrace(1);
7651 }
7652 {
7653 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7654 }
7655 var1 = self->attrs[COLOR_parser_nodes__ADoExpr___n_block].val; /* _n_block on <self:ADoExpr> */
7656 {
7657 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7658 }
7659 var2 = self->attrs[COLOR_parser_nodes__ALabelable___n_label].val; /* _n_label on <self:ADoExpr> */
7660 {
7661 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7662 }
7663 RET_LABEL:;
7664 }
7665 /* method parser_prod#ADoExpr#visit_all for (self: Object, Visitor) */
7666 void VIRTUAL_parser_prod__ADoExpr__visit_all(val* self, val* p0) {
7667 parser_prod__ADoExpr__visit_all(self, p0); /* Direct call parser_prod#ADoExpr#visit_all on <self:Object(ADoExpr)>*/
7668 RET_LABEL:;
7669 }
7670 /* method parser_prod#AIfExpr#init_aifexpr for (self: AIfExpr, nullable TKwif, nullable AExpr, nullable AExpr, nullable AExpr) */
7671 void parser_prod__AIfExpr__init_aifexpr(val* self, val* p0, val* p1, val* p2, val* p3) {
7672 val* var_n_kwif /* var n_kwif: nullable TKwif */;
7673 val* var_n_expr /* var n_expr: nullable AExpr */;
7674 val* var_n_then /* var n_then: nullable AExpr */;
7675 val* var_n_else /* var n_else: nullable AExpr */;
7676 val* var /* : null */;
7677 short int var3 /* : Bool */;
7678 short int var4 /* : Bool */;
7679 val* var_other /* var other: nullable Object */;
7680 short int var6 /* : Bool */;
7681 short int var7 /* : Bool */;
7682 short int var8 /* : Bool */;
7683 val* var10 /* : null */;
7684 short int var11 /* : Bool */;
7685 short int var12 /* : Bool */;
7686 short int var14 /* : Bool */;
7687 short int var15 /* : Bool */;
7688 short int var16 /* : Bool */;
7689 var_n_kwif = p0;
7690 var_n_expr = p1;
7691 var_n_then = p2;
7692 var_n_else = p3;
7693 if (unlikely(var_n_kwif == NULL)) {
7694 PRINT_ERROR("Runtime error: %s", "Cast failed");
7695 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2466);
7696 show_backtrace(1);
7697 }
7698 self->attrs[COLOR_parser_nodes__AIfExpr___n_kwif].val = var_n_kwif; /* _n_kwif on <self:AIfExpr> */
7699 if (var_n_kwif == NULL) {
7700 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7701 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2467);
7702 show_backtrace(1);
7703 } else {
7704 { /* Inline parser_nodes#ANode#parent= (var_n_kwif,self) on <var_n_kwif:nullable TKwif> */
7705 if (unlikely(var_n_kwif == NULL)) {
7706 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7707 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
7708 show_backtrace(1);
7709 }
7710 var_n_kwif->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwif:nullable TKwif> */
7711 RET_LABEL1:(void)0;
7712 }
7713 }
7714 if (unlikely(var_n_expr == NULL)) {
7715 PRINT_ERROR("Runtime error: %s", "Cast failed");
7716 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2468);
7717 show_backtrace(1);
7718 }
7719 self->attrs[COLOR_parser_nodes__AIfExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AIfExpr> */
7720 if (var_n_expr == NULL) {
7721 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7722 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2469);
7723 show_backtrace(1);
7724 } else {
7725 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
7726 if (unlikely(var_n_expr == NULL)) {
7727 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7728 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
7729 show_backtrace(1);
7730 }
7731 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
7732 RET_LABEL2:(void)0;
7733 }
7734 }
7735 self->attrs[COLOR_parser_nodes__AIfExpr___n_then].val = var_n_then; /* _n_then on <self:AIfExpr> */
7736 var = NULL;
7737 if (var_n_then == NULL) {
7738 var3 = 0; /* is null */
7739 } else {
7740 var3 = 1; /* arg is null and recv is not */
7741 }
7742 if (0) {
7743 { /* Inline kernel#Object#!= (var_n_then,var) on <var_n_then:nullable AExpr> */
7744 var_other = var;
7745 {
7746 var7 = ((short int (*)(val*, val*))(var_n_then->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_then, var_other) /* == on <var_n_then:nullable AExpr(AExpr)>*/;
7747 var6 = var7;
7748 }
7749 var8 = !var6;
7750 var4 = var8;
7751 goto RET_LABEL5;
7752 RET_LABEL5:(void)0;
7753 }
7754 var3 = var4;
7755 }
7756 if (var3){
7757 {
7758 { /* Inline parser_nodes#ANode#parent= (var_n_then,self) on <var_n_then:nullable AExpr(AExpr)> */
7759 var_n_then->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_then:nullable AExpr(AExpr)> */
7760 RET_LABEL9:(void)0;
7761 }
7762 }
7763 } else {
7764 }
7765 self->attrs[COLOR_parser_nodes__AIfExpr___n_else].val = var_n_else; /* _n_else on <self:AIfExpr> */
7766 var10 = NULL;
7767 if (var_n_else == NULL) {
7768 var11 = 0; /* is null */
7769 } else {
7770 var11 = 1; /* arg is null and recv is not */
7771 }
7772 if (0) {
7773 { /* Inline kernel#Object#!= (var_n_else,var10) on <var_n_else:nullable AExpr> */
7774 var_other = var10;
7775 {
7776 var15 = ((short int (*)(val*, val*))(var_n_else->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_else, var_other) /* == on <var_n_else:nullable AExpr(AExpr)>*/;
7777 var14 = var15;
7778 }
7779 var16 = !var14;
7780 var12 = var16;
7781 goto RET_LABEL13;
7782 RET_LABEL13:(void)0;
7783 }
7784 var11 = var12;
7785 }
7786 if (var11){
7787 {
7788 { /* Inline parser_nodes#ANode#parent= (var_n_else,self) on <var_n_else:nullable AExpr(AExpr)> */
7789 var_n_else->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_else:nullable AExpr(AExpr)> */
7790 RET_LABEL17:(void)0;
7791 }
7792 }
7793 } else {
7794 }
7795 RET_LABEL:;
7796 }
7797 /* method parser_prod#AIfExpr#init_aifexpr for (self: Object, nullable TKwif, nullable AExpr, nullable AExpr, nullable AExpr) */
7798 void VIRTUAL_parser_prod__AIfExpr__init_aifexpr(val* self, val* p0, val* p1, val* p2, val* p3) {
7799 parser_prod__AIfExpr__init_aifexpr(self, p0, p1, p2, p3); /* Direct call parser_prod#AIfExpr#init_aifexpr on <self:Object(AIfExpr)>*/
7800 RET_LABEL:;
7801 }
7802 /* method parser_prod#AIfExpr#replace_child for (self: AIfExpr, ANode, nullable ANode) */
7803 void parser_prod__AIfExpr__replace_child(val* self, val* p0, val* p1) {
7804 val* var_old_child /* var old_child: ANode */;
7805 val* var_new_child /* var new_child: nullable ANode */;
7806 val* var /* : TKwif */;
7807 short int var1 /* : Bool */;
7808 short int var2 /* : Bool */;
7809 val* var_other /* var other: nullable Object */;
7810 short int var4 /* : Bool */;
7811 short int var6 /* : Bool */;
7812 short int var7 /* : Bool */;
7813 int cltype;
7814 int idtype;
7815 const char* var_class_name;
7816 val* var8 /* : AExpr */;
7817 short int var9 /* : Bool */;
7818 short int var10 /* : Bool */;
7819 short int var12 /* : Bool */;
7820 short int var14 /* : Bool */;
7821 short int var15 /* : Bool */;
7822 int cltype16;
7823 int idtype17;
7824 const char* var_class_name18;
7825 val* var19 /* : nullable AExpr */;
7826 short int var20 /* : Bool */;
7827 short int var21 /* : Bool */;
7828 short int var23 /* : Bool */;
7829 short int var25 /* : Bool */;
7830 short int var26 /* : Bool */;
7831 int cltype27;
7832 int idtype28;
7833 const char* var_class_name29;
7834 val* var30 /* : nullable AExpr */;
7835 short int var31 /* : Bool */;
7836 short int var32 /* : Bool */;
7837 short int var34 /* : Bool */;
7838 short int var36 /* : Bool */;
7839 short int var37 /* : Bool */;
7840 int cltype38;
7841 int idtype39;
7842 const char* var_class_name40;
7843 var_old_child = p0;
7844 var_new_child = p1;
7845 var = self->attrs[COLOR_parser_nodes__AIfExpr___n_kwif].val; /* _n_kwif on <self:AIfExpr> */
7846 if (unlikely(var == NULL)) {
7847 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwif");
7848 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2478);
7849 show_backtrace(1);
7850 }
7851 {
7852 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwif> */
7853 var_other = var_old_child;
7854 {
7855 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TKwif> */
7856 var6 = var == var_other;
7857 var4 = var6;
7858 goto RET_LABEL5;
7859 RET_LABEL5:(void)0;
7860 }
7861 }
7862 var2 = var4;
7863 goto RET_LABEL3;
7864 RET_LABEL3:(void)0;
7865 }
7866 var1 = var2;
7867 }
7868 if (var1){
7869 /* <var_new_child:nullable ANode> isa TKwif */
7870 cltype = type_parser_nodes__TKwif.color;
7871 idtype = type_parser_nodes__TKwif.id;
7872 if(var_new_child == NULL) {
7873 var7 = 0;
7874 } else {
7875 if(cltype >= var_new_child->type->table_size) {
7876 var7 = 0;
7877 } else {
7878 var7 = var_new_child->type->type_table[cltype] == idtype;
7879 }
7880 }
7881 if (unlikely(!var7)) {
7882 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
7883 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwif", var_class_name);
7884 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2479);
7885 show_backtrace(1);
7886 }
7887 {
7888 parser_prod__AIfExpr__n_kwif_61d(self, var_new_child); /* Direct call parser_prod#AIfExpr#n_kwif= on <self:AIfExpr>*/
7889 }
7890 goto RET_LABEL;
7891 } else {
7892 }
7893 var8 = self->attrs[COLOR_parser_nodes__AIfExpr___n_expr].val; /* _n_expr on <self:AIfExpr> */
7894 if (unlikely(var8 == NULL)) {
7895 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
7896 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2482);
7897 show_backtrace(1);
7898 }
7899 {
7900 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExpr> */
7901 var_other = var_old_child;
7902 {
7903 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExpr> */
7904 var14 = var8 == var_other;
7905 var12 = var14;
7906 goto RET_LABEL13;
7907 RET_LABEL13:(void)0;
7908 }
7909 }
7910 var10 = var12;
7911 goto RET_LABEL11;
7912 RET_LABEL11:(void)0;
7913 }
7914 var9 = var10;
7915 }
7916 if (var9){
7917 /* <var_new_child:nullable ANode> isa AExpr */
7918 cltype16 = type_parser_nodes__AExpr.color;
7919 idtype17 = type_parser_nodes__AExpr.id;
7920 if(var_new_child == NULL) {
7921 var15 = 0;
7922 } else {
7923 if(cltype16 >= var_new_child->type->table_size) {
7924 var15 = 0;
7925 } else {
7926 var15 = var_new_child->type->type_table[cltype16] == idtype17;
7927 }
7928 }
7929 if (unlikely(!var15)) {
7930 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
7931 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name18);
7932 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2483);
7933 show_backtrace(1);
7934 }
7935 {
7936 parser_prod__AIfExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AIfExpr#n_expr= on <self:AIfExpr>*/
7937 }
7938 goto RET_LABEL;
7939 } else {
7940 }
7941 var19 = self->attrs[COLOR_parser_nodes__AIfExpr___n_then].val; /* _n_then on <self:AIfExpr> */
7942 if (var19 == NULL) {
7943 var20 = 0; /* <var_old_child:ANode> cannot be null */
7944 } else {
7945 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:nullable AExpr> */
7946 var_other = var_old_child;
7947 {
7948 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:nullable AExpr(AExpr)> */
7949 var25 = var19 == var_other;
7950 var23 = var25;
7951 goto RET_LABEL24;
7952 RET_LABEL24:(void)0;
7953 }
7954 }
7955 var21 = var23;
7956 goto RET_LABEL22;
7957 RET_LABEL22:(void)0;
7958 }
7959 var20 = var21;
7960 }
7961 if (var20){
7962 /* <var_new_child:nullable ANode> isa nullable AExpr */
7963 cltype27 = type_nullable_parser_nodes__AExpr.color;
7964 idtype28 = type_nullable_parser_nodes__AExpr.id;
7965 if(var_new_child == NULL) {
7966 var26 = 1;
7967 } else {
7968 if(cltype27 >= var_new_child->type->table_size) {
7969 var26 = 0;
7970 } else {
7971 var26 = var_new_child->type->type_table[cltype27] == idtype28;
7972 }
7973 }
7974 if (unlikely(!var26)) {
7975 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
7976 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AExpr", var_class_name29);
7977 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2487);
7978 show_backtrace(1);
7979 }
7980 {
7981 parser_prod__AIfExpr__n_then_61d(self, var_new_child); /* Direct call parser_prod#AIfExpr#n_then= on <self:AIfExpr>*/
7982 }
7983 goto RET_LABEL;
7984 } else {
7985 }
7986 var30 = self->attrs[COLOR_parser_nodes__AIfExpr___n_else].val; /* _n_else on <self:AIfExpr> */
7987 if (var30 == NULL) {
7988 var31 = 0; /* <var_old_child:ANode> cannot be null */
7989 } else {
7990 { /* Inline kernel#Object#== (var30,var_old_child) on <var30:nullable AExpr> */
7991 var_other = var_old_child;
7992 {
7993 { /* Inline kernel#Object#is_same_instance (var30,var_other) on <var30:nullable AExpr(AExpr)> */
7994 var36 = var30 == var_other;
7995 var34 = var36;
7996 goto RET_LABEL35;
7997 RET_LABEL35:(void)0;
7998 }
7999 }
8000 var32 = var34;
8001 goto RET_LABEL33;
8002 RET_LABEL33:(void)0;
8003 }
8004 var31 = var32;
8005 }
8006 if (var31){
8007 /* <var_new_child:nullable ANode> isa nullable AExpr */
8008 cltype38 = type_nullable_parser_nodes__AExpr.color;
8009 idtype39 = type_nullable_parser_nodes__AExpr.id;
8010 if(var_new_child == NULL) {
8011 var37 = 1;
8012 } else {
8013 if(cltype38 >= var_new_child->type->table_size) {
8014 var37 = 0;
8015 } else {
8016 var37 = var_new_child->type->type_table[cltype38] == idtype39;
8017 }
8018 }
8019 if (unlikely(!var37)) {
8020 var_class_name40 = var_new_child == NULL ? "null" : var_new_child->type->name;
8021 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AExpr", var_class_name40);
8022 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2491);
8023 show_backtrace(1);
8024 }
8025 {
8026 parser_prod__AIfExpr__n_else_61d(self, var_new_child); /* Direct call parser_prod#AIfExpr#n_else= on <self:AIfExpr>*/
8027 }
8028 goto RET_LABEL;
8029 } else {
8030 }
8031 RET_LABEL:;
8032 }
8033 /* method parser_prod#AIfExpr#replace_child for (self: Object, ANode, nullable ANode) */
8034 void VIRTUAL_parser_prod__AIfExpr__replace_child(val* self, val* p0, val* p1) {
8035 parser_prod__AIfExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AIfExpr#replace_child on <self:Object(AIfExpr)>*/
8036 RET_LABEL:;
8037 }
8038 /* method parser_prod#AIfExpr#n_kwif= for (self: AIfExpr, TKwif) */
8039 void parser_prod__AIfExpr__n_kwif_61d(val* self, val* p0) {
8040 val* var_node /* var node: TKwif */;
8041 var_node = p0;
8042 self->attrs[COLOR_parser_nodes__AIfExpr___n_kwif].val = var_node; /* _n_kwif on <self:AIfExpr> */
8043 {
8044 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwif> */
8045 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwif> */
8046 RET_LABEL1:(void)0;
8047 }
8048 }
8049 RET_LABEL:;
8050 }
8051 /* method parser_prod#AIfExpr#n_kwif= for (self: Object, TKwif) */
8052 void VIRTUAL_parser_prod__AIfExpr__n_kwif_61d(val* self, val* p0) {
8053 parser_prod__AIfExpr__n_kwif_61d(self, p0); /* Direct call parser_prod#AIfExpr#n_kwif= on <self:Object(AIfExpr)>*/
8054 RET_LABEL:;
8055 }
8056 /* method parser_prod#AIfExpr#n_expr= for (self: AIfExpr, AExpr) */
8057 void parser_prod__AIfExpr__n_expr_61d(val* self, val* p0) {
8058 val* var_node /* var node: AExpr */;
8059 var_node = p0;
8060 self->attrs[COLOR_parser_nodes__AIfExpr___n_expr].val = var_node; /* _n_expr on <self:AIfExpr> */
8061 {
8062 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
8063 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
8064 RET_LABEL1:(void)0;
8065 }
8066 }
8067 RET_LABEL:;
8068 }
8069 /* method parser_prod#AIfExpr#n_expr= for (self: Object, AExpr) */
8070 void VIRTUAL_parser_prod__AIfExpr__n_expr_61d(val* self, val* p0) {
8071 parser_prod__AIfExpr__n_expr_61d(self, p0); /* Direct call parser_prod#AIfExpr#n_expr= on <self:Object(AIfExpr)>*/
8072 RET_LABEL:;
8073 }
8074 /* method parser_prod#AIfExpr#n_then= for (self: AIfExpr, nullable AExpr) */
8075 void parser_prod__AIfExpr__n_then_61d(val* self, val* p0) {
8076 val* var_node /* var node: nullable AExpr */;
8077 val* var /* : null */;
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 var5 /* : Bool */;
8083 short int var6 /* : Bool */;
8084 var_node = p0;
8085 self->attrs[COLOR_parser_nodes__AIfExpr___n_then].val = var_node; /* _n_then on <self:AIfExpr> */
8086 var = NULL;
8087 if (var_node == NULL) {
8088 var1 = 0; /* is null */
8089 } else {
8090 var1 = 1; /* arg is null and recv is not */
8091 }
8092 if (0) {
8093 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AExpr> */
8094 var_other = var;
8095 {
8096 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AExpr(AExpr)>*/;
8097 var4 = var5;
8098 }
8099 var6 = !var4;
8100 var2 = var6;
8101 goto RET_LABEL3;
8102 RET_LABEL3:(void)0;
8103 }
8104 var1 = var2;
8105 }
8106 if (var1){
8107 {
8108 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AExpr(AExpr)> */
8109 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AExpr(AExpr)> */
8110 RET_LABEL7:(void)0;
8111 }
8112 }
8113 } else {
8114 }
8115 RET_LABEL:;
8116 }
8117 /* method parser_prod#AIfExpr#n_then= for (self: Object, nullable AExpr) */
8118 void VIRTUAL_parser_prod__AIfExpr__n_then_61d(val* self, val* p0) {
8119 parser_prod__AIfExpr__n_then_61d(self, p0); /* Direct call parser_prod#AIfExpr#n_then= on <self:Object(AIfExpr)>*/
8120 RET_LABEL:;
8121 }
8122 /* method parser_prod#AIfExpr#n_else= for (self: AIfExpr, nullable AExpr) */
8123 void parser_prod__AIfExpr__n_else_61d(val* self, val* p0) {
8124 val* var_node /* var node: nullable AExpr */;
8125 val* var /* : null */;
8126 short int var1 /* : Bool */;
8127 short int var2 /* : Bool */;
8128 val* var_other /* var other: nullable Object */;
8129 short int var4 /* : Bool */;
8130 short int var5 /* : Bool */;
8131 short int var6 /* : Bool */;
8132 var_node = p0;
8133 self->attrs[COLOR_parser_nodes__AIfExpr___n_else].val = var_node; /* _n_else on <self:AIfExpr> */
8134 var = NULL;
8135 if (var_node == NULL) {
8136 var1 = 0; /* is null */
8137 } else {
8138 var1 = 1; /* arg is null and recv is not */
8139 }
8140 if (0) {
8141 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AExpr> */
8142 var_other = var;
8143 {
8144 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AExpr(AExpr)>*/;
8145 var4 = var5;
8146 }
8147 var6 = !var4;
8148 var2 = var6;
8149 goto RET_LABEL3;
8150 RET_LABEL3:(void)0;
8151 }
8152 var1 = var2;
8153 }
8154 if (var1){
8155 {
8156 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AExpr(AExpr)> */
8157 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AExpr(AExpr)> */
8158 RET_LABEL7:(void)0;
8159 }
8160 }
8161 } else {
8162 }
8163 RET_LABEL:;
8164 }
8165 /* method parser_prod#AIfExpr#n_else= for (self: Object, nullable AExpr) */
8166 void VIRTUAL_parser_prod__AIfExpr__n_else_61d(val* self, val* p0) {
8167 parser_prod__AIfExpr__n_else_61d(self, p0); /* Direct call parser_prod#AIfExpr#n_else= on <self:Object(AIfExpr)>*/
8168 RET_LABEL:;
8169 }
8170 /* method parser_prod#AIfExpr#visit_all for (self: AIfExpr, Visitor) */
8171 void parser_prod__AIfExpr__visit_all(val* self, val* p0) {
8172 val* var_v /* var v: Visitor */;
8173 val* var /* : TKwif */;
8174 val* var1 /* : AExpr */;
8175 val* var2 /* : nullable AExpr */;
8176 val* var3 /* : nullable AExpr */;
8177 var_v = p0;
8178 var = self->attrs[COLOR_parser_nodes__AIfExpr___n_kwif].val; /* _n_kwif on <self:AIfExpr> */
8179 if (unlikely(var == NULL)) {
8180 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwif");
8181 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2520);
8182 show_backtrace(1);
8183 }
8184 {
8185 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8186 }
8187 var1 = self->attrs[COLOR_parser_nodes__AIfExpr___n_expr].val; /* _n_expr on <self:AIfExpr> */
8188 if (unlikely(var1 == NULL)) {
8189 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
8190 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2521);
8191 show_backtrace(1);
8192 }
8193 {
8194 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8195 }
8196 var2 = self->attrs[COLOR_parser_nodes__AIfExpr___n_then].val; /* _n_then on <self:AIfExpr> */
8197 {
8198 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8199 }
8200 var3 = self->attrs[COLOR_parser_nodes__AIfExpr___n_else].val; /* _n_else on <self:AIfExpr> */
8201 {
8202 parser_nodes__Visitor__enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8203 }
8204 RET_LABEL:;
8205 }
8206 /* method parser_prod#AIfExpr#visit_all for (self: Object, Visitor) */
8207 void VIRTUAL_parser_prod__AIfExpr__visit_all(val* self, val* p0) {
8208 parser_prod__AIfExpr__visit_all(self, p0); /* Direct call parser_prod#AIfExpr#visit_all on <self:Object(AIfExpr)>*/
8209 RET_LABEL:;
8210 }
8211 /* method parser_prod#AIfexprExpr#init_aifexprexpr for (self: AIfexprExpr, nullable TKwif, nullable AExpr, nullable TKwthen, nullable AExpr, nullable TKwelse, nullable AExpr) */
8212 void parser_prod__AIfexprExpr__init_aifexprexpr(val* self, val* p0, val* p1, val* p2, val* p3, val* p4, val* p5) {
8213 val* var_n_kwif /* var n_kwif: nullable TKwif */;
8214 val* var_n_expr /* var n_expr: nullable AExpr */;
8215 val* var_n_kwthen /* var n_kwthen: nullable TKwthen */;
8216 val* var_n_then /* var n_then: nullable AExpr */;
8217 val* var_n_kwelse /* var n_kwelse: nullable TKwelse */;
8218 val* var_n_else /* var n_else: nullable AExpr */;
8219 var_n_kwif = p0;
8220 var_n_expr = p1;
8221 var_n_kwthen = p2;
8222 var_n_then = p3;
8223 var_n_kwelse = p4;
8224 var_n_else = p5;
8225 if (unlikely(var_n_kwif == NULL)) {
8226 PRINT_ERROR("Runtime error: %s", "Cast failed");
8227 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2536);
8228 show_backtrace(1);
8229 }
8230 self->attrs[COLOR_parser_nodes__AIfexprExpr___n_kwif].val = var_n_kwif; /* _n_kwif on <self:AIfexprExpr> */
8231 if (var_n_kwif == NULL) {
8232 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8233 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2537);
8234 show_backtrace(1);
8235 } else {
8236 { /* Inline parser_nodes#ANode#parent= (var_n_kwif,self) on <var_n_kwif:nullable TKwif> */
8237 if (unlikely(var_n_kwif == NULL)) {
8238 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8239 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
8240 show_backtrace(1);
8241 }
8242 var_n_kwif->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwif:nullable TKwif> */
8243 RET_LABEL1:(void)0;
8244 }
8245 }
8246 if (unlikely(var_n_expr == NULL)) {
8247 PRINT_ERROR("Runtime error: %s", "Cast failed");
8248 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2538);
8249 show_backtrace(1);
8250 }
8251 self->attrs[COLOR_parser_nodes__AIfexprExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AIfexprExpr> */
8252 if (var_n_expr == NULL) {
8253 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8254 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2539);
8255 show_backtrace(1);
8256 } else {
8257 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
8258 if (unlikely(var_n_expr == NULL)) {
8259 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8260 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
8261 show_backtrace(1);
8262 }
8263 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
8264 RET_LABEL2:(void)0;
8265 }
8266 }
8267 if (unlikely(var_n_kwthen == NULL)) {
8268 PRINT_ERROR("Runtime error: %s", "Cast failed");
8269 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2540);
8270 show_backtrace(1);
8271 }
8272 self->attrs[COLOR_parser_nodes__AIfexprExpr___n_kwthen].val = var_n_kwthen; /* _n_kwthen on <self:AIfexprExpr> */
8273 if (var_n_kwthen == NULL) {
8274 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8275 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2541);
8276 show_backtrace(1);
8277 } else {
8278 { /* Inline parser_nodes#ANode#parent= (var_n_kwthen,self) on <var_n_kwthen:nullable TKwthen> */
8279 if (unlikely(var_n_kwthen == NULL)) {
8280 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8281 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
8282 show_backtrace(1);
8283 }
8284 var_n_kwthen->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwthen:nullable TKwthen> */
8285 RET_LABEL3:(void)0;
8286 }
8287 }
8288 if (unlikely(var_n_then == NULL)) {
8289 PRINT_ERROR("Runtime error: %s", "Cast failed");
8290 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2542);
8291 show_backtrace(1);
8292 }
8293 self->attrs[COLOR_parser_nodes__AIfexprExpr___n_then].val = var_n_then; /* _n_then on <self:AIfexprExpr> */
8294 if (var_n_then == NULL) {
8295 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8296 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2543);
8297 show_backtrace(1);
8298 } else {
8299 { /* Inline parser_nodes#ANode#parent= (var_n_then,self) on <var_n_then:nullable AExpr> */
8300 if (unlikely(var_n_then == NULL)) {
8301 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8302 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
8303 show_backtrace(1);
8304 }
8305 var_n_then->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_then:nullable AExpr> */
8306 RET_LABEL4:(void)0;
8307 }
8308 }
8309 if (unlikely(var_n_kwelse == NULL)) {
8310 PRINT_ERROR("Runtime error: %s", "Cast failed");
8311 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2544);
8312 show_backtrace(1);
8313 }
8314 self->attrs[COLOR_parser_nodes__AIfexprExpr___n_kwelse].val = var_n_kwelse; /* _n_kwelse on <self:AIfexprExpr> */
8315 if (var_n_kwelse == NULL) {
8316 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8317 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2545);
8318 show_backtrace(1);
8319 } else {
8320 { /* Inline parser_nodes#ANode#parent= (var_n_kwelse,self) on <var_n_kwelse:nullable TKwelse> */
8321 if (unlikely(var_n_kwelse == NULL)) {
8322 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8323 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
8324 show_backtrace(1);
8325 }
8326 var_n_kwelse->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwelse:nullable TKwelse> */
8327 RET_LABEL5:(void)0;
8328 }
8329 }
8330 if (unlikely(var_n_else == NULL)) {
8331 PRINT_ERROR("Runtime error: %s", "Cast failed");
8332 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2546);
8333 show_backtrace(1);
8334 }
8335 self->attrs[COLOR_parser_nodes__AIfexprExpr___n_else].val = var_n_else; /* _n_else on <self:AIfexprExpr> */
8336 if (var_n_else == NULL) {
8337 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8338 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2547);
8339 show_backtrace(1);
8340 } else {
8341 { /* Inline parser_nodes#ANode#parent= (var_n_else,self) on <var_n_else:nullable AExpr> */
8342 if (unlikely(var_n_else == NULL)) {
8343 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8344 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
8345 show_backtrace(1);
8346 }
8347 var_n_else->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_else:nullable AExpr> */
8348 RET_LABEL6:(void)0;
8349 }
8350 }
8351 RET_LABEL:;
8352 }
8353 /* method parser_prod#AIfexprExpr#init_aifexprexpr for (self: Object, nullable TKwif, nullable AExpr, nullable TKwthen, nullable AExpr, nullable TKwelse, nullable AExpr) */
8354 void VIRTUAL_parser_prod__AIfexprExpr__init_aifexprexpr(val* self, val* p0, val* p1, val* p2, val* p3, val* p4, val* p5) {
8355 parser_prod__AIfexprExpr__init_aifexprexpr(self, p0, p1, p2, p3, p4, p5); /* Direct call parser_prod#AIfexprExpr#init_aifexprexpr on <self:Object(AIfexprExpr)>*/
8356 RET_LABEL:;
8357 }
8358 /* method parser_prod#AIfexprExpr#replace_child for (self: AIfexprExpr, ANode, nullable ANode) */
8359 void parser_prod__AIfexprExpr__replace_child(val* self, val* p0, val* p1) {
8360 val* var_old_child /* var old_child: ANode */;
8361 val* var_new_child /* var new_child: nullable ANode */;
8362 val* var /* : TKwif */;
8363 short int var1 /* : Bool */;
8364 short int var2 /* : Bool */;
8365 val* var_other /* var other: nullable Object */;
8366 short int var4 /* : Bool */;
8367 short int var6 /* : Bool */;
8368 short int var7 /* : Bool */;
8369 int cltype;
8370 int idtype;
8371 const char* var_class_name;
8372 val* var8 /* : AExpr */;
8373 short int var9 /* : Bool */;
8374 short int var10 /* : Bool */;
8375 short int var12 /* : Bool */;
8376 short int var14 /* : Bool */;
8377 short int var15 /* : Bool */;
8378 int cltype16;
8379 int idtype17;
8380 const char* var_class_name18;
8381 val* var19 /* : TKwthen */;
8382 short int var20 /* : Bool */;
8383 short int var21 /* : Bool */;
8384 short int var23 /* : Bool */;
8385 short int var25 /* : Bool */;
8386 short int var26 /* : Bool */;
8387 int cltype27;
8388 int idtype28;
8389 const char* var_class_name29;
8390 val* var30 /* : AExpr */;
8391 short int var31 /* : Bool */;
8392 short int var32 /* : Bool */;
8393 short int var34 /* : Bool */;
8394 short int var36 /* : Bool */;
8395 short int var37 /* : Bool */;
8396 int cltype38;
8397 int idtype39;
8398 const char* var_class_name40;
8399 val* var41 /* : TKwelse */;
8400 short int var42 /* : Bool */;
8401 short int var43 /* : Bool */;
8402 short int var45 /* : Bool */;
8403 short int var47 /* : Bool */;
8404 short int var48 /* : Bool */;
8405 int cltype49;
8406 int idtype50;
8407 const char* var_class_name51;
8408 val* var52 /* : AExpr */;
8409 short int var53 /* : Bool */;
8410 short int var54 /* : Bool */;
8411 short int var56 /* : Bool */;
8412 short int var58 /* : Bool */;
8413 short int var59 /* : Bool */;
8414 int cltype60;
8415 int idtype61;
8416 const char* var_class_name62;
8417 var_old_child = p0;
8418 var_new_child = p1;
8419 var = self->attrs[COLOR_parser_nodes__AIfexprExpr___n_kwif].val; /* _n_kwif on <self:AIfexprExpr> */
8420 if (unlikely(var == NULL)) {
8421 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwif");
8422 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2552);
8423 show_backtrace(1);
8424 }
8425 {
8426 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwif> */
8427 var_other = var_old_child;
8428 {
8429 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TKwif> */
8430 var6 = var == var_other;
8431 var4 = var6;
8432 goto RET_LABEL5;
8433 RET_LABEL5:(void)0;
8434 }
8435 }
8436 var2 = var4;
8437 goto RET_LABEL3;
8438 RET_LABEL3:(void)0;
8439 }
8440 var1 = var2;
8441 }
8442 if (var1){
8443 /* <var_new_child:nullable ANode> isa TKwif */
8444 cltype = type_parser_nodes__TKwif.color;
8445 idtype = type_parser_nodes__TKwif.id;
8446 if(var_new_child == NULL) {
8447 var7 = 0;
8448 } else {
8449 if(cltype >= var_new_child->type->table_size) {
8450 var7 = 0;
8451 } else {
8452 var7 = var_new_child->type->type_table[cltype] == idtype;
8453 }
8454 }
8455 if (unlikely(!var7)) {
8456 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
8457 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwif", var_class_name);
8458 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2553);
8459 show_backtrace(1);
8460 }
8461 {
8462 parser_prod__AIfexprExpr__n_kwif_61d(self, var_new_child); /* Direct call parser_prod#AIfexprExpr#n_kwif= on <self:AIfexprExpr>*/
8463 }
8464 goto RET_LABEL;
8465 } else {
8466 }
8467 var8 = self->attrs[COLOR_parser_nodes__AIfexprExpr___n_expr].val; /* _n_expr on <self:AIfexprExpr> */
8468 if (unlikely(var8 == NULL)) {
8469 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
8470 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2556);
8471 show_backtrace(1);
8472 }
8473 {
8474 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExpr> */
8475 var_other = var_old_child;
8476 {
8477 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExpr> */
8478 var14 = var8 == var_other;
8479 var12 = var14;
8480 goto RET_LABEL13;
8481 RET_LABEL13:(void)0;
8482 }
8483 }
8484 var10 = var12;
8485 goto RET_LABEL11;
8486 RET_LABEL11:(void)0;
8487 }
8488 var9 = var10;
8489 }
8490 if (var9){
8491 /* <var_new_child:nullable ANode> isa AExpr */
8492 cltype16 = type_parser_nodes__AExpr.color;
8493 idtype17 = type_parser_nodes__AExpr.id;
8494 if(var_new_child == NULL) {
8495 var15 = 0;
8496 } else {
8497 if(cltype16 >= var_new_child->type->table_size) {
8498 var15 = 0;
8499 } else {
8500 var15 = var_new_child->type->type_table[cltype16] == idtype17;
8501 }
8502 }
8503 if (unlikely(!var15)) {
8504 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
8505 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name18);
8506 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2557);
8507 show_backtrace(1);
8508 }
8509 {
8510 parser_prod__AIfexprExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AIfexprExpr#n_expr= on <self:AIfexprExpr>*/
8511 }
8512 goto RET_LABEL;
8513 } else {
8514 }
8515 var19 = self->attrs[COLOR_parser_nodes__AIfexprExpr___n_kwthen].val; /* _n_kwthen on <self:AIfexprExpr> */
8516 if (unlikely(var19 == NULL)) {
8517 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwthen");
8518 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2560);
8519 show_backtrace(1);
8520 }
8521 {
8522 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:TKwthen> */
8523 var_other = var_old_child;
8524 {
8525 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:TKwthen> */
8526 var25 = var19 == var_other;
8527 var23 = var25;
8528 goto RET_LABEL24;
8529 RET_LABEL24:(void)0;
8530 }
8531 }
8532 var21 = var23;
8533 goto RET_LABEL22;
8534 RET_LABEL22:(void)0;
8535 }
8536 var20 = var21;
8537 }
8538 if (var20){
8539 /* <var_new_child:nullable ANode> isa TKwthen */
8540 cltype27 = type_parser_nodes__TKwthen.color;
8541 idtype28 = type_parser_nodes__TKwthen.id;
8542 if(var_new_child == NULL) {
8543 var26 = 0;
8544 } else {
8545 if(cltype27 >= var_new_child->type->table_size) {
8546 var26 = 0;
8547 } else {
8548 var26 = var_new_child->type->type_table[cltype27] == idtype28;
8549 }
8550 }
8551 if (unlikely(!var26)) {
8552 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
8553 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwthen", var_class_name29);
8554 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2561);
8555 show_backtrace(1);
8556 }
8557 {
8558 parser_prod__AIfexprExpr__n_kwthen_61d(self, var_new_child); /* Direct call parser_prod#AIfexprExpr#n_kwthen= on <self:AIfexprExpr>*/
8559 }
8560 goto RET_LABEL;
8561 } else {
8562 }
8563 var30 = self->attrs[COLOR_parser_nodes__AIfexprExpr___n_then].val; /* _n_then on <self:AIfexprExpr> */
8564 if (unlikely(var30 == NULL)) {
8565 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_then");
8566 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2564);
8567 show_backtrace(1);
8568 }
8569 {
8570 { /* Inline kernel#Object#== (var30,var_old_child) on <var30:AExpr> */
8571 var_other = var_old_child;
8572 {
8573 { /* Inline kernel#Object#is_same_instance (var30,var_other) on <var30:AExpr> */
8574 var36 = var30 == var_other;
8575 var34 = var36;
8576 goto RET_LABEL35;
8577 RET_LABEL35:(void)0;
8578 }
8579 }
8580 var32 = var34;
8581 goto RET_LABEL33;
8582 RET_LABEL33:(void)0;
8583 }
8584 var31 = var32;
8585 }
8586 if (var31){
8587 /* <var_new_child:nullable ANode> isa AExpr */
8588 cltype38 = type_parser_nodes__AExpr.color;
8589 idtype39 = type_parser_nodes__AExpr.id;
8590 if(var_new_child == NULL) {
8591 var37 = 0;
8592 } else {
8593 if(cltype38 >= var_new_child->type->table_size) {
8594 var37 = 0;
8595 } else {
8596 var37 = var_new_child->type->type_table[cltype38] == idtype39;
8597 }
8598 }
8599 if (unlikely(!var37)) {
8600 var_class_name40 = var_new_child == NULL ? "null" : var_new_child->type->name;
8601 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name40);
8602 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2565);
8603 show_backtrace(1);
8604 }
8605 {
8606 parser_prod__AIfexprExpr__n_then_61d(self, var_new_child); /* Direct call parser_prod#AIfexprExpr#n_then= on <self:AIfexprExpr>*/
8607 }
8608 goto RET_LABEL;
8609 } else {
8610 }
8611 var41 = self->attrs[COLOR_parser_nodes__AIfexprExpr___n_kwelse].val; /* _n_kwelse on <self:AIfexprExpr> */
8612 if (unlikely(var41 == NULL)) {
8613 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwelse");
8614 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2568);
8615 show_backtrace(1);
8616 }
8617 {
8618 { /* Inline kernel#Object#== (var41,var_old_child) on <var41:TKwelse> */
8619 var_other = var_old_child;
8620 {
8621 { /* Inline kernel#Object#is_same_instance (var41,var_other) on <var41:TKwelse> */
8622 var47 = var41 == var_other;
8623 var45 = var47;
8624 goto RET_LABEL46;
8625 RET_LABEL46:(void)0;
8626 }
8627 }
8628 var43 = var45;
8629 goto RET_LABEL44;
8630 RET_LABEL44:(void)0;
8631 }
8632 var42 = var43;
8633 }
8634 if (var42){
8635 /* <var_new_child:nullable ANode> isa TKwelse */
8636 cltype49 = type_parser_nodes__TKwelse.color;
8637 idtype50 = type_parser_nodes__TKwelse.id;
8638 if(var_new_child == NULL) {
8639 var48 = 0;
8640 } else {
8641 if(cltype49 >= var_new_child->type->table_size) {
8642 var48 = 0;
8643 } else {
8644 var48 = var_new_child->type->type_table[cltype49] == idtype50;
8645 }
8646 }
8647 if (unlikely(!var48)) {
8648 var_class_name51 = var_new_child == NULL ? "null" : var_new_child->type->name;
8649 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwelse", var_class_name51);
8650 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2569);
8651 show_backtrace(1);
8652 }
8653 {
8654 parser_prod__AIfexprExpr__n_kwelse_61d(self, var_new_child); /* Direct call parser_prod#AIfexprExpr#n_kwelse= on <self:AIfexprExpr>*/
8655 }
8656 goto RET_LABEL;
8657 } else {
8658 }
8659 var52 = self->attrs[COLOR_parser_nodes__AIfexprExpr___n_else].val; /* _n_else on <self:AIfexprExpr> */
8660 if (unlikely(var52 == NULL)) {
8661 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_else");
8662 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2572);
8663 show_backtrace(1);
8664 }
8665 {
8666 { /* Inline kernel#Object#== (var52,var_old_child) on <var52:AExpr> */
8667 var_other = var_old_child;
8668 {
8669 { /* Inline kernel#Object#is_same_instance (var52,var_other) on <var52:AExpr> */
8670 var58 = var52 == var_other;
8671 var56 = var58;
8672 goto RET_LABEL57;
8673 RET_LABEL57:(void)0;
8674 }
8675 }
8676 var54 = var56;
8677 goto RET_LABEL55;
8678 RET_LABEL55:(void)0;
8679 }
8680 var53 = var54;
8681 }
8682 if (var53){
8683 /* <var_new_child:nullable ANode> isa AExpr */
8684 cltype60 = type_parser_nodes__AExpr.color;
8685 idtype61 = type_parser_nodes__AExpr.id;
8686 if(var_new_child == NULL) {
8687 var59 = 0;
8688 } else {
8689 if(cltype60 >= var_new_child->type->table_size) {
8690 var59 = 0;
8691 } else {
8692 var59 = var_new_child->type->type_table[cltype60] == idtype61;
8693 }
8694 }
8695 if (unlikely(!var59)) {
8696 var_class_name62 = var_new_child == NULL ? "null" : var_new_child->type->name;
8697 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name62);
8698 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2573);
8699 show_backtrace(1);
8700 }
8701 {
8702 parser_prod__AIfexprExpr__n_else_61d(self, var_new_child); /* Direct call parser_prod#AIfexprExpr#n_else= on <self:AIfexprExpr>*/
8703 }
8704 goto RET_LABEL;
8705 } else {
8706 }
8707 RET_LABEL:;
8708 }
8709 /* method parser_prod#AIfexprExpr#replace_child for (self: Object, ANode, nullable ANode) */
8710 void VIRTUAL_parser_prod__AIfexprExpr__replace_child(val* self, val* p0, val* p1) {
8711 parser_prod__AIfexprExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AIfexprExpr#replace_child on <self:Object(AIfexprExpr)>*/
8712 RET_LABEL:;
8713 }
8714 /* method parser_prod#AIfexprExpr#n_kwif= for (self: AIfexprExpr, TKwif) */
8715 void parser_prod__AIfexprExpr__n_kwif_61d(val* self, val* p0) {
8716 val* var_node /* var node: TKwif */;
8717 var_node = p0;
8718 self->attrs[COLOR_parser_nodes__AIfexprExpr___n_kwif].val = var_node; /* _n_kwif on <self:AIfexprExpr> */
8719 {
8720 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwif> */
8721 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwif> */
8722 RET_LABEL1:(void)0;
8723 }
8724 }
8725 RET_LABEL:;
8726 }
8727 /* method parser_prod#AIfexprExpr#n_kwif= for (self: Object, TKwif) */
8728 void VIRTUAL_parser_prod__AIfexprExpr__n_kwif_61d(val* self, val* p0) {
8729 parser_prod__AIfexprExpr__n_kwif_61d(self, p0); /* Direct call parser_prod#AIfexprExpr#n_kwif= on <self:Object(AIfexprExpr)>*/
8730 RET_LABEL:;
8731 }
8732 /* method parser_prod#AIfexprExpr#n_expr= for (self: AIfexprExpr, AExpr) */
8733 void parser_prod__AIfexprExpr__n_expr_61d(val* self, val* p0) {
8734 val* var_node /* var node: AExpr */;
8735 var_node = p0;
8736 self->attrs[COLOR_parser_nodes__AIfexprExpr___n_expr].val = var_node; /* _n_expr on <self:AIfexprExpr> */
8737 {
8738 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
8739 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
8740 RET_LABEL1:(void)0;
8741 }
8742 }
8743 RET_LABEL:;
8744 }
8745 /* method parser_prod#AIfexprExpr#n_expr= for (self: Object, AExpr) */
8746 void VIRTUAL_parser_prod__AIfexprExpr__n_expr_61d(val* self, val* p0) {
8747 parser_prod__AIfexprExpr__n_expr_61d(self, p0); /* Direct call parser_prod#AIfexprExpr#n_expr= on <self:Object(AIfexprExpr)>*/
8748 RET_LABEL:;
8749 }
8750 /* method parser_prod#AIfexprExpr#n_kwthen= for (self: AIfexprExpr, TKwthen) */
8751 void parser_prod__AIfexprExpr__n_kwthen_61d(val* self, val* p0) {
8752 val* var_node /* var node: TKwthen */;
8753 var_node = p0;
8754 self->attrs[COLOR_parser_nodes__AIfexprExpr___n_kwthen].val = var_node; /* _n_kwthen on <self:AIfexprExpr> */
8755 {
8756 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwthen> */
8757 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwthen> */
8758 RET_LABEL1:(void)0;
8759 }
8760 }
8761 RET_LABEL:;
8762 }
8763 /* method parser_prod#AIfexprExpr#n_kwthen= for (self: Object, TKwthen) */
8764 void VIRTUAL_parser_prod__AIfexprExpr__n_kwthen_61d(val* self, val* p0) {
8765 parser_prod__AIfexprExpr__n_kwthen_61d(self, p0); /* Direct call parser_prod#AIfexprExpr#n_kwthen= on <self:Object(AIfexprExpr)>*/
8766 RET_LABEL:;
8767 }
8768 /* method parser_prod#AIfexprExpr#n_then= for (self: AIfexprExpr, AExpr) */
8769 void parser_prod__AIfexprExpr__n_then_61d(val* self, val* p0) {
8770 val* var_node /* var node: AExpr */;
8771 var_node = p0;
8772 self->attrs[COLOR_parser_nodes__AIfexprExpr___n_then].val = var_node; /* _n_then on <self:AIfexprExpr> */
8773 {
8774 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
8775 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
8776 RET_LABEL1:(void)0;
8777 }
8778 }
8779 RET_LABEL:;
8780 }
8781 /* method parser_prod#AIfexprExpr#n_then= for (self: Object, AExpr) */
8782 void VIRTUAL_parser_prod__AIfexprExpr__n_then_61d(val* self, val* p0) {
8783 parser_prod__AIfexprExpr__n_then_61d(self, p0); /* Direct call parser_prod#AIfexprExpr#n_then= on <self:Object(AIfexprExpr)>*/
8784 RET_LABEL:;
8785 }
8786 /* method parser_prod#AIfexprExpr#n_kwelse= for (self: AIfexprExpr, TKwelse) */
8787 void parser_prod__AIfexprExpr__n_kwelse_61d(val* self, val* p0) {
8788 val* var_node /* var node: TKwelse */;
8789 var_node = p0;
8790 self->attrs[COLOR_parser_nodes__AIfexprExpr___n_kwelse].val = var_node; /* _n_kwelse on <self:AIfexprExpr> */
8791 {
8792 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwelse> */
8793 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwelse> */
8794 RET_LABEL1:(void)0;
8795 }
8796 }
8797 RET_LABEL:;
8798 }
8799 /* method parser_prod#AIfexprExpr#n_kwelse= for (self: Object, TKwelse) */
8800 void VIRTUAL_parser_prod__AIfexprExpr__n_kwelse_61d(val* self, val* p0) {
8801 parser_prod__AIfexprExpr__n_kwelse_61d(self, p0); /* Direct call parser_prod#AIfexprExpr#n_kwelse= on <self:Object(AIfexprExpr)>*/
8802 RET_LABEL:;
8803 }
8804 /* method parser_prod#AIfexprExpr#n_else= for (self: AIfexprExpr, AExpr) */
8805 void parser_prod__AIfexprExpr__n_else_61d(val* self, val* p0) {
8806 val* var_node /* var node: AExpr */;
8807 var_node = p0;
8808 self->attrs[COLOR_parser_nodes__AIfexprExpr___n_else].val = var_node; /* _n_else on <self:AIfexprExpr> */
8809 {
8810 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
8811 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
8812 RET_LABEL1:(void)0;
8813 }
8814 }
8815 RET_LABEL:;
8816 }
8817 /* method parser_prod#AIfexprExpr#n_else= for (self: Object, AExpr) */
8818 void VIRTUAL_parser_prod__AIfexprExpr__n_else_61d(val* self, val* p0) {
8819 parser_prod__AIfexprExpr__n_else_61d(self, p0); /* Direct call parser_prod#AIfexprExpr#n_else= on <self:Object(AIfexprExpr)>*/
8820 RET_LABEL:;
8821 }
8822 /* method parser_prod#AIfexprExpr#visit_all for (self: AIfexprExpr, Visitor) */
8823 void parser_prod__AIfexprExpr__visit_all(val* self, val* p0) {
8824 val* var_v /* var v: Visitor */;
8825 val* var /* : TKwif */;
8826 val* var1 /* : AExpr */;
8827 val* var2 /* : TKwthen */;
8828 val* var3 /* : AExpr */;
8829 val* var4 /* : TKwelse */;
8830 val* var5 /* : AExpr */;
8831 var_v = p0;
8832 var = self->attrs[COLOR_parser_nodes__AIfexprExpr___n_kwif].val; /* _n_kwif on <self:AIfexprExpr> */
8833 if (unlikely(var == NULL)) {
8834 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwif");
8835 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2612);
8836 show_backtrace(1);
8837 }
8838 {
8839 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8840 }
8841 var1 = self->attrs[COLOR_parser_nodes__AIfexprExpr___n_expr].val; /* _n_expr on <self:AIfexprExpr> */
8842 if (unlikely(var1 == NULL)) {
8843 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
8844 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2613);
8845 show_backtrace(1);
8846 }
8847 {
8848 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8849 }
8850 var2 = self->attrs[COLOR_parser_nodes__AIfexprExpr___n_kwthen].val; /* _n_kwthen on <self:AIfexprExpr> */
8851 if (unlikely(var2 == NULL)) {
8852 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwthen");
8853 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2614);
8854 show_backtrace(1);
8855 }
8856 {
8857 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8858 }
8859 var3 = self->attrs[COLOR_parser_nodes__AIfexprExpr___n_then].val; /* _n_then on <self:AIfexprExpr> */
8860 if (unlikely(var3 == NULL)) {
8861 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_then");
8862 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2615);
8863 show_backtrace(1);
8864 }
8865 {
8866 parser_nodes__Visitor__enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8867 }
8868 var4 = self->attrs[COLOR_parser_nodes__AIfexprExpr___n_kwelse].val; /* _n_kwelse on <self:AIfexprExpr> */
8869 if (unlikely(var4 == NULL)) {
8870 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwelse");
8871 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2616);
8872 show_backtrace(1);
8873 }
8874 {
8875 parser_nodes__Visitor__enter_visit(var_v, var4); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8876 }
8877 var5 = self->attrs[COLOR_parser_nodes__AIfexprExpr___n_else].val; /* _n_else on <self:AIfexprExpr> */
8878 if (unlikely(var5 == NULL)) {
8879 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_else");
8880 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2617);
8881 show_backtrace(1);
8882 }
8883 {
8884 parser_nodes__Visitor__enter_visit(var_v, var5); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8885 }
8886 RET_LABEL:;
8887 }
8888 /* method parser_prod#AIfexprExpr#visit_all for (self: Object, Visitor) */
8889 void VIRTUAL_parser_prod__AIfexprExpr__visit_all(val* self, val* p0) {
8890 parser_prod__AIfexprExpr__visit_all(self, p0); /* Direct call parser_prod#AIfexprExpr#visit_all on <self:Object(AIfexprExpr)>*/
8891 RET_LABEL:;
8892 }
8893 /* method parser_prod#AWhileExpr#init_awhileexpr for (self: AWhileExpr, nullable TKwwhile, nullable AExpr, nullable TKwdo, nullable AExpr, nullable ALabel) */
8894 void parser_prod__AWhileExpr__init_awhileexpr(val* self, val* p0, val* p1, val* p2, val* p3, val* p4) {
8895 val* var_n_kwwhile /* var n_kwwhile: nullable TKwwhile */;
8896 val* var_n_expr /* var n_expr: nullable AExpr */;
8897 val* var_n_kwdo /* var n_kwdo: nullable TKwdo */;
8898 val* var_n_block /* var n_block: nullable AExpr */;
8899 val* var_n_label /* var n_label: nullable ALabel */;
8900 val* var /* : null */;
8901 short int var4 /* : Bool */;
8902 short int var5 /* : Bool */;
8903 val* var_other /* var other: nullable Object */;
8904 short int var7 /* : Bool */;
8905 short int var8 /* : Bool */;
8906 short int var9 /* : Bool */;
8907 val* var11 /* : null */;
8908 short int var12 /* : Bool */;
8909 short int var13 /* : Bool */;
8910 short int var15 /* : Bool */;
8911 short int var16 /* : Bool */;
8912 short int var17 /* : Bool */;
8913 var_n_kwwhile = p0;
8914 var_n_expr = p1;
8915 var_n_kwdo = p2;
8916 var_n_block = p3;
8917 var_n_label = p4;
8918 if (unlikely(var_n_kwwhile == NULL)) {
8919 PRINT_ERROR("Runtime error: %s", "Cast failed");
8920 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2629);
8921 show_backtrace(1);
8922 }
8923 self->attrs[COLOR_parser_nodes__AWhileExpr___n_kwwhile].val = var_n_kwwhile; /* _n_kwwhile on <self:AWhileExpr> */
8924 if (var_n_kwwhile == NULL) {
8925 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8926 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2630);
8927 show_backtrace(1);
8928 } else {
8929 { /* Inline parser_nodes#ANode#parent= (var_n_kwwhile,self) on <var_n_kwwhile:nullable TKwwhile> */
8930 if (unlikely(var_n_kwwhile == NULL)) {
8931 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8932 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
8933 show_backtrace(1);
8934 }
8935 var_n_kwwhile->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwwhile:nullable TKwwhile> */
8936 RET_LABEL1:(void)0;
8937 }
8938 }
8939 if (unlikely(var_n_expr == NULL)) {
8940 PRINT_ERROR("Runtime error: %s", "Cast failed");
8941 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2631);
8942 show_backtrace(1);
8943 }
8944 self->attrs[COLOR_parser_nodes__AWhileExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AWhileExpr> */
8945 if (var_n_expr == NULL) {
8946 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8947 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2632);
8948 show_backtrace(1);
8949 } else {
8950 { /* Inline parser_nodes#ANode#parent= (var_n_expr,self) on <var_n_expr:nullable AExpr> */
8951 if (unlikely(var_n_expr == NULL)) {
8952 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8953 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
8954 show_backtrace(1);
8955 }
8956 var_n_expr->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_expr:nullable AExpr> */
8957 RET_LABEL2:(void)0;
8958 }
8959 }
8960 if (unlikely(var_n_kwdo == NULL)) {
8961 PRINT_ERROR("Runtime error: %s", "Cast failed");
8962 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2633);
8963 show_backtrace(1);
8964 }
8965 self->attrs[COLOR_parser_nodes__AWhileExpr___n_kwdo].val = var_n_kwdo; /* _n_kwdo on <self:AWhileExpr> */
8966 if (var_n_kwdo == NULL) {
8967 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8968 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2634);
8969 show_backtrace(1);
8970 } else {
8971 { /* Inline parser_nodes#ANode#parent= (var_n_kwdo,self) on <var_n_kwdo:nullable TKwdo> */
8972 if (unlikely(var_n_kwdo == NULL)) {
8973 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8974 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
8975 show_backtrace(1);
8976 }
8977 var_n_kwdo->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwdo:nullable TKwdo> */
8978 RET_LABEL3:(void)0;
8979 }
8980 }
8981 self->attrs[COLOR_parser_nodes__AWhileExpr___n_block].val = var_n_block; /* _n_block on <self:AWhileExpr> */
8982 var = NULL;
8983 if (var_n_block == NULL) {
8984 var4 = 0; /* is null */
8985 } else {
8986 var4 = 1; /* arg is null and recv is not */
8987 }
8988 if (0) {
8989 { /* Inline kernel#Object#!= (var_n_block,var) on <var_n_block:nullable AExpr> */
8990 var_other = var;
8991 {
8992 var8 = ((short int (*)(val*, val*))(var_n_block->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_block, var_other) /* == on <var_n_block:nullable AExpr(AExpr)>*/;
8993 var7 = var8;
8994 }
8995 var9 = !var7;
8996 var5 = var9;
8997 goto RET_LABEL6;
8998 RET_LABEL6:(void)0;
8999 }
9000 var4 = var5;
9001 }
9002 if (var4){
9003 {
9004 { /* Inline parser_nodes#ANode#parent= (var_n_block,self) on <var_n_block:nullable AExpr(AExpr)> */
9005 var_n_block->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_block:nullable AExpr(AExpr)> */
9006 RET_LABEL10:(void)0;
9007 }
9008 }
9009 } else {
9010 }
9011 self->attrs[COLOR_parser_nodes__ALabelable___n_label].val = var_n_label; /* _n_label on <self:AWhileExpr> */
9012 var11 = NULL;
9013 if (var_n_label == NULL) {
9014 var12 = 0; /* is null */
9015 } else {
9016 var12 = 1; /* arg is null and recv is not */
9017 }
9018 if (0) {
9019 { /* Inline kernel#Object#!= (var_n_label,var11) on <var_n_label:nullable ALabel> */
9020 var_other = var11;
9021 {
9022 var16 = ((short int (*)(val*, val*))(var_n_label->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_label, var_other) /* == on <var_n_label:nullable ALabel(ALabel)>*/;
9023 var15 = var16;
9024 }
9025 var17 = !var15;
9026 var13 = var17;
9027 goto RET_LABEL14;
9028 RET_LABEL14:(void)0;
9029 }
9030 var12 = var13;
9031 }
9032 if (var12){
9033 {
9034 { /* Inline parser_nodes#ANode#parent= (var_n_label,self) on <var_n_label:nullable ALabel(ALabel)> */
9035 var_n_label->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_label:nullable ALabel(ALabel)> */
9036 RET_LABEL18:(void)0;
9037 }
9038 }
9039 } else {
9040 }
9041 RET_LABEL:;
9042 }
9043 /* method parser_prod#AWhileExpr#init_awhileexpr for (self: Object, nullable TKwwhile, nullable AExpr, nullable TKwdo, nullable AExpr, nullable ALabel) */
9044 void VIRTUAL_parser_prod__AWhileExpr__init_awhileexpr(val* self, val* p0, val* p1, val* p2, val* p3, val* p4) {
9045 parser_prod__AWhileExpr__init_awhileexpr(self, p0, p1, p2, p3, p4); /* Direct call parser_prod#AWhileExpr#init_awhileexpr on <self:Object(AWhileExpr)>*/
9046 RET_LABEL:;
9047 }
9048 /* method parser_prod#AWhileExpr#replace_child for (self: AWhileExpr, ANode, nullable ANode) */
9049 void parser_prod__AWhileExpr__replace_child(val* self, val* p0, val* p1) {
9050 val* var_old_child /* var old_child: ANode */;
9051 val* var_new_child /* var new_child: nullable ANode */;
9052 val* var /* : TKwwhile */;
9053 short int var1 /* : Bool */;
9054 short int var2 /* : Bool */;
9055 val* var_other /* var other: nullable Object */;
9056 short int var4 /* : Bool */;
9057 short int var6 /* : Bool */;
9058 short int var7 /* : Bool */;
9059 int cltype;
9060 int idtype;
9061 const char* var_class_name;
9062 val* var8 /* : AExpr */;
9063 short int var9 /* : Bool */;
9064 short int var10 /* : Bool */;
9065 short int var12 /* : Bool */;
9066 short int var14 /* : Bool */;
9067 short int var15 /* : Bool */;
9068 int cltype16;
9069 int idtype17;
9070 const char* var_class_name18;
9071 val* var19 /* : TKwdo */;
9072 short int var20 /* : Bool */;
9073 short int var21 /* : Bool */;
9074 short int var23 /* : Bool */;
9075 short int var25 /* : Bool */;
9076 short int var26 /* : Bool */;
9077 int cltype27;
9078 int idtype28;
9079 const char* var_class_name29;
9080 val* var30 /* : nullable AExpr */;
9081 short int var31 /* : Bool */;
9082 short int var32 /* : Bool */;
9083 short int var34 /* : Bool */;
9084 short int var36 /* : Bool */;
9085 short int var37 /* : Bool */;
9086 int cltype38;
9087 int idtype39;
9088 const char* var_class_name40;
9089 val* var41 /* : nullable ALabel */;
9090 short int var42 /* : Bool */;
9091 short int var43 /* : Bool */;
9092 short int var45 /* : Bool */;
9093 short int var47 /* : Bool */;
9094 short int var48 /* : Bool */;
9095 int cltype49;
9096 int idtype50;
9097 const char* var_class_name51;
9098 var_old_child = p0;
9099 var_new_child = p1;
9100 var = self->attrs[COLOR_parser_nodes__AWhileExpr___n_kwwhile].val; /* _n_kwwhile on <self:AWhileExpr> */
9101 if (unlikely(var == NULL)) {
9102 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwwhile");
9103 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2643);
9104 show_backtrace(1);
9105 }
9106 {
9107 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwwhile> */
9108 var_other = var_old_child;
9109 {
9110 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TKwwhile> */
9111 var6 = var == var_other;
9112 var4 = var6;
9113 goto RET_LABEL5;
9114 RET_LABEL5:(void)0;
9115 }
9116 }
9117 var2 = var4;
9118 goto RET_LABEL3;
9119 RET_LABEL3:(void)0;
9120 }
9121 var1 = var2;
9122 }
9123 if (var1){
9124 /* <var_new_child:nullable ANode> isa TKwwhile */
9125 cltype = type_parser_nodes__TKwwhile.color;
9126 idtype = type_parser_nodes__TKwwhile.id;
9127 if(var_new_child == NULL) {
9128 var7 = 0;
9129 } else {
9130 if(cltype >= var_new_child->type->table_size) {
9131 var7 = 0;
9132 } else {
9133 var7 = var_new_child->type->type_table[cltype] == idtype;
9134 }
9135 }
9136 if (unlikely(!var7)) {
9137 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
9138 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwwhile", var_class_name);
9139 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2644);
9140 show_backtrace(1);
9141 }
9142 {
9143 parser_prod__AWhileExpr__n_kwwhile_61d(self, var_new_child); /* Direct call parser_prod#AWhileExpr#n_kwwhile= on <self:AWhileExpr>*/
9144 }
9145 goto RET_LABEL;
9146 } else {
9147 }
9148 var8 = self->attrs[COLOR_parser_nodes__AWhileExpr___n_expr].val; /* _n_expr on <self:AWhileExpr> */
9149 if (unlikely(var8 == NULL)) {
9150 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
9151 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2647);
9152 show_backtrace(1);
9153 }
9154 {
9155 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:AExpr> */
9156 var_other = var_old_child;
9157 {
9158 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:AExpr> */
9159 var14 = var8 == var_other;
9160 var12 = var14;
9161 goto RET_LABEL13;
9162 RET_LABEL13:(void)0;
9163 }
9164 }
9165 var10 = var12;
9166 goto RET_LABEL11;
9167 RET_LABEL11:(void)0;
9168 }
9169 var9 = var10;
9170 }
9171 if (var9){
9172 /* <var_new_child:nullable ANode> isa AExpr */
9173 cltype16 = type_parser_nodes__AExpr.color;
9174 idtype17 = type_parser_nodes__AExpr.id;
9175 if(var_new_child == NULL) {
9176 var15 = 0;
9177 } else {
9178 if(cltype16 >= var_new_child->type->table_size) {
9179 var15 = 0;
9180 } else {
9181 var15 = var_new_child->type->type_table[cltype16] == idtype17;
9182 }
9183 }
9184 if (unlikely(!var15)) {
9185 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
9186 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AExpr", var_class_name18);
9187 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2648);
9188 show_backtrace(1);
9189 }
9190 {
9191 parser_prod__AWhileExpr__n_expr_61d(self, var_new_child); /* Direct call parser_prod#AWhileExpr#n_expr= on <self:AWhileExpr>*/
9192 }
9193 goto RET_LABEL;
9194 } else {
9195 }
9196 var19 = self->attrs[COLOR_parser_nodes__AWhileExpr___n_kwdo].val; /* _n_kwdo on <self:AWhileExpr> */
9197 if (unlikely(var19 == NULL)) {
9198 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwdo");
9199 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2651);
9200 show_backtrace(1);
9201 }
9202 {
9203 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:TKwdo> */
9204 var_other = var_old_child;
9205 {
9206 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:TKwdo> */
9207 var25 = var19 == var_other;
9208 var23 = var25;
9209 goto RET_LABEL24;
9210 RET_LABEL24:(void)0;
9211 }
9212 }
9213 var21 = var23;
9214 goto RET_LABEL22;
9215 RET_LABEL22:(void)0;
9216 }
9217 var20 = var21;
9218 }
9219 if (var20){
9220 /* <var_new_child:nullable ANode> isa TKwdo */
9221 cltype27 = type_parser_nodes__TKwdo.color;
9222 idtype28 = type_parser_nodes__TKwdo.id;
9223 if(var_new_child == NULL) {
9224 var26 = 0;
9225 } else {
9226 if(cltype27 >= var_new_child->type->table_size) {
9227 var26 = 0;
9228 } else {
9229 var26 = var_new_child->type->type_table[cltype27] == idtype28;
9230 }
9231 }
9232 if (unlikely(!var26)) {
9233 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
9234 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwdo", var_class_name29);
9235 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2652);
9236 show_backtrace(1);
9237 }
9238 {
9239 parser_prod__AWhileExpr__n_kwdo_61d(self, var_new_child); /* Direct call parser_prod#AWhileExpr#n_kwdo= on <self:AWhileExpr>*/
9240 }
9241 goto RET_LABEL;
9242 } else {
9243 }
9244 var30 = self->attrs[COLOR_parser_nodes__AWhileExpr___n_block].val; /* _n_block on <self:AWhileExpr> */
9245 if (var30 == NULL) {
9246 var31 = 0; /* <var_old_child:ANode> cannot be null */
9247 } else {
9248 { /* Inline kernel#Object#== (var30,var_old_child) on <var30:nullable AExpr> */
9249 var_other = var_old_child;
9250 {
9251 { /* Inline kernel#Object#is_same_instance (var30,var_other) on <var30:nullable AExpr(AExpr)> */
9252 var36 = var30 == var_other;
9253 var34 = var36;
9254 goto RET_LABEL35;
9255 RET_LABEL35:(void)0;
9256 }
9257 }
9258 var32 = var34;
9259 goto RET_LABEL33;
9260 RET_LABEL33:(void)0;
9261 }
9262 var31 = var32;
9263 }
9264 if (var31){
9265 /* <var_new_child:nullable ANode> isa nullable AExpr */
9266 cltype38 = type_nullable_parser_nodes__AExpr.color;
9267 idtype39 = type_nullable_parser_nodes__AExpr.id;
9268 if(var_new_child == NULL) {
9269 var37 = 1;
9270 } else {
9271 if(cltype38 >= var_new_child->type->table_size) {
9272 var37 = 0;
9273 } else {
9274 var37 = var_new_child->type->type_table[cltype38] == idtype39;
9275 }
9276 }
9277 if (unlikely(!var37)) {
9278 var_class_name40 = var_new_child == NULL ? "null" : var_new_child->type->name;
9279 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AExpr", var_class_name40);
9280 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2656);
9281 show_backtrace(1);
9282 }
9283 {
9284 parser_prod__AWhileExpr__n_block_61d(self, var_new_child); /* Direct call parser_prod#AWhileExpr#n_block= on <self:AWhileExpr>*/
9285 }
9286 goto RET_LABEL;
9287 } else {
9288 }
9289 var41 = self->attrs[COLOR_parser_nodes__ALabelable___n_label].val; /* _n_label on <self:AWhileExpr> */
9290 if (var41 == NULL) {
9291 var42 = 0; /* <var_old_child:ANode> cannot be null */
9292 } else {
9293 { /* Inline kernel#Object#== (var41,var_old_child) on <var41:nullable ALabel> */
9294 var_other = var_old_child;
9295 {
9296 { /* Inline kernel#Object#is_same_instance (var41,var_other) on <var41:nullable ALabel(ALabel)> */
9297 var47 = var41 == var_other;
9298 var45 = var47;
9299 goto RET_LABEL46;
9300 RET_LABEL46:(void)0;
9301 }
9302 }
9303 var43 = var45;
9304 goto RET_LABEL44;
9305 RET_LABEL44:(void)0;
9306 }
9307 var42 = var43;
9308 }
9309 if (var42){
9310 /* <var_new_child:nullable ANode> isa nullable ALabel */
9311 cltype49 = type_nullable_parser_nodes__ALabel.color;
9312 idtype50 = type_nullable_parser_nodes__ALabel.id;
9313 if(var_new_child == NULL) {
9314 var48 = 1;
9315 } else {
9316 if(cltype49 >= var_new_child->type->table_size) {
9317 var48 = 0;
9318 } else {
9319 var48 = var_new_child->type->type_table[cltype49] == idtype50;
9320 }
9321 }
9322 if (unlikely(!var48)) {
9323 var_class_name51 = var_new_child == NULL ? "null" : var_new_child->type->name;
9324 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ALabel", var_class_name51);
9325 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2660);
9326 show_backtrace(1);
9327 }
9328 {
9329 parser_prod__AWhileExpr__n_label_61d(self, var_new_child); /* Direct call parser_prod#AWhileExpr#n_label= on <self:AWhileExpr>*/
9330 }
9331 goto RET_LABEL;
9332 } else {
9333 }
9334 RET_LABEL:;
9335 }
9336 /* method parser_prod#AWhileExpr#replace_child for (self: Object, ANode, nullable ANode) */
9337 void VIRTUAL_parser_prod__AWhileExpr__replace_child(val* self, val* p0, val* p1) {
9338 parser_prod__AWhileExpr__replace_child(self, p0, p1); /* Direct call parser_prod#AWhileExpr#replace_child on <self:Object(AWhileExpr)>*/
9339 RET_LABEL:;
9340 }
9341 /* method parser_prod#AWhileExpr#n_kwwhile= for (self: AWhileExpr, TKwwhile) */
9342 void parser_prod__AWhileExpr__n_kwwhile_61d(val* self, val* p0) {
9343 val* var_node /* var node: TKwwhile */;
9344 var_node = p0;
9345 self->attrs[COLOR_parser_nodes__AWhileExpr___n_kwwhile].val = var_node; /* _n_kwwhile on <self:AWhileExpr> */
9346 {
9347 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwwhile> */
9348 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwwhile> */
9349 RET_LABEL1:(void)0;
9350 }
9351 }
9352 RET_LABEL:;
9353 }
9354 /* method parser_prod#AWhileExpr#n_kwwhile= for (self: Object, TKwwhile) */
9355 void VIRTUAL_parser_prod__AWhileExpr__n_kwwhile_61d(val* self, val* p0) {
9356 parser_prod__AWhileExpr__n_kwwhile_61d(self, p0); /* Direct call parser_prod#AWhileExpr#n_kwwhile= on <self:Object(AWhileExpr)>*/
9357 RET_LABEL:;
9358 }
9359 /* method parser_prod#AWhileExpr#n_expr= for (self: AWhileExpr, AExpr) */
9360 void parser_prod__AWhileExpr__n_expr_61d(val* self, val* p0) {
9361 val* var_node /* var node: AExpr */;
9362 var_node = p0;
9363 self->attrs[COLOR_parser_nodes__AWhileExpr___n_expr].val = var_node; /* _n_expr on <self:AWhileExpr> */
9364 {
9365 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AExpr> */
9366 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AExpr> */
9367 RET_LABEL1:(void)0;
9368 }
9369 }
9370 RET_LABEL:;
9371 }
9372 /* method parser_prod#AWhileExpr#n_expr= for (self: Object, AExpr) */
9373 void VIRTUAL_parser_prod__AWhileExpr__n_expr_61d(val* self, val* p0) {
9374 parser_prod__AWhileExpr__n_expr_61d(self, p0); /* Direct call parser_prod#AWhileExpr#n_expr= on <self:Object(AWhileExpr)>*/
9375 RET_LABEL:;
9376 }
9377 /* method parser_prod#AWhileExpr#n_kwdo= for (self: AWhileExpr, TKwdo) */
9378 void parser_prod__AWhileExpr__n_kwdo_61d(val* self, val* p0) {
9379 val* var_node /* var node: TKwdo */;
9380 var_node = p0;
9381 self->attrs[COLOR_parser_nodes__AWhileExpr___n_kwdo].val = var_node; /* _n_kwdo on <self:AWhileExpr> */
9382 {
9383 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwdo> */
9384 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwdo> */
9385 RET_LABEL1:(void)0;
9386 }
9387 }
9388 RET_LABEL:;
9389 }
9390 /* method parser_prod#AWhileExpr#n_kwdo= for (self: Object, TKwdo) */
9391 void VIRTUAL_parser_prod__AWhileExpr__n_kwdo_61d(val* self, val* p0) {
9392 parser_prod__AWhileExpr__n_kwdo_61d(self, p0); /* Direct call parser_prod#AWhileExpr#n_kwdo= on <self:Object(AWhileExpr)>*/
9393 RET_LABEL:;
9394 }
9395 /* method parser_prod#AWhileExpr#n_block= for (self: AWhileExpr, nullable AExpr) */
9396 void parser_prod__AWhileExpr__n_block_61d(val* self, val* p0) {
9397 val* var_node /* var node: nullable AExpr */;
9398 val* var /* : null */;
9399 short int var1 /* : Bool */;
9400 short int var2 /* : Bool */;
9401 val* var_other /* var other: nullable Object */;
9402 short int var4 /* : Bool */;
9403 short int var5 /* : Bool */;
9404 short int var6 /* : Bool */;
9405 var_node = p0;
9406 self->attrs[COLOR_parser_nodes__AWhileExpr___n_block].val = var_node; /* _n_block on <self:AWhileExpr> */
9407 var = NULL;
9408 if (var_node == NULL) {
9409 var1 = 0; /* is null */
9410 } else {
9411 var1 = 1; /* arg is null and recv is not */
9412 }
9413 if (0) {
9414 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AExpr> */
9415 var_other = var;
9416 {
9417 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AExpr(AExpr)>*/;
9418 var4 = var5;
9419 }
9420 var6 = !var4;
9421 var2 = var6;
9422 goto RET_LABEL3;
9423 RET_LABEL3:(void)0;
9424 }
9425 var1 = var2;
9426 }
9427 if (var1){
9428 {
9429 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AExpr(AExpr)> */
9430 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AExpr(AExpr)> */
9431 RET_LABEL7:(void)0;
9432 }
9433 }
9434 } else {
9435 }
9436 RET_LABEL:;
9437 }
9438 /* method parser_prod#AWhileExpr#n_block= for (self: Object, nullable AExpr) */
9439 void VIRTUAL_parser_prod__AWhileExpr__n_block_61d(val* self, val* p0) {
9440 parser_prod__AWhileExpr__n_block_61d(self, p0); /* Direct call parser_prod#AWhileExpr#n_block= on <self:Object(AWhileExpr)>*/
9441 RET_LABEL:;
9442 }
9443 /* method parser_prod#AWhileExpr#n_label= for (self: AWhileExpr, nullable ALabel) */
9444 void parser_prod__AWhileExpr__n_label_61d(val* self, val* p0) {
9445 val* var_node /* var node: nullable ALabel */;
9446 val* var /* : null */;
9447 short int var1 /* : Bool */;
9448 short int var2 /* : Bool */;
9449 val* var_other /* var other: nullable Object */;
9450 short int var4 /* : Bool */;
9451 short int var5 /* : Bool */;
9452 short int var6 /* : Bool */;
9453 var_node = p0;
9454 self->attrs[COLOR_parser_nodes__ALabelable___n_label].val = var_node; /* _n_label on <self:AWhileExpr> */
9455 var = NULL;
9456 if (var_node == NULL) {
9457 var1 = 0; /* is null */
9458 } else {
9459 var1 = 1; /* arg is null and recv is not */
9460 }
9461 if (0) {
9462 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable ALabel> */
9463 var_other = var;
9464 {
9465 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable ALabel(ALabel)>*/;
9466 var4 = var5;
9467 }
9468 var6 = !var4;
9469 var2 = var6;
9470 goto RET_LABEL3;
9471 RET_LABEL3:(void)0;
9472 }
9473 var1 = var2;
9474 }
9475 if (var1){
9476 {
9477 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable ALabel(ALabel)> */
9478 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable ALabel(ALabel)> */
9479 RET_LABEL7:(void)0;
9480 }
9481 }
9482 } else {
9483 }
9484 RET_LABEL:;
9485 }
9486 /* method parser_prod#AWhileExpr#n_label= for (self: Object, nullable ALabel) */
9487 void VIRTUAL_parser_prod__AWhileExpr__n_label_61d(val* self, val* p0) {
9488 parser_prod__AWhileExpr__n_label_61d(self, p0); /* Direct call parser_prod#AWhileExpr#n_label= on <self:Object(AWhileExpr)>*/
9489 RET_LABEL:;
9490 }
9491 /* method parser_prod#AWhileExpr#visit_all for (self: AWhileExpr, Visitor) */
9492 void parser_prod__AWhileExpr__visit_all(val* self, val* p0) {
9493 val* var_v /* var v: Visitor */;
9494 val* var /* : TKwwhile */;
9495 val* var1 /* : AExpr */;
9496 val* var2 /* : TKwdo */;
9497 val* var3 /* : nullable AExpr */;
9498 val* var4 /* : nullable ALabel */;
9499 var_v = p0;
9500 var = self->attrs[COLOR_parser_nodes__AWhileExpr___n_kwwhile].val; /* _n_kwwhile on <self:AWhileExpr> */
9501 if (unlikely(var == NULL)) {
9502 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwwhile");
9503 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2694);
9504 show_backtrace(1);
9505 }
9506 {
9507 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9508 }
9509 var1 = self->attrs[COLOR_parser_nodes__AWhileExpr___n_expr].val; /* _n_expr on <self:AWhileExpr> */
9510 if (unlikely(var1 == NULL)) {
9511 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
9512 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2695);
9513 show_backtrace(1);
9514 }
9515 {
9516 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9517 }
9518 var2 = self->attrs[COLOR_parser_nodes__AWhileExpr___n_kwdo].val; /* _n_kwdo on <self:AWhileExpr> */
9519 if (unlikely(var2 == NULL)) {
9520 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwdo");
9521 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2696);
9522 show_backtrace(1);
9523 }
9524 {
9525 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9526 }
9527 var3 = self->attrs[COLOR_parser_nodes__AWhileExpr___n_block].val; /* _n_block on <self:AWhileExpr> */
9528 {
9529 parser_nodes__Visitor__enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9530 }
9531 var4 = self->attrs[COLOR_parser_nodes__ALabelable___n_label].val; /* _n_label on <self:AWhileExpr> */
9532 {
9533 parser_nodes__Visitor__enter_visit(var_v, var4); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9534 }
9535 RET_LABEL:;
9536 }
9537 /* method parser_prod#AWhileExpr#visit_all for (self: Object, Visitor) */
9538 void VIRTUAL_parser_prod__AWhileExpr__visit_all(val* self, val* p0) {
9539 parser_prod__AWhileExpr__visit_all(self, p0); /* Direct call parser_prod#AWhileExpr#visit_all on <self:Object(AWhileExpr)>*/
9540 RET_LABEL:;
9541 }
9542 /* method parser_prod#ALoopExpr#init_aloopexpr for (self: ALoopExpr, nullable TKwloop, nullable AExpr, nullable ALabel) */
9543 void parser_prod__ALoopExpr__init_aloopexpr(val* self, val* p0, val* p1, val* p2) {
9544 val* var_n_kwloop /* var n_kwloop: nullable TKwloop */;
9545 val* var_n_block /* var n_block: nullable AExpr */;
9546 val* var_n_label /* var n_label: nullable ALabel */;
9547 val* var /* : null */;
9548 short int var2 /* : Bool */;
9549 short int var3 /* : Bool */;
9550 val* var_other /* var other: nullable Object */;
9551 short int var5 /* : Bool */;
9552 short int var6 /* : Bool */;
9553 short int var7 /* : Bool */;
9554 val* var9 /* : null */;
9555 short int var10 /* : Bool */;
9556 short int var11 /* : Bool */;
9557 short int var13 /* : Bool */;
9558 short int var14 /* : Bool */;
9559 short int var15 /* : Bool */;
9560 var_n_kwloop = p0;
9561 var_n_block = p1;
9562 var_n_label = p2;
9563 if (unlikely(var_n_kwloop == NULL)) {
9564 PRINT_ERROR("Runtime error: %s", "Cast failed");
9565 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2708);
9566 show_backtrace(1);
9567 }
9568 self->attrs[COLOR_parser_nodes__ALoopExpr___n_kwloop].val = var_n_kwloop; /* _n_kwloop on <self:ALoopExpr> */
9569 if (var_n_kwloop == NULL) {
9570 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9571 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2709);
9572 show_backtrace(1);
9573 } else {
9574 { /* Inline parser_nodes#ANode#parent= (var_n_kwloop,self) on <var_n_kwloop:nullable TKwloop> */
9575 if (unlikely(var_n_kwloop == NULL)) {
9576 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9577 PRINT_ERROR(" (%s:%d)\n", "parser/parser_nodes.nit", 36);
9578 show_backtrace(1);
9579 }
9580 var_n_kwloop->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwloop:nullable TKwloop> */
9581 RET_LABEL1:(void)0;
9582 }
9583 }
9584 self->attrs[COLOR_parser_nodes__ALoopExpr___n_block].val = var_n_block; /* _n_block on <self:ALoopExpr> */
9585 var = NULL;
9586 if (var_n_block == NULL) {
9587 var2 = 0; /* is null */
9588 } else {
9589 var2 = 1; /* arg is null and recv is not */
9590 }
9591 if (0) {
9592 { /* Inline kernel#Object#!= (var_n_block,var) on <var_n_block:nullable AExpr> */
9593 var_other = var;
9594 {
9595 var6 = ((short int (*)(val*, val*))(var_n_block->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_block, var_other) /* == on <var_n_block:nullable AExpr(AExpr)>*/;
9596 var5 = var6;
9597 }
9598 var7 = !var5;
9599 var3 = var7;
9600 goto RET_LABEL4;
9601 RET_LABEL4:(void)0;
9602 }
9603 var2 = var3;
9604 }
9605 if (var2){
9606 {
9607 { /* Inline parser_nodes#ANode#parent= (var_n_block,self) on <var_n_block:nullable AExpr(AExpr)> */
9608 var_n_block->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_block:nullable AExpr(AExpr)> */
9609 RET_LABEL8:(void)0;
9610 }
9611 }
9612 } else {
9613 }
9614 self->attrs[COLOR_parser_nodes__ALabelable___n_label].val = var_n_label; /* _n_label on <self:ALoopExpr> */
9615 var9 = NULL;
9616 if (var_n_label == NULL) {
9617 var10 = 0; /* is null */
9618 } else {
9619 var10 = 1; /* arg is null and recv is not */
9620 }
9621 if (0) {
9622 { /* Inline kernel#Object#!= (var_n_label,var9) on <var_n_label:nullable ALabel> */
9623 var_other = var9;
9624 {
9625 var14 = ((short int (*)(val*, val*))(var_n_label->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_label, var_other) /* == on <var_n_label:nullable ALabel(ALabel)>*/;
9626 var13 = var14;
9627 }
9628 var15 = !var13;
9629 var11 = var15;
9630 goto RET_LABEL12;
9631 RET_LABEL12:(void)0;
9632 }
9633 var10 = var11;
9634 }
9635 if (var10){
9636 {
9637 { /* Inline parser_nodes#ANode#parent= (var_n_label,self) on <var_n_label:nullable ALabel(ALabel)> */
9638 var_n_label->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_label:nullable ALabel(ALabel)> */
9639 RET_LABEL16:(void)0;
9640 }
9641 }
9642 } else {
9643 }
9644 RET_LABEL:;
9645 }
9646 /* method parser_prod#ALoopExpr#init_aloopexpr for (self: Object, nullable TKwloop, nullable AExpr, nullable ALabel) */
9647 void VIRTUAL_parser_prod__ALoopExpr__init_aloopexpr(val* self, val* p0, val* p1, val* p2) {
9648 parser_prod__ALoopExpr__init_aloopexpr(self, p0, p1, p2); /* Direct call parser_prod#ALoopExpr#init_aloopexpr on <self:Object(ALoopExpr)>*/
9649 RET_LABEL:;
9650 }
9651 /* method parser_prod#ALoopExpr#replace_child for (self: ALoopExpr, ANode, nullable ANode) */
9652 void parser_prod__ALoopExpr__replace_child(val* self, val* p0, val* p1) {
9653 val* var_old_child /* var old_child: ANode */;
9654 val* var_new_child /* var new_child: nullable ANode */;
9655 val* var /* : TKwloop */;
9656 short int var1 /* : Bool */;
9657 short int var2 /* : Bool */;
9658 val* var_other /* var other: nullable Object */;
9659 short int var4 /* : Bool */;
9660 short int var6 /* : Bool */;
9661 short int var7 /* : Bool */;
9662 int cltype;
9663 int idtype;
9664 const char* var_class_name;
9665 val* var8 /* : nullable AExpr */;
9666 short int var9 /* : Bool */;
9667 short int var10 /* : Bool */;
9668 short int var12 /* : Bool */;
9669 short int var14 /* : Bool */;
9670 short int var15 /* : Bool */;
9671 int cltype16;
9672 int idtype17;
9673 const char* var_class_name18;
9674 val* var19 /* : nullable ALabel */;
9675 short int var20 /* : Bool */;
9676 short int var21 /* : Bool */;
9677 short int var23 /* : Bool */;
9678 short int var25 /* : Bool */;
9679 short int var26 /* : Bool */;
9680 int cltype27;
9681 int idtype28;
9682 const char* var_class_name29;
9683 var_old_child = p0;
9684 var_new_child = p1;
9685 var = self->attrs[COLOR_parser_nodes__ALoopExpr___n_kwloop].val; /* _n_kwloop on <self:ALoopExpr> */
9686 if (unlikely(var == NULL)) {
9687 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwloop");
9688 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2718);
9689 show_backtrace(1);
9690 }
9691 {
9692 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwloop> */
9693 var_other = var_old_child;
9694 {
9695 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TKwloop> */
9696 var6 = var == var_other;
9697 var4 = var6;
9698 goto RET_LABEL5;
9699 RET_LABEL5:(void)0;
9700 }
9701 }
9702 var2 = var4;
9703 goto RET_LABEL3;
9704 RET_LABEL3:(void)0;
9705 }
9706 var1 = var2;
9707 }
9708 if (var1){
9709 /* <var_new_child:nullable ANode> isa TKwloop */
9710 cltype = type_parser_nodes__TKwloop.color;
9711 idtype = type_parser_nodes__TKwloop.id;
9712 if(var_new_child == NULL) {
9713 var7 = 0;
9714 } else {
9715 if(cltype >= var_new_child->type->table_size) {
9716 var7 = 0;
9717 } else {
9718 var7 = var_new_child->type->type_table[cltype] == idtype;
9719 }
9720 }
9721 if (unlikely(!var7)) {
9722 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
9723 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwloop", var_class_name);
9724 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2719);
9725 show_backtrace(1);
9726 }
9727 {
9728 parser_prod__ALoopExpr__n_kwloop_61d(self, var_new_child); /* Direct call parser_prod#ALoopExpr#n_kwloop= on <self:ALoopExpr>*/
9729 }
9730 goto RET_LABEL;
9731 } else {
9732 }
9733 var8 = self->attrs[COLOR_parser_nodes__ALoopExpr___n_block].val; /* _n_block on <self:ALoopExpr> */
9734 if (var8 == NULL) {
9735 var9 = 0; /* <var_old_child:ANode> cannot be null */
9736 } else {
9737 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:nullable AExpr> */
9738 var_other = var_old_child;
9739 {
9740 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:nullable AExpr(AExpr)> */
9741 var14 = var8 == var_other;
9742 var12 = var14;
9743 goto RET_LABEL13;
9744 RET_LABEL13:(void)0;
9745 }
9746 }
9747 var10 = var12;
9748 goto RET_LABEL11;
9749 RET_LABEL11:(void)0;
9750 }
9751 var9 = var10;
9752 }
9753 if (var9){
9754 /* <var_new_child:nullable ANode> isa nullable AExpr */
9755 cltype16 = type_nullable_parser_nodes__AExpr.color;
9756 idtype17 = type_nullable_parser_nodes__AExpr.id;
9757 if(var_new_child == NULL) {
9758 var15 = 1;
9759 } else {
9760 if(cltype16 >= var_new_child->type->table_size) {
9761 var15 = 0;
9762 } else {
9763 var15 = var_new_child->type->type_table[cltype16] == idtype17;
9764 }
9765 }
9766 if (unlikely(!var15)) {
9767 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
9768 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AExpr", var_class_name18);
9769 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2723);
9770 show_backtrace(1);
9771 }
9772 {
9773 parser_prod__ALoopExpr__n_block_61d(self, var_new_child); /* Direct call parser_prod#ALoopExpr#n_block= on <self:ALoopExpr>*/
9774 }
9775 goto RET_LABEL;
9776 } else {
9777 }
9778 var19 = self->attrs[COLOR_parser_nodes__ALabelable___n_label].val; /* _n_label on <self:ALoopExpr> */
9779 if (var19 == NULL) {
9780 var20 = 0; /* <var_old_child:ANode> cannot be null */
9781 } else {
9782 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:nullable ALabel> */
9783 var_other = var_old_child;
9784 {
9785 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:nullable ALabel(ALabel)> */
9786 var25 = var19 == var_other;
9787 var23 = var25;
9788 goto RET_LABEL24;
9789 RET_LABEL24:(void)0;
9790 }
9791 }
9792 var21 = var23;
9793 goto RET_LABEL22;
9794 RET_LABEL22:(void)0;
9795 }
9796 var20 = var21;
9797 }
9798 if (var20){
9799 /* <var_new_child:nullable ANode> isa nullable ALabel */
9800 cltype27 = type_nullable_parser_nodes__ALabel.color;
9801 idtype28 = type_nullable_parser_nodes__ALabel.id;
9802 if(var_new_child == NULL) {
9803 var26 = 1;
9804 } else {
9805 if(cltype27 >= var_new_child->type->table_size) {
9806 var26 = 0;
9807 } else {
9808 var26 = var_new_child->type->type_table[cltype27] == idtype28;
9809 }
9810 }
9811 if (unlikely(!var26)) {
9812 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
9813 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ALabel", var_class_name29);
9814 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2727);
9815 show_backtrace(1);
9816 }
9817 {
9818 parser_prod__ALoopExpr__n_label_61d(self, var_new_child); /* Direct call parser_prod#ALoopExpr#n_label= on <self:ALoopExpr>*/
9819 }
9820 goto RET_LABEL;
9821 } else {
9822 }
9823 RET_LABEL:;
9824 }
9825 /* method parser_prod#ALoopExpr#replace_child for (self: Object, ANode, nullable ANode) */
9826 void VIRTUAL_parser_prod__ALoopExpr__replace_child(val* self, val* p0, val* p1) {
9827 parser_prod__ALoopExpr__replace_child(self, p0, p1); /* Direct call parser_prod#ALoopExpr#replace_child on <self:Object(ALoopExpr)>*/
9828 RET_LABEL:;
9829 }
9830 /* method parser_prod#ALoopExpr#n_kwloop= for (self: ALoopExpr, TKwloop) */
9831 void parser_prod__ALoopExpr__n_kwloop_61d(val* self, val* p0) {
9832 val* var_node /* var node: TKwloop */;
9833 var_node = p0;
9834 self->attrs[COLOR_parser_nodes__ALoopExpr___n_kwloop].val = var_node; /* _n_kwloop on <self:ALoopExpr> */
9835 {
9836 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwloop> */
9837 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwloop> */
9838 RET_LABEL1:(void)0;
9839 }
9840 }
9841 RET_LABEL:;
9842 }
9843 /* method parser_prod#ALoopExpr#n_kwloop= for (self: Object, TKwloop) */
9844 void VIRTUAL_parser_prod__ALoopExpr__n_kwloop_61d(val* self, val* p0) {
9845 parser_prod__ALoopExpr__n_kwloop_61d(self, p0); /* Direct call parser_prod#ALoopExpr#n_kwloop= on <self:Object(ALoopExpr)>*/
9846 RET_LABEL:;
9847 }
9848 /* method parser_prod#ALoopExpr#n_block= for (self: ALoopExpr, nullable AExpr) */
9849 void parser_prod__ALoopExpr__n_block_61d(val* self, val* p0) {
9850 val* var_node /* var node: nullable AExpr */;
9851 val* var /* : null */;
9852 short int var1 /* : Bool */;
9853 short int var2 /* : Bool */;
9854 val* var_other /* var other: nullable Object */;
9855 short int var4 /* : Bool */;
9856 short int var5 /* : Bool */;
9857 short int var6 /* : Bool */;
9858 var_node = p0;
9859 self->attrs[COLOR_parser_nodes__ALoopExpr___n_block].val = var_node; /* _n_block on <self:ALoopExpr> */
9860 var = NULL;
9861 if (var_node == NULL) {
9862 var1 = 0; /* is null */
9863 } else {
9864 var1 = 1; /* arg is null and recv is not */
9865 }
9866 if (0) {
9867 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AExpr> */
9868 var_other = var;
9869 {
9870 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AExpr(AExpr)>*/;
9871 var4 = var5;
9872 }
9873 var6 = !var4;
9874 var2 = var6;
9875 goto RET_LABEL3;
9876 RET_LABEL3:(void)0;
9877 }
9878 var1 = var2;
9879 }
9880 if (var1){
9881 {
9882 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AExpr(AExpr)> */
9883 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AExpr(AExpr)> */
9884 RET_LABEL7:(void)0;
9885 }
9886 }
9887 } else {
9888 }
9889 RET_LABEL:;
9890 }
9891 /* method parser_prod#ALoopExpr#n_block= for (self: Object, nullable AExpr) */
9892 void VIRTUAL_parser_prod__ALoopExpr__n_block_61d(val* self, val* p0) {
9893 parser_prod__ALoopExpr__n_block_61d(self, p0); /* Direct call parser_prod#ALoopExpr#n_block= on <self:Object(ALoopExpr)>*/
9894 RET_LABEL:;
9895 }
9896 /* method parser_prod#ALoopExpr#n_label= for (self: ALoopExpr, nullable ALabel) */
9897 void parser_prod__ALoopExpr__n_label_61d(val* self, val* p0) {
9898 val* var_node /* var node: nullable ALabel */;
9899 val* var /* : null */;
9900 short int var1 /* : Bool */;
9901 short int var2 /* : Bool */;
9902 val* var_other /* var other: nullable Object */;
9903 short int var4 /* : Bool */;
9904 short int var5 /* : Bool */;
9905 short int var6 /* : Bool */;
9906 var_node = p0;
9907 self->attrs[COLOR_parser_nodes__ALabelable___n_label].val = var_node; /* _n_label on <self:ALoopExpr> */
9908 var = NULL;
9909 if (var_node == NULL) {
9910 var1 = 0; /* is null */
9911 } else {
9912 var1 = 1; /* arg is null and recv is not */
9913 }
9914 if (0) {
9915 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable ALabel> */
9916 var_other = var;
9917 {
9918 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable ALabel(ALabel)>*/;
9919 var4 = var5;
9920 }
9921 var6 = !var4;
9922 var2 = var6;
9923 goto RET_LABEL3;
9924 RET_LABEL3:(void)0;
9925 }
9926 var1 = var2;
9927 }
9928 if (var1){
9929 {
9930 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable ALabel(ALabel)> */
9931 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable ALabel(ALabel)> */
9932 RET_LABEL7:(void)0;
9933 }
9934 }
9935 } else {
9936 }
9937 RET_LABEL:;
9938 }
9939 /* method parser_prod#ALoopExpr#n_label= for (self: Object, nullable ALabel) */
9940 void VIRTUAL_parser_prod__ALoopExpr__n_label_61d(val* self, val* p0) {
9941 parser_prod__ALoopExpr__n_label_61d(self, p0); /* Direct call parser_prod#ALoopExpr#n_label= on <self:Object(ALoopExpr)>*/
9942 RET_LABEL:;
9943 }
9944 /* method parser_prod#ALoopExpr#visit_all for (self: ALoopExpr, Visitor) */
9945 void parser_prod__ALoopExpr__visit_all(val* self, val* p0) {
9946 val* var_v /* var v: Visitor */;
9947 val* var /* : TKwloop */;
9948 val* var1 /* : nullable AExpr */;
9949 val* var2 /* : nullable ALabel */;
9950 var_v = p0;
9951 var = self->attrs[COLOR_parser_nodes__ALoopExpr___n_kwloop].val; /* _n_kwloop on <self:ALoopExpr> */
9952 if (unlikely(var == NULL)) {
9953 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwloop");
9954 PRINT_ERROR(" (%s:%d)\n", "parser/parser_prod.nit", 2751);
9955 show_backtrace(1);
9956 }
9957 {
9958 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9959 }
9960 var1 = self->attrs[COLOR_parser_nodes__ALoopExpr___n_block].val; /* _n_block on <self:ALoopExpr> */
9961 {
9962 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9963 }
9964 var2 = self->attrs[COLOR_parser_nodes__ALabelable___n_label].val; /* _n_label on <self:ALoopExpr> */
9965 {
9966 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9967 }
9968 RET_LABEL:;
9969 }
9970 /* method parser_prod#ALoopExpr#visit_all for (self: Object, Visitor) */
9971 void VIRTUAL_parser_prod__ALoopExpr__visit_all(val* self, val* p0) {
9972 parser_prod__ALoopExpr__visit_all(self, p0); /* Direct call parser_prod#ALoopExpr#visit_all on <self:Object(ALoopExpr)>*/
9973 RET_LABEL:;
9974 }