nitg-s: fix abstract methods in extern classes and add test
[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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 exit(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 CHECK_NEW_range__Range(var6);
5830 var12 = ((val* (*)(val*))(var6->class->vft[COLOR_abstract_collection__Collection__iterator]))(var6) /* iterator on <var6:Range[Int]>*/;
5831 for(;;) {
5832 var13 = ((short int (*)(val*))(var12->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var12) /* is_ok on <var12:Iterator[nullable Object]>*/;
5833 if(!var13) break;
5834 var14 = ((val* (*)(val*))(var12->class->vft[COLOR_abstract_collection__Iterator__item]))(var12) /* item on <var12:Iterator[nullable Object]>*/;
5835 var15 = ((struct instance_kernel__Int*)var14)->value; /* autounbox from nullable Object to Int */;
5836 var_i = var15;
5837 var16 = self->attrs[COLOR_parser_nodes__ASignature___n_params].val; /* _n_params on <self:ASignature> */
5838 if (var16 == NULL) {
5839 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_params");
5840 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4038);
5841 exit(1);
5842 }
5843 var17 = ((val* (*)(val*, long))(var16->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var16, var_i) /* [] on <var16:ANodes[AParam]>*/;
5844 var18 = ((short int (*)(val*, val*))(var17->class->vft[COLOR_kernel__Object___61d_61d]))(var17, var_old_child) /* == on <var17:nullable Object(AParam)>*/;
5845 if (var18){
5846 var19 = NULL;
5847 if (var_new_child == NULL) {
5848 var20 = 0; /* is null */
5849 } else {
5850 var20 = 1; /* arg is null and recv is not */
5851 }
5852 if (var20){
5853 /* <var_new_child:nullable ANode(ANode)> isa AParam */
5854 cltype22 = type_parser_nodes__AParam.color;
5855 idtype23 = type_parser_nodes__AParam.id;
5856 if(cltype22 >= var_new_child->type->table_size) {
5857 var21 = 0;
5858 } else {
5859 var21 = var_new_child->type->type_table[cltype22] == idtype23;
5860 }
5861 if (!var21) {
5862 fprintf(stderr, "Runtime error: %s", "Assert failed");
5863 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4040);
5864 exit(1);
5865 }
5866 var24 = self->attrs[COLOR_parser_nodes__ASignature___n_params].val; /* _n_params on <self:ASignature> */
5867 if (var24 == NULL) {
5868 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_params");
5869 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4041);
5870 exit(1);
5871 }
5872 ((void (*)(val*, long, val*))(var24->class->vft[COLOR_abstract_collection__Sequence___91d_93d_61d]))(var24, var_i, var_new_child) /* []= on <var24:ANodes[AParam]>*/;
5873 ((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)>*/;
5874 } else {
5875 var25 = self->attrs[COLOR_parser_nodes__ASignature___n_params].val; /* _n_params on <self:ASignature> */
5876 if (var25 == NULL) {
5877 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_params");
5878 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4044);
5879 exit(1);
5880 }
5881 ((void (*)(val*, long))(var25->class->vft[COLOR_abstract_collection__Sequence__remove_at]))(var25, var_i) /* remove_at on <var25:ANodes[AParam]>*/;
5882 }
5883 goto RET_LABEL;
5884 } else {
5885 }
5886 CONTINUE_label: (void)0;
5887 ((void (*)(val*))(var12->class->vft[COLOR_abstract_collection__Iterator__next]))(var12) /* next on <var12:Iterator[nullable Object]>*/;
5888 }
5889 BREAK_label: (void)0;
5890 var26 = self->attrs[COLOR_parser_nodes__ASignature___n_cpar].val; /* _n_cpar on <self:ASignature> */
5891 if (var26 == NULL) {
5892 var27 = 0; /* <var_old_child:ANode> cannot be null */
5893 } else {
5894 var27 = ((short int (*)(val*, val*))(var26->class->vft[COLOR_kernel__Object___61d_61d]))(var26, var_old_child) /* == on <var26:nullable TCpar>*/;
5895 }
5896 if (var27){
5897 var28 = NULL;
5898 if (var_new_child == NULL) {
5899 var29 = 0; /* is null */
5900 } else {
5901 var29 = 1; /* arg is null and recv is not */
5902 }
5903 if (var29){
5904 ((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)>*/;
5905 /* <var_new_child:nullable ANode(ANode)> isa TCpar */
5906 cltype31 = type_parser_nodes__TCpar.color;
5907 idtype32 = type_parser_nodes__TCpar.id;
5908 if(cltype31 >= var_new_child->type->table_size) {
5909 var30 = 0;
5910 } else {
5911 var30 = var_new_child->type->type_table[cltype31] == idtype32;
5912 }
5913 if (!var30) {
5914 fprintf(stderr, "Runtime error: %s", "Assert failed");
5915 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4052);
5916 exit(1);
5917 }
5918 self->attrs[COLOR_parser_nodes__ASignature___n_cpar].val = var_new_child; /* _n_cpar on <self:ASignature> */
5919 } else {
5920 var33 = NULL;
5921 self->attrs[COLOR_parser_nodes__ASignature___n_cpar].val = var33; /* _n_cpar on <self:ASignature> */
5922 }
5923 goto RET_LABEL;
5924 } else {
5925 }
5926 var34 = self->attrs[COLOR_parser_nodes__ASignature___n_type].val; /* _n_type on <self:ASignature> */
5927 if (var34 == NULL) {
5928 var35 = 0; /* <var_old_child:ANode> cannot be null */
5929 } else {
5930 var35 = ((short int (*)(val*, val*))(var34->class->vft[COLOR_kernel__Object___61d_61d]))(var34, var_old_child) /* == on <var34:nullable AType>*/;
5931 }
5932 if (var35){
5933 var36 = NULL;
5934 if (var_new_child == NULL) {
5935 var37 = 0; /* is null */
5936 } else {
5937 var37 = 1; /* arg is null and recv is not */
5938 }
5939 if (var37){
5940 ((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)>*/;
5941 /* <var_new_child:nullable ANode(ANode)> isa AType */
5942 cltype39 = type_parser_nodes__AType.color;
5943 idtype40 = type_parser_nodes__AType.id;
5944 if(cltype39 >= var_new_child->type->table_size) {
5945 var38 = 0;
5946 } else {
5947 var38 = var_new_child->type->type_table[cltype39] == idtype40;
5948 }
5949 if (!var38) {
5950 fprintf(stderr, "Runtime error: %s", "Assert failed");
5951 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4062);
5952 exit(1);
5953 }
5954 self->attrs[COLOR_parser_nodes__ASignature___n_type].val = var_new_child; /* _n_type on <self:ASignature> */
5955 } else {
5956 var41 = NULL;
5957 self->attrs[COLOR_parser_nodes__ASignature___n_type].val = var41; /* _n_type on <self:ASignature> */
5958 }
5959 goto RET_LABEL;
5960 } else {
5961 }
5962 RET_LABEL:;
5963 }
5964 /* method parser_prod#ASignature#replace_child for (self: Object, ANode, nullable ANode) */
5965 void VIRTUAL_parser_prod__ASignature__replace_child(val* self, val* p0, val* p1) {
5966 parser_prod__ASignature__replace_child(self, p0, p1);
5967 RET_LABEL:;
5968 }
5969 /* method parser_prod#ASignature#n_opar= for (self: ASignature, nullable TOpar) */
5970 void parser_prod__ASignature__n_opar_61d(val* self, val* p0) {
5971 val* var_node /* var node: nullable TOpar */;
5972 val* var /* : null */;
5973 short int var1 /* : Bool */;
5974 var_node = p0;
5975 self->attrs[COLOR_parser_nodes__ASignature___n_opar].val = var_node; /* _n_opar on <self:ASignature> */
5976 var = NULL;
5977 if (var_node == NULL) {
5978 var1 = 0; /* is null */
5979 } else {
5980 var1 = 1; /* arg is null and recv is not */
5981 }
5982 if (var1){
5983 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable TOpar(TOpar)>*/;
5984 } else {
5985 }
5986 RET_LABEL:;
5987 }
5988 /* method parser_prod#ASignature#n_opar= for (self: Object, nullable TOpar) */
5989 void VIRTUAL_parser_prod__ASignature__n_opar_61d(val* self, val* p0) {
5990 parser_prod__ASignature__n_opar_61d(self, p0);
5991 RET_LABEL:;
5992 }
5993 /* method parser_prod#ASignature#n_cpar= for (self: ASignature, nullable TCpar) */
5994 void parser_prod__ASignature__n_cpar_61d(val* self, val* p0) {
5995 val* var_node /* var node: nullable TCpar */;
5996 val* var /* : null */;
5997 short int var1 /* : Bool */;
5998 var_node = p0;
5999 self->attrs[COLOR_parser_nodes__ASignature___n_cpar].val = var_node; /* _n_cpar on <self:ASignature> */
6000 var = NULL;
6001 if (var_node == NULL) {
6002 var1 = 0; /* is null */
6003 } else {
6004 var1 = 1; /* arg is null and recv is not */
6005 }
6006 if (var1){
6007 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable TCpar(TCpar)>*/;
6008 } else {
6009 }
6010 RET_LABEL:;
6011 }
6012 /* method parser_prod#ASignature#n_cpar= for (self: Object, nullable TCpar) */
6013 void VIRTUAL_parser_prod__ASignature__n_cpar_61d(val* self, val* p0) {
6014 parser_prod__ASignature__n_cpar_61d(self, p0);
6015 RET_LABEL:;
6016 }
6017 /* method parser_prod#ASignature#n_type= for (self: ASignature, nullable AType) */
6018 void parser_prod__ASignature__n_type_61d(val* self, val* p0) {
6019 val* var_node /* var node: nullable AType */;
6020 val* var /* : null */;
6021 short int var1 /* : Bool */;
6022 var_node = p0;
6023 self->attrs[COLOR_parser_nodes__ASignature___n_type].val = var_node; /* _n_type on <self:ASignature> */
6024 var = NULL;
6025 if (var_node == NULL) {
6026 var1 = 0; /* is null */
6027 } else {
6028 var1 = 1; /* arg is null and recv is not */
6029 }
6030 if (var1){
6031 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable AType(AType)>*/;
6032 } else {
6033 }
6034 RET_LABEL:;
6035 }
6036 /* method parser_prod#ASignature#n_type= for (self: Object, nullable AType) */
6037 void VIRTUAL_parser_prod__ASignature__n_type_61d(val* self, val* p0) {
6038 parser_prod__ASignature__n_type_61d(self, p0);
6039 RET_LABEL:;
6040 }
6041 /* method parser_prod#ASignature#visit_all for (self: ASignature, Visitor) */
6042 void parser_prod__ASignature__visit_all(val* self, val* p0) {
6043 val* var_v /* var v: Visitor */;
6044 val* var /* : nullable TOpar */;
6045 val* var1 /* : null */;
6046 short int var2 /* : Bool */;
6047 val* var3 /* : nullable TOpar */;
6048 val* var4 /* : ANodes[AParam] */;
6049 val* var5 /* : Iterator[nullable Object] */;
6050 short int var6 /* : Bool */;
6051 val* var7 /* : nullable Object */;
6052 val* var_n /* var n: AParam */;
6053 val* var8 /* : nullable TCpar */;
6054 val* var9 /* : null */;
6055 short int var10 /* : Bool */;
6056 val* var11 /* : nullable TCpar */;
6057 val* var12 /* : nullable AType */;
6058 val* var13 /* : null */;
6059 short int var14 /* : Bool */;
6060 val* var15 /* : nullable AType */;
6061 var_v = p0;
6062 var = self->attrs[COLOR_parser_nodes__ASignature___n_opar].val; /* _n_opar on <self:ASignature> */
6063 var1 = NULL;
6064 if (var == NULL) {
6065 var2 = 0; /* is null */
6066 } else {
6067 var2 = 1; /* arg is null and recv is not */
6068 }
6069 if (var2){
6070 var3 = self->attrs[COLOR_parser_nodes__ASignature___n_opar].val; /* _n_opar on <self:ASignature> */
6071 if (var3 == NULL) {
6072 fprintf(stderr, "Runtime error: %s", "Cast failed");
6073 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4097);
6074 exit(1);
6075 }
6076 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var3) /* enter_visit on <var_v:Visitor>*/;
6077 } else {
6078 }
6079 var4 = self->attrs[COLOR_parser_nodes__ASignature___n_params].val; /* _n_params on <self:ASignature> */
6080 if (var4 == NULL) {
6081 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_params");
6082 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4099);
6083 exit(1);
6084 }
6085 var5 = ((val* (*)(val*))(var4->class->vft[COLOR_abstract_collection__Collection__iterator]))(var4) /* iterator on <var4:ANodes[AParam]>*/;
6086 for(;;) {
6087 var6 = ((short int (*)(val*))(var5->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var5) /* is_ok on <var5:Iterator[nullable Object]>*/;
6088 if(!var6) break;
6089 var7 = ((val* (*)(val*))(var5->class->vft[COLOR_abstract_collection__Iterator__item]))(var5) /* item on <var5:Iterator[nullable Object]>*/;
6090 var_n = var7;
6091 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var_n) /* enter_visit on <var_v:Visitor>*/;
6092 CONTINUE_label: (void)0;
6093 ((void (*)(val*))(var5->class->vft[COLOR_abstract_collection__Iterator__next]))(var5) /* next on <var5:Iterator[nullable Object]>*/;
6094 }
6095 BREAK_label: (void)0;
6096 var8 = self->attrs[COLOR_parser_nodes__ASignature___n_cpar].val; /* _n_cpar on <self:ASignature> */
6097 var9 = NULL;
6098 if (var8 == NULL) {
6099 var10 = 0; /* is null */
6100 } else {
6101 var10 = 1; /* arg is null and recv is not */
6102 }
6103 if (var10){
6104 var11 = self->attrs[COLOR_parser_nodes__ASignature___n_cpar].val; /* _n_cpar on <self:ASignature> */
6105 if (var11 == NULL) {
6106 fprintf(stderr, "Runtime error: %s", "Cast failed");
6107 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4103);
6108 exit(1);
6109 }
6110 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var11) /* enter_visit on <var_v:Visitor>*/;
6111 } else {
6112 }
6113 var12 = self->attrs[COLOR_parser_nodes__ASignature___n_type].val; /* _n_type on <self:ASignature> */
6114 var13 = NULL;
6115 if (var12 == NULL) {
6116 var14 = 0; /* is null */
6117 } else {
6118 var14 = 1; /* arg is null and recv is not */
6119 }
6120 if (var14){
6121 var15 = self->attrs[COLOR_parser_nodes__ASignature___n_type].val; /* _n_type on <self:ASignature> */
6122 if (var15 == NULL) {
6123 fprintf(stderr, "Runtime error: %s", "Cast failed");
6124 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4106);
6125 exit(1);
6126 }
6127 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var15) /* enter_visit on <var_v:Visitor>*/;
6128 } else {
6129 }
6130 RET_LABEL:;
6131 }
6132 /* method parser_prod#ASignature#visit_all for (self: Object, Visitor) */
6133 void VIRTUAL_parser_prod__ASignature__visit_all(val* self, val* p0) {
6134 parser_prod__ASignature__visit_all(self, p0);
6135 RET_LABEL:;
6136 }
6137 /* method parser_prod#AParam#empty_init for (self: AParam) */
6138 void parser_prod__AParam__empty_init(val* self) {
6139 RET_LABEL:;
6140 }
6141 /* method parser_prod#AParam#empty_init for (self: Object) */
6142 void VIRTUAL_parser_prod__AParam__empty_init(val* self) {
6143 parser_prod__AParam__empty_init(self);
6144 RET_LABEL:;
6145 }
6146 /* method parser_prod#AParam#init_aparam for (self: AParam, nullable TId, nullable AType, nullable TDotdotdot, nullable AAnnotations) */
6147 void parser_prod__AParam__init_aparam(val* self, val* p0, val* p1, val* p2, val* p3) {
6148 val* var_n_id /* var n_id: nullable TId */;
6149 val* var_n_type /* var n_type: nullable AType */;
6150 val* var_n_dotdotdot /* var n_dotdotdot: nullable TDotdotdot */;
6151 val* var_n_annotations /* var n_annotations: nullable AAnnotations */;
6152 val* var /* : null */;
6153 short int var1 /* : Bool */;
6154 val* var2 /* : null */;
6155 short int var3 /* : Bool */;
6156 val* var4 /* : null */;
6157 short int var5 /* : Bool */;
6158 var_n_id = p0;
6159 var_n_type = p1;
6160 var_n_dotdotdot = p2;
6161 var_n_annotations = p3;
6162 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__AParam__empty_init]))(self) /* empty_init on <self:AParam>*/;
6163 if (var_n_id == NULL) {
6164 fprintf(stderr, "Runtime error: %s", "Cast failed");
6165 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4121);
6166 exit(1);
6167 }
6168 self->attrs[COLOR_parser_nodes__AParam___n_id].val = var_n_id; /* _n_id on <self:AParam> */
6169 if (var_n_id == NULL) {
6170 fprintf(stderr, "Runtime error: %s", "Reciever is null");
6171 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4122);
6172 exit(1);
6173 } else {
6174 ((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>*/;
6175 }
6176 self->attrs[COLOR_parser_nodes__AParam___n_type].val = var_n_type; /* _n_type on <self:AParam> */
6177 var = NULL;
6178 if (var_n_type == NULL) {
6179 var1 = 0; /* is null */
6180 } else {
6181 var1 = 1; /* arg is null and recv is not */
6182 }
6183 if (var1){
6184 ((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)>*/;
6185 } else {
6186 }
6187 self->attrs[COLOR_parser_nodes__AParam___n_dotdotdot].val = var_n_dotdotdot; /* _n_dotdotdot on <self:AParam> */
6188 var2 = NULL;
6189 if (var_n_dotdotdot == NULL) {
6190 var3 = 0; /* is null */
6191 } else {
6192 var3 = 1; /* arg is null and recv is not */
6193 }
6194 if (var3){
6195 ((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)>*/;
6196 } else {
6197 }
6198 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:AParam> */
6199 var4 = NULL;
6200 if (var_n_annotations == NULL) {
6201 var5 = 0; /* is null */
6202 } else {
6203 var5 = 1; /* arg is null and recv is not */
6204 }
6205 if (var5){
6206 ((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)>*/;
6207 } else {
6208 }
6209 RET_LABEL:;
6210 }
6211 /* method parser_prod#AParam#init_aparam for (self: Object, nullable TId, nullable AType, nullable TDotdotdot, nullable AAnnotations) */
6212 void VIRTUAL_parser_prod__AParam__init_aparam(val* self, val* p0, val* p1, val* p2, val* p3) {
6213 parser_prod__AParam__init_aparam(self, p0, p1, p2, p3);
6214 RET_LABEL:;
6215 }
6216 /* method parser_prod#AParam#replace_child for (self: AParam, ANode, nullable ANode) */
6217 void parser_prod__AParam__replace_child(val* self, val* p0, val* p1) {
6218 val* var_old_child /* var old_child: ANode */;
6219 val* var_new_child /* var new_child: nullable ANode */;
6220 val* var /* : TId */;
6221 short int var1 /* : Bool */;
6222 val* var2 /* : null */;
6223 short int var3 /* : Bool */;
6224 short int var4 /* : Bool */;
6225 int cltype;
6226 int idtype;
6227 val* var5 /* : nullable AType */;
6228 short int var6 /* : Bool */;
6229 val* var7 /* : null */;
6230 short int var8 /* : Bool */;
6231 short int var9 /* : Bool */;
6232 int cltype10;
6233 int idtype11;
6234 val* var12 /* : null */;
6235 val* var13 /* : nullable TDotdotdot */;
6236 short int var14 /* : Bool */;
6237 val* var15 /* : null */;
6238 short int var16 /* : Bool */;
6239 short int var17 /* : Bool */;
6240 int cltype18;
6241 int idtype19;
6242 val* var20 /* : null */;
6243 val* var21 /* : nullable AAnnotations */;
6244 short int var22 /* : Bool */;
6245 val* var23 /* : null */;
6246 short int var24 /* : Bool */;
6247 short int var25 /* : Bool */;
6248 int cltype26;
6249 int idtype27;
6250 val* var28 /* : null */;
6251 var_old_child = p0;
6252 var_new_child = p1;
6253 var = self->attrs[COLOR_parser_nodes__AParam___n_id].val; /* _n_id on <self:AParam> */
6254 if (var == NULL) {
6255 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_id");
6256 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4139);
6257 exit(1);
6258 }
6259 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:TId>*/;
6260 if (var1){
6261 var2 = NULL;
6262 if (var_new_child == NULL) {
6263 var3 = 0; /* is null */
6264 } else {
6265 var3 = 1; /* arg is null and recv is not */
6266 }
6267 if (var3){
6268 ((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)>*/;
6269 /* <var_new_child:nullable ANode(ANode)> isa TId */
6270 cltype = type_parser_nodes__TId.color;
6271 idtype = type_parser_nodes__TId.id;
6272 if(cltype >= var_new_child->type->table_size) {
6273 var4 = 0;
6274 } else {
6275 var4 = var_new_child->type->type_table[cltype] == idtype;
6276 }
6277 if (!var4) {
6278 fprintf(stderr, "Runtime error: %s", "Assert failed");
6279 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4142);
6280 exit(1);
6281 }
6282 self->attrs[COLOR_parser_nodes__AParam___n_id].val = var_new_child; /* _n_id on <self:AParam> */
6283 } else {
6284 fprintf(stderr, "Runtime error: %s", "Aborted");
6285 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4145);
6286 exit(1);
6287 }
6288 goto RET_LABEL;
6289 } else {
6290 }
6291 var5 = self->attrs[COLOR_parser_nodes__AParam___n_type].val; /* _n_type on <self:AParam> */
6292 if (var5 == NULL) {
6293 var6 = 0; /* <var_old_child:ANode> cannot be null */
6294 } else {
6295 var6 = ((short int (*)(val*, val*))(var5->class->vft[COLOR_kernel__Object___61d_61d]))(var5, var_old_child) /* == on <var5:nullable AType>*/;
6296 }
6297 if (var6){
6298 var7 = NULL;
6299 if (var_new_child == NULL) {
6300 var8 = 0; /* is null */
6301 } else {
6302 var8 = 1; /* arg is null and recv is not */
6303 }
6304 if (var8){
6305 ((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)>*/;
6306 /* <var_new_child:nullable ANode(ANode)> isa AType */
6307 cltype10 = type_parser_nodes__AType.color;
6308 idtype11 = type_parser_nodes__AType.id;
6309 if(cltype10 >= var_new_child->type->table_size) {
6310 var9 = 0;
6311 } else {
6312 var9 = var_new_child->type->type_table[cltype10] == idtype11;
6313 }
6314 if (!var9) {
6315 fprintf(stderr, "Runtime error: %s", "Assert failed");
6316 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4152);
6317 exit(1);
6318 }
6319 self->attrs[COLOR_parser_nodes__AParam___n_type].val = var_new_child; /* _n_type on <self:AParam> */
6320 } else {
6321 var12 = NULL;
6322 self->attrs[COLOR_parser_nodes__AParam___n_type].val = var12; /* _n_type on <self:AParam> */
6323 }
6324 goto RET_LABEL;
6325 } else {
6326 }
6327 var13 = self->attrs[COLOR_parser_nodes__AParam___n_dotdotdot].val; /* _n_dotdotdot on <self:AParam> */
6328 if (var13 == NULL) {
6329 var14 = 0; /* <var_old_child:ANode> cannot be null */
6330 } else {
6331 var14 = ((short int (*)(val*, val*))(var13->class->vft[COLOR_kernel__Object___61d_61d]))(var13, var_old_child) /* == on <var13:nullable TDotdotdot>*/;
6332 }
6333 if (var14){
6334 var15 = NULL;
6335 if (var_new_child == NULL) {
6336 var16 = 0; /* is null */
6337 } else {
6338 var16 = 1; /* arg is null and recv is not */
6339 }
6340 if (var16){
6341 ((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)>*/;
6342 /* <var_new_child:nullable ANode(ANode)> isa TDotdotdot */
6343 cltype18 = type_parser_nodes__TDotdotdot.color;
6344 idtype19 = type_parser_nodes__TDotdotdot.id;
6345 if(cltype18 >= var_new_child->type->table_size) {
6346 var17 = 0;
6347 } else {
6348 var17 = var_new_child->type->type_table[cltype18] == idtype19;
6349 }
6350 if (!var17) {
6351 fprintf(stderr, "Runtime error: %s", "Assert failed");
6352 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4162);
6353 exit(1);
6354 }
6355 self->attrs[COLOR_parser_nodes__AParam___n_dotdotdot].val = var_new_child; /* _n_dotdotdot on <self:AParam> */
6356 } else {
6357 var20 = NULL;
6358 self->attrs[COLOR_parser_nodes__AParam___n_dotdotdot].val = var20; /* _n_dotdotdot on <self:AParam> */
6359 }
6360 goto RET_LABEL;
6361 } else {
6362 }
6363 var21 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AParam> */
6364 if (var21 == NULL) {
6365 var22 = 0; /* <var_old_child:ANode> cannot be null */
6366 } else {
6367 var22 = ((short int (*)(val*, val*))(var21->class->vft[COLOR_kernel__Object___61d_61d]))(var21, var_old_child) /* == on <var21:nullable AAnnotations>*/;
6368 }
6369 if (var22){
6370 var23 = NULL;
6371 if (var_new_child == NULL) {
6372 var24 = 0; /* is null */
6373 } else {
6374 var24 = 1; /* arg is null and recv is not */
6375 }
6376 if (var24){
6377 ((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)>*/;
6378 /* <var_new_child:nullable ANode(ANode)> isa AAnnotations */
6379 cltype26 = type_parser_nodes__AAnnotations.color;
6380 idtype27 = type_parser_nodes__AAnnotations.id;
6381 if(cltype26 >= var_new_child->type->table_size) {
6382 var25 = 0;
6383 } else {
6384 var25 = var_new_child->type->type_table[cltype26] == idtype27;
6385 }
6386 if (!var25) {
6387 fprintf(stderr, "Runtime error: %s", "Assert failed");
6388 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4172);
6389 exit(1);
6390 }
6391 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_new_child; /* _n_annotations on <self:AParam> */
6392 } else {
6393 var28 = NULL;
6394 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var28; /* _n_annotations on <self:AParam> */
6395 }
6396 goto RET_LABEL;
6397 } else {
6398 }
6399 RET_LABEL:;
6400 }
6401 /* method parser_prod#AParam#replace_child for (self: Object, ANode, nullable ANode) */
6402 void VIRTUAL_parser_prod__AParam__replace_child(val* self, val* p0, val* p1) {
6403 parser_prod__AParam__replace_child(self, p0, p1);
6404 RET_LABEL:;
6405 }
6406 /* method parser_prod#AParam#n_id= for (self: AParam, TId) */
6407 void parser_prod__AParam__n_id_61d(val* self, val* p0) {
6408 val* var_node /* var node: TId */;
6409 var_node = p0;
6410 self->attrs[COLOR_parser_nodes__AParam___n_id].val = var_node; /* _n_id on <self:AParam> */
6411 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TId>*/;
6412 RET_LABEL:;
6413 }
6414 /* method parser_prod#AParam#n_id= for (self: Object, TId) */
6415 void VIRTUAL_parser_prod__AParam__n_id_61d(val* self, val* p0) {
6416 parser_prod__AParam__n_id_61d(self, p0);
6417 RET_LABEL:;
6418 }
6419 /* method parser_prod#AParam#n_type= for (self: AParam, nullable AType) */
6420 void parser_prod__AParam__n_type_61d(val* self, val* p0) {
6421 val* var_node /* var node: nullable AType */;
6422 val* var /* : null */;
6423 short int var1 /* : Bool */;
6424 var_node = p0;
6425 self->attrs[COLOR_parser_nodes__AParam___n_type].val = var_node; /* _n_type on <self:AParam> */
6426 var = NULL;
6427 if (var_node == NULL) {
6428 var1 = 0; /* is null */
6429 } else {
6430 var1 = 1; /* arg is null and recv is not */
6431 }
6432 if (var1){
6433 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable AType(AType)>*/;
6434 } else {
6435 }
6436 RET_LABEL:;
6437 }
6438 /* method parser_prod#AParam#n_type= for (self: Object, nullable AType) */
6439 void VIRTUAL_parser_prod__AParam__n_type_61d(val* self, val* p0) {
6440 parser_prod__AParam__n_type_61d(self, p0);
6441 RET_LABEL:;
6442 }
6443 /* method parser_prod#AParam#n_dotdotdot= for (self: AParam, nullable TDotdotdot) */
6444 void parser_prod__AParam__n_dotdotdot_61d(val* self, val* p0) {
6445 val* var_node /* var node: nullable TDotdotdot */;
6446 val* var /* : null */;
6447 short int var1 /* : Bool */;
6448 var_node = p0;
6449 self->attrs[COLOR_parser_nodes__AParam___n_dotdotdot].val = var_node; /* _n_dotdotdot on <self:AParam> */
6450 var = NULL;
6451 if (var_node == NULL) {
6452 var1 = 0; /* is null */
6453 } else {
6454 var1 = 1; /* arg is null and recv is not */
6455 }
6456 if (var1){
6457 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable TDotdotdot(TDotdotdot)>*/;
6458 } else {
6459 }
6460 RET_LABEL:;
6461 }
6462 /* method parser_prod#AParam#n_dotdotdot= for (self: Object, nullable TDotdotdot) */
6463 void VIRTUAL_parser_prod__AParam__n_dotdotdot_61d(val* self, val* p0) {
6464 parser_prod__AParam__n_dotdotdot_61d(self, p0);
6465 RET_LABEL:;
6466 }
6467 /* method parser_prod#AParam#n_annotations= for (self: AParam, nullable AAnnotations) */
6468 void parser_prod__AParam__n_annotations_61d(val* self, val* p0) {
6469 val* var_node /* var node: nullable AAnnotations */;
6470 val* var /* : null */;
6471 short int var1 /* : Bool */;
6472 var_node = p0;
6473 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_node; /* _n_annotations on <self:AParam> */
6474 var = NULL;
6475 if (var_node == NULL) {
6476 var1 = 0; /* is null */
6477 } else {
6478 var1 = 1; /* arg is null and recv is not */
6479 }
6480 if (var1){
6481 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable AAnnotations(AAnnotations)>*/;
6482 } else {
6483 }
6484 RET_LABEL:;
6485 }
6486 /* method parser_prod#AParam#n_annotations= for (self: Object, nullable AAnnotations) */
6487 void VIRTUAL_parser_prod__AParam__n_annotations_61d(val* self, val* p0) {
6488 parser_prod__AParam__n_annotations_61d(self, p0);
6489 RET_LABEL:;
6490 }
6491 /* method parser_prod#AParam#visit_all for (self: AParam, Visitor) */
6492 void parser_prod__AParam__visit_all(val* self, val* p0) {
6493 val* var_v /* var v: Visitor */;
6494 val* var /* : TId */;
6495 val* var1 /* : nullable AType */;
6496 val* var2 /* : null */;
6497 short int var3 /* : Bool */;
6498 val* var4 /* : nullable AType */;
6499 val* var5 /* : nullable TDotdotdot */;
6500 val* var6 /* : null */;
6501 short int var7 /* : Bool */;
6502 val* var8 /* : nullable TDotdotdot */;
6503 val* var9 /* : nullable AAnnotations */;
6504 val* var10 /* : null */;
6505 short int var11 /* : Bool */;
6506 val* var12 /* : nullable AAnnotations */;
6507 var_v = p0;
6508 var = self->attrs[COLOR_parser_nodes__AParam___n_id].val; /* _n_id on <self:AParam> */
6509 if (var == NULL) {
6510 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_id");
6511 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4211);
6512 exit(1);
6513 }
6514 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
6515 var1 = self->attrs[COLOR_parser_nodes__AParam___n_type].val; /* _n_type on <self:AParam> */
6516 var2 = NULL;
6517 if (var1 == NULL) {
6518 var3 = 0; /* is null */
6519 } else {
6520 var3 = 1; /* arg is null and recv is not */
6521 }
6522 if (var3){
6523 var4 = self->attrs[COLOR_parser_nodes__AParam___n_type].val; /* _n_type on <self:AParam> */
6524 if (var4 == NULL) {
6525 fprintf(stderr, "Runtime error: %s", "Cast failed");
6526 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4213);
6527 exit(1);
6528 }
6529 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var4) /* enter_visit on <var_v:Visitor>*/;
6530 } else {
6531 }
6532 var5 = self->attrs[COLOR_parser_nodes__AParam___n_dotdotdot].val; /* _n_dotdotdot on <self:AParam> */
6533 var6 = NULL;
6534 if (var5 == NULL) {
6535 var7 = 0; /* is null */
6536 } else {
6537 var7 = 1; /* arg is null and recv is not */
6538 }
6539 if (var7){
6540 var8 = self->attrs[COLOR_parser_nodes__AParam___n_dotdotdot].val; /* _n_dotdotdot on <self:AParam> */
6541 if (var8 == NULL) {
6542 fprintf(stderr, "Runtime error: %s", "Cast failed");
6543 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4216);
6544 exit(1);
6545 }
6546 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var8) /* enter_visit on <var_v:Visitor>*/;
6547 } else {
6548 }
6549 var9 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AParam> */
6550 var10 = NULL;
6551 if (var9 == NULL) {
6552 var11 = 0; /* is null */
6553 } else {
6554 var11 = 1; /* arg is null and recv is not */
6555 }
6556 if (var11){
6557 var12 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AParam> */
6558 if (var12 == NULL) {
6559 fprintf(stderr, "Runtime error: %s", "Cast failed");
6560 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4219);
6561 exit(1);
6562 }
6563 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var12) /* enter_visit on <var_v:Visitor>*/;
6564 } else {
6565 }
6566 RET_LABEL:;
6567 }
6568 /* method parser_prod#AParam#visit_all for (self: Object, Visitor) */
6569 void VIRTUAL_parser_prod__AParam__visit_all(val* self, val* p0) {
6570 parser_prod__AParam__visit_all(self, p0);
6571 RET_LABEL:;
6572 }
6573 /* method parser_prod#AType#empty_init for (self: AType) */
6574 void parser_prod__AType__empty_init(val* self) {
6575 RET_LABEL:;
6576 }
6577 /* method parser_prod#AType#empty_init for (self: Object) */
6578 void VIRTUAL_parser_prod__AType__empty_init(val* self) {
6579 parser_prod__AType__empty_init(self);
6580 RET_LABEL:;
6581 }
6582 /* method parser_prod#AType#init_atype for (self: AType, nullable TKwnullable, nullable TClassid, Collection[Object], nullable AAnnotations) */
6583 void parser_prod__AType__init_atype(val* self, val* p0, val* p1, val* p2, val* p3) {
6584 val* var_n_kwnullable /* var n_kwnullable: nullable TKwnullable */;
6585 val* var_n_id /* var n_id: nullable TClassid */;
6586 val* var_n_types /* var n_types: Collection[Object] */;
6587 val* var_n_annotations /* var n_annotations: nullable AAnnotations */;
6588 val* var /* : null */;
6589 short int var1 /* : Bool */;
6590 val* var2 /* : Iterator[nullable Object] */;
6591 short int var3 /* : Bool */;
6592 val* var4 /* : nullable Object */;
6593 val* var_n /* var n: Object */;
6594 short int var5 /* : Bool */;
6595 int cltype;
6596 int idtype;
6597 val* var6 /* : ANodes[AType] */;
6598 val* var7 /* : null */;
6599 short int var8 /* : Bool */;
6600 var_n_kwnullable = p0;
6601 var_n_id = p1;
6602 var_n_types = p2;
6603 var_n_annotations = p3;
6604 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__AType__empty_init]))(self) /* empty_init on <self:AType>*/;
6605 self->attrs[COLOR_parser_nodes__AType___n_kwnullable].val = var_n_kwnullable; /* _n_kwnullable on <self:AType> */
6606 var = NULL;
6607 if (var_n_kwnullable == NULL) {
6608 var1 = 0; /* is null */
6609 } else {
6610 var1 = 1; /* arg is null and recv is not */
6611 }
6612 if (var1){
6613 ((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)>*/;
6614 } else {
6615 }
6616 if (var_n_id == NULL) {
6617 fprintf(stderr, "Runtime error: %s", "Cast failed");
6618 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4238);
6619 exit(1);
6620 }
6621 self->attrs[COLOR_parser_nodes__AType___n_id].val = var_n_id; /* _n_id on <self:AType> */
6622 if (var_n_id == NULL) {
6623 fprintf(stderr, "Runtime error: %s", "Reciever is null");
6624 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4239);
6625 exit(1);
6626 } else {
6627 ((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>*/;
6628 }
6629 var2 = ((val* (*)(val*))(var_n_types->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_n_types) /* iterator on <var_n_types:Collection[Object]>*/;
6630 for(;;) {
6631 var3 = ((short int (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var2) /* is_ok on <var2:Iterator[nullable Object]>*/;
6632 if(!var3) break;
6633 var4 = ((val* (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__item]))(var2) /* item on <var2:Iterator[nullable Object]>*/;
6634 var_n = var4;
6635 /* <var_n:Object> isa AType */
6636 cltype = type_parser_nodes__AType.color;
6637 idtype = type_parser_nodes__AType.id;
6638 if(cltype >= var_n->type->table_size) {
6639 var5 = 0;
6640 } else {
6641 var5 = var_n->type->type_table[cltype] == idtype;
6642 }
6643 if (!var5) {
6644 fprintf(stderr, "Runtime error: %s", "Assert failed");
6645 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4241);
6646 exit(1);
6647 }
6648 var6 = self->attrs[COLOR_parser_nodes__AType___n_types].val; /* _n_types on <self:AType> */
6649 if (var6 == NULL) {
6650 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_types");
6651 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4242);
6652 exit(1);
6653 }
6654 ((void (*)(val*, val*))(var6->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var6, var_n) /* add on <var6:ANodes[AType]>*/;
6655 ((void (*)(val*, val*))(var_n->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n, self) /* parent= on <var_n:Object(AType)>*/;
6656 CONTINUE_label: (void)0;
6657 ((void (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__next]))(var2) /* next on <var2:Iterator[nullable Object]>*/;
6658 }
6659 BREAK_label: (void)0;
6660 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:AType> */
6661 var7 = NULL;
6662 if (var_n_annotations == NULL) {
6663 var8 = 0; /* is null */
6664 } else {
6665 var8 = 1; /* arg is null and recv is not */
6666 }
6667 if (var8){
6668 ((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)>*/;
6669 } else {
6670 }
6671 RET_LABEL:;
6672 }
6673 /* method parser_prod#AType#init_atype for (self: Object, nullable TKwnullable, nullable TClassid, Collection[Object], nullable AAnnotations) */
6674 void VIRTUAL_parser_prod__AType__init_atype(val* self, val* p0, val* p1, val* p2, val* p3) {
6675 parser_prod__AType__init_atype(self, p0, p1, p2, p3);
6676 RET_LABEL:;
6677 }
6678 /* method parser_prod#AType#replace_child for (self: AType, ANode, nullable ANode) */
6679 void parser_prod__AType__replace_child(val* self, val* p0, val* p1) {
6680 val* var_old_child /* var old_child: ANode */;
6681 val* var_new_child /* var new_child: nullable ANode */;
6682 val* var /* : nullable TKwnullable */;
6683 short int var1 /* : Bool */;
6684 val* var2 /* : null */;
6685 short int var3 /* : Bool */;
6686 short int var4 /* : Bool */;
6687 int cltype;
6688 int idtype;
6689 val* var5 /* : null */;
6690 val* var6 /* : TClassid */;
6691 short int var7 /* : Bool */;
6692 val* var8 /* : null */;
6693 short int var9 /* : Bool */;
6694 short int var10 /* : Bool */;
6695 int cltype11;
6696 int idtype12;
6697 val* var13 /* : Range[Int] */;
6698 long var14 /* : Int */;
6699 val* var15 /* : ANodes[AType] */;
6700 long var16 /* : Int */;
6701 val* var17 /* : Discrete */;
6702 val* var18 /* : Discrete */;
6703 val* var19 /* : Iterator[nullable Object] */;
6704 short int var20 /* : Bool */;
6705 val* var21 /* : nullable Object */;
6706 long var_i /* var i: Int */;
6707 long var22 /* : Int */;
6708 val* var23 /* : ANodes[AType] */;
6709 val* var24 /* : nullable Object */;
6710 short int var25 /* : Bool */;
6711 val* var26 /* : null */;
6712 short int var27 /* : Bool */;
6713 short int var28 /* : Bool */;
6714 int cltype29;
6715 int idtype30;
6716 val* var31 /* : ANodes[AType] */;
6717 val* var32 /* : ANodes[AType] */;
6718 val* var33 /* : nullable AAnnotations */;
6719 short int var34 /* : Bool */;
6720 val* var35 /* : null */;
6721 short int var36 /* : Bool */;
6722 short int var37 /* : Bool */;
6723 int cltype38;
6724 int idtype39;
6725 val* var40 /* : null */;
6726 var_old_child = p0;
6727 var_new_child = p1;
6728 var = self->attrs[COLOR_parser_nodes__AType___n_kwnullable].val; /* _n_kwnullable on <self:AType> */
6729 if (var == NULL) {
6730 var1 = 0; /* <var_old_child:ANode> cannot be null */
6731 } else {
6732 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:nullable TKwnullable>*/;
6733 }
6734 if (var1){
6735 var2 = NULL;
6736 if (var_new_child == NULL) {
6737 var3 = 0; /* is null */
6738 } else {
6739 var3 = 1; /* arg is null and recv is not */
6740 }
6741 if (var3){
6742 ((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)>*/;
6743 /* <var_new_child:nullable ANode(ANode)> isa TKwnullable */
6744 cltype = type_parser_nodes__TKwnullable.color;
6745 idtype = type_parser_nodes__TKwnullable.id;
6746 if(cltype >= var_new_child->type->table_size) {
6747 var4 = 0;
6748 } else {
6749 var4 = var_new_child->type->type_table[cltype] == idtype;
6750 }
6751 if (!var4) {
6752 fprintf(stderr, "Runtime error: %s", "Assert failed");
6753 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4256);
6754 exit(1);
6755 }
6756 self->attrs[COLOR_parser_nodes__AType___n_kwnullable].val = var_new_child; /* _n_kwnullable on <self:AType> */
6757 } else {
6758 var5 = NULL;
6759 self->attrs[COLOR_parser_nodes__AType___n_kwnullable].val = var5; /* _n_kwnullable on <self:AType> */
6760 }
6761 goto RET_LABEL;
6762 } else {
6763 }
6764 var6 = self->attrs[COLOR_parser_nodes__AType___n_id].val; /* _n_id on <self:AType> */
6765 if (var6 == NULL) {
6766 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_id");
6767 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4263);
6768 exit(1);
6769 }
6770 var7 = ((short int (*)(val*, val*))(var6->class->vft[COLOR_kernel__Object___61d_61d]))(var6, var_old_child) /* == on <var6:TClassid>*/;
6771 if (var7){
6772 var8 = NULL;
6773 if (var_new_child == NULL) {
6774 var9 = 0; /* is null */
6775 } else {
6776 var9 = 1; /* arg is null and recv is not */
6777 }
6778 if (var9){
6779 ((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)>*/;
6780 /* <var_new_child:nullable ANode(ANode)> isa TClassid */
6781 cltype11 = type_parser_nodes__TClassid.color;
6782 idtype12 = type_parser_nodes__TClassid.id;
6783 if(cltype11 >= var_new_child->type->table_size) {
6784 var10 = 0;
6785 } else {
6786 var10 = var_new_child->type->type_table[cltype11] == idtype12;
6787 }
6788 if (!var10) {
6789 fprintf(stderr, "Runtime error: %s", "Assert failed");
6790 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4266);
6791 exit(1);
6792 }
6793 self->attrs[COLOR_parser_nodes__AType___n_id].val = var_new_child; /* _n_id on <self:AType> */
6794 } else {
6795 fprintf(stderr, "Runtime error: %s", "Aborted");
6796 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4269);
6797 exit(1);
6798 }
6799 goto RET_LABEL;
6800 } else {
6801 }
6802 var13 = NEW_range__Range(&type_range__Rangekernel__Int);
6803 var14 = 0;
6804 var15 = self->attrs[COLOR_parser_nodes__AType___n_types].val; /* _n_types on <self:AType> */
6805 if (var15 == NULL) {
6806 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_types");
6807 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4273);
6808 exit(1);
6809 }
6810 var16 = ((long (*)(val*))(var15->class->vft[COLOR_abstract_collection__Collection__length]))(var15) /* length on <var15:ANodes[AType]>*/;
6811 var17 = BOX_kernel__Int(var14); /* autobox from Int to Discrete */
6812 var18 = BOX_kernel__Int(var16); /* autobox from Int to Discrete */
6813 ((void (*)(val*, val*, val*))(var13->class->vft[COLOR_range__Range__without_last]))(var13, var17, var18) /* without_last on <var13:Range[Int]>*/;
6814 CHECK_NEW_range__Range(var13);
6815 var19 = ((val* (*)(val*))(var13->class->vft[COLOR_abstract_collection__Collection__iterator]))(var13) /* iterator on <var13:Range[Int]>*/;
6816 for(;;) {
6817 var20 = ((short int (*)(val*))(var19->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var19) /* is_ok on <var19:Iterator[nullable Object]>*/;
6818 if(!var20) break;
6819 var21 = ((val* (*)(val*))(var19->class->vft[COLOR_abstract_collection__Iterator__item]))(var19) /* item on <var19:Iterator[nullable Object]>*/;
6820 var22 = ((struct instance_kernel__Int*)var21)->value; /* autounbox from nullable Object to Int */;
6821 var_i = var22;
6822 var23 = self->attrs[COLOR_parser_nodes__AType___n_types].val; /* _n_types on <self:AType> */
6823 if (var23 == NULL) {
6824 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_types");
6825 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4274);
6826 exit(1);
6827 }
6828 var24 = ((val* (*)(val*, long))(var23->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var23, var_i) /* [] on <var23:ANodes[AType]>*/;
6829 var25 = ((short int (*)(val*, val*))(var24->class->vft[COLOR_kernel__Object___61d_61d]))(var24, var_old_child) /* == on <var24:nullable Object(AType)>*/;
6830 if (var25){
6831 var26 = NULL;
6832 if (var_new_child == NULL) {
6833 var27 = 0; /* is null */
6834 } else {
6835 var27 = 1; /* arg is null and recv is not */
6836 }
6837 if (var27){
6838 /* <var_new_child:nullable ANode(ANode)> isa AType */
6839 cltype29 = type_parser_nodes__AType.color;
6840 idtype30 = type_parser_nodes__AType.id;
6841 if(cltype29 >= var_new_child->type->table_size) {
6842 var28 = 0;
6843 } else {
6844 var28 = var_new_child->type->type_table[cltype29] == idtype30;
6845 }
6846 if (!var28) {
6847 fprintf(stderr, "Runtime error: %s", "Assert failed");
6848 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4276);
6849 exit(1);
6850 }
6851 var31 = self->attrs[COLOR_parser_nodes__AType___n_types].val; /* _n_types on <self:AType> */
6852 if (var31 == NULL) {
6853 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_types");
6854 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4277);
6855 exit(1);
6856 }
6857 ((void (*)(val*, long, val*))(var31->class->vft[COLOR_abstract_collection__Sequence___91d_93d_61d]))(var31, var_i, var_new_child) /* []= on <var31:ANodes[AType]>*/;
6858 ((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)>*/;
6859 } else {
6860 var32 = self->attrs[COLOR_parser_nodes__AType___n_types].val; /* _n_types on <self:AType> */
6861 if (var32 == NULL) {
6862 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_types");
6863 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4280);
6864 exit(1);
6865 }
6866 ((void (*)(val*, long))(var32->class->vft[COLOR_abstract_collection__Sequence__remove_at]))(var32, var_i) /* remove_at on <var32:ANodes[AType]>*/;
6867 }
6868 goto RET_LABEL;
6869 } else {
6870 }
6871 CONTINUE_label: (void)0;
6872 ((void (*)(val*))(var19->class->vft[COLOR_abstract_collection__Iterator__next]))(var19) /* next on <var19:Iterator[nullable Object]>*/;
6873 }
6874 BREAK_label: (void)0;
6875 var33 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AType> */
6876 if (var33 == NULL) {
6877 var34 = 0; /* <var_old_child:ANode> cannot be null */
6878 } else {
6879 var34 = ((short int (*)(val*, val*))(var33->class->vft[COLOR_kernel__Object___61d_61d]))(var33, var_old_child) /* == on <var33:nullable AAnnotations>*/;
6880 }
6881 if (var34){
6882 var35 = NULL;
6883 if (var_new_child == NULL) {
6884 var36 = 0; /* is null */
6885 } else {
6886 var36 = 1; /* arg is null and recv is not */
6887 }
6888 if (var36){
6889 ((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)>*/;
6890 /* <var_new_child:nullable ANode(ANode)> isa AAnnotations */
6891 cltype38 = type_parser_nodes__AAnnotations.color;
6892 idtype39 = type_parser_nodes__AAnnotations.id;
6893 if(cltype38 >= var_new_child->type->table_size) {
6894 var37 = 0;
6895 } else {
6896 var37 = var_new_child->type->type_table[cltype38] == idtype39;
6897 }
6898 if (!var37) {
6899 fprintf(stderr, "Runtime error: %s", "Assert failed");
6900 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4288);
6901 exit(1);
6902 }
6903 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_new_child; /* _n_annotations on <self:AType> */
6904 } else {
6905 var40 = NULL;
6906 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var40; /* _n_annotations on <self:AType> */
6907 }
6908 goto RET_LABEL;
6909 } else {
6910 }
6911 RET_LABEL:;
6912 }
6913 /* method parser_prod#AType#replace_child for (self: Object, ANode, nullable ANode) */
6914 void VIRTUAL_parser_prod__AType__replace_child(val* self, val* p0, val* p1) {
6915 parser_prod__AType__replace_child(self, p0, p1);
6916 RET_LABEL:;
6917 }
6918 /* method parser_prod#AType#n_kwnullable= for (self: AType, nullable TKwnullable) */
6919 void parser_prod__AType__n_kwnullable_61d(val* self, val* p0) {
6920 val* var_node /* var node: nullable TKwnullable */;
6921 val* var /* : null */;
6922 short int var1 /* : Bool */;
6923 var_node = p0;
6924 self->attrs[COLOR_parser_nodes__AType___n_kwnullable].val = var_node; /* _n_kwnullable on <self:AType> */
6925 var = NULL;
6926 if (var_node == NULL) {
6927 var1 = 0; /* is null */
6928 } else {
6929 var1 = 1; /* arg is null and recv is not */
6930 }
6931 if (var1){
6932 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable TKwnullable(TKwnullable)>*/;
6933 } else {
6934 }
6935 RET_LABEL:;
6936 }
6937 /* method parser_prod#AType#n_kwnullable= for (self: Object, nullable TKwnullable) */
6938 void VIRTUAL_parser_prod__AType__n_kwnullable_61d(val* self, val* p0) {
6939 parser_prod__AType__n_kwnullable_61d(self, p0);
6940 RET_LABEL:;
6941 }
6942 /* method parser_prod#AType#n_id= for (self: AType, TClassid) */
6943 void parser_prod__AType__n_id_61d(val* self, val* p0) {
6944 val* var_node /* var node: TClassid */;
6945 var_node = p0;
6946 self->attrs[COLOR_parser_nodes__AType___n_id].val = var_node; /* _n_id on <self:AType> */
6947 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TClassid>*/;
6948 RET_LABEL:;
6949 }
6950 /* method parser_prod#AType#n_id= for (self: Object, TClassid) */
6951 void VIRTUAL_parser_prod__AType__n_id_61d(val* self, val* p0) {
6952 parser_prod__AType__n_id_61d(self, p0);
6953 RET_LABEL:;
6954 }
6955 /* method parser_prod#AType#n_annotations= for (self: AType, nullable AAnnotations) */
6956 void parser_prod__AType__n_annotations_61d(val* self, val* p0) {
6957 val* var_node /* var node: nullable AAnnotations */;
6958 val* var /* : null */;
6959 short int var1 /* : Bool */;
6960 var_node = p0;
6961 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_node; /* _n_annotations on <self:AType> */
6962 var = NULL;
6963 if (var_node == NULL) {
6964 var1 = 0; /* is null */
6965 } else {
6966 var1 = 1; /* arg is null and recv is not */
6967 }
6968 if (var1){
6969 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable AAnnotations(AAnnotations)>*/;
6970 } else {
6971 }
6972 RET_LABEL:;
6973 }
6974 /* method parser_prod#AType#n_annotations= for (self: Object, nullable AAnnotations) */
6975 void VIRTUAL_parser_prod__AType__n_annotations_61d(val* self, val* p0) {
6976 parser_prod__AType__n_annotations_61d(self, p0);
6977 RET_LABEL:;
6978 }
6979 /* method parser_prod#AType#visit_all for (self: AType, Visitor) */
6980 void parser_prod__AType__visit_all(val* self, val* p0) {
6981 val* var_v /* var v: Visitor */;
6982 val* var /* : nullable TKwnullable */;
6983 val* var1 /* : null */;
6984 short int var2 /* : Bool */;
6985 val* var3 /* : nullable TKwnullable */;
6986 val* var4 /* : TClassid */;
6987 val* var5 /* : ANodes[AType] */;
6988 val* var6 /* : Iterator[nullable Object] */;
6989 short int var7 /* : Bool */;
6990 val* var8 /* : nullable Object */;
6991 val* var_n /* var n: AType */;
6992 val* var9 /* : nullable AAnnotations */;
6993 val* var10 /* : null */;
6994 short int var11 /* : Bool */;
6995 val* var12 /* : nullable AAnnotations */;
6996 var_v = p0;
6997 var = self->attrs[COLOR_parser_nodes__AType___n_kwnullable].val; /* _n_kwnullable on <self:AType> */
6998 var1 = NULL;
6999 if (var == NULL) {
7000 var2 = 0; /* is null */
7001 } else {
7002 var2 = 1; /* arg is null and recv is not */
7003 }
7004 if (var2){
7005 var3 = self->attrs[COLOR_parser_nodes__AType___n_kwnullable].val; /* _n_kwnullable on <self:AType> */
7006 if (var3 == NULL) {
7007 fprintf(stderr, "Runtime error: %s", "Cast failed");
7008 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4321);
7009 exit(1);
7010 }
7011 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var3) /* enter_visit on <var_v:Visitor>*/;
7012 } else {
7013 }
7014 var4 = self->attrs[COLOR_parser_nodes__AType___n_id].val; /* _n_id on <self:AType> */
7015 if (var4 == NULL) {
7016 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_id");
7017 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4323);
7018 exit(1);
7019 }
7020 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var4) /* enter_visit on <var_v:Visitor>*/;
7021 var5 = self->attrs[COLOR_parser_nodes__AType___n_types].val; /* _n_types on <self:AType> */
7022 if (var5 == NULL) {
7023 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_types");
7024 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4324);
7025 exit(1);
7026 }
7027 var6 = ((val* (*)(val*))(var5->class->vft[COLOR_abstract_collection__Collection__iterator]))(var5) /* iterator on <var5:ANodes[AType]>*/;
7028 for(;;) {
7029 var7 = ((short int (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var6) /* is_ok on <var6:Iterator[nullable Object]>*/;
7030 if(!var7) break;
7031 var8 = ((val* (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__item]))(var6) /* item on <var6:Iterator[nullable Object]>*/;
7032 var_n = var8;
7033 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var_n) /* enter_visit on <var_v:Visitor>*/;
7034 CONTINUE_label: (void)0;
7035 ((void (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__next]))(var6) /* next on <var6:Iterator[nullable Object]>*/;
7036 }
7037 BREAK_label: (void)0;
7038 var9 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AType> */
7039 var10 = NULL;
7040 if (var9 == NULL) {
7041 var11 = 0; /* is null */
7042 } else {
7043 var11 = 1; /* arg is null and recv is not */
7044 }
7045 if (var11){
7046 var12 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AType> */
7047 if (var12 == NULL) {
7048 fprintf(stderr, "Runtime error: %s", "Cast failed");
7049 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4328);
7050 exit(1);
7051 }
7052 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var12) /* enter_visit on <var_v:Visitor>*/;
7053 } else {
7054 }
7055 RET_LABEL:;
7056 }
7057 /* method parser_prod#AType#visit_all for (self: Object, Visitor) */
7058 void VIRTUAL_parser_prod__AType__visit_all(val* self, val* p0) {
7059 parser_prod__AType__visit_all(self, p0);
7060 RET_LABEL:;
7061 }
7062 /* method parser_prod#ALabel#empty_init for (self: ALabel) */
7063 void parser_prod__ALabel__empty_init(val* self) {
7064 RET_LABEL:;
7065 }
7066 /* method parser_prod#ALabel#empty_init for (self: Object) */
7067 void VIRTUAL_parser_prod__ALabel__empty_init(val* self) {
7068 parser_prod__ALabel__empty_init(self);
7069 RET_LABEL:;
7070 }
7071 /* method parser_prod#ALabel#init_alabel for (self: ALabel, nullable TKwlabel, nullable TId) */
7072 void parser_prod__ALabel__init_alabel(val* self, val* p0, val* p1) {
7073 val* var_n_kwlabel /* var n_kwlabel: nullable TKwlabel */;
7074 val* var_n_id /* var n_id: nullable TId */;
7075 var_n_kwlabel = p0;
7076 var_n_id = p1;
7077 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__ALabel__empty_init]))(self) /* empty_init on <self:ALabel>*/;
7078 if (var_n_kwlabel == NULL) {
7079 fprintf(stderr, "Runtime error: %s", "Cast failed");
7080 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4341);
7081 exit(1);
7082 }
7083 self->attrs[COLOR_parser_nodes__ALabel___n_kwlabel].val = var_n_kwlabel; /* _n_kwlabel on <self:ALabel> */
7084 if (var_n_kwlabel == NULL) {
7085 fprintf(stderr, "Runtime error: %s", "Reciever is null");
7086 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4342);
7087 exit(1);
7088 } else {
7089 ((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>*/;
7090 }
7091 if (var_n_id == NULL) {
7092 fprintf(stderr, "Runtime error: %s", "Cast failed");
7093 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4343);
7094 exit(1);
7095 }
7096 self->attrs[COLOR_parser_nodes__ALabel___n_id].val = var_n_id; /* _n_id on <self:ALabel> */
7097 if (var_n_id == NULL) {
7098 fprintf(stderr, "Runtime error: %s", "Reciever is null");
7099 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4344);
7100 exit(1);
7101 } else {
7102 ((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>*/;
7103 }
7104 RET_LABEL:;
7105 }
7106 /* method parser_prod#ALabel#init_alabel for (self: Object, nullable TKwlabel, nullable TId) */
7107 void VIRTUAL_parser_prod__ALabel__init_alabel(val* self, val* p0, val* p1) {
7108 parser_prod__ALabel__init_alabel(self, p0, p1);
7109 RET_LABEL:;
7110 }
7111 /* method parser_prod#ALabel#replace_child for (self: ALabel, ANode, nullable ANode) */
7112 void parser_prod__ALabel__replace_child(val* self, val* p0, val* p1) {
7113 val* var_old_child /* var old_child: ANode */;
7114 val* var_new_child /* var new_child: nullable ANode */;
7115 val* var /* : TKwlabel */;
7116 short int var1 /* : Bool */;
7117 val* var2 /* : null */;
7118 short int var3 /* : Bool */;
7119 short int var4 /* : Bool */;
7120 int cltype;
7121 int idtype;
7122 val* var5 /* : TId */;
7123 short int var6 /* : Bool */;
7124 val* var7 /* : null */;
7125 short int var8 /* : Bool */;
7126 short int var9 /* : Bool */;
7127 int cltype10;
7128 int idtype11;
7129 var_old_child = p0;
7130 var_new_child = p1;
7131 var = self->attrs[COLOR_parser_nodes__ALabel___n_kwlabel].val; /* _n_kwlabel on <self:ALabel> */
7132 if (var == NULL) {
7133 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwlabel");
7134 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4349);
7135 exit(1);
7136 }
7137 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:TKwlabel>*/;
7138 if (var1){
7139 var2 = NULL;
7140 if (var_new_child == NULL) {
7141 var3 = 0; /* is null */
7142 } else {
7143 var3 = 1; /* arg is null and recv is not */
7144 }
7145 if (var3){
7146 ((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)>*/;
7147 /* <var_new_child:nullable ANode(ANode)> isa TKwlabel */
7148 cltype = type_parser_nodes__TKwlabel.color;
7149 idtype = type_parser_nodes__TKwlabel.id;
7150 if(cltype >= var_new_child->type->table_size) {
7151 var4 = 0;
7152 } else {
7153 var4 = var_new_child->type->type_table[cltype] == idtype;
7154 }
7155 if (!var4) {
7156 fprintf(stderr, "Runtime error: %s", "Assert failed");
7157 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4352);
7158 exit(1);
7159 }
7160 self->attrs[COLOR_parser_nodes__ALabel___n_kwlabel].val = var_new_child; /* _n_kwlabel on <self:ALabel> */
7161 } else {
7162 fprintf(stderr, "Runtime error: %s", "Aborted");
7163 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4355);
7164 exit(1);
7165 }
7166 goto RET_LABEL;
7167 } else {
7168 }
7169 var5 = self->attrs[COLOR_parser_nodes__ALabel___n_id].val; /* _n_id on <self:ALabel> */
7170 if (var5 == NULL) {
7171 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_id");
7172 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4359);
7173 exit(1);
7174 }
7175 var6 = ((short int (*)(val*, val*))(var5->class->vft[COLOR_kernel__Object___61d_61d]))(var5, var_old_child) /* == on <var5:TId>*/;
7176 if (var6){
7177 var7 = NULL;
7178 if (var_new_child == NULL) {
7179 var8 = 0; /* is null */
7180 } else {
7181 var8 = 1; /* arg is null and recv is not */
7182 }
7183 if (var8){
7184 ((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)>*/;
7185 /* <var_new_child:nullable ANode(ANode)> isa TId */
7186 cltype10 = type_parser_nodes__TId.color;
7187 idtype11 = type_parser_nodes__TId.id;
7188 if(cltype10 >= var_new_child->type->table_size) {
7189 var9 = 0;
7190 } else {
7191 var9 = var_new_child->type->type_table[cltype10] == idtype11;
7192 }
7193 if (!var9) {
7194 fprintf(stderr, "Runtime error: %s", "Assert failed");
7195 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4362);
7196 exit(1);
7197 }
7198 self->attrs[COLOR_parser_nodes__ALabel___n_id].val = var_new_child; /* _n_id on <self:ALabel> */
7199 } else {
7200 fprintf(stderr, "Runtime error: %s", "Aborted");
7201 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4365);
7202 exit(1);
7203 }
7204 goto RET_LABEL;
7205 } else {
7206 }
7207 RET_LABEL:;
7208 }
7209 /* method parser_prod#ALabel#replace_child for (self: Object, ANode, nullable ANode) */
7210 void VIRTUAL_parser_prod__ALabel__replace_child(val* self, val* p0, val* p1) {
7211 parser_prod__ALabel__replace_child(self, p0, p1);
7212 RET_LABEL:;
7213 }
7214 /* method parser_prod#ALabel#n_kwlabel= for (self: ALabel, TKwlabel) */
7215 void parser_prod__ALabel__n_kwlabel_61d(val* self, val* p0) {
7216 val* var_node /* var node: TKwlabel */;
7217 var_node = p0;
7218 self->attrs[COLOR_parser_nodes__ALabel___n_kwlabel].val = var_node; /* _n_kwlabel on <self:ALabel> */
7219 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TKwlabel>*/;
7220 RET_LABEL:;
7221 }
7222 /* method parser_prod#ALabel#n_kwlabel= for (self: Object, TKwlabel) */
7223 void VIRTUAL_parser_prod__ALabel__n_kwlabel_61d(val* self, val* p0) {
7224 parser_prod__ALabel__n_kwlabel_61d(self, p0);
7225 RET_LABEL:;
7226 }
7227 /* method parser_prod#ALabel#n_id= for (self: ALabel, TId) */
7228 void parser_prod__ALabel__n_id_61d(val* self, val* p0) {
7229 val* var_node /* var node: TId */;
7230 var_node = p0;
7231 self->attrs[COLOR_parser_nodes__ALabel___n_id].val = var_node; /* _n_id on <self:ALabel> */
7232 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TId>*/;
7233 RET_LABEL:;
7234 }
7235 /* method parser_prod#ALabel#n_id= for (self: Object, TId) */
7236 void VIRTUAL_parser_prod__ALabel__n_id_61d(val* self, val* p0) {
7237 parser_prod__ALabel__n_id_61d(self, p0);
7238 RET_LABEL:;
7239 }
7240 /* method parser_prod#ALabel#visit_all for (self: ALabel, Visitor) */
7241 void parser_prod__ALabel__visit_all(val* self, val* p0) {
7242 val* var_v /* var v: Visitor */;
7243 val* var /* : TKwlabel */;
7244 val* var1 /* : TId */;
7245 var_v = p0;
7246 var = self->attrs[COLOR_parser_nodes__ALabel___n_kwlabel].val; /* _n_kwlabel on <self:ALabel> */
7247 if (var == NULL) {
7248 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwlabel");
7249 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4385);
7250 exit(1);
7251 }
7252 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
7253 var1 = self->attrs[COLOR_parser_nodes__ALabel___n_id].val; /* _n_id on <self:ALabel> */
7254 if (var1 == NULL) {
7255 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_id");
7256 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4386);
7257 exit(1);
7258 }
7259 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var1) /* enter_visit on <var_v:Visitor>*/;
7260 RET_LABEL:;
7261 }
7262 /* method parser_prod#ALabel#visit_all for (self: Object, Visitor) */
7263 void VIRTUAL_parser_prod__ALabel__visit_all(val* self, val* p0) {
7264 parser_prod__ALabel__visit_all(self, p0);
7265 RET_LABEL:;
7266 }
7267 /* method parser_prod#ABlockExpr#empty_init for (self: ABlockExpr) */
7268 void parser_prod__ABlockExpr__empty_init(val* self) {
7269 RET_LABEL:;
7270 }
7271 /* method parser_prod#ABlockExpr#empty_init for (self: Object) */
7272 void VIRTUAL_parser_prod__ABlockExpr__empty_init(val* self) {
7273 parser_prod__ABlockExpr__empty_init(self);
7274 RET_LABEL:;
7275 }
7276 /* method parser_prod#ABlockExpr#init_ablockexpr for (self: ABlockExpr, Collection[Object], nullable TKwend) */
7277 void parser_prod__ABlockExpr__init_ablockexpr(val* self, val* p0, val* p1) {
7278 val* var_n_expr /* var n_expr: Collection[Object] */;
7279 val* var_n_kwend /* var n_kwend: nullable TKwend */;
7280 val* var /* : Iterator[nullable Object] */;
7281 short int var1 /* : Bool */;
7282 val* var2 /* : nullable Object */;
7283 val* var_n /* var n: Object */;
7284 short int var3 /* : Bool */;
7285 int cltype;
7286 int idtype;
7287 val* var4 /* : ANodes[AExpr] */;
7288 val* var5 /* : null */;
7289 short int var6 /* : Bool */;
7290 var_n_expr = p0;
7291 var_n_kwend = p1;
7292 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__ABlockExpr__empty_init]))(self) /* empty_init on <self:ABlockExpr>*/;
7293 var = ((val* (*)(val*))(var_n_expr->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_n_expr) /* iterator on <var_n_expr:Collection[Object]>*/;
7294 for(;;) {
7295 var1 = ((short int (*)(val*))(var->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var) /* is_ok on <var:Iterator[nullable Object]>*/;
7296 if(!var1) break;
7297 var2 = ((val* (*)(val*))(var->class->vft[COLOR_abstract_collection__Iterator__item]))(var) /* item on <var:Iterator[nullable Object]>*/;
7298 var_n = var2;
7299 /* <var_n:Object> isa AExpr */
7300 cltype = type_parser_nodes__AExpr.color;
7301 idtype = type_parser_nodes__AExpr.id;
7302 if(cltype >= var_n->type->table_size) {
7303 var3 = 0;
7304 } else {
7305 var3 = var_n->type->type_table[cltype] == idtype;
7306 }
7307 if (!var3) {
7308 fprintf(stderr, "Runtime error: %s", "Assert failed");
7309 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4399);
7310 exit(1);
7311 }
7312 var4 = self->attrs[COLOR_parser_nodes__ABlockExpr___n_expr].val; /* _n_expr on <self:ABlockExpr> */
7313 if (var4 == NULL) {
7314 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_expr");
7315 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4400);
7316 exit(1);
7317 }
7318 ((void (*)(val*, val*))(var4->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var4, var_n) /* add on <var4:ANodes[AExpr]>*/;
7319 ((void (*)(val*, val*))(var_n->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n, self) /* parent= on <var_n:Object(AExpr)>*/;
7320 CONTINUE_label: (void)0;
7321 ((void (*)(val*))(var->class->vft[COLOR_abstract_collection__Iterator__next]))(var) /* next on <var:Iterator[nullable Object]>*/;
7322 }
7323 BREAK_label: (void)0;
7324 self->attrs[COLOR_parser_nodes__ABlockExpr___n_kwend].val = var_n_kwend; /* _n_kwend on <self:ABlockExpr> */
7325 var5 = NULL;
7326 if (var_n_kwend == NULL) {
7327 var6 = 0; /* is null */
7328 } else {
7329 var6 = 1; /* arg is null and recv is not */
7330 }
7331 if (var6){
7332 ((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)>*/;
7333 } else {
7334 }
7335 RET_LABEL:;
7336 }
7337 /* method parser_prod#ABlockExpr#init_ablockexpr for (self: Object, Collection[Object], nullable TKwend) */
7338 void VIRTUAL_parser_prod__ABlockExpr__init_ablockexpr(val* self, val* p0, val* p1) {
7339 parser_prod__ABlockExpr__init_ablockexpr(self, p0, p1);
7340 RET_LABEL:;
7341 }
7342 /* method parser_prod#ABlockExpr#replace_child for (self: ABlockExpr, ANode, nullable ANode) */
7343 void parser_prod__ABlockExpr__replace_child(val* self, val* p0, val* p1) {
7344 val* var_old_child /* var old_child: ANode */;
7345 val* var_new_child /* var new_child: nullable ANode */;
7346 val* var /* : Range[Int] */;
7347 long var1 /* : Int */;
7348 val* var2 /* : ANodes[AExpr] */;
7349 long var3 /* : Int */;
7350 val* var4 /* : Discrete */;
7351 val* var5 /* : Discrete */;
7352 val* var6 /* : Iterator[nullable Object] */;
7353 short int var7 /* : Bool */;
7354 val* var8 /* : nullable Object */;
7355 long var_i /* var i: Int */;
7356 long var9 /* : Int */;
7357 val* var10 /* : ANodes[AExpr] */;
7358 val* var11 /* : nullable Object */;
7359 short int var12 /* : Bool */;
7360 val* var13 /* : null */;
7361 short int var14 /* : Bool */;
7362 short int var15 /* : Bool */;
7363 int cltype;
7364 int idtype;
7365 val* var16 /* : ANodes[AExpr] */;
7366 val* var17 /* : ANodes[AExpr] */;
7367 val* var18 /* : nullable TKwend */;
7368 short int var19 /* : Bool */;
7369 val* var20 /* : null */;
7370 short int var21 /* : Bool */;
7371 short int var22 /* : Bool */;
7372 int cltype23;
7373 int idtype24;
7374 val* var25 /* : null */;
7375 var_old_child = p0;
7376 var_new_child = p1;
7377 var = NEW_range__Range(&type_range__Rangekernel__Int);
7378 var1 = 0;
7379 var2 = self->attrs[COLOR_parser_nodes__ABlockExpr___n_expr].val; /* _n_expr on <self:ABlockExpr> */
7380 if (var2 == NULL) {
7381 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_expr");
7382 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4411);
7383 exit(1);
7384 }
7385 var3 = ((long (*)(val*))(var2->class->vft[COLOR_abstract_collection__Collection__length]))(var2) /* length on <var2:ANodes[AExpr]>*/;
7386 var4 = BOX_kernel__Int(var1); /* autobox from Int to Discrete */
7387 var5 = BOX_kernel__Int(var3); /* autobox from Int to Discrete */
7388 ((void (*)(val*, val*, val*))(var->class->vft[COLOR_range__Range__without_last]))(var, var4, var5) /* without_last on <var:Range[Int]>*/;
7389 CHECK_NEW_range__Range(var);
7390 var6 = ((val* (*)(val*))(var->class->vft[COLOR_abstract_collection__Collection__iterator]))(var) /* iterator on <var:Range[Int]>*/;
7391 for(;;) {
7392 var7 = ((short int (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var6) /* is_ok on <var6:Iterator[nullable Object]>*/;
7393 if(!var7) break;
7394 var8 = ((val* (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__item]))(var6) /* item on <var6:Iterator[nullable Object]>*/;
7395 var9 = ((struct instance_kernel__Int*)var8)->value; /* autounbox from nullable Object to Int */;
7396 var_i = var9;
7397 var10 = self->attrs[COLOR_parser_nodes__ABlockExpr___n_expr].val; /* _n_expr on <self:ABlockExpr> */
7398 if (var10 == NULL) {
7399 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_expr");
7400 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4412);
7401 exit(1);
7402 }
7403 var11 = ((val* (*)(val*, long))(var10->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var10, var_i) /* [] on <var10:ANodes[AExpr]>*/;
7404 var12 = ((short int (*)(val*, val*))(var11->class->vft[COLOR_kernel__Object___61d_61d]))(var11, var_old_child) /* == on <var11:nullable Object(AExpr)>*/;
7405 if (var12){
7406 var13 = NULL;
7407 if (var_new_child == NULL) {
7408 var14 = 0; /* is null */
7409 } else {
7410 var14 = 1; /* arg is null and recv is not */
7411 }
7412 if (var14){
7413 /* <var_new_child:nullable ANode(ANode)> isa AExpr */
7414 cltype = type_parser_nodes__AExpr.color;
7415 idtype = type_parser_nodes__AExpr.id;
7416 if(cltype >= var_new_child->type->table_size) {
7417 var15 = 0;
7418 } else {
7419 var15 = var_new_child->type->type_table[cltype] == idtype;
7420 }
7421 if (!var15) {
7422 fprintf(stderr, "Runtime error: %s", "Assert failed");
7423 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4414);
7424 exit(1);
7425 }
7426 var16 = self->attrs[COLOR_parser_nodes__ABlockExpr___n_expr].val; /* _n_expr on <self:ABlockExpr> */
7427 if (var16 == NULL) {
7428 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_expr");
7429 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4415);
7430 exit(1);
7431 }
7432 ((void (*)(val*, long, val*))(var16->class->vft[COLOR_abstract_collection__Sequence___91d_93d_61d]))(var16, var_i, var_new_child) /* []= on <var16:ANodes[AExpr]>*/;
7433 ((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)>*/;
7434 } else {
7435 var17 = self->attrs[COLOR_parser_nodes__ABlockExpr___n_expr].val; /* _n_expr on <self:ABlockExpr> */
7436 if (var17 == NULL) {
7437 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_expr");
7438 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4418);
7439 exit(1);
7440 }
7441 ((void (*)(val*, long))(var17->class->vft[COLOR_abstract_collection__Sequence__remove_at]))(var17, var_i) /* remove_at on <var17:ANodes[AExpr]>*/;
7442 }
7443 goto RET_LABEL;
7444 } else {
7445 }
7446 CONTINUE_label: (void)0;
7447 ((void (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__next]))(var6) /* next on <var6:Iterator[nullable Object]>*/;
7448 }
7449 BREAK_label: (void)0;
7450 var18 = self->attrs[COLOR_parser_nodes__ABlockExpr___n_kwend].val; /* _n_kwend on <self:ABlockExpr> */
7451 if (var18 == NULL) {
7452 var19 = 0; /* <var_old_child:ANode> cannot be null */
7453 } else {
7454 var19 = ((short int (*)(val*, val*))(var18->class->vft[COLOR_kernel__Object___61d_61d]))(var18, var_old_child) /* == on <var18:nullable TKwend>*/;
7455 }
7456 if (var19){
7457 var20 = NULL;
7458 if (var_new_child == NULL) {
7459 var21 = 0; /* is null */
7460 } else {
7461 var21 = 1; /* arg is null and recv is not */
7462 }
7463 if (var21){
7464 ((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)>*/;
7465 /* <var_new_child:nullable ANode(ANode)> isa TKwend */
7466 cltype23 = type_parser_nodes__TKwend.color;
7467 idtype24 = type_parser_nodes__TKwend.id;
7468 if(cltype23 >= var_new_child->type->table_size) {
7469 var22 = 0;
7470 } else {
7471 var22 = var_new_child->type->type_table[cltype23] == idtype24;
7472 }
7473 if (!var22) {
7474 fprintf(stderr, "Runtime error: %s", "Assert failed");
7475 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4426);
7476 exit(1);
7477 }
7478 self->attrs[COLOR_parser_nodes__ABlockExpr___n_kwend].val = var_new_child; /* _n_kwend on <self:ABlockExpr> */
7479 } else {
7480 var25 = NULL;
7481 self->attrs[COLOR_parser_nodes__ABlockExpr___n_kwend].val = var25; /* _n_kwend on <self:ABlockExpr> */
7482 }
7483 goto RET_LABEL;
7484 } else {
7485 }
7486 RET_LABEL:;
7487 }
7488 /* method parser_prod#ABlockExpr#replace_child for (self: Object, ANode, nullable ANode) */
7489 void VIRTUAL_parser_prod__ABlockExpr__replace_child(val* self, val* p0, val* p1) {
7490 parser_prod__ABlockExpr__replace_child(self, p0, p1);
7491 RET_LABEL:;
7492 }
7493 /* method parser_prod#ABlockExpr#n_kwend= for (self: ABlockExpr, nullable TKwend) */
7494 void parser_prod__ABlockExpr__n_kwend_61d(val* self, val* p0) {
7495 val* var_node /* var node: nullable TKwend */;
7496 val* var /* : null */;
7497 short int var1 /* : Bool */;
7498 var_node = p0;
7499 self->attrs[COLOR_parser_nodes__ABlockExpr___n_kwend].val = var_node; /* _n_kwend on <self:ABlockExpr> */
7500 var = NULL;
7501 if (var_node == NULL) {
7502 var1 = 0; /* is null */
7503 } else {
7504 var1 = 1; /* arg is null and recv is not */
7505 }
7506 if (var1){
7507 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable TKwend(TKwend)>*/;
7508 } else {
7509 }
7510 RET_LABEL:;
7511 }
7512 /* method parser_prod#ABlockExpr#n_kwend= for (self: Object, nullable TKwend) */
7513 void VIRTUAL_parser_prod__ABlockExpr__n_kwend_61d(val* self, val* p0) {
7514 parser_prod__ABlockExpr__n_kwend_61d(self, p0);
7515 RET_LABEL:;
7516 }
7517 /* method parser_prod#ABlockExpr#visit_all for (self: ABlockExpr, Visitor) */
7518 void parser_prod__ABlockExpr__visit_all(val* self, val* p0) {
7519 val* var_v /* var v: Visitor */;
7520 val* var /* : ANodes[AExpr] */;
7521 val* var1 /* : Iterator[nullable Object] */;
7522 short int var2 /* : Bool */;
7523 val* var3 /* : nullable Object */;
7524 val* var_n /* var n: AExpr */;
7525 val* var4 /* : nullable TKwend */;
7526 val* var5 /* : null */;
7527 short int var6 /* : Bool */;
7528 val* var7 /* : nullable TKwend */;
7529 var_v = p0;
7530 var = self->attrs[COLOR_parser_nodes__ABlockExpr___n_expr].val; /* _n_expr on <self:ABlockExpr> */
7531 if (var == NULL) {
7532 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_expr");
7533 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4446);
7534 exit(1);
7535 }
7536 var1 = ((val* (*)(val*))(var->class->vft[COLOR_abstract_collection__Collection__iterator]))(var) /* iterator on <var:ANodes[AExpr]>*/;
7537 for(;;) {
7538 var2 = ((short int (*)(val*))(var1->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var1) /* is_ok on <var1:Iterator[nullable Object]>*/;
7539 if(!var2) break;
7540 var3 = ((val* (*)(val*))(var1->class->vft[COLOR_abstract_collection__Iterator__item]))(var1) /* item on <var1:Iterator[nullable Object]>*/;
7541 var_n = var3;
7542 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var_n) /* enter_visit on <var_v:Visitor>*/;
7543 CONTINUE_label: (void)0;
7544 ((void (*)(val*))(var1->class->vft[COLOR_abstract_collection__Iterator__next]))(var1) /* next on <var1:Iterator[nullable Object]>*/;
7545 }
7546 BREAK_label: (void)0;
7547 var4 = self->attrs[COLOR_parser_nodes__ABlockExpr___n_kwend].val; /* _n_kwend on <self:ABlockExpr> */
7548 var5 = NULL;
7549 if (var4 == NULL) {
7550 var6 = 0; /* is null */
7551 } else {
7552 var6 = 1; /* arg is null and recv is not */
7553 }
7554 if (var6){
7555 var7 = self->attrs[COLOR_parser_nodes__ABlockExpr___n_kwend].val; /* _n_kwend on <self:ABlockExpr> */
7556 if (var7 == NULL) {
7557 fprintf(stderr, "Runtime error: %s", "Cast failed");
7558 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4450);
7559 exit(1);
7560 }
7561 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var7) /* enter_visit on <var_v:Visitor>*/;
7562 } else {
7563 }
7564 RET_LABEL:;
7565 }
7566 /* method parser_prod#ABlockExpr#visit_all for (self: Object, Visitor) */
7567 void VIRTUAL_parser_prod__ABlockExpr__visit_all(val* self, val* p0) {
7568 parser_prod__ABlockExpr__visit_all(self, p0);
7569 RET_LABEL:;
7570 }
7571 /* method parser_prod#AVardeclExpr#empty_init for (self: AVardeclExpr) */
7572 void parser_prod__AVardeclExpr__empty_init(val* self) {
7573 RET_LABEL:;
7574 }
7575 /* method parser_prod#AVardeclExpr#empty_init for (self: Object) */
7576 void VIRTUAL_parser_prod__AVardeclExpr__empty_init(val* self) {
7577 parser_prod__AVardeclExpr__empty_init(self);
7578 RET_LABEL:;
7579 }
7580 /* method parser_prod#AVardeclExpr#init_avardeclexpr for (self: AVardeclExpr, nullable TKwvar, nullable TId, nullable AType, nullable TAssign, nullable AExpr, nullable AAnnotations) */
7581 void parser_prod__AVardeclExpr__init_avardeclexpr(val* self, val* p0, val* p1, val* p2, val* p3, val* p4, val* p5) {
7582 val* var_n_kwvar /* var n_kwvar: nullable TKwvar */;
7583 val* var_n_id /* var n_id: nullable TId */;
7584 val* var_n_type /* var n_type: nullable AType */;
7585 val* var_n_assign /* var n_assign: nullable TAssign */;
7586 val* var_n_expr /* var n_expr: nullable AExpr */;
7587 val* var_n_annotations /* var n_annotations: nullable AAnnotations */;
7588 val* var /* : null */;
7589 short int var1 /* : Bool */;
7590 val* var2 /* : null */;
7591 short int var3 /* : Bool */;
7592 val* var4 /* : null */;
7593 short int var5 /* : Bool */;
7594 val* var6 /* : null */;
7595 short int var7 /* : Bool */;
7596 var_n_kwvar = p0;
7597 var_n_id = p1;
7598 var_n_type = p2;
7599 var_n_assign = p3;
7600 var_n_expr = p4;
7601 var_n_annotations = p5;
7602 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__AVardeclExpr__empty_init]))(self) /* empty_init on <self:AVardeclExpr>*/;
7603 if (var_n_kwvar == NULL) {
7604 fprintf(stderr, "Runtime error: %s", "Cast failed");
7605 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4467);
7606 exit(1);
7607 }
7608 self->attrs[COLOR_parser_nodes__AVardeclExpr___n_kwvar].val = var_n_kwvar; /* _n_kwvar on <self:AVardeclExpr> */
7609 if (var_n_kwvar == NULL) {
7610 fprintf(stderr, "Runtime error: %s", "Reciever is null");
7611 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4468);
7612 exit(1);
7613 } else {
7614 ((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>*/;
7615 }
7616 if (var_n_id == NULL) {
7617 fprintf(stderr, "Runtime error: %s", "Cast failed");
7618 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4469);
7619 exit(1);
7620 }
7621 self->attrs[COLOR_parser_nodes__AVardeclExpr___n_id].val = var_n_id; /* _n_id on <self:AVardeclExpr> */
7622 if (var_n_id == NULL) {
7623 fprintf(stderr, "Runtime error: %s", "Reciever is null");
7624 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4470);
7625 exit(1);
7626 } else {
7627 ((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>*/;
7628 }
7629 self->attrs[COLOR_parser_nodes__AVardeclExpr___n_type].val = var_n_type; /* _n_type on <self:AVardeclExpr> */
7630 var = NULL;
7631 if (var_n_type == NULL) {
7632 var1 = 0; /* is null */
7633 } else {
7634 var1 = 1; /* arg is null and recv is not */
7635 }
7636 if (var1){
7637 ((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)>*/;
7638 } else {
7639 }
7640 self->attrs[COLOR_parser_nodes__AVardeclExpr___n_assign].val = var_n_assign; /* _n_assign on <self:AVardeclExpr> */
7641 var2 = NULL;
7642 if (var_n_assign == NULL) {
7643 var3 = 0; /* is null */
7644 } else {
7645 var3 = 1; /* arg is null and recv is not */
7646 }
7647 if (var3){
7648 ((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)>*/;
7649 } else {
7650 }
7651 self->attrs[COLOR_parser_nodes__AVardeclExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AVardeclExpr> */
7652 var4 = NULL;
7653 if (var_n_expr == NULL) {
7654 var5 = 0; /* is null */
7655 } else {
7656 var5 = 1; /* arg is null and recv is not */
7657 }
7658 if (var5){
7659 ((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)>*/;
7660 } else {
7661 }
7662 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:AVardeclExpr> */
7663 var6 = NULL;
7664 if (var_n_annotations == NULL) {
7665 var7 = 0; /* is null */
7666 } else {
7667 var7 = 1; /* arg is null and recv is not */
7668 }
7669 if (var7){
7670 ((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)>*/;
7671 } else {
7672 }
7673 RET_LABEL:;
7674 }
7675 /* method parser_prod#AVardeclExpr#init_avardeclexpr for (self: Object, nullable TKwvar, nullable TId, nullable AType, nullable TAssign, nullable AExpr, nullable AAnnotations) */
7676 void VIRTUAL_parser_prod__AVardeclExpr__init_avardeclexpr(val* self, val* p0, val* p1, val* p2, val* p3, val* p4, val* p5) {
7677 parser_prod__AVardeclExpr__init_avardeclexpr(self, p0, p1, p2, p3, p4, p5);
7678 RET_LABEL:;
7679 }
7680 /* method parser_prod#AVardeclExpr#replace_child for (self: AVardeclExpr, ANode, nullable ANode) */
7681 void parser_prod__AVardeclExpr__replace_child(val* self, val* p0, val* p1) {
7682 val* var_old_child /* var old_child: ANode */;
7683 val* var_new_child /* var new_child: nullable ANode */;
7684 val* var /* : TKwvar */;
7685 short int var1 /* : Bool */;
7686 val* var2 /* : null */;
7687 short int var3 /* : Bool */;
7688 short int var4 /* : Bool */;
7689 int cltype;
7690 int idtype;
7691 val* var5 /* : TId */;
7692 short int var6 /* : Bool */;
7693 val* var7 /* : null */;
7694 short int var8 /* : Bool */;
7695 short int var9 /* : Bool */;
7696 int cltype10;
7697 int idtype11;
7698 val* var12 /* : nullable AType */;
7699 short int var13 /* : Bool */;
7700 val* var14 /* : null */;
7701 short int var15 /* : Bool */;
7702 short int var16 /* : Bool */;
7703 int cltype17;
7704 int idtype18;
7705 val* var19 /* : null */;
7706 val* var20 /* : nullable TAssign */;
7707 short int var21 /* : Bool */;
7708 val* var22 /* : null */;
7709 short int var23 /* : Bool */;
7710 short int var24 /* : Bool */;
7711 int cltype25;
7712 int idtype26;
7713 val* var27 /* : null */;
7714 val* var28 /* : nullable AExpr */;
7715 short int var29 /* : Bool */;
7716 val* var30 /* : null */;
7717 short int var31 /* : Bool */;
7718 short int var32 /* : Bool */;
7719 int cltype33;
7720 int idtype34;
7721 val* var35 /* : null */;
7722 val* var36 /* : nullable AAnnotations */;
7723 short int var37 /* : Bool */;
7724 val* var38 /* : null */;
7725 short int var39 /* : Bool */;
7726 short int var40 /* : Bool */;
7727 int cltype41;
7728 int idtype42;
7729 val* var43 /* : null */;
7730 var_old_child = p0;
7731 var_new_child = p1;
7732 var = self->attrs[COLOR_parser_nodes__AVardeclExpr___n_kwvar].val; /* _n_kwvar on <self:AVardeclExpr> */
7733 if (var == NULL) {
7734 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwvar");
7735 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4491);
7736 exit(1);
7737 }
7738 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:TKwvar>*/;
7739 if (var1){
7740 var2 = NULL;
7741 if (var_new_child == NULL) {
7742 var3 = 0; /* is null */
7743 } else {
7744 var3 = 1; /* arg is null and recv is not */
7745 }
7746 if (var3){
7747 ((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)>*/;
7748 /* <var_new_child:nullable ANode(ANode)> isa TKwvar */
7749 cltype = type_parser_nodes__TKwvar.color;
7750 idtype = type_parser_nodes__TKwvar.id;
7751 if(cltype >= var_new_child->type->table_size) {
7752 var4 = 0;
7753 } else {
7754 var4 = var_new_child->type->type_table[cltype] == idtype;
7755 }
7756 if (!var4) {
7757 fprintf(stderr, "Runtime error: %s", "Assert failed");
7758 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4494);
7759 exit(1);
7760 }
7761 self->attrs[COLOR_parser_nodes__AVardeclExpr___n_kwvar].val = var_new_child; /* _n_kwvar on <self:AVardeclExpr> */
7762 } else {
7763 fprintf(stderr, "Runtime error: %s", "Aborted");
7764 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4497);
7765 exit(1);
7766 }
7767 goto RET_LABEL;
7768 } else {
7769 }
7770 var5 = self->attrs[COLOR_parser_nodes__AVardeclExpr___n_id].val; /* _n_id on <self:AVardeclExpr> */
7771 if (var5 == NULL) {
7772 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_id");
7773 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4501);
7774 exit(1);
7775 }
7776 var6 = ((short int (*)(val*, val*))(var5->class->vft[COLOR_kernel__Object___61d_61d]))(var5, var_old_child) /* == on <var5:TId>*/;
7777 if (var6){
7778 var7 = NULL;
7779 if (var_new_child == NULL) {
7780 var8 = 0; /* is null */
7781 } else {
7782 var8 = 1; /* arg is null and recv is not */
7783 }
7784 if (var8){
7785 ((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)>*/;
7786 /* <var_new_child:nullable ANode(ANode)> isa TId */
7787 cltype10 = type_parser_nodes__TId.color;
7788 idtype11 = type_parser_nodes__TId.id;
7789 if(cltype10 >= var_new_child->type->table_size) {
7790 var9 = 0;
7791 } else {
7792 var9 = var_new_child->type->type_table[cltype10] == idtype11;
7793 }
7794 if (!var9) {
7795 fprintf(stderr, "Runtime error: %s", "Assert failed");
7796 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4504);
7797 exit(1);
7798 }
7799 self->attrs[COLOR_parser_nodes__AVardeclExpr___n_id].val = var_new_child; /* _n_id on <self:AVardeclExpr> */
7800 } else {
7801 fprintf(stderr, "Runtime error: %s", "Aborted");
7802 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4507);
7803 exit(1);
7804 }
7805 goto RET_LABEL;
7806 } else {
7807 }
7808 var12 = self->attrs[COLOR_parser_nodes__AVardeclExpr___n_type].val; /* _n_type on <self:AVardeclExpr> */
7809 if (var12 == NULL) {
7810 var13 = 0; /* <var_old_child:ANode> cannot be null */
7811 } else {
7812 var13 = ((short int (*)(val*, val*))(var12->class->vft[COLOR_kernel__Object___61d_61d]))(var12, var_old_child) /* == on <var12:nullable AType>*/;
7813 }
7814 if (var13){
7815 var14 = NULL;
7816 if (var_new_child == NULL) {
7817 var15 = 0; /* is null */
7818 } else {
7819 var15 = 1; /* arg is null and recv is not */
7820 }
7821 if (var15){
7822 ((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)>*/;
7823 /* <var_new_child:nullable ANode(ANode)> isa AType */
7824 cltype17 = type_parser_nodes__AType.color;
7825 idtype18 = type_parser_nodes__AType.id;
7826 if(cltype17 >= var_new_child->type->table_size) {
7827 var16 = 0;
7828 } else {
7829 var16 = var_new_child->type->type_table[cltype17] == idtype18;
7830 }
7831 if (!var16) {
7832 fprintf(stderr, "Runtime error: %s", "Assert failed");
7833 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4514);
7834 exit(1);
7835 }
7836 self->attrs[COLOR_parser_nodes__AVardeclExpr___n_type].val = var_new_child; /* _n_type on <self:AVardeclExpr> */
7837 } else {
7838 var19 = NULL;
7839 self->attrs[COLOR_parser_nodes__AVardeclExpr___n_type].val = var19; /* _n_type on <self:AVardeclExpr> */
7840 }
7841 goto RET_LABEL;
7842 } else {
7843 }
7844 var20 = self->attrs[COLOR_parser_nodes__AVardeclExpr___n_assign].val; /* _n_assign on <self:AVardeclExpr> */
7845 if (var20 == NULL) {
7846 var21 = 0; /* <var_old_child:ANode> cannot be null */
7847 } else {
7848 var21 = ((short int (*)(val*, val*))(var20->class->vft[COLOR_kernel__Object___61d_61d]))(var20, var_old_child) /* == on <var20:nullable TAssign>*/;
7849 }
7850 if (var21){
7851 var22 = NULL;
7852 if (var_new_child == NULL) {
7853 var23 = 0; /* is null */
7854 } else {
7855 var23 = 1; /* arg is null and recv is not */
7856 }
7857 if (var23){
7858 ((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)>*/;
7859 /* <var_new_child:nullable ANode(ANode)> isa TAssign */
7860 cltype25 = type_parser_nodes__TAssign.color;
7861 idtype26 = type_parser_nodes__TAssign.id;
7862 if(cltype25 >= var_new_child->type->table_size) {
7863 var24 = 0;
7864 } else {
7865 var24 = var_new_child->type->type_table[cltype25] == idtype26;
7866 }
7867 if (!var24) {
7868 fprintf(stderr, "Runtime error: %s", "Assert failed");
7869 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4524);
7870 exit(1);
7871 }
7872 self->attrs[COLOR_parser_nodes__AVardeclExpr___n_assign].val = var_new_child; /* _n_assign on <self:AVardeclExpr> */
7873 } else {
7874 var27 = NULL;
7875 self->attrs[COLOR_parser_nodes__AVardeclExpr___n_assign].val = var27; /* _n_assign on <self:AVardeclExpr> */
7876 }
7877 goto RET_LABEL;
7878 } else {
7879 }
7880 var28 = self->attrs[COLOR_parser_nodes__AVardeclExpr___n_expr].val; /* _n_expr on <self:AVardeclExpr> */
7881 if (var28 == NULL) {
7882 var29 = 0; /* <var_old_child:ANode> cannot be null */
7883 } else {
7884 var29 = ((short int (*)(val*, val*))(var28->class->vft[COLOR_kernel__Object___61d_61d]))(var28, var_old_child) /* == on <var28:nullable AExpr>*/;
7885 }
7886 if (var29){
7887 var30 = NULL;
7888 if (var_new_child == NULL) {
7889 var31 = 0; /* is null */
7890 } else {
7891 var31 = 1; /* arg is null and recv is not */
7892 }
7893 if (var31){
7894 ((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)>*/;
7895 /* <var_new_child:nullable ANode(ANode)> isa AExpr */
7896 cltype33 = type_parser_nodes__AExpr.color;
7897 idtype34 = type_parser_nodes__AExpr.id;
7898 if(cltype33 >= var_new_child->type->table_size) {
7899 var32 = 0;
7900 } else {
7901 var32 = var_new_child->type->type_table[cltype33] == idtype34;
7902 }
7903 if (!var32) {
7904 fprintf(stderr, "Runtime error: %s", "Assert failed");
7905 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4534);
7906 exit(1);
7907 }
7908 self->attrs[COLOR_parser_nodes__AVardeclExpr___n_expr].val = var_new_child; /* _n_expr on <self:AVardeclExpr> */
7909 } else {
7910 var35 = NULL;
7911 self->attrs[COLOR_parser_nodes__AVardeclExpr___n_expr].val = var35; /* _n_expr on <self:AVardeclExpr> */
7912 }
7913 goto RET_LABEL;
7914 } else {
7915 }
7916 var36 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AVardeclExpr> */
7917 if (var36 == NULL) {
7918 var37 = 0; /* <var_old_child:ANode> cannot be null */
7919 } else {
7920 var37 = ((short int (*)(val*, val*))(var36->class->vft[COLOR_kernel__Object___61d_61d]))(var36, var_old_child) /* == on <var36:nullable AAnnotations>*/;
7921 }
7922 if (var37){
7923 var38 = NULL;
7924 if (var_new_child == NULL) {
7925 var39 = 0; /* is null */
7926 } else {
7927 var39 = 1; /* arg is null and recv is not */
7928 }
7929 if (var39){
7930 ((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)>*/;
7931 /* <var_new_child:nullable ANode(ANode)> isa AAnnotations */
7932 cltype41 = type_parser_nodes__AAnnotations.color;
7933 idtype42 = type_parser_nodes__AAnnotations.id;
7934 if(cltype41 >= var_new_child->type->table_size) {
7935 var40 = 0;
7936 } else {
7937 var40 = var_new_child->type->type_table[cltype41] == idtype42;
7938 }
7939 if (!var40) {
7940 fprintf(stderr, "Runtime error: %s", "Assert failed");
7941 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4544);
7942 exit(1);
7943 }
7944 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_new_child; /* _n_annotations on <self:AVardeclExpr> */
7945 } else {
7946 var43 = NULL;
7947 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var43; /* _n_annotations on <self:AVardeclExpr> */
7948 }
7949 goto RET_LABEL;
7950 } else {
7951 }
7952 RET_LABEL:;
7953 }
7954 /* method parser_prod#AVardeclExpr#replace_child for (self: Object, ANode, nullable ANode) */
7955 void VIRTUAL_parser_prod__AVardeclExpr__replace_child(val* self, val* p0, val* p1) {
7956 parser_prod__AVardeclExpr__replace_child(self, p0, p1);
7957 RET_LABEL:;
7958 }
7959 /* method parser_prod#AVardeclExpr#n_kwvar= for (self: AVardeclExpr, TKwvar) */
7960 void parser_prod__AVardeclExpr__n_kwvar_61d(val* self, val* p0) {
7961 val* var_node /* var node: TKwvar */;
7962 var_node = p0;
7963 self->attrs[COLOR_parser_nodes__AVardeclExpr___n_kwvar].val = var_node; /* _n_kwvar on <self:AVardeclExpr> */
7964 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TKwvar>*/;
7965 RET_LABEL:;
7966 }
7967 /* method parser_prod#AVardeclExpr#n_kwvar= for (self: Object, TKwvar) */
7968 void VIRTUAL_parser_prod__AVardeclExpr__n_kwvar_61d(val* self, val* p0) {
7969 parser_prod__AVardeclExpr__n_kwvar_61d(self, p0);
7970 RET_LABEL:;
7971 }
7972 /* method parser_prod#AVardeclExpr#n_id= for (self: AVardeclExpr, TId) */
7973 void parser_prod__AVardeclExpr__n_id_61d(val* self, val* p0) {
7974 val* var_node /* var node: TId */;
7975 var_node = p0;
7976 self->attrs[COLOR_parser_nodes__AVardeclExpr___n_id].val = var_node; /* _n_id on <self:AVardeclExpr> */
7977 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TId>*/;
7978 RET_LABEL:;
7979 }
7980 /* method parser_prod#AVardeclExpr#n_id= for (self: Object, TId) */
7981 void VIRTUAL_parser_prod__AVardeclExpr__n_id_61d(val* self, val* p0) {
7982 parser_prod__AVardeclExpr__n_id_61d(self, p0);
7983 RET_LABEL:;
7984 }
7985 /* method parser_prod#AVardeclExpr#n_type= for (self: AVardeclExpr, nullable AType) */
7986 void parser_prod__AVardeclExpr__n_type_61d(val* self, val* p0) {
7987 val* var_node /* var node: nullable AType */;
7988 val* var /* : null */;
7989 short int var1 /* : Bool */;
7990 var_node = p0;
7991 self->attrs[COLOR_parser_nodes__AVardeclExpr___n_type].val = var_node; /* _n_type on <self:AVardeclExpr> */
7992 var = NULL;
7993 if (var_node == NULL) {
7994 var1 = 0; /* is null */
7995 } else {
7996 var1 = 1; /* arg is null and recv is not */
7997 }
7998 if (var1){
7999 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable AType(AType)>*/;
8000 } else {
8001 }
8002 RET_LABEL:;
8003 }
8004 /* method parser_prod#AVardeclExpr#n_type= for (self: Object, nullable AType) */
8005 void VIRTUAL_parser_prod__AVardeclExpr__n_type_61d(val* self, val* p0) {
8006 parser_prod__AVardeclExpr__n_type_61d(self, p0);
8007 RET_LABEL:;
8008 }
8009 /* method parser_prod#AVardeclExpr#n_assign= for (self: AVardeclExpr, nullable TAssign) */
8010 void parser_prod__AVardeclExpr__n_assign_61d(val* self, val* p0) {
8011 val* var_node /* var node: nullable TAssign */;
8012 val* var /* : null */;
8013 short int var1 /* : Bool */;
8014 var_node = p0;
8015 self->attrs[COLOR_parser_nodes__AVardeclExpr___n_assign].val = var_node; /* _n_assign on <self:AVardeclExpr> */
8016 var = NULL;
8017 if (var_node == NULL) {
8018 var1 = 0; /* is null */
8019 } else {
8020 var1 = 1; /* arg is null and recv is not */
8021 }
8022 if (var1){
8023 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable TAssign(TAssign)>*/;
8024 } else {
8025 }
8026 RET_LABEL:;
8027 }
8028 /* method parser_prod#AVardeclExpr#n_assign= for (self: Object, nullable TAssign) */
8029 void VIRTUAL_parser_prod__AVardeclExpr__n_assign_61d(val* self, val* p0) {
8030 parser_prod__AVardeclExpr__n_assign_61d(self, p0);
8031 RET_LABEL:;
8032 }
8033 /* method parser_prod#AVardeclExpr#n_expr= for (self: AVardeclExpr, nullable AExpr) */
8034 void parser_prod__AVardeclExpr__n_expr_61d(val* self, val* p0) {
8035 val* var_node /* var node: nullable AExpr */;
8036 val* var /* : null */;
8037 short int var1 /* : Bool */;
8038 var_node = p0;
8039 self->attrs[COLOR_parser_nodes__AVardeclExpr___n_expr].val = var_node; /* _n_expr on <self:AVardeclExpr> */
8040 var = NULL;
8041 if (var_node == NULL) {
8042 var1 = 0; /* is null */
8043 } else {
8044 var1 = 1; /* arg is null and recv is not */
8045 }
8046 if (var1){
8047 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable AExpr(AExpr)>*/;
8048 } else {
8049 }
8050 RET_LABEL:;
8051 }
8052 /* method parser_prod#AVardeclExpr#n_expr= for (self: Object, nullable AExpr) */
8053 void VIRTUAL_parser_prod__AVardeclExpr__n_expr_61d(val* self, val* p0) {
8054 parser_prod__AVardeclExpr__n_expr_61d(self, p0);
8055 RET_LABEL:;
8056 }
8057 /* method parser_prod#AVardeclExpr#n_annotations= for (self: AVardeclExpr, nullable AAnnotations) */
8058 void parser_prod__AVardeclExpr__n_annotations_61d(val* self, val* p0) {
8059 val* var_node /* var node: nullable AAnnotations */;
8060 val* var /* : null */;
8061 short int var1 /* : Bool */;
8062 var_node = p0;
8063 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_node; /* _n_annotations on <self:AVardeclExpr> */
8064 var = NULL;
8065 if (var_node == NULL) {
8066 var1 = 0; /* is null */
8067 } else {
8068 var1 = 1; /* arg is null and recv is not */
8069 }
8070 if (var1){
8071 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable AAnnotations(AAnnotations)>*/;
8072 } else {
8073 }
8074 RET_LABEL:;
8075 }
8076 /* method parser_prod#AVardeclExpr#n_annotations= for (self: Object, nullable AAnnotations) */
8077 void VIRTUAL_parser_prod__AVardeclExpr__n_annotations_61d(val* self, val* p0) {
8078 parser_prod__AVardeclExpr__n_annotations_61d(self, p0);
8079 RET_LABEL:;
8080 }
8081 /* method parser_prod#AVardeclExpr#visit_all for (self: AVardeclExpr, Visitor) */
8082 void parser_prod__AVardeclExpr__visit_all(val* self, val* p0) {
8083 val* var_v /* var v: Visitor */;
8084 val* var /* : TKwvar */;
8085 val* var1 /* : TId */;
8086 val* var2 /* : nullable AType */;
8087 val* var3 /* : null */;
8088 short int var4 /* : Bool */;
8089 val* var5 /* : nullable AType */;
8090 val* var6 /* : nullable TAssign */;
8091 val* var7 /* : null */;
8092 short int var8 /* : Bool */;
8093 val* var9 /* : nullable TAssign */;
8094 val* var10 /* : nullable AExpr */;
8095 val* var11 /* : null */;
8096 short int var12 /* : Bool */;
8097 val* var13 /* : nullable AExpr */;
8098 val* var14 /* : nullable AAnnotations */;
8099 val* var15 /* : null */;
8100 short int var16 /* : Bool */;
8101 val* var17 /* : nullable AAnnotations */;
8102 var_v = p0;
8103 var = self->attrs[COLOR_parser_nodes__AVardeclExpr___n_kwvar].val; /* _n_kwvar on <self:AVardeclExpr> */
8104 if (var == NULL) {
8105 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwvar");
8106 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4595);
8107 exit(1);
8108 }
8109 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
8110 var1 = self->attrs[COLOR_parser_nodes__AVardeclExpr___n_id].val; /* _n_id on <self:AVardeclExpr> */
8111 if (var1 == NULL) {
8112 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_id");
8113 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4596);
8114 exit(1);
8115 }
8116 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var1) /* enter_visit on <var_v:Visitor>*/;
8117 var2 = self->attrs[COLOR_parser_nodes__AVardeclExpr___n_type].val; /* _n_type on <self:AVardeclExpr> */
8118 var3 = NULL;
8119 if (var2 == NULL) {
8120 var4 = 0; /* is null */
8121 } else {
8122 var4 = 1; /* arg is null and recv is not */
8123 }
8124 if (var4){
8125 var5 = self->attrs[COLOR_parser_nodes__AVardeclExpr___n_type].val; /* _n_type on <self:AVardeclExpr> */
8126 if (var5 == NULL) {
8127 fprintf(stderr, "Runtime error: %s", "Cast failed");
8128 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4598);
8129 exit(1);
8130 }
8131 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var5) /* enter_visit on <var_v:Visitor>*/;
8132 } else {
8133 }
8134 var6 = self->attrs[COLOR_parser_nodes__AVardeclExpr___n_assign].val; /* _n_assign on <self:AVardeclExpr> */
8135 var7 = NULL;
8136 if (var6 == NULL) {
8137 var8 = 0; /* is null */
8138 } else {
8139 var8 = 1; /* arg is null and recv is not */
8140 }
8141 if (var8){
8142 var9 = self->attrs[COLOR_parser_nodes__AVardeclExpr___n_assign].val; /* _n_assign on <self:AVardeclExpr> */
8143 if (var9 == NULL) {
8144 fprintf(stderr, "Runtime error: %s", "Cast failed");
8145 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4601);
8146 exit(1);
8147 }
8148 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var9) /* enter_visit on <var_v:Visitor>*/;
8149 } else {
8150 }
8151 var10 = self->attrs[COLOR_parser_nodes__AVardeclExpr___n_expr].val; /* _n_expr on <self:AVardeclExpr> */
8152 var11 = NULL;
8153 if (var10 == NULL) {
8154 var12 = 0; /* is null */
8155 } else {
8156 var12 = 1; /* arg is null and recv is not */
8157 }
8158 if (var12){
8159 var13 = self->attrs[COLOR_parser_nodes__AVardeclExpr___n_expr].val; /* _n_expr on <self:AVardeclExpr> */
8160 if (var13 == NULL) {
8161 fprintf(stderr, "Runtime error: %s", "Cast failed");
8162 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4604);
8163 exit(1);
8164 }
8165 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var13) /* enter_visit on <var_v:Visitor>*/;
8166 } else {
8167 }
8168 var14 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AVardeclExpr> */
8169 var15 = NULL;
8170 if (var14 == NULL) {
8171 var16 = 0; /* is null */
8172 } else {
8173 var16 = 1; /* arg is null and recv is not */
8174 }
8175 if (var16){
8176 var17 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AVardeclExpr> */
8177 if (var17 == NULL) {
8178 fprintf(stderr, "Runtime error: %s", "Cast failed");
8179 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4607);
8180 exit(1);
8181 }
8182 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var17) /* enter_visit on <var_v:Visitor>*/;
8183 } else {
8184 }
8185 RET_LABEL:;
8186 }
8187 /* method parser_prod#AVardeclExpr#visit_all for (self: Object, Visitor) */
8188 void VIRTUAL_parser_prod__AVardeclExpr__visit_all(val* self, val* p0) {
8189 parser_prod__AVardeclExpr__visit_all(self, p0);
8190 RET_LABEL:;
8191 }
8192 /* method parser_prod#AReturnExpr#empty_init for (self: AReturnExpr) */
8193 void parser_prod__AReturnExpr__empty_init(val* self) {
8194 RET_LABEL:;
8195 }
8196 /* method parser_prod#AReturnExpr#empty_init for (self: Object) */
8197 void VIRTUAL_parser_prod__AReturnExpr__empty_init(val* self) {
8198 parser_prod__AReturnExpr__empty_init(self);
8199 RET_LABEL:;
8200 }
8201 /* method parser_prod#AReturnExpr#init_areturnexpr for (self: AReturnExpr, nullable TKwreturn, nullable AExpr) */
8202 void parser_prod__AReturnExpr__init_areturnexpr(val* self, val* p0, val* p1) {
8203 val* var_n_kwreturn /* var n_kwreturn: nullable TKwreturn */;
8204 val* var_n_expr /* var n_expr: nullable AExpr */;
8205 val* var /* : null */;
8206 short int var1 /* : Bool */;
8207 val* var2 /* : null */;
8208 short int var3 /* : Bool */;
8209 var_n_kwreturn = p0;
8210 var_n_expr = p1;
8211 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__AReturnExpr__empty_init]))(self) /* empty_init on <self:AReturnExpr>*/;
8212 self->attrs[COLOR_parser_nodes__AReturnExpr___n_kwreturn].val = var_n_kwreturn; /* _n_kwreturn on <self:AReturnExpr> */
8213 var = NULL;
8214 if (var_n_kwreturn == NULL) {
8215 var1 = 0; /* is null */
8216 } else {
8217 var1 = 1; /* arg is null and recv is not */
8218 }
8219 if (var1){
8220 ((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)>*/;
8221 } else {
8222 }
8223 self->attrs[COLOR_parser_nodes__AReturnExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AReturnExpr> */
8224 var2 = NULL;
8225 if (var_n_expr == NULL) {
8226 var3 = 0; /* is null */
8227 } else {
8228 var3 = 1; /* arg is null and recv is not */
8229 }
8230 if (var3){
8231 ((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)>*/;
8232 } else {
8233 }
8234 RET_LABEL:;
8235 }
8236 /* method parser_prod#AReturnExpr#init_areturnexpr for (self: Object, nullable TKwreturn, nullable AExpr) */
8237 void VIRTUAL_parser_prod__AReturnExpr__init_areturnexpr(val* self, val* p0, val* p1) {
8238 parser_prod__AReturnExpr__init_areturnexpr(self, p0, p1);
8239 RET_LABEL:;
8240 }
8241 /* method parser_prod#AReturnExpr#replace_child for (self: AReturnExpr, ANode, nullable ANode) */
8242 void parser_prod__AReturnExpr__replace_child(val* self, val* p0, val* p1) {
8243 val* var_old_child /* var old_child: ANode */;
8244 val* var_new_child /* var new_child: nullable ANode */;
8245 val* var /* : nullable TKwreturn */;
8246 short int var1 /* : Bool */;
8247 val* var2 /* : null */;
8248 short int var3 /* : Bool */;
8249 short int var4 /* : Bool */;
8250 int cltype;
8251 int idtype;
8252 val* var5 /* : null */;
8253 val* var6 /* : nullable AExpr */;
8254 short int var7 /* : Bool */;
8255 val* var8 /* : null */;
8256 short int var9 /* : Bool */;
8257 short int var10 /* : Bool */;
8258 int cltype11;
8259 int idtype12;
8260 val* var13 /* : null */;
8261 var_old_child = p0;
8262 var_new_child = p1;
8263 var = self->attrs[COLOR_parser_nodes__AReturnExpr___n_kwreturn].val; /* _n_kwreturn on <self:AReturnExpr> */
8264 if (var == NULL) {
8265 var1 = 0; /* <var_old_child:ANode> cannot be null */
8266 } else {
8267 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:nullable TKwreturn>*/;
8268 }
8269 if (var1){
8270 var2 = NULL;
8271 if (var_new_child == NULL) {
8272 var3 = 0; /* is null */
8273 } else {
8274 var3 = 1; /* arg is null and recv is not */
8275 }
8276 if (var3){
8277 ((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)>*/;
8278 /* <var_new_child:nullable ANode(ANode)> isa TKwreturn */
8279 cltype = type_parser_nodes__TKwreturn.color;
8280 idtype = type_parser_nodes__TKwreturn.id;
8281 if(cltype >= var_new_child->type->table_size) {
8282 var4 = 0;
8283 } else {
8284 var4 = var_new_child->type->type_table[cltype] == idtype;
8285 }
8286 if (!var4) {
8287 fprintf(stderr, "Runtime error: %s", "Assert failed");
8288 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4635);
8289 exit(1);
8290 }
8291 self->attrs[COLOR_parser_nodes__AReturnExpr___n_kwreturn].val = var_new_child; /* _n_kwreturn on <self:AReturnExpr> */
8292 } else {
8293 var5 = NULL;
8294 self->attrs[COLOR_parser_nodes__AReturnExpr___n_kwreturn].val = var5; /* _n_kwreturn on <self:AReturnExpr> */
8295 }
8296 goto RET_LABEL;
8297 } else {
8298 }
8299 var6 = self->attrs[COLOR_parser_nodes__AReturnExpr___n_expr].val; /* _n_expr on <self:AReturnExpr> */
8300 if (var6 == NULL) {
8301 var7 = 0; /* <var_old_child:ANode> cannot be null */
8302 } else {
8303 var7 = ((short int (*)(val*, val*))(var6->class->vft[COLOR_kernel__Object___61d_61d]))(var6, var_old_child) /* == on <var6:nullable AExpr>*/;
8304 }
8305 if (var7){
8306 var8 = NULL;
8307 if (var_new_child == NULL) {
8308 var9 = 0; /* is null */
8309 } else {
8310 var9 = 1; /* arg is null and recv is not */
8311 }
8312 if (var9){
8313 ((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)>*/;
8314 /* <var_new_child:nullable ANode(ANode)> isa AExpr */
8315 cltype11 = type_parser_nodes__AExpr.color;
8316 idtype12 = type_parser_nodes__AExpr.id;
8317 if(cltype11 >= var_new_child->type->table_size) {
8318 var10 = 0;
8319 } else {
8320 var10 = var_new_child->type->type_table[cltype11] == idtype12;
8321 }
8322 if (!var10) {
8323 fprintf(stderr, "Runtime error: %s", "Assert failed");
8324 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4645);
8325 exit(1);
8326 }
8327 self->attrs[COLOR_parser_nodes__AReturnExpr___n_expr].val = var_new_child; /* _n_expr on <self:AReturnExpr> */
8328 } else {
8329 var13 = NULL;
8330 self->attrs[COLOR_parser_nodes__AReturnExpr___n_expr].val = var13; /* _n_expr on <self:AReturnExpr> */
8331 }
8332 goto RET_LABEL;
8333 } else {
8334 }
8335 RET_LABEL:;
8336 }
8337 /* method parser_prod#AReturnExpr#replace_child for (self: Object, ANode, nullable ANode) */
8338 void VIRTUAL_parser_prod__AReturnExpr__replace_child(val* self, val* p0, val* p1) {
8339 parser_prod__AReturnExpr__replace_child(self, p0, p1);
8340 RET_LABEL:;
8341 }
8342 /* method parser_prod#AReturnExpr#n_kwreturn= for (self: AReturnExpr, nullable TKwreturn) */
8343 void parser_prod__AReturnExpr__n_kwreturn_61d(val* self, val* p0) {
8344 val* var_node /* var node: nullable TKwreturn */;
8345 val* var /* : null */;
8346 short int var1 /* : Bool */;
8347 var_node = p0;
8348 self->attrs[COLOR_parser_nodes__AReturnExpr___n_kwreturn].val = var_node; /* _n_kwreturn on <self:AReturnExpr> */
8349 var = NULL;
8350 if (var_node == NULL) {
8351 var1 = 0; /* is null */
8352 } else {
8353 var1 = 1; /* arg is null and recv is not */
8354 }
8355 if (var1){
8356 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable TKwreturn(TKwreturn)>*/;
8357 } else {
8358 }
8359 RET_LABEL:;
8360 }
8361 /* method parser_prod#AReturnExpr#n_kwreturn= for (self: Object, nullable TKwreturn) */
8362 void VIRTUAL_parser_prod__AReturnExpr__n_kwreturn_61d(val* self, val* p0) {
8363 parser_prod__AReturnExpr__n_kwreturn_61d(self, p0);
8364 RET_LABEL:;
8365 }
8366 /* method parser_prod#AReturnExpr#n_expr= for (self: AReturnExpr, nullable AExpr) */
8367 void parser_prod__AReturnExpr__n_expr_61d(val* self, val* p0) {
8368 val* var_node /* var node: nullable AExpr */;
8369 val* var /* : null */;
8370 short int var1 /* : Bool */;
8371 var_node = p0;
8372 self->attrs[COLOR_parser_nodes__AReturnExpr___n_expr].val = var_node; /* _n_expr on <self:AReturnExpr> */
8373 var = NULL;
8374 if (var_node == NULL) {
8375 var1 = 0; /* is null */
8376 } else {
8377 var1 = 1; /* arg is null and recv is not */
8378 }
8379 if (var1){
8380 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable AExpr(AExpr)>*/;
8381 } else {
8382 }
8383 RET_LABEL:;
8384 }
8385 /* method parser_prod#AReturnExpr#n_expr= for (self: Object, nullable AExpr) */
8386 void VIRTUAL_parser_prod__AReturnExpr__n_expr_61d(val* self, val* p0) {
8387 parser_prod__AReturnExpr__n_expr_61d(self, p0);
8388 RET_LABEL:;
8389 }
8390 /* method parser_prod#AReturnExpr#visit_all for (self: AReturnExpr, Visitor) */
8391 void parser_prod__AReturnExpr__visit_all(val* self, val* p0) {
8392 val* var_v /* var v: Visitor */;
8393 val* var /* : nullable TKwreturn */;
8394 val* var1 /* : null */;
8395 short int var2 /* : Bool */;
8396 val* var3 /* : nullable TKwreturn */;
8397 val* var4 /* : nullable AExpr */;
8398 val* var5 /* : null */;
8399 short int var6 /* : Bool */;
8400 val* var7 /* : nullable AExpr */;
8401 var_v = p0;
8402 var = self->attrs[COLOR_parser_nodes__AReturnExpr___n_kwreturn].val; /* _n_kwreturn on <self:AReturnExpr> */
8403 var1 = NULL;
8404 if (var == NULL) {
8405 var2 = 0; /* is null */
8406 } else {
8407 var2 = 1; /* arg is null and recv is not */
8408 }
8409 if (var2){
8410 var3 = self->attrs[COLOR_parser_nodes__AReturnExpr___n_kwreturn].val; /* _n_kwreturn on <self:AReturnExpr> */
8411 if (var3 == NULL) {
8412 fprintf(stderr, "Runtime error: %s", "Cast failed");
8413 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4673);
8414 exit(1);
8415 }
8416 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var3) /* enter_visit on <var_v:Visitor>*/;
8417 } else {
8418 }
8419 var4 = self->attrs[COLOR_parser_nodes__AReturnExpr___n_expr].val; /* _n_expr on <self:AReturnExpr> */
8420 var5 = NULL;
8421 if (var4 == NULL) {
8422 var6 = 0; /* is null */
8423 } else {
8424 var6 = 1; /* arg is null and recv is not */
8425 }
8426 if (var6){
8427 var7 = self->attrs[COLOR_parser_nodes__AReturnExpr___n_expr].val; /* _n_expr on <self:AReturnExpr> */
8428 if (var7 == NULL) {
8429 fprintf(stderr, "Runtime error: %s", "Cast failed");
8430 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4676);
8431 exit(1);
8432 }
8433 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var7) /* enter_visit on <var_v:Visitor>*/;
8434 } else {
8435 }
8436 RET_LABEL:;
8437 }
8438 /* method parser_prod#AReturnExpr#visit_all for (self: Object, Visitor) */
8439 void VIRTUAL_parser_prod__AReturnExpr__visit_all(val* self, val* p0) {
8440 parser_prod__AReturnExpr__visit_all(self, p0);
8441 RET_LABEL:;
8442 }
8443 /* method parser_prod#ABreakExpr#empty_init for (self: ABreakExpr) */
8444 void parser_prod__ABreakExpr__empty_init(val* self) {
8445 RET_LABEL:;
8446 }
8447 /* method parser_prod#ABreakExpr#empty_init for (self: Object) */
8448 void VIRTUAL_parser_prod__ABreakExpr__empty_init(val* self) {
8449 parser_prod__ABreakExpr__empty_init(self);
8450 RET_LABEL:;
8451 }
8452 /* method parser_prod#ABreakExpr#init_abreakexpr for (self: ABreakExpr, nullable TKwbreak, nullable ALabel, nullable AExpr) */
8453 void parser_prod__ABreakExpr__init_abreakexpr(val* self, val* p0, val* p1, val* p2) {
8454 val* var_n_kwbreak /* var n_kwbreak: nullable TKwbreak */;
8455 val* var_n_label /* var n_label: nullable ALabel */;
8456 val* var_n_expr /* var n_expr: nullable AExpr */;
8457 val* var /* : null */;
8458 short int var1 /* : Bool */;
8459 val* var2 /* : null */;
8460 short int var3 /* : Bool */;
8461 var_n_kwbreak = p0;
8462 var_n_label = p1;
8463 var_n_expr = p2;
8464 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__ABreakExpr__empty_init]))(self) /* empty_init on <self:ABreakExpr>*/;
8465 if (var_n_kwbreak == NULL) {
8466 fprintf(stderr, "Runtime error: %s", "Cast failed");
8467 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4690);
8468 exit(1);
8469 }
8470 self->attrs[COLOR_parser_nodes__ABreakExpr___n_kwbreak].val = var_n_kwbreak; /* _n_kwbreak on <self:ABreakExpr> */
8471 if (var_n_kwbreak == NULL) {
8472 fprintf(stderr, "Runtime error: %s", "Reciever is null");
8473 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4691);
8474 exit(1);
8475 } else {
8476 ((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>*/;
8477 }
8478 self->attrs[COLOR_parser_nodes__ALabelable___n_label].val = var_n_label; /* _n_label on <self:ABreakExpr> */
8479 var = NULL;
8480 if (var_n_label == NULL) {
8481 var1 = 0; /* is null */
8482 } else {
8483 var1 = 1; /* arg is null and recv is not */
8484 }
8485 if (var1){
8486 ((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)>*/;
8487 } else {
8488 }
8489 self->attrs[COLOR_parser_nodes__ABreakExpr___n_expr].val = var_n_expr; /* _n_expr on <self:ABreakExpr> */
8490 var2 = NULL;
8491 if (var_n_expr == NULL) {
8492 var3 = 0; /* is null */
8493 } else {
8494 var3 = 1; /* arg is null and recv is not */
8495 }
8496 if (var3){
8497 ((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)>*/;
8498 } else {
8499 }
8500 RET_LABEL:;
8501 }
8502 /* method parser_prod#ABreakExpr#init_abreakexpr for (self: Object, nullable TKwbreak, nullable ALabel, nullable AExpr) */
8503 void VIRTUAL_parser_prod__ABreakExpr__init_abreakexpr(val* self, val* p0, val* p1, val* p2) {
8504 parser_prod__ABreakExpr__init_abreakexpr(self, p0, p1, p2);
8505 RET_LABEL:;
8506 }
8507 /* method parser_prod#ABreakExpr#replace_child for (self: ABreakExpr, ANode, nullable ANode) */
8508 void parser_prod__ABreakExpr__replace_child(val* self, val* p0, val* p1) {
8509 val* var_old_child /* var old_child: ANode */;
8510 val* var_new_child /* var new_child: nullable ANode */;
8511 val* var /* : TKwbreak */;
8512 short int var1 /* : Bool */;
8513 val* var2 /* : null */;
8514 short int var3 /* : Bool */;
8515 short int var4 /* : Bool */;
8516 int cltype;
8517 int idtype;
8518 val* var5 /* : nullable ALabel */;
8519 short int var6 /* : Bool */;
8520 val* var7 /* : null */;
8521 short int var8 /* : Bool */;
8522 short int var9 /* : Bool */;
8523 int cltype10;
8524 int idtype11;
8525 val* var12 /* : null */;
8526 val* var13 /* : nullable AExpr */;
8527 short int var14 /* : Bool */;
8528 val* var15 /* : null */;
8529 short int var16 /* : Bool */;
8530 short int var17 /* : Bool */;
8531 int cltype18;
8532 int idtype19;
8533 val* var20 /* : null */;
8534 var_old_child = p0;
8535 var_new_child = p1;
8536 var = self->attrs[COLOR_parser_nodes__ABreakExpr___n_kwbreak].val; /* _n_kwbreak on <self:ABreakExpr> */
8537 if (var == NULL) {
8538 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwbreak");
8539 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4704);
8540 exit(1);
8541 }
8542 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:TKwbreak>*/;
8543 if (var1){
8544 var2 = NULL;
8545 if (var_new_child == NULL) {
8546 var3 = 0; /* is null */
8547 } else {
8548 var3 = 1; /* arg is null and recv is not */
8549 }
8550 if (var3){
8551 ((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)>*/;
8552 /* <var_new_child:nullable ANode(ANode)> isa TKwbreak */
8553 cltype = type_parser_nodes__TKwbreak.color;
8554 idtype = type_parser_nodes__TKwbreak.id;
8555 if(cltype >= var_new_child->type->table_size) {
8556 var4 = 0;
8557 } else {
8558 var4 = var_new_child->type->type_table[cltype] == idtype;
8559 }
8560 if (!var4) {
8561 fprintf(stderr, "Runtime error: %s", "Assert failed");
8562 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4707);
8563 exit(1);
8564 }
8565 self->attrs[COLOR_parser_nodes__ABreakExpr___n_kwbreak].val = var_new_child; /* _n_kwbreak on <self:ABreakExpr> */
8566 } else {
8567 fprintf(stderr, "Runtime error: %s", "Aborted");
8568 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4710);
8569 exit(1);
8570 }
8571 goto RET_LABEL;
8572 } else {
8573 }
8574 var5 = self->attrs[COLOR_parser_nodes__ALabelable___n_label].val; /* _n_label on <self:ABreakExpr> */
8575 if (var5 == NULL) {
8576 var6 = 0; /* <var_old_child:ANode> cannot be null */
8577 } else {
8578 var6 = ((short int (*)(val*, val*))(var5->class->vft[COLOR_kernel__Object___61d_61d]))(var5, var_old_child) /* == on <var5:nullable ALabel>*/;
8579 }
8580 if (var6){
8581 var7 = NULL;
8582 if (var_new_child == NULL) {
8583 var8 = 0; /* is null */
8584 } else {
8585 var8 = 1; /* arg is null and recv is not */
8586 }
8587 if (var8){
8588 ((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)>*/;
8589 /* <var_new_child:nullable ANode(ANode)> isa ALabel */
8590 cltype10 = type_parser_nodes__ALabel.color;
8591 idtype11 = type_parser_nodes__ALabel.id;
8592 if(cltype10 >= var_new_child->type->table_size) {
8593 var9 = 0;
8594 } else {
8595 var9 = var_new_child->type->type_table[cltype10] == idtype11;
8596 }
8597 if (!var9) {
8598 fprintf(stderr, "Runtime error: %s", "Assert failed");
8599 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4717);
8600 exit(1);
8601 }
8602 self->attrs[COLOR_parser_nodes__ALabelable___n_label].val = var_new_child; /* _n_label on <self:ABreakExpr> */
8603 } else {
8604 var12 = NULL;
8605 self->attrs[COLOR_parser_nodes__ALabelable___n_label].val = var12; /* _n_label on <self:ABreakExpr> */
8606 }
8607 goto RET_LABEL;
8608 } else {
8609 }
8610 var13 = self->attrs[COLOR_parser_nodes__ABreakExpr___n_expr].val; /* _n_expr on <self:ABreakExpr> */
8611 if (var13 == NULL) {
8612 var14 = 0; /* <var_old_child:ANode> cannot be null */
8613 } else {
8614 var14 = ((short int (*)(val*, val*))(var13->class->vft[COLOR_kernel__Object___61d_61d]))(var13, var_old_child) /* == on <var13:nullable AExpr>*/;
8615 }
8616 if (var14){
8617 var15 = NULL;
8618 if (var_new_child == NULL) {
8619 var16 = 0; /* is null */
8620 } else {
8621 var16 = 1; /* arg is null and recv is not */
8622 }
8623 if (var16){
8624 ((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)>*/;
8625 /* <var_new_child:nullable ANode(ANode)> isa AExpr */
8626 cltype18 = type_parser_nodes__AExpr.color;
8627 idtype19 = type_parser_nodes__AExpr.id;
8628 if(cltype18 >= var_new_child->type->table_size) {
8629 var17 = 0;
8630 } else {
8631 var17 = var_new_child->type->type_table[cltype18] == idtype19;
8632 }
8633 if (!var17) {
8634 fprintf(stderr, "Runtime error: %s", "Assert failed");
8635 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4727);
8636 exit(1);
8637 }
8638 self->attrs[COLOR_parser_nodes__ABreakExpr___n_expr].val = var_new_child; /* _n_expr on <self:ABreakExpr> */
8639 } else {
8640 var20 = NULL;
8641 self->attrs[COLOR_parser_nodes__ABreakExpr___n_expr].val = var20; /* _n_expr on <self:ABreakExpr> */
8642 }
8643 goto RET_LABEL;
8644 } else {
8645 }
8646 RET_LABEL:;
8647 }
8648 /* method parser_prod#ABreakExpr#replace_child for (self: Object, ANode, nullable ANode) */
8649 void VIRTUAL_parser_prod__ABreakExpr__replace_child(val* self, val* p0, val* p1) {
8650 parser_prod__ABreakExpr__replace_child(self, p0, p1);
8651 RET_LABEL:;
8652 }
8653 /* method parser_prod#ABreakExpr#n_kwbreak= for (self: ABreakExpr, TKwbreak) */
8654 void parser_prod__ABreakExpr__n_kwbreak_61d(val* self, val* p0) {
8655 val* var_node /* var node: TKwbreak */;
8656 var_node = p0;
8657 self->attrs[COLOR_parser_nodes__ABreakExpr___n_kwbreak].val = var_node; /* _n_kwbreak on <self:ABreakExpr> */
8658 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TKwbreak>*/;
8659 RET_LABEL:;
8660 }
8661 /* method parser_prod#ABreakExpr#n_kwbreak= for (self: Object, TKwbreak) */
8662 void VIRTUAL_parser_prod__ABreakExpr__n_kwbreak_61d(val* self, val* p0) {
8663 parser_prod__ABreakExpr__n_kwbreak_61d(self, p0);
8664 RET_LABEL:;
8665 }
8666 /* method parser_prod#ABreakExpr#n_label= for (self: ABreakExpr, nullable ALabel) */
8667 void parser_prod__ABreakExpr__n_label_61d(val* self, val* p0) {
8668 val* var_node /* var node: nullable ALabel */;
8669 val* var /* : null */;
8670 short int var1 /* : Bool */;
8671 var_node = p0;
8672 self->attrs[COLOR_parser_nodes__ALabelable___n_label].val = var_node; /* _n_label on <self:ABreakExpr> */
8673 var = NULL;
8674 if (var_node == NULL) {
8675 var1 = 0; /* is null */
8676 } else {
8677 var1 = 1; /* arg is null and recv is not */
8678 }
8679 if (var1){
8680 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable ALabel(ALabel)>*/;
8681 } else {
8682 }
8683 RET_LABEL:;
8684 }
8685 /* method parser_prod#ABreakExpr#n_label= for (self: Object, nullable ALabel) */
8686 void VIRTUAL_parser_prod__ABreakExpr__n_label_61d(val* self, val* p0) {
8687 parser_prod__ABreakExpr__n_label_61d(self, p0);
8688 RET_LABEL:;
8689 }
8690 /* method parser_prod#ABreakExpr#n_expr= for (self: ABreakExpr, nullable AExpr) */
8691 void parser_prod__ABreakExpr__n_expr_61d(val* self, val* p0) {
8692 val* var_node /* var node: nullable AExpr */;
8693 val* var /* : null */;
8694 short int var1 /* : Bool */;
8695 var_node = p0;
8696 self->attrs[COLOR_parser_nodes__ABreakExpr___n_expr].val = var_node; /* _n_expr on <self:ABreakExpr> */
8697 var = NULL;
8698 if (var_node == NULL) {
8699 var1 = 0; /* is null */
8700 } else {
8701 var1 = 1; /* arg is null and recv is not */
8702 }
8703 if (var1){
8704 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable AExpr(AExpr)>*/;
8705 } else {
8706 }
8707 RET_LABEL:;
8708 }
8709 /* method parser_prod#ABreakExpr#n_expr= for (self: Object, nullable AExpr) */
8710 void VIRTUAL_parser_prod__ABreakExpr__n_expr_61d(val* self, val* p0) {
8711 parser_prod__ABreakExpr__n_expr_61d(self, p0);
8712 RET_LABEL:;
8713 }
8714 /* method parser_prod#ABreakExpr#visit_all for (self: ABreakExpr, Visitor) */
8715 void parser_prod__ABreakExpr__visit_all(val* self, val* p0) {
8716 val* var_v /* var v: Visitor */;
8717 val* var /* : TKwbreak */;
8718 val* var1 /* : nullable ALabel */;
8719 val* var2 /* : null */;
8720 short int var3 /* : Bool */;
8721 val* var4 /* : nullable ALabel */;
8722 val* var5 /* : nullable AExpr */;
8723 val* var6 /* : null */;
8724 short int var7 /* : Bool */;
8725 val* var8 /* : nullable AExpr */;
8726 var_v = p0;
8727 var = self->attrs[COLOR_parser_nodes__ABreakExpr___n_kwbreak].val; /* _n_kwbreak on <self:ABreakExpr> */
8728 if (var == NULL) {
8729 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwbreak");
8730 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4759);
8731 exit(1);
8732 }
8733 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
8734 var1 = self->attrs[COLOR_parser_nodes__ALabelable___n_label].val; /* _n_label on <self:ABreakExpr> */
8735 var2 = NULL;
8736 if (var1 == NULL) {
8737 var3 = 0; /* is null */
8738 } else {
8739 var3 = 1; /* arg is null and recv is not */
8740 }
8741 if (var3){
8742 var4 = self->attrs[COLOR_parser_nodes__ALabelable___n_label].val; /* _n_label on <self:ABreakExpr> */
8743 if (var4 == NULL) {
8744 fprintf(stderr, "Runtime error: %s", "Cast failed");
8745 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4761);
8746 exit(1);
8747 }
8748 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var4) /* enter_visit on <var_v:Visitor>*/;
8749 } else {
8750 }
8751 var5 = self->attrs[COLOR_parser_nodes__ABreakExpr___n_expr].val; /* _n_expr on <self:ABreakExpr> */
8752 var6 = NULL;
8753 if (var5 == NULL) {
8754 var7 = 0; /* is null */
8755 } else {
8756 var7 = 1; /* arg is null and recv is not */
8757 }
8758 if (var7){
8759 var8 = self->attrs[COLOR_parser_nodes__ABreakExpr___n_expr].val; /* _n_expr on <self:ABreakExpr> */
8760 if (var8 == NULL) {
8761 fprintf(stderr, "Runtime error: %s", "Cast failed");
8762 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4764);
8763 exit(1);
8764 }
8765 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var8) /* enter_visit on <var_v:Visitor>*/;
8766 } else {
8767 }
8768 RET_LABEL:;
8769 }
8770 /* method parser_prod#ABreakExpr#visit_all for (self: Object, Visitor) */
8771 void VIRTUAL_parser_prod__ABreakExpr__visit_all(val* self, val* p0) {
8772 parser_prod__ABreakExpr__visit_all(self, p0);
8773 RET_LABEL:;
8774 }
8775 /* method parser_prod#AAbortExpr#empty_init for (self: AAbortExpr) */
8776 void parser_prod__AAbortExpr__empty_init(val* self) {
8777 RET_LABEL:;
8778 }
8779 /* method parser_prod#AAbortExpr#empty_init for (self: Object) */
8780 void VIRTUAL_parser_prod__AAbortExpr__empty_init(val* self) {
8781 parser_prod__AAbortExpr__empty_init(self);
8782 RET_LABEL:;
8783 }
8784 /* method parser_prod#AAbortExpr#init_aabortexpr for (self: AAbortExpr, nullable TKwabort) */
8785 void parser_prod__AAbortExpr__init_aabortexpr(val* self, val* p0) {
8786 val* var_n_kwabort /* var n_kwabort: nullable TKwabort */;
8787 var_n_kwabort = p0;
8788 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__AAbortExpr__empty_init]))(self) /* empty_init on <self:AAbortExpr>*/;
8789 if (var_n_kwabort == NULL) {
8790 fprintf(stderr, "Runtime error: %s", "Cast failed");
8791 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4776);
8792 exit(1);
8793 }
8794 self->attrs[COLOR_parser_nodes__AAbortExpr___n_kwabort].val = var_n_kwabort; /* _n_kwabort on <self:AAbortExpr> */
8795 if (var_n_kwabort == NULL) {
8796 fprintf(stderr, "Runtime error: %s", "Reciever is null");
8797 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4777);
8798 exit(1);
8799 } else {
8800 ((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>*/;
8801 }
8802 RET_LABEL:;
8803 }
8804 /* method parser_prod#AAbortExpr#init_aabortexpr for (self: Object, nullable TKwabort) */
8805 void VIRTUAL_parser_prod__AAbortExpr__init_aabortexpr(val* self, val* p0) {
8806 parser_prod__AAbortExpr__init_aabortexpr(self, p0);
8807 RET_LABEL:;
8808 }
8809 /* method parser_prod#AAbortExpr#replace_child for (self: AAbortExpr, ANode, nullable ANode) */
8810 void parser_prod__AAbortExpr__replace_child(val* self, val* p0, val* p1) {
8811 val* var_old_child /* var old_child: ANode */;
8812 val* var_new_child /* var new_child: nullable ANode */;
8813 val* var /* : TKwabort */;
8814 short int var1 /* : Bool */;
8815 val* var2 /* : null */;
8816 short int var3 /* : Bool */;
8817 short int var4 /* : Bool */;
8818 int cltype;
8819 int idtype;
8820 var_old_child = p0;
8821 var_new_child = p1;
8822 var = self->attrs[COLOR_parser_nodes__AAbortExpr___n_kwabort].val; /* _n_kwabort on <self:AAbortExpr> */
8823 if (var == NULL) {
8824 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwabort");
8825 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4782);
8826 exit(1);
8827 }
8828 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:TKwabort>*/;
8829 if (var1){
8830 var2 = NULL;
8831 if (var_new_child == NULL) {
8832 var3 = 0; /* is null */
8833 } else {
8834 var3 = 1; /* arg is null and recv is not */
8835 }
8836 if (var3){
8837 ((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)>*/;
8838 /* <var_new_child:nullable ANode(ANode)> isa TKwabort */
8839 cltype = type_parser_nodes__TKwabort.color;
8840 idtype = type_parser_nodes__TKwabort.id;
8841 if(cltype >= var_new_child->type->table_size) {
8842 var4 = 0;
8843 } else {
8844 var4 = var_new_child->type->type_table[cltype] == idtype;
8845 }
8846 if (!var4) {
8847 fprintf(stderr, "Runtime error: %s", "Assert failed");
8848 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4785);
8849 exit(1);
8850 }
8851 self->attrs[COLOR_parser_nodes__AAbortExpr___n_kwabort].val = var_new_child; /* _n_kwabort on <self:AAbortExpr> */
8852 } else {
8853 fprintf(stderr, "Runtime error: %s", "Aborted");
8854 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4788);
8855 exit(1);
8856 }
8857 goto RET_LABEL;
8858 } else {
8859 }
8860 RET_LABEL:;
8861 }
8862 /* method parser_prod#AAbortExpr#replace_child for (self: Object, ANode, nullable ANode) */
8863 void VIRTUAL_parser_prod__AAbortExpr__replace_child(val* self, val* p0, val* p1) {
8864 parser_prod__AAbortExpr__replace_child(self, p0, p1);
8865 RET_LABEL:;
8866 }
8867 /* method parser_prod#AAbortExpr#n_kwabort= for (self: AAbortExpr, TKwabort) */
8868 void parser_prod__AAbortExpr__n_kwabort_61d(val* self, val* p0) {
8869 val* var_node /* var node: TKwabort */;
8870 var_node = p0;
8871 self->attrs[COLOR_parser_nodes__AAbortExpr___n_kwabort].val = var_node; /* _n_kwabort on <self:AAbortExpr> */
8872 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TKwabort>*/;
8873 RET_LABEL:;
8874 }
8875 /* method parser_prod#AAbortExpr#n_kwabort= for (self: Object, TKwabort) */
8876 void VIRTUAL_parser_prod__AAbortExpr__n_kwabort_61d(val* self, val* p0) {
8877 parser_prod__AAbortExpr__n_kwabort_61d(self, p0);
8878 RET_LABEL:;
8879 }
8880 /* method parser_prod#AAbortExpr#visit_all for (self: AAbortExpr, Visitor) */
8881 void parser_prod__AAbortExpr__visit_all(val* self, val* p0) {
8882 val* var_v /* var v: Visitor */;
8883 val* var /* : TKwabort */;
8884 var_v = p0;
8885 var = self->attrs[COLOR_parser_nodes__AAbortExpr___n_kwabort].val; /* _n_kwabort on <self:AAbortExpr> */
8886 if (var == NULL) {
8887 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwabort");
8888 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4803);
8889 exit(1);
8890 }
8891 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
8892 RET_LABEL:;
8893 }
8894 /* method parser_prod#AAbortExpr#visit_all for (self: Object, Visitor) */
8895 void VIRTUAL_parser_prod__AAbortExpr__visit_all(val* self, val* p0) {
8896 parser_prod__AAbortExpr__visit_all(self, p0);
8897 RET_LABEL:;
8898 }
8899 /* method parser_prod#AContinueExpr#empty_init for (self: AContinueExpr) */
8900 void parser_prod__AContinueExpr__empty_init(val* self) {
8901 RET_LABEL:;
8902 }
8903 /* method parser_prod#AContinueExpr#empty_init for (self: Object) */
8904 void VIRTUAL_parser_prod__AContinueExpr__empty_init(val* self) {
8905 parser_prod__AContinueExpr__empty_init(self);
8906 RET_LABEL:;
8907 }
8908 /* method parser_prod#AContinueExpr#init_acontinueexpr for (self: AContinueExpr, nullable TKwcontinue, nullable ALabel, nullable AExpr) */
8909 void parser_prod__AContinueExpr__init_acontinueexpr(val* self, val* p0, val* p1, val* p2) {
8910 val* var_n_kwcontinue /* var n_kwcontinue: nullable TKwcontinue */;
8911 val* var_n_label /* var n_label: nullable ALabel */;
8912 val* var_n_expr /* var n_expr: nullable AExpr */;
8913 val* var /* : null */;
8914 short int var1 /* : Bool */;
8915 val* var2 /* : null */;
8916 short int var3 /* : Bool */;
8917 val* var4 /* : null */;
8918 short int var5 /* : Bool */;
8919 var_n_kwcontinue = p0;
8920 var_n_label = p1;
8921 var_n_expr = p2;
8922 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__AContinueExpr__empty_init]))(self) /* empty_init on <self:AContinueExpr>*/;
8923 self->attrs[COLOR_parser_nodes__AContinueExpr___n_kwcontinue].val = var_n_kwcontinue; /* _n_kwcontinue on <self:AContinueExpr> */
8924 var = NULL;
8925 if (var_n_kwcontinue == NULL) {
8926 var1 = 0; /* is null */
8927 } else {
8928 var1 = 1; /* arg is null and recv is not */
8929 }
8930 if (var1){
8931 ((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)>*/;
8932 } else {
8933 }
8934 self->attrs[COLOR_parser_nodes__ALabelable___n_label].val = var_n_label; /* _n_label on <self:AContinueExpr> */
8935 var2 = NULL;
8936 if (var_n_label == NULL) {
8937 var3 = 0; /* is null */
8938 } else {
8939 var3 = 1; /* arg is null and recv is not */
8940 }
8941 if (var3){
8942 ((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)>*/;
8943 } else {
8944 }
8945 self->attrs[COLOR_parser_nodes__AContinueExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AContinueExpr> */
8946 var4 = NULL;
8947 if (var_n_expr == NULL) {
8948 var5 = 0; /* is null */
8949 } else {
8950 var5 = 1; /* arg is null and recv is not */
8951 }
8952 if (var5){
8953 ((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)>*/;
8954 } else {
8955 }
8956 RET_LABEL:;
8957 }
8958 /* method parser_prod#AContinueExpr#init_acontinueexpr for (self: Object, nullable TKwcontinue, nullable ALabel, nullable AExpr) */
8959 void VIRTUAL_parser_prod__AContinueExpr__init_acontinueexpr(val* self, val* p0, val* p1, val* p2) {
8960 parser_prod__AContinueExpr__init_acontinueexpr(self, p0, p1, p2);
8961 RET_LABEL:;
8962 }
8963 /* method parser_prod#AContinueExpr#replace_child for (self: AContinueExpr, ANode, nullable ANode) */
8964 void parser_prod__AContinueExpr__replace_child(val* self, val* p0, val* p1) {
8965 val* var_old_child /* var old_child: ANode */;
8966 val* var_new_child /* var new_child: nullable ANode */;
8967 val* var /* : nullable TKwcontinue */;
8968 short int var1 /* : Bool */;
8969 val* var2 /* : null */;
8970 short int var3 /* : Bool */;
8971 short int var4 /* : Bool */;
8972 int cltype;
8973 int idtype;
8974 val* var5 /* : null */;
8975 val* var6 /* : nullable ALabel */;
8976 short int var7 /* : Bool */;
8977 val* var8 /* : null */;
8978 short int var9 /* : Bool */;
8979 short int var10 /* : Bool */;
8980 int cltype11;
8981 int idtype12;
8982 val* var13 /* : null */;
8983 val* var14 /* : nullable AExpr */;
8984 short int var15 /* : Bool */;
8985 val* var16 /* : null */;
8986 short int var17 /* : Bool */;
8987 short int var18 /* : Bool */;
8988 int cltype19;
8989 int idtype20;
8990 val* var21 /* : null */;
8991 var_old_child = p0;
8992 var_new_child = p1;
8993 var = self->attrs[COLOR_parser_nodes__AContinueExpr___n_kwcontinue].val; /* _n_kwcontinue on <self:AContinueExpr> */
8994 if (var == NULL) {
8995 var1 = 0; /* <var_old_child:ANode> cannot be null */
8996 } else {
8997 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:nullable TKwcontinue>*/;
8998 }
8999 if (var1){
9000 var2 = NULL;
9001 if (var_new_child == NULL) {
9002 var3 = 0; /* is null */
9003 } else {
9004 var3 = 1; /* arg is null and recv is not */
9005 }
9006 if (var3){
9007 ((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)>*/;
9008 /* <var_new_child:nullable ANode(ANode)> isa TKwcontinue */
9009 cltype = type_parser_nodes__TKwcontinue.color;
9010 idtype = type_parser_nodes__TKwcontinue.id;
9011 if(cltype >= var_new_child->type->table_size) {
9012 var4 = 0;
9013 } else {
9014 var4 = var_new_child->type->type_table[cltype] == idtype;
9015 }
9016 if (!var4) {
9017 fprintf(stderr, "Runtime error: %s", "Assert failed");
9018 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4835);
9019 exit(1);
9020 }
9021 self->attrs[COLOR_parser_nodes__AContinueExpr___n_kwcontinue].val = var_new_child; /* _n_kwcontinue on <self:AContinueExpr> */
9022 } else {
9023 var5 = NULL;
9024 self->attrs[COLOR_parser_nodes__AContinueExpr___n_kwcontinue].val = var5; /* _n_kwcontinue on <self:AContinueExpr> */
9025 }
9026 goto RET_LABEL;
9027 } else {
9028 }
9029 var6 = self->attrs[COLOR_parser_nodes__ALabelable___n_label].val; /* _n_label on <self:AContinueExpr> */
9030 if (var6 == NULL) {
9031 var7 = 0; /* <var_old_child:ANode> cannot be null */
9032 } else {
9033 var7 = ((short int (*)(val*, val*))(var6->class->vft[COLOR_kernel__Object___61d_61d]))(var6, var_old_child) /* == on <var6:nullable ALabel>*/;
9034 }
9035 if (var7){
9036 var8 = NULL;
9037 if (var_new_child == NULL) {
9038 var9 = 0; /* is null */
9039 } else {
9040 var9 = 1; /* arg is null and recv is not */
9041 }
9042 if (var9){
9043 ((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)>*/;
9044 /* <var_new_child:nullable ANode(ANode)> isa ALabel */
9045 cltype11 = type_parser_nodes__ALabel.color;
9046 idtype12 = type_parser_nodes__ALabel.id;
9047 if(cltype11 >= var_new_child->type->table_size) {
9048 var10 = 0;
9049 } else {
9050 var10 = var_new_child->type->type_table[cltype11] == idtype12;
9051 }
9052 if (!var10) {
9053 fprintf(stderr, "Runtime error: %s", "Assert failed");
9054 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4845);
9055 exit(1);
9056 }
9057 self->attrs[COLOR_parser_nodes__ALabelable___n_label].val = var_new_child; /* _n_label on <self:AContinueExpr> */
9058 } else {
9059 var13 = NULL;
9060 self->attrs[COLOR_parser_nodes__ALabelable___n_label].val = var13; /* _n_label on <self:AContinueExpr> */
9061 }
9062 goto RET_LABEL;
9063 } else {
9064 }
9065 var14 = self->attrs[COLOR_parser_nodes__AContinueExpr___n_expr].val; /* _n_expr on <self:AContinueExpr> */
9066 if (var14 == NULL) {
9067 var15 = 0; /* <var_old_child:ANode> cannot be null */
9068 } else {
9069 var15 = ((short int (*)(val*, val*))(var14->class->vft[COLOR_kernel__Object___61d_61d]))(var14, var_old_child) /* == on <var14:nullable AExpr>*/;
9070 }
9071 if (var15){
9072 var16 = NULL;
9073 if (var_new_child == NULL) {
9074 var17 = 0; /* is null */
9075 } else {
9076 var17 = 1; /* arg is null and recv is not */
9077 }
9078 if (var17){
9079 ((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)>*/;
9080 /* <var_new_child:nullable ANode(ANode)> isa AExpr */
9081 cltype19 = type_parser_nodes__AExpr.color;
9082 idtype20 = type_parser_nodes__AExpr.id;
9083 if(cltype19 >= var_new_child->type->table_size) {
9084 var18 = 0;
9085 } else {
9086 var18 = var_new_child->type->type_table[cltype19] == idtype20;
9087 }
9088 if (!var18) {
9089 fprintf(stderr, "Runtime error: %s", "Assert failed");
9090 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4855);
9091 exit(1);
9092 }
9093 self->attrs[COLOR_parser_nodes__AContinueExpr___n_expr].val = var_new_child; /* _n_expr on <self:AContinueExpr> */
9094 } else {
9095 var21 = NULL;
9096 self->attrs[COLOR_parser_nodes__AContinueExpr___n_expr].val = var21; /* _n_expr on <self:AContinueExpr> */
9097 }
9098 goto RET_LABEL;
9099 } else {
9100 }
9101 RET_LABEL:;
9102 }
9103 /* method parser_prod#AContinueExpr#replace_child for (self: Object, ANode, nullable ANode) */
9104 void VIRTUAL_parser_prod__AContinueExpr__replace_child(val* self, val* p0, val* p1) {
9105 parser_prod__AContinueExpr__replace_child(self, p0, p1);
9106 RET_LABEL:;
9107 }
9108 /* method parser_prod#AContinueExpr#n_kwcontinue= for (self: AContinueExpr, nullable TKwcontinue) */
9109 void parser_prod__AContinueExpr__n_kwcontinue_61d(val* self, val* p0) {
9110 val* var_node /* var node: nullable TKwcontinue */;
9111 val* var /* : null */;
9112 short int var1 /* : Bool */;
9113 var_node = p0;
9114 self->attrs[COLOR_parser_nodes__AContinueExpr___n_kwcontinue].val = var_node; /* _n_kwcontinue on <self:AContinueExpr> */
9115 var = NULL;
9116 if (var_node == NULL) {
9117 var1 = 0; /* is null */
9118 } else {
9119 var1 = 1; /* arg is null and recv is not */
9120 }
9121 if (var1){
9122 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable TKwcontinue(TKwcontinue)>*/;
9123 } else {
9124 }
9125 RET_LABEL:;
9126 }
9127 /* method parser_prod#AContinueExpr#n_kwcontinue= for (self: Object, nullable TKwcontinue) */
9128 void VIRTUAL_parser_prod__AContinueExpr__n_kwcontinue_61d(val* self, val* p0) {
9129 parser_prod__AContinueExpr__n_kwcontinue_61d(self, p0);
9130 RET_LABEL:;
9131 }
9132 /* method parser_prod#AContinueExpr#n_label= for (self: AContinueExpr, nullable ALabel) */
9133 void parser_prod__AContinueExpr__n_label_61d(val* self, val* p0) {
9134 val* var_node /* var node: nullable ALabel */;
9135 val* var /* : null */;
9136 short int var1 /* : Bool */;
9137 var_node = p0;
9138 self->attrs[COLOR_parser_nodes__ALabelable___n_label].val = var_node; /* _n_label on <self:AContinueExpr> */
9139 var = NULL;
9140 if (var_node == NULL) {
9141 var1 = 0; /* is null */
9142 } else {
9143 var1 = 1; /* arg is null and recv is not */
9144 }
9145 if (var1){
9146 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable ALabel(ALabel)>*/;
9147 } else {
9148 }
9149 RET_LABEL:;
9150 }
9151 /* method parser_prod#AContinueExpr#n_label= for (self: Object, nullable ALabel) */
9152 void VIRTUAL_parser_prod__AContinueExpr__n_label_61d(val* self, val* p0) {
9153 parser_prod__AContinueExpr__n_label_61d(self, p0);
9154 RET_LABEL:;
9155 }
9156 /* method parser_prod#AContinueExpr#n_expr= for (self: AContinueExpr, nullable AExpr) */
9157 void parser_prod__AContinueExpr__n_expr_61d(val* self, val* p0) {
9158 val* var_node /* var node: nullable AExpr */;
9159 val* var /* : null */;
9160 short int var1 /* : Bool */;
9161 var_node = p0;
9162 self->attrs[COLOR_parser_nodes__AContinueExpr___n_expr].val = var_node; /* _n_expr on <self:AContinueExpr> */
9163 var = NULL;
9164 if (var_node == NULL) {
9165 var1 = 0; /* is null */
9166 } else {
9167 var1 = 1; /* arg is null and recv is not */
9168 }
9169 if (var1){
9170 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable AExpr(AExpr)>*/;
9171 } else {
9172 }
9173 RET_LABEL:;
9174 }
9175 /* method parser_prod#AContinueExpr#n_expr= for (self: Object, nullable AExpr) */
9176 void VIRTUAL_parser_prod__AContinueExpr__n_expr_61d(val* self, val* p0) {
9177 parser_prod__AContinueExpr__n_expr_61d(self, p0);
9178 RET_LABEL:;
9179 }
9180 /* method parser_prod#AContinueExpr#visit_all for (self: AContinueExpr, Visitor) */
9181 void parser_prod__AContinueExpr__visit_all(val* self, val* p0) {
9182 val* var_v /* var v: Visitor */;
9183 val* var /* : nullable TKwcontinue */;
9184 val* var1 /* : null */;
9185 short int var2 /* : Bool */;
9186 val* var3 /* : nullable TKwcontinue */;
9187 val* var4 /* : nullable ALabel */;
9188 val* var5 /* : null */;
9189 short int var6 /* : Bool */;
9190 val* var7 /* : nullable ALabel */;
9191 val* var8 /* : nullable AExpr */;
9192 val* var9 /* : null */;
9193 short int var10 /* : Bool */;
9194 val* var11 /* : nullable AExpr */;
9195 var_v = p0;
9196 var = self->attrs[COLOR_parser_nodes__AContinueExpr___n_kwcontinue].val; /* _n_kwcontinue on <self:AContinueExpr> */
9197 var1 = NULL;
9198 if (var == NULL) {
9199 var2 = 0; /* is null */
9200 } else {
9201 var2 = 1; /* arg is null and recv is not */
9202 }
9203 if (var2){
9204 var3 = self->attrs[COLOR_parser_nodes__AContinueExpr___n_kwcontinue].val; /* _n_kwcontinue on <self:AContinueExpr> */
9205 if (var3 == NULL) {
9206 fprintf(stderr, "Runtime error: %s", "Cast failed");
9207 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4890);
9208 exit(1);
9209 }
9210 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var3) /* enter_visit on <var_v:Visitor>*/;
9211 } else {
9212 }
9213 var4 = self->attrs[COLOR_parser_nodes__ALabelable___n_label].val; /* _n_label on <self:AContinueExpr> */
9214 var5 = NULL;
9215 if (var4 == NULL) {
9216 var6 = 0; /* is null */
9217 } else {
9218 var6 = 1; /* arg is null and recv is not */
9219 }
9220 if (var6){
9221 var7 = self->attrs[COLOR_parser_nodes__ALabelable___n_label].val; /* _n_label on <self:AContinueExpr> */
9222 if (var7 == NULL) {
9223 fprintf(stderr, "Runtime error: %s", "Cast failed");
9224 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4893);
9225 exit(1);
9226 }
9227 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var7) /* enter_visit on <var_v:Visitor>*/;
9228 } else {
9229 }
9230 var8 = self->attrs[COLOR_parser_nodes__AContinueExpr___n_expr].val; /* _n_expr on <self:AContinueExpr> */
9231 var9 = NULL;
9232 if (var8 == NULL) {
9233 var10 = 0; /* is null */
9234 } else {
9235 var10 = 1; /* arg is null and recv is not */
9236 }
9237 if (var10){
9238 var11 = self->attrs[COLOR_parser_nodes__AContinueExpr___n_expr].val; /* _n_expr on <self:AContinueExpr> */
9239 if (var11 == NULL) {
9240 fprintf(stderr, "Runtime error: %s", "Cast failed");
9241 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4896);
9242 exit(1);
9243 }
9244 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var11) /* enter_visit on <var_v:Visitor>*/;
9245 } else {
9246 }
9247 RET_LABEL:;
9248 }
9249 /* method parser_prod#AContinueExpr#visit_all for (self: Object, Visitor) */
9250 void VIRTUAL_parser_prod__AContinueExpr__visit_all(val* self, val* p0) {
9251 parser_prod__AContinueExpr__visit_all(self, p0);
9252 RET_LABEL:;
9253 }
9254 /* method parser_prod#ADoExpr#empty_init for (self: ADoExpr) */
9255 void parser_prod__ADoExpr__empty_init(val* self) {
9256 RET_LABEL:;
9257 }
9258 /* method parser_prod#ADoExpr#empty_init for (self: Object) */
9259 void VIRTUAL_parser_prod__ADoExpr__empty_init(val* self) {
9260 parser_prod__ADoExpr__empty_init(self);
9261 RET_LABEL:;
9262 }
9263 /* method parser_prod#ADoExpr#init_adoexpr for (self: ADoExpr, nullable TKwdo, nullable AExpr, nullable ALabel) */
9264 void parser_prod__ADoExpr__init_adoexpr(val* self, val* p0, val* p1, val* p2) {
9265 val* var_n_kwdo /* var n_kwdo: nullable TKwdo */;
9266 val* var_n_block /* var n_block: nullable AExpr */;
9267 val* var_n_label /* var n_label: nullable ALabel */;
9268 val* var /* : null */;
9269 short int var1 /* : Bool */;
9270 val* var2 /* : null */;
9271 short int var3 /* : Bool */;
9272 var_n_kwdo = p0;
9273 var_n_block = p1;
9274 var_n_label = p2;
9275 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__ADoExpr__empty_init]))(self) /* empty_init on <self:ADoExpr>*/;
9276 if (var_n_kwdo == NULL) {
9277 fprintf(stderr, "Runtime error: %s", "Cast failed");
9278 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4910);
9279 exit(1);
9280 }
9281 self->attrs[COLOR_parser_nodes__ADoExpr___n_kwdo].val = var_n_kwdo; /* _n_kwdo on <self:ADoExpr> */
9282 if (var_n_kwdo == NULL) {
9283 fprintf(stderr, "Runtime error: %s", "Reciever is null");
9284 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4911);
9285 exit(1);
9286 } else {
9287 ((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>*/;
9288 }
9289 self->attrs[COLOR_parser_nodes__ADoExpr___n_block].val = var_n_block; /* _n_block on <self:ADoExpr> */
9290 var = NULL;
9291 if (var_n_block == NULL) {
9292 var1 = 0; /* is null */
9293 } else {
9294 var1 = 1; /* arg is null and recv is not */
9295 }
9296 if (var1){
9297 ((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)>*/;
9298 } else {
9299 }
9300 self->attrs[COLOR_parser_nodes__ALabelable___n_label].val = var_n_label; /* _n_label on <self:ADoExpr> */
9301 var2 = NULL;
9302 if (var_n_label == NULL) {
9303 var3 = 0; /* is null */
9304 } else {
9305 var3 = 1; /* arg is null and recv is not */
9306 }
9307 if (var3){
9308 ((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)>*/;
9309 } else {
9310 }
9311 RET_LABEL:;
9312 }
9313 /* method parser_prod#ADoExpr#init_adoexpr for (self: Object, nullable TKwdo, nullable AExpr, nullable ALabel) */
9314 void VIRTUAL_parser_prod__ADoExpr__init_adoexpr(val* self, val* p0, val* p1, val* p2) {
9315 parser_prod__ADoExpr__init_adoexpr(self, p0, p1, p2);
9316 RET_LABEL:;
9317 }
9318 /* method parser_prod#ADoExpr#replace_child for (self: ADoExpr, ANode, nullable ANode) */
9319 void parser_prod__ADoExpr__replace_child(val* self, val* p0, val* p1) {
9320 val* var_old_child /* var old_child: ANode */;
9321 val* var_new_child /* var new_child: nullable ANode */;
9322 val* var /* : TKwdo */;
9323 short int var1 /* : Bool */;
9324 val* var2 /* : null */;
9325 short int var3 /* : Bool */;
9326 short int var4 /* : Bool */;
9327 int cltype;
9328 int idtype;
9329 val* var5 /* : nullable AExpr */;
9330 short int var6 /* : Bool */;
9331 val* var7 /* : null */;
9332 short int var8 /* : Bool */;
9333 short int var9 /* : Bool */;
9334 int cltype10;
9335 int idtype11;
9336 val* var12 /* : null */;
9337 val* var13 /* : nullable ALabel */;
9338 short int var14 /* : Bool */;
9339 val* var15 /* : null */;
9340 short int var16 /* : Bool */;
9341 short int var17 /* : Bool */;
9342 int cltype18;
9343 int idtype19;
9344 val* var20 /* : null */;
9345 var_old_child = p0;
9346 var_new_child = p1;
9347 var = self->attrs[COLOR_parser_nodes__ADoExpr___n_kwdo].val; /* _n_kwdo on <self:ADoExpr> */
9348 if (var == NULL) {
9349 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwdo");
9350 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4924);
9351 exit(1);
9352 }
9353 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:TKwdo>*/;
9354 if (var1){
9355 var2 = NULL;
9356 if (var_new_child == NULL) {
9357 var3 = 0; /* is null */
9358 } else {
9359 var3 = 1; /* arg is null and recv is not */
9360 }
9361 if (var3){
9362 ((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)>*/;
9363 /* <var_new_child:nullable ANode(ANode)> isa TKwdo */
9364 cltype = type_parser_nodes__TKwdo.color;
9365 idtype = type_parser_nodes__TKwdo.id;
9366 if(cltype >= var_new_child->type->table_size) {
9367 var4 = 0;
9368 } else {
9369 var4 = var_new_child->type->type_table[cltype] == idtype;
9370 }
9371 if (!var4) {
9372 fprintf(stderr, "Runtime error: %s", "Assert failed");
9373 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4927);
9374 exit(1);
9375 }
9376 self->attrs[COLOR_parser_nodes__ADoExpr___n_kwdo].val = var_new_child; /* _n_kwdo on <self:ADoExpr> */
9377 } else {
9378 fprintf(stderr, "Runtime error: %s", "Aborted");
9379 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4930);
9380 exit(1);
9381 }
9382 goto RET_LABEL;
9383 } else {
9384 }
9385 var5 = self->attrs[COLOR_parser_nodes__ADoExpr___n_block].val; /* _n_block on <self:ADoExpr> */
9386 if (var5 == NULL) {
9387 var6 = 0; /* <var_old_child:ANode> cannot be null */
9388 } else {
9389 var6 = ((short int (*)(val*, val*))(var5->class->vft[COLOR_kernel__Object___61d_61d]))(var5, var_old_child) /* == on <var5:nullable AExpr>*/;
9390 }
9391 if (var6){
9392 var7 = NULL;
9393 if (var_new_child == NULL) {
9394 var8 = 0; /* is null */
9395 } else {
9396 var8 = 1; /* arg is null and recv is not */
9397 }
9398 if (var8){
9399 ((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)>*/;
9400 /* <var_new_child:nullable ANode(ANode)> isa AExpr */
9401 cltype10 = type_parser_nodes__AExpr.color;
9402 idtype11 = type_parser_nodes__AExpr.id;
9403 if(cltype10 >= var_new_child->type->table_size) {
9404 var9 = 0;
9405 } else {
9406 var9 = var_new_child->type->type_table[cltype10] == idtype11;
9407 }
9408 if (!var9) {
9409 fprintf(stderr, "Runtime error: %s", "Assert failed");
9410 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4937);
9411 exit(1);
9412 }
9413 self->attrs[COLOR_parser_nodes__ADoExpr___n_block].val = var_new_child; /* _n_block on <self:ADoExpr> */
9414 } else {
9415 var12 = NULL;
9416 self->attrs[COLOR_parser_nodes__ADoExpr___n_block].val = var12; /* _n_block on <self:ADoExpr> */
9417 }
9418 goto RET_LABEL;
9419 } else {
9420 }
9421 var13 = self->attrs[COLOR_parser_nodes__ALabelable___n_label].val; /* _n_label on <self:ADoExpr> */
9422 if (var13 == NULL) {
9423 var14 = 0; /* <var_old_child:ANode> cannot be null */
9424 } else {
9425 var14 = ((short int (*)(val*, val*))(var13->class->vft[COLOR_kernel__Object___61d_61d]))(var13, var_old_child) /* == on <var13:nullable ALabel>*/;
9426 }
9427 if (var14){
9428 var15 = NULL;
9429 if (var_new_child == NULL) {
9430 var16 = 0; /* is null */
9431 } else {
9432 var16 = 1; /* arg is null and recv is not */
9433 }
9434 if (var16){
9435 ((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)>*/;
9436 /* <var_new_child:nullable ANode(ANode)> isa ALabel */
9437 cltype18 = type_parser_nodes__ALabel.color;
9438 idtype19 = type_parser_nodes__ALabel.id;
9439 if(cltype18 >= var_new_child->type->table_size) {
9440 var17 = 0;
9441 } else {
9442 var17 = var_new_child->type->type_table[cltype18] == idtype19;
9443 }
9444 if (!var17) {
9445 fprintf(stderr, "Runtime error: %s", "Assert failed");
9446 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4947);
9447 exit(1);
9448 }
9449 self->attrs[COLOR_parser_nodes__ALabelable___n_label].val = var_new_child; /* _n_label on <self:ADoExpr> */
9450 } else {
9451 var20 = NULL;
9452 self->attrs[COLOR_parser_nodes__ALabelable___n_label].val = var20; /* _n_label on <self:ADoExpr> */
9453 }
9454 goto RET_LABEL;
9455 } else {
9456 }
9457 RET_LABEL:;
9458 }
9459 /* method parser_prod#ADoExpr#replace_child for (self: Object, ANode, nullable ANode) */
9460 void VIRTUAL_parser_prod__ADoExpr__replace_child(val* self, val* p0, val* p1) {
9461 parser_prod__ADoExpr__replace_child(self, p0, p1);
9462 RET_LABEL:;
9463 }
9464 /* method parser_prod#ADoExpr#n_kwdo= for (self: ADoExpr, TKwdo) */
9465 void parser_prod__ADoExpr__n_kwdo_61d(val* self, val* p0) {
9466 val* var_node /* var node: TKwdo */;
9467 var_node = p0;
9468 self->attrs[COLOR_parser_nodes__ADoExpr___n_kwdo].val = var_node; /* _n_kwdo on <self:ADoExpr> */
9469 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TKwdo>*/;
9470 RET_LABEL:;
9471 }
9472 /* method parser_prod#ADoExpr#n_kwdo= for (self: Object, TKwdo) */
9473 void VIRTUAL_parser_prod__ADoExpr__n_kwdo_61d(val* self, val* p0) {
9474 parser_prod__ADoExpr__n_kwdo_61d(self, p0);
9475 RET_LABEL:;
9476 }
9477 /* method parser_prod#ADoExpr#n_block= for (self: ADoExpr, nullable AExpr) */
9478 void parser_prod__ADoExpr__n_block_61d(val* self, val* p0) {
9479 val* var_node /* var node: nullable AExpr */;
9480 val* var /* : null */;
9481 short int var1 /* : Bool */;
9482 var_node = p0;
9483 self->attrs[COLOR_parser_nodes__ADoExpr___n_block].val = var_node; /* _n_block on <self:ADoExpr> */
9484 var = NULL;
9485 if (var_node == NULL) {
9486 var1 = 0; /* is null */
9487 } else {
9488 var1 = 1; /* arg is null and recv is not */
9489 }
9490 if (var1){
9491 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable AExpr(AExpr)>*/;
9492 } else {
9493 }
9494 RET_LABEL:;
9495 }
9496 /* method parser_prod#ADoExpr#n_block= for (self: Object, nullable AExpr) */
9497 void VIRTUAL_parser_prod__ADoExpr__n_block_61d(val* self, val* p0) {
9498 parser_prod__ADoExpr__n_block_61d(self, p0);
9499 RET_LABEL:;
9500 }
9501 /* method parser_prod#ADoExpr#n_label= for (self: ADoExpr, nullable ALabel) */
9502 void parser_prod__ADoExpr__n_label_61d(val* self, val* p0) {
9503 val* var_node /* var node: nullable ALabel */;
9504 val* var /* : null */;
9505 short int var1 /* : Bool */;
9506 var_node = p0;
9507 self->attrs[COLOR_parser_nodes__ALabelable___n_label].val = var_node; /* _n_label on <self:ADoExpr> */
9508 var = NULL;
9509 if (var_node == NULL) {
9510 var1 = 0; /* is null */
9511 } else {
9512 var1 = 1; /* arg is null and recv is not */
9513 }
9514 if (var1){
9515 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable ALabel(ALabel)>*/;
9516 } else {
9517 }
9518 RET_LABEL:;
9519 }
9520 /* method parser_prod#ADoExpr#n_label= for (self: Object, nullable ALabel) */
9521 void VIRTUAL_parser_prod__ADoExpr__n_label_61d(val* self, val* p0) {
9522 parser_prod__ADoExpr__n_label_61d(self, p0);
9523 RET_LABEL:;
9524 }
9525 /* method parser_prod#ADoExpr#visit_all for (self: ADoExpr, Visitor) */
9526 void parser_prod__ADoExpr__visit_all(val* self, val* p0) {
9527 val* var_v /* var v: Visitor */;
9528 val* var /* : TKwdo */;
9529 val* var1 /* : nullable AExpr */;
9530 val* var2 /* : null */;
9531 short int var3 /* : Bool */;
9532 val* var4 /* : nullable AExpr */;
9533 val* var5 /* : nullable ALabel */;
9534 val* var6 /* : null */;
9535 short int var7 /* : Bool */;
9536 val* var8 /* : nullable ALabel */;
9537 var_v = p0;
9538 var = self->attrs[COLOR_parser_nodes__ADoExpr___n_kwdo].val; /* _n_kwdo on <self:ADoExpr> */
9539 if (var == NULL) {
9540 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwdo");
9541 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4979);
9542 exit(1);
9543 }
9544 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
9545 var1 = self->attrs[COLOR_parser_nodes__ADoExpr___n_block].val; /* _n_block on <self:ADoExpr> */
9546 var2 = NULL;
9547 if (var1 == NULL) {
9548 var3 = 0; /* is null */
9549 } else {
9550 var3 = 1; /* arg is null and recv is not */
9551 }
9552 if (var3){
9553 var4 = self->attrs[COLOR_parser_nodes__ADoExpr___n_block].val; /* _n_block on <self:ADoExpr> */
9554 if (var4 == NULL) {
9555 fprintf(stderr, "Runtime error: %s", "Cast failed");
9556 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4981);
9557 exit(1);
9558 }
9559 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var4) /* enter_visit on <var_v:Visitor>*/;
9560 } else {
9561 }
9562 var5 = self->attrs[COLOR_parser_nodes__ALabelable___n_label].val; /* _n_label on <self:ADoExpr> */
9563 var6 = NULL;
9564 if (var5 == NULL) {
9565 var7 = 0; /* is null */
9566 } else {
9567 var7 = 1; /* arg is null and recv is not */
9568 }
9569 if (var7){
9570 var8 = self->attrs[COLOR_parser_nodes__ALabelable___n_label].val; /* _n_label on <self:ADoExpr> */
9571 if (var8 == NULL) {
9572 fprintf(stderr, "Runtime error: %s", "Cast failed");
9573 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4984);
9574 exit(1);
9575 }
9576 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var8) /* enter_visit on <var_v:Visitor>*/;
9577 } else {
9578 }
9579 RET_LABEL:;
9580 }
9581 /* method parser_prod#ADoExpr#visit_all for (self: Object, Visitor) */
9582 void VIRTUAL_parser_prod__ADoExpr__visit_all(val* self, val* p0) {
9583 parser_prod__ADoExpr__visit_all(self, p0);
9584 RET_LABEL:;
9585 }
9586 /* method parser_prod#AIfExpr#empty_init for (self: AIfExpr) */
9587 void parser_prod__AIfExpr__empty_init(val* self) {
9588 RET_LABEL:;
9589 }
9590 /* method parser_prod#AIfExpr#empty_init for (self: Object) */
9591 void VIRTUAL_parser_prod__AIfExpr__empty_init(val* self) {
9592 parser_prod__AIfExpr__empty_init(self);
9593 RET_LABEL:;
9594 }
9595 /* method parser_prod#AIfExpr#init_aifexpr for (self: AIfExpr, nullable TKwif, nullable AExpr, nullable AExpr, nullable AExpr) */
9596 void parser_prod__AIfExpr__init_aifexpr(val* self, val* p0, val* p1, val* p2, val* p3) {
9597 val* var_n_kwif /* var n_kwif: nullable TKwif */;
9598 val* var_n_expr /* var n_expr: nullable AExpr */;
9599 val* var_n_then /* var n_then: nullable AExpr */;
9600 val* var_n_else /* var n_else: nullable AExpr */;
9601 val* var /* : null */;
9602 short int var1 /* : Bool */;
9603 val* var2 /* : null */;
9604 short int var3 /* : Bool */;
9605 var_n_kwif = p0;
9606 var_n_expr = p1;
9607 var_n_then = p2;
9608 var_n_else = p3;
9609 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__AIfExpr__empty_init]))(self) /* empty_init on <self:AIfExpr>*/;
9610 if (var_n_kwif == NULL) {
9611 fprintf(stderr, "Runtime error: %s", "Cast failed");
9612 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 4999);
9613 exit(1);
9614 }
9615 self->attrs[COLOR_parser_nodes__AIfExpr___n_kwif].val = var_n_kwif; /* _n_kwif on <self:AIfExpr> */
9616 if (var_n_kwif == NULL) {
9617 fprintf(stderr, "Runtime error: %s", "Reciever is null");
9618 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5000);
9619 exit(1);
9620 } else {
9621 ((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>*/;
9622 }
9623 if (var_n_expr == NULL) {
9624 fprintf(stderr, "Runtime error: %s", "Cast failed");
9625 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5001);
9626 exit(1);
9627 }
9628 self->attrs[COLOR_parser_nodes__AIfExpr___n_expr].val = var_n_expr; /* _n_expr on <self:AIfExpr> */
9629 if (var_n_expr == NULL) {
9630 fprintf(stderr, "Runtime error: %s", "Reciever is null");
9631 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5002);
9632 exit(1);
9633 } else {
9634 ((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>*/;
9635 }
9636 self->attrs[COLOR_parser_nodes__AIfExpr___n_then].val = var_n_then; /* _n_then on <self:AIfExpr> */
9637 var = NULL;
9638 if (var_n_then == NULL) {
9639 var1 = 0; /* is null */
9640 } else {
9641 var1 = 1; /* arg is null and recv is not */
9642 }
9643 if (var1){
9644 ((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)>*/;
9645 } else {
9646 }
9647 self->attrs[COLOR_parser_nodes__AIfExpr___n_else].val = var_n_else; /* _n_else on <self:AIfExpr> */
9648 var2 = NULL;
9649 if (var_n_else == NULL) {
9650 var3 = 0; /* is null */
9651 } else {
9652 var3 = 1; /* arg is null and recv is not */
9653 }
9654 if (var3){
9655 ((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)>*/;
9656 } else {
9657 }
9658 RET_LABEL:;
9659 }
9660 /* method parser_prod#AIfExpr#init_aifexpr for (self: Object, nullable TKwif, nullable AExpr, nullable AExpr, nullable AExpr) */
9661 void VIRTUAL_parser_prod__AIfExpr__init_aifexpr(val* self, val* p0, val* p1, val* p2, val* p3) {
9662 parser_prod__AIfExpr__init_aifexpr(self, p0, p1, p2, p3);
9663 RET_LABEL:;
9664 }
9665 /* method parser_prod#AIfExpr#replace_child for (self: AIfExpr, ANode, nullable ANode) */
9666 void parser_prod__AIfExpr__replace_child(val* self, val* p0, val* p1) {
9667 val* var_old_child /* var old_child: ANode */;
9668 val* var_new_child /* var new_child: nullable ANode */;
9669 val* var /* : TKwif */;
9670 short int var1 /* : Bool */;
9671 val* var2 /* : null */;
9672 short int var3 /* : Bool */;
9673 short int var4 /* : Bool */;
9674 int cltype;
9675 int idtype;
9676 val* var5 /* : AExpr */;
9677 short int var6 /* : Bool */;
9678 val* var7 /* : null */;
9679 short int var8 /* : Bool */;
9680 short int var9 /* : Bool */;
9681 int cltype10;
9682 int idtype11;
9683 val* var12 /* : nullable AExpr */;
9684 short int var13 /* : Bool */;
9685 val* var14 /* : null */;
9686 short int var15 /* : Bool */;
9687 short int var16 /* : Bool */;
9688 int cltype17;
9689 int idtype18;
9690 val* var19 /* : null */;
9691 val* var20 /* : nullable AExpr */;
9692 short int var21 /* : Bool */;
9693 val* var22 /* : null */;
9694 short int var23 /* : Bool */;
9695 short int var24 /* : Bool */;
9696 int cltype25;
9697 int idtype26;
9698 val* var27 /* : null */;
9699 var_old_child = p0;
9700 var_new_child = p1;
9701 var = self->attrs[COLOR_parser_nodes__AIfExpr___n_kwif].val; /* _n_kwif on <self:AIfExpr> */
9702 if (var == NULL) {
9703 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwif");
9704 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5015);
9705 exit(1);
9706 }
9707 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:TKwif>*/;
9708 if (var1){
9709 var2 = NULL;
9710 if (var_new_child == NULL) {
9711 var3 = 0; /* is null */
9712 } else {
9713 var3 = 1; /* arg is null and recv is not */
9714 }
9715 if (var3){
9716 ((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)>*/;
9717 /* <var_new_child:nullable ANode(ANode)> isa TKwif */
9718 cltype = type_parser_nodes__TKwif.color;
9719 idtype = type_parser_nodes__TKwif.id;
9720 if(cltype >= var_new_child->type->table_size) {
9721 var4 = 0;
9722 } else {
9723 var4 = var_new_child->type->type_table[cltype] == idtype;
9724 }
9725 if (!var4) {
9726 fprintf(stderr, "Runtime error: %s", "Assert failed");
9727 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5018);
9728 exit(1);
9729 }
9730 self->attrs[COLOR_parser_nodes__AIfExpr___n_kwif].val = var_new_child; /* _n_kwif on <self:AIfExpr> */
9731 } else {
9732 fprintf(stderr, "Runtime error: %s", "Aborted");
9733 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5021);
9734 exit(1);
9735 }
9736 goto RET_LABEL;
9737 } else {
9738 }
9739 var5 = self->attrs[COLOR_parser_nodes__AIfExpr___n_expr].val; /* _n_expr on <self:AIfExpr> */
9740 if (var5 == NULL) {
9741 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_expr");
9742 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5025);
9743 exit(1);
9744 }
9745 var6 = ((short int (*)(val*, val*))(var5->class->vft[COLOR_kernel__Object___61d_61d]))(var5, var_old_child) /* == on <var5:AExpr>*/;
9746 if (var6){
9747 var7 = NULL;
9748 if (var_new_child == NULL) {
9749 var8 = 0; /* is null */
9750 } else {
9751 var8 = 1; /* arg is null and recv is not */
9752 }
9753 if (var8){
9754 ((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)>*/;
9755 /* <var_new_child:nullable ANode(ANode)> isa AExpr */
9756 cltype10 = type_parser_nodes__AExpr.color;
9757 idtype11 = type_parser_nodes__AExpr.id;
9758 if(cltype10 >= var_new_child->type->table_size) {
9759 var9 = 0;
9760 } else {
9761 var9 = var_new_child->type->type_table[cltype10] == idtype11;
9762 }
9763 if (!var9) {
9764 fprintf(stderr, "Runtime error: %s", "Assert failed");
9765 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5028);
9766 exit(1);
9767 }
9768 self->attrs[COLOR_parser_nodes__AIfExpr___n_expr].val = var_new_child; /* _n_expr on <self:AIfExpr> */
9769 } else {
9770 fprintf(stderr, "Runtime error: %s", "Aborted");
9771 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5031);
9772 exit(1);
9773 }
9774 goto RET_LABEL;
9775 } else {
9776 }
9777 var12 = self->attrs[COLOR_parser_nodes__AIfExpr___n_then].val; /* _n_then on <self:AIfExpr> */
9778 if (var12 == NULL) {
9779 var13 = 0; /* <var_old_child:ANode> cannot be null */
9780 } else {
9781 var13 = ((short int (*)(val*, val*))(var12->class->vft[COLOR_kernel__Object___61d_61d]))(var12, var_old_child) /* == on <var12:nullable AExpr>*/;
9782 }
9783 if (var13){
9784 var14 = NULL;
9785 if (var_new_child == NULL) {
9786 var15 = 0; /* is null */
9787 } else {
9788 var15 = 1; /* arg is null and recv is not */
9789 }
9790 if (var15){
9791 ((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)>*/;
9792 /* <var_new_child:nullable ANode(ANode)> isa AExpr */
9793 cltype17 = type_parser_nodes__AExpr.color;
9794 idtype18 = type_parser_nodes__AExpr.id;
9795 if(cltype17 >= var_new_child->type->table_size) {
9796 var16 = 0;
9797 } else {
9798 var16 = var_new_child->type->type_table[cltype17] == idtype18;
9799 }
9800 if (!var16) {
9801 fprintf(stderr, "Runtime error: %s", "Assert failed");
9802 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5038);
9803 exit(1);
9804 }
9805 self->attrs[COLOR_parser_nodes__AIfExpr___n_then].val = var_new_child; /* _n_then on <self:AIfExpr> */
9806 } else {
9807 var19 = NULL;
9808 self->attrs[COLOR_parser_nodes__AIfExpr___n_then].val = var19; /* _n_then on <self:AIfExpr> */
9809 }
9810 goto RET_LABEL;
9811 } else {
9812 }
9813 var20 = self->attrs[COLOR_parser_nodes__AIfExpr___n_else].val; /* _n_else on <self:AIfExpr> */
9814 if (var20 == NULL) {
9815 var21 = 0; /* <var_old_child:ANode> cannot be null */
9816 } else {
9817 var21 = ((short int (*)(val*, val*))(var20->class->vft[COLOR_kernel__Object___61d_61d]))(var20, var_old_child) /* == on <var20:nullable AExpr>*/;
9818 }
9819 if (var21){
9820 var22 = NULL;
9821 if (var_new_child == NULL) {
9822 var23 = 0; /* is null */
9823 } else {
9824 var23 = 1; /* arg is null and recv is not */
9825 }
9826 if (var23){
9827 ((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)>*/;
9828 /* <var_new_child:nullable ANode(ANode)> isa AExpr */
9829 cltype25 = type_parser_nodes__AExpr.color;
9830 idtype26 = type_parser_nodes__AExpr.id;
9831 if(cltype25 >= var_new_child->type->table_size) {
9832 var24 = 0;
9833 } else {
9834 var24 = var_new_child->type->type_table[cltype25] == idtype26;
9835 }
9836 if (!var24) {
9837 fprintf(stderr, "Runtime error: %s", "Assert failed");
9838 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5048);
9839 exit(1);
9840 }
9841 self->attrs[COLOR_parser_nodes__AIfExpr___n_else].val = var_new_child; /* _n_else on <self:AIfExpr> */
9842 } else {
9843 var27 = NULL;
9844 self->attrs[COLOR_parser_nodes__AIfExpr___n_else].val = var27; /* _n_else on <self:AIfExpr> */
9845 }
9846 goto RET_LABEL;
9847 } else {
9848 }
9849 RET_LABEL:;
9850 }
9851 /* method parser_prod#AIfExpr#replace_child for (self: Object, ANode, nullable ANode) */
9852 void VIRTUAL_parser_prod__AIfExpr__replace_child(val* self, val* p0, val* p1) {
9853 parser_prod__AIfExpr__replace_child(self, p0, p1);
9854 RET_LABEL:;
9855 }
9856 /* method parser_prod#AIfExpr#n_kwif= for (self: AIfExpr, TKwif) */
9857 void parser_prod__AIfExpr__n_kwif_61d(val* self, val* p0) {
9858 val* var_node /* var node: TKwif */;
9859 var_node = p0;
9860 self->attrs[COLOR_parser_nodes__AIfExpr___n_kwif].val = var_node; /* _n_kwif on <self:AIfExpr> */
9861 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TKwif>*/;
9862 RET_LABEL:;
9863 }
9864 /* method parser_prod#AIfExpr#n_kwif= for (self: Object, TKwif) */
9865 void VIRTUAL_parser_prod__AIfExpr__n_kwif_61d(val* self, val* p0) {
9866 parser_prod__AIfExpr__n_kwif_61d(self, p0);
9867 RET_LABEL:;
9868 }
9869 /* method parser_prod#AIfExpr#n_expr= for (self: AIfExpr, AExpr) */
9870 void parser_prod__AIfExpr__n_expr_61d(val* self, val* p0) {
9871 val* var_node /* var node: AExpr */;
9872 var_node = p0;
9873 self->attrs[COLOR_parser_nodes__AIfExpr___n_expr].val = var_node; /* _n_expr on <self:AIfExpr> */
9874 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:AExpr>*/;
9875 RET_LABEL:;
9876 }
9877 /* method parser_prod#AIfExpr#n_expr= for (self: Object, AExpr) */
9878 void VIRTUAL_parser_prod__AIfExpr__n_expr_61d(val* self, val* p0) {
9879 parser_prod__AIfExpr__n_expr_61d(self, p0);
9880 RET_LABEL:;
9881 }
9882 /* method parser_prod#AIfExpr#n_then= for (self: AIfExpr, nullable AExpr) */
9883 void parser_prod__AIfExpr__n_then_61d(val* self, val* p0) {
9884 val* var_node /* var node: nullable AExpr */;
9885 val* var /* : null */;
9886 short int var1 /* : Bool */;
9887 var_node = p0;
9888 self->attrs[COLOR_parser_nodes__AIfExpr___n_then].val = var_node; /* _n_then on <self:AIfExpr> */
9889 var = NULL;
9890 if (var_node == NULL) {
9891 var1 = 0; /* is null */
9892 } else {
9893 var1 = 1; /* arg is null and recv is not */
9894 }
9895 if (var1){
9896 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable AExpr(AExpr)>*/;
9897 } else {
9898 }
9899 RET_LABEL:;
9900 }
9901 /* method parser_prod#AIfExpr#n_then= for (self: Object, nullable AExpr) */
9902 void VIRTUAL_parser_prod__AIfExpr__n_then_61d(val* self, val* p0) {
9903 parser_prod__AIfExpr__n_then_61d(self, p0);
9904 RET_LABEL:;
9905 }
9906 /* method parser_prod#AIfExpr#n_else= for (self: AIfExpr, nullable AExpr) */
9907 void parser_prod__AIfExpr__n_else_61d(val* self, val* p0) {
9908 val* var_node /* var node: nullable AExpr */;
9909 val* var /* : null */;
9910 short int var1 /* : Bool */;
9911 var_node = p0;
9912 self->attrs[COLOR_parser_nodes__AIfExpr___n_else].val = var_node; /* _n_else on <self:AIfExpr> */
9913 var = NULL;
9914 if (var_node == NULL) {
9915 var1 = 0; /* is null */
9916 } else {
9917 var1 = 1; /* arg is null and recv is not */
9918 }
9919 if (var1){
9920 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable AExpr(AExpr)>*/;
9921 } else {
9922 }
9923 RET_LABEL:;
9924 }
9925 /* method parser_prod#AIfExpr#n_else= for (self: Object, nullable AExpr) */
9926 void VIRTUAL_parser_prod__AIfExpr__n_else_61d(val* self, val* p0) {
9927 parser_prod__AIfExpr__n_else_61d(self, p0);
9928 RET_LABEL:;
9929 }
9930 /* method parser_prod#AIfExpr#visit_all for (self: AIfExpr, Visitor) */
9931 void parser_prod__AIfExpr__visit_all(val* self, val* p0) {
9932 val* var_v /* var v: Visitor */;
9933 val* var /* : TKwif */;
9934 val* var1 /* : AExpr */;
9935 val* var2 /* : nullable AExpr */;
9936 val* var3 /* : null */;
9937 short int var4 /* : Bool */;
9938 val* var5 /* : nullable AExpr */;
9939 val* var6 /* : nullable AExpr */;
9940 val* var7 /* : null */;
9941 short int var8 /* : Bool */;
9942 val* var9 /* : nullable AExpr */;
9943 var_v = p0;
9944 var = self->attrs[COLOR_parser_nodes__AIfExpr___n_kwif].val; /* _n_kwif on <self:AIfExpr> */
9945 if (var == NULL) {
9946 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_kwif");
9947 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5085);
9948 exit(1);
9949 }
9950 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
9951 var1 = self->attrs[COLOR_parser_nodes__AIfExpr___n_expr].val; /* _n_expr on <self:AIfExpr> */
9952 if (var1 == NULL) {
9953 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_expr");
9954 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5086);
9955 exit(1);
9956 }
9957 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var1) /* enter_visit on <var_v:Visitor>*/;
9958 var2 = self->attrs[COLOR_parser_nodes__AIfExpr___n_then].val; /* _n_then on <self:AIfExpr> */
9959 var3 = NULL;
9960 if (var2 == NULL) {
9961 var4 = 0; /* is null */
9962 } else {
9963 var4 = 1; /* arg is null and recv is not */
9964 }
9965 if (var4){
9966 var5 = self->attrs[COLOR_parser_nodes__AIfExpr___n_then].val; /* _n_then on <self:AIfExpr> */
9967 if (var5 == NULL) {
9968 fprintf(stderr, "Runtime error: %s", "Cast failed");
9969 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5088);
9970 exit(1);
9971 }
9972 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var5) /* enter_visit on <var_v:Visitor>*/;
9973 } else {
9974 }
9975 var6 = self->attrs[COLOR_parser_nodes__AIfExpr___n_else].val; /* _n_else on <self:AIfExpr> */
9976 var7 = NULL;
9977 if (var6 == NULL) {
9978 var8 = 0; /* is null */
9979 } else {
9980 var8 = 1; /* arg is null and recv is not */
9981 }
9982 if (var8){
9983 var9 = self->attrs[COLOR_parser_nodes__AIfExpr___n_else].val; /* _n_else on <self:AIfExpr> */
9984 if (var9 == NULL) {
9985 fprintf(stderr, "Runtime error: %s", "Cast failed");
9986 fprintf(stderr, " (%s:%d)\n", "src/parser/parser_prod.nit", 5091);
9987 exit(1);
9988 }
9989 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var9) /* enter_visit on <var_v:Visitor>*/;
9990 } else {
9991 }
9992 RET_LABEL:;
9993 }
9994 /* method parser_prod#AIfExpr#visit_all for (self: Object, Visitor) */
9995 void VIRTUAL_parser_prod__AIfExpr__visit_all(val* self, val* p0) {
9996 parser_prod__AIfExpr__visit_all(self, p0);
9997 RET_LABEL:;
9998 }