neo: Explain how arguments of a MClasType are named.
[nit.git] / c_src / parser_prod.sep.2.c
1 #include "parser_prod.sep.0.h"
2 /* method parser_prod#AExternMethPropdef#init_aexternmethpropdef for (self: AExternMethPropdef, nullable ADoc, nullable TKwredef, nullable AVisibility, nullable TKwmeth, nullable AMethid, nullable ASignature, nullable AAnnotations, nullable TString, nullable AExternCalls, nullable AExternCodeBlock) */
3 void parser_prod__AExternMethPropdef__init_aexternmethpropdef(val* self, val* p0, val* p1, val* p2, val* p3, val* p4, val* p5, val* p6, val* p7, val* p8, val* p9) {
4 val* var_n_doc /* var n_doc: nullable ADoc */;
5 val* var_n_kwredef /* var n_kwredef: nullable TKwredef */;
6 val* var_n_visibility /* var n_visibility: nullable AVisibility */;
7 val* var_n_kwmeth /* var n_kwmeth: nullable TKwmeth */;
8 val* var_n_methid /* var n_methid: nullable AMethid */;
9 val* var_n_signature /* var n_signature: nullable ASignature */;
10 val* var_n_annotations /* var n_annotations: nullable AAnnotations */;
11 val* var_n_extern /* var n_extern: nullable TString */;
12 val* var_n_extern_calls /* var n_extern_calls: nullable AExternCalls */;
13 val* var_n_extern_code_block /* var n_extern_code_block: nullable AExternCodeBlock */;
14 val* var /* : null */;
15 short int var1 /* : Bool */;
16 short int var2 /* : Bool */;
17 val* var_other /* var other: nullable Object */;
18 short int var4 /* : Bool */;
19 short int var5 /* : Bool */;
20 short int var6 /* : Bool */;
21 val* var8 /* : null */;
22 short int var9 /* : Bool */;
23 short int var10 /* : Bool */;
24 short int var12 /* : Bool */;
25 short int var13 /* : Bool */;
26 short int var14 /* : Bool */;
27 val* var20 /* : null */;
28 short int var21 /* : Bool */;
29 short int var22 /* : Bool */;
30 short int var24 /* : Bool */;
31 short int var25 /* : Bool */;
32 short int var26 /* : Bool */;
33 val* var28 /* : null */;
34 short int var29 /* : Bool */;
35 short int var30 /* : Bool */;
36 short int var32 /* : Bool */;
37 short int var33 /* : Bool */;
38 short int var34 /* : Bool */;
39 val* var36 /* : null */;
40 short int var37 /* : Bool */;
41 short int var38 /* : Bool */;
42 short int var40 /* : Bool */;
43 short int var41 /* : Bool */;
44 short int var42 /* : Bool */;
45 val* var44 /* : null */;
46 short int var45 /* : Bool */;
47 short int var46 /* : Bool */;
48 short int var48 /* : Bool */;
49 short int var49 /* : Bool */;
50 short int var50 /* : Bool */;
51 var_n_doc = p0;
52 var_n_kwredef = p1;
53 var_n_visibility = p2;
54 var_n_kwmeth = p3;
55 var_n_methid = p4;
56 var_n_signature = p5;
57 var_n_annotations = p6;
58 var_n_extern = p7;
59 var_n_extern_calls = p8;
60 var_n_extern_code_block = p9;
61 self->attrs[COLOR_parser_nodes__APropdef___n_doc].val = var_n_doc; /* _n_doc on <self:AExternMethPropdef> */
62 var = NULL;
63 if (var_n_doc == NULL) {
64 var1 = 0; /* is null */
65 } else {
66 var1 = 1; /* arg is null and recv is not */
67 }
68 if (0) {
69 { /* Inline kernel#Object#!= (var_n_doc,var) on <var_n_doc:nullable ADoc> */
70 var_other = var;
71 {
72 var5 = ((short int (*)(val*, val*))(var_n_doc->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_doc, var_other) /* == on <var_n_doc:nullable ADoc(ADoc)>*/;
73 var4 = var5;
74 }
75 var6 = !var4;
76 var2 = var6;
77 goto RET_LABEL3;
78 RET_LABEL3:(void)0;
79 }
80 var1 = var2;
81 }
82 if (var1){
83 {
84 { /* Inline parser_nodes#ANode#parent= (var_n_doc,self) on <var_n_doc:nullable ADoc(ADoc)> */
85 var_n_doc->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_doc:nullable ADoc(ADoc)> */
86 RET_LABEL7:(void)0;
87 }
88 }
89 } else {
90 }
91 self->attrs[COLOR_parser_nodes__APropdef___n_kwredef].val = var_n_kwredef; /* _n_kwredef on <self:AExternMethPropdef> */
92 var8 = NULL;
93 if (var_n_kwredef == NULL) {
94 var9 = 0; /* is null */
95 } else {
96 var9 = 1; /* arg is null and recv is not */
97 }
98 if (0) {
99 { /* Inline kernel#Object#!= (var_n_kwredef,var8) on <var_n_kwredef:nullable TKwredef> */
100 var_other = var8;
101 {
102 var13 = ((short int (*)(val*, val*))(var_n_kwredef->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_kwredef, var_other) /* == on <var_n_kwredef:nullable TKwredef(TKwredef)>*/;
103 var12 = var13;
104 }
105 var14 = !var12;
106 var10 = var14;
107 goto RET_LABEL11;
108 RET_LABEL11:(void)0;
109 }
110 var9 = var10;
111 }
112 if (var9){
113 {
114 { /* Inline parser_nodes#ANode#parent= (var_n_kwredef,self) on <var_n_kwredef:nullable TKwredef(TKwredef)> */
115 var_n_kwredef->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwredef:nullable TKwredef(TKwredef)> */
116 RET_LABEL15:(void)0;
117 }
118 }
119 } else {
120 }
121 if (unlikely(var_n_visibility == NULL)) {
122 PRINT_ERROR("Runtime error: %s", "Cast failed");
123 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1389);
124 show_backtrace(1);
125 }
126 self->attrs[COLOR_parser_nodes__APropdef___n_visibility].val = var_n_visibility; /* _n_visibility on <self:AExternMethPropdef> */
127 if (var_n_visibility == NULL) {
128 PRINT_ERROR("Runtime error: %s", "Receiver is null");
129 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1390);
130 show_backtrace(1);
131 } else {
132 { /* Inline parser_nodes#ANode#parent= (var_n_visibility,self) on <var_n_visibility:nullable AVisibility> */
133 if (unlikely(var_n_visibility == NULL)) {
134 PRINT_ERROR("Runtime error: %s", "Receiver is null");
135 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
136 show_backtrace(1);
137 }
138 var_n_visibility->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_visibility:nullable AVisibility> */
139 RET_LABEL16:(void)0;
140 }
141 }
142 if (unlikely(var_n_kwmeth == NULL)) {
143 PRINT_ERROR("Runtime error: %s", "Cast failed");
144 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1391);
145 show_backtrace(1);
146 }
147 self->attrs[COLOR_parser_nodes__AMethPropdef___n_kwmeth].val = var_n_kwmeth; /* _n_kwmeth on <self:AExternMethPropdef> */
148 if (var_n_kwmeth == NULL) {
149 PRINT_ERROR("Runtime error: %s", "Receiver is null");
150 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1392);
151 show_backtrace(1);
152 } else {
153 { /* Inline parser_nodes#ANode#parent= (var_n_kwmeth,self) on <var_n_kwmeth:nullable TKwmeth> */
154 if (unlikely(var_n_kwmeth == NULL)) {
155 PRINT_ERROR("Runtime error: %s", "Receiver is null");
156 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
157 show_backtrace(1);
158 }
159 var_n_kwmeth->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwmeth:nullable TKwmeth> */
160 RET_LABEL17:(void)0;
161 }
162 }
163 if (unlikely(var_n_methid == NULL)) {
164 PRINT_ERROR("Runtime error: %s", "Cast failed");
165 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1393);
166 show_backtrace(1);
167 }
168 self->attrs[COLOR_parser_nodes__AMethPropdef___n_methid].val = var_n_methid; /* _n_methid on <self:AExternMethPropdef> */
169 if (var_n_methid == NULL) {
170 PRINT_ERROR("Runtime error: %s", "Receiver is null");
171 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1394);
172 show_backtrace(1);
173 } else {
174 { /* Inline parser_nodes#ANode#parent= (var_n_methid,self) on <var_n_methid:nullable AMethid> */
175 if (unlikely(var_n_methid == NULL)) {
176 PRINT_ERROR("Runtime error: %s", "Receiver is null");
177 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
178 show_backtrace(1);
179 }
180 var_n_methid->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_methid:nullable AMethid> */
181 RET_LABEL18:(void)0;
182 }
183 }
184 if (unlikely(var_n_signature == NULL)) {
185 PRINT_ERROR("Runtime error: %s", "Cast failed");
186 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1395);
187 show_backtrace(1);
188 }
189 self->attrs[COLOR_parser_nodes__AMethPropdef___n_signature].val = var_n_signature; /* _n_signature on <self:AExternMethPropdef> */
190 if (var_n_signature == NULL) {
191 PRINT_ERROR("Runtime error: %s", "Receiver is null");
192 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1396);
193 show_backtrace(1);
194 } else {
195 { /* Inline parser_nodes#ANode#parent= (var_n_signature,self) on <var_n_signature:nullable ASignature> */
196 if (unlikely(var_n_signature == NULL)) {
197 PRINT_ERROR("Runtime error: %s", "Receiver is null");
198 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
199 show_backtrace(1);
200 }
201 var_n_signature->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_signature:nullable ASignature> */
202 RET_LABEL19:(void)0;
203 }
204 }
205 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:AExternMethPropdef> */
206 var20 = NULL;
207 if (var_n_annotations == NULL) {
208 var21 = 0; /* is null */
209 } else {
210 var21 = 1; /* arg is null and recv is not */
211 }
212 if (0) {
213 { /* Inline kernel#Object#!= (var_n_annotations,var20) on <var_n_annotations:nullable AAnnotations> */
214 var_other = var20;
215 {
216 var25 = ((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)>*/;
217 var24 = var25;
218 }
219 var26 = !var24;
220 var22 = var26;
221 goto RET_LABEL23;
222 RET_LABEL23:(void)0;
223 }
224 var21 = var22;
225 }
226 if (var21){
227 {
228 { /* Inline parser_nodes#ANode#parent= (var_n_annotations,self) on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
229 var_n_annotations->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
230 RET_LABEL27:(void)0;
231 }
232 }
233 } else {
234 }
235 self->attrs[COLOR_parser_nodes__AMethPropdef___n_extern].val = var_n_extern; /* _n_extern on <self:AExternMethPropdef> */
236 var28 = NULL;
237 if (var_n_extern == NULL) {
238 var29 = 0; /* is null */
239 } else {
240 var29 = 1; /* arg is null and recv is not */
241 }
242 if (0) {
243 { /* Inline kernel#Object#!= (var_n_extern,var28) on <var_n_extern:nullable TString> */
244 var_other = var28;
245 {
246 var33 = ((short int (*)(val*, val*))(var_n_extern->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_extern, var_other) /* == on <var_n_extern:nullable TString(TString)>*/;
247 var32 = var33;
248 }
249 var34 = !var32;
250 var30 = var34;
251 goto RET_LABEL31;
252 RET_LABEL31:(void)0;
253 }
254 var29 = var30;
255 }
256 if (var29){
257 {
258 { /* Inline parser_nodes#ANode#parent= (var_n_extern,self) on <var_n_extern:nullable TString(TString)> */
259 var_n_extern->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_extern:nullable TString(TString)> */
260 RET_LABEL35:(void)0;
261 }
262 }
263 } else {
264 }
265 self->attrs[COLOR_parser_nodes__AMethPropdef___n_extern_calls].val = var_n_extern_calls; /* _n_extern_calls on <self:AExternMethPropdef> */
266 var36 = NULL;
267 if (var_n_extern_calls == NULL) {
268 var37 = 0; /* is null */
269 } else {
270 var37 = 1; /* arg is null and recv is not */
271 }
272 if (0) {
273 { /* Inline kernel#Object#!= (var_n_extern_calls,var36) on <var_n_extern_calls:nullable AExternCalls> */
274 var_other = var36;
275 {
276 var41 = ((short int (*)(val*, val*))(var_n_extern_calls->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_extern_calls, var_other) /* == on <var_n_extern_calls:nullable AExternCalls(AExternCalls)>*/;
277 var40 = var41;
278 }
279 var42 = !var40;
280 var38 = var42;
281 goto RET_LABEL39;
282 RET_LABEL39:(void)0;
283 }
284 var37 = var38;
285 }
286 if (var37){
287 {
288 { /* Inline parser_nodes#ANode#parent= (var_n_extern_calls,self) on <var_n_extern_calls:nullable AExternCalls(AExternCalls)> */
289 var_n_extern_calls->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_extern_calls:nullable AExternCalls(AExternCalls)> */
290 RET_LABEL43:(void)0;
291 }
292 }
293 } else {
294 }
295 self->attrs[COLOR_parser_nodes__AMethPropdef___n_extern_code_block].val = var_n_extern_code_block; /* _n_extern_code_block on <self:AExternMethPropdef> */
296 var44 = NULL;
297 if (var_n_extern_code_block == NULL) {
298 var45 = 0; /* is null */
299 } else {
300 var45 = 1; /* arg is null and recv is not */
301 }
302 if (0) {
303 { /* Inline kernel#Object#!= (var_n_extern_code_block,var44) on <var_n_extern_code_block:nullable AExternCodeBlock> */
304 var_other = var44;
305 {
306 var49 = ((short int (*)(val*, val*))(var_n_extern_code_block->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_extern_code_block, var_other) /* == on <var_n_extern_code_block:nullable AExternCodeBlock(AExternCodeBlock)>*/;
307 var48 = var49;
308 }
309 var50 = !var48;
310 var46 = var50;
311 goto RET_LABEL47;
312 RET_LABEL47:(void)0;
313 }
314 var45 = var46;
315 }
316 if (var45){
317 {
318 { /* Inline parser_nodes#ANode#parent= (var_n_extern_code_block,self) on <var_n_extern_code_block:nullable AExternCodeBlock(AExternCodeBlock)> */
319 var_n_extern_code_block->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_extern_code_block:nullable AExternCodeBlock(AExternCodeBlock)> */
320 RET_LABEL51:(void)0;
321 }
322 }
323 } else {
324 }
325 RET_LABEL:;
326 }
327 /* method parser_prod#AExternMethPropdef#init_aexternmethpropdef for (self: Object, nullable ADoc, nullable TKwredef, nullable AVisibility, nullable TKwmeth, nullable AMethid, nullable ASignature, nullable AAnnotations, nullable TString, nullable AExternCalls, nullable AExternCodeBlock) */
328 void VIRTUAL_parser_prod__AExternMethPropdef__init_aexternmethpropdef(val* self, val* p0, val* p1, val* p2, val* p3, val* p4, val* p5, val* p6, val* p7, val* p8, val* p9) {
329 parser_prod__AExternMethPropdef__init_aexternmethpropdef(self, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9); /* Direct call parser_prod#AExternMethPropdef#init_aexternmethpropdef on <self:Object(AExternMethPropdef)>*/
330 RET_LABEL:;
331 }
332 /* method parser_prod#AExternMethPropdef#replace_child for (self: AExternMethPropdef, ANode, nullable ANode) */
333 void parser_prod__AExternMethPropdef__replace_child(val* self, val* p0, val* p1) {
334 val* var_old_child /* var old_child: ANode */;
335 val* var_new_child /* var new_child: nullable ANode */;
336 val* var /* : nullable ADoc */;
337 short int var1 /* : Bool */;
338 short int var2 /* : Bool */;
339 val* var_other /* var other: nullable Object */;
340 short int var4 /* : Bool */;
341 short int var6 /* : Bool */;
342 short int var7 /* : Bool */;
343 int cltype;
344 int idtype;
345 const char* var_class_name;
346 val* var8 /* : nullable TKwredef */;
347 short int var9 /* : Bool */;
348 short int var10 /* : Bool */;
349 short int var12 /* : Bool */;
350 short int var14 /* : Bool */;
351 short int var15 /* : Bool */;
352 int cltype16;
353 int idtype17;
354 const char* var_class_name18;
355 val* var19 /* : nullable AVisibility */;
356 short int var20 /* : Bool */;
357 short int var21 /* : Bool */;
358 short int var23 /* : Bool */;
359 short int var25 /* : Bool */;
360 short int var26 /* : Bool */;
361 int cltype27;
362 int idtype28;
363 const char* var_class_name29;
364 val* var30 /* : nullable TKwmeth */;
365 short int var31 /* : Bool */;
366 short int var32 /* : Bool */;
367 short int var34 /* : Bool */;
368 short int var36 /* : Bool */;
369 short int var37 /* : Bool */;
370 int cltype38;
371 int idtype39;
372 const char* var_class_name40;
373 val* var41 /* : nullable AMethid */;
374 short int var42 /* : Bool */;
375 short int var43 /* : Bool */;
376 short int var45 /* : Bool */;
377 short int var47 /* : Bool */;
378 short int var48 /* : Bool */;
379 int cltype49;
380 int idtype50;
381 const char* var_class_name51;
382 val* var52 /* : nullable ASignature */;
383 short int var53 /* : Bool */;
384 short int var54 /* : Bool */;
385 short int var56 /* : Bool */;
386 short int var58 /* : Bool */;
387 short int var59 /* : Bool */;
388 int cltype60;
389 int idtype61;
390 const char* var_class_name62;
391 val* var63 /* : nullable AAnnotations */;
392 short int var64 /* : Bool */;
393 short int var65 /* : Bool */;
394 short int var67 /* : Bool */;
395 short int var69 /* : Bool */;
396 short int var70 /* : Bool */;
397 int cltype71;
398 int idtype72;
399 const char* var_class_name73;
400 val* var74 /* : nullable TString */;
401 short int var75 /* : Bool */;
402 short int var76 /* : Bool */;
403 short int var78 /* : Bool */;
404 short int var80 /* : Bool */;
405 short int var81 /* : Bool */;
406 int cltype82;
407 int idtype83;
408 const char* var_class_name84;
409 val* var85 /* : nullable AExternCalls */;
410 short int var86 /* : Bool */;
411 short int var87 /* : Bool */;
412 short int var89 /* : Bool */;
413 short int var91 /* : Bool */;
414 short int var92 /* : Bool */;
415 int cltype93;
416 int idtype94;
417 const char* var_class_name95;
418 val* var96 /* : nullable AExternCodeBlock */;
419 short int var97 /* : Bool */;
420 short int var98 /* : Bool */;
421 short int var100 /* : Bool */;
422 short int var102 /* : Bool */;
423 short int var103 /* : Bool */;
424 int cltype104;
425 int idtype105;
426 const char* var_class_name106;
427 var_old_child = p0;
428 var_new_child = p1;
429 var = self->attrs[COLOR_parser_nodes__APropdef___n_doc].val; /* _n_doc on <self:AExternMethPropdef> */
430 if (var == NULL) {
431 var1 = 0; /* <var_old_child:ANode> cannot be null */
432 } else {
433 { /* Inline kernel#Object#== (var,var_old_child) on <var:nullable ADoc> */
434 var_other = var_old_child;
435 {
436 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:nullable ADoc(ADoc)> */
437 var6 = var == var_other;
438 var4 = var6;
439 goto RET_LABEL5;
440 RET_LABEL5:(void)0;
441 }
442 }
443 var2 = var4;
444 goto RET_LABEL3;
445 RET_LABEL3:(void)0;
446 }
447 var1 = var2;
448 }
449 if (var1){
450 /* <var_new_child:nullable ANode> isa nullable ADoc */
451 cltype = type_nullable_parser_nodes__ADoc.color;
452 idtype = type_nullable_parser_nodes__ADoc.id;
453 if(var_new_child == NULL) {
454 var7 = 1;
455 } else {
456 if(cltype >= var_new_child->type->table_size) {
457 var7 = 0;
458 } else {
459 var7 = var_new_child->type->type_table[cltype] == idtype;
460 }
461 }
462 if (unlikely(!var7)) {
463 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
464 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ADoc", var_class_name);
465 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1410);
466 show_backtrace(1);
467 }
468 {
469 parser_prod__AExternMethPropdef__n_doc_61d(self, var_new_child); /* Direct call parser_prod#AExternMethPropdef#n_doc= on <self:AExternMethPropdef>*/
470 }
471 goto RET_LABEL;
472 } else {
473 }
474 var8 = self->attrs[COLOR_parser_nodes__APropdef___n_kwredef].val; /* _n_kwredef on <self:AExternMethPropdef> */
475 if (var8 == NULL) {
476 var9 = 0; /* <var_old_child:ANode> cannot be null */
477 } else {
478 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:nullable TKwredef> */
479 var_other = var_old_child;
480 {
481 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:nullable TKwredef(TKwredef)> */
482 var14 = var8 == var_other;
483 var12 = var14;
484 goto RET_LABEL13;
485 RET_LABEL13:(void)0;
486 }
487 }
488 var10 = var12;
489 goto RET_LABEL11;
490 RET_LABEL11:(void)0;
491 }
492 var9 = var10;
493 }
494 if (var9){
495 /* <var_new_child:nullable ANode> isa nullable TKwredef */
496 cltype16 = type_nullable_parser_nodes__TKwredef.color;
497 idtype17 = type_nullable_parser_nodes__TKwredef.id;
498 if(var_new_child == NULL) {
499 var15 = 1;
500 } else {
501 if(cltype16 >= var_new_child->type->table_size) {
502 var15 = 0;
503 } else {
504 var15 = var_new_child->type->type_table[cltype16] == idtype17;
505 }
506 }
507 if (unlikely(!var15)) {
508 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
509 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TKwredef", var_class_name18);
510 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1414);
511 show_backtrace(1);
512 }
513 {
514 parser_prod__AExternMethPropdef__n_kwredef_61d(self, var_new_child); /* Direct call parser_prod#AExternMethPropdef#n_kwredef= on <self:AExternMethPropdef>*/
515 }
516 goto RET_LABEL;
517 } else {
518 }
519 var19 = self->attrs[COLOR_parser_nodes__APropdef___n_visibility].val; /* _n_visibility on <self:AExternMethPropdef> */
520 if (var19 == NULL) {
521 var20 = 0; /* <var_old_child:ANode> cannot be null */
522 } else {
523 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:nullable AVisibility> */
524 var_other = var_old_child;
525 {
526 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:nullable AVisibility(AVisibility)> */
527 var25 = var19 == var_other;
528 var23 = var25;
529 goto RET_LABEL24;
530 RET_LABEL24:(void)0;
531 }
532 }
533 var21 = var23;
534 goto RET_LABEL22;
535 RET_LABEL22:(void)0;
536 }
537 var20 = var21;
538 }
539 if (var20){
540 /* <var_new_child:nullable ANode> isa AVisibility */
541 cltype27 = type_parser_nodes__AVisibility.color;
542 idtype28 = type_parser_nodes__AVisibility.id;
543 if(var_new_child == NULL) {
544 var26 = 0;
545 } else {
546 if(cltype27 >= var_new_child->type->table_size) {
547 var26 = 0;
548 } else {
549 var26 = var_new_child->type->type_table[cltype27] == idtype28;
550 }
551 }
552 if (unlikely(!var26)) {
553 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
554 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AVisibility", var_class_name29);
555 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1418);
556 show_backtrace(1);
557 }
558 {
559 parser_prod__AExternMethPropdef__n_visibility_61d(self, var_new_child); /* Direct call parser_prod#AExternMethPropdef#n_visibility= on <self:AExternMethPropdef>*/
560 }
561 goto RET_LABEL;
562 } else {
563 }
564 var30 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_kwmeth].val; /* _n_kwmeth on <self:AExternMethPropdef> */
565 if (var30 == NULL) {
566 var31 = 0; /* <var_old_child:ANode> cannot be null */
567 } else {
568 { /* Inline kernel#Object#== (var30,var_old_child) on <var30:nullable TKwmeth> */
569 var_other = var_old_child;
570 {
571 { /* Inline kernel#Object#is_same_instance (var30,var_other) on <var30:nullable TKwmeth(TKwmeth)> */
572 var36 = var30 == var_other;
573 var34 = var36;
574 goto RET_LABEL35;
575 RET_LABEL35:(void)0;
576 }
577 }
578 var32 = var34;
579 goto RET_LABEL33;
580 RET_LABEL33:(void)0;
581 }
582 var31 = var32;
583 }
584 if (var31){
585 /* <var_new_child:nullable ANode> isa TKwmeth */
586 cltype38 = type_parser_nodes__TKwmeth.color;
587 idtype39 = type_parser_nodes__TKwmeth.id;
588 if(var_new_child == NULL) {
589 var37 = 0;
590 } else {
591 if(cltype38 >= var_new_child->type->table_size) {
592 var37 = 0;
593 } else {
594 var37 = var_new_child->type->type_table[cltype38] == idtype39;
595 }
596 }
597 if (unlikely(!var37)) {
598 var_class_name40 = var_new_child == NULL ? "null" : var_new_child->type->name;
599 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwmeth", var_class_name40);
600 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1422);
601 show_backtrace(1);
602 }
603 {
604 parser_prod__AExternMethPropdef__n_kwmeth_61d(self, var_new_child); /* Direct call parser_prod#AExternMethPropdef#n_kwmeth= on <self:AExternMethPropdef>*/
605 }
606 goto RET_LABEL;
607 } else {
608 }
609 var41 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_methid].val; /* _n_methid on <self:AExternMethPropdef> */
610 if (var41 == NULL) {
611 var42 = 0; /* <var_old_child:ANode> cannot be null */
612 } else {
613 { /* Inline kernel#Object#== (var41,var_old_child) on <var41:nullable AMethid> */
614 var_other = var_old_child;
615 {
616 { /* Inline kernel#Object#is_same_instance (var41,var_other) on <var41:nullable AMethid(AMethid)> */
617 var47 = var41 == var_other;
618 var45 = var47;
619 goto RET_LABEL46;
620 RET_LABEL46:(void)0;
621 }
622 }
623 var43 = var45;
624 goto RET_LABEL44;
625 RET_LABEL44:(void)0;
626 }
627 var42 = var43;
628 }
629 if (var42){
630 /* <var_new_child:nullable ANode> isa AMethid */
631 cltype49 = type_parser_nodes__AMethid.color;
632 idtype50 = type_parser_nodes__AMethid.id;
633 if(var_new_child == NULL) {
634 var48 = 0;
635 } else {
636 if(cltype49 >= var_new_child->type->table_size) {
637 var48 = 0;
638 } else {
639 var48 = var_new_child->type->type_table[cltype49] == idtype50;
640 }
641 }
642 if (unlikely(!var48)) {
643 var_class_name51 = var_new_child == NULL ? "null" : var_new_child->type->name;
644 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AMethid", var_class_name51);
645 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1426);
646 show_backtrace(1);
647 }
648 {
649 parser_prod__AExternMethPropdef__n_methid_61d(self, var_new_child); /* Direct call parser_prod#AExternMethPropdef#n_methid= on <self:AExternMethPropdef>*/
650 }
651 goto RET_LABEL;
652 } else {
653 }
654 var52 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_signature].val; /* _n_signature on <self:AExternMethPropdef> */
655 if (var52 == NULL) {
656 var53 = 0; /* <var_old_child:ANode> cannot be null */
657 } else {
658 { /* Inline kernel#Object#== (var52,var_old_child) on <var52:nullable ASignature> */
659 var_other = var_old_child;
660 {
661 { /* Inline kernel#Object#is_same_instance (var52,var_other) on <var52:nullable ASignature(ASignature)> */
662 var58 = var52 == var_other;
663 var56 = var58;
664 goto RET_LABEL57;
665 RET_LABEL57:(void)0;
666 }
667 }
668 var54 = var56;
669 goto RET_LABEL55;
670 RET_LABEL55:(void)0;
671 }
672 var53 = var54;
673 }
674 if (var53){
675 /* <var_new_child:nullable ANode> isa ASignature */
676 cltype60 = type_parser_nodes__ASignature.color;
677 idtype61 = type_parser_nodes__ASignature.id;
678 if(var_new_child == NULL) {
679 var59 = 0;
680 } else {
681 if(cltype60 >= var_new_child->type->table_size) {
682 var59 = 0;
683 } else {
684 var59 = var_new_child->type->type_table[cltype60] == idtype61;
685 }
686 }
687 if (unlikely(!var59)) {
688 var_class_name62 = var_new_child == NULL ? "null" : var_new_child->type->name;
689 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "ASignature", var_class_name62);
690 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1430);
691 show_backtrace(1);
692 }
693 {
694 parser_prod__AExternMethPropdef__n_signature_61d(self, var_new_child); /* Direct call parser_prod#AExternMethPropdef#n_signature= on <self:AExternMethPropdef>*/
695 }
696 goto RET_LABEL;
697 } else {
698 }
699 var63 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AExternMethPropdef> */
700 if (var63 == NULL) {
701 var64 = 0; /* <var_old_child:ANode> cannot be null */
702 } else {
703 { /* Inline kernel#Object#== (var63,var_old_child) on <var63:nullable AAnnotations> */
704 var_other = var_old_child;
705 {
706 { /* Inline kernel#Object#is_same_instance (var63,var_other) on <var63:nullable AAnnotations(AAnnotations)> */
707 var69 = var63 == var_other;
708 var67 = var69;
709 goto RET_LABEL68;
710 RET_LABEL68:(void)0;
711 }
712 }
713 var65 = var67;
714 goto RET_LABEL66;
715 RET_LABEL66:(void)0;
716 }
717 var64 = var65;
718 }
719 if (var64){
720 /* <var_new_child:nullable ANode> isa nullable AAnnotations */
721 cltype71 = type_nullable_parser_nodes__AAnnotations.color;
722 idtype72 = type_nullable_parser_nodes__AAnnotations.id;
723 if(var_new_child == NULL) {
724 var70 = 1;
725 } else {
726 if(cltype71 >= var_new_child->type->table_size) {
727 var70 = 0;
728 } else {
729 var70 = var_new_child->type->type_table[cltype71] == idtype72;
730 }
731 }
732 if (unlikely(!var70)) {
733 var_class_name73 = var_new_child == NULL ? "null" : var_new_child->type->name;
734 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AAnnotations", var_class_name73);
735 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1434);
736 show_backtrace(1);
737 }
738 {
739 parser_prod__AExternMethPropdef__n_annotations_61d(self, var_new_child); /* Direct call parser_prod#AExternMethPropdef#n_annotations= on <self:AExternMethPropdef>*/
740 }
741 goto RET_LABEL;
742 } else {
743 }
744 var74 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_extern].val; /* _n_extern on <self:AExternMethPropdef> */
745 if (var74 == NULL) {
746 var75 = 0; /* <var_old_child:ANode> cannot be null */
747 } else {
748 { /* Inline kernel#Object#== (var74,var_old_child) on <var74:nullable TString> */
749 var_other = var_old_child;
750 {
751 { /* Inline kernel#Object#is_same_instance (var74,var_other) on <var74:nullable TString(TString)> */
752 var80 = var74 == var_other;
753 var78 = var80;
754 goto RET_LABEL79;
755 RET_LABEL79:(void)0;
756 }
757 }
758 var76 = var78;
759 goto RET_LABEL77;
760 RET_LABEL77:(void)0;
761 }
762 var75 = var76;
763 }
764 if (var75){
765 /* <var_new_child:nullable ANode> isa nullable TString */
766 cltype82 = type_nullable_parser_nodes__TString.color;
767 idtype83 = type_nullable_parser_nodes__TString.id;
768 if(var_new_child == NULL) {
769 var81 = 1;
770 } else {
771 if(cltype82 >= var_new_child->type->table_size) {
772 var81 = 0;
773 } else {
774 var81 = var_new_child->type->type_table[cltype82] == idtype83;
775 }
776 }
777 if (unlikely(!var81)) {
778 var_class_name84 = var_new_child == NULL ? "null" : var_new_child->type->name;
779 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TString", var_class_name84);
780 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1438);
781 show_backtrace(1);
782 }
783 {
784 parser_prod__AExternMethPropdef__n_extern_61d(self, var_new_child); /* Direct call parser_prod#AExternMethPropdef#n_extern= on <self:AExternMethPropdef>*/
785 }
786 goto RET_LABEL;
787 } else {
788 }
789 var85 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_extern_calls].val; /* _n_extern_calls on <self:AExternMethPropdef> */
790 if (var85 == NULL) {
791 var86 = 0; /* <var_old_child:ANode> cannot be null */
792 } else {
793 { /* Inline kernel#Object#== (var85,var_old_child) on <var85:nullable AExternCalls> */
794 var_other = var_old_child;
795 {
796 { /* Inline kernel#Object#is_same_instance (var85,var_other) on <var85:nullable AExternCalls(AExternCalls)> */
797 var91 = var85 == var_other;
798 var89 = var91;
799 goto RET_LABEL90;
800 RET_LABEL90:(void)0;
801 }
802 }
803 var87 = var89;
804 goto RET_LABEL88;
805 RET_LABEL88:(void)0;
806 }
807 var86 = var87;
808 }
809 if (var86){
810 /* <var_new_child:nullable ANode> isa nullable AExternCalls */
811 cltype93 = type_nullable_parser_nodes__AExternCalls.color;
812 idtype94 = type_nullable_parser_nodes__AExternCalls.id;
813 if(var_new_child == NULL) {
814 var92 = 1;
815 } else {
816 if(cltype93 >= var_new_child->type->table_size) {
817 var92 = 0;
818 } else {
819 var92 = var_new_child->type->type_table[cltype93] == idtype94;
820 }
821 }
822 if (unlikely(!var92)) {
823 var_class_name95 = var_new_child == NULL ? "null" : var_new_child->type->name;
824 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AExternCalls", var_class_name95);
825 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1442);
826 show_backtrace(1);
827 }
828 {
829 parser_prod__AExternMethPropdef__n_extern_calls_61d(self, var_new_child); /* Direct call parser_prod#AExternMethPropdef#n_extern_calls= on <self:AExternMethPropdef>*/
830 }
831 goto RET_LABEL;
832 } else {
833 }
834 var96 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_extern_code_block].val; /* _n_extern_code_block on <self:AExternMethPropdef> */
835 if (var96 == NULL) {
836 var97 = 0; /* <var_old_child:ANode> cannot be null */
837 } else {
838 { /* Inline kernel#Object#== (var96,var_old_child) on <var96:nullable AExternCodeBlock> */
839 var_other = var_old_child;
840 {
841 { /* Inline kernel#Object#is_same_instance (var96,var_other) on <var96:nullable AExternCodeBlock(AExternCodeBlock)> */
842 var102 = var96 == var_other;
843 var100 = var102;
844 goto RET_LABEL101;
845 RET_LABEL101:(void)0;
846 }
847 }
848 var98 = var100;
849 goto RET_LABEL99;
850 RET_LABEL99:(void)0;
851 }
852 var97 = var98;
853 }
854 if (var97){
855 /* <var_new_child:nullable ANode> isa nullable AExternCodeBlock */
856 cltype104 = type_nullable_parser_nodes__AExternCodeBlock.color;
857 idtype105 = type_nullable_parser_nodes__AExternCodeBlock.id;
858 if(var_new_child == NULL) {
859 var103 = 1;
860 } else {
861 if(cltype104 >= var_new_child->type->table_size) {
862 var103 = 0;
863 } else {
864 var103 = var_new_child->type->type_table[cltype104] == idtype105;
865 }
866 }
867 if (unlikely(!var103)) {
868 var_class_name106 = var_new_child == NULL ? "null" : var_new_child->type->name;
869 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AExternCodeBlock", var_class_name106);
870 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1446);
871 show_backtrace(1);
872 }
873 {
874 parser_prod__AExternMethPropdef__n_extern_code_block_61d(self, var_new_child); /* Direct call parser_prod#AExternMethPropdef#n_extern_code_block= on <self:AExternMethPropdef>*/
875 }
876 goto RET_LABEL;
877 } else {
878 }
879 RET_LABEL:;
880 }
881 /* method parser_prod#AExternMethPropdef#replace_child for (self: Object, ANode, nullable ANode) */
882 void VIRTUAL_parser_prod__AExternMethPropdef__replace_child(val* self, val* p0, val* p1) {
883 parser_prod__AExternMethPropdef__replace_child(self, p0, p1); /* Direct call parser_prod#AExternMethPropdef#replace_child on <self:Object(AExternMethPropdef)>*/
884 RET_LABEL:;
885 }
886 /* method parser_prod#AExternMethPropdef#n_doc= for (self: AExternMethPropdef, nullable ADoc) */
887 void parser_prod__AExternMethPropdef__n_doc_61d(val* self, val* p0) {
888 val* var_node /* var node: nullable ADoc */;
889 val* var /* : null */;
890 short int var1 /* : Bool */;
891 short int var2 /* : Bool */;
892 val* var_other /* var other: nullable Object */;
893 short int var4 /* : Bool */;
894 short int var5 /* : Bool */;
895 short int var6 /* : Bool */;
896 var_node = p0;
897 self->attrs[COLOR_parser_nodes__APropdef___n_doc].val = var_node; /* _n_doc on <self:AExternMethPropdef> */
898 var = NULL;
899 if (var_node == NULL) {
900 var1 = 0; /* is null */
901 } else {
902 var1 = 1; /* arg is null and recv is not */
903 }
904 if (0) {
905 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable ADoc> */
906 var_other = var;
907 {
908 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable ADoc(ADoc)>*/;
909 var4 = var5;
910 }
911 var6 = !var4;
912 var2 = var6;
913 goto RET_LABEL3;
914 RET_LABEL3:(void)0;
915 }
916 var1 = var2;
917 }
918 if (var1){
919 {
920 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable ADoc(ADoc)> */
921 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable ADoc(ADoc)> */
922 RET_LABEL7:(void)0;
923 }
924 }
925 } else {
926 }
927 RET_LABEL:;
928 }
929 /* method parser_prod#AExternMethPropdef#n_doc= for (self: Object, nullable ADoc) */
930 void VIRTUAL_parser_prod__AExternMethPropdef__n_doc_61d(val* self, val* p0) {
931 parser_prod__AExternMethPropdef__n_doc_61d(self, p0); /* Direct call parser_prod#AExternMethPropdef#n_doc= on <self:Object(AExternMethPropdef)>*/
932 RET_LABEL:;
933 }
934 /* method parser_prod#AExternMethPropdef#n_kwredef= for (self: AExternMethPropdef, nullable TKwredef) */
935 void parser_prod__AExternMethPropdef__n_kwredef_61d(val* self, val* p0) {
936 val* var_node /* var node: nullable TKwredef */;
937 val* var /* : null */;
938 short int var1 /* : Bool */;
939 short int var2 /* : Bool */;
940 val* var_other /* var other: nullable Object */;
941 short int var4 /* : Bool */;
942 short int var5 /* : Bool */;
943 short int var6 /* : Bool */;
944 var_node = p0;
945 self->attrs[COLOR_parser_nodes__APropdef___n_kwredef].val = var_node; /* _n_kwredef on <self:AExternMethPropdef> */
946 var = NULL;
947 if (var_node == NULL) {
948 var1 = 0; /* is null */
949 } else {
950 var1 = 1; /* arg is null and recv is not */
951 }
952 if (0) {
953 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable TKwredef> */
954 var_other = var;
955 {
956 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable TKwredef(TKwredef)>*/;
957 var4 = var5;
958 }
959 var6 = !var4;
960 var2 = var6;
961 goto RET_LABEL3;
962 RET_LABEL3:(void)0;
963 }
964 var1 = var2;
965 }
966 if (var1){
967 {
968 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TKwredef(TKwredef)> */
969 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TKwredef(TKwredef)> */
970 RET_LABEL7:(void)0;
971 }
972 }
973 } else {
974 }
975 RET_LABEL:;
976 }
977 /* method parser_prod#AExternMethPropdef#n_kwredef= for (self: Object, nullable TKwredef) */
978 void VIRTUAL_parser_prod__AExternMethPropdef__n_kwredef_61d(val* self, val* p0) {
979 parser_prod__AExternMethPropdef__n_kwredef_61d(self, p0); /* Direct call parser_prod#AExternMethPropdef#n_kwredef= on <self:Object(AExternMethPropdef)>*/
980 RET_LABEL:;
981 }
982 /* method parser_prod#AExternMethPropdef#n_visibility= for (self: AExternMethPropdef, nullable AVisibility) */
983 void parser_prod__AExternMethPropdef__n_visibility_61d(val* self, val* p0) {
984 val* var_node /* var node: nullable AVisibility */;
985 var_node = p0;
986 self->attrs[COLOR_parser_nodes__APropdef___n_visibility].val = var_node; /* _n_visibility on <self:AExternMethPropdef> */
987 if (var_node == NULL) {
988 PRINT_ERROR("Runtime error: %s", "Receiver is null");
989 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1464);
990 show_backtrace(1);
991 } else {
992 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AVisibility> */
993 if (unlikely(var_node == NULL)) {
994 PRINT_ERROR("Runtime error: %s", "Receiver is null");
995 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
996 show_backtrace(1);
997 }
998 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AVisibility> */
999 RET_LABEL1:(void)0;
1000 }
1001 }
1002 RET_LABEL:;
1003 }
1004 /* method parser_prod#AExternMethPropdef#n_visibility= for (self: Object, nullable AVisibility) */
1005 void VIRTUAL_parser_prod__AExternMethPropdef__n_visibility_61d(val* self, val* p0) {
1006 parser_prod__AExternMethPropdef__n_visibility_61d(self, p0); /* Direct call parser_prod#AExternMethPropdef#n_visibility= on <self:Object(AExternMethPropdef)>*/
1007 RET_LABEL:;
1008 }
1009 /* method parser_prod#AExternMethPropdef#n_kwmeth= for (self: AExternMethPropdef, nullable TKwmeth) */
1010 void parser_prod__AExternMethPropdef__n_kwmeth_61d(val* self, val* p0) {
1011 val* var_node /* var node: nullable TKwmeth */;
1012 var_node = p0;
1013 self->attrs[COLOR_parser_nodes__AMethPropdef___n_kwmeth].val = var_node; /* _n_kwmeth on <self:AExternMethPropdef> */
1014 if (var_node == NULL) {
1015 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1016 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1469);
1017 show_backtrace(1);
1018 } else {
1019 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TKwmeth> */
1020 if (unlikely(var_node == NULL)) {
1021 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1022 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
1023 show_backtrace(1);
1024 }
1025 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TKwmeth> */
1026 RET_LABEL1:(void)0;
1027 }
1028 }
1029 RET_LABEL:;
1030 }
1031 /* method parser_prod#AExternMethPropdef#n_kwmeth= for (self: Object, nullable TKwmeth) */
1032 void VIRTUAL_parser_prod__AExternMethPropdef__n_kwmeth_61d(val* self, val* p0) {
1033 parser_prod__AExternMethPropdef__n_kwmeth_61d(self, p0); /* Direct call parser_prod#AExternMethPropdef#n_kwmeth= on <self:Object(AExternMethPropdef)>*/
1034 RET_LABEL:;
1035 }
1036 /* method parser_prod#AExternMethPropdef#n_methid= for (self: AExternMethPropdef, nullable AMethid) */
1037 void parser_prod__AExternMethPropdef__n_methid_61d(val* self, val* p0) {
1038 val* var_node /* var node: nullable AMethid */;
1039 var_node = p0;
1040 self->attrs[COLOR_parser_nodes__AMethPropdef___n_methid].val = var_node; /* _n_methid on <self:AExternMethPropdef> */
1041 if (var_node == NULL) {
1042 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1043 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1474);
1044 show_backtrace(1);
1045 } else {
1046 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AMethid> */
1047 if (unlikely(var_node == NULL)) {
1048 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1049 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
1050 show_backtrace(1);
1051 }
1052 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AMethid> */
1053 RET_LABEL1:(void)0;
1054 }
1055 }
1056 RET_LABEL:;
1057 }
1058 /* method parser_prod#AExternMethPropdef#n_methid= for (self: Object, nullable AMethid) */
1059 void VIRTUAL_parser_prod__AExternMethPropdef__n_methid_61d(val* self, val* p0) {
1060 parser_prod__AExternMethPropdef__n_methid_61d(self, p0); /* Direct call parser_prod#AExternMethPropdef#n_methid= on <self:Object(AExternMethPropdef)>*/
1061 RET_LABEL:;
1062 }
1063 /* method parser_prod#AExternMethPropdef#n_signature= for (self: AExternMethPropdef, nullable ASignature) */
1064 void parser_prod__AExternMethPropdef__n_signature_61d(val* self, val* p0) {
1065 val* var_node /* var node: nullable ASignature */;
1066 var_node = p0;
1067 self->attrs[COLOR_parser_nodes__AMethPropdef___n_signature].val = var_node; /* _n_signature on <self:AExternMethPropdef> */
1068 if (var_node == NULL) {
1069 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1070 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1479);
1071 show_backtrace(1);
1072 } else {
1073 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable ASignature> */
1074 if (unlikely(var_node == NULL)) {
1075 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1076 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
1077 show_backtrace(1);
1078 }
1079 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable ASignature> */
1080 RET_LABEL1:(void)0;
1081 }
1082 }
1083 RET_LABEL:;
1084 }
1085 /* method parser_prod#AExternMethPropdef#n_signature= for (self: Object, nullable ASignature) */
1086 void VIRTUAL_parser_prod__AExternMethPropdef__n_signature_61d(val* self, val* p0) {
1087 parser_prod__AExternMethPropdef__n_signature_61d(self, p0); /* Direct call parser_prod#AExternMethPropdef#n_signature= on <self:Object(AExternMethPropdef)>*/
1088 RET_LABEL:;
1089 }
1090 /* method parser_prod#AExternMethPropdef#n_annotations= for (self: AExternMethPropdef, nullable AAnnotations) */
1091 void parser_prod__AExternMethPropdef__n_annotations_61d(val* self, val* p0) {
1092 val* var_node /* var node: nullable AAnnotations */;
1093 val* var /* : null */;
1094 short int var1 /* : Bool */;
1095 short int var2 /* : Bool */;
1096 val* var_other /* var other: nullable Object */;
1097 short int var4 /* : Bool */;
1098 short int var5 /* : Bool */;
1099 short int var6 /* : Bool */;
1100 var_node = p0;
1101 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_node; /* _n_annotations on <self:AExternMethPropdef> */
1102 var = NULL;
1103 if (var_node == NULL) {
1104 var1 = 0; /* is null */
1105 } else {
1106 var1 = 1; /* arg is null and recv is not */
1107 }
1108 if (0) {
1109 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AAnnotations> */
1110 var_other = var;
1111 {
1112 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AAnnotations(AAnnotations)>*/;
1113 var4 = var5;
1114 }
1115 var6 = !var4;
1116 var2 = var6;
1117 goto RET_LABEL3;
1118 RET_LABEL3:(void)0;
1119 }
1120 var1 = var2;
1121 }
1122 if (var1){
1123 {
1124 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AAnnotations(AAnnotations)> */
1125 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AAnnotations(AAnnotations)> */
1126 RET_LABEL7:(void)0;
1127 }
1128 }
1129 } else {
1130 }
1131 RET_LABEL:;
1132 }
1133 /* method parser_prod#AExternMethPropdef#n_annotations= for (self: Object, nullable AAnnotations) */
1134 void VIRTUAL_parser_prod__AExternMethPropdef__n_annotations_61d(val* self, val* p0) {
1135 parser_prod__AExternMethPropdef__n_annotations_61d(self, p0); /* Direct call parser_prod#AExternMethPropdef#n_annotations= on <self:Object(AExternMethPropdef)>*/
1136 RET_LABEL:;
1137 }
1138 /* method parser_prod#AExternMethPropdef#n_extern= for (self: AExternMethPropdef, nullable TString) */
1139 void parser_prod__AExternMethPropdef__n_extern_61d(val* self, val* p0) {
1140 val* var_node /* var node: nullable TString */;
1141 val* var /* : null */;
1142 short int var1 /* : Bool */;
1143 short int var2 /* : Bool */;
1144 val* var_other /* var other: nullable Object */;
1145 short int var4 /* : Bool */;
1146 short int var5 /* : Bool */;
1147 short int var6 /* : Bool */;
1148 var_node = p0;
1149 self->attrs[COLOR_parser_nodes__AMethPropdef___n_extern].val = var_node; /* _n_extern on <self:AExternMethPropdef> */
1150 var = NULL;
1151 if (var_node == NULL) {
1152 var1 = 0; /* is null */
1153 } else {
1154 var1 = 1; /* arg is null and recv is not */
1155 }
1156 if (0) {
1157 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable TString> */
1158 var_other = var;
1159 {
1160 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable TString(TString)>*/;
1161 var4 = var5;
1162 }
1163 var6 = !var4;
1164 var2 = var6;
1165 goto RET_LABEL3;
1166 RET_LABEL3:(void)0;
1167 }
1168 var1 = var2;
1169 }
1170 if (var1){
1171 {
1172 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TString(TString)> */
1173 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TString(TString)> */
1174 RET_LABEL7:(void)0;
1175 }
1176 }
1177 } else {
1178 }
1179 RET_LABEL:;
1180 }
1181 /* method parser_prod#AExternMethPropdef#n_extern= for (self: Object, nullable TString) */
1182 void VIRTUAL_parser_prod__AExternMethPropdef__n_extern_61d(val* self, val* p0) {
1183 parser_prod__AExternMethPropdef__n_extern_61d(self, p0); /* Direct call parser_prod#AExternMethPropdef#n_extern= on <self:Object(AExternMethPropdef)>*/
1184 RET_LABEL:;
1185 }
1186 /* method parser_prod#AExternMethPropdef#n_extern_calls= for (self: AExternMethPropdef, nullable AExternCalls) */
1187 void parser_prod__AExternMethPropdef__n_extern_calls_61d(val* self, val* p0) {
1188 val* var_node /* var node: nullable AExternCalls */;
1189 val* var /* : null */;
1190 short int var1 /* : Bool */;
1191 short int var2 /* : Bool */;
1192 val* var_other /* var other: nullable Object */;
1193 short int var4 /* : Bool */;
1194 short int var5 /* : Bool */;
1195 short int var6 /* : Bool */;
1196 var_node = p0;
1197 self->attrs[COLOR_parser_nodes__AMethPropdef___n_extern_calls].val = var_node; /* _n_extern_calls on <self:AExternMethPropdef> */
1198 var = NULL;
1199 if (var_node == NULL) {
1200 var1 = 0; /* is null */
1201 } else {
1202 var1 = 1; /* arg is null and recv is not */
1203 }
1204 if (0) {
1205 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AExternCalls> */
1206 var_other = var;
1207 {
1208 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AExternCalls(AExternCalls)>*/;
1209 var4 = var5;
1210 }
1211 var6 = !var4;
1212 var2 = var6;
1213 goto RET_LABEL3;
1214 RET_LABEL3:(void)0;
1215 }
1216 var1 = var2;
1217 }
1218 if (var1){
1219 {
1220 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AExternCalls(AExternCalls)> */
1221 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AExternCalls(AExternCalls)> */
1222 RET_LABEL7:(void)0;
1223 }
1224 }
1225 } else {
1226 }
1227 RET_LABEL:;
1228 }
1229 /* method parser_prod#AExternMethPropdef#n_extern_calls= for (self: Object, nullable AExternCalls) */
1230 void VIRTUAL_parser_prod__AExternMethPropdef__n_extern_calls_61d(val* self, val* p0) {
1231 parser_prod__AExternMethPropdef__n_extern_calls_61d(self, p0); /* Direct call parser_prod#AExternMethPropdef#n_extern_calls= on <self:Object(AExternMethPropdef)>*/
1232 RET_LABEL:;
1233 }
1234 /* method parser_prod#AExternMethPropdef#n_extern_code_block= for (self: AExternMethPropdef, nullable AExternCodeBlock) */
1235 void parser_prod__AExternMethPropdef__n_extern_code_block_61d(val* self, val* p0) {
1236 val* var_node /* var node: nullable AExternCodeBlock */;
1237 val* var /* : null */;
1238 short int var1 /* : Bool */;
1239 short int var2 /* : Bool */;
1240 val* var_other /* var other: nullable Object */;
1241 short int var4 /* : Bool */;
1242 short int var5 /* : Bool */;
1243 short int var6 /* : Bool */;
1244 var_node = p0;
1245 self->attrs[COLOR_parser_nodes__AMethPropdef___n_extern_code_block].val = var_node; /* _n_extern_code_block on <self:AExternMethPropdef> */
1246 var = NULL;
1247 if (var_node == NULL) {
1248 var1 = 0; /* is null */
1249 } else {
1250 var1 = 1; /* arg is null and recv is not */
1251 }
1252 if (0) {
1253 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AExternCodeBlock> */
1254 var_other = var;
1255 {
1256 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AExternCodeBlock(AExternCodeBlock)>*/;
1257 var4 = var5;
1258 }
1259 var6 = !var4;
1260 var2 = var6;
1261 goto RET_LABEL3;
1262 RET_LABEL3:(void)0;
1263 }
1264 var1 = var2;
1265 }
1266 if (var1){
1267 {
1268 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AExternCodeBlock(AExternCodeBlock)> */
1269 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AExternCodeBlock(AExternCodeBlock)> */
1270 RET_LABEL7:(void)0;
1271 }
1272 }
1273 } else {
1274 }
1275 RET_LABEL:;
1276 }
1277 /* method parser_prod#AExternMethPropdef#n_extern_code_block= for (self: Object, nullable AExternCodeBlock) */
1278 void VIRTUAL_parser_prod__AExternMethPropdef__n_extern_code_block_61d(val* self, val* p0) {
1279 parser_prod__AExternMethPropdef__n_extern_code_block_61d(self, p0); /* Direct call parser_prod#AExternMethPropdef#n_extern_code_block= on <self:Object(AExternMethPropdef)>*/
1280 RET_LABEL:;
1281 }
1282 /* method parser_prod#AExternMethPropdef#visit_all for (self: AExternMethPropdef, Visitor) */
1283 void parser_prod__AExternMethPropdef__visit_all(val* self, val* p0) {
1284 val* var_v /* var v: Visitor */;
1285 val* var /* : nullable ADoc */;
1286 val* var1 /* : nullable TKwredef */;
1287 val* var2 /* : nullable AVisibility */;
1288 val* var3 /* : nullable TKwmeth */;
1289 val* var4 /* : nullable AMethid */;
1290 val* var5 /* : nullable ASignature */;
1291 val* var6 /* : nullable AAnnotations */;
1292 val* var7 /* : nullable TString */;
1293 val* var8 /* : nullable AExternCalls */;
1294 val* var9 /* : nullable AExternCodeBlock */;
1295 var_v = p0;
1296 var = self->attrs[COLOR_parser_nodes__APropdef___n_doc].val; /* _n_doc on <self:AExternMethPropdef> */
1297 {
1298 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1299 }
1300 var1 = self->attrs[COLOR_parser_nodes__APropdef___n_kwredef].val; /* _n_kwredef on <self:AExternMethPropdef> */
1301 {
1302 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1303 }
1304 var2 = self->attrs[COLOR_parser_nodes__APropdef___n_visibility].val; /* _n_visibility on <self:AExternMethPropdef> */
1305 {
1306 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1307 }
1308 var3 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_kwmeth].val; /* _n_kwmeth on <self:AExternMethPropdef> */
1309 {
1310 parser_nodes__Visitor__enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1311 }
1312 var4 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_methid].val; /* _n_methid on <self:AExternMethPropdef> */
1313 {
1314 parser_nodes__Visitor__enter_visit(var_v, var4); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1315 }
1316 var5 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_signature].val; /* _n_signature on <self:AExternMethPropdef> */
1317 {
1318 parser_nodes__Visitor__enter_visit(var_v, var5); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1319 }
1320 var6 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AExternMethPropdef> */
1321 {
1322 parser_nodes__Visitor__enter_visit(var_v, var6); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1323 }
1324 var7 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_extern].val; /* _n_extern on <self:AExternMethPropdef> */
1325 {
1326 parser_nodes__Visitor__enter_visit(var_v, var7); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1327 }
1328 var8 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_extern_calls].val; /* _n_extern_calls on <self:AExternMethPropdef> */
1329 {
1330 parser_nodes__Visitor__enter_visit(var_v, var8); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1331 }
1332 var9 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_extern_code_block].val; /* _n_extern_code_block on <self:AExternMethPropdef> */
1333 {
1334 parser_nodes__Visitor__enter_visit(var_v, var9); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1335 }
1336 RET_LABEL:;
1337 }
1338 /* method parser_prod#AExternMethPropdef#visit_all for (self: Object, Visitor) */
1339 void VIRTUAL_parser_prod__AExternMethPropdef__visit_all(val* self, val* p0) {
1340 parser_prod__AExternMethPropdef__visit_all(self, p0); /* Direct call parser_prod#AExternMethPropdef#visit_all on <self:Object(AExternMethPropdef)>*/
1341 RET_LABEL:;
1342 }
1343 /* method parser_prod#AConcreteMethPropdef#init_aconcretemethpropdef for (self: AConcreteMethPropdef, nullable ADoc, nullable TKwredef, nullable AVisibility, nullable TKwmeth, nullable AMethid, nullable ASignature, nullable AAnnotations, nullable AExpr) */
1344 void parser_prod__AConcreteMethPropdef__init_aconcretemethpropdef(val* self, val* p0, val* p1, val* p2, val* p3, val* p4, val* p5, val* p6, val* p7) {
1345 val* var_n_doc /* var n_doc: nullable ADoc */;
1346 val* var_n_kwredef /* var n_kwredef: nullable TKwredef */;
1347 val* var_n_visibility /* var n_visibility: nullable AVisibility */;
1348 val* var_n_kwmeth /* var n_kwmeth: nullable TKwmeth */;
1349 val* var_n_methid /* var n_methid: nullable AMethid */;
1350 val* var_n_signature /* var n_signature: nullable ASignature */;
1351 val* var_n_annotations /* var n_annotations: nullable AAnnotations */;
1352 val* var_n_block /* var n_block: nullable AExpr */;
1353 val* var /* : null */;
1354 short int var1 /* : Bool */;
1355 short int var2 /* : Bool */;
1356 val* var_other /* var other: nullable Object */;
1357 short int var4 /* : Bool */;
1358 short int var5 /* : Bool */;
1359 short int var6 /* : Bool */;
1360 val* var8 /* : null */;
1361 short int var9 /* : Bool */;
1362 short int var10 /* : Bool */;
1363 short int var12 /* : Bool */;
1364 short int var13 /* : Bool */;
1365 short int var14 /* : Bool */;
1366 val* var20 /* : null */;
1367 short int var21 /* : Bool */;
1368 short int var22 /* : Bool */;
1369 short int var24 /* : Bool */;
1370 short int var25 /* : Bool */;
1371 short int var26 /* : Bool */;
1372 val* var28 /* : null */;
1373 short int var29 /* : Bool */;
1374 short int var30 /* : Bool */;
1375 short int var32 /* : Bool */;
1376 short int var33 /* : Bool */;
1377 short int var34 /* : Bool */;
1378 var_n_doc = p0;
1379 var_n_kwredef = p1;
1380 var_n_visibility = p2;
1381 var_n_kwmeth = p3;
1382 var_n_methid = p4;
1383 var_n_signature = p5;
1384 var_n_annotations = p6;
1385 var_n_block = p7;
1386 self->attrs[COLOR_parser_nodes__APropdef___n_doc].val = var_n_doc; /* _n_doc on <self:AConcreteMethPropdef> */
1387 var = NULL;
1388 if (var_n_doc == NULL) {
1389 var1 = 0; /* is null */
1390 } else {
1391 var1 = 1; /* arg is null and recv is not */
1392 }
1393 if (0) {
1394 { /* Inline kernel#Object#!= (var_n_doc,var) on <var_n_doc:nullable ADoc> */
1395 var_other = var;
1396 {
1397 var5 = ((short int (*)(val*, val*))(var_n_doc->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_doc, var_other) /* == on <var_n_doc:nullable ADoc(ADoc)>*/;
1398 var4 = var5;
1399 }
1400 var6 = !var4;
1401 var2 = var6;
1402 goto RET_LABEL3;
1403 RET_LABEL3:(void)0;
1404 }
1405 var1 = var2;
1406 }
1407 if (var1){
1408 {
1409 { /* Inline parser_nodes#ANode#parent= (var_n_doc,self) on <var_n_doc:nullable ADoc(ADoc)> */
1410 var_n_doc->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_doc:nullable ADoc(ADoc)> */
1411 RET_LABEL7:(void)0;
1412 }
1413 }
1414 } else {
1415 }
1416 self->attrs[COLOR_parser_nodes__APropdef___n_kwredef].val = var_n_kwredef; /* _n_kwredef on <self:AConcreteMethPropdef> */
1417 var8 = NULL;
1418 if (var_n_kwredef == NULL) {
1419 var9 = 0; /* is null */
1420 } else {
1421 var9 = 1; /* arg is null and recv is not */
1422 }
1423 if (0) {
1424 { /* Inline kernel#Object#!= (var_n_kwredef,var8) on <var_n_kwredef:nullable TKwredef> */
1425 var_other = var8;
1426 {
1427 var13 = ((short int (*)(val*, val*))(var_n_kwredef->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_kwredef, var_other) /* == on <var_n_kwredef:nullable TKwredef(TKwredef)>*/;
1428 var12 = var13;
1429 }
1430 var14 = !var12;
1431 var10 = var14;
1432 goto RET_LABEL11;
1433 RET_LABEL11:(void)0;
1434 }
1435 var9 = var10;
1436 }
1437 if (var9){
1438 {
1439 { /* Inline parser_nodes#ANode#parent= (var_n_kwredef,self) on <var_n_kwredef:nullable TKwredef(TKwredef)> */
1440 var_n_kwredef->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwredef:nullable TKwredef(TKwredef)> */
1441 RET_LABEL15:(void)0;
1442 }
1443 }
1444 } else {
1445 }
1446 if (unlikely(var_n_visibility == NULL)) {
1447 PRINT_ERROR("Runtime error: %s", "Cast failed");
1448 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1533);
1449 show_backtrace(1);
1450 }
1451 self->attrs[COLOR_parser_nodes__APropdef___n_visibility].val = var_n_visibility; /* _n_visibility on <self:AConcreteMethPropdef> */
1452 if (var_n_visibility == NULL) {
1453 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1454 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1534);
1455 show_backtrace(1);
1456 } else {
1457 { /* Inline parser_nodes#ANode#parent= (var_n_visibility,self) on <var_n_visibility:nullable AVisibility> */
1458 if (unlikely(var_n_visibility == NULL)) {
1459 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1460 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
1461 show_backtrace(1);
1462 }
1463 var_n_visibility->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_visibility:nullable AVisibility> */
1464 RET_LABEL16:(void)0;
1465 }
1466 }
1467 if (unlikely(var_n_kwmeth == NULL)) {
1468 PRINT_ERROR("Runtime error: %s", "Cast failed");
1469 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1535);
1470 show_backtrace(1);
1471 }
1472 self->attrs[COLOR_parser_nodes__AMethPropdef___n_kwmeth].val = var_n_kwmeth; /* _n_kwmeth on <self:AConcreteMethPropdef> */
1473 if (var_n_kwmeth == NULL) {
1474 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1475 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1536);
1476 show_backtrace(1);
1477 } else {
1478 { /* Inline parser_nodes#ANode#parent= (var_n_kwmeth,self) on <var_n_kwmeth:nullable TKwmeth> */
1479 if (unlikely(var_n_kwmeth == NULL)) {
1480 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1481 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
1482 show_backtrace(1);
1483 }
1484 var_n_kwmeth->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwmeth:nullable TKwmeth> */
1485 RET_LABEL17:(void)0;
1486 }
1487 }
1488 if (unlikely(var_n_methid == NULL)) {
1489 PRINT_ERROR("Runtime error: %s", "Cast failed");
1490 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1537);
1491 show_backtrace(1);
1492 }
1493 self->attrs[COLOR_parser_nodes__AMethPropdef___n_methid].val = var_n_methid; /* _n_methid on <self:AConcreteMethPropdef> */
1494 if (var_n_methid == NULL) {
1495 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1496 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1538);
1497 show_backtrace(1);
1498 } else {
1499 { /* Inline parser_nodes#ANode#parent= (var_n_methid,self) on <var_n_methid:nullable AMethid> */
1500 if (unlikely(var_n_methid == NULL)) {
1501 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1502 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
1503 show_backtrace(1);
1504 }
1505 var_n_methid->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_methid:nullable AMethid> */
1506 RET_LABEL18:(void)0;
1507 }
1508 }
1509 if (unlikely(var_n_signature == NULL)) {
1510 PRINT_ERROR("Runtime error: %s", "Cast failed");
1511 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1539);
1512 show_backtrace(1);
1513 }
1514 self->attrs[COLOR_parser_nodes__AMethPropdef___n_signature].val = var_n_signature; /* _n_signature on <self:AConcreteMethPropdef> */
1515 if (var_n_signature == NULL) {
1516 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1517 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1540);
1518 show_backtrace(1);
1519 } else {
1520 { /* Inline parser_nodes#ANode#parent= (var_n_signature,self) on <var_n_signature:nullable ASignature> */
1521 if (unlikely(var_n_signature == NULL)) {
1522 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1523 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
1524 show_backtrace(1);
1525 }
1526 var_n_signature->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_signature:nullable ASignature> */
1527 RET_LABEL19:(void)0;
1528 }
1529 }
1530 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:AConcreteMethPropdef> */
1531 var20 = NULL;
1532 if (var_n_annotations == NULL) {
1533 var21 = 0; /* is null */
1534 } else {
1535 var21 = 1; /* arg is null and recv is not */
1536 }
1537 if (0) {
1538 { /* Inline kernel#Object#!= (var_n_annotations,var20) on <var_n_annotations:nullable AAnnotations> */
1539 var_other = var20;
1540 {
1541 var25 = ((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)>*/;
1542 var24 = var25;
1543 }
1544 var26 = !var24;
1545 var22 = var26;
1546 goto RET_LABEL23;
1547 RET_LABEL23:(void)0;
1548 }
1549 var21 = var22;
1550 }
1551 if (var21){
1552 {
1553 { /* Inline parser_nodes#ANode#parent= (var_n_annotations,self) on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
1554 var_n_annotations->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
1555 RET_LABEL27:(void)0;
1556 }
1557 }
1558 } else {
1559 }
1560 self->attrs[COLOR_parser_nodes__AMethPropdef___n_block].val = var_n_block; /* _n_block on <self:AConcreteMethPropdef> */
1561 var28 = NULL;
1562 if (var_n_block == NULL) {
1563 var29 = 0; /* is null */
1564 } else {
1565 var29 = 1; /* arg is null and recv is not */
1566 }
1567 if (0) {
1568 { /* Inline kernel#Object#!= (var_n_block,var28) on <var_n_block:nullable AExpr> */
1569 var_other = var28;
1570 {
1571 var33 = ((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)>*/;
1572 var32 = var33;
1573 }
1574 var34 = !var32;
1575 var30 = var34;
1576 goto RET_LABEL31;
1577 RET_LABEL31:(void)0;
1578 }
1579 var29 = var30;
1580 }
1581 if (var29){
1582 {
1583 { /* Inline parser_nodes#ANode#parent= (var_n_block,self) on <var_n_block:nullable AExpr(AExpr)> */
1584 var_n_block->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_block:nullable AExpr(AExpr)> */
1585 RET_LABEL35:(void)0;
1586 }
1587 }
1588 } else {
1589 }
1590 RET_LABEL:;
1591 }
1592 /* method parser_prod#AConcreteMethPropdef#init_aconcretemethpropdef for (self: Object, nullable ADoc, nullable TKwredef, nullable AVisibility, nullable TKwmeth, nullable AMethid, nullable ASignature, nullable AAnnotations, nullable AExpr) */
1593 void VIRTUAL_parser_prod__AConcreteMethPropdef__init_aconcretemethpropdef(val* self, val* p0, val* p1, val* p2, val* p3, val* p4, val* p5, val* p6, val* p7) {
1594 parser_prod__AConcreteMethPropdef__init_aconcretemethpropdef(self, p0, p1, p2, p3, p4, p5, p6, p7); /* Direct call parser_prod#AConcreteMethPropdef#init_aconcretemethpropdef on <self:Object(AConcreteMethPropdef)>*/
1595 RET_LABEL:;
1596 }
1597 /* method parser_prod#AConcreteMethPropdef#replace_child for (self: AConcreteMethPropdef, ANode, nullable ANode) */
1598 void parser_prod__AConcreteMethPropdef__replace_child(val* self, val* p0, val* p1) {
1599 val* var_old_child /* var old_child: ANode */;
1600 val* var_new_child /* var new_child: nullable ANode */;
1601 val* var /* : nullable ADoc */;
1602 short int var1 /* : Bool */;
1603 short int var2 /* : Bool */;
1604 val* var_other /* var other: nullable Object */;
1605 short int var4 /* : Bool */;
1606 short int var6 /* : Bool */;
1607 short int var7 /* : Bool */;
1608 int cltype;
1609 int idtype;
1610 const char* var_class_name;
1611 val* var8 /* : nullable TKwredef */;
1612 short int var9 /* : Bool */;
1613 short int var10 /* : Bool */;
1614 short int var12 /* : Bool */;
1615 short int var14 /* : Bool */;
1616 short int var15 /* : Bool */;
1617 int cltype16;
1618 int idtype17;
1619 const char* var_class_name18;
1620 val* var19 /* : nullable AVisibility */;
1621 short int var20 /* : Bool */;
1622 short int var21 /* : Bool */;
1623 short int var23 /* : Bool */;
1624 short int var25 /* : Bool */;
1625 short int var26 /* : Bool */;
1626 int cltype27;
1627 int idtype28;
1628 const char* var_class_name29;
1629 val* var30 /* : nullable TKwmeth */;
1630 short int var31 /* : Bool */;
1631 short int var32 /* : Bool */;
1632 short int var34 /* : Bool */;
1633 short int var36 /* : Bool */;
1634 short int var37 /* : Bool */;
1635 int cltype38;
1636 int idtype39;
1637 const char* var_class_name40;
1638 val* var41 /* : nullable AMethid */;
1639 short int var42 /* : Bool */;
1640 short int var43 /* : Bool */;
1641 short int var45 /* : Bool */;
1642 short int var47 /* : Bool */;
1643 short int var48 /* : Bool */;
1644 int cltype49;
1645 int idtype50;
1646 const char* var_class_name51;
1647 val* var52 /* : nullable ASignature */;
1648 short int var53 /* : Bool */;
1649 short int var54 /* : Bool */;
1650 short int var56 /* : Bool */;
1651 short int var58 /* : Bool */;
1652 short int var59 /* : Bool */;
1653 int cltype60;
1654 int idtype61;
1655 const char* var_class_name62;
1656 val* var63 /* : nullable AAnnotations */;
1657 short int var64 /* : Bool */;
1658 short int var65 /* : Bool */;
1659 short int var67 /* : Bool */;
1660 short int var69 /* : Bool */;
1661 short int var70 /* : Bool */;
1662 int cltype71;
1663 int idtype72;
1664 const char* var_class_name73;
1665 val* var74 /* : nullable AExpr */;
1666 short int var75 /* : Bool */;
1667 short int var76 /* : Bool */;
1668 short int var78 /* : Bool */;
1669 short int var80 /* : Bool */;
1670 short int var81 /* : Bool */;
1671 int cltype82;
1672 int idtype83;
1673 const char* var_class_name84;
1674 var_old_child = p0;
1675 var_new_child = p1;
1676 var = self->attrs[COLOR_parser_nodes__APropdef___n_doc].val; /* _n_doc on <self:AConcreteMethPropdef> */
1677 if (var == NULL) {
1678 var1 = 0; /* <var_old_child:ANode> cannot be null */
1679 } else {
1680 { /* Inline kernel#Object#== (var,var_old_child) on <var:nullable ADoc> */
1681 var_other = var_old_child;
1682 {
1683 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:nullable ADoc(ADoc)> */
1684 var6 = var == var_other;
1685 var4 = var6;
1686 goto RET_LABEL5;
1687 RET_LABEL5:(void)0;
1688 }
1689 }
1690 var2 = var4;
1691 goto RET_LABEL3;
1692 RET_LABEL3:(void)0;
1693 }
1694 var1 = var2;
1695 }
1696 if (var1){
1697 /* <var_new_child:nullable ANode> isa nullable ADoc */
1698 cltype = type_nullable_parser_nodes__ADoc.color;
1699 idtype = type_nullable_parser_nodes__ADoc.id;
1700 if(var_new_child == NULL) {
1701 var7 = 1;
1702 } else {
1703 if(cltype >= var_new_child->type->table_size) {
1704 var7 = 0;
1705 } else {
1706 var7 = var_new_child->type->type_table[cltype] == idtype;
1707 }
1708 }
1709 if (unlikely(!var7)) {
1710 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
1711 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ADoc", var_class_name);
1712 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1550);
1713 show_backtrace(1);
1714 }
1715 {
1716 ((void (*)(val*, val*))(self->class->vft[COLOR_parser_nodes__APropdef__n_doc_61d]))(self, var_new_child) /* n_doc= on <self:AConcreteMethPropdef>*/;
1717 }
1718 goto RET_LABEL;
1719 } else {
1720 }
1721 var8 = self->attrs[COLOR_parser_nodes__APropdef___n_kwredef].val; /* _n_kwredef on <self:AConcreteMethPropdef> */
1722 if (var8 == NULL) {
1723 var9 = 0; /* <var_old_child:ANode> cannot be null */
1724 } else {
1725 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:nullable TKwredef> */
1726 var_other = var_old_child;
1727 {
1728 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:nullable TKwredef(TKwredef)> */
1729 var14 = var8 == var_other;
1730 var12 = var14;
1731 goto RET_LABEL13;
1732 RET_LABEL13:(void)0;
1733 }
1734 }
1735 var10 = var12;
1736 goto RET_LABEL11;
1737 RET_LABEL11:(void)0;
1738 }
1739 var9 = var10;
1740 }
1741 if (var9){
1742 /* <var_new_child:nullable ANode> isa nullable TKwredef */
1743 cltype16 = type_nullable_parser_nodes__TKwredef.color;
1744 idtype17 = type_nullable_parser_nodes__TKwredef.id;
1745 if(var_new_child == NULL) {
1746 var15 = 1;
1747 } else {
1748 if(cltype16 >= var_new_child->type->table_size) {
1749 var15 = 0;
1750 } else {
1751 var15 = var_new_child->type->type_table[cltype16] == idtype17;
1752 }
1753 }
1754 if (unlikely(!var15)) {
1755 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
1756 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TKwredef", var_class_name18);
1757 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1554);
1758 show_backtrace(1);
1759 }
1760 {
1761 ((void (*)(val*, val*))(self->class->vft[COLOR_parser_nodes__APropdef__n_kwredef_61d]))(self, var_new_child) /* n_kwredef= on <self:AConcreteMethPropdef>*/;
1762 }
1763 goto RET_LABEL;
1764 } else {
1765 }
1766 var19 = self->attrs[COLOR_parser_nodes__APropdef___n_visibility].val; /* _n_visibility on <self:AConcreteMethPropdef> */
1767 if (var19 == NULL) {
1768 var20 = 0; /* <var_old_child:ANode> cannot be null */
1769 } else {
1770 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:nullable AVisibility> */
1771 var_other = var_old_child;
1772 {
1773 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:nullable AVisibility(AVisibility)> */
1774 var25 = var19 == var_other;
1775 var23 = var25;
1776 goto RET_LABEL24;
1777 RET_LABEL24:(void)0;
1778 }
1779 }
1780 var21 = var23;
1781 goto RET_LABEL22;
1782 RET_LABEL22:(void)0;
1783 }
1784 var20 = var21;
1785 }
1786 if (var20){
1787 /* <var_new_child:nullable ANode> isa AVisibility */
1788 cltype27 = type_parser_nodes__AVisibility.color;
1789 idtype28 = type_parser_nodes__AVisibility.id;
1790 if(var_new_child == NULL) {
1791 var26 = 0;
1792 } else {
1793 if(cltype27 >= var_new_child->type->table_size) {
1794 var26 = 0;
1795 } else {
1796 var26 = var_new_child->type->type_table[cltype27] == idtype28;
1797 }
1798 }
1799 if (unlikely(!var26)) {
1800 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
1801 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AVisibility", var_class_name29);
1802 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1558);
1803 show_backtrace(1);
1804 }
1805 {
1806 ((void (*)(val*, val*))(self->class->vft[COLOR_parser_nodes__APropdef__n_visibility_61d]))(self, var_new_child) /* n_visibility= on <self:AConcreteMethPropdef>*/;
1807 }
1808 goto RET_LABEL;
1809 } else {
1810 }
1811 var30 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_kwmeth].val; /* _n_kwmeth on <self:AConcreteMethPropdef> */
1812 if (var30 == NULL) {
1813 var31 = 0; /* <var_old_child:ANode> cannot be null */
1814 } else {
1815 { /* Inline kernel#Object#== (var30,var_old_child) on <var30:nullable TKwmeth> */
1816 var_other = var_old_child;
1817 {
1818 { /* Inline kernel#Object#is_same_instance (var30,var_other) on <var30:nullable TKwmeth(TKwmeth)> */
1819 var36 = var30 == var_other;
1820 var34 = var36;
1821 goto RET_LABEL35;
1822 RET_LABEL35:(void)0;
1823 }
1824 }
1825 var32 = var34;
1826 goto RET_LABEL33;
1827 RET_LABEL33:(void)0;
1828 }
1829 var31 = var32;
1830 }
1831 if (var31){
1832 /* <var_new_child:nullable ANode> isa TKwmeth */
1833 cltype38 = type_parser_nodes__TKwmeth.color;
1834 idtype39 = type_parser_nodes__TKwmeth.id;
1835 if(var_new_child == NULL) {
1836 var37 = 0;
1837 } else {
1838 if(cltype38 >= var_new_child->type->table_size) {
1839 var37 = 0;
1840 } else {
1841 var37 = var_new_child->type->type_table[cltype38] == idtype39;
1842 }
1843 }
1844 if (unlikely(!var37)) {
1845 var_class_name40 = var_new_child == NULL ? "null" : var_new_child->type->name;
1846 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwmeth", var_class_name40);
1847 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1562);
1848 show_backtrace(1);
1849 }
1850 {
1851 parser_prod__AConcreteMethPropdef__n_kwmeth_61d(self, var_new_child); /* Direct call parser_prod#AConcreteMethPropdef#n_kwmeth= on <self:AConcreteMethPropdef>*/
1852 }
1853 goto RET_LABEL;
1854 } else {
1855 }
1856 var41 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_methid].val; /* _n_methid on <self:AConcreteMethPropdef> */
1857 if (var41 == NULL) {
1858 var42 = 0; /* <var_old_child:ANode> cannot be null */
1859 } else {
1860 { /* Inline kernel#Object#== (var41,var_old_child) on <var41:nullable AMethid> */
1861 var_other = var_old_child;
1862 {
1863 { /* Inline kernel#Object#is_same_instance (var41,var_other) on <var41:nullable AMethid(AMethid)> */
1864 var47 = var41 == var_other;
1865 var45 = var47;
1866 goto RET_LABEL46;
1867 RET_LABEL46:(void)0;
1868 }
1869 }
1870 var43 = var45;
1871 goto RET_LABEL44;
1872 RET_LABEL44:(void)0;
1873 }
1874 var42 = var43;
1875 }
1876 if (var42){
1877 /* <var_new_child:nullable ANode> isa AMethid */
1878 cltype49 = type_parser_nodes__AMethid.color;
1879 idtype50 = type_parser_nodes__AMethid.id;
1880 if(var_new_child == NULL) {
1881 var48 = 0;
1882 } else {
1883 if(cltype49 >= var_new_child->type->table_size) {
1884 var48 = 0;
1885 } else {
1886 var48 = var_new_child->type->type_table[cltype49] == idtype50;
1887 }
1888 }
1889 if (unlikely(!var48)) {
1890 var_class_name51 = var_new_child == NULL ? "null" : var_new_child->type->name;
1891 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AMethid", var_class_name51);
1892 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1566);
1893 show_backtrace(1);
1894 }
1895 {
1896 ((void (*)(val*, val*))(self->class->vft[COLOR_parser_nodes__AMethPropdef__n_methid_61d]))(self, var_new_child) /* n_methid= on <self:AConcreteMethPropdef>*/;
1897 }
1898 goto RET_LABEL;
1899 } else {
1900 }
1901 var52 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_signature].val; /* _n_signature on <self:AConcreteMethPropdef> */
1902 if (var52 == NULL) {
1903 var53 = 0; /* <var_old_child:ANode> cannot be null */
1904 } else {
1905 { /* Inline kernel#Object#== (var52,var_old_child) on <var52:nullable ASignature> */
1906 var_other = var_old_child;
1907 {
1908 { /* Inline kernel#Object#is_same_instance (var52,var_other) on <var52:nullable ASignature(ASignature)> */
1909 var58 = var52 == var_other;
1910 var56 = var58;
1911 goto RET_LABEL57;
1912 RET_LABEL57:(void)0;
1913 }
1914 }
1915 var54 = var56;
1916 goto RET_LABEL55;
1917 RET_LABEL55:(void)0;
1918 }
1919 var53 = var54;
1920 }
1921 if (var53){
1922 /* <var_new_child:nullable ANode> isa ASignature */
1923 cltype60 = type_parser_nodes__ASignature.color;
1924 idtype61 = type_parser_nodes__ASignature.id;
1925 if(var_new_child == NULL) {
1926 var59 = 0;
1927 } else {
1928 if(cltype60 >= var_new_child->type->table_size) {
1929 var59 = 0;
1930 } else {
1931 var59 = var_new_child->type->type_table[cltype60] == idtype61;
1932 }
1933 }
1934 if (unlikely(!var59)) {
1935 var_class_name62 = var_new_child == NULL ? "null" : var_new_child->type->name;
1936 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "ASignature", var_class_name62);
1937 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1570);
1938 show_backtrace(1);
1939 }
1940 {
1941 ((void (*)(val*, val*))(self->class->vft[COLOR_parser_nodes__AMethPropdef__n_signature_61d]))(self, var_new_child) /* n_signature= on <self:AConcreteMethPropdef>*/;
1942 }
1943 goto RET_LABEL;
1944 } else {
1945 }
1946 var63 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AConcreteMethPropdef> */
1947 if (var63 == NULL) {
1948 var64 = 0; /* <var_old_child:ANode> cannot be null */
1949 } else {
1950 { /* Inline kernel#Object#== (var63,var_old_child) on <var63:nullable AAnnotations> */
1951 var_other = var_old_child;
1952 {
1953 { /* Inline kernel#Object#is_same_instance (var63,var_other) on <var63:nullable AAnnotations(AAnnotations)> */
1954 var69 = var63 == var_other;
1955 var67 = var69;
1956 goto RET_LABEL68;
1957 RET_LABEL68:(void)0;
1958 }
1959 }
1960 var65 = var67;
1961 goto RET_LABEL66;
1962 RET_LABEL66:(void)0;
1963 }
1964 var64 = var65;
1965 }
1966 if (var64){
1967 /* <var_new_child:nullable ANode> isa nullable AAnnotations */
1968 cltype71 = type_nullable_parser_nodes__AAnnotations.color;
1969 idtype72 = type_nullable_parser_nodes__AAnnotations.id;
1970 if(var_new_child == NULL) {
1971 var70 = 1;
1972 } else {
1973 if(cltype71 >= var_new_child->type->table_size) {
1974 var70 = 0;
1975 } else {
1976 var70 = var_new_child->type->type_table[cltype71] == idtype72;
1977 }
1978 }
1979 if (unlikely(!var70)) {
1980 var_class_name73 = var_new_child == NULL ? "null" : var_new_child->type->name;
1981 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AAnnotations", var_class_name73);
1982 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1574);
1983 show_backtrace(1);
1984 }
1985 {
1986 ((void (*)(val*, val*))(self->class->vft[COLOR_parser_nodes__Prod__n_annotations_61d]))(self, var_new_child) /* n_annotations= on <self:AConcreteMethPropdef>*/;
1987 }
1988 goto RET_LABEL;
1989 } else {
1990 }
1991 var74 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_block].val; /* _n_block on <self:AConcreteMethPropdef> */
1992 if (var74 == NULL) {
1993 var75 = 0; /* <var_old_child:ANode> cannot be null */
1994 } else {
1995 { /* Inline kernel#Object#== (var74,var_old_child) on <var74:nullable AExpr> */
1996 var_other = var_old_child;
1997 {
1998 { /* Inline kernel#Object#is_same_instance (var74,var_other) on <var74:nullable AExpr(AExpr)> */
1999 var80 = var74 == var_other;
2000 var78 = var80;
2001 goto RET_LABEL79;
2002 RET_LABEL79:(void)0;
2003 }
2004 }
2005 var76 = var78;
2006 goto RET_LABEL77;
2007 RET_LABEL77:(void)0;
2008 }
2009 var75 = var76;
2010 }
2011 if (var75){
2012 /* <var_new_child:nullable ANode> isa nullable AExpr */
2013 cltype82 = type_nullable_parser_nodes__AExpr.color;
2014 idtype83 = type_nullable_parser_nodes__AExpr.id;
2015 if(var_new_child == NULL) {
2016 var81 = 1;
2017 } else {
2018 if(cltype82 >= var_new_child->type->table_size) {
2019 var81 = 0;
2020 } else {
2021 var81 = var_new_child->type->type_table[cltype82] == idtype83;
2022 }
2023 }
2024 if (unlikely(!var81)) {
2025 var_class_name84 = var_new_child == NULL ? "null" : var_new_child->type->name;
2026 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AExpr", var_class_name84);
2027 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1578);
2028 show_backtrace(1);
2029 }
2030 {
2031 ((void (*)(val*, val*))(self->class->vft[COLOR_parser_nodes__AMethPropdef__n_block_61d]))(self, var_new_child) /* n_block= on <self:AConcreteMethPropdef>*/;
2032 }
2033 goto RET_LABEL;
2034 } else {
2035 }
2036 RET_LABEL:;
2037 }
2038 /* method parser_prod#AConcreteMethPropdef#replace_child for (self: Object, ANode, nullable ANode) */
2039 void VIRTUAL_parser_prod__AConcreteMethPropdef__replace_child(val* self, val* p0, val* p1) {
2040 parser_prod__AConcreteMethPropdef__replace_child(self, p0, p1); /* Direct call parser_prod#AConcreteMethPropdef#replace_child on <self:Object(AConcreteMethPropdef)>*/
2041 RET_LABEL:;
2042 }
2043 /* method parser_prod#AConcreteMethPropdef#n_doc= for (self: AConcreteMethPropdef, nullable ADoc) */
2044 void parser_prod__AConcreteMethPropdef__n_doc_61d(val* self, val* p0) {
2045 val* var_node /* var node: nullable ADoc */;
2046 val* var /* : null */;
2047 short int var1 /* : Bool */;
2048 short int var2 /* : Bool */;
2049 val* var_other /* var other: nullable Object */;
2050 short int var4 /* : Bool */;
2051 short int var5 /* : Bool */;
2052 short int var6 /* : Bool */;
2053 var_node = p0;
2054 self->attrs[COLOR_parser_nodes__APropdef___n_doc].val = var_node; /* _n_doc on <self:AConcreteMethPropdef> */
2055 var = NULL;
2056 if (var_node == NULL) {
2057 var1 = 0; /* is null */
2058 } else {
2059 var1 = 1; /* arg is null and recv is not */
2060 }
2061 if (0) {
2062 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable ADoc> */
2063 var_other = var;
2064 {
2065 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable ADoc(ADoc)>*/;
2066 var4 = var5;
2067 }
2068 var6 = !var4;
2069 var2 = var6;
2070 goto RET_LABEL3;
2071 RET_LABEL3:(void)0;
2072 }
2073 var1 = var2;
2074 }
2075 if (var1){
2076 {
2077 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable ADoc(ADoc)> */
2078 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable ADoc(ADoc)> */
2079 RET_LABEL7:(void)0;
2080 }
2081 }
2082 } else {
2083 }
2084 RET_LABEL:;
2085 }
2086 /* method parser_prod#AConcreteMethPropdef#n_doc= for (self: Object, nullable ADoc) */
2087 void VIRTUAL_parser_prod__AConcreteMethPropdef__n_doc_61d(val* self, val* p0) {
2088 parser_prod__AConcreteMethPropdef__n_doc_61d(self, p0); /* Direct call parser_prod#AConcreteMethPropdef#n_doc= on <self:Object(AConcreteMethPropdef)>*/
2089 RET_LABEL:;
2090 }
2091 /* method parser_prod#AConcreteMethPropdef#n_kwredef= for (self: AConcreteMethPropdef, nullable TKwredef) */
2092 void parser_prod__AConcreteMethPropdef__n_kwredef_61d(val* self, val* p0) {
2093 val* var_node /* var node: nullable TKwredef */;
2094 val* var /* : null */;
2095 short int var1 /* : Bool */;
2096 short int var2 /* : Bool */;
2097 val* var_other /* var other: nullable Object */;
2098 short int var4 /* : Bool */;
2099 short int var5 /* : Bool */;
2100 short int var6 /* : Bool */;
2101 var_node = p0;
2102 self->attrs[COLOR_parser_nodes__APropdef___n_kwredef].val = var_node; /* _n_kwredef on <self:AConcreteMethPropdef> */
2103 var = NULL;
2104 if (var_node == NULL) {
2105 var1 = 0; /* is null */
2106 } else {
2107 var1 = 1; /* arg is null and recv is not */
2108 }
2109 if (0) {
2110 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable TKwredef> */
2111 var_other = var;
2112 {
2113 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable TKwredef(TKwredef)>*/;
2114 var4 = var5;
2115 }
2116 var6 = !var4;
2117 var2 = var6;
2118 goto RET_LABEL3;
2119 RET_LABEL3:(void)0;
2120 }
2121 var1 = var2;
2122 }
2123 if (var1){
2124 {
2125 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TKwredef(TKwredef)> */
2126 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TKwredef(TKwredef)> */
2127 RET_LABEL7:(void)0;
2128 }
2129 }
2130 } else {
2131 }
2132 RET_LABEL:;
2133 }
2134 /* method parser_prod#AConcreteMethPropdef#n_kwredef= for (self: Object, nullable TKwredef) */
2135 void VIRTUAL_parser_prod__AConcreteMethPropdef__n_kwredef_61d(val* self, val* p0) {
2136 parser_prod__AConcreteMethPropdef__n_kwredef_61d(self, p0); /* Direct call parser_prod#AConcreteMethPropdef#n_kwredef= on <self:Object(AConcreteMethPropdef)>*/
2137 RET_LABEL:;
2138 }
2139 /* method parser_prod#AConcreteMethPropdef#n_visibility= for (self: AConcreteMethPropdef, nullable AVisibility) */
2140 void parser_prod__AConcreteMethPropdef__n_visibility_61d(val* self, val* p0) {
2141 val* var_node /* var node: nullable AVisibility */;
2142 var_node = p0;
2143 self->attrs[COLOR_parser_nodes__APropdef___n_visibility].val = var_node; /* _n_visibility on <self:AConcreteMethPropdef> */
2144 if (var_node == NULL) {
2145 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2146 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1596);
2147 show_backtrace(1);
2148 } else {
2149 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AVisibility> */
2150 if (unlikely(var_node == NULL)) {
2151 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2152 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
2153 show_backtrace(1);
2154 }
2155 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AVisibility> */
2156 RET_LABEL1:(void)0;
2157 }
2158 }
2159 RET_LABEL:;
2160 }
2161 /* method parser_prod#AConcreteMethPropdef#n_visibility= for (self: Object, nullable AVisibility) */
2162 void VIRTUAL_parser_prod__AConcreteMethPropdef__n_visibility_61d(val* self, val* p0) {
2163 parser_prod__AConcreteMethPropdef__n_visibility_61d(self, p0); /* Direct call parser_prod#AConcreteMethPropdef#n_visibility= on <self:Object(AConcreteMethPropdef)>*/
2164 RET_LABEL:;
2165 }
2166 /* method parser_prod#AConcreteMethPropdef#n_kwmeth= for (self: AConcreteMethPropdef, nullable TKwmeth) */
2167 void parser_prod__AConcreteMethPropdef__n_kwmeth_61d(val* self, val* p0) {
2168 val* var_node /* var node: nullable TKwmeth */;
2169 var_node = p0;
2170 self->attrs[COLOR_parser_nodes__AMethPropdef___n_kwmeth].val = var_node; /* _n_kwmeth on <self:AConcreteMethPropdef> */
2171 if (var_node == NULL) {
2172 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2173 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1601);
2174 show_backtrace(1);
2175 } else {
2176 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TKwmeth> */
2177 if (unlikely(var_node == NULL)) {
2178 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2179 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
2180 show_backtrace(1);
2181 }
2182 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TKwmeth> */
2183 RET_LABEL1:(void)0;
2184 }
2185 }
2186 RET_LABEL:;
2187 }
2188 /* method parser_prod#AConcreteMethPropdef#n_kwmeth= for (self: Object, nullable TKwmeth) */
2189 void VIRTUAL_parser_prod__AConcreteMethPropdef__n_kwmeth_61d(val* self, val* p0) {
2190 parser_prod__AConcreteMethPropdef__n_kwmeth_61d(self, p0); /* Direct call parser_prod#AConcreteMethPropdef#n_kwmeth= on <self:Object(AConcreteMethPropdef)>*/
2191 RET_LABEL:;
2192 }
2193 /* method parser_prod#AConcreteMethPropdef#n_methid= for (self: AConcreteMethPropdef, nullable AMethid) */
2194 void parser_prod__AConcreteMethPropdef__n_methid_61d(val* self, val* p0) {
2195 val* var_node /* var node: nullable AMethid */;
2196 var_node = p0;
2197 self->attrs[COLOR_parser_nodes__AMethPropdef___n_methid].val = var_node; /* _n_methid on <self:AConcreteMethPropdef> */
2198 if (var_node == NULL) {
2199 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2200 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1606);
2201 show_backtrace(1);
2202 } else {
2203 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AMethid> */
2204 if (unlikely(var_node == NULL)) {
2205 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2206 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
2207 show_backtrace(1);
2208 }
2209 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AMethid> */
2210 RET_LABEL1:(void)0;
2211 }
2212 }
2213 RET_LABEL:;
2214 }
2215 /* method parser_prod#AConcreteMethPropdef#n_methid= for (self: Object, nullable AMethid) */
2216 void VIRTUAL_parser_prod__AConcreteMethPropdef__n_methid_61d(val* self, val* p0) {
2217 parser_prod__AConcreteMethPropdef__n_methid_61d(self, p0); /* Direct call parser_prod#AConcreteMethPropdef#n_methid= on <self:Object(AConcreteMethPropdef)>*/
2218 RET_LABEL:;
2219 }
2220 /* method parser_prod#AConcreteMethPropdef#n_signature= for (self: AConcreteMethPropdef, nullable ASignature) */
2221 void parser_prod__AConcreteMethPropdef__n_signature_61d(val* self, val* p0) {
2222 val* var_node /* var node: nullable ASignature */;
2223 var_node = p0;
2224 self->attrs[COLOR_parser_nodes__AMethPropdef___n_signature].val = var_node; /* _n_signature on <self:AConcreteMethPropdef> */
2225 if (var_node == NULL) {
2226 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2227 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1611);
2228 show_backtrace(1);
2229 } else {
2230 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable ASignature> */
2231 if (unlikely(var_node == NULL)) {
2232 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2233 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
2234 show_backtrace(1);
2235 }
2236 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable ASignature> */
2237 RET_LABEL1:(void)0;
2238 }
2239 }
2240 RET_LABEL:;
2241 }
2242 /* method parser_prod#AConcreteMethPropdef#n_signature= for (self: Object, nullable ASignature) */
2243 void VIRTUAL_parser_prod__AConcreteMethPropdef__n_signature_61d(val* self, val* p0) {
2244 parser_prod__AConcreteMethPropdef__n_signature_61d(self, p0); /* Direct call parser_prod#AConcreteMethPropdef#n_signature= on <self:Object(AConcreteMethPropdef)>*/
2245 RET_LABEL:;
2246 }
2247 /* method parser_prod#AConcreteMethPropdef#n_annotations= for (self: AConcreteMethPropdef, nullable AAnnotations) */
2248 void parser_prod__AConcreteMethPropdef__n_annotations_61d(val* self, val* p0) {
2249 val* var_node /* var node: nullable AAnnotations */;
2250 val* var /* : null */;
2251 short int var1 /* : Bool */;
2252 short int var2 /* : Bool */;
2253 val* var_other /* var other: nullable Object */;
2254 short int var4 /* : Bool */;
2255 short int var5 /* : Bool */;
2256 short int var6 /* : Bool */;
2257 var_node = p0;
2258 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_node; /* _n_annotations on <self:AConcreteMethPropdef> */
2259 var = NULL;
2260 if (var_node == NULL) {
2261 var1 = 0; /* is null */
2262 } else {
2263 var1 = 1; /* arg is null and recv is not */
2264 }
2265 if (0) {
2266 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AAnnotations> */
2267 var_other = var;
2268 {
2269 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AAnnotations(AAnnotations)>*/;
2270 var4 = var5;
2271 }
2272 var6 = !var4;
2273 var2 = var6;
2274 goto RET_LABEL3;
2275 RET_LABEL3:(void)0;
2276 }
2277 var1 = var2;
2278 }
2279 if (var1){
2280 {
2281 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AAnnotations(AAnnotations)> */
2282 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AAnnotations(AAnnotations)> */
2283 RET_LABEL7:(void)0;
2284 }
2285 }
2286 } else {
2287 }
2288 RET_LABEL:;
2289 }
2290 /* method parser_prod#AConcreteMethPropdef#n_annotations= for (self: Object, nullable AAnnotations) */
2291 void VIRTUAL_parser_prod__AConcreteMethPropdef__n_annotations_61d(val* self, val* p0) {
2292 parser_prod__AConcreteMethPropdef__n_annotations_61d(self, p0); /* Direct call parser_prod#AConcreteMethPropdef#n_annotations= on <self:Object(AConcreteMethPropdef)>*/
2293 RET_LABEL:;
2294 }
2295 /* method parser_prod#AConcreteMethPropdef#n_block= for (self: AConcreteMethPropdef, nullable AExpr) */
2296 void parser_prod__AConcreteMethPropdef__n_block_61d(val* self, val* p0) {
2297 val* var_node /* var node: nullable AExpr */;
2298 val* var /* : null */;
2299 short int var1 /* : Bool */;
2300 short int var2 /* : Bool */;
2301 val* var_other /* var other: nullable Object */;
2302 short int var4 /* : Bool */;
2303 short int var5 /* : Bool */;
2304 short int var6 /* : Bool */;
2305 var_node = p0;
2306 self->attrs[COLOR_parser_nodes__AMethPropdef___n_block].val = var_node; /* _n_block on <self:AConcreteMethPropdef> */
2307 var = NULL;
2308 if (var_node == NULL) {
2309 var1 = 0; /* is null */
2310 } else {
2311 var1 = 1; /* arg is null and recv is not */
2312 }
2313 if (0) {
2314 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AExpr> */
2315 var_other = var;
2316 {
2317 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AExpr(AExpr)>*/;
2318 var4 = var5;
2319 }
2320 var6 = !var4;
2321 var2 = var6;
2322 goto RET_LABEL3;
2323 RET_LABEL3:(void)0;
2324 }
2325 var1 = var2;
2326 }
2327 if (var1){
2328 {
2329 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AExpr(AExpr)> */
2330 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AExpr(AExpr)> */
2331 RET_LABEL7:(void)0;
2332 }
2333 }
2334 } else {
2335 }
2336 RET_LABEL:;
2337 }
2338 /* method parser_prod#AConcreteMethPropdef#n_block= for (self: Object, nullable AExpr) */
2339 void VIRTUAL_parser_prod__AConcreteMethPropdef__n_block_61d(val* self, val* p0) {
2340 parser_prod__AConcreteMethPropdef__n_block_61d(self, p0); /* Direct call parser_prod#AConcreteMethPropdef#n_block= on <self:Object(AConcreteMethPropdef)>*/
2341 RET_LABEL:;
2342 }
2343 /* method parser_prod#AConcreteMethPropdef#visit_all for (self: AConcreteMethPropdef, Visitor) */
2344 void parser_prod__AConcreteMethPropdef__visit_all(val* self, val* p0) {
2345 val* var_v /* var v: Visitor */;
2346 val* var /* : nullable ADoc */;
2347 val* var1 /* : nullable TKwredef */;
2348 val* var2 /* : nullable AVisibility */;
2349 val* var3 /* : nullable TKwmeth */;
2350 val* var4 /* : nullable AMethid */;
2351 val* var5 /* : nullable ASignature */;
2352 val* var6 /* : nullable AAnnotations */;
2353 val* var7 /* : nullable AExpr */;
2354 var_v = p0;
2355 var = self->attrs[COLOR_parser_nodes__APropdef___n_doc].val; /* _n_doc on <self:AConcreteMethPropdef> */
2356 {
2357 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2358 }
2359 var1 = self->attrs[COLOR_parser_nodes__APropdef___n_kwredef].val; /* _n_kwredef on <self:AConcreteMethPropdef> */
2360 {
2361 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2362 }
2363 var2 = self->attrs[COLOR_parser_nodes__APropdef___n_visibility].val; /* _n_visibility on <self:AConcreteMethPropdef> */
2364 {
2365 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2366 }
2367 var3 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_kwmeth].val; /* _n_kwmeth on <self:AConcreteMethPropdef> */
2368 {
2369 parser_nodes__Visitor__enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2370 }
2371 var4 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_methid].val; /* _n_methid on <self:AConcreteMethPropdef> */
2372 {
2373 parser_nodes__Visitor__enter_visit(var_v, var4); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2374 }
2375 var5 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_signature].val; /* _n_signature on <self:AConcreteMethPropdef> */
2376 {
2377 parser_nodes__Visitor__enter_visit(var_v, var5); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2378 }
2379 var6 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AConcreteMethPropdef> */
2380 {
2381 parser_nodes__Visitor__enter_visit(var_v, var6); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2382 }
2383 var7 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_block].val; /* _n_block on <self:AConcreteMethPropdef> */
2384 {
2385 parser_nodes__Visitor__enter_visit(var_v, var7); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2386 }
2387 RET_LABEL:;
2388 }
2389 /* method parser_prod#AConcreteMethPropdef#visit_all for (self: Object, Visitor) */
2390 void VIRTUAL_parser_prod__AConcreteMethPropdef__visit_all(val* self, val* p0) {
2391 parser_prod__AConcreteMethPropdef__visit_all(self, p0); /* Direct call parser_prod#AConcreteMethPropdef#visit_all on <self:Object(AConcreteMethPropdef)>*/
2392 RET_LABEL:;
2393 }
2394 /* method parser_prod#AConcreteInitPropdef#init_aconcreteinitpropdef for (self: AConcreteInitPropdef, nullable ADoc, nullable TKwredef, nullable AVisibility, nullable TKwinit, nullable AMethid, nullable ASignature, nullable AAnnotations, nullable AExpr) */
2395 void parser_prod__AConcreteInitPropdef__init_aconcreteinitpropdef(val* self, val* p0, val* p1, val* p2, val* p3, val* p4, val* p5, val* p6, val* p7) {
2396 val* var_n_doc /* var n_doc: nullable ADoc */;
2397 val* var_n_kwredef /* var n_kwredef: nullable TKwredef */;
2398 val* var_n_visibility /* var n_visibility: nullable AVisibility */;
2399 val* var_n_kwinit /* var n_kwinit: nullable TKwinit */;
2400 val* var_n_methid /* var n_methid: nullable AMethid */;
2401 val* var_n_signature /* var n_signature: nullable ASignature */;
2402 val* var_n_annotations /* var n_annotations: nullable AAnnotations */;
2403 val* var_n_block /* var n_block: nullable AExpr */;
2404 val* var /* : null */;
2405 short int var1 /* : Bool */;
2406 short int var2 /* : Bool */;
2407 val* var_other /* var other: nullable Object */;
2408 short int var4 /* : Bool */;
2409 short int var5 /* : Bool */;
2410 short int var6 /* : Bool */;
2411 val* var8 /* : null */;
2412 short int var9 /* : Bool */;
2413 short int var10 /* : Bool */;
2414 short int var12 /* : Bool */;
2415 short int var13 /* : Bool */;
2416 short int var14 /* : Bool */;
2417 val* var18 /* : null */;
2418 short int var19 /* : Bool */;
2419 short int var20 /* : Bool */;
2420 short int var22 /* : Bool */;
2421 short int var23 /* : Bool */;
2422 short int var24 /* : Bool */;
2423 val* var27 /* : null */;
2424 short int var28 /* : Bool */;
2425 short int var29 /* : Bool */;
2426 short int var31 /* : Bool */;
2427 short int var32 /* : Bool */;
2428 short int var33 /* : Bool */;
2429 val* var35 /* : null */;
2430 short int var36 /* : Bool */;
2431 short int var37 /* : Bool */;
2432 short int var39 /* : Bool */;
2433 short int var40 /* : Bool */;
2434 short int var41 /* : Bool */;
2435 var_n_doc = p0;
2436 var_n_kwredef = p1;
2437 var_n_visibility = p2;
2438 var_n_kwinit = p3;
2439 var_n_methid = p4;
2440 var_n_signature = p5;
2441 var_n_annotations = p6;
2442 var_n_block = p7;
2443 self->attrs[COLOR_parser_nodes__APropdef___n_doc].val = var_n_doc; /* _n_doc on <self:AConcreteInitPropdef> */
2444 var = NULL;
2445 if (var_n_doc == NULL) {
2446 var1 = 0; /* is null */
2447 } else {
2448 var1 = 1; /* arg is null and recv is not */
2449 }
2450 if (0) {
2451 { /* Inline kernel#Object#!= (var_n_doc,var) on <var_n_doc:nullable ADoc> */
2452 var_other = var;
2453 {
2454 var5 = ((short int (*)(val*, val*))(var_n_doc->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_doc, var_other) /* == on <var_n_doc:nullable ADoc(ADoc)>*/;
2455 var4 = var5;
2456 }
2457 var6 = !var4;
2458 var2 = var6;
2459 goto RET_LABEL3;
2460 RET_LABEL3:(void)0;
2461 }
2462 var1 = var2;
2463 }
2464 if (var1){
2465 {
2466 { /* Inline parser_nodes#ANode#parent= (var_n_doc,self) on <var_n_doc:nullable ADoc(ADoc)> */
2467 var_n_doc->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_doc:nullable ADoc(ADoc)> */
2468 RET_LABEL7:(void)0;
2469 }
2470 }
2471 } else {
2472 }
2473 self->attrs[COLOR_parser_nodes__APropdef___n_kwredef].val = var_n_kwredef; /* _n_kwredef on <self:AConcreteInitPropdef> */
2474 var8 = NULL;
2475 if (var_n_kwredef == NULL) {
2476 var9 = 0; /* is null */
2477 } else {
2478 var9 = 1; /* arg is null and recv is not */
2479 }
2480 if (0) {
2481 { /* Inline kernel#Object#!= (var_n_kwredef,var8) on <var_n_kwredef:nullable TKwredef> */
2482 var_other = var8;
2483 {
2484 var13 = ((short int (*)(val*, val*))(var_n_kwredef->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_kwredef, var_other) /* == on <var_n_kwredef:nullable TKwredef(TKwredef)>*/;
2485 var12 = var13;
2486 }
2487 var14 = !var12;
2488 var10 = var14;
2489 goto RET_LABEL11;
2490 RET_LABEL11:(void)0;
2491 }
2492 var9 = var10;
2493 }
2494 if (var9){
2495 {
2496 { /* Inline parser_nodes#ANode#parent= (var_n_kwredef,self) on <var_n_kwredef:nullable TKwredef(TKwredef)> */
2497 var_n_kwredef->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwredef:nullable TKwredef(TKwredef)> */
2498 RET_LABEL15:(void)0;
2499 }
2500 }
2501 } else {
2502 }
2503 if (unlikely(var_n_visibility == NULL)) {
2504 PRINT_ERROR("Runtime error: %s", "Cast failed");
2505 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1653);
2506 show_backtrace(1);
2507 }
2508 self->attrs[COLOR_parser_nodes__APropdef___n_visibility].val = var_n_visibility; /* _n_visibility on <self:AConcreteInitPropdef> */
2509 if (var_n_visibility == NULL) {
2510 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2511 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1654);
2512 show_backtrace(1);
2513 } else {
2514 { /* Inline parser_nodes#ANode#parent= (var_n_visibility,self) on <var_n_visibility:nullable AVisibility> */
2515 if (unlikely(var_n_visibility == NULL)) {
2516 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2517 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
2518 show_backtrace(1);
2519 }
2520 var_n_visibility->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_visibility:nullable AVisibility> */
2521 RET_LABEL16:(void)0;
2522 }
2523 }
2524 if (unlikely(var_n_kwinit == NULL)) {
2525 PRINT_ERROR("Runtime error: %s", "Cast failed");
2526 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1655);
2527 show_backtrace(1);
2528 }
2529 self->attrs[COLOR_parser_nodes__AMethPropdef___n_kwinit].val = var_n_kwinit; /* _n_kwinit on <self:AConcreteInitPropdef> */
2530 if (var_n_kwinit == NULL) {
2531 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2532 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1656);
2533 show_backtrace(1);
2534 } else {
2535 { /* Inline parser_nodes#ANode#parent= (var_n_kwinit,self) on <var_n_kwinit:nullable TKwinit> */
2536 if (unlikely(var_n_kwinit == NULL)) {
2537 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2538 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
2539 show_backtrace(1);
2540 }
2541 var_n_kwinit->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwinit:nullable TKwinit> */
2542 RET_LABEL17:(void)0;
2543 }
2544 }
2545 self->attrs[COLOR_parser_nodes__AMethPropdef___n_methid].val = var_n_methid; /* _n_methid on <self:AConcreteInitPropdef> */
2546 var18 = NULL;
2547 if (var_n_methid == NULL) {
2548 var19 = 0; /* is null */
2549 } else {
2550 var19 = 1; /* arg is null and recv is not */
2551 }
2552 if (0) {
2553 { /* Inline kernel#Object#!= (var_n_methid,var18) on <var_n_methid:nullable AMethid> */
2554 var_other = var18;
2555 {
2556 var23 = ((short int (*)(val*, val*))(var_n_methid->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_methid, var_other) /* == on <var_n_methid:nullable AMethid(AMethid)>*/;
2557 var22 = var23;
2558 }
2559 var24 = !var22;
2560 var20 = var24;
2561 goto RET_LABEL21;
2562 RET_LABEL21:(void)0;
2563 }
2564 var19 = var20;
2565 }
2566 if (var19){
2567 {
2568 { /* Inline parser_nodes#ANode#parent= (var_n_methid,self) on <var_n_methid:nullable AMethid(AMethid)> */
2569 var_n_methid->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_methid:nullable AMethid(AMethid)> */
2570 RET_LABEL25:(void)0;
2571 }
2572 }
2573 } else {
2574 }
2575 if (unlikely(var_n_signature == NULL)) {
2576 PRINT_ERROR("Runtime error: %s", "Cast failed");
2577 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1659);
2578 show_backtrace(1);
2579 }
2580 self->attrs[COLOR_parser_nodes__AMethPropdef___n_signature].val = var_n_signature; /* _n_signature on <self:AConcreteInitPropdef> */
2581 if (var_n_signature == NULL) {
2582 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2583 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1660);
2584 show_backtrace(1);
2585 } else {
2586 { /* Inline parser_nodes#ANode#parent= (var_n_signature,self) on <var_n_signature:nullable ASignature> */
2587 if (unlikely(var_n_signature == NULL)) {
2588 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2589 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
2590 show_backtrace(1);
2591 }
2592 var_n_signature->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_signature:nullable ASignature> */
2593 RET_LABEL26:(void)0;
2594 }
2595 }
2596 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:AConcreteInitPropdef> */
2597 var27 = NULL;
2598 if (var_n_annotations == NULL) {
2599 var28 = 0; /* is null */
2600 } else {
2601 var28 = 1; /* arg is null and recv is not */
2602 }
2603 if (0) {
2604 { /* Inline kernel#Object#!= (var_n_annotations,var27) on <var_n_annotations:nullable AAnnotations> */
2605 var_other = var27;
2606 {
2607 var32 = ((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)>*/;
2608 var31 = var32;
2609 }
2610 var33 = !var31;
2611 var29 = var33;
2612 goto RET_LABEL30;
2613 RET_LABEL30:(void)0;
2614 }
2615 var28 = var29;
2616 }
2617 if (var28){
2618 {
2619 { /* Inline parser_nodes#ANode#parent= (var_n_annotations,self) on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
2620 var_n_annotations->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
2621 RET_LABEL34:(void)0;
2622 }
2623 }
2624 } else {
2625 }
2626 self->attrs[COLOR_parser_nodes__AMethPropdef___n_block].val = var_n_block; /* _n_block on <self:AConcreteInitPropdef> */
2627 var35 = NULL;
2628 if (var_n_block == NULL) {
2629 var36 = 0; /* is null */
2630 } else {
2631 var36 = 1; /* arg is null and recv is not */
2632 }
2633 if (0) {
2634 { /* Inline kernel#Object#!= (var_n_block,var35) on <var_n_block:nullable AExpr> */
2635 var_other = var35;
2636 {
2637 var40 = ((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)>*/;
2638 var39 = var40;
2639 }
2640 var41 = !var39;
2641 var37 = var41;
2642 goto RET_LABEL38;
2643 RET_LABEL38:(void)0;
2644 }
2645 var36 = var37;
2646 }
2647 if (var36){
2648 {
2649 { /* Inline parser_nodes#ANode#parent= (var_n_block,self) on <var_n_block:nullable AExpr(AExpr)> */
2650 var_n_block->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_block:nullable AExpr(AExpr)> */
2651 RET_LABEL42:(void)0;
2652 }
2653 }
2654 } else {
2655 }
2656 RET_LABEL:;
2657 }
2658 /* method parser_prod#AConcreteInitPropdef#init_aconcreteinitpropdef for (self: Object, nullable ADoc, nullable TKwredef, nullable AVisibility, nullable TKwinit, nullable AMethid, nullable ASignature, nullable AAnnotations, nullable AExpr) */
2659 void VIRTUAL_parser_prod__AConcreteInitPropdef__init_aconcreteinitpropdef(val* self, val* p0, val* p1, val* p2, val* p3, val* p4, val* p5, val* p6, val* p7) {
2660 parser_prod__AConcreteInitPropdef__init_aconcreteinitpropdef(self, p0, p1, p2, p3, p4, p5, p6, p7); /* Direct call parser_prod#AConcreteInitPropdef#init_aconcreteinitpropdef on <self:Object(AConcreteInitPropdef)>*/
2661 RET_LABEL:;
2662 }
2663 /* method parser_prod#AConcreteInitPropdef#replace_child for (self: AConcreteInitPropdef, ANode, nullable ANode) */
2664 void parser_prod__AConcreteInitPropdef__replace_child(val* self, val* p0, val* p1) {
2665 val* var_old_child /* var old_child: ANode */;
2666 val* var_new_child /* var new_child: nullable ANode */;
2667 val* var /* : nullable ADoc */;
2668 short int var1 /* : Bool */;
2669 short int var2 /* : Bool */;
2670 val* var_other /* var other: nullable Object */;
2671 short int var4 /* : Bool */;
2672 short int var6 /* : Bool */;
2673 short int var7 /* : Bool */;
2674 int cltype;
2675 int idtype;
2676 const char* var_class_name;
2677 val* var8 /* : nullable TKwredef */;
2678 short int var9 /* : Bool */;
2679 short int var10 /* : Bool */;
2680 short int var12 /* : Bool */;
2681 short int var14 /* : Bool */;
2682 short int var15 /* : Bool */;
2683 int cltype16;
2684 int idtype17;
2685 const char* var_class_name18;
2686 val* var19 /* : nullable AVisibility */;
2687 short int var20 /* : Bool */;
2688 short int var21 /* : Bool */;
2689 short int var23 /* : Bool */;
2690 short int var25 /* : Bool */;
2691 short int var26 /* : Bool */;
2692 int cltype27;
2693 int idtype28;
2694 const char* var_class_name29;
2695 val* var30 /* : nullable TKwinit */;
2696 short int var31 /* : Bool */;
2697 short int var32 /* : Bool */;
2698 short int var34 /* : Bool */;
2699 short int var36 /* : Bool */;
2700 short int var37 /* : Bool */;
2701 int cltype38;
2702 int idtype39;
2703 const char* var_class_name40;
2704 val* var41 /* : nullable AMethid */;
2705 short int var42 /* : Bool */;
2706 short int var43 /* : Bool */;
2707 short int var45 /* : Bool */;
2708 short int var47 /* : Bool */;
2709 short int var48 /* : Bool */;
2710 int cltype49;
2711 int idtype50;
2712 const char* var_class_name51;
2713 val* var52 /* : nullable ASignature */;
2714 short int var53 /* : Bool */;
2715 short int var54 /* : Bool */;
2716 short int var56 /* : Bool */;
2717 short int var58 /* : Bool */;
2718 short int var59 /* : Bool */;
2719 int cltype60;
2720 int idtype61;
2721 const char* var_class_name62;
2722 val* var63 /* : nullable AAnnotations */;
2723 short int var64 /* : Bool */;
2724 short int var65 /* : Bool */;
2725 short int var67 /* : Bool */;
2726 short int var69 /* : Bool */;
2727 short int var70 /* : Bool */;
2728 int cltype71;
2729 int idtype72;
2730 const char* var_class_name73;
2731 val* var74 /* : nullable AExpr */;
2732 short int var75 /* : Bool */;
2733 short int var76 /* : Bool */;
2734 short int var78 /* : Bool */;
2735 short int var80 /* : Bool */;
2736 short int var81 /* : Bool */;
2737 int cltype82;
2738 int idtype83;
2739 const char* var_class_name84;
2740 var_old_child = p0;
2741 var_new_child = p1;
2742 var = self->attrs[COLOR_parser_nodes__APropdef___n_doc].val; /* _n_doc on <self:AConcreteInitPropdef> */
2743 if (var == NULL) {
2744 var1 = 0; /* <var_old_child:ANode> cannot be null */
2745 } else {
2746 { /* Inline kernel#Object#== (var,var_old_child) on <var:nullable ADoc> */
2747 var_other = var_old_child;
2748 {
2749 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:nullable ADoc(ADoc)> */
2750 var6 = var == var_other;
2751 var4 = var6;
2752 goto RET_LABEL5;
2753 RET_LABEL5:(void)0;
2754 }
2755 }
2756 var2 = var4;
2757 goto RET_LABEL3;
2758 RET_LABEL3:(void)0;
2759 }
2760 var1 = var2;
2761 }
2762 if (var1){
2763 /* <var_new_child:nullable ANode> isa nullable ADoc */
2764 cltype = type_nullable_parser_nodes__ADoc.color;
2765 idtype = type_nullable_parser_nodes__ADoc.id;
2766 if(var_new_child == NULL) {
2767 var7 = 1;
2768 } else {
2769 if(cltype >= var_new_child->type->table_size) {
2770 var7 = 0;
2771 } else {
2772 var7 = var_new_child->type->type_table[cltype] == idtype;
2773 }
2774 }
2775 if (unlikely(!var7)) {
2776 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
2777 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ADoc", var_class_name);
2778 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1670);
2779 show_backtrace(1);
2780 }
2781 {
2782 parser_prod__AConcreteInitPropdef__n_doc_61d(self, var_new_child); /* Direct call parser_prod#AConcreteInitPropdef#n_doc= on <self:AConcreteInitPropdef>*/
2783 }
2784 goto RET_LABEL;
2785 } else {
2786 }
2787 var8 = self->attrs[COLOR_parser_nodes__APropdef___n_kwredef].val; /* _n_kwredef on <self:AConcreteInitPropdef> */
2788 if (var8 == NULL) {
2789 var9 = 0; /* <var_old_child:ANode> cannot be null */
2790 } else {
2791 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:nullable TKwredef> */
2792 var_other = var_old_child;
2793 {
2794 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:nullable TKwredef(TKwredef)> */
2795 var14 = var8 == var_other;
2796 var12 = var14;
2797 goto RET_LABEL13;
2798 RET_LABEL13:(void)0;
2799 }
2800 }
2801 var10 = var12;
2802 goto RET_LABEL11;
2803 RET_LABEL11:(void)0;
2804 }
2805 var9 = var10;
2806 }
2807 if (var9){
2808 /* <var_new_child:nullable ANode> isa nullable TKwredef */
2809 cltype16 = type_nullable_parser_nodes__TKwredef.color;
2810 idtype17 = type_nullable_parser_nodes__TKwredef.id;
2811 if(var_new_child == NULL) {
2812 var15 = 1;
2813 } else {
2814 if(cltype16 >= var_new_child->type->table_size) {
2815 var15 = 0;
2816 } else {
2817 var15 = var_new_child->type->type_table[cltype16] == idtype17;
2818 }
2819 }
2820 if (unlikely(!var15)) {
2821 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
2822 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TKwredef", var_class_name18);
2823 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1674);
2824 show_backtrace(1);
2825 }
2826 {
2827 parser_prod__AConcreteInitPropdef__n_kwredef_61d(self, var_new_child); /* Direct call parser_prod#AConcreteInitPropdef#n_kwredef= on <self:AConcreteInitPropdef>*/
2828 }
2829 goto RET_LABEL;
2830 } else {
2831 }
2832 var19 = self->attrs[COLOR_parser_nodes__APropdef___n_visibility].val; /* _n_visibility on <self:AConcreteInitPropdef> */
2833 if (var19 == NULL) {
2834 var20 = 0; /* <var_old_child:ANode> cannot be null */
2835 } else {
2836 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:nullable AVisibility> */
2837 var_other = var_old_child;
2838 {
2839 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:nullable AVisibility(AVisibility)> */
2840 var25 = var19 == var_other;
2841 var23 = var25;
2842 goto RET_LABEL24;
2843 RET_LABEL24:(void)0;
2844 }
2845 }
2846 var21 = var23;
2847 goto RET_LABEL22;
2848 RET_LABEL22:(void)0;
2849 }
2850 var20 = var21;
2851 }
2852 if (var20){
2853 /* <var_new_child:nullable ANode> isa AVisibility */
2854 cltype27 = type_parser_nodes__AVisibility.color;
2855 idtype28 = type_parser_nodes__AVisibility.id;
2856 if(var_new_child == NULL) {
2857 var26 = 0;
2858 } else {
2859 if(cltype27 >= var_new_child->type->table_size) {
2860 var26 = 0;
2861 } else {
2862 var26 = var_new_child->type->type_table[cltype27] == idtype28;
2863 }
2864 }
2865 if (unlikely(!var26)) {
2866 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
2867 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AVisibility", var_class_name29);
2868 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1678);
2869 show_backtrace(1);
2870 }
2871 {
2872 parser_prod__AConcreteInitPropdef__n_visibility_61d(self, var_new_child); /* Direct call parser_prod#AConcreteInitPropdef#n_visibility= on <self:AConcreteInitPropdef>*/
2873 }
2874 goto RET_LABEL;
2875 } else {
2876 }
2877 var30 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_kwinit].val; /* _n_kwinit on <self:AConcreteInitPropdef> */
2878 if (var30 == NULL) {
2879 var31 = 0; /* <var_old_child:ANode> cannot be null */
2880 } else {
2881 { /* Inline kernel#Object#== (var30,var_old_child) on <var30:nullable TKwinit> */
2882 var_other = var_old_child;
2883 {
2884 { /* Inline kernel#Object#is_same_instance (var30,var_other) on <var30:nullable TKwinit(TKwinit)> */
2885 var36 = var30 == var_other;
2886 var34 = var36;
2887 goto RET_LABEL35;
2888 RET_LABEL35:(void)0;
2889 }
2890 }
2891 var32 = var34;
2892 goto RET_LABEL33;
2893 RET_LABEL33:(void)0;
2894 }
2895 var31 = var32;
2896 }
2897 if (var31){
2898 /* <var_new_child:nullable ANode> isa TKwinit */
2899 cltype38 = type_parser_nodes__TKwinit.color;
2900 idtype39 = type_parser_nodes__TKwinit.id;
2901 if(var_new_child == NULL) {
2902 var37 = 0;
2903 } else {
2904 if(cltype38 >= var_new_child->type->table_size) {
2905 var37 = 0;
2906 } else {
2907 var37 = var_new_child->type->type_table[cltype38] == idtype39;
2908 }
2909 }
2910 if (unlikely(!var37)) {
2911 var_class_name40 = var_new_child == NULL ? "null" : var_new_child->type->name;
2912 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwinit", var_class_name40);
2913 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1682);
2914 show_backtrace(1);
2915 }
2916 {
2917 parser_prod__AConcreteInitPropdef__n_kwinit_61d(self, var_new_child); /* Direct call parser_prod#AConcreteInitPropdef#n_kwinit= on <self:AConcreteInitPropdef>*/
2918 }
2919 goto RET_LABEL;
2920 } else {
2921 }
2922 var41 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_methid].val; /* _n_methid on <self:AConcreteInitPropdef> */
2923 if (var41 == NULL) {
2924 var42 = 0; /* <var_old_child:ANode> cannot be null */
2925 } else {
2926 { /* Inline kernel#Object#== (var41,var_old_child) on <var41:nullable AMethid> */
2927 var_other = var_old_child;
2928 {
2929 { /* Inline kernel#Object#is_same_instance (var41,var_other) on <var41:nullable AMethid(AMethid)> */
2930 var47 = var41 == var_other;
2931 var45 = var47;
2932 goto RET_LABEL46;
2933 RET_LABEL46:(void)0;
2934 }
2935 }
2936 var43 = var45;
2937 goto RET_LABEL44;
2938 RET_LABEL44:(void)0;
2939 }
2940 var42 = var43;
2941 }
2942 if (var42){
2943 /* <var_new_child:nullable ANode> isa nullable AMethid */
2944 cltype49 = type_nullable_parser_nodes__AMethid.color;
2945 idtype50 = type_nullable_parser_nodes__AMethid.id;
2946 if(var_new_child == NULL) {
2947 var48 = 1;
2948 } else {
2949 if(cltype49 >= var_new_child->type->table_size) {
2950 var48 = 0;
2951 } else {
2952 var48 = var_new_child->type->type_table[cltype49] == idtype50;
2953 }
2954 }
2955 if (unlikely(!var48)) {
2956 var_class_name51 = var_new_child == NULL ? "null" : var_new_child->type->name;
2957 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AMethid", var_class_name51);
2958 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1686);
2959 show_backtrace(1);
2960 }
2961 {
2962 parser_prod__AConcreteInitPropdef__n_methid_61d(self, var_new_child); /* Direct call parser_prod#AConcreteInitPropdef#n_methid= on <self:AConcreteInitPropdef>*/
2963 }
2964 goto RET_LABEL;
2965 } else {
2966 }
2967 var52 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_signature].val; /* _n_signature on <self:AConcreteInitPropdef> */
2968 if (var52 == NULL) {
2969 var53 = 0; /* <var_old_child:ANode> cannot be null */
2970 } else {
2971 { /* Inline kernel#Object#== (var52,var_old_child) on <var52:nullable ASignature> */
2972 var_other = var_old_child;
2973 {
2974 { /* Inline kernel#Object#is_same_instance (var52,var_other) on <var52:nullable ASignature(ASignature)> */
2975 var58 = var52 == var_other;
2976 var56 = var58;
2977 goto RET_LABEL57;
2978 RET_LABEL57:(void)0;
2979 }
2980 }
2981 var54 = var56;
2982 goto RET_LABEL55;
2983 RET_LABEL55:(void)0;
2984 }
2985 var53 = var54;
2986 }
2987 if (var53){
2988 /* <var_new_child:nullable ANode> isa ASignature */
2989 cltype60 = type_parser_nodes__ASignature.color;
2990 idtype61 = type_parser_nodes__ASignature.id;
2991 if(var_new_child == NULL) {
2992 var59 = 0;
2993 } else {
2994 if(cltype60 >= var_new_child->type->table_size) {
2995 var59 = 0;
2996 } else {
2997 var59 = var_new_child->type->type_table[cltype60] == idtype61;
2998 }
2999 }
3000 if (unlikely(!var59)) {
3001 var_class_name62 = var_new_child == NULL ? "null" : var_new_child->type->name;
3002 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "ASignature", var_class_name62);
3003 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1690);
3004 show_backtrace(1);
3005 }
3006 {
3007 parser_prod__AConcreteInitPropdef__n_signature_61d(self, var_new_child); /* Direct call parser_prod#AConcreteInitPropdef#n_signature= on <self:AConcreteInitPropdef>*/
3008 }
3009 goto RET_LABEL;
3010 } else {
3011 }
3012 var63 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AConcreteInitPropdef> */
3013 if (var63 == NULL) {
3014 var64 = 0; /* <var_old_child:ANode> cannot be null */
3015 } else {
3016 { /* Inline kernel#Object#== (var63,var_old_child) on <var63:nullable AAnnotations> */
3017 var_other = var_old_child;
3018 {
3019 { /* Inline kernel#Object#is_same_instance (var63,var_other) on <var63:nullable AAnnotations(AAnnotations)> */
3020 var69 = var63 == var_other;
3021 var67 = var69;
3022 goto RET_LABEL68;
3023 RET_LABEL68:(void)0;
3024 }
3025 }
3026 var65 = var67;
3027 goto RET_LABEL66;
3028 RET_LABEL66:(void)0;
3029 }
3030 var64 = var65;
3031 }
3032 if (var64){
3033 /* <var_new_child:nullable ANode> isa nullable AAnnotations */
3034 cltype71 = type_nullable_parser_nodes__AAnnotations.color;
3035 idtype72 = type_nullable_parser_nodes__AAnnotations.id;
3036 if(var_new_child == NULL) {
3037 var70 = 1;
3038 } else {
3039 if(cltype71 >= var_new_child->type->table_size) {
3040 var70 = 0;
3041 } else {
3042 var70 = var_new_child->type->type_table[cltype71] == idtype72;
3043 }
3044 }
3045 if (unlikely(!var70)) {
3046 var_class_name73 = var_new_child == NULL ? "null" : var_new_child->type->name;
3047 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AAnnotations", var_class_name73);
3048 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1694);
3049 show_backtrace(1);
3050 }
3051 {
3052 parser_prod__AConcreteInitPropdef__n_annotations_61d(self, var_new_child); /* Direct call parser_prod#AConcreteInitPropdef#n_annotations= on <self:AConcreteInitPropdef>*/
3053 }
3054 goto RET_LABEL;
3055 } else {
3056 }
3057 var74 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_block].val; /* _n_block on <self:AConcreteInitPropdef> */
3058 if (var74 == NULL) {
3059 var75 = 0; /* <var_old_child:ANode> cannot be null */
3060 } else {
3061 { /* Inline kernel#Object#== (var74,var_old_child) on <var74:nullable AExpr> */
3062 var_other = var_old_child;
3063 {
3064 { /* Inline kernel#Object#is_same_instance (var74,var_other) on <var74:nullable AExpr(AExpr)> */
3065 var80 = var74 == var_other;
3066 var78 = var80;
3067 goto RET_LABEL79;
3068 RET_LABEL79:(void)0;
3069 }
3070 }
3071 var76 = var78;
3072 goto RET_LABEL77;
3073 RET_LABEL77:(void)0;
3074 }
3075 var75 = var76;
3076 }
3077 if (var75){
3078 /* <var_new_child:nullable ANode> isa nullable AExpr */
3079 cltype82 = type_nullable_parser_nodes__AExpr.color;
3080 idtype83 = type_nullable_parser_nodes__AExpr.id;
3081 if(var_new_child == NULL) {
3082 var81 = 1;
3083 } else {
3084 if(cltype82 >= var_new_child->type->table_size) {
3085 var81 = 0;
3086 } else {
3087 var81 = var_new_child->type->type_table[cltype82] == idtype83;
3088 }
3089 }
3090 if (unlikely(!var81)) {
3091 var_class_name84 = var_new_child == NULL ? "null" : var_new_child->type->name;
3092 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AExpr", var_class_name84);
3093 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1698);
3094 show_backtrace(1);
3095 }
3096 {
3097 parser_prod__AConcreteInitPropdef__n_block_61d(self, var_new_child); /* Direct call parser_prod#AConcreteInitPropdef#n_block= on <self:AConcreteInitPropdef>*/
3098 }
3099 goto RET_LABEL;
3100 } else {
3101 }
3102 RET_LABEL:;
3103 }
3104 /* method parser_prod#AConcreteInitPropdef#replace_child for (self: Object, ANode, nullable ANode) */
3105 void VIRTUAL_parser_prod__AConcreteInitPropdef__replace_child(val* self, val* p0, val* p1) {
3106 parser_prod__AConcreteInitPropdef__replace_child(self, p0, p1); /* Direct call parser_prod#AConcreteInitPropdef#replace_child on <self:Object(AConcreteInitPropdef)>*/
3107 RET_LABEL:;
3108 }
3109 /* method parser_prod#AConcreteInitPropdef#n_doc= for (self: AConcreteInitPropdef, nullable ADoc) */
3110 void parser_prod__AConcreteInitPropdef__n_doc_61d(val* self, val* p0) {
3111 val* var_node /* var node: nullable ADoc */;
3112 val* var /* : null */;
3113 short int var1 /* : Bool */;
3114 short int var2 /* : Bool */;
3115 val* var_other /* var other: nullable Object */;
3116 short int var4 /* : Bool */;
3117 short int var5 /* : Bool */;
3118 short int var6 /* : Bool */;
3119 var_node = p0;
3120 self->attrs[COLOR_parser_nodes__APropdef___n_doc].val = var_node; /* _n_doc on <self:AConcreteInitPropdef> */
3121 var = NULL;
3122 if (var_node == NULL) {
3123 var1 = 0; /* is null */
3124 } else {
3125 var1 = 1; /* arg is null and recv is not */
3126 }
3127 if (0) {
3128 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable ADoc> */
3129 var_other = var;
3130 {
3131 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable ADoc(ADoc)>*/;
3132 var4 = var5;
3133 }
3134 var6 = !var4;
3135 var2 = var6;
3136 goto RET_LABEL3;
3137 RET_LABEL3:(void)0;
3138 }
3139 var1 = var2;
3140 }
3141 if (var1){
3142 {
3143 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable ADoc(ADoc)> */
3144 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable ADoc(ADoc)> */
3145 RET_LABEL7:(void)0;
3146 }
3147 }
3148 } else {
3149 }
3150 RET_LABEL:;
3151 }
3152 /* method parser_prod#AConcreteInitPropdef#n_doc= for (self: Object, nullable ADoc) */
3153 void VIRTUAL_parser_prod__AConcreteInitPropdef__n_doc_61d(val* self, val* p0) {
3154 parser_prod__AConcreteInitPropdef__n_doc_61d(self, p0); /* Direct call parser_prod#AConcreteInitPropdef#n_doc= on <self:Object(AConcreteInitPropdef)>*/
3155 RET_LABEL:;
3156 }
3157 /* method parser_prod#AConcreteInitPropdef#n_kwredef= for (self: AConcreteInitPropdef, nullable TKwredef) */
3158 void parser_prod__AConcreteInitPropdef__n_kwredef_61d(val* self, val* p0) {
3159 val* var_node /* var node: nullable TKwredef */;
3160 val* var /* : null */;
3161 short int var1 /* : Bool */;
3162 short int var2 /* : Bool */;
3163 val* var_other /* var other: nullable Object */;
3164 short int var4 /* : Bool */;
3165 short int var5 /* : Bool */;
3166 short int var6 /* : Bool */;
3167 var_node = p0;
3168 self->attrs[COLOR_parser_nodes__APropdef___n_kwredef].val = var_node; /* _n_kwredef on <self:AConcreteInitPropdef> */
3169 var = NULL;
3170 if (var_node == NULL) {
3171 var1 = 0; /* is null */
3172 } else {
3173 var1 = 1; /* arg is null and recv is not */
3174 }
3175 if (0) {
3176 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable TKwredef> */
3177 var_other = var;
3178 {
3179 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable TKwredef(TKwredef)>*/;
3180 var4 = var5;
3181 }
3182 var6 = !var4;
3183 var2 = var6;
3184 goto RET_LABEL3;
3185 RET_LABEL3:(void)0;
3186 }
3187 var1 = var2;
3188 }
3189 if (var1){
3190 {
3191 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TKwredef(TKwredef)> */
3192 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TKwredef(TKwredef)> */
3193 RET_LABEL7:(void)0;
3194 }
3195 }
3196 } else {
3197 }
3198 RET_LABEL:;
3199 }
3200 /* method parser_prod#AConcreteInitPropdef#n_kwredef= for (self: Object, nullable TKwredef) */
3201 void VIRTUAL_parser_prod__AConcreteInitPropdef__n_kwredef_61d(val* self, val* p0) {
3202 parser_prod__AConcreteInitPropdef__n_kwredef_61d(self, p0); /* Direct call parser_prod#AConcreteInitPropdef#n_kwredef= on <self:Object(AConcreteInitPropdef)>*/
3203 RET_LABEL:;
3204 }
3205 /* method parser_prod#AConcreteInitPropdef#n_visibility= for (self: AConcreteInitPropdef, nullable AVisibility) */
3206 void parser_prod__AConcreteInitPropdef__n_visibility_61d(val* self, val* p0) {
3207 val* var_node /* var node: nullable AVisibility */;
3208 var_node = p0;
3209 self->attrs[COLOR_parser_nodes__APropdef___n_visibility].val = var_node; /* _n_visibility on <self:AConcreteInitPropdef> */
3210 if (var_node == NULL) {
3211 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3212 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1716);
3213 show_backtrace(1);
3214 } else {
3215 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AVisibility> */
3216 if (unlikely(var_node == NULL)) {
3217 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3218 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
3219 show_backtrace(1);
3220 }
3221 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AVisibility> */
3222 RET_LABEL1:(void)0;
3223 }
3224 }
3225 RET_LABEL:;
3226 }
3227 /* method parser_prod#AConcreteInitPropdef#n_visibility= for (self: Object, nullable AVisibility) */
3228 void VIRTUAL_parser_prod__AConcreteInitPropdef__n_visibility_61d(val* self, val* p0) {
3229 parser_prod__AConcreteInitPropdef__n_visibility_61d(self, p0); /* Direct call parser_prod#AConcreteInitPropdef#n_visibility= on <self:Object(AConcreteInitPropdef)>*/
3230 RET_LABEL:;
3231 }
3232 /* method parser_prod#AConcreteInitPropdef#n_kwinit= for (self: AConcreteInitPropdef, nullable TKwinit) */
3233 void parser_prod__AConcreteInitPropdef__n_kwinit_61d(val* self, val* p0) {
3234 val* var_node /* var node: nullable TKwinit */;
3235 var_node = p0;
3236 self->attrs[COLOR_parser_nodes__AMethPropdef___n_kwinit].val = var_node; /* _n_kwinit on <self:AConcreteInitPropdef> */
3237 if (var_node == NULL) {
3238 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3239 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1721);
3240 show_backtrace(1);
3241 } else {
3242 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TKwinit> */
3243 if (unlikely(var_node == NULL)) {
3244 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3245 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
3246 show_backtrace(1);
3247 }
3248 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TKwinit> */
3249 RET_LABEL1:(void)0;
3250 }
3251 }
3252 RET_LABEL:;
3253 }
3254 /* method parser_prod#AConcreteInitPropdef#n_kwinit= for (self: Object, nullable TKwinit) */
3255 void VIRTUAL_parser_prod__AConcreteInitPropdef__n_kwinit_61d(val* self, val* p0) {
3256 parser_prod__AConcreteInitPropdef__n_kwinit_61d(self, p0); /* Direct call parser_prod#AConcreteInitPropdef#n_kwinit= on <self:Object(AConcreteInitPropdef)>*/
3257 RET_LABEL:;
3258 }
3259 /* method parser_prod#AConcreteInitPropdef#n_methid= for (self: AConcreteInitPropdef, nullable AMethid) */
3260 void parser_prod__AConcreteInitPropdef__n_methid_61d(val* self, val* p0) {
3261 val* var_node /* var node: nullable AMethid */;
3262 val* var /* : null */;
3263 short int var1 /* : Bool */;
3264 short int var2 /* : Bool */;
3265 val* var_other /* var other: nullable Object */;
3266 short int var4 /* : Bool */;
3267 short int var5 /* : Bool */;
3268 short int var6 /* : Bool */;
3269 var_node = p0;
3270 self->attrs[COLOR_parser_nodes__AMethPropdef___n_methid].val = var_node; /* _n_methid on <self:AConcreteInitPropdef> */
3271 var = NULL;
3272 if (var_node == NULL) {
3273 var1 = 0; /* is null */
3274 } else {
3275 var1 = 1; /* arg is null and recv is not */
3276 }
3277 if (0) {
3278 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AMethid> */
3279 var_other = var;
3280 {
3281 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AMethid(AMethid)>*/;
3282 var4 = var5;
3283 }
3284 var6 = !var4;
3285 var2 = var6;
3286 goto RET_LABEL3;
3287 RET_LABEL3:(void)0;
3288 }
3289 var1 = var2;
3290 }
3291 if (var1){
3292 {
3293 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AMethid(AMethid)> */
3294 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AMethid(AMethid)> */
3295 RET_LABEL7:(void)0;
3296 }
3297 }
3298 } else {
3299 }
3300 RET_LABEL:;
3301 }
3302 /* method parser_prod#AConcreteInitPropdef#n_methid= for (self: Object, nullable AMethid) */
3303 void VIRTUAL_parser_prod__AConcreteInitPropdef__n_methid_61d(val* self, val* p0) {
3304 parser_prod__AConcreteInitPropdef__n_methid_61d(self, p0); /* Direct call parser_prod#AConcreteInitPropdef#n_methid= on <self:Object(AConcreteInitPropdef)>*/
3305 RET_LABEL:;
3306 }
3307 /* method parser_prod#AConcreteInitPropdef#n_signature= for (self: AConcreteInitPropdef, nullable ASignature) */
3308 void parser_prod__AConcreteInitPropdef__n_signature_61d(val* self, val* p0) {
3309 val* var_node /* var node: nullable ASignature */;
3310 var_node = p0;
3311 self->attrs[COLOR_parser_nodes__AMethPropdef___n_signature].val = var_node; /* _n_signature on <self:AConcreteInitPropdef> */
3312 if (var_node == NULL) {
3313 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3314 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1731);
3315 show_backtrace(1);
3316 } else {
3317 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable ASignature> */
3318 if (unlikely(var_node == NULL)) {
3319 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3320 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
3321 show_backtrace(1);
3322 }
3323 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable ASignature> */
3324 RET_LABEL1:(void)0;
3325 }
3326 }
3327 RET_LABEL:;
3328 }
3329 /* method parser_prod#AConcreteInitPropdef#n_signature= for (self: Object, nullable ASignature) */
3330 void VIRTUAL_parser_prod__AConcreteInitPropdef__n_signature_61d(val* self, val* p0) {
3331 parser_prod__AConcreteInitPropdef__n_signature_61d(self, p0); /* Direct call parser_prod#AConcreteInitPropdef#n_signature= on <self:Object(AConcreteInitPropdef)>*/
3332 RET_LABEL:;
3333 }
3334 /* method parser_prod#AConcreteInitPropdef#n_annotations= for (self: AConcreteInitPropdef, nullable AAnnotations) */
3335 void parser_prod__AConcreteInitPropdef__n_annotations_61d(val* self, val* p0) {
3336 val* var_node /* var node: nullable AAnnotations */;
3337 val* var /* : null */;
3338 short int var1 /* : Bool */;
3339 short int var2 /* : Bool */;
3340 val* var_other /* var other: nullable Object */;
3341 short int var4 /* : Bool */;
3342 short int var5 /* : Bool */;
3343 short int var6 /* : Bool */;
3344 var_node = p0;
3345 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_node; /* _n_annotations on <self:AConcreteInitPropdef> */
3346 var = NULL;
3347 if (var_node == NULL) {
3348 var1 = 0; /* is null */
3349 } else {
3350 var1 = 1; /* arg is null and recv is not */
3351 }
3352 if (0) {
3353 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AAnnotations> */
3354 var_other = var;
3355 {
3356 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AAnnotations(AAnnotations)>*/;
3357 var4 = var5;
3358 }
3359 var6 = !var4;
3360 var2 = var6;
3361 goto RET_LABEL3;
3362 RET_LABEL3:(void)0;
3363 }
3364 var1 = var2;
3365 }
3366 if (var1){
3367 {
3368 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AAnnotations(AAnnotations)> */
3369 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AAnnotations(AAnnotations)> */
3370 RET_LABEL7:(void)0;
3371 }
3372 }
3373 } else {
3374 }
3375 RET_LABEL:;
3376 }
3377 /* method parser_prod#AConcreteInitPropdef#n_annotations= for (self: Object, nullable AAnnotations) */
3378 void VIRTUAL_parser_prod__AConcreteInitPropdef__n_annotations_61d(val* self, val* p0) {
3379 parser_prod__AConcreteInitPropdef__n_annotations_61d(self, p0); /* Direct call parser_prod#AConcreteInitPropdef#n_annotations= on <self:Object(AConcreteInitPropdef)>*/
3380 RET_LABEL:;
3381 }
3382 /* method parser_prod#AConcreteInitPropdef#n_block= for (self: AConcreteInitPropdef, nullable AExpr) */
3383 void parser_prod__AConcreteInitPropdef__n_block_61d(val* self, val* p0) {
3384 val* var_node /* var node: nullable AExpr */;
3385 val* var /* : null */;
3386 short int var1 /* : Bool */;
3387 short int var2 /* : Bool */;
3388 val* var_other /* var other: nullable Object */;
3389 short int var4 /* : Bool */;
3390 short int var5 /* : Bool */;
3391 short int var6 /* : Bool */;
3392 var_node = p0;
3393 self->attrs[COLOR_parser_nodes__AMethPropdef___n_block].val = var_node; /* _n_block on <self:AConcreteInitPropdef> */
3394 var = NULL;
3395 if (var_node == NULL) {
3396 var1 = 0; /* is null */
3397 } else {
3398 var1 = 1; /* arg is null and recv is not */
3399 }
3400 if (0) {
3401 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AExpr> */
3402 var_other = var;
3403 {
3404 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AExpr(AExpr)>*/;
3405 var4 = var5;
3406 }
3407 var6 = !var4;
3408 var2 = var6;
3409 goto RET_LABEL3;
3410 RET_LABEL3:(void)0;
3411 }
3412 var1 = var2;
3413 }
3414 if (var1){
3415 {
3416 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AExpr(AExpr)> */
3417 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AExpr(AExpr)> */
3418 RET_LABEL7:(void)0;
3419 }
3420 }
3421 } else {
3422 }
3423 RET_LABEL:;
3424 }
3425 /* method parser_prod#AConcreteInitPropdef#n_block= for (self: Object, nullable AExpr) */
3426 void VIRTUAL_parser_prod__AConcreteInitPropdef__n_block_61d(val* self, val* p0) {
3427 parser_prod__AConcreteInitPropdef__n_block_61d(self, p0); /* Direct call parser_prod#AConcreteInitPropdef#n_block= on <self:Object(AConcreteInitPropdef)>*/
3428 RET_LABEL:;
3429 }
3430 /* method parser_prod#AConcreteInitPropdef#visit_all for (self: AConcreteInitPropdef, Visitor) */
3431 void parser_prod__AConcreteInitPropdef__visit_all(val* self, val* p0) {
3432 val* var_v /* var v: Visitor */;
3433 val* var /* : nullable ADoc */;
3434 val* var1 /* : nullable TKwredef */;
3435 val* var2 /* : nullable AVisibility */;
3436 val* var3 /* : nullable TKwinit */;
3437 val* var4 /* : nullable AMethid */;
3438 val* var5 /* : nullable ASignature */;
3439 val* var6 /* : nullable AAnnotations */;
3440 val* var7 /* : nullable AExpr */;
3441 var_v = p0;
3442 var = self->attrs[COLOR_parser_nodes__APropdef___n_doc].val; /* _n_doc on <self:AConcreteInitPropdef> */
3443 {
3444 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3445 }
3446 var1 = self->attrs[COLOR_parser_nodes__APropdef___n_kwredef].val; /* _n_kwredef on <self:AConcreteInitPropdef> */
3447 {
3448 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3449 }
3450 var2 = self->attrs[COLOR_parser_nodes__APropdef___n_visibility].val; /* _n_visibility on <self:AConcreteInitPropdef> */
3451 {
3452 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3453 }
3454 var3 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_kwinit].val; /* _n_kwinit on <self:AConcreteInitPropdef> */
3455 {
3456 parser_nodes__Visitor__enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3457 }
3458 var4 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_methid].val; /* _n_methid on <self:AConcreteInitPropdef> */
3459 {
3460 parser_nodes__Visitor__enter_visit(var_v, var4); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3461 }
3462 var5 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_signature].val; /* _n_signature on <self:AConcreteInitPropdef> */
3463 {
3464 parser_nodes__Visitor__enter_visit(var_v, var5); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3465 }
3466 var6 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AConcreteInitPropdef> */
3467 {
3468 parser_nodes__Visitor__enter_visit(var_v, var6); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3469 }
3470 var7 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_block].val; /* _n_block on <self:AConcreteInitPropdef> */
3471 {
3472 parser_nodes__Visitor__enter_visit(var_v, var7); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3473 }
3474 RET_LABEL:;
3475 }
3476 /* method parser_prod#AConcreteInitPropdef#visit_all for (self: Object, Visitor) */
3477 void VIRTUAL_parser_prod__AConcreteInitPropdef__visit_all(val* self, val* p0) {
3478 parser_prod__AConcreteInitPropdef__visit_all(self, p0); /* Direct call parser_prod#AConcreteInitPropdef#visit_all on <self:Object(AConcreteInitPropdef)>*/
3479 RET_LABEL:;
3480 }
3481 /* method parser_prod#AExternInitPropdef#init_aexterninitpropdef for (self: AExternInitPropdef, nullable ADoc, nullable TKwredef, nullable AVisibility, nullable TKwnew, nullable AMethid, nullable ASignature, nullable AAnnotations, nullable TString, nullable AExternCalls, nullable AExternCodeBlock) */
3482 void parser_prod__AExternInitPropdef__init_aexterninitpropdef(val* self, val* p0, val* p1, val* p2, val* p3, val* p4, val* p5, val* p6, val* p7, val* p8, val* p9) {
3483 val* var_n_doc /* var n_doc: nullable ADoc */;
3484 val* var_n_kwredef /* var n_kwredef: nullable TKwredef */;
3485 val* var_n_visibility /* var n_visibility: nullable AVisibility */;
3486 val* var_n_kwnew /* var n_kwnew: nullable TKwnew */;
3487 val* var_n_methid /* var n_methid: nullable AMethid */;
3488 val* var_n_signature /* var n_signature: nullable ASignature */;
3489 val* var_n_annotations /* var n_annotations: nullable AAnnotations */;
3490 val* var_n_extern /* var n_extern: nullable TString */;
3491 val* var_n_extern_calls /* var n_extern_calls: nullable AExternCalls */;
3492 val* var_n_extern_code_block /* var n_extern_code_block: nullable AExternCodeBlock */;
3493 val* var /* : null */;
3494 short int var1 /* : Bool */;
3495 short int var2 /* : Bool */;
3496 val* var_other /* var other: nullable Object */;
3497 short int var4 /* : Bool */;
3498 short int var5 /* : Bool */;
3499 short int var6 /* : Bool */;
3500 val* var8 /* : null */;
3501 short int var9 /* : Bool */;
3502 short int var10 /* : Bool */;
3503 short int var12 /* : Bool */;
3504 short int var13 /* : Bool */;
3505 short int var14 /* : Bool */;
3506 val* var18 /* : null */;
3507 short int var19 /* : Bool */;
3508 short int var20 /* : Bool */;
3509 short int var22 /* : Bool */;
3510 short int var23 /* : Bool */;
3511 short int var24 /* : Bool */;
3512 val* var27 /* : null */;
3513 short int var28 /* : Bool */;
3514 short int var29 /* : Bool */;
3515 short int var31 /* : Bool */;
3516 short int var32 /* : Bool */;
3517 short int var33 /* : Bool */;
3518 val* var35 /* : null */;
3519 short int var36 /* : Bool */;
3520 short int var37 /* : Bool */;
3521 short int var39 /* : Bool */;
3522 short int var40 /* : Bool */;
3523 short int var41 /* : Bool */;
3524 val* var43 /* : null */;
3525 short int var44 /* : Bool */;
3526 short int var45 /* : Bool */;
3527 short int var47 /* : Bool */;
3528 short int var48 /* : Bool */;
3529 short int var49 /* : Bool */;
3530 val* var51 /* : null */;
3531 short int var52 /* : Bool */;
3532 short int var53 /* : Bool */;
3533 short int var55 /* : Bool */;
3534 short int var56 /* : Bool */;
3535 short int var57 /* : Bool */;
3536 var_n_doc = p0;
3537 var_n_kwredef = p1;
3538 var_n_visibility = p2;
3539 var_n_kwnew = p3;
3540 var_n_methid = p4;
3541 var_n_signature = p5;
3542 var_n_annotations = p6;
3543 var_n_extern = p7;
3544 var_n_extern_calls = p8;
3545 var_n_extern_code_block = p9;
3546 self->attrs[COLOR_parser_nodes__APropdef___n_doc].val = var_n_doc; /* _n_doc on <self:AExternInitPropdef> */
3547 var = NULL;
3548 if (var_n_doc == NULL) {
3549 var1 = 0; /* is null */
3550 } else {
3551 var1 = 1; /* arg is null and recv is not */
3552 }
3553 if (0) {
3554 { /* Inline kernel#Object#!= (var_n_doc,var) on <var_n_doc:nullable ADoc> */
3555 var_other = var;
3556 {
3557 var5 = ((short int (*)(val*, val*))(var_n_doc->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_doc, var_other) /* == on <var_n_doc:nullable ADoc(ADoc)>*/;
3558 var4 = var5;
3559 }
3560 var6 = !var4;
3561 var2 = var6;
3562 goto RET_LABEL3;
3563 RET_LABEL3:(void)0;
3564 }
3565 var1 = var2;
3566 }
3567 if (var1){
3568 {
3569 { /* Inline parser_nodes#ANode#parent= (var_n_doc,self) on <var_n_doc:nullable ADoc(ADoc)> */
3570 var_n_doc->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_doc:nullable ADoc(ADoc)> */
3571 RET_LABEL7:(void)0;
3572 }
3573 }
3574 } else {
3575 }
3576 self->attrs[COLOR_parser_nodes__APropdef___n_kwredef].val = var_n_kwredef; /* _n_kwredef on <self:AExternInitPropdef> */
3577 var8 = NULL;
3578 if (var_n_kwredef == NULL) {
3579 var9 = 0; /* is null */
3580 } else {
3581 var9 = 1; /* arg is null and recv is not */
3582 }
3583 if (0) {
3584 { /* Inline kernel#Object#!= (var_n_kwredef,var8) on <var_n_kwredef:nullable TKwredef> */
3585 var_other = var8;
3586 {
3587 var13 = ((short int (*)(val*, val*))(var_n_kwredef->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_kwredef, var_other) /* == on <var_n_kwredef:nullable TKwredef(TKwredef)>*/;
3588 var12 = var13;
3589 }
3590 var14 = !var12;
3591 var10 = var14;
3592 goto RET_LABEL11;
3593 RET_LABEL11:(void)0;
3594 }
3595 var9 = var10;
3596 }
3597 if (var9){
3598 {
3599 { /* Inline parser_nodes#ANode#parent= (var_n_kwredef,self) on <var_n_kwredef:nullable TKwredef(TKwredef)> */
3600 var_n_kwredef->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwredef:nullable TKwredef(TKwredef)> */
3601 RET_LABEL15:(void)0;
3602 }
3603 }
3604 } else {
3605 }
3606 if (unlikely(var_n_visibility == NULL)) {
3607 PRINT_ERROR("Runtime error: %s", "Cast failed");
3608 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1775);
3609 show_backtrace(1);
3610 }
3611 self->attrs[COLOR_parser_nodes__APropdef___n_visibility].val = var_n_visibility; /* _n_visibility on <self:AExternInitPropdef> */
3612 if (var_n_visibility == NULL) {
3613 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3614 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1776);
3615 show_backtrace(1);
3616 } else {
3617 { /* Inline parser_nodes#ANode#parent= (var_n_visibility,self) on <var_n_visibility:nullable AVisibility> */
3618 if (unlikely(var_n_visibility == NULL)) {
3619 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3620 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
3621 show_backtrace(1);
3622 }
3623 var_n_visibility->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_visibility:nullable AVisibility> */
3624 RET_LABEL16:(void)0;
3625 }
3626 }
3627 if (unlikely(var_n_kwnew == NULL)) {
3628 PRINT_ERROR("Runtime error: %s", "Cast failed");
3629 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1777);
3630 show_backtrace(1);
3631 }
3632 self->attrs[COLOR_parser_nodes__AMethPropdef___n_kwnew].val = var_n_kwnew; /* _n_kwnew on <self:AExternInitPropdef> */
3633 if (var_n_kwnew == NULL) {
3634 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3635 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1778);
3636 show_backtrace(1);
3637 } else {
3638 { /* Inline parser_nodes#ANode#parent= (var_n_kwnew,self) on <var_n_kwnew:nullable TKwnew> */
3639 if (unlikely(var_n_kwnew == NULL)) {
3640 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3641 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
3642 show_backtrace(1);
3643 }
3644 var_n_kwnew->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwnew:nullable TKwnew> */
3645 RET_LABEL17:(void)0;
3646 }
3647 }
3648 self->attrs[COLOR_parser_nodes__AMethPropdef___n_methid].val = var_n_methid; /* _n_methid on <self:AExternInitPropdef> */
3649 var18 = NULL;
3650 if (var_n_methid == NULL) {
3651 var19 = 0; /* is null */
3652 } else {
3653 var19 = 1; /* arg is null and recv is not */
3654 }
3655 if (0) {
3656 { /* Inline kernel#Object#!= (var_n_methid,var18) on <var_n_methid:nullable AMethid> */
3657 var_other = var18;
3658 {
3659 var23 = ((short int (*)(val*, val*))(var_n_methid->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_methid, var_other) /* == on <var_n_methid:nullable AMethid(AMethid)>*/;
3660 var22 = var23;
3661 }
3662 var24 = !var22;
3663 var20 = var24;
3664 goto RET_LABEL21;
3665 RET_LABEL21:(void)0;
3666 }
3667 var19 = var20;
3668 }
3669 if (var19){
3670 {
3671 { /* Inline parser_nodes#ANode#parent= (var_n_methid,self) on <var_n_methid:nullable AMethid(AMethid)> */
3672 var_n_methid->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_methid:nullable AMethid(AMethid)> */
3673 RET_LABEL25:(void)0;
3674 }
3675 }
3676 } else {
3677 }
3678 if (unlikely(var_n_signature == NULL)) {
3679 PRINT_ERROR("Runtime error: %s", "Cast failed");
3680 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1781);
3681 show_backtrace(1);
3682 }
3683 self->attrs[COLOR_parser_nodes__AMethPropdef___n_signature].val = var_n_signature; /* _n_signature on <self:AExternInitPropdef> */
3684 if (var_n_signature == NULL) {
3685 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3686 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1782);
3687 show_backtrace(1);
3688 } else {
3689 { /* Inline parser_nodes#ANode#parent= (var_n_signature,self) on <var_n_signature:nullable ASignature> */
3690 if (unlikely(var_n_signature == NULL)) {
3691 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3692 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
3693 show_backtrace(1);
3694 }
3695 var_n_signature->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_signature:nullable ASignature> */
3696 RET_LABEL26:(void)0;
3697 }
3698 }
3699 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:AExternInitPropdef> */
3700 var27 = NULL;
3701 if (var_n_annotations == NULL) {
3702 var28 = 0; /* is null */
3703 } else {
3704 var28 = 1; /* arg is null and recv is not */
3705 }
3706 if (0) {
3707 { /* Inline kernel#Object#!= (var_n_annotations,var27) on <var_n_annotations:nullable AAnnotations> */
3708 var_other = var27;
3709 {
3710 var32 = ((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)>*/;
3711 var31 = var32;
3712 }
3713 var33 = !var31;
3714 var29 = var33;
3715 goto RET_LABEL30;
3716 RET_LABEL30:(void)0;
3717 }
3718 var28 = var29;
3719 }
3720 if (var28){
3721 {
3722 { /* Inline parser_nodes#ANode#parent= (var_n_annotations,self) on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
3723 var_n_annotations->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
3724 RET_LABEL34:(void)0;
3725 }
3726 }
3727 } else {
3728 }
3729 self->attrs[COLOR_parser_nodes__AMethPropdef___n_extern].val = var_n_extern; /* _n_extern on <self:AExternInitPropdef> */
3730 var35 = NULL;
3731 if (var_n_extern == NULL) {
3732 var36 = 0; /* is null */
3733 } else {
3734 var36 = 1; /* arg is null and recv is not */
3735 }
3736 if (0) {
3737 { /* Inline kernel#Object#!= (var_n_extern,var35) on <var_n_extern:nullable TString> */
3738 var_other = var35;
3739 {
3740 var40 = ((short int (*)(val*, val*))(var_n_extern->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_extern, var_other) /* == on <var_n_extern:nullable TString(TString)>*/;
3741 var39 = var40;
3742 }
3743 var41 = !var39;
3744 var37 = var41;
3745 goto RET_LABEL38;
3746 RET_LABEL38:(void)0;
3747 }
3748 var36 = var37;
3749 }
3750 if (var36){
3751 {
3752 { /* Inline parser_nodes#ANode#parent= (var_n_extern,self) on <var_n_extern:nullable TString(TString)> */
3753 var_n_extern->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_extern:nullable TString(TString)> */
3754 RET_LABEL42:(void)0;
3755 }
3756 }
3757 } else {
3758 }
3759 self->attrs[COLOR_parser_nodes__AMethPropdef___n_extern_calls].val = var_n_extern_calls; /* _n_extern_calls on <self:AExternInitPropdef> */
3760 var43 = NULL;
3761 if (var_n_extern_calls == NULL) {
3762 var44 = 0; /* is null */
3763 } else {
3764 var44 = 1; /* arg is null and recv is not */
3765 }
3766 if (0) {
3767 { /* Inline kernel#Object#!= (var_n_extern_calls,var43) on <var_n_extern_calls:nullable AExternCalls> */
3768 var_other = var43;
3769 {
3770 var48 = ((short int (*)(val*, val*))(var_n_extern_calls->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_extern_calls, var_other) /* == on <var_n_extern_calls:nullable AExternCalls(AExternCalls)>*/;
3771 var47 = var48;
3772 }
3773 var49 = !var47;
3774 var45 = var49;
3775 goto RET_LABEL46;
3776 RET_LABEL46:(void)0;
3777 }
3778 var44 = var45;
3779 }
3780 if (var44){
3781 {
3782 { /* Inline parser_nodes#ANode#parent= (var_n_extern_calls,self) on <var_n_extern_calls:nullable AExternCalls(AExternCalls)> */
3783 var_n_extern_calls->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_extern_calls:nullable AExternCalls(AExternCalls)> */
3784 RET_LABEL50:(void)0;
3785 }
3786 }
3787 } else {
3788 }
3789 self->attrs[COLOR_parser_nodes__AMethPropdef___n_extern_code_block].val = var_n_extern_code_block; /* _n_extern_code_block on <self:AExternInitPropdef> */
3790 var51 = NULL;
3791 if (var_n_extern_code_block == NULL) {
3792 var52 = 0; /* is null */
3793 } else {
3794 var52 = 1; /* arg is null and recv is not */
3795 }
3796 if (0) {
3797 { /* Inline kernel#Object#!= (var_n_extern_code_block,var51) on <var_n_extern_code_block:nullable AExternCodeBlock> */
3798 var_other = var51;
3799 {
3800 var56 = ((short int (*)(val*, val*))(var_n_extern_code_block->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_extern_code_block, var_other) /* == on <var_n_extern_code_block:nullable AExternCodeBlock(AExternCodeBlock)>*/;
3801 var55 = var56;
3802 }
3803 var57 = !var55;
3804 var53 = var57;
3805 goto RET_LABEL54;
3806 RET_LABEL54:(void)0;
3807 }
3808 var52 = var53;
3809 }
3810 if (var52){
3811 {
3812 { /* Inline parser_nodes#ANode#parent= (var_n_extern_code_block,self) on <var_n_extern_code_block:nullable AExternCodeBlock(AExternCodeBlock)> */
3813 var_n_extern_code_block->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_extern_code_block:nullable AExternCodeBlock(AExternCodeBlock)> */
3814 RET_LABEL58:(void)0;
3815 }
3816 }
3817 } else {
3818 }
3819 RET_LABEL:;
3820 }
3821 /* method parser_prod#AExternInitPropdef#init_aexterninitpropdef for (self: Object, nullable ADoc, nullable TKwredef, nullable AVisibility, nullable TKwnew, nullable AMethid, nullable ASignature, nullable AAnnotations, nullable TString, nullable AExternCalls, nullable AExternCodeBlock) */
3822 void VIRTUAL_parser_prod__AExternInitPropdef__init_aexterninitpropdef(val* self, val* p0, val* p1, val* p2, val* p3, val* p4, val* p5, val* p6, val* p7, val* p8, val* p9) {
3823 parser_prod__AExternInitPropdef__init_aexterninitpropdef(self, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9); /* Direct call parser_prod#AExternInitPropdef#init_aexterninitpropdef on <self:Object(AExternInitPropdef)>*/
3824 RET_LABEL:;
3825 }
3826 /* method parser_prod#AExternInitPropdef#replace_child for (self: AExternInitPropdef, ANode, nullable ANode) */
3827 void parser_prod__AExternInitPropdef__replace_child(val* self, val* p0, val* p1) {
3828 val* var_old_child /* var old_child: ANode */;
3829 val* var_new_child /* var new_child: nullable ANode */;
3830 val* var /* : nullable ADoc */;
3831 short int var1 /* : Bool */;
3832 short int var2 /* : Bool */;
3833 val* var_other /* var other: nullable Object */;
3834 short int var4 /* : Bool */;
3835 short int var6 /* : Bool */;
3836 short int var7 /* : Bool */;
3837 int cltype;
3838 int idtype;
3839 const char* var_class_name;
3840 val* var8 /* : nullable TKwredef */;
3841 short int var9 /* : Bool */;
3842 short int var10 /* : Bool */;
3843 short int var12 /* : Bool */;
3844 short int var14 /* : Bool */;
3845 short int var15 /* : Bool */;
3846 int cltype16;
3847 int idtype17;
3848 const char* var_class_name18;
3849 val* var19 /* : nullable AVisibility */;
3850 short int var20 /* : Bool */;
3851 short int var21 /* : Bool */;
3852 short int var23 /* : Bool */;
3853 short int var25 /* : Bool */;
3854 short int var26 /* : Bool */;
3855 int cltype27;
3856 int idtype28;
3857 const char* var_class_name29;
3858 val* var30 /* : nullable TKwnew */;
3859 short int var31 /* : Bool */;
3860 short int var32 /* : Bool */;
3861 short int var34 /* : Bool */;
3862 short int var36 /* : Bool */;
3863 short int var37 /* : Bool */;
3864 int cltype38;
3865 int idtype39;
3866 const char* var_class_name40;
3867 val* var41 /* : nullable AMethid */;
3868 short int var42 /* : Bool */;
3869 short int var43 /* : Bool */;
3870 short int var45 /* : Bool */;
3871 short int var47 /* : Bool */;
3872 short int var48 /* : Bool */;
3873 int cltype49;
3874 int idtype50;
3875 const char* var_class_name51;
3876 val* var52 /* : nullable ASignature */;
3877 short int var53 /* : Bool */;
3878 short int var54 /* : Bool */;
3879 short int var56 /* : Bool */;
3880 short int var58 /* : Bool */;
3881 short int var59 /* : Bool */;
3882 int cltype60;
3883 int idtype61;
3884 const char* var_class_name62;
3885 val* var63 /* : nullable AAnnotations */;
3886 short int var64 /* : Bool */;
3887 short int var65 /* : Bool */;
3888 short int var67 /* : Bool */;
3889 short int var69 /* : Bool */;
3890 short int var70 /* : Bool */;
3891 int cltype71;
3892 int idtype72;
3893 const char* var_class_name73;
3894 val* var74 /* : nullable TString */;
3895 short int var75 /* : Bool */;
3896 short int var76 /* : Bool */;
3897 short int var78 /* : Bool */;
3898 short int var80 /* : Bool */;
3899 short int var81 /* : Bool */;
3900 int cltype82;
3901 int idtype83;
3902 const char* var_class_name84;
3903 val* var85 /* : nullable AExternCalls */;
3904 short int var86 /* : Bool */;
3905 short int var87 /* : Bool */;
3906 short int var89 /* : Bool */;
3907 short int var91 /* : Bool */;
3908 short int var92 /* : Bool */;
3909 int cltype93;
3910 int idtype94;
3911 const char* var_class_name95;
3912 val* var96 /* : nullable AExternCodeBlock */;
3913 short int var97 /* : Bool */;
3914 short int var98 /* : Bool */;
3915 short int var100 /* : Bool */;
3916 short int var102 /* : Bool */;
3917 short int var103 /* : Bool */;
3918 int cltype104;
3919 int idtype105;
3920 const char* var_class_name106;
3921 var_old_child = p0;
3922 var_new_child = p1;
3923 var = self->attrs[COLOR_parser_nodes__APropdef___n_doc].val; /* _n_doc on <self:AExternInitPropdef> */
3924 if (var == NULL) {
3925 var1 = 0; /* <var_old_child:ANode> cannot be null */
3926 } else {
3927 { /* Inline kernel#Object#== (var,var_old_child) on <var:nullable ADoc> */
3928 var_other = var_old_child;
3929 {
3930 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:nullable ADoc(ADoc)> */
3931 var6 = var == var_other;
3932 var4 = var6;
3933 goto RET_LABEL5;
3934 RET_LABEL5:(void)0;
3935 }
3936 }
3937 var2 = var4;
3938 goto RET_LABEL3;
3939 RET_LABEL3:(void)0;
3940 }
3941 var1 = var2;
3942 }
3943 if (var1){
3944 /* <var_new_child:nullable ANode> isa nullable ADoc */
3945 cltype = type_nullable_parser_nodes__ADoc.color;
3946 idtype = type_nullable_parser_nodes__ADoc.id;
3947 if(var_new_child == NULL) {
3948 var7 = 1;
3949 } else {
3950 if(cltype >= var_new_child->type->table_size) {
3951 var7 = 0;
3952 } else {
3953 var7 = var_new_child->type->type_table[cltype] == idtype;
3954 }
3955 }
3956 if (unlikely(!var7)) {
3957 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
3958 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ADoc", var_class_name);
3959 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1796);
3960 show_backtrace(1);
3961 }
3962 {
3963 parser_prod__AExternInitPropdef__n_doc_61d(self, var_new_child); /* Direct call parser_prod#AExternInitPropdef#n_doc= on <self:AExternInitPropdef>*/
3964 }
3965 goto RET_LABEL;
3966 } else {
3967 }
3968 var8 = self->attrs[COLOR_parser_nodes__APropdef___n_kwredef].val; /* _n_kwredef on <self:AExternInitPropdef> */
3969 if (var8 == NULL) {
3970 var9 = 0; /* <var_old_child:ANode> cannot be null */
3971 } else {
3972 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:nullable TKwredef> */
3973 var_other = var_old_child;
3974 {
3975 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:nullable TKwredef(TKwredef)> */
3976 var14 = var8 == var_other;
3977 var12 = var14;
3978 goto RET_LABEL13;
3979 RET_LABEL13:(void)0;
3980 }
3981 }
3982 var10 = var12;
3983 goto RET_LABEL11;
3984 RET_LABEL11:(void)0;
3985 }
3986 var9 = var10;
3987 }
3988 if (var9){
3989 /* <var_new_child:nullable ANode> isa nullable TKwredef */
3990 cltype16 = type_nullable_parser_nodes__TKwredef.color;
3991 idtype17 = type_nullable_parser_nodes__TKwredef.id;
3992 if(var_new_child == NULL) {
3993 var15 = 1;
3994 } else {
3995 if(cltype16 >= var_new_child->type->table_size) {
3996 var15 = 0;
3997 } else {
3998 var15 = var_new_child->type->type_table[cltype16] == idtype17;
3999 }
4000 }
4001 if (unlikely(!var15)) {
4002 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
4003 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TKwredef", var_class_name18);
4004 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1800);
4005 show_backtrace(1);
4006 }
4007 {
4008 parser_prod__AExternInitPropdef__n_kwredef_61d(self, var_new_child); /* Direct call parser_prod#AExternInitPropdef#n_kwredef= on <self:AExternInitPropdef>*/
4009 }
4010 goto RET_LABEL;
4011 } else {
4012 }
4013 var19 = self->attrs[COLOR_parser_nodes__APropdef___n_visibility].val; /* _n_visibility on <self:AExternInitPropdef> */
4014 if (var19 == NULL) {
4015 var20 = 0; /* <var_old_child:ANode> cannot be null */
4016 } else {
4017 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:nullable AVisibility> */
4018 var_other = var_old_child;
4019 {
4020 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:nullable AVisibility(AVisibility)> */
4021 var25 = var19 == var_other;
4022 var23 = var25;
4023 goto RET_LABEL24;
4024 RET_LABEL24:(void)0;
4025 }
4026 }
4027 var21 = var23;
4028 goto RET_LABEL22;
4029 RET_LABEL22:(void)0;
4030 }
4031 var20 = var21;
4032 }
4033 if (var20){
4034 /* <var_new_child:nullable ANode> isa AVisibility */
4035 cltype27 = type_parser_nodes__AVisibility.color;
4036 idtype28 = type_parser_nodes__AVisibility.id;
4037 if(var_new_child == NULL) {
4038 var26 = 0;
4039 } else {
4040 if(cltype27 >= var_new_child->type->table_size) {
4041 var26 = 0;
4042 } else {
4043 var26 = var_new_child->type->type_table[cltype27] == idtype28;
4044 }
4045 }
4046 if (unlikely(!var26)) {
4047 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
4048 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AVisibility", var_class_name29);
4049 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1804);
4050 show_backtrace(1);
4051 }
4052 {
4053 parser_prod__AExternInitPropdef__n_visibility_61d(self, var_new_child); /* Direct call parser_prod#AExternInitPropdef#n_visibility= on <self:AExternInitPropdef>*/
4054 }
4055 goto RET_LABEL;
4056 } else {
4057 }
4058 var30 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_kwnew].val; /* _n_kwnew on <self:AExternInitPropdef> */
4059 if (var30 == NULL) {
4060 var31 = 0; /* <var_old_child:ANode> cannot be null */
4061 } else {
4062 { /* Inline kernel#Object#== (var30,var_old_child) on <var30:nullable TKwnew> */
4063 var_other = var_old_child;
4064 {
4065 { /* Inline kernel#Object#is_same_instance (var30,var_other) on <var30:nullable TKwnew(TKwnew)> */
4066 var36 = var30 == var_other;
4067 var34 = var36;
4068 goto RET_LABEL35;
4069 RET_LABEL35:(void)0;
4070 }
4071 }
4072 var32 = var34;
4073 goto RET_LABEL33;
4074 RET_LABEL33:(void)0;
4075 }
4076 var31 = var32;
4077 }
4078 if (var31){
4079 /* <var_new_child:nullable ANode> isa TKwnew */
4080 cltype38 = type_parser_nodes__TKwnew.color;
4081 idtype39 = type_parser_nodes__TKwnew.id;
4082 if(var_new_child == NULL) {
4083 var37 = 0;
4084 } else {
4085 if(cltype38 >= var_new_child->type->table_size) {
4086 var37 = 0;
4087 } else {
4088 var37 = var_new_child->type->type_table[cltype38] == idtype39;
4089 }
4090 }
4091 if (unlikely(!var37)) {
4092 var_class_name40 = var_new_child == NULL ? "null" : var_new_child->type->name;
4093 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwnew", var_class_name40);
4094 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1808);
4095 show_backtrace(1);
4096 }
4097 {
4098 parser_prod__AExternInitPropdef__n_kwnew_61d(self, var_new_child); /* Direct call parser_prod#AExternInitPropdef#n_kwnew= on <self:AExternInitPropdef>*/
4099 }
4100 goto RET_LABEL;
4101 } else {
4102 }
4103 var41 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_methid].val; /* _n_methid on <self:AExternInitPropdef> */
4104 if (var41 == NULL) {
4105 var42 = 0; /* <var_old_child:ANode> cannot be null */
4106 } else {
4107 { /* Inline kernel#Object#== (var41,var_old_child) on <var41:nullable AMethid> */
4108 var_other = var_old_child;
4109 {
4110 { /* Inline kernel#Object#is_same_instance (var41,var_other) on <var41:nullable AMethid(AMethid)> */
4111 var47 = var41 == var_other;
4112 var45 = var47;
4113 goto RET_LABEL46;
4114 RET_LABEL46:(void)0;
4115 }
4116 }
4117 var43 = var45;
4118 goto RET_LABEL44;
4119 RET_LABEL44:(void)0;
4120 }
4121 var42 = var43;
4122 }
4123 if (var42){
4124 /* <var_new_child:nullable ANode> isa nullable AMethid */
4125 cltype49 = type_nullable_parser_nodes__AMethid.color;
4126 idtype50 = type_nullable_parser_nodes__AMethid.id;
4127 if(var_new_child == NULL) {
4128 var48 = 1;
4129 } else {
4130 if(cltype49 >= var_new_child->type->table_size) {
4131 var48 = 0;
4132 } else {
4133 var48 = var_new_child->type->type_table[cltype49] == idtype50;
4134 }
4135 }
4136 if (unlikely(!var48)) {
4137 var_class_name51 = var_new_child == NULL ? "null" : var_new_child->type->name;
4138 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AMethid", var_class_name51);
4139 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1812);
4140 show_backtrace(1);
4141 }
4142 {
4143 parser_prod__AExternInitPropdef__n_methid_61d(self, var_new_child); /* Direct call parser_prod#AExternInitPropdef#n_methid= on <self:AExternInitPropdef>*/
4144 }
4145 goto RET_LABEL;
4146 } else {
4147 }
4148 var52 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_signature].val; /* _n_signature on <self:AExternInitPropdef> */
4149 if (var52 == NULL) {
4150 var53 = 0; /* <var_old_child:ANode> cannot be null */
4151 } else {
4152 { /* Inline kernel#Object#== (var52,var_old_child) on <var52:nullable ASignature> */
4153 var_other = var_old_child;
4154 {
4155 { /* Inline kernel#Object#is_same_instance (var52,var_other) on <var52:nullable ASignature(ASignature)> */
4156 var58 = var52 == var_other;
4157 var56 = var58;
4158 goto RET_LABEL57;
4159 RET_LABEL57:(void)0;
4160 }
4161 }
4162 var54 = var56;
4163 goto RET_LABEL55;
4164 RET_LABEL55:(void)0;
4165 }
4166 var53 = var54;
4167 }
4168 if (var53){
4169 /* <var_new_child:nullable ANode> isa ASignature */
4170 cltype60 = type_parser_nodes__ASignature.color;
4171 idtype61 = type_parser_nodes__ASignature.id;
4172 if(var_new_child == NULL) {
4173 var59 = 0;
4174 } else {
4175 if(cltype60 >= var_new_child->type->table_size) {
4176 var59 = 0;
4177 } else {
4178 var59 = var_new_child->type->type_table[cltype60] == idtype61;
4179 }
4180 }
4181 if (unlikely(!var59)) {
4182 var_class_name62 = var_new_child == NULL ? "null" : var_new_child->type->name;
4183 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "ASignature", var_class_name62);
4184 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1816);
4185 show_backtrace(1);
4186 }
4187 {
4188 parser_prod__AExternInitPropdef__n_signature_61d(self, var_new_child); /* Direct call parser_prod#AExternInitPropdef#n_signature= on <self:AExternInitPropdef>*/
4189 }
4190 goto RET_LABEL;
4191 } else {
4192 }
4193 var63 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AExternInitPropdef> */
4194 if (var63 == NULL) {
4195 var64 = 0; /* <var_old_child:ANode> cannot be null */
4196 } else {
4197 { /* Inline kernel#Object#== (var63,var_old_child) on <var63:nullable AAnnotations> */
4198 var_other = var_old_child;
4199 {
4200 { /* Inline kernel#Object#is_same_instance (var63,var_other) on <var63:nullable AAnnotations(AAnnotations)> */
4201 var69 = var63 == var_other;
4202 var67 = var69;
4203 goto RET_LABEL68;
4204 RET_LABEL68:(void)0;
4205 }
4206 }
4207 var65 = var67;
4208 goto RET_LABEL66;
4209 RET_LABEL66:(void)0;
4210 }
4211 var64 = var65;
4212 }
4213 if (var64){
4214 /* <var_new_child:nullable ANode> isa nullable AAnnotations */
4215 cltype71 = type_nullable_parser_nodes__AAnnotations.color;
4216 idtype72 = type_nullable_parser_nodes__AAnnotations.id;
4217 if(var_new_child == NULL) {
4218 var70 = 1;
4219 } else {
4220 if(cltype71 >= var_new_child->type->table_size) {
4221 var70 = 0;
4222 } else {
4223 var70 = var_new_child->type->type_table[cltype71] == idtype72;
4224 }
4225 }
4226 if (unlikely(!var70)) {
4227 var_class_name73 = var_new_child == NULL ? "null" : var_new_child->type->name;
4228 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AAnnotations", var_class_name73);
4229 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1820);
4230 show_backtrace(1);
4231 }
4232 {
4233 parser_prod__AExternInitPropdef__n_annotations_61d(self, var_new_child); /* Direct call parser_prod#AExternInitPropdef#n_annotations= on <self:AExternInitPropdef>*/
4234 }
4235 goto RET_LABEL;
4236 } else {
4237 }
4238 var74 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_extern].val; /* _n_extern on <self:AExternInitPropdef> */
4239 if (var74 == NULL) {
4240 var75 = 0; /* <var_old_child:ANode> cannot be null */
4241 } else {
4242 { /* Inline kernel#Object#== (var74,var_old_child) on <var74:nullable TString> */
4243 var_other = var_old_child;
4244 {
4245 { /* Inline kernel#Object#is_same_instance (var74,var_other) on <var74:nullable TString(TString)> */
4246 var80 = var74 == var_other;
4247 var78 = var80;
4248 goto RET_LABEL79;
4249 RET_LABEL79:(void)0;
4250 }
4251 }
4252 var76 = var78;
4253 goto RET_LABEL77;
4254 RET_LABEL77:(void)0;
4255 }
4256 var75 = var76;
4257 }
4258 if (var75){
4259 /* <var_new_child:nullable ANode> isa nullable TString */
4260 cltype82 = type_nullable_parser_nodes__TString.color;
4261 idtype83 = type_nullable_parser_nodes__TString.id;
4262 if(var_new_child == NULL) {
4263 var81 = 1;
4264 } else {
4265 if(cltype82 >= var_new_child->type->table_size) {
4266 var81 = 0;
4267 } else {
4268 var81 = var_new_child->type->type_table[cltype82] == idtype83;
4269 }
4270 }
4271 if (unlikely(!var81)) {
4272 var_class_name84 = var_new_child == NULL ? "null" : var_new_child->type->name;
4273 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TString", var_class_name84);
4274 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1824);
4275 show_backtrace(1);
4276 }
4277 {
4278 parser_prod__AExternInitPropdef__n_extern_61d(self, var_new_child); /* Direct call parser_prod#AExternInitPropdef#n_extern= on <self:AExternInitPropdef>*/
4279 }
4280 goto RET_LABEL;
4281 } else {
4282 }
4283 var85 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_extern_calls].val; /* _n_extern_calls on <self:AExternInitPropdef> */
4284 if (var85 == NULL) {
4285 var86 = 0; /* <var_old_child:ANode> cannot be null */
4286 } else {
4287 { /* Inline kernel#Object#== (var85,var_old_child) on <var85:nullable AExternCalls> */
4288 var_other = var_old_child;
4289 {
4290 { /* Inline kernel#Object#is_same_instance (var85,var_other) on <var85:nullable AExternCalls(AExternCalls)> */
4291 var91 = var85 == var_other;
4292 var89 = var91;
4293 goto RET_LABEL90;
4294 RET_LABEL90:(void)0;
4295 }
4296 }
4297 var87 = var89;
4298 goto RET_LABEL88;
4299 RET_LABEL88:(void)0;
4300 }
4301 var86 = var87;
4302 }
4303 if (var86){
4304 /* <var_new_child:nullable ANode> isa nullable AExternCalls */
4305 cltype93 = type_nullable_parser_nodes__AExternCalls.color;
4306 idtype94 = type_nullable_parser_nodes__AExternCalls.id;
4307 if(var_new_child == NULL) {
4308 var92 = 1;
4309 } else {
4310 if(cltype93 >= var_new_child->type->table_size) {
4311 var92 = 0;
4312 } else {
4313 var92 = var_new_child->type->type_table[cltype93] == idtype94;
4314 }
4315 }
4316 if (unlikely(!var92)) {
4317 var_class_name95 = var_new_child == NULL ? "null" : var_new_child->type->name;
4318 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AExternCalls", var_class_name95);
4319 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1828);
4320 show_backtrace(1);
4321 }
4322 {
4323 parser_prod__AExternInitPropdef__n_extern_calls_61d(self, var_new_child); /* Direct call parser_prod#AExternInitPropdef#n_extern_calls= on <self:AExternInitPropdef>*/
4324 }
4325 goto RET_LABEL;
4326 } else {
4327 }
4328 var96 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_extern_code_block].val; /* _n_extern_code_block on <self:AExternInitPropdef> */
4329 if (var96 == NULL) {
4330 var97 = 0; /* <var_old_child:ANode> cannot be null */
4331 } else {
4332 { /* Inline kernel#Object#== (var96,var_old_child) on <var96:nullable AExternCodeBlock> */
4333 var_other = var_old_child;
4334 {
4335 { /* Inline kernel#Object#is_same_instance (var96,var_other) on <var96:nullable AExternCodeBlock(AExternCodeBlock)> */
4336 var102 = var96 == var_other;
4337 var100 = var102;
4338 goto RET_LABEL101;
4339 RET_LABEL101:(void)0;
4340 }
4341 }
4342 var98 = var100;
4343 goto RET_LABEL99;
4344 RET_LABEL99:(void)0;
4345 }
4346 var97 = var98;
4347 }
4348 if (var97){
4349 /* <var_new_child:nullable ANode> isa nullable AExternCodeBlock */
4350 cltype104 = type_nullable_parser_nodes__AExternCodeBlock.color;
4351 idtype105 = type_nullable_parser_nodes__AExternCodeBlock.id;
4352 if(var_new_child == NULL) {
4353 var103 = 1;
4354 } else {
4355 if(cltype104 >= var_new_child->type->table_size) {
4356 var103 = 0;
4357 } else {
4358 var103 = var_new_child->type->type_table[cltype104] == idtype105;
4359 }
4360 }
4361 if (unlikely(!var103)) {
4362 var_class_name106 = var_new_child == NULL ? "null" : var_new_child->type->name;
4363 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AExternCodeBlock", var_class_name106);
4364 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1832);
4365 show_backtrace(1);
4366 }
4367 {
4368 parser_prod__AExternInitPropdef__n_extern_code_block_61d(self, var_new_child); /* Direct call parser_prod#AExternInitPropdef#n_extern_code_block= on <self:AExternInitPropdef>*/
4369 }
4370 goto RET_LABEL;
4371 } else {
4372 }
4373 RET_LABEL:;
4374 }
4375 /* method parser_prod#AExternInitPropdef#replace_child for (self: Object, ANode, nullable ANode) */
4376 void VIRTUAL_parser_prod__AExternInitPropdef__replace_child(val* self, val* p0, val* p1) {
4377 parser_prod__AExternInitPropdef__replace_child(self, p0, p1); /* Direct call parser_prod#AExternInitPropdef#replace_child on <self:Object(AExternInitPropdef)>*/
4378 RET_LABEL:;
4379 }
4380 /* method parser_prod#AExternInitPropdef#n_doc= for (self: AExternInitPropdef, nullable ADoc) */
4381 void parser_prod__AExternInitPropdef__n_doc_61d(val* self, val* p0) {
4382 val* var_node /* var node: nullable ADoc */;
4383 val* var /* : null */;
4384 short int var1 /* : Bool */;
4385 short int var2 /* : Bool */;
4386 val* var_other /* var other: nullable Object */;
4387 short int var4 /* : Bool */;
4388 short int var5 /* : Bool */;
4389 short int var6 /* : Bool */;
4390 var_node = p0;
4391 self->attrs[COLOR_parser_nodes__APropdef___n_doc].val = var_node; /* _n_doc on <self:AExternInitPropdef> */
4392 var = NULL;
4393 if (var_node == NULL) {
4394 var1 = 0; /* is null */
4395 } else {
4396 var1 = 1; /* arg is null and recv is not */
4397 }
4398 if (0) {
4399 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable ADoc> */
4400 var_other = var;
4401 {
4402 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable ADoc(ADoc)>*/;
4403 var4 = var5;
4404 }
4405 var6 = !var4;
4406 var2 = var6;
4407 goto RET_LABEL3;
4408 RET_LABEL3:(void)0;
4409 }
4410 var1 = var2;
4411 }
4412 if (var1){
4413 {
4414 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable ADoc(ADoc)> */
4415 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable ADoc(ADoc)> */
4416 RET_LABEL7:(void)0;
4417 }
4418 }
4419 } else {
4420 }
4421 RET_LABEL:;
4422 }
4423 /* method parser_prod#AExternInitPropdef#n_doc= for (self: Object, nullable ADoc) */
4424 void VIRTUAL_parser_prod__AExternInitPropdef__n_doc_61d(val* self, val* p0) {
4425 parser_prod__AExternInitPropdef__n_doc_61d(self, p0); /* Direct call parser_prod#AExternInitPropdef#n_doc= on <self:Object(AExternInitPropdef)>*/
4426 RET_LABEL:;
4427 }
4428 /* method parser_prod#AExternInitPropdef#n_kwredef= for (self: AExternInitPropdef, nullable TKwredef) */
4429 void parser_prod__AExternInitPropdef__n_kwredef_61d(val* self, val* p0) {
4430 val* var_node /* var node: nullable TKwredef */;
4431 val* var /* : null */;
4432 short int var1 /* : Bool */;
4433 short int var2 /* : Bool */;
4434 val* var_other /* var other: nullable Object */;
4435 short int var4 /* : Bool */;
4436 short int var5 /* : Bool */;
4437 short int var6 /* : Bool */;
4438 var_node = p0;
4439 self->attrs[COLOR_parser_nodes__APropdef___n_kwredef].val = var_node; /* _n_kwredef on <self:AExternInitPropdef> */
4440 var = NULL;
4441 if (var_node == NULL) {
4442 var1 = 0; /* is null */
4443 } else {
4444 var1 = 1; /* arg is null and recv is not */
4445 }
4446 if (0) {
4447 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable TKwredef> */
4448 var_other = var;
4449 {
4450 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable TKwredef(TKwredef)>*/;
4451 var4 = var5;
4452 }
4453 var6 = !var4;
4454 var2 = var6;
4455 goto RET_LABEL3;
4456 RET_LABEL3:(void)0;
4457 }
4458 var1 = var2;
4459 }
4460 if (var1){
4461 {
4462 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TKwredef(TKwredef)> */
4463 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TKwredef(TKwredef)> */
4464 RET_LABEL7:(void)0;
4465 }
4466 }
4467 } else {
4468 }
4469 RET_LABEL:;
4470 }
4471 /* method parser_prod#AExternInitPropdef#n_kwredef= for (self: Object, nullable TKwredef) */
4472 void VIRTUAL_parser_prod__AExternInitPropdef__n_kwredef_61d(val* self, val* p0) {
4473 parser_prod__AExternInitPropdef__n_kwredef_61d(self, p0); /* Direct call parser_prod#AExternInitPropdef#n_kwredef= on <self:Object(AExternInitPropdef)>*/
4474 RET_LABEL:;
4475 }
4476 /* method parser_prod#AExternInitPropdef#n_visibility= for (self: AExternInitPropdef, nullable AVisibility) */
4477 void parser_prod__AExternInitPropdef__n_visibility_61d(val* self, val* p0) {
4478 val* var_node /* var node: nullable AVisibility */;
4479 var_node = p0;
4480 self->attrs[COLOR_parser_nodes__APropdef___n_visibility].val = var_node; /* _n_visibility on <self:AExternInitPropdef> */
4481 if (var_node == NULL) {
4482 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4483 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1850);
4484 show_backtrace(1);
4485 } else {
4486 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AVisibility> */
4487 if (unlikely(var_node == NULL)) {
4488 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4489 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
4490 show_backtrace(1);
4491 }
4492 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AVisibility> */
4493 RET_LABEL1:(void)0;
4494 }
4495 }
4496 RET_LABEL:;
4497 }
4498 /* method parser_prod#AExternInitPropdef#n_visibility= for (self: Object, nullable AVisibility) */
4499 void VIRTUAL_parser_prod__AExternInitPropdef__n_visibility_61d(val* self, val* p0) {
4500 parser_prod__AExternInitPropdef__n_visibility_61d(self, p0); /* Direct call parser_prod#AExternInitPropdef#n_visibility= on <self:Object(AExternInitPropdef)>*/
4501 RET_LABEL:;
4502 }
4503 /* method parser_prod#AExternInitPropdef#n_kwnew= for (self: AExternInitPropdef, nullable TKwnew) */
4504 void parser_prod__AExternInitPropdef__n_kwnew_61d(val* self, val* p0) {
4505 val* var_node /* var node: nullable TKwnew */;
4506 var_node = p0;
4507 self->attrs[COLOR_parser_nodes__AMethPropdef___n_kwnew].val = var_node; /* _n_kwnew on <self:AExternInitPropdef> */
4508 if (var_node == NULL) {
4509 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4510 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1855);
4511 show_backtrace(1);
4512 } else {
4513 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TKwnew> */
4514 if (unlikely(var_node == NULL)) {
4515 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4516 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
4517 show_backtrace(1);
4518 }
4519 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TKwnew> */
4520 RET_LABEL1:(void)0;
4521 }
4522 }
4523 RET_LABEL:;
4524 }
4525 /* method parser_prod#AExternInitPropdef#n_kwnew= for (self: Object, nullable TKwnew) */
4526 void VIRTUAL_parser_prod__AExternInitPropdef__n_kwnew_61d(val* self, val* p0) {
4527 parser_prod__AExternInitPropdef__n_kwnew_61d(self, p0); /* Direct call parser_prod#AExternInitPropdef#n_kwnew= on <self:Object(AExternInitPropdef)>*/
4528 RET_LABEL:;
4529 }
4530 /* method parser_prod#AExternInitPropdef#n_methid= for (self: AExternInitPropdef, nullable AMethid) */
4531 void parser_prod__AExternInitPropdef__n_methid_61d(val* self, val* p0) {
4532 val* var_node /* var node: nullable AMethid */;
4533 val* var /* : null */;
4534 short int var1 /* : Bool */;
4535 short int var2 /* : Bool */;
4536 val* var_other /* var other: nullable Object */;
4537 short int var4 /* : Bool */;
4538 short int var5 /* : Bool */;
4539 short int var6 /* : Bool */;
4540 var_node = p0;
4541 self->attrs[COLOR_parser_nodes__AMethPropdef___n_methid].val = var_node; /* _n_methid on <self:AExternInitPropdef> */
4542 var = NULL;
4543 if (var_node == NULL) {
4544 var1 = 0; /* is null */
4545 } else {
4546 var1 = 1; /* arg is null and recv is not */
4547 }
4548 if (0) {
4549 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AMethid> */
4550 var_other = var;
4551 {
4552 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AMethid(AMethid)>*/;
4553 var4 = var5;
4554 }
4555 var6 = !var4;
4556 var2 = var6;
4557 goto RET_LABEL3;
4558 RET_LABEL3:(void)0;
4559 }
4560 var1 = var2;
4561 }
4562 if (var1){
4563 {
4564 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AMethid(AMethid)> */
4565 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AMethid(AMethid)> */
4566 RET_LABEL7:(void)0;
4567 }
4568 }
4569 } else {
4570 }
4571 RET_LABEL:;
4572 }
4573 /* method parser_prod#AExternInitPropdef#n_methid= for (self: Object, nullable AMethid) */
4574 void VIRTUAL_parser_prod__AExternInitPropdef__n_methid_61d(val* self, val* p0) {
4575 parser_prod__AExternInitPropdef__n_methid_61d(self, p0); /* Direct call parser_prod#AExternInitPropdef#n_methid= on <self:Object(AExternInitPropdef)>*/
4576 RET_LABEL:;
4577 }
4578 /* method parser_prod#AExternInitPropdef#n_signature= for (self: AExternInitPropdef, nullable ASignature) */
4579 void parser_prod__AExternInitPropdef__n_signature_61d(val* self, val* p0) {
4580 val* var_node /* var node: nullable ASignature */;
4581 var_node = p0;
4582 self->attrs[COLOR_parser_nodes__AMethPropdef___n_signature].val = var_node; /* _n_signature on <self:AExternInitPropdef> */
4583 if (var_node == NULL) {
4584 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4585 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1865);
4586 show_backtrace(1);
4587 } else {
4588 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable ASignature> */
4589 if (unlikely(var_node == NULL)) {
4590 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4591 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
4592 show_backtrace(1);
4593 }
4594 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable ASignature> */
4595 RET_LABEL1:(void)0;
4596 }
4597 }
4598 RET_LABEL:;
4599 }
4600 /* method parser_prod#AExternInitPropdef#n_signature= for (self: Object, nullable ASignature) */
4601 void VIRTUAL_parser_prod__AExternInitPropdef__n_signature_61d(val* self, val* p0) {
4602 parser_prod__AExternInitPropdef__n_signature_61d(self, p0); /* Direct call parser_prod#AExternInitPropdef#n_signature= on <self:Object(AExternInitPropdef)>*/
4603 RET_LABEL:;
4604 }
4605 /* method parser_prod#AExternInitPropdef#n_annotations= for (self: AExternInitPropdef, nullable AAnnotations) */
4606 void parser_prod__AExternInitPropdef__n_annotations_61d(val* self, val* p0) {
4607 val* var_node /* var node: nullable AAnnotations */;
4608 val* var /* : null */;
4609 short int var1 /* : Bool */;
4610 short int var2 /* : Bool */;
4611 val* var_other /* var other: nullable Object */;
4612 short int var4 /* : Bool */;
4613 short int var5 /* : Bool */;
4614 short int var6 /* : Bool */;
4615 var_node = p0;
4616 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_node; /* _n_annotations on <self:AExternInitPropdef> */
4617 var = NULL;
4618 if (var_node == NULL) {
4619 var1 = 0; /* is null */
4620 } else {
4621 var1 = 1; /* arg is null and recv is not */
4622 }
4623 if (0) {
4624 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AAnnotations> */
4625 var_other = var;
4626 {
4627 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AAnnotations(AAnnotations)>*/;
4628 var4 = var5;
4629 }
4630 var6 = !var4;
4631 var2 = var6;
4632 goto RET_LABEL3;
4633 RET_LABEL3:(void)0;
4634 }
4635 var1 = var2;
4636 }
4637 if (var1){
4638 {
4639 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AAnnotations(AAnnotations)> */
4640 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AAnnotations(AAnnotations)> */
4641 RET_LABEL7:(void)0;
4642 }
4643 }
4644 } else {
4645 }
4646 RET_LABEL:;
4647 }
4648 /* method parser_prod#AExternInitPropdef#n_annotations= for (self: Object, nullable AAnnotations) */
4649 void VIRTUAL_parser_prod__AExternInitPropdef__n_annotations_61d(val* self, val* p0) {
4650 parser_prod__AExternInitPropdef__n_annotations_61d(self, p0); /* Direct call parser_prod#AExternInitPropdef#n_annotations= on <self:Object(AExternInitPropdef)>*/
4651 RET_LABEL:;
4652 }
4653 /* method parser_prod#AExternInitPropdef#n_extern= for (self: AExternInitPropdef, nullable TString) */
4654 void parser_prod__AExternInitPropdef__n_extern_61d(val* self, val* p0) {
4655 val* var_node /* var node: nullable TString */;
4656 val* var /* : null */;
4657 short int var1 /* : Bool */;
4658 short int var2 /* : Bool */;
4659 val* var_other /* var other: nullable Object */;
4660 short int var4 /* : Bool */;
4661 short int var5 /* : Bool */;
4662 short int var6 /* : Bool */;
4663 var_node = p0;
4664 self->attrs[COLOR_parser_nodes__AMethPropdef___n_extern].val = var_node; /* _n_extern on <self:AExternInitPropdef> */
4665 var = NULL;
4666 if (var_node == NULL) {
4667 var1 = 0; /* is null */
4668 } else {
4669 var1 = 1; /* arg is null and recv is not */
4670 }
4671 if (0) {
4672 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable TString> */
4673 var_other = var;
4674 {
4675 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable TString(TString)>*/;
4676 var4 = var5;
4677 }
4678 var6 = !var4;
4679 var2 = var6;
4680 goto RET_LABEL3;
4681 RET_LABEL3:(void)0;
4682 }
4683 var1 = var2;
4684 }
4685 if (var1){
4686 {
4687 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TString(TString)> */
4688 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TString(TString)> */
4689 RET_LABEL7:(void)0;
4690 }
4691 }
4692 } else {
4693 }
4694 RET_LABEL:;
4695 }
4696 /* method parser_prod#AExternInitPropdef#n_extern= for (self: Object, nullable TString) */
4697 void VIRTUAL_parser_prod__AExternInitPropdef__n_extern_61d(val* self, val* p0) {
4698 parser_prod__AExternInitPropdef__n_extern_61d(self, p0); /* Direct call parser_prod#AExternInitPropdef#n_extern= on <self:Object(AExternInitPropdef)>*/
4699 RET_LABEL:;
4700 }
4701 /* method parser_prod#AExternInitPropdef#n_extern_calls= for (self: AExternInitPropdef, nullable AExternCalls) */
4702 void parser_prod__AExternInitPropdef__n_extern_calls_61d(val* self, val* p0) {
4703 val* var_node /* var node: nullable AExternCalls */;
4704 val* var /* : null */;
4705 short int var1 /* : Bool */;
4706 short int var2 /* : Bool */;
4707 val* var_other /* var other: nullable Object */;
4708 short int var4 /* : Bool */;
4709 short int var5 /* : Bool */;
4710 short int var6 /* : Bool */;
4711 var_node = p0;
4712 self->attrs[COLOR_parser_nodes__AMethPropdef___n_extern_calls].val = var_node; /* _n_extern_calls on <self:AExternInitPropdef> */
4713 var = NULL;
4714 if (var_node == NULL) {
4715 var1 = 0; /* is null */
4716 } else {
4717 var1 = 1; /* arg is null and recv is not */
4718 }
4719 if (0) {
4720 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AExternCalls> */
4721 var_other = var;
4722 {
4723 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AExternCalls(AExternCalls)>*/;
4724 var4 = var5;
4725 }
4726 var6 = !var4;
4727 var2 = var6;
4728 goto RET_LABEL3;
4729 RET_LABEL3:(void)0;
4730 }
4731 var1 = var2;
4732 }
4733 if (var1){
4734 {
4735 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AExternCalls(AExternCalls)> */
4736 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AExternCalls(AExternCalls)> */
4737 RET_LABEL7:(void)0;
4738 }
4739 }
4740 } else {
4741 }
4742 RET_LABEL:;
4743 }
4744 /* method parser_prod#AExternInitPropdef#n_extern_calls= for (self: Object, nullable AExternCalls) */
4745 void VIRTUAL_parser_prod__AExternInitPropdef__n_extern_calls_61d(val* self, val* p0) {
4746 parser_prod__AExternInitPropdef__n_extern_calls_61d(self, p0); /* Direct call parser_prod#AExternInitPropdef#n_extern_calls= on <self:Object(AExternInitPropdef)>*/
4747 RET_LABEL:;
4748 }
4749 /* method parser_prod#AExternInitPropdef#n_extern_code_block= for (self: AExternInitPropdef, nullable AExternCodeBlock) */
4750 void parser_prod__AExternInitPropdef__n_extern_code_block_61d(val* self, val* p0) {
4751 val* var_node /* var node: nullable AExternCodeBlock */;
4752 val* var /* : null */;
4753 short int var1 /* : Bool */;
4754 short int var2 /* : Bool */;
4755 val* var_other /* var other: nullable Object */;
4756 short int var4 /* : Bool */;
4757 short int var5 /* : Bool */;
4758 short int var6 /* : Bool */;
4759 var_node = p0;
4760 self->attrs[COLOR_parser_nodes__AMethPropdef___n_extern_code_block].val = var_node; /* _n_extern_code_block on <self:AExternInitPropdef> */
4761 var = NULL;
4762 if (var_node == NULL) {
4763 var1 = 0; /* is null */
4764 } else {
4765 var1 = 1; /* arg is null and recv is not */
4766 }
4767 if (0) {
4768 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AExternCodeBlock> */
4769 var_other = var;
4770 {
4771 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AExternCodeBlock(AExternCodeBlock)>*/;
4772 var4 = var5;
4773 }
4774 var6 = !var4;
4775 var2 = var6;
4776 goto RET_LABEL3;
4777 RET_LABEL3:(void)0;
4778 }
4779 var1 = var2;
4780 }
4781 if (var1){
4782 {
4783 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AExternCodeBlock(AExternCodeBlock)> */
4784 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AExternCodeBlock(AExternCodeBlock)> */
4785 RET_LABEL7:(void)0;
4786 }
4787 }
4788 } else {
4789 }
4790 RET_LABEL:;
4791 }
4792 /* method parser_prod#AExternInitPropdef#n_extern_code_block= for (self: Object, nullable AExternCodeBlock) */
4793 void VIRTUAL_parser_prod__AExternInitPropdef__n_extern_code_block_61d(val* self, val* p0) {
4794 parser_prod__AExternInitPropdef__n_extern_code_block_61d(self, p0); /* Direct call parser_prod#AExternInitPropdef#n_extern_code_block= on <self:Object(AExternInitPropdef)>*/
4795 RET_LABEL:;
4796 }
4797 /* method parser_prod#AExternInitPropdef#visit_all for (self: AExternInitPropdef, Visitor) */
4798 void parser_prod__AExternInitPropdef__visit_all(val* self, val* p0) {
4799 val* var_v /* var v: Visitor */;
4800 val* var /* : nullable ADoc */;
4801 val* var1 /* : nullable TKwredef */;
4802 val* var2 /* : nullable AVisibility */;
4803 val* var3 /* : nullable TKwnew */;
4804 val* var4 /* : nullable AMethid */;
4805 val* var5 /* : nullable ASignature */;
4806 val* var6 /* : nullable AAnnotations */;
4807 val* var7 /* : nullable TString */;
4808 val* var8 /* : nullable AExternCalls */;
4809 val* var9 /* : nullable AExternCodeBlock */;
4810 var_v = p0;
4811 var = self->attrs[COLOR_parser_nodes__APropdef___n_doc].val; /* _n_doc on <self:AExternInitPropdef> */
4812 {
4813 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4814 }
4815 var1 = self->attrs[COLOR_parser_nodes__APropdef___n_kwredef].val; /* _n_kwredef on <self:AExternInitPropdef> */
4816 {
4817 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4818 }
4819 var2 = self->attrs[COLOR_parser_nodes__APropdef___n_visibility].val; /* _n_visibility on <self:AExternInitPropdef> */
4820 {
4821 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4822 }
4823 var3 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_kwnew].val; /* _n_kwnew on <self:AExternInitPropdef> */
4824 {
4825 parser_nodes__Visitor__enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4826 }
4827 var4 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_methid].val; /* _n_methid on <self:AExternInitPropdef> */
4828 {
4829 parser_nodes__Visitor__enter_visit(var_v, var4); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4830 }
4831 var5 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_signature].val; /* _n_signature on <self:AExternInitPropdef> */
4832 {
4833 parser_nodes__Visitor__enter_visit(var_v, var5); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4834 }
4835 var6 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AExternInitPropdef> */
4836 {
4837 parser_nodes__Visitor__enter_visit(var_v, var6); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4838 }
4839 var7 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_extern].val; /* _n_extern on <self:AExternInitPropdef> */
4840 {
4841 parser_nodes__Visitor__enter_visit(var_v, var7); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4842 }
4843 var8 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_extern_calls].val; /* _n_extern_calls on <self:AExternInitPropdef> */
4844 {
4845 parser_nodes__Visitor__enter_visit(var_v, var8); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4846 }
4847 var9 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_extern_code_block].val; /* _n_extern_code_block on <self:AExternInitPropdef> */
4848 {
4849 parser_nodes__Visitor__enter_visit(var_v, var9); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4850 }
4851 RET_LABEL:;
4852 }
4853 /* method parser_prod#AExternInitPropdef#visit_all for (self: Object, Visitor) */
4854 void VIRTUAL_parser_prod__AExternInitPropdef__visit_all(val* self, val* p0) {
4855 parser_prod__AExternInitPropdef__visit_all(self, p0); /* Direct call parser_prod#AExternInitPropdef#visit_all on <self:Object(AExternInitPropdef)>*/
4856 RET_LABEL:;
4857 }
4858 /* method parser_prod#AMainMethPropdef#init_amainmethpropdef for (self: AMainMethPropdef, nullable TKwredef, nullable AExpr) */
4859 void parser_prod__AMainMethPropdef__init_amainmethpropdef(val* self, val* p0, val* p1) {
4860 val* var_n_kwredef /* var n_kwredef: nullable TKwredef */;
4861 val* var_n_block /* var n_block: nullable AExpr */;
4862 val* var /* : null */;
4863 short int var1 /* : Bool */;
4864 short int var2 /* : Bool */;
4865 val* var_other /* var other: nullable Object */;
4866 short int var4 /* : Bool */;
4867 short int var5 /* : Bool */;
4868 short int var6 /* : Bool */;
4869 val* var8 /* : null */;
4870 short int var9 /* : Bool */;
4871 short int var10 /* : Bool */;
4872 short int var12 /* : Bool */;
4873 short int var13 /* : Bool */;
4874 short int var14 /* : Bool */;
4875 var_n_kwredef = p0;
4876 var_n_block = p1;
4877 self->attrs[COLOR_parser_nodes__APropdef___n_kwredef].val = var_n_kwredef; /* _n_kwredef on <self:AMainMethPropdef> */
4878 var = NULL;
4879 if (var_n_kwredef == NULL) {
4880 var1 = 0; /* is null */
4881 } else {
4882 var1 = 1; /* arg is null and recv is not */
4883 }
4884 if (0) {
4885 { /* Inline kernel#Object#!= (var_n_kwredef,var) on <var_n_kwredef:nullable TKwredef> */
4886 var_other = var;
4887 {
4888 var5 = ((short int (*)(val*, val*))(var_n_kwredef->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_kwredef, var_other) /* == on <var_n_kwredef:nullable TKwredef(TKwredef)>*/;
4889 var4 = var5;
4890 }
4891 var6 = !var4;
4892 var2 = var6;
4893 goto RET_LABEL3;
4894 RET_LABEL3:(void)0;
4895 }
4896 var1 = var2;
4897 }
4898 if (var1){
4899 {
4900 { /* Inline parser_nodes#ANode#parent= (var_n_kwredef,self) on <var_n_kwredef:nullable TKwredef(TKwredef)> */
4901 var_n_kwredef->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwredef:nullable TKwredef(TKwredef)> */
4902 RET_LABEL7:(void)0;
4903 }
4904 }
4905 } else {
4906 }
4907 self->attrs[COLOR_parser_nodes__AMethPropdef___n_block].val = var_n_block; /* _n_block on <self:AMainMethPropdef> */
4908 var8 = NULL;
4909 if (var_n_block == NULL) {
4910 var9 = 0; /* is null */
4911 } else {
4912 var9 = 1; /* arg is null and recv is not */
4913 }
4914 if (0) {
4915 { /* Inline kernel#Object#!= (var_n_block,var8) on <var_n_block:nullable AExpr> */
4916 var_other = var8;
4917 {
4918 var13 = ((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)>*/;
4919 var12 = var13;
4920 }
4921 var14 = !var12;
4922 var10 = var14;
4923 goto RET_LABEL11;
4924 RET_LABEL11:(void)0;
4925 }
4926 var9 = var10;
4927 }
4928 if (var9){
4929 {
4930 { /* Inline parser_nodes#ANode#parent= (var_n_block,self) on <var_n_block:nullable AExpr(AExpr)> */
4931 var_n_block->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_block:nullable AExpr(AExpr)> */
4932 RET_LABEL15:(void)0;
4933 }
4934 }
4935 } else {
4936 }
4937 RET_LABEL:;
4938 }
4939 /* method parser_prod#AMainMethPropdef#init_amainmethpropdef for (self: Object, nullable TKwredef, nullable AExpr) */
4940 void VIRTUAL_parser_prod__AMainMethPropdef__init_amainmethpropdef(val* self, val* p0, val* p1) {
4941 parser_prod__AMainMethPropdef__init_amainmethpropdef(self, p0, p1); /* Direct call parser_prod#AMainMethPropdef#init_amainmethpropdef on <self:Object(AMainMethPropdef)>*/
4942 RET_LABEL:;
4943 }
4944 /* method parser_prod#AMainMethPropdef#replace_child for (self: AMainMethPropdef, ANode, nullable ANode) */
4945 void parser_prod__AMainMethPropdef__replace_child(val* self, val* p0, val* p1) {
4946 val* var_old_child /* var old_child: ANode */;
4947 val* var_new_child /* var new_child: nullable ANode */;
4948 val* var /* : nullable TKwredef */;
4949 short int var1 /* : Bool */;
4950 short int var2 /* : Bool */;
4951 val* var_other /* var other: nullable Object */;
4952 short int var4 /* : Bool */;
4953 short int var6 /* : Bool */;
4954 short int var7 /* : Bool */;
4955 int cltype;
4956 int idtype;
4957 const char* var_class_name;
4958 val* var8 /* : nullable AExpr */;
4959 short int var9 /* : Bool */;
4960 short int var10 /* : Bool */;
4961 short int var12 /* : Bool */;
4962 short int var14 /* : Bool */;
4963 short int var15 /* : Bool */;
4964 int cltype16;
4965 int idtype17;
4966 const char* var_class_name18;
4967 var_old_child = p0;
4968 var_new_child = p1;
4969 var = self->attrs[COLOR_parser_nodes__APropdef___n_kwredef].val; /* _n_kwredef on <self:AMainMethPropdef> */
4970 if (var == NULL) {
4971 var1 = 0; /* <var_old_child:ANode> cannot be null */
4972 } else {
4973 { /* Inline kernel#Object#== (var,var_old_child) on <var:nullable TKwredef> */
4974 var_other = var_old_child;
4975 {
4976 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:nullable TKwredef(TKwredef)> */
4977 var6 = var == var_other;
4978 var4 = var6;
4979 goto RET_LABEL5;
4980 RET_LABEL5:(void)0;
4981 }
4982 }
4983 var2 = var4;
4984 goto RET_LABEL3;
4985 RET_LABEL3:(void)0;
4986 }
4987 var1 = var2;
4988 }
4989 if (var1){
4990 /* <var_new_child:nullable ANode> isa nullable TKwredef */
4991 cltype = type_nullable_parser_nodes__TKwredef.color;
4992 idtype = type_nullable_parser_nodes__TKwredef.id;
4993 if(var_new_child == NULL) {
4994 var7 = 1;
4995 } else {
4996 if(cltype >= var_new_child->type->table_size) {
4997 var7 = 0;
4998 } else {
4999 var7 = var_new_child->type->type_table[cltype] == idtype;
5000 }
5001 }
5002 if (unlikely(!var7)) {
5003 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
5004 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TKwredef", var_class_name);
5005 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1918);
5006 show_backtrace(1);
5007 }
5008 {
5009 parser_prod__AMainMethPropdef__n_kwredef_61d(self, var_new_child); /* Direct call parser_prod#AMainMethPropdef#n_kwredef= on <self:AMainMethPropdef>*/
5010 }
5011 goto RET_LABEL;
5012 } else {
5013 }
5014 var8 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_block].val; /* _n_block on <self:AMainMethPropdef> */
5015 if (var8 == NULL) {
5016 var9 = 0; /* <var_old_child:ANode> cannot be null */
5017 } else {
5018 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:nullable AExpr> */
5019 var_other = var_old_child;
5020 {
5021 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:nullable AExpr(AExpr)> */
5022 var14 = var8 == var_other;
5023 var12 = var14;
5024 goto RET_LABEL13;
5025 RET_LABEL13:(void)0;
5026 }
5027 }
5028 var10 = var12;
5029 goto RET_LABEL11;
5030 RET_LABEL11:(void)0;
5031 }
5032 var9 = var10;
5033 }
5034 if (var9){
5035 /* <var_new_child:nullable ANode> isa nullable AExpr */
5036 cltype16 = type_nullable_parser_nodes__AExpr.color;
5037 idtype17 = type_nullable_parser_nodes__AExpr.id;
5038 if(var_new_child == NULL) {
5039 var15 = 1;
5040 } else {
5041 if(cltype16 >= var_new_child->type->table_size) {
5042 var15 = 0;
5043 } else {
5044 var15 = var_new_child->type->type_table[cltype16] == idtype17;
5045 }
5046 }
5047 if (unlikely(!var15)) {
5048 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
5049 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AExpr", var_class_name18);
5050 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1922);
5051 show_backtrace(1);
5052 }
5053 {
5054 parser_prod__AMainMethPropdef__n_block_61d(self, var_new_child); /* Direct call parser_prod#AMainMethPropdef#n_block= on <self:AMainMethPropdef>*/
5055 }
5056 goto RET_LABEL;
5057 } else {
5058 }
5059 RET_LABEL:;
5060 }
5061 /* method parser_prod#AMainMethPropdef#replace_child for (self: Object, ANode, nullable ANode) */
5062 void VIRTUAL_parser_prod__AMainMethPropdef__replace_child(val* self, val* p0, val* p1) {
5063 parser_prod__AMainMethPropdef__replace_child(self, p0, p1); /* Direct call parser_prod#AMainMethPropdef#replace_child on <self:Object(AMainMethPropdef)>*/
5064 RET_LABEL:;
5065 }
5066 /* method parser_prod#AMainMethPropdef#n_kwredef= for (self: AMainMethPropdef, nullable TKwredef) */
5067 void parser_prod__AMainMethPropdef__n_kwredef_61d(val* self, val* p0) {
5068 val* var_node /* var node: nullable TKwredef */;
5069 val* var /* : null */;
5070 short int var1 /* : Bool */;
5071 short int var2 /* : Bool */;
5072 val* var_other /* var other: nullable Object */;
5073 short int var4 /* : Bool */;
5074 short int var5 /* : Bool */;
5075 short int var6 /* : Bool */;
5076 var_node = p0;
5077 self->attrs[COLOR_parser_nodes__APropdef___n_kwredef].val = var_node; /* _n_kwredef on <self:AMainMethPropdef> */
5078 var = NULL;
5079 if (var_node == NULL) {
5080 var1 = 0; /* is null */
5081 } else {
5082 var1 = 1; /* arg is null and recv is not */
5083 }
5084 if (0) {
5085 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable TKwredef> */
5086 var_other = var;
5087 {
5088 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable TKwredef(TKwredef)>*/;
5089 var4 = var5;
5090 }
5091 var6 = !var4;
5092 var2 = var6;
5093 goto RET_LABEL3;
5094 RET_LABEL3:(void)0;
5095 }
5096 var1 = var2;
5097 }
5098 if (var1){
5099 {
5100 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TKwredef(TKwredef)> */
5101 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TKwredef(TKwredef)> */
5102 RET_LABEL7:(void)0;
5103 }
5104 }
5105 } else {
5106 }
5107 RET_LABEL:;
5108 }
5109 /* method parser_prod#AMainMethPropdef#n_kwredef= for (self: Object, nullable TKwredef) */
5110 void VIRTUAL_parser_prod__AMainMethPropdef__n_kwredef_61d(val* self, val* p0) {
5111 parser_prod__AMainMethPropdef__n_kwredef_61d(self, p0); /* Direct call parser_prod#AMainMethPropdef#n_kwredef= on <self:Object(AMainMethPropdef)>*/
5112 RET_LABEL:;
5113 }
5114 /* method parser_prod#AMainMethPropdef#n_block= for (self: AMainMethPropdef, nullable AExpr) */
5115 void parser_prod__AMainMethPropdef__n_block_61d(val* self, val* p0) {
5116 val* var_node /* var node: nullable AExpr */;
5117 val* var /* : null */;
5118 short int var1 /* : Bool */;
5119 short int var2 /* : Bool */;
5120 val* var_other /* var other: nullable Object */;
5121 short int var4 /* : Bool */;
5122 short int var5 /* : Bool */;
5123 short int var6 /* : Bool */;
5124 var_node = p0;
5125 self->attrs[COLOR_parser_nodes__AMethPropdef___n_block].val = var_node; /* _n_block on <self:AMainMethPropdef> */
5126 var = NULL;
5127 if (var_node == NULL) {
5128 var1 = 0; /* is null */
5129 } else {
5130 var1 = 1; /* arg is null and recv is not */
5131 }
5132 if (0) {
5133 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AExpr> */
5134 var_other = var;
5135 {
5136 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AExpr(AExpr)>*/;
5137 var4 = var5;
5138 }
5139 var6 = !var4;
5140 var2 = var6;
5141 goto RET_LABEL3;
5142 RET_LABEL3:(void)0;
5143 }
5144 var1 = var2;
5145 }
5146 if (var1){
5147 {
5148 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AExpr(AExpr)> */
5149 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AExpr(AExpr)> */
5150 RET_LABEL7:(void)0;
5151 }
5152 }
5153 } else {
5154 }
5155 RET_LABEL:;
5156 }
5157 /* method parser_prod#AMainMethPropdef#n_block= for (self: Object, nullable AExpr) */
5158 void VIRTUAL_parser_prod__AMainMethPropdef__n_block_61d(val* self, val* p0) {
5159 parser_prod__AMainMethPropdef__n_block_61d(self, p0); /* Direct call parser_prod#AMainMethPropdef#n_block= on <self:Object(AMainMethPropdef)>*/
5160 RET_LABEL:;
5161 }
5162 /* method parser_prod#AMainMethPropdef#visit_all for (self: AMainMethPropdef, Visitor) */
5163 void parser_prod__AMainMethPropdef__visit_all(val* self, val* p0) {
5164 val* var_v /* var v: Visitor */;
5165 val* var /* : nullable TKwredef */;
5166 val* var1 /* : nullable AExpr */;
5167 var_v = p0;
5168 var = self->attrs[COLOR_parser_nodes__APropdef___n_kwredef].val; /* _n_kwredef on <self:AMainMethPropdef> */
5169 {
5170 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
5171 }
5172 var1 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_block].val; /* _n_block on <self:AMainMethPropdef> */
5173 {
5174 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
5175 }
5176 RET_LABEL:;
5177 }
5178 /* method parser_prod#AMainMethPropdef#visit_all for (self: Object, Visitor) */
5179 void VIRTUAL_parser_prod__AMainMethPropdef__visit_all(val* self, val* p0) {
5180 parser_prod__AMainMethPropdef__visit_all(self, p0); /* Direct call parser_prod#AMainMethPropdef#visit_all on <self:Object(AMainMethPropdef)>*/
5181 RET_LABEL:;
5182 }
5183 /* method parser_prod#ATypePropdef#init_atypepropdef for (self: ATypePropdef, nullable ADoc, nullable TKwredef, nullable AVisibility, nullable TKwtype, nullable TClassid, nullable AType, nullable AAnnotations) */
5184 void parser_prod__ATypePropdef__init_atypepropdef(val* self, val* p0, val* p1, val* p2, val* p3, val* p4, val* p5, val* p6) {
5185 val* var_n_doc /* var n_doc: nullable ADoc */;
5186 val* var_n_kwredef /* var n_kwredef: nullable TKwredef */;
5187 val* var_n_visibility /* var n_visibility: nullable AVisibility */;
5188 val* var_n_kwtype /* var n_kwtype: nullable TKwtype */;
5189 val* var_n_id /* var n_id: nullable TClassid */;
5190 val* var_n_type /* var n_type: nullable AType */;
5191 val* var_n_annotations /* var n_annotations: nullable AAnnotations */;
5192 val* var /* : null */;
5193 short int var1 /* : Bool */;
5194 short int var2 /* : Bool */;
5195 val* var_other /* var other: nullable Object */;
5196 short int var4 /* : Bool */;
5197 short int var5 /* : Bool */;
5198 short int var6 /* : Bool */;
5199 val* var8 /* : null */;
5200 short int var9 /* : Bool */;
5201 short int var10 /* : Bool */;
5202 short int var12 /* : Bool */;
5203 short int var13 /* : Bool */;
5204 short int var14 /* : Bool */;
5205 val* var20 /* : null */;
5206 short int var21 /* : Bool */;
5207 short int var22 /* : Bool */;
5208 short int var24 /* : Bool */;
5209 short int var25 /* : Bool */;
5210 short int var26 /* : Bool */;
5211 var_n_doc = p0;
5212 var_n_kwredef = p1;
5213 var_n_visibility = p2;
5214 var_n_kwtype = p3;
5215 var_n_id = p4;
5216 var_n_type = p5;
5217 var_n_annotations = p6;
5218 self->attrs[COLOR_parser_nodes__APropdef___n_doc].val = var_n_doc; /* _n_doc on <self:ATypePropdef> */
5219 var = NULL;
5220 if (var_n_doc == NULL) {
5221 var1 = 0; /* is null */
5222 } else {
5223 var1 = 1; /* arg is null and recv is not */
5224 }
5225 if (0) {
5226 { /* Inline kernel#Object#!= (var_n_doc,var) on <var_n_doc:nullable ADoc> */
5227 var_other = var;
5228 {
5229 var5 = ((short int (*)(val*, val*))(var_n_doc->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_doc, var_other) /* == on <var_n_doc:nullable ADoc(ADoc)>*/;
5230 var4 = var5;
5231 }
5232 var6 = !var4;
5233 var2 = var6;
5234 goto RET_LABEL3;
5235 RET_LABEL3:(void)0;
5236 }
5237 var1 = var2;
5238 }
5239 if (var1){
5240 {
5241 { /* Inline parser_nodes#ANode#parent= (var_n_doc,self) on <var_n_doc:nullable ADoc(ADoc)> */
5242 var_n_doc->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_doc:nullable ADoc(ADoc)> */
5243 RET_LABEL7:(void)0;
5244 }
5245 }
5246 } else {
5247 }
5248 self->attrs[COLOR_parser_nodes__APropdef___n_kwredef].val = var_n_kwredef; /* _n_kwredef on <self:ATypePropdef> */
5249 var8 = NULL;
5250 if (var_n_kwredef == NULL) {
5251 var9 = 0; /* is null */
5252 } else {
5253 var9 = 1; /* arg is null and recv is not */
5254 }
5255 if (0) {
5256 { /* Inline kernel#Object#!= (var_n_kwredef,var8) on <var_n_kwredef:nullable TKwredef> */
5257 var_other = var8;
5258 {
5259 var13 = ((short int (*)(val*, val*))(var_n_kwredef->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_kwredef, var_other) /* == on <var_n_kwredef:nullable TKwredef(TKwredef)>*/;
5260 var12 = var13;
5261 }
5262 var14 = !var12;
5263 var10 = var14;
5264 goto RET_LABEL11;
5265 RET_LABEL11:(void)0;
5266 }
5267 var9 = var10;
5268 }
5269 if (var9){
5270 {
5271 { /* Inline parser_nodes#ANode#parent= (var_n_kwredef,self) on <var_n_kwredef:nullable TKwredef(TKwredef)> */
5272 var_n_kwredef->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwredef:nullable TKwredef(TKwredef)> */
5273 RET_LABEL15:(void)0;
5274 }
5275 }
5276 } else {
5277 }
5278 if (unlikely(var_n_visibility == NULL)) {
5279 PRINT_ERROR("Runtime error: %s", "Cast failed");
5280 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1960);
5281 show_backtrace(1);
5282 }
5283 self->attrs[COLOR_parser_nodes__APropdef___n_visibility].val = var_n_visibility; /* _n_visibility on <self:ATypePropdef> */
5284 if (var_n_visibility == NULL) {
5285 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5286 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1961);
5287 show_backtrace(1);
5288 } else {
5289 { /* Inline parser_nodes#ANode#parent= (var_n_visibility,self) on <var_n_visibility:nullable AVisibility> */
5290 if (unlikely(var_n_visibility == NULL)) {
5291 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5292 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
5293 show_backtrace(1);
5294 }
5295 var_n_visibility->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_visibility:nullable AVisibility> */
5296 RET_LABEL16:(void)0;
5297 }
5298 }
5299 if (unlikely(var_n_kwtype == NULL)) {
5300 PRINT_ERROR("Runtime error: %s", "Cast failed");
5301 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1962);
5302 show_backtrace(1);
5303 }
5304 self->attrs[COLOR_parser_nodes__ATypePropdef___n_kwtype].val = var_n_kwtype; /* _n_kwtype on <self:ATypePropdef> */
5305 if (var_n_kwtype == NULL) {
5306 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5307 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1963);
5308 show_backtrace(1);
5309 } else {
5310 { /* Inline parser_nodes#ANode#parent= (var_n_kwtype,self) on <var_n_kwtype:nullable TKwtype> */
5311 if (unlikely(var_n_kwtype == NULL)) {
5312 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5313 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
5314 show_backtrace(1);
5315 }
5316 var_n_kwtype->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwtype:nullable TKwtype> */
5317 RET_LABEL17:(void)0;
5318 }
5319 }
5320 if (unlikely(var_n_id == NULL)) {
5321 PRINT_ERROR("Runtime error: %s", "Cast failed");
5322 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1964);
5323 show_backtrace(1);
5324 }
5325 self->attrs[COLOR_parser_nodes__ATypePropdef___n_id].val = var_n_id; /* _n_id on <self:ATypePropdef> */
5326 if (var_n_id == NULL) {
5327 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5328 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1965);
5329 show_backtrace(1);
5330 } else {
5331 { /* Inline parser_nodes#ANode#parent= (var_n_id,self) on <var_n_id:nullable TClassid> */
5332 if (unlikely(var_n_id == NULL)) {
5333 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5334 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
5335 show_backtrace(1);
5336 }
5337 var_n_id->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_id:nullable TClassid> */
5338 RET_LABEL18:(void)0;
5339 }
5340 }
5341 if (unlikely(var_n_type == NULL)) {
5342 PRINT_ERROR("Runtime error: %s", "Cast failed");
5343 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1966);
5344 show_backtrace(1);
5345 }
5346 self->attrs[COLOR_parser_nodes__ATypePropdef___n_type].val = var_n_type; /* _n_type on <self:ATypePropdef> */
5347 if (var_n_type == NULL) {
5348 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5349 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1967);
5350 show_backtrace(1);
5351 } else {
5352 { /* Inline parser_nodes#ANode#parent= (var_n_type,self) on <var_n_type:nullable AType> */
5353 if (unlikely(var_n_type == NULL)) {
5354 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5355 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
5356 show_backtrace(1);
5357 }
5358 var_n_type->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_type:nullable AType> */
5359 RET_LABEL19:(void)0;
5360 }
5361 }
5362 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:ATypePropdef> */
5363 var20 = NULL;
5364 if (var_n_annotations == NULL) {
5365 var21 = 0; /* is null */
5366 } else {
5367 var21 = 1; /* arg is null and recv is not */
5368 }
5369 if (0) {
5370 { /* Inline kernel#Object#!= (var_n_annotations,var20) on <var_n_annotations:nullable AAnnotations> */
5371 var_other = var20;
5372 {
5373 var25 = ((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)>*/;
5374 var24 = var25;
5375 }
5376 var26 = !var24;
5377 var22 = var26;
5378 goto RET_LABEL23;
5379 RET_LABEL23:(void)0;
5380 }
5381 var21 = var22;
5382 }
5383 if (var21){
5384 {
5385 { /* Inline parser_nodes#ANode#parent= (var_n_annotations,self) on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
5386 var_n_annotations->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
5387 RET_LABEL27:(void)0;
5388 }
5389 }
5390 } else {
5391 }
5392 RET_LABEL:;
5393 }
5394 /* method parser_prod#ATypePropdef#init_atypepropdef for (self: Object, nullable ADoc, nullable TKwredef, nullable AVisibility, nullable TKwtype, nullable TClassid, nullable AType, nullable AAnnotations) */
5395 void VIRTUAL_parser_prod__ATypePropdef__init_atypepropdef(val* self, val* p0, val* p1, val* p2, val* p3, val* p4, val* p5, val* p6) {
5396 parser_prod__ATypePropdef__init_atypepropdef(self, p0, p1, p2, p3, p4, p5, p6); /* Direct call parser_prod#ATypePropdef#init_atypepropdef on <self:Object(ATypePropdef)>*/
5397 RET_LABEL:;
5398 }
5399 /* method parser_prod#ATypePropdef#replace_child for (self: ATypePropdef, ANode, nullable ANode) */
5400 void parser_prod__ATypePropdef__replace_child(val* self, val* p0, val* p1) {
5401 val* var_old_child /* var old_child: ANode */;
5402 val* var_new_child /* var new_child: nullable ANode */;
5403 val* var /* : nullable ADoc */;
5404 short int var1 /* : Bool */;
5405 short int var2 /* : Bool */;
5406 val* var_other /* var other: nullable Object */;
5407 short int var4 /* : Bool */;
5408 short int var6 /* : Bool */;
5409 short int var7 /* : Bool */;
5410 int cltype;
5411 int idtype;
5412 const char* var_class_name;
5413 val* var8 /* : nullable TKwredef */;
5414 short int var9 /* : Bool */;
5415 short int var10 /* : Bool */;
5416 short int var12 /* : Bool */;
5417 short int var14 /* : Bool */;
5418 short int var15 /* : Bool */;
5419 int cltype16;
5420 int idtype17;
5421 const char* var_class_name18;
5422 val* var19 /* : nullable AVisibility */;
5423 short int var20 /* : Bool */;
5424 short int var21 /* : Bool */;
5425 short int var23 /* : Bool */;
5426 short int var25 /* : Bool */;
5427 short int var26 /* : Bool */;
5428 int cltype27;
5429 int idtype28;
5430 const char* var_class_name29;
5431 val* var30 /* : TKwtype */;
5432 short int var31 /* : Bool */;
5433 short int var32 /* : Bool */;
5434 short int var34 /* : Bool */;
5435 short int var36 /* : Bool */;
5436 short int var37 /* : Bool */;
5437 int cltype38;
5438 int idtype39;
5439 const char* var_class_name40;
5440 val* var41 /* : TClassid */;
5441 short int var42 /* : Bool */;
5442 short int var43 /* : Bool */;
5443 short int var45 /* : Bool */;
5444 short int var47 /* : Bool */;
5445 short int var48 /* : Bool */;
5446 int cltype49;
5447 int idtype50;
5448 const char* var_class_name51;
5449 val* var52 /* : AType */;
5450 short int var53 /* : Bool */;
5451 short int var54 /* : Bool */;
5452 short int var56 /* : Bool */;
5453 short int var58 /* : Bool */;
5454 short int var59 /* : Bool */;
5455 int cltype60;
5456 int idtype61;
5457 const char* var_class_name62;
5458 val* var63 /* : nullable AAnnotations */;
5459 short int var64 /* : Bool */;
5460 short int var65 /* : Bool */;
5461 short int var67 /* : Bool */;
5462 short int var69 /* : Bool */;
5463 short int var70 /* : Bool */;
5464 int cltype71;
5465 int idtype72;
5466 const char* var_class_name73;
5467 var_old_child = p0;
5468 var_new_child = p1;
5469 var = self->attrs[COLOR_parser_nodes__APropdef___n_doc].val; /* _n_doc on <self:ATypePropdef> */
5470 if (var == NULL) {
5471 var1 = 0; /* <var_old_child:ANode> cannot be null */
5472 } else {
5473 { /* Inline kernel#Object#== (var,var_old_child) on <var:nullable ADoc> */
5474 var_other = var_old_child;
5475 {
5476 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:nullable ADoc(ADoc)> */
5477 var6 = var == var_other;
5478 var4 = var6;
5479 goto RET_LABEL5;
5480 RET_LABEL5:(void)0;
5481 }
5482 }
5483 var2 = var4;
5484 goto RET_LABEL3;
5485 RET_LABEL3:(void)0;
5486 }
5487 var1 = var2;
5488 }
5489 if (var1){
5490 /* <var_new_child:nullable ANode> isa nullable ADoc */
5491 cltype = type_nullable_parser_nodes__ADoc.color;
5492 idtype = type_nullable_parser_nodes__ADoc.id;
5493 if(var_new_child == NULL) {
5494 var7 = 1;
5495 } else {
5496 if(cltype >= var_new_child->type->table_size) {
5497 var7 = 0;
5498 } else {
5499 var7 = var_new_child->type->type_table[cltype] == idtype;
5500 }
5501 }
5502 if (unlikely(!var7)) {
5503 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
5504 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ADoc", var_class_name);
5505 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1975);
5506 show_backtrace(1);
5507 }
5508 {
5509 parser_prod__ATypePropdef__n_doc_61d(self, var_new_child); /* Direct call parser_prod#ATypePropdef#n_doc= on <self:ATypePropdef>*/
5510 }
5511 goto RET_LABEL;
5512 } else {
5513 }
5514 var8 = self->attrs[COLOR_parser_nodes__APropdef___n_kwredef].val; /* _n_kwredef on <self:ATypePropdef> */
5515 if (var8 == NULL) {
5516 var9 = 0; /* <var_old_child:ANode> cannot be null */
5517 } else {
5518 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:nullable TKwredef> */
5519 var_other = var_old_child;
5520 {
5521 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:nullable TKwredef(TKwredef)> */
5522 var14 = var8 == var_other;
5523 var12 = var14;
5524 goto RET_LABEL13;
5525 RET_LABEL13:(void)0;
5526 }
5527 }
5528 var10 = var12;
5529 goto RET_LABEL11;
5530 RET_LABEL11:(void)0;
5531 }
5532 var9 = var10;
5533 }
5534 if (var9){
5535 /* <var_new_child:nullable ANode> isa nullable TKwredef */
5536 cltype16 = type_nullable_parser_nodes__TKwredef.color;
5537 idtype17 = type_nullable_parser_nodes__TKwredef.id;
5538 if(var_new_child == NULL) {
5539 var15 = 1;
5540 } else {
5541 if(cltype16 >= var_new_child->type->table_size) {
5542 var15 = 0;
5543 } else {
5544 var15 = var_new_child->type->type_table[cltype16] == idtype17;
5545 }
5546 }
5547 if (unlikely(!var15)) {
5548 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
5549 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TKwredef", var_class_name18);
5550 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1979);
5551 show_backtrace(1);
5552 }
5553 {
5554 parser_prod__ATypePropdef__n_kwredef_61d(self, var_new_child); /* Direct call parser_prod#ATypePropdef#n_kwredef= on <self:ATypePropdef>*/
5555 }
5556 goto RET_LABEL;
5557 } else {
5558 }
5559 var19 = self->attrs[COLOR_parser_nodes__APropdef___n_visibility].val; /* _n_visibility on <self:ATypePropdef> */
5560 if (var19 == NULL) {
5561 var20 = 0; /* <var_old_child:ANode> cannot be null */
5562 } else {
5563 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:nullable AVisibility> */
5564 var_other = var_old_child;
5565 {
5566 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:nullable AVisibility(AVisibility)> */
5567 var25 = var19 == var_other;
5568 var23 = var25;
5569 goto RET_LABEL24;
5570 RET_LABEL24:(void)0;
5571 }
5572 }
5573 var21 = var23;
5574 goto RET_LABEL22;
5575 RET_LABEL22:(void)0;
5576 }
5577 var20 = var21;
5578 }
5579 if (var20){
5580 /* <var_new_child:nullable ANode> isa AVisibility */
5581 cltype27 = type_parser_nodes__AVisibility.color;
5582 idtype28 = type_parser_nodes__AVisibility.id;
5583 if(var_new_child == NULL) {
5584 var26 = 0;
5585 } else {
5586 if(cltype27 >= var_new_child->type->table_size) {
5587 var26 = 0;
5588 } else {
5589 var26 = var_new_child->type->type_table[cltype27] == idtype28;
5590 }
5591 }
5592 if (unlikely(!var26)) {
5593 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
5594 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AVisibility", var_class_name29);
5595 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1983);
5596 show_backtrace(1);
5597 }
5598 {
5599 parser_prod__ATypePropdef__n_visibility_61d(self, var_new_child); /* Direct call parser_prod#ATypePropdef#n_visibility= on <self:ATypePropdef>*/
5600 }
5601 goto RET_LABEL;
5602 } else {
5603 }
5604 var30 = self->attrs[COLOR_parser_nodes__ATypePropdef___n_kwtype].val; /* _n_kwtype on <self:ATypePropdef> */
5605 if (unlikely(var30 == NULL)) {
5606 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwtype");
5607 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1986);
5608 show_backtrace(1);
5609 }
5610 {
5611 { /* Inline kernel#Object#== (var30,var_old_child) on <var30:TKwtype> */
5612 var_other = var_old_child;
5613 {
5614 { /* Inline kernel#Object#is_same_instance (var30,var_other) on <var30:TKwtype> */
5615 var36 = var30 == var_other;
5616 var34 = var36;
5617 goto RET_LABEL35;
5618 RET_LABEL35:(void)0;
5619 }
5620 }
5621 var32 = var34;
5622 goto RET_LABEL33;
5623 RET_LABEL33:(void)0;
5624 }
5625 var31 = var32;
5626 }
5627 if (var31){
5628 /* <var_new_child:nullable ANode> isa TKwtype */
5629 cltype38 = type_parser_nodes__TKwtype.color;
5630 idtype39 = type_parser_nodes__TKwtype.id;
5631 if(var_new_child == NULL) {
5632 var37 = 0;
5633 } else {
5634 if(cltype38 >= var_new_child->type->table_size) {
5635 var37 = 0;
5636 } else {
5637 var37 = var_new_child->type->type_table[cltype38] == idtype39;
5638 }
5639 }
5640 if (unlikely(!var37)) {
5641 var_class_name40 = var_new_child == NULL ? "null" : var_new_child->type->name;
5642 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwtype", var_class_name40);
5643 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1987);
5644 show_backtrace(1);
5645 }
5646 {
5647 parser_prod__ATypePropdef__n_kwtype_61d(self, var_new_child); /* Direct call parser_prod#ATypePropdef#n_kwtype= on <self:ATypePropdef>*/
5648 }
5649 goto RET_LABEL;
5650 } else {
5651 }
5652 var41 = self->attrs[COLOR_parser_nodes__ATypePropdef___n_id].val; /* _n_id on <self:ATypePropdef> */
5653 if (unlikely(var41 == NULL)) {
5654 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
5655 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1990);
5656 show_backtrace(1);
5657 }
5658 {
5659 { /* Inline kernel#Object#== (var41,var_old_child) on <var41:TClassid> */
5660 var_other = var_old_child;
5661 {
5662 { /* Inline kernel#Object#is_same_instance (var41,var_other) on <var41:TClassid> */
5663 var47 = var41 == var_other;
5664 var45 = var47;
5665 goto RET_LABEL46;
5666 RET_LABEL46:(void)0;
5667 }
5668 }
5669 var43 = var45;
5670 goto RET_LABEL44;
5671 RET_LABEL44:(void)0;
5672 }
5673 var42 = var43;
5674 }
5675 if (var42){
5676 /* <var_new_child:nullable ANode> isa TClassid */
5677 cltype49 = type_parser_nodes__TClassid.color;
5678 idtype50 = type_parser_nodes__TClassid.id;
5679 if(var_new_child == NULL) {
5680 var48 = 0;
5681 } else {
5682 if(cltype49 >= var_new_child->type->table_size) {
5683 var48 = 0;
5684 } else {
5685 var48 = var_new_child->type->type_table[cltype49] == idtype50;
5686 }
5687 }
5688 if (unlikely(!var48)) {
5689 var_class_name51 = var_new_child == NULL ? "null" : var_new_child->type->name;
5690 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TClassid", var_class_name51);
5691 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1991);
5692 show_backtrace(1);
5693 }
5694 {
5695 parser_prod__ATypePropdef__n_id_61d(self, var_new_child); /* Direct call parser_prod#ATypePropdef#n_id= on <self:ATypePropdef>*/
5696 }
5697 goto RET_LABEL;
5698 } else {
5699 }
5700 var52 = self->attrs[COLOR_parser_nodes__ATypePropdef___n_type].val; /* _n_type on <self:ATypePropdef> */
5701 if (unlikely(var52 == NULL)) {
5702 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
5703 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1994);
5704 show_backtrace(1);
5705 }
5706 {
5707 { /* Inline kernel#Object#== (var52,var_old_child) on <var52:AType> */
5708 var_other = var_old_child;
5709 {
5710 { /* Inline kernel#Object#is_same_instance (var52,var_other) on <var52:AType> */
5711 var58 = var52 == var_other;
5712 var56 = var58;
5713 goto RET_LABEL57;
5714 RET_LABEL57:(void)0;
5715 }
5716 }
5717 var54 = var56;
5718 goto RET_LABEL55;
5719 RET_LABEL55:(void)0;
5720 }
5721 var53 = var54;
5722 }
5723 if (var53){
5724 /* <var_new_child:nullable ANode> isa AType */
5725 cltype60 = type_parser_nodes__AType.color;
5726 idtype61 = type_parser_nodes__AType.id;
5727 if(var_new_child == NULL) {
5728 var59 = 0;
5729 } else {
5730 if(cltype60 >= var_new_child->type->table_size) {
5731 var59 = 0;
5732 } else {
5733 var59 = var_new_child->type->type_table[cltype60] == idtype61;
5734 }
5735 }
5736 if (unlikely(!var59)) {
5737 var_class_name62 = var_new_child == NULL ? "null" : var_new_child->type->name;
5738 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AType", var_class_name62);
5739 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1995);
5740 show_backtrace(1);
5741 }
5742 {
5743 parser_prod__ATypePropdef__n_type_61d(self, var_new_child); /* Direct call parser_prod#ATypePropdef#n_type= on <self:ATypePropdef>*/
5744 }
5745 goto RET_LABEL;
5746 } else {
5747 }
5748 var63 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:ATypePropdef> */
5749 if (var63 == NULL) {
5750 var64 = 0; /* <var_old_child:ANode> cannot be null */
5751 } else {
5752 { /* Inline kernel#Object#== (var63,var_old_child) on <var63:nullable AAnnotations> */
5753 var_other = var_old_child;
5754 {
5755 { /* Inline kernel#Object#is_same_instance (var63,var_other) on <var63:nullable AAnnotations(AAnnotations)> */
5756 var69 = var63 == var_other;
5757 var67 = var69;
5758 goto RET_LABEL68;
5759 RET_LABEL68:(void)0;
5760 }
5761 }
5762 var65 = var67;
5763 goto RET_LABEL66;
5764 RET_LABEL66:(void)0;
5765 }
5766 var64 = var65;
5767 }
5768 if (var64){
5769 /* <var_new_child:nullable ANode> isa nullable AAnnotations */
5770 cltype71 = type_nullable_parser_nodes__AAnnotations.color;
5771 idtype72 = type_nullable_parser_nodes__AAnnotations.id;
5772 if(var_new_child == NULL) {
5773 var70 = 1;
5774 } else {
5775 if(cltype71 >= var_new_child->type->table_size) {
5776 var70 = 0;
5777 } else {
5778 var70 = var_new_child->type->type_table[cltype71] == idtype72;
5779 }
5780 }
5781 if (unlikely(!var70)) {
5782 var_class_name73 = var_new_child == NULL ? "null" : var_new_child->type->name;
5783 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AAnnotations", var_class_name73);
5784 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 1999);
5785 show_backtrace(1);
5786 }
5787 {
5788 parser_prod__ATypePropdef__n_annotations_61d(self, var_new_child); /* Direct call parser_prod#ATypePropdef#n_annotations= on <self:ATypePropdef>*/
5789 }
5790 goto RET_LABEL;
5791 } else {
5792 }
5793 RET_LABEL:;
5794 }
5795 /* method parser_prod#ATypePropdef#replace_child for (self: Object, ANode, nullable ANode) */
5796 void VIRTUAL_parser_prod__ATypePropdef__replace_child(val* self, val* p0, val* p1) {
5797 parser_prod__ATypePropdef__replace_child(self, p0, p1); /* Direct call parser_prod#ATypePropdef#replace_child on <self:Object(ATypePropdef)>*/
5798 RET_LABEL:;
5799 }
5800 /* method parser_prod#ATypePropdef#n_doc= for (self: ATypePropdef, nullable ADoc) */
5801 void parser_prod__ATypePropdef__n_doc_61d(val* self, val* p0) {
5802 val* var_node /* var node: nullable ADoc */;
5803 val* var /* : null */;
5804 short int var1 /* : Bool */;
5805 short int var2 /* : Bool */;
5806 val* var_other /* var other: nullable Object */;
5807 short int var4 /* : Bool */;
5808 short int var5 /* : Bool */;
5809 short int var6 /* : Bool */;
5810 var_node = p0;
5811 self->attrs[COLOR_parser_nodes__APropdef___n_doc].val = var_node; /* _n_doc on <self:ATypePropdef> */
5812 var = NULL;
5813 if (var_node == NULL) {
5814 var1 = 0; /* is null */
5815 } else {
5816 var1 = 1; /* arg is null and recv is not */
5817 }
5818 if (0) {
5819 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable ADoc> */
5820 var_other = var;
5821 {
5822 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable ADoc(ADoc)>*/;
5823 var4 = var5;
5824 }
5825 var6 = !var4;
5826 var2 = var6;
5827 goto RET_LABEL3;
5828 RET_LABEL3:(void)0;
5829 }
5830 var1 = var2;
5831 }
5832 if (var1){
5833 {
5834 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable ADoc(ADoc)> */
5835 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable ADoc(ADoc)> */
5836 RET_LABEL7:(void)0;
5837 }
5838 }
5839 } else {
5840 }
5841 RET_LABEL:;
5842 }
5843 /* method parser_prod#ATypePropdef#n_doc= for (self: Object, nullable ADoc) */
5844 void VIRTUAL_parser_prod__ATypePropdef__n_doc_61d(val* self, val* p0) {
5845 parser_prod__ATypePropdef__n_doc_61d(self, p0); /* Direct call parser_prod#ATypePropdef#n_doc= on <self:Object(ATypePropdef)>*/
5846 RET_LABEL:;
5847 }
5848 /* method parser_prod#ATypePropdef#n_kwredef= for (self: ATypePropdef, nullable TKwredef) */
5849 void parser_prod__ATypePropdef__n_kwredef_61d(val* self, val* p0) {
5850 val* var_node /* var node: nullable TKwredef */;
5851 val* var /* : null */;
5852 short int var1 /* : Bool */;
5853 short int var2 /* : Bool */;
5854 val* var_other /* var other: nullable Object */;
5855 short int var4 /* : Bool */;
5856 short int var5 /* : Bool */;
5857 short int var6 /* : Bool */;
5858 var_node = p0;
5859 self->attrs[COLOR_parser_nodes__APropdef___n_kwredef].val = var_node; /* _n_kwredef on <self:ATypePropdef> */
5860 var = NULL;
5861 if (var_node == NULL) {
5862 var1 = 0; /* is null */
5863 } else {
5864 var1 = 1; /* arg is null and recv is not */
5865 }
5866 if (0) {
5867 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable TKwredef> */
5868 var_other = var;
5869 {
5870 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable TKwredef(TKwredef)>*/;
5871 var4 = var5;
5872 }
5873 var6 = !var4;
5874 var2 = var6;
5875 goto RET_LABEL3;
5876 RET_LABEL3:(void)0;
5877 }
5878 var1 = var2;
5879 }
5880 if (var1){
5881 {
5882 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TKwredef(TKwredef)> */
5883 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TKwredef(TKwredef)> */
5884 RET_LABEL7:(void)0;
5885 }
5886 }
5887 } else {
5888 }
5889 RET_LABEL:;
5890 }
5891 /* method parser_prod#ATypePropdef#n_kwredef= for (self: Object, nullable TKwredef) */
5892 void VIRTUAL_parser_prod__ATypePropdef__n_kwredef_61d(val* self, val* p0) {
5893 parser_prod__ATypePropdef__n_kwredef_61d(self, p0); /* Direct call parser_prod#ATypePropdef#n_kwredef= on <self:Object(ATypePropdef)>*/
5894 RET_LABEL:;
5895 }
5896 /* method parser_prod#ATypePropdef#n_visibility= for (self: ATypePropdef, nullable AVisibility) */
5897 void parser_prod__ATypePropdef__n_visibility_61d(val* self, val* p0) {
5898 val* var_node /* var node: nullable AVisibility */;
5899 var_node = p0;
5900 self->attrs[COLOR_parser_nodes__APropdef___n_visibility].val = var_node; /* _n_visibility on <self:ATypePropdef> */
5901 if (var_node == NULL) {
5902 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5903 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2017);
5904 show_backtrace(1);
5905 } else {
5906 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AVisibility> */
5907 if (unlikely(var_node == NULL)) {
5908 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5909 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
5910 show_backtrace(1);
5911 }
5912 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AVisibility> */
5913 RET_LABEL1:(void)0;
5914 }
5915 }
5916 RET_LABEL:;
5917 }
5918 /* method parser_prod#ATypePropdef#n_visibility= for (self: Object, nullable AVisibility) */
5919 void VIRTUAL_parser_prod__ATypePropdef__n_visibility_61d(val* self, val* p0) {
5920 parser_prod__ATypePropdef__n_visibility_61d(self, p0); /* Direct call parser_prod#ATypePropdef#n_visibility= on <self:Object(ATypePropdef)>*/
5921 RET_LABEL:;
5922 }
5923 /* method parser_prod#ATypePropdef#n_kwtype= for (self: ATypePropdef, TKwtype) */
5924 void parser_prod__ATypePropdef__n_kwtype_61d(val* self, val* p0) {
5925 val* var_node /* var node: TKwtype */;
5926 var_node = p0;
5927 self->attrs[COLOR_parser_nodes__ATypePropdef___n_kwtype].val = var_node; /* _n_kwtype on <self:ATypePropdef> */
5928 {
5929 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwtype> */
5930 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwtype> */
5931 RET_LABEL1:(void)0;
5932 }
5933 }
5934 RET_LABEL:;
5935 }
5936 /* method parser_prod#ATypePropdef#n_kwtype= for (self: Object, TKwtype) */
5937 void VIRTUAL_parser_prod__ATypePropdef__n_kwtype_61d(val* self, val* p0) {
5938 parser_prod__ATypePropdef__n_kwtype_61d(self, p0); /* Direct call parser_prod#ATypePropdef#n_kwtype= on <self:Object(ATypePropdef)>*/
5939 RET_LABEL:;
5940 }
5941 /* method parser_prod#ATypePropdef#n_id= for (self: ATypePropdef, TClassid) */
5942 void parser_prod__ATypePropdef__n_id_61d(val* self, val* p0) {
5943 val* var_node /* var node: TClassid */;
5944 var_node = p0;
5945 self->attrs[COLOR_parser_nodes__ATypePropdef___n_id].val = var_node; /* _n_id on <self:ATypePropdef> */
5946 {
5947 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TClassid> */
5948 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TClassid> */
5949 RET_LABEL1:(void)0;
5950 }
5951 }
5952 RET_LABEL:;
5953 }
5954 /* method parser_prod#ATypePropdef#n_id= for (self: Object, TClassid) */
5955 void VIRTUAL_parser_prod__ATypePropdef__n_id_61d(val* self, val* p0) {
5956 parser_prod__ATypePropdef__n_id_61d(self, p0); /* Direct call parser_prod#ATypePropdef#n_id= on <self:Object(ATypePropdef)>*/
5957 RET_LABEL:;
5958 }
5959 /* method parser_prod#ATypePropdef#n_type= for (self: ATypePropdef, AType) */
5960 void parser_prod__ATypePropdef__n_type_61d(val* self, val* p0) {
5961 val* var_node /* var node: AType */;
5962 var_node = p0;
5963 self->attrs[COLOR_parser_nodes__ATypePropdef___n_type].val = var_node; /* _n_type on <self:ATypePropdef> */
5964 {
5965 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AType> */
5966 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AType> */
5967 RET_LABEL1:(void)0;
5968 }
5969 }
5970 RET_LABEL:;
5971 }
5972 /* method parser_prod#ATypePropdef#n_type= for (self: Object, AType) */
5973 void VIRTUAL_parser_prod__ATypePropdef__n_type_61d(val* self, val* p0) {
5974 parser_prod__ATypePropdef__n_type_61d(self, p0); /* Direct call parser_prod#ATypePropdef#n_type= on <self:Object(ATypePropdef)>*/
5975 RET_LABEL:;
5976 }
5977 /* method parser_prod#ATypePropdef#n_annotations= for (self: ATypePropdef, nullable AAnnotations) */
5978 void parser_prod__ATypePropdef__n_annotations_61d(val* self, val* p0) {
5979 val* var_node /* var node: nullable AAnnotations */;
5980 val* var /* : null */;
5981 short int var1 /* : Bool */;
5982 short int var2 /* : Bool */;
5983 val* var_other /* var other: nullable Object */;
5984 short int var4 /* : Bool */;
5985 short int var5 /* : Bool */;
5986 short int var6 /* : Bool */;
5987 var_node = p0;
5988 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_node; /* _n_annotations on <self:ATypePropdef> */
5989 var = NULL;
5990 if (var_node == NULL) {
5991 var1 = 0; /* is null */
5992 } else {
5993 var1 = 1; /* arg is null and recv is not */
5994 }
5995 if (0) {
5996 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AAnnotations> */
5997 var_other = var;
5998 {
5999 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AAnnotations(AAnnotations)>*/;
6000 var4 = var5;
6001 }
6002 var6 = !var4;
6003 var2 = var6;
6004 goto RET_LABEL3;
6005 RET_LABEL3:(void)0;
6006 }
6007 var1 = var2;
6008 }
6009 if (var1){
6010 {
6011 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AAnnotations(AAnnotations)> */
6012 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AAnnotations(AAnnotations)> */
6013 RET_LABEL7:(void)0;
6014 }
6015 }
6016 } else {
6017 }
6018 RET_LABEL:;
6019 }
6020 /* method parser_prod#ATypePropdef#n_annotations= for (self: Object, nullable AAnnotations) */
6021 void VIRTUAL_parser_prod__ATypePropdef__n_annotations_61d(val* self, val* p0) {
6022 parser_prod__ATypePropdef__n_annotations_61d(self, p0); /* Direct call parser_prod#ATypePropdef#n_annotations= on <self:Object(ATypePropdef)>*/
6023 RET_LABEL:;
6024 }
6025 /* method parser_prod#ATypePropdef#visit_all for (self: ATypePropdef, Visitor) */
6026 void parser_prod__ATypePropdef__visit_all(val* self, val* p0) {
6027 val* var_v /* var v: Visitor */;
6028 val* var /* : nullable ADoc */;
6029 val* var1 /* : nullable TKwredef */;
6030 val* var2 /* : nullable AVisibility */;
6031 val* var3 /* : TKwtype */;
6032 val* var4 /* : TClassid */;
6033 val* var5 /* : AType */;
6034 val* var6 /* : nullable AAnnotations */;
6035 var_v = p0;
6036 var = self->attrs[COLOR_parser_nodes__APropdef___n_doc].val; /* _n_doc on <self:ATypePropdef> */
6037 {
6038 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6039 }
6040 var1 = self->attrs[COLOR_parser_nodes__APropdef___n_kwredef].val; /* _n_kwredef on <self:ATypePropdef> */
6041 {
6042 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6043 }
6044 var2 = self->attrs[COLOR_parser_nodes__APropdef___n_visibility].val; /* _n_visibility on <self:ATypePropdef> */
6045 {
6046 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6047 }
6048 var3 = self->attrs[COLOR_parser_nodes__ATypePropdef___n_kwtype].val; /* _n_kwtype on <self:ATypePropdef> */
6049 if (unlikely(var3 == NULL)) {
6050 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwtype");
6051 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2046);
6052 show_backtrace(1);
6053 }
6054 {
6055 parser_nodes__Visitor__enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6056 }
6057 var4 = self->attrs[COLOR_parser_nodes__ATypePropdef___n_id].val; /* _n_id on <self:ATypePropdef> */
6058 if (unlikely(var4 == NULL)) {
6059 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
6060 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2047);
6061 show_backtrace(1);
6062 }
6063 {
6064 parser_nodes__Visitor__enter_visit(var_v, var4); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6065 }
6066 var5 = self->attrs[COLOR_parser_nodes__ATypePropdef___n_type].val; /* _n_type on <self:ATypePropdef> */
6067 if (unlikely(var5 == NULL)) {
6068 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
6069 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2048);
6070 show_backtrace(1);
6071 }
6072 {
6073 parser_nodes__Visitor__enter_visit(var_v, var5); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6074 }
6075 var6 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:ATypePropdef> */
6076 {
6077 parser_nodes__Visitor__enter_visit(var_v, var6); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6078 }
6079 RET_LABEL:;
6080 }
6081 /* method parser_prod#ATypePropdef#visit_all for (self: Object, Visitor) */
6082 void VIRTUAL_parser_prod__ATypePropdef__visit_all(val* self, val* p0) {
6083 parser_prod__ATypePropdef__visit_all(self, p0); /* Direct call parser_prod#ATypePropdef#visit_all on <self:Object(ATypePropdef)>*/
6084 RET_LABEL:;
6085 }
6086 /* method parser_prod#AReadAble#init_areadable for (self: AReadAble, nullable TKwredef, nullable TKwreadable) */
6087 void parser_prod__AReadAble__init_areadable(val* self, val* p0, val* p1) {
6088 val* var_n_kwredef /* var n_kwredef: nullable TKwredef */;
6089 val* var_n_kwreadable /* var n_kwreadable: nullable TKwreadable */;
6090 val* var /* : null */;
6091 short int var1 /* : Bool */;
6092 short int var2 /* : Bool */;
6093 val* var_other /* var other: nullable Object */;
6094 short int var4 /* : Bool */;
6095 short int var5 /* : Bool */;
6096 short int var6 /* : Bool */;
6097 var_n_kwredef = p0;
6098 var_n_kwreadable = p1;
6099 self->attrs[COLOR_parser_nodes__AAble___n_kwredef].val = var_n_kwredef; /* _n_kwredef on <self:AReadAble> */
6100 var = NULL;
6101 if (var_n_kwredef == NULL) {
6102 var1 = 0; /* is null */
6103 } else {
6104 var1 = 1; /* arg is null and recv is not */
6105 }
6106 if (0) {
6107 { /* Inline kernel#Object#!= (var_n_kwredef,var) on <var_n_kwredef:nullable TKwredef> */
6108 var_other = var;
6109 {
6110 var5 = ((short int (*)(val*, val*))(var_n_kwredef->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_kwredef, var_other) /* == on <var_n_kwredef:nullable TKwredef(TKwredef)>*/;
6111 var4 = var5;
6112 }
6113 var6 = !var4;
6114 var2 = var6;
6115 goto RET_LABEL3;
6116 RET_LABEL3:(void)0;
6117 }
6118 var1 = var2;
6119 }
6120 if (var1){
6121 {
6122 { /* Inline parser_nodes#ANode#parent= (var_n_kwredef,self) on <var_n_kwredef:nullable TKwredef(TKwredef)> */
6123 var_n_kwredef->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwredef:nullable TKwredef(TKwredef)> */
6124 RET_LABEL7:(void)0;
6125 }
6126 }
6127 } else {
6128 }
6129 if (unlikely(var_n_kwreadable == NULL)) {
6130 PRINT_ERROR("Runtime error: %s", "Cast failed");
6131 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2060);
6132 show_backtrace(1);
6133 }
6134 self->attrs[COLOR_parser_nodes__AReadAble___n_kwreadable].val = var_n_kwreadable; /* _n_kwreadable on <self:AReadAble> */
6135 if (var_n_kwreadable == NULL) {
6136 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6137 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2061);
6138 show_backtrace(1);
6139 } else {
6140 { /* Inline parser_nodes#ANode#parent= (var_n_kwreadable,self) on <var_n_kwreadable:nullable TKwreadable> */
6141 if (unlikely(var_n_kwreadable == NULL)) {
6142 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6143 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
6144 show_backtrace(1);
6145 }
6146 var_n_kwreadable->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwreadable:nullable TKwreadable> */
6147 RET_LABEL8:(void)0;
6148 }
6149 }
6150 RET_LABEL:;
6151 }
6152 /* method parser_prod#AReadAble#init_areadable for (self: Object, nullable TKwredef, nullable TKwreadable) */
6153 void VIRTUAL_parser_prod__AReadAble__init_areadable(val* self, val* p0, val* p1) {
6154 parser_prod__AReadAble__init_areadable(self, p0, p1); /* Direct call parser_prod#AReadAble#init_areadable on <self:Object(AReadAble)>*/
6155 RET_LABEL:;
6156 }
6157 /* method parser_prod#AReadAble#replace_child for (self: AReadAble, ANode, nullable ANode) */
6158 void parser_prod__AReadAble__replace_child(val* self, val* p0, val* p1) {
6159 val* var_old_child /* var old_child: ANode */;
6160 val* var_new_child /* var new_child: nullable ANode */;
6161 val* var /* : nullable TKwredef */;
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 var6 /* : Bool */;
6167 short int var7 /* : Bool */;
6168 int cltype;
6169 int idtype;
6170 const char* var_class_name;
6171 val* var8 /* : TKwreadable */;
6172 short int var9 /* : Bool */;
6173 short int var10 /* : Bool */;
6174 short int var12 /* : Bool */;
6175 short int var14 /* : Bool */;
6176 short int var15 /* : Bool */;
6177 int cltype16;
6178 int idtype17;
6179 const char* var_class_name18;
6180 var_old_child = p0;
6181 var_new_child = p1;
6182 var = self->attrs[COLOR_parser_nodes__AAble___n_kwredef].val; /* _n_kwredef on <self:AReadAble> */
6183 if (var == NULL) {
6184 var1 = 0; /* <var_old_child:ANode> cannot be null */
6185 } else {
6186 { /* Inline kernel#Object#== (var,var_old_child) on <var:nullable TKwredef> */
6187 var_other = var_old_child;
6188 {
6189 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:nullable TKwredef(TKwredef)> */
6190 var6 = var == var_other;
6191 var4 = var6;
6192 goto RET_LABEL5;
6193 RET_LABEL5:(void)0;
6194 }
6195 }
6196 var2 = var4;
6197 goto RET_LABEL3;
6198 RET_LABEL3:(void)0;
6199 }
6200 var1 = var2;
6201 }
6202 if (var1){
6203 /* <var_new_child:nullable ANode> isa nullable TKwredef */
6204 cltype = type_nullable_parser_nodes__TKwredef.color;
6205 idtype = type_nullable_parser_nodes__TKwredef.id;
6206 if(var_new_child == NULL) {
6207 var7 = 1;
6208 } else {
6209 if(cltype >= var_new_child->type->table_size) {
6210 var7 = 0;
6211 } else {
6212 var7 = var_new_child->type->type_table[cltype] == idtype;
6213 }
6214 }
6215 if (unlikely(!var7)) {
6216 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
6217 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TKwredef", var_class_name);
6218 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2067);
6219 show_backtrace(1);
6220 }
6221 {
6222 parser_prod__AReadAble__n_kwredef_61d(self, var_new_child); /* Direct call parser_prod#AReadAble#n_kwredef= on <self:AReadAble>*/
6223 }
6224 goto RET_LABEL;
6225 } else {
6226 }
6227 var8 = self->attrs[COLOR_parser_nodes__AReadAble___n_kwreadable].val; /* _n_kwreadable on <self:AReadAble> */
6228 if (unlikely(var8 == NULL)) {
6229 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwreadable");
6230 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2070);
6231 show_backtrace(1);
6232 }
6233 {
6234 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:TKwreadable> */
6235 var_other = var_old_child;
6236 {
6237 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:TKwreadable> */
6238 var14 = var8 == var_other;
6239 var12 = var14;
6240 goto RET_LABEL13;
6241 RET_LABEL13:(void)0;
6242 }
6243 }
6244 var10 = var12;
6245 goto RET_LABEL11;
6246 RET_LABEL11:(void)0;
6247 }
6248 var9 = var10;
6249 }
6250 if (var9){
6251 /* <var_new_child:nullable ANode> isa TKwreadable */
6252 cltype16 = type_parser_nodes__TKwreadable.color;
6253 idtype17 = type_parser_nodes__TKwreadable.id;
6254 if(var_new_child == NULL) {
6255 var15 = 0;
6256 } else {
6257 if(cltype16 >= var_new_child->type->table_size) {
6258 var15 = 0;
6259 } else {
6260 var15 = var_new_child->type->type_table[cltype16] == idtype17;
6261 }
6262 }
6263 if (unlikely(!var15)) {
6264 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
6265 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwreadable", var_class_name18);
6266 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2071);
6267 show_backtrace(1);
6268 }
6269 {
6270 parser_prod__AReadAble__n_kwreadable_61d(self, var_new_child); /* Direct call parser_prod#AReadAble#n_kwreadable= on <self:AReadAble>*/
6271 }
6272 goto RET_LABEL;
6273 } else {
6274 }
6275 RET_LABEL:;
6276 }
6277 /* method parser_prod#AReadAble#replace_child for (self: Object, ANode, nullable ANode) */
6278 void VIRTUAL_parser_prod__AReadAble__replace_child(val* self, val* p0, val* p1) {
6279 parser_prod__AReadAble__replace_child(self, p0, p1); /* Direct call parser_prod#AReadAble#replace_child on <self:Object(AReadAble)>*/
6280 RET_LABEL:;
6281 }
6282 /* method parser_prod#AReadAble#n_kwredef= for (self: AReadAble, nullable TKwredef) */
6283 void parser_prod__AReadAble__n_kwredef_61d(val* self, val* p0) {
6284 val* var_node /* var node: nullable TKwredef */;
6285 val* var /* : null */;
6286 short int var1 /* : Bool */;
6287 short int var2 /* : Bool */;
6288 val* var_other /* var other: nullable Object */;
6289 short int var4 /* : Bool */;
6290 short int var5 /* : Bool */;
6291 short int var6 /* : Bool */;
6292 var_node = p0;
6293 self->attrs[COLOR_parser_nodes__AAble___n_kwredef].val = var_node; /* _n_kwredef on <self:AReadAble> */
6294 var = NULL;
6295 if (var_node == NULL) {
6296 var1 = 0; /* is null */
6297 } else {
6298 var1 = 1; /* arg is null and recv is not */
6299 }
6300 if (0) {
6301 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable TKwredef> */
6302 var_other = var;
6303 {
6304 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable TKwredef(TKwredef)>*/;
6305 var4 = var5;
6306 }
6307 var6 = !var4;
6308 var2 = var6;
6309 goto RET_LABEL3;
6310 RET_LABEL3:(void)0;
6311 }
6312 var1 = var2;
6313 }
6314 if (var1){
6315 {
6316 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TKwredef(TKwredef)> */
6317 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TKwredef(TKwredef)> */
6318 RET_LABEL7:(void)0;
6319 }
6320 }
6321 } else {
6322 }
6323 RET_LABEL:;
6324 }
6325 /* method parser_prod#AReadAble#n_kwredef= for (self: Object, nullable TKwredef) */
6326 void VIRTUAL_parser_prod__AReadAble__n_kwredef_61d(val* self, val* p0) {
6327 parser_prod__AReadAble__n_kwredef_61d(self, p0); /* Direct call parser_prod#AReadAble#n_kwredef= on <self:Object(AReadAble)>*/
6328 RET_LABEL:;
6329 }
6330 /* method parser_prod#AReadAble#n_kwreadable= for (self: AReadAble, TKwreadable) */
6331 void parser_prod__AReadAble__n_kwreadable_61d(val* self, val* p0) {
6332 val* var_node /* var node: TKwreadable */;
6333 var_node = p0;
6334 self->attrs[COLOR_parser_nodes__AReadAble___n_kwreadable].val = var_node; /* _n_kwreadable on <self:AReadAble> */
6335 {
6336 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwreadable> */
6337 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwreadable> */
6338 RET_LABEL1:(void)0;
6339 }
6340 }
6341 RET_LABEL:;
6342 }
6343 /* method parser_prod#AReadAble#n_kwreadable= for (self: Object, TKwreadable) */
6344 void VIRTUAL_parser_prod__AReadAble__n_kwreadable_61d(val* self, val* p0) {
6345 parser_prod__AReadAble__n_kwreadable_61d(self, p0); /* Direct call parser_prod#AReadAble#n_kwreadable= on <self:Object(AReadAble)>*/
6346 RET_LABEL:;
6347 }
6348 /* method parser_prod#AReadAble#visit_all for (self: AReadAble, Visitor) */
6349 void parser_prod__AReadAble__visit_all(val* self, val* p0) {
6350 val* var_v /* var v: Visitor */;
6351 val* var /* : nullable TKwredef */;
6352 val* var1 /* : TKwreadable */;
6353 var_v = p0;
6354 var = self->attrs[COLOR_parser_nodes__AAble___n_kwredef].val; /* _n_kwredef on <self:AReadAble> */
6355 {
6356 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6357 }
6358 var1 = self->attrs[COLOR_parser_nodes__AReadAble___n_kwreadable].val; /* _n_kwreadable on <self:AReadAble> */
6359 if (unlikely(var1 == NULL)) {
6360 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwreadable");
6361 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2091);
6362 show_backtrace(1);
6363 }
6364 {
6365 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6366 }
6367 RET_LABEL:;
6368 }
6369 /* method parser_prod#AReadAble#visit_all for (self: Object, Visitor) */
6370 void VIRTUAL_parser_prod__AReadAble__visit_all(val* self, val* p0) {
6371 parser_prod__AReadAble__visit_all(self, p0); /* Direct call parser_prod#AReadAble#visit_all on <self:Object(AReadAble)>*/
6372 RET_LABEL:;
6373 }
6374 /* method parser_prod#AWriteAble#init_awriteable for (self: AWriteAble, nullable TKwredef, nullable AVisibility, nullable TKwwritable) */
6375 void parser_prod__AWriteAble__init_awriteable(val* self, val* p0, val* p1, val* p2) {
6376 val* var_n_kwredef /* var n_kwredef: nullable TKwredef */;
6377 val* var_n_visibility /* var n_visibility: nullable AVisibility */;
6378 val* var_n_kwwritable /* var n_kwwritable: nullable TKwwritable */;
6379 val* var /* : null */;
6380 short int var1 /* : Bool */;
6381 short int var2 /* : Bool */;
6382 val* var_other /* var other: nullable Object */;
6383 short int var4 /* : Bool */;
6384 short int var5 /* : Bool */;
6385 short int var6 /* : Bool */;
6386 val* var8 /* : null */;
6387 short int var9 /* : Bool */;
6388 short int var10 /* : Bool */;
6389 short int var12 /* : Bool */;
6390 short int var13 /* : Bool */;
6391 short int var14 /* : Bool */;
6392 var_n_kwredef = p0;
6393 var_n_visibility = p1;
6394 var_n_kwwritable = p2;
6395 self->attrs[COLOR_parser_nodes__AAble___n_kwredef].val = var_n_kwredef; /* _n_kwredef on <self:AWriteAble> */
6396 var = NULL;
6397 if (var_n_kwredef == NULL) {
6398 var1 = 0; /* is null */
6399 } else {
6400 var1 = 1; /* arg is null and recv is not */
6401 }
6402 if (0) {
6403 { /* Inline kernel#Object#!= (var_n_kwredef,var) on <var_n_kwredef:nullable TKwredef> */
6404 var_other = var;
6405 {
6406 var5 = ((short int (*)(val*, val*))(var_n_kwredef->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_kwredef, var_other) /* == on <var_n_kwredef:nullable TKwredef(TKwredef)>*/;
6407 var4 = var5;
6408 }
6409 var6 = !var4;
6410 var2 = var6;
6411 goto RET_LABEL3;
6412 RET_LABEL3:(void)0;
6413 }
6414 var1 = var2;
6415 }
6416 if (var1){
6417 {
6418 { /* Inline parser_nodes#ANode#parent= (var_n_kwredef,self) on <var_n_kwredef:nullable TKwredef(TKwredef)> */
6419 var_n_kwredef->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwredef:nullable TKwredef(TKwredef)> */
6420 RET_LABEL7:(void)0;
6421 }
6422 }
6423 } else {
6424 }
6425 self->attrs[COLOR_parser_nodes__AAble___n_visibility].val = var_n_visibility; /* _n_visibility on <self:AWriteAble> */
6426 var8 = NULL;
6427 if (var_n_visibility == NULL) {
6428 var9 = 0; /* is null */
6429 } else {
6430 var9 = 1; /* arg is null and recv is not */
6431 }
6432 if (0) {
6433 { /* Inline kernel#Object#!= (var_n_visibility,var8) on <var_n_visibility:nullable AVisibility> */
6434 var_other = var8;
6435 {
6436 var13 = ((short int (*)(val*, val*))(var_n_visibility->class->vft[COLOR_kernel__Object___61d_61d]))(var_n_visibility, var_other) /* == on <var_n_visibility:nullable AVisibility(AVisibility)>*/;
6437 var12 = var13;
6438 }
6439 var14 = !var12;
6440 var10 = var14;
6441 goto RET_LABEL11;
6442 RET_LABEL11:(void)0;
6443 }
6444 var9 = var10;
6445 }
6446 if (var9){
6447 {
6448 { /* Inline parser_nodes#ANode#parent= (var_n_visibility,self) on <var_n_visibility:nullable AVisibility(AVisibility)> */
6449 var_n_visibility->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_visibility:nullable AVisibility(AVisibility)> */
6450 RET_LABEL15:(void)0;
6451 }
6452 }
6453 } else {
6454 }
6455 if (unlikely(var_n_kwwritable == NULL)) {
6456 PRINT_ERROR("Runtime error: %s", "Cast failed");
6457 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2105);
6458 show_backtrace(1);
6459 }
6460 self->attrs[COLOR_parser_nodes__AWriteAble___n_kwwritable].val = var_n_kwwritable; /* _n_kwwritable on <self:AWriteAble> */
6461 if (var_n_kwwritable == NULL) {
6462 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6463 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2106);
6464 show_backtrace(1);
6465 } else {
6466 { /* Inline parser_nodes#ANode#parent= (var_n_kwwritable,self) on <var_n_kwwritable:nullable TKwwritable> */
6467 if (unlikely(var_n_kwwritable == NULL)) {
6468 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6469 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
6470 show_backtrace(1);
6471 }
6472 var_n_kwwritable->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwwritable:nullable TKwwritable> */
6473 RET_LABEL16:(void)0;
6474 }
6475 }
6476 RET_LABEL:;
6477 }
6478 /* method parser_prod#AWriteAble#init_awriteable for (self: Object, nullable TKwredef, nullable AVisibility, nullable TKwwritable) */
6479 void VIRTUAL_parser_prod__AWriteAble__init_awriteable(val* self, val* p0, val* p1, val* p2) {
6480 parser_prod__AWriteAble__init_awriteable(self, p0, p1, p2); /* Direct call parser_prod#AWriteAble#init_awriteable on <self:Object(AWriteAble)>*/
6481 RET_LABEL:;
6482 }
6483 /* method parser_prod#AWriteAble#replace_child for (self: AWriteAble, ANode, nullable ANode) */
6484 void parser_prod__AWriteAble__replace_child(val* self, val* p0, val* p1) {
6485 val* var_old_child /* var old_child: ANode */;
6486 val* var_new_child /* var new_child: nullable ANode */;
6487 val* var /* : nullable TKwredef */;
6488 short int var1 /* : Bool */;
6489 short int var2 /* : Bool */;
6490 val* var_other /* var other: nullable Object */;
6491 short int var4 /* : Bool */;
6492 short int var6 /* : Bool */;
6493 short int var7 /* : Bool */;
6494 int cltype;
6495 int idtype;
6496 const char* var_class_name;
6497 val* var8 /* : nullable AVisibility */;
6498 short int var9 /* : Bool */;
6499 short int var10 /* : Bool */;
6500 short int var12 /* : Bool */;
6501 short int var14 /* : Bool */;
6502 short int var15 /* : Bool */;
6503 int cltype16;
6504 int idtype17;
6505 const char* var_class_name18;
6506 val* var19 /* : TKwwritable */;
6507 short int var20 /* : Bool */;
6508 short int var21 /* : Bool */;
6509 short int var23 /* : Bool */;
6510 short int var25 /* : Bool */;
6511 short int var26 /* : Bool */;
6512 int cltype27;
6513 int idtype28;
6514 const char* var_class_name29;
6515 var_old_child = p0;
6516 var_new_child = p1;
6517 var = self->attrs[COLOR_parser_nodes__AAble___n_kwredef].val; /* _n_kwredef on <self:AWriteAble> */
6518 if (var == NULL) {
6519 var1 = 0; /* <var_old_child:ANode> cannot be null */
6520 } else {
6521 { /* Inline kernel#Object#== (var,var_old_child) on <var:nullable TKwredef> */
6522 var_other = var_old_child;
6523 {
6524 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:nullable TKwredef(TKwredef)> */
6525 var6 = var == var_other;
6526 var4 = var6;
6527 goto RET_LABEL5;
6528 RET_LABEL5:(void)0;
6529 }
6530 }
6531 var2 = var4;
6532 goto RET_LABEL3;
6533 RET_LABEL3:(void)0;
6534 }
6535 var1 = var2;
6536 }
6537 if (var1){
6538 /* <var_new_child:nullable ANode> isa nullable TKwredef */
6539 cltype = type_nullable_parser_nodes__TKwredef.color;
6540 idtype = type_nullable_parser_nodes__TKwredef.id;
6541 if(var_new_child == NULL) {
6542 var7 = 1;
6543 } else {
6544 if(cltype >= var_new_child->type->table_size) {
6545 var7 = 0;
6546 } else {
6547 var7 = var_new_child->type->type_table[cltype] == idtype;
6548 }
6549 }
6550 if (unlikely(!var7)) {
6551 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
6552 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TKwredef", var_class_name);
6553 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2112);
6554 show_backtrace(1);
6555 }
6556 {
6557 parser_prod__AWriteAble__n_kwredef_61d(self, var_new_child); /* Direct call parser_prod#AWriteAble#n_kwredef= on <self:AWriteAble>*/
6558 }
6559 goto RET_LABEL;
6560 } else {
6561 }
6562 var8 = self->attrs[COLOR_parser_nodes__AAble___n_visibility].val; /* _n_visibility on <self:AWriteAble> */
6563 if (var8 == NULL) {
6564 var9 = 0; /* <var_old_child:ANode> cannot be null */
6565 } else {
6566 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:nullable AVisibility> */
6567 var_other = var_old_child;
6568 {
6569 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:nullable AVisibility(AVisibility)> */
6570 var14 = var8 == var_other;
6571 var12 = var14;
6572 goto RET_LABEL13;
6573 RET_LABEL13:(void)0;
6574 }
6575 }
6576 var10 = var12;
6577 goto RET_LABEL11;
6578 RET_LABEL11:(void)0;
6579 }
6580 var9 = var10;
6581 }
6582 if (var9){
6583 /* <var_new_child:nullable ANode> isa nullable AVisibility */
6584 cltype16 = type_nullable_parser_nodes__AVisibility.color;
6585 idtype17 = type_nullable_parser_nodes__AVisibility.id;
6586 if(var_new_child == NULL) {
6587 var15 = 1;
6588 } else {
6589 if(cltype16 >= var_new_child->type->table_size) {
6590 var15 = 0;
6591 } else {
6592 var15 = var_new_child->type->type_table[cltype16] == idtype17;
6593 }
6594 }
6595 if (unlikely(!var15)) {
6596 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
6597 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AVisibility", var_class_name18);
6598 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2116);
6599 show_backtrace(1);
6600 }
6601 {
6602 parser_prod__AWriteAble__n_visibility_61d(self, var_new_child); /* Direct call parser_prod#AWriteAble#n_visibility= on <self:AWriteAble>*/
6603 }
6604 goto RET_LABEL;
6605 } else {
6606 }
6607 var19 = self->attrs[COLOR_parser_nodes__AWriteAble___n_kwwritable].val; /* _n_kwwritable on <self:AWriteAble> */
6608 if (unlikely(var19 == NULL)) {
6609 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwwritable");
6610 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2119);
6611 show_backtrace(1);
6612 }
6613 {
6614 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:TKwwritable> */
6615 var_other = var_old_child;
6616 {
6617 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:TKwwritable> */
6618 var25 = var19 == var_other;
6619 var23 = var25;
6620 goto RET_LABEL24;
6621 RET_LABEL24:(void)0;
6622 }
6623 }
6624 var21 = var23;
6625 goto RET_LABEL22;
6626 RET_LABEL22:(void)0;
6627 }
6628 var20 = var21;
6629 }
6630 if (var20){
6631 /* <var_new_child:nullable ANode> isa TKwwritable */
6632 cltype27 = type_parser_nodes__TKwwritable.color;
6633 idtype28 = type_parser_nodes__TKwwritable.id;
6634 if(var_new_child == NULL) {
6635 var26 = 0;
6636 } else {
6637 if(cltype27 >= var_new_child->type->table_size) {
6638 var26 = 0;
6639 } else {
6640 var26 = var_new_child->type->type_table[cltype27] == idtype28;
6641 }
6642 }
6643 if (unlikely(!var26)) {
6644 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
6645 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwwritable", var_class_name29);
6646 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2120);
6647 show_backtrace(1);
6648 }
6649 {
6650 parser_prod__AWriteAble__n_kwwritable_61d(self, var_new_child); /* Direct call parser_prod#AWriteAble#n_kwwritable= on <self:AWriteAble>*/
6651 }
6652 goto RET_LABEL;
6653 } else {
6654 }
6655 RET_LABEL:;
6656 }
6657 /* method parser_prod#AWriteAble#replace_child for (self: Object, ANode, nullable ANode) */
6658 void VIRTUAL_parser_prod__AWriteAble__replace_child(val* self, val* p0, val* p1) {
6659 parser_prod__AWriteAble__replace_child(self, p0, p1); /* Direct call parser_prod#AWriteAble#replace_child on <self:Object(AWriteAble)>*/
6660 RET_LABEL:;
6661 }
6662 /* method parser_prod#AWriteAble#n_kwredef= for (self: AWriteAble, nullable TKwredef) */
6663 void parser_prod__AWriteAble__n_kwredef_61d(val* self, val* p0) {
6664 val* var_node /* var node: nullable TKwredef */;
6665 val* var /* : null */;
6666 short int var1 /* : Bool */;
6667 short int var2 /* : Bool */;
6668 val* var_other /* var other: nullable Object */;
6669 short int var4 /* : Bool */;
6670 short int var5 /* : Bool */;
6671 short int var6 /* : Bool */;
6672 var_node = p0;
6673 self->attrs[COLOR_parser_nodes__AAble___n_kwredef].val = var_node; /* _n_kwredef on <self:AWriteAble> */
6674 var = NULL;
6675 if (var_node == NULL) {
6676 var1 = 0; /* is null */
6677 } else {
6678 var1 = 1; /* arg is null and recv is not */
6679 }
6680 if (0) {
6681 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable TKwredef> */
6682 var_other = var;
6683 {
6684 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable TKwredef(TKwredef)>*/;
6685 var4 = var5;
6686 }
6687 var6 = !var4;
6688 var2 = var6;
6689 goto RET_LABEL3;
6690 RET_LABEL3:(void)0;
6691 }
6692 var1 = var2;
6693 }
6694 if (var1){
6695 {
6696 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TKwredef(TKwredef)> */
6697 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TKwredef(TKwredef)> */
6698 RET_LABEL7:(void)0;
6699 }
6700 }
6701 } else {
6702 }
6703 RET_LABEL:;
6704 }
6705 /* method parser_prod#AWriteAble#n_kwredef= for (self: Object, nullable TKwredef) */
6706 void VIRTUAL_parser_prod__AWriteAble__n_kwredef_61d(val* self, val* p0) {
6707 parser_prod__AWriteAble__n_kwredef_61d(self, p0); /* Direct call parser_prod#AWriteAble#n_kwredef= on <self:Object(AWriteAble)>*/
6708 RET_LABEL:;
6709 }
6710 /* method parser_prod#AWriteAble#n_visibility= for (self: AWriteAble, nullable AVisibility) */
6711 void parser_prod__AWriteAble__n_visibility_61d(val* self, val* p0) {
6712 val* var_node /* var node: nullable AVisibility */;
6713 val* var /* : null */;
6714 short int var1 /* : Bool */;
6715 short int var2 /* : Bool */;
6716 val* var_other /* var other: nullable Object */;
6717 short int var4 /* : Bool */;
6718 short int var5 /* : Bool */;
6719 short int var6 /* : Bool */;
6720 var_node = p0;
6721 self->attrs[COLOR_parser_nodes__AAble___n_visibility].val = var_node; /* _n_visibility on <self:AWriteAble> */
6722 var = NULL;
6723 if (var_node == NULL) {
6724 var1 = 0; /* is null */
6725 } else {
6726 var1 = 1; /* arg is null and recv is not */
6727 }
6728 if (0) {
6729 { /* Inline kernel#Object#!= (var_node,var) on <var_node:nullable AVisibility> */
6730 var_other = var;
6731 {
6732 var5 = ((short int (*)(val*, val*))(var_node->class->vft[COLOR_kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable AVisibility(AVisibility)>*/;
6733 var4 = var5;
6734 }
6735 var6 = !var4;
6736 var2 = var6;
6737 goto RET_LABEL3;
6738 RET_LABEL3:(void)0;
6739 }
6740 var1 = var2;
6741 }
6742 if (var1){
6743 {
6744 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AVisibility(AVisibility)> */
6745 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AVisibility(AVisibility)> */
6746 RET_LABEL7:(void)0;
6747 }
6748 }
6749 } else {
6750 }
6751 RET_LABEL:;
6752 }
6753 /* method parser_prod#AWriteAble#n_visibility= for (self: Object, nullable AVisibility) */
6754 void VIRTUAL_parser_prod__AWriteAble__n_visibility_61d(val* self, val* p0) {
6755 parser_prod__AWriteAble__n_visibility_61d(self, p0); /* Direct call parser_prod#AWriteAble#n_visibility= on <self:Object(AWriteAble)>*/
6756 RET_LABEL:;
6757 }
6758 /* method parser_prod#AWriteAble#n_kwwritable= for (self: AWriteAble, TKwwritable) */
6759 void parser_prod__AWriteAble__n_kwwritable_61d(val* self, val* p0) {
6760 val* var_node /* var node: TKwwritable */;
6761 var_node = p0;
6762 self->attrs[COLOR_parser_nodes__AWriteAble___n_kwwritable].val = var_node; /* _n_kwwritable on <self:AWriteAble> */
6763 {
6764 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwwritable> */
6765 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwwritable> */
6766 RET_LABEL1:(void)0;
6767 }
6768 }
6769 RET_LABEL:;
6770 }
6771 /* method parser_prod#AWriteAble#n_kwwritable= for (self: Object, TKwwritable) */
6772 void VIRTUAL_parser_prod__AWriteAble__n_kwwritable_61d(val* self, val* p0) {
6773 parser_prod__AWriteAble__n_kwwritable_61d(self, p0); /* Direct call parser_prod#AWriteAble#n_kwwritable= on <self:Object(AWriteAble)>*/
6774 RET_LABEL:;
6775 }
6776 /* method parser_prod#AWriteAble#visit_all for (self: AWriteAble, Visitor) */
6777 void parser_prod__AWriteAble__visit_all(val* self, val* p0) {
6778 val* var_v /* var v: Visitor */;
6779 val* var /* : nullable TKwredef */;
6780 val* var1 /* : nullable AVisibility */;
6781 val* var2 /* : TKwwritable */;
6782 var_v = p0;
6783 var = self->attrs[COLOR_parser_nodes__AAble___n_kwredef].val; /* _n_kwredef on <self:AWriteAble> */
6784 {
6785 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6786 }
6787 var1 = self->attrs[COLOR_parser_nodes__AAble___n_visibility].val; /* _n_visibility on <self:AWriteAble> */
6788 {
6789 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6790 }
6791 var2 = self->attrs[COLOR_parser_nodes__AWriteAble___n_kwwritable].val; /* _n_kwwritable on <self:AWriteAble> */
6792 if (unlikely(var2 == NULL)) {
6793 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwwritable");
6794 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2146);
6795 show_backtrace(1);
6796 }
6797 {
6798 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6799 }
6800 RET_LABEL:;
6801 }
6802 /* method parser_prod#AWriteAble#visit_all for (self: Object, Visitor) */
6803 void VIRTUAL_parser_prod__AWriteAble__visit_all(val* self, val* p0) {
6804 parser_prod__AWriteAble__visit_all(self, p0); /* Direct call parser_prod#AWriteAble#visit_all on <self:Object(AWriteAble)>*/
6805 RET_LABEL:;
6806 }
6807 /* method parser_prod#AIdMethid#init_aidmethid for (self: AIdMethid, nullable TId) */
6808 void parser_prod__AIdMethid__init_aidmethid(val* self, val* p0) {
6809 val* var_n_id /* var n_id: nullable TId */;
6810 var_n_id = p0;
6811 if (unlikely(var_n_id == NULL)) {
6812 PRINT_ERROR("Runtime error: %s", "Cast failed");
6813 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2154);
6814 show_backtrace(1);
6815 }
6816 self->attrs[COLOR_parser_nodes__AIdMethid___n_id].val = var_n_id; /* _n_id on <self:AIdMethid> */
6817 if (var_n_id == NULL) {
6818 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6819 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2155);
6820 show_backtrace(1);
6821 } else {
6822 { /* Inline parser_nodes#ANode#parent= (var_n_id,self) on <var_n_id:nullable TId> */
6823 if (unlikely(var_n_id == NULL)) {
6824 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6825 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
6826 show_backtrace(1);
6827 }
6828 var_n_id->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_id:nullable TId> */
6829 RET_LABEL1:(void)0;
6830 }
6831 }
6832 RET_LABEL:;
6833 }
6834 /* method parser_prod#AIdMethid#init_aidmethid for (self: Object, nullable TId) */
6835 void VIRTUAL_parser_prod__AIdMethid__init_aidmethid(val* self, val* p0) {
6836 parser_prod__AIdMethid__init_aidmethid(self, p0); /* Direct call parser_prod#AIdMethid#init_aidmethid on <self:Object(AIdMethid)>*/
6837 RET_LABEL:;
6838 }
6839 /* method parser_prod#AIdMethid#replace_child for (self: AIdMethid, ANode, nullable ANode) */
6840 void parser_prod__AIdMethid__replace_child(val* self, val* p0, val* p1) {
6841 val* var_old_child /* var old_child: ANode */;
6842 val* var_new_child /* var new_child: nullable ANode */;
6843 val* var /* : TId */;
6844 short int var1 /* : Bool */;
6845 short int var2 /* : Bool */;
6846 val* var_other /* var other: nullable Object */;
6847 short int var4 /* : Bool */;
6848 short int var6 /* : Bool */;
6849 short int var7 /* : Bool */;
6850 int cltype;
6851 int idtype;
6852 const char* var_class_name;
6853 var_old_child = p0;
6854 var_new_child = p1;
6855 var = self->attrs[COLOR_parser_nodes__AIdMethid___n_id].val; /* _n_id on <self:AIdMethid> */
6856 if (unlikely(var == NULL)) {
6857 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
6858 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2160);
6859 show_backtrace(1);
6860 }
6861 {
6862 { /* Inline kernel#Object#== (var,var_old_child) on <var:TId> */
6863 var_other = var_old_child;
6864 {
6865 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TId> */
6866 var6 = var == var_other;
6867 var4 = var6;
6868 goto RET_LABEL5;
6869 RET_LABEL5:(void)0;
6870 }
6871 }
6872 var2 = var4;
6873 goto RET_LABEL3;
6874 RET_LABEL3:(void)0;
6875 }
6876 var1 = var2;
6877 }
6878 if (var1){
6879 /* <var_new_child:nullable ANode> isa TId */
6880 cltype = type_parser_nodes__TId.color;
6881 idtype = type_parser_nodes__TId.id;
6882 if(var_new_child == NULL) {
6883 var7 = 0;
6884 } else {
6885 if(cltype >= var_new_child->type->table_size) {
6886 var7 = 0;
6887 } else {
6888 var7 = var_new_child->type->type_table[cltype] == idtype;
6889 }
6890 }
6891 if (unlikely(!var7)) {
6892 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
6893 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TId", var_class_name);
6894 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2161);
6895 show_backtrace(1);
6896 }
6897 {
6898 parser_prod__AIdMethid__n_id_61d(self, var_new_child); /* Direct call parser_prod#AIdMethid#n_id= on <self:AIdMethid>*/
6899 }
6900 goto RET_LABEL;
6901 } else {
6902 }
6903 RET_LABEL:;
6904 }
6905 /* method parser_prod#AIdMethid#replace_child for (self: Object, ANode, nullable ANode) */
6906 void VIRTUAL_parser_prod__AIdMethid__replace_child(val* self, val* p0, val* p1) {
6907 parser_prod__AIdMethid__replace_child(self, p0, p1); /* Direct call parser_prod#AIdMethid#replace_child on <self:Object(AIdMethid)>*/
6908 RET_LABEL:;
6909 }
6910 /* method parser_prod#AIdMethid#n_id= for (self: AIdMethid, TId) */
6911 void parser_prod__AIdMethid__n_id_61d(val* self, val* p0) {
6912 val* var_node /* var node: TId */;
6913 var_node = p0;
6914 self->attrs[COLOR_parser_nodes__AIdMethid___n_id].val = var_node; /* _n_id on <self:AIdMethid> */
6915 {
6916 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TId> */
6917 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TId> */
6918 RET_LABEL1:(void)0;
6919 }
6920 }
6921 RET_LABEL:;
6922 }
6923 /* method parser_prod#AIdMethid#n_id= for (self: Object, TId) */
6924 void VIRTUAL_parser_prod__AIdMethid__n_id_61d(val* self, val* p0) {
6925 parser_prod__AIdMethid__n_id_61d(self, p0); /* Direct call parser_prod#AIdMethid#n_id= on <self:Object(AIdMethid)>*/
6926 RET_LABEL:;
6927 }
6928 /* method parser_prod#AIdMethid#visit_all for (self: AIdMethid, Visitor) */
6929 void parser_prod__AIdMethid__visit_all(val* self, val* p0) {
6930 val* var_v /* var v: Visitor */;
6931 val* var /* : TId */;
6932 var_v = p0;
6933 var = self->attrs[COLOR_parser_nodes__AIdMethid___n_id].val; /* _n_id on <self:AIdMethid> */
6934 if (unlikely(var == NULL)) {
6935 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
6936 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2175);
6937 show_backtrace(1);
6938 }
6939 {
6940 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
6941 }
6942 RET_LABEL:;
6943 }
6944 /* method parser_prod#AIdMethid#visit_all for (self: Object, Visitor) */
6945 void VIRTUAL_parser_prod__AIdMethid__visit_all(val* self, val* p0) {
6946 parser_prod__AIdMethid__visit_all(self, p0); /* Direct call parser_prod#AIdMethid#visit_all on <self:Object(AIdMethid)>*/
6947 RET_LABEL:;
6948 }
6949 /* method parser_prod#APlusMethid#init_aplusmethid for (self: APlusMethid, nullable TPlus) */
6950 void parser_prod__APlusMethid__init_aplusmethid(val* self, val* p0) {
6951 val* var_n_plus /* var n_plus: nullable TPlus */;
6952 var_n_plus = p0;
6953 if (unlikely(var_n_plus == NULL)) {
6954 PRINT_ERROR("Runtime error: %s", "Cast failed");
6955 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2183);
6956 show_backtrace(1);
6957 }
6958 self->attrs[COLOR_parser_nodes__APlusMethid___n_plus].val = var_n_plus; /* _n_plus on <self:APlusMethid> */
6959 if (var_n_plus == NULL) {
6960 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6961 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2184);
6962 show_backtrace(1);
6963 } else {
6964 { /* Inline parser_nodes#ANode#parent= (var_n_plus,self) on <var_n_plus:nullable TPlus> */
6965 if (unlikely(var_n_plus == NULL)) {
6966 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6967 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
6968 show_backtrace(1);
6969 }
6970 var_n_plus->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_plus:nullable TPlus> */
6971 RET_LABEL1:(void)0;
6972 }
6973 }
6974 RET_LABEL:;
6975 }
6976 /* method parser_prod#APlusMethid#init_aplusmethid for (self: Object, nullable TPlus) */
6977 void VIRTUAL_parser_prod__APlusMethid__init_aplusmethid(val* self, val* p0) {
6978 parser_prod__APlusMethid__init_aplusmethid(self, p0); /* Direct call parser_prod#APlusMethid#init_aplusmethid on <self:Object(APlusMethid)>*/
6979 RET_LABEL:;
6980 }
6981 /* method parser_prod#APlusMethid#replace_child for (self: APlusMethid, ANode, nullable ANode) */
6982 void parser_prod__APlusMethid__replace_child(val* self, val* p0, val* p1) {
6983 val* var_old_child /* var old_child: ANode */;
6984 val* var_new_child /* var new_child: nullable ANode */;
6985 val* var /* : TPlus */;
6986 short int var1 /* : Bool */;
6987 short int var2 /* : Bool */;
6988 val* var_other /* var other: nullable Object */;
6989 short int var4 /* : Bool */;
6990 short int var6 /* : Bool */;
6991 short int var7 /* : Bool */;
6992 int cltype;
6993 int idtype;
6994 const char* var_class_name;
6995 var_old_child = p0;
6996 var_new_child = p1;
6997 var = self->attrs[COLOR_parser_nodes__APlusMethid___n_plus].val; /* _n_plus on <self:APlusMethid> */
6998 if (unlikely(var == NULL)) {
6999 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_plus");
7000 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2189);
7001 show_backtrace(1);
7002 }
7003 {
7004 { /* Inline kernel#Object#== (var,var_old_child) on <var:TPlus> */
7005 var_other = var_old_child;
7006 {
7007 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TPlus> */
7008 var6 = var == var_other;
7009 var4 = var6;
7010 goto RET_LABEL5;
7011 RET_LABEL5:(void)0;
7012 }
7013 }
7014 var2 = var4;
7015 goto RET_LABEL3;
7016 RET_LABEL3:(void)0;
7017 }
7018 var1 = var2;
7019 }
7020 if (var1){
7021 /* <var_new_child:nullable ANode> isa TPlus */
7022 cltype = type_parser_nodes__TPlus.color;
7023 idtype = type_parser_nodes__TPlus.id;
7024 if(var_new_child == NULL) {
7025 var7 = 0;
7026 } else {
7027 if(cltype >= var_new_child->type->table_size) {
7028 var7 = 0;
7029 } else {
7030 var7 = var_new_child->type->type_table[cltype] == idtype;
7031 }
7032 }
7033 if (unlikely(!var7)) {
7034 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
7035 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TPlus", var_class_name);
7036 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2190);
7037 show_backtrace(1);
7038 }
7039 {
7040 parser_prod__APlusMethid__n_plus_61d(self, var_new_child); /* Direct call parser_prod#APlusMethid#n_plus= on <self:APlusMethid>*/
7041 }
7042 goto RET_LABEL;
7043 } else {
7044 }
7045 RET_LABEL:;
7046 }
7047 /* method parser_prod#APlusMethid#replace_child for (self: Object, ANode, nullable ANode) */
7048 void VIRTUAL_parser_prod__APlusMethid__replace_child(val* self, val* p0, val* p1) {
7049 parser_prod__APlusMethid__replace_child(self, p0, p1); /* Direct call parser_prod#APlusMethid#replace_child on <self:Object(APlusMethid)>*/
7050 RET_LABEL:;
7051 }
7052 /* method parser_prod#APlusMethid#n_plus= for (self: APlusMethid, TPlus) */
7053 void parser_prod__APlusMethid__n_plus_61d(val* self, val* p0) {
7054 val* var_node /* var node: TPlus */;
7055 var_node = p0;
7056 self->attrs[COLOR_parser_nodes__APlusMethid___n_plus].val = var_node; /* _n_plus on <self:APlusMethid> */
7057 {
7058 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TPlus> */
7059 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TPlus> */
7060 RET_LABEL1:(void)0;
7061 }
7062 }
7063 RET_LABEL:;
7064 }
7065 /* method parser_prod#APlusMethid#n_plus= for (self: Object, TPlus) */
7066 void VIRTUAL_parser_prod__APlusMethid__n_plus_61d(val* self, val* p0) {
7067 parser_prod__APlusMethid__n_plus_61d(self, p0); /* Direct call parser_prod#APlusMethid#n_plus= on <self:Object(APlusMethid)>*/
7068 RET_LABEL:;
7069 }
7070 /* method parser_prod#APlusMethid#visit_all for (self: APlusMethid, Visitor) */
7071 void parser_prod__APlusMethid__visit_all(val* self, val* p0) {
7072 val* var_v /* var v: Visitor */;
7073 val* var /* : TPlus */;
7074 var_v = p0;
7075 var = self->attrs[COLOR_parser_nodes__APlusMethid___n_plus].val; /* _n_plus on <self:APlusMethid> */
7076 if (unlikely(var == NULL)) {
7077 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_plus");
7078 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2204);
7079 show_backtrace(1);
7080 }
7081 {
7082 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7083 }
7084 RET_LABEL:;
7085 }
7086 /* method parser_prod#APlusMethid#visit_all for (self: Object, Visitor) */
7087 void VIRTUAL_parser_prod__APlusMethid__visit_all(val* self, val* p0) {
7088 parser_prod__APlusMethid__visit_all(self, p0); /* Direct call parser_prod#APlusMethid#visit_all on <self:Object(APlusMethid)>*/
7089 RET_LABEL:;
7090 }
7091 /* method parser_prod#AMinusMethid#init_aminusmethid for (self: AMinusMethid, nullable TMinus) */
7092 void parser_prod__AMinusMethid__init_aminusmethid(val* self, val* p0) {
7093 val* var_n_minus /* var n_minus: nullable TMinus */;
7094 var_n_minus = p0;
7095 if (unlikely(var_n_minus == NULL)) {
7096 PRINT_ERROR("Runtime error: %s", "Cast failed");
7097 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2212);
7098 show_backtrace(1);
7099 }
7100 self->attrs[COLOR_parser_nodes__AMinusMethid___n_minus].val = var_n_minus; /* _n_minus on <self:AMinusMethid> */
7101 if (var_n_minus == NULL) {
7102 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7103 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2213);
7104 show_backtrace(1);
7105 } else {
7106 { /* Inline parser_nodes#ANode#parent= (var_n_minus,self) on <var_n_minus:nullable TMinus> */
7107 if (unlikely(var_n_minus == NULL)) {
7108 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7109 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
7110 show_backtrace(1);
7111 }
7112 var_n_minus->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_minus:nullable TMinus> */
7113 RET_LABEL1:(void)0;
7114 }
7115 }
7116 RET_LABEL:;
7117 }
7118 /* method parser_prod#AMinusMethid#init_aminusmethid for (self: Object, nullable TMinus) */
7119 void VIRTUAL_parser_prod__AMinusMethid__init_aminusmethid(val* self, val* p0) {
7120 parser_prod__AMinusMethid__init_aminusmethid(self, p0); /* Direct call parser_prod#AMinusMethid#init_aminusmethid on <self:Object(AMinusMethid)>*/
7121 RET_LABEL:;
7122 }
7123 /* method parser_prod#AMinusMethid#replace_child for (self: AMinusMethid, ANode, nullable ANode) */
7124 void parser_prod__AMinusMethid__replace_child(val* self, val* p0, val* p1) {
7125 val* var_old_child /* var old_child: ANode */;
7126 val* var_new_child /* var new_child: nullable ANode */;
7127 val* var /* : TMinus */;
7128 short int var1 /* : Bool */;
7129 short int var2 /* : Bool */;
7130 val* var_other /* var other: nullable Object */;
7131 short int var4 /* : Bool */;
7132 short int var6 /* : Bool */;
7133 short int var7 /* : Bool */;
7134 int cltype;
7135 int idtype;
7136 const char* var_class_name;
7137 var_old_child = p0;
7138 var_new_child = p1;
7139 var = self->attrs[COLOR_parser_nodes__AMinusMethid___n_minus].val; /* _n_minus on <self:AMinusMethid> */
7140 if (unlikely(var == NULL)) {
7141 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_minus");
7142 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2218);
7143 show_backtrace(1);
7144 }
7145 {
7146 { /* Inline kernel#Object#== (var,var_old_child) on <var:TMinus> */
7147 var_other = var_old_child;
7148 {
7149 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TMinus> */
7150 var6 = var == var_other;
7151 var4 = var6;
7152 goto RET_LABEL5;
7153 RET_LABEL5:(void)0;
7154 }
7155 }
7156 var2 = var4;
7157 goto RET_LABEL3;
7158 RET_LABEL3:(void)0;
7159 }
7160 var1 = var2;
7161 }
7162 if (var1){
7163 /* <var_new_child:nullable ANode> isa TMinus */
7164 cltype = type_parser_nodes__TMinus.color;
7165 idtype = type_parser_nodes__TMinus.id;
7166 if(var_new_child == NULL) {
7167 var7 = 0;
7168 } else {
7169 if(cltype >= var_new_child->type->table_size) {
7170 var7 = 0;
7171 } else {
7172 var7 = var_new_child->type->type_table[cltype] == idtype;
7173 }
7174 }
7175 if (unlikely(!var7)) {
7176 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
7177 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TMinus", var_class_name);
7178 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2219);
7179 show_backtrace(1);
7180 }
7181 {
7182 parser_prod__AMinusMethid__n_minus_61d(self, var_new_child); /* Direct call parser_prod#AMinusMethid#n_minus= on <self:AMinusMethid>*/
7183 }
7184 goto RET_LABEL;
7185 } else {
7186 }
7187 RET_LABEL:;
7188 }
7189 /* method parser_prod#AMinusMethid#replace_child for (self: Object, ANode, nullable ANode) */
7190 void VIRTUAL_parser_prod__AMinusMethid__replace_child(val* self, val* p0, val* p1) {
7191 parser_prod__AMinusMethid__replace_child(self, p0, p1); /* Direct call parser_prod#AMinusMethid#replace_child on <self:Object(AMinusMethid)>*/
7192 RET_LABEL:;
7193 }
7194 /* method parser_prod#AMinusMethid#n_minus= for (self: AMinusMethid, TMinus) */
7195 void parser_prod__AMinusMethid__n_minus_61d(val* self, val* p0) {
7196 val* var_node /* var node: TMinus */;
7197 var_node = p0;
7198 self->attrs[COLOR_parser_nodes__AMinusMethid___n_minus].val = var_node; /* _n_minus on <self:AMinusMethid> */
7199 {
7200 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TMinus> */
7201 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TMinus> */
7202 RET_LABEL1:(void)0;
7203 }
7204 }
7205 RET_LABEL:;
7206 }
7207 /* method parser_prod#AMinusMethid#n_minus= for (self: Object, TMinus) */
7208 void VIRTUAL_parser_prod__AMinusMethid__n_minus_61d(val* self, val* p0) {
7209 parser_prod__AMinusMethid__n_minus_61d(self, p0); /* Direct call parser_prod#AMinusMethid#n_minus= on <self:Object(AMinusMethid)>*/
7210 RET_LABEL:;
7211 }
7212 /* method parser_prod#AMinusMethid#visit_all for (self: AMinusMethid, Visitor) */
7213 void parser_prod__AMinusMethid__visit_all(val* self, val* p0) {
7214 val* var_v /* var v: Visitor */;
7215 val* var /* : TMinus */;
7216 var_v = p0;
7217 var = self->attrs[COLOR_parser_nodes__AMinusMethid___n_minus].val; /* _n_minus on <self:AMinusMethid> */
7218 if (unlikely(var == NULL)) {
7219 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_minus");
7220 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2233);
7221 show_backtrace(1);
7222 }
7223 {
7224 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7225 }
7226 RET_LABEL:;
7227 }
7228 /* method parser_prod#AMinusMethid#visit_all for (self: Object, Visitor) */
7229 void VIRTUAL_parser_prod__AMinusMethid__visit_all(val* self, val* p0) {
7230 parser_prod__AMinusMethid__visit_all(self, p0); /* Direct call parser_prod#AMinusMethid#visit_all on <self:Object(AMinusMethid)>*/
7231 RET_LABEL:;
7232 }
7233 /* method parser_prod#AStarMethid#init_astarmethid for (self: AStarMethid, nullable TStar) */
7234 void parser_prod__AStarMethid__init_astarmethid(val* self, val* p0) {
7235 val* var_n_star /* var n_star: nullable TStar */;
7236 var_n_star = p0;
7237 if (unlikely(var_n_star == NULL)) {
7238 PRINT_ERROR("Runtime error: %s", "Cast failed");
7239 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2241);
7240 show_backtrace(1);
7241 }
7242 self->attrs[COLOR_parser_nodes__AStarMethid___n_star].val = var_n_star; /* _n_star on <self:AStarMethid> */
7243 if (var_n_star == NULL) {
7244 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7245 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2242);
7246 show_backtrace(1);
7247 } else {
7248 { /* Inline parser_nodes#ANode#parent= (var_n_star,self) on <var_n_star:nullable TStar> */
7249 if (unlikely(var_n_star == NULL)) {
7250 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7251 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
7252 show_backtrace(1);
7253 }
7254 var_n_star->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_star:nullable TStar> */
7255 RET_LABEL1:(void)0;
7256 }
7257 }
7258 RET_LABEL:;
7259 }
7260 /* method parser_prod#AStarMethid#init_astarmethid for (self: Object, nullable TStar) */
7261 void VIRTUAL_parser_prod__AStarMethid__init_astarmethid(val* self, val* p0) {
7262 parser_prod__AStarMethid__init_astarmethid(self, p0); /* Direct call parser_prod#AStarMethid#init_astarmethid on <self:Object(AStarMethid)>*/
7263 RET_LABEL:;
7264 }
7265 /* method parser_prod#AStarMethid#replace_child for (self: AStarMethid, ANode, nullable ANode) */
7266 void parser_prod__AStarMethid__replace_child(val* self, val* p0, val* p1) {
7267 val* var_old_child /* var old_child: ANode */;
7268 val* var_new_child /* var new_child: nullable ANode */;
7269 val* var /* : TStar */;
7270 short int var1 /* : Bool */;
7271 short int var2 /* : Bool */;
7272 val* var_other /* var other: nullable Object */;
7273 short int var4 /* : Bool */;
7274 short int var6 /* : Bool */;
7275 short int var7 /* : Bool */;
7276 int cltype;
7277 int idtype;
7278 const char* var_class_name;
7279 var_old_child = p0;
7280 var_new_child = p1;
7281 var = self->attrs[COLOR_parser_nodes__AStarMethid___n_star].val; /* _n_star on <self:AStarMethid> */
7282 if (unlikely(var == NULL)) {
7283 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_star");
7284 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2247);
7285 show_backtrace(1);
7286 }
7287 {
7288 { /* Inline kernel#Object#== (var,var_old_child) on <var:TStar> */
7289 var_other = var_old_child;
7290 {
7291 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TStar> */
7292 var6 = var == var_other;
7293 var4 = var6;
7294 goto RET_LABEL5;
7295 RET_LABEL5:(void)0;
7296 }
7297 }
7298 var2 = var4;
7299 goto RET_LABEL3;
7300 RET_LABEL3:(void)0;
7301 }
7302 var1 = var2;
7303 }
7304 if (var1){
7305 /* <var_new_child:nullable ANode> isa TStar */
7306 cltype = type_parser_nodes__TStar.color;
7307 idtype = type_parser_nodes__TStar.id;
7308 if(var_new_child == NULL) {
7309 var7 = 0;
7310 } else {
7311 if(cltype >= var_new_child->type->table_size) {
7312 var7 = 0;
7313 } else {
7314 var7 = var_new_child->type->type_table[cltype] == idtype;
7315 }
7316 }
7317 if (unlikely(!var7)) {
7318 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
7319 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TStar", var_class_name);
7320 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2248);
7321 show_backtrace(1);
7322 }
7323 {
7324 parser_prod__AStarMethid__n_star_61d(self, var_new_child); /* Direct call parser_prod#AStarMethid#n_star= on <self:AStarMethid>*/
7325 }
7326 goto RET_LABEL;
7327 } else {
7328 }
7329 RET_LABEL:;
7330 }
7331 /* method parser_prod#AStarMethid#replace_child for (self: Object, ANode, nullable ANode) */
7332 void VIRTUAL_parser_prod__AStarMethid__replace_child(val* self, val* p0, val* p1) {
7333 parser_prod__AStarMethid__replace_child(self, p0, p1); /* Direct call parser_prod#AStarMethid#replace_child on <self:Object(AStarMethid)>*/
7334 RET_LABEL:;
7335 }
7336 /* method parser_prod#AStarMethid#n_star= for (self: AStarMethid, TStar) */
7337 void parser_prod__AStarMethid__n_star_61d(val* self, val* p0) {
7338 val* var_node /* var node: TStar */;
7339 var_node = p0;
7340 self->attrs[COLOR_parser_nodes__AStarMethid___n_star].val = var_node; /* _n_star on <self:AStarMethid> */
7341 {
7342 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TStar> */
7343 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TStar> */
7344 RET_LABEL1:(void)0;
7345 }
7346 }
7347 RET_LABEL:;
7348 }
7349 /* method parser_prod#AStarMethid#n_star= for (self: Object, TStar) */
7350 void VIRTUAL_parser_prod__AStarMethid__n_star_61d(val* self, val* p0) {
7351 parser_prod__AStarMethid__n_star_61d(self, p0); /* Direct call parser_prod#AStarMethid#n_star= on <self:Object(AStarMethid)>*/
7352 RET_LABEL:;
7353 }
7354 /* method parser_prod#AStarMethid#visit_all for (self: AStarMethid, Visitor) */
7355 void parser_prod__AStarMethid__visit_all(val* self, val* p0) {
7356 val* var_v /* var v: Visitor */;
7357 val* var /* : TStar */;
7358 var_v = p0;
7359 var = self->attrs[COLOR_parser_nodes__AStarMethid___n_star].val; /* _n_star on <self:AStarMethid> */
7360 if (unlikely(var == NULL)) {
7361 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_star");
7362 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2262);
7363 show_backtrace(1);
7364 }
7365 {
7366 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7367 }
7368 RET_LABEL:;
7369 }
7370 /* method parser_prod#AStarMethid#visit_all for (self: Object, Visitor) */
7371 void VIRTUAL_parser_prod__AStarMethid__visit_all(val* self, val* p0) {
7372 parser_prod__AStarMethid__visit_all(self, p0); /* Direct call parser_prod#AStarMethid#visit_all on <self:Object(AStarMethid)>*/
7373 RET_LABEL:;
7374 }
7375 /* method parser_prod#ASlashMethid#init_aslashmethid for (self: ASlashMethid, nullable TSlash) */
7376 void parser_prod__ASlashMethid__init_aslashmethid(val* self, val* p0) {
7377 val* var_n_slash /* var n_slash: nullable TSlash */;
7378 var_n_slash = p0;
7379 if (unlikely(var_n_slash == NULL)) {
7380 PRINT_ERROR("Runtime error: %s", "Cast failed");
7381 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2270);
7382 show_backtrace(1);
7383 }
7384 self->attrs[COLOR_parser_nodes__ASlashMethid___n_slash].val = var_n_slash; /* _n_slash on <self:ASlashMethid> */
7385 if (var_n_slash == NULL) {
7386 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7387 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2271);
7388 show_backtrace(1);
7389 } else {
7390 { /* Inline parser_nodes#ANode#parent= (var_n_slash,self) on <var_n_slash:nullable TSlash> */
7391 if (unlikely(var_n_slash == NULL)) {
7392 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7393 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
7394 show_backtrace(1);
7395 }
7396 var_n_slash->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_slash:nullable TSlash> */
7397 RET_LABEL1:(void)0;
7398 }
7399 }
7400 RET_LABEL:;
7401 }
7402 /* method parser_prod#ASlashMethid#init_aslashmethid for (self: Object, nullable TSlash) */
7403 void VIRTUAL_parser_prod__ASlashMethid__init_aslashmethid(val* self, val* p0) {
7404 parser_prod__ASlashMethid__init_aslashmethid(self, p0); /* Direct call parser_prod#ASlashMethid#init_aslashmethid on <self:Object(ASlashMethid)>*/
7405 RET_LABEL:;
7406 }
7407 /* method parser_prod#ASlashMethid#replace_child for (self: ASlashMethid, ANode, nullable ANode) */
7408 void parser_prod__ASlashMethid__replace_child(val* self, val* p0, val* p1) {
7409 val* var_old_child /* var old_child: ANode */;
7410 val* var_new_child /* var new_child: nullable ANode */;
7411 val* var /* : TSlash */;
7412 short int var1 /* : Bool */;
7413 short int var2 /* : Bool */;
7414 val* var_other /* var other: nullable Object */;
7415 short int var4 /* : Bool */;
7416 short int var6 /* : Bool */;
7417 short int var7 /* : Bool */;
7418 int cltype;
7419 int idtype;
7420 const char* var_class_name;
7421 var_old_child = p0;
7422 var_new_child = p1;
7423 var = self->attrs[COLOR_parser_nodes__ASlashMethid___n_slash].val; /* _n_slash on <self:ASlashMethid> */
7424 if (unlikely(var == NULL)) {
7425 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_slash");
7426 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2276);
7427 show_backtrace(1);
7428 }
7429 {
7430 { /* Inline kernel#Object#== (var,var_old_child) on <var:TSlash> */
7431 var_other = var_old_child;
7432 {
7433 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TSlash> */
7434 var6 = var == var_other;
7435 var4 = var6;
7436 goto RET_LABEL5;
7437 RET_LABEL5:(void)0;
7438 }
7439 }
7440 var2 = var4;
7441 goto RET_LABEL3;
7442 RET_LABEL3:(void)0;
7443 }
7444 var1 = var2;
7445 }
7446 if (var1){
7447 /* <var_new_child:nullable ANode> isa TSlash */
7448 cltype = type_parser_nodes__TSlash.color;
7449 idtype = type_parser_nodes__TSlash.id;
7450 if(var_new_child == NULL) {
7451 var7 = 0;
7452 } else {
7453 if(cltype >= var_new_child->type->table_size) {
7454 var7 = 0;
7455 } else {
7456 var7 = var_new_child->type->type_table[cltype] == idtype;
7457 }
7458 }
7459 if (unlikely(!var7)) {
7460 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
7461 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TSlash", var_class_name);
7462 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2277);
7463 show_backtrace(1);
7464 }
7465 {
7466 parser_prod__ASlashMethid__n_slash_61d(self, var_new_child); /* Direct call parser_prod#ASlashMethid#n_slash= on <self:ASlashMethid>*/
7467 }
7468 goto RET_LABEL;
7469 } else {
7470 }
7471 RET_LABEL:;
7472 }
7473 /* method parser_prod#ASlashMethid#replace_child for (self: Object, ANode, nullable ANode) */
7474 void VIRTUAL_parser_prod__ASlashMethid__replace_child(val* self, val* p0, val* p1) {
7475 parser_prod__ASlashMethid__replace_child(self, p0, p1); /* Direct call parser_prod#ASlashMethid#replace_child on <self:Object(ASlashMethid)>*/
7476 RET_LABEL:;
7477 }
7478 /* method parser_prod#ASlashMethid#n_slash= for (self: ASlashMethid, TSlash) */
7479 void parser_prod__ASlashMethid__n_slash_61d(val* self, val* p0) {
7480 val* var_node /* var node: TSlash */;
7481 var_node = p0;
7482 self->attrs[COLOR_parser_nodes__ASlashMethid___n_slash].val = var_node; /* _n_slash on <self:ASlashMethid> */
7483 {
7484 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TSlash> */
7485 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TSlash> */
7486 RET_LABEL1:(void)0;
7487 }
7488 }
7489 RET_LABEL:;
7490 }
7491 /* method parser_prod#ASlashMethid#n_slash= for (self: Object, TSlash) */
7492 void VIRTUAL_parser_prod__ASlashMethid__n_slash_61d(val* self, val* p0) {
7493 parser_prod__ASlashMethid__n_slash_61d(self, p0); /* Direct call parser_prod#ASlashMethid#n_slash= on <self:Object(ASlashMethid)>*/
7494 RET_LABEL:;
7495 }
7496 /* method parser_prod#ASlashMethid#visit_all for (self: ASlashMethid, Visitor) */
7497 void parser_prod__ASlashMethid__visit_all(val* self, val* p0) {
7498 val* var_v /* var v: Visitor */;
7499 val* var /* : TSlash */;
7500 var_v = p0;
7501 var = self->attrs[COLOR_parser_nodes__ASlashMethid___n_slash].val; /* _n_slash on <self:ASlashMethid> */
7502 if (unlikely(var == NULL)) {
7503 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_slash");
7504 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2291);
7505 show_backtrace(1);
7506 }
7507 {
7508 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7509 }
7510 RET_LABEL:;
7511 }
7512 /* method parser_prod#ASlashMethid#visit_all for (self: Object, Visitor) */
7513 void VIRTUAL_parser_prod__ASlashMethid__visit_all(val* self, val* p0) {
7514 parser_prod__ASlashMethid__visit_all(self, p0); /* Direct call parser_prod#ASlashMethid#visit_all on <self:Object(ASlashMethid)>*/
7515 RET_LABEL:;
7516 }
7517 /* method parser_prod#APercentMethid#init_apercentmethid for (self: APercentMethid, nullable TPercent) */
7518 void parser_prod__APercentMethid__init_apercentmethid(val* self, val* p0) {
7519 val* var_n_percent /* var n_percent: nullable TPercent */;
7520 var_n_percent = p0;
7521 if (unlikely(var_n_percent == NULL)) {
7522 PRINT_ERROR("Runtime error: %s", "Cast failed");
7523 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2299);
7524 show_backtrace(1);
7525 }
7526 self->attrs[COLOR_parser_nodes__APercentMethid___n_percent].val = var_n_percent; /* _n_percent on <self:APercentMethid> */
7527 if (var_n_percent == NULL) {
7528 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7529 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2300);
7530 show_backtrace(1);
7531 } else {
7532 { /* Inline parser_nodes#ANode#parent= (var_n_percent,self) on <var_n_percent:nullable TPercent> */
7533 if (unlikely(var_n_percent == NULL)) {
7534 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7535 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
7536 show_backtrace(1);
7537 }
7538 var_n_percent->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_percent:nullable TPercent> */
7539 RET_LABEL1:(void)0;
7540 }
7541 }
7542 RET_LABEL:;
7543 }
7544 /* method parser_prod#APercentMethid#init_apercentmethid for (self: Object, nullable TPercent) */
7545 void VIRTUAL_parser_prod__APercentMethid__init_apercentmethid(val* self, val* p0) {
7546 parser_prod__APercentMethid__init_apercentmethid(self, p0); /* Direct call parser_prod#APercentMethid#init_apercentmethid on <self:Object(APercentMethid)>*/
7547 RET_LABEL:;
7548 }
7549 /* method parser_prod#APercentMethid#replace_child for (self: APercentMethid, ANode, nullable ANode) */
7550 void parser_prod__APercentMethid__replace_child(val* self, val* p0, val* p1) {
7551 val* var_old_child /* var old_child: ANode */;
7552 val* var_new_child /* var new_child: nullable ANode */;
7553 val* var /* : TPercent */;
7554 short int var1 /* : Bool */;
7555 short int var2 /* : Bool */;
7556 val* var_other /* var other: nullable Object */;
7557 short int var4 /* : Bool */;
7558 short int var6 /* : Bool */;
7559 short int var7 /* : Bool */;
7560 int cltype;
7561 int idtype;
7562 const char* var_class_name;
7563 var_old_child = p0;
7564 var_new_child = p1;
7565 var = self->attrs[COLOR_parser_nodes__APercentMethid___n_percent].val; /* _n_percent on <self:APercentMethid> */
7566 if (unlikely(var == NULL)) {
7567 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_percent");
7568 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2305);
7569 show_backtrace(1);
7570 }
7571 {
7572 { /* Inline kernel#Object#== (var,var_old_child) on <var:TPercent> */
7573 var_other = var_old_child;
7574 {
7575 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TPercent> */
7576 var6 = var == var_other;
7577 var4 = var6;
7578 goto RET_LABEL5;
7579 RET_LABEL5:(void)0;
7580 }
7581 }
7582 var2 = var4;
7583 goto RET_LABEL3;
7584 RET_LABEL3:(void)0;
7585 }
7586 var1 = var2;
7587 }
7588 if (var1){
7589 /* <var_new_child:nullable ANode> isa TPercent */
7590 cltype = type_parser_nodes__TPercent.color;
7591 idtype = type_parser_nodes__TPercent.id;
7592 if(var_new_child == NULL) {
7593 var7 = 0;
7594 } else {
7595 if(cltype >= var_new_child->type->table_size) {
7596 var7 = 0;
7597 } else {
7598 var7 = var_new_child->type->type_table[cltype] == idtype;
7599 }
7600 }
7601 if (unlikely(!var7)) {
7602 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
7603 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TPercent", var_class_name);
7604 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2306);
7605 show_backtrace(1);
7606 }
7607 {
7608 parser_prod__APercentMethid__n_percent_61d(self, var_new_child); /* Direct call parser_prod#APercentMethid#n_percent= on <self:APercentMethid>*/
7609 }
7610 goto RET_LABEL;
7611 } else {
7612 }
7613 RET_LABEL:;
7614 }
7615 /* method parser_prod#APercentMethid#replace_child for (self: Object, ANode, nullable ANode) */
7616 void VIRTUAL_parser_prod__APercentMethid__replace_child(val* self, val* p0, val* p1) {
7617 parser_prod__APercentMethid__replace_child(self, p0, p1); /* Direct call parser_prod#APercentMethid#replace_child on <self:Object(APercentMethid)>*/
7618 RET_LABEL:;
7619 }
7620 /* method parser_prod#APercentMethid#n_percent= for (self: APercentMethid, TPercent) */
7621 void parser_prod__APercentMethid__n_percent_61d(val* self, val* p0) {
7622 val* var_node /* var node: TPercent */;
7623 var_node = p0;
7624 self->attrs[COLOR_parser_nodes__APercentMethid___n_percent].val = var_node; /* _n_percent on <self:APercentMethid> */
7625 {
7626 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TPercent> */
7627 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TPercent> */
7628 RET_LABEL1:(void)0;
7629 }
7630 }
7631 RET_LABEL:;
7632 }
7633 /* method parser_prod#APercentMethid#n_percent= for (self: Object, TPercent) */
7634 void VIRTUAL_parser_prod__APercentMethid__n_percent_61d(val* self, val* p0) {
7635 parser_prod__APercentMethid__n_percent_61d(self, p0); /* Direct call parser_prod#APercentMethid#n_percent= on <self:Object(APercentMethid)>*/
7636 RET_LABEL:;
7637 }
7638 /* method parser_prod#APercentMethid#visit_all for (self: APercentMethid, Visitor) */
7639 void parser_prod__APercentMethid__visit_all(val* self, val* p0) {
7640 val* var_v /* var v: Visitor */;
7641 val* var /* : TPercent */;
7642 var_v = p0;
7643 var = self->attrs[COLOR_parser_nodes__APercentMethid___n_percent].val; /* _n_percent on <self:APercentMethid> */
7644 if (unlikely(var == NULL)) {
7645 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_percent");
7646 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2320);
7647 show_backtrace(1);
7648 }
7649 {
7650 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7651 }
7652 RET_LABEL:;
7653 }
7654 /* method parser_prod#APercentMethid#visit_all for (self: Object, Visitor) */
7655 void VIRTUAL_parser_prod__APercentMethid__visit_all(val* self, val* p0) {
7656 parser_prod__APercentMethid__visit_all(self, p0); /* Direct call parser_prod#APercentMethid#visit_all on <self:Object(APercentMethid)>*/
7657 RET_LABEL:;
7658 }
7659 /* method parser_prod#AEqMethid#init_aeqmethid for (self: AEqMethid, nullable TEq) */
7660 void parser_prod__AEqMethid__init_aeqmethid(val* self, val* p0) {
7661 val* var_n_eq /* var n_eq: nullable TEq */;
7662 var_n_eq = p0;
7663 if (unlikely(var_n_eq == NULL)) {
7664 PRINT_ERROR("Runtime error: %s", "Cast failed");
7665 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2328);
7666 show_backtrace(1);
7667 }
7668 self->attrs[COLOR_parser_nodes__AEqMethid___n_eq].val = var_n_eq; /* _n_eq on <self:AEqMethid> */
7669 if (var_n_eq == NULL) {
7670 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7671 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2329);
7672 show_backtrace(1);
7673 } else {
7674 { /* Inline parser_nodes#ANode#parent= (var_n_eq,self) on <var_n_eq:nullable TEq> */
7675 if (unlikely(var_n_eq == NULL)) {
7676 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7677 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
7678 show_backtrace(1);
7679 }
7680 var_n_eq->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_eq:nullable TEq> */
7681 RET_LABEL1:(void)0;
7682 }
7683 }
7684 RET_LABEL:;
7685 }
7686 /* method parser_prod#AEqMethid#init_aeqmethid for (self: Object, nullable TEq) */
7687 void VIRTUAL_parser_prod__AEqMethid__init_aeqmethid(val* self, val* p0) {
7688 parser_prod__AEqMethid__init_aeqmethid(self, p0); /* Direct call parser_prod#AEqMethid#init_aeqmethid on <self:Object(AEqMethid)>*/
7689 RET_LABEL:;
7690 }
7691 /* method parser_prod#AEqMethid#replace_child for (self: AEqMethid, ANode, nullable ANode) */
7692 void parser_prod__AEqMethid__replace_child(val* self, val* p0, val* p1) {
7693 val* var_old_child /* var old_child: ANode */;
7694 val* var_new_child /* var new_child: nullable ANode */;
7695 val* var /* : TEq */;
7696 short int var1 /* : Bool */;
7697 short int var2 /* : Bool */;
7698 val* var_other /* var other: nullable Object */;
7699 short int var4 /* : Bool */;
7700 short int var6 /* : Bool */;
7701 short int var7 /* : Bool */;
7702 int cltype;
7703 int idtype;
7704 const char* var_class_name;
7705 var_old_child = p0;
7706 var_new_child = p1;
7707 var = self->attrs[COLOR_parser_nodes__AEqMethid___n_eq].val; /* _n_eq on <self:AEqMethid> */
7708 if (unlikely(var == NULL)) {
7709 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_eq");
7710 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2334);
7711 show_backtrace(1);
7712 }
7713 {
7714 { /* Inline kernel#Object#== (var,var_old_child) on <var:TEq> */
7715 var_other = var_old_child;
7716 {
7717 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TEq> */
7718 var6 = var == var_other;
7719 var4 = var6;
7720 goto RET_LABEL5;
7721 RET_LABEL5:(void)0;
7722 }
7723 }
7724 var2 = var4;
7725 goto RET_LABEL3;
7726 RET_LABEL3:(void)0;
7727 }
7728 var1 = var2;
7729 }
7730 if (var1){
7731 /* <var_new_child:nullable ANode> isa TEq */
7732 cltype = type_parser_nodes__TEq.color;
7733 idtype = type_parser_nodes__TEq.id;
7734 if(var_new_child == NULL) {
7735 var7 = 0;
7736 } else {
7737 if(cltype >= var_new_child->type->table_size) {
7738 var7 = 0;
7739 } else {
7740 var7 = var_new_child->type->type_table[cltype] == idtype;
7741 }
7742 }
7743 if (unlikely(!var7)) {
7744 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
7745 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TEq", var_class_name);
7746 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2335);
7747 show_backtrace(1);
7748 }
7749 {
7750 parser_prod__AEqMethid__n_eq_61d(self, var_new_child); /* Direct call parser_prod#AEqMethid#n_eq= on <self:AEqMethid>*/
7751 }
7752 goto RET_LABEL;
7753 } else {
7754 }
7755 RET_LABEL:;
7756 }
7757 /* method parser_prod#AEqMethid#replace_child for (self: Object, ANode, nullable ANode) */
7758 void VIRTUAL_parser_prod__AEqMethid__replace_child(val* self, val* p0, val* p1) {
7759 parser_prod__AEqMethid__replace_child(self, p0, p1); /* Direct call parser_prod#AEqMethid#replace_child on <self:Object(AEqMethid)>*/
7760 RET_LABEL:;
7761 }
7762 /* method parser_prod#AEqMethid#n_eq= for (self: AEqMethid, TEq) */
7763 void parser_prod__AEqMethid__n_eq_61d(val* self, val* p0) {
7764 val* var_node /* var node: TEq */;
7765 var_node = p0;
7766 self->attrs[COLOR_parser_nodes__AEqMethid___n_eq].val = var_node; /* _n_eq on <self:AEqMethid> */
7767 {
7768 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TEq> */
7769 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TEq> */
7770 RET_LABEL1:(void)0;
7771 }
7772 }
7773 RET_LABEL:;
7774 }
7775 /* method parser_prod#AEqMethid#n_eq= for (self: Object, TEq) */
7776 void VIRTUAL_parser_prod__AEqMethid__n_eq_61d(val* self, val* p0) {
7777 parser_prod__AEqMethid__n_eq_61d(self, p0); /* Direct call parser_prod#AEqMethid#n_eq= on <self:Object(AEqMethid)>*/
7778 RET_LABEL:;
7779 }
7780 /* method parser_prod#AEqMethid#visit_all for (self: AEqMethid, Visitor) */
7781 void parser_prod__AEqMethid__visit_all(val* self, val* p0) {
7782 val* var_v /* var v: Visitor */;
7783 val* var /* : TEq */;
7784 var_v = p0;
7785 var = self->attrs[COLOR_parser_nodes__AEqMethid___n_eq].val; /* _n_eq on <self:AEqMethid> */
7786 if (unlikely(var == NULL)) {
7787 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_eq");
7788 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2349);
7789 show_backtrace(1);
7790 }
7791 {
7792 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7793 }
7794 RET_LABEL:;
7795 }
7796 /* method parser_prod#AEqMethid#visit_all for (self: Object, Visitor) */
7797 void VIRTUAL_parser_prod__AEqMethid__visit_all(val* self, val* p0) {
7798 parser_prod__AEqMethid__visit_all(self, p0); /* Direct call parser_prod#AEqMethid#visit_all on <self:Object(AEqMethid)>*/
7799 RET_LABEL:;
7800 }
7801 /* method parser_prod#ANeMethid#init_anemethid for (self: ANeMethid, nullable TNe) */
7802 void parser_prod__ANeMethid__init_anemethid(val* self, val* p0) {
7803 val* var_n_ne /* var n_ne: nullable TNe */;
7804 var_n_ne = p0;
7805 if (unlikely(var_n_ne == NULL)) {
7806 PRINT_ERROR("Runtime error: %s", "Cast failed");
7807 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2357);
7808 show_backtrace(1);
7809 }
7810 self->attrs[COLOR_parser_nodes__ANeMethid___n_ne].val = var_n_ne; /* _n_ne on <self:ANeMethid> */
7811 if (var_n_ne == NULL) {
7812 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7813 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2358);
7814 show_backtrace(1);
7815 } else {
7816 { /* Inline parser_nodes#ANode#parent= (var_n_ne,self) on <var_n_ne:nullable TNe> */
7817 if (unlikely(var_n_ne == NULL)) {
7818 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7819 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
7820 show_backtrace(1);
7821 }
7822 var_n_ne->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_ne:nullable TNe> */
7823 RET_LABEL1:(void)0;
7824 }
7825 }
7826 RET_LABEL:;
7827 }
7828 /* method parser_prod#ANeMethid#init_anemethid for (self: Object, nullable TNe) */
7829 void VIRTUAL_parser_prod__ANeMethid__init_anemethid(val* self, val* p0) {
7830 parser_prod__ANeMethid__init_anemethid(self, p0); /* Direct call parser_prod#ANeMethid#init_anemethid on <self:Object(ANeMethid)>*/
7831 RET_LABEL:;
7832 }
7833 /* method parser_prod#ANeMethid#replace_child for (self: ANeMethid, ANode, nullable ANode) */
7834 void parser_prod__ANeMethid__replace_child(val* self, val* p0, val* p1) {
7835 val* var_old_child /* var old_child: ANode */;
7836 val* var_new_child /* var new_child: nullable ANode */;
7837 val* var /* : TNe */;
7838 short int var1 /* : Bool */;
7839 short int var2 /* : Bool */;
7840 val* var_other /* var other: nullable Object */;
7841 short int var4 /* : Bool */;
7842 short int var6 /* : Bool */;
7843 short int var7 /* : Bool */;
7844 int cltype;
7845 int idtype;
7846 const char* var_class_name;
7847 var_old_child = p0;
7848 var_new_child = p1;
7849 var = self->attrs[COLOR_parser_nodes__ANeMethid___n_ne].val; /* _n_ne on <self:ANeMethid> */
7850 if (unlikely(var == NULL)) {
7851 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_ne");
7852 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2363);
7853 show_backtrace(1);
7854 }
7855 {
7856 { /* Inline kernel#Object#== (var,var_old_child) on <var:TNe> */
7857 var_other = var_old_child;
7858 {
7859 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TNe> */
7860 var6 = var == var_other;
7861 var4 = var6;
7862 goto RET_LABEL5;
7863 RET_LABEL5:(void)0;
7864 }
7865 }
7866 var2 = var4;
7867 goto RET_LABEL3;
7868 RET_LABEL3:(void)0;
7869 }
7870 var1 = var2;
7871 }
7872 if (var1){
7873 /* <var_new_child:nullable ANode> isa TNe */
7874 cltype = type_parser_nodes__TNe.color;
7875 idtype = type_parser_nodes__TNe.id;
7876 if(var_new_child == NULL) {
7877 var7 = 0;
7878 } else {
7879 if(cltype >= var_new_child->type->table_size) {
7880 var7 = 0;
7881 } else {
7882 var7 = var_new_child->type->type_table[cltype] == idtype;
7883 }
7884 }
7885 if (unlikely(!var7)) {
7886 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
7887 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TNe", var_class_name);
7888 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2364);
7889 show_backtrace(1);
7890 }
7891 {
7892 parser_prod__ANeMethid__n_ne_61d(self, var_new_child); /* Direct call parser_prod#ANeMethid#n_ne= on <self:ANeMethid>*/
7893 }
7894 goto RET_LABEL;
7895 } else {
7896 }
7897 RET_LABEL:;
7898 }
7899 /* method parser_prod#ANeMethid#replace_child for (self: Object, ANode, nullable ANode) */
7900 void VIRTUAL_parser_prod__ANeMethid__replace_child(val* self, val* p0, val* p1) {
7901 parser_prod__ANeMethid__replace_child(self, p0, p1); /* Direct call parser_prod#ANeMethid#replace_child on <self:Object(ANeMethid)>*/
7902 RET_LABEL:;
7903 }
7904 /* method parser_prod#ANeMethid#n_ne= for (self: ANeMethid, TNe) */
7905 void parser_prod__ANeMethid__n_ne_61d(val* self, val* p0) {
7906 val* var_node /* var node: TNe */;
7907 var_node = p0;
7908 self->attrs[COLOR_parser_nodes__ANeMethid___n_ne].val = var_node; /* _n_ne on <self:ANeMethid> */
7909 {
7910 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TNe> */
7911 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TNe> */
7912 RET_LABEL1:(void)0;
7913 }
7914 }
7915 RET_LABEL:;
7916 }
7917 /* method parser_prod#ANeMethid#n_ne= for (self: Object, TNe) */
7918 void VIRTUAL_parser_prod__ANeMethid__n_ne_61d(val* self, val* p0) {
7919 parser_prod__ANeMethid__n_ne_61d(self, p0); /* Direct call parser_prod#ANeMethid#n_ne= on <self:Object(ANeMethid)>*/
7920 RET_LABEL:;
7921 }
7922 /* method parser_prod#ANeMethid#visit_all for (self: ANeMethid, Visitor) */
7923 void parser_prod__ANeMethid__visit_all(val* self, val* p0) {
7924 val* var_v /* var v: Visitor */;
7925 val* var /* : TNe */;
7926 var_v = p0;
7927 var = self->attrs[COLOR_parser_nodes__ANeMethid___n_ne].val; /* _n_ne on <self:ANeMethid> */
7928 if (unlikely(var == NULL)) {
7929 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_ne");
7930 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2378);
7931 show_backtrace(1);
7932 }
7933 {
7934 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
7935 }
7936 RET_LABEL:;
7937 }
7938 /* method parser_prod#ANeMethid#visit_all for (self: Object, Visitor) */
7939 void VIRTUAL_parser_prod__ANeMethid__visit_all(val* self, val* p0) {
7940 parser_prod__ANeMethid__visit_all(self, p0); /* Direct call parser_prod#ANeMethid#visit_all on <self:Object(ANeMethid)>*/
7941 RET_LABEL:;
7942 }
7943 /* method parser_prod#ALeMethid#init_alemethid for (self: ALeMethid, nullable TLe) */
7944 void parser_prod__ALeMethid__init_alemethid(val* self, val* p0) {
7945 val* var_n_le /* var n_le: nullable TLe */;
7946 var_n_le = p0;
7947 if (unlikely(var_n_le == NULL)) {
7948 PRINT_ERROR("Runtime error: %s", "Cast failed");
7949 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2386);
7950 show_backtrace(1);
7951 }
7952 self->attrs[COLOR_parser_nodes__ALeMethid___n_le].val = var_n_le; /* _n_le on <self:ALeMethid> */
7953 if (var_n_le == NULL) {
7954 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7955 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2387);
7956 show_backtrace(1);
7957 } else {
7958 { /* Inline parser_nodes#ANode#parent= (var_n_le,self) on <var_n_le:nullable TLe> */
7959 if (unlikely(var_n_le == NULL)) {
7960 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7961 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
7962 show_backtrace(1);
7963 }
7964 var_n_le->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_le:nullable TLe> */
7965 RET_LABEL1:(void)0;
7966 }
7967 }
7968 RET_LABEL:;
7969 }
7970 /* method parser_prod#ALeMethid#init_alemethid for (self: Object, nullable TLe) */
7971 void VIRTUAL_parser_prod__ALeMethid__init_alemethid(val* self, val* p0) {
7972 parser_prod__ALeMethid__init_alemethid(self, p0); /* Direct call parser_prod#ALeMethid#init_alemethid on <self:Object(ALeMethid)>*/
7973 RET_LABEL:;
7974 }
7975 /* method parser_prod#ALeMethid#replace_child for (self: ALeMethid, ANode, nullable ANode) */
7976 void parser_prod__ALeMethid__replace_child(val* self, val* p0, val* p1) {
7977 val* var_old_child /* var old_child: ANode */;
7978 val* var_new_child /* var new_child: nullable ANode */;
7979 val* var /* : TLe */;
7980 short int var1 /* : Bool */;
7981 short int var2 /* : Bool */;
7982 val* var_other /* var other: nullable Object */;
7983 short int var4 /* : Bool */;
7984 short int var6 /* : Bool */;
7985 short int var7 /* : Bool */;
7986 int cltype;
7987 int idtype;
7988 const char* var_class_name;
7989 var_old_child = p0;
7990 var_new_child = p1;
7991 var = self->attrs[COLOR_parser_nodes__ALeMethid___n_le].val; /* _n_le on <self:ALeMethid> */
7992 if (unlikely(var == NULL)) {
7993 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_le");
7994 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2392);
7995 show_backtrace(1);
7996 }
7997 {
7998 { /* Inline kernel#Object#== (var,var_old_child) on <var:TLe> */
7999 var_other = var_old_child;
8000 {
8001 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TLe> */
8002 var6 = var == var_other;
8003 var4 = var6;
8004 goto RET_LABEL5;
8005 RET_LABEL5:(void)0;
8006 }
8007 }
8008 var2 = var4;
8009 goto RET_LABEL3;
8010 RET_LABEL3:(void)0;
8011 }
8012 var1 = var2;
8013 }
8014 if (var1){
8015 /* <var_new_child:nullable ANode> isa TLe */
8016 cltype = type_parser_nodes__TLe.color;
8017 idtype = type_parser_nodes__TLe.id;
8018 if(var_new_child == NULL) {
8019 var7 = 0;
8020 } else {
8021 if(cltype >= var_new_child->type->table_size) {
8022 var7 = 0;
8023 } else {
8024 var7 = var_new_child->type->type_table[cltype] == idtype;
8025 }
8026 }
8027 if (unlikely(!var7)) {
8028 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
8029 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TLe", var_class_name);
8030 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2393);
8031 show_backtrace(1);
8032 }
8033 {
8034 parser_prod__ALeMethid__n_le_61d(self, var_new_child); /* Direct call parser_prod#ALeMethid#n_le= on <self:ALeMethid>*/
8035 }
8036 goto RET_LABEL;
8037 } else {
8038 }
8039 RET_LABEL:;
8040 }
8041 /* method parser_prod#ALeMethid#replace_child for (self: Object, ANode, nullable ANode) */
8042 void VIRTUAL_parser_prod__ALeMethid__replace_child(val* self, val* p0, val* p1) {
8043 parser_prod__ALeMethid__replace_child(self, p0, p1); /* Direct call parser_prod#ALeMethid#replace_child on <self:Object(ALeMethid)>*/
8044 RET_LABEL:;
8045 }
8046 /* method parser_prod#ALeMethid#n_le= for (self: ALeMethid, TLe) */
8047 void parser_prod__ALeMethid__n_le_61d(val* self, val* p0) {
8048 val* var_node /* var node: TLe */;
8049 var_node = p0;
8050 self->attrs[COLOR_parser_nodes__ALeMethid___n_le].val = var_node; /* _n_le on <self:ALeMethid> */
8051 {
8052 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TLe> */
8053 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TLe> */
8054 RET_LABEL1:(void)0;
8055 }
8056 }
8057 RET_LABEL:;
8058 }
8059 /* method parser_prod#ALeMethid#n_le= for (self: Object, TLe) */
8060 void VIRTUAL_parser_prod__ALeMethid__n_le_61d(val* self, val* p0) {
8061 parser_prod__ALeMethid__n_le_61d(self, p0); /* Direct call parser_prod#ALeMethid#n_le= on <self:Object(ALeMethid)>*/
8062 RET_LABEL:;
8063 }
8064 /* method parser_prod#ALeMethid#visit_all for (self: ALeMethid, Visitor) */
8065 void parser_prod__ALeMethid__visit_all(val* self, val* p0) {
8066 val* var_v /* var v: Visitor */;
8067 val* var /* : TLe */;
8068 var_v = p0;
8069 var = self->attrs[COLOR_parser_nodes__ALeMethid___n_le].val; /* _n_le on <self:ALeMethid> */
8070 if (unlikely(var == NULL)) {
8071 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_le");
8072 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2407);
8073 show_backtrace(1);
8074 }
8075 {
8076 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8077 }
8078 RET_LABEL:;
8079 }
8080 /* method parser_prod#ALeMethid#visit_all for (self: Object, Visitor) */
8081 void VIRTUAL_parser_prod__ALeMethid__visit_all(val* self, val* p0) {
8082 parser_prod__ALeMethid__visit_all(self, p0); /* Direct call parser_prod#ALeMethid#visit_all on <self:Object(ALeMethid)>*/
8083 RET_LABEL:;
8084 }
8085 /* method parser_prod#AGeMethid#init_agemethid for (self: AGeMethid, nullable TGe) */
8086 void parser_prod__AGeMethid__init_agemethid(val* self, val* p0) {
8087 val* var_n_ge /* var n_ge: nullable TGe */;
8088 var_n_ge = p0;
8089 if (unlikely(var_n_ge == NULL)) {
8090 PRINT_ERROR("Runtime error: %s", "Cast failed");
8091 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2415);
8092 show_backtrace(1);
8093 }
8094 self->attrs[COLOR_parser_nodes__AGeMethid___n_ge].val = var_n_ge; /* _n_ge on <self:AGeMethid> */
8095 if (var_n_ge == NULL) {
8096 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8097 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2416);
8098 show_backtrace(1);
8099 } else {
8100 { /* Inline parser_nodes#ANode#parent= (var_n_ge,self) on <var_n_ge:nullable TGe> */
8101 if (unlikely(var_n_ge == NULL)) {
8102 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8103 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
8104 show_backtrace(1);
8105 }
8106 var_n_ge->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_ge:nullable TGe> */
8107 RET_LABEL1:(void)0;
8108 }
8109 }
8110 RET_LABEL:;
8111 }
8112 /* method parser_prod#AGeMethid#init_agemethid for (self: Object, nullable TGe) */
8113 void VIRTUAL_parser_prod__AGeMethid__init_agemethid(val* self, val* p0) {
8114 parser_prod__AGeMethid__init_agemethid(self, p0); /* Direct call parser_prod#AGeMethid#init_agemethid on <self:Object(AGeMethid)>*/
8115 RET_LABEL:;
8116 }
8117 /* method parser_prod#AGeMethid#replace_child for (self: AGeMethid, ANode, nullable ANode) */
8118 void parser_prod__AGeMethid__replace_child(val* self, val* p0, val* p1) {
8119 val* var_old_child /* var old_child: ANode */;
8120 val* var_new_child /* var new_child: nullable ANode */;
8121 val* var /* : TGe */;
8122 short int var1 /* : Bool */;
8123 short int var2 /* : Bool */;
8124 val* var_other /* var other: nullable Object */;
8125 short int var4 /* : Bool */;
8126 short int var6 /* : Bool */;
8127 short int var7 /* : Bool */;
8128 int cltype;
8129 int idtype;
8130 const char* var_class_name;
8131 var_old_child = p0;
8132 var_new_child = p1;
8133 var = self->attrs[COLOR_parser_nodes__AGeMethid___n_ge].val; /* _n_ge on <self:AGeMethid> */
8134 if (unlikely(var == NULL)) {
8135 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_ge");
8136 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2421);
8137 show_backtrace(1);
8138 }
8139 {
8140 { /* Inline kernel#Object#== (var,var_old_child) on <var:TGe> */
8141 var_other = var_old_child;
8142 {
8143 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TGe> */
8144 var6 = var == var_other;
8145 var4 = var6;
8146 goto RET_LABEL5;
8147 RET_LABEL5:(void)0;
8148 }
8149 }
8150 var2 = var4;
8151 goto RET_LABEL3;
8152 RET_LABEL3:(void)0;
8153 }
8154 var1 = var2;
8155 }
8156 if (var1){
8157 /* <var_new_child:nullable ANode> isa TGe */
8158 cltype = type_parser_nodes__TGe.color;
8159 idtype = type_parser_nodes__TGe.id;
8160 if(var_new_child == NULL) {
8161 var7 = 0;
8162 } else {
8163 if(cltype >= var_new_child->type->table_size) {
8164 var7 = 0;
8165 } else {
8166 var7 = var_new_child->type->type_table[cltype] == idtype;
8167 }
8168 }
8169 if (unlikely(!var7)) {
8170 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
8171 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TGe", var_class_name);
8172 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2422);
8173 show_backtrace(1);
8174 }
8175 {
8176 parser_prod__AGeMethid__n_ge_61d(self, var_new_child); /* Direct call parser_prod#AGeMethid#n_ge= on <self:AGeMethid>*/
8177 }
8178 goto RET_LABEL;
8179 } else {
8180 }
8181 RET_LABEL:;
8182 }
8183 /* method parser_prod#AGeMethid#replace_child for (self: Object, ANode, nullable ANode) */
8184 void VIRTUAL_parser_prod__AGeMethid__replace_child(val* self, val* p0, val* p1) {
8185 parser_prod__AGeMethid__replace_child(self, p0, p1); /* Direct call parser_prod#AGeMethid#replace_child on <self:Object(AGeMethid)>*/
8186 RET_LABEL:;
8187 }
8188 /* method parser_prod#AGeMethid#n_ge= for (self: AGeMethid, TGe) */
8189 void parser_prod__AGeMethid__n_ge_61d(val* self, val* p0) {
8190 val* var_node /* var node: TGe */;
8191 var_node = p0;
8192 self->attrs[COLOR_parser_nodes__AGeMethid___n_ge].val = var_node; /* _n_ge on <self:AGeMethid> */
8193 {
8194 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TGe> */
8195 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TGe> */
8196 RET_LABEL1:(void)0;
8197 }
8198 }
8199 RET_LABEL:;
8200 }
8201 /* method parser_prod#AGeMethid#n_ge= for (self: Object, TGe) */
8202 void VIRTUAL_parser_prod__AGeMethid__n_ge_61d(val* self, val* p0) {
8203 parser_prod__AGeMethid__n_ge_61d(self, p0); /* Direct call parser_prod#AGeMethid#n_ge= on <self:Object(AGeMethid)>*/
8204 RET_LABEL:;
8205 }
8206 /* method parser_prod#AGeMethid#visit_all for (self: AGeMethid, Visitor) */
8207 void parser_prod__AGeMethid__visit_all(val* self, val* p0) {
8208 val* var_v /* var v: Visitor */;
8209 val* var /* : TGe */;
8210 var_v = p0;
8211 var = self->attrs[COLOR_parser_nodes__AGeMethid___n_ge].val; /* _n_ge on <self:AGeMethid> */
8212 if (unlikely(var == NULL)) {
8213 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_ge");
8214 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2436);
8215 show_backtrace(1);
8216 }
8217 {
8218 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8219 }
8220 RET_LABEL:;
8221 }
8222 /* method parser_prod#AGeMethid#visit_all for (self: Object, Visitor) */
8223 void VIRTUAL_parser_prod__AGeMethid__visit_all(val* self, val* p0) {
8224 parser_prod__AGeMethid__visit_all(self, p0); /* Direct call parser_prod#AGeMethid#visit_all on <self:Object(AGeMethid)>*/
8225 RET_LABEL:;
8226 }
8227 /* method parser_prod#ALtMethid#init_altmethid for (self: ALtMethid, nullable TLt) */
8228 void parser_prod__ALtMethid__init_altmethid(val* self, val* p0) {
8229 val* var_n_lt /* var n_lt: nullable TLt */;
8230 var_n_lt = p0;
8231 if (unlikely(var_n_lt == NULL)) {
8232 PRINT_ERROR("Runtime error: %s", "Cast failed");
8233 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2444);
8234 show_backtrace(1);
8235 }
8236 self->attrs[COLOR_parser_nodes__ALtMethid___n_lt].val = var_n_lt; /* _n_lt on <self:ALtMethid> */
8237 if (var_n_lt == NULL) {
8238 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8239 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2445);
8240 show_backtrace(1);
8241 } else {
8242 { /* Inline parser_nodes#ANode#parent= (var_n_lt,self) on <var_n_lt:nullable TLt> */
8243 if (unlikely(var_n_lt == NULL)) {
8244 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8245 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
8246 show_backtrace(1);
8247 }
8248 var_n_lt->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_lt:nullable TLt> */
8249 RET_LABEL1:(void)0;
8250 }
8251 }
8252 RET_LABEL:;
8253 }
8254 /* method parser_prod#ALtMethid#init_altmethid for (self: Object, nullable TLt) */
8255 void VIRTUAL_parser_prod__ALtMethid__init_altmethid(val* self, val* p0) {
8256 parser_prod__ALtMethid__init_altmethid(self, p0); /* Direct call parser_prod#ALtMethid#init_altmethid on <self:Object(ALtMethid)>*/
8257 RET_LABEL:;
8258 }
8259 /* method parser_prod#ALtMethid#replace_child for (self: ALtMethid, ANode, nullable ANode) */
8260 void parser_prod__ALtMethid__replace_child(val* self, val* p0, val* p1) {
8261 val* var_old_child /* var old_child: ANode */;
8262 val* var_new_child /* var new_child: nullable ANode */;
8263 val* var /* : TLt */;
8264 short int var1 /* : Bool */;
8265 short int var2 /* : Bool */;
8266 val* var_other /* var other: nullable Object */;
8267 short int var4 /* : Bool */;
8268 short int var6 /* : Bool */;
8269 short int var7 /* : Bool */;
8270 int cltype;
8271 int idtype;
8272 const char* var_class_name;
8273 var_old_child = p0;
8274 var_new_child = p1;
8275 var = self->attrs[COLOR_parser_nodes__ALtMethid___n_lt].val; /* _n_lt on <self:ALtMethid> */
8276 if (unlikely(var == NULL)) {
8277 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_lt");
8278 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2450);
8279 show_backtrace(1);
8280 }
8281 {
8282 { /* Inline kernel#Object#== (var,var_old_child) on <var:TLt> */
8283 var_other = var_old_child;
8284 {
8285 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TLt> */
8286 var6 = var == var_other;
8287 var4 = var6;
8288 goto RET_LABEL5;
8289 RET_LABEL5:(void)0;
8290 }
8291 }
8292 var2 = var4;
8293 goto RET_LABEL3;
8294 RET_LABEL3:(void)0;
8295 }
8296 var1 = var2;
8297 }
8298 if (var1){
8299 /* <var_new_child:nullable ANode> isa TLt */
8300 cltype = type_parser_nodes__TLt.color;
8301 idtype = type_parser_nodes__TLt.id;
8302 if(var_new_child == NULL) {
8303 var7 = 0;
8304 } else {
8305 if(cltype >= var_new_child->type->table_size) {
8306 var7 = 0;
8307 } else {
8308 var7 = var_new_child->type->type_table[cltype] == idtype;
8309 }
8310 }
8311 if (unlikely(!var7)) {
8312 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
8313 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TLt", var_class_name);
8314 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2451);
8315 show_backtrace(1);
8316 }
8317 {
8318 parser_prod__ALtMethid__n_lt_61d(self, var_new_child); /* Direct call parser_prod#ALtMethid#n_lt= on <self:ALtMethid>*/
8319 }
8320 goto RET_LABEL;
8321 } else {
8322 }
8323 RET_LABEL:;
8324 }
8325 /* method parser_prod#ALtMethid#replace_child for (self: Object, ANode, nullable ANode) */
8326 void VIRTUAL_parser_prod__ALtMethid__replace_child(val* self, val* p0, val* p1) {
8327 parser_prod__ALtMethid__replace_child(self, p0, p1); /* Direct call parser_prod#ALtMethid#replace_child on <self:Object(ALtMethid)>*/
8328 RET_LABEL:;
8329 }
8330 /* method parser_prod#ALtMethid#n_lt= for (self: ALtMethid, TLt) */
8331 void parser_prod__ALtMethid__n_lt_61d(val* self, val* p0) {
8332 val* var_node /* var node: TLt */;
8333 var_node = p0;
8334 self->attrs[COLOR_parser_nodes__ALtMethid___n_lt].val = var_node; /* _n_lt on <self:ALtMethid> */
8335 {
8336 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TLt> */
8337 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TLt> */
8338 RET_LABEL1:(void)0;
8339 }
8340 }
8341 RET_LABEL:;
8342 }
8343 /* method parser_prod#ALtMethid#n_lt= for (self: Object, TLt) */
8344 void VIRTUAL_parser_prod__ALtMethid__n_lt_61d(val* self, val* p0) {
8345 parser_prod__ALtMethid__n_lt_61d(self, p0); /* Direct call parser_prod#ALtMethid#n_lt= on <self:Object(ALtMethid)>*/
8346 RET_LABEL:;
8347 }
8348 /* method parser_prod#ALtMethid#visit_all for (self: ALtMethid, Visitor) */
8349 void parser_prod__ALtMethid__visit_all(val* self, val* p0) {
8350 val* var_v /* var v: Visitor */;
8351 val* var /* : TLt */;
8352 var_v = p0;
8353 var = self->attrs[COLOR_parser_nodes__ALtMethid___n_lt].val; /* _n_lt on <self:ALtMethid> */
8354 if (unlikely(var == NULL)) {
8355 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_lt");
8356 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2465);
8357 show_backtrace(1);
8358 }
8359 {
8360 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8361 }
8362 RET_LABEL:;
8363 }
8364 /* method parser_prod#ALtMethid#visit_all for (self: Object, Visitor) */
8365 void VIRTUAL_parser_prod__ALtMethid__visit_all(val* self, val* p0) {
8366 parser_prod__ALtMethid__visit_all(self, p0); /* Direct call parser_prod#ALtMethid#visit_all on <self:Object(ALtMethid)>*/
8367 RET_LABEL:;
8368 }
8369 /* method parser_prod#AGtMethid#init_agtmethid for (self: AGtMethid, nullable TGt) */
8370 void parser_prod__AGtMethid__init_agtmethid(val* self, val* p0) {
8371 val* var_n_gt /* var n_gt: nullable TGt */;
8372 var_n_gt = p0;
8373 if (unlikely(var_n_gt == NULL)) {
8374 PRINT_ERROR("Runtime error: %s", "Cast failed");
8375 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2473);
8376 show_backtrace(1);
8377 }
8378 self->attrs[COLOR_parser_nodes__AGtMethid___n_gt].val = var_n_gt; /* _n_gt on <self:AGtMethid> */
8379 if (var_n_gt == NULL) {
8380 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8381 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2474);
8382 show_backtrace(1);
8383 } else {
8384 { /* Inline parser_nodes#ANode#parent= (var_n_gt,self) on <var_n_gt:nullable TGt> */
8385 if (unlikely(var_n_gt == NULL)) {
8386 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8387 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
8388 show_backtrace(1);
8389 }
8390 var_n_gt->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_gt:nullable TGt> */
8391 RET_LABEL1:(void)0;
8392 }
8393 }
8394 RET_LABEL:;
8395 }
8396 /* method parser_prod#AGtMethid#init_agtmethid for (self: Object, nullable TGt) */
8397 void VIRTUAL_parser_prod__AGtMethid__init_agtmethid(val* self, val* p0) {
8398 parser_prod__AGtMethid__init_agtmethid(self, p0); /* Direct call parser_prod#AGtMethid#init_agtmethid on <self:Object(AGtMethid)>*/
8399 RET_LABEL:;
8400 }
8401 /* method parser_prod#AGtMethid#replace_child for (self: AGtMethid, ANode, nullable ANode) */
8402 void parser_prod__AGtMethid__replace_child(val* self, val* p0, val* p1) {
8403 val* var_old_child /* var old_child: ANode */;
8404 val* var_new_child /* var new_child: nullable ANode */;
8405 val* var /* : TGt */;
8406 short int var1 /* : Bool */;
8407 short int var2 /* : Bool */;
8408 val* var_other /* var other: nullable Object */;
8409 short int var4 /* : Bool */;
8410 short int var6 /* : Bool */;
8411 short int var7 /* : Bool */;
8412 int cltype;
8413 int idtype;
8414 const char* var_class_name;
8415 var_old_child = p0;
8416 var_new_child = p1;
8417 var = self->attrs[COLOR_parser_nodes__AGtMethid___n_gt].val; /* _n_gt on <self:AGtMethid> */
8418 if (unlikely(var == NULL)) {
8419 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_gt");
8420 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2479);
8421 show_backtrace(1);
8422 }
8423 {
8424 { /* Inline kernel#Object#== (var,var_old_child) on <var:TGt> */
8425 var_other = var_old_child;
8426 {
8427 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TGt> */
8428 var6 = var == var_other;
8429 var4 = var6;
8430 goto RET_LABEL5;
8431 RET_LABEL5:(void)0;
8432 }
8433 }
8434 var2 = var4;
8435 goto RET_LABEL3;
8436 RET_LABEL3:(void)0;
8437 }
8438 var1 = var2;
8439 }
8440 if (var1){
8441 /* <var_new_child:nullable ANode> isa TGt */
8442 cltype = type_parser_nodes__TGt.color;
8443 idtype = type_parser_nodes__TGt.id;
8444 if(var_new_child == NULL) {
8445 var7 = 0;
8446 } else {
8447 if(cltype >= var_new_child->type->table_size) {
8448 var7 = 0;
8449 } else {
8450 var7 = var_new_child->type->type_table[cltype] == idtype;
8451 }
8452 }
8453 if (unlikely(!var7)) {
8454 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
8455 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TGt", var_class_name);
8456 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2480);
8457 show_backtrace(1);
8458 }
8459 {
8460 parser_prod__AGtMethid__n_gt_61d(self, var_new_child); /* Direct call parser_prod#AGtMethid#n_gt= on <self:AGtMethid>*/
8461 }
8462 goto RET_LABEL;
8463 } else {
8464 }
8465 RET_LABEL:;
8466 }
8467 /* method parser_prod#AGtMethid#replace_child for (self: Object, ANode, nullable ANode) */
8468 void VIRTUAL_parser_prod__AGtMethid__replace_child(val* self, val* p0, val* p1) {
8469 parser_prod__AGtMethid__replace_child(self, p0, p1); /* Direct call parser_prod#AGtMethid#replace_child on <self:Object(AGtMethid)>*/
8470 RET_LABEL:;
8471 }
8472 /* method parser_prod#AGtMethid#n_gt= for (self: AGtMethid, TGt) */
8473 void parser_prod__AGtMethid__n_gt_61d(val* self, val* p0) {
8474 val* var_node /* var node: TGt */;
8475 var_node = p0;
8476 self->attrs[COLOR_parser_nodes__AGtMethid___n_gt].val = var_node; /* _n_gt on <self:AGtMethid> */
8477 {
8478 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TGt> */
8479 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TGt> */
8480 RET_LABEL1:(void)0;
8481 }
8482 }
8483 RET_LABEL:;
8484 }
8485 /* method parser_prod#AGtMethid#n_gt= for (self: Object, TGt) */
8486 void VIRTUAL_parser_prod__AGtMethid__n_gt_61d(val* self, val* p0) {
8487 parser_prod__AGtMethid__n_gt_61d(self, p0); /* Direct call parser_prod#AGtMethid#n_gt= on <self:Object(AGtMethid)>*/
8488 RET_LABEL:;
8489 }
8490 /* method parser_prod#AGtMethid#visit_all for (self: AGtMethid, Visitor) */
8491 void parser_prod__AGtMethid__visit_all(val* self, val* p0) {
8492 val* var_v /* var v: Visitor */;
8493 val* var /* : TGt */;
8494 var_v = p0;
8495 var = self->attrs[COLOR_parser_nodes__AGtMethid___n_gt].val; /* _n_gt on <self:AGtMethid> */
8496 if (unlikely(var == NULL)) {
8497 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_gt");
8498 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2494);
8499 show_backtrace(1);
8500 }
8501 {
8502 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8503 }
8504 RET_LABEL:;
8505 }
8506 /* method parser_prod#AGtMethid#visit_all for (self: Object, Visitor) */
8507 void VIRTUAL_parser_prod__AGtMethid__visit_all(val* self, val* p0) {
8508 parser_prod__AGtMethid__visit_all(self, p0); /* Direct call parser_prod#AGtMethid#visit_all on <self:Object(AGtMethid)>*/
8509 RET_LABEL:;
8510 }
8511 /* method parser_prod#ALlMethid#init_allmethid for (self: ALlMethid, nullable TLl) */
8512 void parser_prod__ALlMethid__init_allmethid(val* self, val* p0) {
8513 val* var_n_ll /* var n_ll: nullable TLl */;
8514 var_n_ll = p0;
8515 if (unlikely(var_n_ll == NULL)) {
8516 PRINT_ERROR("Runtime error: %s", "Cast failed");
8517 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2502);
8518 show_backtrace(1);
8519 }
8520 self->attrs[COLOR_parser_nodes__ALlMethid___n_ll].val = var_n_ll; /* _n_ll on <self:ALlMethid> */
8521 if (var_n_ll == NULL) {
8522 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8523 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2503);
8524 show_backtrace(1);
8525 } else {
8526 { /* Inline parser_nodes#ANode#parent= (var_n_ll,self) on <var_n_ll:nullable TLl> */
8527 if (unlikely(var_n_ll == NULL)) {
8528 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8529 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
8530 show_backtrace(1);
8531 }
8532 var_n_ll->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_ll:nullable TLl> */
8533 RET_LABEL1:(void)0;
8534 }
8535 }
8536 RET_LABEL:;
8537 }
8538 /* method parser_prod#ALlMethid#init_allmethid for (self: Object, nullable TLl) */
8539 void VIRTUAL_parser_prod__ALlMethid__init_allmethid(val* self, val* p0) {
8540 parser_prod__ALlMethid__init_allmethid(self, p0); /* Direct call parser_prod#ALlMethid#init_allmethid on <self:Object(ALlMethid)>*/
8541 RET_LABEL:;
8542 }
8543 /* method parser_prod#ALlMethid#replace_child for (self: ALlMethid, ANode, nullable ANode) */
8544 void parser_prod__ALlMethid__replace_child(val* self, val* p0, val* p1) {
8545 val* var_old_child /* var old_child: ANode */;
8546 val* var_new_child /* var new_child: nullable ANode */;
8547 val* var /* : TLl */;
8548 short int var1 /* : Bool */;
8549 short int var2 /* : Bool */;
8550 val* var_other /* var other: nullable Object */;
8551 short int var4 /* : Bool */;
8552 short int var6 /* : Bool */;
8553 short int var7 /* : Bool */;
8554 int cltype;
8555 int idtype;
8556 const char* var_class_name;
8557 var_old_child = p0;
8558 var_new_child = p1;
8559 var = self->attrs[COLOR_parser_nodes__ALlMethid___n_ll].val; /* _n_ll on <self:ALlMethid> */
8560 if (unlikely(var == NULL)) {
8561 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_ll");
8562 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2508);
8563 show_backtrace(1);
8564 }
8565 {
8566 { /* Inline kernel#Object#== (var,var_old_child) on <var:TLl> */
8567 var_other = var_old_child;
8568 {
8569 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TLl> */
8570 var6 = var == var_other;
8571 var4 = var6;
8572 goto RET_LABEL5;
8573 RET_LABEL5:(void)0;
8574 }
8575 }
8576 var2 = var4;
8577 goto RET_LABEL3;
8578 RET_LABEL3:(void)0;
8579 }
8580 var1 = var2;
8581 }
8582 if (var1){
8583 /* <var_new_child:nullable ANode> isa TLl */
8584 cltype = type_parser_nodes__TLl.color;
8585 idtype = type_parser_nodes__TLl.id;
8586 if(var_new_child == NULL) {
8587 var7 = 0;
8588 } else {
8589 if(cltype >= var_new_child->type->table_size) {
8590 var7 = 0;
8591 } else {
8592 var7 = var_new_child->type->type_table[cltype] == idtype;
8593 }
8594 }
8595 if (unlikely(!var7)) {
8596 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
8597 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TLl", var_class_name);
8598 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2509);
8599 show_backtrace(1);
8600 }
8601 {
8602 parser_prod__ALlMethid__n_ll_61d(self, var_new_child); /* Direct call parser_prod#ALlMethid#n_ll= on <self:ALlMethid>*/
8603 }
8604 goto RET_LABEL;
8605 } else {
8606 }
8607 RET_LABEL:;
8608 }
8609 /* method parser_prod#ALlMethid#replace_child for (self: Object, ANode, nullable ANode) */
8610 void VIRTUAL_parser_prod__ALlMethid__replace_child(val* self, val* p0, val* p1) {
8611 parser_prod__ALlMethid__replace_child(self, p0, p1); /* Direct call parser_prod#ALlMethid#replace_child on <self:Object(ALlMethid)>*/
8612 RET_LABEL:;
8613 }
8614 /* method parser_prod#ALlMethid#n_ll= for (self: ALlMethid, TLl) */
8615 void parser_prod__ALlMethid__n_ll_61d(val* self, val* p0) {
8616 val* var_node /* var node: TLl */;
8617 var_node = p0;
8618 self->attrs[COLOR_parser_nodes__ALlMethid___n_ll].val = var_node; /* _n_ll on <self:ALlMethid> */
8619 {
8620 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TLl> */
8621 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TLl> */
8622 RET_LABEL1:(void)0;
8623 }
8624 }
8625 RET_LABEL:;
8626 }
8627 /* method parser_prod#ALlMethid#n_ll= for (self: Object, TLl) */
8628 void VIRTUAL_parser_prod__ALlMethid__n_ll_61d(val* self, val* p0) {
8629 parser_prod__ALlMethid__n_ll_61d(self, p0); /* Direct call parser_prod#ALlMethid#n_ll= on <self:Object(ALlMethid)>*/
8630 RET_LABEL:;
8631 }
8632 /* method parser_prod#ALlMethid#visit_all for (self: ALlMethid, Visitor) */
8633 void parser_prod__ALlMethid__visit_all(val* self, val* p0) {
8634 val* var_v /* var v: Visitor */;
8635 val* var /* : TLl */;
8636 var_v = p0;
8637 var = self->attrs[COLOR_parser_nodes__ALlMethid___n_ll].val; /* _n_ll on <self:ALlMethid> */
8638 if (unlikely(var == NULL)) {
8639 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_ll");
8640 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2523);
8641 show_backtrace(1);
8642 }
8643 {
8644 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8645 }
8646 RET_LABEL:;
8647 }
8648 /* method parser_prod#ALlMethid#visit_all for (self: Object, Visitor) */
8649 void VIRTUAL_parser_prod__ALlMethid__visit_all(val* self, val* p0) {
8650 parser_prod__ALlMethid__visit_all(self, p0); /* Direct call parser_prod#ALlMethid#visit_all on <self:Object(ALlMethid)>*/
8651 RET_LABEL:;
8652 }
8653 /* method parser_prod#AGgMethid#init_aggmethid for (self: AGgMethid, nullable TGg) */
8654 void parser_prod__AGgMethid__init_aggmethid(val* self, val* p0) {
8655 val* var_n_gg /* var n_gg: nullable TGg */;
8656 var_n_gg = p0;
8657 if (unlikely(var_n_gg == NULL)) {
8658 PRINT_ERROR("Runtime error: %s", "Cast failed");
8659 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2531);
8660 show_backtrace(1);
8661 }
8662 self->attrs[COLOR_parser_nodes__AGgMethid___n_gg].val = var_n_gg; /* _n_gg on <self:AGgMethid> */
8663 if (var_n_gg == NULL) {
8664 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8665 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2532);
8666 show_backtrace(1);
8667 } else {
8668 { /* Inline parser_nodes#ANode#parent= (var_n_gg,self) on <var_n_gg:nullable TGg> */
8669 if (unlikely(var_n_gg == NULL)) {
8670 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8671 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
8672 show_backtrace(1);
8673 }
8674 var_n_gg->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_gg:nullable TGg> */
8675 RET_LABEL1:(void)0;
8676 }
8677 }
8678 RET_LABEL:;
8679 }
8680 /* method parser_prod#AGgMethid#init_aggmethid for (self: Object, nullable TGg) */
8681 void VIRTUAL_parser_prod__AGgMethid__init_aggmethid(val* self, val* p0) {
8682 parser_prod__AGgMethid__init_aggmethid(self, p0); /* Direct call parser_prod#AGgMethid#init_aggmethid on <self:Object(AGgMethid)>*/
8683 RET_LABEL:;
8684 }
8685 /* method parser_prod#AGgMethid#replace_child for (self: AGgMethid, ANode, nullable ANode) */
8686 void parser_prod__AGgMethid__replace_child(val* self, val* p0, val* p1) {
8687 val* var_old_child /* var old_child: ANode */;
8688 val* var_new_child /* var new_child: nullable ANode */;
8689 val* var /* : TGg */;
8690 short int var1 /* : Bool */;
8691 short int var2 /* : Bool */;
8692 val* var_other /* var other: nullable Object */;
8693 short int var4 /* : Bool */;
8694 short int var6 /* : Bool */;
8695 short int var7 /* : Bool */;
8696 int cltype;
8697 int idtype;
8698 const char* var_class_name;
8699 var_old_child = p0;
8700 var_new_child = p1;
8701 var = self->attrs[COLOR_parser_nodes__AGgMethid___n_gg].val; /* _n_gg on <self:AGgMethid> */
8702 if (unlikely(var == NULL)) {
8703 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_gg");
8704 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2537);
8705 show_backtrace(1);
8706 }
8707 {
8708 { /* Inline kernel#Object#== (var,var_old_child) on <var:TGg> */
8709 var_other = var_old_child;
8710 {
8711 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TGg> */
8712 var6 = var == var_other;
8713 var4 = var6;
8714 goto RET_LABEL5;
8715 RET_LABEL5:(void)0;
8716 }
8717 }
8718 var2 = var4;
8719 goto RET_LABEL3;
8720 RET_LABEL3:(void)0;
8721 }
8722 var1 = var2;
8723 }
8724 if (var1){
8725 /* <var_new_child:nullable ANode> isa TGg */
8726 cltype = type_parser_nodes__TGg.color;
8727 idtype = type_parser_nodes__TGg.id;
8728 if(var_new_child == NULL) {
8729 var7 = 0;
8730 } else {
8731 if(cltype >= var_new_child->type->table_size) {
8732 var7 = 0;
8733 } else {
8734 var7 = var_new_child->type->type_table[cltype] == idtype;
8735 }
8736 }
8737 if (unlikely(!var7)) {
8738 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
8739 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TGg", var_class_name);
8740 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2538);
8741 show_backtrace(1);
8742 }
8743 {
8744 parser_prod__AGgMethid__n_gg_61d(self, var_new_child); /* Direct call parser_prod#AGgMethid#n_gg= on <self:AGgMethid>*/
8745 }
8746 goto RET_LABEL;
8747 } else {
8748 }
8749 RET_LABEL:;
8750 }
8751 /* method parser_prod#AGgMethid#replace_child for (self: Object, ANode, nullable ANode) */
8752 void VIRTUAL_parser_prod__AGgMethid__replace_child(val* self, val* p0, val* p1) {
8753 parser_prod__AGgMethid__replace_child(self, p0, p1); /* Direct call parser_prod#AGgMethid#replace_child on <self:Object(AGgMethid)>*/
8754 RET_LABEL:;
8755 }
8756 /* method parser_prod#AGgMethid#n_gg= for (self: AGgMethid, TGg) */
8757 void parser_prod__AGgMethid__n_gg_61d(val* self, val* p0) {
8758 val* var_node /* var node: TGg */;
8759 var_node = p0;
8760 self->attrs[COLOR_parser_nodes__AGgMethid___n_gg].val = var_node; /* _n_gg on <self:AGgMethid> */
8761 {
8762 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TGg> */
8763 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TGg> */
8764 RET_LABEL1:(void)0;
8765 }
8766 }
8767 RET_LABEL:;
8768 }
8769 /* method parser_prod#AGgMethid#n_gg= for (self: Object, TGg) */
8770 void VIRTUAL_parser_prod__AGgMethid__n_gg_61d(val* self, val* p0) {
8771 parser_prod__AGgMethid__n_gg_61d(self, p0); /* Direct call parser_prod#AGgMethid#n_gg= on <self:Object(AGgMethid)>*/
8772 RET_LABEL:;
8773 }
8774 /* method parser_prod#AGgMethid#visit_all for (self: AGgMethid, Visitor) */
8775 void parser_prod__AGgMethid__visit_all(val* self, val* p0) {
8776 val* var_v /* var v: Visitor */;
8777 val* var /* : TGg */;
8778 var_v = p0;
8779 var = self->attrs[COLOR_parser_nodes__AGgMethid___n_gg].val; /* _n_gg on <self:AGgMethid> */
8780 if (unlikely(var == NULL)) {
8781 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_gg");
8782 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2552);
8783 show_backtrace(1);
8784 }
8785 {
8786 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
8787 }
8788 RET_LABEL:;
8789 }
8790 /* method parser_prod#AGgMethid#visit_all for (self: Object, Visitor) */
8791 void VIRTUAL_parser_prod__AGgMethid__visit_all(val* self, val* p0) {
8792 parser_prod__AGgMethid__visit_all(self, p0); /* Direct call parser_prod#AGgMethid#visit_all on <self:Object(AGgMethid)>*/
8793 RET_LABEL:;
8794 }
8795 /* method parser_prod#ABraMethid#init_abramethid for (self: ABraMethid, nullable TObra, nullable TCbra) */
8796 void parser_prod__ABraMethid__init_abramethid(val* self, val* p0, val* p1) {
8797 val* var_n_obra /* var n_obra: nullable TObra */;
8798 val* var_n_cbra /* var n_cbra: nullable TCbra */;
8799 var_n_obra = p0;
8800 var_n_cbra = p1;
8801 if (unlikely(var_n_obra == NULL)) {
8802 PRINT_ERROR("Runtime error: %s", "Cast failed");
8803 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2561);
8804 show_backtrace(1);
8805 }
8806 self->attrs[COLOR_parser_nodes__ABraMethid___n_obra].val = var_n_obra; /* _n_obra on <self:ABraMethid> */
8807 if (var_n_obra == NULL) {
8808 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8809 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2562);
8810 show_backtrace(1);
8811 } else {
8812 { /* Inline parser_nodes#ANode#parent= (var_n_obra,self) on <var_n_obra:nullable TObra> */
8813 if (unlikely(var_n_obra == NULL)) {
8814 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8815 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
8816 show_backtrace(1);
8817 }
8818 var_n_obra->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_obra:nullable TObra> */
8819 RET_LABEL1:(void)0;
8820 }
8821 }
8822 if (unlikely(var_n_cbra == NULL)) {
8823 PRINT_ERROR("Runtime error: %s", "Cast failed");
8824 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2563);
8825 show_backtrace(1);
8826 }
8827 self->attrs[COLOR_parser_nodes__ABraMethid___n_cbra].val = var_n_cbra; /* _n_cbra on <self:ABraMethid> */
8828 if (var_n_cbra == NULL) {
8829 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8830 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2564);
8831 show_backtrace(1);
8832 } else {
8833 { /* Inline parser_nodes#ANode#parent= (var_n_cbra,self) on <var_n_cbra:nullable TCbra> */
8834 if (unlikely(var_n_cbra == NULL)) {
8835 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8836 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
8837 show_backtrace(1);
8838 }
8839 var_n_cbra->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_cbra:nullable TCbra> */
8840 RET_LABEL2:(void)0;
8841 }
8842 }
8843 RET_LABEL:;
8844 }
8845 /* method parser_prod#ABraMethid#init_abramethid for (self: Object, nullable TObra, nullable TCbra) */
8846 void VIRTUAL_parser_prod__ABraMethid__init_abramethid(val* self, val* p0, val* p1) {
8847 parser_prod__ABraMethid__init_abramethid(self, p0, p1); /* Direct call parser_prod#ABraMethid#init_abramethid on <self:Object(ABraMethid)>*/
8848 RET_LABEL:;
8849 }
8850 /* method parser_prod#ABraMethid#replace_child for (self: ABraMethid, ANode, nullable ANode) */
8851 void parser_prod__ABraMethid__replace_child(val* self, val* p0, val* p1) {
8852 val* var_old_child /* var old_child: ANode */;
8853 val* var_new_child /* var new_child: nullable ANode */;
8854 val* var /* : TObra */;
8855 short int var1 /* : Bool */;
8856 short int var2 /* : Bool */;
8857 val* var_other /* var other: nullable Object */;
8858 short int var4 /* : Bool */;
8859 short int var6 /* : Bool */;
8860 short int var7 /* : Bool */;
8861 int cltype;
8862 int idtype;
8863 const char* var_class_name;
8864 val* var8 /* : TCbra */;
8865 short int var9 /* : Bool */;
8866 short int var10 /* : Bool */;
8867 short int var12 /* : Bool */;
8868 short int var14 /* : Bool */;
8869 short int var15 /* : Bool */;
8870 int cltype16;
8871 int idtype17;
8872 const char* var_class_name18;
8873 var_old_child = p0;
8874 var_new_child = p1;
8875 var = self->attrs[COLOR_parser_nodes__ABraMethid___n_obra].val; /* _n_obra on <self:ABraMethid> */
8876 if (unlikely(var == NULL)) {
8877 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_obra");
8878 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2569);
8879 show_backtrace(1);
8880 }
8881 {
8882 { /* Inline kernel#Object#== (var,var_old_child) on <var:TObra> */
8883 var_other = var_old_child;
8884 {
8885 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TObra> */
8886 var6 = var == var_other;
8887 var4 = var6;
8888 goto RET_LABEL5;
8889 RET_LABEL5:(void)0;
8890 }
8891 }
8892 var2 = var4;
8893 goto RET_LABEL3;
8894 RET_LABEL3:(void)0;
8895 }
8896 var1 = var2;
8897 }
8898 if (var1){
8899 /* <var_new_child:nullable ANode> isa TObra */
8900 cltype = type_parser_nodes__TObra.color;
8901 idtype = type_parser_nodes__TObra.id;
8902 if(var_new_child == NULL) {
8903 var7 = 0;
8904 } else {
8905 if(cltype >= var_new_child->type->table_size) {
8906 var7 = 0;
8907 } else {
8908 var7 = var_new_child->type->type_table[cltype] == idtype;
8909 }
8910 }
8911 if (unlikely(!var7)) {
8912 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
8913 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TObra", var_class_name);
8914 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2570);
8915 show_backtrace(1);
8916 }
8917 {
8918 parser_prod__ABraMethid__n_obra_61d(self, var_new_child); /* Direct call parser_prod#ABraMethid#n_obra= on <self:ABraMethid>*/
8919 }
8920 goto RET_LABEL;
8921 } else {
8922 }
8923 var8 = self->attrs[COLOR_parser_nodes__ABraMethid___n_cbra].val; /* _n_cbra on <self:ABraMethid> */
8924 if (unlikely(var8 == NULL)) {
8925 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_cbra");
8926 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2573);
8927 show_backtrace(1);
8928 }
8929 {
8930 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:TCbra> */
8931 var_other = var_old_child;
8932 {
8933 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:TCbra> */
8934 var14 = var8 == var_other;
8935 var12 = var14;
8936 goto RET_LABEL13;
8937 RET_LABEL13:(void)0;
8938 }
8939 }
8940 var10 = var12;
8941 goto RET_LABEL11;
8942 RET_LABEL11:(void)0;
8943 }
8944 var9 = var10;
8945 }
8946 if (var9){
8947 /* <var_new_child:nullable ANode> isa TCbra */
8948 cltype16 = type_parser_nodes__TCbra.color;
8949 idtype17 = type_parser_nodes__TCbra.id;
8950 if(var_new_child == NULL) {
8951 var15 = 0;
8952 } else {
8953 if(cltype16 >= var_new_child->type->table_size) {
8954 var15 = 0;
8955 } else {
8956 var15 = var_new_child->type->type_table[cltype16] == idtype17;
8957 }
8958 }
8959 if (unlikely(!var15)) {
8960 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
8961 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TCbra", var_class_name18);
8962 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2574);
8963 show_backtrace(1);
8964 }
8965 {
8966 parser_prod__ABraMethid__n_cbra_61d(self, var_new_child); /* Direct call parser_prod#ABraMethid#n_cbra= on <self:ABraMethid>*/
8967 }
8968 goto RET_LABEL;
8969 } else {
8970 }
8971 RET_LABEL:;
8972 }
8973 /* method parser_prod#ABraMethid#replace_child for (self: Object, ANode, nullable ANode) */
8974 void VIRTUAL_parser_prod__ABraMethid__replace_child(val* self, val* p0, val* p1) {
8975 parser_prod__ABraMethid__replace_child(self, p0, p1); /* Direct call parser_prod#ABraMethid#replace_child on <self:Object(ABraMethid)>*/
8976 RET_LABEL:;
8977 }
8978 /* method parser_prod#ABraMethid#n_obra= for (self: ABraMethid, TObra) */
8979 void parser_prod__ABraMethid__n_obra_61d(val* self, val* p0) {
8980 val* var_node /* var node: TObra */;
8981 var_node = p0;
8982 self->attrs[COLOR_parser_nodes__ABraMethid___n_obra].val = var_node; /* _n_obra on <self:ABraMethid> */
8983 {
8984 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TObra> */
8985 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TObra> */
8986 RET_LABEL1:(void)0;
8987 }
8988 }
8989 RET_LABEL:;
8990 }
8991 /* method parser_prod#ABraMethid#n_obra= for (self: Object, TObra) */
8992 void VIRTUAL_parser_prod__ABraMethid__n_obra_61d(val* self, val* p0) {
8993 parser_prod__ABraMethid__n_obra_61d(self, p0); /* Direct call parser_prod#ABraMethid#n_obra= on <self:Object(ABraMethid)>*/
8994 RET_LABEL:;
8995 }
8996 /* method parser_prod#ABraMethid#n_cbra= for (self: ABraMethid, TCbra) */
8997 void parser_prod__ABraMethid__n_cbra_61d(val* self, val* p0) {
8998 val* var_node /* var node: TCbra */;
8999 var_node = p0;
9000 self->attrs[COLOR_parser_nodes__ABraMethid___n_cbra].val = var_node; /* _n_cbra on <self:ABraMethid> */
9001 {
9002 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TCbra> */
9003 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TCbra> */
9004 RET_LABEL1:(void)0;
9005 }
9006 }
9007 RET_LABEL:;
9008 }
9009 /* method parser_prod#ABraMethid#n_cbra= for (self: Object, TCbra) */
9010 void VIRTUAL_parser_prod__ABraMethid__n_cbra_61d(val* self, val* p0) {
9011 parser_prod__ABraMethid__n_cbra_61d(self, p0); /* Direct call parser_prod#ABraMethid#n_cbra= on <self:Object(ABraMethid)>*/
9012 RET_LABEL:;
9013 }
9014 /* method parser_prod#ABraMethid#visit_all for (self: ABraMethid, Visitor) */
9015 void parser_prod__ABraMethid__visit_all(val* self, val* p0) {
9016 val* var_v /* var v: Visitor */;
9017 val* var /* : TObra */;
9018 val* var1 /* : TCbra */;
9019 var_v = p0;
9020 var = self->attrs[COLOR_parser_nodes__ABraMethid___n_obra].val; /* _n_obra on <self:ABraMethid> */
9021 if (unlikely(var == NULL)) {
9022 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_obra");
9023 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2593);
9024 show_backtrace(1);
9025 }
9026 {
9027 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9028 }
9029 var1 = self->attrs[COLOR_parser_nodes__ABraMethid___n_cbra].val; /* _n_cbra on <self:ABraMethid> */
9030 if (unlikely(var1 == NULL)) {
9031 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_cbra");
9032 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2594);
9033 show_backtrace(1);
9034 }
9035 {
9036 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9037 }
9038 RET_LABEL:;
9039 }
9040 /* method parser_prod#ABraMethid#visit_all for (self: Object, Visitor) */
9041 void VIRTUAL_parser_prod__ABraMethid__visit_all(val* self, val* p0) {
9042 parser_prod__ABraMethid__visit_all(self, p0); /* Direct call parser_prod#ABraMethid#visit_all on <self:Object(ABraMethid)>*/
9043 RET_LABEL:;
9044 }
9045 /* method parser_prod#AStarshipMethid#init_astarshipmethid for (self: AStarshipMethid, nullable TStarship) */
9046 void parser_prod__AStarshipMethid__init_astarshipmethid(val* self, val* p0) {
9047 val* var_n_starship /* var n_starship: nullable TStarship */;
9048 var_n_starship = p0;
9049 if (unlikely(var_n_starship == NULL)) {
9050 PRINT_ERROR("Runtime error: %s", "Cast failed");
9051 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2602);
9052 show_backtrace(1);
9053 }
9054 self->attrs[COLOR_parser_nodes__AStarshipMethid___n_starship].val = var_n_starship; /* _n_starship on <self:AStarshipMethid> */
9055 if (var_n_starship == NULL) {
9056 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9057 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2603);
9058 show_backtrace(1);
9059 } else {
9060 { /* Inline parser_nodes#ANode#parent= (var_n_starship,self) on <var_n_starship:nullable TStarship> */
9061 if (unlikely(var_n_starship == NULL)) {
9062 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9063 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
9064 show_backtrace(1);
9065 }
9066 var_n_starship->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_starship:nullable TStarship> */
9067 RET_LABEL1:(void)0;
9068 }
9069 }
9070 RET_LABEL:;
9071 }
9072 /* method parser_prod#AStarshipMethid#init_astarshipmethid for (self: Object, nullable TStarship) */
9073 void VIRTUAL_parser_prod__AStarshipMethid__init_astarshipmethid(val* self, val* p0) {
9074 parser_prod__AStarshipMethid__init_astarshipmethid(self, p0); /* Direct call parser_prod#AStarshipMethid#init_astarshipmethid on <self:Object(AStarshipMethid)>*/
9075 RET_LABEL:;
9076 }
9077 /* method parser_prod#AStarshipMethid#replace_child for (self: AStarshipMethid, ANode, nullable ANode) */
9078 void parser_prod__AStarshipMethid__replace_child(val* self, val* p0, val* p1) {
9079 val* var_old_child /* var old_child: ANode */;
9080 val* var_new_child /* var new_child: nullable ANode */;
9081 val* var /* : TStarship */;
9082 short int var1 /* : Bool */;
9083 short int var2 /* : Bool */;
9084 val* var_other /* var other: nullable Object */;
9085 short int var4 /* : Bool */;
9086 short int var6 /* : Bool */;
9087 short int var7 /* : Bool */;
9088 int cltype;
9089 int idtype;
9090 const char* var_class_name;
9091 var_old_child = p0;
9092 var_new_child = p1;
9093 var = self->attrs[COLOR_parser_nodes__AStarshipMethid___n_starship].val; /* _n_starship on <self:AStarshipMethid> */
9094 if (unlikely(var == NULL)) {
9095 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_starship");
9096 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2608);
9097 show_backtrace(1);
9098 }
9099 {
9100 { /* Inline kernel#Object#== (var,var_old_child) on <var:TStarship> */
9101 var_other = var_old_child;
9102 {
9103 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TStarship> */
9104 var6 = var == var_other;
9105 var4 = var6;
9106 goto RET_LABEL5;
9107 RET_LABEL5:(void)0;
9108 }
9109 }
9110 var2 = var4;
9111 goto RET_LABEL3;
9112 RET_LABEL3:(void)0;
9113 }
9114 var1 = var2;
9115 }
9116 if (var1){
9117 /* <var_new_child:nullable ANode> isa TStarship */
9118 cltype = type_parser_nodes__TStarship.color;
9119 idtype = type_parser_nodes__TStarship.id;
9120 if(var_new_child == NULL) {
9121 var7 = 0;
9122 } else {
9123 if(cltype >= var_new_child->type->table_size) {
9124 var7 = 0;
9125 } else {
9126 var7 = var_new_child->type->type_table[cltype] == idtype;
9127 }
9128 }
9129 if (unlikely(!var7)) {
9130 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
9131 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TStarship", var_class_name);
9132 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2609);
9133 show_backtrace(1);
9134 }
9135 {
9136 parser_prod__AStarshipMethid__n_starship_61d(self, var_new_child); /* Direct call parser_prod#AStarshipMethid#n_starship= on <self:AStarshipMethid>*/
9137 }
9138 goto RET_LABEL;
9139 } else {
9140 }
9141 RET_LABEL:;
9142 }
9143 /* method parser_prod#AStarshipMethid#replace_child for (self: Object, ANode, nullable ANode) */
9144 void VIRTUAL_parser_prod__AStarshipMethid__replace_child(val* self, val* p0, val* p1) {
9145 parser_prod__AStarshipMethid__replace_child(self, p0, p1); /* Direct call parser_prod#AStarshipMethid#replace_child on <self:Object(AStarshipMethid)>*/
9146 RET_LABEL:;
9147 }
9148 /* method parser_prod#AStarshipMethid#n_starship= for (self: AStarshipMethid, TStarship) */
9149 void parser_prod__AStarshipMethid__n_starship_61d(val* self, val* p0) {
9150 val* var_node /* var node: TStarship */;
9151 var_node = p0;
9152 self->attrs[COLOR_parser_nodes__AStarshipMethid___n_starship].val = var_node; /* _n_starship on <self:AStarshipMethid> */
9153 {
9154 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TStarship> */
9155 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TStarship> */
9156 RET_LABEL1:(void)0;
9157 }
9158 }
9159 RET_LABEL:;
9160 }
9161 /* method parser_prod#AStarshipMethid#n_starship= for (self: Object, TStarship) */
9162 void VIRTUAL_parser_prod__AStarshipMethid__n_starship_61d(val* self, val* p0) {
9163 parser_prod__AStarshipMethid__n_starship_61d(self, p0); /* Direct call parser_prod#AStarshipMethid#n_starship= on <self:Object(AStarshipMethid)>*/
9164 RET_LABEL:;
9165 }
9166 /* method parser_prod#AStarshipMethid#visit_all for (self: AStarshipMethid, Visitor) */
9167 void parser_prod__AStarshipMethid__visit_all(val* self, val* p0) {
9168 val* var_v /* var v: Visitor */;
9169 val* var /* : TStarship */;
9170 var_v = p0;
9171 var = self->attrs[COLOR_parser_nodes__AStarshipMethid___n_starship].val; /* _n_starship on <self:AStarshipMethid> */
9172 if (unlikely(var == NULL)) {
9173 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_starship");
9174 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2623);
9175 show_backtrace(1);
9176 }
9177 {
9178 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9179 }
9180 RET_LABEL:;
9181 }
9182 /* method parser_prod#AStarshipMethid#visit_all for (self: Object, Visitor) */
9183 void VIRTUAL_parser_prod__AStarshipMethid__visit_all(val* self, val* p0) {
9184 parser_prod__AStarshipMethid__visit_all(self, p0); /* Direct call parser_prod#AStarshipMethid#visit_all on <self:Object(AStarshipMethid)>*/
9185 RET_LABEL:;
9186 }
9187 /* method parser_prod#AAssignMethid#init_aassignmethid for (self: AAssignMethid, nullable TId, nullable TAssign) */
9188 void parser_prod__AAssignMethid__init_aassignmethid(val* self, val* p0, val* p1) {
9189 val* var_n_id /* var n_id: nullable TId */;
9190 val* var_n_assign /* var n_assign: nullable TAssign */;
9191 var_n_id = p0;
9192 var_n_assign = p1;
9193 if (unlikely(var_n_id == NULL)) {
9194 PRINT_ERROR("Runtime error: %s", "Cast failed");
9195 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2632);
9196 show_backtrace(1);
9197 }
9198 self->attrs[COLOR_parser_nodes__AAssignMethid___n_id].val = var_n_id; /* _n_id on <self:AAssignMethid> */
9199 if (var_n_id == NULL) {
9200 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9201 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2633);
9202 show_backtrace(1);
9203 } else {
9204 { /* Inline parser_nodes#ANode#parent= (var_n_id,self) on <var_n_id:nullable TId> */
9205 if (unlikely(var_n_id == NULL)) {
9206 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9207 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
9208 show_backtrace(1);
9209 }
9210 var_n_id->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_id:nullable TId> */
9211 RET_LABEL1:(void)0;
9212 }
9213 }
9214 if (unlikely(var_n_assign == NULL)) {
9215 PRINT_ERROR("Runtime error: %s", "Cast failed");
9216 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2634);
9217 show_backtrace(1);
9218 }
9219 self->attrs[COLOR_parser_nodes__AAssignMethid___n_assign].val = var_n_assign; /* _n_assign on <self:AAssignMethid> */
9220 if (var_n_assign == NULL) {
9221 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9222 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2635);
9223 show_backtrace(1);
9224 } else {
9225 { /* Inline parser_nodes#ANode#parent= (var_n_assign,self) on <var_n_assign:nullable TAssign> */
9226 if (unlikely(var_n_assign == NULL)) {
9227 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9228 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
9229 show_backtrace(1);
9230 }
9231 var_n_assign->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_assign:nullable TAssign> */
9232 RET_LABEL2:(void)0;
9233 }
9234 }
9235 RET_LABEL:;
9236 }
9237 /* method parser_prod#AAssignMethid#init_aassignmethid for (self: Object, nullable TId, nullable TAssign) */
9238 void VIRTUAL_parser_prod__AAssignMethid__init_aassignmethid(val* self, val* p0, val* p1) {
9239 parser_prod__AAssignMethid__init_aassignmethid(self, p0, p1); /* Direct call parser_prod#AAssignMethid#init_aassignmethid on <self:Object(AAssignMethid)>*/
9240 RET_LABEL:;
9241 }
9242 /* method parser_prod#AAssignMethid#replace_child for (self: AAssignMethid, ANode, nullable ANode) */
9243 void parser_prod__AAssignMethid__replace_child(val* self, val* p0, val* p1) {
9244 val* var_old_child /* var old_child: ANode */;
9245 val* var_new_child /* var new_child: nullable ANode */;
9246 val* var /* : TId */;
9247 short int var1 /* : Bool */;
9248 short int var2 /* : Bool */;
9249 val* var_other /* var other: nullable Object */;
9250 short int var4 /* : Bool */;
9251 short int var6 /* : Bool */;
9252 short int var7 /* : Bool */;
9253 int cltype;
9254 int idtype;
9255 const char* var_class_name;
9256 val* var8 /* : TAssign */;
9257 short int var9 /* : Bool */;
9258 short int var10 /* : Bool */;
9259 short int var12 /* : Bool */;
9260 short int var14 /* : Bool */;
9261 short int var15 /* : Bool */;
9262 int cltype16;
9263 int idtype17;
9264 const char* var_class_name18;
9265 var_old_child = p0;
9266 var_new_child = p1;
9267 var = self->attrs[COLOR_parser_nodes__AAssignMethid___n_id].val; /* _n_id on <self:AAssignMethid> */
9268 if (unlikely(var == NULL)) {
9269 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
9270 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2640);
9271 show_backtrace(1);
9272 }
9273 {
9274 { /* Inline kernel#Object#== (var,var_old_child) on <var:TId> */
9275 var_other = var_old_child;
9276 {
9277 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TId> */
9278 var6 = var == var_other;
9279 var4 = var6;
9280 goto RET_LABEL5;
9281 RET_LABEL5:(void)0;
9282 }
9283 }
9284 var2 = var4;
9285 goto RET_LABEL3;
9286 RET_LABEL3:(void)0;
9287 }
9288 var1 = var2;
9289 }
9290 if (var1){
9291 /* <var_new_child:nullable ANode> isa TId */
9292 cltype = type_parser_nodes__TId.color;
9293 idtype = type_parser_nodes__TId.id;
9294 if(var_new_child == NULL) {
9295 var7 = 0;
9296 } else {
9297 if(cltype >= var_new_child->type->table_size) {
9298 var7 = 0;
9299 } else {
9300 var7 = var_new_child->type->type_table[cltype] == idtype;
9301 }
9302 }
9303 if (unlikely(!var7)) {
9304 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
9305 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TId", var_class_name);
9306 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2641);
9307 show_backtrace(1);
9308 }
9309 {
9310 parser_prod__AAssignMethid__n_id_61d(self, var_new_child); /* Direct call parser_prod#AAssignMethid#n_id= on <self:AAssignMethid>*/
9311 }
9312 goto RET_LABEL;
9313 } else {
9314 }
9315 var8 = self->attrs[COLOR_parser_nodes__AAssignMethid___n_assign].val; /* _n_assign on <self:AAssignMethid> */
9316 if (unlikely(var8 == NULL)) {
9317 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_assign");
9318 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2644);
9319 show_backtrace(1);
9320 }
9321 {
9322 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:TAssign> */
9323 var_other = var_old_child;
9324 {
9325 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:TAssign> */
9326 var14 = var8 == var_other;
9327 var12 = var14;
9328 goto RET_LABEL13;
9329 RET_LABEL13:(void)0;
9330 }
9331 }
9332 var10 = var12;
9333 goto RET_LABEL11;
9334 RET_LABEL11:(void)0;
9335 }
9336 var9 = var10;
9337 }
9338 if (var9){
9339 /* <var_new_child:nullable ANode> isa TAssign */
9340 cltype16 = type_parser_nodes__TAssign.color;
9341 idtype17 = type_parser_nodes__TAssign.id;
9342 if(var_new_child == NULL) {
9343 var15 = 0;
9344 } else {
9345 if(cltype16 >= var_new_child->type->table_size) {
9346 var15 = 0;
9347 } else {
9348 var15 = var_new_child->type->type_table[cltype16] == idtype17;
9349 }
9350 }
9351 if (unlikely(!var15)) {
9352 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
9353 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TAssign", var_class_name18);
9354 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2645);
9355 show_backtrace(1);
9356 }
9357 {
9358 parser_prod__AAssignMethid__n_assign_61d(self, var_new_child); /* Direct call parser_prod#AAssignMethid#n_assign= on <self:AAssignMethid>*/
9359 }
9360 goto RET_LABEL;
9361 } else {
9362 }
9363 RET_LABEL:;
9364 }
9365 /* method parser_prod#AAssignMethid#replace_child for (self: Object, ANode, nullable ANode) */
9366 void VIRTUAL_parser_prod__AAssignMethid__replace_child(val* self, val* p0, val* p1) {
9367 parser_prod__AAssignMethid__replace_child(self, p0, p1); /* Direct call parser_prod#AAssignMethid#replace_child on <self:Object(AAssignMethid)>*/
9368 RET_LABEL:;
9369 }
9370 /* method parser_prod#AAssignMethid#n_id= for (self: AAssignMethid, TId) */
9371 void parser_prod__AAssignMethid__n_id_61d(val* self, val* p0) {
9372 val* var_node /* var node: TId */;
9373 var_node = p0;
9374 self->attrs[COLOR_parser_nodes__AAssignMethid___n_id].val = var_node; /* _n_id on <self:AAssignMethid> */
9375 {
9376 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TId> */
9377 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TId> */
9378 RET_LABEL1:(void)0;
9379 }
9380 }
9381 RET_LABEL:;
9382 }
9383 /* method parser_prod#AAssignMethid#n_id= for (self: Object, TId) */
9384 void VIRTUAL_parser_prod__AAssignMethid__n_id_61d(val* self, val* p0) {
9385 parser_prod__AAssignMethid__n_id_61d(self, p0); /* Direct call parser_prod#AAssignMethid#n_id= on <self:Object(AAssignMethid)>*/
9386 RET_LABEL:;
9387 }
9388 /* method parser_prod#AAssignMethid#n_assign= for (self: AAssignMethid, TAssign) */
9389 void parser_prod__AAssignMethid__n_assign_61d(val* self, val* p0) {
9390 val* var_node /* var node: TAssign */;
9391 var_node = p0;
9392 self->attrs[COLOR_parser_nodes__AAssignMethid___n_assign].val = var_node; /* _n_assign on <self:AAssignMethid> */
9393 {
9394 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TAssign> */
9395 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TAssign> */
9396 RET_LABEL1:(void)0;
9397 }
9398 }
9399 RET_LABEL:;
9400 }
9401 /* method parser_prod#AAssignMethid#n_assign= for (self: Object, TAssign) */
9402 void VIRTUAL_parser_prod__AAssignMethid__n_assign_61d(val* self, val* p0) {
9403 parser_prod__AAssignMethid__n_assign_61d(self, p0); /* Direct call parser_prod#AAssignMethid#n_assign= on <self:Object(AAssignMethid)>*/
9404 RET_LABEL:;
9405 }
9406 /* method parser_prod#AAssignMethid#visit_all for (self: AAssignMethid, Visitor) */
9407 void parser_prod__AAssignMethid__visit_all(val* self, val* p0) {
9408 val* var_v /* var v: Visitor */;
9409 val* var /* : TId */;
9410 val* var1 /* : TAssign */;
9411 var_v = p0;
9412 var = self->attrs[COLOR_parser_nodes__AAssignMethid___n_id].val; /* _n_id on <self:AAssignMethid> */
9413 if (unlikely(var == NULL)) {
9414 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
9415 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2664);
9416 show_backtrace(1);
9417 }
9418 {
9419 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9420 }
9421 var1 = self->attrs[COLOR_parser_nodes__AAssignMethid___n_assign].val; /* _n_assign on <self:AAssignMethid> */
9422 if (unlikely(var1 == NULL)) {
9423 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_assign");
9424 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2665);
9425 show_backtrace(1);
9426 }
9427 {
9428 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9429 }
9430 RET_LABEL:;
9431 }
9432 /* method parser_prod#AAssignMethid#visit_all for (self: Object, Visitor) */
9433 void VIRTUAL_parser_prod__AAssignMethid__visit_all(val* self, val* p0) {
9434 parser_prod__AAssignMethid__visit_all(self, p0); /* Direct call parser_prod#AAssignMethid#visit_all on <self:Object(AAssignMethid)>*/
9435 RET_LABEL:;
9436 }
9437 /* method parser_prod#ABraassignMethid#init_abraassignmethid for (self: ABraassignMethid, nullable TObra, nullable TCbra, nullable TAssign) */
9438 void parser_prod__ABraassignMethid__init_abraassignmethid(val* self, val* p0, val* p1, val* p2) {
9439 val* var_n_obra /* var n_obra: nullable TObra */;
9440 val* var_n_cbra /* var n_cbra: nullable TCbra */;
9441 val* var_n_assign /* var n_assign: nullable TAssign */;
9442 var_n_obra = p0;
9443 var_n_cbra = p1;
9444 var_n_assign = p2;
9445 if (unlikely(var_n_obra == NULL)) {
9446 PRINT_ERROR("Runtime error: %s", "Cast failed");
9447 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2675);
9448 show_backtrace(1);
9449 }
9450 self->attrs[COLOR_parser_nodes__ABraassignMethid___n_obra].val = var_n_obra; /* _n_obra on <self:ABraassignMethid> */
9451 if (var_n_obra == NULL) {
9452 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9453 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2676);
9454 show_backtrace(1);
9455 } else {
9456 { /* Inline parser_nodes#ANode#parent= (var_n_obra,self) on <var_n_obra:nullable TObra> */
9457 if (unlikely(var_n_obra == NULL)) {
9458 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9459 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
9460 show_backtrace(1);
9461 }
9462 var_n_obra->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_obra:nullable TObra> */
9463 RET_LABEL1:(void)0;
9464 }
9465 }
9466 if (unlikely(var_n_cbra == NULL)) {
9467 PRINT_ERROR("Runtime error: %s", "Cast failed");
9468 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2677);
9469 show_backtrace(1);
9470 }
9471 self->attrs[COLOR_parser_nodes__ABraassignMethid___n_cbra].val = var_n_cbra; /* _n_cbra on <self:ABraassignMethid> */
9472 if (var_n_cbra == NULL) {
9473 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9474 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2678);
9475 show_backtrace(1);
9476 } else {
9477 { /* Inline parser_nodes#ANode#parent= (var_n_cbra,self) on <var_n_cbra:nullable TCbra> */
9478 if (unlikely(var_n_cbra == NULL)) {
9479 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9480 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
9481 show_backtrace(1);
9482 }
9483 var_n_cbra->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_cbra:nullable TCbra> */
9484 RET_LABEL2:(void)0;
9485 }
9486 }
9487 if (unlikely(var_n_assign == NULL)) {
9488 PRINT_ERROR("Runtime error: %s", "Cast failed");
9489 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2679);
9490 show_backtrace(1);
9491 }
9492 self->attrs[COLOR_parser_nodes__ABraassignMethid___n_assign].val = var_n_assign; /* _n_assign on <self:ABraassignMethid> */
9493 if (var_n_assign == NULL) {
9494 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9495 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2680);
9496 show_backtrace(1);
9497 } else {
9498 { /* Inline parser_nodes#ANode#parent= (var_n_assign,self) on <var_n_assign:nullable TAssign> */
9499 if (unlikely(var_n_assign == NULL)) {
9500 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9501 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 38);
9502 show_backtrace(1);
9503 }
9504 var_n_assign->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_assign:nullable TAssign> */
9505 RET_LABEL3:(void)0;
9506 }
9507 }
9508 RET_LABEL:;
9509 }
9510 /* method parser_prod#ABraassignMethid#init_abraassignmethid for (self: Object, nullable TObra, nullable TCbra, nullable TAssign) */
9511 void VIRTUAL_parser_prod__ABraassignMethid__init_abraassignmethid(val* self, val* p0, val* p1, val* p2) {
9512 parser_prod__ABraassignMethid__init_abraassignmethid(self, p0, p1, p2); /* Direct call parser_prod#ABraassignMethid#init_abraassignmethid on <self:Object(ABraassignMethid)>*/
9513 RET_LABEL:;
9514 }
9515 /* method parser_prod#ABraassignMethid#replace_child for (self: ABraassignMethid, ANode, nullable ANode) */
9516 void parser_prod__ABraassignMethid__replace_child(val* self, val* p0, val* p1) {
9517 val* var_old_child /* var old_child: ANode */;
9518 val* var_new_child /* var new_child: nullable ANode */;
9519 val* var /* : TObra */;
9520 short int var1 /* : Bool */;
9521 short int var2 /* : Bool */;
9522 val* var_other /* var other: nullable Object */;
9523 short int var4 /* : Bool */;
9524 short int var6 /* : Bool */;
9525 short int var7 /* : Bool */;
9526 int cltype;
9527 int idtype;
9528 const char* var_class_name;
9529 val* var8 /* : TCbra */;
9530 short int var9 /* : Bool */;
9531 short int var10 /* : Bool */;
9532 short int var12 /* : Bool */;
9533 short int var14 /* : Bool */;
9534 short int var15 /* : Bool */;
9535 int cltype16;
9536 int idtype17;
9537 const char* var_class_name18;
9538 val* var19 /* : TAssign */;
9539 short int var20 /* : Bool */;
9540 short int var21 /* : Bool */;
9541 short int var23 /* : Bool */;
9542 short int var25 /* : Bool */;
9543 short int var26 /* : Bool */;
9544 int cltype27;
9545 int idtype28;
9546 const char* var_class_name29;
9547 var_old_child = p0;
9548 var_new_child = p1;
9549 var = self->attrs[COLOR_parser_nodes__ABraassignMethid___n_obra].val; /* _n_obra on <self:ABraassignMethid> */
9550 if (unlikely(var == NULL)) {
9551 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_obra");
9552 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2685);
9553 show_backtrace(1);
9554 }
9555 {
9556 { /* Inline kernel#Object#== (var,var_old_child) on <var:TObra> */
9557 var_other = var_old_child;
9558 {
9559 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TObra> */
9560 var6 = var == var_other;
9561 var4 = var6;
9562 goto RET_LABEL5;
9563 RET_LABEL5:(void)0;
9564 }
9565 }
9566 var2 = var4;
9567 goto RET_LABEL3;
9568 RET_LABEL3:(void)0;
9569 }
9570 var1 = var2;
9571 }
9572 if (var1){
9573 /* <var_new_child:nullable ANode> isa TObra */
9574 cltype = type_parser_nodes__TObra.color;
9575 idtype = type_parser_nodes__TObra.id;
9576 if(var_new_child == NULL) {
9577 var7 = 0;
9578 } else {
9579 if(cltype >= var_new_child->type->table_size) {
9580 var7 = 0;
9581 } else {
9582 var7 = var_new_child->type->type_table[cltype] == idtype;
9583 }
9584 }
9585 if (unlikely(!var7)) {
9586 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
9587 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TObra", var_class_name);
9588 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2686);
9589 show_backtrace(1);
9590 }
9591 {
9592 parser_prod__ABraassignMethid__n_obra_61d(self, var_new_child); /* Direct call parser_prod#ABraassignMethid#n_obra= on <self:ABraassignMethid>*/
9593 }
9594 goto RET_LABEL;
9595 } else {
9596 }
9597 var8 = self->attrs[COLOR_parser_nodes__ABraassignMethid___n_cbra].val; /* _n_cbra on <self:ABraassignMethid> */
9598 if (unlikely(var8 == NULL)) {
9599 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_cbra");
9600 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2689);
9601 show_backtrace(1);
9602 }
9603 {
9604 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:TCbra> */
9605 var_other = var_old_child;
9606 {
9607 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:TCbra> */
9608 var14 = var8 == var_other;
9609 var12 = var14;
9610 goto RET_LABEL13;
9611 RET_LABEL13:(void)0;
9612 }
9613 }
9614 var10 = var12;
9615 goto RET_LABEL11;
9616 RET_LABEL11:(void)0;
9617 }
9618 var9 = var10;
9619 }
9620 if (var9){
9621 /* <var_new_child:nullable ANode> isa TCbra */
9622 cltype16 = type_parser_nodes__TCbra.color;
9623 idtype17 = type_parser_nodes__TCbra.id;
9624 if(var_new_child == NULL) {
9625 var15 = 0;
9626 } else {
9627 if(cltype16 >= var_new_child->type->table_size) {
9628 var15 = 0;
9629 } else {
9630 var15 = var_new_child->type->type_table[cltype16] == idtype17;
9631 }
9632 }
9633 if (unlikely(!var15)) {
9634 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
9635 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TCbra", var_class_name18);
9636 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2690);
9637 show_backtrace(1);
9638 }
9639 {
9640 parser_prod__ABraassignMethid__n_cbra_61d(self, var_new_child); /* Direct call parser_prod#ABraassignMethid#n_cbra= on <self:ABraassignMethid>*/
9641 }
9642 goto RET_LABEL;
9643 } else {
9644 }
9645 var19 = self->attrs[COLOR_parser_nodes__ABraassignMethid___n_assign].val; /* _n_assign on <self:ABraassignMethid> */
9646 if (unlikely(var19 == NULL)) {
9647 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_assign");
9648 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2693);
9649 show_backtrace(1);
9650 }
9651 {
9652 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:TAssign> */
9653 var_other = var_old_child;
9654 {
9655 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:TAssign> */
9656 var25 = var19 == var_other;
9657 var23 = var25;
9658 goto RET_LABEL24;
9659 RET_LABEL24:(void)0;
9660 }
9661 }
9662 var21 = var23;
9663 goto RET_LABEL22;
9664 RET_LABEL22:(void)0;
9665 }
9666 var20 = var21;
9667 }
9668 if (var20){
9669 /* <var_new_child:nullable ANode> isa TAssign */
9670 cltype27 = type_parser_nodes__TAssign.color;
9671 idtype28 = type_parser_nodes__TAssign.id;
9672 if(var_new_child == NULL) {
9673 var26 = 0;
9674 } else {
9675 if(cltype27 >= var_new_child->type->table_size) {
9676 var26 = 0;
9677 } else {
9678 var26 = var_new_child->type->type_table[cltype27] == idtype28;
9679 }
9680 }
9681 if (unlikely(!var26)) {
9682 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
9683 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TAssign", var_class_name29);
9684 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2694);
9685 show_backtrace(1);
9686 }
9687 {
9688 parser_prod__ABraassignMethid__n_assign_61d(self, var_new_child); /* Direct call parser_prod#ABraassignMethid#n_assign= on <self:ABraassignMethid>*/
9689 }
9690 goto RET_LABEL;
9691 } else {
9692 }
9693 RET_LABEL:;
9694 }
9695 /* method parser_prod#ABraassignMethid#replace_child for (self: Object, ANode, nullable ANode) */
9696 void VIRTUAL_parser_prod__ABraassignMethid__replace_child(val* self, val* p0, val* p1) {
9697 parser_prod__ABraassignMethid__replace_child(self, p0, p1); /* Direct call parser_prod#ABraassignMethid#replace_child on <self:Object(ABraassignMethid)>*/
9698 RET_LABEL:;
9699 }
9700 /* method parser_prod#ABraassignMethid#n_obra= for (self: ABraassignMethid, TObra) */
9701 void parser_prod__ABraassignMethid__n_obra_61d(val* self, val* p0) {
9702 val* var_node /* var node: TObra */;
9703 var_node = p0;
9704 self->attrs[COLOR_parser_nodes__ABraassignMethid___n_obra].val = var_node; /* _n_obra on <self:ABraassignMethid> */
9705 {
9706 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TObra> */
9707 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TObra> */
9708 RET_LABEL1:(void)0;
9709 }
9710 }
9711 RET_LABEL:;
9712 }
9713 /* method parser_prod#ABraassignMethid#n_obra= for (self: Object, TObra) */
9714 void VIRTUAL_parser_prod__ABraassignMethid__n_obra_61d(val* self, val* p0) {
9715 parser_prod__ABraassignMethid__n_obra_61d(self, p0); /* Direct call parser_prod#ABraassignMethid#n_obra= on <self:Object(ABraassignMethid)>*/
9716 RET_LABEL:;
9717 }
9718 /* method parser_prod#ABraassignMethid#n_cbra= for (self: ABraassignMethid, TCbra) */
9719 void parser_prod__ABraassignMethid__n_cbra_61d(val* self, val* p0) {
9720 val* var_node /* var node: TCbra */;
9721 var_node = p0;
9722 self->attrs[COLOR_parser_nodes__ABraassignMethid___n_cbra].val = var_node; /* _n_cbra on <self:ABraassignMethid> */
9723 {
9724 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TCbra> */
9725 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TCbra> */
9726 RET_LABEL1:(void)0;
9727 }
9728 }
9729 RET_LABEL:;
9730 }
9731 /* method parser_prod#ABraassignMethid#n_cbra= for (self: Object, TCbra) */
9732 void VIRTUAL_parser_prod__ABraassignMethid__n_cbra_61d(val* self, val* p0) {
9733 parser_prod__ABraassignMethid__n_cbra_61d(self, p0); /* Direct call parser_prod#ABraassignMethid#n_cbra= on <self:Object(ABraassignMethid)>*/
9734 RET_LABEL:;
9735 }
9736 /* method parser_prod#ABraassignMethid#n_assign= for (self: ABraassignMethid, TAssign) */
9737 void parser_prod__ABraassignMethid__n_assign_61d(val* self, val* p0) {
9738 val* var_node /* var node: TAssign */;
9739 var_node = p0;
9740 self->attrs[COLOR_parser_nodes__ABraassignMethid___n_assign].val = var_node; /* _n_assign on <self:ABraassignMethid> */
9741 {
9742 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TAssign> */
9743 var_node->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TAssign> */
9744 RET_LABEL1:(void)0;
9745 }
9746 }
9747 RET_LABEL:;
9748 }
9749 /* method parser_prod#ABraassignMethid#n_assign= for (self: Object, TAssign) */
9750 void VIRTUAL_parser_prod__ABraassignMethid__n_assign_61d(val* self, val* p0) {
9751 parser_prod__ABraassignMethid__n_assign_61d(self, p0); /* Direct call parser_prod#ABraassignMethid#n_assign= on <self:Object(ABraassignMethid)>*/
9752 RET_LABEL:;
9753 }
9754 /* method parser_prod#ABraassignMethid#visit_all for (self: ABraassignMethid, Visitor) */
9755 void parser_prod__ABraassignMethid__visit_all(val* self, val* p0) {
9756 val* var_v /* var v: Visitor */;
9757 val* var /* : TObra */;
9758 val* var1 /* : TCbra */;
9759 val* var2 /* : TAssign */;
9760 var_v = p0;
9761 var = self->attrs[COLOR_parser_nodes__ABraassignMethid___n_obra].val; /* _n_obra on <self:ABraassignMethid> */
9762 if (unlikely(var == NULL)) {
9763 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_obra");
9764 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2718);
9765 show_backtrace(1);
9766 }
9767 {
9768 parser_nodes__Visitor__enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9769 }
9770 var1 = self->attrs[COLOR_parser_nodes__ABraassignMethid___n_cbra].val; /* _n_cbra on <self:ABraassignMethid> */
9771 if (unlikely(var1 == NULL)) {
9772 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_cbra");
9773 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2719);
9774 show_backtrace(1);
9775 }
9776 {
9777 parser_nodes__Visitor__enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9778 }
9779 var2 = self->attrs[COLOR_parser_nodes__ABraassignMethid___n_assign].val; /* _n_assign on <self:ABraassignMethid> */
9780 if (unlikely(var2 == NULL)) {
9781 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_assign");
9782 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_prod.nit", 2720);
9783 show_backtrace(1);
9784 }
9785 {
9786 parser_nodes__Visitor__enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
9787 }
9788 RET_LABEL:;
9789 }
9790 /* method parser_prod#ABraassignMethid#visit_all for (self: Object, Visitor) */
9791 void VIRTUAL_parser_prod__ABraassignMethid__visit_all(val* self, val* p0) {
9792 parser_prod__ABraassignMethid__visit_all(self, p0); /* Direct call parser_prod#ABraassignMethid#visit_all on <self:Object(ABraassignMethid)>*/
9793 RET_LABEL:;
9794 }
9795 /* method parser_prod#ASignature#init_asignature for (self: ASignature, nullable TOpar, Collection[Object], nullable TCpar, nullable AType) */
9796 void parser_prod__ASignature__init_asignature(val* self, val* p0, val* p1, val* p2, val* p3) {
9797 val* var_n_opar /* var n_opar: nullable TOpar */;
9798 val* var_n_params /* var n_params: Collection[Object] */;
9799 val* var_n_cpar /* var n_cpar: nullable TCpar */;
9800 val* var_n_type /* var n_type: nullable AType */;
9801 val* var /* : null */;
9802 short int var1 /* : Bool */;
9803 short int var2 /* : Bool */;
9804 val* var_other /* var other: nullable Object */;
9805 short int var4 /* : Bool */;
9806 short int var5 /* : Bool */;
9807 short int var6 /* : Bool */;
9808 val* var8 /* : ANodes[AParam] */;
9809 val* var10 /* : ANodes[AParam] */;
9810 val* var11 /* : null */;
9811 short int var12 /* : Bool */;
9812 short int var13 /* : Bool */;
9813 short int var15 /* : Bool */;
9814 short int var16 /* : Bool */;
9815 short int var17 /* : Bool */;
9816 val* var19 /* : null */;
9817 short int var20 /* : Bool */;
9818 short int var21 /* : Bool */;
9819 short int var23 /* : Bool */;
9820 short int var24 /* : Bool */;
9821 short int var25 /* : Bool */;
9822 var_n_opar = p0;
9823 var_n_params = p1;
9824 var_n_cpar = p2;
9825 var_n_type = p3;
9826 self->attrs[COLOR_parser_nodes__ASignature___n_opar].val = var_n_opar; /* _n_opar on <self:ASignature> */
9827 var = NULL;
9828 if (var_n_opar == NULL) {
9829 var1 = 0; /* is null */
9830 } else {
9831 var1 = 1; /* arg is null and recv is not */
9832 }
9833 if (0) {
9834 { /* Inline kernel#Object#!= (var_n_opar,var) on <var_n_opar:nullable TOpar> */
9835 var_other = var;
9836 {
9837 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)>*/;
9838 var4 = var5;
9839 }
9840 var6 = !var4;
9841 var2 = var6;
9842 goto RET_LABEL3;
9843 RET_LABEL3:(void)0;
9844 }
9845 var1 = var2;
9846 }
9847 if (var1){
9848 {
9849 { /* Inline parser_nodes#ANode#parent= (var_n_opar,self) on <var_n_opar:nullable TOpar(TOpar)> */
9850 var_n_opar->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_opar:nullable TOpar(TOpar)> */
9851 RET_LABEL7:(void)0;
9852 }
9853 }
9854 } else {
9855 }
9856 {
9857 { /* Inline parser_nodes#ASignature#n_params (self) on <self:ASignature> */
9858 var10 = self->attrs[COLOR_parser_nodes__ASignature___n_params].val; /* _n_params on <self:ASignature> */
9859 if (unlikely(var10 == NULL)) {
9860 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_params");
9861 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 1360);
9862 show_backtrace(1);
9863 }
9864 var8 = var10;
9865 RET_LABEL9:(void)0;
9866 }
9867 }
9868 {
9869 parser_nodes__ANodes__unsafe_add_all(var8, var_n_params); /* Direct call parser_nodes#ANodes#unsafe_add_all on <var8:ANodes[AParam]>*/
9870 }
9871 self->attrs[COLOR_parser_nodes__ASignature___n_cpar].val = var_n_cpar; /* _n_cpar on <self:ASignature> */
9872 var11 = NULL;
9873 if (var_n_cpar == NULL) {
9874 var12 = 0; /* is null */
9875 } else {
9876 var12 = 1; /* arg is null and recv is not */
9877 }
9878 if (0) {
9879 { /* Inline kernel#Object#!= (var_n_cpar,var11) on <var_n_cpar:nullable TCpar> */
9880 var_other = var11;
9881 {
9882 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)>*/;
9883 var15 = var16;
9884 }
9885 var17 = !var15;
9886 var13 = var17;
9887 goto RET_LABEL14;
9888 RET_LABEL14:(void)0;
9889 }
9890 var12 = var13;
9891 }
9892 if (var12){
9893 {
9894 { /* Inline parser_nodes#ANode#parent= (var_n_cpar,self) on <var_n_cpar:nullable TCpar(TCpar)> */
9895 var_n_cpar->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_cpar:nullable TCpar(TCpar)> */
9896 RET_LABEL18:(void)0;
9897 }
9898 }
9899 } else {
9900 }
9901 self->attrs[COLOR_parser_nodes__ASignature___n_type].val = var_n_type; /* _n_type on <self:ASignature> */
9902 var19 = NULL;
9903 if (var_n_type == NULL) {
9904 var20 = 0; /* is null */
9905 } else {
9906 var20 = 1; /* arg is null and recv is not */
9907 }
9908 if (0) {
9909 { /* Inline kernel#Object#!= (var_n_type,var19) on <var_n_type:nullable AType> */
9910 var_other = var19;
9911 {
9912 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)>*/;
9913 var23 = var24;
9914 }
9915 var25 = !var23;
9916 var21 = var25;
9917 goto RET_LABEL22;
9918 RET_LABEL22:(void)0;
9919 }
9920 var20 = var21;
9921 }
9922 if (var20){
9923 {
9924 { /* Inline parser_nodes#ANode#parent= (var_n_type,self) on <var_n_type:nullable AType(AType)> */
9925 var_n_type->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_n_type:nullable AType(AType)> */
9926 RET_LABEL26:(void)0;
9927 }
9928 }
9929 } else {
9930 }
9931 RET_LABEL:;
9932 }
9933 /* method parser_prod#ASignature#init_asignature for (self: Object, nullable TOpar, Collection[Object], nullable TCpar, nullable AType) */
9934 void VIRTUAL_parser_prod__ASignature__init_asignature(val* self, val* p0, val* p1, val* p2, val* p3) {
9935 parser_prod__ASignature__init_asignature(self, p0, p1, p2, p3); /* Direct call parser_prod#ASignature#init_asignature on <self:Object(ASignature)>*/
9936 RET_LABEL:;
9937 }