use nitg to bootstrap; drop bootstrap of nitc
[nit.git] / c_src / parser_prod.sep.5.c
1 #include "parser_prod.sep.0.h"
2 /* method parser_prod#AModuleName#replace_child for (self: AModuleName, ANode, nullable ANode) */
3 void parser_prod__AModuleName__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 TQuad */;
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 /* : Range[Int] */;
15 long var7 /* : Int */;
16 val* var8 /* : ANodes[TId] */;
17 long var9 /* : Int */;
18 val* var10 /* : Discrete */;
19 val* var11 /* : Discrete */;
20 val* var12 /* : Iterator[nullable Object] */;
21 short int var13 /* : Bool */;
22 val* var14 /* : nullable Object */;
23 long var_i /* var i: Int */;
24 long var15 /* : Int */;
25 val* var16 /* : ANodes[TId] */;
26 val* var17 /* : nullable Object */;
27 short int var18 /* : Bool */;
28 val* var19 /* : null */;
29 short int var20 /* : Bool */;
30 short int var21 /* : Bool */;
31 int cltype22;
32 int idtype23;
33 val* var24 /* : ANodes[TId] */;
34 val* var25 /* : ANodes[TId] */;
35 val* var26 /* : TId */;
36 short int var27 /* : Bool */;
37 val* var28 /* : null */;
38 short int var29 /* : Bool */;
39 short int var30 /* : Bool */;
40 int cltype31;
41 int idtype32;
42 var_old_child = p0;
43 var_new_child = p1;
44 var = self->attrs[COLOR_parser_nodes__AModuleName___n_quad].val; /* _n_quad on <self:AModuleName> */
45 if (var == NULL) {
46 var1 = 0; /* <var_old_child:ANode> cannot be null */
47 } else {
48 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:nullable TQuad>*/;
49 }
50 if (var1){
51 var2 = NULL;
52 if (var_new_child == NULL) {
53 var3 = 0; /* is null */
54 } else {
55 var3 = 1; /* arg is null and recv is not */
56 }
57 if (var3){
58 ((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)>*/;
59 /* <var_new_child:nullable ANode(ANode)> isa TQuad */
60 cltype = type_parser_nodes__TQuad.color;
61 idtype = type_parser_nodes__TQuad.id;
62 if(cltype >= var_new_child->type->table_size) {
63 var4 = 0;
64 } else {
65 var4 = var_new_child->type->type_table[cltype] == idtype;
66 }
67 if (!var4) {
68 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 10750);
69 exit(1);
70 }
71 self->attrs[COLOR_parser_nodes__AModuleName___n_quad].val = var_new_child; /* _n_quad on <self:AModuleName> */
72 } else {
73 var5 = NULL;
74 self->attrs[COLOR_parser_nodes__AModuleName___n_quad].val = var5; /* _n_quad on <self:AModuleName> */
75 }
76 goto RET_LABEL;
77 } else {
78 }
79 var6 = NEW_range__Range(&type_range__Rangekernel__Int);
80 var7 = 0;
81 var8 = self->attrs[COLOR_parser_nodes__AModuleName___n_path].val; /* _n_path on <self:AModuleName> */
82 if (var8 == NULL) {
83 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_path", "src/parser/parser_prod.nit", 10757);
84 exit(1);
85 }
86 var9 = ((long (*)(val*))(var8->class->vft[COLOR_abstract_collection__Collection__length]))(var8) /* length on <var8:ANodes[TId]>*/;
87 var10 = BOX_kernel__Int(var7); /* autobox from Int to Discrete */
88 var11 = BOX_kernel__Int(var9); /* autobox from Int to Discrete */
89 ((void (*)(val*, val*, val*))(var6->class->vft[COLOR_range__Range__without_last]))(var6, var10, var11) /* without_last on <var6:Range[Int]>*/;
90 CHECK_NEW_range__Range(var6);
91 var12 = ((val* (*)(val*))(var6->class->vft[COLOR_abstract_collection__Collection__iterator]))(var6) /* iterator on <var6:Range[Int]>*/;
92 for(;;) {
93 var13 = ((short int (*)(val*))(var12->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var12) /* is_ok on <var12:Iterator[nullable Object]>*/;
94 if(!var13) break;
95 var14 = ((val* (*)(val*))(var12->class->vft[COLOR_abstract_collection__Iterator__item]))(var12) /* item on <var12:Iterator[nullable Object]>*/;
96 var15 = ((struct instance_kernel__Int*)var14)->value; /* autounbox from nullable Object to Int */;
97 var_i = var15;
98 var16 = self->attrs[COLOR_parser_nodes__AModuleName___n_path].val; /* _n_path on <self:AModuleName> */
99 if (var16 == NULL) {
100 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_path", "src/parser/parser_prod.nit", 10758);
101 exit(1);
102 }
103 var17 = ((val* (*)(val*, long))(var16->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var16, var_i) /* [] on <var16:ANodes[TId]>*/;
104 var18 = ((short int (*)(val*, val*))(var17->class->vft[COLOR_kernel__Object___61d_61d]))(var17, var_old_child) /* == on <var17:nullable Object(TId)>*/;
105 if (var18){
106 var19 = NULL;
107 if (var_new_child == NULL) {
108 var20 = 0; /* is null */
109 } else {
110 var20 = 1; /* arg is null and recv is not */
111 }
112 if (var20){
113 /* <var_new_child:nullable ANode(ANode)> isa TId */
114 cltype22 = type_parser_nodes__TId.color;
115 idtype23 = type_parser_nodes__TId.id;
116 if(cltype22 >= var_new_child->type->table_size) {
117 var21 = 0;
118 } else {
119 var21 = var_new_child->type->type_table[cltype22] == idtype23;
120 }
121 if (!var21) {
122 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 10760);
123 exit(1);
124 }
125 var24 = self->attrs[COLOR_parser_nodes__AModuleName___n_path].val; /* _n_path on <self:AModuleName> */
126 if (var24 == NULL) {
127 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_path", "src/parser/parser_prod.nit", 10761);
128 exit(1);
129 }
130 ((void (*)(val*, long, val*))(var24->class->vft[COLOR_abstract_collection__Sequence___91d_93d_61d]))(var24, var_i, var_new_child) /* []= on <var24:ANodes[TId]>*/;
131 ((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(TId)>*/;
132 } else {
133 var25 = self->attrs[COLOR_parser_nodes__AModuleName___n_path].val; /* _n_path on <self:AModuleName> */
134 if (var25 == NULL) {
135 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_path", "src/parser/parser_prod.nit", 10764);
136 exit(1);
137 }
138 ((void (*)(val*, long))(var25->class->vft[COLOR_abstract_collection__Sequence__remove_at]))(var25, var_i) /* remove_at on <var25:ANodes[TId]>*/;
139 }
140 goto RET_LABEL;
141 } else {
142 }
143 CONTINUE_label: (void)0;
144 ((void (*)(val*))(var12->class->vft[COLOR_abstract_collection__Iterator__next]))(var12) /* next on <var12:Iterator[nullable Object]>*/;
145 }
146 BREAK_label: (void)0;
147 var26 = self->attrs[COLOR_parser_nodes__AModuleName___n_id].val; /* _n_id on <self:AModuleName> */
148 if (var26 == NULL) {
149 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_id", "src/parser/parser_prod.nit", 10769);
150 exit(1);
151 }
152 var27 = ((short int (*)(val*, val*))(var26->class->vft[COLOR_kernel__Object___61d_61d]))(var26, var_old_child) /* == on <var26:TId>*/;
153 if (var27){
154 var28 = NULL;
155 if (var_new_child == NULL) {
156 var29 = 0; /* is null */
157 } else {
158 var29 = 1; /* arg is null and recv is not */
159 }
160 if (var29){
161 ((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)>*/;
162 /* <var_new_child:nullable ANode(ANode)> isa TId */
163 cltype31 = type_parser_nodes__TId.color;
164 idtype32 = type_parser_nodes__TId.id;
165 if(cltype31 >= var_new_child->type->table_size) {
166 var30 = 0;
167 } else {
168 var30 = var_new_child->type->type_table[cltype31] == idtype32;
169 }
170 if (!var30) {
171 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 10772);
172 exit(1);
173 }
174 self->attrs[COLOR_parser_nodes__AModuleName___n_id].val = var_new_child; /* _n_id on <self:AModuleName> */
175 } else {
176 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser/parser_prod.nit", 10775);
177 exit(1);
178 }
179 goto RET_LABEL;
180 } else {
181 }
182 RET_LABEL:;
183 }
184 /* method parser_prod#AModuleName#replace_child for (self: Object, ANode, nullable ANode) */
185 void VIRTUAL_parser_prod__AModuleName__replace_child(val* self, val* p0, val* p1) {
186 parser_prod__AModuleName__replace_child(self, p0, p1);
187 RET_LABEL:;
188 }
189 /* method parser_prod#AModuleName#n_quad= for (self: AModuleName, nullable TQuad) */
190 void parser_prod__AModuleName__n_quad_61d(val* self, val* p0) {
191 val* var_node /* var node: nullable TQuad */;
192 val* var /* : null */;
193 short int var1 /* : Bool */;
194 var_node = p0;
195 self->attrs[COLOR_parser_nodes__AModuleName___n_quad].val = var_node; /* _n_quad on <self:AModuleName> */
196 var = NULL;
197 if (var_node == NULL) {
198 var1 = 0; /* is null */
199 } else {
200 var1 = 1; /* arg is null and recv is not */
201 }
202 if (var1){
203 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable TQuad(TQuad)>*/;
204 } else {
205 }
206 RET_LABEL:;
207 }
208 /* method parser_prod#AModuleName#n_quad= for (self: Object, nullable TQuad) */
209 void VIRTUAL_parser_prod__AModuleName__n_quad_61d(val* self, val* p0) {
210 parser_prod__AModuleName__n_quad_61d(self, p0);
211 RET_LABEL:;
212 }
213 /* method parser_prod#AModuleName#n_id= for (self: AModuleName, TId) */
214 void parser_prod__AModuleName__n_id_61d(val* self, val* p0) {
215 val* var_node /* var node: TId */;
216 var_node = p0;
217 self->attrs[COLOR_parser_nodes__AModuleName___n_id].val = var_node; /* _n_id on <self:AModuleName> */
218 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TId>*/;
219 RET_LABEL:;
220 }
221 /* method parser_prod#AModuleName#n_id= for (self: Object, TId) */
222 void VIRTUAL_parser_prod__AModuleName__n_id_61d(val* self, val* p0) {
223 parser_prod__AModuleName__n_id_61d(self, p0);
224 RET_LABEL:;
225 }
226 /* method parser_prod#AModuleName#visit_all for (self: AModuleName, Visitor) */
227 void parser_prod__AModuleName__visit_all(val* self, val* p0) {
228 val* var_v /* var v: Visitor */;
229 val* var /* : nullable TQuad */;
230 val* var1 /* : null */;
231 short int var2 /* : Bool */;
232 val* var3 /* : nullable TQuad */;
233 val* var4 /* : ANodes[TId] */;
234 val* var5 /* : Iterator[nullable Object] */;
235 short int var6 /* : Bool */;
236 val* var7 /* : nullable Object */;
237 val* var_n /* var n: TId */;
238 val* var8 /* : TId */;
239 var_v = p0;
240 var = self->attrs[COLOR_parser_nodes__AModuleName___n_quad].val; /* _n_quad on <self:AModuleName> */
241 var1 = NULL;
242 if (var == NULL) {
243 var2 = 0; /* is null */
244 } else {
245 var2 = 1; /* arg is null and recv is not */
246 }
247 if (var2){
248 var3 = self->attrs[COLOR_parser_nodes__AModuleName___n_quad].val; /* _n_quad on <self:AModuleName> */
249 if (var3 == NULL) {
250 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 10798);
251 exit(1);
252 }
253 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var3) /* enter_visit on <var_v:Visitor>*/;
254 } else {
255 }
256 var4 = self->attrs[COLOR_parser_nodes__AModuleName___n_path].val; /* _n_path on <self:AModuleName> */
257 if (var4 == NULL) {
258 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_path", "src/parser/parser_prod.nit", 10800);
259 exit(1);
260 }
261 var5 = ((val* (*)(val*))(var4->class->vft[COLOR_abstract_collection__Collection__iterator]))(var4) /* iterator on <var4:ANodes[TId]>*/;
262 for(;;) {
263 var6 = ((short int (*)(val*))(var5->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var5) /* is_ok on <var5:Iterator[nullable Object]>*/;
264 if(!var6) break;
265 var7 = ((val* (*)(val*))(var5->class->vft[COLOR_abstract_collection__Iterator__item]))(var5) /* item on <var5:Iterator[nullable Object]>*/;
266 var_n = var7;
267 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var_n) /* enter_visit on <var_v:Visitor>*/;
268 CONTINUE_label: (void)0;
269 ((void (*)(val*))(var5->class->vft[COLOR_abstract_collection__Iterator__next]))(var5) /* next on <var5:Iterator[nullable Object]>*/;
270 }
271 BREAK_label: (void)0;
272 var8 = self->attrs[COLOR_parser_nodes__AModuleName___n_id].val; /* _n_id on <self:AModuleName> */
273 if (var8 == NULL) {
274 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_id", "src/parser/parser_prod.nit", 10803);
275 exit(1);
276 }
277 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var8) /* enter_visit on <var_v:Visitor>*/;
278 RET_LABEL:;
279 }
280 /* method parser_prod#AModuleName#visit_all for (self: Object, Visitor) */
281 void VIRTUAL_parser_prod__AModuleName__visit_all(val* self, val* p0) {
282 parser_prod__AModuleName__visit_all(self, p0);
283 RET_LABEL:;
284 }
285 /* method parser_prod#AExternCalls#empty_init for (self: AExternCalls) */
286 void parser_prod__AExternCalls__empty_init(val* self) {
287 RET_LABEL:;
288 }
289 /* method parser_prod#AExternCalls#empty_init for (self: Object) */
290 void VIRTUAL_parser_prod__AExternCalls__empty_init(val* self) {
291 parser_prod__AExternCalls__empty_init(self);
292 RET_LABEL:;
293 }
294 /* method parser_prod#AExternCalls#init_aexterncalls for (self: AExternCalls, nullable TKwimport, Collection[Object]) */
295 void parser_prod__AExternCalls__init_aexterncalls(val* self, val* p0, val* p1) {
296 val* var_n_kwimport /* var n_kwimport: nullable TKwimport */;
297 val* var_n_extern_calls /* var n_extern_calls: Collection[Object] */;
298 val* var /* : Iterator[nullable Object] */;
299 short int var1 /* : Bool */;
300 val* var2 /* : nullable Object */;
301 val* var_n /* var n: Object */;
302 short int var3 /* : Bool */;
303 int cltype;
304 int idtype;
305 val* var4 /* : ANodes[AExternCall] */;
306 var_n_kwimport = p0;
307 var_n_extern_calls = p1;
308 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__AExternCalls__empty_init]))(self) /* empty_init on <self:AExternCalls>*/;
309 if (var_n_kwimport == NULL) {
310 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 10815);
311 exit(1);
312 }
313 self->attrs[COLOR_parser_nodes__AExternCalls___n_kwimport].val = var_n_kwimport; /* _n_kwimport on <self:AExternCalls> */
314 if (var_n_kwimport == NULL) {
315 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_prod.nit", 10816);
316 exit(1);
317 } else {
318 ((void (*)(val*, val*))(var_n_kwimport->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_kwimport, self) /* parent= on <var_n_kwimport:nullable TKwimport>*/;
319 }
320 var = ((val* (*)(val*))(var_n_extern_calls->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_n_extern_calls) /* iterator on <var_n_extern_calls:Collection[Object]>*/;
321 for(;;) {
322 var1 = ((short int (*)(val*))(var->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var) /* is_ok on <var:Iterator[nullable Object]>*/;
323 if(!var1) break;
324 var2 = ((val* (*)(val*))(var->class->vft[COLOR_abstract_collection__Iterator__item]))(var) /* item on <var:Iterator[nullable Object]>*/;
325 var_n = var2;
326 /* <var_n:Object> isa AExternCall */
327 cltype = type_parser_nodes__AExternCall.color;
328 idtype = type_parser_nodes__AExternCall.id;
329 if(cltype >= var_n->type->table_size) {
330 var3 = 0;
331 } else {
332 var3 = var_n->type->type_table[cltype] == idtype;
333 }
334 if (!var3) {
335 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 10818);
336 exit(1);
337 }
338 var4 = self->attrs[COLOR_parser_nodes__AExternCalls___n_extern_calls].val; /* _n_extern_calls on <self:AExternCalls> */
339 if (var4 == NULL) {
340 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_extern_calls", "src/parser/parser_prod.nit", 10819);
341 exit(1);
342 }
343 ((void (*)(val*, val*))(var4->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var4, var_n) /* add on <var4:ANodes[AExternCall]>*/;
344 ((void (*)(val*, val*))(var_n->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n, self) /* parent= on <var_n:Object(AExternCall)>*/;
345 CONTINUE_label: (void)0;
346 ((void (*)(val*))(var->class->vft[COLOR_abstract_collection__Iterator__next]))(var) /* next on <var:Iterator[nullable Object]>*/;
347 }
348 BREAK_label: (void)0;
349 RET_LABEL:;
350 }
351 /* method parser_prod#AExternCalls#init_aexterncalls for (self: Object, nullable TKwimport, Collection[Object]) */
352 void VIRTUAL_parser_prod__AExternCalls__init_aexterncalls(val* self, val* p0, val* p1) {
353 parser_prod__AExternCalls__init_aexterncalls(self, p0, p1);
354 RET_LABEL:;
355 }
356 /* method parser_prod#AExternCalls#replace_child for (self: AExternCalls, ANode, nullable ANode) */
357 void parser_prod__AExternCalls__replace_child(val* self, val* p0, val* p1) {
358 val* var_old_child /* var old_child: ANode */;
359 val* var_new_child /* var new_child: nullable ANode */;
360 val* var /* : TKwimport */;
361 short int var1 /* : Bool */;
362 val* var2 /* : null */;
363 short int var3 /* : Bool */;
364 short int var4 /* : Bool */;
365 int cltype;
366 int idtype;
367 val* var5 /* : Range[Int] */;
368 long var6 /* : Int */;
369 val* var7 /* : ANodes[AExternCall] */;
370 long var8 /* : Int */;
371 val* var9 /* : Discrete */;
372 val* var10 /* : Discrete */;
373 val* var11 /* : Iterator[nullable Object] */;
374 short int var12 /* : Bool */;
375 val* var13 /* : nullable Object */;
376 long var_i /* var i: Int */;
377 long var14 /* : Int */;
378 val* var15 /* : ANodes[AExternCall] */;
379 val* var16 /* : nullable Object */;
380 short int var17 /* : Bool */;
381 val* var18 /* : null */;
382 short int var19 /* : Bool */;
383 short int var20 /* : Bool */;
384 int cltype21;
385 int idtype22;
386 val* var23 /* : ANodes[AExternCall] */;
387 val* var24 /* : ANodes[AExternCall] */;
388 var_old_child = p0;
389 var_new_child = p1;
390 var = self->attrs[COLOR_parser_nodes__AExternCalls___n_kwimport].val; /* _n_kwimport on <self:AExternCalls> */
391 if (var == NULL) {
392 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwimport", "src/parser/parser_prod.nit", 10826);
393 exit(1);
394 }
395 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:TKwimport>*/;
396 if (var1){
397 var2 = NULL;
398 if (var_new_child == NULL) {
399 var3 = 0; /* is null */
400 } else {
401 var3 = 1; /* arg is null and recv is not */
402 }
403 if (var3){
404 ((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)>*/;
405 /* <var_new_child:nullable ANode(ANode)> isa TKwimport */
406 cltype = type_parser_nodes__TKwimport.color;
407 idtype = type_parser_nodes__TKwimport.id;
408 if(cltype >= var_new_child->type->table_size) {
409 var4 = 0;
410 } else {
411 var4 = var_new_child->type->type_table[cltype] == idtype;
412 }
413 if (!var4) {
414 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 10829);
415 exit(1);
416 }
417 self->attrs[COLOR_parser_nodes__AExternCalls___n_kwimport].val = var_new_child; /* _n_kwimport on <self:AExternCalls> */
418 } else {
419 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser/parser_prod.nit", 10832);
420 exit(1);
421 }
422 goto RET_LABEL;
423 } else {
424 }
425 var5 = NEW_range__Range(&type_range__Rangekernel__Int);
426 var6 = 0;
427 var7 = self->attrs[COLOR_parser_nodes__AExternCalls___n_extern_calls].val; /* _n_extern_calls on <self:AExternCalls> */
428 if (var7 == NULL) {
429 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_extern_calls", "src/parser/parser_prod.nit", 10836);
430 exit(1);
431 }
432 var8 = ((long (*)(val*))(var7->class->vft[COLOR_abstract_collection__Collection__length]))(var7) /* length on <var7:ANodes[AExternCall]>*/;
433 var9 = BOX_kernel__Int(var6); /* autobox from Int to Discrete */
434 var10 = BOX_kernel__Int(var8); /* autobox from Int to Discrete */
435 ((void (*)(val*, val*, val*))(var5->class->vft[COLOR_range__Range__without_last]))(var5, var9, var10) /* without_last on <var5:Range[Int]>*/;
436 CHECK_NEW_range__Range(var5);
437 var11 = ((val* (*)(val*))(var5->class->vft[COLOR_abstract_collection__Collection__iterator]))(var5) /* iterator on <var5:Range[Int]>*/;
438 for(;;) {
439 var12 = ((short int (*)(val*))(var11->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var11) /* is_ok on <var11:Iterator[nullable Object]>*/;
440 if(!var12) break;
441 var13 = ((val* (*)(val*))(var11->class->vft[COLOR_abstract_collection__Iterator__item]))(var11) /* item on <var11:Iterator[nullable Object]>*/;
442 var14 = ((struct instance_kernel__Int*)var13)->value; /* autounbox from nullable Object to Int */;
443 var_i = var14;
444 var15 = self->attrs[COLOR_parser_nodes__AExternCalls___n_extern_calls].val; /* _n_extern_calls on <self:AExternCalls> */
445 if (var15 == NULL) {
446 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_extern_calls", "src/parser/parser_prod.nit", 10837);
447 exit(1);
448 }
449 var16 = ((val* (*)(val*, long))(var15->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var15, var_i) /* [] on <var15:ANodes[AExternCall]>*/;
450 var17 = ((short int (*)(val*, val*))(var16->class->vft[COLOR_kernel__Object___61d_61d]))(var16, var_old_child) /* == on <var16:nullable Object(AExternCall)>*/;
451 if (var17){
452 var18 = NULL;
453 if (var_new_child == NULL) {
454 var19 = 0; /* is null */
455 } else {
456 var19 = 1; /* arg is null and recv is not */
457 }
458 if (var19){
459 /* <var_new_child:nullable ANode(ANode)> isa AExternCall */
460 cltype21 = type_parser_nodes__AExternCall.color;
461 idtype22 = type_parser_nodes__AExternCall.id;
462 if(cltype21 >= var_new_child->type->table_size) {
463 var20 = 0;
464 } else {
465 var20 = var_new_child->type->type_table[cltype21] == idtype22;
466 }
467 if (!var20) {
468 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 10839);
469 exit(1);
470 }
471 var23 = self->attrs[COLOR_parser_nodes__AExternCalls___n_extern_calls].val; /* _n_extern_calls on <self:AExternCalls> */
472 if (var23 == NULL) {
473 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_extern_calls", "src/parser/parser_prod.nit", 10840);
474 exit(1);
475 }
476 ((void (*)(val*, long, val*))(var23->class->vft[COLOR_abstract_collection__Sequence___91d_93d_61d]))(var23, var_i, var_new_child) /* []= on <var23:ANodes[AExternCall]>*/;
477 ((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(AExternCall)>*/;
478 } else {
479 var24 = self->attrs[COLOR_parser_nodes__AExternCalls___n_extern_calls].val; /* _n_extern_calls on <self:AExternCalls> */
480 if (var24 == NULL) {
481 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_extern_calls", "src/parser/parser_prod.nit", 10843);
482 exit(1);
483 }
484 ((void (*)(val*, long))(var24->class->vft[COLOR_abstract_collection__Sequence__remove_at]))(var24, var_i) /* remove_at on <var24:ANodes[AExternCall]>*/;
485 }
486 goto RET_LABEL;
487 } else {
488 }
489 CONTINUE_label: (void)0;
490 ((void (*)(val*))(var11->class->vft[COLOR_abstract_collection__Iterator__next]))(var11) /* next on <var11:Iterator[nullable Object]>*/;
491 }
492 BREAK_label: (void)0;
493 RET_LABEL:;
494 }
495 /* method parser_prod#AExternCalls#replace_child for (self: Object, ANode, nullable ANode) */
496 void VIRTUAL_parser_prod__AExternCalls__replace_child(val* self, val* p0, val* p1) {
497 parser_prod__AExternCalls__replace_child(self, p0, p1);
498 RET_LABEL:;
499 }
500 /* method parser_prod#AExternCalls#n_kwimport= for (self: AExternCalls, TKwimport) */
501 void parser_prod__AExternCalls__n_kwimport_61d(val* self, val* p0) {
502 val* var_node /* var node: TKwimport */;
503 var_node = p0;
504 self->attrs[COLOR_parser_nodes__AExternCalls___n_kwimport].val = var_node; /* _n_kwimport on <self:AExternCalls> */
505 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TKwimport>*/;
506 RET_LABEL:;
507 }
508 /* method parser_prod#AExternCalls#n_kwimport= for (self: Object, TKwimport) */
509 void VIRTUAL_parser_prod__AExternCalls__n_kwimport_61d(val* self, val* p0) {
510 parser_prod__AExternCalls__n_kwimport_61d(self, p0);
511 RET_LABEL:;
512 }
513 /* method parser_prod#AExternCalls#visit_all for (self: AExternCalls, Visitor) */
514 void parser_prod__AExternCalls__visit_all(val* self, val* p0) {
515 val* var_v /* var v: Visitor */;
516 val* var /* : TKwimport */;
517 val* var1 /* : ANodes[AExternCall] */;
518 val* var2 /* : Iterator[nullable Object] */;
519 short int var3 /* : Bool */;
520 val* var4 /* : nullable Object */;
521 val* var_n /* var n: AExternCall */;
522 var_v = p0;
523 var = self->attrs[COLOR_parser_nodes__AExternCalls___n_kwimport].val; /* _n_kwimport on <self:AExternCalls> */
524 if (var == NULL) {
525 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwimport", "src/parser/parser_prod.nit", 10859);
526 exit(1);
527 }
528 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
529 var1 = self->attrs[COLOR_parser_nodes__AExternCalls___n_extern_calls].val; /* _n_extern_calls on <self:AExternCalls> */
530 if (var1 == NULL) {
531 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_extern_calls", "src/parser/parser_prod.nit", 10860);
532 exit(1);
533 }
534 var2 = ((val* (*)(val*))(var1->class->vft[COLOR_abstract_collection__Collection__iterator]))(var1) /* iterator on <var1:ANodes[AExternCall]>*/;
535 for(;;) {
536 var3 = ((short int (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var2) /* is_ok on <var2:Iterator[nullable Object]>*/;
537 if(!var3) break;
538 var4 = ((val* (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__item]))(var2) /* item on <var2:Iterator[nullable Object]>*/;
539 var_n = var4;
540 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var_n) /* enter_visit on <var_v:Visitor>*/;
541 CONTINUE_label: (void)0;
542 ((void (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__next]))(var2) /* next on <var2:Iterator[nullable Object]>*/;
543 }
544 BREAK_label: (void)0;
545 RET_LABEL:;
546 }
547 /* method parser_prod#AExternCalls#visit_all for (self: Object, Visitor) */
548 void VIRTUAL_parser_prod__AExternCalls__visit_all(val* self, val* p0) {
549 parser_prod__AExternCalls__visit_all(self, p0);
550 RET_LABEL:;
551 }
552 /* method parser_prod#AExternCall#empty_init for (self: AExternCall) */
553 void parser_prod__AExternCall__empty_init(val* self) {
554 RET_LABEL:;
555 }
556 /* method parser_prod#AExternCall#empty_init for (self: Object) */
557 void VIRTUAL_parser_prod__AExternCall__empty_init(val* self) {
558 parser_prod__AExternCall__empty_init(self);
559 RET_LABEL:;
560 }
561 /* method parser_prod#AExternCall#init_aexterncall for (self: AExternCall) */
562 void parser_prod__AExternCall__init_aexterncall(val* self) {
563 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__AExternCall__empty_init]))(self) /* empty_init on <self:AExternCall>*/;
564 RET_LABEL:;
565 }
566 /* method parser_prod#AExternCall#init_aexterncall for (self: Object) */
567 void VIRTUAL_parser_prod__AExternCall__init_aexterncall(val* self) {
568 parser_prod__AExternCall__init_aexterncall(self);
569 RET_LABEL:;
570 }
571 /* method parser_prod#AExternCall#replace_child for (self: AExternCall, ANode, nullable ANode) */
572 void parser_prod__AExternCall__replace_child(val* self, val* p0, val* p1) {
573 val* var_old_child /* var old_child: ANode */;
574 val* var_new_child /* var new_child: nullable ANode */;
575 var_old_child = p0;
576 var_new_child = p1;
577 RET_LABEL:;
578 }
579 /* method parser_prod#AExternCall#replace_child for (self: Object, ANode, nullable ANode) */
580 void VIRTUAL_parser_prod__AExternCall__replace_child(val* self, val* p0, val* p1) {
581 parser_prod__AExternCall__replace_child(self, p0, p1);
582 RET_LABEL:;
583 }
584 /* method parser_prod#AExternCall#visit_all for (self: AExternCall, Visitor) */
585 void parser_prod__AExternCall__visit_all(val* self, val* p0) {
586 val* var_v /* var v: Visitor */;
587 var_v = p0;
588 RET_LABEL:;
589 }
590 /* method parser_prod#AExternCall#visit_all for (self: Object, Visitor) */
591 void VIRTUAL_parser_prod__AExternCall__visit_all(val* self, val* p0) {
592 parser_prod__AExternCall__visit_all(self, p0);
593 RET_LABEL:;
594 }
595 /* method parser_prod#ASuperExternCall#empty_init for (self: ASuperExternCall) */
596 void parser_prod__ASuperExternCall__empty_init(val* self) {
597 RET_LABEL:;
598 }
599 /* method parser_prod#ASuperExternCall#empty_init for (self: Object) */
600 void VIRTUAL_parser_prod__ASuperExternCall__empty_init(val* self) {
601 parser_prod__ASuperExternCall__empty_init(self);
602 RET_LABEL:;
603 }
604 /* method parser_prod#ASuperExternCall#init_asuperexterncall for (self: ASuperExternCall, nullable TKwsuper) */
605 void parser_prod__ASuperExternCall__init_asuperexterncall(val* self, val* p0) {
606 val* var_n_kwsuper /* var n_kwsuper: nullable TKwsuper */;
607 var_n_kwsuper = p0;
608 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__ASuperExternCall__empty_init]))(self) /* empty_init on <self:ASuperExternCall>*/;
609 if (var_n_kwsuper == NULL) {
610 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 10891);
611 exit(1);
612 }
613 self->attrs[COLOR_parser_nodes__ASuperExternCall___n_kwsuper].val = var_n_kwsuper; /* _n_kwsuper on <self:ASuperExternCall> */
614 if (var_n_kwsuper == NULL) {
615 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_prod.nit", 10892);
616 exit(1);
617 } else {
618 ((void (*)(val*, val*))(var_n_kwsuper->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_kwsuper, self) /* parent= on <var_n_kwsuper:nullable TKwsuper>*/;
619 }
620 RET_LABEL:;
621 }
622 /* method parser_prod#ASuperExternCall#init_asuperexterncall for (self: Object, nullable TKwsuper) */
623 void VIRTUAL_parser_prod__ASuperExternCall__init_asuperexterncall(val* self, val* p0) {
624 parser_prod__ASuperExternCall__init_asuperexterncall(self, p0);
625 RET_LABEL:;
626 }
627 /* method parser_prod#ASuperExternCall#replace_child for (self: ASuperExternCall, ANode, nullable ANode) */
628 void parser_prod__ASuperExternCall__replace_child(val* self, val* p0, val* p1) {
629 val* var_old_child /* var old_child: ANode */;
630 val* var_new_child /* var new_child: nullable ANode */;
631 val* var /* : TKwsuper */;
632 short int var1 /* : Bool */;
633 val* var2 /* : null */;
634 short int var3 /* : Bool */;
635 short int var4 /* : Bool */;
636 int cltype;
637 int idtype;
638 var_old_child = p0;
639 var_new_child = p1;
640 var = self->attrs[COLOR_parser_nodes__ASuperExternCall___n_kwsuper].val; /* _n_kwsuper on <self:ASuperExternCall> */
641 if (var == NULL) {
642 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwsuper", "src/parser/parser_prod.nit", 10897);
643 exit(1);
644 }
645 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:TKwsuper>*/;
646 if (var1){
647 var2 = NULL;
648 if (var_new_child == NULL) {
649 var3 = 0; /* is null */
650 } else {
651 var3 = 1; /* arg is null and recv is not */
652 }
653 if (var3){
654 ((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)>*/;
655 /* <var_new_child:nullable ANode(ANode)> isa TKwsuper */
656 cltype = type_parser_nodes__TKwsuper.color;
657 idtype = type_parser_nodes__TKwsuper.id;
658 if(cltype >= var_new_child->type->table_size) {
659 var4 = 0;
660 } else {
661 var4 = var_new_child->type->type_table[cltype] == idtype;
662 }
663 if (!var4) {
664 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 10900);
665 exit(1);
666 }
667 self->attrs[COLOR_parser_nodes__ASuperExternCall___n_kwsuper].val = var_new_child; /* _n_kwsuper on <self:ASuperExternCall> */
668 } else {
669 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser/parser_prod.nit", 10903);
670 exit(1);
671 }
672 goto RET_LABEL;
673 } else {
674 }
675 RET_LABEL:;
676 }
677 /* method parser_prod#ASuperExternCall#replace_child for (self: Object, ANode, nullable ANode) */
678 void VIRTUAL_parser_prod__ASuperExternCall__replace_child(val* self, val* p0, val* p1) {
679 parser_prod__ASuperExternCall__replace_child(self, p0, p1);
680 RET_LABEL:;
681 }
682 /* method parser_prod#ASuperExternCall#n_kwsuper= for (self: ASuperExternCall, TKwsuper) */
683 void parser_prod__ASuperExternCall__n_kwsuper_61d(val* self, val* p0) {
684 val* var_node /* var node: TKwsuper */;
685 var_node = p0;
686 self->attrs[COLOR_parser_nodes__ASuperExternCall___n_kwsuper].val = var_node; /* _n_kwsuper on <self:ASuperExternCall> */
687 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TKwsuper>*/;
688 RET_LABEL:;
689 }
690 /* method parser_prod#ASuperExternCall#n_kwsuper= for (self: Object, TKwsuper) */
691 void VIRTUAL_parser_prod__ASuperExternCall__n_kwsuper_61d(val* self, val* p0) {
692 parser_prod__ASuperExternCall__n_kwsuper_61d(self, p0);
693 RET_LABEL:;
694 }
695 /* method parser_prod#ASuperExternCall#visit_all for (self: ASuperExternCall, Visitor) */
696 void parser_prod__ASuperExternCall__visit_all(val* self, val* p0) {
697 val* var_v /* var v: Visitor */;
698 val* var /* : TKwsuper */;
699 var_v = p0;
700 var = self->attrs[COLOR_parser_nodes__ASuperExternCall___n_kwsuper].val; /* _n_kwsuper on <self:ASuperExternCall> */
701 if (var == NULL) {
702 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwsuper", "src/parser/parser_prod.nit", 10918);
703 exit(1);
704 }
705 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
706 RET_LABEL:;
707 }
708 /* method parser_prod#ASuperExternCall#visit_all for (self: Object, Visitor) */
709 void VIRTUAL_parser_prod__ASuperExternCall__visit_all(val* self, val* p0) {
710 parser_prod__ASuperExternCall__visit_all(self, p0);
711 RET_LABEL:;
712 }
713 /* method parser_prod#ALocalPropExternCall#empty_init for (self: ALocalPropExternCall) */
714 void parser_prod__ALocalPropExternCall__empty_init(val* self) {
715 RET_LABEL:;
716 }
717 /* method parser_prod#ALocalPropExternCall#empty_init for (self: Object) */
718 void VIRTUAL_parser_prod__ALocalPropExternCall__empty_init(val* self) {
719 parser_prod__ALocalPropExternCall__empty_init(self);
720 RET_LABEL:;
721 }
722 /* method parser_prod#ALocalPropExternCall#init_alocalpropexterncall for (self: ALocalPropExternCall, nullable AMethid) */
723 void parser_prod__ALocalPropExternCall__init_alocalpropexterncall(val* self, val* p0) {
724 val* var_n_methid /* var n_methid: nullable AMethid */;
725 var_n_methid = p0;
726 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__ALocalPropExternCall__empty_init]))(self) /* empty_init on <self:ALocalPropExternCall>*/;
727 if (var_n_methid == NULL) {
728 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 10929);
729 exit(1);
730 }
731 self->attrs[COLOR_parser_nodes__ALocalPropExternCall___n_methid].val = var_n_methid; /* _n_methid on <self:ALocalPropExternCall> */
732 if (var_n_methid == NULL) {
733 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_prod.nit", 10930);
734 exit(1);
735 } else {
736 ((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>*/;
737 }
738 RET_LABEL:;
739 }
740 /* method parser_prod#ALocalPropExternCall#init_alocalpropexterncall for (self: Object, nullable AMethid) */
741 void VIRTUAL_parser_prod__ALocalPropExternCall__init_alocalpropexterncall(val* self, val* p0) {
742 parser_prod__ALocalPropExternCall__init_alocalpropexterncall(self, p0);
743 RET_LABEL:;
744 }
745 /* method parser_prod#ALocalPropExternCall#replace_child for (self: ALocalPropExternCall, ANode, nullable ANode) */
746 void parser_prod__ALocalPropExternCall__replace_child(val* self, val* p0, val* p1) {
747 val* var_old_child /* var old_child: ANode */;
748 val* var_new_child /* var new_child: nullable ANode */;
749 val* var /* : AMethid */;
750 short int var1 /* : Bool */;
751 val* var2 /* : null */;
752 short int var3 /* : Bool */;
753 short int var4 /* : Bool */;
754 int cltype;
755 int idtype;
756 var_old_child = p0;
757 var_new_child = p1;
758 var = self->attrs[COLOR_parser_nodes__ALocalPropExternCall___n_methid].val; /* _n_methid on <self:ALocalPropExternCall> */
759 if (var == NULL) {
760 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_methid", "src/parser/parser_prod.nit", 10935);
761 exit(1);
762 }
763 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:AMethid>*/;
764 if (var1){
765 var2 = NULL;
766 if (var_new_child == NULL) {
767 var3 = 0; /* is null */
768 } else {
769 var3 = 1; /* arg is null and recv is not */
770 }
771 if (var3){
772 ((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)>*/;
773 /* <var_new_child:nullable ANode(ANode)> isa AMethid */
774 cltype = type_parser_nodes__AMethid.color;
775 idtype = type_parser_nodes__AMethid.id;
776 if(cltype >= var_new_child->type->table_size) {
777 var4 = 0;
778 } else {
779 var4 = var_new_child->type->type_table[cltype] == idtype;
780 }
781 if (!var4) {
782 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 10938);
783 exit(1);
784 }
785 self->attrs[COLOR_parser_nodes__ALocalPropExternCall___n_methid].val = var_new_child; /* _n_methid on <self:ALocalPropExternCall> */
786 } else {
787 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser/parser_prod.nit", 10941);
788 exit(1);
789 }
790 goto RET_LABEL;
791 } else {
792 }
793 RET_LABEL:;
794 }
795 /* method parser_prod#ALocalPropExternCall#replace_child for (self: Object, ANode, nullable ANode) */
796 void VIRTUAL_parser_prod__ALocalPropExternCall__replace_child(val* self, val* p0, val* p1) {
797 parser_prod__ALocalPropExternCall__replace_child(self, p0, p1);
798 RET_LABEL:;
799 }
800 /* method parser_prod#ALocalPropExternCall#n_methid= for (self: ALocalPropExternCall, AMethid) */
801 void parser_prod__ALocalPropExternCall__n_methid_61d(val* self, val* p0) {
802 val* var_node /* var node: AMethid */;
803 var_node = p0;
804 self->attrs[COLOR_parser_nodes__ALocalPropExternCall___n_methid].val = var_node; /* _n_methid on <self:ALocalPropExternCall> */
805 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:AMethid>*/;
806 RET_LABEL:;
807 }
808 /* method parser_prod#ALocalPropExternCall#n_methid= for (self: Object, AMethid) */
809 void VIRTUAL_parser_prod__ALocalPropExternCall__n_methid_61d(val* self, val* p0) {
810 parser_prod__ALocalPropExternCall__n_methid_61d(self, p0);
811 RET_LABEL:;
812 }
813 /* method parser_prod#ALocalPropExternCall#visit_all for (self: ALocalPropExternCall, Visitor) */
814 void parser_prod__ALocalPropExternCall__visit_all(val* self, val* p0) {
815 val* var_v /* var v: Visitor */;
816 val* var /* : AMethid */;
817 var_v = p0;
818 var = self->attrs[COLOR_parser_nodes__ALocalPropExternCall___n_methid].val; /* _n_methid on <self:ALocalPropExternCall> */
819 if (var == NULL) {
820 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_methid", "src/parser/parser_prod.nit", 10956);
821 exit(1);
822 }
823 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
824 RET_LABEL:;
825 }
826 /* method parser_prod#ALocalPropExternCall#visit_all for (self: Object, Visitor) */
827 void VIRTUAL_parser_prod__ALocalPropExternCall__visit_all(val* self, val* p0) {
828 parser_prod__ALocalPropExternCall__visit_all(self, p0);
829 RET_LABEL:;
830 }
831 /* method parser_prod#AFullPropExternCall#empty_init for (self: AFullPropExternCall) */
832 void parser_prod__AFullPropExternCall__empty_init(val* self) {
833 RET_LABEL:;
834 }
835 /* method parser_prod#AFullPropExternCall#empty_init for (self: Object) */
836 void VIRTUAL_parser_prod__AFullPropExternCall__empty_init(val* self) {
837 parser_prod__AFullPropExternCall__empty_init(self);
838 RET_LABEL:;
839 }
840 /* method parser_prod#AFullPropExternCall#init_afullpropexterncall for (self: AFullPropExternCall, nullable TClassid, nullable TQuad, nullable AMethid) */
841 void parser_prod__AFullPropExternCall__init_afullpropexterncall(val* self, val* p0, val* p1, val* p2) {
842 val* var_n_classid /* var n_classid: nullable TClassid */;
843 val* var_n_quad /* var n_quad: nullable TQuad */;
844 val* var_n_methid /* var n_methid: nullable AMethid */;
845 val* var /* : null */;
846 short int var1 /* : Bool */;
847 var_n_classid = p0;
848 var_n_quad = p1;
849 var_n_methid = p2;
850 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__AFullPropExternCall__empty_init]))(self) /* empty_init on <self:AFullPropExternCall>*/;
851 if (var_n_classid == NULL) {
852 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 10969);
853 exit(1);
854 }
855 self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_classid].val = var_n_classid; /* _n_classid on <self:AFullPropExternCall> */
856 if (var_n_classid == NULL) {
857 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_prod.nit", 10970);
858 exit(1);
859 } else {
860 ((void (*)(val*, val*))(var_n_classid->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_classid, self) /* parent= on <var_n_classid:nullable TClassid>*/;
861 }
862 self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_quad].val = var_n_quad; /* _n_quad on <self:AFullPropExternCall> */
863 var = NULL;
864 if (var_n_quad == NULL) {
865 var1 = 0; /* is null */
866 } else {
867 var1 = 1; /* arg is null and recv is not */
868 }
869 if (var1){
870 ((void (*)(val*, val*))(var_n_quad->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_quad, self) /* parent= on <var_n_quad:nullable TQuad(TQuad)>*/;
871 } else {
872 }
873 if (var_n_methid == NULL) {
874 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 10975);
875 exit(1);
876 }
877 self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_methid].val = var_n_methid; /* _n_methid on <self:AFullPropExternCall> */
878 if (var_n_methid == NULL) {
879 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_prod.nit", 10976);
880 exit(1);
881 } else {
882 ((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>*/;
883 }
884 RET_LABEL:;
885 }
886 /* method parser_prod#AFullPropExternCall#init_afullpropexterncall for (self: Object, nullable TClassid, nullable TQuad, nullable AMethid) */
887 void VIRTUAL_parser_prod__AFullPropExternCall__init_afullpropexterncall(val* self, val* p0, val* p1, val* p2) {
888 parser_prod__AFullPropExternCall__init_afullpropexterncall(self, p0, p1, p2);
889 RET_LABEL:;
890 }
891 /* method parser_prod#AFullPropExternCall#replace_child for (self: AFullPropExternCall, ANode, nullable ANode) */
892 void parser_prod__AFullPropExternCall__replace_child(val* self, val* p0, val* p1) {
893 val* var_old_child /* var old_child: ANode */;
894 val* var_new_child /* var new_child: nullable ANode */;
895 val* var /* : TClassid */;
896 short int var1 /* : Bool */;
897 val* var2 /* : null */;
898 short int var3 /* : Bool */;
899 short int var4 /* : Bool */;
900 int cltype;
901 int idtype;
902 val* var5 /* : nullable TQuad */;
903 short int var6 /* : Bool */;
904 val* var7 /* : null */;
905 short int var8 /* : Bool */;
906 short int var9 /* : Bool */;
907 int cltype10;
908 int idtype11;
909 val* var12 /* : null */;
910 val* var13 /* : AMethid */;
911 short int var14 /* : Bool */;
912 val* var15 /* : null */;
913 short int var16 /* : Bool */;
914 short int var17 /* : Bool */;
915 int cltype18;
916 int idtype19;
917 var_old_child = p0;
918 var_new_child = p1;
919 var = self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_classid].val; /* _n_classid on <self:AFullPropExternCall> */
920 if (var == NULL) {
921 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_classid", "src/parser/parser_prod.nit", 10981);
922 exit(1);
923 }
924 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:TClassid>*/;
925 if (var1){
926 var2 = NULL;
927 if (var_new_child == NULL) {
928 var3 = 0; /* is null */
929 } else {
930 var3 = 1; /* arg is null and recv is not */
931 }
932 if (var3){
933 ((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)>*/;
934 /* <var_new_child:nullable ANode(ANode)> isa TClassid */
935 cltype = type_parser_nodes__TClassid.color;
936 idtype = type_parser_nodes__TClassid.id;
937 if(cltype >= var_new_child->type->table_size) {
938 var4 = 0;
939 } else {
940 var4 = var_new_child->type->type_table[cltype] == idtype;
941 }
942 if (!var4) {
943 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 10984);
944 exit(1);
945 }
946 self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_classid].val = var_new_child; /* _n_classid on <self:AFullPropExternCall> */
947 } else {
948 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser/parser_prod.nit", 10987);
949 exit(1);
950 }
951 goto RET_LABEL;
952 } else {
953 }
954 var5 = self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_quad].val; /* _n_quad on <self:AFullPropExternCall> */
955 if (var5 == NULL) {
956 var6 = 0; /* <var_old_child:ANode> cannot be null */
957 } else {
958 var6 = ((short int (*)(val*, val*))(var5->class->vft[COLOR_kernel__Object___61d_61d]))(var5, var_old_child) /* == on <var5:nullable TQuad>*/;
959 }
960 if (var6){
961 var7 = NULL;
962 if (var_new_child == NULL) {
963 var8 = 0; /* is null */
964 } else {
965 var8 = 1; /* arg is null and recv is not */
966 }
967 if (var8){
968 ((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)>*/;
969 /* <var_new_child:nullable ANode(ANode)> isa TQuad */
970 cltype10 = type_parser_nodes__TQuad.color;
971 idtype11 = type_parser_nodes__TQuad.id;
972 if(cltype10 >= var_new_child->type->table_size) {
973 var9 = 0;
974 } else {
975 var9 = var_new_child->type->type_table[cltype10] == idtype11;
976 }
977 if (!var9) {
978 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 10994);
979 exit(1);
980 }
981 self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_quad].val = var_new_child; /* _n_quad on <self:AFullPropExternCall> */
982 } else {
983 var12 = NULL;
984 self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_quad].val = var12; /* _n_quad on <self:AFullPropExternCall> */
985 }
986 goto RET_LABEL;
987 } else {
988 }
989 var13 = self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_methid].val; /* _n_methid on <self:AFullPropExternCall> */
990 if (var13 == NULL) {
991 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_methid", "src/parser/parser_prod.nit", 11001);
992 exit(1);
993 }
994 var14 = ((short int (*)(val*, val*))(var13->class->vft[COLOR_kernel__Object___61d_61d]))(var13, var_old_child) /* == on <var13:AMethid>*/;
995 if (var14){
996 var15 = NULL;
997 if (var_new_child == NULL) {
998 var16 = 0; /* is null */
999 } else {
1000 var16 = 1; /* arg is null and recv is not */
1001 }
1002 if (var16){
1003 ((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)>*/;
1004 /* <var_new_child:nullable ANode(ANode)> isa AMethid */
1005 cltype18 = type_parser_nodes__AMethid.color;
1006 idtype19 = type_parser_nodes__AMethid.id;
1007 if(cltype18 >= var_new_child->type->table_size) {
1008 var17 = 0;
1009 } else {
1010 var17 = var_new_child->type->type_table[cltype18] == idtype19;
1011 }
1012 if (!var17) {
1013 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11004);
1014 exit(1);
1015 }
1016 self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_methid].val = var_new_child; /* _n_methid on <self:AFullPropExternCall> */
1017 } else {
1018 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser/parser_prod.nit", 11007);
1019 exit(1);
1020 }
1021 goto RET_LABEL;
1022 } else {
1023 }
1024 RET_LABEL:;
1025 }
1026 /* method parser_prod#AFullPropExternCall#replace_child for (self: Object, ANode, nullable ANode) */
1027 void VIRTUAL_parser_prod__AFullPropExternCall__replace_child(val* self, val* p0, val* p1) {
1028 parser_prod__AFullPropExternCall__replace_child(self, p0, p1);
1029 RET_LABEL:;
1030 }
1031 /* method parser_prod#AFullPropExternCall#n_classid= for (self: AFullPropExternCall, TClassid) */
1032 void parser_prod__AFullPropExternCall__n_classid_61d(val* self, val* p0) {
1033 val* var_node /* var node: TClassid */;
1034 var_node = p0;
1035 self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_classid].val = var_node; /* _n_classid on <self:AFullPropExternCall> */
1036 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TClassid>*/;
1037 RET_LABEL:;
1038 }
1039 /* method parser_prod#AFullPropExternCall#n_classid= for (self: Object, TClassid) */
1040 void VIRTUAL_parser_prod__AFullPropExternCall__n_classid_61d(val* self, val* p0) {
1041 parser_prod__AFullPropExternCall__n_classid_61d(self, p0);
1042 RET_LABEL:;
1043 }
1044 /* method parser_prod#AFullPropExternCall#n_quad= for (self: AFullPropExternCall, nullable TQuad) */
1045 void parser_prod__AFullPropExternCall__n_quad_61d(val* self, val* p0) {
1046 val* var_node /* var node: nullable TQuad */;
1047 val* var /* : null */;
1048 short int var1 /* : Bool */;
1049 var_node = p0;
1050 self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_quad].val = var_node; /* _n_quad on <self:AFullPropExternCall> */
1051 var = NULL;
1052 if (var_node == NULL) {
1053 var1 = 0; /* is null */
1054 } else {
1055 var1 = 1; /* arg is null and recv is not */
1056 }
1057 if (var1){
1058 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable TQuad(TQuad)>*/;
1059 } else {
1060 }
1061 RET_LABEL:;
1062 }
1063 /* method parser_prod#AFullPropExternCall#n_quad= for (self: Object, nullable TQuad) */
1064 void VIRTUAL_parser_prod__AFullPropExternCall__n_quad_61d(val* self, val* p0) {
1065 parser_prod__AFullPropExternCall__n_quad_61d(self, p0);
1066 RET_LABEL:;
1067 }
1068 /* method parser_prod#AFullPropExternCall#n_methid= for (self: AFullPropExternCall, AMethid) */
1069 void parser_prod__AFullPropExternCall__n_methid_61d(val* self, val* p0) {
1070 val* var_node /* var node: AMethid */;
1071 var_node = p0;
1072 self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_methid].val = var_node; /* _n_methid on <self:AFullPropExternCall> */
1073 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:AMethid>*/;
1074 RET_LABEL:;
1075 }
1076 /* method parser_prod#AFullPropExternCall#n_methid= for (self: Object, AMethid) */
1077 void VIRTUAL_parser_prod__AFullPropExternCall__n_methid_61d(val* self, val* p0) {
1078 parser_prod__AFullPropExternCall__n_methid_61d(self, p0);
1079 RET_LABEL:;
1080 }
1081 /* method parser_prod#AFullPropExternCall#visit_all for (self: AFullPropExternCall, Visitor) */
1082 void parser_prod__AFullPropExternCall__visit_all(val* self, val* p0) {
1083 val* var_v /* var v: Visitor */;
1084 val* var /* : TClassid */;
1085 val* var1 /* : nullable TQuad */;
1086 val* var2 /* : null */;
1087 short int var3 /* : Bool */;
1088 val* var4 /* : nullable TQuad */;
1089 val* var5 /* : AMethid */;
1090 var_v = p0;
1091 var = self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_classid].val; /* _n_classid on <self:AFullPropExternCall> */
1092 if (var == NULL) {
1093 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_classid", "src/parser/parser_prod.nit", 11034);
1094 exit(1);
1095 }
1096 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
1097 var1 = self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_quad].val; /* _n_quad on <self:AFullPropExternCall> */
1098 var2 = NULL;
1099 if (var1 == NULL) {
1100 var3 = 0; /* is null */
1101 } else {
1102 var3 = 1; /* arg is null and recv is not */
1103 }
1104 if (var3){
1105 var4 = self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_quad].val; /* _n_quad on <self:AFullPropExternCall> */
1106 if (var4 == NULL) {
1107 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 11036);
1108 exit(1);
1109 }
1110 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var4) /* enter_visit on <var_v:Visitor>*/;
1111 } else {
1112 }
1113 var5 = self->attrs[COLOR_parser_nodes__AFullPropExternCall___n_methid].val; /* _n_methid on <self:AFullPropExternCall> */
1114 if (var5 == NULL) {
1115 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_methid", "src/parser/parser_prod.nit", 11038);
1116 exit(1);
1117 }
1118 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var5) /* enter_visit on <var_v:Visitor>*/;
1119 RET_LABEL:;
1120 }
1121 /* method parser_prod#AFullPropExternCall#visit_all for (self: Object, Visitor) */
1122 void VIRTUAL_parser_prod__AFullPropExternCall__visit_all(val* self, val* p0) {
1123 parser_prod__AFullPropExternCall__visit_all(self, p0);
1124 RET_LABEL:;
1125 }
1126 /* method parser_prod#AInitPropExternCall#empty_init for (self: AInitPropExternCall) */
1127 void parser_prod__AInitPropExternCall__empty_init(val* self) {
1128 RET_LABEL:;
1129 }
1130 /* method parser_prod#AInitPropExternCall#empty_init for (self: Object) */
1131 void VIRTUAL_parser_prod__AInitPropExternCall__empty_init(val* self) {
1132 parser_prod__AInitPropExternCall__empty_init(self);
1133 RET_LABEL:;
1134 }
1135 /* method parser_prod#AInitPropExternCall#init_ainitpropexterncall for (self: AInitPropExternCall, nullable TClassid) */
1136 void parser_prod__AInitPropExternCall__init_ainitpropexterncall(val* self, val* p0) {
1137 val* var_n_classid /* var n_classid: nullable TClassid */;
1138 var_n_classid = p0;
1139 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__AInitPropExternCall__empty_init]))(self) /* empty_init on <self:AInitPropExternCall>*/;
1140 if (var_n_classid == NULL) {
1141 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 11049);
1142 exit(1);
1143 }
1144 self->attrs[COLOR_parser_nodes__AInitPropExternCall___n_classid].val = var_n_classid; /* _n_classid on <self:AInitPropExternCall> */
1145 if (var_n_classid == NULL) {
1146 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_prod.nit", 11050);
1147 exit(1);
1148 } else {
1149 ((void (*)(val*, val*))(var_n_classid->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_classid, self) /* parent= on <var_n_classid:nullable TClassid>*/;
1150 }
1151 RET_LABEL:;
1152 }
1153 /* method parser_prod#AInitPropExternCall#init_ainitpropexterncall for (self: Object, nullable TClassid) */
1154 void VIRTUAL_parser_prod__AInitPropExternCall__init_ainitpropexterncall(val* self, val* p0) {
1155 parser_prod__AInitPropExternCall__init_ainitpropexterncall(self, p0);
1156 RET_LABEL:;
1157 }
1158 /* method parser_prod#AInitPropExternCall#replace_child for (self: AInitPropExternCall, ANode, nullable ANode) */
1159 void parser_prod__AInitPropExternCall__replace_child(val* self, val* p0, val* p1) {
1160 val* var_old_child /* var old_child: ANode */;
1161 val* var_new_child /* var new_child: nullable ANode */;
1162 val* var /* : TClassid */;
1163 short int var1 /* : Bool */;
1164 val* var2 /* : null */;
1165 short int var3 /* : Bool */;
1166 short int var4 /* : Bool */;
1167 int cltype;
1168 int idtype;
1169 var_old_child = p0;
1170 var_new_child = p1;
1171 var = self->attrs[COLOR_parser_nodes__AInitPropExternCall___n_classid].val; /* _n_classid on <self:AInitPropExternCall> */
1172 if (var == NULL) {
1173 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_classid", "src/parser/parser_prod.nit", 11055);
1174 exit(1);
1175 }
1176 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:TClassid>*/;
1177 if (var1){
1178 var2 = NULL;
1179 if (var_new_child == NULL) {
1180 var3 = 0; /* is null */
1181 } else {
1182 var3 = 1; /* arg is null and recv is not */
1183 }
1184 if (var3){
1185 ((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)>*/;
1186 /* <var_new_child:nullable ANode(ANode)> isa TClassid */
1187 cltype = type_parser_nodes__TClassid.color;
1188 idtype = type_parser_nodes__TClassid.id;
1189 if(cltype >= var_new_child->type->table_size) {
1190 var4 = 0;
1191 } else {
1192 var4 = var_new_child->type->type_table[cltype] == idtype;
1193 }
1194 if (!var4) {
1195 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11058);
1196 exit(1);
1197 }
1198 self->attrs[COLOR_parser_nodes__AInitPropExternCall___n_classid].val = var_new_child; /* _n_classid on <self:AInitPropExternCall> */
1199 } else {
1200 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser/parser_prod.nit", 11061);
1201 exit(1);
1202 }
1203 goto RET_LABEL;
1204 } else {
1205 }
1206 RET_LABEL:;
1207 }
1208 /* method parser_prod#AInitPropExternCall#replace_child for (self: Object, ANode, nullable ANode) */
1209 void VIRTUAL_parser_prod__AInitPropExternCall__replace_child(val* self, val* p0, val* p1) {
1210 parser_prod__AInitPropExternCall__replace_child(self, p0, p1);
1211 RET_LABEL:;
1212 }
1213 /* method parser_prod#AInitPropExternCall#n_classid= for (self: AInitPropExternCall, TClassid) */
1214 void parser_prod__AInitPropExternCall__n_classid_61d(val* self, val* p0) {
1215 val* var_node /* var node: TClassid */;
1216 var_node = p0;
1217 self->attrs[COLOR_parser_nodes__AInitPropExternCall___n_classid].val = var_node; /* _n_classid on <self:AInitPropExternCall> */
1218 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TClassid>*/;
1219 RET_LABEL:;
1220 }
1221 /* method parser_prod#AInitPropExternCall#n_classid= for (self: Object, TClassid) */
1222 void VIRTUAL_parser_prod__AInitPropExternCall__n_classid_61d(val* self, val* p0) {
1223 parser_prod__AInitPropExternCall__n_classid_61d(self, p0);
1224 RET_LABEL:;
1225 }
1226 /* method parser_prod#AInitPropExternCall#visit_all for (self: AInitPropExternCall, Visitor) */
1227 void parser_prod__AInitPropExternCall__visit_all(val* self, val* p0) {
1228 val* var_v /* var v: Visitor */;
1229 val* var /* : TClassid */;
1230 var_v = p0;
1231 var = self->attrs[COLOR_parser_nodes__AInitPropExternCall___n_classid].val; /* _n_classid on <self:AInitPropExternCall> */
1232 if (var == NULL) {
1233 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_classid", "src/parser/parser_prod.nit", 11076);
1234 exit(1);
1235 }
1236 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
1237 RET_LABEL:;
1238 }
1239 /* method parser_prod#AInitPropExternCall#visit_all for (self: Object, Visitor) */
1240 void VIRTUAL_parser_prod__AInitPropExternCall__visit_all(val* self, val* p0) {
1241 parser_prod__AInitPropExternCall__visit_all(self, p0);
1242 RET_LABEL:;
1243 }
1244 /* method parser_prod#ACastAsExternCall#empty_init for (self: ACastAsExternCall) */
1245 void parser_prod__ACastAsExternCall__empty_init(val* self) {
1246 RET_LABEL:;
1247 }
1248 /* method parser_prod#ACastAsExternCall#empty_init for (self: Object) */
1249 void VIRTUAL_parser_prod__ACastAsExternCall__empty_init(val* self) {
1250 parser_prod__ACastAsExternCall__empty_init(self);
1251 RET_LABEL:;
1252 }
1253 /* method parser_prod#ACastAsExternCall#init_acastasexterncall for (self: ACastAsExternCall, nullable AType, nullable TKwas, nullable AType) */
1254 void parser_prod__ACastAsExternCall__init_acastasexterncall(val* self, val* p0, val* p1, val* p2) {
1255 val* var_n_from_type /* var n_from_type: nullable AType */;
1256 val* var_n_kwas /* var n_kwas: nullable TKwas */;
1257 val* var_n_to_type /* var n_to_type: nullable AType */;
1258 var_n_from_type = p0;
1259 var_n_kwas = p1;
1260 var_n_to_type = p2;
1261 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__ACastAsExternCall__empty_init]))(self) /* empty_init on <self:ACastAsExternCall>*/;
1262 if (var_n_from_type == NULL) {
1263 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 11089);
1264 exit(1);
1265 }
1266 self->attrs[COLOR_parser_nodes__ACastAsExternCall___n_from_type].val = var_n_from_type; /* _n_from_type on <self:ACastAsExternCall> */
1267 if (var_n_from_type == NULL) {
1268 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_prod.nit", 11090);
1269 exit(1);
1270 } else {
1271 ((void (*)(val*, val*))(var_n_from_type->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_from_type, self) /* parent= on <var_n_from_type:nullable AType>*/;
1272 }
1273 if (var_n_kwas == NULL) {
1274 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 11091);
1275 exit(1);
1276 }
1277 self->attrs[COLOR_parser_nodes__ACastAsExternCall___n_kwas].val = var_n_kwas; /* _n_kwas on <self:ACastAsExternCall> */
1278 if (var_n_kwas == NULL) {
1279 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_prod.nit", 11092);
1280 exit(1);
1281 } else {
1282 ((void (*)(val*, val*))(var_n_kwas->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_kwas, self) /* parent= on <var_n_kwas:nullable TKwas>*/;
1283 }
1284 if (var_n_to_type == NULL) {
1285 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 11093);
1286 exit(1);
1287 }
1288 self->attrs[COLOR_parser_nodes__ACastAsExternCall___n_to_type].val = var_n_to_type; /* _n_to_type on <self:ACastAsExternCall> */
1289 if (var_n_to_type == NULL) {
1290 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_prod.nit", 11094);
1291 exit(1);
1292 } else {
1293 ((void (*)(val*, val*))(var_n_to_type->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_to_type, self) /* parent= on <var_n_to_type:nullable AType>*/;
1294 }
1295 RET_LABEL:;
1296 }
1297 /* method parser_prod#ACastAsExternCall#init_acastasexterncall for (self: Object, nullable AType, nullable TKwas, nullable AType) */
1298 void VIRTUAL_parser_prod__ACastAsExternCall__init_acastasexterncall(val* self, val* p0, val* p1, val* p2) {
1299 parser_prod__ACastAsExternCall__init_acastasexterncall(self, p0, p1, p2);
1300 RET_LABEL:;
1301 }
1302 /* method parser_prod#ACastAsExternCall#replace_child for (self: ACastAsExternCall, ANode, nullable ANode) */
1303 void parser_prod__ACastAsExternCall__replace_child(val* self, val* p0, val* p1) {
1304 val* var_old_child /* var old_child: ANode */;
1305 val* var_new_child /* var new_child: nullable ANode */;
1306 val* var /* : AType */;
1307 short int var1 /* : Bool */;
1308 val* var2 /* : null */;
1309 short int var3 /* : Bool */;
1310 short int var4 /* : Bool */;
1311 int cltype;
1312 int idtype;
1313 val* var5 /* : TKwas */;
1314 short int var6 /* : Bool */;
1315 val* var7 /* : null */;
1316 short int var8 /* : Bool */;
1317 short int var9 /* : Bool */;
1318 int cltype10;
1319 int idtype11;
1320 val* var12 /* : AType */;
1321 short int var13 /* : Bool */;
1322 val* var14 /* : null */;
1323 short int var15 /* : Bool */;
1324 short int var16 /* : Bool */;
1325 int cltype17;
1326 int idtype18;
1327 var_old_child = p0;
1328 var_new_child = p1;
1329 var = self->attrs[COLOR_parser_nodes__ACastAsExternCall___n_from_type].val; /* _n_from_type on <self:ACastAsExternCall> */
1330 if (var == NULL) {
1331 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_from_type", "src/parser/parser_prod.nit", 11099);
1332 exit(1);
1333 }
1334 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:AType>*/;
1335 if (var1){
1336 var2 = NULL;
1337 if (var_new_child == NULL) {
1338 var3 = 0; /* is null */
1339 } else {
1340 var3 = 1; /* arg is null and recv is not */
1341 }
1342 if (var3){
1343 ((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)>*/;
1344 /* <var_new_child:nullable ANode(ANode)> isa AType */
1345 cltype = type_parser_nodes__AType.color;
1346 idtype = type_parser_nodes__AType.id;
1347 if(cltype >= var_new_child->type->table_size) {
1348 var4 = 0;
1349 } else {
1350 var4 = var_new_child->type->type_table[cltype] == idtype;
1351 }
1352 if (!var4) {
1353 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11102);
1354 exit(1);
1355 }
1356 self->attrs[COLOR_parser_nodes__ACastAsExternCall___n_from_type].val = var_new_child; /* _n_from_type on <self:ACastAsExternCall> */
1357 } else {
1358 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser/parser_prod.nit", 11105);
1359 exit(1);
1360 }
1361 goto RET_LABEL;
1362 } else {
1363 }
1364 var5 = self->attrs[COLOR_parser_nodes__ACastAsExternCall___n_kwas].val; /* _n_kwas on <self:ACastAsExternCall> */
1365 if (var5 == NULL) {
1366 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwas", "src/parser/parser_prod.nit", 11109);
1367 exit(1);
1368 }
1369 var6 = ((short int (*)(val*, val*))(var5->class->vft[COLOR_kernel__Object___61d_61d]))(var5, var_old_child) /* == on <var5:TKwas>*/;
1370 if (var6){
1371 var7 = NULL;
1372 if (var_new_child == NULL) {
1373 var8 = 0; /* is null */
1374 } else {
1375 var8 = 1; /* arg is null and recv is not */
1376 }
1377 if (var8){
1378 ((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)>*/;
1379 /* <var_new_child:nullable ANode(ANode)> isa TKwas */
1380 cltype10 = type_parser_nodes__TKwas.color;
1381 idtype11 = type_parser_nodes__TKwas.id;
1382 if(cltype10 >= var_new_child->type->table_size) {
1383 var9 = 0;
1384 } else {
1385 var9 = var_new_child->type->type_table[cltype10] == idtype11;
1386 }
1387 if (!var9) {
1388 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11112);
1389 exit(1);
1390 }
1391 self->attrs[COLOR_parser_nodes__ACastAsExternCall___n_kwas].val = var_new_child; /* _n_kwas on <self:ACastAsExternCall> */
1392 } else {
1393 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser/parser_prod.nit", 11115);
1394 exit(1);
1395 }
1396 goto RET_LABEL;
1397 } else {
1398 }
1399 var12 = self->attrs[COLOR_parser_nodes__ACastAsExternCall___n_to_type].val; /* _n_to_type on <self:ACastAsExternCall> */
1400 if (var12 == NULL) {
1401 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_to_type", "src/parser/parser_prod.nit", 11119);
1402 exit(1);
1403 }
1404 var13 = ((short int (*)(val*, val*))(var12->class->vft[COLOR_kernel__Object___61d_61d]))(var12, var_old_child) /* == on <var12:AType>*/;
1405 if (var13){
1406 var14 = NULL;
1407 if (var_new_child == NULL) {
1408 var15 = 0; /* is null */
1409 } else {
1410 var15 = 1; /* arg is null and recv is not */
1411 }
1412 if (var15){
1413 ((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)>*/;
1414 /* <var_new_child:nullable ANode(ANode)> isa AType */
1415 cltype17 = type_parser_nodes__AType.color;
1416 idtype18 = type_parser_nodes__AType.id;
1417 if(cltype17 >= var_new_child->type->table_size) {
1418 var16 = 0;
1419 } else {
1420 var16 = var_new_child->type->type_table[cltype17] == idtype18;
1421 }
1422 if (!var16) {
1423 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11122);
1424 exit(1);
1425 }
1426 self->attrs[COLOR_parser_nodes__ACastAsExternCall___n_to_type].val = var_new_child; /* _n_to_type on <self:ACastAsExternCall> */
1427 } else {
1428 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser/parser_prod.nit", 11125);
1429 exit(1);
1430 }
1431 goto RET_LABEL;
1432 } else {
1433 }
1434 RET_LABEL:;
1435 }
1436 /* method parser_prod#ACastAsExternCall#replace_child for (self: Object, ANode, nullable ANode) */
1437 void VIRTUAL_parser_prod__ACastAsExternCall__replace_child(val* self, val* p0, val* p1) {
1438 parser_prod__ACastAsExternCall__replace_child(self, p0, p1);
1439 RET_LABEL:;
1440 }
1441 /* method parser_prod#ACastAsExternCall#n_from_type= for (self: ACastAsExternCall, AType) */
1442 void parser_prod__ACastAsExternCall__n_from_type_61d(val* self, val* p0) {
1443 val* var_node /* var node: AType */;
1444 var_node = p0;
1445 self->attrs[COLOR_parser_nodes__ACastAsExternCall___n_from_type].val = var_node; /* _n_from_type on <self:ACastAsExternCall> */
1446 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:AType>*/;
1447 RET_LABEL:;
1448 }
1449 /* method parser_prod#ACastAsExternCall#n_from_type= for (self: Object, AType) */
1450 void VIRTUAL_parser_prod__ACastAsExternCall__n_from_type_61d(val* self, val* p0) {
1451 parser_prod__ACastAsExternCall__n_from_type_61d(self, p0);
1452 RET_LABEL:;
1453 }
1454 /* method parser_prod#ACastAsExternCall#n_kwas= for (self: ACastAsExternCall, TKwas) */
1455 void parser_prod__ACastAsExternCall__n_kwas_61d(val* self, val* p0) {
1456 val* var_node /* var node: TKwas */;
1457 var_node = p0;
1458 self->attrs[COLOR_parser_nodes__ACastAsExternCall___n_kwas].val = var_node; /* _n_kwas on <self:ACastAsExternCall> */
1459 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TKwas>*/;
1460 RET_LABEL:;
1461 }
1462 /* method parser_prod#ACastAsExternCall#n_kwas= for (self: Object, TKwas) */
1463 void VIRTUAL_parser_prod__ACastAsExternCall__n_kwas_61d(val* self, val* p0) {
1464 parser_prod__ACastAsExternCall__n_kwas_61d(self, p0);
1465 RET_LABEL:;
1466 }
1467 /* method parser_prod#ACastAsExternCall#n_to_type= for (self: ACastAsExternCall, AType) */
1468 void parser_prod__ACastAsExternCall__n_to_type_61d(val* self, val* p0) {
1469 val* var_node /* var node: AType */;
1470 var_node = p0;
1471 self->attrs[COLOR_parser_nodes__ACastAsExternCall___n_to_type].val = var_node; /* _n_to_type on <self:ACastAsExternCall> */
1472 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:AType>*/;
1473 RET_LABEL:;
1474 }
1475 /* method parser_prod#ACastAsExternCall#n_to_type= for (self: Object, AType) */
1476 void VIRTUAL_parser_prod__ACastAsExternCall__n_to_type_61d(val* self, val* p0) {
1477 parser_prod__ACastAsExternCall__n_to_type_61d(self, p0);
1478 RET_LABEL:;
1479 }
1480 /* method parser_prod#ACastAsExternCall#visit_all for (self: ACastAsExternCall, Visitor) */
1481 void parser_prod__ACastAsExternCall__visit_all(val* self, val* p0) {
1482 val* var_v /* var v: Visitor */;
1483 val* var /* : AType */;
1484 val* var1 /* : TKwas */;
1485 val* var2 /* : AType */;
1486 var_v = p0;
1487 var = self->attrs[COLOR_parser_nodes__ACastAsExternCall___n_from_type].val; /* _n_from_type on <self:ACastAsExternCall> */
1488 if (var == NULL) {
1489 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_from_type", "src/parser/parser_prod.nit", 11150);
1490 exit(1);
1491 }
1492 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
1493 var1 = self->attrs[COLOR_parser_nodes__ACastAsExternCall___n_kwas].val; /* _n_kwas on <self:ACastAsExternCall> */
1494 if (var1 == NULL) {
1495 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwas", "src/parser/parser_prod.nit", 11151);
1496 exit(1);
1497 }
1498 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var1) /* enter_visit on <var_v:Visitor>*/;
1499 var2 = self->attrs[COLOR_parser_nodes__ACastAsExternCall___n_to_type].val; /* _n_to_type on <self:ACastAsExternCall> */
1500 if (var2 == NULL) {
1501 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_to_type", "src/parser/parser_prod.nit", 11152);
1502 exit(1);
1503 }
1504 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var2) /* enter_visit on <var_v:Visitor>*/;
1505 RET_LABEL:;
1506 }
1507 /* method parser_prod#ACastAsExternCall#visit_all for (self: Object, Visitor) */
1508 void VIRTUAL_parser_prod__ACastAsExternCall__visit_all(val* self, val* p0) {
1509 parser_prod__ACastAsExternCall__visit_all(self, p0);
1510 RET_LABEL:;
1511 }
1512 /* method parser_prod#AAsNullableExternCall#empty_init for (self: AAsNullableExternCall) */
1513 void parser_prod__AAsNullableExternCall__empty_init(val* self) {
1514 RET_LABEL:;
1515 }
1516 /* method parser_prod#AAsNullableExternCall#empty_init for (self: Object) */
1517 void VIRTUAL_parser_prod__AAsNullableExternCall__empty_init(val* self) {
1518 parser_prod__AAsNullableExternCall__empty_init(self);
1519 RET_LABEL:;
1520 }
1521 /* method parser_prod#AAsNullableExternCall#init_aasnullableexterncall for (self: AAsNullableExternCall, nullable AType, nullable TKwas, nullable TKwnullable) */
1522 void parser_prod__AAsNullableExternCall__init_aasnullableexterncall(val* self, val* p0, val* p1, val* p2) {
1523 val* var_n_type /* var n_type: nullable AType */;
1524 val* var_n_kwas /* var n_kwas: nullable TKwas */;
1525 val* var_n_kwnullable /* var n_kwnullable: nullable TKwnullable */;
1526 var_n_type = p0;
1527 var_n_kwas = p1;
1528 var_n_kwnullable = p2;
1529 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__AAsNullableExternCall__empty_init]))(self) /* empty_init on <self:AAsNullableExternCall>*/;
1530 if (var_n_type == NULL) {
1531 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 11165);
1532 exit(1);
1533 }
1534 self->attrs[COLOR_parser_nodes__AAsNullableExternCall___n_type].val = var_n_type; /* _n_type on <self:AAsNullableExternCall> */
1535 if (var_n_type == NULL) {
1536 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_prod.nit", 11166);
1537 exit(1);
1538 } else {
1539 ((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>*/;
1540 }
1541 if (var_n_kwas == NULL) {
1542 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 11167);
1543 exit(1);
1544 }
1545 self->attrs[COLOR_parser_nodes__AAsNullableExternCall___n_kwas].val = var_n_kwas; /* _n_kwas on <self:AAsNullableExternCall> */
1546 if (var_n_kwas == NULL) {
1547 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_prod.nit", 11168);
1548 exit(1);
1549 } else {
1550 ((void (*)(val*, val*))(var_n_kwas->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_kwas, self) /* parent= on <var_n_kwas:nullable TKwas>*/;
1551 }
1552 if (var_n_kwnullable == NULL) {
1553 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 11169);
1554 exit(1);
1555 }
1556 self->attrs[COLOR_parser_nodes__AAsNullableExternCall___n_kwnullable].val = var_n_kwnullable; /* _n_kwnullable on <self:AAsNullableExternCall> */
1557 if (var_n_kwnullable == NULL) {
1558 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_prod.nit", 11170);
1559 exit(1);
1560 } else {
1561 ((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>*/;
1562 }
1563 RET_LABEL:;
1564 }
1565 /* method parser_prod#AAsNullableExternCall#init_aasnullableexterncall for (self: Object, nullable AType, nullable TKwas, nullable TKwnullable) */
1566 void VIRTUAL_parser_prod__AAsNullableExternCall__init_aasnullableexterncall(val* self, val* p0, val* p1, val* p2) {
1567 parser_prod__AAsNullableExternCall__init_aasnullableexterncall(self, p0, p1, p2);
1568 RET_LABEL:;
1569 }
1570 /* method parser_prod#AAsNullableExternCall#replace_child for (self: AAsNullableExternCall, ANode, nullable ANode) */
1571 void parser_prod__AAsNullableExternCall__replace_child(val* self, val* p0, val* p1) {
1572 val* var_old_child /* var old_child: ANode */;
1573 val* var_new_child /* var new_child: nullable ANode */;
1574 val* var /* : AType */;
1575 short int var1 /* : Bool */;
1576 val* var2 /* : null */;
1577 short int var3 /* : Bool */;
1578 short int var4 /* : Bool */;
1579 int cltype;
1580 int idtype;
1581 val* var5 /* : TKwas */;
1582 short int var6 /* : Bool */;
1583 val* var7 /* : null */;
1584 short int var8 /* : Bool */;
1585 short int var9 /* : Bool */;
1586 int cltype10;
1587 int idtype11;
1588 val* var12 /* : TKwnullable */;
1589 short int var13 /* : Bool */;
1590 val* var14 /* : null */;
1591 short int var15 /* : Bool */;
1592 short int var16 /* : Bool */;
1593 int cltype17;
1594 int idtype18;
1595 var_old_child = p0;
1596 var_new_child = p1;
1597 var = self->attrs[COLOR_parser_nodes__AAsNullableExternCall___n_type].val; /* _n_type on <self:AAsNullableExternCall> */
1598 if (var == NULL) {
1599 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_type", "src/parser/parser_prod.nit", 11175);
1600 exit(1);
1601 }
1602 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:AType>*/;
1603 if (var1){
1604 var2 = NULL;
1605 if (var_new_child == NULL) {
1606 var3 = 0; /* is null */
1607 } else {
1608 var3 = 1; /* arg is null and recv is not */
1609 }
1610 if (var3){
1611 ((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)>*/;
1612 /* <var_new_child:nullable ANode(ANode)> isa AType */
1613 cltype = type_parser_nodes__AType.color;
1614 idtype = type_parser_nodes__AType.id;
1615 if(cltype >= var_new_child->type->table_size) {
1616 var4 = 0;
1617 } else {
1618 var4 = var_new_child->type->type_table[cltype] == idtype;
1619 }
1620 if (!var4) {
1621 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11178);
1622 exit(1);
1623 }
1624 self->attrs[COLOR_parser_nodes__AAsNullableExternCall___n_type].val = var_new_child; /* _n_type on <self:AAsNullableExternCall> */
1625 } else {
1626 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser/parser_prod.nit", 11181);
1627 exit(1);
1628 }
1629 goto RET_LABEL;
1630 } else {
1631 }
1632 var5 = self->attrs[COLOR_parser_nodes__AAsNullableExternCall___n_kwas].val; /* _n_kwas on <self:AAsNullableExternCall> */
1633 if (var5 == NULL) {
1634 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwas", "src/parser/parser_prod.nit", 11185);
1635 exit(1);
1636 }
1637 var6 = ((short int (*)(val*, val*))(var5->class->vft[COLOR_kernel__Object___61d_61d]))(var5, var_old_child) /* == on <var5:TKwas>*/;
1638 if (var6){
1639 var7 = NULL;
1640 if (var_new_child == NULL) {
1641 var8 = 0; /* is null */
1642 } else {
1643 var8 = 1; /* arg is null and recv is not */
1644 }
1645 if (var8){
1646 ((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)>*/;
1647 /* <var_new_child:nullable ANode(ANode)> isa TKwas */
1648 cltype10 = type_parser_nodes__TKwas.color;
1649 idtype11 = type_parser_nodes__TKwas.id;
1650 if(cltype10 >= var_new_child->type->table_size) {
1651 var9 = 0;
1652 } else {
1653 var9 = var_new_child->type->type_table[cltype10] == idtype11;
1654 }
1655 if (!var9) {
1656 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11188);
1657 exit(1);
1658 }
1659 self->attrs[COLOR_parser_nodes__AAsNullableExternCall___n_kwas].val = var_new_child; /* _n_kwas on <self:AAsNullableExternCall> */
1660 } else {
1661 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser/parser_prod.nit", 11191);
1662 exit(1);
1663 }
1664 goto RET_LABEL;
1665 } else {
1666 }
1667 var12 = self->attrs[COLOR_parser_nodes__AAsNullableExternCall___n_kwnullable].val; /* _n_kwnullable on <self:AAsNullableExternCall> */
1668 if (var12 == NULL) {
1669 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwnullable", "src/parser/parser_prod.nit", 11195);
1670 exit(1);
1671 }
1672 var13 = ((short int (*)(val*, val*))(var12->class->vft[COLOR_kernel__Object___61d_61d]))(var12, var_old_child) /* == on <var12:TKwnullable>*/;
1673 if (var13){
1674 var14 = NULL;
1675 if (var_new_child == NULL) {
1676 var15 = 0; /* is null */
1677 } else {
1678 var15 = 1; /* arg is null and recv is not */
1679 }
1680 if (var15){
1681 ((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)>*/;
1682 /* <var_new_child:nullable ANode(ANode)> isa TKwnullable */
1683 cltype17 = type_parser_nodes__TKwnullable.color;
1684 idtype18 = type_parser_nodes__TKwnullable.id;
1685 if(cltype17 >= var_new_child->type->table_size) {
1686 var16 = 0;
1687 } else {
1688 var16 = var_new_child->type->type_table[cltype17] == idtype18;
1689 }
1690 if (!var16) {
1691 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11198);
1692 exit(1);
1693 }
1694 self->attrs[COLOR_parser_nodes__AAsNullableExternCall___n_kwnullable].val = var_new_child; /* _n_kwnullable on <self:AAsNullableExternCall> */
1695 } else {
1696 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser/parser_prod.nit", 11201);
1697 exit(1);
1698 }
1699 goto RET_LABEL;
1700 } else {
1701 }
1702 RET_LABEL:;
1703 }
1704 /* method parser_prod#AAsNullableExternCall#replace_child for (self: Object, ANode, nullable ANode) */
1705 void VIRTUAL_parser_prod__AAsNullableExternCall__replace_child(val* self, val* p0, val* p1) {
1706 parser_prod__AAsNullableExternCall__replace_child(self, p0, p1);
1707 RET_LABEL:;
1708 }
1709 /* method parser_prod#AAsNullableExternCall#n_type= for (self: AAsNullableExternCall, AType) */
1710 void parser_prod__AAsNullableExternCall__n_type_61d(val* self, val* p0) {
1711 val* var_node /* var node: AType */;
1712 var_node = p0;
1713 self->attrs[COLOR_parser_nodes__AAsNullableExternCall___n_type].val = var_node; /* _n_type on <self:AAsNullableExternCall> */
1714 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:AType>*/;
1715 RET_LABEL:;
1716 }
1717 /* method parser_prod#AAsNullableExternCall#n_type= for (self: Object, AType) */
1718 void VIRTUAL_parser_prod__AAsNullableExternCall__n_type_61d(val* self, val* p0) {
1719 parser_prod__AAsNullableExternCall__n_type_61d(self, p0);
1720 RET_LABEL:;
1721 }
1722 /* method parser_prod#AAsNullableExternCall#n_kwas= for (self: AAsNullableExternCall, TKwas) */
1723 void parser_prod__AAsNullableExternCall__n_kwas_61d(val* self, val* p0) {
1724 val* var_node /* var node: TKwas */;
1725 var_node = p0;
1726 self->attrs[COLOR_parser_nodes__AAsNullableExternCall___n_kwas].val = var_node; /* _n_kwas on <self:AAsNullableExternCall> */
1727 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TKwas>*/;
1728 RET_LABEL:;
1729 }
1730 /* method parser_prod#AAsNullableExternCall#n_kwas= for (self: Object, TKwas) */
1731 void VIRTUAL_parser_prod__AAsNullableExternCall__n_kwas_61d(val* self, val* p0) {
1732 parser_prod__AAsNullableExternCall__n_kwas_61d(self, p0);
1733 RET_LABEL:;
1734 }
1735 /* method parser_prod#AAsNullableExternCall#n_kwnullable= for (self: AAsNullableExternCall, TKwnullable) */
1736 void parser_prod__AAsNullableExternCall__n_kwnullable_61d(val* self, val* p0) {
1737 val* var_node /* var node: TKwnullable */;
1738 var_node = p0;
1739 self->attrs[COLOR_parser_nodes__AAsNullableExternCall___n_kwnullable].val = var_node; /* _n_kwnullable on <self:AAsNullableExternCall> */
1740 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TKwnullable>*/;
1741 RET_LABEL:;
1742 }
1743 /* method parser_prod#AAsNullableExternCall#n_kwnullable= for (self: Object, TKwnullable) */
1744 void VIRTUAL_parser_prod__AAsNullableExternCall__n_kwnullable_61d(val* self, val* p0) {
1745 parser_prod__AAsNullableExternCall__n_kwnullable_61d(self, p0);
1746 RET_LABEL:;
1747 }
1748 /* method parser_prod#AAsNullableExternCall#visit_all for (self: AAsNullableExternCall, Visitor) */
1749 void parser_prod__AAsNullableExternCall__visit_all(val* self, val* p0) {
1750 val* var_v /* var v: Visitor */;
1751 val* var /* : AType */;
1752 val* var1 /* : TKwas */;
1753 val* var2 /* : TKwnullable */;
1754 var_v = p0;
1755 var = self->attrs[COLOR_parser_nodes__AAsNullableExternCall___n_type].val; /* _n_type on <self:AAsNullableExternCall> */
1756 if (var == NULL) {
1757 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_type", "src/parser/parser_prod.nit", 11226);
1758 exit(1);
1759 }
1760 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
1761 var1 = self->attrs[COLOR_parser_nodes__AAsNullableExternCall___n_kwas].val; /* _n_kwas on <self:AAsNullableExternCall> */
1762 if (var1 == NULL) {
1763 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwas", "src/parser/parser_prod.nit", 11227);
1764 exit(1);
1765 }
1766 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var1) /* enter_visit on <var_v:Visitor>*/;
1767 var2 = self->attrs[COLOR_parser_nodes__AAsNullableExternCall___n_kwnullable].val; /* _n_kwnullable on <self:AAsNullableExternCall> */
1768 if (var2 == NULL) {
1769 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwnullable", "src/parser/parser_prod.nit", 11228);
1770 exit(1);
1771 }
1772 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var2) /* enter_visit on <var_v:Visitor>*/;
1773 RET_LABEL:;
1774 }
1775 /* method parser_prod#AAsNullableExternCall#visit_all for (self: Object, Visitor) */
1776 void VIRTUAL_parser_prod__AAsNullableExternCall__visit_all(val* self, val* p0) {
1777 parser_prod__AAsNullableExternCall__visit_all(self, p0);
1778 RET_LABEL:;
1779 }
1780 /* method parser_prod#AAsNotNullableExternCall#empty_init for (self: AAsNotNullableExternCall) */
1781 void parser_prod__AAsNotNullableExternCall__empty_init(val* self) {
1782 RET_LABEL:;
1783 }
1784 /* method parser_prod#AAsNotNullableExternCall#empty_init for (self: Object) */
1785 void VIRTUAL_parser_prod__AAsNotNullableExternCall__empty_init(val* self) {
1786 parser_prod__AAsNotNullableExternCall__empty_init(self);
1787 RET_LABEL:;
1788 }
1789 /* method parser_prod#AAsNotNullableExternCall#init_aasnotnullableexterncall for (self: AAsNotNullableExternCall, nullable AType, nullable TKwas, nullable TKwnot, nullable TKwnullable) */
1790 void parser_prod__AAsNotNullableExternCall__init_aasnotnullableexterncall(val* self, val* p0, val* p1, val* p2, val* p3) {
1791 val* var_n_type /* var n_type: nullable AType */;
1792 val* var_n_kwas /* var n_kwas: nullable TKwas */;
1793 val* var_n_kwnot /* var n_kwnot: nullable TKwnot */;
1794 val* var_n_kwnullable /* var n_kwnullable: nullable TKwnullable */;
1795 var_n_type = p0;
1796 var_n_kwas = p1;
1797 var_n_kwnot = p2;
1798 var_n_kwnullable = p3;
1799 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__AAsNotNullableExternCall__empty_init]))(self) /* empty_init on <self:AAsNotNullableExternCall>*/;
1800 if (var_n_type == NULL) {
1801 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 11242);
1802 exit(1);
1803 }
1804 self->attrs[COLOR_parser_nodes__AAsNotNullableExternCall___n_type].val = var_n_type; /* _n_type on <self:AAsNotNullableExternCall> */
1805 if (var_n_type == NULL) {
1806 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_prod.nit", 11243);
1807 exit(1);
1808 } else {
1809 ((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>*/;
1810 }
1811 if (var_n_kwas == NULL) {
1812 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 11244);
1813 exit(1);
1814 }
1815 self->attrs[COLOR_parser_nodes__AAsNotNullableExternCall___n_kwas].val = var_n_kwas; /* _n_kwas on <self:AAsNotNullableExternCall> */
1816 if (var_n_kwas == NULL) {
1817 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_prod.nit", 11245);
1818 exit(1);
1819 } else {
1820 ((void (*)(val*, val*))(var_n_kwas->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_kwas, self) /* parent= on <var_n_kwas:nullable TKwas>*/;
1821 }
1822 if (var_n_kwnot == NULL) {
1823 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 11246);
1824 exit(1);
1825 }
1826 self->attrs[COLOR_parser_nodes__AAsNotNullableExternCall___n_kwnot].val = var_n_kwnot; /* _n_kwnot on <self:AAsNotNullableExternCall> */
1827 if (var_n_kwnot == NULL) {
1828 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_prod.nit", 11247);
1829 exit(1);
1830 } else {
1831 ((void (*)(val*, val*))(var_n_kwnot->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_kwnot, self) /* parent= on <var_n_kwnot:nullable TKwnot>*/;
1832 }
1833 if (var_n_kwnullable == NULL) {
1834 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 11248);
1835 exit(1);
1836 }
1837 self->attrs[COLOR_parser_nodes__AAsNotNullableExternCall___n_kwnullable].val = var_n_kwnullable; /* _n_kwnullable on <self:AAsNotNullableExternCall> */
1838 if (var_n_kwnullable == NULL) {
1839 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_prod.nit", 11249);
1840 exit(1);
1841 } else {
1842 ((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>*/;
1843 }
1844 RET_LABEL:;
1845 }
1846 /* method parser_prod#AAsNotNullableExternCall#init_aasnotnullableexterncall for (self: Object, nullable AType, nullable TKwas, nullable TKwnot, nullable TKwnullable) */
1847 void VIRTUAL_parser_prod__AAsNotNullableExternCall__init_aasnotnullableexterncall(val* self, val* p0, val* p1, val* p2, val* p3) {
1848 parser_prod__AAsNotNullableExternCall__init_aasnotnullableexterncall(self, p0, p1, p2, p3);
1849 RET_LABEL:;
1850 }
1851 /* method parser_prod#AAsNotNullableExternCall#replace_child for (self: AAsNotNullableExternCall, ANode, nullable ANode) */
1852 void parser_prod__AAsNotNullableExternCall__replace_child(val* self, val* p0, val* p1) {
1853 val* var_old_child /* var old_child: ANode */;
1854 val* var_new_child /* var new_child: nullable ANode */;
1855 val* var /* : AType */;
1856 short int var1 /* : Bool */;
1857 val* var2 /* : null */;
1858 short int var3 /* : Bool */;
1859 short int var4 /* : Bool */;
1860 int cltype;
1861 int idtype;
1862 val* var5 /* : TKwas */;
1863 short int var6 /* : Bool */;
1864 val* var7 /* : null */;
1865 short int var8 /* : Bool */;
1866 short int var9 /* : Bool */;
1867 int cltype10;
1868 int idtype11;
1869 val* var12 /* : TKwnot */;
1870 short int var13 /* : Bool */;
1871 val* var14 /* : null */;
1872 short int var15 /* : Bool */;
1873 short int var16 /* : Bool */;
1874 int cltype17;
1875 int idtype18;
1876 val* var19 /* : TKwnullable */;
1877 short int var20 /* : Bool */;
1878 val* var21 /* : null */;
1879 short int var22 /* : Bool */;
1880 short int var23 /* : Bool */;
1881 int cltype24;
1882 int idtype25;
1883 var_old_child = p0;
1884 var_new_child = p1;
1885 var = self->attrs[COLOR_parser_nodes__AAsNotNullableExternCall___n_type].val; /* _n_type on <self:AAsNotNullableExternCall> */
1886 if (var == NULL) {
1887 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_type", "src/parser/parser_prod.nit", 11254);
1888 exit(1);
1889 }
1890 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:AType>*/;
1891 if (var1){
1892 var2 = NULL;
1893 if (var_new_child == NULL) {
1894 var3 = 0; /* is null */
1895 } else {
1896 var3 = 1; /* arg is null and recv is not */
1897 }
1898 if (var3){
1899 ((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)>*/;
1900 /* <var_new_child:nullable ANode(ANode)> isa AType */
1901 cltype = type_parser_nodes__AType.color;
1902 idtype = type_parser_nodes__AType.id;
1903 if(cltype >= var_new_child->type->table_size) {
1904 var4 = 0;
1905 } else {
1906 var4 = var_new_child->type->type_table[cltype] == idtype;
1907 }
1908 if (!var4) {
1909 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11257);
1910 exit(1);
1911 }
1912 self->attrs[COLOR_parser_nodes__AAsNotNullableExternCall___n_type].val = var_new_child; /* _n_type on <self:AAsNotNullableExternCall> */
1913 } else {
1914 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser/parser_prod.nit", 11260);
1915 exit(1);
1916 }
1917 goto RET_LABEL;
1918 } else {
1919 }
1920 var5 = self->attrs[COLOR_parser_nodes__AAsNotNullableExternCall___n_kwas].val; /* _n_kwas on <self:AAsNotNullableExternCall> */
1921 if (var5 == NULL) {
1922 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwas", "src/parser/parser_prod.nit", 11264);
1923 exit(1);
1924 }
1925 var6 = ((short int (*)(val*, val*))(var5->class->vft[COLOR_kernel__Object___61d_61d]))(var5, var_old_child) /* == on <var5:TKwas>*/;
1926 if (var6){
1927 var7 = NULL;
1928 if (var_new_child == NULL) {
1929 var8 = 0; /* is null */
1930 } else {
1931 var8 = 1; /* arg is null and recv is not */
1932 }
1933 if (var8){
1934 ((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)>*/;
1935 /* <var_new_child:nullable ANode(ANode)> isa TKwas */
1936 cltype10 = type_parser_nodes__TKwas.color;
1937 idtype11 = type_parser_nodes__TKwas.id;
1938 if(cltype10 >= var_new_child->type->table_size) {
1939 var9 = 0;
1940 } else {
1941 var9 = var_new_child->type->type_table[cltype10] == idtype11;
1942 }
1943 if (!var9) {
1944 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11267);
1945 exit(1);
1946 }
1947 self->attrs[COLOR_parser_nodes__AAsNotNullableExternCall___n_kwas].val = var_new_child; /* _n_kwas on <self:AAsNotNullableExternCall> */
1948 } else {
1949 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser/parser_prod.nit", 11270);
1950 exit(1);
1951 }
1952 goto RET_LABEL;
1953 } else {
1954 }
1955 var12 = self->attrs[COLOR_parser_nodes__AAsNotNullableExternCall___n_kwnot].val; /* _n_kwnot on <self:AAsNotNullableExternCall> */
1956 if (var12 == NULL) {
1957 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwnot", "src/parser/parser_prod.nit", 11274);
1958 exit(1);
1959 }
1960 var13 = ((short int (*)(val*, val*))(var12->class->vft[COLOR_kernel__Object___61d_61d]))(var12, var_old_child) /* == on <var12:TKwnot>*/;
1961 if (var13){
1962 var14 = NULL;
1963 if (var_new_child == NULL) {
1964 var15 = 0; /* is null */
1965 } else {
1966 var15 = 1; /* arg is null and recv is not */
1967 }
1968 if (var15){
1969 ((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)>*/;
1970 /* <var_new_child:nullable ANode(ANode)> isa TKwnot */
1971 cltype17 = type_parser_nodes__TKwnot.color;
1972 idtype18 = type_parser_nodes__TKwnot.id;
1973 if(cltype17 >= var_new_child->type->table_size) {
1974 var16 = 0;
1975 } else {
1976 var16 = var_new_child->type->type_table[cltype17] == idtype18;
1977 }
1978 if (!var16) {
1979 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11277);
1980 exit(1);
1981 }
1982 self->attrs[COLOR_parser_nodes__AAsNotNullableExternCall___n_kwnot].val = var_new_child; /* _n_kwnot on <self:AAsNotNullableExternCall> */
1983 } else {
1984 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser/parser_prod.nit", 11280);
1985 exit(1);
1986 }
1987 goto RET_LABEL;
1988 } else {
1989 }
1990 var19 = self->attrs[COLOR_parser_nodes__AAsNotNullableExternCall___n_kwnullable].val; /* _n_kwnullable on <self:AAsNotNullableExternCall> */
1991 if (var19 == NULL) {
1992 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwnullable", "src/parser/parser_prod.nit", 11284);
1993 exit(1);
1994 }
1995 var20 = ((short int (*)(val*, val*))(var19->class->vft[COLOR_kernel__Object___61d_61d]))(var19, var_old_child) /* == on <var19:TKwnullable>*/;
1996 if (var20){
1997 var21 = NULL;
1998 if (var_new_child == NULL) {
1999 var22 = 0; /* is null */
2000 } else {
2001 var22 = 1; /* arg is null and recv is not */
2002 }
2003 if (var22){
2004 ((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)>*/;
2005 /* <var_new_child:nullable ANode(ANode)> isa TKwnullable */
2006 cltype24 = type_parser_nodes__TKwnullable.color;
2007 idtype25 = type_parser_nodes__TKwnullable.id;
2008 if(cltype24 >= var_new_child->type->table_size) {
2009 var23 = 0;
2010 } else {
2011 var23 = var_new_child->type->type_table[cltype24] == idtype25;
2012 }
2013 if (!var23) {
2014 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11287);
2015 exit(1);
2016 }
2017 self->attrs[COLOR_parser_nodes__AAsNotNullableExternCall___n_kwnullable].val = var_new_child; /* _n_kwnullable on <self:AAsNotNullableExternCall> */
2018 } else {
2019 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser/parser_prod.nit", 11290);
2020 exit(1);
2021 }
2022 goto RET_LABEL;
2023 } else {
2024 }
2025 RET_LABEL:;
2026 }
2027 /* method parser_prod#AAsNotNullableExternCall#replace_child for (self: Object, ANode, nullable ANode) */
2028 void VIRTUAL_parser_prod__AAsNotNullableExternCall__replace_child(val* self, val* p0, val* p1) {
2029 parser_prod__AAsNotNullableExternCall__replace_child(self, p0, p1);
2030 RET_LABEL:;
2031 }
2032 /* method parser_prod#AAsNotNullableExternCall#n_type= for (self: AAsNotNullableExternCall, AType) */
2033 void parser_prod__AAsNotNullableExternCall__n_type_61d(val* self, val* p0) {
2034 val* var_node /* var node: AType */;
2035 var_node = p0;
2036 self->attrs[COLOR_parser_nodes__AAsNotNullableExternCall___n_type].val = var_node; /* _n_type on <self:AAsNotNullableExternCall> */
2037 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:AType>*/;
2038 RET_LABEL:;
2039 }
2040 /* method parser_prod#AAsNotNullableExternCall#n_type= for (self: Object, AType) */
2041 void VIRTUAL_parser_prod__AAsNotNullableExternCall__n_type_61d(val* self, val* p0) {
2042 parser_prod__AAsNotNullableExternCall__n_type_61d(self, p0);
2043 RET_LABEL:;
2044 }
2045 /* method parser_prod#AAsNotNullableExternCall#n_kwas= for (self: AAsNotNullableExternCall, TKwas) */
2046 void parser_prod__AAsNotNullableExternCall__n_kwas_61d(val* self, val* p0) {
2047 val* var_node /* var node: TKwas */;
2048 var_node = p0;
2049 self->attrs[COLOR_parser_nodes__AAsNotNullableExternCall___n_kwas].val = var_node; /* _n_kwas on <self:AAsNotNullableExternCall> */
2050 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TKwas>*/;
2051 RET_LABEL:;
2052 }
2053 /* method parser_prod#AAsNotNullableExternCall#n_kwas= for (self: Object, TKwas) */
2054 void VIRTUAL_parser_prod__AAsNotNullableExternCall__n_kwas_61d(val* self, val* p0) {
2055 parser_prod__AAsNotNullableExternCall__n_kwas_61d(self, p0);
2056 RET_LABEL:;
2057 }
2058 /* method parser_prod#AAsNotNullableExternCall#n_kwnot= for (self: AAsNotNullableExternCall, TKwnot) */
2059 void parser_prod__AAsNotNullableExternCall__n_kwnot_61d(val* self, val* p0) {
2060 val* var_node /* var node: TKwnot */;
2061 var_node = p0;
2062 self->attrs[COLOR_parser_nodes__AAsNotNullableExternCall___n_kwnot].val = var_node; /* _n_kwnot on <self:AAsNotNullableExternCall> */
2063 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TKwnot>*/;
2064 RET_LABEL:;
2065 }
2066 /* method parser_prod#AAsNotNullableExternCall#n_kwnot= for (self: Object, TKwnot) */
2067 void VIRTUAL_parser_prod__AAsNotNullableExternCall__n_kwnot_61d(val* self, val* p0) {
2068 parser_prod__AAsNotNullableExternCall__n_kwnot_61d(self, p0);
2069 RET_LABEL:;
2070 }
2071 /* method parser_prod#AAsNotNullableExternCall#n_kwnullable= for (self: AAsNotNullableExternCall, TKwnullable) */
2072 void parser_prod__AAsNotNullableExternCall__n_kwnullable_61d(val* self, val* p0) {
2073 val* var_node /* var node: TKwnullable */;
2074 var_node = p0;
2075 self->attrs[COLOR_parser_nodes__AAsNotNullableExternCall___n_kwnullable].val = var_node; /* _n_kwnullable on <self:AAsNotNullableExternCall> */
2076 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TKwnullable>*/;
2077 RET_LABEL:;
2078 }
2079 /* method parser_prod#AAsNotNullableExternCall#n_kwnullable= for (self: Object, TKwnullable) */
2080 void VIRTUAL_parser_prod__AAsNotNullableExternCall__n_kwnullable_61d(val* self, val* p0) {
2081 parser_prod__AAsNotNullableExternCall__n_kwnullable_61d(self, p0);
2082 RET_LABEL:;
2083 }
2084 /* method parser_prod#AAsNotNullableExternCall#visit_all for (self: AAsNotNullableExternCall, Visitor) */
2085 void parser_prod__AAsNotNullableExternCall__visit_all(val* self, val* p0) {
2086 val* var_v /* var v: Visitor */;
2087 val* var /* : AType */;
2088 val* var1 /* : TKwas */;
2089 val* var2 /* : TKwnot */;
2090 val* var3 /* : TKwnullable */;
2091 var_v = p0;
2092 var = self->attrs[COLOR_parser_nodes__AAsNotNullableExternCall___n_type].val; /* _n_type on <self:AAsNotNullableExternCall> */
2093 if (var == NULL) {
2094 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_type", "src/parser/parser_prod.nit", 11320);
2095 exit(1);
2096 }
2097 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
2098 var1 = self->attrs[COLOR_parser_nodes__AAsNotNullableExternCall___n_kwas].val; /* _n_kwas on <self:AAsNotNullableExternCall> */
2099 if (var1 == NULL) {
2100 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwas", "src/parser/parser_prod.nit", 11321);
2101 exit(1);
2102 }
2103 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var1) /* enter_visit on <var_v:Visitor>*/;
2104 var2 = self->attrs[COLOR_parser_nodes__AAsNotNullableExternCall___n_kwnot].val; /* _n_kwnot on <self:AAsNotNullableExternCall> */
2105 if (var2 == NULL) {
2106 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwnot", "src/parser/parser_prod.nit", 11322);
2107 exit(1);
2108 }
2109 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var2) /* enter_visit on <var_v:Visitor>*/;
2110 var3 = self->attrs[COLOR_parser_nodes__AAsNotNullableExternCall___n_kwnullable].val; /* _n_kwnullable on <self:AAsNotNullableExternCall> */
2111 if (var3 == NULL) {
2112 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwnullable", "src/parser/parser_prod.nit", 11323);
2113 exit(1);
2114 }
2115 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var3) /* enter_visit on <var_v:Visitor>*/;
2116 RET_LABEL:;
2117 }
2118 /* method parser_prod#AAsNotNullableExternCall#visit_all for (self: Object, Visitor) */
2119 void VIRTUAL_parser_prod__AAsNotNullableExternCall__visit_all(val* self, val* p0) {
2120 parser_prod__AAsNotNullableExternCall__visit_all(self, p0);
2121 RET_LABEL:;
2122 }
2123 /* method parser_prod#AInLanguage#empty_init for (self: AInLanguage) */
2124 void parser_prod__AInLanguage__empty_init(val* self) {
2125 RET_LABEL:;
2126 }
2127 /* method parser_prod#AInLanguage#empty_init for (self: Object) */
2128 void VIRTUAL_parser_prod__AInLanguage__empty_init(val* self) {
2129 parser_prod__AInLanguage__empty_init(self);
2130 RET_LABEL:;
2131 }
2132 /* method parser_prod#AInLanguage#init_ainlanguage for (self: AInLanguage, nullable TKwin, nullable TString) */
2133 void parser_prod__AInLanguage__init_ainlanguage(val* self, val* p0, val* p1) {
2134 val* var_n_kwin /* var n_kwin: nullable TKwin */;
2135 val* var_n_string /* var n_string: nullable TString */;
2136 var_n_kwin = p0;
2137 var_n_string = p1;
2138 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__AInLanguage__empty_init]))(self) /* empty_init on <self:AInLanguage>*/;
2139 if (var_n_kwin == NULL) {
2140 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 11335);
2141 exit(1);
2142 }
2143 self->attrs[COLOR_parser_nodes__AInLanguage___n_kwin].val = var_n_kwin; /* _n_kwin on <self:AInLanguage> */
2144 if (var_n_kwin == NULL) {
2145 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_prod.nit", 11336);
2146 exit(1);
2147 } else {
2148 ((void (*)(val*, val*))(var_n_kwin->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_kwin, self) /* parent= on <var_n_kwin:nullable TKwin>*/;
2149 }
2150 if (var_n_string == NULL) {
2151 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 11337);
2152 exit(1);
2153 }
2154 self->attrs[COLOR_parser_nodes__AInLanguage___n_string].val = var_n_string; /* _n_string on <self:AInLanguage> */
2155 if (var_n_string == NULL) {
2156 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_prod.nit", 11338);
2157 exit(1);
2158 } else {
2159 ((void (*)(val*, val*))(var_n_string->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_string, self) /* parent= on <var_n_string:nullable TString>*/;
2160 }
2161 RET_LABEL:;
2162 }
2163 /* method parser_prod#AInLanguage#init_ainlanguage for (self: Object, nullable TKwin, nullable TString) */
2164 void VIRTUAL_parser_prod__AInLanguage__init_ainlanguage(val* self, val* p0, val* p1) {
2165 parser_prod__AInLanguage__init_ainlanguage(self, p0, p1);
2166 RET_LABEL:;
2167 }
2168 /* method parser_prod#AInLanguage#replace_child for (self: AInLanguage, ANode, nullable ANode) */
2169 void parser_prod__AInLanguage__replace_child(val* self, val* p0, val* p1) {
2170 val* var_old_child /* var old_child: ANode */;
2171 val* var_new_child /* var new_child: nullable ANode */;
2172 val* var /* : TKwin */;
2173 short int var1 /* : Bool */;
2174 val* var2 /* : null */;
2175 short int var3 /* : Bool */;
2176 short int var4 /* : Bool */;
2177 int cltype;
2178 int idtype;
2179 val* var5 /* : TString */;
2180 short int var6 /* : Bool */;
2181 val* var7 /* : null */;
2182 short int var8 /* : Bool */;
2183 short int var9 /* : Bool */;
2184 int cltype10;
2185 int idtype11;
2186 var_old_child = p0;
2187 var_new_child = p1;
2188 var = self->attrs[COLOR_parser_nodes__AInLanguage___n_kwin].val; /* _n_kwin on <self:AInLanguage> */
2189 if (var == NULL) {
2190 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwin", "src/parser/parser_prod.nit", 11343);
2191 exit(1);
2192 }
2193 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:TKwin>*/;
2194 if (var1){
2195 var2 = NULL;
2196 if (var_new_child == NULL) {
2197 var3 = 0; /* is null */
2198 } else {
2199 var3 = 1; /* arg is null and recv is not */
2200 }
2201 if (var3){
2202 ((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)>*/;
2203 /* <var_new_child:nullable ANode(ANode)> isa TKwin */
2204 cltype = type_parser_nodes__TKwin.color;
2205 idtype = type_parser_nodes__TKwin.id;
2206 if(cltype >= var_new_child->type->table_size) {
2207 var4 = 0;
2208 } else {
2209 var4 = var_new_child->type->type_table[cltype] == idtype;
2210 }
2211 if (!var4) {
2212 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11346);
2213 exit(1);
2214 }
2215 self->attrs[COLOR_parser_nodes__AInLanguage___n_kwin].val = var_new_child; /* _n_kwin on <self:AInLanguage> */
2216 } else {
2217 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser/parser_prod.nit", 11349);
2218 exit(1);
2219 }
2220 goto RET_LABEL;
2221 } else {
2222 }
2223 var5 = self->attrs[COLOR_parser_nodes__AInLanguage___n_string].val; /* _n_string on <self:AInLanguage> */
2224 if (var5 == NULL) {
2225 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_string", "src/parser/parser_prod.nit", 11353);
2226 exit(1);
2227 }
2228 var6 = ((short int (*)(val*, val*))(var5->class->vft[COLOR_kernel__Object___61d_61d]))(var5, var_old_child) /* == on <var5:TString>*/;
2229 if (var6){
2230 var7 = NULL;
2231 if (var_new_child == NULL) {
2232 var8 = 0; /* is null */
2233 } else {
2234 var8 = 1; /* arg is null and recv is not */
2235 }
2236 if (var8){
2237 ((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)>*/;
2238 /* <var_new_child:nullable ANode(ANode)> isa TString */
2239 cltype10 = type_parser_nodes__TString.color;
2240 idtype11 = type_parser_nodes__TString.id;
2241 if(cltype10 >= var_new_child->type->table_size) {
2242 var9 = 0;
2243 } else {
2244 var9 = var_new_child->type->type_table[cltype10] == idtype11;
2245 }
2246 if (!var9) {
2247 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11356);
2248 exit(1);
2249 }
2250 self->attrs[COLOR_parser_nodes__AInLanguage___n_string].val = var_new_child; /* _n_string on <self:AInLanguage> */
2251 } else {
2252 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser/parser_prod.nit", 11359);
2253 exit(1);
2254 }
2255 goto RET_LABEL;
2256 } else {
2257 }
2258 RET_LABEL:;
2259 }
2260 /* method parser_prod#AInLanguage#replace_child for (self: Object, ANode, nullable ANode) */
2261 void VIRTUAL_parser_prod__AInLanguage__replace_child(val* self, val* p0, val* p1) {
2262 parser_prod__AInLanguage__replace_child(self, p0, p1);
2263 RET_LABEL:;
2264 }
2265 /* method parser_prod#AInLanguage#n_kwin= for (self: AInLanguage, TKwin) */
2266 void parser_prod__AInLanguage__n_kwin_61d(val* self, val* p0) {
2267 val* var_node /* var node: TKwin */;
2268 var_node = p0;
2269 self->attrs[COLOR_parser_nodes__AInLanguage___n_kwin].val = var_node; /* _n_kwin on <self:AInLanguage> */
2270 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TKwin>*/;
2271 RET_LABEL:;
2272 }
2273 /* method parser_prod#AInLanguage#n_kwin= for (self: Object, TKwin) */
2274 void VIRTUAL_parser_prod__AInLanguage__n_kwin_61d(val* self, val* p0) {
2275 parser_prod__AInLanguage__n_kwin_61d(self, p0);
2276 RET_LABEL:;
2277 }
2278 /* method parser_prod#AInLanguage#n_string= for (self: AInLanguage, TString) */
2279 void parser_prod__AInLanguage__n_string_61d(val* self, val* p0) {
2280 val* var_node /* var node: TString */;
2281 var_node = p0;
2282 self->attrs[COLOR_parser_nodes__AInLanguage___n_string].val = var_node; /* _n_string on <self:AInLanguage> */
2283 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TString>*/;
2284 RET_LABEL:;
2285 }
2286 /* method parser_prod#AInLanguage#n_string= for (self: Object, TString) */
2287 void VIRTUAL_parser_prod__AInLanguage__n_string_61d(val* self, val* p0) {
2288 parser_prod__AInLanguage__n_string_61d(self, p0);
2289 RET_LABEL:;
2290 }
2291 /* method parser_prod#AInLanguage#visit_all for (self: AInLanguage, Visitor) */
2292 void parser_prod__AInLanguage__visit_all(val* self, val* p0) {
2293 val* var_v /* var v: Visitor */;
2294 val* var /* : TKwin */;
2295 val* var1 /* : TString */;
2296 var_v = p0;
2297 var = self->attrs[COLOR_parser_nodes__AInLanguage___n_kwin].val; /* _n_kwin on <self:AInLanguage> */
2298 if (var == NULL) {
2299 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_kwin", "src/parser/parser_prod.nit", 11379);
2300 exit(1);
2301 }
2302 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
2303 var1 = self->attrs[COLOR_parser_nodes__AInLanguage___n_string].val; /* _n_string on <self:AInLanguage> */
2304 if (var1 == NULL) {
2305 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_string", "src/parser/parser_prod.nit", 11380);
2306 exit(1);
2307 }
2308 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var1) /* enter_visit on <var_v:Visitor>*/;
2309 RET_LABEL:;
2310 }
2311 /* method parser_prod#AInLanguage#visit_all for (self: Object, Visitor) */
2312 void VIRTUAL_parser_prod__AInLanguage__visit_all(val* self, val* p0) {
2313 parser_prod__AInLanguage__visit_all(self, p0);
2314 RET_LABEL:;
2315 }
2316 /* method parser_prod#AExternCodeBlock#empty_init for (self: AExternCodeBlock) */
2317 void parser_prod__AExternCodeBlock__empty_init(val* self) {
2318 RET_LABEL:;
2319 }
2320 /* method parser_prod#AExternCodeBlock#empty_init for (self: Object) */
2321 void VIRTUAL_parser_prod__AExternCodeBlock__empty_init(val* self) {
2322 parser_prod__AExternCodeBlock__empty_init(self);
2323 RET_LABEL:;
2324 }
2325 /* method parser_prod#AExternCodeBlock#init_aexterncodeblock for (self: AExternCodeBlock, nullable AInLanguage, nullable TExternCodeSegment) */
2326 void parser_prod__AExternCodeBlock__init_aexterncodeblock(val* self, val* p0, val* p1) {
2327 val* var_n_in_language /* var n_in_language: nullable AInLanguage */;
2328 val* var_n_extern_code_segment /* var n_extern_code_segment: nullable TExternCodeSegment */;
2329 val* var /* : null */;
2330 short int var1 /* : Bool */;
2331 var_n_in_language = p0;
2332 var_n_extern_code_segment = p1;
2333 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__AExternCodeBlock__empty_init]))(self) /* empty_init on <self:AExternCodeBlock>*/;
2334 self->attrs[COLOR_parser_nodes__AExternCodeBlock___n_in_language].val = var_n_in_language; /* _n_in_language on <self:AExternCodeBlock> */
2335 var = NULL;
2336 if (var_n_in_language == NULL) {
2337 var1 = 0; /* is null */
2338 } else {
2339 var1 = 1; /* arg is null and recv is not */
2340 }
2341 if (var1){
2342 ((void (*)(val*, val*))(var_n_in_language->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_in_language, self) /* parent= on <var_n_in_language:nullable AInLanguage(AInLanguage)>*/;
2343 } else {
2344 }
2345 if (var_n_extern_code_segment == NULL) {
2346 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 11396);
2347 exit(1);
2348 }
2349 self->attrs[COLOR_parser_nodes__AExternCodeBlock___n_extern_code_segment].val = var_n_extern_code_segment; /* _n_extern_code_segment on <self:AExternCodeBlock> */
2350 if (var_n_extern_code_segment == NULL) {
2351 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_prod.nit", 11397);
2352 exit(1);
2353 } else {
2354 ((void (*)(val*, val*))(var_n_extern_code_segment->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_extern_code_segment, self) /* parent= on <var_n_extern_code_segment:nullable TExternCodeSegment>*/;
2355 }
2356 RET_LABEL:;
2357 }
2358 /* method parser_prod#AExternCodeBlock#init_aexterncodeblock for (self: Object, nullable AInLanguage, nullable TExternCodeSegment) */
2359 void VIRTUAL_parser_prod__AExternCodeBlock__init_aexterncodeblock(val* self, val* p0, val* p1) {
2360 parser_prod__AExternCodeBlock__init_aexterncodeblock(self, p0, p1);
2361 RET_LABEL:;
2362 }
2363 /* method parser_prod#AExternCodeBlock#replace_child for (self: AExternCodeBlock, ANode, nullable ANode) */
2364 void parser_prod__AExternCodeBlock__replace_child(val* self, val* p0, val* p1) {
2365 val* var_old_child /* var old_child: ANode */;
2366 val* var_new_child /* var new_child: nullable ANode */;
2367 val* var /* : nullable AInLanguage */;
2368 short int var1 /* : Bool */;
2369 val* var2 /* : null */;
2370 short int var3 /* : Bool */;
2371 short int var4 /* : Bool */;
2372 int cltype;
2373 int idtype;
2374 val* var5 /* : null */;
2375 val* var6 /* : TExternCodeSegment */;
2376 short int var7 /* : Bool */;
2377 val* var8 /* : null */;
2378 short int var9 /* : Bool */;
2379 short int var10 /* : Bool */;
2380 int cltype11;
2381 int idtype12;
2382 var_old_child = p0;
2383 var_new_child = p1;
2384 var = self->attrs[COLOR_parser_nodes__AExternCodeBlock___n_in_language].val; /* _n_in_language on <self:AExternCodeBlock> */
2385 if (var == NULL) {
2386 var1 = 0; /* <var_old_child:ANode> cannot be null */
2387 } else {
2388 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:nullable AInLanguage>*/;
2389 }
2390 if (var1){
2391 var2 = NULL;
2392 if (var_new_child == NULL) {
2393 var3 = 0; /* is null */
2394 } else {
2395 var3 = 1; /* arg is null and recv is not */
2396 }
2397 if (var3){
2398 ((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)>*/;
2399 /* <var_new_child:nullable ANode(ANode)> isa AInLanguage */
2400 cltype = type_parser_nodes__AInLanguage.color;
2401 idtype = type_parser_nodes__AInLanguage.id;
2402 if(cltype >= var_new_child->type->table_size) {
2403 var4 = 0;
2404 } else {
2405 var4 = var_new_child->type->type_table[cltype] == idtype;
2406 }
2407 if (!var4) {
2408 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11405);
2409 exit(1);
2410 }
2411 self->attrs[COLOR_parser_nodes__AExternCodeBlock___n_in_language].val = var_new_child; /* _n_in_language on <self:AExternCodeBlock> */
2412 } else {
2413 var5 = NULL;
2414 self->attrs[COLOR_parser_nodes__AExternCodeBlock___n_in_language].val = var5; /* _n_in_language on <self:AExternCodeBlock> */
2415 }
2416 goto RET_LABEL;
2417 } else {
2418 }
2419 var6 = self->attrs[COLOR_parser_nodes__AExternCodeBlock___n_extern_code_segment].val; /* _n_extern_code_segment on <self:AExternCodeBlock> */
2420 if (var6 == NULL) {
2421 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_extern_code_segment", "src/parser/parser_prod.nit", 11412);
2422 exit(1);
2423 }
2424 var7 = ((short int (*)(val*, val*))(var6->class->vft[COLOR_kernel__Object___61d_61d]))(var6, var_old_child) /* == on <var6:TExternCodeSegment>*/;
2425 if (var7){
2426 var8 = NULL;
2427 if (var_new_child == NULL) {
2428 var9 = 0; /* is null */
2429 } else {
2430 var9 = 1; /* arg is null and recv is not */
2431 }
2432 if (var9){
2433 ((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)>*/;
2434 /* <var_new_child:nullable ANode(ANode)> isa TExternCodeSegment */
2435 cltype11 = type_parser_nodes__TExternCodeSegment.color;
2436 idtype12 = type_parser_nodes__TExternCodeSegment.id;
2437 if(cltype11 >= var_new_child->type->table_size) {
2438 var10 = 0;
2439 } else {
2440 var10 = var_new_child->type->type_table[cltype11] == idtype12;
2441 }
2442 if (!var10) {
2443 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11415);
2444 exit(1);
2445 }
2446 self->attrs[COLOR_parser_nodes__AExternCodeBlock___n_extern_code_segment].val = var_new_child; /* _n_extern_code_segment on <self:AExternCodeBlock> */
2447 } else {
2448 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser/parser_prod.nit", 11418);
2449 exit(1);
2450 }
2451 goto RET_LABEL;
2452 } else {
2453 }
2454 RET_LABEL:;
2455 }
2456 /* method parser_prod#AExternCodeBlock#replace_child for (self: Object, ANode, nullable ANode) */
2457 void VIRTUAL_parser_prod__AExternCodeBlock__replace_child(val* self, val* p0, val* p1) {
2458 parser_prod__AExternCodeBlock__replace_child(self, p0, p1);
2459 RET_LABEL:;
2460 }
2461 /* method parser_prod#AExternCodeBlock#n_in_language= for (self: AExternCodeBlock, nullable AInLanguage) */
2462 void parser_prod__AExternCodeBlock__n_in_language_61d(val* self, val* p0) {
2463 val* var_node /* var node: nullable AInLanguage */;
2464 val* var /* : null */;
2465 short int var1 /* : Bool */;
2466 var_node = p0;
2467 self->attrs[COLOR_parser_nodes__AExternCodeBlock___n_in_language].val = var_node; /* _n_in_language on <self:AExternCodeBlock> */
2468 var = NULL;
2469 if (var_node == NULL) {
2470 var1 = 0; /* is null */
2471 } else {
2472 var1 = 1; /* arg is null and recv is not */
2473 }
2474 if (var1){
2475 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable AInLanguage(AInLanguage)>*/;
2476 } else {
2477 }
2478 RET_LABEL:;
2479 }
2480 /* method parser_prod#AExternCodeBlock#n_in_language= for (self: Object, nullable AInLanguage) */
2481 void VIRTUAL_parser_prod__AExternCodeBlock__n_in_language_61d(val* self, val* p0) {
2482 parser_prod__AExternCodeBlock__n_in_language_61d(self, p0);
2483 RET_LABEL:;
2484 }
2485 /* method parser_prod#AExternCodeBlock#n_extern_code_segment= for (self: AExternCodeBlock, TExternCodeSegment) */
2486 void parser_prod__AExternCodeBlock__n_extern_code_segment_61d(val* self, val* p0) {
2487 val* var_node /* var node: TExternCodeSegment */;
2488 var_node = p0;
2489 self->attrs[COLOR_parser_nodes__AExternCodeBlock___n_extern_code_segment].val = var_node; /* _n_extern_code_segment on <self:AExternCodeBlock> */
2490 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:TExternCodeSegment>*/;
2491 RET_LABEL:;
2492 }
2493 /* method parser_prod#AExternCodeBlock#n_extern_code_segment= for (self: Object, TExternCodeSegment) */
2494 void VIRTUAL_parser_prod__AExternCodeBlock__n_extern_code_segment_61d(val* self, val* p0) {
2495 parser_prod__AExternCodeBlock__n_extern_code_segment_61d(self, p0);
2496 RET_LABEL:;
2497 }
2498 /* method parser_prod#AExternCodeBlock#visit_all for (self: AExternCodeBlock, Visitor) */
2499 void parser_prod__AExternCodeBlock__visit_all(val* self, val* p0) {
2500 val* var_v /* var v: Visitor */;
2501 val* var /* : nullable AInLanguage */;
2502 val* var1 /* : null */;
2503 short int var2 /* : Bool */;
2504 val* var3 /* : nullable AInLanguage */;
2505 val* var4 /* : TExternCodeSegment */;
2506 var_v = p0;
2507 var = self->attrs[COLOR_parser_nodes__AExternCodeBlock___n_in_language].val; /* _n_in_language on <self:AExternCodeBlock> */
2508 var1 = NULL;
2509 if (var == NULL) {
2510 var2 = 0; /* is null */
2511 } else {
2512 var2 = 1; /* arg is null and recv is not */
2513 }
2514 if (var2){
2515 var3 = self->attrs[COLOR_parser_nodes__AExternCodeBlock___n_in_language].val; /* _n_in_language on <self:AExternCodeBlock> */
2516 if (var3 == NULL) {
2517 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 11441);
2518 exit(1);
2519 }
2520 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var3) /* enter_visit on <var_v:Visitor>*/;
2521 } else {
2522 }
2523 var4 = self->attrs[COLOR_parser_nodes__AExternCodeBlock___n_extern_code_segment].val; /* _n_extern_code_segment on <self:AExternCodeBlock> */
2524 if (var4 == NULL) {
2525 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_extern_code_segment", "src/parser/parser_prod.nit", 11443);
2526 exit(1);
2527 }
2528 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var4) /* enter_visit on <var_v:Visitor>*/;
2529 RET_LABEL:;
2530 }
2531 /* method parser_prod#AExternCodeBlock#visit_all for (self: Object, Visitor) */
2532 void VIRTUAL_parser_prod__AExternCodeBlock__visit_all(val* self, val* p0) {
2533 parser_prod__AExternCodeBlock__visit_all(self, p0);
2534 RET_LABEL:;
2535 }
2536 /* method parser_prod#AQualified#empty_init for (self: AQualified) */
2537 void parser_prod__AQualified__empty_init(val* self) {
2538 RET_LABEL:;
2539 }
2540 /* method parser_prod#AQualified#empty_init for (self: Object) */
2541 void VIRTUAL_parser_prod__AQualified__empty_init(val* self) {
2542 parser_prod__AQualified__empty_init(self);
2543 RET_LABEL:;
2544 }
2545 /* method parser_prod#AQualified#init_aqualified for (self: AQualified, Collection[Object], nullable TClassid) */
2546 void parser_prod__AQualified__init_aqualified(val* self, val* p0, val* p1) {
2547 val* var_n_id /* var n_id: Collection[Object] */;
2548 val* var_n_classid /* var n_classid: nullable TClassid */;
2549 val* var /* : Iterator[nullable Object] */;
2550 short int var1 /* : Bool */;
2551 val* var2 /* : nullable Object */;
2552 val* var_n /* var n: Object */;
2553 short int var3 /* : Bool */;
2554 int cltype;
2555 int idtype;
2556 val* var4 /* : ANodes[TId] */;
2557 val* var5 /* : null */;
2558 short int var6 /* : Bool */;
2559 var_n_id = p0;
2560 var_n_classid = p1;
2561 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__AQualified__empty_init]))(self) /* empty_init on <self:AQualified>*/;
2562 var = ((val* (*)(val*))(var_n_id->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_n_id) /* iterator on <var_n_id:Collection[Object]>*/;
2563 for(;;) {
2564 var1 = ((short int (*)(val*))(var->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var) /* is_ok on <var:Iterator[nullable Object]>*/;
2565 if(!var1) break;
2566 var2 = ((val* (*)(val*))(var->class->vft[COLOR_abstract_collection__Iterator__item]))(var) /* item on <var:Iterator[nullable Object]>*/;
2567 var_n = var2;
2568 /* <var_n:Object> isa TId */
2569 cltype = type_parser_nodes__TId.color;
2570 idtype = type_parser_nodes__TId.id;
2571 if(cltype >= var_n->type->table_size) {
2572 var3 = 0;
2573 } else {
2574 var3 = var_n->type->type_table[cltype] == idtype;
2575 }
2576 if (!var3) {
2577 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11456);
2578 exit(1);
2579 }
2580 var4 = self->attrs[COLOR_parser_nodes__AQualified___n_id].val; /* _n_id on <self:AQualified> */
2581 if (var4 == NULL) {
2582 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_id", "src/parser/parser_prod.nit", 11457);
2583 exit(1);
2584 }
2585 ((void (*)(val*, val*))(var4->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var4, var_n) /* add on <var4:ANodes[TId]>*/;
2586 ((void (*)(val*, val*))(var_n->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n, self) /* parent= on <var_n:Object(TId)>*/;
2587 CONTINUE_label: (void)0;
2588 ((void (*)(val*))(var->class->vft[COLOR_abstract_collection__Iterator__next]))(var) /* next on <var:Iterator[nullable Object]>*/;
2589 }
2590 BREAK_label: (void)0;
2591 self->attrs[COLOR_parser_nodes__AQualified___n_classid].val = var_n_classid; /* _n_classid on <self:AQualified> */
2592 var5 = NULL;
2593 if (var_n_classid == NULL) {
2594 var6 = 0; /* is null */
2595 } else {
2596 var6 = 1; /* arg is null and recv is not */
2597 }
2598 if (var6){
2599 ((void (*)(val*, val*))(var_n_classid->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_classid, self) /* parent= on <var_n_classid:nullable TClassid(TClassid)>*/;
2600 } else {
2601 }
2602 RET_LABEL:;
2603 }
2604 /* method parser_prod#AQualified#init_aqualified for (self: Object, Collection[Object], nullable TClassid) */
2605 void VIRTUAL_parser_prod__AQualified__init_aqualified(val* self, val* p0, val* p1) {
2606 parser_prod__AQualified__init_aqualified(self, p0, p1);
2607 RET_LABEL:;
2608 }
2609 /* method parser_prod#AQualified#replace_child for (self: AQualified, ANode, nullable ANode) */
2610 void parser_prod__AQualified__replace_child(val* self, val* p0, val* p1) {
2611 val* var_old_child /* var old_child: ANode */;
2612 val* var_new_child /* var new_child: nullable ANode */;
2613 val* var /* : Range[Int] */;
2614 long var1 /* : Int */;
2615 val* var2 /* : ANodes[TId] */;
2616 long var3 /* : Int */;
2617 val* var4 /* : Discrete */;
2618 val* var5 /* : Discrete */;
2619 val* var6 /* : Iterator[nullable Object] */;
2620 short int var7 /* : Bool */;
2621 val* var8 /* : nullable Object */;
2622 long var_i /* var i: Int */;
2623 long var9 /* : Int */;
2624 val* var10 /* : ANodes[TId] */;
2625 val* var11 /* : nullable Object */;
2626 short int var12 /* : Bool */;
2627 val* var13 /* : null */;
2628 short int var14 /* : Bool */;
2629 short int var15 /* : Bool */;
2630 int cltype;
2631 int idtype;
2632 val* var16 /* : ANodes[TId] */;
2633 val* var17 /* : ANodes[TId] */;
2634 val* var18 /* : nullable TClassid */;
2635 short int var19 /* : Bool */;
2636 val* var20 /* : null */;
2637 short int var21 /* : Bool */;
2638 short int var22 /* : Bool */;
2639 int cltype23;
2640 int idtype24;
2641 val* var25 /* : null */;
2642 var_old_child = p0;
2643 var_new_child = p1;
2644 var = NEW_range__Range(&type_range__Rangekernel__Int);
2645 var1 = 0;
2646 var2 = self->attrs[COLOR_parser_nodes__AQualified___n_id].val; /* _n_id on <self:AQualified> */
2647 if (var2 == NULL) {
2648 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_id", "src/parser/parser_prod.nit", 11468);
2649 exit(1);
2650 }
2651 var3 = ((long (*)(val*))(var2->class->vft[COLOR_abstract_collection__Collection__length]))(var2) /* length on <var2:ANodes[TId]>*/;
2652 var4 = BOX_kernel__Int(var1); /* autobox from Int to Discrete */
2653 var5 = BOX_kernel__Int(var3); /* autobox from Int to Discrete */
2654 ((void (*)(val*, val*, val*))(var->class->vft[COLOR_range__Range__without_last]))(var, var4, var5) /* without_last on <var:Range[Int]>*/;
2655 CHECK_NEW_range__Range(var);
2656 var6 = ((val* (*)(val*))(var->class->vft[COLOR_abstract_collection__Collection__iterator]))(var) /* iterator on <var:Range[Int]>*/;
2657 for(;;) {
2658 var7 = ((short int (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var6) /* is_ok on <var6:Iterator[nullable Object]>*/;
2659 if(!var7) break;
2660 var8 = ((val* (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__item]))(var6) /* item on <var6:Iterator[nullable Object]>*/;
2661 var9 = ((struct instance_kernel__Int*)var8)->value; /* autounbox from nullable Object to Int */;
2662 var_i = var9;
2663 var10 = self->attrs[COLOR_parser_nodes__AQualified___n_id].val; /* _n_id on <self:AQualified> */
2664 if (var10 == NULL) {
2665 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_id", "src/parser/parser_prod.nit", 11469);
2666 exit(1);
2667 }
2668 var11 = ((val* (*)(val*, long))(var10->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var10, var_i) /* [] on <var10:ANodes[TId]>*/;
2669 var12 = ((short int (*)(val*, val*))(var11->class->vft[COLOR_kernel__Object___61d_61d]))(var11, var_old_child) /* == on <var11:nullable Object(TId)>*/;
2670 if (var12){
2671 var13 = NULL;
2672 if (var_new_child == NULL) {
2673 var14 = 0; /* is null */
2674 } else {
2675 var14 = 1; /* arg is null and recv is not */
2676 }
2677 if (var14){
2678 /* <var_new_child:nullable ANode(ANode)> isa TId */
2679 cltype = type_parser_nodes__TId.color;
2680 idtype = type_parser_nodes__TId.id;
2681 if(cltype >= var_new_child->type->table_size) {
2682 var15 = 0;
2683 } else {
2684 var15 = var_new_child->type->type_table[cltype] == idtype;
2685 }
2686 if (!var15) {
2687 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11471);
2688 exit(1);
2689 }
2690 var16 = self->attrs[COLOR_parser_nodes__AQualified___n_id].val; /* _n_id on <self:AQualified> */
2691 if (var16 == NULL) {
2692 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_id", "src/parser/parser_prod.nit", 11472);
2693 exit(1);
2694 }
2695 ((void (*)(val*, long, val*))(var16->class->vft[COLOR_abstract_collection__Sequence___91d_93d_61d]))(var16, var_i, var_new_child) /* []= on <var16:ANodes[TId]>*/;
2696 ((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(TId)>*/;
2697 } else {
2698 var17 = self->attrs[COLOR_parser_nodes__AQualified___n_id].val; /* _n_id on <self:AQualified> */
2699 if (var17 == NULL) {
2700 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_id", "src/parser/parser_prod.nit", 11475);
2701 exit(1);
2702 }
2703 ((void (*)(val*, long))(var17->class->vft[COLOR_abstract_collection__Sequence__remove_at]))(var17, var_i) /* remove_at on <var17:ANodes[TId]>*/;
2704 }
2705 goto RET_LABEL;
2706 } else {
2707 }
2708 CONTINUE_label: (void)0;
2709 ((void (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__next]))(var6) /* next on <var6:Iterator[nullable Object]>*/;
2710 }
2711 BREAK_label: (void)0;
2712 var18 = self->attrs[COLOR_parser_nodes__AQualified___n_classid].val; /* _n_classid on <self:AQualified> */
2713 if (var18 == NULL) {
2714 var19 = 0; /* <var_old_child:ANode> cannot be null */
2715 } else {
2716 var19 = ((short int (*)(val*, val*))(var18->class->vft[COLOR_kernel__Object___61d_61d]))(var18, var_old_child) /* == on <var18:nullable TClassid>*/;
2717 }
2718 if (var19){
2719 var20 = NULL;
2720 if (var_new_child == NULL) {
2721 var21 = 0; /* is null */
2722 } else {
2723 var21 = 1; /* arg is null and recv is not */
2724 }
2725 if (var21){
2726 ((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)>*/;
2727 /* <var_new_child:nullable ANode(ANode)> isa TClassid */
2728 cltype23 = type_parser_nodes__TClassid.color;
2729 idtype24 = type_parser_nodes__TClassid.id;
2730 if(cltype23 >= var_new_child->type->table_size) {
2731 var22 = 0;
2732 } else {
2733 var22 = var_new_child->type->type_table[cltype23] == idtype24;
2734 }
2735 if (!var22) {
2736 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11483);
2737 exit(1);
2738 }
2739 self->attrs[COLOR_parser_nodes__AQualified___n_classid].val = var_new_child; /* _n_classid on <self:AQualified> */
2740 } else {
2741 var25 = NULL;
2742 self->attrs[COLOR_parser_nodes__AQualified___n_classid].val = var25; /* _n_classid on <self:AQualified> */
2743 }
2744 goto RET_LABEL;
2745 } else {
2746 }
2747 RET_LABEL:;
2748 }
2749 /* method parser_prod#AQualified#replace_child for (self: Object, ANode, nullable ANode) */
2750 void VIRTUAL_parser_prod__AQualified__replace_child(val* self, val* p0, val* p1) {
2751 parser_prod__AQualified__replace_child(self, p0, p1);
2752 RET_LABEL:;
2753 }
2754 /* method parser_prod#AQualified#n_classid= for (self: AQualified, nullable TClassid) */
2755 void parser_prod__AQualified__n_classid_61d(val* self, val* p0) {
2756 val* var_node /* var node: nullable TClassid */;
2757 val* var /* : null */;
2758 short int var1 /* : Bool */;
2759 var_node = p0;
2760 self->attrs[COLOR_parser_nodes__AQualified___n_classid].val = var_node; /* _n_classid on <self:AQualified> */
2761 var = NULL;
2762 if (var_node == NULL) {
2763 var1 = 0; /* is null */
2764 } else {
2765 var1 = 1; /* arg is null and recv is not */
2766 }
2767 if (var1){
2768 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable TClassid(TClassid)>*/;
2769 } else {
2770 }
2771 RET_LABEL:;
2772 }
2773 /* method parser_prod#AQualified#n_classid= for (self: Object, nullable TClassid) */
2774 void VIRTUAL_parser_prod__AQualified__n_classid_61d(val* self, val* p0) {
2775 parser_prod__AQualified__n_classid_61d(self, p0);
2776 RET_LABEL:;
2777 }
2778 /* method parser_prod#AQualified#visit_all for (self: AQualified, Visitor) */
2779 void parser_prod__AQualified__visit_all(val* self, val* p0) {
2780 val* var_v /* var v: Visitor */;
2781 val* var /* : ANodes[TId] */;
2782 val* var1 /* : Iterator[nullable Object] */;
2783 short int var2 /* : Bool */;
2784 val* var3 /* : nullable Object */;
2785 val* var_n /* var n: TId */;
2786 val* var4 /* : nullable TClassid */;
2787 val* var5 /* : null */;
2788 short int var6 /* : Bool */;
2789 val* var7 /* : nullable TClassid */;
2790 var_v = p0;
2791 var = self->attrs[COLOR_parser_nodes__AQualified___n_id].val; /* _n_id on <self:AQualified> */
2792 if (var == NULL) {
2793 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_id", "src/parser/parser_prod.nit", 11503);
2794 exit(1);
2795 }
2796 var1 = ((val* (*)(val*))(var->class->vft[COLOR_abstract_collection__Collection__iterator]))(var) /* iterator on <var:ANodes[TId]>*/;
2797 for(;;) {
2798 var2 = ((short int (*)(val*))(var1->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var1) /* is_ok on <var1:Iterator[nullable Object]>*/;
2799 if(!var2) break;
2800 var3 = ((val* (*)(val*))(var1->class->vft[COLOR_abstract_collection__Iterator__item]))(var1) /* item on <var1:Iterator[nullable Object]>*/;
2801 var_n = var3;
2802 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var_n) /* enter_visit on <var_v:Visitor>*/;
2803 CONTINUE_label: (void)0;
2804 ((void (*)(val*))(var1->class->vft[COLOR_abstract_collection__Iterator__next]))(var1) /* next on <var1:Iterator[nullable Object]>*/;
2805 }
2806 BREAK_label: (void)0;
2807 var4 = self->attrs[COLOR_parser_nodes__AQualified___n_classid].val; /* _n_classid on <self:AQualified> */
2808 var5 = NULL;
2809 if (var4 == NULL) {
2810 var6 = 0; /* is null */
2811 } else {
2812 var6 = 1; /* arg is null and recv is not */
2813 }
2814 if (var6){
2815 var7 = self->attrs[COLOR_parser_nodes__AQualified___n_classid].val; /* _n_classid on <self:AQualified> */
2816 if (var7 == NULL) {
2817 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 11507);
2818 exit(1);
2819 }
2820 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var7) /* enter_visit on <var_v:Visitor>*/;
2821 } else {
2822 }
2823 RET_LABEL:;
2824 }
2825 /* method parser_prod#AQualified#visit_all for (self: Object, Visitor) */
2826 void VIRTUAL_parser_prod__AQualified__visit_all(val* self, val* p0) {
2827 parser_prod__AQualified__visit_all(self, p0);
2828 RET_LABEL:;
2829 }
2830 /* method parser_prod#ADoc#empty_init for (self: ADoc) */
2831 void parser_prod__ADoc__empty_init(val* self) {
2832 RET_LABEL:;
2833 }
2834 /* method parser_prod#ADoc#empty_init for (self: Object) */
2835 void VIRTUAL_parser_prod__ADoc__empty_init(val* self) {
2836 parser_prod__ADoc__empty_init(self);
2837 RET_LABEL:;
2838 }
2839 /* method parser_prod#ADoc#init_adoc for (self: ADoc, Collection[Object]) */
2840 void parser_prod__ADoc__init_adoc(val* self, val* p0) {
2841 val* var_n_comment /* var n_comment: Collection[Object] */;
2842 val* var /* : Iterator[nullable Object] */;
2843 short int var1 /* : Bool */;
2844 val* var2 /* : nullable Object */;
2845 val* var_n /* var n: Object */;
2846 short int var3 /* : Bool */;
2847 int cltype;
2848 int idtype;
2849 val* var4 /* : ANodes[TComment] */;
2850 var_n_comment = p0;
2851 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__ADoc__empty_init]))(self) /* empty_init on <self:ADoc>*/;
2852 var = ((val* (*)(val*))(var_n_comment->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_n_comment) /* iterator on <var_n_comment:Collection[Object]>*/;
2853 for(;;) {
2854 var1 = ((short int (*)(val*))(var->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var) /* is_ok on <var:Iterator[nullable Object]>*/;
2855 if(!var1) break;
2856 var2 = ((val* (*)(val*))(var->class->vft[COLOR_abstract_collection__Iterator__item]))(var) /* item on <var:Iterator[nullable Object]>*/;
2857 var_n = var2;
2858 /* <var_n:Object> isa TComment */
2859 cltype = type_parser_nodes__TComment.color;
2860 idtype = type_parser_nodes__TComment.id;
2861 if(cltype >= var_n->type->table_size) {
2862 var3 = 0;
2863 } else {
2864 var3 = var_n->type->type_table[cltype] == idtype;
2865 }
2866 if (!var3) {
2867 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11520);
2868 exit(1);
2869 }
2870 var4 = self->attrs[COLOR_parser_nodes__ADoc___n_comment].val; /* _n_comment on <self:ADoc> */
2871 if (var4 == NULL) {
2872 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_comment", "src/parser/parser_prod.nit", 11521);
2873 exit(1);
2874 }
2875 ((void (*)(val*, val*))(var4->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var4, var_n) /* add on <var4:ANodes[TComment]>*/;
2876 ((void (*)(val*, val*))(var_n->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n, self) /* parent= on <var_n:Object(TComment)>*/;
2877 CONTINUE_label: (void)0;
2878 ((void (*)(val*))(var->class->vft[COLOR_abstract_collection__Iterator__next]))(var) /* next on <var:Iterator[nullable Object]>*/;
2879 }
2880 BREAK_label: (void)0;
2881 RET_LABEL:;
2882 }
2883 /* method parser_prod#ADoc#init_adoc for (self: Object, Collection[Object]) */
2884 void VIRTUAL_parser_prod__ADoc__init_adoc(val* self, val* p0) {
2885 parser_prod__ADoc__init_adoc(self, p0);
2886 RET_LABEL:;
2887 }
2888 /* method parser_prod#ADoc#replace_child for (self: ADoc, ANode, nullable ANode) */
2889 void parser_prod__ADoc__replace_child(val* self, val* p0, val* p1) {
2890 val* var_old_child /* var old_child: ANode */;
2891 val* var_new_child /* var new_child: nullable ANode */;
2892 val* var /* : Range[Int] */;
2893 long var1 /* : Int */;
2894 val* var2 /* : ANodes[TComment] */;
2895 long var3 /* : Int */;
2896 val* var4 /* : Discrete */;
2897 val* var5 /* : Discrete */;
2898 val* var6 /* : Iterator[nullable Object] */;
2899 short int var7 /* : Bool */;
2900 val* var8 /* : nullable Object */;
2901 long var_i /* var i: Int */;
2902 long var9 /* : Int */;
2903 val* var10 /* : ANodes[TComment] */;
2904 val* var11 /* : nullable Object */;
2905 short int var12 /* : Bool */;
2906 val* var13 /* : null */;
2907 short int var14 /* : Bool */;
2908 short int var15 /* : Bool */;
2909 int cltype;
2910 int idtype;
2911 val* var16 /* : ANodes[TComment] */;
2912 val* var17 /* : ANodes[TComment] */;
2913 var_old_child = p0;
2914 var_new_child = p1;
2915 var = NEW_range__Range(&type_range__Rangekernel__Int);
2916 var1 = 0;
2917 var2 = self->attrs[COLOR_parser_nodes__ADoc___n_comment].val; /* _n_comment on <self:ADoc> */
2918 if (var2 == NULL) {
2919 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_comment", "src/parser/parser_prod.nit", 11528);
2920 exit(1);
2921 }
2922 var3 = ((long (*)(val*))(var2->class->vft[COLOR_abstract_collection__Collection__length]))(var2) /* length on <var2:ANodes[TComment]>*/;
2923 var4 = BOX_kernel__Int(var1); /* autobox from Int to Discrete */
2924 var5 = BOX_kernel__Int(var3); /* autobox from Int to Discrete */
2925 ((void (*)(val*, val*, val*))(var->class->vft[COLOR_range__Range__without_last]))(var, var4, var5) /* without_last on <var:Range[Int]>*/;
2926 CHECK_NEW_range__Range(var);
2927 var6 = ((val* (*)(val*))(var->class->vft[COLOR_abstract_collection__Collection__iterator]))(var) /* iterator on <var:Range[Int]>*/;
2928 for(;;) {
2929 var7 = ((short int (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var6) /* is_ok on <var6:Iterator[nullable Object]>*/;
2930 if(!var7) break;
2931 var8 = ((val* (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__item]))(var6) /* item on <var6:Iterator[nullable Object]>*/;
2932 var9 = ((struct instance_kernel__Int*)var8)->value; /* autounbox from nullable Object to Int */;
2933 var_i = var9;
2934 var10 = self->attrs[COLOR_parser_nodes__ADoc___n_comment].val; /* _n_comment on <self:ADoc> */
2935 if (var10 == NULL) {
2936 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_comment", "src/parser/parser_prod.nit", 11529);
2937 exit(1);
2938 }
2939 var11 = ((val* (*)(val*, long))(var10->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var10, var_i) /* [] on <var10:ANodes[TComment]>*/;
2940 var12 = ((short int (*)(val*, val*))(var11->class->vft[COLOR_kernel__Object___61d_61d]))(var11, var_old_child) /* == on <var11:nullable Object(TComment)>*/;
2941 if (var12){
2942 var13 = NULL;
2943 if (var_new_child == NULL) {
2944 var14 = 0; /* is null */
2945 } else {
2946 var14 = 1; /* arg is null and recv is not */
2947 }
2948 if (var14){
2949 /* <var_new_child:nullable ANode(ANode)> isa TComment */
2950 cltype = type_parser_nodes__TComment.color;
2951 idtype = type_parser_nodes__TComment.id;
2952 if(cltype >= var_new_child->type->table_size) {
2953 var15 = 0;
2954 } else {
2955 var15 = var_new_child->type->type_table[cltype] == idtype;
2956 }
2957 if (!var15) {
2958 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11531);
2959 exit(1);
2960 }
2961 var16 = self->attrs[COLOR_parser_nodes__ADoc___n_comment].val; /* _n_comment on <self:ADoc> */
2962 if (var16 == NULL) {
2963 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_comment", "src/parser/parser_prod.nit", 11532);
2964 exit(1);
2965 }
2966 ((void (*)(val*, long, val*))(var16->class->vft[COLOR_abstract_collection__Sequence___91d_93d_61d]))(var16, var_i, var_new_child) /* []= on <var16:ANodes[TComment]>*/;
2967 ((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(TComment)>*/;
2968 } else {
2969 var17 = self->attrs[COLOR_parser_nodes__ADoc___n_comment].val; /* _n_comment on <self:ADoc> */
2970 if (var17 == NULL) {
2971 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_comment", "src/parser/parser_prod.nit", 11535);
2972 exit(1);
2973 }
2974 ((void (*)(val*, long))(var17->class->vft[COLOR_abstract_collection__Sequence__remove_at]))(var17, var_i) /* remove_at on <var17:ANodes[TComment]>*/;
2975 }
2976 goto RET_LABEL;
2977 } else {
2978 }
2979 CONTINUE_label: (void)0;
2980 ((void (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__next]))(var6) /* next on <var6:Iterator[nullable Object]>*/;
2981 }
2982 BREAK_label: (void)0;
2983 RET_LABEL:;
2984 }
2985 /* method parser_prod#ADoc#replace_child for (self: Object, ANode, nullable ANode) */
2986 void VIRTUAL_parser_prod__ADoc__replace_child(val* self, val* p0, val* p1) {
2987 parser_prod__ADoc__replace_child(self, p0, p1);
2988 RET_LABEL:;
2989 }
2990 /* method parser_prod#ADoc#visit_all for (self: ADoc, Visitor) */
2991 void parser_prod__ADoc__visit_all(val* self, val* p0) {
2992 val* var_v /* var v: Visitor */;
2993 val* var /* : ANodes[TComment] */;
2994 val* var1 /* : Iterator[nullable Object] */;
2995 short int var2 /* : Bool */;
2996 val* var3 /* : nullable Object */;
2997 val* var_n /* var n: TComment */;
2998 var_v = p0;
2999 var = self->attrs[COLOR_parser_nodes__ADoc___n_comment].val; /* _n_comment on <self:ADoc> */
3000 if (var == NULL) {
3001 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_comment", "src/parser/parser_prod.nit", 11546);
3002 exit(1);
3003 }
3004 var1 = ((val* (*)(val*))(var->class->vft[COLOR_abstract_collection__Collection__iterator]))(var) /* iterator on <var:ANodes[TComment]>*/;
3005 for(;;) {
3006 var2 = ((short int (*)(val*))(var1->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var1) /* is_ok on <var1:Iterator[nullable Object]>*/;
3007 if(!var2) break;
3008 var3 = ((val* (*)(val*))(var1->class->vft[COLOR_abstract_collection__Iterator__item]))(var1) /* item on <var1:Iterator[nullable Object]>*/;
3009 var_n = var3;
3010 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var_n) /* enter_visit on <var_v:Visitor>*/;
3011 CONTINUE_label: (void)0;
3012 ((void (*)(val*))(var1->class->vft[COLOR_abstract_collection__Iterator__next]))(var1) /* next on <var1:Iterator[nullable Object]>*/;
3013 }
3014 BREAK_label: (void)0;
3015 RET_LABEL:;
3016 }
3017 /* method parser_prod#ADoc#visit_all for (self: Object, Visitor) */
3018 void VIRTUAL_parser_prod__ADoc__visit_all(val* self, val* p0) {
3019 parser_prod__ADoc__visit_all(self, p0);
3020 RET_LABEL:;
3021 }
3022 /* method parser_prod#AAnnotations#empty_init for (self: AAnnotations) */
3023 void parser_prod__AAnnotations__empty_init(val* self) {
3024 RET_LABEL:;
3025 }
3026 /* method parser_prod#AAnnotations#empty_init for (self: Object) */
3027 void VIRTUAL_parser_prod__AAnnotations__empty_init(val* self) {
3028 parser_prod__AAnnotations__empty_init(self);
3029 RET_LABEL:;
3030 }
3031 /* method parser_prod#AAnnotations#init_aannotations for (self: AAnnotations, nullable TAt, nullable TOpar, Collection[Object], nullable TCpar) */
3032 void parser_prod__AAnnotations__init_aannotations(val* self, val* p0, val* p1, val* p2, val* p3) {
3033 val* var_n_at /* var n_at: nullable TAt */;
3034 val* var_n_opar /* var n_opar: nullable TOpar */;
3035 val* var_n_items /* var n_items: Collection[Object] */;
3036 val* var_n_cpar /* var n_cpar: nullable TCpar */;
3037 val* var /* : null */;
3038 short int var1 /* : Bool */;
3039 val* var2 /* : null */;
3040 short int var3 /* : Bool */;
3041 val* var4 /* : Iterator[nullable Object] */;
3042 short int var5 /* : Bool */;
3043 val* var6 /* : nullable Object */;
3044 val* var_n /* var n: Object */;
3045 short int var7 /* : Bool */;
3046 int cltype;
3047 int idtype;
3048 val* var8 /* : ANodes[AAnnotation] */;
3049 val* var9 /* : null */;
3050 short int var10 /* : Bool */;
3051 var_n_at = p0;
3052 var_n_opar = p1;
3053 var_n_items = p2;
3054 var_n_cpar = p3;
3055 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__AAnnotations__empty_init]))(self) /* empty_init on <self:AAnnotations>*/;
3056 self->attrs[COLOR_parser_nodes__AAnnotations___n_at].val = var_n_at; /* _n_at on <self:AAnnotations> */
3057 var = NULL;
3058 if (var_n_at == NULL) {
3059 var1 = 0; /* is null */
3060 } else {
3061 var1 = 1; /* arg is null and recv is not */
3062 }
3063 if (var1){
3064 ((void (*)(val*, val*))(var_n_at->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_at, self) /* parent= on <var_n_at:nullable TAt(TAt)>*/;
3065 } else {
3066 }
3067 self->attrs[COLOR_parser_nodes__AAnnotations___n_opar].val = var_n_opar; /* _n_opar on <self:AAnnotations> */
3068 var2 = NULL;
3069 if (var_n_opar == NULL) {
3070 var3 = 0; /* is null */
3071 } else {
3072 var3 = 1; /* arg is null and recv is not */
3073 }
3074 if (var3){
3075 ((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)>*/;
3076 } else {
3077 }
3078 var4 = ((val* (*)(val*))(var_n_items->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_n_items) /* iterator on <var_n_items:Collection[Object]>*/;
3079 for(;;) {
3080 var5 = ((short int (*)(val*))(var4->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var4) /* is_ok on <var4:Iterator[nullable Object]>*/;
3081 if(!var5) break;
3082 var6 = ((val* (*)(val*))(var4->class->vft[COLOR_abstract_collection__Iterator__item]))(var4) /* item on <var4:Iterator[nullable Object]>*/;
3083 var_n = var6;
3084 /* <var_n:Object> isa AAnnotation */
3085 cltype = type_parser_nodes__AAnnotation.color;
3086 idtype = type_parser_nodes__AAnnotation.id;
3087 if(cltype >= var_n->type->table_size) {
3088 var7 = 0;
3089 } else {
3090 var7 = var_n->type->type_table[cltype] == idtype;
3091 }
3092 if (!var7) {
3093 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11571);
3094 exit(1);
3095 }
3096 var8 = self->attrs[COLOR_parser_nodes__AAnnotations___n_items].val; /* _n_items on <self:AAnnotations> */
3097 if (var8 == NULL) {
3098 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_items", "src/parser/parser_prod.nit", 11572);
3099 exit(1);
3100 }
3101 ((void (*)(val*, val*))(var8->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var8, var_n) /* add on <var8:ANodes[AAnnotation]>*/;
3102 ((void (*)(val*, val*))(var_n->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n, self) /* parent= on <var_n:Object(AAnnotation)>*/;
3103 CONTINUE_label: (void)0;
3104 ((void (*)(val*))(var4->class->vft[COLOR_abstract_collection__Iterator__next]))(var4) /* next on <var4:Iterator[nullable Object]>*/;
3105 }
3106 BREAK_label: (void)0;
3107 self->attrs[COLOR_parser_nodes__AAnnotations___n_cpar].val = var_n_cpar; /* _n_cpar on <self:AAnnotations> */
3108 var9 = NULL;
3109 if (var_n_cpar == NULL) {
3110 var10 = 0; /* is null */
3111 } else {
3112 var10 = 1; /* arg is null and recv is not */
3113 }
3114 if (var10){
3115 ((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)>*/;
3116 } else {
3117 }
3118 RET_LABEL:;
3119 }
3120 /* method parser_prod#AAnnotations#init_aannotations for (self: Object, nullable TAt, nullable TOpar, Collection[Object], nullable TCpar) */
3121 void VIRTUAL_parser_prod__AAnnotations__init_aannotations(val* self, val* p0, val* p1, val* p2, val* p3) {
3122 parser_prod__AAnnotations__init_aannotations(self, p0, p1, p2, p3);
3123 RET_LABEL:;
3124 }
3125 /* method parser_prod#AAnnotations#replace_child for (self: AAnnotations, ANode, nullable ANode) */
3126 void parser_prod__AAnnotations__replace_child(val* self, val* p0, val* p1) {
3127 val* var_old_child /* var old_child: ANode */;
3128 val* var_new_child /* var new_child: nullable ANode */;
3129 val* var /* : nullable TAt */;
3130 short int var1 /* : Bool */;
3131 val* var2 /* : null */;
3132 short int var3 /* : Bool */;
3133 short int var4 /* : Bool */;
3134 int cltype;
3135 int idtype;
3136 val* var5 /* : null */;
3137 val* var6 /* : nullable TOpar */;
3138 short int var7 /* : Bool */;
3139 val* var8 /* : null */;
3140 short int var9 /* : Bool */;
3141 short int var10 /* : Bool */;
3142 int cltype11;
3143 int idtype12;
3144 val* var13 /* : null */;
3145 val* var14 /* : Range[Int] */;
3146 long var15 /* : Int */;
3147 val* var16 /* : ANodes[AAnnotation] */;
3148 long var17 /* : Int */;
3149 val* var18 /* : Discrete */;
3150 val* var19 /* : Discrete */;
3151 val* var20 /* : Iterator[nullable Object] */;
3152 short int var21 /* : Bool */;
3153 val* var22 /* : nullable Object */;
3154 long var_i /* var i: Int */;
3155 long var23 /* : Int */;
3156 val* var24 /* : ANodes[AAnnotation] */;
3157 val* var25 /* : nullable Object */;
3158 short int var26 /* : Bool */;
3159 val* var27 /* : null */;
3160 short int var28 /* : Bool */;
3161 short int var29 /* : Bool */;
3162 int cltype30;
3163 int idtype31;
3164 val* var32 /* : ANodes[AAnnotation] */;
3165 val* var33 /* : ANodes[AAnnotation] */;
3166 val* var34 /* : nullable TCpar */;
3167 short int var35 /* : Bool */;
3168 val* var36 /* : null */;
3169 short int var37 /* : Bool */;
3170 short int var38 /* : Bool */;
3171 int cltype39;
3172 int idtype40;
3173 val* var41 /* : null */;
3174 var_old_child = p0;
3175 var_new_child = p1;
3176 var = self->attrs[COLOR_parser_nodes__AAnnotations___n_at].val; /* _n_at on <self:AAnnotations> */
3177 if (var == NULL) {
3178 var1 = 0; /* <var_old_child:ANode> cannot be null */
3179 } else {
3180 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:nullable TAt>*/;
3181 }
3182 if (var1){
3183 var2 = NULL;
3184 if (var_new_child == NULL) {
3185 var3 = 0; /* is null */
3186 } else {
3187 var3 = 1; /* arg is null and recv is not */
3188 }
3189 if (var3){
3190 ((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)>*/;
3191 /* <var_new_child:nullable ANode(ANode)> isa TAt */
3192 cltype = type_parser_nodes__TAt.color;
3193 idtype = type_parser_nodes__TAt.id;
3194 if(cltype >= var_new_child->type->table_size) {
3195 var4 = 0;
3196 } else {
3197 var4 = var_new_child->type->type_table[cltype] == idtype;
3198 }
3199 if (!var4) {
3200 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11586);
3201 exit(1);
3202 }
3203 self->attrs[COLOR_parser_nodes__AAnnotations___n_at].val = var_new_child; /* _n_at on <self:AAnnotations> */
3204 } else {
3205 var5 = NULL;
3206 self->attrs[COLOR_parser_nodes__AAnnotations___n_at].val = var5; /* _n_at on <self:AAnnotations> */
3207 }
3208 goto RET_LABEL;
3209 } else {
3210 }
3211 var6 = self->attrs[COLOR_parser_nodes__AAnnotations___n_opar].val; /* _n_opar on <self:AAnnotations> */
3212 if (var6 == NULL) {
3213 var7 = 0; /* <var_old_child:ANode> cannot be null */
3214 } else {
3215 var7 = ((short int (*)(val*, val*))(var6->class->vft[COLOR_kernel__Object___61d_61d]))(var6, var_old_child) /* == on <var6:nullable TOpar>*/;
3216 }
3217 if (var7){
3218 var8 = NULL;
3219 if (var_new_child == NULL) {
3220 var9 = 0; /* is null */
3221 } else {
3222 var9 = 1; /* arg is null and recv is not */
3223 }
3224 if (var9){
3225 ((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)>*/;
3226 /* <var_new_child:nullable ANode(ANode)> isa TOpar */
3227 cltype11 = type_parser_nodes__TOpar.color;
3228 idtype12 = type_parser_nodes__TOpar.id;
3229 if(cltype11 >= var_new_child->type->table_size) {
3230 var10 = 0;
3231 } else {
3232 var10 = var_new_child->type->type_table[cltype11] == idtype12;
3233 }
3234 if (!var10) {
3235 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11596);
3236 exit(1);
3237 }
3238 self->attrs[COLOR_parser_nodes__AAnnotations___n_opar].val = var_new_child; /* _n_opar on <self:AAnnotations> */
3239 } else {
3240 var13 = NULL;
3241 self->attrs[COLOR_parser_nodes__AAnnotations___n_opar].val = var13; /* _n_opar on <self:AAnnotations> */
3242 }
3243 goto RET_LABEL;
3244 } else {
3245 }
3246 var14 = NEW_range__Range(&type_range__Rangekernel__Int);
3247 var15 = 0;
3248 var16 = self->attrs[COLOR_parser_nodes__AAnnotations___n_items].val; /* _n_items on <self:AAnnotations> */
3249 if (var16 == NULL) {
3250 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_items", "src/parser/parser_prod.nit", 11603);
3251 exit(1);
3252 }
3253 var17 = ((long (*)(val*))(var16->class->vft[COLOR_abstract_collection__Collection__length]))(var16) /* length on <var16:ANodes[AAnnotation]>*/;
3254 var18 = BOX_kernel__Int(var15); /* autobox from Int to Discrete */
3255 var19 = BOX_kernel__Int(var17); /* autobox from Int to Discrete */
3256 ((void (*)(val*, val*, val*))(var14->class->vft[COLOR_range__Range__without_last]))(var14, var18, var19) /* without_last on <var14:Range[Int]>*/;
3257 CHECK_NEW_range__Range(var14);
3258 var20 = ((val* (*)(val*))(var14->class->vft[COLOR_abstract_collection__Collection__iterator]))(var14) /* iterator on <var14:Range[Int]>*/;
3259 for(;;) {
3260 var21 = ((short int (*)(val*))(var20->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var20) /* is_ok on <var20:Iterator[nullable Object]>*/;
3261 if(!var21) break;
3262 var22 = ((val* (*)(val*))(var20->class->vft[COLOR_abstract_collection__Iterator__item]))(var20) /* item on <var20:Iterator[nullable Object]>*/;
3263 var23 = ((struct instance_kernel__Int*)var22)->value; /* autounbox from nullable Object to Int */;
3264 var_i = var23;
3265 var24 = self->attrs[COLOR_parser_nodes__AAnnotations___n_items].val; /* _n_items on <self:AAnnotations> */
3266 if (var24 == NULL) {
3267 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_items", "src/parser/parser_prod.nit", 11604);
3268 exit(1);
3269 }
3270 var25 = ((val* (*)(val*, long))(var24->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var24, var_i) /* [] on <var24:ANodes[AAnnotation]>*/;
3271 var26 = ((short int (*)(val*, val*))(var25->class->vft[COLOR_kernel__Object___61d_61d]))(var25, var_old_child) /* == on <var25:nullable Object(AAnnotation)>*/;
3272 if (var26){
3273 var27 = NULL;
3274 if (var_new_child == NULL) {
3275 var28 = 0; /* is null */
3276 } else {
3277 var28 = 1; /* arg is null and recv is not */
3278 }
3279 if (var28){
3280 /* <var_new_child:nullable ANode(ANode)> isa AAnnotation */
3281 cltype30 = type_parser_nodes__AAnnotation.color;
3282 idtype31 = type_parser_nodes__AAnnotation.id;
3283 if(cltype30 >= var_new_child->type->table_size) {
3284 var29 = 0;
3285 } else {
3286 var29 = var_new_child->type->type_table[cltype30] == idtype31;
3287 }
3288 if (!var29) {
3289 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11606);
3290 exit(1);
3291 }
3292 var32 = self->attrs[COLOR_parser_nodes__AAnnotations___n_items].val; /* _n_items on <self:AAnnotations> */
3293 if (var32 == NULL) {
3294 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_items", "src/parser/parser_prod.nit", 11607);
3295 exit(1);
3296 }
3297 ((void (*)(val*, long, val*))(var32->class->vft[COLOR_abstract_collection__Sequence___91d_93d_61d]))(var32, var_i, var_new_child) /* []= on <var32:ANodes[AAnnotation]>*/;
3298 ((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(AAnnotation)>*/;
3299 } else {
3300 var33 = self->attrs[COLOR_parser_nodes__AAnnotations___n_items].val; /* _n_items on <self:AAnnotations> */
3301 if (var33 == NULL) {
3302 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_items", "src/parser/parser_prod.nit", 11610);
3303 exit(1);
3304 }
3305 ((void (*)(val*, long))(var33->class->vft[COLOR_abstract_collection__Sequence__remove_at]))(var33, var_i) /* remove_at on <var33:ANodes[AAnnotation]>*/;
3306 }
3307 goto RET_LABEL;
3308 } else {
3309 }
3310 CONTINUE_label: (void)0;
3311 ((void (*)(val*))(var20->class->vft[COLOR_abstract_collection__Iterator__next]))(var20) /* next on <var20:Iterator[nullable Object]>*/;
3312 }
3313 BREAK_label: (void)0;
3314 var34 = self->attrs[COLOR_parser_nodes__AAnnotations___n_cpar].val; /* _n_cpar on <self:AAnnotations> */
3315 if (var34 == NULL) {
3316 var35 = 0; /* <var_old_child:ANode> cannot be null */
3317 } else {
3318 var35 = ((short int (*)(val*, val*))(var34->class->vft[COLOR_kernel__Object___61d_61d]))(var34, var_old_child) /* == on <var34:nullable TCpar>*/;
3319 }
3320 if (var35){
3321 var36 = NULL;
3322 if (var_new_child == NULL) {
3323 var37 = 0; /* is null */
3324 } else {
3325 var37 = 1; /* arg is null and recv is not */
3326 }
3327 if (var37){
3328 ((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)>*/;
3329 /* <var_new_child:nullable ANode(ANode)> isa TCpar */
3330 cltype39 = type_parser_nodes__TCpar.color;
3331 idtype40 = type_parser_nodes__TCpar.id;
3332 if(cltype39 >= var_new_child->type->table_size) {
3333 var38 = 0;
3334 } else {
3335 var38 = var_new_child->type->type_table[cltype39] == idtype40;
3336 }
3337 if (!var38) {
3338 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11618);
3339 exit(1);
3340 }
3341 self->attrs[COLOR_parser_nodes__AAnnotations___n_cpar].val = var_new_child; /* _n_cpar on <self:AAnnotations> */
3342 } else {
3343 var41 = NULL;
3344 self->attrs[COLOR_parser_nodes__AAnnotations___n_cpar].val = var41; /* _n_cpar on <self:AAnnotations> */
3345 }
3346 goto RET_LABEL;
3347 } else {
3348 }
3349 RET_LABEL:;
3350 }
3351 /* method parser_prod#AAnnotations#replace_child for (self: Object, ANode, nullable ANode) */
3352 void VIRTUAL_parser_prod__AAnnotations__replace_child(val* self, val* p0, val* p1) {
3353 parser_prod__AAnnotations__replace_child(self, p0, p1);
3354 RET_LABEL:;
3355 }
3356 /* method parser_prod#AAnnotations#n_at= for (self: AAnnotations, nullable TAt) */
3357 void parser_prod__AAnnotations__n_at_61d(val* self, val* p0) {
3358 val* var_node /* var node: nullable TAt */;
3359 val* var /* : null */;
3360 short int var1 /* : Bool */;
3361 var_node = p0;
3362 self->attrs[COLOR_parser_nodes__AAnnotations___n_at].val = var_node; /* _n_at on <self:AAnnotations> */
3363 var = NULL;
3364 if (var_node == NULL) {
3365 var1 = 0; /* is null */
3366 } else {
3367 var1 = 1; /* arg is null and recv is not */
3368 }
3369 if (var1){
3370 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable TAt(TAt)>*/;
3371 } else {
3372 }
3373 RET_LABEL:;
3374 }
3375 /* method parser_prod#AAnnotations#n_at= for (self: Object, nullable TAt) */
3376 void VIRTUAL_parser_prod__AAnnotations__n_at_61d(val* self, val* p0) {
3377 parser_prod__AAnnotations__n_at_61d(self, p0);
3378 RET_LABEL:;
3379 }
3380 /* method parser_prod#AAnnotations#n_opar= for (self: AAnnotations, nullable TOpar) */
3381 void parser_prod__AAnnotations__n_opar_61d(val* self, val* p0) {
3382 val* var_node /* var node: nullable TOpar */;
3383 val* var /* : null */;
3384 short int var1 /* : Bool */;
3385 var_node = p0;
3386 self->attrs[COLOR_parser_nodes__AAnnotations___n_opar].val = var_node; /* _n_opar on <self:AAnnotations> */
3387 var = NULL;
3388 if (var_node == NULL) {
3389 var1 = 0; /* is null */
3390 } else {
3391 var1 = 1; /* arg is null and recv is not */
3392 }
3393 if (var1){
3394 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable TOpar(TOpar)>*/;
3395 } else {
3396 }
3397 RET_LABEL:;
3398 }
3399 /* method parser_prod#AAnnotations#n_opar= for (self: Object, nullable TOpar) */
3400 void VIRTUAL_parser_prod__AAnnotations__n_opar_61d(val* self, val* p0) {
3401 parser_prod__AAnnotations__n_opar_61d(self, p0);
3402 RET_LABEL:;
3403 }
3404 /* method parser_prod#AAnnotations#n_cpar= for (self: AAnnotations, nullable TCpar) */
3405 void parser_prod__AAnnotations__n_cpar_61d(val* self, val* p0) {
3406 val* var_node /* var node: nullable TCpar */;
3407 val* var /* : null */;
3408 short int var1 /* : Bool */;
3409 var_node = p0;
3410 self->attrs[COLOR_parser_nodes__AAnnotations___n_cpar].val = var_node; /* _n_cpar on <self:AAnnotations> */
3411 var = NULL;
3412 if (var_node == NULL) {
3413 var1 = 0; /* is null */
3414 } else {
3415 var1 = 1; /* arg is null and recv is not */
3416 }
3417 if (var1){
3418 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable TCpar(TCpar)>*/;
3419 } else {
3420 }
3421 RET_LABEL:;
3422 }
3423 /* method parser_prod#AAnnotations#n_cpar= for (self: Object, nullable TCpar) */
3424 void VIRTUAL_parser_prod__AAnnotations__n_cpar_61d(val* self, val* p0) {
3425 parser_prod__AAnnotations__n_cpar_61d(self, p0);
3426 RET_LABEL:;
3427 }
3428 /* method parser_prod#AAnnotations#visit_all for (self: AAnnotations, Visitor) */
3429 void parser_prod__AAnnotations__visit_all(val* self, val* p0) {
3430 val* var_v /* var v: Visitor */;
3431 val* var /* : nullable TAt */;
3432 val* var1 /* : null */;
3433 short int var2 /* : Bool */;
3434 val* var3 /* : nullable TAt */;
3435 val* var4 /* : nullable TOpar */;
3436 val* var5 /* : null */;
3437 short int var6 /* : Bool */;
3438 val* var7 /* : nullable TOpar */;
3439 val* var8 /* : ANodes[AAnnotation] */;
3440 val* var9 /* : Iterator[nullable Object] */;
3441 short int var10 /* : Bool */;
3442 val* var11 /* : nullable Object */;
3443 val* var_n /* var n: AAnnotation */;
3444 val* var12 /* : nullable TCpar */;
3445 val* var13 /* : null */;
3446 short int var14 /* : Bool */;
3447 val* var15 /* : nullable TCpar */;
3448 var_v = p0;
3449 var = self->attrs[COLOR_parser_nodes__AAnnotations___n_at].val; /* _n_at on <self:AAnnotations> */
3450 var1 = NULL;
3451 if (var == NULL) {
3452 var2 = 0; /* is null */
3453 } else {
3454 var2 = 1; /* arg is null and recv is not */
3455 }
3456 if (var2){
3457 var3 = self->attrs[COLOR_parser_nodes__AAnnotations___n_at].val; /* _n_at on <self:AAnnotations> */
3458 if (var3 == NULL) {
3459 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 11653);
3460 exit(1);
3461 }
3462 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var3) /* enter_visit on <var_v:Visitor>*/;
3463 } else {
3464 }
3465 var4 = self->attrs[COLOR_parser_nodes__AAnnotations___n_opar].val; /* _n_opar on <self:AAnnotations> */
3466 var5 = NULL;
3467 if (var4 == NULL) {
3468 var6 = 0; /* is null */
3469 } else {
3470 var6 = 1; /* arg is null and recv is not */
3471 }
3472 if (var6){
3473 var7 = self->attrs[COLOR_parser_nodes__AAnnotations___n_opar].val; /* _n_opar on <self:AAnnotations> */
3474 if (var7 == NULL) {
3475 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 11656);
3476 exit(1);
3477 }
3478 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var7) /* enter_visit on <var_v:Visitor>*/;
3479 } else {
3480 }
3481 var8 = self->attrs[COLOR_parser_nodes__AAnnotations___n_items].val; /* _n_items on <self:AAnnotations> */
3482 if (var8 == NULL) {
3483 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_items", "src/parser/parser_prod.nit", 11658);
3484 exit(1);
3485 }
3486 var9 = ((val* (*)(val*))(var8->class->vft[COLOR_abstract_collection__Collection__iterator]))(var8) /* iterator on <var8:ANodes[AAnnotation]>*/;
3487 for(;;) {
3488 var10 = ((short int (*)(val*))(var9->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var9) /* is_ok on <var9:Iterator[nullable Object]>*/;
3489 if(!var10) break;
3490 var11 = ((val* (*)(val*))(var9->class->vft[COLOR_abstract_collection__Iterator__item]))(var9) /* item on <var9:Iterator[nullable Object]>*/;
3491 var_n = var11;
3492 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var_n) /* enter_visit on <var_v:Visitor>*/;
3493 CONTINUE_label: (void)0;
3494 ((void (*)(val*))(var9->class->vft[COLOR_abstract_collection__Iterator__next]))(var9) /* next on <var9:Iterator[nullable Object]>*/;
3495 }
3496 BREAK_label: (void)0;
3497 var12 = self->attrs[COLOR_parser_nodes__AAnnotations___n_cpar].val; /* _n_cpar on <self:AAnnotations> */
3498 var13 = NULL;
3499 if (var12 == NULL) {
3500 var14 = 0; /* is null */
3501 } else {
3502 var14 = 1; /* arg is null and recv is not */
3503 }
3504 if (var14){
3505 var15 = self->attrs[COLOR_parser_nodes__AAnnotations___n_cpar].val; /* _n_cpar on <self:AAnnotations> */
3506 if (var15 == NULL) {
3507 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 11662);
3508 exit(1);
3509 }
3510 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var15) /* enter_visit on <var_v:Visitor>*/;
3511 } else {
3512 }
3513 RET_LABEL:;
3514 }
3515 /* method parser_prod#AAnnotations#visit_all for (self: Object, Visitor) */
3516 void VIRTUAL_parser_prod__AAnnotations__visit_all(val* self, val* p0) {
3517 parser_prod__AAnnotations__visit_all(self, p0);
3518 RET_LABEL:;
3519 }
3520 /* method parser_prod#AAnnotation#empty_init for (self: AAnnotation) */
3521 void parser_prod__AAnnotation__empty_init(val* self) {
3522 RET_LABEL:;
3523 }
3524 /* method parser_prod#AAnnotation#empty_init for (self: Object) */
3525 void VIRTUAL_parser_prod__AAnnotation__empty_init(val* self) {
3526 parser_prod__AAnnotation__empty_init(self);
3527 RET_LABEL:;
3528 }
3529 /* method parser_prod#AAnnotation#init_aannotation for (self: AAnnotation, nullable AAtid, nullable TOpar, Collection[Object], nullable TCpar, nullable AAnnotations) */
3530 void parser_prod__AAnnotation__init_aannotation(val* self, val* p0, val* p1, val* p2, val* p3, val* p4) {
3531 val* var_n_atid /* var n_atid: nullable AAtid */;
3532 val* var_n_opar /* var n_opar: nullable TOpar */;
3533 val* var_n_args /* var n_args: Collection[Object] */;
3534 val* var_n_cpar /* var n_cpar: nullable TCpar */;
3535 val* var_n_annotations /* var n_annotations: nullable AAnnotations */;
3536 val* var /* : null */;
3537 short int var1 /* : Bool */;
3538 val* var2 /* : Iterator[nullable Object] */;
3539 short int var3 /* : Bool */;
3540 val* var4 /* : nullable Object */;
3541 val* var_n /* var n: Object */;
3542 short int var5 /* : Bool */;
3543 int cltype;
3544 int idtype;
3545 val* var6 /* : ANodes[AAtArg] */;
3546 val* var7 /* : null */;
3547 short int var8 /* : Bool */;
3548 val* var9 /* : null */;
3549 short int var10 /* : Bool */;
3550 var_n_atid = p0;
3551 var_n_opar = p1;
3552 var_n_args = p2;
3553 var_n_cpar = p3;
3554 var_n_annotations = p4;
3555 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__AAnnotation__empty_init]))(self) /* empty_init on <self:AAnnotation>*/;
3556 if (var_n_atid == NULL) {
3557 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 11678);
3558 exit(1);
3559 }
3560 self->attrs[COLOR_parser_nodes__AAnnotation___n_atid].val = var_n_atid; /* _n_atid on <self:AAnnotation> */
3561 if (var_n_atid == NULL) {
3562 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_prod.nit", 11679);
3563 exit(1);
3564 } else {
3565 ((void (*)(val*, val*))(var_n_atid->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_atid, self) /* parent= on <var_n_atid:nullable AAtid>*/;
3566 }
3567 self->attrs[COLOR_parser_nodes__AAnnotation___n_opar].val = var_n_opar; /* _n_opar on <self:AAnnotation> */
3568 var = NULL;
3569 if (var_n_opar == NULL) {
3570 var1 = 0; /* is null */
3571 } else {
3572 var1 = 1; /* arg is null and recv is not */
3573 }
3574 if (var1){
3575 ((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)>*/;
3576 } else {
3577 }
3578 var2 = ((val* (*)(val*))(var_n_args->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_n_args) /* iterator on <var_n_args:Collection[Object]>*/;
3579 for(;;) {
3580 var3 = ((short int (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var2) /* is_ok on <var2:Iterator[nullable Object]>*/;
3581 if(!var3) break;
3582 var4 = ((val* (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__item]))(var2) /* item on <var2:Iterator[nullable Object]>*/;
3583 var_n = var4;
3584 /* <var_n:Object> isa AAtArg */
3585 cltype = type_parser_nodes__AAtArg.color;
3586 idtype = type_parser_nodes__AAtArg.id;
3587 if(cltype >= var_n->type->table_size) {
3588 var5 = 0;
3589 } else {
3590 var5 = var_n->type->type_table[cltype] == idtype;
3591 }
3592 if (!var5) {
3593 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11685);
3594 exit(1);
3595 }
3596 var6 = self->attrs[COLOR_parser_nodes__AAnnotation___n_args].val; /* _n_args on <self:AAnnotation> */
3597 if (var6 == NULL) {
3598 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_args", "src/parser/parser_prod.nit", 11686);
3599 exit(1);
3600 }
3601 ((void (*)(val*, val*))(var6->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var6, var_n) /* add on <var6:ANodes[AAtArg]>*/;
3602 ((void (*)(val*, val*))(var_n->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n, self) /* parent= on <var_n:Object(AAtArg)>*/;
3603 CONTINUE_label: (void)0;
3604 ((void (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__next]))(var2) /* next on <var2:Iterator[nullable Object]>*/;
3605 }
3606 BREAK_label: (void)0;
3607 self->attrs[COLOR_parser_nodes__AAnnotation___n_cpar].val = var_n_cpar; /* _n_cpar on <self:AAnnotation> */
3608 var7 = NULL;
3609 if (var_n_cpar == NULL) {
3610 var8 = 0; /* is null */
3611 } else {
3612 var8 = 1; /* arg is null and recv is not */
3613 }
3614 if (var8){
3615 ((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)>*/;
3616 } else {
3617 }
3618 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:AAnnotation> */
3619 var9 = NULL;
3620 if (var_n_annotations == NULL) {
3621 var10 = 0; /* is null */
3622 } else {
3623 var10 = 1; /* arg is null and recv is not */
3624 }
3625 if (var10){
3626 ((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)>*/;
3627 } else {
3628 }
3629 RET_LABEL:;
3630 }
3631 /* method parser_prod#AAnnotation#init_aannotation for (self: Object, nullable AAtid, nullable TOpar, Collection[Object], nullable TCpar, nullable AAnnotations) */
3632 void VIRTUAL_parser_prod__AAnnotation__init_aannotation(val* self, val* p0, val* p1, val* p2, val* p3, val* p4) {
3633 parser_prod__AAnnotation__init_aannotation(self, p0, p1, p2, p3, p4);
3634 RET_LABEL:;
3635 }
3636 /* method parser_prod#AAnnotation#replace_child for (self: AAnnotation, ANode, nullable ANode) */
3637 void parser_prod__AAnnotation__replace_child(val* self, val* p0, val* p1) {
3638 val* var_old_child /* var old_child: ANode */;
3639 val* var_new_child /* var new_child: nullable ANode */;
3640 val* var /* : AAtid */;
3641 short int var1 /* : Bool */;
3642 val* var2 /* : null */;
3643 short int var3 /* : Bool */;
3644 short int var4 /* : Bool */;
3645 int cltype;
3646 int idtype;
3647 val* var5 /* : nullable TOpar */;
3648 short int var6 /* : Bool */;
3649 val* var7 /* : null */;
3650 short int var8 /* : Bool */;
3651 short int var9 /* : Bool */;
3652 int cltype10;
3653 int idtype11;
3654 val* var12 /* : null */;
3655 val* var13 /* : Range[Int] */;
3656 long var14 /* : Int */;
3657 val* var15 /* : ANodes[AAtArg] */;
3658 long var16 /* : Int */;
3659 val* var17 /* : Discrete */;
3660 val* var18 /* : Discrete */;
3661 val* var19 /* : Iterator[nullable Object] */;
3662 short int var20 /* : Bool */;
3663 val* var21 /* : nullable Object */;
3664 long var_i /* var i: Int */;
3665 long var22 /* : Int */;
3666 val* var23 /* : ANodes[AAtArg] */;
3667 val* var24 /* : nullable Object */;
3668 short int var25 /* : Bool */;
3669 val* var26 /* : null */;
3670 short int var27 /* : Bool */;
3671 short int var28 /* : Bool */;
3672 int cltype29;
3673 int idtype30;
3674 val* var31 /* : ANodes[AAtArg] */;
3675 val* var32 /* : ANodes[AAtArg] */;
3676 val* var33 /* : nullable TCpar */;
3677 short int var34 /* : Bool */;
3678 val* var35 /* : null */;
3679 short int var36 /* : Bool */;
3680 short int var37 /* : Bool */;
3681 int cltype38;
3682 int idtype39;
3683 val* var40 /* : null */;
3684 val* var41 /* : nullable AAnnotations */;
3685 short int var42 /* : Bool */;
3686 val* var43 /* : null */;
3687 short int var44 /* : Bool */;
3688 short int var45 /* : Bool */;
3689 int cltype46;
3690 int idtype47;
3691 val* var48 /* : null */;
3692 var_old_child = p0;
3693 var_new_child = p1;
3694 var = self->attrs[COLOR_parser_nodes__AAnnotation___n_atid].val; /* _n_atid on <self:AAnnotation> */
3695 if (var == NULL) {
3696 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_atid", "src/parser/parser_prod.nit", 11701);
3697 exit(1);
3698 }
3699 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:AAtid>*/;
3700 if (var1){
3701 var2 = NULL;
3702 if (var_new_child == NULL) {
3703 var3 = 0; /* is null */
3704 } else {
3705 var3 = 1; /* arg is null and recv is not */
3706 }
3707 if (var3){
3708 ((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)>*/;
3709 /* <var_new_child:nullable ANode(ANode)> isa AAtid */
3710 cltype = type_parser_nodes__AAtid.color;
3711 idtype = type_parser_nodes__AAtid.id;
3712 if(cltype >= var_new_child->type->table_size) {
3713 var4 = 0;
3714 } else {
3715 var4 = var_new_child->type->type_table[cltype] == idtype;
3716 }
3717 if (!var4) {
3718 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11704);
3719 exit(1);
3720 }
3721 self->attrs[COLOR_parser_nodes__AAnnotation___n_atid].val = var_new_child; /* _n_atid on <self:AAnnotation> */
3722 } else {
3723 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser/parser_prod.nit", 11707);
3724 exit(1);
3725 }
3726 goto RET_LABEL;
3727 } else {
3728 }
3729 var5 = self->attrs[COLOR_parser_nodes__AAnnotation___n_opar].val; /* _n_opar on <self:AAnnotation> */
3730 if (var5 == NULL) {
3731 var6 = 0; /* <var_old_child:ANode> cannot be null */
3732 } else {
3733 var6 = ((short int (*)(val*, val*))(var5->class->vft[COLOR_kernel__Object___61d_61d]))(var5, var_old_child) /* == on <var5:nullable TOpar>*/;
3734 }
3735 if (var6){
3736 var7 = NULL;
3737 if (var_new_child == NULL) {
3738 var8 = 0; /* is null */
3739 } else {
3740 var8 = 1; /* arg is null and recv is not */
3741 }
3742 if (var8){
3743 ((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)>*/;
3744 /* <var_new_child:nullable ANode(ANode)> isa TOpar */
3745 cltype10 = type_parser_nodes__TOpar.color;
3746 idtype11 = type_parser_nodes__TOpar.id;
3747 if(cltype10 >= var_new_child->type->table_size) {
3748 var9 = 0;
3749 } else {
3750 var9 = var_new_child->type->type_table[cltype10] == idtype11;
3751 }
3752 if (!var9) {
3753 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11714);
3754 exit(1);
3755 }
3756 self->attrs[COLOR_parser_nodes__AAnnotation___n_opar].val = var_new_child; /* _n_opar on <self:AAnnotation> */
3757 } else {
3758 var12 = NULL;
3759 self->attrs[COLOR_parser_nodes__AAnnotation___n_opar].val = var12; /* _n_opar on <self:AAnnotation> */
3760 }
3761 goto RET_LABEL;
3762 } else {
3763 }
3764 var13 = NEW_range__Range(&type_range__Rangekernel__Int);
3765 var14 = 0;
3766 var15 = self->attrs[COLOR_parser_nodes__AAnnotation___n_args].val; /* _n_args on <self:AAnnotation> */
3767 if (var15 == NULL) {
3768 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_args", "src/parser/parser_prod.nit", 11721);
3769 exit(1);
3770 }
3771 var16 = ((long (*)(val*))(var15->class->vft[COLOR_abstract_collection__Collection__length]))(var15) /* length on <var15:ANodes[AAtArg]>*/;
3772 var17 = BOX_kernel__Int(var14); /* autobox from Int to Discrete */
3773 var18 = BOX_kernel__Int(var16); /* autobox from Int to Discrete */
3774 ((void (*)(val*, val*, val*))(var13->class->vft[COLOR_range__Range__without_last]))(var13, var17, var18) /* without_last on <var13:Range[Int]>*/;
3775 CHECK_NEW_range__Range(var13);
3776 var19 = ((val* (*)(val*))(var13->class->vft[COLOR_abstract_collection__Collection__iterator]))(var13) /* iterator on <var13:Range[Int]>*/;
3777 for(;;) {
3778 var20 = ((short int (*)(val*))(var19->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var19) /* is_ok on <var19:Iterator[nullable Object]>*/;
3779 if(!var20) break;
3780 var21 = ((val* (*)(val*))(var19->class->vft[COLOR_abstract_collection__Iterator__item]))(var19) /* item on <var19:Iterator[nullable Object]>*/;
3781 var22 = ((struct instance_kernel__Int*)var21)->value; /* autounbox from nullable Object to Int */;
3782 var_i = var22;
3783 var23 = self->attrs[COLOR_parser_nodes__AAnnotation___n_args].val; /* _n_args on <self:AAnnotation> */
3784 if (var23 == NULL) {
3785 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_args", "src/parser/parser_prod.nit", 11722);
3786 exit(1);
3787 }
3788 var24 = ((val* (*)(val*, long))(var23->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var23, var_i) /* [] on <var23:ANodes[AAtArg]>*/;
3789 var25 = ((short int (*)(val*, val*))(var24->class->vft[COLOR_kernel__Object___61d_61d]))(var24, var_old_child) /* == on <var24:nullable Object(AAtArg)>*/;
3790 if (var25){
3791 var26 = NULL;
3792 if (var_new_child == NULL) {
3793 var27 = 0; /* is null */
3794 } else {
3795 var27 = 1; /* arg is null and recv is not */
3796 }
3797 if (var27){
3798 /* <var_new_child:nullable ANode(ANode)> isa AAtArg */
3799 cltype29 = type_parser_nodes__AAtArg.color;
3800 idtype30 = type_parser_nodes__AAtArg.id;
3801 if(cltype29 >= var_new_child->type->table_size) {
3802 var28 = 0;
3803 } else {
3804 var28 = var_new_child->type->type_table[cltype29] == idtype30;
3805 }
3806 if (!var28) {
3807 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11724);
3808 exit(1);
3809 }
3810 var31 = self->attrs[COLOR_parser_nodes__AAnnotation___n_args].val; /* _n_args on <self:AAnnotation> */
3811 if (var31 == NULL) {
3812 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_args", "src/parser/parser_prod.nit", 11725);
3813 exit(1);
3814 }
3815 ((void (*)(val*, long, val*))(var31->class->vft[COLOR_abstract_collection__Sequence___91d_93d_61d]))(var31, var_i, var_new_child) /* []= on <var31:ANodes[AAtArg]>*/;
3816 ((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(AAtArg)>*/;
3817 } else {
3818 var32 = self->attrs[COLOR_parser_nodes__AAnnotation___n_args].val; /* _n_args on <self:AAnnotation> */
3819 if (var32 == NULL) {
3820 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_args", "src/parser/parser_prod.nit", 11728);
3821 exit(1);
3822 }
3823 ((void (*)(val*, long))(var32->class->vft[COLOR_abstract_collection__Sequence__remove_at]))(var32, var_i) /* remove_at on <var32:ANodes[AAtArg]>*/;
3824 }
3825 goto RET_LABEL;
3826 } else {
3827 }
3828 CONTINUE_label: (void)0;
3829 ((void (*)(val*))(var19->class->vft[COLOR_abstract_collection__Iterator__next]))(var19) /* next on <var19:Iterator[nullable Object]>*/;
3830 }
3831 BREAK_label: (void)0;
3832 var33 = self->attrs[COLOR_parser_nodes__AAnnotation___n_cpar].val; /* _n_cpar on <self:AAnnotation> */
3833 if (var33 == NULL) {
3834 var34 = 0; /* <var_old_child:ANode> cannot be null */
3835 } else {
3836 var34 = ((short int (*)(val*, val*))(var33->class->vft[COLOR_kernel__Object___61d_61d]))(var33, var_old_child) /* == on <var33:nullable TCpar>*/;
3837 }
3838 if (var34){
3839 var35 = NULL;
3840 if (var_new_child == NULL) {
3841 var36 = 0; /* is null */
3842 } else {
3843 var36 = 1; /* arg is null and recv is not */
3844 }
3845 if (var36){
3846 ((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)>*/;
3847 /* <var_new_child:nullable ANode(ANode)> isa TCpar */
3848 cltype38 = type_parser_nodes__TCpar.color;
3849 idtype39 = type_parser_nodes__TCpar.id;
3850 if(cltype38 >= var_new_child->type->table_size) {
3851 var37 = 0;
3852 } else {
3853 var37 = var_new_child->type->type_table[cltype38] == idtype39;
3854 }
3855 if (!var37) {
3856 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11736);
3857 exit(1);
3858 }
3859 self->attrs[COLOR_parser_nodes__AAnnotation___n_cpar].val = var_new_child; /* _n_cpar on <self:AAnnotation> */
3860 } else {
3861 var40 = NULL;
3862 self->attrs[COLOR_parser_nodes__AAnnotation___n_cpar].val = var40; /* _n_cpar on <self:AAnnotation> */
3863 }
3864 goto RET_LABEL;
3865 } else {
3866 }
3867 var41 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AAnnotation> */
3868 if (var41 == NULL) {
3869 var42 = 0; /* <var_old_child:ANode> cannot be null */
3870 } else {
3871 var42 = ((short int (*)(val*, val*))(var41->class->vft[COLOR_kernel__Object___61d_61d]))(var41, var_old_child) /* == on <var41:nullable AAnnotations>*/;
3872 }
3873 if (var42){
3874 var43 = NULL;
3875 if (var_new_child == NULL) {
3876 var44 = 0; /* is null */
3877 } else {
3878 var44 = 1; /* arg is null and recv is not */
3879 }
3880 if (var44){
3881 ((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)>*/;
3882 /* <var_new_child:nullable ANode(ANode)> isa AAnnotations */
3883 cltype46 = type_parser_nodes__AAnnotations.color;
3884 idtype47 = type_parser_nodes__AAnnotations.id;
3885 if(cltype46 >= var_new_child->type->table_size) {
3886 var45 = 0;
3887 } else {
3888 var45 = var_new_child->type->type_table[cltype46] == idtype47;
3889 }
3890 if (!var45) {
3891 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11746);
3892 exit(1);
3893 }
3894 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_new_child; /* _n_annotations on <self:AAnnotation> */
3895 } else {
3896 var48 = NULL;
3897 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var48; /* _n_annotations on <self:AAnnotation> */
3898 }
3899 goto RET_LABEL;
3900 } else {
3901 }
3902 RET_LABEL:;
3903 }
3904 /* method parser_prod#AAnnotation#replace_child for (self: Object, ANode, nullable ANode) */
3905 void VIRTUAL_parser_prod__AAnnotation__replace_child(val* self, val* p0, val* p1) {
3906 parser_prod__AAnnotation__replace_child(self, p0, p1);
3907 RET_LABEL:;
3908 }
3909 /* method parser_prod#AAnnotation#n_atid= for (self: AAnnotation, AAtid) */
3910 void parser_prod__AAnnotation__n_atid_61d(val* self, val* p0) {
3911 val* var_node /* var node: AAtid */;
3912 var_node = p0;
3913 self->attrs[COLOR_parser_nodes__AAnnotation___n_atid].val = var_node; /* _n_atid on <self:AAnnotation> */
3914 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:AAtid>*/;
3915 RET_LABEL:;
3916 }
3917 /* method parser_prod#AAnnotation#n_atid= for (self: Object, AAtid) */
3918 void VIRTUAL_parser_prod__AAnnotation__n_atid_61d(val* self, val* p0) {
3919 parser_prod__AAnnotation__n_atid_61d(self, p0);
3920 RET_LABEL:;
3921 }
3922 /* method parser_prod#AAnnotation#n_opar= for (self: AAnnotation, nullable TOpar) */
3923 void parser_prod__AAnnotation__n_opar_61d(val* self, val* p0) {
3924 val* var_node /* var node: nullable TOpar */;
3925 val* var /* : null */;
3926 short int var1 /* : Bool */;
3927 var_node = p0;
3928 self->attrs[COLOR_parser_nodes__AAnnotation___n_opar].val = var_node; /* _n_opar on <self:AAnnotation> */
3929 var = NULL;
3930 if (var_node == NULL) {
3931 var1 = 0; /* is null */
3932 } else {
3933 var1 = 1; /* arg is null and recv is not */
3934 }
3935 if (var1){
3936 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable TOpar(TOpar)>*/;
3937 } else {
3938 }
3939 RET_LABEL:;
3940 }
3941 /* method parser_prod#AAnnotation#n_opar= for (self: Object, nullable TOpar) */
3942 void VIRTUAL_parser_prod__AAnnotation__n_opar_61d(val* self, val* p0) {
3943 parser_prod__AAnnotation__n_opar_61d(self, p0);
3944 RET_LABEL:;
3945 }
3946 /* method parser_prod#AAnnotation#n_cpar= for (self: AAnnotation, nullable TCpar) */
3947 void parser_prod__AAnnotation__n_cpar_61d(val* self, val* p0) {
3948 val* var_node /* var node: nullable TCpar */;
3949 val* var /* : null */;
3950 short int var1 /* : Bool */;
3951 var_node = p0;
3952 self->attrs[COLOR_parser_nodes__AAnnotation___n_cpar].val = var_node; /* _n_cpar on <self:AAnnotation> */
3953 var = NULL;
3954 if (var_node == NULL) {
3955 var1 = 0; /* is null */
3956 } else {
3957 var1 = 1; /* arg is null and recv is not */
3958 }
3959 if (var1){
3960 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable TCpar(TCpar)>*/;
3961 } else {
3962 }
3963 RET_LABEL:;
3964 }
3965 /* method parser_prod#AAnnotation#n_cpar= for (self: Object, nullable TCpar) */
3966 void VIRTUAL_parser_prod__AAnnotation__n_cpar_61d(val* self, val* p0) {
3967 parser_prod__AAnnotation__n_cpar_61d(self, p0);
3968 RET_LABEL:;
3969 }
3970 /* method parser_prod#AAnnotation#n_annotations= for (self: AAnnotation, nullable AAnnotations) */
3971 void parser_prod__AAnnotation__n_annotations_61d(val* self, val* p0) {
3972 val* var_node /* var node: nullable AAnnotations */;
3973 val* var /* : null */;
3974 short int var1 /* : Bool */;
3975 var_node = p0;
3976 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_node; /* _n_annotations on <self:AAnnotation> */
3977 var = NULL;
3978 if (var_node == NULL) {
3979 var1 = 0; /* is null */
3980 } else {
3981 var1 = 1; /* arg is null and recv is not */
3982 }
3983 if (var1){
3984 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable AAnnotations(AAnnotations)>*/;
3985 } else {
3986 }
3987 RET_LABEL:;
3988 }
3989 /* method parser_prod#AAnnotation#n_annotations= for (self: Object, nullable AAnnotations) */
3990 void VIRTUAL_parser_prod__AAnnotation__n_annotations_61d(val* self, val* p0) {
3991 parser_prod__AAnnotation__n_annotations_61d(self, p0);
3992 RET_LABEL:;
3993 }
3994 /* method parser_prod#AAnnotation#visit_all for (self: AAnnotation, Visitor) */
3995 void parser_prod__AAnnotation__visit_all(val* self, val* p0) {
3996 val* var_v /* var v: Visitor */;
3997 val* var /* : AAtid */;
3998 val* var1 /* : nullable TOpar */;
3999 val* var2 /* : null */;
4000 short int var3 /* : Bool */;
4001 val* var4 /* : nullable TOpar */;
4002 val* var5 /* : ANodes[AAtArg] */;
4003 val* var6 /* : Iterator[nullable Object] */;
4004 short int var7 /* : Bool */;
4005 val* var8 /* : nullable Object */;
4006 val* var_n /* var n: AAtArg */;
4007 val* var9 /* : nullable TCpar */;
4008 val* var10 /* : null */;
4009 short int var11 /* : Bool */;
4010 val* var12 /* : nullable TCpar */;
4011 val* var13 /* : nullable AAnnotations */;
4012 val* var14 /* : null */;
4013 short int var15 /* : Bool */;
4014 val* var16 /* : nullable AAnnotations */;
4015 var_v = p0;
4016 var = self->attrs[COLOR_parser_nodes__AAnnotation___n_atid].val; /* _n_atid on <self:AAnnotation> */
4017 if (var == NULL) {
4018 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_atid", "src/parser/parser_prod.nit", 11785);
4019 exit(1);
4020 }
4021 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
4022 var1 = self->attrs[COLOR_parser_nodes__AAnnotation___n_opar].val; /* _n_opar on <self:AAnnotation> */
4023 var2 = NULL;
4024 if (var1 == NULL) {
4025 var3 = 0; /* is null */
4026 } else {
4027 var3 = 1; /* arg is null and recv is not */
4028 }
4029 if (var3){
4030 var4 = self->attrs[COLOR_parser_nodes__AAnnotation___n_opar].val; /* _n_opar on <self:AAnnotation> */
4031 if (var4 == NULL) {
4032 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 11787);
4033 exit(1);
4034 }
4035 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var4) /* enter_visit on <var_v:Visitor>*/;
4036 } else {
4037 }
4038 var5 = self->attrs[COLOR_parser_nodes__AAnnotation___n_args].val; /* _n_args on <self:AAnnotation> */
4039 if (var5 == NULL) {
4040 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_args", "src/parser/parser_prod.nit", 11789);
4041 exit(1);
4042 }
4043 var6 = ((val* (*)(val*))(var5->class->vft[COLOR_abstract_collection__Collection__iterator]))(var5) /* iterator on <var5:ANodes[AAtArg]>*/;
4044 for(;;) {
4045 var7 = ((short int (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var6) /* is_ok on <var6:Iterator[nullable Object]>*/;
4046 if(!var7) break;
4047 var8 = ((val* (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__item]))(var6) /* item on <var6:Iterator[nullable Object]>*/;
4048 var_n = var8;
4049 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var_n) /* enter_visit on <var_v:Visitor>*/;
4050 CONTINUE_label: (void)0;
4051 ((void (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__next]))(var6) /* next on <var6:Iterator[nullable Object]>*/;
4052 }
4053 BREAK_label: (void)0;
4054 var9 = self->attrs[COLOR_parser_nodes__AAnnotation___n_cpar].val; /* _n_cpar on <self:AAnnotation> */
4055 var10 = NULL;
4056 if (var9 == NULL) {
4057 var11 = 0; /* is null */
4058 } else {
4059 var11 = 1; /* arg is null and recv is not */
4060 }
4061 if (var11){
4062 var12 = self->attrs[COLOR_parser_nodes__AAnnotation___n_cpar].val; /* _n_cpar on <self:AAnnotation> */
4063 if (var12 == NULL) {
4064 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 11793);
4065 exit(1);
4066 }
4067 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var12) /* enter_visit on <var_v:Visitor>*/;
4068 } else {
4069 }
4070 var13 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AAnnotation> */
4071 var14 = NULL;
4072 if (var13 == NULL) {
4073 var15 = 0; /* is null */
4074 } else {
4075 var15 = 1; /* arg is null and recv is not */
4076 }
4077 if (var15){
4078 var16 = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AAnnotation> */
4079 if (var16 == NULL) {
4080 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 11796);
4081 exit(1);
4082 }
4083 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var16) /* enter_visit on <var_v:Visitor>*/;
4084 } else {
4085 }
4086 RET_LABEL:;
4087 }
4088 /* method parser_prod#AAnnotation#visit_all for (self: Object, Visitor) */
4089 void VIRTUAL_parser_prod__AAnnotation__visit_all(val* self, val* p0) {
4090 parser_prod__AAnnotation__visit_all(self, p0);
4091 RET_LABEL:;
4092 }
4093 /* method parser_prod#ATypeAtArg#empty_init for (self: ATypeAtArg) */
4094 void parser_prod__ATypeAtArg__empty_init(val* self) {
4095 RET_LABEL:;
4096 }
4097 /* method parser_prod#ATypeAtArg#empty_init for (self: Object) */
4098 void VIRTUAL_parser_prod__ATypeAtArg__empty_init(val* self) {
4099 parser_prod__ATypeAtArg__empty_init(self);
4100 RET_LABEL:;
4101 }
4102 /* method parser_prod#ATypeAtArg#init_atypeatarg for (self: ATypeAtArg, nullable AType) */
4103 void parser_prod__ATypeAtArg__init_atypeatarg(val* self, val* p0) {
4104 val* var_n_type /* var n_type: nullable AType */;
4105 var_n_type = p0;
4106 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__ATypeAtArg__empty_init]))(self) /* empty_init on <self:ATypeAtArg>*/;
4107 if (var_n_type == NULL) {
4108 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 11808);
4109 exit(1);
4110 }
4111 self->attrs[COLOR_parser_nodes__ATypeAtArg___n_type].val = var_n_type; /* _n_type on <self:ATypeAtArg> */
4112 if (var_n_type == NULL) {
4113 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_prod.nit", 11809);
4114 exit(1);
4115 } else {
4116 ((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>*/;
4117 }
4118 RET_LABEL:;
4119 }
4120 /* method parser_prod#ATypeAtArg#init_atypeatarg for (self: Object, nullable AType) */
4121 void VIRTUAL_parser_prod__ATypeAtArg__init_atypeatarg(val* self, val* p0) {
4122 parser_prod__ATypeAtArg__init_atypeatarg(self, p0);
4123 RET_LABEL:;
4124 }
4125 /* method parser_prod#ATypeAtArg#replace_child for (self: ATypeAtArg, ANode, nullable ANode) */
4126 void parser_prod__ATypeAtArg__replace_child(val* self, val* p0, val* p1) {
4127 val* var_old_child /* var old_child: ANode */;
4128 val* var_new_child /* var new_child: nullable ANode */;
4129 val* var /* : AType */;
4130 short int var1 /* : Bool */;
4131 val* var2 /* : null */;
4132 short int var3 /* : Bool */;
4133 short int var4 /* : Bool */;
4134 int cltype;
4135 int idtype;
4136 var_old_child = p0;
4137 var_new_child = p1;
4138 var = self->attrs[COLOR_parser_nodes__ATypeAtArg___n_type].val; /* _n_type on <self:ATypeAtArg> */
4139 if (var == NULL) {
4140 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_type", "src/parser/parser_prod.nit", 11814);
4141 exit(1);
4142 }
4143 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:AType>*/;
4144 if (var1){
4145 var2 = NULL;
4146 if (var_new_child == NULL) {
4147 var3 = 0; /* is null */
4148 } else {
4149 var3 = 1; /* arg is null and recv is not */
4150 }
4151 if (var3){
4152 ((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)>*/;
4153 /* <var_new_child:nullable ANode(ANode)> isa AType */
4154 cltype = type_parser_nodes__AType.color;
4155 idtype = type_parser_nodes__AType.id;
4156 if(cltype >= var_new_child->type->table_size) {
4157 var4 = 0;
4158 } else {
4159 var4 = var_new_child->type->type_table[cltype] == idtype;
4160 }
4161 if (!var4) {
4162 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11817);
4163 exit(1);
4164 }
4165 self->attrs[COLOR_parser_nodes__ATypeAtArg___n_type].val = var_new_child; /* _n_type on <self:ATypeAtArg> */
4166 } else {
4167 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser/parser_prod.nit", 11820);
4168 exit(1);
4169 }
4170 goto RET_LABEL;
4171 } else {
4172 }
4173 RET_LABEL:;
4174 }
4175 /* method parser_prod#ATypeAtArg#replace_child for (self: Object, ANode, nullable ANode) */
4176 void VIRTUAL_parser_prod__ATypeAtArg__replace_child(val* self, val* p0, val* p1) {
4177 parser_prod__ATypeAtArg__replace_child(self, p0, p1);
4178 RET_LABEL:;
4179 }
4180 /* method parser_prod#ATypeAtArg#n_type= for (self: ATypeAtArg, AType) */
4181 void parser_prod__ATypeAtArg__n_type_61d(val* self, val* p0) {
4182 val* var_node /* var node: AType */;
4183 var_node = p0;
4184 self->attrs[COLOR_parser_nodes__ATypeAtArg___n_type].val = var_node; /* _n_type on <self:ATypeAtArg> */
4185 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:AType>*/;
4186 RET_LABEL:;
4187 }
4188 /* method parser_prod#ATypeAtArg#n_type= for (self: Object, AType) */
4189 void VIRTUAL_parser_prod__ATypeAtArg__n_type_61d(val* self, val* p0) {
4190 parser_prod__ATypeAtArg__n_type_61d(self, p0);
4191 RET_LABEL:;
4192 }
4193 /* method parser_prod#ATypeAtArg#visit_all for (self: ATypeAtArg, Visitor) */
4194 void parser_prod__ATypeAtArg__visit_all(val* self, val* p0) {
4195 val* var_v /* var v: Visitor */;
4196 val* var /* : AType */;
4197 var_v = p0;
4198 var = self->attrs[COLOR_parser_nodes__ATypeAtArg___n_type].val; /* _n_type on <self:ATypeAtArg> */
4199 if (var == NULL) {
4200 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_type", "src/parser/parser_prod.nit", 11835);
4201 exit(1);
4202 }
4203 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
4204 RET_LABEL:;
4205 }
4206 /* method parser_prod#ATypeAtArg#visit_all for (self: Object, Visitor) */
4207 void VIRTUAL_parser_prod__ATypeAtArg__visit_all(val* self, val* p0) {
4208 parser_prod__ATypeAtArg__visit_all(self, p0);
4209 RET_LABEL:;
4210 }
4211 /* method parser_prod#AExprAtArg#empty_init for (self: AExprAtArg) */
4212 void parser_prod__AExprAtArg__empty_init(val* self) {
4213 RET_LABEL:;
4214 }
4215 /* method parser_prod#AExprAtArg#empty_init for (self: Object) */
4216 void VIRTUAL_parser_prod__AExprAtArg__empty_init(val* self) {
4217 parser_prod__AExprAtArg__empty_init(self);
4218 RET_LABEL:;
4219 }
4220 /* method parser_prod#AExprAtArg#init_aexpratarg for (self: AExprAtArg, nullable AExpr) */
4221 void parser_prod__AExprAtArg__init_aexpratarg(val* self, val* p0) {
4222 val* var_n_expr /* var n_expr: nullable AExpr */;
4223 var_n_expr = p0;
4224 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__AExprAtArg__empty_init]))(self) /* empty_init on <self:AExprAtArg>*/;
4225 if (var_n_expr == NULL) {
4226 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 11846);
4227 exit(1);
4228 }
4229 self->attrs[COLOR_parser_nodes__AExprAtArg___n_expr].val = var_n_expr; /* _n_expr on <self:AExprAtArg> */
4230 if (var_n_expr == NULL) {
4231 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_prod.nit", 11847);
4232 exit(1);
4233 } else {
4234 ((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>*/;
4235 }
4236 RET_LABEL:;
4237 }
4238 /* method parser_prod#AExprAtArg#init_aexpratarg for (self: Object, nullable AExpr) */
4239 void VIRTUAL_parser_prod__AExprAtArg__init_aexpratarg(val* self, val* p0) {
4240 parser_prod__AExprAtArg__init_aexpratarg(self, p0);
4241 RET_LABEL:;
4242 }
4243 /* method parser_prod#AExprAtArg#replace_child for (self: AExprAtArg, ANode, nullable ANode) */
4244 void parser_prod__AExprAtArg__replace_child(val* self, val* p0, val* p1) {
4245 val* var_old_child /* var old_child: ANode */;
4246 val* var_new_child /* var new_child: nullable ANode */;
4247 val* var /* : AExpr */;
4248 short int var1 /* : Bool */;
4249 val* var2 /* : null */;
4250 short int var3 /* : Bool */;
4251 short int var4 /* : Bool */;
4252 int cltype;
4253 int idtype;
4254 var_old_child = p0;
4255 var_new_child = p1;
4256 var = self->attrs[COLOR_parser_nodes__AExprAtArg___n_expr].val; /* _n_expr on <self:AExprAtArg> */
4257 if (var == NULL) {
4258 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_expr", "src/parser/parser_prod.nit", 11852);
4259 exit(1);
4260 }
4261 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:AExpr>*/;
4262 if (var1){
4263 var2 = NULL;
4264 if (var_new_child == NULL) {
4265 var3 = 0; /* is null */
4266 } else {
4267 var3 = 1; /* arg is null and recv is not */
4268 }
4269 if (var3){
4270 ((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)>*/;
4271 /* <var_new_child:nullable ANode(ANode)> isa AExpr */
4272 cltype = type_parser_nodes__AExpr.color;
4273 idtype = type_parser_nodes__AExpr.id;
4274 if(cltype >= var_new_child->type->table_size) {
4275 var4 = 0;
4276 } else {
4277 var4 = var_new_child->type->type_table[cltype] == idtype;
4278 }
4279 if (!var4) {
4280 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11855);
4281 exit(1);
4282 }
4283 self->attrs[COLOR_parser_nodes__AExprAtArg___n_expr].val = var_new_child; /* _n_expr on <self:AExprAtArg> */
4284 } else {
4285 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser/parser_prod.nit", 11858);
4286 exit(1);
4287 }
4288 goto RET_LABEL;
4289 } else {
4290 }
4291 RET_LABEL:;
4292 }
4293 /* method parser_prod#AExprAtArg#replace_child for (self: Object, ANode, nullable ANode) */
4294 void VIRTUAL_parser_prod__AExprAtArg__replace_child(val* self, val* p0, val* p1) {
4295 parser_prod__AExprAtArg__replace_child(self, p0, p1);
4296 RET_LABEL:;
4297 }
4298 /* method parser_prod#AExprAtArg#n_expr= for (self: AExprAtArg, AExpr) */
4299 void parser_prod__AExprAtArg__n_expr_61d(val* self, val* p0) {
4300 val* var_node /* var node: AExpr */;
4301 var_node = p0;
4302 self->attrs[COLOR_parser_nodes__AExprAtArg___n_expr].val = var_node; /* _n_expr on <self:AExprAtArg> */
4303 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:AExpr>*/;
4304 RET_LABEL:;
4305 }
4306 /* method parser_prod#AExprAtArg#n_expr= for (self: Object, AExpr) */
4307 void VIRTUAL_parser_prod__AExprAtArg__n_expr_61d(val* self, val* p0) {
4308 parser_prod__AExprAtArg__n_expr_61d(self, p0);
4309 RET_LABEL:;
4310 }
4311 /* method parser_prod#AExprAtArg#visit_all for (self: AExprAtArg, Visitor) */
4312 void parser_prod__AExprAtArg__visit_all(val* self, val* p0) {
4313 val* var_v /* var v: Visitor */;
4314 val* var /* : AExpr */;
4315 var_v = p0;
4316 var = self->attrs[COLOR_parser_nodes__AExprAtArg___n_expr].val; /* _n_expr on <self:AExprAtArg> */
4317 if (var == NULL) {
4318 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_expr", "src/parser/parser_prod.nit", 11873);
4319 exit(1);
4320 }
4321 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
4322 RET_LABEL:;
4323 }
4324 /* method parser_prod#AExprAtArg#visit_all for (self: Object, Visitor) */
4325 void VIRTUAL_parser_prod__AExprAtArg__visit_all(val* self, val* p0) {
4326 parser_prod__AExprAtArg__visit_all(self, p0);
4327 RET_LABEL:;
4328 }
4329 /* method parser_prod#AAtAtArg#empty_init for (self: AAtAtArg) */
4330 void parser_prod__AAtAtArg__empty_init(val* self) {
4331 RET_LABEL:;
4332 }
4333 /* method parser_prod#AAtAtArg#empty_init for (self: Object) */
4334 void VIRTUAL_parser_prod__AAtAtArg__empty_init(val* self) {
4335 parser_prod__AAtAtArg__empty_init(self);
4336 RET_LABEL:;
4337 }
4338 /* method parser_prod#AAtAtArg#init_aatatarg for (self: AAtAtArg, nullable AAnnotations) */
4339 void parser_prod__AAtAtArg__init_aatatarg(val* self, val* p0) {
4340 val* var_n_annotations /* var n_annotations: nullable AAnnotations */;
4341 var_n_annotations = p0;
4342 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__AAtAtArg__empty_init]))(self) /* empty_init on <self:AAtAtArg>*/;
4343 if (var_n_annotations == NULL) {
4344 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 11884);
4345 exit(1);
4346 }
4347 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:AAtAtArg> */
4348 if (var_n_annotations == NULL) {
4349 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_prod.nit", 11885);
4350 exit(1);
4351 } else {
4352 ((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>*/;
4353 }
4354 RET_LABEL:;
4355 }
4356 /* method parser_prod#AAtAtArg#init_aatatarg for (self: Object, nullable AAnnotations) */
4357 void VIRTUAL_parser_prod__AAtAtArg__init_aatatarg(val* self, val* p0) {
4358 parser_prod__AAtAtArg__init_aatatarg(self, p0);
4359 RET_LABEL:;
4360 }
4361 /* method parser_prod#AAtAtArg#replace_child for (self: AAtAtArg, ANode, nullable ANode) */
4362 void parser_prod__AAtAtArg__replace_child(val* self, val* p0, val* p1) {
4363 val* var_old_child /* var old_child: ANode */;
4364 val* var_new_child /* var new_child: nullable ANode */;
4365 val* var /* : nullable AAnnotations */;
4366 short int var1 /* : Bool */;
4367 val* var2 /* : null */;
4368 short int var3 /* : Bool */;
4369 short int var4 /* : Bool */;
4370 int cltype;
4371 int idtype;
4372 var_old_child = p0;
4373 var_new_child = p1;
4374 var = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AAtAtArg> */
4375 if (var == NULL) {
4376 var1 = 0; /* <var_old_child:ANode> cannot be null */
4377 } else {
4378 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:nullable AAnnotations>*/;
4379 }
4380 if (var1){
4381 var2 = NULL;
4382 if (var_new_child == NULL) {
4383 var3 = 0; /* is null */
4384 } else {
4385 var3 = 1; /* arg is null and recv is not */
4386 }
4387 if (var3){
4388 ((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)>*/;
4389 /* <var_new_child:nullable ANode(ANode)> isa AAnnotations */
4390 cltype = type_parser_nodes__AAnnotations.color;
4391 idtype = type_parser_nodes__AAnnotations.id;
4392 if(cltype >= var_new_child->type->table_size) {
4393 var4 = 0;
4394 } else {
4395 var4 = var_new_child->type->type_table[cltype] == idtype;
4396 }
4397 if (!var4) {
4398 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11893);
4399 exit(1);
4400 }
4401 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_new_child; /* _n_annotations on <self:AAtAtArg> */
4402 } else {
4403 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser/parser_prod.nit", 11896);
4404 exit(1);
4405 }
4406 goto RET_LABEL;
4407 } else {
4408 }
4409 RET_LABEL:;
4410 }
4411 /* method parser_prod#AAtAtArg#replace_child for (self: Object, ANode, nullable ANode) */
4412 void VIRTUAL_parser_prod__AAtAtArg__replace_child(val* self, val* p0, val* p1) {
4413 parser_prod__AAtAtArg__replace_child(self, p0, p1);
4414 RET_LABEL:;
4415 }
4416 /* method parser_prod#AAtAtArg#n_annotations= for (self: AAtAtArg, nullable AAnnotations) */
4417 void parser_prod__AAtAtArg__n_annotations_61d(val* self, val* p0) {
4418 val* var_node /* var node: nullable AAnnotations */;
4419 var_node = p0;
4420 self->attrs[COLOR_parser_nodes__Prod___n_annotations].val = var_node; /* _n_annotations on <self:AAtAtArg> */
4421 if (var_node == NULL) {
4422 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_prod.nit", 11905);
4423 exit(1);
4424 } else {
4425 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:nullable AAnnotations>*/;
4426 }
4427 RET_LABEL:;
4428 }
4429 /* method parser_prod#AAtAtArg#n_annotations= for (self: Object, nullable AAnnotations) */
4430 void VIRTUAL_parser_prod__AAtAtArg__n_annotations_61d(val* self, val* p0) {
4431 parser_prod__AAtAtArg__n_annotations_61d(self, p0);
4432 RET_LABEL:;
4433 }
4434 /* method parser_prod#AAtAtArg#visit_all for (self: AAtAtArg, Visitor) */
4435 void parser_prod__AAtAtArg__visit_all(val* self, val* p0) {
4436 val* var_v /* var v: Visitor */;
4437 val* var /* : nullable AAnnotations */;
4438 var_v = p0;
4439 var = self->attrs[COLOR_parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AAtAtArg> */
4440 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
4441 RET_LABEL:;
4442 }
4443 /* method parser_prod#AAtAtArg#visit_all for (self: Object, Visitor) */
4444 void VIRTUAL_parser_prod__AAtAtArg__visit_all(val* self, val* p0) {
4445 parser_prod__AAtAtArg__visit_all(self, p0);
4446 RET_LABEL:;
4447 }
4448 /* method parser_prod#AIdAtid#empty_init for (self: AIdAtid) */
4449 void parser_prod__AIdAtid__empty_init(val* self) {
4450 RET_LABEL:;
4451 }
4452 /* method parser_prod#AIdAtid#empty_init for (self: Object) */
4453 void VIRTUAL_parser_prod__AIdAtid__empty_init(val* self) {
4454 parser_prod__AIdAtid__empty_init(self);
4455 RET_LABEL:;
4456 }
4457 /* method parser_prod#AIdAtid#init_aidatid for (self: AIdAtid, nullable TId) */
4458 void parser_prod__AIdAtid__init_aidatid(val* self, val* p0) {
4459 val* var_n_id /* var n_id: nullable TId */;
4460 var_n_id = p0;
4461 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__AIdAtid__empty_init]))(self) /* empty_init on <self:AIdAtid>*/;
4462 if (var_n_id == NULL) {
4463 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 11922);
4464 exit(1);
4465 }
4466 self->attrs[COLOR_parser_nodes__AAtid___n_id].val = var_n_id; /* _n_id on <self:AIdAtid> */
4467 if (var_n_id == NULL) {
4468 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_prod.nit", 11923);
4469 exit(1);
4470 } else {
4471 ((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>*/;
4472 }
4473 RET_LABEL:;
4474 }
4475 /* method parser_prod#AIdAtid#init_aidatid for (self: Object, nullable TId) */
4476 void VIRTUAL_parser_prod__AIdAtid__init_aidatid(val* self, val* p0) {
4477 parser_prod__AIdAtid__init_aidatid(self, p0);
4478 RET_LABEL:;
4479 }
4480 /* method parser_prod#AIdAtid#replace_child for (self: AIdAtid, ANode, nullable ANode) */
4481 void parser_prod__AIdAtid__replace_child(val* self, val* p0, val* p1) {
4482 val* var_old_child /* var old_child: ANode */;
4483 val* var_new_child /* var new_child: nullable ANode */;
4484 val* var /* : Token */;
4485 short int var1 /* : Bool */;
4486 val* var2 /* : null */;
4487 short int var3 /* : Bool */;
4488 short int var4 /* : Bool */;
4489 int cltype;
4490 int idtype;
4491 var_old_child = p0;
4492 var_new_child = p1;
4493 var = self->attrs[COLOR_parser_nodes__AAtid___n_id].val; /* _n_id on <self:AIdAtid> */
4494 if (var == NULL) {
4495 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_id", "src/parser/parser_prod.nit", 11928);
4496 exit(1);
4497 }
4498 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:Token>*/;
4499 if (var1){
4500 var2 = NULL;
4501 if (var_new_child == NULL) {
4502 var3 = 0; /* is null */
4503 } else {
4504 var3 = 1; /* arg is null and recv is not */
4505 }
4506 if (var3){
4507 ((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)>*/;
4508 /* <var_new_child:nullable ANode(ANode)> isa TId */
4509 cltype = type_parser_nodes__TId.color;
4510 idtype = type_parser_nodes__TId.id;
4511 if(cltype >= var_new_child->type->table_size) {
4512 var4 = 0;
4513 } else {
4514 var4 = var_new_child->type->type_table[cltype] == idtype;
4515 }
4516 if (!var4) {
4517 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11931);
4518 exit(1);
4519 }
4520 self->attrs[COLOR_parser_nodes__AAtid___n_id].val = var_new_child; /* _n_id on <self:AIdAtid> */
4521 } else {
4522 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser/parser_prod.nit", 11934);
4523 exit(1);
4524 }
4525 goto RET_LABEL;
4526 } else {
4527 }
4528 RET_LABEL:;
4529 }
4530 /* method parser_prod#AIdAtid#replace_child for (self: Object, ANode, nullable ANode) */
4531 void VIRTUAL_parser_prod__AIdAtid__replace_child(val* self, val* p0, val* p1) {
4532 parser_prod__AIdAtid__replace_child(self, p0, p1);
4533 RET_LABEL:;
4534 }
4535 /* method parser_prod#AIdAtid#n_id= for (self: AIdAtid, Token) */
4536 void parser_prod__AIdAtid__n_id_61d(val* self, val* p0) {
4537 val* var_node /* var node: Token */;
4538 var_node = p0;
4539 self->attrs[COLOR_parser_nodes__AAtid___n_id].val = var_node; /* _n_id on <self:AIdAtid> */
4540 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:Token>*/;
4541 RET_LABEL:;
4542 }
4543 /* method parser_prod#AIdAtid#n_id= for (self: Object, Token) */
4544 void VIRTUAL_parser_prod__AIdAtid__n_id_61d(val* self, val* p0) {
4545 parser_prod__AIdAtid__n_id_61d(self, p0);
4546 RET_LABEL:;
4547 }
4548 /* method parser_prod#AIdAtid#visit_all for (self: AIdAtid, Visitor) */
4549 void parser_prod__AIdAtid__visit_all(val* self, val* p0) {
4550 val* var_v /* var v: Visitor */;
4551 val* var /* : Token */;
4552 var_v = p0;
4553 var = self->attrs[COLOR_parser_nodes__AAtid___n_id].val; /* _n_id on <self:AIdAtid> */
4554 if (var == NULL) {
4555 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_id", "src/parser/parser_prod.nit", 11949);
4556 exit(1);
4557 }
4558 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
4559 RET_LABEL:;
4560 }
4561 /* method parser_prod#AIdAtid#visit_all for (self: Object, Visitor) */
4562 void VIRTUAL_parser_prod__AIdAtid__visit_all(val* self, val* p0) {
4563 parser_prod__AIdAtid__visit_all(self, p0);
4564 RET_LABEL:;
4565 }
4566 /* method parser_prod#AKwexternAtid#empty_init for (self: AKwexternAtid) */
4567 void parser_prod__AKwexternAtid__empty_init(val* self) {
4568 RET_LABEL:;
4569 }
4570 /* method parser_prod#AKwexternAtid#empty_init for (self: Object) */
4571 void VIRTUAL_parser_prod__AKwexternAtid__empty_init(val* self) {
4572 parser_prod__AKwexternAtid__empty_init(self);
4573 RET_LABEL:;
4574 }
4575 /* method parser_prod#AKwexternAtid#init_akwexternatid for (self: AKwexternAtid, nullable TKwextern) */
4576 void parser_prod__AKwexternAtid__init_akwexternatid(val* self, val* p0) {
4577 val* var_n_id /* var n_id: nullable TKwextern */;
4578 var_n_id = p0;
4579 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__AKwexternAtid__empty_init]))(self) /* empty_init on <self:AKwexternAtid>*/;
4580 if (var_n_id == NULL) {
4581 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 11960);
4582 exit(1);
4583 }
4584 self->attrs[COLOR_parser_nodes__AAtid___n_id].val = var_n_id; /* _n_id on <self:AKwexternAtid> */
4585 if (var_n_id == NULL) {
4586 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_prod.nit", 11961);
4587 exit(1);
4588 } else {
4589 ((void (*)(val*, val*))(var_n_id->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_id, self) /* parent= on <var_n_id:nullable TKwextern>*/;
4590 }
4591 RET_LABEL:;
4592 }
4593 /* method parser_prod#AKwexternAtid#init_akwexternatid for (self: Object, nullable TKwextern) */
4594 void VIRTUAL_parser_prod__AKwexternAtid__init_akwexternatid(val* self, val* p0) {
4595 parser_prod__AKwexternAtid__init_akwexternatid(self, p0);
4596 RET_LABEL:;
4597 }
4598 /* method parser_prod#AKwexternAtid#replace_child for (self: AKwexternAtid, ANode, nullable ANode) */
4599 void parser_prod__AKwexternAtid__replace_child(val* self, val* p0, val* p1) {
4600 val* var_old_child /* var old_child: ANode */;
4601 val* var_new_child /* var new_child: nullable ANode */;
4602 val* var /* : Token */;
4603 short int var1 /* : Bool */;
4604 val* var2 /* : null */;
4605 short int var3 /* : Bool */;
4606 short int var4 /* : Bool */;
4607 int cltype;
4608 int idtype;
4609 var_old_child = p0;
4610 var_new_child = p1;
4611 var = self->attrs[COLOR_parser_nodes__AAtid___n_id].val; /* _n_id on <self:AKwexternAtid> */
4612 if (var == NULL) {
4613 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_id", "src/parser/parser_prod.nit", 11966);
4614 exit(1);
4615 }
4616 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:Token>*/;
4617 if (var1){
4618 var2 = NULL;
4619 if (var_new_child == NULL) {
4620 var3 = 0; /* is null */
4621 } else {
4622 var3 = 1; /* arg is null and recv is not */
4623 }
4624 if (var3){
4625 ((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)>*/;
4626 /* <var_new_child:nullable ANode(ANode)> isa TKwextern */
4627 cltype = type_parser_nodes__TKwextern.color;
4628 idtype = type_parser_nodes__TKwextern.id;
4629 if(cltype >= var_new_child->type->table_size) {
4630 var4 = 0;
4631 } else {
4632 var4 = var_new_child->type->type_table[cltype] == idtype;
4633 }
4634 if (!var4) {
4635 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 11969);
4636 exit(1);
4637 }
4638 self->attrs[COLOR_parser_nodes__AAtid___n_id].val = var_new_child; /* _n_id on <self:AKwexternAtid> */
4639 } else {
4640 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser/parser_prod.nit", 11972);
4641 exit(1);
4642 }
4643 goto RET_LABEL;
4644 } else {
4645 }
4646 RET_LABEL:;
4647 }
4648 /* method parser_prod#AKwexternAtid#replace_child for (self: Object, ANode, nullable ANode) */
4649 void VIRTUAL_parser_prod__AKwexternAtid__replace_child(val* self, val* p0, val* p1) {
4650 parser_prod__AKwexternAtid__replace_child(self, p0, p1);
4651 RET_LABEL:;
4652 }
4653 /* method parser_prod#AKwexternAtid#n_id= for (self: AKwexternAtid, Token) */
4654 void parser_prod__AKwexternAtid__n_id_61d(val* self, val* p0) {
4655 val* var_node /* var node: Token */;
4656 var_node = p0;
4657 self->attrs[COLOR_parser_nodes__AAtid___n_id].val = var_node; /* _n_id on <self:AKwexternAtid> */
4658 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:Token>*/;
4659 RET_LABEL:;
4660 }
4661 /* method parser_prod#AKwexternAtid#n_id= for (self: Object, Token) */
4662 void VIRTUAL_parser_prod__AKwexternAtid__n_id_61d(val* self, val* p0) {
4663 parser_prod__AKwexternAtid__n_id_61d(self, p0);
4664 RET_LABEL:;
4665 }
4666 /* method parser_prod#AKwexternAtid#visit_all for (self: AKwexternAtid, Visitor) */
4667 void parser_prod__AKwexternAtid__visit_all(val* self, val* p0) {
4668 val* var_v /* var v: Visitor */;
4669 val* var /* : Token */;
4670 var_v = p0;
4671 var = self->attrs[COLOR_parser_nodes__AAtid___n_id].val; /* _n_id on <self:AKwexternAtid> */
4672 if (var == NULL) {
4673 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_id", "src/parser/parser_prod.nit", 11987);
4674 exit(1);
4675 }
4676 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
4677 RET_LABEL:;
4678 }
4679 /* method parser_prod#AKwexternAtid#visit_all for (self: Object, Visitor) */
4680 void VIRTUAL_parser_prod__AKwexternAtid__visit_all(val* self, val* p0) {
4681 parser_prod__AKwexternAtid__visit_all(self, p0);
4682 RET_LABEL:;
4683 }
4684 /* method parser_prod#AKwinternAtid#empty_init for (self: AKwinternAtid) */
4685 void parser_prod__AKwinternAtid__empty_init(val* self) {
4686 RET_LABEL:;
4687 }
4688 /* method parser_prod#AKwinternAtid#empty_init for (self: Object) */
4689 void VIRTUAL_parser_prod__AKwinternAtid__empty_init(val* self) {
4690 parser_prod__AKwinternAtid__empty_init(self);
4691 RET_LABEL:;
4692 }
4693 /* method parser_prod#AKwinternAtid#init_akwinternatid for (self: AKwinternAtid, nullable TKwintern) */
4694 void parser_prod__AKwinternAtid__init_akwinternatid(val* self, val* p0) {
4695 val* var_n_id /* var n_id: nullable TKwintern */;
4696 var_n_id = p0;
4697 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__AKwinternAtid__empty_init]))(self) /* empty_init on <self:AKwinternAtid>*/;
4698 if (var_n_id == NULL) {
4699 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 11998);
4700 exit(1);
4701 }
4702 self->attrs[COLOR_parser_nodes__AAtid___n_id].val = var_n_id; /* _n_id on <self:AKwinternAtid> */
4703 if (var_n_id == NULL) {
4704 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_prod.nit", 11999);
4705 exit(1);
4706 } else {
4707 ((void (*)(val*, val*))(var_n_id->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_id, self) /* parent= on <var_n_id:nullable TKwintern>*/;
4708 }
4709 RET_LABEL:;
4710 }
4711 /* method parser_prod#AKwinternAtid#init_akwinternatid for (self: Object, nullable TKwintern) */
4712 void VIRTUAL_parser_prod__AKwinternAtid__init_akwinternatid(val* self, val* p0) {
4713 parser_prod__AKwinternAtid__init_akwinternatid(self, p0);
4714 RET_LABEL:;
4715 }
4716 /* method parser_prod#AKwinternAtid#replace_child for (self: AKwinternAtid, ANode, nullable ANode) */
4717 void parser_prod__AKwinternAtid__replace_child(val* self, val* p0, val* p1) {
4718 val* var_old_child /* var old_child: ANode */;
4719 val* var_new_child /* var new_child: nullable ANode */;
4720 val* var /* : Token */;
4721 short int var1 /* : Bool */;
4722 val* var2 /* : null */;
4723 short int var3 /* : Bool */;
4724 short int var4 /* : Bool */;
4725 int cltype;
4726 int idtype;
4727 var_old_child = p0;
4728 var_new_child = p1;
4729 var = self->attrs[COLOR_parser_nodes__AAtid___n_id].val; /* _n_id on <self:AKwinternAtid> */
4730 if (var == NULL) {
4731 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_id", "src/parser/parser_prod.nit", 12004);
4732 exit(1);
4733 }
4734 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:Token>*/;
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 TKwintern */
4745 cltype = type_parser_nodes__TKwintern.color;
4746 idtype = type_parser_nodes__TKwintern.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 (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 12007);
4754 exit(1);
4755 }
4756 self->attrs[COLOR_parser_nodes__AAtid___n_id].val = var_new_child; /* _n_id on <self:AKwinternAtid> */
4757 } else {
4758 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser/parser_prod.nit", 12010);
4759 exit(1);
4760 }
4761 goto RET_LABEL;
4762 } else {
4763 }
4764 RET_LABEL:;
4765 }
4766 /* method parser_prod#AKwinternAtid#replace_child for (self: Object, ANode, nullable ANode) */
4767 void VIRTUAL_parser_prod__AKwinternAtid__replace_child(val* self, val* p0, val* p1) {
4768 parser_prod__AKwinternAtid__replace_child(self, p0, p1);
4769 RET_LABEL:;
4770 }
4771 /* method parser_prod#AKwinternAtid#n_id= for (self: AKwinternAtid, Token) */
4772 void parser_prod__AKwinternAtid__n_id_61d(val* self, val* p0) {
4773 val* var_node /* var node: Token */;
4774 var_node = p0;
4775 self->attrs[COLOR_parser_nodes__AAtid___n_id].val = var_node; /* _n_id on <self:AKwinternAtid> */
4776 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:Token>*/;
4777 RET_LABEL:;
4778 }
4779 /* method parser_prod#AKwinternAtid#n_id= for (self: Object, Token) */
4780 void VIRTUAL_parser_prod__AKwinternAtid__n_id_61d(val* self, val* p0) {
4781 parser_prod__AKwinternAtid__n_id_61d(self, p0);
4782 RET_LABEL:;
4783 }
4784 /* method parser_prod#AKwinternAtid#visit_all for (self: AKwinternAtid, Visitor) */
4785 void parser_prod__AKwinternAtid__visit_all(val* self, val* p0) {
4786 val* var_v /* var v: Visitor */;
4787 val* var /* : Token */;
4788 var_v = p0;
4789 var = self->attrs[COLOR_parser_nodes__AAtid___n_id].val; /* _n_id on <self:AKwinternAtid> */
4790 if (var == NULL) {
4791 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_id", "src/parser/parser_prod.nit", 12025);
4792 exit(1);
4793 }
4794 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
4795 RET_LABEL:;
4796 }
4797 /* method parser_prod#AKwinternAtid#visit_all for (self: Object, Visitor) */
4798 void VIRTUAL_parser_prod__AKwinternAtid__visit_all(val* self, val* p0) {
4799 parser_prod__AKwinternAtid__visit_all(self, p0);
4800 RET_LABEL:;
4801 }
4802 /* method parser_prod#AKwreadableAtid#empty_init for (self: AKwreadableAtid) */
4803 void parser_prod__AKwreadableAtid__empty_init(val* self) {
4804 RET_LABEL:;
4805 }
4806 /* method parser_prod#AKwreadableAtid#empty_init for (self: Object) */
4807 void VIRTUAL_parser_prod__AKwreadableAtid__empty_init(val* self) {
4808 parser_prod__AKwreadableAtid__empty_init(self);
4809 RET_LABEL:;
4810 }
4811 /* method parser_prod#AKwreadableAtid#init_akwreadableatid for (self: AKwreadableAtid, nullable TKwreadable) */
4812 void parser_prod__AKwreadableAtid__init_akwreadableatid(val* self, val* p0) {
4813 val* var_n_id /* var n_id: nullable TKwreadable */;
4814 var_n_id = p0;
4815 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__AKwreadableAtid__empty_init]))(self) /* empty_init on <self:AKwreadableAtid>*/;
4816 if (var_n_id == NULL) {
4817 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 12036);
4818 exit(1);
4819 }
4820 self->attrs[COLOR_parser_nodes__AAtid___n_id].val = var_n_id; /* _n_id on <self:AKwreadableAtid> */
4821 if (var_n_id == NULL) {
4822 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_prod.nit", 12037);
4823 exit(1);
4824 } else {
4825 ((void (*)(val*, val*))(var_n_id->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_id, self) /* parent= on <var_n_id:nullable TKwreadable>*/;
4826 }
4827 RET_LABEL:;
4828 }
4829 /* method parser_prod#AKwreadableAtid#init_akwreadableatid for (self: Object, nullable TKwreadable) */
4830 void VIRTUAL_parser_prod__AKwreadableAtid__init_akwreadableatid(val* self, val* p0) {
4831 parser_prod__AKwreadableAtid__init_akwreadableatid(self, p0);
4832 RET_LABEL:;
4833 }
4834 /* method parser_prod#AKwreadableAtid#replace_child for (self: AKwreadableAtid, ANode, nullable ANode) */
4835 void parser_prod__AKwreadableAtid__replace_child(val* self, val* p0, val* p1) {
4836 val* var_old_child /* var old_child: ANode */;
4837 val* var_new_child /* var new_child: nullable ANode */;
4838 val* var /* : Token */;
4839 short int var1 /* : Bool */;
4840 val* var2 /* : null */;
4841 short int var3 /* : Bool */;
4842 short int var4 /* : Bool */;
4843 int cltype;
4844 int idtype;
4845 var_old_child = p0;
4846 var_new_child = p1;
4847 var = self->attrs[COLOR_parser_nodes__AAtid___n_id].val; /* _n_id on <self:AKwreadableAtid> */
4848 if (var == NULL) {
4849 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_id", "src/parser/parser_prod.nit", 12042);
4850 exit(1);
4851 }
4852 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:Token>*/;
4853 if (var1){
4854 var2 = NULL;
4855 if (var_new_child == NULL) {
4856 var3 = 0; /* is null */
4857 } else {
4858 var3 = 1; /* arg is null and recv is not */
4859 }
4860 if (var3){
4861 ((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)>*/;
4862 /* <var_new_child:nullable ANode(ANode)> isa TKwreadable */
4863 cltype = type_parser_nodes__TKwreadable.color;
4864 idtype = type_parser_nodes__TKwreadable.id;
4865 if(cltype >= var_new_child->type->table_size) {
4866 var4 = 0;
4867 } else {
4868 var4 = var_new_child->type->type_table[cltype] == idtype;
4869 }
4870 if (!var4) {
4871 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 12045);
4872 exit(1);
4873 }
4874 self->attrs[COLOR_parser_nodes__AAtid___n_id].val = var_new_child; /* _n_id on <self:AKwreadableAtid> */
4875 } else {
4876 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser/parser_prod.nit", 12048);
4877 exit(1);
4878 }
4879 goto RET_LABEL;
4880 } else {
4881 }
4882 RET_LABEL:;
4883 }
4884 /* method parser_prod#AKwreadableAtid#replace_child for (self: Object, ANode, nullable ANode) */
4885 void VIRTUAL_parser_prod__AKwreadableAtid__replace_child(val* self, val* p0, val* p1) {
4886 parser_prod__AKwreadableAtid__replace_child(self, p0, p1);
4887 RET_LABEL:;
4888 }
4889 /* method parser_prod#AKwreadableAtid#n_id= for (self: AKwreadableAtid, Token) */
4890 void parser_prod__AKwreadableAtid__n_id_61d(val* self, val* p0) {
4891 val* var_node /* var node: Token */;
4892 var_node = p0;
4893 self->attrs[COLOR_parser_nodes__AAtid___n_id].val = var_node; /* _n_id on <self:AKwreadableAtid> */
4894 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:Token>*/;
4895 RET_LABEL:;
4896 }
4897 /* method parser_prod#AKwreadableAtid#n_id= for (self: Object, Token) */
4898 void VIRTUAL_parser_prod__AKwreadableAtid__n_id_61d(val* self, val* p0) {
4899 parser_prod__AKwreadableAtid__n_id_61d(self, p0);
4900 RET_LABEL:;
4901 }
4902 /* method parser_prod#AKwreadableAtid#visit_all for (self: AKwreadableAtid, Visitor) */
4903 void parser_prod__AKwreadableAtid__visit_all(val* self, val* p0) {
4904 val* var_v /* var v: Visitor */;
4905 val* var /* : Token */;
4906 var_v = p0;
4907 var = self->attrs[COLOR_parser_nodes__AAtid___n_id].val; /* _n_id on <self:AKwreadableAtid> */
4908 if (var == NULL) {
4909 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_id", "src/parser/parser_prod.nit", 12063);
4910 exit(1);
4911 }
4912 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
4913 RET_LABEL:;
4914 }
4915 /* method parser_prod#AKwreadableAtid#visit_all for (self: Object, Visitor) */
4916 void VIRTUAL_parser_prod__AKwreadableAtid__visit_all(val* self, val* p0) {
4917 parser_prod__AKwreadableAtid__visit_all(self, p0);
4918 RET_LABEL:;
4919 }
4920 /* method parser_prod#AKwwritableAtid#empty_init for (self: AKwwritableAtid) */
4921 void parser_prod__AKwwritableAtid__empty_init(val* self) {
4922 RET_LABEL:;
4923 }
4924 /* method parser_prod#AKwwritableAtid#empty_init for (self: Object) */
4925 void VIRTUAL_parser_prod__AKwwritableAtid__empty_init(val* self) {
4926 parser_prod__AKwwritableAtid__empty_init(self);
4927 RET_LABEL:;
4928 }
4929 /* method parser_prod#AKwwritableAtid#init_akwwritableatid for (self: AKwwritableAtid, nullable TKwwritable) */
4930 void parser_prod__AKwwritableAtid__init_akwwritableatid(val* self, val* p0) {
4931 val* var_n_id /* var n_id: nullable TKwwritable */;
4932 var_n_id = p0;
4933 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__AKwwritableAtid__empty_init]))(self) /* empty_init on <self:AKwwritableAtid>*/;
4934 if (var_n_id == NULL) {
4935 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 12074);
4936 exit(1);
4937 }
4938 self->attrs[COLOR_parser_nodes__AAtid___n_id].val = var_n_id; /* _n_id on <self:AKwwritableAtid> */
4939 if (var_n_id == NULL) {
4940 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_prod.nit", 12075);
4941 exit(1);
4942 } else {
4943 ((void (*)(val*, val*))(var_n_id->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_id, self) /* parent= on <var_n_id:nullable TKwwritable>*/;
4944 }
4945 RET_LABEL:;
4946 }
4947 /* method parser_prod#AKwwritableAtid#init_akwwritableatid for (self: Object, nullable TKwwritable) */
4948 void VIRTUAL_parser_prod__AKwwritableAtid__init_akwwritableatid(val* self, val* p0) {
4949 parser_prod__AKwwritableAtid__init_akwwritableatid(self, p0);
4950 RET_LABEL:;
4951 }
4952 /* method parser_prod#AKwwritableAtid#replace_child for (self: AKwwritableAtid, ANode, nullable ANode) */
4953 void parser_prod__AKwwritableAtid__replace_child(val* self, val* p0, val* p1) {
4954 val* var_old_child /* var old_child: ANode */;
4955 val* var_new_child /* var new_child: nullable ANode */;
4956 val* var /* : Token */;
4957 short int var1 /* : Bool */;
4958 val* var2 /* : null */;
4959 short int var3 /* : Bool */;
4960 short int var4 /* : Bool */;
4961 int cltype;
4962 int idtype;
4963 var_old_child = p0;
4964 var_new_child = p1;
4965 var = self->attrs[COLOR_parser_nodes__AAtid___n_id].val; /* _n_id on <self:AKwwritableAtid> */
4966 if (var == NULL) {
4967 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_id", "src/parser/parser_prod.nit", 12080);
4968 exit(1);
4969 }
4970 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:Token>*/;
4971 if (var1){
4972 var2 = NULL;
4973 if (var_new_child == NULL) {
4974 var3 = 0; /* is null */
4975 } else {
4976 var3 = 1; /* arg is null and recv is not */
4977 }
4978 if (var3){
4979 ((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)>*/;
4980 /* <var_new_child:nullable ANode(ANode)> isa TKwwritable */
4981 cltype = type_parser_nodes__TKwwritable.color;
4982 idtype = type_parser_nodes__TKwwritable.id;
4983 if(cltype >= var_new_child->type->table_size) {
4984 var4 = 0;
4985 } else {
4986 var4 = var_new_child->type->type_table[cltype] == idtype;
4987 }
4988 if (!var4) {
4989 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 12083);
4990 exit(1);
4991 }
4992 self->attrs[COLOR_parser_nodes__AAtid___n_id].val = var_new_child; /* _n_id on <self:AKwwritableAtid> */
4993 } else {
4994 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser/parser_prod.nit", 12086);
4995 exit(1);
4996 }
4997 goto RET_LABEL;
4998 } else {
4999 }
5000 RET_LABEL:;
5001 }
5002 /* method parser_prod#AKwwritableAtid#replace_child for (self: Object, ANode, nullable ANode) */
5003 void VIRTUAL_parser_prod__AKwwritableAtid__replace_child(val* self, val* p0, val* p1) {
5004 parser_prod__AKwwritableAtid__replace_child(self, p0, p1);
5005 RET_LABEL:;
5006 }
5007 /* method parser_prod#AKwwritableAtid#n_id= for (self: AKwwritableAtid, Token) */
5008 void parser_prod__AKwwritableAtid__n_id_61d(val* self, val* p0) {
5009 val* var_node /* var node: Token */;
5010 var_node = p0;
5011 self->attrs[COLOR_parser_nodes__AAtid___n_id].val = var_node; /* _n_id on <self:AKwwritableAtid> */
5012 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:Token>*/;
5013 RET_LABEL:;
5014 }
5015 /* method parser_prod#AKwwritableAtid#n_id= for (self: Object, Token) */
5016 void VIRTUAL_parser_prod__AKwwritableAtid__n_id_61d(val* self, val* p0) {
5017 parser_prod__AKwwritableAtid__n_id_61d(self, p0);
5018 RET_LABEL:;
5019 }
5020 /* method parser_prod#AKwwritableAtid#visit_all for (self: AKwwritableAtid, Visitor) */
5021 void parser_prod__AKwwritableAtid__visit_all(val* self, val* p0) {
5022 val* var_v /* var v: Visitor */;
5023 val* var /* : Token */;
5024 var_v = p0;
5025 var = self->attrs[COLOR_parser_nodes__AAtid___n_id].val; /* _n_id on <self:AKwwritableAtid> */
5026 if (var == NULL) {
5027 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_id", "src/parser/parser_prod.nit", 12101);
5028 exit(1);
5029 }
5030 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
5031 RET_LABEL:;
5032 }
5033 /* method parser_prod#AKwwritableAtid#visit_all for (self: Object, Visitor) */
5034 void VIRTUAL_parser_prod__AKwwritableAtid__visit_all(val* self, val* p0) {
5035 parser_prod__AKwwritableAtid__visit_all(self, p0);
5036 RET_LABEL:;
5037 }
5038 /* method parser_prod#AKwimportAtid#empty_init for (self: AKwimportAtid) */
5039 void parser_prod__AKwimportAtid__empty_init(val* self) {
5040 RET_LABEL:;
5041 }
5042 /* method parser_prod#AKwimportAtid#empty_init for (self: Object) */
5043 void VIRTUAL_parser_prod__AKwimportAtid__empty_init(val* self) {
5044 parser_prod__AKwimportAtid__empty_init(self);
5045 RET_LABEL:;
5046 }
5047 /* method parser_prod#AKwimportAtid#init_akwimportatid for (self: AKwimportAtid, nullable TKwimport) */
5048 void parser_prod__AKwimportAtid__init_akwimportatid(val* self, val* p0) {
5049 val* var_n_id /* var n_id: nullable TKwimport */;
5050 var_n_id = p0;
5051 ((void (*)(val*))(self->class->vft[COLOR_parser_prod__AKwimportAtid__empty_init]))(self) /* empty_init on <self:AKwimportAtid>*/;
5052 if (var_n_id == NULL) {
5053 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 12112);
5054 exit(1);
5055 }
5056 self->attrs[COLOR_parser_nodes__AAtid___n_id].val = var_n_id; /* _n_id on <self:AKwimportAtid> */
5057 if (var_n_id == NULL) {
5058 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/parser/parser_prod.nit", 12113);
5059 exit(1);
5060 } else {
5061 ((void (*)(val*, val*))(var_n_id->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_n_id, self) /* parent= on <var_n_id:nullable TKwimport>*/;
5062 }
5063 RET_LABEL:;
5064 }
5065 /* method parser_prod#AKwimportAtid#init_akwimportatid for (self: Object, nullable TKwimport) */
5066 void VIRTUAL_parser_prod__AKwimportAtid__init_akwimportatid(val* self, val* p0) {
5067 parser_prod__AKwimportAtid__init_akwimportatid(self, p0);
5068 RET_LABEL:;
5069 }
5070 /* method parser_prod#AKwimportAtid#replace_child for (self: AKwimportAtid, ANode, nullable ANode) */
5071 void parser_prod__AKwimportAtid__replace_child(val* self, val* p0, val* p1) {
5072 val* var_old_child /* var old_child: ANode */;
5073 val* var_new_child /* var new_child: nullable ANode */;
5074 val* var /* : Token */;
5075 short int var1 /* : Bool */;
5076 val* var2 /* : null */;
5077 short int var3 /* : Bool */;
5078 short int var4 /* : Bool */;
5079 int cltype;
5080 int idtype;
5081 var_old_child = p0;
5082 var_new_child = p1;
5083 var = self->attrs[COLOR_parser_nodes__AAtid___n_id].val; /* _n_id on <self:AKwimportAtid> */
5084 if (var == NULL) {
5085 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_id", "src/parser/parser_prod.nit", 12118);
5086 exit(1);
5087 }
5088 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:Token>*/;
5089 if (var1){
5090 var2 = NULL;
5091 if (var_new_child == NULL) {
5092 var3 = 0; /* is null */
5093 } else {
5094 var3 = 1; /* arg is null and recv is not */
5095 }
5096 if (var3){
5097 ((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)>*/;
5098 /* <var_new_child:nullable ANode(ANode)> isa TKwimport */
5099 cltype = type_parser_nodes__TKwimport.color;
5100 idtype = type_parser_nodes__TKwimport.id;
5101 if(cltype >= var_new_child->type->table_size) {
5102 var4 = 0;
5103 } else {
5104 var4 = var_new_child->type->type_table[cltype] == idtype;
5105 }
5106 if (!var4) {
5107 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 12121);
5108 exit(1);
5109 }
5110 self->attrs[COLOR_parser_nodes__AAtid___n_id].val = var_new_child; /* _n_id on <self:AKwimportAtid> */
5111 } else {
5112 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/parser/parser_prod.nit", 12124);
5113 exit(1);
5114 }
5115 goto RET_LABEL;
5116 } else {
5117 }
5118 RET_LABEL:;
5119 }
5120 /* method parser_prod#AKwimportAtid#replace_child for (self: Object, ANode, nullable ANode) */
5121 void VIRTUAL_parser_prod__AKwimportAtid__replace_child(val* self, val* p0, val* p1) {
5122 parser_prod__AKwimportAtid__replace_child(self, p0, p1);
5123 RET_LABEL:;
5124 }
5125 /* method parser_prod#AKwimportAtid#n_id= for (self: AKwimportAtid, Token) */
5126 void parser_prod__AKwimportAtid__n_id_61d(val* self, val* p0) {
5127 val* var_node /* var node: Token */;
5128 var_node = p0;
5129 self->attrs[COLOR_parser_nodes__AAtid___n_id].val = var_node; /* _n_id on <self:AKwimportAtid> */
5130 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_node, self) /* parent= on <var_node:Token>*/;
5131 RET_LABEL:;
5132 }
5133 /* method parser_prod#AKwimportAtid#n_id= for (self: Object, Token) */
5134 void VIRTUAL_parser_prod__AKwimportAtid__n_id_61d(val* self, val* p0) {
5135 parser_prod__AKwimportAtid__n_id_61d(self, p0);
5136 RET_LABEL:;
5137 }
5138 /* method parser_prod#AKwimportAtid#visit_all for (self: AKwimportAtid, Visitor) */
5139 void parser_prod__AKwimportAtid__visit_all(val* self, val* p0) {
5140 val* var_v /* var v: Visitor */;
5141 val* var /* : Token */;
5142 var_v = p0;
5143 var = self->attrs[COLOR_parser_nodes__AAtid___n_id].val; /* _n_id on <self:AKwimportAtid> */
5144 if (var == NULL) {
5145 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_id", "src/parser/parser_prod.nit", 12139);
5146 exit(1);
5147 }
5148 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var) /* enter_visit on <var_v:Visitor>*/;
5149 RET_LABEL:;
5150 }
5151 /* method parser_prod#AKwimportAtid#visit_all for (self: Object, Visitor) */
5152 void VIRTUAL_parser_prod__AKwimportAtid__visit_all(val* self, val* p0) {
5153 parser_prod__AKwimportAtid__visit_all(self, p0);
5154 RET_LABEL:;
5155 }
5156 /* method parser_prod#Start#replace_child for (self: Start, ANode, nullable ANode) */
5157 void parser_prod__Start__replace_child(val* self, val* p0, val* p1) {
5158 val* var_old_child /* var old_child: ANode */;
5159 val* var_new_child /* var new_child: nullable ANode */;
5160 val* var /* : nullable AModule */;
5161 short int var1 /* : Bool */;
5162 val* var2 /* : null */;
5163 short int var3 /* : Bool */;
5164 short int var4 /* : Bool */;
5165 int cltype;
5166 int idtype;
5167 val* var5 /* : null */;
5168 var_old_child = p0;
5169 var_new_child = p1;
5170 var = self->attrs[COLOR_parser_nodes__Start___n_base].val; /* _n_base on <self:Start> */
5171 if (var == NULL) {
5172 var1 = 0; /* <var_old_child:ANode> cannot be null */
5173 } else {
5174 var1 = ((short int (*)(val*, val*))(var->class->vft[COLOR_kernel__Object___61d_61d]))(var, var_old_child) /* == on <var:nullable AModule>*/;
5175 }
5176 if (var1){
5177 var2 = NULL;
5178 if (var_new_child == NULL) {
5179 var3 = 1; /* is null */
5180 } else {
5181 var3 = 0; /* arg is null but recv is not */
5182 }
5183 if (var3){
5184 } else {
5185 ((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)>*/;
5186 /* <var_new_child:nullable ANode(ANode)> isa AModule */
5187 cltype = type_parser_nodes__AModule.color;
5188 idtype = type_parser_nodes__AModule.id;
5189 if(cltype >= var_new_child->type->table_size) {
5190 var4 = 0;
5191 } else {
5192 var4 = var_new_child->type->type_table[cltype] == idtype;
5193 }
5194 if (!var4) {
5195 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/parser/parser_prod.nit", 12150);
5196 exit(1);
5197 }
5198 self->attrs[COLOR_parser_nodes__Start___n_base].val = var_new_child; /* _n_base on <self:Start> */
5199 }
5200 var5 = NULL;
5201 ((void (*)(val*, val*))(var_old_child->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_old_child, var5) /* parent= on <var_old_child:ANode>*/;
5202 goto RET_LABEL;
5203 } else {
5204 }
5205 RET_LABEL:;
5206 }
5207 /* method parser_prod#Start#replace_child for (self: Object, ANode, nullable ANode) */
5208 void VIRTUAL_parser_prod__Start__replace_child(val* self, val* p0, val* p1) {
5209 parser_prod__Start__replace_child(self, p0, p1);
5210 RET_LABEL:;
5211 }
5212 /* method parser_prod#Start#visit_all for (self: Start, Visitor) */
5213 void parser_prod__Start__visit_all(val* self, val* p0) {
5214 val* var_v /* var v: Visitor */;
5215 val* var /* : nullable AModule */;
5216 val* var1 /* : null */;
5217 short int var2 /* : Bool */;
5218 val* var3 /* : nullable AModule */;
5219 val* var4 /* : EOF */;
5220 var_v = p0;
5221 var = self->attrs[COLOR_parser_nodes__Start___n_base].val; /* _n_base on <self:Start> */
5222 var1 = NULL;
5223 if (var == NULL) {
5224 var2 = 0; /* is null */
5225 } else {
5226 var2 = 1; /* arg is null and recv is not */
5227 }
5228 if (var2){
5229 var3 = self->attrs[COLOR_parser_nodes__Start___n_base].val; /* _n_base on <self:Start> */
5230 if (var3 == NULL) {
5231 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/parser/parser_prod.nit", 12161);
5232 exit(1);
5233 }
5234 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var3) /* enter_visit on <var_v:Visitor>*/;
5235 } else {
5236 }
5237 var4 = self->attrs[COLOR_parser_nodes__Start___n_eof].val; /* _n_eof on <self:Start> */
5238 if (var4 == NULL) {
5239 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_eof", "src/parser/parser_prod.nit", 12163);
5240 exit(1);
5241 }
5242 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var4) /* enter_visit on <var_v:Visitor>*/;
5243 RET_LABEL:;
5244 }
5245 /* method parser_prod#Start#visit_all for (self: Object, Visitor) */
5246 void VIRTUAL_parser_prod__Start__visit_all(val* self, val* p0) {
5247 parser_prod__Start__visit_all(self, p0);
5248 RET_LABEL:;
5249 }