c_src: update for new ffi syntax
[nit.git] / c_src / parser_prod.sep.2.c
1 #include "parser_prod.sep.0.h"
2 /* method parser_prod#AConcreteInitPropdef#replace_child for (self: AConcreteInitPropdef, ANode, nullable ANode) */
3 void parser_prod__AConcreteInitPropdef__replace_child(val* self, val* p0, val* p1) {
4 val* var_old_child /* var old_child: ANode */;
5 val* var_new_child /* var new_child: nullable ANode */;
6 val* var /* : nullable ADoc */;
7 short int var1 /* : Bool */;
8 val* var2 /* : null */;
9 short int var3 /* : Bool */;
10 short int var4 /* : Bool */;
11 int cltype;
12 int idtype;
13 val* var5 /* : null */;
14 val* var6 /* : nullable TKwredef */;
15 short int var7 /* : Bool */;
16 val* var8 /* : null */;
17 short int var9 /* : Bool */;
18 short int var10 /* : Bool */;
19 int cltype11;
20 int idtype12;
21 val* var13 /* : null */;
22 val* var14 /* : nullable AVisibility */;
23 short int var15 /* : Bool */;
24 val* var16 /* : null */;
25 short int var17 /* : Bool */;
26 short int var18 /* : Bool */;
27 int cltype19;
28 int idtype20;
29 val* var21 /* : TKwinit */;
30 short int var22 /* : Bool */;
31 val* var23 /* : null */;
32 short int var24 /* : Bool */;
33 short int var25 /* : Bool */;
34 int cltype26;
35 int idtype27;
36 val* var28 /* : nullable AMethid */;
37 short int var29 /* : Bool */;
38 val* var30 /* : null */;
39 short int var31 /* : Bool */;
40 short int var32 /* : Bool */;
41 int cltype33;
42 int idtype34;
43 val* var35 /* : null */;
44 val* var36 /* : nullable ASignature */;
45 short int var37 /* : Bool */;
46 val* var38 /* : null */;
47 short int var39 /* : Bool */;
48 short int var40 /* : Bool */;
49 int cltype41;
50 int idtype42;
51 val* var43 /* : nullable AAnnotations */;
52 short int var44 /* : Bool */;
53 val* var45 /* : null */;
54 short int var46 /* : Bool */;
55 short int var47 /* : Bool */;
56 int cltype48;
57 int idtype49;
58 val* var50 /* : null */;
59 val* var51 /* : nullable AExpr */;
60 short int var52 /* : Bool */;
61 val* var53 /* : null */;
62 short int var54 /* : Bool */;
63 short int var55 /* : Bool */;
64 int cltype56;
65 int idtype57;
66 val* var58 /* : null */;
67 var_old_child = p0;
68 var_new_child = p1;
69 var = self->attrs[COLOR_parser_nodes__APropdef___n_doc].val; /* _n_doc on <self:AConcreteInitPropdef> */
70 if (var == NULL) {
71 var1 = 0; /* <var_old_child:ANode> cannot be null */
72 } else {
73 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:nullable ADoc>*/;
74 }
75 if (var1){
76 var2 = NULL;
77 if (var_new_child == NULL) {
78 var3 = 0; /* is null */
79 } else {
80 var3 = 1; /* arg is null and recv is not */
81 }
82 if (var3){
83 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
84 /* <var_new_child:nullable ANode(ANode)> isa ADoc */
85 cltype = type_parser_nodes__ADoc.color;
86 idtype = type_parser_nodes__ADoc.id;
87 if(cltype >= var_new_child->type->table_size) {
88 var4 = 0;
89 } else {
90 var4 = var_new_child->type->type_table[cltype] == idtype;
91 }
92 if (!var4) {
93 fprintf(stderr, "Runtime error: %s", "Assert failed");
94 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2466);
95 show_backtrace(1);
96 }
97 self->attrs[COLOR_parser_nodes__APropdef___n_doc].val = var_new_child; /* _n_doc on <self:AConcreteInitPropdef> */
98 } else {
99 var5 = NULL;
100 self->attrs[COLOR_parser_nodes__APropdef___n_doc].val = var5; /* _n_doc on <self:AConcreteInitPropdef> */
101 }
102 goto RET_LABEL;
103 } else {
104 }
105 var6 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_kwredef].val; /* _n_kwredef on <self:AConcreteInitPropdef> */
106 if (var6 == NULL) {
107 var7 = 0; /* <var_old_child:ANode> cannot be null */
108 } else {
109 var7 = ((short int (*)(val*, val*))(var6->class->vft[COLOR_kernel__Object___61d_61d]))(var6, var_old_child) /* == on <var6:nullable TKwredef>*/;
110 }
111 if (var7){
112 var8 = NULL;
113 if (var_new_child == NULL) {
114 var9 = 0; /* is null */
115 } else {
116 var9 = 1; /* arg is null and recv is not */
117 }
118 if (var9){
119 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
120 /* <var_new_child:nullable ANode(ANode)> isa TKwredef */
121 cltype11 = type_parser_nodes__TKwredef.color;
122 idtype12 = type_parser_nodes__TKwredef.id;
123 if(cltype11 >= var_new_child->type->table_size) {
124 var10 = 0;
125 } else {
126 var10 = var_new_child->type->type_table[cltype11] == idtype12;
127 }
128 if (!var10) {
129 fprintf(stderr, "Runtime error: %s", "Assert failed");
130 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2476);
131 show_backtrace(1);
132 }
133 self->attrs[COLOR_parser_nodes__AMethPropdef___n_kwredef].val = var_new_child; /* _n_kwredef on <self:AConcreteInitPropdef> */
134 } else {
135 var13 = NULL;
136 self->attrs[COLOR_parser_nodes__AMethPropdef___n_kwredef].val = var13; /* _n_kwredef on <self:AConcreteInitPropdef> */
137 }
138 goto RET_LABEL;
139 } else {
140 }
141 var14 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_visibility].val; /* _n_visibility on <self:AConcreteInitPropdef> */
142 if (var14 == NULL) {
143 var15 = 0; /* <var_old_child:ANode> cannot be null */
144 } else {
145 var15 = ((short int (*)(val*, val*))(var14->class->vft[COLOR_kernel__Object___61d_61d]))(var14, var_old_child) /* == on <var14:nullable AVisibility>*/;
146 }
147 if (var15){
148 var16 = NULL;
149 if (var_new_child == NULL) {
150 var17 = 0; /* is null */
151 } else {
152 var17 = 1; /* arg is null and recv is not */
153 }
154 if (var17){
155 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
156 /* <var_new_child:nullable ANode(ANode)> isa AVisibility */
157 cltype19 = type_parser_nodes__AVisibility.color;
158 idtype20 = type_parser_nodes__AVisibility.id;
159 if(cltype19 >= var_new_child->type->table_size) {
160 var18 = 0;
161 } else {
162 var18 = var_new_child->type->type_table[cltype19] == idtype20;
163 }
164 if (!var18) {
165 fprintf(stderr, "Runtime error: %s", "Assert failed");
166 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2486);
167 show_backtrace(1);
168 }
169 self->attrs[COLOR_parser_nodes__AMethPropdef___n_visibility].val = var_new_child; /* _n_visibility on <self:AConcreteInitPropdef> */
170 } else {
171 fprintf(stderr, "Runtime error: %s", "Aborted");
172 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2489);
173 show_backtrace(1);
174 }
175 goto RET_LABEL;
176 } else {
177 }
178 var21 = self->attrs[COLOR_parser_nodes__AConcreteInitPropdef___n_kwinit].val; /* _n_kwinit on <self:AConcreteInitPropdef> */
179 if (var21 == NULL) {
180 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwinit");
181 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2493);
182 show_backtrace(1);
183 }
184 var22 = ((short int (*)(val*, val*))(var21->class->vft[COLOR_kernel__Object___61d_61d]))(var21, var_old_child) /* == on <var21:TKwinit>*/;
185 if (var22){
186 var23 = NULL;
187 if (var_new_child == NULL) {
188 var24 = 0; /* is null */
189 } else {
190 var24 = 1; /* arg is null and recv is not */
191 }
192 if (var24){
193 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
194 /* <var_new_child:nullable ANode(ANode)> isa TKwinit */
195 cltype26 = type_parser_nodes__TKwinit.color;
196 idtype27 = type_parser_nodes__TKwinit.id;
197 if(cltype26 >= var_new_child->type->table_size) {
198 var25 = 0;
199 } else {
200 var25 = var_new_child->type->type_table[cltype26] == idtype27;
201 }
202 if (!var25) {
203 fprintf(stderr, "Runtime error: %s", "Assert failed");
204 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2496);
205 show_backtrace(1);
206 }
207 self->attrs[COLOR_parser_nodes__AConcreteInitPropdef___n_kwinit].val = var_new_child; /* _n_kwinit on <self:AConcreteInitPropdef> */
208 } else {
209 fprintf(stderr, "Runtime error: %s", "Aborted");
210 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2499);
211 show_backtrace(1);
212 }
213 goto RET_LABEL;
214 } else {
215 }
216 var28 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_methid].val; /* _n_methid on <self:AConcreteInitPropdef> */
217 if (var28 == NULL) {
218 var29 = 0; /* <var_old_child:ANode> cannot be null */
219 } else {
220 var29 = ((short int (*)(val*, val*))(var28->class->vft[COLOR_kernel__Object___61d_61d]))(var28, var_old_child) /* == on <var28:nullable AMethid>*/;
221 }
222 if (var29){
223 var30 = NULL;
224 if (var_new_child == NULL) {
225 var31 = 0; /* is null */
226 } else {
227 var31 = 1; /* arg is null and recv is not */
228 }
229 if (var31){
230 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
231 /* <var_new_child:nullable ANode(ANode)> isa AMethid */
232 cltype33 = type_parser_nodes__AMethid.color;
233 idtype34 = type_parser_nodes__AMethid.id;
234 if(cltype33 >= var_new_child->type->table_size) {
235 var32 = 0;
236 } else {
237 var32 = var_new_child->type->type_table[cltype33] == idtype34;
238 }
239 if (!var32) {
240 fprintf(stderr, "Runtime error: %s", "Assert failed");
241 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2506);
242 show_backtrace(1);
243 }
244 self->attrs[COLOR_parser_nodes__AMethPropdef___n_methid].val = var_new_child; /* _n_methid on <self:AConcreteInitPropdef> */
245 } else {
246 var35 = NULL;
247 self->attrs[COLOR_parser_nodes__AMethPropdef___n_methid].val = var35; /* _n_methid on <self:AConcreteInitPropdef> */
248 }
249 goto RET_LABEL;
250 } else {
251 }
252 var36 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_signature].val; /* _n_signature on <self:AConcreteInitPropdef> */
253 if (var36 == NULL) {
254 var37 = 0; /* <var_old_child:ANode> cannot be null */
255 } else {
256 var37 = ((short int (*)(val*, val*))(var36->class->vft[COLOR_kernel__Object___61d_61d]))(var36, var_old_child) /* == on <var36:nullable ASignature>*/;
257 }
258 if (var37){
259 var38 = NULL;
260 if (var_new_child == NULL) {
261 var39 = 0; /* is null */
262 } else {
263 var39 = 1; /* arg is null and recv is not */
264 }
265 if (var39){
266 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
267 /* <var_new_child:nullable ANode(ANode)> isa ASignature */
268 cltype41 = type_parser_nodes__ASignature.color;
269 idtype42 = type_parser_nodes__ASignature.id;
270 if(cltype41 >= var_new_child->type->table_size) {
271 var40 = 0;
272 } else {
273 var40 = var_new_child->type->type_table[cltype41] == idtype42;
274 }
275 if (!var40) {
276 fprintf(stderr, "Runtime error: %s", "Assert failed");
277 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2516);
278 show_backtrace(1);
279 }
280 self->attrs[COLOR_parser_nodes__AMethPropdef___n_signature].val = var_new_child; /* _n_signature on <self:AConcreteInitPropdef> */
281 } else {
282 fprintf(stderr, "Runtime error: %s", "Aborted");
283 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2519);
284 show_backtrace(1);
285 }
286 goto RET_LABEL;
287 } else {
288 }
289 var43 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AConcreteInitPropdef> */
290 if (var43 == NULL) {
291 var44 = 0; /* <var_old_child:ANode> cannot be null */
292 } else {
293 var44 = ((short int (*)(val*, val*))(var43->class->vft[COLOR_kernel__Object___61d_61d]))(var43, var_old_child) /* == on <var43:nullable AAnnotations>*/;
294 }
295 if (var44){
296 var45 = NULL;
297 if (var_new_child == NULL) {
298 var46 = 0; /* is null */
299 } else {
300 var46 = 1; /* arg is null and recv is not */
301 }
302 if (var46){
303 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
304 /* <var_new_child:nullable ANode(ANode)> isa AAnnotations */
305 cltype48 = type_parser_nodes__AAnnotations.color;
306 idtype49 = type_parser_nodes__AAnnotations.id;
307 if(cltype48 >= var_new_child->type->table_size) {
308 var47 = 0;
309 } else {
310 var47 = var_new_child->type->type_table[cltype48] == idtype49;
311 }
312 if (!var47) {
313 fprintf(stderr, "Runtime error: %s", "Assert failed");
314 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2526);
315 show_backtrace(1);
316 }
317 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_new_child; /* _n_annotations on <self:AConcreteInitPropdef> */
318 } else {
319 var50 = NULL;
320 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var50; /* _n_annotations on <self:AConcreteInitPropdef> */
321 }
322 goto RET_LABEL;
323 } else {
324 }
325 var51 = self->attrs[COLOR_parser_nodes__AConcreteMethPropdef___n_block].val; /* _n_block on <self:AConcreteInitPropdef> */
326 if (var51 == NULL) {
327 var52 = 0; /* <var_old_child:ANode> cannot be null */
328 } else {
329 var52 = ((short int (*)(val*, val*))(var51->class->vft[COLOR_kernel__Object___61d_61d]))(var51, var_old_child) /* == on <var51:nullable AExpr>*/;
330 }
331 if (var52){
332 var53 = NULL;
333 if (var_new_child == NULL) {
334 var54 = 0; /* is null */
335 } else {
336 var54 = 1; /* arg is null and recv is not */
337 }
338 if (var54){
339 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
340 /* <var_new_child:nullable ANode(ANode)> isa AExpr */
341 cltype56 = type_parser_nodes__AExpr.color;
342 idtype57 = type_parser_nodes__AExpr.id;
343 if(cltype56 >= var_new_child->type->table_size) {
344 var55 = 0;
345 } else {
346 var55 = var_new_child->type->type_table[cltype56] == idtype57;
347 }
348 if (!var55) {
349 fprintf(stderr, "Runtime error: %s", "Assert failed");
350 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2536);
351 show_backtrace(1);
352 }
353 self->attrs[COLOR_parser_nodes__AConcreteMethPropdef___n_block].val = var_new_child; /* _n_block on <self:AConcreteInitPropdef> */
354 } else {
355 var58 = NULL;
356 self->attrs[COLOR_parser_nodes__AConcreteMethPropdef___n_block].val = var58; /* _n_block on <self:AConcreteInitPropdef> */
357 }
358 goto RET_LABEL;
359 } else {
360 }
361 RET_LABEL:;
362 }
363 /* method parser_prod#AConcreteInitPropdef#replace_child for (self: Object, ANode, nullable ANode) */
364 void VIRTUAL_parser_prod__AConcreteInitPropdef__replace_child(val* self, val* p0, val* p1) {
365 parser_prod__AConcreteInitPropdef__replace_child(self, p0, p1);
366 RET_LABEL:;
367 }
368 /* method parser_prod#AConcreteInitPropdef#n_doc= for (self: AConcreteInitPropdef, nullable ADoc) */
369 void parser_prod__AConcreteInitPropdef__n_doc_61d(val* self, val* p0) {
370 val* var_node /* var node: nullable ADoc */;
371 val* var /* : null */;
372 short int var1 /* : Bool */;
373 var_node = p0;
374 self->attrs[COLOR_parser_nodes__APropdef___n_doc].val = var_node; /* _n_doc on <self:AConcreteInitPropdef> */
375 var = NULL;
376 if (var_node == NULL) {
377 var1 = 0; /* is null */
378 } else {
379 var1 = 1; /* arg is null and recv is not */
380 }
381 if (var1){
382 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable ADoc(ADoc)>*/;
383 } else {
384 }
385 RET_LABEL:;
386 }
387 /* method parser_prod#AConcreteInitPropdef#n_doc= for (self: Object, nullable ADoc) */
388 void VIRTUAL_parser_prod__AConcreteInitPropdef__n_doc_61d(val* self, val* p0) {
389 parser_prod__AConcreteInitPropdef__n_doc_61d(self, p0);
390 RET_LABEL:;
391 }
392 /* method parser_prod#AConcreteInitPropdef#n_kwredef= for (self: AConcreteInitPropdef, nullable TKwredef) */
393 void parser_prod__AConcreteInitPropdef__n_kwredef_61d(val* self, val* p0) {
394 val* var_node /* var node: nullable TKwredef */;
395 val* var /* : null */;
396 short int var1 /* : Bool */;
397 var_node = p0;
398 self->attrs[COLOR_parser_nodes__AMethPropdef___n_kwredef].val = var_node; /* _n_kwredef on <self:AConcreteInitPropdef> */
399 var = NULL;
400 if (var_node == NULL) {
401 var1 = 0; /* is null */
402 } else {
403 var1 = 1; /* arg is null and recv is not */
404 }
405 if (var1){
406 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable TKwredef(TKwredef)>*/;
407 } else {
408 }
409 RET_LABEL:;
410 }
411 /* method parser_prod#AConcreteInitPropdef#n_kwredef= for (self: Object, nullable TKwredef) */
412 void VIRTUAL_parser_prod__AConcreteInitPropdef__n_kwredef_61d(val* self, val* p0) {
413 parser_prod__AConcreteInitPropdef__n_kwredef_61d(self, p0);
414 RET_LABEL:;
415 }
416 /* method parser_prod#AConcreteInitPropdef#n_visibility= for (self: AConcreteInitPropdef, nullable AVisibility) */
417 void parser_prod__AConcreteInitPropdef__n_visibility_61d(val* self, val* p0) {
418 val* var_node /* var node: nullable AVisibility */;
419 var_node = p0;
420 self->attrs[COLOR_parser_nodes__AMethPropdef___n_visibility].val = var_node; /* _n_visibility on <self:AConcreteInitPropdef> */
421 if (var_node == NULL) {
422 fprintf(stderr, "Runtime error: %s", "Reciever is null");
423 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2562);
424 show_backtrace(1);
425 } else {
426 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable AVisibility>*/;
427 }
428 RET_LABEL:;
429 }
430 /* method parser_prod#AConcreteInitPropdef#n_visibility= for (self: Object, nullable AVisibility) */
431 void VIRTUAL_parser_prod__AConcreteInitPropdef__n_visibility_61d(val* self, val* p0) {
432 parser_prod__AConcreteInitPropdef__n_visibility_61d(self, p0);
433 RET_LABEL:;
434 }
435 /* method parser_prod#AConcreteInitPropdef#n_kwinit= for (self: AConcreteInitPropdef, TKwinit) */
436 void parser_prod__AConcreteInitPropdef__n_kwinit_61d(val* self, val* p0) {
437 val* var_node /* var node: TKwinit */;
438 var_node = p0;
439 self->attrs[COLOR_parser_nodes__AConcreteInitPropdef___n_kwinit].val = var_node; /* _n_kwinit on <self:AConcreteInitPropdef> */
440 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TKwinit>*/;
441 RET_LABEL:;
442 }
443 /* method parser_prod#AConcreteInitPropdef#n_kwinit= for (self: Object, TKwinit) */
444 void VIRTUAL_parser_prod__AConcreteInitPropdef__n_kwinit_61d(val* self, val* p0) {
445 parser_prod__AConcreteInitPropdef__n_kwinit_61d(self, p0);
446 RET_LABEL:;
447 }
448 /* method parser_prod#AConcreteInitPropdef#n_methid= for (self: AConcreteInitPropdef, nullable AMethid) */
449 void parser_prod__AConcreteInitPropdef__n_methid_61d(val* self, val* p0) {
450 val* var_node /* var node: nullable AMethid */;
451 val* var /* : null */;
452 short int var1 /* : Bool */;
453 var_node = p0;
454 self->attrs[COLOR_parser_nodes__AMethPropdef___n_methid].val = var_node; /* _n_methid on <self:AConcreteInitPropdef> */
455 var = NULL;
456 if (var_node == NULL) {
457 var1 = 0; /* is null */
458 } else {
459 var1 = 1; /* arg is null and recv is not */
460 }
461 if (var1){
462 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable AMethid(AMethid)>*/;
463 } else {
464 }
465 RET_LABEL:;
466 }
467 /* method parser_prod#AConcreteInitPropdef#n_methid= for (self: Object, nullable AMethid) */
468 void VIRTUAL_parser_prod__AConcreteInitPropdef__n_methid_61d(val* self, val* p0) {
469 parser_prod__AConcreteInitPropdef__n_methid_61d(self, p0);
470 RET_LABEL:;
471 }
472 /* method parser_prod#AConcreteInitPropdef#n_signature= for (self: AConcreteInitPropdef, nullable ASignature) */
473 void parser_prod__AConcreteInitPropdef__n_signature_61d(val* self, val* p0) {
474 val* var_node /* var node: nullable ASignature */;
475 var_node = p0;
476 self->attrs[COLOR_parser_nodes__AMethPropdef___n_signature].val = var_node; /* _n_signature on <self:AConcreteInitPropdef> */
477 if (var_node == NULL) {
478 fprintf(stderr, "Runtime error: %s", "Reciever is null");
479 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2579);
480 show_backtrace(1);
481 } else {
482 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable ASignature>*/;
483 }
484 RET_LABEL:;
485 }
486 /* method parser_prod#AConcreteInitPropdef#n_signature= for (self: Object, nullable ASignature) */
487 void VIRTUAL_parser_prod__AConcreteInitPropdef__n_signature_61d(val* self, val* p0) {
488 parser_prod__AConcreteInitPropdef__n_signature_61d(self, p0);
489 RET_LABEL:;
490 }
491 /* method parser_prod#AConcreteInitPropdef#n_annotations= for (self: AConcreteInitPropdef, nullable AAnnotations) */
492 void parser_prod__AConcreteInitPropdef__n_annotations_61d(val* self, val* p0) {
493 val* var_node /* var node: nullable AAnnotations */;
494 val* var /* : null */;
495 short int var1 /* : Bool */;
496 var_node = p0;
497 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_node; /* _n_annotations on <self:AConcreteInitPropdef> */
498 var = NULL;
499 if (var_node == NULL) {
500 var1 = 0; /* is null */
501 } else {
502 var1 = 1; /* arg is null and recv is not */
503 }
504 if (var1){
505 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable AAnnotations(AAnnotations)>*/;
506 } else {
507 }
508 RET_LABEL:;
509 }
510 /* method parser_prod#AConcreteInitPropdef#n_annotations= for (self: Object, nullable AAnnotations) */
511 void VIRTUAL_parser_prod__AConcreteInitPropdef__n_annotations_61d(val* self, val* p0) {
512 parser_prod__AConcreteInitPropdef__n_annotations_61d(self, p0);
513 RET_LABEL:;
514 }
515 /* method parser_prod#AConcreteInitPropdef#n_block= for (self: AConcreteInitPropdef, nullable AExpr) */
516 void parser_prod__AConcreteInitPropdef__n_block_61d(val* self, val* p0) {
517 val* var_node /* var node: nullable AExpr */;
518 val* var /* : null */;
519 short int var1 /* : Bool */;
520 var_node = p0;
521 self->attrs[COLOR_parser_nodes__AConcreteMethPropdef___n_block].val = var_node; /* _n_block on <self:AConcreteInitPropdef> */
522 var = NULL;
523 if (var_node == NULL) {
524 var1 = 0; /* is null */
525 } else {
526 var1 = 1; /* arg is null and recv is not */
527 }
528 if (var1){
529 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable AExpr(AExpr)>*/;
530 } else {
531 }
532 RET_LABEL:;
533 }
534 /* method parser_prod#AConcreteInitPropdef#n_block= for (self: Object, nullable AExpr) */
535 void VIRTUAL_parser_prod__AConcreteInitPropdef__n_block_61d(val* self, val* p0) {
536 parser_prod__AConcreteInitPropdef__n_block_61d(self, p0);
537 RET_LABEL:;
538 }
539 /* method parser_prod#AConcreteInitPropdef#visit_all for (self: AConcreteInitPropdef, Visitor) */
540 void parser_prod__AConcreteInitPropdef__visit_all(val* self, val* p0) {
541 val* var_v /* var v: Visitor */;
542 val* var /* : nullable ADoc */;
543 val* var1 /* : null */;
544 short int var2 /* : Bool */;
545 val* var3 /* : nullable ADoc */;
546 val* var4 /* : nullable TKwredef */;
547 val* var5 /* : null */;
548 short int var6 /* : Bool */;
549 val* var7 /* : nullable TKwredef */;
550 val* var8 /* : nullable AVisibility */;
551 val* var9 /* : TKwinit */;
552 val* var10 /* : nullable AMethid */;
553 val* var11 /* : null */;
554 short int var12 /* : Bool */;
555 val* var13 /* : nullable AMethid */;
556 val* var14 /* : nullable ASignature */;
557 val* var15 /* : nullable AAnnotations */;
558 val* var16 /* : null */;
559 short int var17 /* : Bool */;
560 val* var18 /* : nullable AAnnotations */;
561 val* var19 /* : nullable AExpr */;
562 val* var20 /* : null */;
563 short int var21 /* : Bool */;
564 val* var22 /* : nullable AExpr */;
565 var_v = p0;
566 var = self->attrs[COLOR_parser_nodes__APropdef___n_doc].val; /* _n_doc on <self:AConcreteInitPropdef> */
567 var1 = NULL;
568 if (var == NULL) {
569 var2 = 0; /* is null */
570 } else {
571 var2 = 1; /* arg is null and recv is not */
572 }
573 if (var2){
574 var3 = self->attrs[COLOR_parser_nodes__APropdef___n_doc].val; /* _n_doc on <self:AConcreteInitPropdef> */
575 if (var3 == NULL) {
576 fprintf(stderr, "Runtime error: %s", "Cast failed");
577 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2600);
578 show_backtrace(1);
579 }
580 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var3) /* enter_visit on <var_v:Visitor>*/;
581 } else {
582 }
583 var4 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_kwredef].val; /* _n_kwredef on <self:AConcreteInitPropdef> */
584 var5 = NULL;
585 if (var4 == NULL) {
586 var6 = 0; /* is null */
587 } else {
588 var6 = 1; /* arg is null and recv is not */
589 }
590 if (var6){
591 var7 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_kwredef].val; /* _n_kwredef on <self:AConcreteInitPropdef> */
592 if (var7 == NULL) {
593 fprintf(stderr, "Runtime error: %s", "Cast failed");
594 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2603);
595 show_backtrace(1);
596 }
597 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var7) /* enter_visit on <var_v:Visitor>*/;
598 } else {
599 }
600 var8 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_visibility].val; /* _n_visibility on <self:AConcreteInitPropdef> */
601 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var8) /* enter_visit on <var_v:Visitor>*/;
602 var9 = self->attrs[COLOR_parser_nodes__AConcreteInitPropdef___n_kwinit].val; /* _n_kwinit on <self:AConcreteInitPropdef> */
603 if (var9 == NULL) {
604 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwinit");
605 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2606);
606 show_backtrace(1);
607 }
608 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var9) /* enter_visit on <var_v:Visitor>*/;
609 var10 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_methid].val; /* _n_methid on <self:AConcreteInitPropdef> */
610 var11 = NULL;
611 if (var10 == NULL) {
612 var12 = 0; /* is null */
613 } else {
614 var12 = 1; /* arg is null and recv is not */
615 }
616 if (var12){
617 var13 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_methid].val; /* _n_methid on <self:AConcreteInitPropdef> */
618 if (var13 == NULL) {
619 fprintf(stderr, "Runtime error: %s", "Cast failed");
620 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2608);
621 show_backtrace(1);
622 }
623 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var13) /* enter_visit on <var_v:Visitor>*/;
624 } else {
625 }
626 var14 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_signature].val; /* _n_signature on <self:AConcreteInitPropdef> */
627 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var14) /* enter_visit on <var_v:Visitor>*/;
628 var15 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AConcreteInitPropdef> */
629 var16 = NULL;
630 if (var15 == NULL) {
631 var17 = 0; /* is null */
632 } else {
633 var17 = 1; /* arg is null and recv is not */
634 }
635 if (var17){
636 var18 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AConcreteInitPropdef> */
637 if (var18 == NULL) {
638 fprintf(stderr, "Runtime error: %s", "Cast failed");
639 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2612);
640 show_backtrace(1);
641 }
642 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var18) /* enter_visit on <var_v:Visitor>*/;
643 } else {
644 }
645 var19 = self->attrs[COLOR_parser_nodes__AConcreteMethPropdef___n_block].val; /* _n_block on <self:AConcreteInitPropdef> */
646 var20 = NULL;
647 if (var19 == NULL) {
648 var21 = 0; /* is null */
649 } else {
650 var21 = 1; /* arg is null and recv is not */
651 }
652 if (var21){
653 var22 = self->attrs[COLOR_parser_nodes__AConcreteMethPropdef___n_block].val; /* _n_block on <self:AConcreteInitPropdef> */
654 if (var22 == NULL) {
655 fprintf(stderr, "Runtime error: %s", "Cast failed");
656 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2615);
657 show_backtrace(1);
658 }
659 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var22) /* enter_visit on <var_v:Visitor>*/;
660 } else {
661 }
662 RET_LABEL:;
663 }
664 /* method parser_prod#AConcreteInitPropdef#visit_all for (self: Object, Visitor) */
665 void VIRTUAL_parser_prod__AConcreteInitPropdef__visit_all(val* self, val* p0) {
666 parser_prod__AConcreteInitPropdef__visit_all(self, p0);
667 RET_LABEL:;
668 }
669 /* method parser_prod#AExternInitPropdef#empty_init for (self: AExternInitPropdef) */
670 void parser_prod__AExternInitPropdef__empty_init(val* self) {
671 RET_LABEL:;
672 }
673 /* method parser_prod#AExternInitPropdef#empty_init for (self: Object) */
674 void VIRTUAL_parser_prod__AExternInitPropdef__empty_init(val* self) {
675 parser_prod__AExternInitPropdef__empty_init(self);
676 RET_LABEL:;
677 }
678 /* method parser_prod#AExternInitPropdef#init_aexterninitpropdef for (self: AExternInitPropdef, nullable ADoc, nullable TKwredef, nullable AVisibility, nullable TKwnew, nullable AMethid, nullable ASignature, nullable TString, nullable AExternCalls, nullable AExternCodeBlock) */
679 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) {
680 val* var_n_doc /* var n_doc: nullable ADoc */;
681 val* var_n_kwredef /* var n_kwredef: nullable TKwredef */;
682 val* var_n_visibility /* var n_visibility: nullable AVisibility */;
683 val* var_n_kwnew /* var n_kwnew: nullable TKwnew */;
684 val* var_n_methid /* var n_methid: nullable AMethid */;
685 val* var_n_signature /* var n_signature: nullable ASignature */;
686 val* var_n_extern /* var n_extern: nullable TString */;
687 val* var_n_extern_calls /* var n_extern_calls: nullable AExternCalls */;
688 val* var_n_extern_code_block /* var n_extern_code_block: nullable AExternCodeBlock */;
689 val* var /* : null */;
690 short int var1 /* : Bool */;
691 val* var2 /* : null */;
692 short int var3 /* : Bool */;
693 val* var4 /* : null */;
694 short int var5 /* : Bool */;
695 val* var6 /* : null */;
696 short int var7 /* : Bool */;
697 val* var8 /* : null */;
698 short int var9 /* : Bool */;
699 val* var10 /* : null */;
700 short int var11 /* : Bool */;
701 var_n_doc = p0;
702 var_n_kwredef = p1;
703 var_n_visibility = p2;
704 var_n_kwnew = p3;
705 var_n_methid = p4;
706 var_n_signature = p5;
707 var_n_extern = p6;
708 var_n_extern_calls = p7;
709 var_n_extern_code_block = p8;
710 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__AExternInitPropdef__empty_init]))(self) /* empty_init on <self:AExternInitPropdef>*/;
711 self->attrs[COLOR_parser_nodes__APropdef___n_doc].val = var_n_doc; /* _n_doc on <self:AExternInitPropdef> */
712 var = NULL;
713 if (var_n_doc == NULL) {
714 var1 = 0; /* is null */
715 } else {
716 var1 = 1; /* arg is null and recv is not */
717 }
718 if (var1){
719 ((void (*)(val*, val*))(var_n_doc->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_doc, self) /* parent= on <var_n_doc:nullable ADoc(ADoc)>*/;
720 } else {
721 }
722 self->attrs[COLOR_parser_nodes__AMethPropdef___n_kwredef].val = var_n_kwredef; /* _n_kwredef on <self:AExternInitPropdef> */
723 var2 = NULL;
724 if (var_n_kwredef == NULL) {
725 var3 = 0; /* is null */
726 } else {
727 var3 = 1; /* arg is null and recv is not */
728 }
729 if (var3){
730 ((void (*)(val*, val*))(var_n_kwredef->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_kwredef, self) /* parent= on <var_n_kwredef:nullable TKwredef(TKwredef)>*/;
731 } else {
732 }
733 if (var_n_visibility == NULL) {
734 fprintf(stderr, "Runtime error: %s", "Cast failed");
735 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2643);
736 show_backtrace(1);
737 }
738 self->attrs[COLOR_parser_nodes__AMethPropdef___n_visibility].val = var_n_visibility; /* _n_visibility on <self:AExternInitPropdef> */
739 if (var_n_visibility == NULL) {
740 fprintf(stderr, "Runtime error: %s", "Reciever is null");
741 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2644);
742 show_backtrace(1);
743 } else {
744 ((void (*)(val*, val*))(var_n_visibility->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_visibility, self) /* parent= on <var_n_visibility:nullable AVisibility>*/;
745 }
746 if (var_n_kwnew == NULL) {
747 fprintf(stderr, "Runtime error: %s", "Cast failed");
748 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2645);
749 show_backtrace(1);
750 }
751 self->attrs[COLOR_parser_nodes__AExternInitPropdef___n_kwnew].val = var_n_kwnew; /* _n_kwnew on <self:AExternInitPropdef> */
752 if (var_n_kwnew == NULL) {
753 fprintf(stderr, "Runtime error: %s", "Reciever is null");
754 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2646);
755 show_backtrace(1);
756 } else {
757 ((void (*)(val*, val*))(var_n_kwnew->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_kwnew, self) /* parent= on <var_n_kwnew:nullable TKwnew>*/;
758 }
759 self->attrs[COLOR_parser_nodes__AMethPropdef___n_methid].val = var_n_methid; /* _n_methid on <self:AExternInitPropdef> */
760 var4 = NULL;
761 if (var_n_methid == NULL) {
762 var5 = 0; /* is null */
763 } else {
764 var5 = 1; /* arg is null and recv is not */
765 }
766 if (var5){
767 ((void (*)(val*, val*))(var_n_methid->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_methid, self) /* parent= on <var_n_methid:nullable AMethid(AMethid)>*/;
768 } else {
769 }
770 if (var_n_signature == NULL) {
771 fprintf(stderr, "Runtime error: %s", "Cast failed");
772 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2651);
773 show_backtrace(1);
774 }
775 self->attrs[COLOR_parser_nodes__AMethPropdef___n_signature].val = var_n_signature; /* _n_signature on <self:AExternInitPropdef> */
776 if (var_n_signature == NULL) {
777 fprintf(stderr, "Runtime error: %s", "Reciever is null");
778 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2652);
779 show_backtrace(1);
780 } else {
781 ((void (*)(val*, val*))(var_n_signature->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_signature, self) /* parent= on <var_n_signature:nullable ASignature>*/;
782 }
783 self->attrs[COLOR_parser_nodes__AExternPropdef___n_extern].val = var_n_extern; /* _n_extern on <self:AExternInitPropdef> */
784 var6 = NULL;
785 if (var_n_extern == NULL) {
786 var7 = 0; /* is null */
787 } else {
788 var7 = 1; /* arg is null and recv is not */
789 }
790 if (var7){
791 ((void (*)(val*, val*))(var_n_extern->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_extern, self) /* parent= on <var_n_extern:nullable TString(TString)>*/;
792 } else {
793 }
794 self->attrs[COLOR_parser_nodes__AExternPropdef___n_extern_calls].val = var_n_extern_calls; /* _n_extern_calls on <self:AExternInitPropdef> */
795 var8 = NULL;
796 if (var_n_extern_calls == NULL) {
797 var9 = 0; /* is null */
798 } else {
799 var9 = 1; /* arg is null and recv is not */
800 }
801 if (var9){
802 ((void (*)(val*, val*))(var_n_extern_calls->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_extern_calls, self) /* parent= on <var_n_extern_calls:nullable AExternCalls(AExternCalls)>*/;
803 } else {
804 }
805 self->attrs[COLOR_parser_nodes__AExternPropdef___n_extern_code_block].val = var_n_extern_code_block; /* _n_extern_code_block on <self:AExternInitPropdef> */
806 var10 = NULL;
807 if (var_n_extern_code_block == NULL) {
808 var11 = 0; /* is null */
809 } else {
810 var11 = 1; /* arg is null and recv is not */
811 }
812 if (var11){
813 ((void (*)(val*, val*))(var_n_extern_code_block->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_extern_code_block, self) /* parent= on <var_n_extern_code_block:nullable AExternCodeBlock(AExternCodeBlock)>*/;
814 } else {
815 }
816 RET_LABEL:;
817 }
818 /* method parser_prod#AExternInitPropdef#init_aexterninitpropdef for (self: Object, nullable ADoc, nullable TKwredef, nullable AVisibility, nullable TKwnew, nullable AMethid, nullable ASignature, nullable TString, nullable AExternCalls, nullable AExternCodeBlock) */
819 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) {
820 parser_prod__AExternInitPropdef__init_aexterninitpropdef(self, p0, p1, p2, p3, p4, p5, p6, p7, p8);
821 RET_LABEL:;
822 }
823 /* method parser_prod#AExternInitPropdef#replace_child for (self: AExternInitPropdef, ANode, nullable ANode) */
824 void parser_prod__AExternInitPropdef__replace_child(val* self, val* p0, val* p1) {
825 val* var_old_child /* var old_child: ANode */;
826 val* var_new_child /* var new_child: nullable ANode */;
827 val* var /* : nullable ADoc */;
828 short int var1 /* : Bool */;
829 val* var2 /* : null */;
830 short int var3 /* : Bool */;
831 short int var4 /* : Bool */;
832 int cltype;
833 int idtype;
834 val* var5 /* : null */;
835 val* var6 /* : nullable TKwredef */;
836 short int var7 /* : Bool */;
837 val* var8 /* : null */;
838 short int var9 /* : Bool */;
839 short int var10 /* : Bool */;
840 int cltype11;
841 int idtype12;
842 val* var13 /* : null */;
843 val* var14 /* : nullable AVisibility */;
844 short int var15 /* : Bool */;
845 val* var16 /* : null */;
846 short int var17 /* : Bool */;
847 short int var18 /* : Bool */;
848 int cltype19;
849 int idtype20;
850 val* var21 /* : TKwnew */;
851 short int var22 /* : Bool */;
852 val* var23 /* : null */;
853 short int var24 /* : Bool */;
854 short int var25 /* : Bool */;
855 int cltype26;
856 int idtype27;
857 val* var28 /* : nullable AMethid */;
858 short int var29 /* : Bool */;
859 val* var30 /* : null */;
860 short int var31 /* : Bool */;
861 short int var32 /* : Bool */;
862 int cltype33;
863 int idtype34;
864 val* var35 /* : null */;
865 val* var36 /* : nullable ASignature */;
866 short int var37 /* : Bool */;
867 val* var38 /* : null */;
868 short int var39 /* : Bool */;
869 short int var40 /* : Bool */;
870 int cltype41;
871 int idtype42;
872 val* var43 /* : nullable TString */;
873 short int var44 /* : Bool */;
874 val* var45 /* : null */;
875 short int var46 /* : Bool */;
876 short int var47 /* : Bool */;
877 int cltype48;
878 int idtype49;
879 val* var50 /* : null */;
880 val* var51 /* : nullable AExternCalls */;
881 short int var52 /* : Bool */;
882 val* var53 /* : null */;
883 short int var54 /* : Bool */;
884 short int var55 /* : Bool */;
885 int cltype56;
886 int idtype57;
887 val* var58 /* : null */;
888 val* var59 /* : nullable AExternCodeBlock */;
889 short int var60 /* : Bool */;
890 val* var61 /* : null */;
891 short int var62 /* : Bool */;
892 short int var63 /* : Bool */;
893 int cltype64;
894 int idtype65;
895 val* var66 /* : null */;
896 var_old_child = p0;
897 var_new_child = p1;
898 var = self->attrs[COLOR_parser_nodes__APropdef___n_doc].val; /* _n_doc on <self:AExternInitPropdef> */
899 if (var == NULL) {
900 var1 = 0; /* <var_old_child:ANode> cannot be null */
901 } else {
902 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:nullable ADoc>*/;
903 }
904 if (var1){
905 var2 = NULL;
906 if (var_new_child == NULL) {
907 var3 = 0; /* is null */
908 } else {
909 var3 = 1; /* arg is null and recv is not */
910 }
911 if (var3){
912 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
913 /* <var_new_child:nullable ANode(ANode)> isa ADoc */
914 cltype = type_parser_nodes__ADoc.color;
915 idtype = type_parser_nodes__ADoc.id;
916 if(cltype >= var_new_child->type->table_size) {
917 var4 = 0;
918 } else {
919 var4 = var_new_child->type->type_table[cltype] == idtype;
920 }
921 if (!var4) {
922 fprintf(stderr, "Runtime error: %s", "Assert failed");
923 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2672);
924 show_backtrace(1);
925 }
926 self->attrs[COLOR_parser_nodes__APropdef___n_doc].val = var_new_child; /* _n_doc on <self:AExternInitPropdef> */
927 } else {
928 var5 = NULL;
929 self->attrs[COLOR_parser_nodes__APropdef___n_doc].val = var5; /* _n_doc on <self:AExternInitPropdef> */
930 }
931 goto RET_LABEL;
932 } else {
933 }
934 var6 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_kwredef].val; /* _n_kwredef on <self:AExternInitPropdef> */
935 if (var6 == NULL) {
936 var7 = 0; /* <var_old_child:ANode> cannot be null */
937 } else {
938 var7 = ((short int (*)(val*, val*))(var6->class->vft[COLOR_kernel__Object___61d_61d]))(var6, var_old_child) /* == on <var6:nullable TKwredef>*/;
939 }
940 if (var7){
941 var8 = NULL;
942 if (var_new_child == NULL) {
943 var9 = 0; /* is null */
944 } else {
945 var9 = 1; /* arg is null and recv is not */
946 }
947 if (var9){
948 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
949 /* <var_new_child:nullable ANode(ANode)> isa TKwredef */
950 cltype11 = type_parser_nodes__TKwredef.color;
951 idtype12 = type_parser_nodes__TKwredef.id;
952 if(cltype11 >= var_new_child->type->table_size) {
953 var10 = 0;
954 } else {
955 var10 = var_new_child->type->type_table[cltype11] == idtype12;
956 }
957 if (!var10) {
958 fprintf(stderr, "Runtime error: %s", "Assert failed");
959 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2682);
960 show_backtrace(1);
961 }
962 self->attrs[COLOR_parser_nodes__AMethPropdef___n_kwredef].val = var_new_child; /* _n_kwredef on <self:AExternInitPropdef> */
963 } else {
964 var13 = NULL;
965 self->attrs[COLOR_parser_nodes__AMethPropdef___n_kwredef].val = var13; /* _n_kwredef on <self:AExternInitPropdef> */
966 }
967 goto RET_LABEL;
968 } else {
969 }
970 var14 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_visibility].val; /* _n_visibility on <self:AExternInitPropdef> */
971 if (var14 == NULL) {
972 var15 = 0; /* <var_old_child:ANode> cannot be null */
973 } else {
974 var15 = ((short int (*)(val*, val*))(var14->class->vft[COLOR_kernel__Object___61d_61d]))(var14, var_old_child) /* == on <var14:nullable AVisibility>*/;
975 }
976 if (var15){
977 var16 = NULL;
978 if (var_new_child == NULL) {
979 var17 = 0; /* is null */
980 } else {
981 var17 = 1; /* arg is null and recv is not */
982 }
983 if (var17){
984 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
985 /* <var_new_child:nullable ANode(ANode)> isa AVisibility */
986 cltype19 = type_parser_nodes__AVisibility.color;
987 idtype20 = type_parser_nodes__AVisibility.id;
988 if(cltype19 >= var_new_child->type->table_size) {
989 var18 = 0;
990 } else {
991 var18 = var_new_child->type->type_table[cltype19] == idtype20;
992 }
993 if (!var18) {
994 fprintf(stderr, "Runtime error: %s", "Assert failed");
995 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2692);
996 show_backtrace(1);
997 }
998 self->attrs[COLOR_parser_nodes__AMethPropdef___n_visibility].val = var_new_child; /* _n_visibility on <self:AExternInitPropdef> */
999 } else {
1000 fprintf(stderr, "Runtime error: %s", "Aborted");
1001 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2695);
1002 show_backtrace(1);
1003 }
1004 goto RET_LABEL;
1005 } else {
1006 }
1007 var21 = self->attrs[COLOR_parser_nodes__AExternInitPropdef___n_kwnew].val; /* _n_kwnew on <self:AExternInitPropdef> */
1008 if (var21 == NULL) {
1009 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwnew");
1010 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2699);
1011 show_backtrace(1);
1012 }
1013 var22 = ((short int (*)(val*, val*))(var21->class->vft[COLOR_kernel__Object___61d_61d]))(var21, var_old_child) /* == on <var21:TKwnew>*/;
1014 if (var22){
1015 var23 = NULL;
1016 if (var_new_child == NULL) {
1017 var24 = 0; /* is null */
1018 } else {
1019 var24 = 1; /* arg is null and recv is not */
1020 }
1021 if (var24){
1022 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
1023 /* <var_new_child:nullable ANode(ANode)> isa TKwnew */
1024 cltype26 = type_parser_nodes__TKwnew.color;
1025 idtype27 = type_parser_nodes__TKwnew.id;
1026 if(cltype26 >= var_new_child->type->table_size) {
1027 var25 = 0;
1028 } else {
1029 var25 = var_new_child->type->type_table[cltype26] == idtype27;
1030 }
1031 if (!var25) {
1032 fprintf(stderr, "Runtime error: %s", "Assert failed");
1033 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2702);
1034 show_backtrace(1);
1035 }
1036 self->attrs[COLOR_parser_nodes__AExternInitPropdef___n_kwnew].val = var_new_child; /* _n_kwnew on <self:AExternInitPropdef> */
1037 } else {
1038 fprintf(stderr, "Runtime error: %s", "Aborted");
1039 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2705);
1040 show_backtrace(1);
1041 }
1042 goto RET_LABEL;
1043 } else {
1044 }
1045 var28 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_methid].val; /* _n_methid on <self:AExternInitPropdef> */
1046 if (var28 == NULL) {
1047 var29 = 0; /* <var_old_child:ANode> cannot be null */
1048 } else {
1049 var29 = ((short int (*)(val*, val*))(var28->class->vft[COLOR_kernel__Object___61d_61d]))(var28, var_old_child) /* == on <var28:nullable AMethid>*/;
1050 }
1051 if (var29){
1052 var30 = NULL;
1053 if (var_new_child == NULL) {
1054 var31 = 0; /* is null */
1055 } else {
1056 var31 = 1; /* arg is null and recv is not */
1057 }
1058 if (var31){
1059 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
1060 /* <var_new_child:nullable ANode(ANode)> isa AMethid */
1061 cltype33 = type_parser_nodes__AMethid.color;
1062 idtype34 = type_parser_nodes__AMethid.id;
1063 if(cltype33 >= var_new_child->type->table_size) {
1064 var32 = 0;
1065 } else {
1066 var32 = var_new_child->type->type_table[cltype33] == idtype34;
1067 }
1068 if (!var32) {
1069 fprintf(stderr, "Runtime error: %s", "Assert failed");
1070 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2712);
1071 show_backtrace(1);
1072 }
1073 self->attrs[COLOR_parser_nodes__AMethPropdef___n_methid].val = var_new_child; /* _n_methid on <self:AExternInitPropdef> */
1074 } else {
1075 var35 = NULL;
1076 self->attrs[COLOR_parser_nodes__AMethPropdef___n_methid].val = var35; /* _n_methid on <self:AExternInitPropdef> */
1077 }
1078 goto RET_LABEL;
1079 } else {
1080 }
1081 var36 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_signature].val; /* _n_signature on <self:AExternInitPropdef> */
1082 if (var36 == NULL) {
1083 var37 = 0; /* <var_old_child:ANode> cannot be null */
1084 } else {
1085 var37 = ((short int (*)(val*, val*))(var36->class->vft[COLOR_kernel__Object___61d_61d]))(var36, var_old_child) /* == on <var36:nullable ASignature>*/;
1086 }
1087 if (var37){
1088 var38 = NULL;
1089 if (var_new_child == NULL) {
1090 var39 = 0; /* is null */
1091 } else {
1092 var39 = 1; /* arg is null and recv is not */
1093 }
1094 if (var39){
1095 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
1096 /* <var_new_child:nullable ANode(ANode)> isa ASignature */
1097 cltype41 = type_parser_nodes__ASignature.color;
1098 idtype42 = type_parser_nodes__ASignature.id;
1099 if(cltype41 >= var_new_child->type->table_size) {
1100 var40 = 0;
1101 } else {
1102 var40 = var_new_child->type->type_table[cltype41] == idtype42;
1103 }
1104 if (!var40) {
1105 fprintf(stderr, "Runtime error: %s", "Assert failed");
1106 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2722);
1107 show_backtrace(1);
1108 }
1109 self->attrs[COLOR_parser_nodes__AMethPropdef___n_signature].val = var_new_child; /* _n_signature on <self:AExternInitPropdef> */
1110 } else {
1111 fprintf(stderr, "Runtime error: %s", "Aborted");
1112 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2725);
1113 show_backtrace(1);
1114 }
1115 goto RET_LABEL;
1116 } else {
1117 }
1118 var43 = self->attrs[COLOR_parser_nodes__AExternPropdef___n_extern].val; /* _n_extern on <self:AExternInitPropdef> */
1119 if (var43 == NULL) {
1120 var44 = 0; /* <var_old_child:ANode> cannot be null */
1121 } else {
1122 var44 = ((short int (*)(val*, val*))(var43->class->vft[COLOR_kernel__Object___61d_61d]))(var43, var_old_child) /* == on <var43:nullable TString>*/;
1123 }
1124 if (var44){
1125 var45 = NULL;
1126 if (var_new_child == NULL) {
1127 var46 = 0; /* is null */
1128 } else {
1129 var46 = 1; /* arg is null and recv is not */
1130 }
1131 if (var46){
1132 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
1133 /* <var_new_child:nullable ANode(ANode)> isa TString */
1134 cltype48 = type_parser_nodes__TString.color;
1135 idtype49 = type_parser_nodes__TString.id;
1136 if(cltype48 >= var_new_child->type->table_size) {
1137 var47 = 0;
1138 } else {
1139 var47 = var_new_child->type->type_table[cltype48] == idtype49;
1140 }
1141 if (!var47) {
1142 fprintf(stderr, "Runtime error: %s", "Assert failed");
1143 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2732);
1144 show_backtrace(1);
1145 }
1146 self->attrs[COLOR_parser_nodes__AExternPropdef___n_extern].val = var_new_child; /* _n_extern on <self:AExternInitPropdef> */
1147 } else {
1148 var50 = NULL;
1149 self->attrs[COLOR_parser_nodes__AExternPropdef___n_extern].val = var50; /* _n_extern on <self:AExternInitPropdef> */
1150 }
1151 goto RET_LABEL;
1152 } else {
1153 }
1154 var51 = self->attrs[COLOR_parser_nodes__AExternPropdef___n_extern_calls].val; /* _n_extern_calls on <self:AExternInitPropdef> */
1155 if (var51 == NULL) {
1156 var52 = 0; /* <var_old_child:ANode> cannot be null */
1157 } else {
1158 var52 = ((short int (*)(val*, val*))(var51->class->vft[COLOR_kernel__Object___61d_61d]))(var51, var_old_child) /* == on <var51:nullable AExternCalls>*/;
1159 }
1160 if (var52){
1161 var53 = NULL;
1162 if (var_new_child == NULL) {
1163 var54 = 0; /* is null */
1164 } else {
1165 var54 = 1; /* arg is null and recv is not */
1166 }
1167 if (var54){
1168 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
1169 /* <var_new_child:nullable ANode(ANode)> isa AExternCalls */
1170 cltype56 = type_parser_nodes__AExternCalls.color;
1171 idtype57 = type_parser_nodes__AExternCalls.id;
1172 if(cltype56 >= var_new_child->type->table_size) {
1173 var55 = 0;
1174 } else {
1175 var55 = var_new_child->type->type_table[cltype56] == idtype57;
1176 }
1177 if (!var55) {
1178 fprintf(stderr, "Runtime error: %s", "Assert failed");
1179 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2742);
1180 show_backtrace(1);
1181 }
1182 self->attrs[COLOR_parser_nodes__AExternPropdef___n_extern_calls].val = var_new_child; /* _n_extern_calls on <self:AExternInitPropdef> */
1183 } else {
1184 var58 = NULL;
1185 self->attrs[COLOR_parser_nodes__AExternPropdef___n_extern_calls].val = var58; /* _n_extern_calls on <self:AExternInitPropdef> */
1186 }
1187 goto RET_LABEL;
1188 } else {
1189 }
1190 var59 = self->attrs[COLOR_parser_nodes__AExternPropdef___n_extern_code_block].val; /* _n_extern_code_block on <self:AExternInitPropdef> */
1191 if (var59 == NULL) {
1192 var60 = 0; /* <var_old_child:ANode> cannot be null */
1193 } else {
1194 var60 = ((short int (*)(val*, val*))(var59->class->vft[COLOR_kernel__Object___61d_61d]))(var59, var_old_child) /* == on <var59:nullable AExternCodeBlock>*/;
1195 }
1196 if (var60){
1197 var61 = NULL;
1198 if (var_new_child == NULL) {
1199 var62 = 0; /* is null */
1200 } else {
1201 var62 = 1; /* arg is null and recv is not */
1202 }
1203 if (var62){
1204 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
1205 /* <var_new_child:nullable ANode(ANode)> isa AExternCodeBlock */
1206 cltype64 = type_parser_nodes__AExternCodeBlock.color;
1207 idtype65 = type_parser_nodes__AExternCodeBlock.id;
1208 if(cltype64 >= var_new_child->type->table_size) {
1209 var63 = 0;
1210 } else {
1211 var63 = var_new_child->type->type_table[cltype64] == idtype65;
1212 }
1213 if (!var63) {
1214 fprintf(stderr, "Runtime error: %s", "Assert failed");
1215 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2752);
1216 show_backtrace(1);
1217 }
1218 self->attrs[COLOR_parser_nodes__AExternPropdef___n_extern_code_block].val = var_new_child; /* _n_extern_code_block on <self:AExternInitPropdef> */
1219 } else {
1220 var66 = NULL;
1221 self->attrs[COLOR_parser_nodes__AExternPropdef___n_extern_code_block].val = var66; /* _n_extern_code_block on <self:AExternInitPropdef> */
1222 }
1223 goto RET_LABEL;
1224 } else {
1225 }
1226 RET_LABEL:;
1227 }
1228 /* method parser_prod#AExternInitPropdef#replace_child for (self: Object, ANode, nullable ANode) */
1229 void VIRTUAL_parser_prod__AExternInitPropdef__replace_child(val* self, val* p0, val* p1) {
1230 parser_prod__AExternInitPropdef__replace_child(self, p0, p1);
1231 RET_LABEL:;
1232 }
1233 /* method parser_prod#AExternInitPropdef#n_doc= for (self: AExternInitPropdef, nullable ADoc) */
1234 void parser_prod__AExternInitPropdef__n_doc_61d(val* self, val* p0) {
1235 val* var_node /* var node: nullable ADoc */;
1236 val* var /* : null */;
1237 short int var1 /* : Bool */;
1238 var_node = p0;
1239 self->attrs[COLOR_parser_nodes__APropdef___n_doc].val = var_node; /* _n_doc on <self:AExternInitPropdef> */
1240 var = NULL;
1241 if (var_node == NULL) {
1242 var1 = 0; /* is null */
1243 } else {
1244 var1 = 1; /* arg is null and recv is not */
1245 }
1246 if (var1){
1247 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable ADoc(ADoc)>*/;
1248 } else {
1249 }
1250 RET_LABEL:;
1251 }
1252 /* method parser_prod#AExternInitPropdef#n_doc= for (self: Object, nullable ADoc) */
1253 void VIRTUAL_parser_prod__AExternInitPropdef__n_doc_61d(val* self, val* p0) {
1254 parser_prod__AExternInitPropdef__n_doc_61d(self, p0);
1255 RET_LABEL:;
1256 }
1257 /* method parser_prod#AExternInitPropdef#n_kwredef= for (self: AExternInitPropdef, nullable TKwredef) */
1258 void parser_prod__AExternInitPropdef__n_kwredef_61d(val* self, val* p0) {
1259 val* var_node /* var node: nullable TKwredef */;
1260 val* var /* : null */;
1261 short int var1 /* : Bool */;
1262 var_node = p0;
1263 self->attrs[COLOR_parser_nodes__AMethPropdef___n_kwredef].val = var_node; /* _n_kwredef on <self:AExternInitPropdef> */
1264 var = NULL;
1265 if (var_node == NULL) {
1266 var1 = 0; /* is null */
1267 } else {
1268 var1 = 1; /* arg is null and recv is not */
1269 }
1270 if (var1){
1271 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable TKwredef(TKwredef)>*/;
1272 } else {
1273 }
1274 RET_LABEL:;
1275 }
1276 /* method parser_prod#AExternInitPropdef#n_kwredef= for (self: Object, nullable TKwredef) */
1277 void VIRTUAL_parser_prod__AExternInitPropdef__n_kwredef_61d(val* self, val* p0) {
1278 parser_prod__AExternInitPropdef__n_kwredef_61d(self, p0);
1279 RET_LABEL:;
1280 }
1281 /* method parser_prod#AExternInitPropdef#n_visibility= for (self: AExternInitPropdef, nullable AVisibility) */
1282 void parser_prod__AExternInitPropdef__n_visibility_61d(val* self, val* p0) {
1283 val* var_node /* var node: nullable AVisibility */;
1284 var_node = p0;
1285 self->attrs[COLOR_parser_nodes__AMethPropdef___n_visibility].val = var_node; /* _n_visibility on <self:AExternInitPropdef> */
1286 if (var_node == NULL) {
1287 fprintf(stderr, "Runtime error: %s", "Reciever is null");
1288 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2778);
1289 show_backtrace(1);
1290 } else {
1291 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable AVisibility>*/;
1292 }
1293 RET_LABEL:;
1294 }
1295 /* method parser_prod#AExternInitPropdef#n_visibility= for (self: Object, nullable AVisibility) */
1296 void VIRTUAL_parser_prod__AExternInitPropdef__n_visibility_61d(val* self, val* p0) {
1297 parser_prod__AExternInitPropdef__n_visibility_61d(self, p0);
1298 RET_LABEL:;
1299 }
1300 /* method parser_prod#AExternInitPropdef#n_kwnew= for (self: AExternInitPropdef, TKwnew) */
1301 void parser_prod__AExternInitPropdef__n_kwnew_61d(val* self, val* p0) {
1302 val* var_node /* var node: TKwnew */;
1303 var_node = p0;
1304 self->attrs[COLOR_parser_nodes__AExternInitPropdef___n_kwnew].val = var_node; /* _n_kwnew on <self:AExternInitPropdef> */
1305 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TKwnew>*/;
1306 RET_LABEL:;
1307 }
1308 /* method parser_prod#AExternInitPropdef#n_kwnew= for (self: Object, TKwnew) */
1309 void VIRTUAL_parser_prod__AExternInitPropdef__n_kwnew_61d(val* self, val* p0) {
1310 parser_prod__AExternInitPropdef__n_kwnew_61d(self, p0);
1311 RET_LABEL:;
1312 }
1313 /* method parser_prod#AExternInitPropdef#n_methid= for (self: AExternInitPropdef, nullable AMethid) */
1314 void parser_prod__AExternInitPropdef__n_methid_61d(val* self, val* p0) {
1315 val* var_node /* var node: nullable AMethid */;
1316 val* var /* : null */;
1317 short int var1 /* : Bool */;
1318 var_node = p0;
1319 self->attrs[COLOR_parser_nodes__AMethPropdef___n_methid].val = var_node; /* _n_methid on <self:AExternInitPropdef> */
1320 var = NULL;
1321 if (var_node == NULL) {
1322 var1 = 0; /* is null */
1323 } else {
1324 var1 = 1; /* arg is null and recv is not */
1325 }
1326 if (var1){
1327 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable AMethid(AMethid)>*/;
1328 } else {
1329 }
1330 RET_LABEL:;
1331 }
1332 /* method parser_prod#AExternInitPropdef#n_methid= for (self: Object, nullable AMethid) */
1333 void VIRTUAL_parser_prod__AExternInitPropdef__n_methid_61d(val* self, val* p0) {
1334 parser_prod__AExternInitPropdef__n_methid_61d(self, p0);
1335 RET_LABEL:;
1336 }
1337 /* method parser_prod#AExternInitPropdef#n_signature= for (self: AExternInitPropdef, nullable ASignature) */
1338 void parser_prod__AExternInitPropdef__n_signature_61d(val* self, val* p0) {
1339 val* var_node /* var node: nullable ASignature */;
1340 var_node = p0;
1341 self->attrs[COLOR_parser_nodes__AMethPropdef___n_signature].val = var_node; /* _n_signature on <self:AExternInitPropdef> */
1342 if (var_node == NULL) {
1343 fprintf(stderr, "Runtime error: %s", "Reciever is null");
1344 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2795);
1345 show_backtrace(1);
1346 } else {
1347 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable ASignature>*/;
1348 }
1349 RET_LABEL:;
1350 }
1351 /* method parser_prod#AExternInitPropdef#n_signature= for (self: Object, nullable ASignature) */
1352 void VIRTUAL_parser_prod__AExternInitPropdef__n_signature_61d(val* self, val* p0) {
1353 parser_prod__AExternInitPropdef__n_signature_61d(self, p0);
1354 RET_LABEL:;
1355 }
1356 /* method parser_prod#AExternInitPropdef#n_extern= for (self: AExternInitPropdef, nullable TString) */
1357 void parser_prod__AExternInitPropdef__n_extern_61d(val* self, val* p0) {
1358 val* var_node /* var node: nullable TString */;
1359 val* var /* : null */;
1360 short int var1 /* : Bool */;
1361 var_node = p0;
1362 self->attrs[COLOR_parser_nodes__AExternPropdef___n_extern].val = var_node; /* _n_extern on <self:AExternInitPropdef> */
1363 var = NULL;
1364 if (var_node == NULL) {
1365 var1 = 0; /* is null */
1366 } else {
1367 var1 = 1; /* arg is null and recv is not */
1368 }
1369 if (var1){
1370 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable TString(TString)>*/;
1371 } else {
1372 }
1373 RET_LABEL:;
1374 }
1375 /* method parser_prod#AExternInitPropdef#n_extern= for (self: Object, nullable TString) */
1376 void VIRTUAL_parser_prod__AExternInitPropdef__n_extern_61d(val* self, val* p0) {
1377 parser_prod__AExternInitPropdef__n_extern_61d(self, p0);
1378 RET_LABEL:;
1379 }
1380 /* method parser_prod#AExternInitPropdef#n_extern_calls= for (self: AExternInitPropdef, nullable AExternCalls) */
1381 void parser_prod__AExternInitPropdef__n_extern_calls_61d(val* self, val* p0) {
1382 val* var_node /* var node: nullable AExternCalls */;
1383 val* var /* : null */;
1384 short int var1 /* : Bool */;
1385 var_node = p0;
1386 self->attrs[COLOR_parser_nodes__AExternPropdef___n_extern_calls].val = var_node; /* _n_extern_calls on <self:AExternInitPropdef> */
1387 var = NULL;
1388 if (var_node == NULL) {
1389 var1 = 0; /* is null */
1390 } else {
1391 var1 = 1; /* arg is null and recv is not */
1392 }
1393 if (var1){
1394 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable AExternCalls(AExternCalls)>*/;
1395 } else {
1396 }
1397 RET_LABEL:;
1398 }
1399 /* method parser_prod#AExternInitPropdef#n_extern_calls= for (self: Object, nullable AExternCalls) */
1400 void VIRTUAL_parser_prod__AExternInitPropdef__n_extern_calls_61d(val* self, val* p0) {
1401 parser_prod__AExternInitPropdef__n_extern_calls_61d(self, p0);
1402 RET_LABEL:;
1403 }
1404 /* method parser_prod#AExternInitPropdef#n_extern_code_block= for (self: AExternInitPropdef, nullable AExternCodeBlock) */
1405 void parser_prod__AExternInitPropdef__n_extern_code_block_61d(val* self, val* p0) {
1406 val* var_node /* var node: nullable AExternCodeBlock */;
1407 val* var /* : null */;
1408 short int var1 /* : Bool */;
1409 var_node = p0;
1410 self->attrs[COLOR_parser_nodes__AExternPropdef___n_extern_code_block].val = var_node; /* _n_extern_code_block on <self:AExternInitPropdef> */
1411 var = NULL;
1412 if (var_node == NULL) {
1413 var1 = 0; /* is null */
1414 } else {
1415 var1 = 1; /* arg is null and recv is not */
1416 }
1417 if (var1){
1418 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable AExternCodeBlock(AExternCodeBlock)>*/;
1419 } else {
1420 }
1421 RET_LABEL:;
1422 }
1423 /* method parser_prod#AExternInitPropdef#n_extern_code_block= for (self: Object, nullable AExternCodeBlock) */
1424 void VIRTUAL_parser_prod__AExternInitPropdef__n_extern_code_block_61d(val* self, val* p0) {
1425 parser_prod__AExternInitPropdef__n_extern_code_block_61d(self, p0);
1426 RET_LABEL:;
1427 }
1428 /* method parser_prod#AExternInitPropdef#visit_all for (self: AExternInitPropdef, Visitor) */
1429 void parser_prod__AExternInitPropdef__visit_all(val* self, val* p0) {
1430 val* var_v /* var v: Visitor */;
1431 val* var /* : nullable ADoc */;
1432 val* var1 /* : null */;
1433 short int var2 /* : Bool */;
1434 val* var3 /* : nullable ADoc */;
1435 val* var4 /* : nullable TKwredef */;
1436 val* var5 /* : null */;
1437 short int var6 /* : Bool */;
1438 val* var7 /* : nullable TKwredef */;
1439 val* var8 /* : nullable AVisibility */;
1440 val* var9 /* : TKwnew */;
1441 val* var10 /* : nullable AMethid */;
1442 val* var11 /* : null */;
1443 short int var12 /* : Bool */;
1444 val* var13 /* : nullable AMethid */;
1445 val* var14 /* : nullable ASignature */;
1446 val* var15 /* : nullable TString */;
1447 val* var16 /* : null */;
1448 short int var17 /* : Bool */;
1449 val* var18 /* : nullable TString */;
1450 val* var19 /* : nullable AExternCalls */;
1451 val* var20 /* : null */;
1452 short int var21 /* : Bool */;
1453 val* var22 /* : nullable AExternCalls */;
1454 val* var23 /* : nullable AExternCodeBlock */;
1455 val* var24 /* : null */;
1456 short int var25 /* : Bool */;
1457 val* var26 /* : nullable AExternCodeBlock */;
1458 var_v = p0;
1459 var = self->attrs[COLOR_parser_nodes__APropdef___n_doc].val; /* _n_doc on <self:AExternInitPropdef> */
1460 var1 = NULL;
1461 if (var == NULL) {
1462 var2 = 0; /* is null */
1463 } else {
1464 var2 = 1; /* arg is null and recv is not */
1465 }
1466 if (var2){
1467 var3 = self->attrs[COLOR_parser_nodes__APropdef___n_doc].val; /* _n_doc on <self:AExternInitPropdef> */
1468 if (var3 == NULL) {
1469 fprintf(stderr, "Runtime error: %s", "Cast failed");
1470 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2823);
1471 show_backtrace(1);
1472 }
1473 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var3) /* enter_visit on <var_v:Visitor>*/;
1474 } else {
1475 }
1476 var4 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_kwredef].val; /* _n_kwredef on <self:AExternInitPropdef> */
1477 var5 = NULL;
1478 if (var4 == NULL) {
1479 var6 = 0; /* is null */
1480 } else {
1481 var6 = 1; /* arg is null and recv is not */
1482 }
1483 if (var6){
1484 var7 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_kwredef].val; /* _n_kwredef on <self:AExternInitPropdef> */
1485 if (var7 == NULL) {
1486 fprintf(stderr, "Runtime error: %s", "Cast failed");
1487 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2826);
1488 show_backtrace(1);
1489 }
1490 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var7) /* enter_visit on <var_v:Visitor>*/;
1491 } else {
1492 }
1493 var8 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_visibility].val; /* _n_visibility on <self:AExternInitPropdef> */
1494 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var8) /* enter_visit on <var_v:Visitor>*/;
1495 var9 = self->attrs[COLOR_parser_nodes__AExternInitPropdef___n_kwnew].val; /* _n_kwnew on <self:AExternInitPropdef> */
1496 if (var9 == NULL) {
1497 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwnew");
1498 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2829);
1499 show_backtrace(1);
1500 }
1501 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var9) /* enter_visit on <var_v:Visitor>*/;
1502 var10 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_methid].val; /* _n_methid on <self:AExternInitPropdef> */
1503 var11 = NULL;
1504 if (var10 == NULL) {
1505 var12 = 0; /* is null */
1506 } else {
1507 var12 = 1; /* arg is null and recv is not */
1508 }
1509 if (var12){
1510 var13 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_methid].val; /* _n_methid on <self:AExternInitPropdef> */
1511 if (var13 == NULL) {
1512 fprintf(stderr, "Runtime error: %s", "Cast failed");
1513 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2831);
1514 show_backtrace(1);
1515 }
1516 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var13) /* enter_visit on <var_v:Visitor>*/;
1517 } else {
1518 }
1519 var14 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_signature].val; /* _n_signature on <self:AExternInitPropdef> */
1520 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var14) /* enter_visit on <var_v:Visitor>*/;
1521 var15 = self->attrs[COLOR_parser_nodes__AExternPropdef___n_extern].val; /* _n_extern on <self:AExternInitPropdef> */
1522 var16 = NULL;
1523 if (var15 == NULL) {
1524 var17 = 0; /* is null */
1525 } else {
1526 var17 = 1; /* arg is null and recv is not */
1527 }
1528 if (var17){
1529 var18 = self->attrs[COLOR_parser_nodes__AExternPropdef___n_extern].val; /* _n_extern on <self:AExternInitPropdef> */
1530 if (var18 == NULL) {
1531 fprintf(stderr, "Runtime error: %s", "Cast failed");
1532 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2835);
1533 show_backtrace(1);
1534 }
1535 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var18) /* enter_visit on <var_v:Visitor>*/;
1536 } else {
1537 }
1538 var19 = self->attrs[COLOR_parser_nodes__AExternPropdef___n_extern_calls].val; /* _n_extern_calls on <self:AExternInitPropdef> */
1539 var20 = NULL;
1540 if (var19 == NULL) {
1541 var21 = 0; /* is null */
1542 } else {
1543 var21 = 1; /* arg is null and recv is not */
1544 }
1545 if (var21){
1546 var22 = self->attrs[COLOR_parser_nodes__AExternPropdef___n_extern_calls].val; /* _n_extern_calls on <self:AExternInitPropdef> */
1547 if (var22 == NULL) {
1548 fprintf(stderr, "Runtime error: %s", "Cast failed");
1549 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2838);
1550 show_backtrace(1);
1551 }
1552 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var22) /* enter_visit on <var_v:Visitor>*/;
1553 } else {
1554 }
1555 var23 = self->attrs[COLOR_parser_nodes__AExternPropdef___n_extern_code_block].val; /* _n_extern_code_block on <self:AExternInitPropdef> */
1556 var24 = NULL;
1557 if (var23 == NULL) {
1558 var25 = 0; /* is null */
1559 } else {
1560 var25 = 1; /* arg is null and recv is not */
1561 }
1562 if (var25){
1563 var26 = self->attrs[COLOR_parser_nodes__AExternPropdef___n_extern_code_block].val; /* _n_extern_code_block on <self:AExternInitPropdef> */
1564 if (var26 == NULL) {
1565 fprintf(stderr, "Runtime error: %s", "Cast failed");
1566 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2841);
1567 show_backtrace(1);
1568 }
1569 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var26) /* enter_visit on <var_v:Visitor>*/;
1570 } else {
1571 }
1572 RET_LABEL:;
1573 }
1574 /* method parser_prod#AExternInitPropdef#visit_all for (self: Object, Visitor) */
1575 void VIRTUAL_parser_prod__AExternInitPropdef__visit_all(val* self, val* p0) {
1576 parser_prod__AExternInitPropdef__visit_all(self, p0);
1577 RET_LABEL:;
1578 }
1579 /* method parser_prod#AMainMethPropdef#empty_init for (self: AMainMethPropdef) */
1580 void parser_prod__AMainMethPropdef__empty_init(val* self) {
1581 RET_LABEL:;
1582 }
1583 /* method parser_prod#AMainMethPropdef#empty_init for (self: Object) */
1584 void VIRTUAL_parser_prod__AMainMethPropdef__empty_init(val* self) {
1585 parser_prod__AMainMethPropdef__empty_init(self);
1586 RET_LABEL:;
1587 }
1588 /* method parser_prod#AMainMethPropdef#init_amainmethpropdef for (self: AMainMethPropdef, nullable TKwredef, nullable AExpr) */
1589 void parser_prod__AMainMethPropdef__init_amainmethpropdef(val* self, val* p0, val* p1) {
1590 val* var_n_kwredef /* var n_kwredef: nullable TKwredef */;
1591 val* var_n_block /* var n_block: nullable AExpr */;
1592 val* var /* : null */;
1593 short int var1 /* : Bool */;
1594 val* var2 /* : null */;
1595 short int var3 /* : Bool */;
1596 var_n_kwredef = p0;
1597 var_n_block = p1;
1598 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__AMainMethPropdef__empty_init]))(self) /* empty_init on <self:AMainMethPropdef>*/;
1599 self->attrs[COLOR_parser_nodes__AMethPropdef___n_kwredef].val = var_n_kwredef; /* _n_kwredef on <self:AMainMethPropdef> */
1600 var = NULL;
1601 if (var_n_kwredef == NULL) {
1602 var1 = 0; /* is null */
1603 } else {
1604 var1 = 1; /* arg is null and recv is not */
1605 }
1606 if (var1){
1607 ((void (*)(val*, val*))(var_n_kwredef->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_kwredef, self) /* parent= on <var_n_kwredef:nullable TKwredef(TKwredef)>*/;
1608 } else {
1609 }
1610 self->attrs[COLOR_parser_nodes__AConcreteMethPropdef___n_block].val = var_n_block; /* _n_block on <self:AMainMethPropdef> */
1611 var2 = NULL;
1612 if (var_n_block == NULL) {
1613 var3 = 0; /* is null */
1614 } else {
1615 var3 = 1; /* arg is null and recv is not */
1616 }
1617 if (var3){
1618 ((void (*)(val*, val*))(var_n_block->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_block, self) /* parent= on <var_n_block:nullable AExpr(AExpr)>*/;
1619 } else {
1620 }
1621 RET_LABEL:;
1622 }
1623 /* method parser_prod#AMainMethPropdef#init_amainmethpropdef for (self: Object, nullable TKwredef, nullable AExpr) */
1624 void VIRTUAL_parser_prod__AMainMethPropdef__init_amainmethpropdef(val* self, val* p0, val* p1) {
1625 parser_prod__AMainMethPropdef__init_amainmethpropdef(self, p0, p1);
1626 RET_LABEL:;
1627 }
1628 /* method parser_prod#AMainMethPropdef#replace_child for (self: AMainMethPropdef, ANode, nullable ANode) */
1629 void parser_prod__AMainMethPropdef__replace_child(val* self, val* p0, val* p1) {
1630 val* var_old_child /* var old_child: ANode */;
1631 val* var_new_child /* var new_child: nullable ANode */;
1632 val* var /* : nullable TKwredef */;
1633 short int var1 /* : Bool */;
1634 val* var2 /* : null */;
1635 short int var3 /* : Bool */;
1636 short int var4 /* : Bool */;
1637 int cltype;
1638 int idtype;
1639 val* var5 /* : null */;
1640 val* var6 /* : nullable AExpr */;
1641 short int var7 /* : Bool */;
1642 val* var8 /* : null */;
1643 short int var9 /* : Bool */;
1644 short int var10 /* : Bool */;
1645 int cltype11;
1646 int idtype12;
1647 val* var13 /* : null */;
1648 var_old_child = p0;
1649 var_new_child = p1;
1650 var = self->attrs[COLOR_parser_nodes__AMethPropdef___n_kwredef].val; /* _n_kwredef on <self:AMainMethPropdef> */
1651 if (var == NULL) {
1652 var1 = 0; /* <var_old_child:ANode> cannot be null */
1653 } else {
1654 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:nullable TKwredef>*/;
1655 }
1656 if (var1){
1657 var2 = NULL;
1658 if (var_new_child == NULL) {
1659 var3 = 0; /* is null */
1660 } else {
1661 var3 = 1; /* arg is null and recv is not */
1662 }
1663 if (var3){
1664 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
1665 /* <var_new_child:nullable ANode(ANode)> isa TKwredef */
1666 cltype = type_parser_nodes__TKwredef.color;
1667 idtype = type_parser_nodes__TKwredef.id;
1668 if(cltype >= var_new_child->type->table_size) {
1669 var4 = 0;
1670 } else {
1671 var4 = var_new_child->type->type_table[cltype] == idtype;
1672 }
1673 if (!var4) {
1674 fprintf(stderr, "Runtime error: %s", "Assert failed");
1675 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2869);
1676 show_backtrace(1);
1677 }
1678 self->attrs[COLOR_parser_nodes__AMethPropdef___n_kwredef].val = var_new_child; /* _n_kwredef on <self:AMainMethPropdef> */
1679 } else {
1680 var5 = NULL;
1681 self->attrs[COLOR_parser_nodes__AMethPropdef___n_kwredef].val = var5; /* _n_kwredef on <self:AMainMethPropdef> */
1682 }
1683 goto RET_LABEL;
1684 } else {
1685 }
1686 var6 = self->attrs[COLOR_parser_nodes__AConcreteMethPropdef___n_block].val; /* _n_block on <self:AMainMethPropdef> */
1687 if (var6 == NULL) {
1688 var7 = 0; /* <var_old_child:ANode> cannot be null */
1689 } else {
1690 var7 = ((short int (*)(val*, val*))(var6->class->vft[COLOR_kernel__Object___61d_61d]))(var6, var_old_child) /* == on <var6:nullable AExpr>*/;
1691 }
1692 if (var7){
1693 var8 = NULL;
1694 if (var_new_child == NULL) {
1695 var9 = 0; /* is null */
1696 } else {
1697 var9 = 1; /* arg is null and recv is not */
1698 }
1699 if (var9){
1700 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
1701 /* <var_new_child:nullable ANode(ANode)> isa AExpr */
1702 cltype11 = type_parser_nodes__AExpr.color;
1703 idtype12 = type_parser_nodes__AExpr.id;
1704 if(cltype11 >= var_new_child->type->table_size) {
1705 var10 = 0;
1706 } else {
1707 var10 = var_new_child->type->type_table[cltype11] == idtype12;
1708 }
1709 if (!var10) {
1710 fprintf(stderr, "Runtime error: %s", "Assert failed");
1711 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2879);
1712 show_backtrace(1);
1713 }
1714 self->attrs[COLOR_parser_nodes__AConcreteMethPropdef___n_block].val = var_new_child; /* _n_block on <self:AMainMethPropdef> */
1715 } else {
1716 var13 = NULL;
1717 self->attrs[COLOR_parser_nodes__AConcreteMethPropdef___n_block].val = var13; /* _n_block on <self:AMainMethPropdef> */
1718 }
1719 goto RET_LABEL;
1720 } else {
1721 }
1722 RET_LABEL:;
1723 }
1724 /* method parser_prod#AMainMethPropdef#replace_child for (self: Object, ANode, nullable ANode) */
1725 void VIRTUAL_parser_prod__AMainMethPropdef__replace_child(val* self, val* p0, val* p1) {
1726 parser_prod__AMainMethPropdef__replace_child(self, p0, p1);
1727 RET_LABEL:;
1728 }
1729 /* method parser_prod#AMainMethPropdef#n_kwredef= for (self: AMainMethPropdef, nullable TKwredef) */
1730 void parser_prod__AMainMethPropdef__n_kwredef_61d(val* self, val* p0) {
1731 val* var_node /* var node: nullable TKwredef */;
1732 val* var /* : null */;
1733 short int var1 /* : Bool */;
1734 var_node = p0;
1735 self->attrs[COLOR_parser_nodes__AMethPropdef___n_kwredef].val = var_node; /* _n_kwredef on <self:AMainMethPropdef> */
1736 var = NULL;
1737 if (var_node == NULL) {
1738 var1 = 0; /* is null */
1739 } else {
1740 var1 = 1; /* arg is null and recv is not */
1741 }
1742 if (var1){
1743 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable TKwredef(TKwredef)>*/;
1744 } else {
1745 }
1746 RET_LABEL:;
1747 }
1748 /* method parser_prod#AMainMethPropdef#n_kwredef= for (self: Object, nullable TKwredef) */
1749 void VIRTUAL_parser_prod__AMainMethPropdef__n_kwredef_61d(val* self, val* p0) {
1750 parser_prod__AMainMethPropdef__n_kwredef_61d(self, p0);
1751 RET_LABEL:;
1752 }
1753 /* method parser_prod#AMainMethPropdef#n_block= for (self: AMainMethPropdef, nullable AExpr) */
1754 void parser_prod__AMainMethPropdef__n_block_61d(val* self, val* p0) {
1755 val* var_node /* var node: nullable AExpr */;
1756 val* var /* : null */;
1757 short int var1 /* : Bool */;
1758 var_node = p0;
1759 self->attrs[COLOR_parser_nodes__AConcreteMethPropdef___n_block].val = var_node; /* _n_block on <self:AMainMethPropdef> */
1760 var = NULL;
1761 if (var_node == NULL) {
1762 var1 = 0; /* is null */
1763 } else {
1764 var1 = 1; /* arg is null and recv is not */
1765 }
1766 if (var1){
1767 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable AExpr(AExpr)>*/;
1768 } else {
1769 }
1770 RET_LABEL:;
1771 }
1772 /* method parser_prod#AMainMethPropdef#n_block= for (self: Object, nullable AExpr) */
1773 void VIRTUAL_parser_prod__AMainMethPropdef__n_block_61d(val* self, val* p0) {
1774 parser_prod__AMainMethPropdef__n_block_61d(self, p0);
1775 RET_LABEL:;
1776 }
1777 /* method parser_prod#AMainMethPropdef#visit_all for (self: AMainMethPropdef, Visitor) */
1778 void parser_prod__AMainMethPropdef__visit_all(val* self, val* p0) {
1779 val* var_v /* var v: Visitor */;
1780 val* var /* : nullable TKwredef */;
1781 val* var1 /* : null */;
1782 short int var2 /* : Bool */;
1783 val* var3 /* : nullable TKwredef */;
1784 val* var4 /* : nullable AExpr */;
1785 val* var5 /* : null */;
1786 short int var6 /* : Bool */;
1787 val* var7 /* : nullable AExpr */;
1788 var_v = p0;
1789 var = self->attrs[COLOR_parser_nodes__AMethPropdef___n_kwredef].val; /* _n_kwredef on <self:AMainMethPropdef> */
1790 var1 = NULL;
1791 if (var == NULL) {
1792 var2 = 0; /* is null */
1793 } else {
1794 var2 = 1; /* arg is null and recv is not */
1795 }
1796 if (var2){
1797 var3 = self->attrs[COLOR_parser_nodes__AMethPropdef___n_kwredef].val; /* _n_kwredef on <self:AMainMethPropdef> */
1798 if (var3 == NULL) {
1799 fprintf(stderr, "Runtime error: %s", "Cast failed");
1800 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2907);
1801 show_backtrace(1);
1802 }
1803 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var3) /* enter_visit on <var_v:Visitor>*/;
1804 } else {
1805 }
1806 var4 = self->attrs[COLOR_parser_nodes__AConcreteMethPropdef___n_block].val; /* _n_block on <self:AMainMethPropdef> */
1807 var5 = NULL;
1808 if (var4 == NULL) {
1809 var6 = 0; /* is null */
1810 } else {
1811 var6 = 1; /* arg is null and recv is not */
1812 }
1813 if (var6){
1814 var7 = self->attrs[COLOR_parser_nodes__AConcreteMethPropdef___n_block].val; /* _n_block on <self:AMainMethPropdef> */
1815 if (var7 == NULL) {
1816 fprintf(stderr, "Runtime error: %s", "Cast failed");
1817 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2910);
1818 show_backtrace(1);
1819 }
1820 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var7) /* enter_visit on <var_v:Visitor>*/;
1821 } else {
1822 }
1823 RET_LABEL:;
1824 }
1825 /* method parser_prod#AMainMethPropdef#visit_all for (self: Object, Visitor) */
1826 void VIRTUAL_parser_prod__AMainMethPropdef__visit_all(val* self, val* p0) {
1827 parser_prod__AMainMethPropdef__visit_all(self, p0);
1828 RET_LABEL:;
1829 }
1830 /* method parser_prod#ATypePropdef#empty_init for (self: ATypePropdef) */
1831 void parser_prod__ATypePropdef__empty_init(val* self) {
1832 RET_LABEL:;
1833 }
1834 /* method parser_prod#ATypePropdef#empty_init for (self: Object) */
1835 void VIRTUAL_parser_prod__ATypePropdef__empty_init(val* self) {
1836 parser_prod__ATypePropdef__empty_init(self);
1837 RET_LABEL:;
1838 }
1839 /* method parser_prod#ATypePropdef#init_atypepropdef for (self: ATypePropdef, nullable ADoc, nullable TKwredef, nullable AVisibility, nullable TKwtype, nullable TClassid, nullable AType, nullable AAnnotations) */
1840 void parser_prod__ATypePropdef__init_atypepropdef(val* self, val* p0, val* p1, val* p2, val* p3, val* p4, val* p5, val* p6) {
1841 val* var_n_doc /* var n_doc: nullable ADoc */;
1842 val* var_n_kwredef /* var n_kwredef: nullable TKwredef */;
1843 val* var_n_visibility /* var n_visibility: nullable AVisibility */;
1844 val* var_n_kwtype /* var n_kwtype: nullable TKwtype */;
1845 val* var_n_id /* var n_id: nullable TClassid */;
1846 val* var_n_type /* var n_type: nullable AType */;
1847 val* var_n_annotations /* var n_annotations: nullable AAnnotations */;
1848 val* var /* : null */;
1849 short int var1 /* : Bool */;
1850 val* var2 /* : null */;
1851 short int var3 /* : Bool */;
1852 val* var4 /* : null */;
1853 short int var5 /* : Bool */;
1854 var_n_doc = p0;
1855 var_n_kwredef = p1;
1856 var_n_visibility = p2;
1857 var_n_kwtype = p3;
1858 var_n_id = p4;
1859 var_n_type = p5;
1860 var_n_annotations = p6;
1861 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__ATypePropdef__empty_init]))(self) /* empty_init on <self:ATypePropdef>*/;
1862 self->attrs[COLOR_parser_nodes__APropdef___n_doc].val = var_n_doc; /* _n_doc on <self:ATypePropdef> */
1863 var = NULL;
1864 if (var_n_doc == NULL) {
1865 var1 = 0; /* is null */
1866 } else {
1867 var1 = 1; /* arg is null and recv is not */
1868 }
1869 if (var1){
1870 ((void (*)(val*, val*))(var_n_doc->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_doc, self) /* parent= on <var_n_doc:nullable ADoc(ADoc)>*/;
1871 } else {
1872 }
1873 self->attrs[COLOR_parser_nodes__ATypePropdef___n_kwredef].val = var_n_kwredef; /* _n_kwredef on <self:ATypePropdef> */
1874 var2 = NULL;
1875 if (var_n_kwredef == NULL) {
1876 var3 = 0; /* is null */
1877 } else {
1878 var3 = 1; /* arg is null and recv is not */
1879 }
1880 if (var3){
1881 ((void (*)(val*, val*))(var_n_kwredef->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_kwredef, self) /* parent= on <var_n_kwredef:nullable TKwredef(TKwredef)>*/;
1882 } else {
1883 }
1884 if (var_n_visibility == NULL) {
1885 fprintf(stderr, "Runtime error: %s", "Cast failed");
1886 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2936);
1887 show_backtrace(1);
1888 }
1889 self->attrs[COLOR_parser_nodes__ATypePropdef___n_visibility].val = var_n_visibility; /* _n_visibility on <self:ATypePropdef> */
1890 if (var_n_visibility == NULL) {
1891 fprintf(stderr, "Runtime error: %s", "Reciever is null");
1892 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2937);
1893 show_backtrace(1);
1894 } else {
1895 ((void (*)(val*, val*))(var_n_visibility->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_visibility, self) /* parent= on <var_n_visibility:nullable AVisibility>*/;
1896 }
1897 if (var_n_kwtype == NULL) {
1898 fprintf(stderr, "Runtime error: %s", "Cast failed");
1899 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2938);
1900 show_backtrace(1);
1901 }
1902 self->attrs[COLOR_parser_nodes__ATypePropdef___n_kwtype].val = var_n_kwtype; /* _n_kwtype on <self:ATypePropdef> */
1903 if (var_n_kwtype == NULL) {
1904 fprintf(stderr, "Runtime error: %s", "Reciever is null");
1905 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2939);
1906 show_backtrace(1);
1907 } else {
1908 ((void (*)(val*, val*))(var_n_kwtype->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_kwtype, self) /* parent= on <var_n_kwtype:nullable TKwtype>*/;
1909 }
1910 if (var_n_id == NULL) {
1911 fprintf(stderr, "Runtime error: %s", "Cast failed");
1912 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2940);
1913 show_backtrace(1);
1914 }
1915 self->attrs[COLOR_parser_nodes__ATypePropdef___n_id].val = var_n_id; /* _n_id on <self:ATypePropdef> */
1916 if (var_n_id == NULL) {
1917 fprintf(stderr, "Runtime error: %s", "Reciever is null");
1918 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2941);
1919 show_backtrace(1);
1920 } else {
1921 ((void (*)(val*, val*))(var_n_id->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_id, self) /* parent= on <var_n_id:nullable TClassid>*/;
1922 }
1923 if (var_n_type == NULL) {
1924 fprintf(stderr, "Runtime error: %s", "Cast failed");
1925 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2942);
1926 show_backtrace(1);
1927 }
1928 self->attrs[COLOR_parser_nodes__ATypePropdef___n_type].val = var_n_type; /* _n_type on <self:ATypePropdef> */
1929 if (var_n_type == NULL) {
1930 fprintf(stderr, "Runtime error: %s", "Reciever is null");
1931 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2943);
1932 show_backtrace(1);
1933 } else {
1934 ((void (*)(val*, val*))(var_n_type->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_type, self) /* parent= on <var_n_type:nullable AType>*/;
1935 }
1936 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:ATypePropdef> */
1937 var4 = NULL;
1938 if (var_n_annotations == NULL) {
1939 var5 = 0; /* is null */
1940 } else {
1941 var5 = 1; /* arg is null and recv is not */
1942 }
1943 if (var5){
1944 ((void (*)(val*, val*))(var_n_annotations->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_annotations, self) /* parent= on <var_n_annotations:nullable AAnnotations(AAnnotations)>*/;
1945 } else {
1946 }
1947 RET_LABEL:;
1948 }
1949 /* method parser_prod#ATypePropdef#init_atypepropdef for (self: Object, nullable ADoc, nullable TKwredef, nullable AVisibility, nullable TKwtype, nullable TClassid, nullable AType, nullable AAnnotations) */
1950 void VIRTUAL_parser_prod__ATypePropdef__init_atypepropdef(val* self, val* p0, val* p1, val* p2, val* p3, val* p4, val* p5, val* p6) {
1951 parser_prod__ATypePropdef__init_atypepropdef(self, p0, p1, p2, p3, p4, p5, p6);
1952 RET_LABEL:;
1953 }
1954 /* method parser_prod#ATypePropdef#replace_child for (self: ATypePropdef, ANode, nullable ANode) */
1955 void parser_prod__ATypePropdef__replace_child(val* self, val* p0, val* p1) {
1956 val* var_old_child /* var old_child: ANode */;
1957 val* var_new_child /* var new_child: nullable ANode */;
1958 val* var /* : nullable ADoc */;
1959 short int var1 /* : Bool */;
1960 val* var2 /* : null */;
1961 short int var3 /* : Bool */;
1962 short int var4 /* : Bool */;
1963 int cltype;
1964 int idtype;
1965 val* var5 /* : null */;
1966 val* var6 /* : nullable TKwredef */;
1967 short int var7 /* : Bool */;
1968 val* var8 /* : null */;
1969 short int var9 /* : Bool */;
1970 short int var10 /* : Bool */;
1971 int cltype11;
1972 int idtype12;
1973 val* var13 /* : null */;
1974 val* var14 /* : AVisibility */;
1975 short int var15 /* : Bool */;
1976 val* var16 /* : null */;
1977 short int var17 /* : Bool */;
1978 short int var18 /* : Bool */;
1979 int cltype19;
1980 int idtype20;
1981 val* var21 /* : TKwtype */;
1982 short int var22 /* : Bool */;
1983 val* var23 /* : null */;
1984 short int var24 /* : Bool */;
1985 short int var25 /* : Bool */;
1986 int cltype26;
1987 int idtype27;
1988 val* var28 /* : TClassid */;
1989 short int var29 /* : Bool */;
1990 val* var30 /* : null */;
1991 short int var31 /* : Bool */;
1992 short int var32 /* : Bool */;
1993 int cltype33;
1994 int idtype34;
1995 val* var35 /* : AType */;
1996 short int var36 /* : Bool */;
1997 val* var37 /* : null */;
1998 short int var38 /* : Bool */;
1999 short int var39 /* : Bool */;
2000 int cltype40;
2001 int idtype41;
2002 val* var42 /* : nullable AAnnotations */;
2003 short int var43 /* : Bool */;
2004 val* var44 /* : null */;
2005 short int var45 /* : Bool */;
2006 short int var46 /* : Bool */;
2007 int cltype47;
2008 int idtype48;
2009 val* var49 /* : null */;
2010 var_old_child = p0;
2011 var_new_child = p1;
2012 var = self->attrs[COLOR_parser_nodes__APropdef___n_doc].val; /* _n_doc on <self:ATypePropdef> */
2013 if (var == NULL) {
2014 var1 = 0; /* <var_old_child:ANode> cannot be null */
2015 } else {
2016 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:nullable ADoc>*/;
2017 }
2018 if (var1){
2019 var2 = NULL;
2020 if (var_new_child == NULL) {
2021 var3 = 0; /* is null */
2022 } else {
2023 var3 = 1; /* arg is null and recv is not */
2024 }
2025 if (var3){
2026 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
2027 /* <var_new_child:nullable ANode(ANode)> isa ADoc */
2028 cltype = type_parser_nodes__ADoc.color;
2029 idtype = type_parser_nodes__ADoc.id;
2030 if(cltype >= var_new_child->type->table_size) {
2031 var4 = 0;
2032 } else {
2033 var4 = var_new_child->type->type_table[cltype] == idtype;
2034 }
2035 if (!var4) {
2036 fprintf(stderr, "Runtime error: %s", "Assert failed");
2037 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2955);
2038 show_backtrace(1);
2039 }
2040 self->attrs[COLOR_parser_nodes__APropdef___n_doc].val = var_new_child; /* _n_doc on <self:ATypePropdef> */
2041 } else {
2042 var5 = NULL;
2043 self->attrs[COLOR_parser_nodes__APropdef___n_doc].val = var5; /* _n_doc on <self:ATypePropdef> */
2044 }
2045 goto RET_LABEL;
2046 } else {
2047 }
2048 var6 = self->attrs[COLOR_parser_nodes__ATypePropdef___n_kwredef].val; /* _n_kwredef on <self:ATypePropdef> */
2049 if (var6 == NULL) {
2050 var7 = 0; /* <var_old_child:ANode> cannot be null */
2051 } else {
2052 var7 = ((short int (*)(val*, val*))(var6->class->vft[COLOR_kernel__Object___61d_61d]))(var6, var_old_child) /* == on <var6:nullable TKwredef>*/;
2053 }
2054 if (var7){
2055 var8 = NULL;
2056 if (var_new_child == NULL) {
2057 var9 = 0; /* is null */
2058 } else {
2059 var9 = 1; /* arg is null and recv is not */
2060 }
2061 if (var9){
2062 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
2063 /* <var_new_child:nullable ANode(ANode)> isa TKwredef */
2064 cltype11 = type_parser_nodes__TKwredef.color;
2065 idtype12 = type_parser_nodes__TKwredef.id;
2066 if(cltype11 >= var_new_child->type->table_size) {
2067 var10 = 0;
2068 } else {
2069 var10 = var_new_child->type->type_table[cltype11] == idtype12;
2070 }
2071 if (!var10) {
2072 fprintf(stderr, "Runtime error: %s", "Assert failed");
2073 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2965);
2074 show_backtrace(1);
2075 }
2076 self->attrs[COLOR_parser_nodes__ATypePropdef___n_kwredef].val = var_new_child; /* _n_kwredef on <self:ATypePropdef> */
2077 } else {
2078 var13 = NULL;
2079 self->attrs[COLOR_parser_nodes__ATypePropdef___n_kwredef].val = var13; /* _n_kwredef on <self:ATypePropdef> */
2080 }
2081 goto RET_LABEL;
2082 } else {
2083 }
2084 var14 = self->attrs[COLOR_parser_nodes__ATypePropdef___n_visibility].val; /* _n_visibility on <self:ATypePropdef> */
2085 if (var14 == NULL) {
2086 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_visibility");
2087 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2972);
2088 show_backtrace(1);
2089 }
2090 var15 = ((short int (*)(val*, val*))(var14->class->vft[COLOR_kernel__Object___61d_61d]))(var14, var_old_child) /* == on <var14:AVisibility>*/;
2091 if (var15){
2092 var16 = NULL;
2093 if (var_new_child == NULL) {
2094 var17 = 0; /* is null */
2095 } else {
2096 var17 = 1; /* arg is null and recv is not */
2097 }
2098 if (var17){
2099 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
2100 /* <var_new_child:nullable ANode(ANode)> isa AVisibility */
2101 cltype19 = type_parser_nodes__AVisibility.color;
2102 idtype20 = type_parser_nodes__AVisibility.id;
2103 if(cltype19 >= var_new_child->type->table_size) {
2104 var18 = 0;
2105 } else {
2106 var18 = var_new_child->type->type_table[cltype19] == idtype20;
2107 }
2108 if (!var18) {
2109 fprintf(stderr, "Runtime error: %s", "Assert failed");
2110 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2975);
2111 show_backtrace(1);
2112 }
2113 self->attrs[COLOR_parser_nodes__ATypePropdef___n_visibility].val = var_new_child; /* _n_visibility on <self:ATypePropdef> */
2114 } else {
2115 fprintf(stderr, "Runtime error: %s", "Aborted");
2116 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2978);
2117 show_backtrace(1);
2118 }
2119 goto RET_LABEL;
2120 } else {
2121 }
2122 var21 = self->attrs[COLOR_parser_nodes__ATypePropdef___n_kwtype].val; /* _n_kwtype on <self:ATypePropdef> */
2123 if (var21 == NULL) {
2124 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwtype");
2125 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2982);
2126 show_backtrace(1);
2127 }
2128 var22 = ((short int (*)(val*, val*))(var21->class->vft[COLOR_kernel__Object___61d_61d]))(var21, var_old_child) /* == on <var21:TKwtype>*/;
2129 if (var22){
2130 var23 = NULL;
2131 if (var_new_child == NULL) {
2132 var24 = 0; /* is null */
2133 } else {
2134 var24 = 1; /* arg is null and recv is not */
2135 }
2136 if (var24){
2137 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
2138 /* <var_new_child:nullable ANode(ANode)> isa TKwtype */
2139 cltype26 = type_parser_nodes__TKwtype.color;
2140 idtype27 = type_parser_nodes__TKwtype.id;
2141 if(cltype26 >= var_new_child->type->table_size) {
2142 var25 = 0;
2143 } else {
2144 var25 = var_new_child->type->type_table[cltype26] == idtype27;
2145 }
2146 if (!var25) {
2147 fprintf(stderr, "Runtime error: %s", "Assert failed");
2148 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2985);
2149 show_backtrace(1);
2150 }
2151 self->attrs[COLOR_parser_nodes__ATypePropdef___n_kwtype].val = var_new_child; /* _n_kwtype on <self:ATypePropdef> */
2152 } else {
2153 fprintf(stderr, "Runtime error: %s", "Aborted");
2154 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2988);
2155 show_backtrace(1);
2156 }
2157 goto RET_LABEL;
2158 } else {
2159 }
2160 var28 = self->attrs[COLOR_parser_nodes__ATypePropdef___n_id].val; /* _n_id on <self:ATypePropdef> */
2161 if (var28 == NULL) {
2162 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_id");
2163 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2992);
2164 show_backtrace(1);
2165 }
2166 var29 = ((short int (*)(val*, val*))(var28->class->vft[COLOR_kernel__Object___61d_61d]))(var28, var_old_child) /* == on <var28:TClassid>*/;
2167 if (var29){
2168 var30 = NULL;
2169 if (var_new_child == NULL) {
2170 var31 = 0; /* is null */
2171 } else {
2172 var31 = 1; /* arg is null and recv is not */
2173 }
2174 if (var31){
2175 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
2176 /* <var_new_child:nullable ANode(ANode)> isa TClassid */
2177 cltype33 = type_parser_nodes__TClassid.color;
2178 idtype34 = type_parser_nodes__TClassid.id;
2179 if(cltype33 >= var_new_child->type->table_size) {
2180 var32 = 0;
2181 } else {
2182 var32 = var_new_child->type->type_table[cltype33] == idtype34;
2183 }
2184 if (!var32) {
2185 fprintf(stderr, "Runtime error: %s", "Assert failed");
2186 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2995);
2187 show_backtrace(1);
2188 }
2189 self->attrs[COLOR_parser_nodes__ATypePropdef___n_id].val = var_new_child; /* _n_id on <self:ATypePropdef> */
2190 } else {
2191 fprintf(stderr, "Runtime error: %s", "Aborted");
2192 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 2998);
2193 show_backtrace(1);
2194 }
2195 goto RET_LABEL;
2196 } else {
2197 }
2198 var35 = self->attrs[COLOR_parser_nodes__ATypePropdef___n_type].val; /* _n_type on <self:ATypePropdef> */
2199 if (var35 == NULL) {
2200 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_type");
2201 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3002);
2202 show_backtrace(1);
2203 }
2204 var36 = ((short int (*)(val*, val*))(var35->class->vft[COLOR_kernel__Object___61d_61d]))(var35, var_old_child) /* == on <var35:AType>*/;
2205 if (var36){
2206 var37 = NULL;
2207 if (var_new_child == NULL) {
2208 var38 = 0; /* is null */
2209 } else {
2210 var38 = 1; /* arg is null and recv is not */
2211 }
2212 if (var38){
2213 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
2214 /* <var_new_child:nullable ANode(ANode)> isa AType */
2215 cltype40 = type_parser_nodes__AType.color;
2216 idtype41 = type_parser_nodes__AType.id;
2217 if(cltype40 >= var_new_child->type->table_size) {
2218 var39 = 0;
2219 } else {
2220 var39 = var_new_child->type->type_table[cltype40] == idtype41;
2221 }
2222 if (!var39) {
2223 fprintf(stderr, "Runtime error: %s", "Assert failed");
2224 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3005);
2225 show_backtrace(1);
2226 }
2227 self->attrs[COLOR_parser_nodes__ATypePropdef___n_type].val = var_new_child; /* _n_type on <self:ATypePropdef> */
2228 } else {
2229 fprintf(stderr, "Runtime error: %s", "Aborted");
2230 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3008);
2231 show_backtrace(1);
2232 }
2233 goto RET_LABEL;
2234 } else {
2235 }
2236 var42 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:ATypePropdef> */
2237 if (var42 == NULL) {
2238 var43 = 0; /* <var_old_child:ANode> cannot be null */
2239 } else {
2240 var43 = ((short int (*)(val*, val*))(var42->class->vft[COLOR_kernel__Object___61d_61d]))(var42, var_old_child) /* == on <var42:nullable AAnnotations>*/;
2241 }
2242 if (var43){
2243 var44 = NULL;
2244 if (var_new_child == NULL) {
2245 var45 = 0; /* is null */
2246 } else {
2247 var45 = 1; /* arg is null and recv is not */
2248 }
2249 if (var45){
2250 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
2251 /* <var_new_child:nullable ANode(ANode)> isa AAnnotations */
2252 cltype47 = type_parser_nodes__AAnnotations.color;
2253 idtype48 = type_parser_nodes__AAnnotations.id;
2254 if(cltype47 >= var_new_child->type->table_size) {
2255 var46 = 0;
2256 } else {
2257 var46 = var_new_child->type->type_table[cltype47] == idtype48;
2258 }
2259 if (!var46) {
2260 fprintf(stderr, "Runtime error: %s", "Assert failed");
2261 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3015);
2262 show_backtrace(1);
2263 }
2264 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_new_child; /* _n_annotations on <self:ATypePropdef> */
2265 } else {
2266 var49 = NULL;
2267 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var49; /* _n_annotations on <self:ATypePropdef> */
2268 }
2269 goto RET_LABEL;
2270 } else {
2271 }
2272 RET_LABEL:;
2273 }
2274 /* method parser_prod#ATypePropdef#replace_child for (self: Object, ANode, nullable ANode) */
2275 void VIRTUAL_parser_prod__ATypePropdef__replace_child(val* self, val* p0, val* p1) {
2276 parser_prod__ATypePropdef__replace_child(self, p0, p1);
2277 RET_LABEL:;
2278 }
2279 /* method parser_prod#ATypePropdef#n_doc= for (self: ATypePropdef, nullable ADoc) */
2280 void parser_prod__ATypePropdef__n_doc_61d(val* self, val* p0) {
2281 val* var_node /* var node: nullable ADoc */;
2282 val* var /* : null */;
2283 short int var1 /* : Bool */;
2284 var_node = p0;
2285 self->attrs[COLOR_parser_nodes__APropdef___n_doc].val = var_node; /* _n_doc on <self:ATypePropdef> */
2286 var = NULL;
2287 if (var_node == NULL) {
2288 var1 = 0; /* is null */
2289 } else {
2290 var1 = 1; /* arg is null and recv is not */
2291 }
2292 if (var1){
2293 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable ADoc(ADoc)>*/;
2294 } else {
2295 }
2296 RET_LABEL:;
2297 }
2298 /* method parser_prod#ATypePropdef#n_doc= for (self: Object, nullable ADoc) */
2299 void VIRTUAL_parser_prod__ATypePropdef__n_doc_61d(val* self, val* p0) {
2300 parser_prod__ATypePropdef__n_doc_61d(self, p0);
2301 RET_LABEL:;
2302 }
2303 /* method parser_prod#ATypePropdef#n_kwredef= for (self: ATypePropdef, nullable TKwredef) */
2304 void parser_prod__ATypePropdef__n_kwredef_61d(val* self, val* p0) {
2305 val* var_node /* var node: nullable TKwredef */;
2306 val* var /* : null */;
2307 short int var1 /* : Bool */;
2308 var_node = p0;
2309 self->attrs[COLOR_parser_nodes__ATypePropdef___n_kwredef].val = var_node; /* _n_kwredef on <self:ATypePropdef> */
2310 var = NULL;
2311 if (var_node == NULL) {
2312 var1 = 0; /* is null */
2313 } else {
2314 var1 = 1; /* arg is null and recv is not */
2315 }
2316 if (var1){
2317 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable TKwredef(TKwredef)>*/;
2318 } else {
2319 }
2320 RET_LABEL:;
2321 }
2322 /* method parser_prod#ATypePropdef#n_kwredef= for (self: Object, nullable TKwredef) */
2323 void VIRTUAL_parser_prod__ATypePropdef__n_kwredef_61d(val* self, val* p0) {
2324 parser_prod__ATypePropdef__n_kwredef_61d(self, p0);
2325 RET_LABEL:;
2326 }
2327 /* method parser_prod#ATypePropdef#n_visibility= for (self: ATypePropdef, AVisibility) */
2328 void parser_prod__ATypePropdef__n_visibility_61d(val* self, val* p0) {
2329 val* var_node /* var node: AVisibility */;
2330 var_node = p0;
2331 self->attrs[COLOR_parser_nodes__ATypePropdef___n_visibility].val = var_node; /* _n_visibility on <self:ATypePropdef> */
2332 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:AVisibility>*/;
2333 RET_LABEL:;
2334 }
2335 /* method parser_prod#ATypePropdef#n_visibility= for (self: Object, AVisibility) */
2336 void VIRTUAL_parser_prod__ATypePropdef__n_visibility_61d(val* self, val* p0) {
2337 parser_prod__ATypePropdef__n_visibility_61d(self, p0);
2338 RET_LABEL:;
2339 }
2340 /* method parser_prod#ATypePropdef#n_kwtype= for (self: ATypePropdef, TKwtype) */
2341 void parser_prod__ATypePropdef__n_kwtype_61d(val* self, val* p0) {
2342 val* var_node /* var node: TKwtype */;
2343 var_node = p0;
2344 self->attrs[COLOR_parser_nodes__ATypePropdef___n_kwtype].val = var_node; /* _n_kwtype on <self:ATypePropdef> */
2345 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TKwtype>*/;
2346 RET_LABEL:;
2347 }
2348 /* method parser_prod#ATypePropdef#n_kwtype= for (self: Object, TKwtype) */
2349 void VIRTUAL_parser_prod__ATypePropdef__n_kwtype_61d(val* self, val* p0) {
2350 parser_prod__ATypePropdef__n_kwtype_61d(self, p0);
2351 RET_LABEL:;
2352 }
2353 /* method parser_prod#ATypePropdef#n_id= for (self: ATypePropdef, TClassid) */
2354 void parser_prod__ATypePropdef__n_id_61d(val* self, val* p0) {
2355 val* var_node /* var node: TClassid */;
2356 var_node = p0;
2357 self->attrs[COLOR_parser_nodes__ATypePropdef___n_id].val = var_node; /* _n_id on <self:ATypePropdef> */
2358 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TClassid>*/;
2359 RET_LABEL:;
2360 }
2361 /* method parser_prod#ATypePropdef#n_id= for (self: Object, TClassid) */
2362 void VIRTUAL_parser_prod__ATypePropdef__n_id_61d(val* self, val* p0) {
2363 parser_prod__ATypePropdef__n_id_61d(self, p0);
2364 RET_LABEL:;
2365 }
2366 /* method parser_prod#ATypePropdef#n_type= for (self: ATypePropdef, AType) */
2367 void parser_prod__ATypePropdef__n_type_61d(val* self, val* p0) {
2368 val* var_node /* var node: AType */;
2369 var_node = p0;
2370 self->attrs[COLOR_parser_nodes__ATypePropdef___n_type].val = var_node; /* _n_type on <self:ATypePropdef> */
2371 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:AType>*/;
2372 RET_LABEL:;
2373 }
2374 /* method parser_prod#ATypePropdef#n_type= for (self: Object, AType) */
2375 void VIRTUAL_parser_prod__ATypePropdef__n_type_61d(val* self, val* p0) {
2376 parser_prod__ATypePropdef__n_type_61d(self, p0);
2377 RET_LABEL:;
2378 }
2379 /* method parser_prod#ATypePropdef#n_annotations= for (self: ATypePropdef, nullable AAnnotations) */
2380 void parser_prod__ATypePropdef__n_annotations_61d(val* self, val* p0) {
2381 val* var_node /* var node: nullable AAnnotations */;
2382 val* var /* : null */;
2383 short int var1 /* : Bool */;
2384 var_node = p0;
2385 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_node; /* _n_annotations on <self:ATypePropdef> */
2386 var = NULL;
2387 if (var_node == NULL) {
2388 var1 = 0; /* is null */
2389 } else {
2390 var1 = 1; /* arg is null and recv is not */
2391 }
2392 if (var1){
2393 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable AAnnotations(AAnnotations)>*/;
2394 } else {
2395 }
2396 RET_LABEL:;
2397 }
2398 /* method parser_prod#ATypePropdef#n_annotations= for (self: Object, nullable AAnnotations) */
2399 void VIRTUAL_parser_prod__ATypePropdef__n_annotations_61d(val* self, val* p0) {
2400 parser_prod__ATypePropdef__n_annotations_61d(self, p0);
2401 RET_LABEL:;
2402 }
2403 /* method parser_prod#ATypePropdef#visit_all for (self: ATypePropdef, Visitor) */
2404 void parser_prod__ATypePropdef__visit_all(val* self, val* p0) {
2405 val* var_v /* var v: Visitor */;
2406 val* var /* : nullable ADoc */;
2407 val* var1 /* : null */;
2408 short int var2 /* : Bool */;
2409 val* var3 /* : nullable ADoc */;
2410 val* var4 /* : nullable TKwredef */;
2411 val* var5 /* : null */;
2412 short int var6 /* : Bool */;
2413 val* var7 /* : nullable TKwredef */;
2414 val* var8 /* : AVisibility */;
2415 val* var9 /* : TKwtype */;
2416 val* var10 /* : TClassid */;
2417 val* var11 /* : AType */;
2418 val* var12 /* : nullable AAnnotations */;
2419 val* var13 /* : null */;
2420 short int var14 /* : Bool */;
2421 val* var15 /* : nullable AAnnotations */;
2422 var_v = p0;
2423 var = self->attrs[COLOR_parser_nodes__APropdef___n_doc].val; /* _n_doc on <self:ATypePropdef> */
2424 var1 = NULL;
2425 if (var == NULL) {
2426 var2 = 0; /* is null */
2427 } else {
2428 var2 = 1; /* arg is null and recv is not */
2429 }
2430 if (var2){
2431 var3 = self->attrs[COLOR_parser_nodes__APropdef___n_doc].val; /* _n_doc on <self:ATypePropdef> */
2432 if (var3 == NULL) {
2433 fprintf(stderr, "Runtime error: %s", "Cast failed");
2434 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3070);
2435 show_backtrace(1);
2436 }
2437 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var3) /* enter_visit on <var_v:Visitor>*/;
2438 } else {
2439 }
2440 var4 = self->attrs[COLOR_parser_nodes__ATypePropdef___n_kwredef].val; /* _n_kwredef on <self:ATypePropdef> */
2441 var5 = NULL;
2442 if (var4 == NULL) {
2443 var6 = 0; /* is null */
2444 } else {
2445 var6 = 1; /* arg is null and recv is not */
2446 }
2447 if (var6){
2448 var7 = self->attrs[COLOR_parser_nodes__ATypePropdef___n_kwredef].val; /* _n_kwredef on <self:ATypePropdef> */
2449 if (var7 == NULL) {
2450 fprintf(stderr, "Runtime error: %s", "Cast failed");
2451 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3073);
2452 show_backtrace(1);
2453 }
2454 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var7) /* enter_visit on <var_v:Visitor>*/;
2455 } else {
2456 }
2457 var8 = self->attrs[COLOR_parser_nodes__ATypePropdef___n_visibility].val; /* _n_visibility on <self:ATypePropdef> */
2458 if (var8 == NULL) {
2459 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_visibility");
2460 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3075);
2461 show_backtrace(1);
2462 }
2463 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var8) /* enter_visit on <var_v:Visitor>*/;
2464 var9 = self->attrs[COLOR_parser_nodes__ATypePropdef___n_kwtype].val; /* _n_kwtype on <self:ATypePropdef> */
2465 if (var9 == NULL) {
2466 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwtype");
2467 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3076);
2468 show_backtrace(1);
2469 }
2470 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var9) /* enter_visit on <var_v:Visitor>*/;
2471 var10 = self->attrs[COLOR_parser_nodes__ATypePropdef___n_id].val; /* _n_id on <self:ATypePropdef> */
2472 if (var10 == NULL) {
2473 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_id");
2474 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3077);
2475 show_backtrace(1);
2476 }
2477 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var10) /* enter_visit on <var_v:Visitor>*/;
2478 var11 = self->attrs[COLOR_parser_nodes__ATypePropdef___n_type].val; /* _n_type on <self:ATypePropdef> */
2479 if (var11 == NULL) {
2480 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_type");
2481 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3078);
2482 show_backtrace(1);
2483 }
2484 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var11) /* enter_visit on <var_v:Visitor>*/;
2485 var12 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:ATypePropdef> */
2486 var13 = NULL;
2487 if (var12 == NULL) {
2488 var14 = 0; /* is null */
2489 } else {
2490 var14 = 1; /* arg is null and recv is not */
2491 }
2492 if (var14){
2493 var15 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:ATypePropdef> */
2494 if (var15 == NULL) {
2495 fprintf(stderr, "Runtime error: %s", "Cast failed");
2496 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3080);
2497 show_backtrace(1);
2498 }
2499 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var15) /* enter_visit on <var_v:Visitor>*/;
2500 } else {
2501 }
2502 RET_LABEL:;
2503 }
2504 /* method parser_prod#ATypePropdef#visit_all for (self: Object, Visitor) */
2505 void VIRTUAL_parser_prod__ATypePropdef__visit_all(val* self, val* p0) {
2506 parser_prod__ATypePropdef__visit_all(self, p0);
2507 RET_LABEL:;
2508 }
2509 /* method parser_prod#AReadAble#empty_init for (self: AReadAble) */
2510 void parser_prod__AReadAble__empty_init(val* self) {
2511 RET_LABEL:;
2512 }
2513 /* method parser_prod#AReadAble#empty_init for (self: Object) */
2514 void VIRTUAL_parser_prod__AReadAble__empty_init(val* self) {
2515 parser_prod__AReadAble__empty_init(self);
2516 RET_LABEL:;
2517 }
2518 /* method parser_prod#AReadAble#init_areadable for (self: AReadAble, nullable TKwredef, nullable TKwreadable) */
2519 void parser_prod__AReadAble__init_areadable(val* self, val* p0, val* p1) {
2520 val* var_n_kwredef /* var n_kwredef: nullable TKwredef */;
2521 val* var_n_kwreadable /* var n_kwreadable: nullable TKwreadable */;
2522 val* var /* : null */;
2523 short int var1 /* : Bool */;
2524 var_n_kwredef = p0;
2525 var_n_kwreadable = p1;
2526 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__AReadAble__empty_init]))(self) /* empty_init on <self:AReadAble>*/;
2527 self->attrs[COLOR_parser_nodes__AAble___n_kwredef].val = var_n_kwredef; /* _n_kwredef on <self:AReadAble> */
2528 var = NULL;
2529 if (var_n_kwredef == NULL) {
2530 var1 = 0; /* is null */
2531 } else {
2532 var1 = 1; /* arg is null and recv is not */
2533 }
2534 if (var1){
2535 ((void (*)(val*, val*))(var_n_kwredef->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_kwredef, self) /* parent= on <var_n_kwredef:nullable TKwredef(TKwredef)>*/;
2536 } else {
2537 }
2538 if (var_n_kwreadable == NULL) {
2539 fprintf(stderr, "Runtime error: %s", "Cast failed");
2540 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3097);
2541 show_backtrace(1);
2542 }
2543 self->attrs[COLOR_parser_nodes__AReadAble___n_kwreadable].val = var_n_kwreadable; /* _n_kwreadable on <self:AReadAble> */
2544 if (var_n_kwreadable == NULL) {
2545 fprintf(stderr, "Runtime error: %s", "Reciever is null");
2546 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3098);
2547 show_backtrace(1);
2548 } else {
2549 ((void (*)(val*, val*))(var_n_kwreadable->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_kwreadable, self) /* parent= on <var_n_kwreadable:nullable TKwreadable>*/;
2550 }
2551 RET_LABEL:;
2552 }
2553 /* method parser_prod#AReadAble#init_areadable for (self: Object, nullable TKwredef, nullable TKwreadable) */
2554 void VIRTUAL_parser_prod__AReadAble__init_areadable(val* self, val* p0, val* p1) {
2555 parser_prod__AReadAble__init_areadable(self, p0, p1);
2556 RET_LABEL:;
2557 }
2558 /* method parser_prod#AReadAble#replace_child for (self: AReadAble, ANode, nullable ANode) */
2559 void parser_prod__AReadAble__replace_child(val* self, val* p0, val* p1) {
2560 val* var_old_child /* var old_child: ANode */;
2561 val* var_new_child /* var new_child: nullable ANode */;
2562 val* var /* : nullable TKwredef */;
2563 short int var1 /* : Bool */;
2564 val* var2 /* : null */;
2565 short int var3 /* : Bool */;
2566 short int var4 /* : Bool */;
2567 int cltype;
2568 int idtype;
2569 val* var5 /* : null */;
2570 val* var6 /* : TKwreadable */;
2571 short int var7 /* : Bool */;
2572 val* var8 /* : null */;
2573 short int var9 /* : Bool */;
2574 short int var10 /* : Bool */;
2575 int cltype11;
2576 int idtype12;
2577 var_old_child = p0;
2578 var_new_child = p1;
2579 var = self->attrs[COLOR_parser_nodes__AAble___n_kwredef].val; /* _n_kwredef on <self:AReadAble> */
2580 if (var == NULL) {
2581 var1 = 0; /* <var_old_child:ANode> cannot be null */
2582 } else {
2583 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:nullable TKwredef>*/;
2584 }
2585 if (var1){
2586 var2 = NULL;
2587 if (var_new_child == NULL) {
2588 var3 = 0; /* is null */
2589 } else {
2590 var3 = 1; /* arg is null and recv is not */
2591 }
2592 if (var3){
2593 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
2594 /* <var_new_child:nullable ANode(ANode)> isa TKwredef */
2595 cltype = type_parser_nodes__TKwredef.color;
2596 idtype = type_parser_nodes__TKwredef.id;
2597 if(cltype >= var_new_child->type->table_size) {
2598 var4 = 0;
2599 } else {
2600 var4 = var_new_child->type->type_table[cltype] == idtype;
2601 }
2602 if (!var4) {
2603 fprintf(stderr, "Runtime error: %s", "Assert failed");
2604 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3106);
2605 show_backtrace(1);
2606 }
2607 self->attrs[COLOR_parser_nodes__AAble___n_kwredef].val = var_new_child; /* _n_kwredef on <self:AReadAble> */
2608 } else {
2609 var5 = NULL;
2610 self->attrs[COLOR_parser_nodes__AAble___n_kwredef].val = var5; /* _n_kwredef on <self:AReadAble> */
2611 }
2612 goto RET_LABEL;
2613 } else {
2614 }
2615 var6 = self->attrs[COLOR_parser_nodes__AReadAble___n_kwreadable].val; /* _n_kwreadable on <self:AReadAble> */
2616 if (var6 == NULL) {
2617 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwreadable");
2618 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3113);
2619 show_backtrace(1);
2620 }
2621 var7 = ((short int (*)(val*, val*))(var6->class->vft[COLOR_kernel__Object___61d_61d]))(var6, var_old_child) /* == on <var6:TKwreadable>*/;
2622 if (var7){
2623 var8 = NULL;
2624 if (var_new_child == NULL) {
2625 var9 = 0; /* is null */
2626 } else {
2627 var9 = 1; /* arg is null and recv is not */
2628 }
2629 if (var9){
2630 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
2631 /* <var_new_child:nullable ANode(ANode)> isa TKwreadable */
2632 cltype11 = type_parser_nodes__TKwreadable.color;
2633 idtype12 = type_parser_nodes__TKwreadable.id;
2634 if(cltype11 >= var_new_child->type->table_size) {
2635 var10 = 0;
2636 } else {
2637 var10 = var_new_child->type->type_table[cltype11] == idtype12;
2638 }
2639 if (!var10) {
2640 fprintf(stderr, "Runtime error: %s", "Assert failed");
2641 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3116);
2642 show_backtrace(1);
2643 }
2644 self->attrs[COLOR_parser_nodes__AReadAble___n_kwreadable].val = var_new_child; /* _n_kwreadable on <self:AReadAble> */
2645 } else {
2646 fprintf(stderr, "Runtime error: %s", "Aborted");
2647 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3119);
2648 show_backtrace(1);
2649 }
2650 goto RET_LABEL;
2651 } else {
2652 }
2653 RET_LABEL:;
2654 }
2655 /* method parser_prod#AReadAble#replace_child for (self: Object, ANode, nullable ANode) */
2656 void VIRTUAL_parser_prod__AReadAble__replace_child(val* self, val* p0, val* p1) {
2657 parser_prod__AReadAble__replace_child(self, p0, p1);
2658 RET_LABEL:;
2659 }
2660 /* method parser_prod#AReadAble#n_kwredef= for (self: AReadAble, nullable TKwredef) */
2661 void parser_prod__AReadAble__n_kwredef_61d(val* self, val* p0) {
2662 val* var_node /* var node: nullable TKwredef */;
2663 val* var /* : null */;
2664 short int var1 /* : Bool */;
2665 var_node = p0;
2666 self->attrs[COLOR_parser_nodes__AAble___n_kwredef].val = var_node; /* _n_kwredef on <self:AReadAble> */
2667 var = NULL;
2668 if (var_node == NULL) {
2669 var1 = 0; /* is null */
2670 } else {
2671 var1 = 1; /* arg is null and recv is not */
2672 }
2673 if (var1){
2674 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable TKwredef(TKwredef)>*/;
2675 } else {
2676 }
2677 RET_LABEL:;
2678 }
2679 /* method parser_prod#AReadAble#n_kwredef= for (self: Object, nullable TKwredef) */
2680 void VIRTUAL_parser_prod__AReadAble__n_kwredef_61d(val* self, val* p0) {
2681 parser_prod__AReadAble__n_kwredef_61d(self, p0);
2682 RET_LABEL:;
2683 }
2684 /* method parser_prod#AReadAble#n_kwreadable= for (self: AReadAble, TKwreadable) */
2685 void parser_prod__AReadAble__n_kwreadable_61d(val* self, val* p0) {
2686 val* var_node /* var node: TKwreadable */;
2687 var_node = p0;
2688 self->attrs[COLOR_parser_nodes__AReadAble___n_kwreadable].val = var_node; /* _n_kwreadable on <self:AReadAble> */
2689 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TKwreadable>*/;
2690 RET_LABEL:;
2691 }
2692 /* method parser_prod#AReadAble#n_kwreadable= for (self: Object, TKwreadable) */
2693 void VIRTUAL_parser_prod__AReadAble__n_kwreadable_61d(val* self, val* p0) {
2694 parser_prod__AReadAble__n_kwreadable_61d(self, p0);
2695 RET_LABEL:;
2696 }
2697 /* method parser_prod#AReadAble#visit_all for (self: AReadAble, Visitor) */
2698 void parser_prod__AReadAble__visit_all(val* self, val* p0) {
2699 val* var_v /* var v: Visitor */;
2700 val* var /* : nullable TKwredef */;
2701 val* var1 /* : null */;
2702 short int var2 /* : Bool */;
2703 val* var3 /* : nullable TKwredef */;
2704 val* var4 /* : TKwreadable */;
2705 var_v = p0;
2706 var = self->attrs[COLOR_parser_nodes__AAble___n_kwredef].val; /* _n_kwredef on <self:AReadAble> */
2707 var1 = NULL;
2708 if (var == NULL) {
2709 var2 = 0; /* is null */
2710 } else {
2711 var2 = 1; /* arg is null and recv is not */
2712 }
2713 if (var2){
2714 var3 = self->attrs[COLOR_parser_nodes__AAble___n_kwredef].val; /* _n_kwredef on <self:AReadAble> */
2715 if (var3 == NULL) {
2716 fprintf(stderr, "Runtime error: %s", "Cast failed");
2717 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3142);
2718 show_backtrace(1);
2719 }
2720 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var3) /* enter_visit on <var_v:Visitor>*/;
2721 } else {
2722 }
2723 var4 = self->attrs[COLOR_parser_nodes__AReadAble___n_kwreadable].val; /* _n_kwreadable on <self:AReadAble> */
2724 if (var4 == NULL) {
2725 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwreadable");
2726 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3144);
2727 show_backtrace(1);
2728 }
2729 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var4) /* enter_visit on <var_v:Visitor>*/;
2730 RET_LABEL:;
2731 }
2732 /* method parser_prod#AReadAble#visit_all for (self: Object, Visitor) */
2733 void VIRTUAL_parser_prod__AReadAble__visit_all(val* self, val* p0) {
2734 parser_prod__AReadAble__visit_all(self, p0);
2735 RET_LABEL:;
2736 }
2737 /* method parser_prod#AWriteAble#empty_init for (self: AWriteAble) */
2738 void parser_prod__AWriteAble__empty_init(val* self) {
2739 RET_LABEL:;
2740 }
2741 /* method parser_prod#AWriteAble#empty_init for (self: Object) */
2742 void VIRTUAL_parser_prod__AWriteAble__empty_init(val* self) {
2743 parser_prod__AWriteAble__empty_init(self);
2744 RET_LABEL:;
2745 }
2746 /* method parser_prod#AWriteAble#init_awriteable for (self: AWriteAble, nullable TKwredef, nullable AVisibility, nullable TKwwritable) */
2747 void parser_prod__AWriteAble__init_awriteable(val* self, val* p0, val* p1, val* p2) {
2748 val* var_n_kwredef /* var n_kwredef: nullable TKwredef */;
2749 val* var_n_visibility /* var n_visibility: nullable AVisibility */;
2750 val* var_n_kwwritable /* var n_kwwritable: nullable TKwwritable */;
2751 val* var /* : null */;
2752 short int var1 /* : Bool */;
2753 val* var2 /* : null */;
2754 short int var3 /* : Bool */;
2755 var_n_kwredef = p0;
2756 var_n_visibility = p1;
2757 var_n_kwwritable = p2;
2758 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__AWriteAble__empty_init]))(self) /* empty_init on <self:AWriteAble>*/;
2759 self->attrs[COLOR_parser_nodes__AAble___n_kwredef].val = var_n_kwredef; /* _n_kwredef on <self:AWriteAble> */
2760 var = NULL;
2761 if (var_n_kwredef == NULL) {
2762 var1 = 0; /* is null */
2763 } else {
2764 var1 = 1; /* arg is null and recv is not */
2765 }
2766 if (var1){
2767 ((void (*)(val*, val*))(var_n_kwredef->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_kwredef, self) /* parent= on <var_n_kwredef:nullable TKwredef(TKwredef)>*/;
2768 } else {
2769 }
2770 self->attrs[COLOR_parser_nodes__AAble___n_visibility].val = var_n_visibility; /* _n_visibility on <self:AWriteAble> */
2771 var2 = NULL;
2772 if (var_n_visibility == NULL) {
2773 var3 = 0; /* is null */
2774 } else {
2775 var3 = 1; /* arg is null and recv is not */
2776 }
2777 if (var3){
2778 ((void (*)(val*, val*))(var_n_visibility->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_visibility, self) /* parent= on <var_n_visibility:nullable AVisibility(AVisibility)>*/;
2779 } else {
2780 }
2781 if (var_n_kwwritable == NULL) {
2782 fprintf(stderr, "Runtime error: %s", "Cast failed");
2783 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3165);
2784 show_backtrace(1);
2785 }
2786 self->attrs[COLOR_parser_nodes__AWriteAble___n_kwwritable].val = var_n_kwwritable; /* _n_kwwritable on <self:AWriteAble> */
2787 if (var_n_kwwritable == NULL) {
2788 fprintf(stderr, "Runtime error: %s", "Reciever is null");
2789 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3166);
2790 show_backtrace(1);
2791 } else {
2792 ((void (*)(val*, val*))(var_n_kwwritable->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_kwwritable, self) /* parent= on <var_n_kwwritable:nullable TKwwritable>*/;
2793 }
2794 RET_LABEL:;
2795 }
2796 /* method parser_prod#AWriteAble#init_awriteable for (self: Object, nullable TKwredef, nullable AVisibility, nullable TKwwritable) */
2797 void VIRTUAL_parser_prod__AWriteAble__init_awriteable(val* self, val* p0, val* p1, val* p2) {
2798 parser_prod__AWriteAble__init_awriteable(self, p0, p1, p2);
2799 RET_LABEL:;
2800 }
2801 /* method parser_prod#AWriteAble#replace_child for (self: AWriteAble, ANode, nullable ANode) */
2802 void parser_prod__AWriteAble__replace_child(val* self, val* p0, val* p1) {
2803 val* var_old_child /* var old_child: ANode */;
2804 val* var_new_child /* var new_child: nullable ANode */;
2805 val* var /* : nullable TKwredef */;
2806 short int var1 /* : Bool */;
2807 val* var2 /* : null */;
2808 short int var3 /* : Bool */;
2809 short int var4 /* : Bool */;
2810 int cltype;
2811 int idtype;
2812 val* var5 /* : null */;
2813 val* var6 /* : nullable AVisibility */;
2814 short int var7 /* : Bool */;
2815 val* var8 /* : null */;
2816 short int var9 /* : Bool */;
2817 short int var10 /* : Bool */;
2818 int cltype11;
2819 int idtype12;
2820 val* var13 /* : null */;
2821 val* var14 /* : TKwwritable */;
2822 short int var15 /* : Bool */;
2823 val* var16 /* : null */;
2824 short int var17 /* : Bool */;
2825 short int var18 /* : Bool */;
2826 int cltype19;
2827 int idtype20;
2828 var_old_child = p0;
2829 var_new_child = p1;
2830 var = self->attrs[COLOR_parser_nodes__AAble___n_kwredef].val; /* _n_kwredef on <self:AWriteAble> */
2831 if (var == NULL) {
2832 var1 = 0; /* <var_old_child:ANode> cannot be null */
2833 } else {
2834 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:nullable TKwredef>*/;
2835 }
2836 if (var1){
2837 var2 = NULL;
2838 if (var_new_child == NULL) {
2839 var3 = 0; /* is null */
2840 } else {
2841 var3 = 1; /* arg is null and recv is not */
2842 }
2843 if (var3){
2844 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
2845 /* <var_new_child:nullable ANode(ANode)> isa TKwredef */
2846 cltype = type_parser_nodes__TKwredef.color;
2847 idtype = type_parser_nodes__TKwredef.id;
2848 if(cltype >= var_new_child->type->table_size) {
2849 var4 = 0;
2850 } else {
2851 var4 = var_new_child->type->type_table[cltype] == idtype;
2852 }
2853 if (!var4) {
2854 fprintf(stderr, "Runtime error: %s", "Assert failed");
2855 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3174);
2856 show_backtrace(1);
2857 }
2858 self->attrs[COLOR_parser_nodes__AAble___n_kwredef].val = var_new_child; /* _n_kwredef on <self:AWriteAble> */
2859 } else {
2860 var5 = NULL;
2861 self->attrs[COLOR_parser_nodes__AAble___n_kwredef].val = var5; /* _n_kwredef on <self:AWriteAble> */
2862 }
2863 goto RET_LABEL;
2864 } else {
2865 }
2866 var6 = self->attrs[COLOR_parser_nodes__AAble___n_visibility].val; /* _n_visibility on <self:AWriteAble> */
2867 if (var6 == NULL) {
2868 var7 = 0; /* <var_old_child:ANode> cannot be null */
2869 } else {
2870 var7 = ((short int (*)(val*, val*))(var6->class->vft[COLOR_kernel__Object___61d_61d]))(var6, var_old_child) /* == on <var6:nullable AVisibility>*/;
2871 }
2872 if (var7){
2873 var8 = NULL;
2874 if (var_new_child == NULL) {
2875 var9 = 0; /* is null */
2876 } else {
2877 var9 = 1; /* arg is null and recv is not */
2878 }
2879 if (var9){
2880 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
2881 /* <var_new_child:nullable ANode(ANode)> isa AVisibility */
2882 cltype11 = type_parser_nodes__AVisibility.color;
2883 idtype12 = type_parser_nodes__AVisibility.id;
2884 if(cltype11 >= var_new_child->type->table_size) {
2885 var10 = 0;
2886 } else {
2887 var10 = var_new_child->type->type_table[cltype11] == idtype12;
2888 }
2889 if (!var10) {
2890 fprintf(stderr, "Runtime error: %s", "Assert failed");
2891 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3184);
2892 show_backtrace(1);
2893 }
2894 self->attrs[COLOR_parser_nodes__AAble___n_visibility].val = var_new_child; /* _n_visibility on <self:AWriteAble> */
2895 } else {
2896 var13 = NULL;
2897 self->attrs[COLOR_parser_nodes__AAble___n_visibility].val = var13; /* _n_visibility on <self:AWriteAble> */
2898 }
2899 goto RET_LABEL;
2900 } else {
2901 }
2902 var14 = self->attrs[COLOR_parser_nodes__AWriteAble___n_kwwritable].val; /* _n_kwwritable on <self:AWriteAble> */
2903 if (var14 == NULL) {
2904 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwwritable");
2905 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3191);
2906 show_backtrace(1);
2907 }
2908 var15 = ((short int (*)(val*, val*))(var14->class->vft[COLOR_kernel__Object___61d_61d]))(var14, var_old_child) /* == on <var14:TKwwritable>*/;
2909 if (var15){
2910 var16 = NULL;
2911 if (var_new_child == NULL) {
2912 var17 = 0; /* is null */
2913 } else {
2914 var17 = 1; /* arg is null and recv is not */
2915 }
2916 if (var17){
2917 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
2918 /* <var_new_child:nullable ANode(ANode)> isa TKwwritable */
2919 cltype19 = type_parser_nodes__TKwwritable.color;
2920 idtype20 = type_parser_nodes__TKwwritable.id;
2921 if(cltype19 >= var_new_child->type->table_size) {
2922 var18 = 0;
2923 } else {
2924 var18 = var_new_child->type->type_table[cltype19] == idtype20;
2925 }
2926 if (!var18) {
2927 fprintf(stderr, "Runtime error: %s", "Assert failed");
2928 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3194);
2929 show_backtrace(1);
2930 }
2931 self->attrs[COLOR_parser_nodes__AWriteAble___n_kwwritable].val = var_new_child; /* _n_kwwritable on <self:AWriteAble> */
2932 } else {
2933 fprintf(stderr, "Runtime error: %s", "Aborted");
2934 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3197);
2935 show_backtrace(1);
2936 }
2937 goto RET_LABEL;
2938 } else {
2939 }
2940 RET_LABEL:;
2941 }
2942 /* method parser_prod#AWriteAble#replace_child for (self: Object, ANode, nullable ANode) */
2943 void VIRTUAL_parser_prod__AWriteAble__replace_child(val* self, val* p0, val* p1) {
2944 parser_prod__AWriteAble__replace_child(self, p0, p1);
2945 RET_LABEL:;
2946 }
2947 /* method parser_prod#AWriteAble#n_kwredef= for (self: AWriteAble, nullable TKwredef) */
2948 void parser_prod__AWriteAble__n_kwredef_61d(val* self, val* p0) {
2949 val* var_node /* var node: nullable TKwredef */;
2950 val* var /* : null */;
2951 short int var1 /* : Bool */;
2952 var_node = p0;
2953 self->attrs[COLOR_parser_nodes__AAble___n_kwredef].val = var_node; /* _n_kwredef on <self:AWriteAble> */
2954 var = NULL;
2955 if (var_node == NULL) {
2956 var1 = 0; /* is null */
2957 } else {
2958 var1 = 1; /* arg is null and recv is not */
2959 }
2960 if (var1){
2961 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable TKwredef(TKwredef)>*/;
2962 } else {
2963 }
2964 RET_LABEL:;
2965 }
2966 /* method parser_prod#AWriteAble#n_kwredef= for (self: Object, nullable TKwredef) */
2967 void VIRTUAL_parser_prod__AWriteAble__n_kwredef_61d(val* self, val* p0) {
2968 parser_prod__AWriteAble__n_kwredef_61d(self, p0);
2969 RET_LABEL:;
2970 }
2971 /* method parser_prod#AWriteAble#n_visibility= for (self: AWriteAble, nullable AVisibility) */
2972 void parser_prod__AWriteAble__n_visibility_61d(val* self, val* p0) {
2973 val* var_node /* var node: nullable AVisibility */;
2974 val* var /* : null */;
2975 short int var1 /* : Bool */;
2976 var_node = p0;
2977 self->attrs[COLOR_parser_nodes__AAble___n_visibility].val = var_node; /* _n_visibility on <self:AWriteAble> */
2978 var = NULL;
2979 if (var_node == NULL) {
2980 var1 = 0; /* is null */
2981 } else {
2982 var1 = 1; /* arg is null and recv is not */
2983 }
2984 if (var1){
2985 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable AVisibility(AVisibility)>*/;
2986 } else {
2987 }
2988 RET_LABEL:;
2989 }
2990 /* method parser_prod#AWriteAble#n_visibility= for (self: Object, nullable AVisibility) */
2991 void VIRTUAL_parser_prod__AWriteAble__n_visibility_61d(val* self, val* p0) {
2992 parser_prod__AWriteAble__n_visibility_61d(self, p0);
2993 RET_LABEL:;
2994 }
2995 /* method parser_prod#AWriteAble#n_kwwritable= for (self: AWriteAble, TKwwritable) */
2996 void parser_prod__AWriteAble__n_kwwritable_61d(val* self, val* p0) {
2997 val* var_node /* var node: TKwwritable */;
2998 var_node = p0;
2999 self->attrs[COLOR_parser_nodes__AWriteAble___n_kwwritable].val = var_node; /* _n_kwwritable on <self:AWriteAble> */
3000 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TKwwritable>*/;
3001 RET_LABEL:;
3002 }
3003 /* method parser_prod#AWriteAble#n_kwwritable= for (self: Object, TKwwritable) */
3004 void VIRTUAL_parser_prod__AWriteAble__n_kwwritable_61d(val* self, val* p0) {
3005 parser_prod__AWriteAble__n_kwwritable_61d(self, p0);
3006 RET_LABEL:;
3007 }
3008 /* method parser_prod#AWriteAble#visit_all for (self: AWriteAble, Visitor) */
3009 void parser_prod__AWriteAble__visit_all(val* self, val* p0) {
3010 val* var_v /* var v: Visitor */;
3011 val* var /* : nullable TKwredef */;
3012 val* var1 /* : null */;
3013 short int var2 /* : Bool */;
3014 val* var3 /* : nullable TKwredef */;
3015 val* var4 /* : nullable AVisibility */;
3016 val* var5 /* : null */;
3017 short int var6 /* : Bool */;
3018 val* var7 /* : nullable AVisibility */;
3019 val* var8 /* : TKwwritable */;
3020 var_v = p0;
3021 var = self->attrs[COLOR_parser_nodes__AAble___n_kwredef].val; /* _n_kwredef on <self:AWriteAble> */
3022 var1 = NULL;
3023 if (var == NULL) {
3024 var2 = 0; /* is null */
3025 } else {
3026 var2 = 1; /* arg is null and recv is not */
3027 }
3028 if (var2){
3029 var3 = self->attrs[COLOR_parser_nodes__AAble___n_kwredef].val; /* _n_kwredef on <self:AWriteAble> */
3030 if (var3 == NULL) {
3031 fprintf(stderr, "Runtime error: %s", "Cast failed");
3032 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3227);
3033 show_backtrace(1);
3034 }
3035 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var3) /* enter_visit on <var_v:Visitor>*/;
3036 } else {
3037 }
3038 var4 = self->attrs[COLOR_parser_nodes__AAble___n_visibility].val; /* _n_visibility on <self:AWriteAble> */
3039 var5 = NULL;
3040 if (var4 == NULL) {
3041 var6 = 0; /* is null */
3042 } else {
3043 var6 = 1; /* arg is null and recv is not */
3044 }
3045 if (var6){
3046 var7 = self->attrs[COLOR_parser_nodes__AAble___n_visibility].val; /* _n_visibility on <self:AWriteAble> */
3047 if (var7 == NULL) {
3048 fprintf(stderr, "Runtime error: %s", "Cast failed");
3049 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3230);
3050 show_backtrace(1);
3051 }
3052 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var7) /* enter_visit on <var_v:Visitor>*/;
3053 } else {
3054 }
3055 var8 = self->attrs[COLOR_parser_nodes__AWriteAble___n_kwwritable].val; /* _n_kwwritable on <self:AWriteAble> */
3056 if (var8 == NULL) {
3057 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwwritable");
3058 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3232);
3059 show_backtrace(1);
3060 }
3061 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var8) /* enter_visit on <var_v:Visitor>*/;
3062 RET_LABEL:;
3063 }
3064 /* method parser_prod#AWriteAble#visit_all for (self: Object, Visitor) */
3065 void VIRTUAL_parser_prod__AWriteAble__visit_all(val* self, val* p0) {
3066 parser_prod__AWriteAble__visit_all(self, p0);
3067 RET_LABEL:;
3068 }
3069 /* method parser_prod#AIdMethid#empty_init for (self: AIdMethid) */
3070 void parser_prod__AIdMethid__empty_init(val* self) {
3071 RET_LABEL:;
3072 }
3073 /* method parser_prod#AIdMethid#empty_init for (self: Object) */
3074 void VIRTUAL_parser_prod__AIdMethid__empty_init(val* self) {
3075 parser_prod__AIdMethid__empty_init(self);
3076 RET_LABEL:;
3077 }
3078 /* method parser_prod#AIdMethid#init_aidmethid for (self: AIdMethid, nullable TId) */
3079 void parser_prod__AIdMethid__init_aidmethid(val* self, val* p0) {
3080 val* var_n_id /* var n_id: nullable TId */;
3081 var_n_id = p0;
3082 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__AIdMethid__empty_init]))(self) /* empty_init on <self:AIdMethid>*/;
3083 if (var_n_id == NULL) {
3084 fprintf(stderr, "Runtime error: %s", "Cast failed");
3085 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3243);
3086 show_backtrace(1);
3087 }
3088 self->attrs[COLOR_parser_nodes__AIdMethid___n_id].val = var_n_id; /* _n_id on <self:AIdMethid> */
3089 if (var_n_id == NULL) {
3090 fprintf(stderr, "Runtime error: %s", "Reciever is null");
3091 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3244);
3092 show_backtrace(1);
3093 } else {
3094 ((void (*)(val*, val*))(var_n_id->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_id, self) /* parent= on <var_n_id:nullable TId>*/;
3095 }
3096 RET_LABEL:;
3097 }
3098 /* method parser_prod#AIdMethid#init_aidmethid for (self: Object, nullable TId) */
3099 void VIRTUAL_parser_prod__AIdMethid__init_aidmethid(val* self, val* p0) {
3100 parser_prod__AIdMethid__init_aidmethid(self, p0);
3101 RET_LABEL:;
3102 }
3103 /* method parser_prod#AIdMethid#replace_child for (self: AIdMethid, ANode, nullable ANode) */
3104 void parser_prod__AIdMethid__replace_child(val* self, val* p0, val* p1) {
3105 val* var_old_child /* var old_child: ANode */;
3106 val* var_new_child /* var new_child: nullable ANode */;
3107 val* var /* : TId */;
3108 short int var1 /* : Bool */;
3109 val* var2 /* : null */;
3110 short int var3 /* : Bool */;
3111 short int var4 /* : Bool */;
3112 int cltype;
3113 int idtype;
3114 var_old_child = p0;
3115 var_new_child = p1;
3116 var = self->attrs[COLOR_parser_nodes__AIdMethid___n_id].val; /* _n_id on <self:AIdMethid> */
3117 if (var == NULL) {
3118 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_id");
3119 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3249);
3120 show_backtrace(1);
3121 }
3122 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:TId>*/;
3123 if (var1){
3124 var2 = NULL;
3125 if (var_new_child == NULL) {
3126 var3 = 0; /* is null */
3127 } else {
3128 var3 = 1; /* arg is null and recv is not */
3129 }
3130 if (var3){
3131 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
3132 /* <var_new_child:nullable ANode(ANode)> isa TId */
3133 cltype = type_parser_nodes__TId.color;
3134 idtype = type_parser_nodes__TId.id;
3135 if(cltype >= var_new_child->type->table_size) {
3136 var4 = 0;
3137 } else {
3138 var4 = var_new_child->type->type_table[cltype] == idtype;
3139 }
3140 if (!var4) {
3141 fprintf(stderr, "Runtime error: %s", "Assert failed");
3142 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3252);
3143 show_backtrace(1);
3144 }
3145 self->attrs[COLOR_parser_nodes__AIdMethid___n_id].val = var_new_child; /* _n_id on <self:AIdMethid> */
3146 } else {
3147 fprintf(stderr, "Runtime error: %s", "Aborted");
3148 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3255);
3149 show_backtrace(1);
3150 }
3151 goto RET_LABEL;
3152 } else {
3153 }
3154 RET_LABEL:;
3155 }
3156 /* method parser_prod#AIdMethid#replace_child for (self: Object, ANode, nullable ANode) */
3157 void VIRTUAL_parser_prod__AIdMethid__replace_child(val* self, val* p0, val* p1) {
3158 parser_prod__AIdMethid__replace_child(self, p0, p1);
3159 RET_LABEL:;
3160 }
3161 /* method parser_prod#AIdMethid#n_id= for (self: AIdMethid, TId) */
3162 void parser_prod__AIdMethid__n_id_61d(val* self, val* p0) {
3163 val* var_node /* var node: TId */;
3164 var_node = p0;
3165 self->attrs[COLOR_parser_nodes__AIdMethid___n_id].val = var_node; /* _n_id on <self:AIdMethid> */
3166 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TId>*/;
3167 RET_LABEL:;
3168 }
3169 /* method parser_prod#AIdMethid#n_id= for (self: Object, TId) */
3170 void VIRTUAL_parser_prod__AIdMethid__n_id_61d(val* self, val* p0) {
3171 parser_prod__AIdMethid__n_id_61d(self, p0);
3172 RET_LABEL:;
3173 }
3174 /* method parser_prod#AIdMethid#visit_all for (self: AIdMethid, Visitor) */
3175 void parser_prod__AIdMethid__visit_all(val* self, val* p0) {
3176 val* var_v /* var v: Visitor */;
3177 val* var /* : TId */;
3178 var_v = p0;
3179 var = self->attrs[COLOR_parser_nodes__AIdMethid___n_id].val; /* _n_id on <self:AIdMethid> */
3180 if (var == NULL) {
3181 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_id");
3182 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3270);
3183 show_backtrace(1);
3184 }
3185 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
3186 RET_LABEL:;
3187 }
3188 /* method parser_prod#AIdMethid#visit_all for (self: Object, Visitor) */
3189 void VIRTUAL_parser_prod__AIdMethid__visit_all(val* self, val* p0) {
3190 parser_prod__AIdMethid__visit_all(self, p0);
3191 RET_LABEL:;
3192 }
3193 /* method parser_prod#APlusMethid#empty_init for (self: APlusMethid) */
3194 void parser_prod__APlusMethid__empty_init(val* self) {
3195 RET_LABEL:;
3196 }
3197 /* method parser_prod#APlusMethid#empty_init for (self: Object) */
3198 void VIRTUAL_parser_prod__APlusMethid__empty_init(val* self) {
3199 parser_prod__APlusMethid__empty_init(self);
3200 RET_LABEL:;
3201 }
3202 /* method parser_prod#APlusMethid#init_aplusmethid for (self: APlusMethid, nullable TPlus) */
3203 void parser_prod__APlusMethid__init_aplusmethid(val* self, val* p0) {
3204 val* var_n_plus /* var n_plus: nullable TPlus */;
3205 var_n_plus = p0;
3206 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__APlusMethid__empty_init]))(self) /* empty_init on <self:APlusMethid>*/;
3207 if (var_n_plus == NULL) {
3208 fprintf(stderr, "Runtime error: %s", "Cast failed");
3209 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3281);
3210 show_backtrace(1);
3211 }
3212 self->attrs[COLOR_parser_nodes__APlusMethid___n_plus].val = var_n_plus; /* _n_plus on <self:APlusMethid> */
3213 if (var_n_plus == NULL) {
3214 fprintf(stderr, "Runtime error: %s", "Reciever is null");
3215 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3282);
3216 show_backtrace(1);
3217 } else {
3218 ((void (*)(val*, val*))(var_n_plus->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_plus, self) /* parent= on <var_n_plus:nullable TPlus>*/;
3219 }
3220 RET_LABEL:;
3221 }
3222 /* method parser_prod#APlusMethid#init_aplusmethid for (self: Object, nullable TPlus) */
3223 void VIRTUAL_parser_prod__APlusMethid__init_aplusmethid(val* self, val* p0) {
3224 parser_prod__APlusMethid__init_aplusmethid(self, p0);
3225 RET_LABEL:;
3226 }
3227 /* method parser_prod#APlusMethid#replace_child for (self: APlusMethid, ANode, nullable ANode) */
3228 void parser_prod__APlusMethid__replace_child(val* self, val* p0, val* p1) {
3229 val* var_old_child /* var old_child: ANode */;
3230 val* var_new_child /* var new_child: nullable ANode */;
3231 val* var /* : TPlus */;
3232 short int var1 /* : Bool */;
3233 val* var2 /* : null */;
3234 short int var3 /* : Bool */;
3235 short int var4 /* : Bool */;
3236 int cltype;
3237 int idtype;
3238 var_old_child = p0;
3239 var_new_child = p1;
3240 var = self->attrs[COLOR_parser_nodes__APlusMethid___n_plus].val; /* _n_plus on <self:APlusMethid> */
3241 if (var == NULL) {
3242 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_plus");
3243 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3287);
3244 show_backtrace(1);
3245 }
3246 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:TPlus>*/;
3247 if (var1){
3248 var2 = NULL;
3249 if (var_new_child == NULL) {
3250 var3 = 0; /* is null */
3251 } else {
3252 var3 = 1; /* arg is null and recv is not */
3253 }
3254 if (var3){
3255 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
3256 /* <var_new_child:nullable ANode(ANode)> isa TPlus */
3257 cltype = type_parser_nodes__TPlus.color;
3258 idtype = type_parser_nodes__TPlus.id;
3259 if(cltype >= var_new_child->type->table_size) {
3260 var4 = 0;
3261 } else {
3262 var4 = var_new_child->type->type_table[cltype] == idtype;
3263 }
3264 if (!var4) {
3265 fprintf(stderr, "Runtime error: %s", "Assert failed");
3266 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3290);
3267 show_backtrace(1);
3268 }
3269 self->attrs[COLOR_parser_nodes__APlusMethid___n_plus].val = var_new_child; /* _n_plus on <self:APlusMethid> */
3270 } else {
3271 fprintf(stderr, "Runtime error: %s", "Aborted");
3272 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3293);
3273 show_backtrace(1);
3274 }
3275 goto RET_LABEL;
3276 } else {
3277 }
3278 RET_LABEL:;
3279 }
3280 /* method parser_prod#APlusMethid#replace_child for (self: Object, ANode, nullable ANode) */
3281 void VIRTUAL_parser_prod__APlusMethid__replace_child(val* self, val* p0, val* p1) {
3282 parser_prod__APlusMethid__replace_child(self, p0, p1);
3283 RET_LABEL:;
3284 }
3285 /* method parser_prod#APlusMethid#n_plus= for (self: APlusMethid, TPlus) */
3286 void parser_prod__APlusMethid__n_plus_61d(val* self, val* p0) {
3287 val* var_node /* var node: TPlus */;
3288 var_node = p0;
3289 self->attrs[COLOR_parser_nodes__APlusMethid___n_plus].val = var_node; /* _n_plus on <self:APlusMethid> */
3290 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TPlus>*/;
3291 RET_LABEL:;
3292 }
3293 /* method parser_prod#APlusMethid#n_plus= for (self: Object, TPlus) */
3294 void VIRTUAL_parser_prod__APlusMethid__n_plus_61d(val* self, val* p0) {
3295 parser_prod__APlusMethid__n_plus_61d(self, p0);
3296 RET_LABEL:;
3297 }
3298 /* method parser_prod#APlusMethid#visit_all for (self: APlusMethid, Visitor) */
3299 void parser_prod__APlusMethid__visit_all(val* self, val* p0) {
3300 val* var_v /* var v: Visitor */;
3301 val* var /* : TPlus */;
3302 var_v = p0;
3303 var = self->attrs[COLOR_parser_nodes__APlusMethid___n_plus].val; /* _n_plus on <self:APlusMethid> */
3304 if (var == NULL) {
3305 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_plus");
3306 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3308);
3307 show_backtrace(1);
3308 }
3309 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
3310 RET_LABEL:;
3311 }
3312 /* method parser_prod#APlusMethid#visit_all for (self: Object, Visitor) */
3313 void VIRTUAL_parser_prod__APlusMethid__visit_all(val* self, val* p0) {
3314 parser_prod__APlusMethid__visit_all(self, p0);
3315 RET_LABEL:;
3316 }
3317 /* method parser_prod#AMinusMethid#empty_init for (self: AMinusMethid) */
3318 void parser_prod__AMinusMethid__empty_init(val* self) {
3319 RET_LABEL:;
3320 }
3321 /* method parser_prod#AMinusMethid#empty_init for (self: Object) */
3322 void VIRTUAL_parser_prod__AMinusMethid__empty_init(val* self) {
3323 parser_prod__AMinusMethid__empty_init(self);
3324 RET_LABEL:;
3325 }
3326 /* method parser_prod#AMinusMethid#init_aminusmethid for (self: AMinusMethid, nullable TMinus) */
3327 void parser_prod__AMinusMethid__init_aminusmethid(val* self, val* p0) {
3328 val* var_n_minus /* var n_minus: nullable TMinus */;
3329 var_n_minus = p0;
3330 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__AMinusMethid__empty_init]))(self) /* empty_init on <self:AMinusMethid>*/;
3331 if (var_n_minus == NULL) {
3332 fprintf(stderr, "Runtime error: %s", "Cast failed");
3333 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3319);
3334 show_backtrace(1);
3335 }
3336 self->attrs[COLOR_parser_nodes__AMinusMethid___n_minus].val = var_n_minus; /* _n_minus on <self:AMinusMethid> */
3337 if (var_n_minus == NULL) {
3338 fprintf(stderr, "Runtime error: %s", "Reciever is null");
3339 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3320);
3340 show_backtrace(1);
3341 } else {
3342 ((void (*)(val*, val*))(var_n_minus->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_minus, self) /* parent= on <var_n_minus:nullable TMinus>*/;
3343 }
3344 RET_LABEL:;
3345 }
3346 /* method parser_prod#AMinusMethid#init_aminusmethid for (self: Object, nullable TMinus) */
3347 void VIRTUAL_parser_prod__AMinusMethid__init_aminusmethid(val* self, val* p0) {
3348 parser_prod__AMinusMethid__init_aminusmethid(self, p0);
3349 RET_LABEL:;
3350 }
3351 /* method parser_prod#AMinusMethid#replace_child for (self: AMinusMethid, ANode, nullable ANode) */
3352 void parser_prod__AMinusMethid__replace_child(val* self, val* p0, val* p1) {
3353 val* var_old_child /* var old_child: ANode */;
3354 val* var_new_child /* var new_child: nullable ANode */;
3355 val* var /* : TMinus */;
3356 short int var1 /* : Bool */;
3357 val* var2 /* : null */;
3358 short int var3 /* : Bool */;
3359 short int var4 /* : Bool */;
3360 int cltype;
3361 int idtype;
3362 var_old_child = p0;
3363 var_new_child = p1;
3364 var = self->attrs[COLOR_parser_nodes__AMinusMethid___n_minus].val; /* _n_minus on <self:AMinusMethid> */
3365 if (var == NULL) {
3366 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_minus");
3367 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3325);
3368 show_backtrace(1);
3369 }
3370 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:TMinus>*/;
3371 if (var1){
3372 var2 = NULL;
3373 if (var_new_child == NULL) {
3374 var3 = 0; /* is null */
3375 } else {
3376 var3 = 1; /* arg is null and recv is not */
3377 }
3378 if (var3){
3379 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
3380 /* <var_new_child:nullable ANode(ANode)> isa TMinus */
3381 cltype = type_parser_nodes__TMinus.color;
3382 idtype = type_parser_nodes__TMinus.id;
3383 if(cltype >= var_new_child->type->table_size) {
3384 var4 = 0;
3385 } else {
3386 var4 = var_new_child->type->type_table[cltype] == idtype;
3387 }
3388 if (!var4) {
3389 fprintf(stderr, "Runtime error: %s", "Assert failed");
3390 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3328);
3391 show_backtrace(1);
3392 }
3393 self->attrs[COLOR_parser_nodes__AMinusMethid___n_minus].val = var_new_child; /* _n_minus on <self:AMinusMethid> */
3394 } else {
3395 fprintf(stderr, "Runtime error: %s", "Aborted");
3396 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3331);
3397 show_backtrace(1);
3398 }
3399 goto RET_LABEL;
3400 } else {
3401 }
3402 RET_LABEL:;
3403 }
3404 /* method parser_prod#AMinusMethid#replace_child for (self: Object, ANode, nullable ANode) */
3405 void VIRTUAL_parser_prod__AMinusMethid__replace_child(val* self, val* p0, val* p1) {
3406 parser_prod__AMinusMethid__replace_child(self, p0, p1);
3407 RET_LABEL:;
3408 }
3409 /* method parser_prod#AMinusMethid#n_minus= for (self: AMinusMethid, TMinus) */
3410 void parser_prod__AMinusMethid__n_minus_61d(val* self, val* p0) {
3411 val* var_node /* var node: TMinus */;
3412 var_node = p0;
3413 self->attrs[COLOR_parser_nodes__AMinusMethid___n_minus].val = var_node; /* _n_minus on <self:AMinusMethid> */
3414 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TMinus>*/;
3415 RET_LABEL:;
3416 }
3417 /* method parser_prod#AMinusMethid#n_minus= for (self: Object, TMinus) */
3418 void VIRTUAL_parser_prod__AMinusMethid__n_minus_61d(val* self, val* p0) {
3419 parser_prod__AMinusMethid__n_minus_61d(self, p0);
3420 RET_LABEL:;
3421 }
3422 /* method parser_prod#AMinusMethid#visit_all for (self: AMinusMethid, Visitor) */
3423 void parser_prod__AMinusMethid__visit_all(val* self, val* p0) {
3424 val* var_v /* var v: Visitor */;
3425 val* var /* : TMinus */;
3426 var_v = p0;
3427 var = self->attrs[COLOR_parser_nodes__AMinusMethid___n_minus].val; /* _n_minus on <self:AMinusMethid> */
3428 if (var == NULL) {
3429 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_minus");
3430 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3346);
3431 show_backtrace(1);
3432 }
3433 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
3434 RET_LABEL:;
3435 }
3436 /* method parser_prod#AMinusMethid#visit_all for (self: Object, Visitor) */
3437 void VIRTUAL_parser_prod__AMinusMethid__visit_all(val* self, val* p0) {
3438 parser_prod__AMinusMethid__visit_all(self, p0);
3439 RET_LABEL:;
3440 }
3441 /* method parser_prod#AStarMethid#empty_init for (self: AStarMethid) */
3442 void parser_prod__AStarMethid__empty_init(val* self) {
3443 RET_LABEL:;
3444 }
3445 /* method parser_prod#AStarMethid#empty_init for (self: Object) */
3446 void VIRTUAL_parser_prod__AStarMethid__empty_init(val* self) {
3447 parser_prod__AStarMethid__empty_init(self);
3448 RET_LABEL:;
3449 }
3450 /* method parser_prod#AStarMethid#init_astarmethid for (self: AStarMethid, nullable TStar) */
3451 void parser_prod__AStarMethid__init_astarmethid(val* self, val* p0) {
3452 val* var_n_star /* var n_star: nullable TStar */;
3453 var_n_star = p0;
3454 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__AStarMethid__empty_init]))(self) /* empty_init on <self:AStarMethid>*/;
3455 if (var_n_star == NULL) {
3456 fprintf(stderr, "Runtime error: %s", "Cast failed");
3457 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3357);
3458 show_backtrace(1);
3459 }
3460 self->attrs[COLOR_parser_nodes__AStarMethid___n_star].val = var_n_star; /* _n_star on <self:AStarMethid> */
3461 if (var_n_star == NULL) {
3462 fprintf(stderr, "Runtime error: %s", "Reciever is null");
3463 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3358);
3464 show_backtrace(1);
3465 } else {
3466 ((void (*)(val*, val*))(var_n_star->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_star, self) /* parent= on <var_n_star:nullable TStar>*/;
3467 }
3468 RET_LABEL:;
3469 }
3470 /* method parser_prod#AStarMethid#init_astarmethid for (self: Object, nullable TStar) */
3471 void VIRTUAL_parser_prod__AStarMethid__init_astarmethid(val* self, val* p0) {
3472 parser_prod__AStarMethid__init_astarmethid(self, p0);
3473 RET_LABEL:;
3474 }
3475 /* method parser_prod#AStarMethid#replace_child for (self: AStarMethid, ANode, nullable ANode) */
3476 void parser_prod__AStarMethid__replace_child(val* self, val* p0, val* p1) {
3477 val* var_old_child /* var old_child: ANode */;
3478 val* var_new_child /* var new_child: nullable ANode */;
3479 val* var /* : TStar */;
3480 short int var1 /* : Bool */;
3481 val* var2 /* : null */;
3482 short int var3 /* : Bool */;
3483 short int var4 /* : Bool */;
3484 int cltype;
3485 int idtype;
3486 var_old_child = p0;
3487 var_new_child = p1;
3488 var = self->attrs[COLOR_parser_nodes__AStarMethid___n_star].val; /* _n_star on <self:AStarMethid> */
3489 if (var == NULL) {
3490 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_star");
3491 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3363);
3492 show_backtrace(1);
3493 }
3494 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:TStar>*/;
3495 if (var1){
3496 var2 = NULL;
3497 if (var_new_child == NULL) {
3498 var3 = 0; /* is null */
3499 } else {
3500 var3 = 1; /* arg is null and recv is not */
3501 }
3502 if (var3){
3503 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
3504 /* <var_new_child:nullable ANode(ANode)> isa TStar */
3505 cltype = type_parser_nodes__TStar.color;
3506 idtype = type_parser_nodes__TStar.id;
3507 if(cltype >= var_new_child->type->table_size) {
3508 var4 = 0;
3509 } else {
3510 var4 = var_new_child->type->type_table[cltype] == idtype;
3511 }
3512 if (!var4) {
3513 fprintf(stderr, "Runtime error: %s", "Assert failed");
3514 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3366);
3515 show_backtrace(1);
3516 }
3517 self->attrs[COLOR_parser_nodes__AStarMethid___n_star].val = var_new_child; /* _n_star on <self:AStarMethid> */
3518 } else {
3519 fprintf(stderr, "Runtime error: %s", "Aborted");
3520 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3369);
3521 show_backtrace(1);
3522 }
3523 goto RET_LABEL;
3524 } else {
3525 }
3526 RET_LABEL:;
3527 }
3528 /* method parser_prod#AStarMethid#replace_child for (self: Object, ANode, nullable ANode) */
3529 void VIRTUAL_parser_prod__AStarMethid__replace_child(val* self, val* p0, val* p1) {
3530 parser_prod__AStarMethid__replace_child(self, p0, p1);
3531 RET_LABEL:;
3532 }
3533 /* method parser_prod#AStarMethid#n_star= for (self: AStarMethid, TStar) */
3534 void parser_prod__AStarMethid__n_star_61d(val* self, val* p0) {
3535 val* var_node /* var node: TStar */;
3536 var_node = p0;
3537 self->attrs[COLOR_parser_nodes__AStarMethid___n_star].val = var_node; /* _n_star on <self:AStarMethid> */
3538 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TStar>*/;
3539 RET_LABEL:;
3540 }
3541 /* method parser_prod#AStarMethid#n_star= for (self: Object, TStar) */
3542 void VIRTUAL_parser_prod__AStarMethid__n_star_61d(val* self, val* p0) {
3543 parser_prod__AStarMethid__n_star_61d(self, p0);
3544 RET_LABEL:;
3545 }
3546 /* method parser_prod#AStarMethid#visit_all for (self: AStarMethid, Visitor) */
3547 void parser_prod__AStarMethid__visit_all(val* self, val* p0) {
3548 val* var_v /* var v: Visitor */;
3549 val* var /* : TStar */;
3550 var_v = p0;
3551 var = self->attrs[COLOR_parser_nodes__AStarMethid___n_star].val; /* _n_star on <self:AStarMethid> */
3552 if (var == NULL) {
3553 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_star");
3554 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3384);
3555 show_backtrace(1);
3556 }
3557 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
3558 RET_LABEL:;
3559 }
3560 /* method parser_prod#AStarMethid#visit_all for (self: Object, Visitor) */
3561 void VIRTUAL_parser_prod__AStarMethid__visit_all(val* self, val* p0) {
3562 parser_prod__AStarMethid__visit_all(self, p0);
3563 RET_LABEL:;
3564 }
3565 /* method parser_prod#ASlashMethid#empty_init for (self: ASlashMethid) */
3566 void parser_prod__ASlashMethid__empty_init(val* self) {
3567 RET_LABEL:;
3568 }
3569 /* method parser_prod#ASlashMethid#empty_init for (self: Object) */
3570 void VIRTUAL_parser_prod__ASlashMethid__empty_init(val* self) {
3571 parser_prod__ASlashMethid__empty_init(self);
3572 RET_LABEL:;
3573 }
3574 /* method parser_prod#ASlashMethid#init_aslashmethid for (self: ASlashMethid, nullable TSlash) */
3575 void parser_prod__ASlashMethid__init_aslashmethid(val* self, val* p0) {
3576 val* var_n_slash /* var n_slash: nullable TSlash */;
3577 var_n_slash = p0;
3578 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__ASlashMethid__empty_init]))(self) /* empty_init on <self:ASlashMethid>*/;
3579 if (var_n_slash == NULL) {
3580 fprintf(stderr, "Runtime error: %s", "Cast failed");
3581 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3395);
3582 show_backtrace(1);
3583 }
3584 self->attrs[COLOR_parser_nodes__ASlashMethid___n_slash].val = var_n_slash; /* _n_slash on <self:ASlashMethid> */
3585 if (var_n_slash == NULL) {
3586 fprintf(stderr, "Runtime error: %s", "Reciever is null");
3587 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3396);
3588 show_backtrace(1);
3589 } else {
3590 ((void (*)(val*, val*))(var_n_slash->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_slash, self) /* parent= on <var_n_slash:nullable TSlash>*/;
3591 }
3592 RET_LABEL:;
3593 }
3594 /* method parser_prod#ASlashMethid#init_aslashmethid for (self: Object, nullable TSlash) */
3595 void VIRTUAL_parser_prod__ASlashMethid__init_aslashmethid(val* self, val* p0) {
3596 parser_prod__ASlashMethid__init_aslashmethid(self, p0);
3597 RET_LABEL:;
3598 }
3599 /* method parser_prod#ASlashMethid#replace_child for (self: ASlashMethid, ANode, nullable ANode) */
3600 void parser_prod__ASlashMethid__replace_child(val* self, val* p0, val* p1) {
3601 val* var_old_child /* var old_child: ANode */;
3602 val* var_new_child /* var new_child: nullable ANode */;
3603 val* var /* : TSlash */;
3604 short int var1 /* : Bool */;
3605 val* var2 /* : null */;
3606 short int var3 /* : Bool */;
3607 short int var4 /* : Bool */;
3608 int cltype;
3609 int idtype;
3610 var_old_child = p0;
3611 var_new_child = p1;
3612 var = self->attrs[COLOR_parser_nodes__ASlashMethid___n_slash].val; /* _n_slash on <self:ASlashMethid> */
3613 if (var == NULL) {
3614 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_slash");
3615 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3401);
3616 show_backtrace(1);
3617 }
3618 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:TSlash>*/;
3619 if (var1){
3620 var2 = NULL;
3621 if (var_new_child == NULL) {
3622 var3 = 0; /* is null */
3623 } else {
3624 var3 = 1; /* arg is null and recv is not */
3625 }
3626 if (var3){
3627 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
3628 /* <var_new_child:nullable ANode(ANode)> isa TSlash */
3629 cltype = type_parser_nodes__TSlash.color;
3630 idtype = type_parser_nodes__TSlash.id;
3631 if(cltype >= var_new_child->type->table_size) {
3632 var4 = 0;
3633 } else {
3634 var4 = var_new_child->type->type_table[cltype] == idtype;
3635 }
3636 if (!var4) {
3637 fprintf(stderr, "Runtime error: %s", "Assert failed");
3638 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3404);
3639 show_backtrace(1);
3640 }
3641 self->attrs[COLOR_parser_nodes__ASlashMethid___n_slash].val = var_new_child; /* _n_slash on <self:ASlashMethid> */
3642 } else {
3643 fprintf(stderr, "Runtime error: %s", "Aborted");
3644 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3407);
3645 show_backtrace(1);
3646 }
3647 goto RET_LABEL;
3648 } else {
3649 }
3650 RET_LABEL:;
3651 }
3652 /* method parser_prod#ASlashMethid#replace_child for (self: Object, ANode, nullable ANode) */
3653 void VIRTUAL_parser_prod__ASlashMethid__replace_child(val* self, val* p0, val* p1) {
3654 parser_prod__ASlashMethid__replace_child(self, p0, p1);
3655 RET_LABEL:;
3656 }
3657 /* method parser_prod#ASlashMethid#n_slash= for (self: ASlashMethid, TSlash) */
3658 void parser_prod__ASlashMethid__n_slash_61d(val* self, val* p0) {
3659 val* var_node /* var node: TSlash */;
3660 var_node = p0;
3661 self->attrs[COLOR_parser_nodes__ASlashMethid___n_slash].val = var_node; /* _n_slash on <self:ASlashMethid> */
3662 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TSlash>*/;
3663 RET_LABEL:;
3664 }
3665 /* method parser_prod#ASlashMethid#n_slash= for (self: Object, TSlash) */
3666 void VIRTUAL_parser_prod__ASlashMethid__n_slash_61d(val* self, val* p0) {
3667 parser_prod__ASlashMethid__n_slash_61d(self, p0);
3668 RET_LABEL:;
3669 }
3670 /* method parser_prod#ASlashMethid#visit_all for (self: ASlashMethid, Visitor) */
3671 void parser_prod__ASlashMethid__visit_all(val* self, val* p0) {
3672 val* var_v /* var v: Visitor */;
3673 val* var /* : TSlash */;
3674 var_v = p0;
3675 var = self->attrs[COLOR_parser_nodes__ASlashMethid___n_slash].val; /* _n_slash on <self:ASlashMethid> */
3676 if (var == NULL) {
3677 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_slash");
3678 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3422);
3679 show_backtrace(1);
3680 }
3681 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
3682 RET_LABEL:;
3683 }
3684 /* method parser_prod#ASlashMethid#visit_all for (self: Object, Visitor) */
3685 void VIRTUAL_parser_prod__ASlashMethid__visit_all(val* self, val* p0) {
3686 parser_prod__ASlashMethid__visit_all(self, p0);
3687 RET_LABEL:;
3688 }
3689 /* method parser_prod#APercentMethid#empty_init for (self: APercentMethid) */
3690 void parser_prod__APercentMethid__empty_init(val* self) {
3691 RET_LABEL:;
3692 }
3693 /* method parser_prod#APercentMethid#empty_init for (self: Object) */
3694 void VIRTUAL_parser_prod__APercentMethid__empty_init(val* self) {
3695 parser_prod__APercentMethid__empty_init(self);
3696 RET_LABEL:;
3697 }
3698 /* method parser_prod#APercentMethid#init_apercentmethid for (self: APercentMethid, nullable TPercent) */
3699 void parser_prod__APercentMethid__init_apercentmethid(val* self, val* p0) {
3700 val* var_n_percent /* var n_percent: nullable TPercent */;
3701 var_n_percent = p0;
3702 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__APercentMethid__empty_init]))(self) /* empty_init on <self:APercentMethid>*/;
3703 if (var_n_percent == NULL) {
3704 fprintf(stderr, "Runtime error: %s", "Cast failed");
3705 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3433);
3706 show_backtrace(1);
3707 }
3708 self->attrs[COLOR_parser_nodes__APercentMethid___n_percent].val = var_n_percent; /* _n_percent on <self:APercentMethid> */
3709 if (var_n_percent == NULL) {
3710 fprintf(stderr, "Runtime error: %s", "Reciever is null");
3711 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3434);
3712 show_backtrace(1);
3713 } else {
3714 ((void (*)(val*, val*))(var_n_percent->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_percent, self) /* parent= on <var_n_percent:nullable TPercent>*/;
3715 }
3716 RET_LABEL:;
3717 }
3718 /* method parser_prod#APercentMethid#init_apercentmethid for (self: Object, nullable TPercent) */
3719 void VIRTUAL_parser_prod__APercentMethid__init_apercentmethid(val* self, val* p0) {
3720 parser_prod__APercentMethid__init_apercentmethid(self, p0);
3721 RET_LABEL:;
3722 }
3723 /* method parser_prod#APercentMethid#replace_child for (self: APercentMethid, ANode, nullable ANode) */
3724 void parser_prod__APercentMethid__replace_child(val* self, val* p0, val* p1) {
3725 val* var_old_child /* var old_child: ANode */;
3726 val* var_new_child /* var new_child: nullable ANode */;
3727 val* var /* : TPercent */;
3728 short int var1 /* : Bool */;
3729 val* var2 /* : null */;
3730 short int var3 /* : Bool */;
3731 short int var4 /* : Bool */;
3732 int cltype;
3733 int idtype;
3734 var_old_child = p0;
3735 var_new_child = p1;
3736 var = self->attrs[COLOR_parser_nodes__APercentMethid___n_percent].val; /* _n_percent on <self:APercentMethid> */
3737 if (var == NULL) {
3738 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_percent");
3739 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3439);
3740 show_backtrace(1);
3741 }
3742 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:TPercent>*/;
3743 if (var1){
3744 var2 = NULL;
3745 if (var_new_child == NULL) {
3746 var3 = 0; /* is null */
3747 } else {
3748 var3 = 1; /* arg is null and recv is not */
3749 }
3750 if (var3){
3751 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
3752 /* <var_new_child:nullable ANode(ANode)> isa TPercent */
3753 cltype = type_parser_nodes__TPercent.color;
3754 idtype = type_parser_nodes__TPercent.id;
3755 if(cltype >= var_new_child->type->table_size) {
3756 var4 = 0;
3757 } else {
3758 var4 = var_new_child->type->type_table[cltype] == idtype;
3759 }
3760 if (!var4) {
3761 fprintf(stderr, "Runtime error: %s", "Assert failed");
3762 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3442);
3763 show_backtrace(1);
3764 }
3765 self->attrs[COLOR_parser_nodes__APercentMethid___n_percent].val = var_new_child; /* _n_percent on <self:APercentMethid> */
3766 } else {
3767 fprintf(stderr, "Runtime error: %s", "Aborted");
3768 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3445);
3769 show_backtrace(1);
3770 }
3771 goto RET_LABEL;
3772 } else {
3773 }
3774 RET_LABEL:;
3775 }
3776 /* method parser_prod#APercentMethid#replace_child for (self: Object, ANode, nullable ANode) */
3777 void VIRTUAL_parser_prod__APercentMethid__replace_child(val* self, val* p0, val* p1) {
3778 parser_prod__APercentMethid__replace_child(self, p0, p1);
3779 RET_LABEL:;
3780 }
3781 /* method parser_prod#APercentMethid#n_percent= for (self: APercentMethid, TPercent) */
3782 void parser_prod__APercentMethid__n_percent_61d(val* self, val* p0) {
3783 val* var_node /* var node: TPercent */;
3784 var_node = p0;
3785 self->attrs[COLOR_parser_nodes__APercentMethid___n_percent].val = var_node; /* _n_percent on <self:APercentMethid> */
3786 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TPercent>*/;
3787 RET_LABEL:;
3788 }
3789 /* method parser_prod#APercentMethid#n_percent= for (self: Object, TPercent) */
3790 void VIRTUAL_parser_prod__APercentMethid__n_percent_61d(val* self, val* p0) {
3791 parser_prod__APercentMethid__n_percent_61d(self, p0);
3792 RET_LABEL:;
3793 }
3794 /* method parser_prod#APercentMethid#visit_all for (self: APercentMethid, Visitor) */
3795 void parser_prod__APercentMethid__visit_all(val* self, val* p0) {
3796 val* var_v /* var v: Visitor */;
3797 val* var /* : TPercent */;
3798 var_v = p0;
3799 var = self->attrs[COLOR_parser_nodes__APercentMethid___n_percent].val; /* _n_percent on <self:APercentMethid> */
3800 if (var == NULL) {
3801 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_percent");
3802 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3460);
3803 show_backtrace(1);
3804 }
3805 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
3806 RET_LABEL:;
3807 }
3808 /* method parser_prod#APercentMethid#visit_all for (self: Object, Visitor) */
3809 void VIRTUAL_parser_prod__APercentMethid__visit_all(val* self, val* p0) {
3810 parser_prod__APercentMethid__visit_all(self, p0);
3811 RET_LABEL:;
3812 }
3813 /* method parser_prod#AEqMethid#empty_init for (self: AEqMethid) */
3814 void parser_prod__AEqMethid__empty_init(val* self) {
3815 RET_LABEL:;
3816 }
3817 /* method parser_prod#AEqMethid#empty_init for (self: Object) */
3818 void VIRTUAL_parser_prod__AEqMethid__empty_init(val* self) {
3819 parser_prod__AEqMethid__empty_init(self);
3820 RET_LABEL:;
3821 }
3822 /* method parser_prod#AEqMethid#init_aeqmethid for (self: AEqMethid, nullable TEq) */
3823 void parser_prod__AEqMethid__init_aeqmethid(val* self, val* p0) {
3824 val* var_n_eq /* var n_eq: nullable TEq */;
3825 var_n_eq = p0;
3826 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__AEqMethid__empty_init]))(self) /* empty_init on <self:AEqMethid>*/;
3827 if (var_n_eq == NULL) {
3828 fprintf(stderr, "Runtime error: %s", "Cast failed");
3829 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3471);
3830 show_backtrace(1);
3831 }
3832 self->attrs[COLOR_parser_nodes__AEqMethid___n_eq].val = var_n_eq; /* _n_eq on <self:AEqMethid> */
3833 if (var_n_eq == NULL) {
3834 fprintf(stderr, "Runtime error: %s", "Reciever is null");
3835 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3472);
3836 show_backtrace(1);
3837 } else {
3838 ((void (*)(val*, val*))(var_n_eq->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_eq, self) /* parent= on <var_n_eq:nullable TEq>*/;
3839 }
3840 RET_LABEL:;
3841 }
3842 /* method parser_prod#AEqMethid#init_aeqmethid for (self: Object, nullable TEq) */
3843 void VIRTUAL_parser_prod__AEqMethid__init_aeqmethid(val* self, val* p0) {
3844 parser_prod__AEqMethid__init_aeqmethid(self, p0);
3845 RET_LABEL:;
3846 }
3847 /* method parser_prod#AEqMethid#replace_child for (self: AEqMethid, ANode, nullable ANode) */
3848 void parser_prod__AEqMethid__replace_child(val* self, val* p0, val* p1) {
3849 val* var_old_child /* var old_child: ANode */;
3850 val* var_new_child /* var new_child: nullable ANode */;
3851 val* var /* : TEq */;
3852 short int var1 /* : Bool */;
3853 val* var2 /* : null */;
3854 short int var3 /* : Bool */;
3855 short int var4 /* : Bool */;
3856 int cltype;
3857 int idtype;
3858 var_old_child = p0;
3859 var_new_child = p1;
3860 var = self->attrs[COLOR_parser_nodes__AEqMethid___n_eq].val; /* _n_eq on <self:AEqMethid> */
3861 if (var == NULL) {
3862 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_eq");
3863 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3477);
3864 show_backtrace(1);
3865 }
3866 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:TEq>*/;
3867 if (var1){
3868 var2 = NULL;
3869 if (var_new_child == NULL) {
3870 var3 = 0; /* is null */
3871 } else {
3872 var3 = 1; /* arg is null and recv is not */
3873 }
3874 if (var3){
3875 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
3876 /* <var_new_child:nullable ANode(ANode)> isa TEq */
3877 cltype = type_parser_nodes__TEq.color;
3878 idtype = type_parser_nodes__TEq.id;
3879 if(cltype >= var_new_child->type->table_size) {
3880 var4 = 0;
3881 } else {
3882 var4 = var_new_child->type->type_table[cltype] == idtype;
3883 }
3884 if (!var4) {
3885 fprintf(stderr, "Runtime error: %s", "Assert failed");
3886 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3480);
3887 show_backtrace(1);
3888 }
3889 self->attrs[COLOR_parser_nodes__AEqMethid___n_eq].val = var_new_child; /* _n_eq on <self:AEqMethid> */
3890 } else {
3891 fprintf(stderr, "Runtime error: %s", "Aborted");
3892 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3483);
3893 show_backtrace(1);
3894 }
3895 goto RET_LABEL;
3896 } else {
3897 }
3898 RET_LABEL:;
3899 }
3900 /* method parser_prod#AEqMethid#replace_child for (self: Object, ANode, nullable ANode) */
3901 void VIRTUAL_parser_prod__AEqMethid__replace_child(val* self, val* p0, val* p1) {
3902 parser_prod__AEqMethid__replace_child(self, p0, p1);
3903 RET_LABEL:;
3904 }
3905 /* method parser_prod#AEqMethid#n_eq= for (self: AEqMethid, TEq) */
3906 void parser_prod__AEqMethid__n_eq_61d(val* self, val* p0) {
3907 val* var_node /* var node: TEq */;
3908 var_node = p0;
3909 self->attrs[COLOR_parser_nodes__AEqMethid___n_eq].val = var_node; /* _n_eq on <self:AEqMethid> */
3910 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TEq>*/;
3911 RET_LABEL:;
3912 }
3913 /* method parser_prod#AEqMethid#n_eq= for (self: Object, TEq) */
3914 void VIRTUAL_parser_prod__AEqMethid__n_eq_61d(val* self, val* p0) {
3915 parser_prod__AEqMethid__n_eq_61d(self, p0);
3916 RET_LABEL:;
3917 }
3918 /* method parser_prod#AEqMethid#visit_all for (self: AEqMethid, Visitor) */
3919 void parser_prod__AEqMethid__visit_all(val* self, val* p0) {
3920 val* var_v /* var v: Visitor */;
3921 val* var /* : TEq */;
3922 var_v = p0;
3923 var = self->attrs[COLOR_parser_nodes__AEqMethid___n_eq].val; /* _n_eq on <self:AEqMethid> */
3924 if (var == NULL) {
3925 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_eq");
3926 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3498);
3927 show_backtrace(1);
3928 }
3929 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
3930 RET_LABEL:;
3931 }
3932 /* method parser_prod#AEqMethid#visit_all for (self: Object, Visitor) */
3933 void VIRTUAL_parser_prod__AEqMethid__visit_all(val* self, val* p0) {
3934 parser_prod__AEqMethid__visit_all(self, p0);
3935 RET_LABEL:;
3936 }
3937 /* method parser_prod#ANeMethid#empty_init for (self: ANeMethid) */
3938 void parser_prod__ANeMethid__empty_init(val* self) {
3939 RET_LABEL:;
3940 }
3941 /* method parser_prod#ANeMethid#empty_init for (self: Object) */
3942 void VIRTUAL_parser_prod__ANeMethid__empty_init(val* self) {
3943 parser_prod__ANeMethid__empty_init(self);
3944 RET_LABEL:;
3945 }
3946 /* method parser_prod#ANeMethid#init_anemethid for (self: ANeMethid, nullable TNe) */
3947 void parser_prod__ANeMethid__init_anemethid(val* self, val* p0) {
3948 val* var_n_ne /* var n_ne: nullable TNe */;
3949 var_n_ne = p0;
3950 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__ANeMethid__empty_init]))(self) /* empty_init on <self:ANeMethid>*/;
3951 if (var_n_ne == NULL) {
3952 fprintf(stderr, "Runtime error: %s", "Cast failed");
3953 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3509);
3954 show_backtrace(1);
3955 }
3956 self->attrs[COLOR_parser_nodes__ANeMethid___n_ne].val = var_n_ne; /* _n_ne on <self:ANeMethid> */
3957 if (var_n_ne == NULL) {
3958 fprintf(stderr, "Runtime error: %s", "Reciever is null");
3959 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3510);
3960 show_backtrace(1);
3961 } else {
3962 ((void (*)(val*, val*))(var_n_ne->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_ne, self) /* parent= on <var_n_ne:nullable TNe>*/;
3963 }
3964 RET_LABEL:;
3965 }
3966 /* method parser_prod#ANeMethid#init_anemethid for (self: Object, nullable TNe) */
3967 void VIRTUAL_parser_prod__ANeMethid__init_anemethid(val* self, val* p0) {
3968 parser_prod__ANeMethid__init_anemethid(self, p0);
3969 RET_LABEL:;
3970 }
3971 /* method parser_prod#ANeMethid#replace_child for (self: ANeMethid, ANode, nullable ANode) */
3972 void parser_prod__ANeMethid__replace_child(val* self, val* p0, val* p1) {
3973 val* var_old_child /* var old_child: ANode */;
3974 val* var_new_child /* var new_child: nullable ANode */;
3975 val* var /* : TNe */;
3976 short int var1 /* : Bool */;
3977 val* var2 /* : null */;
3978 short int var3 /* : Bool */;
3979 short int var4 /* : Bool */;
3980 int cltype;
3981 int idtype;
3982 var_old_child = p0;
3983 var_new_child = p1;
3984 var = self->attrs[COLOR_parser_nodes__ANeMethid___n_ne].val; /* _n_ne on <self:ANeMethid> */
3985 if (var == NULL) {
3986 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_ne");
3987 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3515);
3988 show_backtrace(1);
3989 }
3990 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:TNe>*/;
3991 if (var1){
3992 var2 = NULL;
3993 if (var_new_child == NULL) {
3994 var3 = 0; /* is null */
3995 } else {
3996 var3 = 1; /* arg is null and recv is not */
3997 }
3998 if (var3){
3999 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
4000 /* <var_new_child:nullable ANode(ANode)> isa TNe */
4001 cltype = type_parser_nodes__TNe.color;
4002 idtype = type_parser_nodes__TNe.id;
4003 if(cltype >= var_new_child->type->table_size) {
4004 var4 = 0;
4005 } else {
4006 var4 = var_new_child->type->type_table[cltype] == idtype;
4007 }
4008 if (!var4) {
4009 fprintf(stderr, "Runtime error: %s", "Assert failed");
4010 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3518);
4011 show_backtrace(1);
4012 }
4013 self->attrs[COLOR_parser_nodes__ANeMethid___n_ne].val = var_new_child; /* _n_ne on <self:ANeMethid> */
4014 } else {
4015 fprintf(stderr, "Runtime error: %s", "Aborted");
4016 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3521);
4017 show_backtrace(1);
4018 }
4019 goto RET_LABEL;
4020 } else {
4021 }
4022 RET_LABEL:;
4023 }
4024 /* method parser_prod#ANeMethid#replace_child for (self: Object, ANode, nullable ANode) */
4025 void VIRTUAL_parser_prod__ANeMethid__replace_child(val* self, val* p0, val* p1) {
4026 parser_prod__ANeMethid__replace_child(self, p0, p1);
4027 RET_LABEL:;
4028 }
4029 /* method parser_prod#ANeMethid#n_ne= for (self: ANeMethid, TNe) */
4030 void parser_prod__ANeMethid__n_ne_61d(val* self, val* p0) {
4031 val* var_node /* var node: TNe */;
4032 var_node = p0;
4033 self->attrs[COLOR_parser_nodes__ANeMethid___n_ne].val = var_node; /* _n_ne on <self:ANeMethid> */
4034 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TNe>*/;
4035 RET_LABEL:;
4036 }
4037 /* method parser_prod#ANeMethid#n_ne= for (self: Object, TNe) */
4038 void VIRTUAL_parser_prod__ANeMethid__n_ne_61d(val* self, val* p0) {
4039 parser_prod__ANeMethid__n_ne_61d(self, p0);
4040 RET_LABEL:;
4041 }
4042 /* method parser_prod#ANeMethid#visit_all for (self: ANeMethid, Visitor) */
4043 void parser_prod__ANeMethid__visit_all(val* self, val* p0) {
4044 val* var_v /* var v: Visitor */;
4045 val* var /* : TNe */;
4046 var_v = p0;
4047 var = self->attrs[COLOR_parser_nodes__ANeMethid___n_ne].val; /* _n_ne on <self:ANeMethid> */
4048 if (var == NULL) {
4049 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_ne");
4050 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3536);
4051 show_backtrace(1);
4052 }
4053 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
4054 RET_LABEL:;
4055 }
4056 /* method parser_prod#ANeMethid#visit_all for (self: Object, Visitor) */
4057 void VIRTUAL_parser_prod__ANeMethid__visit_all(val* self, val* p0) {
4058 parser_prod__ANeMethid__visit_all(self, p0);
4059 RET_LABEL:;
4060 }
4061 /* method parser_prod#ALeMethid#empty_init for (self: ALeMethid) */
4062 void parser_prod__ALeMethid__empty_init(val* self) {
4063 RET_LABEL:;
4064 }
4065 /* method parser_prod#ALeMethid#empty_init for (self: Object) */
4066 void VIRTUAL_parser_prod__ALeMethid__empty_init(val* self) {
4067 parser_prod__ALeMethid__empty_init(self);
4068 RET_LABEL:;
4069 }
4070 /* method parser_prod#ALeMethid#init_alemethid for (self: ALeMethid, nullable TLe) */
4071 void parser_prod__ALeMethid__init_alemethid(val* self, val* p0) {
4072 val* var_n_le /* var n_le: nullable TLe */;
4073 var_n_le = p0;
4074 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__ALeMethid__empty_init]))(self) /* empty_init on <self:ALeMethid>*/;
4075 if (var_n_le == NULL) {
4076 fprintf(stderr, "Runtime error: %s", "Cast failed");
4077 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3547);
4078 show_backtrace(1);
4079 }
4080 self->attrs[COLOR_parser_nodes__ALeMethid___n_le].val = var_n_le; /* _n_le on <self:ALeMethid> */
4081 if (var_n_le == NULL) {
4082 fprintf(stderr, "Runtime error: %s", "Reciever is null");
4083 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3548);
4084 show_backtrace(1);
4085 } else {
4086 ((void (*)(val*, val*))(var_n_le->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_le, self) /* parent= on <var_n_le:nullable TLe>*/;
4087 }
4088 RET_LABEL:;
4089 }
4090 /* method parser_prod#ALeMethid#init_alemethid for (self: Object, nullable TLe) */
4091 void VIRTUAL_parser_prod__ALeMethid__init_alemethid(val* self, val* p0) {
4092 parser_prod__ALeMethid__init_alemethid(self, p0);
4093 RET_LABEL:;
4094 }
4095 /* method parser_prod#ALeMethid#replace_child for (self: ALeMethid, ANode, nullable ANode) */
4096 void parser_prod__ALeMethid__replace_child(val* self, val* p0, val* p1) {
4097 val* var_old_child /* var old_child: ANode */;
4098 val* var_new_child /* var new_child: nullable ANode */;
4099 val* var /* : TLe */;
4100 short int var1 /* : Bool */;
4101 val* var2 /* : null */;
4102 short int var3 /* : Bool */;
4103 short int var4 /* : Bool */;
4104 int cltype;
4105 int idtype;
4106 var_old_child = p0;
4107 var_new_child = p1;
4108 var = self->attrs[COLOR_parser_nodes__ALeMethid___n_le].val; /* _n_le on <self:ALeMethid> */
4109 if (var == NULL) {
4110 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_le");
4111 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3553);
4112 show_backtrace(1);
4113 }
4114 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:TLe>*/;
4115 if (var1){
4116 var2 = NULL;
4117 if (var_new_child == NULL) {
4118 var3 = 0; /* is null */
4119 } else {
4120 var3 = 1; /* arg is null and recv is not */
4121 }
4122 if (var3){
4123 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
4124 /* <var_new_child:nullable ANode(ANode)> isa TLe */
4125 cltype = type_parser_nodes__TLe.color;
4126 idtype = type_parser_nodes__TLe.id;
4127 if(cltype >= var_new_child->type->table_size) {
4128 var4 = 0;
4129 } else {
4130 var4 = var_new_child->type->type_table[cltype] == idtype;
4131 }
4132 if (!var4) {
4133 fprintf(stderr, "Runtime error: %s", "Assert failed");
4134 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3556);
4135 show_backtrace(1);
4136 }
4137 self->attrs[COLOR_parser_nodes__ALeMethid___n_le].val = var_new_child; /* _n_le on <self:ALeMethid> */
4138 } else {
4139 fprintf(stderr, "Runtime error: %s", "Aborted");
4140 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3559);
4141 show_backtrace(1);
4142 }
4143 goto RET_LABEL;
4144 } else {
4145 }
4146 RET_LABEL:;
4147 }
4148 /* method parser_prod#ALeMethid#replace_child for (self: Object, ANode, nullable ANode) */
4149 void VIRTUAL_parser_prod__ALeMethid__replace_child(val* self, val* p0, val* p1) {
4150 parser_prod__ALeMethid__replace_child(self, p0, p1);
4151 RET_LABEL:;
4152 }
4153 /* method parser_prod#ALeMethid#n_le= for (self: ALeMethid, TLe) */
4154 void parser_prod__ALeMethid__n_le_61d(val* self, val* p0) {
4155 val* var_node /* var node: TLe */;
4156 var_node = p0;
4157 self->attrs[COLOR_parser_nodes__ALeMethid___n_le].val = var_node; /* _n_le on <self:ALeMethid> */
4158 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TLe>*/;
4159 RET_LABEL:;
4160 }
4161 /* method parser_prod#ALeMethid#n_le= for (self: Object, TLe) */
4162 void VIRTUAL_parser_prod__ALeMethid__n_le_61d(val* self, val* p0) {
4163 parser_prod__ALeMethid__n_le_61d(self, p0);
4164 RET_LABEL:;
4165 }
4166 /* method parser_prod#ALeMethid#visit_all for (self: ALeMethid, Visitor) */
4167 void parser_prod__ALeMethid__visit_all(val* self, val* p0) {
4168 val* var_v /* var v: Visitor */;
4169 val* var /* : TLe */;
4170 var_v = p0;
4171 var = self->attrs[COLOR_parser_nodes__ALeMethid___n_le].val; /* _n_le on <self:ALeMethid> */
4172 if (var == NULL) {
4173 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_le");
4174 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3574);
4175 show_backtrace(1);
4176 }
4177 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
4178 RET_LABEL:;
4179 }
4180 /* method parser_prod#ALeMethid#visit_all for (self: Object, Visitor) */
4181 void VIRTUAL_parser_prod__ALeMethid__visit_all(val* self, val* p0) {
4182 parser_prod__ALeMethid__visit_all(self, p0);
4183 RET_LABEL:;
4184 }
4185 /* method parser_prod#AGeMethid#empty_init for (self: AGeMethid) */
4186 void parser_prod__AGeMethid__empty_init(val* self) {
4187 RET_LABEL:;
4188 }
4189 /* method parser_prod#AGeMethid#empty_init for (self: Object) */
4190 void VIRTUAL_parser_prod__AGeMethid__empty_init(val* self) {
4191 parser_prod__AGeMethid__empty_init(self);
4192 RET_LABEL:;
4193 }
4194 /* method parser_prod#AGeMethid#init_agemethid for (self: AGeMethid, nullable TGe) */
4195 void parser_prod__AGeMethid__init_agemethid(val* self, val* p0) {
4196 val* var_n_ge /* var n_ge: nullable TGe */;
4197 var_n_ge = p0;
4198 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__AGeMethid__empty_init]))(self) /* empty_init on <self:AGeMethid>*/;
4199 if (var_n_ge == NULL) {
4200 fprintf(stderr, "Runtime error: %s", "Cast failed");
4201 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3585);
4202 show_backtrace(1);
4203 }
4204 self->attrs[COLOR_parser_nodes__AGeMethid___n_ge].val = var_n_ge; /* _n_ge on <self:AGeMethid> */
4205 if (var_n_ge == NULL) {
4206 fprintf(stderr, "Runtime error: %s", "Reciever is null");
4207 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3586);
4208 show_backtrace(1);
4209 } else {
4210 ((void (*)(val*, val*))(var_n_ge->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_ge, self) /* parent= on <var_n_ge:nullable TGe>*/;
4211 }
4212 RET_LABEL:;
4213 }
4214 /* method parser_prod#AGeMethid#init_agemethid for (self: Object, nullable TGe) */
4215 void VIRTUAL_parser_prod__AGeMethid__init_agemethid(val* self, val* p0) {
4216 parser_prod__AGeMethid__init_agemethid(self, p0);
4217 RET_LABEL:;
4218 }
4219 /* method parser_prod#AGeMethid#replace_child for (self: AGeMethid, ANode, nullable ANode) */
4220 void parser_prod__AGeMethid__replace_child(val* self, val* p0, val* p1) {
4221 val* var_old_child /* var old_child: ANode */;
4222 val* var_new_child /* var new_child: nullable ANode */;
4223 val* var /* : TGe */;
4224 short int var1 /* : Bool */;
4225 val* var2 /* : null */;
4226 short int var3 /* : Bool */;
4227 short int var4 /* : Bool */;
4228 int cltype;
4229 int idtype;
4230 var_old_child = p0;
4231 var_new_child = p1;
4232 var = self->attrs[COLOR_parser_nodes__AGeMethid___n_ge].val; /* _n_ge on <self:AGeMethid> */
4233 if (var == NULL) {
4234 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_ge");
4235 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3591);
4236 show_backtrace(1);
4237 }
4238 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:TGe>*/;
4239 if (var1){
4240 var2 = NULL;
4241 if (var_new_child == NULL) {
4242 var3 = 0; /* is null */
4243 } else {
4244 var3 = 1; /* arg is null and recv is not */
4245 }
4246 if (var3){
4247 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
4248 /* <var_new_child:nullable ANode(ANode)> isa TGe */
4249 cltype = type_parser_nodes__TGe.color;
4250 idtype = type_parser_nodes__TGe.id;
4251 if(cltype >= var_new_child->type->table_size) {
4252 var4 = 0;
4253 } else {
4254 var4 = var_new_child->type->type_table[cltype] == idtype;
4255 }
4256 if (!var4) {
4257 fprintf(stderr, "Runtime error: %s", "Assert failed");
4258 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3594);
4259 show_backtrace(1);
4260 }
4261 self->attrs[COLOR_parser_nodes__AGeMethid___n_ge].val = var_new_child; /* _n_ge on <self:AGeMethid> */
4262 } else {
4263 fprintf(stderr, "Runtime error: %s", "Aborted");
4264 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3597);
4265 show_backtrace(1);
4266 }
4267 goto RET_LABEL;
4268 } else {
4269 }
4270 RET_LABEL:;
4271 }
4272 /* method parser_prod#AGeMethid#replace_child for (self: Object, ANode, nullable ANode) */
4273 void VIRTUAL_parser_prod__AGeMethid__replace_child(val* self, val* p0, val* p1) {
4274 parser_prod__AGeMethid__replace_child(self, p0, p1);
4275 RET_LABEL:;
4276 }
4277 /* method parser_prod#AGeMethid#n_ge= for (self: AGeMethid, TGe) */
4278 void parser_prod__AGeMethid__n_ge_61d(val* self, val* p0) {
4279 val* var_node /* var node: TGe */;
4280 var_node = p0;
4281 self->attrs[COLOR_parser_nodes__AGeMethid___n_ge].val = var_node; /* _n_ge on <self:AGeMethid> */
4282 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TGe>*/;
4283 RET_LABEL:;
4284 }
4285 /* method parser_prod#AGeMethid#n_ge= for (self: Object, TGe) */
4286 void VIRTUAL_parser_prod__AGeMethid__n_ge_61d(val* self, val* p0) {
4287 parser_prod__AGeMethid__n_ge_61d(self, p0);
4288 RET_LABEL:;
4289 }
4290 /* method parser_prod#AGeMethid#visit_all for (self: AGeMethid, Visitor) */
4291 void parser_prod__AGeMethid__visit_all(val* self, val* p0) {
4292 val* var_v /* var v: Visitor */;
4293 val* var /* : TGe */;
4294 var_v = p0;
4295 var = self->attrs[COLOR_parser_nodes__AGeMethid___n_ge].val; /* _n_ge on <self:AGeMethid> */
4296 if (var == NULL) {
4297 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_ge");
4298 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3612);
4299 show_backtrace(1);
4300 }
4301 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
4302 RET_LABEL:;
4303 }
4304 /* method parser_prod#AGeMethid#visit_all for (self: Object, Visitor) */
4305 void VIRTUAL_parser_prod__AGeMethid__visit_all(val* self, val* p0) {
4306 parser_prod__AGeMethid__visit_all(self, p0);
4307 RET_LABEL:;
4308 }
4309 /* method parser_prod#ALtMethid#empty_init for (self: ALtMethid) */
4310 void parser_prod__ALtMethid__empty_init(val* self) {
4311 RET_LABEL:;
4312 }
4313 /* method parser_prod#ALtMethid#empty_init for (self: Object) */
4314 void VIRTUAL_parser_prod__ALtMethid__empty_init(val* self) {
4315 parser_prod__ALtMethid__empty_init(self);
4316 RET_LABEL:;
4317 }
4318 /* method parser_prod#ALtMethid#init_altmethid for (self: ALtMethid, nullable TLt) */
4319 void parser_prod__ALtMethid__init_altmethid(val* self, val* p0) {
4320 val* var_n_lt /* var n_lt: nullable TLt */;
4321 var_n_lt = p0;
4322 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__ALtMethid__empty_init]))(self) /* empty_init on <self:ALtMethid>*/;
4323 if (var_n_lt == NULL) {
4324 fprintf(stderr, "Runtime error: %s", "Cast failed");
4325 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3623);
4326 show_backtrace(1);
4327 }
4328 self->attrs[COLOR_parser_nodes__ALtMethid___n_lt].val = var_n_lt; /* _n_lt on <self:ALtMethid> */
4329 if (var_n_lt == NULL) {
4330 fprintf(stderr, "Runtime error: %s", "Reciever is null");
4331 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3624);
4332 show_backtrace(1);
4333 } else {
4334 ((void (*)(val*, val*))(var_n_lt->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_lt, self) /* parent= on <var_n_lt:nullable TLt>*/;
4335 }
4336 RET_LABEL:;
4337 }
4338 /* method parser_prod#ALtMethid#init_altmethid for (self: Object, nullable TLt) */
4339 void VIRTUAL_parser_prod__ALtMethid__init_altmethid(val* self, val* p0) {
4340 parser_prod__ALtMethid__init_altmethid(self, p0);
4341 RET_LABEL:;
4342 }
4343 /* method parser_prod#ALtMethid#replace_child for (self: ALtMethid, ANode, nullable ANode) */
4344 void parser_prod__ALtMethid__replace_child(val* self, val* p0, val* p1) {
4345 val* var_old_child /* var old_child: ANode */;
4346 val* var_new_child /* var new_child: nullable ANode */;
4347 val* var /* : TLt */;
4348 short int var1 /* : Bool */;
4349 val* var2 /* : null */;
4350 short int var3 /* : Bool */;
4351 short int var4 /* : Bool */;
4352 int cltype;
4353 int idtype;
4354 var_old_child = p0;
4355 var_new_child = p1;
4356 var = self->attrs[COLOR_parser_nodes__ALtMethid___n_lt].val; /* _n_lt on <self:ALtMethid> */
4357 if (var == NULL) {
4358 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_lt");
4359 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3629);
4360 show_backtrace(1);
4361 }
4362 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:TLt>*/;
4363 if (var1){
4364 var2 = NULL;
4365 if (var_new_child == NULL) {
4366 var3 = 0; /* is null */
4367 } else {
4368 var3 = 1; /* arg is null and recv is not */
4369 }
4370 if (var3){
4371 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
4372 /* <var_new_child:nullable ANode(ANode)> isa TLt */
4373 cltype = type_parser_nodes__TLt.color;
4374 idtype = type_parser_nodes__TLt.id;
4375 if(cltype >= var_new_child->type->table_size) {
4376 var4 = 0;
4377 } else {
4378 var4 = var_new_child->type->type_table[cltype] == idtype;
4379 }
4380 if (!var4) {
4381 fprintf(stderr, "Runtime error: %s", "Assert failed");
4382 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3632);
4383 show_backtrace(1);
4384 }
4385 self->attrs[COLOR_parser_nodes__ALtMethid___n_lt].val = var_new_child; /* _n_lt on <self:ALtMethid> */
4386 } else {
4387 fprintf(stderr, "Runtime error: %s", "Aborted");
4388 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3635);
4389 show_backtrace(1);
4390 }
4391 goto RET_LABEL;
4392 } else {
4393 }
4394 RET_LABEL:;
4395 }
4396 /* method parser_prod#ALtMethid#replace_child for (self: Object, ANode, nullable ANode) */
4397 void VIRTUAL_parser_prod__ALtMethid__replace_child(val* self, val* p0, val* p1) {
4398 parser_prod__ALtMethid__replace_child(self, p0, p1);
4399 RET_LABEL:;
4400 }
4401 /* method parser_prod#ALtMethid#n_lt= for (self: ALtMethid, TLt) */
4402 void parser_prod__ALtMethid__n_lt_61d(val* self, val* p0) {
4403 val* var_node /* var node: TLt */;
4404 var_node = p0;
4405 self->attrs[COLOR_parser_nodes__ALtMethid___n_lt].val = var_node; /* _n_lt on <self:ALtMethid> */
4406 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TLt>*/;
4407 RET_LABEL:;
4408 }
4409 /* method parser_prod#ALtMethid#n_lt= for (self: Object, TLt) */
4410 void VIRTUAL_parser_prod__ALtMethid__n_lt_61d(val* self, val* p0) {
4411 parser_prod__ALtMethid__n_lt_61d(self, p0);
4412 RET_LABEL:;
4413 }
4414 /* method parser_prod#ALtMethid#visit_all for (self: ALtMethid, Visitor) */
4415 void parser_prod__ALtMethid__visit_all(val* self, val* p0) {
4416 val* var_v /* var v: Visitor */;
4417 val* var /* : TLt */;
4418 var_v = p0;
4419 var = self->attrs[COLOR_parser_nodes__ALtMethid___n_lt].val; /* _n_lt on <self:ALtMethid> */
4420 if (var == NULL) {
4421 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_lt");
4422 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3650);
4423 show_backtrace(1);
4424 }
4425 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
4426 RET_LABEL:;
4427 }
4428 /* method parser_prod#ALtMethid#visit_all for (self: Object, Visitor) */
4429 void VIRTUAL_parser_prod__ALtMethid__visit_all(val* self, val* p0) {
4430 parser_prod__ALtMethid__visit_all(self, p0);
4431 RET_LABEL:;
4432 }
4433 /* method parser_prod#AGtMethid#empty_init for (self: AGtMethid) */
4434 void parser_prod__AGtMethid__empty_init(val* self) {
4435 RET_LABEL:;
4436 }
4437 /* method parser_prod#AGtMethid#empty_init for (self: Object) */
4438 void VIRTUAL_parser_prod__AGtMethid__empty_init(val* self) {
4439 parser_prod__AGtMethid__empty_init(self);
4440 RET_LABEL:;
4441 }
4442 /* method parser_prod#AGtMethid#init_agtmethid for (self: AGtMethid, nullable TGt) */
4443 void parser_prod__AGtMethid__init_agtmethid(val* self, val* p0) {
4444 val* var_n_gt /* var n_gt: nullable TGt */;
4445 var_n_gt = p0;
4446 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__AGtMethid__empty_init]))(self) /* empty_init on <self:AGtMethid>*/;
4447 if (var_n_gt == NULL) {
4448 fprintf(stderr, "Runtime error: %s", "Cast failed");
4449 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3661);
4450 show_backtrace(1);
4451 }
4452 self->attrs[COLOR_parser_nodes__AGtMethid___n_gt].val = var_n_gt; /* _n_gt on <self:AGtMethid> */
4453 if (var_n_gt == NULL) {
4454 fprintf(stderr, "Runtime error: %s", "Reciever is null");
4455 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3662);
4456 show_backtrace(1);
4457 } else {
4458 ((void (*)(val*, val*))(var_n_gt->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_gt, self) /* parent= on <var_n_gt:nullable TGt>*/;
4459 }
4460 RET_LABEL:;
4461 }
4462 /* method parser_prod#AGtMethid#init_agtmethid for (self: Object, nullable TGt) */
4463 void VIRTUAL_parser_prod__AGtMethid__init_agtmethid(val* self, val* p0) {
4464 parser_prod__AGtMethid__init_agtmethid(self, p0);
4465 RET_LABEL:;
4466 }
4467 /* method parser_prod#AGtMethid#replace_child for (self: AGtMethid, ANode, nullable ANode) */
4468 void parser_prod__AGtMethid__replace_child(val* self, val* p0, val* p1) {
4469 val* var_old_child /* var old_child: ANode */;
4470 val* var_new_child /* var new_child: nullable ANode */;
4471 val* var /* : TGt */;
4472 short int var1 /* : Bool */;
4473 val* var2 /* : null */;
4474 short int var3 /* : Bool */;
4475 short int var4 /* : Bool */;
4476 int cltype;
4477 int idtype;
4478 var_old_child = p0;
4479 var_new_child = p1;
4480 var = self->attrs[COLOR_parser_nodes__AGtMethid___n_gt].val; /* _n_gt on <self:AGtMethid> */
4481 if (var == NULL) {
4482 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_gt");
4483 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3667);
4484 show_backtrace(1);
4485 }
4486 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:TGt>*/;
4487 if (var1){
4488 var2 = NULL;
4489 if (var_new_child == NULL) {
4490 var3 = 0; /* is null */
4491 } else {
4492 var3 = 1; /* arg is null and recv is not */
4493 }
4494 if (var3){
4495 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
4496 /* <var_new_child:nullable ANode(ANode)> isa TGt */
4497 cltype = type_parser_nodes__TGt.color;
4498 idtype = type_parser_nodes__TGt.id;
4499 if(cltype >= var_new_child->type->table_size) {
4500 var4 = 0;
4501 } else {
4502 var4 = var_new_child->type->type_table[cltype] == idtype;
4503 }
4504 if (!var4) {
4505 fprintf(stderr, "Runtime error: %s", "Assert failed");
4506 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3670);
4507 show_backtrace(1);
4508 }
4509 self->attrs[COLOR_parser_nodes__AGtMethid___n_gt].val = var_new_child; /* _n_gt on <self:AGtMethid> */
4510 } else {
4511 fprintf(stderr, "Runtime error: %s", "Aborted");
4512 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3673);
4513 show_backtrace(1);
4514 }
4515 goto RET_LABEL;
4516 } else {
4517 }
4518 RET_LABEL:;
4519 }
4520 /* method parser_prod#AGtMethid#replace_child for (self: Object, ANode, nullable ANode) */
4521 void VIRTUAL_parser_prod__AGtMethid__replace_child(val* self, val* p0, val* p1) {
4522 parser_prod__AGtMethid__replace_child(self, p0, p1);
4523 RET_LABEL:;
4524 }
4525 /* method parser_prod#AGtMethid#n_gt= for (self: AGtMethid, TGt) */
4526 void parser_prod__AGtMethid__n_gt_61d(val* self, val* p0) {
4527 val* var_node /* var node: TGt */;
4528 var_node = p0;
4529 self->attrs[COLOR_parser_nodes__AGtMethid___n_gt].val = var_node; /* _n_gt on <self:AGtMethid> */
4530 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TGt>*/;
4531 RET_LABEL:;
4532 }
4533 /* method parser_prod#AGtMethid#n_gt= for (self: Object, TGt) */
4534 void VIRTUAL_parser_prod__AGtMethid__n_gt_61d(val* self, val* p0) {
4535 parser_prod__AGtMethid__n_gt_61d(self, p0);
4536 RET_LABEL:;
4537 }
4538 /* method parser_prod#AGtMethid#visit_all for (self: AGtMethid, Visitor) */
4539 void parser_prod__AGtMethid__visit_all(val* self, val* p0) {
4540 val* var_v /* var v: Visitor */;
4541 val* var /* : TGt */;
4542 var_v = p0;
4543 var = self->attrs[COLOR_parser_nodes__AGtMethid___n_gt].val; /* _n_gt on <self:AGtMethid> */
4544 if (var == NULL) {
4545 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_gt");
4546 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3688);
4547 show_backtrace(1);
4548 }
4549 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
4550 RET_LABEL:;
4551 }
4552 /* method parser_prod#AGtMethid#visit_all for (self: Object, Visitor) */
4553 void VIRTUAL_parser_prod__AGtMethid__visit_all(val* self, val* p0) {
4554 parser_prod__AGtMethid__visit_all(self, p0);
4555 RET_LABEL:;
4556 }
4557 /* method parser_prod#ALlMethid#empty_init for (self: ALlMethid) */
4558 void parser_prod__ALlMethid__empty_init(val* self) {
4559 RET_LABEL:;
4560 }
4561 /* method parser_prod#ALlMethid#empty_init for (self: Object) */
4562 void VIRTUAL_parser_prod__ALlMethid__empty_init(val* self) {
4563 parser_prod__ALlMethid__empty_init(self);
4564 RET_LABEL:;
4565 }
4566 /* method parser_prod#ALlMethid#init_allmethid for (self: ALlMethid, nullable TLl) */
4567 void parser_prod__ALlMethid__init_allmethid(val* self, val* p0) {
4568 val* var_n_ll /* var n_ll: nullable TLl */;
4569 var_n_ll = p0;
4570 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__ALlMethid__empty_init]))(self) /* empty_init on <self:ALlMethid>*/;
4571 if (var_n_ll == NULL) {
4572 fprintf(stderr, "Runtime error: %s", "Cast failed");
4573 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3699);
4574 show_backtrace(1);
4575 }
4576 self->attrs[COLOR_parser_nodes__ALlMethid___n_ll].val = var_n_ll; /* _n_ll on <self:ALlMethid> */
4577 if (var_n_ll == NULL) {
4578 fprintf(stderr, "Runtime error: %s", "Reciever is null");
4579 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3700);
4580 show_backtrace(1);
4581 } else {
4582 ((void (*)(val*, val*))(var_n_ll->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_ll, self) /* parent= on <var_n_ll:nullable TLl>*/;
4583 }
4584 RET_LABEL:;
4585 }
4586 /* method parser_prod#ALlMethid#init_allmethid for (self: Object, nullable TLl) */
4587 void VIRTUAL_parser_prod__ALlMethid__init_allmethid(val* self, val* p0) {
4588 parser_prod__ALlMethid__init_allmethid(self, p0);
4589 RET_LABEL:;
4590 }
4591 /* method parser_prod#ALlMethid#replace_child for (self: ALlMethid, ANode, nullable ANode) */
4592 void parser_prod__ALlMethid__replace_child(val* self, val* p0, val* p1) {
4593 val* var_old_child /* var old_child: ANode */;
4594 val* var_new_child /* var new_child: nullable ANode */;
4595 val* var /* : TLl */;
4596 short int var1 /* : Bool */;
4597 val* var2 /* : null */;
4598 short int var3 /* : Bool */;
4599 short int var4 /* : Bool */;
4600 int cltype;
4601 int idtype;
4602 var_old_child = p0;
4603 var_new_child = p1;
4604 var = self->attrs[COLOR_parser_nodes__ALlMethid___n_ll].val; /* _n_ll on <self:ALlMethid> */
4605 if (var == NULL) {
4606 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_ll");
4607 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3705);
4608 show_backtrace(1);
4609 }
4610 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:TLl>*/;
4611 if (var1){
4612 var2 = NULL;
4613 if (var_new_child == NULL) {
4614 var3 = 0; /* is null */
4615 } else {
4616 var3 = 1; /* arg is null and recv is not */
4617 }
4618 if (var3){
4619 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
4620 /* <var_new_child:nullable ANode(ANode)> isa TLl */
4621 cltype = type_parser_nodes__TLl.color;
4622 idtype = type_parser_nodes__TLl.id;
4623 if(cltype >= var_new_child->type->table_size) {
4624 var4 = 0;
4625 } else {
4626 var4 = var_new_child->type->type_table[cltype] == idtype;
4627 }
4628 if (!var4) {
4629 fprintf(stderr, "Runtime error: %s", "Assert failed");
4630 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3708);
4631 show_backtrace(1);
4632 }
4633 self->attrs[COLOR_parser_nodes__ALlMethid___n_ll].val = var_new_child; /* _n_ll on <self:ALlMethid> */
4634 } else {
4635 fprintf(stderr, "Runtime error: %s", "Aborted");
4636 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3711);
4637 show_backtrace(1);
4638 }
4639 goto RET_LABEL;
4640 } else {
4641 }
4642 RET_LABEL:;
4643 }
4644 /* method parser_prod#ALlMethid#replace_child for (self: Object, ANode, nullable ANode) */
4645 void VIRTUAL_parser_prod__ALlMethid__replace_child(val* self, val* p0, val* p1) {
4646 parser_prod__ALlMethid__replace_child(self, p0, p1);
4647 RET_LABEL:;
4648 }
4649 /* method parser_prod#ALlMethid#n_ll= for (self: ALlMethid, TLl) */
4650 void parser_prod__ALlMethid__n_ll_61d(val* self, val* p0) {
4651 val* var_node /* var node: TLl */;
4652 var_node = p0;
4653 self->attrs[COLOR_parser_nodes__ALlMethid___n_ll].val = var_node; /* _n_ll on <self:ALlMethid> */
4654 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TLl>*/;
4655 RET_LABEL:;
4656 }
4657 /* method parser_prod#ALlMethid#n_ll= for (self: Object, TLl) */
4658 void VIRTUAL_parser_prod__ALlMethid__n_ll_61d(val* self, val* p0) {
4659 parser_prod__ALlMethid__n_ll_61d(self, p0);
4660 RET_LABEL:;
4661 }
4662 /* method parser_prod#ALlMethid#visit_all for (self: ALlMethid, Visitor) */
4663 void parser_prod__ALlMethid__visit_all(val* self, val* p0) {
4664 val* var_v /* var v: Visitor */;
4665 val* var /* : TLl */;
4666 var_v = p0;
4667 var = self->attrs[COLOR_parser_nodes__ALlMethid___n_ll].val; /* _n_ll on <self:ALlMethid> */
4668 if (var == NULL) {
4669 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_ll");
4670 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3726);
4671 show_backtrace(1);
4672 }
4673 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
4674 RET_LABEL:;
4675 }
4676 /* method parser_prod#ALlMethid#visit_all for (self: Object, Visitor) */
4677 void VIRTUAL_parser_prod__ALlMethid__visit_all(val* self, val* p0) {
4678 parser_prod__ALlMethid__visit_all(self, p0);
4679 RET_LABEL:;
4680 }
4681 /* method parser_prod#AGgMethid#empty_init for (self: AGgMethid) */
4682 void parser_prod__AGgMethid__empty_init(val* self) {
4683 RET_LABEL:;
4684 }
4685 /* method parser_prod#AGgMethid#empty_init for (self: Object) */
4686 void VIRTUAL_parser_prod__AGgMethid__empty_init(val* self) {
4687 parser_prod__AGgMethid__empty_init(self);
4688 RET_LABEL:;
4689 }
4690 /* method parser_prod#AGgMethid#init_aggmethid for (self: AGgMethid, nullable TGg) */
4691 void parser_prod__AGgMethid__init_aggmethid(val* self, val* p0) {
4692 val* var_n_gg /* var n_gg: nullable TGg */;
4693 var_n_gg = p0;
4694 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__AGgMethid__empty_init]))(self) /* empty_init on <self:AGgMethid>*/;
4695 if (var_n_gg == NULL) {
4696 fprintf(stderr, "Runtime error: %s", "Cast failed");
4697 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3737);
4698 show_backtrace(1);
4699 }
4700 self->attrs[COLOR_parser_nodes__AGgMethid___n_gg].val = var_n_gg; /* _n_gg on <self:AGgMethid> */
4701 if (var_n_gg == NULL) {
4702 fprintf(stderr, "Runtime error: %s", "Reciever is null");
4703 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3738);
4704 show_backtrace(1);
4705 } else {
4706 ((void (*)(val*, val*))(var_n_gg->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_gg, self) /* parent= on <var_n_gg:nullable TGg>*/;
4707 }
4708 RET_LABEL:;
4709 }
4710 /* method parser_prod#AGgMethid#init_aggmethid for (self: Object, nullable TGg) */
4711 void VIRTUAL_parser_prod__AGgMethid__init_aggmethid(val* self, val* p0) {
4712 parser_prod__AGgMethid__init_aggmethid(self, p0);
4713 RET_LABEL:;
4714 }
4715 /* method parser_prod#AGgMethid#replace_child for (self: AGgMethid, ANode, nullable ANode) */
4716 void parser_prod__AGgMethid__replace_child(val* self, val* p0, val* p1) {
4717 val* var_old_child /* var old_child: ANode */;
4718 val* var_new_child /* var new_child: nullable ANode */;
4719 val* var /* : TGg */;
4720 short int var1 /* : Bool */;
4721 val* var2 /* : null */;
4722 short int var3 /* : Bool */;
4723 short int var4 /* : Bool */;
4724 int cltype;
4725 int idtype;
4726 var_old_child = p0;
4727 var_new_child = p1;
4728 var = self->attrs[COLOR_parser_nodes__AGgMethid___n_gg].val; /* _n_gg on <self:AGgMethid> */
4729 if (var == NULL) {
4730 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_gg");
4731 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3743);
4732 show_backtrace(1);
4733 }
4734 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:TGg>*/;
4735 if (var1){
4736 var2 = NULL;
4737 if (var_new_child == NULL) {
4738 var3 = 0; /* is null */
4739 } else {
4740 var3 = 1; /* arg is null and recv is not */
4741 }
4742 if (var3){
4743 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
4744 /* <var_new_child:nullable ANode(ANode)> isa TGg */
4745 cltype = type_parser_nodes__TGg.color;
4746 idtype = type_parser_nodes__TGg.id;
4747 if(cltype >= var_new_child->type->table_size) {
4748 var4 = 0;
4749 } else {
4750 var4 = var_new_child->type->type_table[cltype] == idtype;
4751 }
4752 if (!var4) {
4753 fprintf(stderr, "Runtime error: %s", "Assert failed");
4754 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3746);
4755 show_backtrace(1);
4756 }
4757 self->attrs[COLOR_parser_nodes__AGgMethid___n_gg].val = var_new_child; /* _n_gg on <self:AGgMethid> */
4758 } else {
4759 fprintf(stderr, "Runtime error: %s", "Aborted");
4760 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3749);
4761 show_backtrace(1);
4762 }
4763 goto RET_LABEL;
4764 } else {
4765 }
4766 RET_LABEL:;
4767 }
4768 /* method parser_prod#AGgMethid#replace_child for (self: Object, ANode, nullable ANode) */
4769 void VIRTUAL_parser_prod__AGgMethid__replace_child(val* self, val* p0, val* p1) {
4770 parser_prod__AGgMethid__replace_child(self, p0, p1);
4771 RET_LABEL:;
4772 }
4773 /* method parser_prod#AGgMethid#n_gg= for (self: AGgMethid, TGg) */
4774 void parser_prod__AGgMethid__n_gg_61d(val* self, val* p0) {
4775 val* var_node /* var node: TGg */;
4776 var_node = p0;
4777 self->attrs[COLOR_parser_nodes__AGgMethid___n_gg].val = var_node; /* _n_gg on <self:AGgMethid> */
4778 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TGg>*/;
4779 RET_LABEL:;
4780 }
4781 /* method parser_prod#AGgMethid#n_gg= for (self: Object, TGg) */
4782 void VIRTUAL_parser_prod__AGgMethid__n_gg_61d(val* self, val* p0) {
4783 parser_prod__AGgMethid__n_gg_61d(self, p0);
4784 RET_LABEL:;
4785 }
4786 /* method parser_prod#AGgMethid#visit_all for (self: AGgMethid, Visitor) */
4787 void parser_prod__AGgMethid__visit_all(val* self, val* p0) {
4788 val* var_v /* var v: Visitor */;
4789 val* var /* : TGg */;
4790 var_v = p0;
4791 var = self->attrs[COLOR_parser_nodes__AGgMethid___n_gg].val; /* _n_gg on <self:AGgMethid> */
4792 if (var == NULL) {
4793 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_gg");
4794 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3764);
4795 show_backtrace(1);
4796 }
4797 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
4798 RET_LABEL:;
4799 }
4800 /* method parser_prod#AGgMethid#visit_all for (self: Object, Visitor) */
4801 void VIRTUAL_parser_prod__AGgMethid__visit_all(val* self, val* p0) {
4802 parser_prod__AGgMethid__visit_all(self, p0);
4803 RET_LABEL:;
4804 }
4805 /* method parser_prod#ABraMethid#empty_init for (self: ABraMethid) */
4806 void parser_prod__ABraMethid__empty_init(val* self) {
4807 RET_LABEL:;
4808 }
4809 /* method parser_prod#ABraMethid#empty_init for (self: Object) */
4810 void VIRTUAL_parser_prod__ABraMethid__empty_init(val* self) {
4811 parser_prod__ABraMethid__empty_init(self);
4812 RET_LABEL:;
4813 }
4814 /* method parser_prod#ABraMethid#init_abramethid for (self: ABraMethid, nullable TObra, nullable TCbra) */
4815 void parser_prod__ABraMethid__init_abramethid(val* self, val* p0, val* p1) {
4816 val* var_n_obra /* var n_obra: nullable TObra */;
4817 val* var_n_cbra /* var n_cbra: nullable TCbra */;
4818 var_n_obra = p0;
4819 var_n_cbra = p1;
4820 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__ABraMethid__empty_init]))(self) /* empty_init on <self:ABraMethid>*/;
4821 if (var_n_obra == NULL) {
4822 fprintf(stderr, "Runtime error: %s", "Cast failed");
4823 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3776);
4824 show_backtrace(1);
4825 }
4826 self->attrs[COLOR_parser_nodes__ABraMethid___n_obra].val = var_n_obra; /* _n_obra on <self:ABraMethid> */
4827 if (var_n_obra == NULL) {
4828 fprintf(stderr, "Runtime error: %s", "Reciever is null");
4829 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3777);
4830 show_backtrace(1);
4831 } else {
4832 ((void (*)(val*, val*))(var_n_obra->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_obra, self) /* parent= on <var_n_obra:nullable TObra>*/;
4833 }
4834 if (var_n_cbra == NULL) {
4835 fprintf(stderr, "Runtime error: %s", "Cast failed");
4836 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3778);
4837 show_backtrace(1);
4838 }
4839 self->attrs[COLOR_parser_nodes__ABraMethid___n_cbra].val = var_n_cbra; /* _n_cbra on <self:ABraMethid> */
4840 if (var_n_cbra == NULL) {
4841 fprintf(stderr, "Runtime error: %s", "Reciever is null");
4842 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3779);
4843 show_backtrace(1);
4844 } else {
4845 ((void (*)(val*, val*))(var_n_cbra->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_cbra, self) /* parent= on <var_n_cbra:nullable TCbra>*/;
4846 }
4847 RET_LABEL:;
4848 }
4849 /* method parser_prod#ABraMethid#init_abramethid for (self: Object, nullable TObra, nullable TCbra) */
4850 void VIRTUAL_parser_prod__ABraMethid__init_abramethid(val* self, val* p0, val* p1) {
4851 parser_prod__ABraMethid__init_abramethid(self, p0, p1);
4852 RET_LABEL:;
4853 }
4854 /* method parser_prod#ABraMethid#replace_child for (self: ABraMethid, ANode, nullable ANode) */
4855 void parser_prod__ABraMethid__replace_child(val* self, val* p0, val* p1) {
4856 val* var_old_child /* var old_child: ANode */;
4857 val* var_new_child /* var new_child: nullable ANode */;
4858 val* var /* : TObra */;
4859 short int var1 /* : Bool */;
4860 val* var2 /* : null */;
4861 short int var3 /* : Bool */;
4862 short int var4 /* : Bool */;
4863 int cltype;
4864 int idtype;
4865 val* var5 /* : TCbra */;
4866 short int var6 /* : Bool */;
4867 val* var7 /* : null */;
4868 short int var8 /* : Bool */;
4869 short int var9 /* : Bool */;
4870 int cltype10;
4871 int idtype11;
4872 var_old_child = p0;
4873 var_new_child = p1;
4874 var = self->attrs[COLOR_parser_nodes__ABraMethid___n_obra].val; /* _n_obra on <self:ABraMethid> */
4875 if (var == NULL) {
4876 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_obra");
4877 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3784);
4878 show_backtrace(1);
4879 }
4880 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:TObra>*/;
4881 if (var1){
4882 var2 = NULL;
4883 if (var_new_child == NULL) {
4884 var3 = 0; /* is null */
4885 } else {
4886 var3 = 1; /* arg is null and recv is not */
4887 }
4888 if (var3){
4889 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
4890 /* <var_new_child:nullable ANode(ANode)> isa TObra */
4891 cltype = type_parser_nodes__TObra.color;
4892 idtype = type_parser_nodes__TObra.id;
4893 if(cltype >= var_new_child->type->table_size) {
4894 var4 = 0;
4895 } else {
4896 var4 = var_new_child->type->type_table[cltype] == idtype;
4897 }
4898 if (!var4) {
4899 fprintf(stderr, "Runtime error: %s", "Assert failed");
4900 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3787);
4901 show_backtrace(1);
4902 }
4903 self->attrs[COLOR_parser_nodes__ABraMethid___n_obra].val = var_new_child; /* _n_obra on <self:ABraMethid> */
4904 } else {
4905 fprintf(stderr, "Runtime error: %s", "Aborted");
4906 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3790);
4907 show_backtrace(1);
4908 }
4909 goto RET_LABEL;
4910 } else {
4911 }
4912 var5 = self->attrs[COLOR_parser_nodes__ABraMethid___n_cbra].val; /* _n_cbra on <self:ABraMethid> */
4913 if (var5 == NULL) {
4914 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_cbra");
4915 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3794);
4916 show_backtrace(1);
4917 }
4918 var6 = ((short int (*)(val*, val*))(var5->class->vft[COLOR_kernel__Object___61d_61d]))(var5, var_old_child) /* == on <var5:TCbra>*/;
4919 if (var6){
4920 var7 = NULL;
4921 if (var_new_child == NULL) {
4922 var8 = 0; /* is null */
4923 } else {
4924 var8 = 1; /* arg is null and recv is not */
4925 }
4926 if (var8){
4927 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
4928 /* <var_new_child:nullable ANode(ANode)> isa TCbra */
4929 cltype10 = type_parser_nodes__TCbra.color;
4930 idtype11 = type_parser_nodes__TCbra.id;
4931 if(cltype10 >= var_new_child->type->table_size) {
4932 var9 = 0;
4933 } else {
4934 var9 = var_new_child->type->type_table[cltype10] == idtype11;
4935 }
4936 if (!var9) {
4937 fprintf(stderr, "Runtime error: %s", "Assert failed");
4938 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3797);
4939 show_backtrace(1);
4940 }
4941 self->attrs[COLOR_parser_nodes__ABraMethid___n_cbra].val = var_new_child; /* _n_cbra on <self:ABraMethid> */
4942 } else {
4943 fprintf(stderr, "Runtime error: %s", "Aborted");
4944 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3800);
4945 show_backtrace(1);
4946 }
4947 goto RET_LABEL;
4948 } else {
4949 }
4950 RET_LABEL:;
4951 }
4952 /* method parser_prod#ABraMethid#replace_child for (self: Object, ANode, nullable ANode) */
4953 void VIRTUAL_parser_prod__ABraMethid__replace_child(val* self, val* p0, val* p1) {
4954 parser_prod__ABraMethid__replace_child(self, p0, p1);
4955 RET_LABEL:;
4956 }
4957 /* method parser_prod#ABraMethid#n_obra= for (self: ABraMethid, TObra) */
4958 void parser_prod__ABraMethid__n_obra_61d(val* self, val* p0) {
4959 val* var_node /* var node: TObra */;
4960 var_node = p0;
4961 self->attrs[COLOR_parser_nodes__ABraMethid___n_obra].val = var_node; /* _n_obra on <self:ABraMethid> */
4962 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TObra>*/;
4963 RET_LABEL:;
4964 }
4965 /* method parser_prod#ABraMethid#n_obra= for (self: Object, TObra) */
4966 void VIRTUAL_parser_prod__ABraMethid__n_obra_61d(val* self, val* p0) {
4967 parser_prod__ABraMethid__n_obra_61d(self, p0);
4968 RET_LABEL:;
4969 }
4970 /* method parser_prod#ABraMethid#n_cbra= for (self: ABraMethid, TCbra) */
4971 void parser_prod__ABraMethid__n_cbra_61d(val* self, val* p0) {
4972 val* var_node /* var node: TCbra */;
4973 var_node = p0;
4974 self->attrs[COLOR_parser_nodes__ABraMethid___n_cbra].val = var_node; /* _n_cbra on <self:ABraMethid> */
4975 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TCbra>*/;
4976 RET_LABEL:;
4977 }
4978 /* method parser_prod#ABraMethid#n_cbra= for (self: Object, TCbra) */
4979 void VIRTUAL_parser_prod__ABraMethid__n_cbra_61d(val* self, val* p0) {
4980 parser_prod__ABraMethid__n_cbra_61d(self, p0);
4981 RET_LABEL:;
4982 }
4983 /* method parser_prod#ABraMethid#visit_all for (self: ABraMethid, Visitor) */
4984 void parser_prod__ABraMethid__visit_all(val* self, val* p0) {
4985 val* var_v /* var v: Visitor */;
4986 val* var /* : TObra */;
4987 val* var1 /* : TCbra */;
4988 var_v = p0;
4989 var = self->attrs[COLOR_parser_nodes__ABraMethid___n_obra].val; /* _n_obra on <self:ABraMethid> */
4990 if (var == NULL) {
4991 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_obra");
4992 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3820);
4993 show_backtrace(1);
4994 }
4995 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
4996 var1 = self->attrs[COLOR_parser_nodes__ABraMethid___n_cbra].val; /* _n_cbra on <self:ABraMethid> */
4997 if (var1 == NULL) {
4998 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_cbra");
4999 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3821);
5000 show_backtrace(1);
5001 }
5002 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var1) /* enter_visit on <var_v:Visitor>*/;
5003 RET_LABEL:;
5004 }
5005 /* method parser_prod#ABraMethid#visit_all for (self: Object, Visitor) */
5006 void VIRTUAL_parser_prod__ABraMethid__visit_all(val* self, val* p0) {
5007 parser_prod__ABraMethid__visit_all(self, p0);
5008 RET_LABEL:;
5009 }
5010 /* method parser_prod#AStarshipMethid#empty_init for (self: AStarshipMethid) */
5011 void parser_prod__AStarshipMethid__empty_init(val* self) {
5012 RET_LABEL:;
5013 }
5014 /* method parser_prod#AStarshipMethid#empty_init for (self: Object) */
5015 void VIRTUAL_parser_prod__AStarshipMethid__empty_init(val* self) {
5016 parser_prod__AStarshipMethid__empty_init(self);
5017 RET_LABEL:;
5018 }
5019 /* method parser_prod#AStarshipMethid#init_astarshipmethid for (self: AStarshipMethid, nullable TStarship) */
5020 void parser_prod__AStarshipMethid__init_astarshipmethid(val* self, val* p0) {
5021 val* var_n_starship /* var n_starship: nullable TStarship */;
5022 var_n_starship = p0;
5023 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__AStarshipMethid__empty_init]))(self) /* empty_init on <self:AStarshipMethid>*/;
5024 if (var_n_starship == NULL) {
5025 fprintf(stderr, "Runtime error: %s", "Cast failed");
5026 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3832);
5027 show_backtrace(1);
5028 }
5029 self->attrs[COLOR_parser_nodes__AStarshipMethid___n_starship].val = var_n_starship; /* _n_starship on <self:AStarshipMethid> */
5030 if (var_n_starship == NULL) {
5031 fprintf(stderr, "Runtime error: %s", "Reciever is null");
5032 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3833);
5033 show_backtrace(1);
5034 } else {
5035 ((void (*)(val*, val*))(var_n_starship->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_starship, self) /* parent= on <var_n_starship:nullable TStarship>*/;
5036 }
5037 RET_LABEL:;
5038 }
5039 /* method parser_prod#AStarshipMethid#init_astarshipmethid for (self: Object, nullable TStarship) */
5040 void VIRTUAL_parser_prod__AStarshipMethid__init_astarshipmethid(val* self, val* p0) {
5041 parser_prod__AStarshipMethid__init_astarshipmethid(self, p0);
5042 RET_LABEL:;
5043 }
5044 /* method parser_prod#AStarshipMethid#replace_child for (self: AStarshipMethid, ANode, nullable ANode) */
5045 void parser_prod__AStarshipMethid__replace_child(val* self, val* p0, val* p1) {
5046 val* var_old_child /* var old_child: ANode */;
5047 val* var_new_child /* var new_child: nullable ANode */;
5048 val* var /* : TStarship */;
5049 short int var1 /* : Bool */;
5050 val* var2 /* : null */;
5051 short int var3 /* : Bool */;
5052 short int var4 /* : Bool */;
5053 int cltype;
5054 int idtype;
5055 var_old_child = p0;
5056 var_new_child = p1;
5057 var = self->attrs[COLOR_parser_nodes__AStarshipMethid___n_starship].val; /* _n_starship on <self:AStarshipMethid> */
5058 if (var == NULL) {
5059 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_starship");
5060 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3838);
5061 show_backtrace(1);
5062 }
5063 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:TStarship>*/;
5064 if (var1){
5065 var2 = NULL;
5066 if (var_new_child == NULL) {
5067 var3 = 0; /* is null */
5068 } else {
5069 var3 = 1; /* arg is null and recv is not */
5070 }
5071 if (var3){
5072 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
5073 /* <var_new_child:nullable ANode(ANode)> isa TStarship */
5074 cltype = type_parser_nodes__TStarship.color;
5075 idtype = type_parser_nodes__TStarship.id;
5076 if(cltype >= var_new_child->type->table_size) {
5077 var4 = 0;
5078 } else {
5079 var4 = var_new_child->type->type_table[cltype] == idtype;
5080 }
5081 if (!var4) {
5082 fprintf(stderr, "Runtime error: %s", "Assert failed");
5083 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3841);
5084 show_backtrace(1);
5085 }
5086 self->attrs[COLOR_parser_nodes__AStarshipMethid___n_starship].val = var_new_child; /* _n_starship on <self:AStarshipMethid> */
5087 } else {
5088 fprintf(stderr, "Runtime error: %s", "Aborted");
5089 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3844);
5090 show_backtrace(1);
5091 }
5092 goto RET_LABEL;
5093 } else {
5094 }
5095 RET_LABEL:;
5096 }
5097 /* method parser_prod#AStarshipMethid#replace_child for (self: Object, ANode, nullable ANode) */
5098 void VIRTUAL_parser_prod__AStarshipMethid__replace_child(val* self, val* p0, val* p1) {
5099 parser_prod__AStarshipMethid__replace_child(self, p0, p1);
5100 RET_LABEL:;
5101 }
5102 /* method parser_prod#AStarshipMethid#n_starship= for (self: AStarshipMethid, TStarship) */
5103 void parser_prod__AStarshipMethid__n_starship_61d(val* self, val* p0) {
5104 val* var_node /* var node: TStarship */;
5105 var_node = p0;
5106 self->attrs[COLOR_parser_nodes__AStarshipMethid___n_starship].val = var_node; /* _n_starship on <self:AStarshipMethid> */
5107 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TStarship>*/;
5108 RET_LABEL:;
5109 }
5110 /* method parser_prod#AStarshipMethid#n_starship= for (self: Object, TStarship) */
5111 void VIRTUAL_parser_prod__AStarshipMethid__n_starship_61d(val* self, val* p0) {
5112 parser_prod__AStarshipMethid__n_starship_61d(self, p0);
5113 RET_LABEL:;
5114 }
5115 /* method parser_prod#AStarshipMethid#visit_all for (self: AStarshipMethid, Visitor) */
5116 void parser_prod__AStarshipMethid__visit_all(val* self, val* p0) {
5117 val* var_v /* var v: Visitor */;
5118 val* var /* : TStarship */;
5119 var_v = p0;
5120 var = self->attrs[COLOR_parser_nodes__AStarshipMethid___n_starship].val; /* _n_starship on <self:AStarshipMethid> */
5121 if (var == NULL) {
5122 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_starship");
5123 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3859);
5124 show_backtrace(1);
5125 }
5126 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
5127 RET_LABEL:;
5128 }
5129 /* method parser_prod#AStarshipMethid#visit_all for (self: Object, Visitor) */
5130 void VIRTUAL_parser_prod__AStarshipMethid__visit_all(val* self, val* p0) {
5131 parser_prod__AStarshipMethid__visit_all(self, p0);
5132 RET_LABEL:;
5133 }
5134 /* method parser_prod#AAssignMethid#empty_init for (self: AAssignMethid) */
5135 void parser_prod__AAssignMethid__empty_init(val* self) {
5136 RET_LABEL:;
5137 }
5138 /* method parser_prod#AAssignMethid#empty_init for (self: Object) */
5139 void VIRTUAL_parser_prod__AAssignMethid__empty_init(val* self) {
5140 parser_prod__AAssignMethid__empty_init(self);
5141 RET_LABEL:;
5142 }
5143 /* method parser_prod#AAssignMethid#init_aassignmethid for (self: AAssignMethid, nullable TId, nullable TAssign) */
5144 void parser_prod__AAssignMethid__init_aassignmethid(val* self, val* p0, val* p1) {
5145 val* var_n_id /* var n_id: nullable TId */;
5146 val* var_n_assign /* var n_assign: nullable TAssign */;
5147 var_n_id = p0;
5148 var_n_assign = p1;
5149 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__AAssignMethid__empty_init]))(self) /* empty_init on <self:AAssignMethid>*/;
5150 if (var_n_id == NULL) {
5151 fprintf(stderr, "Runtime error: %s", "Cast failed");
5152 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3871);
5153 show_backtrace(1);
5154 }
5155 self->attrs[COLOR_parser_nodes__AAssignMethid___n_id].val = var_n_id; /* _n_id on <self:AAssignMethid> */
5156 if (var_n_id == NULL) {
5157 fprintf(stderr, "Runtime error: %s", "Reciever is null");
5158 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3872);
5159 show_backtrace(1);
5160 } else {
5161 ((void (*)(val*, val*))(var_n_id->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_id, self) /* parent= on <var_n_id:nullable TId>*/;
5162 }
5163 if (var_n_assign == NULL) {
5164 fprintf(stderr, "Runtime error: %s", "Cast failed");
5165 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3873);
5166 show_backtrace(1);
5167 }
5168 self->attrs[COLOR_parser_nodes__AAssignMethid___n_assign].val = var_n_assign; /* _n_assign on <self:AAssignMethid> */
5169 if (var_n_assign == NULL) {
5170 fprintf(stderr, "Runtime error: %s", "Reciever is null");
5171 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3874);
5172 show_backtrace(1);
5173 } else {
5174 ((void (*)(val*, val*))(var_n_assign->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_assign, self) /* parent= on <var_n_assign:nullable TAssign>*/;
5175 }
5176 RET_LABEL:;
5177 }
5178 /* method parser_prod#AAssignMethid#init_aassignmethid for (self: Object, nullable TId, nullable TAssign) */
5179 void VIRTUAL_parser_prod__AAssignMethid__init_aassignmethid(val* self, val* p0, val* p1) {
5180 parser_prod__AAssignMethid__init_aassignmethid(self, p0, p1);
5181 RET_LABEL:;
5182 }
5183 /* method parser_prod#AAssignMethid#replace_child for (self: AAssignMethid, ANode, nullable ANode) */
5184 void parser_prod__AAssignMethid__replace_child(val* self, val* p0, val* p1) {
5185 val* var_old_child /* var old_child: ANode */;
5186 val* var_new_child /* var new_child: nullable ANode */;
5187 val* var /* : TId */;
5188 short int var1 /* : Bool */;
5189 val* var2 /* : null */;
5190 short int var3 /* : Bool */;
5191 short int var4 /* : Bool */;
5192 int cltype;
5193 int idtype;
5194 val* var5 /* : TAssign */;
5195 short int var6 /* : Bool */;
5196 val* var7 /* : null */;
5197 short int var8 /* : Bool */;
5198 short int var9 /* : Bool */;
5199 int cltype10;
5200 int idtype11;
5201 var_old_child = p0;
5202 var_new_child = p1;
5203 var = self->attrs[COLOR_parser_nodes__AAssignMethid___n_id].val; /* _n_id on <self:AAssignMethid> */
5204 if (var == NULL) {
5205 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_id");
5206 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3879);
5207 show_backtrace(1);
5208 }
5209 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:TId>*/;
5210 if (var1){
5211 var2 = NULL;
5212 if (var_new_child == NULL) {
5213 var3 = 0; /* is null */
5214 } else {
5215 var3 = 1; /* arg is null and recv is not */
5216 }
5217 if (var3){
5218 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
5219 /* <var_new_child:nullable ANode(ANode)> isa TId */
5220 cltype = type_parser_nodes__TId.color;
5221 idtype = type_parser_nodes__TId.id;
5222 if(cltype >= var_new_child->type->table_size) {
5223 var4 = 0;
5224 } else {
5225 var4 = var_new_child->type->type_table[cltype] == idtype;
5226 }
5227 if (!var4) {
5228 fprintf(stderr, "Runtime error: %s", "Assert failed");
5229 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3882);
5230 show_backtrace(1);
5231 }
5232 self->attrs[COLOR_parser_nodes__AAssignMethid___n_id].val = var_new_child; /* _n_id on <self:AAssignMethid> */
5233 } else {
5234 fprintf(stderr, "Runtime error: %s", "Aborted");
5235 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3885);
5236 show_backtrace(1);
5237 }
5238 goto RET_LABEL;
5239 } else {
5240 }
5241 var5 = self->attrs[COLOR_parser_nodes__AAssignMethid___n_assign].val; /* _n_assign on <self:AAssignMethid> */
5242 if (var5 == NULL) {
5243 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_assign");
5244 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3889);
5245 show_backtrace(1);
5246 }
5247 var6 = ((short int (*)(val*, val*))(var5->class->vft[COLOR_kernel__Object___61d_61d]))(var5, var_old_child) /* == on <var5:TAssign>*/;
5248 if (var6){
5249 var7 = NULL;
5250 if (var_new_child == NULL) {
5251 var8 = 0; /* is null */
5252 } else {
5253 var8 = 1; /* arg is null and recv is not */
5254 }
5255 if (var8){
5256 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
5257 /* <var_new_child:nullable ANode(ANode)> isa TAssign */
5258 cltype10 = type_parser_nodes__TAssign.color;
5259 idtype11 = type_parser_nodes__TAssign.id;
5260 if(cltype10 >= var_new_child->type->table_size) {
5261 var9 = 0;
5262 } else {
5263 var9 = var_new_child->type->type_table[cltype10] == idtype11;
5264 }
5265 if (!var9) {
5266 fprintf(stderr, "Runtime error: %s", "Assert failed");
5267 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3892);
5268 show_backtrace(1);
5269 }
5270 self->attrs[COLOR_parser_nodes__AAssignMethid___n_assign].val = var_new_child; /* _n_assign on <self:AAssignMethid> */
5271 } else {
5272 fprintf(stderr, "Runtime error: %s", "Aborted");
5273 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3895);
5274 show_backtrace(1);
5275 }
5276 goto RET_LABEL;
5277 } else {
5278 }
5279 RET_LABEL:;
5280 }
5281 /* method parser_prod#AAssignMethid#replace_child for (self: Object, ANode, nullable ANode) */
5282 void VIRTUAL_parser_prod__AAssignMethid__replace_child(val* self, val* p0, val* p1) {
5283 parser_prod__AAssignMethid__replace_child(self, p0, p1);
5284 RET_LABEL:;
5285 }
5286 /* method parser_prod#AAssignMethid#n_id= for (self: AAssignMethid, TId) */
5287 void parser_prod__AAssignMethid__n_id_61d(val* self, val* p0) {
5288 val* var_node /* var node: TId */;
5289 var_node = p0;
5290 self->attrs[COLOR_parser_nodes__AAssignMethid___n_id].val = var_node; /* _n_id on <self:AAssignMethid> */
5291 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TId>*/;
5292 RET_LABEL:;
5293 }
5294 /* method parser_prod#AAssignMethid#n_id= for (self: Object, TId) */
5295 void VIRTUAL_parser_prod__AAssignMethid__n_id_61d(val* self, val* p0) {
5296 parser_prod__AAssignMethid__n_id_61d(self, p0);
5297 RET_LABEL:;
5298 }
5299 /* method parser_prod#AAssignMethid#n_assign= for (self: AAssignMethid, TAssign) */
5300 void parser_prod__AAssignMethid__n_assign_61d(val* self, val* p0) {
5301 val* var_node /* var node: TAssign */;
5302 var_node = p0;
5303 self->attrs[COLOR_parser_nodes__AAssignMethid___n_assign].val = var_node; /* _n_assign on <self:AAssignMethid> */
5304 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TAssign>*/;
5305 RET_LABEL:;
5306 }
5307 /* method parser_prod#AAssignMethid#n_assign= for (self: Object, TAssign) */
5308 void VIRTUAL_parser_prod__AAssignMethid__n_assign_61d(val* self, val* p0) {
5309 parser_prod__AAssignMethid__n_assign_61d(self, p0);
5310 RET_LABEL:;
5311 }
5312 /* method parser_prod#AAssignMethid#visit_all for (self: AAssignMethid, Visitor) */
5313 void parser_prod__AAssignMethid__visit_all(val* self, val* p0) {
5314 val* var_v /* var v: Visitor */;
5315 val* var /* : TId */;
5316 val* var1 /* : TAssign */;
5317 var_v = p0;
5318 var = self->attrs[COLOR_parser_nodes__AAssignMethid___n_id].val; /* _n_id on <self:AAssignMethid> */
5319 if (var == NULL) {
5320 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_id");
5321 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3915);
5322 show_backtrace(1);
5323 }
5324 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
5325 var1 = self->attrs[COLOR_parser_nodes__AAssignMethid___n_assign].val; /* _n_assign on <self:AAssignMethid> */
5326 if (var1 == NULL) {
5327 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_assign");
5328 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3916);
5329 show_backtrace(1);
5330 }
5331 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var1) /* enter_visit on <var_v:Visitor>*/;
5332 RET_LABEL:;
5333 }
5334 /* method parser_prod#AAssignMethid#visit_all for (self: Object, Visitor) */
5335 void VIRTUAL_parser_prod__AAssignMethid__visit_all(val* self, val* p0) {
5336 parser_prod__AAssignMethid__visit_all(self, p0);
5337 RET_LABEL:;
5338 }
5339 /* method parser_prod#ABraassignMethid#empty_init for (self: ABraassignMethid) */
5340 void parser_prod__ABraassignMethid__empty_init(val* self) {
5341 RET_LABEL:;
5342 }
5343 /* method parser_prod#ABraassignMethid#empty_init for (self: Object) */
5344 void VIRTUAL_parser_prod__ABraassignMethid__empty_init(val* self) {
5345 parser_prod__ABraassignMethid__empty_init(self);
5346 RET_LABEL:;
5347 }
5348 /* method parser_prod#ABraassignMethid#init_abraassignmethid for (self: ABraassignMethid, nullable TObra, nullable TCbra, nullable TAssign) */
5349 void parser_prod__ABraassignMethid__init_abraassignmethid(val* self, val* p0, val* p1, val* p2) {
5350 val* var_n_obra /* var n_obra: nullable TObra */;
5351 val* var_n_cbra /* var n_cbra: nullable TCbra */;
5352 val* var_n_assign /* var n_assign: nullable TAssign */;
5353 var_n_obra = p0;
5354 var_n_cbra = p1;
5355 var_n_assign = p2;
5356 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__ABraassignMethid__empty_init]))(self) /* empty_init on <self:ABraassignMethid>*/;
5357 if (var_n_obra == NULL) {
5358 fprintf(stderr, "Runtime error: %s", "Cast failed");
5359 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3929);
5360 show_backtrace(1);
5361 }
5362 self->attrs[COLOR_parser_nodes__ABraassignMethid___n_obra].val = var_n_obra; /* _n_obra on <self:ABraassignMethid> */
5363 if (var_n_obra == NULL) {
5364 fprintf(stderr, "Runtime error: %s", "Reciever is null");
5365 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3930);
5366 show_backtrace(1);
5367 } else {
5368 ((void (*)(val*, val*))(var_n_obra->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_obra, self) /* parent= on <var_n_obra:nullable TObra>*/;
5369 }
5370 if (var_n_cbra == NULL) {
5371 fprintf(stderr, "Runtime error: %s", "Cast failed");
5372 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3931);
5373 show_backtrace(1);
5374 }
5375 self->attrs[COLOR_parser_nodes__ABraassignMethid___n_cbra].val = var_n_cbra; /* _n_cbra on <self:ABraassignMethid> */
5376 if (var_n_cbra == NULL) {
5377 fprintf(stderr, "Runtime error: %s", "Reciever is null");
5378 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3932);
5379 show_backtrace(1);
5380 } else {
5381 ((void (*)(val*, val*))(var_n_cbra->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_cbra, self) /* parent= on <var_n_cbra:nullable TCbra>*/;
5382 }
5383 if (var_n_assign == NULL) {
5384 fprintf(stderr, "Runtime error: %s", "Cast failed");
5385 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3933);
5386 show_backtrace(1);
5387 }
5388 self->attrs[COLOR_parser_nodes__ABraassignMethid___n_assign].val = var_n_assign; /* _n_assign on <self:ABraassignMethid> */
5389 if (var_n_assign == NULL) {
5390 fprintf(stderr, "Runtime error: %s", "Reciever is null");
5391 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3934);
5392 show_backtrace(1);
5393 } else {
5394 ((void (*)(val*, val*))(var_n_assign->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_assign, self) /* parent= on <var_n_assign:nullable TAssign>*/;
5395 }
5396 RET_LABEL:;
5397 }
5398 /* method parser_prod#ABraassignMethid#init_abraassignmethid for (self: Object, nullable TObra, nullable TCbra, nullable TAssign) */
5399 void VIRTUAL_parser_prod__ABraassignMethid__init_abraassignmethid(val* self, val* p0, val* p1, val* p2) {
5400 parser_prod__ABraassignMethid__init_abraassignmethid(self, p0, p1, p2);
5401 RET_LABEL:;
5402 }
5403 /* method parser_prod#ABraassignMethid#replace_child for (self: ABraassignMethid, ANode, nullable ANode) */
5404 void parser_prod__ABraassignMethid__replace_child(val* self, val* p0, val* p1) {
5405 val* var_old_child /* var old_child: ANode */;
5406 val* var_new_child /* var new_child: nullable ANode */;
5407 val* var /* : TObra */;
5408 short int var1 /* : Bool */;
5409 val* var2 /* : null */;
5410 short int var3 /* : Bool */;
5411 short int var4 /* : Bool */;
5412 int cltype;
5413 int idtype;
5414 val* var5 /* : TCbra */;
5415 short int var6 /* : Bool */;
5416 val* var7 /* : null */;
5417 short int var8 /* : Bool */;
5418 short int var9 /* : Bool */;
5419 int cltype10;
5420 int idtype11;
5421 val* var12 /* : TAssign */;
5422 short int var13 /* : Bool */;
5423 val* var14 /* : null */;
5424 short int var15 /* : Bool */;
5425 short int var16 /* : Bool */;
5426 int cltype17;
5427 int idtype18;
5428 var_old_child = p0;
5429 var_new_child = p1;
5430 var = self->attrs[COLOR_parser_nodes__ABraassignMethid___n_obra].val; /* _n_obra on <self:ABraassignMethid> */
5431 if (var == NULL) {
5432 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_obra");
5433 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3939);
5434 show_backtrace(1);
5435 }
5436 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:TObra>*/;
5437 if (var1){
5438 var2 = NULL;
5439 if (var_new_child == NULL) {
5440 var3 = 0; /* is null */
5441 } else {
5442 var3 = 1; /* arg is null and recv is not */
5443 }
5444 if (var3){
5445 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
5446 /* <var_new_child:nullable ANode(ANode)> isa TObra */
5447 cltype = type_parser_nodes__TObra.color;
5448 idtype = type_parser_nodes__TObra.id;
5449 if(cltype >= var_new_child->type->table_size) {
5450 var4 = 0;
5451 } else {
5452 var4 = var_new_child->type->type_table[cltype] == idtype;
5453 }
5454 if (!var4) {
5455 fprintf(stderr, "Runtime error: %s", "Assert failed");
5456 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3942);
5457 show_backtrace(1);
5458 }
5459 self->attrs[COLOR_parser_nodes__ABraassignMethid___n_obra].val = var_new_child; /* _n_obra on <self:ABraassignMethid> */
5460 } else {
5461 fprintf(stderr, "Runtime error: %s", "Aborted");
5462 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3945);
5463 show_backtrace(1);
5464 }
5465 goto RET_LABEL;
5466 } else {
5467 }
5468 var5 = self->attrs[COLOR_parser_nodes__ABraassignMethid___n_cbra].val; /* _n_cbra on <self:ABraassignMethid> */
5469 if (var5 == NULL) {
5470 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_cbra");
5471 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3949);
5472 show_backtrace(1);
5473 }
5474 var6 = ((short int (*)(val*, val*))(var5->class->vft[COLOR_kernel__Object___61d_61d]))(var5, var_old_child) /* == on <var5:TCbra>*/;
5475 if (var6){
5476 var7 = NULL;
5477 if (var_new_child == NULL) {
5478 var8 = 0; /* is null */
5479 } else {
5480 var8 = 1; /* arg is null and recv is not */
5481 }
5482 if (var8){
5483 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
5484 /* <var_new_child:nullable ANode(ANode)> isa TCbra */
5485 cltype10 = type_parser_nodes__TCbra.color;
5486 idtype11 = type_parser_nodes__TCbra.id;
5487 if(cltype10 >= var_new_child->type->table_size) {
5488 var9 = 0;
5489 } else {
5490 var9 = var_new_child->type->type_table[cltype10] == idtype11;
5491 }
5492 if (!var9) {
5493 fprintf(stderr, "Runtime error: %s", "Assert failed");
5494 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3952);
5495 show_backtrace(1);
5496 }
5497 self->attrs[COLOR_parser_nodes__ABraassignMethid___n_cbra].val = var_new_child; /* _n_cbra on <self:ABraassignMethid> */
5498 } else {
5499 fprintf(stderr, "Runtime error: %s", "Aborted");
5500 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3955);
5501 show_backtrace(1);
5502 }
5503 goto RET_LABEL;
5504 } else {
5505 }
5506 var12 = self->attrs[COLOR_parser_nodes__ABraassignMethid___n_assign].val; /* _n_assign on <self:ABraassignMethid> */
5507 if (var12 == NULL) {
5508 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_assign");
5509 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3959);
5510 show_backtrace(1);
5511 }
5512 var13 = ((short int (*)(val*, val*))(var12->class->vft[COLOR_kernel__Object___61d_61d]))(var12, var_old_child) /* == on <var12:TAssign>*/;
5513 if (var13){
5514 var14 = NULL;
5515 if (var_new_child == NULL) {
5516 var15 = 0; /* is null */
5517 } else {
5518 var15 = 1; /* arg is null and recv is not */
5519 }
5520 if (var15){
5521 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
5522 /* <var_new_child:nullable ANode(ANode)> isa TAssign */
5523 cltype17 = type_parser_nodes__TAssign.color;
5524 idtype18 = type_parser_nodes__TAssign.id;
5525 if(cltype17 >= var_new_child->type->table_size) {
5526 var16 = 0;
5527 } else {
5528 var16 = var_new_child->type->type_table[cltype17] == idtype18;
5529 }
5530 if (!var16) {
5531 fprintf(stderr, "Runtime error: %s", "Assert failed");
5532 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3962);
5533 show_backtrace(1);
5534 }
5535 self->attrs[COLOR_parser_nodes__ABraassignMethid___n_assign].val = var_new_child; /* _n_assign on <self:ABraassignMethid> */
5536 } else {
5537 fprintf(stderr, "Runtime error: %s", "Aborted");
5538 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3965);
5539 show_backtrace(1);
5540 }
5541 goto RET_LABEL;
5542 } else {
5543 }
5544 RET_LABEL:;
5545 }
5546 /* method parser_prod#ABraassignMethid#replace_child for (self: Object, ANode, nullable ANode) */
5547 void VIRTUAL_parser_prod__ABraassignMethid__replace_child(val* self, val* p0, val* p1) {
5548 parser_prod__ABraassignMethid__replace_child(self, p0, p1);
5549 RET_LABEL:;
5550 }
5551 /* method parser_prod#ABraassignMethid#n_obra= for (self: ABraassignMethid, TObra) */
5552 void parser_prod__ABraassignMethid__n_obra_61d(val* self, val* p0) {
5553 val* var_node /* var node: TObra */;
5554 var_node = p0;
5555 self->attrs[COLOR_parser_nodes__ABraassignMethid___n_obra].val = var_node; /* _n_obra on <self:ABraassignMethid> */
5556 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TObra>*/;
5557 RET_LABEL:;
5558 }
5559 /* method parser_prod#ABraassignMethid#n_obra= for (self: Object, TObra) */
5560 void VIRTUAL_parser_prod__ABraassignMethid__n_obra_61d(val* self, val* p0) {
5561 parser_prod__ABraassignMethid__n_obra_61d(self, p0);
5562 RET_LABEL:;
5563 }
5564 /* method parser_prod#ABraassignMethid#n_cbra= for (self: ABraassignMethid, TCbra) */
5565 void parser_prod__ABraassignMethid__n_cbra_61d(val* self, val* p0) {
5566 val* var_node /* var node: TCbra */;
5567 var_node = p0;
5568 self->attrs[COLOR_parser_nodes__ABraassignMethid___n_cbra].val = var_node; /* _n_cbra on <self:ABraassignMethid> */
5569 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TCbra>*/;
5570 RET_LABEL:;
5571 }
5572 /* method parser_prod#ABraassignMethid#n_cbra= for (self: Object, TCbra) */
5573 void VIRTUAL_parser_prod__ABraassignMethid__n_cbra_61d(val* self, val* p0) {
5574 parser_prod__ABraassignMethid__n_cbra_61d(self, p0);
5575 RET_LABEL:;
5576 }
5577 /* method parser_prod#ABraassignMethid#n_assign= for (self: ABraassignMethid, TAssign) */
5578 void parser_prod__ABraassignMethid__n_assign_61d(val* self, val* p0) {
5579 val* var_node /* var node: TAssign */;
5580 var_node = p0;
5581 self->attrs[COLOR_parser_nodes__ABraassignMethid___n_assign].val = var_node; /* _n_assign on <self:ABraassignMethid> */
5582 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TAssign>*/;
5583 RET_LABEL:;
5584 }
5585 /* method parser_prod#ABraassignMethid#n_assign= for (self: Object, TAssign) */
5586 void VIRTUAL_parser_prod__ABraassignMethid__n_assign_61d(val* self, val* p0) {
5587 parser_prod__ABraassignMethid__n_assign_61d(self, p0);
5588 RET_LABEL:;
5589 }
5590 /* method parser_prod#ABraassignMethid#visit_all for (self: ABraassignMethid, Visitor) */
5591 void parser_prod__ABraassignMethid__visit_all(val* self, val* p0) {
5592 val* var_v /* var v: Visitor */;
5593 val* var /* : TObra */;
5594 val* var1 /* : TCbra */;
5595 val* var2 /* : TAssign */;
5596 var_v = p0;
5597 var = self->attrs[COLOR_parser_nodes__ABraassignMethid___n_obra].val; /* _n_obra on <self:ABraassignMethid> */
5598 if (var == NULL) {
5599 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_obra");
5600 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3990);
5601 show_backtrace(1);
5602 }
5603 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
5604 var1 = self->attrs[COLOR_parser_nodes__ABraassignMethid___n_cbra].val; /* _n_cbra on <self:ABraassignMethid> */
5605 if (var1 == NULL) {
5606 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_cbra");
5607 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3991);
5608 show_backtrace(1);
5609 }
5610 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var1) /* enter_visit on <var_v:Visitor>*/;
5611 var2 = self->attrs[COLOR_parser_nodes__ABraassignMethid___n_assign].val; /* _n_assign on <self:ABraassignMethid> */
5612 if (var2 == NULL) {
5613 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_assign");
5614 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 3992);
5615 show_backtrace(1);
5616 }
5617 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var2) /* enter_visit on <var_v:Visitor>*/;
5618 RET_LABEL:;
5619 }
5620 /* method parser_prod#ABraassignMethid#visit_all for (self: Object, Visitor) */
5621 void VIRTUAL_parser_prod__ABraassignMethid__visit_all(val* self, val* p0) {
5622 parser_prod__ABraassignMethid__visit_all(self, p0);
5623 RET_LABEL:;
5624 }
5625 /* method parser_prod#ASignature#empty_init for (self: ASignature) */
5626 void parser_prod__ASignature__empty_init(val* self) {
5627 RET_LABEL:;
5628 }
5629 /* method parser_prod#ASignature#empty_init for (self: Object) */
5630 void VIRTUAL_parser_prod__ASignature__empty_init(val* self) {
5631 parser_prod__ASignature__empty_init(self);
5632 RET_LABEL:;
5633 }
5634 /* method parser_prod#ASignature#init_asignature for (self: ASignature, nullable TOpar, Collection[Object], nullable TCpar, nullable AType) */
5635 void parser_prod__ASignature__init_asignature(val* self, val* p0, val* p1, val* p2, val* p3) {
5636 val* var_n_opar /* var n_opar: nullable TOpar */;
5637 val* var_n_params /* var n_params: Collection[Object] */;
5638 val* var_n_cpar /* var n_cpar: nullable TCpar */;
5639 val* var_n_type /* var n_type: nullable AType */;
5640 val* var /* : null */;
5641 short int var1 /* : Bool */;
5642 val* var2 /* : Iterator[nullable Object] */;
5643 short int var3 /* : Bool */;
5644 val* var4 /* : nullable Object */;
5645 val* var_n /* var n: Object */;
5646 short int var5 /* : Bool */;
5647 int cltype;
5648 int idtype;
5649 val* var6 /* : ANodes[AParam] */;
5650 val* var7 /* : null */;
5651 short int var8 /* : Bool */;
5652 val* var9 /* : null */;
5653 short int var10 /* : Bool */;
5654 var_n_opar = p0;
5655 var_n_params = p1;
5656 var_n_cpar = p2;
5657 var_n_type = p3;
5658 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__ASignature__empty_init]))(self) /* empty_init on <self:ASignature>*/;
5659 self->attrs[COLOR_parser_nodes__ASignature___n_opar].val = var_n_opar; /* _n_opar on <self:ASignature> */
5660 var = NULL;
5661 if (var_n_opar == NULL) {
5662 var1 = 0; /* is null */
5663 } else {
5664 var1 = 1; /* arg is null and recv is not */
5665 }
5666 if (var1){
5667 ((void (*)(val*, val*))(var_n_opar->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_opar, self) /* parent= on <var_n_opar:nullable TOpar(TOpar)>*/;
5668 } else {
5669 }
5670 var2 = ((val* (*)(val*))(var_n_params->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_n_params) /* iterator on <var_n_params:Collection[Object]>*/;
5671 for(;;) {
5672 var3 = ((short int (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var2) /* is_ok on <var2:Iterator[nullable Object]>*/;
5673 if(!var3) break;
5674 var4 = ((val* (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__item]))(var2) /* item on <var2:Iterator[nullable Object]>*/;
5675 var_n = var4;
5676 /* <var_n:Object> isa AParam */
5677 cltype = type_parser_nodes__AParam.color;
5678 idtype = type_parser_nodes__AParam.id;
5679 if(cltype >= var_n->type->table_size) {
5680 var5 = 0;
5681 } else {
5682 var5 = var_n->type->type_table[cltype] == idtype;
5683 }
5684 if (!var5) {
5685 fprintf(stderr, "Runtime error: %s", "Assert failed");
5686 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4011);
5687 show_backtrace(1);
5688 }
5689 var6 = self->attrs[COLOR_parser_nodes__ASignature___n_params].val; /* _n_params on <self:ASignature> */
5690 if (var6 == NULL) {
5691 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_params");
5692 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4012);
5693 show_backtrace(1);
5694 }
5695 ((void (*)(val*, val*))(var6->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var6, var_n) /* add on <var6:ANodes[AParam]>*/;
5696 ((void (*)(val*, val*))(var_n->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n, self) /* parent= on <var_n:Object(AParam)>*/;
5697 CONTINUE_label: (void)0;
5698 ((void (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__next]))(var2) /* next on <var2:Iterator[nullable Object]>*/;
5699 }
5700 BREAK_label: (void)0;
5701 self->attrs[COLOR_parser_nodes__ASignature___n_cpar].val = var_n_cpar; /* _n_cpar on <self:ASignature> */
5702 var7 = NULL;
5703 if (var_n_cpar == NULL) {
5704 var8 = 0; /* is null */
5705 } else {
5706 var8 = 1; /* arg is null and recv is not */
5707 }
5708 if (var8){
5709 ((void (*)(val*, val*))(var_n_cpar->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_cpar, self) /* parent= on <var_n_cpar:nullable TCpar(TCpar)>*/;
5710 } else {
5711 }
5712 self->attrs[COLOR_parser_nodes__ASignature___n_type].val = var_n_type; /* _n_type on <self:ASignature> */
5713 var9 = NULL;
5714 if (var_n_type == NULL) {
5715 var10 = 0; /* is null */
5716 } else {
5717 var10 = 1; /* arg is null and recv is not */
5718 }
5719 if (var10){
5720 ((void (*)(val*, val*))(var_n_type->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_type, self) /* parent= on <var_n_type:nullable AType(AType)>*/;
5721 } else {
5722 }
5723 RET_LABEL:;
5724 }
5725 /* method parser_prod#ASignature#init_asignature for (self: Object, nullable TOpar, Collection[Object], nullable TCpar, nullable AType) */
5726 void VIRTUAL_parser_prod__ASignature__init_asignature(val* self, val* p0, val* p1, val* p2, val* p3) {
5727 parser_prod__ASignature__init_asignature(self, p0, p1, p2, p3);
5728 RET_LABEL:;
5729 }
5730 /* method parser_prod#ASignature#replace_child for (self: ASignature, ANode, nullable ANode) */
5731 void parser_prod__ASignature__replace_child(val* self, val* p0, val* p1) {
5732 val* var_old_child /* var old_child: ANode */;
5733 val* var_new_child /* var new_child: nullable ANode */;
5734 val* var /* : nullable TOpar */;
5735 short int var1 /* : Bool */;
5736 val* var2 /* : null */;
5737 short int var3 /* : Bool */;
5738 short int var4 /* : Bool */;
5739 int cltype;
5740 int idtype;
5741 val* var5 /* : null */;
5742 val* var6 /* : Range[Int] */;
5743 long var7 /* : Int */;
5744 val* var8 /* : ANodes[AParam] */;
5745 long var9 /* : Int */;
5746 val* var10 /* : Discrete */;
5747 val* var11 /* : Discrete */;
5748 val* var12 /* : Iterator[nullable Object] */;
5749 short int var13 /* : Bool */;
5750 val* var14 /* : nullable Object */;
5751 long var_i /* var i: Int */;
5752 long var15 /* : Int */;
5753 val* var16 /* : ANodes[AParam] */;
5754 val* var17 /* : nullable Object */;
5755 short int var18 /* : Bool */;
5756 val* var19 /* : null */;
5757 short int var20 /* : Bool */;
5758 short int var21 /* : Bool */;
5759 int cltype22;
5760 int idtype23;
5761 val* var24 /* : ANodes[AParam] */;
5762 val* var25 /* : ANodes[AParam] */;
5763 val* var26 /* : nullable TCpar */;
5764 short int var27 /* : Bool */;
5765 val* var28 /* : null */;
5766 short int var29 /* : Bool */;
5767 short int var30 /* : Bool */;
5768 int cltype31;
5769 int idtype32;
5770 val* var33 /* : null */;
5771 val* var34 /* : nullable AType */;
5772 short int var35 /* : Bool */;
5773 val* var36 /* : null */;
5774 short int var37 /* : Bool */;
5775 short int var38 /* : Bool */;
5776 int cltype39;
5777 int idtype40;
5778 val* var41 /* : null */;
5779 var_old_child = p0;
5780 var_new_child = p1;
5781 var = self->attrs[COLOR_parser_nodes__ASignature___n_opar].val; /* _n_opar on <self:ASignature> */
5782 if (var == NULL) {
5783 var1 = 0; /* <var_old_child:ANode> cannot be null */
5784 } else {
5785 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:nullable TOpar>*/;
5786 }
5787 if (var1){
5788 var2 = NULL;
5789 if (var_new_child == NULL) {
5790 var3 = 0; /* is null */
5791 } else {
5792 var3 = 1; /* arg is null and recv is not */
5793 }
5794 if (var3){
5795 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
5796 /* <var_new_child:nullable ANode(ANode)> isa TOpar */
5797 cltype = type_parser_nodes__TOpar.color;
5798 idtype = type_parser_nodes__TOpar.id;
5799 if(cltype >= var_new_child->type->table_size) {
5800 var4 = 0;
5801 } else {
5802 var4 = var_new_child->type->type_table[cltype] == idtype;
5803 }
5804 if (!var4) {
5805 fprintf(stderr, "Runtime error: %s", "Assert failed");
5806 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4030);
5807 show_backtrace(1);
5808 }
5809 self->attrs[COLOR_parser_nodes__ASignature___n_opar].val = var_new_child; /* _n_opar on <self:ASignature> */
5810 } else {
5811 var5 = NULL;
5812 self->attrs[COLOR_parser_nodes__ASignature___n_opar].val = var5; /* _n_opar on <self:ASignature> */
5813 }
5814 goto RET_LABEL;
5815 } else {
5816 }
5817 var6 = NEW_range__Range(&type_range__Rangekernel__Int);
5818 var7 = 0;
5819 var8 = self->attrs[COLOR_parser_nodes__ASignature___n_params].val; /* _n_params on <self:ASignature> */
5820 if (var8 == NULL) {
5821 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_params");
5822 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4037);
5823 show_backtrace(1);
5824 }
5825 var9 = ((long (*)(val*))(var8->class->vft[COLOR_abstract_collection__Collection__length]))(var8) /* length on <var8:ANodes[AParam]>*/;
5826 var10 = BOX_kernel__Int(var7); /* autobox from Int to Discrete */
5827 var11 = BOX_kernel__Int(var9); /* autobox from Int to Discrete */
5828 ((void (*)(val*, val*, val*))(var6->class->vft[COLOR_range__Range__without_last]))(var6, var10, var11) /* without_last on <var6:Range[Int]>*/;
5829 var12 = ((val* (*)(val*))(var6->class->vft[COLOR_abstract_collection__Collection__iterator]))(var6) /* iterator on <var6:Range[Int]>*/;
5830 for(;;) {
5831 var13 = ((short int (*)(val*))(var12->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var12) /* is_ok on <var12:Iterator[nullable Object]>*/;
5832 if(!var13) break;
5833 var14 = ((val* (*)(val*))(var12->class->vft[COLOR_abstract_collection__Iterator__item]))(var12) /* item on <var12:Iterator[nullable Object]>*/;
5834 var15 = ((struct instance_kernel__Int*)var14)->value; /* autounbox from nullable Object to Int */;
5835 var_i = var15;
5836 var16 = self->attrs[COLOR_parser_nodes__ASignature___n_params].val; /* _n_params on <self:ASignature> */
5837 if (var16 == NULL) {
5838 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_params");
5839 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4038);
5840 show_backtrace(1);
5841 }
5842 var17 = ((val* (*)(val*, long))(var16->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var16, var_i) /* [] on <var16:ANodes[AParam]>*/;
5843 var18 = ((short int (*)(val*, val*))(var17->class->vft[COLOR_kernel__Object___61d_61d]))(var17, var_old_child) /* == on <var17:nullable Object(AParam)>*/;
5844 if (var18){
5845 var19 = NULL;
5846 if (var_new_child == NULL) {
5847 var20 = 0; /* is null */
5848 } else {
5849 var20 = 1; /* arg is null and recv is not */
5850 }
5851 if (var20){
5852 /* <var_new_child:nullable ANode(ANode)> isa AParam */
5853 cltype22 = type_parser_nodes__AParam.color;
5854 idtype23 = type_parser_nodes__AParam.id;
5855 if(cltype22 >= var_new_child->type->table_size) {
5856 var21 = 0;
5857 } else {
5858 var21 = var_new_child->type->type_table[cltype22] == idtype23;
5859 }
5860 if (!var21) {
5861 fprintf(stderr, "Runtime error: %s", "Assert failed");
5862 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4040);
5863 show_backtrace(1);
5864 }
5865 var24 = self->attrs[COLOR_parser_nodes__ASignature___n_params].val; /* _n_params on <self:ASignature> */
5866 if (var24 == NULL) {
5867 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_params");
5868 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4041);
5869 show_backtrace(1);
5870 }
5871 ((void (*)(val*, long, val*))(var24->class->vft[COLOR_abstract_collection__Sequence___91d_93d_61d]))(var24, var_i, var_new_child) /* []= on <var24:ANodes[AParam]>*/;
5872 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(AParam)>*/;
5873 } else {
5874 var25 = self->attrs[COLOR_parser_nodes__ASignature___n_params].val; /* _n_params on <self:ASignature> */
5875 if (var25 == NULL) {
5876 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_params");
5877 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4044);
5878 show_backtrace(1);
5879 }
5880 ((void (*)(val*, long))(var25->class->vft[COLOR_abstract_collection__Sequence__remove_at]))(var25, var_i) /* remove_at on <var25:ANodes[AParam]>*/;
5881 }
5882 goto RET_LABEL;
5883 } else {
5884 }
5885 CONTINUE_label: (void)0;
5886 ((void (*)(val*))(var12->class->vft[COLOR_abstract_collection__Iterator__next]))(var12) /* next on <var12:Iterator[nullable Object]>*/;
5887 }
5888 BREAK_label: (void)0;
5889 var26 = self->attrs[COLOR_parser_nodes__ASignature___n_cpar].val; /* _n_cpar on <self:ASignature> */
5890 if (var26 == NULL) {
5891 var27 = 0; /* <var_old_child:ANode> cannot be null */
5892 } else {
5893 var27 = ((short int (*)(val*, val*))(var26->class->vft[COLOR_kernel__Object___61d_61d]))(var26, var_old_child) /* == on <var26:nullable TCpar>*/;
5894 }
5895 if (var27){
5896 var28 = NULL;
5897 if (var_new_child == NULL) {
5898 var29 = 0; /* is null */
5899 } else {
5900 var29 = 1; /* arg is null and recv is not */
5901 }
5902 if (var29){
5903 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
5904 /* <var_new_child:nullable ANode(ANode)> isa TCpar */
5905 cltype31 = type_parser_nodes__TCpar.color;
5906 idtype32 = type_parser_nodes__TCpar.id;
5907 if(cltype31 >= var_new_child->type->table_size) {
5908 var30 = 0;
5909 } else {
5910 var30 = var_new_child->type->type_table[cltype31] == idtype32;
5911 }
5912 if (!var30) {
5913 fprintf(stderr, "Runtime error: %s", "Assert failed");
5914 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4052);
5915 show_backtrace(1);
5916 }
5917 self->attrs[COLOR_parser_nodes__ASignature___n_cpar].val = var_new_child; /* _n_cpar on <self:ASignature> */
5918 } else {
5919 var33 = NULL;
5920 self->attrs[COLOR_parser_nodes__ASignature___n_cpar].val = var33; /* _n_cpar on <self:ASignature> */
5921 }
5922 goto RET_LABEL;
5923 } else {
5924 }
5925 var34 = self->attrs[COLOR_parser_nodes__ASignature___n_type].val; /* _n_type on <self:ASignature> */
5926 if (var34 == NULL) {
5927 var35 = 0; /* <var_old_child:ANode> cannot be null */
5928 } else {
5929 var35 = ((short int (*)(val*, val*))(var34->class->vft[COLOR_kernel__Object___61d_61d]))(var34, var_old_child) /* == on <var34:nullable AType>*/;
5930 }
5931 if (var35){
5932 var36 = NULL;
5933 if (var_new_child == NULL) {
5934 var37 = 0; /* is null */
5935 } else {
5936 var37 = 1; /* arg is null and recv is not */
5937 }
5938 if (var37){
5939 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
5940 /* <var_new_child:nullable ANode(ANode)> isa AType */
5941 cltype39 = type_parser_nodes__AType.color;
5942 idtype40 = type_parser_nodes__AType.id;
5943 if(cltype39 >= var_new_child->type->table_size) {
5944 var38 = 0;
5945 } else {
5946 var38 = var_new_child->type->type_table[cltype39] == idtype40;
5947 }
5948 if (!var38) {
5949 fprintf(stderr, "Runtime error: %s", "Assert failed");
5950 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4062);
5951 show_backtrace(1);
5952 }
5953 self->attrs[COLOR_parser_nodes__ASignature___n_type].val = var_new_child; /* _n_type on <self:ASignature> */
5954 } else {
5955 var41 = NULL;
5956 self->attrs[COLOR_parser_nodes__ASignature___n_type].val = var41; /* _n_type on <self:ASignature> */
5957 }
5958 goto RET_LABEL;
5959 } else {
5960 }
5961 RET_LABEL:;
5962 }
5963 /* method parser_prod#ASignature#replace_child for (self: Object, ANode, nullable ANode) */
5964 void VIRTUAL_parser_prod__ASignature__replace_child(val* self, val* p0, val* p1) {
5965 parser_prod__ASignature__replace_child(self, p0, p1);
5966 RET_LABEL:;
5967 }
5968 /* method parser_prod#ASignature#n_opar= for (self: ASignature, nullable TOpar) */
5969 void parser_prod__ASignature__n_opar_61d(val* self, val* p0) {
5970 val* var_node /* var node: nullable TOpar */;
5971 val* var /* : null */;
5972 short int var1 /* : Bool */;
5973 var_node = p0;
5974 self->attrs[COLOR_parser_nodes__ASignature___n_opar].val = var_node; /* _n_opar on <self:ASignature> */
5975 var = NULL;
5976 if (var_node == NULL) {
5977 var1 = 0; /* is null */
5978 } else {
5979 var1 = 1; /* arg is null and recv is not */
5980 }
5981 if (var1){
5982 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable TOpar(TOpar)>*/;
5983 } else {
5984 }
5985 RET_LABEL:;
5986 }
5987 /* method parser_prod#ASignature#n_opar= for (self: Object, nullable TOpar) */
5988 void VIRTUAL_parser_prod__ASignature__n_opar_61d(val* self, val* p0) {
5989 parser_prod__ASignature__n_opar_61d(self, p0);
5990 RET_LABEL:;
5991 }
5992 /* method parser_prod#ASignature#n_cpar= for (self: ASignature, nullable TCpar) */
5993 void parser_prod__ASignature__n_cpar_61d(val* self, val* p0) {
5994 val* var_node /* var node: nullable TCpar */;
5995 val* var /* : null */;
5996 short int var1 /* : Bool */;
5997 var_node = p0;
5998 self->attrs[COLOR_parser_nodes__ASignature___n_cpar].val = var_node; /* _n_cpar on <self:ASignature> */
5999 var = NULL;
6000 if (var_node == NULL) {
6001 var1 = 0; /* is null */
6002 } else {
6003 var1 = 1; /* arg is null and recv is not */
6004 }
6005 if (var1){
6006 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable TCpar(TCpar)>*/;
6007 } else {
6008 }
6009 RET_LABEL:;
6010 }
6011 /* method parser_prod#ASignature#n_cpar= for (self: Object, nullable TCpar) */
6012 void VIRTUAL_parser_prod__ASignature__n_cpar_61d(val* self, val* p0) {
6013 parser_prod__ASignature__n_cpar_61d(self, p0);
6014 RET_LABEL:;
6015 }
6016 /* method parser_prod#ASignature#n_type= for (self: ASignature, nullable AType) */
6017 void parser_prod__ASignature__n_type_61d(val* self, val* p0) {
6018 val* var_node /* var node: nullable AType */;
6019 val* var /* : null */;
6020 short int var1 /* : Bool */;
6021 var_node = p0;
6022 self->attrs[COLOR_parser_nodes__ASignature___n_type].val = var_node; /* _n_type on <self:ASignature> */
6023 var = NULL;
6024 if (var_node == NULL) {
6025 var1 = 0; /* is null */
6026 } else {
6027 var1 = 1; /* arg is null and recv is not */
6028 }
6029 if (var1){
6030 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable AType(AType)>*/;
6031 } else {
6032 }
6033 RET_LABEL:;
6034 }
6035 /* method parser_prod#ASignature#n_type= for (self: Object, nullable AType) */
6036 void VIRTUAL_parser_prod__ASignature__n_type_61d(val* self, val* p0) {
6037 parser_prod__ASignature__n_type_61d(self, p0);
6038 RET_LABEL:;
6039 }
6040 /* method parser_prod#ASignature#visit_all for (self: ASignature, Visitor) */
6041 void parser_prod__ASignature__visit_all(val* self, val* p0) {
6042 val* var_v /* var v: Visitor */;
6043 val* var /* : nullable TOpar */;
6044 val* var1 /* : null */;
6045 short int var2 /* : Bool */;
6046 val* var3 /* : nullable TOpar */;
6047 val* var4 /* : ANodes[AParam] */;
6048 val* var5 /* : Iterator[nullable Object] */;
6049 short int var6 /* : Bool */;
6050 val* var7 /* : nullable Object */;
6051 val* var_n /* var n: AParam */;
6052 val* var8 /* : nullable TCpar */;
6053 val* var9 /* : null */;
6054 short int var10 /* : Bool */;
6055 val* var11 /* : nullable TCpar */;
6056 val* var12 /* : nullable AType */;
6057 val* var13 /* : null */;
6058 short int var14 /* : Bool */;
6059 val* var15 /* : nullable AType */;
6060 var_v = p0;
6061 var = self->attrs[COLOR_parser_nodes__ASignature___n_opar].val; /* _n_opar on <self:ASignature> */
6062 var1 = NULL;
6063 if (var == NULL) {
6064 var2 = 0; /* is null */
6065 } else {
6066 var2 = 1; /* arg is null and recv is not */
6067 }
6068 if (var2){
6069 var3 = self->attrs[COLOR_parser_nodes__ASignature___n_opar].val; /* _n_opar on <self:ASignature> */
6070 if (var3 == NULL) {
6071 fprintf(stderr, "Runtime error: %s", "Cast failed");
6072 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4097);
6073 show_backtrace(1);
6074 }
6075 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var3) /* enter_visit on <var_v:Visitor>*/;
6076 } else {
6077 }
6078 var4 = self->attrs[COLOR_parser_nodes__ASignature___n_params].val; /* _n_params on <self:ASignature> */
6079 if (var4 == NULL) {
6080 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_params");
6081 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4099);
6082 show_backtrace(1);
6083 }
6084 var5 = ((val* (*)(val*))(var4->class->vft[COLOR_abstract_collection__Collection__iterator]))(var4) /* iterator on <var4:ANodes[AParam]>*/;
6085 for(;;) {
6086 var6 = ((short int (*)(val*))(var5->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var5) /* is_ok on <var5:Iterator[nullable Object]>*/;
6087 if(!var6) break;
6088 var7 = ((val* (*)(val*))(var5->class->vft[COLOR_abstract_collection__Iterator__item]))(var5) /* item on <var5:Iterator[nullable Object]>*/;
6089 var_n = var7;
6090 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var_n) /* enter_visit on <var_v:Visitor>*/;
6091 CONTINUE_label: (void)0;
6092 ((void (*)(val*))(var5->class->vft[COLOR_abstract_collection__Iterator__next]))(var5) /* next on <var5:Iterator[nullable Object]>*/;
6093 }
6094 BREAK_label: (void)0;
6095 var8 = self->attrs[COLOR_parser_nodes__ASignature___n_cpar].val; /* _n_cpar on <self:ASignature> */
6096 var9 = NULL;
6097 if (var8 == NULL) {
6098 var10 = 0; /* is null */
6099 } else {
6100 var10 = 1; /* arg is null and recv is not */
6101 }
6102 if (var10){
6103 var11 = self->attrs[COLOR_parser_nodes__ASignature___n_cpar].val; /* _n_cpar on <self:ASignature> */
6104 if (var11 == NULL) {
6105 fprintf(stderr, "Runtime error: %s", "Cast failed");
6106 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4103);
6107 show_backtrace(1);
6108 }
6109 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var11) /* enter_visit on <var_v:Visitor>*/;
6110 } else {
6111 }
6112 var12 = self->attrs[COLOR_parser_nodes__ASignature___n_type].val; /* _n_type on <self:ASignature> */
6113 var13 = NULL;
6114 if (var12 == NULL) {
6115 var14 = 0; /* is null */
6116 } else {
6117 var14 = 1; /* arg is null and recv is not */
6118 }
6119 if (var14){
6120 var15 = self->attrs[COLOR_parser_nodes__ASignature___n_type].val; /* _n_type on <self:ASignature> */
6121 if (var15 == NULL) {
6122 fprintf(stderr, "Runtime error: %s", "Cast failed");
6123 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4106);
6124 show_backtrace(1);
6125 }
6126 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var15) /* enter_visit on <var_v:Visitor>*/;
6127 } else {
6128 }
6129 RET_LABEL:;
6130 }
6131 /* method parser_prod#ASignature#visit_all for (self: Object, Visitor) */
6132 void VIRTUAL_parser_prod__ASignature__visit_all(val* self, val* p0) {
6133 parser_prod__ASignature__visit_all(self, p0);
6134 RET_LABEL:;
6135 }
6136 /* method parser_prod#AParam#empty_init for (self: AParam) */
6137 void parser_prod__AParam__empty_init(val* self) {
6138 RET_LABEL:;
6139 }
6140 /* method parser_prod#AParam#empty_init for (self: Object) */
6141 void VIRTUAL_parser_prod__AParam__empty_init(val* self) {
6142 parser_prod__AParam__empty_init(self);
6143 RET_LABEL:;
6144 }
6145 /* method parser_prod#AParam#init_aparam for (self: AParam, nullable TId, nullable AType, nullable TDotdotdot, nullable AAnnotations) */
6146 void parser_prod__AParam__init_aparam(val* self, val* p0, val* p1, val* p2, val* p3) {
6147 val* var_n_id /* var n_id: nullable TId */;
6148 val* var_n_type /* var n_type: nullable AType */;
6149 val* var_n_dotdotdot /* var n_dotdotdot: nullable TDotdotdot */;
6150 val* var_n_annotations /* var n_annotations: nullable AAnnotations */;
6151 val* var /* : null */;
6152 short int var1 /* : Bool */;
6153 val* var2 /* : null */;
6154 short int var3 /* : Bool */;
6155 val* var4 /* : null */;
6156 short int var5 /* : Bool */;
6157 var_n_id = p0;
6158 var_n_type = p1;
6159 var_n_dotdotdot = p2;
6160 var_n_annotations = p3;
6161 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__AParam__empty_init]))(self) /* empty_init on <self:AParam>*/;
6162 if (var_n_id == NULL) {
6163 fprintf(stderr, "Runtime error: %s", "Cast failed");
6164 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4121);
6165 show_backtrace(1);
6166 }
6167 self->attrs[COLOR_parser_nodes__AParam___n_id].val = var_n_id; /* _n_id on <self:AParam> */
6168 if (var_n_id == NULL) {
6169 fprintf(stderr, "Runtime error: %s", "Reciever is null");
6170 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4122);
6171 show_backtrace(1);
6172 } else {
6173 ((void (*)(val*, val*))(var_n_id->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_id, self) /* parent= on <var_n_id:nullable TId>*/;
6174 }
6175 self->attrs[COLOR_parser_nodes__AParam___n_type].val = var_n_type; /* _n_type on <self:AParam> */
6176 var = NULL;
6177 if (var_n_type == NULL) {
6178 var1 = 0; /* is null */
6179 } else {
6180 var1 = 1; /* arg is null and recv is not */
6181 }
6182 if (var1){
6183 ((void (*)(val*, val*))(var_n_type->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_type, self) /* parent= on <var_n_type:nullable AType(AType)>*/;
6184 } else {
6185 }
6186 self->attrs[COLOR_parser_nodes__AParam___n_dotdotdot].val = var_n_dotdotdot; /* _n_dotdotdot on <self:AParam> */
6187 var2 = NULL;
6188 if (var_n_dotdotdot == NULL) {
6189 var3 = 0; /* is null */
6190 } else {
6191 var3 = 1; /* arg is null and recv is not */
6192 }
6193 if (var3){
6194 ((void (*)(val*, val*))(var_n_dotdotdot->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_dotdotdot, self) /* parent= on <var_n_dotdotdot:nullable TDotdotdot(TDotdotdot)>*/;
6195 } else {
6196 }
6197 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:AParam> */
6198 var4 = NULL;
6199 if (var_n_annotations == NULL) {
6200 var5 = 0; /* is null */
6201 } else {
6202 var5 = 1; /* arg is null and recv is not */
6203 }
6204 if (var5){
6205 ((void (*)(val*, val*))(var_n_annotations->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_annotations, self) /* parent= on <var_n_annotations:nullable AAnnotations(AAnnotations)>*/;
6206 } else {
6207 }
6208 RET_LABEL:;
6209 }
6210 /* method parser_prod#AParam#init_aparam for (self: Object, nullable TId, nullable AType, nullable TDotdotdot, nullable AAnnotations) */
6211 void VIRTUAL_parser_prod__AParam__init_aparam(val* self, val* p0, val* p1, val* p2, val* p3) {
6212 parser_prod__AParam__init_aparam(self, p0, p1, p2, p3);
6213 RET_LABEL:;
6214 }
6215 /* method parser_prod#AParam#replace_child for (self: AParam, ANode, nullable ANode) */
6216 void parser_prod__AParam__replace_child(val* self, val* p0, val* p1) {
6217 val* var_old_child /* var old_child: ANode */;
6218 val* var_new_child /* var new_child: nullable ANode */;
6219 val* var /* : TId */;
6220 short int var1 /* : Bool */;
6221 val* var2 /* : null */;
6222 short int var3 /* : Bool */;
6223 short int var4 /* : Bool */;
6224 int cltype;
6225 int idtype;
6226 val* var5 /* : nullable AType */;
6227 short int var6 /* : Bool */;
6228 val* var7 /* : null */;
6229 short int var8 /* : Bool */;
6230 short int var9 /* : Bool */;
6231 int cltype10;
6232 int idtype11;
6233 val* var12 /* : null */;
6234 val* var13 /* : nullable TDotdotdot */;
6235 short int var14 /* : Bool */;
6236 val* var15 /* : null */;
6237 short int var16 /* : Bool */;
6238 short int var17 /* : Bool */;
6239 int cltype18;
6240 int idtype19;
6241 val* var20 /* : null */;
6242 val* var21 /* : nullable AAnnotations */;
6243 short int var22 /* : Bool */;
6244 val* var23 /* : null */;
6245 short int var24 /* : Bool */;
6246 short int var25 /* : Bool */;
6247 int cltype26;
6248 int idtype27;
6249 val* var28 /* : null */;
6250 var_old_child = p0;
6251 var_new_child = p1;
6252 var = self->attrs[COLOR_parser_nodes__AParam___n_id].val; /* _n_id on <self:AParam> */
6253 if (var == NULL) {
6254 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_id");
6255 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4139);
6256 show_backtrace(1);
6257 }
6258 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:TId>*/;
6259 if (var1){
6260 var2 = NULL;
6261 if (var_new_child == NULL) {
6262 var3 = 0; /* is null */
6263 } else {
6264 var3 = 1; /* arg is null and recv is not */
6265 }
6266 if (var3){
6267 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
6268 /* <var_new_child:nullable ANode(ANode)> isa TId */
6269 cltype = type_parser_nodes__TId.color;
6270 idtype = type_parser_nodes__TId.id;
6271 if(cltype >= var_new_child->type->table_size) {
6272 var4 = 0;
6273 } else {
6274 var4 = var_new_child->type->type_table[cltype] == idtype;
6275 }
6276 if (!var4) {
6277 fprintf(stderr, "Runtime error: %s", "Assert failed");
6278 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4142);
6279 show_backtrace(1);
6280 }
6281 self->attrs[COLOR_parser_nodes__AParam___n_id].val = var_new_child; /* _n_id on <self:AParam> */
6282 } else {
6283 fprintf(stderr, "Runtime error: %s", "Aborted");
6284 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4145);
6285 show_backtrace(1);
6286 }
6287 goto RET_LABEL;
6288 } else {
6289 }
6290 var5 = self->attrs[COLOR_parser_nodes__AParam___n_type].val; /* _n_type on <self:AParam> */
6291 if (var5 == NULL) {
6292 var6 = 0; /* <var_old_child:ANode> cannot be null */
6293 } else {
6294 var6 = ((short int (*)(val*, val*))(var5->class->vft[COLOR_kernel__Object___61d_61d]))(var5, var_old_child) /* == on <var5:nullable AType>*/;
6295 }
6296 if (var6){
6297 var7 = NULL;
6298 if (var_new_child == NULL) {
6299 var8 = 0; /* is null */
6300 } else {
6301 var8 = 1; /* arg is null and recv is not */
6302 }
6303 if (var8){
6304 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
6305 /* <var_new_child:nullable ANode(ANode)> isa AType */
6306 cltype10 = type_parser_nodes__AType.color;
6307 idtype11 = type_parser_nodes__AType.id;
6308 if(cltype10 >= var_new_child->type->table_size) {
6309 var9 = 0;
6310 } else {
6311 var9 = var_new_child->type->type_table[cltype10] == idtype11;
6312 }
6313 if (!var9) {
6314 fprintf(stderr, "Runtime error: %s", "Assert failed");
6315 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4152);
6316 show_backtrace(1);
6317 }
6318 self->attrs[COLOR_parser_nodes__AParam___n_type].val = var_new_child; /* _n_type on <self:AParam> */
6319 } else {
6320 var12 = NULL;
6321 self->attrs[COLOR_parser_nodes__AParam___n_type].val = var12; /* _n_type on <self:AParam> */
6322 }
6323 goto RET_LABEL;
6324 } else {
6325 }
6326 var13 = self->attrs[COLOR_parser_nodes__AParam___n_dotdotdot].val; /* _n_dotdotdot on <self:AParam> */
6327 if (var13 == NULL) {
6328 var14 = 0; /* <var_old_child:ANode> cannot be null */
6329 } else {
6330 var14 = ((short int (*)(val*, val*))(var13->class->vft[COLOR_kernel__Object___61d_61d]))(var13, var_old_child) /* == on <var13:nullable TDotdotdot>*/;
6331 }
6332 if (var14){
6333 var15 = NULL;
6334 if (var_new_child == NULL) {
6335 var16 = 0; /* is null */
6336 } else {
6337 var16 = 1; /* arg is null and recv is not */
6338 }
6339 if (var16){
6340 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
6341 /* <var_new_child:nullable ANode(ANode)> isa TDotdotdot */
6342 cltype18 = type_parser_nodes__TDotdotdot.color;
6343 idtype19 = type_parser_nodes__TDotdotdot.id;
6344 if(cltype18 >= var_new_child->type->table_size) {
6345 var17 = 0;
6346 } else {
6347 var17 = var_new_child->type->type_table[cltype18] == idtype19;
6348 }
6349 if (!var17) {
6350 fprintf(stderr, "Runtime error: %s", "Assert failed");
6351 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4162);
6352 show_backtrace(1);
6353 }
6354 self->attrs[COLOR_parser_nodes__AParam___n_dotdotdot].val = var_new_child; /* _n_dotdotdot on <self:AParam> */
6355 } else {
6356 var20 = NULL;
6357 self->attrs[COLOR_parser_nodes__AParam___n_dotdotdot].val = var20; /* _n_dotdotdot on <self:AParam> */
6358 }
6359 goto RET_LABEL;
6360 } else {
6361 }
6362 var21 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AParam> */
6363 if (var21 == NULL) {
6364 var22 = 0; /* <var_old_child:ANode> cannot be null */
6365 } else {
6366 var22 = ((short int (*)(val*, val*))(var21->class->vft[COLOR_kernel__Object___61d_61d]))(var21, var_old_child) /* == on <var21:nullable AAnnotations>*/;
6367 }
6368 if (var22){
6369 var23 = NULL;
6370 if (var_new_child == NULL) {
6371 var24 = 0; /* is null */
6372 } else {
6373 var24 = 1; /* arg is null and recv is not */
6374 }
6375 if (var24){
6376 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
6377 /* <var_new_child:nullable ANode(ANode)> isa AAnnotations */
6378 cltype26 = type_parser_nodes__AAnnotations.color;
6379 idtype27 = type_parser_nodes__AAnnotations.id;
6380 if(cltype26 >= var_new_child->type->table_size) {
6381 var25 = 0;
6382 } else {
6383 var25 = var_new_child->type->type_table[cltype26] == idtype27;
6384 }
6385 if (!var25) {
6386 fprintf(stderr, "Runtime error: %s", "Assert failed");
6387 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4172);
6388 show_backtrace(1);
6389 }
6390 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_new_child; /* _n_annotations on <self:AParam> */
6391 } else {
6392 var28 = NULL;
6393 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var28; /* _n_annotations on <self:AParam> */
6394 }
6395 goto RET_LABEL;
6396 } else {
6397 }
6398 RET_LABEL:;
6399 }
6400 /* method parser_prod#AParam#replace_child for (self: Object, ANode, nullable ANode) */
6401 void VIRTUAL_parser_prod__AParam__replace_child(val* self, val* p0, val* p1) {
6402 parser_prod__AParam__replace_child(self, p0, p1);
6403 RET_LABEL:;
6404 }
6405 /* method parser_prod#AParam#n_id= for (self: AParam, TId) */
6406 void parser_prod__AParam__n_id_61d(val* self, val* p0) {
6407 val* var_node /* var node: TId */;
6408 var_node = p0;
6409 self->attrs[COLOR_parser_nodes__AParam___n_id].val = var_node; /* _n_id on <self:AParam> */
6410 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TId>*/;
6411 RET_LABEL:;
6412 }
6413 /* method parser_prod#AParam#n_id= for (self: Object, TId) */
6414 void VIRTUAL_parser_prod__AParam__n_id_61d(val* self, val* p0) {
6415 parser_prod__AParam__n_id_61d(self, p0);
6416 RET_LABEL:;
6417 }
6418 /* method parser_prod#AParam#n_type= for (self: AParam, nullable AType) */
6419 void parser_prod__AParam__n_type_61d(val* self, val* p0) {
6420 val* var_node /* var node: nullable AType */;
6421 val* var /* : null */;
6422 short int var1 /* : Bool */;
6423 var_node = p0;
6424 self->attrs[COLOR_parser_nodes__AParam___n_type].val = var_node; /* _n_type on <self:AParam> */
6425 var = NULL;
6426 if (var_node == NULL) {
6427 var1 = 0; /* is null */
6428 } else {
6429 var1 = 1; /* arg is null and recv is not */
6430 }
6431 if (var1){
6432 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable AType(AType)>*/;
6433 } else {
6434 }
6435 RET_LABEL:;
6436 }
6437 /* method parser_prod#AParam#n_type= for (self: Object, nullable AType) */
6438 void VIRTUAL_parser_prod__AParam__n_type_61d(val* self, val* p0) {
6439 parser_prod__AParam__n_type_61d(self, p0);
6440 RET_LABEL:;
6441 }
6442 /* method parser_prod#AParam#n_dotdotdot= for (self: AParam, nullable TDotdotdot) */
6443 void parser_prod__AParam__n_dotdotdot_61d(val* self, val* p0) {
6444 val* var_node /* var node: nullable TDotdotdot */;
6445 val* var /* : null */;
6446 short int var1 /* : Bool */;
6447 var_node = p0;
6448 self->attrs[COLOR_parser_nodes__AParam___n_dotdotdot].val = var_node; /* _n_dotdotdot on <self:AParam> */
6449 var = NULL;
6450 if (var_node == NULL) {
6451 var1 = 0; /* is null */
6452 } else {
6453 var1 = 1; /* arg is null and recv is not */
6454 }
6455 if (var1){
6456 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable TDotdotdot(TDotdotdot)>*/;
6457 } else {
6458 }
6459 RET_LABEL:;
6460 }
6461 /* method parser_prod#AParam#n_dotdotdot= for (self: Object, nullable TDotdotdot) */
6462 void VIRTUAL_parser_prod__AParam__n_dotdotdot_61d(val* self, val* p0) {
6463 parser_prod__AParam__n_dotdotdot_61d(self, p0);
6464 RET_LABEL:;
6465 }
6466 /* method parser_prod#AParam#n_annotations= for (self: AParam, nullable AAnnotations) */
6467 void parser_prod__AParam__n_annotations_61d(val* self, val* p0) {
6468 val* var_node /* var node: nullable AAnnotations */;
6469 val* var /* : null */;
6470 short int var1 /* : Bool */;
6471 var_node = p0;
6472 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_node; /* _n_annotations on <self:AParam> */
6473 var = NULL;
6474 if (var_node == NULL) {
6475 var1 = 0; /* is null */
6476 } else {
6477 var1 = 1; /* arg is null and recv is not */
6478 }
6479 if (var1){
6480 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable AAnnotations(AAnnotations)>*/;
6481 } else {
6482 }
6483 RET_LABEL:;
6484 }
6485 /* method parser_prod#AParam#n_annotations= for (self: Object, nullable AAnnotations) */
6486 void VIRTUAL_parser_prod__AParam__n_annotations_61d(val* self, val* p0) {
6487 parser_prod__AParam__n_annotations_61d(self, p0);
6488 RET_LABEL:;
6489 }
6490 /* method parser_prod#AParam#visit_all for (self: AParam, Visitor) */
6491 void parser_prod__AParam__visit_all(val* self, val* p0) {
6492 val* var_v /* var v: Visitor */;
6493 val* var /* : TId */;
6494 val* var1 /* : nullable AType */;
6495 val* var2 /* : null */;
6496 short int var3 /* : Bool */;
6497 val* var4 /* : nullable AType */;
6498 val* var5 /* : nullable TDotdotdot */;
6499 val* var6 /* : null */;
6500 short int var7 /* : Bool */;
6501 val* var8 /* : nullable TDotdotdot */;
6502 val* var9 /* : nullable AAnnotations */;
6503 val* var10 /* : null */;
6504 short int var11 /* : Bool */;
6505 val* var12 /* : nullable AAnnotations */;
6506 var_v = p0;
6507 var = self->attrs[COLOR_parser_nodes__AParam___n_id].val; /* _n_id on <self:AParam> */
6508 if (var == NULL) {
6509 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_id");
6510 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4211);
6511 show_backtrace(1);
6512 }
6513 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
6514 var1 = self->attrs[COLOR_parser_nodes__AParam___n_type].val; /* _n_type on <self:AParam> */
6515 var2 = NULL;
6516 if (var1 == NULL) {
6517 var3 = 0; /* is null */
6518 } else {
6519 var3 = 1; /* arg is null and recv is not */
6520 }
6521 if (var3){
6522 var4 = self->attrs[COLOR_parser_nodes__AParam___n_type].val; /* _n_type on <self:AParam> */
6523 if (var4 == NULL) {
6524 fprintf(stderr, "Runtime error: %s", "Cast failed");
6525 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4213);
6526 show_backtrace(1);
6527 }
6528 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var4) /* enter_visit on <var_v:Visitor>*/;
6529 } else {
6530 }
6531 var5 = self->attrs[COLOR_parser_nodes__AParam___n_dotdotdot].val; /* _n_dotdotdot on <self:AParam> */
6532 var6 = NULL;
6533 if (var5 == NULL) {
6534 var7 = 0; /* is null */
6535 } else {
6536 var7 = 1; /* arg is null and recv is not */
6537 }
6538 if (var7){
6539 var8 = self->attrs[COLOR_parser_nodes__AParam___n_dotdotdot].val; /* _n_dotdotdot on <self:AParam> */
6540 if (var8 == NULL) {
6541 fprintf(stderr, "Runtime error: %s", "Cast failed");
6542 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4216);
6543 show_backtrace(1);
6544 }
6545 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var8) /* enter_visit on <var_v:Visitor>*/;
6546 } else {
6547 }
6548 var9 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AParam> */
6549 var10 = NULL;
6550 if (var9 == NULL) {
6551 var11 = 0; /* is null */
6552 } else {
6553 var11 = 1; /* arg is null and recv is not */
6554 }
6555 if (var11){
6556 var12 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AParam> */
6557 if (var12 == NULL) {
6558 fprintf(stderr, "Runtime error: %s", "Cast failed");
6559 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4219);
6560 show_backtrace(1);
6561 }
6562 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var12) /* enter_visit on <var_v:Visitor>*/;
6563 } else {
6564 }
6565 RET_LABEL:;
6566 }
6567 /* method parser_prod#AParam#visit_all for (self: Object, Visitor) */
6568 void VIRTUAL_parser_prod__AParam__visit_all(val* self, val* p0) {
6569 parser_prod__AParam__visit_all(self, p0);
6570 RET_LABEL:;
6571 }
6572 /* method parser_prod#AType#empty_init for (self: AType) */
6573 void parser_prod__AType__empty_init(val* self) {
6574 RET_LABEL:;
6575 }
6576 /* method parser_prod#AType#empty_init for (self: Object) */
6577 void VIRTUAL_parser_prod__AType__empty_init(val* self) {
6578 parser_prod__AType__empty_init(self);
6579 RET_LABEL:;
6580 }
6581 /* method parser_prod#AType#init_atype for (self: AType, nullable TKwnullable, nullable TClassid, Collection[Object], nullable AAnnotations) */
6582 void parser_prod__AType__init_atype(val* self, val* p0, val* p1, val* p2, val* p3) {
6583 val* var_n_kwnullable /* var n_kwnullable: nullable TKwnullable */;
6584 val* var_n_id /* var n_id: nullable TClassid */;
6585 val* var_n_types /* var n_types: Collection[Object] */;
6586 val* var_n_annotations /* var n_annotations: nullable AAnnotations */;
6587 val* var /* : null */;
6588 short int var1 /* : Bool */;
6589 val* var2 /* : Iterator[nullable Object] */;
6590 short int var3 /* : Bool */;
6591 val* var4 /* : nullable Object */;
6592 val* var_n /* var n: Object */;
6593 short int var5 /* : Bool */;
6594 int cltype;
6595 int idtype;
6596 val* var6 /* : ANodes[AType] */;
6597 val* var7 /* : null */;
6598 short int var8 /* : Bool */;
6599 var_n_kwnullable = p0;
6600 var_n_id = p1;
6601 var_n_types = p2;
6602 var_n_annotations = p3;
6603 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__AType__empty_init]))(self) /* empty_init on <self:AType>*/;
6604 self->attrs[COLOR_parser_nodes__AType___n_kwnullable].val = var_n_kwnullable; /* _n_kwnullable on <self:AType> */
6605 var = NULL;
6606 if (var_n_kwnullable == NULL) {
6607 var1 = 0; /* is null */
6608 } else {
6609 var1 = 1; /* arg is null and recv is not */
6610 }
6611 if (var1){
6612 ((void (*)(val*, val*))(var_n_kwnullable->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_kwnullable, self) /* parent= on <var_n_kwnullable:nullable TKwnullable(TKwnullable)>*/;
6613 } else {
6614 }
6615 if (var_n_id == NULL) {
6616 fprintf(stderr, "Runtime error: %s", "Cast failed");
6617 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4238);
6618 show_backtrace(1);
6619 }
6620 self->attrs[COLOR_parser_nodes__AType___n_id].val = var_n_id; /* _n_id on <self:AType> */
6621 if (var_n_id == NULL) {
6622 fprintf(stderr, "Runtime error: %s", "Reciever is null");
6623 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4239);
6624 show_backtrace(1);
6625 } else {
6626 ((void (*)(val*, val*))(var_n_id->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_id, self) /* parent= on <var_n_id:nullable TClassid>*/;
6627 }
6628 var2 = ((val* (*)(val*))(var_n_types->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_n_types) /* iterator on <var_n_types:Collection[Object]>*/;
6629 for(;;) {
6630 var3 = ((short int (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var2) /* is_ok on <var2:Iterator[nullable Object]>*/;
6631 if(!var3) break;
6632 var4 = ((val* (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__item]))(var2) /* item on <var2:Iterator[nullable Object]>*/;
6633 var_n = var4;
6634 /* <var_n:Object> isa AType */
6635 cltype = type_parser_nodes__AType.color;
6636 idtype = type_parser_nodes__AType.id;
6637 if(cltype >= var_n->type->table_size) {
6638 var5 = 0;
6639 } else {
6640 var5 = var_n->type->type_table[cltype] == idtype;
6641 }
6642 if (!var5) {
6643 fprintf(stderr, "Runtime error: %s", "Assert failed");
6644 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4241);
6645 show_backtrace(1);
6646 }
6647 var6 = self->attrs[COLOR_parser_nodes__AType___n_types].val; /* _n_types on <self:AType> */
6648 if (var6 == NULL) {
6649 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_types");
6650 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4242);
6651 show_backtrace(1);
6652 }
6653 ((void (*)(val*, val*))(var6->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var6, var_n) /* add on <var6:ANodes[AType]>*/;
6654 ((void (*)(val*, val*))(var_n->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n, self) /* parent= on <var_n:Object(AType)>*/;
6655 CONTINUE_label: (void)0;
6656 ((void (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__next]))(var2) /* next on <var2:Iterator[nullable Object]>*/;
6657 }
6658 BREAK_label: (void)0;
6659 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:AType> */
6660 var7 = NULL;
6661 if (var_n_annotations == NULL) {
6662 var8 = 0; /* is null */
6663 } else {
6664 var8 = 1; /* arg is null and recv is not */
6665 }
6666 if (var8){
6667 ((void (*)(val*, val*))(var_n_annotations->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_annotations, self) /* parent= on <var_n_annotations:nullable AAnnotations(AAnnotations)>*/;
6668 } else {
6669 }
6670 RET_LABEL:;
6671 }
6672 /* method parser_prod#AType#init_atype for (self: Object, nullable TKwnullable, nullable TClassid, Collection[Object], nullable AAnnotations) */
6673 void VIRTUAL_parser_prod__AType__init_atype(val* self, val* p0, val* p1, val* p2, val* p3) {
6674 parser_prod__AType__init_atype(self, p0, p1, p2, p3);
6675 RET_LABEL:;
6676 }
6677 /* method parser_prod#AType#replace_child for (self: AType, ANode, nullable ANode) */
6678 void parser_prod__AType__replace_child(val* self, val* p0, val* p1) {
6679 val* var_old_child /* var old_child: ANode */;
6680 val* var_new_child /* var new_child: nullable ANode */;
6681 val* var /* : nullable TKwnullable */;
6682 short int var1 /* : Bool */;
6683 val* var2 /* : null */;
6684 short int var3 /* : Bool */;
6685 short int var4 /* : Bool */;
6686 int cltype;
6687 int idtype;
6688 val* var5 /* : null */;
6689 val* var6 /* : TClassid */;
6690 short int var7 /* : Bool */;
6691 val* var8 /* : null */;
6692 short int var9 /* : Bool */;
6693 short int var10 /* : Bool */;
6694 int cltype11;
6695 int idtype12;
6696 val* var13 /* : Range[Int] */;
6697 long var14 /* : Int */;
6698 val* var15 /* : ANodes[AType] */;
6699 long var16 /* : Int */;
6700 val* var17 /* : Discrete */;
6701 val* var18 /* : Discrete */;
6702 val* var19 /* : Iterator[nullable Object] */;
6703 short int var20 /* : Bool */;
6704 val* var21 /* : nullable Object */;
6705 long var_i /* var i: Int */;
6706 long var22 /* : Int */;
6707 val* var23 /* : ANodes[AType] */;
6708 val* var24 /* : nullable Object */;
6709 short int var25 /* : Bool */;
6710 val* var26 /* : null */;
6711 short int var27 /* : Bool */;
6712 short int var28 /* : Bool */;
6713 int cltype29;
6714 int idtype30;
6715 val* var31 /* : ANodes[AType] */;
6716 val* var32 /* : ANodes[AType] */;
6717 val* var33 /* : nullable AAnnotations */;
6718 short int var34 /* : Bool */;
6719 val* var35 /* : null */;
6720 short int var36 /* : Bool */;
6721 short int var37 /* : Bool */;
6722 int cltype38;
6723 int idtype39;
6724 val* var40 /* : null */;
6725 var_old_child = p0;
6726 var_new_child = p1;
6727 var = self->attrs[COLOR_parser_nodes__AType___n_kwnullable].val; /* _n_kwnullable on <self:AType> */
6728 if (var == NULL) {
6729 var1 = 0; /* <var_old_child:ANode> cannot be null */
6730 } else {
6731 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:nullable TKwnullable>*/;
6732 }
6733 if (var1){
6734 var2 = NULL;
6735 if (var_new_child == NULL) {
6736 var3 = 0; /* is null */
6737 } else {
6738 var3 = 1; /* arg is null and recv is not */
6739 }
6740 if (var3){
6741 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
6742 /* <var_new_child:nullable ANode(ANode)> isa TKwnullable */
6743 cltype = type_parser_nodes__TKwnullable.color;
6744 idtype = type_parser_nodes__TKwnullable.id;
6745 if(cltype >= var_new_child->type->table_size) {
6746 var4 = 0;
6747 } else {
6748 var4 = var_new_child->type->type_table[cltype] == idtype;
6749 }
6750 if (!var4) {
6751 fprintf(stderr, "Runtime error: %s", "Assert failed");
6752 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4256);
6753 show_backtrace(1);
6754 }
6755 self->attrs[COLOR_parser_nodes__AType___n_kwnullable].val = var_new_child; /* _n_kwnullable on <self:AType> */
6756 } else {
6757 var5 = NULL;
6758 self->attrs[COLOR_parser_nodes__AType___n_kwnullable].val = var5; /* _n_kwnullable on <self:AType> */
6759 }
6760 goto RET_LABEL;
6761 } else {
6762 }
6763 var6 = self->attrs[COLOR_parser_nodes__AType___n_id].val; /* _n_id on <self:AType> */
6764 if (var6 == NULL) {
6765 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_id");
6766 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4263);
6767 show_backtrace(1);
6768 }
6769 var7 = ((short int (*)(val*, val*))(var6->class->vft[COLOR_kernel__Object___61d_61d]))(var6, var_old_child) /* == on <var6:TClassid>*/;
6770 if (var7){
6771 var8 = NULL;
6772 if (var_new_child == NULL) {
6773 var9 = 0; /* is null */
6774 } else {
6775 var9 = 1; /* arg is null and recv is not */
6776 }
6777 if (var9){
6778 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
6779 /* <var_new_child:nullable ANode(ANode)> isa TClassid */
6780 cltype11 = type_parser_nodes__TClassid.color;
6781 idtype12 = type_parser_nodes__TClassid.id;
6782 if(cltype11 >= var_new_child->type->table_size) {
6783 var10 = 0;
6784 } else {
6785 var10 = var_new_child->type->type_table[cltype11] == idtype12;
6786 }
6787 if (!var10) {
6788 fprintf(stderr, "Runtime error: %s", "Assert failed");
6789 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4266);
6790 show_backtrace(1);
6791 }
6792 self->attrs[COLOR_parser_nodes__AType___n_id].val = var_new_child; /* _n_id on <self:AType> */
6793 } else {
6794 fprintf(stderr, "Runtime error: %s", "Aborted");
6795 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4269);
6796 show_backtrace(1);
6797 }
6798 goto RET_LABEL;
6799 } else {
6800 }
6801 var13 = NEW_range__Range(&type_range__Rangekernel__Int);
6802 var14 = 0;
6803 var15 = self->attrs[COLOR_parser_nodes__AType___n_types].val; /* _n_types on <self:AType> */
6804 if (var15 == NULL) {
6805 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_types");
6806 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4273);
6807 show_backtrace(1);
6808 }
6809 var16 = ((long (*)(val*))(var15->class->vft[COLOR_abstract_collection__Collection__length]))(var15) /* length on <var15:ANodes[AType]>*/;
6810 var17 = BOX_kernel__Int(var14); /* autobox from Int to Discrete */
6811 var18 = BOX_kernel__Int(var16); /* autobox from Int to Discrete */
6812 ((void (*)(val*, val*, val*))(var13->class->vft[COLOR_range__Range__without_last]))(var13, var17, var18) /* without_last on <var13:Range[Int]>*/;
6813 var19 = ((val* (*)(val*))(var13->class->vft[COLOR_abstract_collection__Collection__iterator]))(var13) /* iterator on <var13:Range[Int]>*/;
6814 for(;;) {
6815 var20 = ((short int (*)(val*))(var19->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var19) /* is_ok on <var19:Iterator[nullable Object]>*/;
6816 if(!var20) break;
6817 var21 = ((val* (*)(val*))(var19->class->vft[COLOR_abstract_collection__Iterator__item]))(var19) /* item on <var19:Iterator[nullable Object]>*/;
6818 var22 = ((struct instance_kernel__Int*)var21)->value; /* autounbox from nullable Object to Int */;
6819 var_i = var22;
6820 var23 = self->attrs[COLOR_parser_nodes__AType___n_types].val; /* _n_types on <self:AType> */
6821 if (var23 == NULL) {
6822 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_types");
6823 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4274);
6824 show_backtrace(1);
6825 }
6826 var24 = ((val* (*)(val*, long))(var23->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var23, var_i) /* [] on <var23:ANodes[AType]>*/;
6827 var25 = ((short int (*)(val*, val*))(var24->class->vft[COLOR_kernel__Object___61d_61d]))(var24, var_old_child) /* == on <var24:nullable Object(AType)>*/;
6828 if (var25){
6829 var26 = NULL;
6830 if (var_new_child == NULL) {
6831 var27 = 0; /* is null */
6832 } else {
6833 var27 = 1; /* arg is null and recv is not */
6834 }
6835 if (var27){
6836 /* <var_new_child:nullable ANode(ANode)> isa AType */
6837 cltype29 = type_parser_nodes__AType.color;
6838 idtype30 = type_parser_nodes__AType.id;
6839 if(cltype29 >= var_new_child->type->table_size) {
6840 var28 = 0;
6841 } else {
6842 var28 = var_new_child->type->type_table[cltype29] == idtype30;
6843 }
6844 if (!var28) {
6845 fprintf(stderr, "Runtime error: %s", "Assert failed");
6846 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4276);
6847 show_backtrace(1);
6848 }
6849 var31 = self->attrs[COLOR_parser_nodes__AType___n_types].val; /* _n_types on <self:AType> */
6850 if (var31 == NULL) {
6851 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_types");
6852 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4277);
6853 show_backtrace(1);
6854 }
6855 ((void (*)(val*, long, val*))(var31->class->vft[COLOR_abstract_collection__Sequence___91d_93d_61d]))(var31, var_i, var_new_child) /* []= on <var31:ANodes[AType]>*/;
6856 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(AType)>*/;
6857 } else {
6858 var32 = self->attrs[COLOR_parser_nodes__AType___n_types].val; /* _n_types on <self:AType> */
6859 if (var32 == NULL) {
6860 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_types");
6861 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4280);
6862 show_backtrace(1);
6863 }
6864 ((void (*)(val*, long))(var32->class->vft[COLOR_abstract_collection__Sequence__remove_at]))(var32, var_i) /* remove_at on <var32:ANodes[AType]>*/;
6865 }
6866 goto RET_LABEL;
6867 } else {
6868 }
6869 CONTINUE_label: (void)0;
6870 ((void (*)(val*))(var19->class->vft[COLOR_abstract_collection__Iterator__next]))(var19) /* next on <var19:Iterator[nullable Object]>*/;
6871 }
6872 BREAK_label: (void)0;
6873 var33 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AType> */
6874 if (var33 == NULL) {
6875 var34 = 0; /* <var_old_child:ANode> cannot be null */
6876 } else {
6877 var34 = ((short int (*)(val*, val*))(var33->class->vft[COLOR_kernel__Object___61d_61d]))(var33, var_old_child) /* == on <var33:nullable AAnnotations>*/;
6878 }
6879 if (var34){
6880 var35 = NULL;
6881 if (var_new_child == NULL) {
6882 var36 = 0; /* is null */
6883 } else {
6884 var36 = 1; /* arg is null and recv is not */
6885 }
6886 if (var36){
6887 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
6888 /* <var_new_child:nullable ANode(ANode)> isa AAnnotations */
6889 cltype38 = type_parser_nodes__AAnnotations.color;
6890 idtype39 = type_parser_nodes__AAnnotations.id;
6891 if(cltype38 >= var_new_child->type->table_size) {
6892 var37 = 0;
6893 } else {
6894 var37 = var_new_child->type->type_table[cltype38] == idtype39;
6895 }
6896 if (!var37) {
6897 fprintf(stderr, "Runtime error: %s", "Assert failed");
6898 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4288);
6899 show_backtrace(1);
6900 }
6901 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_new_child; /* _n_annotations on <self:AType> */
6902 } else {
6903 var40 = NULL;
6904 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var40; /* _n_annotations on <self:AType> */
6905 }
6906 goto RET_LABEL;
6907 } else {
6908 }
6909 RET_LABEL:;
6910 }
6911 /* method parser_prod#AType#replace_child for (self: Object, ANode, nullable ANode) */
6912 void VIRTUAL_parser_prod__AType__replace_child(val* self, val* p0, val* p1) {
6913 parser_prod__AType__replace_child(self, p0, p1);
6914 RET_LABEL:;
6915 }
6916 /* method parser_prod#AType#n_kwnullable= for (self: AType, nullable TKwnullable) */
6917 void parser_prod__AType__n_kwnullable_61d(val* self, val* p0) {
6918 val* var_node /* var node: nullable TKwnullable */;
6919 val* var /* : null */;
6920 short int var1 /* : Bool */;
6921 var_node = p0;
6922 self->attrs[COLOR_parser_nodes__AType___n_kwnullable].val = var_node; /* _n_kwnullable on <self:AType> */
6923 var = NULL;
6924 if (var_node == NULL) {
6925 var1 = 0; /* is null */
6926 } else {
6927 var1 = 1; /* arg is null and recv is not */
6928 }
6929 if (var1){
6930 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable TKwnullable(TKwnullable)>*/;
6931 } else {
6932 }
6933 RET_LABEL:;
6934 }
6935 /* method parser_prod#AType#n_kwnullable= for (self: Object, nullable TKwnullable) */
6936 void VIRTUAL_parser_prod__AType__n_kwnullable_61d(val* self, val* p0) {
6937 parser_prod__AType__n_kwnullable_61d(self, p0);
6938 RET_LABEL:;
6939 }
6940 /* method parser_prod#AType#n_id= for (self: AType, TClassid) */
6941 void parser_prod__AType__n_id_61d(val* self, val* p0) {
6942 val* var_node /* var node: TClassid */;
6943 var_node = p0;
6944 self->attrs[COLOR_parser_nodes__AType___n_id].val = var_node; /* _n_id on <self:AType> */
6945 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TClassid>*/;
6946 RET_LABEL:;
6947 }
6948 /* method parser_prod#AType#n_id= for (self: Object, TClassid) */
6949 void VIRTUAL_parser_prod__AType__n_id_61d(val* self, val* p0) {
6950 parser_prod__AType__n_id_61d(self, p0);
6951 RET_LABEL:;
6952 }
6953 /* method parser_prod#AType#n_annotations= for (self: AType, nullable AAnnotations) */
6954 void parser_prod__AType__n_annotations_61d(val* self, val* p0) {
6955 val* var_node /* var node: nullable AAnnotations */;
6956 val* var /* : null */;
6957 short int var1 /* : Bool */;
6958 var_node = p0;
6959 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_node; /* _n_annotations on <self:AType> */
6960 var = NULL;
6961 if (var_node == NULL) {
6962 var1 = 0; /* is null */
6963 } else {
6964 var1 = 1; /* arg is null and recv is not */
6965 }
6966 if (var1){
6967 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable AAnnotations(AAnnotations)>*/;
6968 } else {
6969 }
6970 RET_LABEL:;
6971 }
6972 /* method parser_prod#AType#n_annotations= for (self: Object, nullable AAnnotations) */
6973 void VIRTUAL_parser_prod__AType__n_annotations_61d(val* self, val* p0) {
6974 parser_prod__AType__n_annotations_61d(self, p0);
6975 RET_LABEL:;
6976 }
6977 /* method parser_prod#AType#visit_all for (self: AType, Visitor) */
6978 void parser_prod__AType__visit_all(val* self, val* p0) {
6979 val* var_v /* var v: Visitor */;
6980 val* var /* : nullable TKwnullable */;
6981 val* var1 /* : null */;
6982 short int var2 /* : Bool */;
6983 val* var3 /* : nullable TKwnullable */;
6984 val* var4 /* : TClassid */;
6985 val* var5 /* : ANodes[AType] */;
6986 val* var6 /* : Iterator[nullable Object] */;
6987 short int var7 /* : Bool */;
6988 val* var8 /* : nullable Object */;
6989 val* var_n /* var n: AType */;
6990 val* var9 /* : nullable AAnnotations */;
6991 val* var10 /* : null */;
6992 short int var11 /* : Bool */;
6993 val* var12 /* : nullable AAnnotations */;
6994 var_v = p0;
6995 var = self->attrs[COLOR_parser_nodes__AType___n_kwnullable].val; /* _n_kwnullable on <self:AType> */
6996 var1 = NULL;
6997 if (var == NULL) {
6998 var2 = 0; /* is null */
6999 } else {
7000 var2 = 1; /* arg is null and recv is not */
7001 }
7002 if (var2){
7003 var3 = self->attrs[COLOR_parser_nodes__AType___n_kwnullable].val; /* _n_kwnullable on <self:AType> */
7004 if (var3 == NULL) {
7005 fprintf(stderr, "Runtime error: %s", "Cast failed");
7006 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4321);
7007 show_backtrace(1);
7008 }
7009 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var3) /* enter_visit on <var_v:Visitor>*/;
7010 } else {
7011 }
7012 var4 = self->attrs[COLOR_parser_nodes__AType___n_id].val; /* _n_id on <self:AType> */
7013 if (var4 == NULL) {
7014 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_id");
7015 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4323);
7016 show_backtrace(1);
7017 }
7018 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var4) /* enter_visit on <var_v:Visitor>*/;
7019 var5 = self->attrs[COLOR_parser_nodes__AType___n_types].val; /* _n_types on <self:AType> */
7020 if (var5 == NULL) {
7021 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_types");
7022 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4324);
7023 show_backtrace(1);
7024 }
7025 var6 = ((val* (*)(val*))(var5->class->vft[COLOR_abstract_collection__Collection__iterator]))(var5) /* iterator on <var5:ANodes[AType]>*/;
7026 for(;;) {
7027 var7 = ((short int (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var6) /* is_ok on <var6:Iterator[nullable Object]>*/;
7028 if(!var7) break;
7029 var8 = ((val* (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__item]))(var6) /* item on <var6:Iterator[nullable Object]>*/;
7030 var_n = var8;
7031 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var_n) /* enter_visit on <var_v:Visitor>*/;
7032 CONTINUE_label: (void)0;
7033 ((void (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__next]))(var6) /* next on <var6:Iterator[nullable Object]>*/;
7034 }
7035 BREAK_label: (void)0;
7036 var9 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AType> */
7037 var10 = NULL;
7038 if (var9 == NULL) {
7039 var11 = 0; /* is null */
7040 } else {
7041 var11 = 1; /* arg is null and recv is not */
7042 }
7043 if (var11){
7044 var12 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AType> */
7045 if (var12 == NULL) {
7046 fprintf(stderr, "Runtime error: %s", "Cast failed");
7047 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4328);
7048 show_backtrace(1);
7049 }
7050 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var12) /* enter_visit on <var_v:Visitor>*/;
7051 } else {
7052 }
7053 RET_LABEL:;
7054 }
7055 /* method parser_prod#AType#visit_all for (self: Object, Visitor) */
7056 void VIRTUAL_parser_prod__AType__visit_all(val* self, val* p0) {
7057 parser_prod__AType__visit_all(self, p0);
7058 RET_LABEL:;
7059 }
7060 /* method parser_prod#ALabel#empty_init for (self: ALabel) */
7061 void parser_prod__ALabel__empty_init(val* self) {
7062 RET_LABEL:;
7063 }
7064 /* method parser_prod#ALabel#empty_init for (self: Object) */
7065 void VIRTUAL_parser_prod__ALabel__empty_init(val* self) {
7066 parser_prod__ALabel__empty_init(self);
7067 RET_LABEL:;
7068 }
7069 /* method parser_prod#ALabel#init_alabel for (self: ALabel, nullable TKwlabel, nullable TId) */
7070 void parser_prod__ALabel__init_alabel(val* self, val* p0, val* p1) {
7071 val* var_n_kwlabel /* var n_kwlabel: nullable TKwlabel */;
7072 val* var_n_id /* var n_id: nullable TId */;
7073 var_n_kwlabel = p0;
7074 var_n_id = p1;
7075 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__ALabel__empty_init]))(self) /* empty_init on <self:ALabel>*/;
7076 if (var_n_kwlabel == NULL) {
7077 fprintf(stderr, "Runtime error: %s", "Cast failed");
7078 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4341);
7079 show_backtrace(1);
7080 }
7081 self->attrs[COLOR_parser_nodes__ALabel___n_kwlabel].val = var_n_kwlabel; /* _n_kwlabel on <self:ALabel> */
7082 if (var_n_kwlabel == NULL) {
7083 fprintf(stderr, "Runtime error: %s", "Reciever is null");
7084 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4342);
7085 show_backtrace(1);
7086 } else {
7087 ((void (*)(val*, val*))(var_n_kwlabel->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_kwlabel, self) /* parent= on <var_n_kwlabel:nullable TKwlabel>*/;
7088 }
7089 if (var_n_id == NULL) {
7090 fprintf(stderr, "Runtime error: %s", "Cast failed");
7091 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4343);
7092 show_backtrace(1);
7093 }
7094 self->attrs[COLOR_parser_nodes__ALabel___n_id].val = var_n_id; /* _n_id on <self:ALabel> */
7095 if (var_n_id == NULL) {
7096 fprintf(stderr, "Runtime error: %s", "Reciever is null");
7097 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4344);
7098 show_backtrace(1);
7099 } else {
7100 ((void (*)(val*, val*))(var_n_id->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_id, self) /* parent= on <var_n_id:nullable TId>*/;
7101 }
7102 RET_LABEL:;
7103 }
7104 /* method parser_prod#ALabel#init_alabel for (self: Object, nullable TKwlabel, nullable TId) */
7105 void VIRTUAL_parser_prod__ALabel__init_alabel(val* self, val* p0, val* p1) {
7106 parser_prod__ALabel__init_alabel(self, p0, p1);
7107 RET_LABEL:;
7108 }
7109 /* method parser_prod#ALabel#replace_child for (self: ALabel, ANode, nullable ANode) */
7110 void parser_prod__ALabel__replace_child(val* self, val* p0, val* p1) {
7111 val* var_old_child /* var old_child: ANode */;
7112 val* var_new_child /* var new_child: nullable ANode */;
7113 val* var /* : TKwlabel */;
7114 short int var1 /* : Bool */;
7115 val* var2 /* : null */;
7116 short int var3 /* : Bool */;
7117 short int var4 /* : Bool */;
7118 int cltype;
7119 int idtype;
7120 val* var5 /* : TId */;
7121 short int var6 /* : Bool */;
7122 val* var7 /* : null */;
7123 short int var8 /* : Bool */;
7124 short int var9 /* : Bool */;
7125 int cltype10;
7126 int idtype11;
7127 var_old_child = p0;
7128 var_new_child = p1;
7129 var = self->attrs[COLOR_parser_nodes__ALabel___n_kwlabel].val; /* _n_kwlabel on <self:ALabel> */
7130 if (var == NULL) {
7131 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwlabel");
7132 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4349);
7133 show_backtrace(1);
7134 }
7135 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:TKwlabel>*/;
7136 if (var1){
7137 var2 = NULL;
7138 if (var_new_child == NULL) {
7139 var3 = 0; /* is null */
7140 } else {
7141 var3 = 1; /* arg is null and recv is not */
7142 }
7143 if (var3){
7144 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
7145 /* <var_new_child:nullable ANode(ANode)> isa TKwlabel */
7146 cltype = type_parser_nodes__TKwlabel.color;
7147 idtype = type_parser_nodes__TKwlabel.id;
7148 if(cltype >= var_new_child->type->table_size) {
7149 var4 = 0;
7150 } else {
7151 var4 = var_new_child->type->type_table[cltype] == idtype;
7152 }
7153 if (!var4) {
7154 fprintf(stderr, "Runtime error: %s", "Assert failed");
7155 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4352);
7156 show_backtrace(1);
7157 }
7158 self->attrs[COLOR_parser_nodes__ALabel___n_kwlabel].val = var_new_child; /* _n_kwlabel on <self:ALabel> */
7159 } else {
7160 fprintf(stderr, "Runtime error: %s", "Aborted");
7161 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4355);
7162 show_backtrace(1);
7163 }
7164 goto RET_LABEL;
7165 } else {
7166 }
7167 var5 = self->attrs[COLOR_parser_nodes__ALabel___n_id].val; /* _n_id on <self:ALabel> */
7168 if (var5 == NULL) {
7169 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_id");
7170 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4359);
7171 show_backtrace(1);
7172 }
7173 var6 = ((short int (*)(val*, val*))(var5->class->vft[COLOR_kernel__Object___61d_61d]))(var5, var_old_child) /* == on <var5:TId>*/;
7174 if (var6){
7175 var7 = NULL;
7176 if (var_new_child == NULL) {
7177 var8 = 0; /* is null */
7178 } else {
7179 var8 = 1; /* arg is null and recv is not */
7180 }
7181 if (var8){
7182 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
7183 /* <var_new_child:nullable ANode(ANode)> isa TId */
7184 cltype10 = type_parser_nodes__TId.color;
7185 idtype11 = type_parser_nodes__TId.id;
7186 if(cltype10 >= var_new_child->type->table_size) {
7187 var9 = 0;
7188 } else {
7189 var9 = var_new_child->type->type_table[cltype10] == idtype11;
7190 }
7191 if (!var9) {
7192 fprintf(stderr, "Runtime error: %s", "Assert failed");
7193 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4362);
7194 show_backtrace(1);
7195 }
7196 self->attrs[COLOR_parser_nodes__ALabel___n_id].val = var_new_child; /* _n_id on <self:ALabel> */
7197 } else {
7198 fprintf(stderr, "Runtime error: %s", "Aborted");
7199 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4365);
7200 show_backtrace(1);
7201 }
7202 goto RET_LABEL;
7203 } else {
7204 }
7205 RET_LABEL:;
7206 }
7207 /* method parser_prod#ALabel#replace_child for (self: Object, ANode, nullable ANode) */
7208 void VIRTUAL_parser_prod__ALabel__replace_child(val* self, val* p0, val* p1) {
7209 parser_prod__ALabel__replace_child(self, p0, p1);
7210 RET_LABEL:;
7211 }
7212 /* method parser_prod#ALabel#n_kwlabel= for (self: ALabel, TKwlabel) */
7213 void parser_prod__ALabel__n_kwlabel_61d(val* self, val* p0) {
7214 val* var_node /* var node: TKwlabel */;
7215 var_node = p0;
7216 self->attrs[COLOR_parser_nodes__ALabel___n_kwlabel].val = var_node; /* _n_kwlabel on <self:ALabel> */
7217 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TKwlabel>*/;
7218 RET_LABEL:;
7219 }
7220 /* method parser_prod#ALabel#n_kwlabel= for (self: Object, TKwlabel) */
7221 void VIRTUAL_parser_prod__ALabel__n_kwlabel_61d(val* self, val* p0) {
7222 parser_prod__ALabel__n_kwlabel_61d(self, p0);
7223 RET_LABEL:;
7224 }
7225 /* method parser_prod#ALabel#n_id= for (self: ALabel, TId) */
7226 void parser_prod__ALabel__n_id_61d(val* self, val* p0) {
7227 val* var_node /* var node: TId */;
7228 var_node = p0;
7229 self->attrs[COLOR_parser_nodes__ALabel___n_id].val = var_node; /* _n_id on <self:ALabel> */
7230 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TId>*/;
7231 RET_LABEL:;
7232 }
7233 /* method parser_prod#ALabel#n_id= for (self: Object, TId) */
7234 void VIRTUAL_parser_prod__ALabel__n_id_61d(val* self, val* p0) {
7235 parser_prod__ALabel__n_id_61d(self, p0);
7236 RET_LABEL:;
7237 }
7238 /* method parser_prod#ALabel#visit_all for (self: ALabel, Visitor) */
7239 void parser_prod__ALabel__visit_all(val* self, val* p0) {
7240 val* var_v /* var v: Visitor */;
7241 val* var /* : TKwlabel */;
7242 val* var1 /* : TId */;
7243 var_v = p0;
7244 var = self->attrs[COLOR_parser_nodes__ALabel___n_kwlabel].val; /* _n_kwlabel on <self:ALabel> */
7245 if (var == NULL) {
7246 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwlabel");
7247 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4385);
7248 show_backtrace(1);
7249 }
7250 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
7251 var1 = self->attrs[COLOR_parser_nodes__ALabel___n_id].val; /* _n_id on <self:ALabel> */
7252 if (var1 == NULL) {
7253 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_id");
7254 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4386);
7255 show_backtrace(1);
7256 }
7257 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var1) /* enter_visit on <var_v:Visitor>*/;
7258 RET_LABEL:;
7259 }
7260 /* method parser_prod#ALabel#visit_all for (self: Object, Visitor) */
7261 void VIRTUAL_parser_prod__ALabel__visit_all(val* self, val* p0) {
7262 parser_prod__ALabel__visit_all(self, p0);
7263 RET_LABEL:;
7264 }
7265 /* method parser_prod#ABlockExpr#empty_init for (self: ABlockExpr) */
7266 void parser_prod__ABlockExpr__empty_init(val* self) {
7267 RET_LABEL:;
7268 }
7269 /* method parser_prod#ABlockExpr#empty_init for (self: Object) */
7270 void VIRTUAL_parser_prod__ABlockExpr__empty_init(val* self) {
7271 parser_prod__ABlockExpr__empty_init(self);
7272 RET_LABEL:;
7273 }
7274 /* method parser_prod#ABlockExpr#init_ablockexpr for (self: ABlockExpr, Collection[Object], nullable TKwend) */
7275 void parser_prod__ABlockExpr__init_ablockexpr(val* self, val* p0, val* p1) {
7276 val* var_n_expr /* var n_expr: Collection[Object] */;
7277 val* var_n_kwend /* var n_kwend: nullable TKwend */;
7278 val* var /* : Iterator[nullable Object] */;
7279 short int var1 /* : Bool */;
7280 val* var2 /* : nullable Object */;
7281 val* var_n /* var n: Object */;
7282 short int var3 /* : Bool */;
7283 int cltype;
7284 int idtype;
7285 val* var4 /* : ANodes[AExpr] */;
7286 val* var5 /* : null */;
7287 short int var6 /* : Bool */;
7288 var_n_expr = p0;
7289 var_n_kwend = p1;
7290 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__ABlockExpr__empty_init]))(self) /* empty_init on <self:ABlockExpr>*/;
7291 var = ((val* (*)(val*))(var_n_expr->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_n_expr) /* iterator on <var_n_expr:Collection[Object]>*/;
7292 for(;;) {
7293 var1 = ((short int (*)(val*))(var->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var) /* is_ok on <var:Iterator[nullable Object]>*/;
7294 if(!var1) break;
7295 var2 = ((val* (*)(val*))(var->class->vft[COLOR_abstract_collection__Iterator__item]))(var) /* item on <var:Iterator[nullable Object]>*/;
7296 var_n = var2;
7297 /* <var_n:Object> isa AExpr */
7298 cltype = type_parser_nodes__AExpr.color;
7299 idtype = type_parser_nodes__AExpr.id;
7300 if(cltype >= var_n->type->table_size) {
7301 var3 = 0;
7302 } else {
7303 var3 = var_n->type->type_table[cltype] == idtype;
7304 }
7305 if (!var3) {
7306 fprintf(stderr, "Runtime error: %s", "Assert failed");
7307 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4399);
7308 show_backtrace(1);
7309 }
7310 var4 = self->attrs[COLOR_parser_nodes__ABlockExpr___n_expr].val; /* _n_expr on <self:ABlockExpr> */
7311 if (var4 == NULL) {
7312 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_expr");
7313 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4400);
7314 show_backtrace(1);
7315 }
7316 ((void (*)(val*, val*))(var4->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var4, var_n) /* add on <var4:ANodes[AExpr]>*/;
7317 ((void (*)(val*, val*))(var_n->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n, self) /* parent= on <var_n:Object(AExpr)>*/;
7318 CONTINUE_label: (void)0;
7319 ((void (*)(val*))(var->class->vft[COLOR_abstract_collection__Iterator__next]))(var) /* next on <var:Iterator[nullable Object]>*/;
7320 }
7321 BREAK_label: (void)0;
7322 self->attrs[COLOR_parser_nodes__ABlockExpr___n_kwend].val = var_n_kwend; /* _n_kwend on <self:ABlockExpr> */
7323 var5 = NULL;
7324 if (var_n_kwend == NULL) {
7325 var6 = 0; /* is null */
7326 } else {
7327 var6 = 1; /* arg is null and recv is not */
7328 }
7329 if (var6){
7330 ((void (*)(val*, val*))(var_n_kwend->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_kwend, self) /* parent= on <var_n_kwend:nullable TKwend(TKwend)>*/;
7331 } else {
7332 }
7333 RET_LABEL:;
7334 }
7335 /* method parser_prod#ABlockExpr#init_ablockexpr for (self: Object, Collection[Object], nullable TKwend) */
7336 void VIRTUAL_parser_prod__ABlockExpr__init_ablockexpr(val* self, val* p0, val* p1) {
7337 parser_prod__ABlockExpr__init_ablockexpr(self, p0, p1);
7338 RET_LABEL:;
7339 }
7340 /* method parser_prod#ABlockExpr#replace_child for (self: ABlockExpr, ANode, nullable ANode) */
7341 void parser_prod__ABlockExpr__replace_child(val* self, val* p0, val* p1) {
7342 val* var_old_child /* var old_child: ANode */;
7343 val* var_new_child /* var new_child: nullable ANode */;
7344 val* var /* : Range[Int] */;
7345 long var1 /* : Int */;
7346 val* var2 /* : ANodes[AExpr] */;
7347 long var3 /* : Int */;
7348 val* var4 /* : Discrete */;
7349 val* var5 /* : Discrete */;
7350 val* var6 /* : Iterator[nullable Object] */;
7351 short int var7 /* : Bool */;
7352 val* var8 /* : nullable Object */;
7353 long var_i /* var i: Int */;
7354 long var9 /* : Int */;
7355 val* var10 /* : ANodes[AExpr] */;
7356 val* var11 /* : nullable Object */;
7357 short int var12 /* : Bool */;
7358 val* var13 /* : null */;
7359 short int var14 /* : Bool */;
7360 short int var15 /* : Bool */;
7361 int cltype;
7362 int idtype;
7363 val* var16 /* : ANodes[AExpr] */;
7364 val* var17 /* : ANodes[AExpr] */;
7365 val* var18 /* : nullable TKwend */;
7366 short int var19 /* : Bool */;
7367 val* var20 /* : null */;
7368 short int var21 /* : Bool */;
7369 short int var22 /* : Bool */;
7370 int cltype23;
7371 int idtype24;
7372 val* var25 /* : null */;
7373 var_old_child = p0;
7374 var_new_child = p1;
7375 var = NEW_range__Range(&type_range__Rangekernel__Int);
7376 var1 = 0;
7377 var2 = self->attrs[COLOR_parser_nodes__ABlockExpr___n_expr].val; /* _n_expr on <self:ABlockExpr> */
7378 if (var2 == NULL) {
7379 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_expr");
7380 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4411);
7381 show_backtrace(1);
7382 }
7383 var3 = ((long (*)(val*))(var2->class->vft[COLOR_abstract_collection__Collection__length]))(var2) /* length on <var2:ANodes[AExpr]>*/;
7384 var4 = BOX_kernel__Int(var1); /* autobox from Int to Discrete */
7385 var5 = BOX_kernel__Int(var3); /* autobox from Int to Discrete */
7386 ((void (*)(val*, val*, val*))(var->class->vft[COLOR_range__Range__without_last]))(var, var4, var5) /* without_last on <var:Range[Int]>*/;
7387 var6 = ((val* (*)(val*))(var->class->vft[COLOR_abstract_collection__Collection__iterator]))(var) /* iterator on <var:Range[Int]>*/;
7388 for(;;) {
7389 var7 = ((short int (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var6) /* is_ok on <var6:Iterator[nullable Object]>*/;
7390 if(!var7) break;
7391 var8 = ((val* (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__item]))(var6) /* item on <var6:Iterator[nullable Object]>*/;
7392 var9 = ((struct instance_kernel__Int*)var8)->value; /* autounbox from nullable Object to Int */;
7393 var_i = var9;
7394 var10 = self->attrs[COLOR_parser_nodes__ABlockExpr___n_expr].val; /* _n_expr on <self:ABlockExpr> */
7395 if (var10 == NULL) {
7396 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_expr");
7397 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4412);
7398 show_backtrace(1);
7399 }
7400 var11 = ((val* (*)(val*, long))(var10->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var10, var_i) /* [] on <var10:ANodes[AExpr]>*/;
7401 var12 = ((short int (*)(val*, val*))(var11->class->vft[COLOR_kernel__Object___61d_61d]))(var11, var_old_child) /* == on <var11:nullable Object(AExpr)>*/;
7402 if (var12){
7403 var13 = NULL;
7404 if (var_new_child == NULL) {
7405 var14 = 0; /* is null */
7406 } else {
7407 var14 = 1; /* arg is null and recv is not */
7408 }
7409 if (var14){
7410 /* <var_new_child:nullable ANode(ANode)> isa AExpr */
7411 cltype = type_parser_nodes__AExpr.color;
7412 idtype = type_parser_nodes__AExpr.id;
7413 if(cltype >= var_new_child->type->table_size) {
7414 var15 = 0;
7415 } else {
7416 var15 = var_new_child->type->type_table[cltype] == idtype;
7417 }
7418 if (!var15) {
7419 fprintf(stderr, "Runtime error: %s", "Assert failed");
7420 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4414);
7421 show_backtrace(1);
7422 }
7423 var16 = self->attrs[COLOR_parser_nodes__ABlockExpr___n_expr].val; /* _n_expr on <self:ABlockExpr> */
7424 if (var16 == NULL) {
7425 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_expr");
7426 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4415);
7427 show_backtrace(1);
7428 }
7429 ((void (*)(val*, long, val*))(var16->class->vft[COLOR_abstract_collection__Sequence___91d_93d_61d]))(var16, var_i, var_new_child) /* []= on <var16:ANodes[AExpr]>*/;
7430 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(AExpr)>*/;
7431 } else {
7432 var17 = self->attrs[COLOR_parser_nodes__ABlockExpr___n_expr].val; /* _n_expr on <self:ABlockExpr> */
7433 if (var17 == NULL) {
7434 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_expr");
7435 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4418);
7436 show_backtrace(1);
7437 }
7438 ((void (*)(val*, long))(var17->class->vft[COLOR_abstract_collection__Sequence__remove_at]))(var17, var_i) /* remove_at on <var17:ANodes[AExpr]>*/;
7439 }
7440 goto RET_LABEL;
7441 } else {
7442 }
7443 CONTINUE_label: (void)0;
7444 ((void (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__next]))(var6) /* next on <var6:Iterator[nullable Object]>*/;
7445 }
7446 BREAK_label: (void)0;
7447 var18 = self->attrs[COLOR_parser_nodes__ABlockExpr___n_kwend].val; /* _n_kwend on <self:ABlockExpr> */
7448 if (var18 == NULL) {
7449 var19 = 0; /* <var_old_child:ANode> cannot be null */
7450 } else {
7451 var19 = ((short int (*)(val*, val*))(var18->class->vft[COLOR_kernel__Object___61d_61d]))(var18, var_old_child) /* == on <var18:nullable TKwend>*/;
7452 }
7453 if (var19){
7454 var20 = NULL;
7455 if (var_new_child == NULL) {
7456 var21 = 0; /* is null */
7457 } else {
7458 var21 = 1; /* arg is null and recv is not */
7459 }
7460 if (var21){
7461 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
7462 /* <var_new_child:nullable ANode(ANode)> isa TKwend */
7463 cltype23 = type_parser_nodes__TKwend.color;
7464 idtype24 = type_parser_nodes__TKwend.id;
7465 if(cltype23 >= var_new_child->type->table_size) {
7466 var22 = 0;
7467 } else {
7468 var22 = var_new_child->type->type_table[cltype23] == idtype24;
7469 }
7470 if (!var22) {
7471 fprintf(stderr, "Runtime error: %s", "Assert failed");
7472 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4426);
7473 show_backtrace(1);
7474 }
7475 self->attrs[COLOR_parser_nodes__ABlockExpr___n_kwend].val = var_new_child; /* _n_kwend on <self:ABlockExpr> */
7476 } else {
7477 var25 = NULL;
7478 self->attrs[COLOR_parser_nodes__ABlockExpr___n_kwend].val = var25; /* _n_kwend on <self:ABlockExpr> */
7479 }
7480 goto RET_LABEL;
7481 } else {
7482 }
7483 RET_LABEL:;
7484 }
7485 /* method parser_prod#ABlockExpr#replace_child for (self: Object, ANode, nullable ANode) */
7486 void VIRTUAL_parser_prod__ABlockExpr__replace_child(val* self, val* p0, val* p1) {
7487 parser_prod__ABlockExpr__replace_child(self, p0, p1);
7488 RET_LABEL:;
7489 }
7490 /* method parser_prod#ABlockExpr#n_kwend= for (self: ABlockExpr, nullable TKwend) */
7491 void parser_prod__ABlockExpr__n_kwend_61d(val* self, val* p0) {
7492 val* var_node /* var node: nullable TKwend */;
7493 val* var /* : null */;
7494 short int var1 /* : Bool */;
7495 var_node = p0;
7496 self->attrs[COLOR_parser_nodes__ABlockExpr___n_kwend].val = var_node; /* _n_kwend on <self:ABlockExpr> */
7497 var = NULL;
7498 if (var_node == NULL) {
7499 var1 = 0; /* is null */
7500 } else {
7501 var1 = 1; /* arg is null and recv is not */
7502 }
7503 if (var1){
7504 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable TKwend(TKwend)>*/;
7505 } else {
7506 }
7507 RET_LABEL:;
7508 }
7509 /* method parser_prod#ABlockExpr#n_kwend= for (self: Object, nullable TKwend) */
7510 void VIRTUAL_parser_prod__ABlockExpr__n_kwend_61d(val* self, val* p0) {
7511 parser_prod__ABlockExpr__n_kwend_61d(self, p0);
7512 RET_LABEL:;
7513 }
7514 /* method parser_prod#ABlockExpr#visit_all for (self: ABlockExpr, Visitor) */
7515 void parser_prod__ABlockExpr__visit_all(val* self, val* p0) {
7516 val* var_v /* var v: Visitor */;
7517 val* var /* : ANodes[AExpr] */;
7518 val* var1 /* : Iterator[nullable Object] */;
7519 short int var2 /* : Bool */;
7520 val* var3 /* : nullable Object */;
7521 val* var_n /* var n: AExpr */;
7522 val* var4 /* : nullable TKwend */;
7523 val* var5 /* : null */;
7524 short int var6 /* : Bool */;
7525 val* var7 /* : nullable TKwend */;
7526 var_v = p0;
7527 var = self->attrs[COLOR_parser_nodes__ABlockExpr___n_expr].val; /* _n_expr on <self:ABlockExpr> */
7528 if (var == NULL) {
7529 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_expr");
7530 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4446);
7531 show_backtrace(1);
7532 }
7533 var1 = ((val* (*)(val*))(var->class->vft[COLOR_abstract_collection__Collection__iterator]))(var) /* iterator on <var:ANodes[AExpr]>*/;
7534 for(;;) {
7535 var2 = ((short int (*)(val*))(var1->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var1) /* is_ok on <var1:Iterator[nullable Object]>*/;
7536 if(!var2) break;
7537 var3 = ((val* (*)(val*))(var1->class->vft[COLOR_abstract_collection__Iterator__item]))(var1) /* item on <var1:Iterator[nullable Object]>*/;
7538 var_n = var3;
7539 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var_n) /* enter_visit on <var_v:Visitor>*/;
7540 CONTINUE_label: (void)0;
7541 ((void (*)(val*))(var1->class->vft[COLOR_abstract_collection__Iterator__next]))(var1) /* next on <var1:Iterator[nullable Object]>*/;
7542 }
7543 BREAK_label: (void)0;
7544 var4 = self->attrs[COLOR_parser_nodes__ABlockExpr___n_kwend].val; /* _n_kwend on <self:ABlockExpr> */
7545 var5 = NULL;
7546 if (var4 == NULL) {
7547 var6 = 0; /* is null */
7548 } else {
7549 var6 = 1; /* arg is null and recv is not */
7550 }
7551 if (var6){
7552 var7 = self->attrs[COLOR_parser_nodes__ABlockExpr___n_kwend].val; /* _n_kwend on <self:ABlockExpr> */
7553 if (var7 == NULL) {
7554 fprintf(stderr, "Runtime error: %s", "Cast failed");
7555 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4450);
7556 show_backtrace(1);
7557 }
7558 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var7) /* enter_visit on <var_v:Visitor>*/;
7559 } else {
7560 }
7561 RET_LABEL:;
7562 }
7563 /* method parser_prod#ABlockExpr#visit_all for (self: Object, Visitor) */
7564 void VIRTUAL_parser_prod__ABlockExpr__visit_all(val* self, val* p0) {
7565 parser_prod__ABlockExpr__visit_all(self, p0);
7566 RET_LABEL:;
7567 }
7568 /* method parser_prod#AVardeclExpr#empty_init for (self: AVardeclExpr) */
7569 void parser_prod__AVardeclExpr__empty_init(val* self) {
7570 RET_LABEL:;
7571 }
7572 /* method parser_prod#AVardeclExpr#empty_init for (self: Object) */
7573 void VIRTUAL_parser_prod__AVardeclExpr__empty_init(val* self) {
7574 parser_prod__AVardeclExpr__empty_init(self);
7575 RET_LABEL:;
7576 }
7577 /* method parser_prod#AVardeclExpr#init_avardeclexpr for (self: AVardeclExpr, nullable TKwvar, nullable TId, nullable AType, nullable TAssign, nullable AExpr, nullable AAnnotations) */
7578 void parser_prod__AVardeclExpr__init_avardeclexpr(val* self, val* p0, val* p1, val* p2, val* p3, val* p4, val* p5) {
7579 val* var_n_kwvar /* var n_kwvar: nullable TKwvar */;
7580 val* var_n_id /* var n_id: nullable TId */;
7581 val* var_n_type /* var n_type: nullable AType */;
7582 val* var_n_assign /* var n_assign: nullable TAssign */;
7583 val* var_n_expr /* var n_expr: nullable AExpr */;
7584 val* var_n_annotations /* var n_annotations: nullable AAnnotations */;
7585 val* var /* : null */;
7586 short int var1 /* : Bool */;
7587 val* var2 /* : null */;
7588 short int var3 /* : Bool */;
7589 val* var4 /* : null */;
7590 short int var5 /* : Bool */;
7591 val* var6 /* : null */;
7592 short int var7 /* : Bool */;
7593 var_n_kwvar = p0;
7594 var_n_id = p1;
7595 var_n_type = p2;
7596 var_n_assign = p3;
7597 var_n_expr = p4;
7598 var_n_annotations = p5;
7599 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__AVardeclExpr__empty_init]))(self) /* empty_init on <self:AVardeclExpr>*/;
7600 if (var_n_kwvar == NULL) {
7601 fprintf(stderr, "Runtime error: %s", "Cast failed");
7602 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4467);
7603 show_backtrace(1);
7604 }
7605 self->attrs[COLOR_parser_nodes__AVardeclExpr___n_kwvar].val = var_n_kwvar; /* _n_kwvar on <self:AVardeclExpr> */
7606 if (var_n_kwvar == NULL) {
7607 fprintf(stderr, "Runtime error: %s", "Reciever is null");
7608 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4468);
7609 show_backtrace(1);
7610 } else {
7611 ((void (*)(val*, val*))(var_n_kwvar->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_kwvar, self) /* parent= on <var_n_kwvar:nullable TKwvar>*/;
7612 }
7613 if (var_n_id == NULL) {
7614 fprintf(stderr, "Runtime error: %s", "Cast failed");
7615 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4469);
7616 show_backtrace(1);
7617 }
7618 self->attrs[COLOR_parser_nodes__AVardeclExpr___n_id].val = var_n_id; /* _n_id on <self:AVardeclExpr> */
7619 if (var_n_id == NULL) {
7620 fprintf(stderr, "Runtime error: %s", "Reciever is null");
7621 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4470);
7622 show_backtrace(1);
7623 } else {
7624 ((void (*)(val*, val*))(var_n_id->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_id, self) /* parent= on <var_n_id:nullable TId>*/;
7625 }
7626 self->attrs[COLOR_parser_nodes__AVardeclExpr___n_type].val = var_n_type; /* _n_type on <self:AVardeclExpr> */
7627 var = NULL;
7628 if (var_n_type == NULL) {
7629 var1 = 0; /* is null */
7630 } else {
7631 var1 = 1; /* arg is null and recv is not */
7632 }
7633 if (var1){
7634 ((void (*)(val*, val*))(var_n_type->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_type, self) /* parent= on <var_n_type:nullable AType(AType)>*/;
7635 } else {
7636 }
7637 self->attrs[COLOR_parser_nodes__AVardeclExpr___n_assign].val = var_n_assign; /* _n_assign on <self:AVardeclExpr> */
7638 var2 = NULL;
7639 if (var_n_assign == NULL) {
7640 var3 = 0; /* is null */
7641 } else {
7642 var3 = 1; /* arg is null and recv is not */
7643 }
7644 if (var3){
7645 ((void (*)(val*, val*))(var_n_assign->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_assign, self) /* parent= on <var_n_assign:nullable TAssign(TAssign)>*/;
7646 } else {
7647 }
7648 self->attrs[COLOR_parser_nodes__AVardeclExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AVardeclExpr> */
7649 var4 = NULL;
7650 if (var_n_expr == NULL) {
7651 var5 = 0; /* is null */
7652 } else {
7653 var5 = 1; /* arg is null and recv is not */
7654 }
7655 if (var5){
7656 ((void (*)(val*, val*))(var_n_expr->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_expr, self) /* parent= on <var_n_expr:nullable AExpr(AExpr)>*/;
7657 } else {
7658 }
7659 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:AVardeclExpr> */
7660 var6 = NULL;
7661 if (var_n_annotations == NULL) {
7662 var7 = 0; /* is null */
7663 } else {
7664 var7 = 1; /* arg is null and recv is not */
7665 }
7666 if (var7){
7667 ((void (*)(val*, val*))(var_n_annotations->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_annotations, self) /* parent= on <var_n_annotations:nullable AAnnotations(AAnnotations)>*/;
7668 } else {
7669 }
7670 RET_LABEL:;
7671 }
7672 /* method parser_prod#AVardeclExpr#init_avardeclexpr for (self: Object, nullable TKwvar, nullable TId, nullable AType, nullable TAssign, nullable AExpr, nullable AAnnotations) */
7673 void VIRTUAL_parser_prod__AVardeclExpr__init_avardeclexpr(val* self, val* p0, val* p1, val* p2, val* p3, val* p4, val* p5) {
7674 parser_prod__AVardeclExpr__init_avardeclexpr(self, p0, p1, p2, p3, p4, p5);
7675 RET_LABEL:;
7676 }
7677 /* method parser_prod#AVardeclExpr#replace_child for (self: AVardeclExpr, ANode, nullable ANode) */
7678 void parser_prod__AVardeclExpr__replace_child(val* self, val* p0, val* p1) {
7679 val* var_old_child /* var old_child: ANode */;
7680 val* var_new_child /* var new_child: nullable ANode */;
7681 val* var /* : TKwvar */;
7682 short int var1 /* : Bool */;
7683 val* var2 /* : null */;
7684 short int var3 /* : Bool */;
7685 short int var4 /* : Bool */;
7686 int cltype;
7687 int idtype;
7688 val* var5 /* : TId */;
7689 short int var6 /* : Bool */;
7690 val* var7 /* : null */;
7691 short int var8 /* : Bool */;
7692 short int var9 /* : Bool */;
7693 int cltype10;
7694 int idtype11;
7695 val* var12 /* : nullable AType */;
7696 short int var13 /* : Bool */;
7697 val* var14 /* : null */;
7698 short int var15 /* : Bool */;
7699 short int var16 /* : Bool */;
7700 int cltype17;
7701 int idtype18;
7702 val* var19 /* : null */;
7703 val* var20 /* : nullable TAssign */;
7704 short int var21 /* : Bool */;
7705 val* var22 /* : null */;
7706 short int var23 /* : Bool */;
7707 short int var24 /* : Bool */;
7708 int cltype25;
7709 int idtype26;
7710 val* var27 /* : null */;
7711 val* var28 /* : nullable AExpr */;
7712 short int var29 /* : Bool */;
7713 val* var30 /* : null */;
7714 short int var31 /* : Bool */;
7715 short int var32 /* : Bool */;
7716 int cltype33;
7717 int idtype34;
7718 val* var35 /* : null */;
7719 val* var36 /* : nullable AAnnotations */;
7720 short int var37 /* : Bool */;
7721 val* var38 /* : null */;
7722 short int var39 /* : Bool */;
7723 short int var40 /* : Bool */;
7724 int cltype41;
7725 int idtype42;
7726 val* var43 /* : null */;
7727 var_old_child = p0;
7728 var_new_child = p1;
7729 var = self->attrs[COLOR_parser_nodes__AVardeclExpr___n_kwvar].val; /* _n_kwvar on <self:AVardeclExpr> */
7730 if (var == NULL) {
7731 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwvar");
7732 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4491);
7733 show_backtrace(1);
7734 }
7735 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:TKwvar>*/;
7736 if (var1){
7737 var2 = NULL;
7738 if (var_new_child == NULL) {
7739 var3 = 0; /* is null */
7740 } else {
7741 var3 = 1; /* arg is null and recv is not */
7742 }
7743 if (var3){
7744 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
7745 /* <var_new_child:nullable ANode(ANode)> isa TKwvar */
7746 cltype = type_parser_nodes__TKwvar.color;
7747 idtype = type_parser_nodes__TKwvar.id;
7748 if(cltype >= var_new_child->type->table_size) {
7749 var4 = 0;
7750 } else {
7751 var4 = var_new_child->type->type_table[cltype] == idtype;
7752 }
7753 if (!var4) {
7754 fprintf(stderr, "Runtime error: %s", "Assert failed");
7755 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4494);
7756 show_backtrace(1);
7757 }
7758 self->attrs[COLOR_parser_nodes__AVardeclExpr___n_kwvar].val = var_new_child; /* _n_kwvar on <self:AVardeclExpr> */
7759 } else {
7760 fprintf(stderr, "Runtime error: %s", "Aborted");
7761 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4497);
7762 show_backtrace(1);
7763 }
7764 goto RET_LABEL;
7765 } else {
7766 }
7767 var5 = self->attrs[COLOR_parser_nodes__AVardeclExpr___n_id].val; /* _n_id on <self:AVardeclExpr> */
7768 if (var5 == NULL) {
7769 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_id");
7770 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4501);
7771 show_backtrace(1);
7772 }
7773 var6 = ((short int (*)(val*, val*))(var5->class->vft[COLOR_kernel__Object___61d_61d]))(var5, var_old_child) /* == on <var5:TId>*/;
7774 if (var6){
7775 var7 = NULL;
7776 if (var_new_child == NULL) {
7777 var8 = 0; /* is null */
7778 } else {
7779 var8 = 1; /* arg is null and recv is not */
7780 }
7781 if (var8){
7782 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
7783 /* <var_new_child:nullable ANode(ANode)> isa TId */
7784 cltype10 = type_parser_nodes__TId.color;
7785 idtype11 = type_parser_nodes__TId.id;
7786 if(cltype10 >= var_new_child->type->table_size) {
7787 var9 = 0;
7788 } else {
7789 var9 = var_new_child->type->type_table[cltype10] == idtype11;
7790 }
7791 if (!var9) {
7792 fprintf(stderr, "Runtime error: %s", "Assert failed");
7793 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4504);
7794 show_backtrace(1);
7795 }
7796 self->attrs[COLOR_parser_nodes__AVardeclExpr___n_id].val = var_new_child; /* _n_id on <self:AVardeclExpr> */
7797 } else {
7798 fprintf(stderr, "Runtime error: %s", "Aborted");
7799 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4507);
7800 show_backtrace(1);
7801 }
7802 goto RET_LABEL;
7803 } else {
7804 }
7805 var12 = self->attrs[COLOR_parser_nodes__AVardeclExpr___n_type].val; /* _n_type on <self:AVardeclExpr> */
7806 if (var12 == NULL) {
7807 var13 = 0; /* <var_old_child:ANode> cannot be null */
7808 } else {
7809 var13 = ((short int (*)(val*, val*))(var12->class->vft[COLOR_kernel__Object___61d_61d]))(var12, var_old_child) /* == on <var12:nullable AType>*/;
7810 }
7811 if (var13){
7812 var14 = NULL;
7813 if (var_new_child == NULL) {
7814 var15 = 0; /* is null */
7815 } else {
7816 var15 = 1; /* arg is null and recv is not */
7817 }
7818 if (var15){
7819 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
7820 /* <var_new_child:nullable ANode(ANode)> isa AType */
7821 cltype17 = type_parser_nodes__AType.color;
7822 idtype18 = type_parser_nodes__AType.id;
7823 if(cltype17 >= var_new_child->type->table_size) {
7824 var16 = 0;
7825 } else {
7826 var16 = var_new_child->type->type_table[cltype17] == idtype18;
7827 }
7828 if (!var16) {
7829 fprintf(stderr, "Runtime error: %s", "Assert failed");
7830 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4514);
7831 show_backtrace(1);
7832 }
7833 self->attrs[COLOR_parser_nodes__AVardeclExpr___n_type].val = var_new_child; /* _n_type on <self:AVardeclExpr> */
7834 } else {
7835 var19 = NULL;
7836 self->attrs[COLOR_parser_nodes__AVardeclExpr___n_type].val = var19; /* _n_type on <self:AVardeclExpr> */
7837 }
7838 goto RET_LABEL;
7839 } else {
7840 }
7841 var20 = self->attrs[COLOR_parser_nodes__AVardeclExpr___n_assign].val; /* _n_assign on <self:AVardeclExpr> */
7842 if (var20 == NULL) {
7843 var21 = 0; /* <var_old_child:ANode> cannot be null */
7844 } else {
7845 var21 = ((short int (*)(val*, val*))(var20->class->vft[COLOR_kernel__Object___61d_61d]))(var20, var_old_child) /* == on <var20:nullable TAssign>*/;
7846 }
7847 if (var21){
7848 var22 = NULL;
7849 if (var_new_child == NULL) {
7850 var23 = 0; /* is null */
7851 } else {
7852 var23 = 1; /* arg is null and recv is not */
7853 }
7854 if (var23){
7855 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
7856 /* <var_new_child:nullable ANode(ANode)> isa TAssign */
7857 cltype25 = type_parser_nodes__TAssign.color;
7858 idtype26 = type_parser_nodes__TAssign.id;
7859 if(cltype25 >= var_new_child->type->table_size) {
7860 var24 = 0;
7861 } else {
7862 var24 = var_new_child->type->type_table[cltype25] == idtype26;
7863 }
7864 if (!var24) {
7865 fprintf(stderr, "Runtime error: %s", "Assert failed");
7866 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4524);
7867 show_backtrace(1);
7868 }
7869 self->attrs[COLOR_parser_nodes__AVardeclExpr___n_assign].val = var_new_child; /* _n_assign on <self:AVardeclExpr> */
7870 } else {
7871 var27 = NULL;
7872 self->attrs[COLOR_parser_nodes__AVardeclExpr___n_assign].val = var27; /* _n_assign on <self:AVardeclExpr> */
7873 }
7874 goto RET_LABEL;
7875 } else {
7876 }
7877 var28 = self->attrs[COLOR_parser_nodes__AVardeclExpr___n_expr].val; /* _n_expr on <self:AVardeclExpr> */
7878 if (var28 == NULL) {
7879 var29 = 0; /* <var_old_child:ANode> cannot be null */
7880 } else {
7881 var29 = ((short int (*)(val*, val*))(var28->class->vft[COLOR_kernel__Object___61d_61d]))(var28, var_old_child) /* == on <var28:nullable AExpr>*/;
7882 }
7883 if (var29){
7884 var30 = NULL;
7885 if (var_new_child == NULL) {
7886 var31 = 0; /* is null */
7887 } else {
7888 var31 = 1; /* arg is null and recv is not */
7889 }
7890 if (var31){
7891 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
7892 /* <var_new_child:nullable ANode(ANode)> isa AExpr */
7893 cltype33 = type_parser_nodes__AExpr.color;
7894 idtype34 = type_parser_nodes__AExpr.id;
7895 if(cltype33 >= var_new_child->type->table_size) {
7896 var32 = 0;
7897 } else {
7898 var32 = var_new_child->type->type_table[cltype33] == idtype34;
7899 }
7900 if (!var32) {
7901 fprintf(stderr, "Runtime error: %s", "Assert failed");
7902 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4534);
7903 show_backtrace(1);
7904 }
7905 self->attrs[COLOR_parser_nodes__AVardeclExpr___n_expr].val = var_new_child; /* _n_expr on <self:AVardeclExpr> */
7906 } else {
7907 var35 = NULL;
7908 self->attrs[COLOR_parser_nodes__AVardeclExpr___n_expr].val = var35; /* _n_expr on <self:AVardeclExpr> */
7909 }
7910 goto RET_LABEL;
7911 } else {
7912 }
7913 var36 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AVardeclExpr> */
7914 if (var36 == NULL) {
7915 var37 = 0; /* <var_old_child:ANode> cannot be null */
7916 } else {
7917 var37 = ((short int (*)(val*, val*))(var36->class->vft[COLOR_kernel__Object___61d_61d]))(var36, var_old_child) /* == on <var36:nullable AAnnotations>*/;
7918 }
7919 if (var37){
7920 var38 = NULL;
7921 if (var_new_child == NULL) {
7922 var39 = 0; /* is null */
7923 } else {
7924 var39 = 1; /* arg is null and recv is not */
7925 }
7926 if (var39){
7927 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
7928 /* <var_new_child:nullable ANode(ANode)> isa AAnnotations */
7929 cltype41 = type_parser_nodes__AAnnotations.color;
7930 idtype42 = type_parser_nodes__AAnnotations.id;
7931 if(cltype41 >= var_new_child->type->table_size) {
7932 var40 = 0;
7933 } else {
7934 var40 = var_new_child->type->type_table[cltype41] == idtype42;
7935 }
7936 if (!var40) {
7937 fprintf(stderr, "Runtime error: %s", "Assert failed");
7938 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4544);
7939 show_backtrace(1);
7940 }
7941 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_new_child; /* _n_annotations on <self:AVardeclExpr> */
7942 } else {
7943 var43 = NULL;
7944 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var43; /* _n_annotations on <self:AVardeclExpr> */
7945 }
7946 goto RET_LABEL;
7947 } else {
7948 }
7949 RET_LABEL:;
7950 }
7951 /* method parser_prod#AVardeclExpr#replace_child for (self: Object, ANode, nullable ANode) */
7952 void VIRTUAL_parser_prod__AVardeclExpr__replace_child(val* self, val* p0, val* p1) {
7953 parser_prod__AVardeclExpr__replace_child(self, p0, p1);
7954 RET_LABEL:;
7955 }
7956 /* method parser_prod#AVardeclExpr#n_kwvar= for (self: AVardeclExpr, TKwvar) */
7957 void parser_prod__AVardeclExpr__n_kwvar_61d(val* self, val* p0) {
7958 val* var_node /* var node: TKwvar */;
7959 var_node = p0;
7960 self->attrs[COLOR_parser_nodes__AVardeclExpr___n_kwvar].val = var_node; /* _n_kwvar on <self:AVardeclExpr> */
7961 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TKwvar>*/;
7962 RET_LABEL:;
7963 }
7964 /* method parser_prod#AVardeclExpr#n_kwvar= for (self: Object, TKwvar) */
7965 void VIRTUAL_parser_prod__AVardeclExpr__n_kwvar_61d(val* self, val* p0) {
7966 parser_prod__AVardeclExpr__n_kwvar_61d(self, p0);
7967 RET_LABEL:;
7968 }
7969 /* method parser_prod#AVardeclExpr#n_id= for (self: AVardeclExpr, TId) */
7970 void parser_prod__AVardeclExpr__n_id_61d(val* self, val* p0) {
7971 val* var_node /* var node: TId */;
7972 var_node = p0;
7973 self->attrs[COLOR_parser_nodes__AVardeclExpr___n_id].val = var_node; /* _n_id on <self:AVardeclExpr> */
7974 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TId>*/;
7975 RET_LABEL:;
7976 }
7977 /* method parser_prod#AVardeclExpr#n_id= for (self: Object, TId) */
7978 void VIRTUAL_parser_prod__AVardeclExpr__n_id_61d(val* self, val* p0) {
7979 parser_prod__AVardeclExpr__n_id_61d(self, p0);
7980 RET_LABEL:;
7981 }
7982 /* method parser_prod#AVardeclExpr#n_type= for (self: AVardeclExpr, nullable AType) */
7983 void parser_prod__AVardeclExpr__n_type_61d(val* self, val* p0) {
7984 val* var_node /* var node: nullable AType */;
7985 val* var /* : null */;
7986 short int var1 /* : Bool */;
7987 var_node = p0;
7988 self->attrs[COLOR_parser_nodes__AVardeclExpr___n_type].val = var_node; /* _n_type on <self:AVardeclExpr> */
7989 var = NULL;
7990 if (var_node == NULL) {
7991 var1 = 0; /* is null */
7992 } else {
7993 var1 = 1; /* arg is null and recv is not */
7994 }
7995 if (var1){
7996 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable AType(AType)>*/;
7997 } else {
7998 }
7999 RET_LABEL:;
8000 }
8001 /* method parser_prod#AVardeclExpr#n_type= for (self: Object, nullable AType) */
8002 void VIRTUAL_parser_prod__AVardeclExpr__n_type_61d(val* self, val* p0) {
8003 parser_prod__AVardeclExpr__n_type_61d(self, p0);
8004 RET_LABEL:;
8005 }
8006 /* method parser_prod#AVardeclExpr#n_assign= for (self: AVardeclExpr, nullable TAssign) */
8007 void parser_prod__AVardeclExpr__n_assign_61d(val* self, val* p0) {
8008 val* var_node /* var node: nullable TAssign */;
8009 val* var /* : null */;
8010 short int var1 /* : Bool */;
8011 var_node = p0;
8012 self->attrs[COLOR_parser_nodes__AVardeclExpr___n_assign].val = var_node; /* _n_assign on <self:AVardeclExpr> */
8013 var = NULL;
8014 if (var_node == NULL) {
8015 var1 = 0; /* is null */
8016 } else {
8017 var1 = 1; /* arg is null and recv is not */
8018 }
8019 if (var1){
8020 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable TAssign(TAssign)>*/;
8021 } else {
8022 }
8023 RET_LABEL:;
8024 }
8025 /* method parser_prod#AVardeclExpr#n_assign= for (self: Object, nullable TAssign) */
8026 void VIRTUAL_parser_prod__AVardeclExpr__n_assign_61d(val* self, val* p0) {
8027 parser_prod__AVardeclExpr__n_assign_61d(self, p0);
8028 RET_LABEL:;
8029 }
8030 /* method parser_prod#AVardeclExpr#n_expr= for (self: AVardeclExpr, nullable AExpr) */
8031 void parser_prod__AVardeclExpr__n_expr_61d(val* self, val* p0) {
8032 val* var_node /* var node: nullable AExpr */;
8033 val* var /* : null */;
8034 short int var1 /* : Bool */;
8035 var_node = p0;
8036 self->attrs[COLOR_parser_nodes__AVardeclExpr___n_expr].val = var_node; /* _n_expr on <self:AVardeclExpr> */
8037 var = NULL;
8038 if (var_node == NULL) {
8039 var1 = 0; /* is null */
8040 } else {
8041 var1 = 1; /* arg is null and recv is not */
8042 }
8043 if (var1){
8044 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable AExpr(AExpr)>*/;
8045 } else {
8046 }
8047 RET_LABEL:;
8048 }
8049 /* method parser_prod#AVardeclExpr#n_expr= for (self: Object, nullable AExpr) */
8050 void VIRTUAL_parser_prod__AVardeclExpr__n_expr_61d(val* self, val* p0) {
8051 parser_prod__AVardeclExpr__n_expr_61d(self, p0);
8052 RET_LABEL:;
8053 }
8054 /* method parser_prod#AVardeclExpr#n_annotations= for (self: AVardeclExpr, nullable AAnnotations) */
8055 void parser_prod__AVardeclExpr__n_annotations_61d(val* self, val* p0) {
8056 val* var_node /* var node: nullable AAnnotations */;
8057 val* var /* : null */;
8058 short int var1 /* : Bool */;
8059 var_node = p0;
8060 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_node; /* _n_annotations on <self:AVardeclExpr> */
8061 var = NULL;
8062 if (var_node == NULL) {
8063 var1 = 0; /* is null */
8064 } else {
8065 var1 = 1; /* arg is null and recv is not */
8066 }
8067 if (var1){
8068 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable AAnnotations(AAnnotations)>*/;
8069 } else {
8070 }
8071 RET_LABEL:;
8072 }
8073 /* method parser_prod#AVardeclExpr#n_annotations= for (self: Object, nullable AAnnotations) */
8074 void VIRTUAL_parser_prod__AVardeclExpr__n_annotations_61d(val* self, val* p0) {
8075 parser_prod__AVardeclExpr__n_annotations_61d(self, p0);
8076 RET_LABEL:;
8077 }
8078 /* method parser_prod#AVardeclExpr#visit_all for (self: AVardeclExpr, Visitor) */
8079 void parser_prod__AVardeclExpr__visit_all(val* self, val* p0) {
8080 val* var_v /* var v: Visitor */;
8081 val* var /* : TKwvar */;
8082 val* var1 /* : TId */;
8083 val* var2 /* : nullable AType */;
8084 val* var3 /* : null */;
8085 short int var4 /* : Bool */;
8086 val* var5 /* : nullable AType */;
8087 val* var6 /* : nullable TAssign */;
8088 val* var7 /* : null */;
8089 short int var8 /* : Bool */;
8090 val* var9 /* : nullable TAssign */;
8091 val* var10 /* : nullable AExpr */;
8092 val* var11 /* : null */;
8093 short int var12 /* : Bool */;
8094 val* var13 /* : nullable AExpr */;
8095 val* var14 /* : nullable AAnnotations */;
8096 val* var15 /* : null */;
8097 short int var16 /* : Bool */;
8098 val* var17 /* : nullable AAnnotations */;
8099 var_v = p0;
8100 var = self->attrs[COLOR_parser_nodes__AVardeclExpr___n_kwvar].val; /* _n_kwvar on <self:AVardeclExpr> */
8101 if (var == NULL) {
8102 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwvar");
8103 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4595);
8104 show_backtrace(1);
8105 }
8106 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
8107 var1 = self->attrs[COLOR_parser_nodes__AVardeclExpr___n_id].val; /* _n_id on <self:AVardeclExpr> */
8108 if (var1 == NULL) {
8109 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_id");
8110 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4596);
8111 show_backtrace(1);
8112 }
8113 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var1) /* enter_visit on <var_v:Visitor>*/;
8114 var2 = self->attrs[COLOR_parser_nodes__AVardeclExpr___n_type].val; /* _n_type on <self:AVardeclExpr> */
8115 var3 = NULL;
8116 if (var2 == NULL) {
8117 var4 = 0; /* is null */
8118 } else {
8119 var4 = 1; /* arg is null and recv is not */
8120 }
8121 if (var4){
8122 var5 = self->attrs[COLOR_parser_nodes__AVardeclExpr___n_type].val; /* _n_type on <self:AVardeclExpr> */
8123 if (var5 == NULL) {
8124 fprintf(stderr, "Runtime error: %s", "Cast failed");
8125 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4598);
8126 show_backtrace(1);
8127 }
8128 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var5) /* enter_visit on <var_v:Visitor>*/;
8129 } else {
8130 }
8131 var6 = self->attrs[COLOR_parser_nodes__AVardeclExpr___n_assign].val; /* _n_assign on <self:AVardeclExpr> */
8132 var7 = NULL;
8133 if (var6 == NULL) {
8134 var8 = 0; /* is null */
8135 } else {
8136 var8 = 1; /* arg is null and recv is not */
8137 }
8138 if (var8){
8139 var9 = self->attrs[COLOR_parser_nodes__AVardeclExpr___n_assign].val; /* _n_assign on <self:AVardeclExpr> */
8140 if (var9 == NULL) {
8141 fprintf(stderr, "Runtime error: %s", "Cast failed");
8142 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4601);
8143 show_backtrace(1);
8144 }
8145 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var9) /* enter_visit on <var_v:Visitor>*/;
8146 } else {
8147 }
8148 var10 = self->attrs[COLOR_parser_nodes__AVardeclExpr___n_expr].val; /* _n_expr on <self:AVardeclExpr> */
8149 var11 = NULL;
8150 if (var10 == NULL) {
8151 var12 = 0; /* is null */
8152 } else {
8153 var12 = 1; /* arg is null and recv is not */
8154 }
8155 if (var12){
8156 var13 = self->attrs[COLOR_parser_nodes__AVardeclExpr___n_expr].val; /* _n_expr on <self:AVardeclExpr> */
8157 if (var13 == NULL) {
8158 fprintf(stderr, "Runtime error: %s", "Cast failed");
8159 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4604);
8160 show_backtrace(1);
8161 }
8162 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var13) /* enter_visit on <var_v:Visitor>*/;
8163 } else {
8164 }
8165 var14 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AVardeclExpr> */
8166 var15 = NULL;
8167 if (var14 == NULL) {
8168 var16 = 0; /* is null */
8169 } else {
8170 var16 = 1; /* arg is null and recv is not */
8171 }
8172 if (var16){
8173 var17 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AVardeclExpr> */
8174 if (var17 == NULL) {
8175 fprintf(stderr, "Runtime error: %s", "Cast failed");
8176 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4607);
8177 show_backtrace(1);
8178 }
8179 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var17) /* enter_visit on <var_v:Visitor>*/;
8180 } else {
8181 }
8182 RET_LABEL:;
8183 }
8184 /* method parser_prod#AVardeclExpr#visit_all for (self: Object, Visitor) */
8185 void VIRTUAL_parser_prod__AVardeclExpr__visit_all(val* self, val* p0) {
8186 parser_prod__AVardeclExpr__visit_all(self, p0);
8187 RET_LABEL:;
8188 }
8189 /* method parser_prod#AReturnExpr#empty_init for (self: AReturnExpr) */
8190 void parser_prod__AReturnExpr__empty_init(val* self) {
8191 RET_LABEL:;
8192 }
8193 /* method parser_prod#AReturnExpr#empty_init for (self: Object) */
8194 void VIRTUAL_parser_prod__AReturnExpr__empty_init(val* self) {
8195 parser_prod__AReturnExpr__empty_init(self);
8196 RET_LABEL:;
8197 }
8198 /* method parser_prod#AReturnExpr#init_areturnexpr for (self: AReturnExpr, nullable TKwreturn, nullable AExpr) */
8199 void parser_prod__AReturnExpr__init_areturnexpr(val* self, val* p0, val* p1) {
8200 val* var_n_kwreturn /* var n_kwreturn: nullable TKwreturn */;
8201 val* var_n_expr /* var n_expr: nullable AExpr */;
8202 val* var /* : null */;
8203 short int var1 /* : Bool */;
8204 val* var2 /* : null */;
8205 short int var3 /* : Bool */;
8206 var_n_kwreturn = p0;
8207 var_n_expr = p1;
8208 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__AReturnExpr__empty_init]))(self) /* empty_init on <self:AReturnExpr>*/;
8209 self->attrs[COLOR_parser_nodes__AReturnExpr___n_kwreturn].val = var_n_kwreturn; /* _n_kwreturn on <self:AReturnExpr> */
8210 var = NULL;
8211 if (var_n_kwreturn == NULL) {
8212 var1 = 0; /* is null */
8213 } else {
8214 var1 = 1; /* arg is null and recv is not */
8215 }
8216 if (var1){
8217 ((void (*)(val*, val*))(var_n_kwreturn->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_kwreturn, self) /* parent= on <var_n_kwreturn:nullable TKwreturn(TKwreturn)>*/;
8218 } else {
8219 }
8220 self->attrs[COLOR_parser_nodes__AReturnExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AReturnExpr> */
8221 var2 = NULL;
8222 if (var_n_expr == NULL) {
8223 var3 = 0; /* is null */
8224 } else {
8225 var3 = 1; /* arg is null and recv is not */
8226 }
8227 if (var3){
8228 ((void (*)(val*, val*))(var_n_expr->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_expr, self) /* parent= on <var_n_expr:nullable AExpr(AExpr)>*/;
8229 } else {
8230 }
8231 RET_LABEL:;
8232 }
8233 /* method parser_prod#AReturnExpr#init_areturnexpr for (self: Object, nullable TKwreturn, nullable AExpr) */
8234 void VIRTUAL_parser_prod__AReturnExpr__init_areturnexpr(val* self, val* p0, val* p1) {
8235 parser_prod__AReturnExpr__init_areturnexpr(self, p0, p1);
8236 RET_LABEL:;
8237 }
8238 /* method parser_prod#AReturnExpr#replace_child for (self: AReturnExpr, ANode, nullable ANode) */
8239 void parser_prod__AReturnExpr__replace_child(val* self, val* p0, val* p1) {
8240 val* var_old_child /* var old_child: ANode */;
8241 val* var_new_child /* var new_child: nullable ANode */;
8242 val* var /* : nullable TKwreturn */;
8243 short int var1 /* : Bool */;
8244 val* var2 /* : null */;
8245 short int var3 /* : Bool */;
8246 short int var4 /* : Bool */;
8247 int cltype;
8248 int idtype;
8249 val* var5 /* : null */;
8250 val* var6 /* : nullable AExpr */;
8251 short int var7 /* : Bool */;
8252 val* var8 /* : null */;
8253 short int var9 /* : Bool */;
8254 short int var10 /* : Bool */;
8255 int cltype11;
8256 int idtype12;
8257 val* var13 /* : null */;
8258 var_old_child = p0;
8259 var_new_child = p1;
8260 var = self->attrs[COLOR_parser_nodes__AReturnExpr___n_kwreturn].val; /* _n_kwreturn on <self:AReturnExpr> */
8261 if (var == NULL) {
8262 var1 = 0; /* <var_old_child:ANode> cannot be null */
8263 } else {
8264 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:nullable TKwreturn>*/;
8265 }
8266 if (var1){
8267 var2 = NULL;
8268 if (var_new_child == NULL) {
8269 var3 = 0; /* is null */
8270 } else {
8271 var3 = 1; /* arg is null and recv is not */
8272 }
8273 if (var3){
8274 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
8275 /* <var_new_child:nullable ANode(ANode)> isa TKwreturn */
8276 cltype = type_parser_nodes__TKwreturn.color;
8277 idtype = type_parser_nodes__TKwreturn.id;
8278 if(cltype >= var_new_child->type->table_size) {
8279 var4 = 0;
8280 } else {
8281 var4 = var_new_child->type->type_table[cltype] == idtype;
8282 }
8283 if (!var4) {
8284 fprintf(stderr, "Runtime error: %s", "Assert failed");
8285 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4635);
8286 show_backtrace(1);
8287 }
8288 self->attrs[COLOR_parser_nodes__AReturnExpr___n_kwreturn].val = var_new_child; /* _n_kwreturn on <self:AReturnExpr> */
8289 } else {
8290 var5 = NULL;
8291 self->attrs[COLOR_parser_nodes__AReturnExpr___n_kwreturn].val = var5; /* _n_kwreturn on <self:AReturnExpr> */
8292 }
8293 goto RET_LABEL;
8294 } else {
8295 }
8296 var6 = self->attrs[COLOR_parser_nodes__AReturnExpr___n_expr].val; /* _n_expr on <self:AReturnExpr> */
8297 if (var6 == NULL) {
8298 var7 = 0; /* <var_old_child:ANode> cannot be null */
8299 } else {
8300 var7 = ((short int (*)(val*, val*))(var6->class->vft[COLOR_kernel__Object___61d_61d]))(var6, var_old_child) /* == on <var6:nullable AExpr>*/;
8301 }
8302 if (var7){
8303 var8 = NULL;
8304 if (var_new_child == NULL) {
8305 var9 = 0; /* is null */
8306 } else {
8307 var9 = 1; /* arg is null and recv is not */
8308 }
8309 if (var9){
8310 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
8311 /* <var_new_child:nullable ANode(ANode)> isa AExpr */
8312 cltype11 = type_parser_nodes__AExpr.color;
8313 idtype12 = type_parser_nodes__AExpr.id;
8314 if(cltype11 >= var_new_child->type->table_size) {
8315 var10 = 0;
8316 } else {
8317 var10 = var_new_child->type->type_table[cltype11] == idtype12;
8318 }
8319 if (!var10) {
8320 fprintf(stderr, "Runtime error: %s", "Assert failed");
8321 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4645);
8322 show_backtrace(1);
8323 }
8324 self->attrs[COLOR_parser_nodes__AReturnExpr___n_expr].val = var_new_child; /* _n_expr on <self:AReturnExpr> */
8325 } else {
8326 var13 = NULL;
8327 self->attrs[COLOR_parser_nodes__AReturnExpr___n_expr].val = var13; /* _n_expr on <self:AReturnExpr> */
8328 }
8329 goto RET_LABEL;
8330 } else {
8331 }
8332 RET_LABEL:;
8333 }
8334 /* method parser_prod#AReturnExpr#replace_child for (self: Object, ANode, nullable ANode) */
8335 void VIRTUAL_parser_prod__AReturnExpr__replace_child(val* self, val* p0, val* p1) {
8336 parser_prod__AReturnExpr__replace_child(self, p0, p1);
8337 RET_LABEL:;
8338 }
8339 /* method parser_prod#AReturnExpr#n_kwreturn= for (self: AReturnExpr, nullable TKwreturn) */
8340 void parser_prod__AReturnExpr__n_kwreturn_61d(val* self, val* p0) {
8341 val* var_node /* var node: nullable TKwreturn */;
8342 val* var /* : null */;
8343 short int var1 /* : Bool */;
8344 var_node = p0;
8345 self->attrs[COLOR_parser_nodes__AReturnExpr___n_kwreturn].val = var_node; /* _n_kwreturn on <self:AReturnExpr> */
8346 var = NULL;
8347 if (var_node == NULL) {
8348 var1 = 0; /* is null */
8349 } else {
8350 var1 = 1; /* arg is null and recv is not */
8351 }
8352 if (var1){
8353 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable TKwreturn(TKwreturn)>*/;
8354 } else {
8355 }
8356 RET_LABEL:;
8357 }
8358 /* method parser_prod#AReturnExpr#n_kwreturn= for (self: Object, nullable TKwreturn) */
8359 void VIRTUAL_parser_prod__AReturnExpr__n_kwreturn_61d(val* self, val* p0) {
8360 parser_prod__AReturnExpr__n_kwreturn_61d(self, p0);
8361 RET_LABEL:;
8362 }
8363 /* method parser_prod#AReturnExpr#n_expr= for (self: AReturnExpr, nullable AExpr) */
8364 void parser_prod__AReturnExpr__n_expr_61d(val* self, val* p0) {
8365 val* var_node /* var node: nullable AExpr */;
8366 val* var /* : null */;
8367 short int var1 /* : Bool */;
8368 var_node = p0;
8369 self->attrs[COLOR_parser_nodes__AReturnExpr___n_expr].val = var_node; /* _n_expr on <self:AReturnExpr> */
8370 var = NULL;
8371 if (var_node == NULL) {
8372 var1 = 0; /* is null */
8373 } else {
8374 var1 = 1; /* arg is null and recv is not */
8375 }
8376 if (var1){
8377 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable AExpr(AExpr)>*/;
8378 } else {
8379 }
8380 RET_LABEL:;
8381 }
8382 /* method parser_prod#AReturnExpr#n_expr= for (self: Object, nullable AExpr) */
8383 void VIRTUAL_parser_prod__AReturnExpr__n_expr_61d(val* self, val* p0) {
8384 parser_prod__AReturnExpr__n_expr_61d(self, p0);
8385 RET_LABEL:;
8386 }
8387 /* method parser_prod#AReturnExpr#visit_all for (self: AReturnExpr, Visitor) */
8388 void parser_prod__AReturnExpr__visit_all(val* self, val* p0) {
8389 val* var_v /* var v: Visitor */;
8390 val* var /* : nullable TKwreturn */;
8391 val* var1 /* : null */;
8392 short int var2 /* : Bool */;
8393 val* var3 /* : nullable TKwreturn */;
8394 val* var4 /* : nullable AExpr */;
8395 val* var5 /* : null */;
8396 short int var6 /* : Bool */;
8397 val* var7 /* : nullable AExpr */;
8398 var_v = p0;
8399 var = self->attrs[COLOR_parser_nodes__AReturnExpr___n_kwreturn].val; /* _n_kwreturn on <self:AReturnExpr> */
8400 var1 = NULL;
8401 if (var == NULL) {
8402 var2 = 0; /* is null */
8403 } else {
8404 var2 = 1; /* arg is null and recv is not */
8405 }
8406 if (var2){
8407 var3 = self->attrs[COLOR_parser_nodes__AReturnExpr___n_kwreturn].val; /* _n_kwreturn on <self:AReturnExpr> */
8408 if (var3 == NULL) {
8409 fprintf(stderr, "Runtime error: %s", "Cast failed");
8410 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4673);
8411 show_backtrace(1);
8412 }
8413 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var3) /* enter_visit on <var_v:Visitor>*/;
8414 } else {
8415 }
8416 var4 = self->attrs[COLOR_parser_nodes__AReturnExpr___n_expr].val; /* _n_expr on <self:AReturnExpr> */
8417 var5 = NULL;
8418 if (var4 == NULL) {
8419 var6 = 0; /* is null */
8420 } else {
8421 var6 = 1; /* arg is null and recv is not */
8422 }
8423 if (var6){
8424 var7 = self->attrs[COLOR_parser_nodes__AReturnExpr___n_expr].val; /* _n_expr on <self:AReturnExpr> */
8425 if (var7 == NULL) {
8426 fprintf(stderr, "Runtime error: %s", "Cast failed");
8427 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4676);
8428 show_backtrace(1);
8429 }
8430 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var7) /* enter_visit on <var_v:Visitor>*/;
8431 } else {
8432 }
8433 RET_LABEL:;
8434 }
8435 /* method parser_prod#AReturnExpr#visit_all for (self: Object, Visitor) */
8436 void VIRTUAL_parser_prod__AReturnExpr__visit_all(val* self, val* p0) {
8437 parser_prod__AReturnExpr__visit_all(self, p0);
8438 RET_LABEL:;
8439 }
8440 /* method parser_prod#ABreakExpr#empty_init for (self: ABreakExpr) */
8441 void parser_prod__ABreakExpr__empty_init(val* self) {
8442 RET_LABEL:;
8443 }
8444 /* method parser_prod#ABreakExpr#empty_init for (self: Object) */
8445 void VIRTUAL_parser_prod__ABreakExpr__empty_init(val* self) {
8446 parser_prod__ABreakExpr__empty_init(self);
8447 RET_LABEL:;
8448 }
8449 /* method parser_prod#ABreakExpr#init_abreakexpr for (self: ABreakExpr, nullable TKwbreak, nullable ALabel, nullable AExpr) */
8450 void parser_prod__ABreakExpr__init_abreakexpr(val* self, val* p0, val* p1, val* p2) {
8451 val* var_n_kwbreak /* var n_kwbreak: nullable TKwbreak */;
8452 val* var_n_label /* var n_label: nullable ALabel */;
8453 val* var_n_expr /* var n_expr: nullable AExpr */;
8454 val* var /* : null */;
8455 short int var1 /* : Bool */;
8456 val* var2 /* : null */;
8457 short int var3 /* : Bool */;
8458 var_n_kwbreak = p0;
8459 var_n_label = p1;
8460 var_n_expr = p2;
8461 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__ABreakExpr__empty_init]))(self) /* empty_init on <self:ABreakExpr>*/;
8462 if (var_n_kwbreak == NULL) {
8463 fprintf(stderr, "Runtime error: %s", "Cast failed");
8464 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4690);
8465 show_backtrace(1);
8466 }
8467 self->attrs[COLOR_parser_nodes__ABreakExpr___n_kwbreak].val = var_n_kwbreak; /* _n_kwbreak on <self:ABreakExpr> */
8468 if (var_n_kwbreak == NULL) {
8469 fprintf(stderr, "Runtime error: %s", "Reciever is null");
8470 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4691);
8471 show_backtrace(1);
8472 } else {
8473 ((void (*)(val*, val*))(var_n_kwbreak->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_kwbreak, self) /* parent= on <var_n_kwbreak:nullable TKwbreak>*/;
8474 }
8475 self->attrs[COLOR_parser_nodes__ALabelable___n_label].val = var_n_label; /* _n_label on <self:ABreakExpr> */
8476 var = NULL;
8477 if (var_n_label == NULL) {
8478 var1 = 0; /* is null */
8479 } else {
8480 var1 = 1; /* arg is null and recv is not */
8481 }
8482 if (var1){
8483 ((void (*)(val*, val*))(var_n_label->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_label, self) /* parent= on <var_n_label:nullable ALabel(ALabel)>*/;
8484 } else {
8485 }
8486 self->attrs[COLOR_parser_nodes__ABreakExpr___n_expr].val = var_n_expr; /* _n_expr on <self:ABreakExpr> */
8487 var2 = NULL;
8488 if (var_n_expr == NULL) {
8489 var3 = 0; /* is null */
8490 } else {
8491 var3 = 1; /* arg is null and recv is not */
8492 }
8493 if (var3){
8494 ((void (*)(val*, val*))(var_n_expr->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_expr, self) /* parent= on <var_n_expr:nullable AExpr(AExpr)>*/;
8495 } else {
8496 }
8497 RET_LABEL:;
8498 }
8499 /* method parser_prod#ABreakExpr#init_abreakexpr for (self: Object, nullable TKwbreak, nullable ALabel, nullable AExpr) */
8500 void VIRTUAL_parser_prod__ABreakExpr__init_abreakexpr(val* self, val* p0, val* p1, val* p2) {
8501 parser_prod__ABreakExpr__init_abreakexpr(self, p0, p1, p2);
8502 RET_LABEL:;
8503 }
8504 /* method parser_prod#ABreakExpr#replace_child for (self: ABreakExpr, ANode, nullable ANode) */
8505 void parser_prod__ABreakExpr__replace_child(val* self, val* p0, val* p1) {
8506 val* var_old_child /* var old_child: ANode */;
8507 val* var_new_child /* var new_child: nullable ANode */;
8508 val* var /* : TKwbreak */;
8509 short int var1 /* : Bool */;
8510 val* var2 /* : null */;
8511 short int var3 /* : Bool */;
8512 short int var4 /* : Bool */;
8513 int cltype;
8514 int idtype;
8515 val* var5 /* : nullable ALabel */;
8516 short int var6 /* : Bool */;
8517 val* var7 /* : null */;
8518 short int var8 /* : Bool */;
8519 short int var9 /* : Bool */;
8520 int cltype10;
8521 int idtype11;
8522 val* var12 /* : null */;
8523 val* var13 /* : nullable AExpr */;
8524 short int var14 /* : Bool */;
8525 val* var15 /* : null */;
8526 short int var16 /* : Bool */;
8527 short int var17 /* : Bool */;
8528 int cltype18;
8529 int idtype19;
8530 val* var20 /* : null */;
8531 var_old_child = p0;
8532 var_new_child = p1;
8533 var = self->attrs[COLOR_parser_nodes__ABreakExpr___n_kwbreak].val; /* _n_kwbreak on <self:ABreakExpr> */
8534 if (var == NULL) {
8535 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwbreak");
8536 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4704);
8537 show_backtrace(1);
8538 }
8539 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:TKwbreak>*/;
8540 if (var1){
8541 var2 = NULL;
8542 if (var_new_child == NULL) {
8543 var3 = 0; /* is null */
8544 } else {
8545 var3 = 1; /* arg is null and recv is not */
8546 }
8547 if (var3){
8548 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
8549 /* <var_new_child:nullable ANode(ANode)> isa TKwbreak */
8550 cltype = type_parser_nodes__TKwbreak.color;
8551 idtype = type_parser_nodes__TKwbreak.id;
8552 if(cltype >= var_new_child->type->table_size) {
8553 var4 = 0;
8554 } else {
8555 var4 = var_new_child->type->type_table[cltype] == idtype;
8556 }
8557 if (!var4) {
8558 fprintf(stderr, "Runtime error: %s", "Assert failed");
8559 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4707);
8560 show_backtrace(1);
8561 }
8562 self->attrs[COLOR_parser_nodes__ABreakExpr___n_kwbreak].val = var_new_child; /* _n_kwbreak on <self:ABreakExpr> */
8563 } else {
8564 fprintf(stderr, "Runtime error: %s", "Aborted");
8565 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4710);
8566 show_backtrace(1);
8567 }
8568 goto RET_LABEL;
8569 } else {
8570 }
8571 var5 = self->attrs[COLOR_parser_nodes__ALabelable___n_label].val; /* _n_label on <self:ABreakExpr> */
8572 if (var5 == NULL) {
8573 var6 = 0; /* <var_old_child:ANode> cannot be null */
8574 } else {
8575 var6 = ((short int (*)(val*, val*))(var5->class->vft[COLOR_kernel__Object___61d_61d]))(var5, var_old_child) /* == on <var5:nullable ALabel>*/;
8576 }
8577 if (var6){
8578 var7 = NULL;
8579 if (var_new_child == NULL) {
8580 var8 = 0; /* is null */
8581 } else {
8582 var8 = 1; /* arg is null and recv is not */
8583 }
8584 if (var8){
8585 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
8586 /* <var_new_child:nullable ANode(ANode)> isa ALabel */
8587 cltype10 = type_parser_nodes__ALabel.color;
8588 idtype11 = type_parser_nodes__ALabel.id;
8589 if(cltype10 >= var_new_child->type->table_size) {
8590 var9 = 0;
8591 } else {
8592 var9 = var_new_child->type->type_table[cltype10] == idtype11;
8593 }
8594 if (!var9) {
8595 fprintf(stderr, "Runtime error: %s", "Assert failed");
8596 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4717);
8597 show_backtrace(1);
8598 }
8599 self->attrs[COLOR_parser_nodes__ALabelable___n_label].val = var_new_child; /* _n_label on <self:ABreakExpr> */
8600 } else {
8601 var12 = NULL;
8602 self->attrs[COLOR_parser_nodes__ALabelable___n_label].val = var12; /* _n_label on <self:ABreakExpr> */
8603 }
8604 goto RET_LABEL;
8605 } else {
8606 }
8607 var13 = self->attrs[COLOR_parser_nodes__ABreakExpr___n_expr].val; /* _n_expr on <self:ABreakExpr> */
8608 if (var13 == NULL) {
8609 var14 = 0; /* <var_old_child:ANode> cannot be null */
8610 } else {
8611 var14 = ((short int (*)(val*, val*))(var13->class->vft[COLOR_kernel__Object___61d_61d]))(var13, var_old_child) /* == on <var13:nullable AExpr>*/;
8612 }
8613 if (var14){
8614 var15 = NULL;
8615 if (var_new_child == NULL) {
8616 var16 = 0; /* is null */
8617 } else {
8618 var16 = 1; /* arg is null and recv is not */
8619 }
8620 if (var16){
8621 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
8622 /* <var_new_child:nullable ANode(ANode)> isa AExpr */
8623 cltype18 = type_parser_nodes__AExpr.color;
8624 idtype19 = type_parser_nodes__AExpr.id;
8625 if(cltype18 >= var_new_child->type->table_size) {
8626 var17 = 0;
8627 } else {
8628 var17 = var_new_child->type->type_table[cltype18] == idtype19;
8629 }
8630 if (!var17) {
8631 fprintf(stderr, "Runtime error: %s", "Assert failed");
8632 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4727);
8633 show_backtrace(1);
8634 }
8635 self->attrs[COLOR_parser_nodes__ABreakExpr___n_expr].val = var_new_child; /* _n_expr on <self:ABreakExpr> */
8636 } else {
8637 var20 = NULL;
8638 self->attrs[COLOR_parser_nodes__ABreakExpr___n_expr].val = var20; /* _n_expr on <self:ABreakExpr> */
8639 }
8640 goto RET_LABEL;
8641 } else {
8642 }
8643 RET_LABEL:;
8644 }
8645 /* method parser_prod#ABreakExpr#replace_child for (self: Object, ANode, nullable ANode) */
8646 void VIRTUAL_parser_prod__ABreakExpr__replace_child(val* self, val* p0, val* p1) {
8647 parser_prod__ABreakExpr__replace_child(self, p0, p1);
8648 RET_LABEL:;
8649 }
8650 /* method parser_prod#ABreakExpr#n_kwbreak= for (self: ABreakExpr, TKwbreak) */
8651 void parser_prod__ABreakExpr__n_kwbreak_61d(val* self, val* p0) {
8652 val* var_node /* var node: TKwbreak */;
8653 var_node = p0;
8654 self->attrs[COLOR_parser_nodes__ABreakExpr___n_kwbreak].val = var_node; /* _n_kwbreak on <self:ABreakExpr> */
8655 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TKwbreak>*/;
8656 RET_LABEL:;
8657 }
8658 /* method parser_prod#ABreakExpr#n_kwbreak= for (self: Object, TKwbreak) */
8659 void VIRTUAL_parser_prod__ABreakExpr__n_kwbreak_61d(val* self, val* p0) {
8660 parser_prod__ABreakExpr__n_kwbreak_61d(self, p0);
8661 RET_LABEL:;
8662 }
8663 /* method parser_prod#ABreakExpr#n_label= for (self: ABreakExpr, nullable ALabel) */
8664 void parser_prod__ABreakExpr__n_label_61d(val* self, val* p0) {
8665 val* var_node /* var node: nullable ALabel */;
8666 val* var /* : null */;
8667 short int var1 /* : Bool */;
8668 var_node = p0;
8669 self->attrs[COLOR_parser_nodes__ALabelable___n_label].val = var_node; /* _n_label on <self:ABreakExpr> */
8670 var = NULL;
8671 if (var_node == NULL) {
8672 var1 = 0; /* is null */
8673 } else {
8674 var1 = 1; /* arg is null and recv is not */
8675 }
8676 if (var1){
8677 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable ALabel(ALabel)>*/;
8678 } else {
8679 }
8680 RET_LABEL:;
8681 }
8682 /* method parser_prod#ABreakExpr#n_label= for (self: Object, nullable ALabel) */
8683 void VIRTUAL_parser_prod__ABreakExpr__n_label_61d(val* self, val* p0) {
8684 parser_prod__ABreakExpr__n_label_61d(self, p0);
8685 RET_LABEL:;
8686 }
8687 /* method parser_prod#ABreakExpr#n_expr= for (self: ABreakExpr, nullable AExpr) */
8688 void parser_prod__ABreakExpr__n_expr_61d(val* self, val* p0) {
8689 val* var_node /* var node: nullable AExpr */;
8690 val* var /* : null */;
8691 short int var1 /* : Bool */;
8692 var_node = p0;
8693 self->attrs[COLOR_parser_nodes__ABreakExpr___n_expr].val = var_node; /* _n_expr on <self:ABreakExpr> */
8694 var = NULL;
8695 if (var_node == NULL) {
8696 var1 = 0; /* is null */
8697 } else {
8698 var1 = 1; /* arg is null and recv is not */
8699 }
8700 if (var1){
8701 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable AExpr(AExpr)>*/;
8702 } else {
8703 }
8704 RET_LABEL:;
8705 }
8706 /* method parser_prod#ABreakExpr#n_expr= for (self: Object, nullable AExpr) */
8707 void VIRTUAL_parser_prod__ABreakExpr__n_expr_61d(val* self, val* p0) {
8708 parser_prod__ABreakExpr__n_expr_61d(self, p0);
8709 RET_LABEL:;
8710 }
8711 /* method parser_prod#ABreakExpr#visit_all for (self: ABreakExpr, Visitor) */
8712 void parser_prod__ABreakExpr__visit_all(val* self, val* p0) {
8713 val* var_v /* var v: Visitor */;
8714 val* var /* : TKwbreak */;
8715 val* var1 /* : nullable ALabel */;
8716 val* var2 /* : null */;
8717 short int var3 /* : Bool */;
8718 val* var4 /* : nullable ALabel */;
8719 val* var5 /* : nullable AExpr */;
8720 val* var6 /* : null */;
8721 short int var7 /* : Bool */;
8722 val* var8 /* : nullable AExpr */;
8723 var_v = p0;
8724 var = self->attrs[COLOR_parser_nodes__ABreakExpr___n_kwbreak].val; /* _n_kwbreak on <self:ABreakExpr> */
8725 if (var == NULL) {
8726 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwbreak");
8727 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4759);
8728 show_backtrace(1);
8729 }
8730 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
8731 var1 = self->attrs[COLOR_parser_nodes__ALabelable___n_label].val; /* _n_label on <self:ABreakExpr> */
8732 var2 = NULL;
8733 if (var1 == NULL) {
8734 var3 = 0; /* is null */
8735 } else {
8736 var3 = 1; /* arg is null and recv is not */
8737 }
8738 if (var3){
8739 var4 = self->attrs[COLOR_parser_nodes__ALabelable___n_label].val; /* _n_label on <self:ABreakExpr> */
8740 if (var4 == NULL) {
8741 fprintf(stderr, "Runtime error: %s", "Cast failed");
8742 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4761);
8743 show_backtrace(1);
8744 }
8745 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var4) /* enter_visit on <var_v:Visitor>*/;
8746 } else {
8747 }
8748 var5 = self->attrs[COLOR_parser_nodes__ABreakExpr___n_expr].val; /* _n_expr on <self:ABreakExpr> */
8749 var6 = NULL;
8750 if (var5 == NULL) {
8751 var7 = 0; /* is null */
8752 } else {
8753 var7 = 1; /* arg is null and recv is not */
8754 }
8755 if (var7){
8756 var8 = self->attrs[COLOR_parser_nodes__ABreakExpr___n_expr].val; /* _n_expr on <self:ABreakExpr> */
8757 if (var8 == NULL) {
8758 fprintf(stderr, "Runtime error: %s", "Cast failed");
8759 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4764);
8760 show_backtrace(1);
8761 }
8762 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var8) /* enter_visit on <var_v:Visitor>*/;
8763 } else {
8764 }
8765 RET_LABEL:;
8766 }
8767 /* method parser_prod#ABreakExpr#visit_all for (self: Object, Visitor) */
8768 void VIRTUAL_parser_prod__ABreakExpr__visit_all(val* self, val* p0) {
8769 parser_prod__ABreakExpr__visit_all(self, p0);
8770 RET_LABEL:;
8771 }
8772 /* method parser_prod#AAbortExpr#empty_init for (self: AAbortExpr) */
8773 void parser_prod__AAbortExpr__empty_init(val* self) {
8774 RET_LABEL:;
8775 }
8776 /* method parser_prod#AAbortExpr#empty_init for (self: Object) */
8777 void VIRTUAL_parser_prod__AAbortExpr__empty_init(val* self) {
8778 parser_prod__AAbortExpr__empty_init(self);
8779 RET_LABEL:;
8780 }
8781 /* method parser_prod#AAbortExpr#init_aabortexpr for (self: AAbortExpr, nullable TKwabort) */
8782 void parser_prod__AAbortExpr__init_aabortexpr(val* self, val* p0) {
8783 val* var_n_kwabort /* var n_kwabort: nullable TKwabort */;
8784 var_n_kwabort = p0;
8785 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__AAbortExpr__empty_init]))(self) /* empty_init on <self:AAbortExpr>*/;
8786 if (var_n_kwabort == NULL) {
8787 fprintf(stderr, "Runtime error: %s", "Cast failed");
8788 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4776);
8789 show_backtrace(1);
8790 }
8791 self->attrs[COLOR_parser_nodes__AAbortExpr___n_kwabort].val = var_n_kwabort; /* _n_kwabort on <self:AAbortExpr> */
8792 if (var_n_kwabort == NULL) {
8793 fprintf(stderr, "Runtime error: %s", "Reciever is null");
8794 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4777);
8795 show_backtrace(1);
8796 } else {
8797 ((void (*)(val*, val*))(var_n_kwabort->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_kwabort, self) /* parent= on <var_n_kwabort:nullable TKwabort>*/;
8798 }
8799 RET_LABEL:;
8800 }
8801 /* method parser_prod#AAbortExpr#init_aabortexpr for (self: Object, nullable TKwabort) */
8802 void VIRTUAL_parser_prod__AAbortExpr__init_aabortexpr(val* self, val* p0) {
8803 parser_prod__AAbortExpr__init_aabortexpr(self, p0);
8804 RET_LABEL:;
8805 }
8806 /* method parser_prod#AAbortExpr#replace_child for (self: AAbortExpr, ANode, nullable ANode) */
8807 void parser_prod__AAbortExpr__replace_child(val* self, val* p0, val* p1) {
8808 val* var_old_child /* var old_child: ANode */;
8809 val* var_new_child /* var new_child: nullable ANode */;
8810 val* var /* : TKwabort */;
8811 short int var1 /* : Bool */;
8812 val* var2 /* : null */;
8813 short int var3 /* : Bool */;
8814 short int var4 /* : Bool */;
8815 int cltype;
8816 int idtype;
8817 var_old_child = p0;
8818 var_new_child = p1;
8819 var = self->attrs[COLOR_parser_nodes__AAbortExpr___n_kwabort].val; /* _n_kwabort on <self:AAbortExpr> */
8820 if (var == NULL) {
8821 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwabort");
8822 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4782);
8823 show_backtrace(1);
8824 }
8825 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:TKwabort>*/;
8826 if (var1){
8827 var2 = NULL;
8828 if (var_new_child == NULL) {
8829 var3 = 0; /* is null */
8830 } else {
8831 var3 = 1; /* arg is null and recv is not */
8832 }
8833 if (var3){
8834 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
8835 /* <var_new_child:nullable ANode(ANode)> isa TKwabort */
8836 cltype = type_parser_nodes__TKwabort.color;
8837 idtype = type_parser_nodes__TKwabort.id;
8838 if(cltype >= var_new_child->type->table_size) {
8839 var4 = 0;
8840 } else {
8841 var4 = var_new_child->type->type_table[cltype] == idtype;
8842 }
8843 if (!var4) {
8844 fprintf(stderr, "Runtime error: %s", "Assert failed");
8845 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4785);
8846 show_backtrace(1);
8847 }
8848 self->attrs[COLOR_parser_nodes__AAbortExpr___n_kwabort].val = var_new_child; /* _n_kwabort on <self:AAbortExpr> */
8849 } else {
8850 fprintf(stderr, "Runtime error: %s", "Aborted");
8851 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4788);
8852 show_backtrace(1);
8853 }
8854 goto RET_LABEL;
8855 } else {
8856 }
8857 RET_LABEL:;
8858 }
8859 /* method parser_prod#AAbortExpr#replace_child for (self: Object, ANode, nullable ANode) */
8860 void VIRTUAL_parser_prod__AAbortExpr__replace_child(val* self, val* p0, val* p1) {
8861 parser_prod__AAbortExpr__replace_child(self, p0, p1);
8862 RET_LABEL:;
8863 }
8864 /* method parser_prod#AAbortExpr#n_kwabort= for (self: AAbortExpr, TKwabort) */
8865 void parser_prod__AAbortExpr__n_kwabort_61d(val* self, val* p0) {
8866 val* var_node /* var node: TKwabort */;
8867 var_node = p0;
8868 self->attrs[COLOR_parser_nodes__AAbortExpr___n_kwabort].val = var_node; /* _n_kwabort on <self:AAbortExpr> */
8869 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TKwabort>*/;
8870 RET_LABEL:;
8871 }
8872 /* method parser_prod#AAbortExpr#n_kwabort= for (self: Object, TKwabort) */
8873 void VIRTUAL_parser_prod__AAbortExpr__n_kwabort_61d(val* self, val* p0) {
8874 parser_prod__AAbortExpr__n_kwabort_61d(self, p0);
8875 RET_LABEL:;
8876 }
8877 /* method parser_prod#AAbortExpr#visit_all for (self: AAbortExpr, Visitor) */
8878 void parser_prod__AAbortExpr__visit_all(val* self, val* p0) {
8879 val* var_v /* var v: Visitor */;
8880 val* var /* : TKwabort */;
8881 var_v = p0;
8882 var = self->attrs[COLOR_parser_nodes__AAbortExpr___n_kwabort].val; /* _n_kwabort on <self:AAbortExpr> */
8883 if (var == NULL) {
8884 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwabort");
8885 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4803);
8886 show_backtrace(1);
8887 }
8888 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
8889 RET_LABEL:;
8890 }
8891 /* method parser_prod#AAbortExpr#visit_all for (self: Object, Visitor) */
8892 void VIRTUAL_parser_prod__AAbortExpr__visit_all(val* self, val* p0) {
8893 parser_prod__AAbortExpr__visit_all(self, p0);
8894 RET_LABEL:;
8895 }
8896 /* method parser_prod#AContinueExpr#empty_init for (self: AContinueExpr) */
8897 void parser_prod__AContinueExpr__empty_init(val* self) {
8898 RET_LABEL:;
8899 }
8900 /* method parser_prod#AContinueExpr#empty_init for (self: Object) */
8901 void VIRTUAL_parser_prod__AContinueExpr__empty_init(val* self) {
8902 parser_prod__AContinueExpr__empty_init(self);
8903 RET_LABEL:;
8904 }
8905 /* method parser_prod#AContinueExpr#init_acontinueexpr for (self: AContinueExpr, nullable TKwcontinue, nullable ALabel, nullable AExpr) */
8906 void parser_prod__AContinueExpr__init_acontinueexpr(val* self, val* p0, val* p1, val* p2) {
8907 val* var_n_kwcontinue /* var n_kwcontinue: nullable TKwcontinue */;
8908 val* var_n_label /* var n_label: nullable ALabel */;
8909 val* var_n_expr /* var n_expr: nullable AExpr */;
8910 val* var /* : null */;
8911 short int var1 /* : Bool */;
8912 val* var2 /* : null */;
8913 short int var3 /* : Bool */;
8914 val* var4 /* : null */;
8915 short int var5 /* : Bool */;
8916 var_n_kwcontinue = p0;
8917 var_n_label = p1;
8918 var_n_expr = p2;
8919 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__AContinueExpr__empty_init]))(self) /* empty_init on <self:AContinueExpr>*/;
8920 self->attrs[COLOR_parser_nodes__AContinueExpr___n_kwcontinue].val = var_n_kwcontinue; /* _n_kwcontinue on <self:AContinueExpr> */
8921 var = NULL;
8922 if (var_n_kwcontinue == NULL) {
8923 var1 = 0; /* is null */
8924 } else {
8925 var1 = 1; /* arg is null and recv is not */
8926 }
8927 if (var1){
8928 ((void (*)(val*, val*))(var_n_kwcontinue->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_kwcontinue, self) /* parent= on <var_n_kwcontinue:nullable TKwcontinue(TKwcontinue)>*/;
8929 } else {
8930 }
8931 self->attrs[COLOR_parser_nodes__ALabelable___n_label].val = var_n_label; /* _n_label on <self:AContinueExpr> */
8932 var2 = NULL;
8933 if (var_n_label == NULL) {
8934 var3 = 0; /* is null */
8935 } else {
8936 var3 = 1; /* arg is null and recv is not */
8937 }
8938 if (var3){
8939 ((void (*)(val*, val*))(var_n_label->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_label, self) /* parent= on <var_n_label:nullable ALabel(ALabel)>*/;
8940 } else {
8941 }
8942 self->attrs[COLOR_parser_nodes__AContinueExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AContinueExpr> */
8943 var4 = NULL;
8944 if (var_n_expr == NULL) {
8945 var5 = 0; /* is null */
8946 } else {
8947 var5 = 1; /* arg is null and recv is not */
8948 }
8949 if (var5){
8950 ((void (*)(val*, val*))(var_n_expr->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_expr, self) /* parent= on <var_n_expr:nullable AExpr(AExpr)>*/;
8951 } else {
8952 }
8953 RET_LABEL:;
8954 }
8955 /* method parser_prod#AContinueExpr#init_acontinueexpr for (self: Object, nullable TKwcontinue, nullable ALabel, nullable AExpr) */
8956 void VIRTUAL_parser_prod__AContinueExpr__init_acontinueexpr(val* self, val* p0, val* p1, val* p2) {
8957 parser_prod__AContinueExpr__init_acontinueexpr(self, p0, p1, p2);
8958 RET_LABEL:;
8959 }
8960 /* method parser_prod#AContinueExpr#replace_child for (self: AContinueExpr, ANode, nullable ANode) */
8961 void parser_prod__AContinueExpr__replace_child(val* self, val* p0, val* p1) {
8962 val* var_old_child /* var old_child: ANode */;
8963 val* var_new_child /* var new_child: nullable ANode */;
8964 val* var /* : nullable TKwcontinue */;
8965 short int var1 /* : Bool */;
8966 val* var2 /* : null */;
8967 short int var3 /* : Bool */;
8968 short int var4 /* : Bool */;
8969 int cltype;
8970 int idtype;
8971 val* var5 /* : null */;
8972 val* var6 /* : nullable ALabel */;
8973 short int var7 /* : Bool */;
8974 val* var8 /* : null */;
8975 short int var9 /* : Bool */;
8976 short int var10 /* : Bool */;
8977 int cltype11;
8978 int idtype12;
8979 val* var13 /* : null */;
8980 val* var14 /* : nullable AExpr */;
8981 short int var15 /* : Bool */;
8982 val* var16 /* : null */;
8983 short int var17 /* : Bool */;
8984 short int var18 /* : Bool */;
8985 int cltype19;
8986 int idtype20;
8987 val* var21 /* : null */;
8988 var_old_child = p0;
8989 var_new_child = p1;
8990 var = self->attrs[COLOR_parser_nodes__AContinueExpr___n_kwcontinue].val; /* _n_kwcontinue on <self:AContinueExpr> */
8991 if (var == NULL) {
8992 var1 = 0; /* <var_old_child:ANode> cannot be null */
8993 } else {
8994 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:nullable TKwcontinue>*/;
8995 }
8996 if (var1){
8997 var2 = NULL;
8998 if (var_new_child == NULL) {
8999 var3 = 0; /* is null */
9000 } else {
9001 var3 = 1; /* arg is null and recv is not */
9002 }
9003 if (var3){
9004 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
9005 /* <var_new_child:nullable ANode(ANode)> isa TKwcontinue */
9006 cltype = type_parser_nodes__TKwcontinue.color;
9007 idtype = type_parser_nodes__TKwcontinue.id;
9008 if(cltype >= var_new_child->type->table_size) {
9009 var4 = 0;
9010 } else {
9011 var4 = var_new_child->type->type_table[cltype] == idtype;
9012 }
9013 if (!var4) {
9014 fprintf(stderr, "Runtime error: %s", "Assert failed");
9015 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4835);
9016 show_backtrace(1);
9017 }
9018 self->attrs[COLOR_parser_nodes__AContinueExpr___n_kwcontinue].val = var_new_child; /* _n_kwcontinue on <self:AContinueExpr> */
9019 } else {
9020 var5 = NULL;
9021 self->attrs[COLOR_parser_nodes__AContinueExpr___n_kwcontinue].val = var5; /* _n_kwcontinue on <self:AContinueExpr> */
9022 }
9023 goto RET_LABEL;
9024 } else {
9025 }
9026 var6 = self->attrs[COLOR_parser_nodes__ALabelable___n_label].val; /* _n_label on <self:AContinueExpr> */
9027 if (var6 == NULL) {
9028 var7 = 0; /* <var_old_child:ANode> cannot be null */
9029 } else {
9030 var7 = ((short int (*)(val*, val*))(var6->class->vft[COLOR_kernel__Object___61d_61d]))(var6, var_old_child) /* == on <var6:nullable ALabel>*/;
9031 }
9032 if (var7){
9033 var8 = NULL;
9034 if (var_new_child == NULL) {
9035 var9 = 0; /* is null */
9036 } else {
9037 var9 = 1; /* arg is null and recv is not */
9038 }
9039 if (var9){
9040 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
9041 /* <var_new_child:nullable ANode(ANode)> isa ALabel */
9042 cltype11 = type_parser_nodes__ALabel.color;
9043 idtype12 = type_parser_nodes__ALabel.id;
9044 if(cltype11 >= var_new_child->type->table_size) {
9045 var10 = 0;
9046 } else {
9047 var10 = var_new_child->type->type_table[cltype11] == idtype12;
9048 }
9049 if (!var10) {
9050 fprintf(stderr, "Runtime error: %s", "Assert failed");
9051 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4845);
9052 show_backtrace(1);
9053 }
9054 self->attrs[COLOR_parser_nodes__ALabelable___n_label].val = var_new_child; /* _n_label on <self:AContinueExpr> */
9055 } else {
9056 var13 = NULL;
9057 self->attrs[COLOR_parser_nodes__ALabelable___n_label].val = var13; /* _n_label on <self:AContinueExpr> */
9058 }
9059 goto RET_LABEL;
9060 } else {
9061 }
9062 var14 = self->attrs[COLOR_parser_nodes__AContinueExpr___n_expr].val; /* _n_expr on <self:AContinueExpr> */
9063 if (var14 == NULL) {
9064 var15 = 0; /* <var_old_child:ANode> cannot be null */
9065 } else {
9066 var15 = ((short int (*)(val*, val*))(var14->class->vft[COLOR_kernel__Object___61d_61d]))(var14, var_old_child) /* == on <var14:nullable AExpr>*/;
9067 }
9068 if (var15){
9069 var16 = NULL;
9070 if (var_new_child == NULL) {
9071 var17 = 0; /* is null */
9072 } else {
9073 var17 = 1; /* arg is null and recv is not */
9074 }
9075 if (var17){
9076 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
9077 /* <var_new_child:nullable ANode(ANode)> isa AExpr */
9078 cltype19 = type_parser_nodes__AExpr.color;
9079 idtype20 = type_parser_nodes__AExpr.id;
9080 if(cltype19 >= var_new_child->type->table_size) {
9081 var18 = 0;
9082 } else {
9083 var18 = var_new_child->type->type_table[cltype19] == idtype20;
9084 }
9085 if (!var18) {
9086 fprintf(stderr, "Runtime error: %s", "Assert failed");
9087 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4855);
9088 show_backtrace(1);
9089 }
9090 self->attrs[COLOR_parser_nodes__AContinueExpr___n_expr].val = var_new_child; /* _n_expr on <self:AContinueExpr> */
9091 } else {
9092 var21 = NULL;
9093 self->attrs[COLOR_parser_nodes__AContinueExpr___n_expr].val = var21; /* _n_expr on <self:AContinueExpr> */
9094 }
9095 goto RET_LABEL;
9096 } else {
9097 }
9098 RET_LABEL:;
9099 }
9100 /* method parser_prod#AContinueExpr#replace_child for (self: Object, ANode, nullable ANode) */
9101 void VIRTUAL_parser_prod__AContinueExpr__replace_child(val* self, val* p0, val* p1) {
9102 parser_prod__AContinueExpr__replace_child(self, p0, p1);
9103 RET_LABEL:;
9104 }
9105 /* method parser_prod#AContinueExpr#n_kwcontinue= for (self: AContinueExpr, nullable TKwcontinue) */
9106 void parser_prod__AContinueExpr__n_kwcontinue_61d(val* self, val* p0) {
9107 val* var_node /* var node: nullable TKwcontinue */;
9108 val* var /* : null */;
9109 short int var1 /* : Bool */;
9110 var_node = p0;
9111 self->attrs[COLOR_parser_nodes__AContinueExpr___n_kwcontinue].val = var_node; /* _n_kwcontinue on <self:AContinueExpr> */
9112 var = NULL;
9113 if (var_node == NULL) {
9114 var1 = 0; /* is null */
9115 } else {
9116 var1 = 1; /* arg is null and recv is not */
9117 }
9118 if (var1){
9119 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable TKwcontinue(TKwcontinue)>*/;
9120 } else {
9121 }
9122 RET_LABEL:;
9123 }
9124 /* method parser_prod#AContinueExpr#n_kwcontinue= for (self: Object, nullable TKwcontinue) */
9125 void VIRTUAL_parser_prod__AContinueExpr__n_kwcontinue_61d(val* self, val* p0) {
9126 parser_prod__AContinueExpr__n_kwcontinue_61d(self, p0);
9127 RET_LABEL:;
9128 }
9129 /* method parser_prod#AContinueExpr#n_label= for (self: AContinueExpr, nullable ALabel) */
9130 void parser_prod__AContinueExpr__n_label_61d(val* self, val* p0) {
9131 val* var_node /* var node: nullable ALabel */;
9132 val* var /* : null */;
9133 short int var1 /* : Bool */;
9134 var_node = p0;
9135 self->attrs[COLOR_parser_nodes__ALabelable___n_label].val = var_node; /* _n_label on <self:AContinueExpr> */
9136 var = NULL;
9137 if (var_node == NULL) {
9138 var1 = 0; /* is null */
9139 } else {
9140 var1 = 1; /* arg is null and recv is not */
9141 }
9142 if (var1){
9143 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable ALabel(ALabel)>*/;
9144 } else {
9145 }
9146 RET_LABEL:;
9147 }
9148 /* method parser_prod#AContinueExpr#n_label= for (self: Object, nullable ALabel) */
9149 void VIRTUAL_parser_prod__AContinueExpr__n_label_61d(val* self, val* p0) {
9150 parser_prod__AContinueExpr__n_label_61d(self, p0);
9151 RET_LABEL:;
9152 }
9153 /* method parser_prod#AContinueExpr#n_expr= for (self: AContinueExpr, nullable AExpr) */
9154 void parser_prod__AContinueExpr__n_expr_61d(val* self, val* p0) {
9155 val* var_node /* var node: nullable AExpr */;
9156 val* var /* : null */;
9157 short int var1 /* : Bool */;
9158 var_node = p0;
9159 self->attrs[COLOR_parser_nodes__AContinueExpr___n_expr].val = var_node; /* _n_expr on <self:AContinueExpr> */
9160 var = NULL;
9161 if (var_node == NULL) {
9162 var1 = 0; /* is null */
9163 } else {
9164 var1 = 1; /* arg is null and recv is not */
9165 }
9166 if (var1){
9167 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable AExpr(AExpr)>*/;
9168 } else {
9169 }
9170 RET_LABEL:;
9171 }
9172 /* method parser_prod#AContinueExpr#n_expr= for (self: Object, nullable AExpr) */
9173 void VIRTUAL_parser_prod__AContinueExpr__n_expr_61d(val* self, val* p0) {
9174 parser_prod__AContinueExpr__n_expr_61d(self, p0);
9175 RET_LABEL:;
9176 }
9177 /* method parser_prod#AContinueExpr#visit_all for (self: AContinueExpr, Visitor) */
9178 void parser_prod__AContinueExpr__visit_all(val* self, val* p0) {
9179 val* var_v /* var v: Visitor */;
9180 val* var /* : nullable TKwcontinue */;
9181 val* var1 /* : null */;
9182 short int var2 /* : Bool */;
9183 val* var3 /* : nullable TKwcontinue */;
9184 val* var4 /* : nullable ALabel */;
9185 val* var5 /* : null */;
9186 short int var6 /* : Bool */;
9187 val* var7 /* : nullable ALabel */;
9188 val* var8 /* : nullable AExpr */;
9189 val* var9 /* : null */;
9190 short int var10 /* : Bool */;
9191 val* var11 /* : nullable AExpr */;
9192 var_v = p0;
9193 var = self->attrs[COLOR_parser_nodes__AContinueExpr___n_kwcontinue].val; /* _n_kwcontinue on <self:AContinueExpr> */
9194 var1 = NULL;
9195 if (var == NULL) {
9196 var2 = 0; /* is null */
9197 } else {
9198 var2 = 1; /* arg is null and recv is not */
9199 }
9200 if (var2){
9201 var3 = self->attrs[COLOR_parser_nodes__AContinueExpr___n_kwcontinue].val; /* _n_kwcontinue on <self:AContinueExpr> */
9202 if (var3 == NULL) {
9203 fprintf(stderr, "Runtime error: %s", "Cast failed");
9204 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4890);
9205 show_backtrace(1);
9206 }
9207 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var3) /* enter_visit on <var_v:Visitor>*/;
9208 } else {
9209 }
9210 var4 = self->attrs[COLOR_parser_nodes__ALabelable___n_label].val; /* _n_label on <self:AContinueExpr> */
9211 var5 = NULL;
9212 if (var4 == NULL) {
9213 var6 = 0; /* is null */
9214 } else {
9215 var6 = 1; /* arg is null and recv is not */
9216 }
9217 if (var6){
9218 var7 = self->attrs[COLOR_parser_nodes__ALabelable___n_label].val; /* _n_label on <self:AContinueExpr> */
9219 if (var7 == NULL) {
9220 fprintf(stderr, "Runtime error: %s", "Cast failed");
9221 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4893);
9222 show_backtrace(1);
9223 }
9224 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var7) /* enter_visit on <var_v:Visitor>*/;
9225 } else {
9226 }
9227 var8 = self->attrs[COLOR_parser_nodes__AContinueExpr___n_expr].val; /* _n_expr on <self:AContinueExpr> */
9228 var9 = NULL;
9229 if (var8 == NULL) {
9230 var10 = 0; /* is null */
9231 } else {
9232 var10 = 1; /* arg is null and recv is not */
9233 }
9234 if (var10){
9235 var11 = self->attrs[COLOR_parser_nodes__AContinueExpr___n_expr].val; /* _n_expr on <self:AContinueExpr> */
9236 if (var11 == NULL) {
9237 fprintf(stderr, "Runtime error: %s", "Cast failed");
9238 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4896);
9239 show_backtrace(1);
9240 }
9241 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var11) /* enter_visit on <var_v:Visitor>*/;
9242 } else {
9243 }
9244 RET_LABEL:;
9245 }
9246 /* method parser_prod#AContinueExpr#visit_all for (self: Object, Visitor) */
9247 void VIRTUAL_parser_prod__AContinueExpr__visit_all(val* self, val* p0) {
9248 parser_prod__AContinueExpr__visit_all(self, p0);
9249 RET_LABEL:;
9250 }
9251 /* method parser_prod#ADoExpr#empty_init for (self: ADoExpr) */
9252 void parser_prod__ADoExpr__empty_init(val* self) {
9253 RET_LABEL:;
9254 }
9255 /* method parser_prod#ADoExpr#empty_init for (self: Object) */
9256 void VIRTUAL_parser_prod__ADoExpr__empty_init(val* self) {
9257 parser_prod__ADoExpr__empty_init(self);
9258 RET_LABEL:;
9259 }
9260 /* method parser_prod#ADoExpr#init_adoexpr for (self: ADoExpr, nullable TKwdo, nullable AExpr, nullable ALabel) */
9261 void parser_prod__ADoExpr__init_adoexpr(val* self, val* p0, val* p1, val* p2) {
9262 val* var_n_kwdo /* var n_kwdo: nullable TKwdo */;
9263 val* var_n_block /* var n_block: nullable AExpr */;
9264 val* var_n_label /* var n_label: nullable ALabel */;
9265 val* var /* : null */;
9266 short int var1 /* : Bool */;
9267 val* var2 /* : null */;
9268 short int var3 /* : Bool */;
9269 var_n_kwdo = p0;
9270 var_n_block = p1;
9271 var_n_label = p2;
9272 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__ADoExpr__empty_init]))(self) /* empty_init on <self:ADoExpr>*/;
9273 if (var_n_kwdo == NULL) {
9274 fprintf(stderr, "Runtime error: %s", "Cast failed");
9275 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4910);
9276 show_backtrace(1);
9277 }
9278 self->attrs[COLOR_parser_nodes__ADoExpr___n_kwdo].val = var_n_kwdo; /* _n_kwdo on <self:ADoExpr> */
9279 if (var_n_kwdo == NULL) {
9280 fprintf(stderr, "Runtime error: %s", "Reciever is null");
9281 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4911);
9282 show_backtrace(1);
9283 } else {
9284 ((void (*)(val*, val*))(var_n_kwdo->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_kwdo, self) /* parent= on <var_n_kwdo:nullable TKwdo>*/;
9285 }
9286 self->attrs[COLOR_parser_nodes__ADoExpr___n_block].val = var_n_block; /* _n_block on <self:ADoExpr> */
9287 var = NULL;
9288 if (var_n_block == NULL) {
9289 var1 = 0; /* is null */
9290 } else {
9291 var1 = 1; /* arg is null and recv is not */
9292 }
9293 if (var1){
9294 ((void (*)(val*, val*))(var_n_block->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_block, self) /* parent= on <var_n_block:nullable AExpr(AExpr)>*/;
9295 } else {
9296 }
9297 self->attrs[COLOR_parser_nodes__ALabelable___n_label].val = var_n_label; /* _n_label on <self:ADoExpr> */
9298 var2 = NULL;
9299 if (var_n_label == NULL) {
9300 var3 = 0; /* is null */
9301 } else {
9302 var3 = 1; /* arg is null and recv is not */
9303 }
9304 if (var3){
9305 ((void (*)(val*, val*))(var_n_label->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_label, self) /* parent= on <var_n_label:nullable ALabel(ALabel)>*/;
9306 } else {
9307 }
9308 RET_LABEL:;
9309 }
9310 /* method parser_prod#ADoExpr#init_adoexpr for (self: Object, nullable TKwdo, nullable AExpr, nullable ALabel) */
9311 void VIRTUAL_parser_prod__ADoExpr__init_adoexpr(val* self, val* p0, val* p1, val* p2) {
9312 parser_prod__ADoExpr__init_adoexpr(self, p0, p1, p2);
9313 RET_LABEL:;
9314 }
9315 /* method parser_prod#ADoExpr#replace_child for (self: ADoExpr, ANode, nullable ANode) */
9316 void parser_prod__ADoExpr__replace_child(val* self, val* p0, val* p1) {
9317 val* var_old_child /* var old_child: ANode */;
9318 val* var_new_child /* var new_child: nullable ANode */;
9319 val* var /* : TKwdo */;
9320 short int var1 /* : Bool */;
9321 val* var2 /* : null */;
9322 short int var3 /* : Bool */;
9323 short int var4 /* : Bool */;
9324 int cltype;
9325 int idtype;
9326 val* var5 /* : nullable AExpr */;
9327 short int var6 /* : Bool */;
9328 val* var7 /* : null */;
9329 short int var8 /* : Bool */;
9330 short int var9 /* : Bool */;
9331 int cltype10;
9332 int idtype11;
9333 val* var12 /* : null */;
9334 val* var13 /* : nullable ALabel */;
9335 short int var14 /* : Bool */;
9336 val* var15 /* : null */;
9337 short int var16 /* : Bool */;
9338 short int var17 /* : Bool */;
9339 int cltype18;
9340 int idtype19;
9341 val* var20 /* : null */;
9342 var_old_child = p0;
9343 var_new_child = p1;
9344 var = self->attrs[COLOR_parser_nodes__ADoExpr___n_kwdo].val; /* _n_kwdo on <self:ADoExpr> */
9345 if (var == NULL) {
9346 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwdo");
9347 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4924);
9348 show_backtrace(1);
9349 }
9350 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:TKwdo>*/;
9351 if (var1){
9352 var2 = NULL;
9353 if (var_new_child == NULL) {
9354 var3 = 0; /* is null */
9355 } else {
9356 var3 = 1; /* arg is null and recv is not */
9357 }
9358 if (var3){
9359 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
9360 /* <var_new_child:nullable ANode(ANode)> isa TKwdo */
9361 cltype = type_parser_nodes__TKwdo.color;
9362 idtype = type_parser_nodes__TKwdo.id;
9363 if(cltype >= var_new_child->type->table_size) {
9364 var4 = 0;
9365 } else {
9366 var4 = var_new_child->type->type_table[cltype] == idtype;
9367 }
9368 if (!var4) {
9369 fprintf(stderr, "Runtime error: %s", "Assert failed");
9370 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4927);
9371 show_backtrace(1);
9372 }
9373 self->attrs[COLOR_parser_nodes__ADoExpr___n_kwdo].val = var_new_child; /* _n_kwdo on <self:ADoExpr> */
9374 } else {
9375 fprintf(stderr, "Runtime error: %s", "Aborted");
9376 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4930);
9377 show_backtrace(1);
9378 }
9379 goto RET_LABEL;
9380 } else {
9381 }
9382 var5 = self->attrs[COLOR_parser_nodes__ADoExpr___n_block].val; /* _n_block on <self:ADoExpr> */
9383 if (var5 == NULL) {
9384 var6 = 0; /* <var_old_child:ANode> cannot be null */
9385 } else {
9386 var6 = ((short int (*)(val*, val*))(var5->class->vft[COLOR_kernel__Object___61d_61d]))(var5, var_old_child) /* == on <var5:nullable AExpr>*/;
9387 }
9388 if (var6){
9389 var7 = NULL;
9390 if (var_new_child == NULL) {
9391 var8 = 0; /* is null */
9392 } else {
9393 var8 = 1; /* arg is null and recv is not */
9394 }
9395 if (var8){
9396 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
9397 /* <var_new_child:nullable ANode(ANode)> isa AExpr */
9398 cltype10 = type_parser_nodes__AExpr.color;
9399 idtype11 = type_parser_nodes__AExpr.id;
9400 if(cltype10 >= var_new_child->type->table_size) {
9401 var9 = 0;
9402 } else {
9403 var9 = var_new_child->type->type_table[cltype10] == idtype11;
9404 }
9405 if (!var9) {
9406 fprintf(stderr, "Runtime error: %s", "Assert failed");
9407 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4937);
9408 show_backtrace(1);
9409 }
9410 self->attrs[COLOR_parser_nodes__ADoExpr___n_block].val = var_new_child; /* _n_block on <self:ADoExpr> */
9411 } else {
9412 var12 = NULL;
9413 self->attrs[COLOR_parser_nodes__ADoExpr___n_block].val = var12; /* _n_block on <self:ADoExpr> */
9414 }
9415 goto RET_LABEL;
9416 } else {
9417 }
9418 var13 = self->attrs[COLOR_parser_nodes__ALabelable___n_label].val; /* _n_label on <self:ADoExpr> */
9419 if (var13 == NULL) {
9420 var14 = 0; /* <var_old_child:ANode> cannot be null */
9421 } else {
9422 var14 = ((short int (*)(val*, val*))(var13->class->vft[COLOR_kernel__Object___61d_61d]))(var13, var_old_child) /* == on <var13:nullable ALabel>*/;
9423 }
9424 if (var14){
9425 var15 = NULL;
9426 if (var_new_child == NULL) {
9427 var16 = 0; /* is null */
9428 } else {
9429 var16 = 1; /* arg is null and recv is not */
9430 }
9431 if (var16){
9432 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
9433 /* <var_new_child:nullable ANode(ANode)> isa ALabel */
9434 cltype18 = type_parser_nodes__ALabel.color;
9435 idtype19 = type_parser_nodes__ALabel.id;
9436 if(cltype18 >= var_new_child->type->table_size) {
9437 var17 = 0;
9438 } else {
9439 var17 = var_new_child->type->type_table[cltype18] == idtype19;
9440 }
9441 if (!var17) {
9442 fprintf(stderr, "Runtime error: %s", "Assert failed");
9443 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4947);
9444 show_backtrace(1);
9445 }
9446 self->attrs[COLOR_parser_nodes__ALabelable___n_label].val = var_new_child; /* _n_label on <self:ADoExpr> */
9447 } else {
9448 var20 = NULL;
9449 self->attrs[COLOR_parser_nodes__ALabelable___n_label].val = var20; /* _n_label on <self:ADoExpr> */
9450 }
9451 goto RET_LABEL;
9452 } else {
9453 }
9454 RET_LABEL:;
9455 }
9456 /* method parser_prod#ADoExpr#replace_child for (self: Object, ANode, nullable ANode) */
9457 void VIRTUAL_parser_prod__ADoExpr__replace_child(val* self, val* p0, val* p1) {
9458 parser_prod__ADoExpr__replace_child(self, p0, p1);
9459 RET_LABEL:;
9460 }
9461 /* method parser_prod#ADoExpr#n_kwdo= for (self: ADoExpr, TKwdo) */
9462 void parser_prod__ADoExpr__n_kwdo_61d(val* self, val* p0) {
9463 val* var_node /* var node: TKwdo */;
9464 var_node = p0;
9465 self->attrs[COLOR_parser_nodes__ADoExpr___n_kwdo].val = var_node; /* _n_kwdo on <self:ADoExpr> */
9466 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TKwdo>*/;
9467 RET_LABEL:;
9468 }
9469 /* method parser_prod#ADoExpr#n_kwdo= for (self: Object, TKwdo) */
9470 void VIRTUAL_parser_prod__ADoExpr__n_kwdo_61d(val* self, val* p0) {
9471 parser_prod__ADoExpr__n_kwdo_61d(self, p0);
9472 RET_LABEL:;
9473 }
9474 /* method parser_prod#ADoExpr#n_block= for (self: ADoExpr, nullable AExpr) */
9475 void parser_prod__ADoExpr__n_block_61d(val* self, val* p0) {
9476 val* var_node /* var node: nullable AExpr */;
9477 val* var /* : null */;
9478 short int var1 /* : Bool */;
9479 var_node = p0;
9480 self->attrs[COLOR_parser_nodes__ADoExpr___n_block].val = var_node; /* _n_block on <self:ADoExpr> */
9481 var = NULL;
9482 if (var_node == NULL) {
9483 var1 = 0; /* is null */
9484 } else {
9485 var1 = 1; /* arg is null and recv is not */
9486 }
9487 if (var1){
9488 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable AExpr(AExpr)>*/;
9489 } else {
9490 }
9491 RET_LABEL:;
9492 }
9493 /* method parser_prod#ADoExpr#n_block= for (self: Object, nullable AExpr) */
9494 void VIRTUAL_parser_prod__ADoExpr__n_block_61d(val* self, val* p0) {
9495 parser_prod__ADoExpr__n_block_61d(self, p0);
9496 RET_LABEL:;
9497 }
9498 /* method parser_prod#ADoExpr#n_label= for (self: ADoExpr, nullable ALabel) */
9499 void parser_prod__ADoExpr__n_label_61d(val* self, val* p0) {
9500 val* var_node /* var node: nullable ALabel */;
9501 val* var /* : null */;
9502 short int var1 /* : Bool */;
9503 var_node = p0;
9504 self->attrs[COLOR_parser_nodes__ALabelable___n_label].val = var_node; /* _n_label on <self:ADoExpr> */
9505 var = NULL;
9506 if (var_node == NULL) {
9507 var1 = 0; /* is null */
9508 } else {
9509 var1 = 1; /* arg is null and recv is not */
9510 }
9511 if (var1){
9512 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable ALabel(ALabel)>*/;
9513 } else {
9514 }
9515 RET_LABEL:;
9516 }
9517 /* method parser_prod#ADoExpr#n_label= for (self: Object, nullable ALabel) */
9518 void VIRTUAL_parser_prod__ADoExpr__n_label_61d(val* self, val* p0) {
9519 parser_prod__ADoExpr__n_label_61d(self, p0);
9520 RET_LABEL:;
9521 }
9522 /* method parser_prod#ADoExpr#visit_all for (self: ADoExpr, Visitor) */
9523 void parser_prod__ADoExpr__visit_all(val* self, val* p0) {
9524 val* var_v /* var v: Visitor */;
9525 val* var /* : TKwdo */;
9526 val* var1 /* : nullable AExpr */;
9527 val* var2 /* : null */;
9528 short int var3 /* : Bool */;
9529 val* var4 /* : nullable AExpr */;
9530 val* var5 /* : nullable ALabel */;
9531 val* var6 /* : null */;
9532 short int var7 /* : Bool */;
9533 val* var8 /* : nullable ALabel */;
9534 var_v = p0;
9535 var = self->attrs[COLOR_parser_nodes__ADoExpr___n_kwdo].val; /* _n_kwdo on <self:ADoExpr> */
9536 if (var == NULL) {
9537 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwdo");
9538 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4979);
9539 show_backtrace(1);
9540 }
9541 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
9542 var1 = self->attrs[COLOR_parser_nodes__ADoExpr___n_block].val; /* _n_block on <self:ADoExpr> */
9543 var2 = NULL;
9544 if (var1 == NULL) {
9545 var3 = 0; /* is null */
9546 } else {
9547 var3 = 1; /* arg is null and recv is not */
9548 }
9549 if (var3){
9550 var4 = self->attrs[COLOR_parser_nodes__ADoExpr___n_block].val; /* _n_block on <self:ADoExpr> */
9551 if (var4 == NULL) {
9552 fprintf(stderr, "Runtime error: %s", "Cast failed");
9553 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4981);
9554 show_backtrace(1);
9555 }
9556 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var4) /* enter_visit on <var_v:Visitor>*/;
9557 } else {
9558 }
9559 var5 = self->attrs[COLOR_parser_nodes__ALabelable___n_label].val; /* _n_label on <self:ADoExpr> */
9560 var6 = NULL;
9561 if (var5 == NULL) {
9562 var7 = 0; /* is null */
9563 } else {
9564 var7 = 1; /* arg is null and recv is not */
9565 }
9566 if (var7){
9567 var8 = self->attrs[COLOR_parser_nodes__ALabelable___n_label].val; /* _n_label on <self:ADoExpr> */
9568 if (var8 == NULL) {
9569 fprintf(stderr, "Runtime error: %s", "Cast failed");
9570 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4984);
9571 show_backtrace(1);
9572 }
9573 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var8) /* enter_visit on <var_v:Visitor>*/;
9574 } else {
9575 }
9576 RET_LABEL:;
9577 }
9578 /* method parser_prod#ADoExpr#visit_all for (self: Object, Visitor) */
9579 void VIRTUAL_parser_prod__ADoExpr__visit_all(val* self, val* p0) {
9580 parser_prod__ADoExpr__visit_all(self, p0);
9581 RET_LABEL:;
9582 }
9583 /* method parser_prod#AIfExpr#empty_init for (self: AIfExpr) */
9584 void parser_prod__AIfExpr__empty_init(val* self) {
9585 RET_LABEL:;
9586 }
9587 /* method parser_prod#AIfExpr#empty_init for (self: Object) */
9588 void VIRTUAL_parser_prod__AIfExpr__empty_init(val* self) {
9589 parser_prod__AIfExpr__empty_init(self);
9590 RET_LABEL:;
9591 }
9592 /* method parser_prod#AIfExpr#init_aifexpr for (self: AIfExpr, nullable TKwif, nullable AExpr, nullable AExpr, nullable AExpr) */
9593 void parser_prod__AIfExpr__init_aifexpr(val* self, val* p0, val* p1, val* p2, val* p3) {
9594 val* var_n_kwif /* var n_kwif: nullable TKwif */;
9595 val* var_n_expr /* var n_expr: nullable AExpr */;
9596 val* var_n_then /* var n_then: nullable AExpr */;
9597 val* var_n_else /* var n_else: nullable AExpr */;
9598 val* var /* : null */;
9599 short int var1 /* : Bool */;
9600 val* var2 /* : null */;
9601 short int var3 /* : Bool */;
9602 var_n_kwif = p0;
9603 var_n_expr = p1;
9604 var_n_then = p2;
9605 var_n_else = p3;
9606 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__AIfExpr__empty_init]))(self) /* empty_init on <self:AIfExpr>*/;
9607 if (var_n_kwif == NULL) {
9608 fprintf(stderr, "Runtime error: %s", "Cast failed");
9609 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4999);
9610 show_backtrace(1);
9611 }
9612 self->attrs[COLOR_parser_nodes__AIfExpr___n_kwif].val = var_n_kwif; /* _n_kwif on <self:AIfExpr> */
9613 if (var_n_kwif == NULL) {
9614 fprintf(stderr, "Runtime error: %s", "Reciever is null");
9615 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5000);
9616 show_backtrace(1);
9617 } else {
9618 ((void (*)(val*, val*))(var_n_kwif->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_kwif, self) /* parent= on <var_n_kwif:nullable TKwif>*/;
9619 }
9620 if (var_n_expr == NULL) {
9621 fprintf(stderr, "Runtime error: %s", "Cast failed");
9622 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5001);
9623 show_backtrace(1);
9624 }
9625 self->attrs[COLOR_parser_nodes__AIfExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AIfExpr> */
9626 if (var_n_expr == NULL) {
9627 fprintf(stderr, "Runtime error: %s", "Reciever is null");
9628 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5002);
9629 show_backtrace(1);
9630 } else {
9631 ((void (*)(val*, val*))(var_n_expr->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_expr, self) /* parent= on <var_n_expr:nullable AExpr>*/;
9632 }
9633 self->attrs[COLOR_parser_nodes__AIfExpr___n_then].val = var_n_then; /* _n_then on <self:AIfExpr> */
9634 var = NULL;
9635 if (var_n_then == NULL) {
9636 var1 = 0; /* is null */
9637 } else {
9638 var1 = 1; /* arg is null and recv is not */
9639 }
9640 if (var1){
9641 ((void (*)(val*, val*))(var_n_then->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_then, self) /* parent= on <var_n_then:nullable AExpr(AExpr)>*/;
9642 } else {
9643 }
9644 self->attrs[COLOR_parser_nodes__AIfExpr___n_else].val = var_n_else; /* _n_else on <self:AIfExpr> */
9645 var2 = NULL;
9646 if (var_n_else == NULL) {
9647 var3 = 0; /* is null */
9648 } else {
9649 var3 = 1; /* arg is null and recv is not */
9650 }
9651 if (var3){
9652 ((void (*)(val*, val*))(var_n_else->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_else, self) /* parent= on <var_n_else:nullable AExpr(AExpr)>*/;
9653 } else {
9654 }
9655 RET_LABEL:;
9656 }
9657 /* method parser_prod#AIfExpr#init_aifexpr for (self: Object, nullable TKwif, nullable AExpr, nullable AExpr, nullable AExpr) */
9658 void VIRTUAL_parser_prod__AIfExpr__init_aifexpr(val* self, val* p0, val* p1, val* p2, val* p3) {
9659 parser_prod__AIfExpr__init_aifexpr(self, p0, p1, p2, p3);
9660 RET_LABEL:;
9661 }
9662 /* method parser_prod#AIfExpr#replace_child for (self: AIfExpr, ANode, nullable ANode) */
9663 void parser_prod__AIfExpr__replace_child(val* self, val* p0, val* p1) {
9664 val* var_old_child /* var old_child: ANode */;
9665 val* var_new_child /* var new_child: nullable ANode */;
9666 val* var /* : TKwif */;
9667 short int var1 /* : Bool */;
9668 val* var2 /* : null */;
9669 short int var3 /* : Bool */;
9670 short int var4 /* : Bool */;
9671 int cltype;
9672 int idtype;
9673 val* var5 /* : AExpr */;
9674 short int var6 /* : Bool */;
9675 val* var7 /* : null */;
9676 short int var8 /* : Bool */;
9677 short int var9 /* : Bool */;
9678 int cltype10;
9679 int idtype11;
9680 val* var12 /* : nullable AExpr */;
9681 short int var13 /* : Bool */;
9682 val* var14 /* : null */;
9683 short int var15 /* : Bool */;
9684 short int var16 /* : Bool */;
9685 int cltype17;
9686 int idtype18;
9687 val* var19 /* : null */;
9688 val* var20 /* : nullable AExpr */;
9689 short int var21 /* : Bool */;
9690 val* var22 /* : null */;
9691 short int var23 /* : Bool */;
9692 short int var24 /* : Bool */;
9693 int cltype25;
9694 int idtype26;
9695 val* var27 /* : null */;
9696 var_old_child = p0;
9697 var_new_child = p1;
9698 var = self->attrs[COLOR_parser_nodes__AIfExpr___n_kwif].val; /* _n_kwif on <self:AIfExpr> */
9699 if (var == NULL) {
9700 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwif");
9701 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5015);
9702 show_backtrace(1);
9703 }
9704 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:TKwif>*/;
9705 if (var1){
9706 var2 = NULL;
9707 if (var_new_child == NULL) {
9708 var3 = 0; /* is null */
9709 } else {
9710 var3 = 1; /* arg is null and recv is not */
9711 }
9712 if (var3){
9713 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
9714 /* <var_new_child:nullable ANode(ANode)> isa TKwif */
9715 cltype = type_parser_nodes__TKwif.color;
9716 idtype = type_parser_nodes__TKwif.id;
9717 if(cltype >= var_new_child->type->table_size) {
9718 var4 = 0;
9719 } else {
9720 var4 = var_new_child->type->type_table[cltype] == idtype;
9721 }
9722 if (!var4) {
9723 fprintf(stderr, "Runtime error: %s", "Assert failed");
9724 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5018);
9725 show_backtrace(1);
9726 }
9727 self->attrs[COLOR_parser_nodes__AIfExpr___n_kwif].val = var_new_child; /* _n_kwif on <self:AIfExpr> */
9728 } else {
9729 fprintf(stderr, "Runtime error: %s", "Aborted");
9730 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5021);
9731 show_backtrace(1);
9732 }
9733 goto RET_LABEL;
9734 } else {
9735 }
9736 var5 = self->attrs[COLOR_parser_nodes__AIfExpr___n_expr].val; /* _n_expr on <self:AIfExpr> */
9737 if (var5 == NULL) {
9738 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_expr");
9739 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5025);
9740 show_backtrace(1);
9741 }
9742 var6 = ((short int (*)(val*, val*))(var5->class->vft[COLOR_kernel__Object___61d_61d]))(var5, var_old_child) /* == on <var5:AExpr>*/;
9743 if (var6){
9744 var7 = NULL;
9745 if (var_new_child == NULL) {
9746 var8 = 0; /* is null */
9747 } else {
9748 var8 = 1; /* arg is null and recv is not */
9749 }
9750 if (var8){
9751 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
9752 /* <var_new_child:nullable ANode(ANode)> isa AExpr */
9753 cltype10 = type_parser_nodes__AExpr.color;
9754 idtype11 = type_parser_nodes__AExpr.id;
9755 if(cltype10 >= var_new_child->type->table_size) {
9756 var9 = 0;
9757 } else {
9758 var9 = var_new_child->type->type_table[cltype10] == idtype11;
9759 }
9760 if (!var9) {
9761 fprintf(stderr, "Runtime error: %s", "Assert failed");
9762 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5028);
9763 show_backtrace(1);
9764 }
9765 self->attrs[COLOR_parser_nodes__AIfExpr___n_expr].val = var_new_child; /* _n_expr on <self:AIfExpr> */
9766 } else {
9767 fprintf(stderr, "Runtime error: %s", "Aborted");
9768 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5031);
9769 show_backtrace(1);
9770 }
9771 goto RET_LABEL;
9772 } else {
9773 }
9774 var12 = self->attrs[COLOR_parser_nodes__AIfExpr___n_then].val; /* _n_then on <self:AIfExpr> */
9775 if (var12 == NULL) {
9776 var13 = 0; /* <var_old_child:ANode> cannot be null */
9777 } else {
9778 var13 = ((short int (*)(val*, val*))(var12->class->vft[COLOR_kernel__Object___61d_61d]))(var12, var_old_child) /* == on <var12:nullable AExpr>*/;
9779 }
9780 if (var13){
9781 var14 = NULL;
9782 if (var_new_child == NULL) {
9783 var15 = 0; /* is null */
9784 } else {
9785 var15 = 1; /* arg is null and recv is not */
9786 }
9787 if (var15){
9788 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
9789 /* <var_new_child:nullable ANode(ANode)> isa AExpr */
9790 cltype17 = type_parser_nodes__AExpr.color;
9791 idtype18 = type_parser_nodes__AExpr.id;
9792 if(cltype17 >= var_new_child->type->table_size) {
9793 var16 = 0;
9794 } else {
9795 var16 = var_new_child->type->type_table[cltype17] == idtype18;
9796 }
9797 if (!var16) {
9798 fprintf(stderr, "Runtime error: %s", "Assert failed");
9799 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5038);
9800 show_backtrace(1);
9801 }
9802 self->attrs[COLOR_parser_nodes__AIfExpr___n_then].val = var_new_child; /* _n_then on <self:AIfExpr> */
9803 } else {
9804 var19 = NULL;
9805 self->attrs[COLOR_parser_nodes__AIfExpr___n_then].val = var19; /* _n_then on <self:AIfExpr> */
9806 }
9807 goto RET_LABEL;
9808 } else {
9809 }
9810 var20 = self->attrs[COLOR_parser_nodes__AIfExpr___n_else].val; /* _n_else on <self:AIfExpr> */
9811 if (var20 == NULL) {
9812 var21 = 0; /* <var_old_child:ANode> cannot be null */
9813 } else {
9814 var21 = ((short int (*)(val*, val*))(var20->class->vft[COLOR_kernel__Object___61d_61d]))(var20, var_old_child) /* == on <var20:nullable AExpr>*/;
9815 }
9816 if (var21){
9817 var22 = NULL;
9818 if (var_new_child == NULL) {
9819 var23 = 0; /* is null */
9820 } else {
9821 var23 = 1; /* arg is null and recv is not */
9822 }
9823 if (var23){
9824 ((void (*)(val*, val*))(var_new_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_new_child, self) /* parent= on <var_new_child:nullable ANode(ANode)>*/;
9825 /* <var_new_child:nullable ANode(ANode)> isa AExpr */
9826 cltype25 = type_parser_nodes__AExpr.color;
9827 idtype26 = type_parser_nodes__AExpr.id;
9828 if(cltype25 >= var_new_child->type->table_size) {
9829 var24 = 0;
9830 } else {
9831 var24 = var_new_child->type->type_table[cltype25] == idtype26;
9832 }
9833 if (!var24) {
9834 fprintf(stderr, "Runtime error: %s", "Assert failed");
9835 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5048);
9836 show_backtrace(1);
9837 }
9838 self->attrs[COLOR_parser_nodes__AIfExpr___n_else].val = var_new_child; /* _n_else on <self:AIfExpr> */
9839 } else {
9840 var27 = NULL;
9841 self->attrs[COLOR_parser_nodes__AIfExpr___n_else].val = var27; /* _n_else on <self:AIfExpr> */
9842 }
9843 goto RET_LABEL;
9844 } else {
9845 }
9846 RET_LABEL:;
9847 }
9848 /* method parser_prod#AIfExpr#replace_child for (self: Object, ANode, nullable ANode) */
9849 void VIRTUAL_parser_prod__AIfExpr__replace_child(val* self, val* p0, val* p1) {
9850 parser_prod__AIfExpr__replace_child(self, p0, p1);
9851 RET_LABEL:;
9852 }
9853 /* method parser_prod#AIfExpr#n_kwif= for (self: AIfExpr, TKwif) */
9854 void parser_prod__AIfExpr__n_kwif_61d(val* self, val* p0) {
9855 val* var_node /* var node: TKwif */;
9856 var_node = p0;
9857 self->attrs[COLOR_parser_nodes__AIfExpr___n_kwif].val = var_node; /* _n_kwif on <self:AIfExpr> */
9858 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TKwif>*/;
9859 RET_LABEL:;
9860 }
9861 /* method parser_prod#AIfExpr#n_kwif= for (self: Object, TKwif) */
9862 void VIRTUAL_parser_prod__AIfExpr__n_kwif_61d(val* self, val* p0) {
9863 parser_prod__AIfExpr__n_kwif_61d(self, p0);
9864 RET_LABEL:;
9865 }
9866 /* method parser_prod#AIfExpr#n_expr= for (self: AIfExpr, AExpr) */
9867 void parser_prod__AIfExpr__n_expr_61d(val* self, val* p0) {
9868 val* var_node /* var node: AExpr */;
9869 var_node = p0;
9870 self->attrs[COLOR_parser_nodes__AIfExpr___n_expr].val = var_node; /* _n_expr on <self:AIfExpr> */
9871 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:AExpr>*/;
9872 RET_LABEL:;
9873 }
9874 /* method parser_prod#AIfExpr#n_expr= for (self: Object, AExpr) */
9875 void VIRTUAL_parser_prod__AIfExpr__n_expr_61d(val* self, val* p0) {
9876 parser_prod__AIfExpr__n_expr_61d(self, p0);
9877 RET_LABEL:;
9878 }
9879 /* method parser_prod#AIfExpr#n_then= for (self: AIfExpr, nullable AExpr) */
9880 void parser_prod__AIfExpr__n_then_61d(val* self, val* p0) {
9881 val* var_node /* var node: nullable AExpr */;
9882 val* var /* : null */;
9883 short int var1 /* : Bool */;
9884 var_node = p0;
9885 self->attrs[COLOR_parser_nodes__AIfExpr___n_then].val = var_node; /* _n_then on <self:AIfExpr> */
9886 var = NULL;
9887 if (var_node == NULL) {
9888 var1 = 0; /* is null */
9889 } else {
9890 var1 = 1; /* arg is null and recv is not */
9891 }
9892 if (var1){
9893 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable AExpr(AExpr)>*/;
9894 } else {
9895 }
9896 RET_LABEL:;
9897 }
9898 /* method parser_prod#AIfExpr#n_then= for (self: Object, nullable AExpr) */
9899 void VIRTUAL_parser_prod__AIfExpr__n_then_61d(val* self, val* p0) {
9900 parser_prod__AIfExpr__n_then_61d(self, p0);
9901 RET_LABEL:;
9902 }
9903 /* method parser_prod#AIfExpr#n_else= for (self: AIfExpr, nullable AExpr) */
9904 void parser_prod__AIfExpr__n_else_61d(val* self, val* p0) {
9905 val* var_node /* var node: nullable AExpr */;
9906 val* var /* : null */;
9907 short int var1 /* : Bool */;
9908 var_node = p0;
9909 self->attrs[COLOR_parser_nodes__AIfExpr___n_else].val = var_node; /* _n_else on <self:AIfExpr> */
9910 var = NULL;
9911 if (var_node == NULL) {
9912 var1 = 0; /* is null */
9913 } else {
9914 var1 = 1; /* arg is null and recv is not */
9915 }
9916 if (var1){
9917 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable AExpr(AExpr)>*/;
9918 } else {
9919 }
9920 RET_LABEL:;
9921 }
9922 /* method parser_prod#AIfExpr#n_else= for (self: Object, nullable AExpr) */
9923 void VIRTUAL_parser_prod__AIfExpr__n_else_61d(val* self, val* p0) {
9924 parser_prod__AIfExpr__n_else_61d(self, p0);
9925 RET_LABEL:;
9926 }
9927 /* method parser_prod#AIfExpr#visit_all for (self: AIfExpr, Visitor) */
9928 void parser_prod__AIfExpr__visit_all(val* self, val* p0) {
9929 val* var_v /* var v: Visitor */;
9930 val* var /* : TKwif */;
9931 val* var1 /* : AExpr */;
9932 val* var2 /* : nullable AExpr */;
9933 val* var3 /* : null */;
9934 short int var4 /* : Bool */;
9935 val* var5 /* : nullable AExpr */;
9936 val* var6 /* : nullable AExpr */;
9937 val* var7 /* : null */;
9938 short int var8 /* : Bool */;
9939 val* var9 /* : nullable AExpr */;
9940 var_v = p0;
9941 var = self->attrs[COLOR_parser_nodes__AIfExpr___n_kwif].val; /* _n_kwif on <self:AIfExpr> */
9942 if (var == NULL) {
9943 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwif");
9944 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5085);
9945 show_backtrace(1);
9946 }
9947 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
9948 var1 = self->attrs[COLOR_parser_nodes__AIfExpr___n_expr].val; /* _n_expr on <self:AIfExpr> */
9949 if (var1 == NULL) {
9950 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_expr");
9951 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5086);
9952 show_backtrace(1);
9953 }
9954 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var1) /* enter_visit on <var_v:Visitor>*/;
9955 var2 = self->attrs[COLOR_parser_nodes__AIfExpr___n_then].val; /* _n_then on <self:AIfExpr> */
9956 var3 = NULL;
9957 if (var2 == NULL) {
9958 var4 = 0; /* is null */
9959 } else {
9960 var4 = 1; /* arg is null and recv is not */
9961 }
9962 if (var4){
9963 var5 = self->attrs[COLOR_parser_nodes__AIfExpr___n_then].val; /* _n_then on <self:AIfExpr> */
9964 if (var5 == NULL) {
9965 fprintf(stderr, "Runtime error: %s", "Cast failed");
9966 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5088);
9967 show_backtrace(1);
9968 }
9969 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var5) /* enter_visit on <var_v:Visitor>*/;
9970 } else {
9971 }
9972 var6 = self->attrs[COLOR_parser_nodes__AIfExpr___n_else].val; /* _n_else on <self:AIfExpr> */
9973 var7 = NULL;
9974 if (var6 == NULL) {
9975 var8 = 0; /* is null */
9976 } else {
9977 var8 = 1; /* arg is null and recv is not */
9978 }
9979 if (var8){
9980 var9 = self->attrs[COLOR_parser_nodes__AIfExpr___n_else].val; /* _n_else on <self:AIfExpr> */
9981 if (var9 == NULL) {
9982 fprintf(stderr, "Runtime error: %s", "Cast failed");
9983 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5091);
9984 show_backtrace(1);
9985 }
9986 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var9) /* enter_visit on <var_v:Visitor>*/;
9987 } else {
9988 }
9989 RET_LABEL:;
9990 }
9991 /* method parser_prod#AIfExpr#visit_all for (self: Object, Visitor) */
9992 void VIRTUAL_parser_prod__AIfExpr__visit_all(val* self, val* p0) {
9993 parser_prod__AIfExpr__visit_all(self, p0);
9994 RET_LABEL:;
9995 }
9996 /* method parser_prod#AIfexprExpr#empty_init for (self: AIfexprExpr) */
9997 void parser_prod__AIfexprExpr__empty_init(val* self) {
9998 RET_LABEL:;
9999 }