README: document nit_env.sh
[nit.git] / c_src / nit__parser_prod.sep.6.c
1 #include "nit__parser_prod.sep.0.h"
2 /* method parser_prod#ASuperExternCall#visit_all for (self: ASuperExternCall, Visitor) */
3 void nit__parser_prod___ASuperExternCall___nit__parser_nodes__ANode__visit_all(val* self, val* p0) {
4 val* var_v /* var v: Visitor */;
5 val* var /* : TKwsuper */;
6 var_v = p0;
7 var = self->attrs[COLOR_nit__parser_nodes__ASuperExternCall___n_kwsuper].val; /* _n_kwsuper on <self:ASuperExternCall> */
8 if (unlikely(var == NULL)) {
9 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwsuper");
10 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8071);
11 fatal_exit(1);
12 }
13 {
14 nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
15 }
16 RET_LABEL:;
17 }
18 /* method parser_prod#ALocalPropExternCall#init_alocalpropexterncall for (self: ALocalPropExternCall, nullable AMethid) */
19 void nit__parser_prod___ALocalPropExternCall___init_alocalpropexterncall(val* self, val* p0) {
20 val* var_n_methid /* var n_methid: nullable AMethid */;
21 {
22 { /* Inline kernel#Object#init (self) on <self:ALocalPropExternCall> */
23 RET_LABEL1:(void)0;
24 }
25 }
26 var_n_methid = p0;
27 if (unlikely(var_n_methid == NULL)) {
28 PRINT_ERROR("Runtime error: %s", "Cast failed");
29 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8079);
30 fatal_exit(1);
31 }
32 self->attrs[COLOR_nit__parser_nodes__ALocalPropExternCall___n_methid].val = var_n_methid; /* _n_methid on <self:ALocalPropExternCall> */
33 if (var_n_methid == NULL) {
34 PRINT_ERROR("Runtime error: %s", "Receiver is null");
35 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8080);
36 fatal_exit(1);
37 } else {
38 { /* Inline parser_nodes#ANode#parent= (var_n_methid,self) on <var_n_methid:nullable AMethid> */
39 if (unlikely(var_n_methid == NULL)) {
40 PRINT_ERROR("Runtime error: %s", "Receiver is null");
41 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
42 fatal_exit(1);
43 }
44 var_n_methid->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_methid:nullable AMethid> */
45 RET_LABEL2:(void)0;
46 }
47 }
48 RET_LABEL:;
49 }
50 /* method parser_prod#ALocalPropExternCall#replace_child for (self: ALocalPropExternCall, ANode, nullable ANode) */
51 void nit__parser_prod___ALocalPropExternCall___nit__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
52 val* var_old_child /* var old_child: ANode */;
53 val* var_new_child /* var new_child: nullable ANode */;
54 val* var /* : AMethid */;
55 short int var1 /* : Bool */;
56 val* var_other /* var other: nullable Object */;
57 short int var3 /* : Bool */;
58 short int var5 /* : Bool */;
59 short int var6 /* : Bool */;
60 int cltype;
61 int idtype;
62 const char* var_class_name;
63 var_old_child = p0;
64 var_new_child = p1;
65 var = self->attrs[COLOR_nit__parser_nodes__ALocalPropExternCall___n_methid].val; /* _n_methid on <self:ALocalPropExternCall> */
66 if (unlikely(var == NULL)) {
67 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_methid");
68 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8085);
69 fatal_exit(1);
70 }
71 {
72 { /* Inline kernel#Object#== (var,var_old_child) on <var:AMethid> */
73 var_other = var_old_child;
74 {
75 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AMethid> */
76 var5 = var == var_other;
77 var3 = var5;
78 goto RET_LABEL4;
79 RET_LABEL4:(void)0;
80 }
81 }
82 var1 = var3;
83 goto RET_LABEL2;
84 RET_LABEL2:(void)0;
85 }
86 }
87 if (var1){
88 /* <var_new_child:nullable ANode> isa AMethid */
89 cltype = type_nit__AMethid.color;
90 idtype = type_nit__AMethid.id;
91 if(var_new_child == NULL) {
92 var6 = 0;
93 } else {
94 if(cltype >= var_new_child->type->table_size) {
95 var6 = 0;
96 } else {
97 var6 = var_new_child->type->type_table[cltype] == idtype;
98 }
99 }
100 if (unlikely(!var6)) {
101 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
102 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AMethid", var_class_name);
103 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8086);
104 fatal_exit(1);
105 }
106 {
107 nit__parser_prod___ALocalPropExternCall___n_methid_61d(self, var_new_child); /* Direct call parser_prod#ALocalPropExternCall#n_methid= on <self:ALocalPropExternCall>*/
108 }
109 goto RET_LABEL;
110 } else {
111 }
112 RET_LABEL:;
113 }
114 /* method parser_prod#ALocalPropExternCall#n_methid= for (self: ALocalPropExternCall, AMethid) */
115 void nit__parser_prod___ALocalPropExternCall___n_methid_61d(val* self, val* p0) {
116 val* var_node /* var node: AMethid */;
117 var_node = p0;
118 self->attrs[COLOR_nit__parser_nodes__ALocalPropExternCall___n_methid].val = var_node; /* _n_methid on <self:ALocalPropExternCall> */
119 {
120 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AMethid> */
121 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AMethid> */
122 RET_LABEL1:(void)0;
123 }
124 }
125 RET_LABEL:;
126 }
127 /* method parser_prod#ALocalPropExternCall#visit_all for (self: ALocalPropExternCall, Visitor) */
128 void nit__parser_prod___ALocalPropExternCall___nit__parser_nodes__ANode__visit_all(val* self, val* p0) {
129 val* var_v /* var v: Visitor */;
130 val* var /* : AMethid */;
131 var_v = p0;
132 var = self->attrs[COLOR_nit__parser_nodes__ALocalPropExternCall___n_methid].val; /* _n_methid on <self:ALocalPropExternCall> */
133 if (unlikely(var == NULL)) {
134 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_methid");
135 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8100);
136 fatal_exit(1);
137 }
138 {
139 nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
140 }
141 RET_LABEL:;
142 }
143 /* method parser_prod#AFullPropExternCall#init_afullpropexterncall for (self: AFullPropExternCall, nullable AType, nullable TDot, nullable AMethid) */
144 void nit__parser_prod___AFullPropExternCall___init_afullpropexterncall(val* self, val* p0, val* p1, val* p2) {
145 val* var_n_type /* var n_type: nullable AType */;
146 val* var_n_dot /* var n_dot: nullable TDot */;
147 val* var_n_methid /* var n_methid: nullable AMethid */;
148 short int var /* : Bool */;
149 short int var3 /* : Bool */;
150 val* var_other /* var other: nullable Object */;
151 short int var5 /* : Bool */;
152 short int var6 /* : Bool */;
153 {
154 { /* Inline kernel#Object#init (self) on <self:AFullPropExternCall> */
155 RET_LABEL1:(void)0;
156 }
157 }
158 var_n_type = p0;
159 var_n_dot = p1;
160 var_n_methid = p2;
161 if (unlikely(var_n_type == NULL)) {
162 PRINT_ERROR("Runtime error: %s", "Cast failed");
163 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8110);
164 fatal_exit(1);
165 }
166 self->attrs[COLOR_nit__parser_nodes__AFullPropExternCall___n_type].val = var_n_type; /* _n_type on <self:AFullPropExternCall> */
167 if (var_n_type == NULL) {
168 PRINT_ERROR("Runtime error: %s", "Receiver is null");
169 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8111);
170 fatal_exit(1);
171 } else {
172 { /* Inline parser_nodes#ANode#parent= (var_n_type,self) on <var_n_type:nullable AType> */
173 if (unlikely(var_n_type == NULL)) {
174 PRINT_ERROR("Runtime error: %s", "Receiver is null");
175 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
176 fatal_exit(1);
177 }
178 var_n_type->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_type:nullable AType> */
179 RET_LABEL2:(void)0;
180 }
181 }
182 self->attrs[COLOR_nit__parser_nodes__AFullPropExternCall___n_dot].val = var_n_dot; /* _n_dot on <self:AFullPropExternCall> */
183 if (var_n_dot == NULL) {
184 var = 0; /* is null */
185 } else {
186 var = 1; /* arg is null and recv is not */
187 }
188 if (0) {
189 { /* Inline kernel#Object#!= (var_n_dot,((val*)NULL)) on <var_n_dot:nullable TDot> */
190 var_other = ((val*)NULL);
191 {
192 var5 = ((short int(*)(val* self, val* p0))(var_n_dot->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_dot, var_other); /* == on <var_n_dot:nullable TDot(TDot)>*/
193 }
194 var6 = !var5;
195 var3 = var6;
196 goto RET_LABEL4;
197 RET_LABEL4:(void)0;
198 }
199 var = var3;
200 }
201 if (var){
202 {
203 { /* Inline parser_nodes#ANode#parent= (var_n_dot,self) on <var_n_dot:nullable TDot(TDot)> */
204 var_n_dot->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_dot:nullable TDot(TDot)> */
205 RET_LABEL7:(void)0;
206 }
207 }
208 } else {
209 }
210 if (unlikely(var_n_methid == NULL)) {
211 PRINT_ERROR("Runtime error: %s", "Cast failed");
212 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8114);
213 fatal_exit(1);
214 }
215 self->attrs[COLOR_nit__parser_nodes__AFullPropExternCall___n_methid].val = var_n_methid; /* _n_methid on <self:AFullPropExternCall> */
216 if (var_n_methid == NULL) {
217 PRINT_ERROR("Runtime error: %s", "Receiver is null");
218 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8115);
219 fatal_exit(1);
220 } else {
221 { /* Inline parser_nodes#ANode#parent= (var_n_methid,self) on <var_n_methid:nullable AMethid> */
222 if (unlikely(var_n_methid == NULL)) {
223 PRINT_ERROR("Runtime error: %s", "Receiver is null");
224 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
225 fatal_exit(1);
226 }
227 var_n_methid->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_methid:nullable AMethid> */
228 RET_LABEL8:(void)0;
229 }
230 }
231 RET_LABEL:;
232 }
233 /* method parser_prod#AFullPropExternCall#replace_child for (self: AFullPropExternCall, ANode, nullable ANode) */
234 void nit__parser_prod___AFullPropExternCall___nit__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
235 val* var_old_child /* var old_child: ANode */;
236 val* var_new_child /* var new_child: nullable ANode */;
237 val* var /* : AType */;
238 short int var1 /* : Bool */;
239 val* var_other /* var other: nullable Object */;
240 short int var3 /* : Bool */;
241 short int var5 /* : Bool */;
242 short int var6 /* : Bool */;
243 int cltype;
244 int idtype;
245 const char* var_class_name;
246 val* var7 /* : nullable TDot */;
247 short int var8 /* : Bool */;
248 short int var9 /* : Bool */;
249 short int var11 /* : Bool */;
250 short int var13 /* : Bool */;
251 short int var14 /* : Bool */;
252 int cltype15;
253 int idtype16;
254 const char* var_class_name17;
255 val* var18 /* : AMethid */;
256 short int var19 /* : Bool */;
257 short int var21 /* : Bool */;
258 short int var23 /* : Bool */;
259 short int var24 /* : Bool */;
260 int cltype25;
261 int idtype26;
262 const char* var_class_name27;
263 var_old_child = p0;
264 var_new_child = p1;
265 var = self->attrs[COLOR_nit__parser_nodes__AFullPropExternCall___n_type].val; /* _n_type on <self:AFullPropExternCall> */
266 if (unlikely(var == NULL)) {
267 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
268 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8120);
269 fatal_exit(1);
270 }
271 {
272 { /* Inline kernel#Object#== (var,var_old_child) on <var:AType> */
273 var_other = var_old_child;
274 {
275 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AType> */
276 var5 = var == var_other;
277 var3 = var5;
278 goto RET_LABEL4;
279 RET_LABEL4:(void)0;
280 }
281 }
282 var1 = var3;
283 goto RET_LABEL2;
284 RET_LABEL2:(void)0;
285 }
286 }
287 if (var1){
288 /* <var_new_child:nullable ANode> isa AType */
289 cltype = type_nit__AType.color;
290 idtype = type_nit__AType.id;
291 if(var_new_child == NULL) {
292 var6 = 0;
293 } else {
294 if(cltype >= var_new_child->type->table_size) {
295 var6 = 0;
296 } else {
297 var6 = var_new_child->type->type_table[cltype] == idtype;
298 }
299 }
300 if (unlikely(!var6)) {
301 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
302 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AType", var_class_name);
303 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8121);
304 fatal_exit(1);
305 }
306 {
307 nit__parser_prod___AFullPropExternCall___n_type_61d(self, var_new_child); /* Direct call parser_prod#AFullPropExternCall#n_type= on <self:AFullPropExternCall>*/
308 }
309 goto RET_LABEL;
310 } else {
311 }
312 var7 = self->attrs[COLOR_nit__parser_nodes__AFullPropExternCall___n_dot].val; /* _n_dot on <self:AFullPropExternCall> */
313 if (var7 == NULL) {
314 var8 = 0; /* <var_old_child:ANode> cannot be null */
315 } else {
316 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:nullable TDot> */
317 var_other = var_old_child;
318 {
319 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:nullable TDot(TDot)> */
320 var13 = var7 == var_other;
321 var11 = var13;
322 goto RET_LABEL12;
323 RET_LABEL12:(void)0;
324 }
325 }
326 var9 = var11;
327 goto RET_LABEL10;
328 RET_LABEL10:(void)0;
329 }
330 var8 = var9;
331 }
332 if (var8){
333 /* <var_new_child:nullable ANode> isa nullable TDot */
334 cltype15 = type_nullable__nit__TDot.color;
335 idtype16 = type_nullable__nit__TDot.id;
336 if(var_new_child == NULL) {
337 var14 = 1;
338 } else {
339 if(cltype15 >= var_new_child->type->table_size) {
340 var14 = 0;
341 } else {
342 var14 = var_new_child->type->type_table[cltype15] == idtype16;
343 }
344 }
345 if (unlikely(!var14)) {
346 var_class_name17 = var_new_child == NULL ? "null" : var_new_child->type->name;
347 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TDot", var_class_name17);
348 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8125);
349 fatal_exit(1);
350 }
351 {
352 nit__parser_prod___AFullPropExternCall___n_dot_61d(self, var_new_child); /* Direct call parser_prod#AFullPropExternCall#n_dot= on <self:AFullPropExternCall>*/
353 }
354 goto RET_LABEL;
355 } else {
356 }
357 var18 = self->attrs[COLOR_nit__parser_nodes__AFullPropExternCall___n_methid].val; /* _n_methid on <self:AFullPropExternCall> */
358 if (unlikely(var18 == NULL)) {
359 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_methid");
360 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8128);
361 fatal_exit(1);
362 }
363 {
364 { /* Inline kernel#Object#== (var18,var_old_child) on <var18:AMethid> */
365 var_other = var_old_child;
366 {
367 { /* Inline kernel#Object#is_same_instance (var18,var_other) on <var18:AMethid> */
368 var23 = var18 == var_other;
369 var21 = var23;
370 goto RET_LABEL22;
371 RET_LABEL22:(void)0;
372 }
373 }
374 var19 = var21;
375 goto RET_LABEL20;
376 RET_LABEL20:(void)0;
377 }
378 }
379 if (var19){
380 /* <var_new_child:nullable ANode> isa AMethid */
381 cltype25 = type_nit__AMethid.color;
382 idtype26 = type_nit__AMethid.id;
383 if(var_new_child == NULL) {
384 var24 = 0;
385 } else {
386 if(cltype25 >= var_new_child->type->table_size) {
387 var24 = 0;
388 } else {
389 var24 = var_new_child->type->type_table[cltype25] == idtype26;
390 }
391 }
392 if (unlikely(!var24)) {
393 var_class_name27 = var_new_child == NULL ? "null" : var_new_child->type->name;
394 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AMethid", var_class_name27);
395 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8129);
396 fatal_exit(1);
397 }
398 {
399 nit__parser_prod___AFullPropExternCall___n_methid_61d(self, var_new_child); /* Direct call parser_prod#AFullPropExternCall#n_methid= on <self:AFullPropExternCall>*/
400 }
401 goto RET_LABEL;
402 } else {
403 }
404 RET_LABEL:;
405 }
406 /* method parser_prod#AFullPropExternCall#n_type= for (self: AFullPropExternCall, AType) */
407 void nit__parser_prod___AFullPropExternCall___n_type_61d(val* self, val* p0) {
408 val* var_node /* var node: AType */;
409 var_node = p0;
410 self->attrs[COLOR_nit__parser_nodes__AFullPropExternCall___n_type].val = var_node; /* _n_type on <self:AFullPropExternCall> */
411 {
412 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AType> */
413 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AType> */
414 RET_LABEL1:(void)0;
415 }
416 }
417 RET_LABEL:;
418 }
419 /* method parser_prod#AFullPropExternCall#n_dot= for (self: AFullPropExternCall, nullable TDot) */
420 void nit__parser_prod___AFullPropExternCall___n_dot_61d(val* self, val* p0) {
421 val* var_node /* var node: nullable TDot */;
422 short int var /* : Bool */;
423 short int var1 /* : Bool */;
424 val* var_other /* var other: nullable Object */;
425 short int var3 /* : Bool */;
426 short int var4 /* : Bool */;
427 var_node = p0;
428 self->attrs[COLOR_nit__parser_nodes__AFullPropExternCall___n_dot].val = var_node; /* _n_dot on <self:AFullPropExternCall> */
429 if (var_node == NULL) {
430 var = 0; /* is null */
431 } else {
432 var = 1; /* arg is null and recv is not */
433 }
434 if (0) {
435 { /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable TDot> */
436 var_other = ((val*)NULL);
437 {
438 var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable TDot(TDot)>*/
439 }
440 var4 = !var3;
441 var1 = var4;
442 goto RET_LABEL2;
443 RET_LABEL2:(void)0;
444 }
445 var = var1;
446 }
447 if (var){
448 {
449 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TDot(TDot)> */
450 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TDot(TDot)> */
451 RET_LABEL5:(void)0;
452 }
453 }
454 } else {
455 }
456 RET_LABEL:;
457 }
458 /* method parser_prod#AFullPropExternCall#n_methid= for (self: AFullPropExternCall, AMethid) */
459 void nit__parser_prod___AFullPropExternCall___n_methid_61d(val* self, val* p0) {
460 val* var_node /* var node: AMethid */;
461 var_node = p0;
462 self->attrs[COLOR_nit__parser_nodes__AFullPropExternCall___n_methid].val = var_node; /* _n_methid on <self:AFullPropExternCall> */
463 {
464 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AMethid> */
465 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AMethid> */
466 RET_LABEL1:(void)0;
467 }
468 }
469 RET_LABEL:;
470 }
471 /* method parser_prod#AFullPropExternCall#visit_all for (self: AFullPropExternCall, Visitor) */
472 void nit__parser_prod___AFullPropExternCall___nit__parser_nodes__ANode__visit_all(val* self, val* p0) {
473 val* var_v /* var v: Visitor */;
474 val* var /* : AType */;
475 val* var1 /* : nullable TDot */;
476 val* var2 /* : AMethid */;
477 var_v = p0;
478 var = self->attrs[COLOR_nit__parser_nodes__AFullPropExternCall___n_type].val; /* _n_type on <self:AFullPropExternCall> */
479 if (unlikely(var == NULL)) {
480 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
481 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8153);
482 fatal_exit(1);
483 }
484 {
485 nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
486 }
487 var1 = self->attrs[COLOR_nit__parser_nodes__AFullPropExternCall___n_dot].val; /* _n_dot on <self:AFullPropExternCall> */
488 {
489 nit___nit__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
490 }
491 var2 = self->attrs[COLOR_nit__parser_nodes__AFullPropExternCall___n_methid].val; /* _n_methid on <self:AFullPropExternCall> */
492 if (unlikely(var2 == NULL)) {
493 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_methid");
494 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8155);
495 fatal_exit(1);
496 }
497 {
498 nit___nit__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
499 }
500 RET_LABEL:;
501 }
502 /* method parser_prod#AInitPropExternCall#init_ainitpropexterncall for (self: AInitPropExternCall, nullable AType) */
503 void nit__parser_prod___AInitPropExternCall___init_ainitpropexterncall(val* self, val* p0) {
504 val* var_n_type /* var n_type: nullable AType */;
505 {
506 { /* Inline kernel#Object#init (self) on <self:AInitPropExternCall> */
507 RET_LABEL1:(void)0;
508 }
509 }
510 var_n_type = p0;
511 if (unlikely(var_n_type == NULL)) {
512 PRINT_ERROR("Runtime error: %s", "Cast failed");
513 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8163);
514 fatal_exit(1);
515 }
516 self->attrs[COLOR_nit__parser_nodes__AInitPropExternCall___n_type].val = var_n_type; /* _n_type on <self:AInitPropExternCall> */
517 if (var_n_type == NULL) {
518 PRINT_ERROR("Runtime error: %s", "Receiver is null");
519 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8164);
520 fatal_exit(1);
521 } else {
522 { /* Inline parser_nodes#ANode#parent= (var_n_type,self) on <var_n_type:nullable AType> */
523 if (unlikely(var_n_type == NULL)) {
524 PRINT_ERROR("Runtime error: %s", "Receiver is null");
525 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
526 fatal_exit(1);
527 }
528 var_n_type->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_type:nullable AType> */
529 RET_LABEL2:(void)0;
530 }
531 }
532 RET_LABEL:;
533 }
534 /* method parser_prod#AInitPropExternCall#replace_child for (self: AInitPropExternCall, ANode, nullable ANode) */
535 void nit__parser_prod___AInitPropExternCall___nit__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
536 val* var_old_child /* var old_child: ANode */;
537 val* var_new_child /* var new_child: nullable ANode */;
538 val* var /* : AType */;
539 short int var1 /* : Bool */;
540 val* var_other /* var other: nullable Object */;
541 short int var3 /* : Bool */;
542 short int var5 /* : Bool */;
543 short int var6 /* : Bool */;
544 int cltype;
545 int idtype;
546 const char* var_class_name;
547 var_old_child = p0;
548 var_new_child = p1;
549 var = self->attrs[COLOR_nit__parser_nodes__AInitPropExternCall___n_type].val; /* _n_type on <self:AInitPropExternCall> */
550 if (unlikely(var == NULL)) {
551 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
552 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8169);
553 fatal_exit(1);
554 }
555 {
556 { /* Inline kernel#Object#== (var,var_old_child) on <var:AType> */
557 var_other = var_old_child;
558 {
559 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AType> */
560 var5 = var == var_other;
561 var3 = var5;
562 goto RET_LABEL4;
563 RET_LABEL4:(void)0;
564 }
565 }
566 var1 = var3;
567 goto RET_LABEL2;
568 RET_LABEL2:(void)0;
569 }
570 }
571 if (var1){
572 /* <var_new_child:nullable ANode> isa AType */
573 cltype = type_nit__AType.color;
574 idtype = type_nit__AType.id;
575 if(var_new_child == NULL) {
576 var6 = 0;
577 } else {
578 if(cltype >= var_new_child->type->table_size) {
579 var6 = 0;
580 } else {
581 var6 = var_new_child->type->type_table[cltype] == idtype;
582 }
583 }
584 if (unlikely(!var6)) {
585 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
586 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AType", var_class_name);
587 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8170);
588 fatal_exit(1);
589 }
590 {
591 nit__parser_prod___AInitPropExternCall___n_type_61d(self, var_new_child); /* Direct call parser_prod#AInitPropExternCall#n_type= on <self:AInitPropExternCall>*/
592 }
593 goto RET_LABEL;
594 } else {
595 }
596 RET_LABEL:;
597 }
598 /* method parser_prod#AInitPropExternCall#n_type= for (self: AInitPropExternCall, AType) */
599 void nit__parser_prod___AInitPropExternCall___n_type_61d(val* self, val* p0) {
600 val* var_node /* var node: AType */;
601 var_node = p0;
602 self->attrs[COLOR_nit__parser_nodes__AInitPropExternCall___n_type].val = var_node; /* _n_type on <self:AInitPropExternCall> */
603 {
604 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AType> */
605 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AType> */
606 RET_LABEL1:(void)0;
607 }
608 }
609 RET_LABEL:;
610 }
611 /* method parser_prod#AInitPropExternCall#visit_all for (self: AInitPropExternCall, Visitor) */
612 void nit__parser_prod___AInitPropExternCall___nit__parser_nodes__ANode__visit_all(val* self, val* p0) {
613 val* var_v /* var v: Visitor */;
614 val* var /* : AType */;
615 var_v = p0;
616 var = self->attrs[COLOR_nit__parser_nodes__AInitPropExternCall___n_type].val; /* _n_type on <self:AInitPropExternCall> */
617 if (unlikely(var == NULL)) {
618 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
619 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8184);
620 fatal_exit(1);
621 }
622 {
623 nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
624 }
625 RET_LABEL:;
626 }
627 /* method parser_prod#ACastAsExternCall#init_acastasexterncall for (self: ACastAsExternCall, nullable AType, nullable TDot, nullable TKwas, nullable AType) */
628 void nit__parser_prod___ACastAsExternCall___init_acastasexterncall(val* self, val* p0, val* p1, val* p2, val* p3) {
629 val* var_n_from_type /* var n_from_type: nullable AType */;
630 val* var_n_dot /* var n_dot: nullable TDot */;
631 val* var_n_kwas /* var n_kwas: nullable TKwas */;
632 val* var_n_to_type /* var n_to_type: nullable AType */;
633 short int var /* : Bool */;
634 short int var3 /* : Bool */;
635 val* var_other /* var other: nullable Object */;
636 short int var5 /* : Bool */;
637 short int var6 /* : Bool */;
638 {
639 { /* Inline kernel#Object#init (self) on <self:ACastAsExternCall> */
640 RET_LABEL1:(void)0;
641 }
642 }
643 var_n_from_type = p0;
644 var_n_dot = p1;
645 var_n_kwas = p2;
646 var_n_to_type = p3;
647 if (unlikely(var_n_from_type == NULL)) {
648 PRINT_ERROR("Runtime error: %s", "Cast failed");
649 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8195);
650 fatal_exit(1);
651 }
652 self->attrs[COLOR_nit__parser_nodes__ACastAsExternCall___n_from_type].val = var_n_from_type; /* _n_from_type on <self:ACastAsExternCall> */
653 if (var_n_from_type == NULL) {
654 PRINT_ERROR("Runtime error: %s", "Receiver is null");
655 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8196);
656 fatal_exit(1);
657 } else {
658 { /* Inline parser_nodes#ANode#parent= (var_n_from_type,self) on <var_n_from_type:nullable AType> */
659 if (unlikely(var_n_from_type == NULL)) {
660 PRINT_ERROR("Runtime error: %s", "Receiver is null");
661 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
662 fatal_exit(1);
663 }
664 var_n_from_type->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_from_type:nullable AType> */
665 RET_LABEL2:(void)0;
666 }
667 }
668 self->attrs[COLOR_nit__parser_nodes__ACastAsExternCall___n_dot].val = var_n_dot; /* _n_dot on <self:ACastAsExternCall> */
669 if (var_n_dot == NULL) {
670 var = 0; /* is null */
671 } else {
672 var = 1; /* arg is null and recv is not */
673 }
674 if (0) {
675 { /* Inline kernel#Object#!= (var_n_dot,((val*)NULL)) on <var_n_dot:nullable TDot> */
676 var_other = ((val*)NULL);
677 {
678 var5 = ((short int(*)(val* self, val* p0))(var_n_dot->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_dot, var_other); /* == on <var_n_dot:nullable TDot(TDot)>*/
679 }
680 var6 = !var5;
681 var3 = var6;
682 goto RET_LABEL4;
683 RET_LABEL4:(void)0;
684 }
685 var = var3;
686 }
687 if (var){
688 {
689 { /* Inline parser_nodes#ANode#parent= (var_n_dot,self) on <var_n_dot:nullable TDot(TDot)> */
690 var_n_dot->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_dot:nullable TDot(TDot)> */
691 RET_LABEL7:(void)0;
692 }
693 }
694 } else {
695 }
696 if (unlikely(var_n_kwas == NULL)) {
697 PRINT_ERROR("Runtime error: %s", "Cast failed");
698 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8199);
699 fatal_exit(1);
700 }
701 self->attrs[COLOR_nit__parser_nodes__ACastAsExternCall___n_kwas].val = var_n_kwas; /* _n_kwas on <self:ACastAsExternCall> */
702 if (var_n_kwas == NULL) {
703 PRINT_ERROR("Runtime error: %s", "Receiver is null");
704 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8200);
705 fatal_exit(1);
706 } else {
707 { /* Inline parser_nodes#ANode#parent= (var_n_kwas,self) on <var_n_kwas:nullable TKwas> */
708 if (unlikely(var_n_kwas == NULL)) {
709 PRINT_ERROR("Runtime error: %s", "Receiver is null");
710 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
711 fatal_exit(1);
712 }
713 var_n_kwas->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwas:nullable TKwas> */
714 RET_LABEL8:(void)0;
715 }
716 }
717 if (unlikely(var_n_to_type == NULL)) {
718 PRINT_ERROR("Runtime error: %s", "Cast failed");
719 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8201);
720 fatal_exit(1);
721 }
722 self->attrs[COLOR_nit__parser_nodes__ACastAsExternCall___n_to_type].val = var_n_to_type; /* _n_to_type on <self:ACastAsExternCall> */
723 if (var_n_to_type == NULL) {
724 PRINT_ERROR("Runtime error: %s", "Receiver is null");
725 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8202);
726 fatal_exit(1);
727 } else {
728 { /* Inline parser_nodes#ANode#parent= (var_n_to_type,self) on <var_n_to_type:nullable AType> */
729 if (unlikely(var_n_to_type == NULL)) {
730 PRINT_ERROR("Runtime error: %s", "Receiver is null");
731 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
732 fatal_exit(1);
733 }
734 var_n_to_type->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_to_type:nullable AType> */
735 RET_LABEL9:(void)0;
736 }
737 }
738 RET_LABEL:;
739 }
740 /* method parser_prod#ACastAsExternCall#replace_child for (self: ACastAsExternCall, ANode, nullable ANode) */
741 void nit__parser_prod___ACastAsExternCall___nit__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
742 val* var_old_child /* var old_child: ANode */;
743 val* var_new_child /* var new_child: nullable ANode */;
744 val* var /* : AType */;
745 short int var1 /* : Bool */;
746 val* var_other /* var other: nullable Object */;
747 short int var3 /* : Bool */;
748 short int var5 /* : Bool */;
749 short int var6 /* : Bool */;
750 int cltype;
751 int idtype;
752 const char* var_class_name;
753 val* var7 /* : nullable TDot */;
754 short int var8 /* : Bool */;
755 short int var9 /* : Bool */;
756 short int var11 /* : Bool */;
757 short int var13 /* : Bool */;
758 short int var14 /* : Bool */;
759 int cltype15;
760 int idtype16;
761 const char* var_class_name17;
762 val* var18 /* : TKwas */;
763 short int var19 /* : Bool */;
764 short int var21 /* : Bool */;
765 short int var23 /* : Bool */;
766 short int var24 /* : Bool */;
767 int cltype25;
768 int idtype26;
769 const char* var_class_name27;
770 val* var28 /* : AType */;
771 short int var29 /* : Bool */;
772 short int var31 /* : Bool */;
773 short int var33 /* : Bool */;
774 short int var34 /* : Bool */;
775 int cltype35;
776 int idtype36;
777 const char* var_class_name37;
778 var_old_child = p0;
779 var_new_child = p1;
780 var = self->attrs[COLOR_nit__parser_nodes__ACastAsExternCall___n_from_type].val; /* _n_from_type on <self:ACastAsExternCall> */
781 if (unlikely(var == NULL)) {
782 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_from_type");
783 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8207);
784 fatal_exit(1);
785 }
786 {
787 { /* Inline kernel#Object#== (var,var_old_child) on <var:AType> */
788 var_other = var_old_child;
789 {
790 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AType> */
791 var5 = var == var_other;
792 var3 = var5;
793 goto RET_LABEL4;
794 RET_LABEL4:(void)0;
795 }
796 }
797 var1 = var3;
798 goto RET_LABEL2;
799 RET_LABEL2:(void)0;
800 }
801 }
802 if (var1){
803 /* <var_new_child:nullable ANode> isa AType */
804 cltype = type_nit__AType.color;
805 idtype = type_nit__AType.id;
806 if(var_new_child == NULL) {
807 var6 = 0;
808 } else {
809 if(cltype >= var_new_child->type->table_size) {
810 var6 = 0;
811 } else {
812 var6 = var_new_child->type->type_table[cltype] == idtype;
813 }
814 }
815 if (unlikely(!var6)) {
816 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
817 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AType", var_class_name);
818 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8208);
819 fatal_exit(1);
820 }
821 {
822 nit__parser_prod___ACastAsExternCall___n_from_type_61d(self, var_new_child); /* Direct call parser_prod#ACastAsExternCall#n_from_type= on <self:ACastAsExternCall>*/
823 }
824 goto RET_LABEL;
825 } else {
826 }
827 var7 = self->attrs[COLOR_nit__parser_nodes__ACastAsExternCall___n_dot].val; /* _n_dot on <self:ACastAsExternCall> */
828 if (var7 == NULL) {
829 var8 = 0; /* <var_old_child:ANode> cannot be null */
830 } else {
831 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:nullable TDot> */
832 var_other = var_old_child;
833 {
834 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:nullable TDot(TDot)> */
835 var13 = var7 == var_other;
836 var11 = var13;
837 goto RET_LABEL12;
838 RET_LABEL12:(void)0;
839 }
840 }
841 var9 = var11;
842 goto RET_LABEL10;
843 RET_LABEL10:(void)0;
844 }
845 var8 = var9;
846 }
847 if (var8){
848 /* <var_new_child:nullable ANode> isa nullable TDot */
849 cltype15 = type_nullable__nit__TDot.color;
850 idtype16 = type_nullable__nit__TDot.id;
851 if(var_new_child == NULL) {
852 var14 = 1;
853 } else {
854 if(cltype15 >= var_new_child->type->table_size) {
855 var14 = 0;
856 } else {
857 var14 = var_new_child->type->type_table[cltype15] == idtype16;
858 }
859 }
860 if (unlikely(!var14)) {
861 var_class_name17 = var_new_child == NULL ? "null" : var_new_child->type->name;
862 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TDot", var_class_name17);
863 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8212);
864 fatal_exit(1);
865 }
866 {
867 nit__parser_prod___ACastAsExternCall___n_dot_61d(self, var_new_child); /* Direct call parser_prod#ACastAsExternCall#n_dot= on <self:ACastAsExternCall>*/
868 }
869 goto RET_LABEL;
870 } else {
871 }
872 var18 = self->attrs[COLOR_nit__parser_nodes__ACastAsExternCall___n_kwas].val; /* _n_kwas on <self:ACastAsExternCall> */
873 if (unlikely(var18 == NULL)) {
874 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwas");
875 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8215);
876 fatal_exit(1);
877 }
878 {
879 { /* Inline kernel#Object#== (var18,var_old_child) on <var18:TKwas> */
880 var_other = var_old_child;
881 {
882 { /* Inline kernel#Object#is_same_instance (var18,var_other) on <var18:TKwas> */
883 var23 = var18 == var_other;
884 var21 = var23;
885 goto RET_LABEL22;
886 RET_LABEL22:(void)0;
887 }
888 }
889 var19 = var21;
890 goto RET_LABEL20;
891 RET_LABEL20:(void)0;
892 }
893 }
894 if (var19){
895 /* <var_new_child:nullable ANode> isa TKwas */
896 cltype25 = type_nit__TKwas.color;
897 idtype26 = type_nit__TKwas.id;
898 if(var_new_child == NULL) {
899 var24 = 0;
900 } else {
901 if(cltype25 >= var_new_child->type->table_size) {
902 var24 = 0;
903 } else {
904 var24 = var_new_child->type->type_table[cltype25] == idtype26;
905 }
906 }
907 if (unlikely(!var24)) {
908 var_class_name27 = var_new_child == NULL ? "null" : var_new_child->type->name;
909 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwas", var_class_name27);
910 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8216);
911 fatal_exit(1);
912 }
913 {
914 nit__parser_prod___ACastAsExternCall___n_kwas_61d(self, var_new_child); /* Direct call parser_prod#ACastAsExternCall#n_kwas= on <self:ACastAsExternCall>*/
915 }
916 goto RET_LABEL;
917 } else {
918 }
919 var28 = self->attrs[COLOR_nit__parser_nodes__ACastAsExternCall___n_to_type].val; /* _n_to_type on <self:ACastAsExternCall> */
920 if (unlikely(var28 == NULL)) {
921 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_to_type");
922 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8219);
923 fatal_exit(1);
924 }
925 {
926 { /* Inline kernel#Object#== (var28,var_old_child) on <var28:AType> */
927 var_other = var_old_child;
928 {
929 { /* Inline kernel#Object#is_same_instance (var28,var_other) on <var28:AType> */
930 var33 = var28 == var_other;
931 var31 = var33;
932 goto RET_LABEL32;
933 RET_LABEL32:(void)0;
934 }
935 }
936 var29 = var31;
937 goto RET_LABEL30;
938 RET_LABEL30:(void)0;
939 }
940 }
941 if (var29){
942 /* <var_new_child:nullable ANode> isa AType */
943 cltype35 = type_nit__AType.color;
944 idtype36 = type_nit__AType.id;
945 if(var_new_child == NULL) {
946 var34 = 0;
947 } else {
948 if(cltype35 >= var_new_child->type->table_size) {
949 var34 = 0;
950 } else {
951 var34 = var_new_child->type->type_table[cltype35] == idtype36;
952 }
953 }
954 if (unlikely(!var34)) {
955 var_class_name37 = var_new_child == NULL ? "null" : var_new_child->type->name;
956 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AType", var_class_name37);
957 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8220);
958 fatal_exit(1);
959 }
960 {
961 nit__parser_prod___ACastAsExternCall___n_to_type_61d(self, var_new_child); /* Direct call parser_prod#ACastAsExternCall#n_to_type= on <self:ACastAsExternCall>*/
962 }
963 goto RET_LABEL;
964 } else {
965 }
966 RET_LABEL:;
967 }
968 /* method parser_prod#ACastAsExternCall#n_from_type= for (self: ACastAsExternCall, AType) */
969 void nit__parser_prod___ACastAsExternCall___n_from_type_61d(val* self, val* p0) {
970 val* var_node /* var node: AType */;
971 var_node = p0;
972 self->attrs[COLOR_nit__parser_nodes__ACastAsExternCall___n_from_type].val = var_node; /* _n_from_type on <self:ACastAsExternCall> */
973 {
974 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AType> */
975 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AType> */
976 RET_LABEL1:(void)0;
977 }
978 }
979 RET_LABEL:;
980 }
981 /* method parser_prod#ACastAsExternCall#n_dot= for (self: ACastAsExternCall, nullable TDot) */
982 void nit__parser_prod___ACastAsExternCall___n_dot_61d(val* self, val* p0) {
983 val* var_node /* var node: nullable TDot */;
984 short int var /* : Bool */;
985 short int var1 /* : Bool */;
986 val* var_other /* var other: nullable Object */;
987 short int var3 /* : Bool */;
988 short int var4 /* : Bool */;
989 var_node = p0;
990 self->attrs[COLOR_nit__parser_nodes__ACastAsExternCall___n_dot].val = var_node; /* _n_dot on <self:ACastAsExternCall> */
991 if (var_node == NULL) {
992 var = 0; /* is null */
993 } else {
994 var = 1; /* arg is null and recv is not */
995 }
996 if (0) {
997 { /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable TDot> */
998 var_other = ((val*)NULL);
999 {
1000 var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable TDot(TDot)>*/
1001 }
1002 var4 = !var3;
1003 var1 = var4;
1004 goto RET_LABEL2;
1005 RET_LABEL2:(void)0;
1006 }
1007 var = var1;
1008 }
1009 if (var){
1010 {
1011 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TDot(TDot)> */
1012 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TDot(TDot)> */
1013 RET_LABEL5:(void)0;
1014 }
1015 }
1016 } else {
1017 }
1018 RET_LABEL:;
1019 }
1020 /* method parser_prod#ACastAsExternCall#n_kwas= for (self: ACastAsExternCall, TKwas) */
1021 void nit__parser_prod___ACastAsExternCall___n_kwas_61d(val* self, val* p0) {
1022 val* var_node /* var node: TKwas */;
1023 var_node = p0;
1024 self->attrs[COLOR_nit__parser_nodes__ACastAsExternCall___n_kwas].val = var_node; /* _n_kwas on <self:ACastAsExternCall> */
1025 {
1026 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwas> */
1027 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwas> */
1028 RET_LABEL1:(void)0;
1029 }
1030 }
1031 RET_LABEL:;
1032 }
1033 /* method parser_prod#ACastAsExternCall#n_to_type= for (self: ACastAsExternCall, AType) */
1034 void nit__parser_prod___ACastAsExternCall___n_to_type_61d(val* self, val* p0) {
1035 val* var_node /* var node: AType */;
1036 var_node = p0;
1037 self->attrs[COLOR_nit__parser_nodes__ACastAsExternCall___n_to_type].val = var_node; /* _n_to_type on <self:ACastAsExternCall> */
1038 {
1039 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AType> */
1040 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AType> */
1041 RET_LABEL1:(void)0;
1042 }
1043 }
1044 RET_LABEL:;
1045 }
1046 /* method parser_prod#ACastAsExternCall#visit_all for (self: ACastAsExternCall, Visitor) */
1047 void nit__parser_prod___ACastAsExternCall___nit__parser_nodes__ANode__visit_all(val* self, val* p0) {
1048 val* var_v /* var v: Visitor */;
1049 val* var /* : AType */;
1050 val* var1 /* : nullable TDot */;
1051 val* var2 /* : TKwas */;
1052 val* var3 /* : AType */;
1053 var_v = p0;
1054 var = self->attrs[COLOR_nit__parser_nodes__ACastAsExternCall___n_from_type].val; /* _n_from_type on <self:ACastAsExternCall> */
1055 if (unlikely(var == NULL)) {
1056 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_from_type");
1057 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8249);
1058 fatal_exit(1);
1059 }
1060 {
1061 nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1062 }
1063 var1 = self->attrs[COLOR_nit__parser_nodes__ACastAsExternCall___n_dot].val; /* _n_dot on <self:ACastAsExternCall> */
1064 {
1065 nit___nit__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1066 }
1067 var2 = self->attrs[COLOR_nit__parser_nodes__ACastAsExternCall___n_kwas].val; /* _n_kwas on <self:ACastAsExternCall> */
1068 if (unlikely(var2 == NULL)) {
1069 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwas");
1070 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8251);
1071 fatal_exit(1);
1072 }
1073 {
1074 nit___nit__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1075 }
1076 var3 = self->attrs[COLOR_nit__parser_nodes__ACastAsExternCall___n_to_type].val; /* _n_to_type on <self:ACastAsExternCall> */
1077 if (unlikely(var3 == NULL)) {
1078 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_to_type");
1079 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8252);
1080 fatal_exit(1);
1081 }
1082 {
1083 nit___nit__Visitor___enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1084 }
1085 RET_LABEL:;
1086 }
1087 /* method parser_prod#AAsNullableExternCall#init_aasnullableexterncall for (self: AAsNullableExternCall, nullable AType, nullable TKwas, nullable TKwnullable) */
1088 void nit__parser_prod___AAsNullableExternCall___init_aasnullableexterncall(val* self, val* p0, val* p1, val* p2) {
1089 val* var_n_type /* var n_type: nullable AType */;
1090 val* var_n_kwas /* var n_kwas: nullable TKwas */;
1091 val* var_n_kwnullable /* var n_kwnullable: nullable TKwnullable */;
1092 {
1093 { /* Inline kernel#Object#init (self) on <self:AAsNullableExternCall> */
1094 RET_LABEL1:(void)0;
1095 }
1096 }
1097 var_n_type = p0;
1098 var_n_kwas = p1;
1099 var_n_kwnullable = p2;
1100 if (unlikely(var_n_type == NULL)) {
1101 PRINT_ERROR("Runtime error: %s", "Cast failed");
1102 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8262);
1103 fatal_exit(1);
1104 }
1105 self->attrs[COLOR_nit__parser_nodes__AAsNullableExternCall___n_type].val = var_n_type; /* _n_type on <self:AAsNullableExternCall> */
1106 if (var_n_type == NULL) {
1107 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1108 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8263);
1109 fatal_exit(1);
1110 } else {
1111 { /* Inline parser_nodes#ANode#parent= (var_n_type,self) on <var_n_type:nullable AType> */
1112 if (unlikely(var_n_type == NULL)) {
1113 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1114 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
1115 fatal_exit(1);
1116 }
1117 var_n_type->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_type:nullable AType> */
1118 RET_LABEL2:(void)0;
1119 }
1120 }
1121 if (unlikely(var_n_kwas == NULL)) {
1122 PRINT_ERROR("Runtime error: %s", "Cast failed");
1123 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8264);
1124 fatal_exit(1);
1125 }
1126 self->attrs[COLOR_nit__parser_nodes__AAsNullableExternCall___n_kwas].val = var_n_kwas; /* _n_kwas on <self:AAsNullableExternCall> */
1127 if (var_n_kwas == NULL) {
1128 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1129 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8265);
1130 fatal_exit(1);
1131 } else {
1132 { /* Inline parser_nodes#ANode#parent= (var_n_kwas,self) on <var_n_kwas:nullable TKwas> */
1133 if (unlikely(var_n_kwas == NULL)) {
1134 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1135 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
1136 fatal_exit(1);
1137 }
1138 var_n_kwas->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwas:nullable TKwas> */
1139 RET_LABEL3:(void)0;
1140 }
1141 }
1142 if (unlikely(var_n_kwnullable == NULL)) {
1143 PRINT_ERROR("Runtime error: %s", "Cast failed");
1144 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8266);
1145 fatal_exit(1);
1146 }
1147 self->attrs[COLOR_nit__parser_nodes__AAsNullableExternCall___n_kwnullable].val = var_n_kwnullable; /* _n_kwnullable on <self:AAsNullableExternCall> */
1148 if (var_n_kwnullable == NULL) {
1149 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1150 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8267);
1151 fatal_exit(1);
1152 } else {
1153 { /* Inline parser_nodes#ANode#parent= (var_n_kwnullable,self) on <var_n_kwnullable:nullable TKwnullable> */
1154 if (unlikely(var_n_kwnullable == NULL)) {
1155 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1156 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
1157 fatal_exit(1);
1158 }
1159 var_n_kwnullable->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwnullable:nullable TKwnullable> */
1160 RET_LABEL4:(void)0;
1161 }
1162 }
1163 RET_LABEL:;
1164 }
1165 /* method parser_prod#AAsNullableExternCall#replace_child for (self: AAsNullableExternCall, ANode, nullable ANode) */
1166 void nit__parser_prod___AAsNullableExternCall___nit__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
1167 val* var_old_child /* var old_child: ANode */;
1168 val* var_new_child /* var new_child: nullable ANode */;
1169 val* var /* : AType */;
1170 short int var1 /* : Bool */;
1171 val* var_other /* var other: nullable Object */;
1172 short int var3 /* : Bool */;
1173 short int var5 /* : Bool */;
1174 short int var6 /* : Bool */;
1175 int cltype;
1176 int idtype;
1177 const char* var_class_name;
1178 val* var7 /* : TKwas */;
1179 short int var8 /* : Bool */;
1180 short int var10 /* : Bool */;
1181 short int var12 /* : Bool */;
1182 short int var13 /* : Bool */;
1183 int cltype14;
1184 int idtype15;
1185 const char* var_class_name16;
1186 val* var17 /* : TKwnullable */;
1187 short int var18 /* : Bool */;
1188 short int var20 /* : Bool */;
1189 short int var22 /* : Bool */;
1190 short int var23 /* : Bool */;
1191 int cltype24;
1192 int idtype25;
1193 const char* var_class_name26;
1194 var_old_child = p0;
1195 var_new_child = p1;
1196 var = self->attrs[COLOR_nit__parser_nodes__AAsNullableExternCall___n_type].val; /* _n_type on <self:AAsNullableExternCall> */
1197 if (unlikely(var == NULL)) {
1198 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
1199 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8272);
1200 fatal_exit(1);
1201 }
1202 {
1203 { /* Inline kernel#Object#== (var,var_old_child) on <var:AType> */
1204 var_other = var_old_child;
1205 {
1206 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AType> */
1207 var5 = var == var_other;
1208 var3 = var5;
1209 goto RET_LABEL4;
1210 RET_LABEL4:(void)0;
1211 }
1212 }
1213 var1 = var3;
1214 goto RET_LABEL2;
1215 RET_LABEL2:(void)0;
1216 }
1217 }
1218 if (var1){
1219 /* <var_new_child:nullable ANode> isa AType */
1220 cltype = type_nit__AType.color;
1221 idtype = type_nit__AType.id;
1222 if(var_new_child == NULL) {
1223 var6 = 0;
1224 } else {
1225 if(cltype >= var_new_child->type->table_size) {
1226 var6 = 0;
1227 } else {
1228 var6 = var_new_child->type->type_table[cltype] == idtype;
1229 }
1230 }
1231 if (unlikely(!var6)) {
1232 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
1233 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AType", var_class_name);
1234 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8273);
1235 fatal_exit(1);
1236 }
1237 {
1238 nit__parser_prod___AAsNullableExternCall___n_type_61d(self, var_new_child); /* Direct call parser_prod#AAsNullableExternCall#n_type= on <self:AAsNullableExternCall>*/
1239 }
1240 goto RET_LABEL;
1241 } else {
1242 }
1243 var7 = self->attrs[COLOR_nit__parser_nodes__AAsNullableExternCall___n_kwas].val; /* _n_kwas on <self:AAsNullableExternCall> */
1244 if (unlikely(var7 == NULL)) {
1245 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwas");
1246 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8276);
1247 fatal_exit(1);
1248 }
1249 {
1250 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:TKwas> */
1251 var_other = var_old_child;
1252 {
1253 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:TKwas> */
1254 var12 = var7 == var_other;
1255 var10 = var12;
1256 goto RET_LABEL11;
1257 RET_LABEL11:(void)0;
1258 }
1259 }
1260 var8 = var10;
1261 goto RET_LABEL9;
1262 RET_LABEL9:(void)0;
1263 }
1264 }
1265 if (var8){
1266 /* <var_new_child:nullable ANode> isa TKwas */
1267 cltype14 = type_nit__TKwas.color;
1268 idtype15 = type_nit__TKwas.id;
1269 if(var_new_child == NULL) {
1270 var13 = 0;
1271 } else {
1272 if(cltype14 >= var_new_child->type->table_size) {
1273 var13 = 0;
1274 } else {
1275 var13 = var_new_child->type->type_table[cltype14] == idtype15;
1276 }
1277 }
1278 if (unlikely(!var13)) {
1279 var_class_name16 = var_new_child == NULL ? "null" : var_new_child->type->name;
1280 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwas", var_class_name16);
1281 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8277);
1282 fatal_exit(1);
1283 }
1284 {
1285 nit__parser_prod___AAsNullableExternCall___n_kwas_61d(self, var_new_child); /* Direct call parser_prod#AAsNullableExternCall#n_kwas= on <self:AAsNullableExternCall>*/
1286 }
1287 goto RET_LABEL;
1288 } else {
1289 }
1290 var17 = self->attrs[COLOR_nit__parser_nodes__AAsNullableExternCall___n_kwnullable].val; /* _n_kwnullable on <self:AAsNullableExternCall> */
1291 if (unlikely(var17 == NULL)) {
1292 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwnullable");
1293 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8280);
1294 fatal_exit(1);
1295 }
1296 {
1297 { /* Inline kernel#Object#== (var17,var_old_child) on <var17:TKwnullable> */
1298 var_other = var_old_child;
1299 {
1300 { /* Inline kernel#Object#is_same_instance (var17,var_other) on <var17:TKwnullable> */
1301 var22 = var17 == var_other;
1302 var20 = var22;
1303 goto RET_LABEL21;
1304 RET_LABEL21:(void)0;
1305 }
1306 }
1307 var18 = var20;
1308 goto RET_LABEL19;
1309 RET_LABEL19:(void)0;
1310 }
1311 }
1312 if (var18){
1313 /* <var_new_child:nullable ANode> isa TKwnullable */
1314 cltype24 = type_nit__TKwnullable.color;
1315 idtype25 = type_nit__TKwnullable.id;
1316 if(var_new_child == NULL) {
1317 var23 = 0;
1318 } else {
1319 if(cltype24 >= var_new_child->type->table_size) {
1320 var23 = 0;
1321 } else {
1322 var23 = var_new_child->type->type_table[cltype24] == idtype25;
1323 }
1324 }
1325 if (unlikely(!var23)) {
1326 var_class_name26 = var_new_child == NULL ? "null" : var_new_child->type->name;
1327 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwnullable", var_class_name26);
1328 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8281);
1329 fatal_exit(1);
1330 }
1331 {
1332 nit__parser_prod___AAsNullableExternCall___n_kwnullable_61d(self, var_new_child); /* Direct call parser_prod#AAsNullableExternCall#n_kwnullable= on <self:AAsNullableExternCall>*/
1333 }
1334 goto RET_LABEL;
1335 } else {
1336 }
1337 RET_LABEL:;
1338 }
1339 /* method parser_prod#AAsNullableExternCall#n_type= for (self: AAsNullableExternCall, AType) */
1340 void nit__parser_prod___AAsNullableExternCall___n_type_61d(val* self, val* p0) {
1341 val* var_node /* var node: AType */;
1342 var_node = p0;
1343 self->attrs[COLOR_nit__parser_nodes__AAsNullableExternCall___n_type].val = var_node; /* _n_type on <self:AAsNullableExternCall> */
1344 {
1345 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AType> */
1346 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AType> */
1347 RET_LABEL1:(void)0;
1348 }
1349 }
1350 RET_LABEL:;
1351 }
1352 /* method parser_prod#AAsNullableExternCall#n_kwas= for (self: AAsNullableExternCall, TKwas) */
1353 void nit__parser_prod___AAsNullableExternCall___n_kwas_61d(val* self, val* p0) {
1354 val* var_node /* var node: TKwas */;
1355 var_node = p0;
1356 self->attrs[COLOR_nit__parser_nodes__AAsNullableExternCall___n_kwas].val = var_node; /* _n_kwas on <self:AAsNullableExternCall> */
1357 {
1358 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwas> */
1359 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwas> */
1360 RET_LABEL1:(void)0;
1361 }
1362 }
1363 RET_LABEL:;
1364 }
1365 /* method parser_prod#AAsNullableExternCall#n_kwnullable= for (self: AAsNullableExternCall, TKwnullable) */
1366 void nit__parser_prod___AAsNullableExternCall___n_kwnullable_61d(val* self, val* p0) {
1367 val* var_node /* var node: TKwnullable */;
1368 var_node = p0;
1369 self->attrs[COLOR_nit__parser_nodes__AAsNullableExternCall___n_kwnullable].val = var_node; /* _n_kwnullable on <self:AAsNullableExternCall> */
1370 {
1371 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwnullable> */
1372 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwnullable> */
1373 RET_LABEL1:(void)0;
1374 }
1375 }
1376 RET_LABEL:;
1377 }
1378 /* method parser_prod#AAsNullableExternCall#visit_all for (self: AAsNullableExternCall, Visitor) */
1379 void nit__parser_prod___AAsNullableExternCall___nit__parser_nodes__ANode__visit_all(val* self, val* p0) {
1380 val* var_v /* var v: Visitor */;
1381 val* var /* : AType */;
1382 val* var1 /* : TKwas */;
1383 val* var2 /* : TKwnullable */;
1384 var_v = p0;
1385 var = self->attrs[COLOR_nit__parser_nodes__AAsNullableExternCall___n_type].val; /* _n_type on <self:AAsNullableExternCall> */
1386 if (unlikely(var == NULL)) {
1387 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
1388 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8305);
1389 fatal_exit(1);
1390 }
1391 {
1392 nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1393 }
1394 var1 = self->attrs[COLOR_nit__parser_nodes__AAsNullableExternCall___n_kwas].val; /* _n_kwas on <self:AAsNullableExternCall> */
1395 if (unlikely(var1 == NULL)) {
1396 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwas");
1397 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8306);
1398 fatal_exit(1);
1399 }
1400 {
1401 nit___nit__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1402 }
1403 var2 = self->attrs[COLOR_nit__parser_nodes__AAsNullableExternCall___n_kwnullable].val; /* _n_kwnullable on <self:AAsNullableExternCall> */
1404 if (unlikely(var2 == NULL)) {
1405 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwnullable");
1406 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8307);
1407 fatal_exit(1);
1408 }
1409 {
1410 nit___nit__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1411 }
1412 RET_LABEL:;
1413 }
1414 /* method parser_prod#AAsNotNullableExternCall#init_aasnotnullableexterncall for (self: AAsNotNullableExternCall, nullable AType, nullable TKwas, nullable TKwnot, nullable TKwnullable) */
1415 void nit__parser_prod___AAsNotNullableExternCall___init_aasnotnullableexterncall(val* self, val* p0, val* p1, val* p2, val* p3) {
1416 val* var_n_type /* var n_type: nullable AType */;
1417 val* var_n_kwas /* var n_kwas: nullable TKwas */;
1418 val* var_n_kwnot /* var n_kwnot: nullable TKwnot */;
1419 val* var_n_kwnullable /* var n_kwnullable: nullable TKwnullable */;
1420 {
1421 { /* Inline kernel#Object#init (self) on <self:AAsNotNullableExternCall> */
1422 RET_LABEL1:(void)0;
1423 }
1424 }
1425 var_n_type = p0;
1426 var_n_kwas = p1;
1427 var_n_kwnot = p2;
1428 var_n_kwnullable = p3;
1429 if (unlikely(var_n_type == NULL)) {
1430 PRINT_ERROR("Runtime error: %s", "Cast failed");
1431 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8318);
1432 fatal_exit(1);
1433 }
1434 self->attrs[COLOR_nit__parser_nodes__AAsNotNullableExternCall___n_type].val = var_n_type; /* _n_type on <self:AAsNotNullableExternCall> */
1435 if (var_n_type == NULL) {
1436 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1437 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8319);
1438 fatal_exit(1);
1439 } else {
1440 { /* Inline parser_nodes#ANode#parent= (var_n_type,self) on <var_n_type:nullable AType> */
1441 if (unlikely(var_n_type == NULL)) {
1442 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1443 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
1444 fatal_exit(1);
1445 }
1446 var_n_type->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_type:nullable AType> */
1447 RET_LABEL2:(void)0;
1448 }
1449 }
1450 if (unlikely(var_n_kwas == NULL)) {
1451 PRINT_ERROR("Runtime error: %s", "Cast failed");
1452 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8320);
1453 fatal_exit(1);
1454 }
1455 self->attrs[COLOR_nit__parser_nodes__AAsNotNullableExternCall___n_kwas].val = var_n_kwas; /* _n_kwas on <self:AAsNotNullableExternCall> */
1456 if (var_n_kwas == NULL) {
1457 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1458 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8321);
1459 fatal_exit(1);
1460 } else {
1461 { /* Inline parser_nodes#ANode#parent= (var_n_kwas,self) on <var_n_kwas:nullable TKwas> */
1462 if (unlikely(var_n_kwas == NULL)) {
1463 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1464 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
1465 fatal_exit(1);
1466 }
1467 var_n_kwas->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwas:nullable TKwas> */
1468 RET_LABEL3:(void)0;
1469 }
1470 }
1471 if (unlikely(var_n_kwnot == NULL)) {
1472 PRINT_ERROR("Runtime error: %s", "Cast failed");
1473 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8322);
1474 fatal_exit(1);
1475 }
1476 self->attrs[COLOR_nit__parser_nodes__AAsNotNullableExternCall___n_kwnot].val = var_n_kwnot; /* _n_kwnot on <self:AAsNotNullableExternCall> */
1477 if (var_n_kwnot == NULL) {
1478 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1479 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8323);
1480 fatal_exit(1);
1481 } else {
1482 { /* Inline parser_nodes#ANode#parent= (var_n_kwnot,self) on <var_n_kwnot:nullable TKwnot> */
1483 if (unlikely(var_n_kwnot == NULL)) {
1484 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1485 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
1486 fatal_exit(1);
1487 }
1488 var_n_kwnot->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwnot:nullable TKwnot> */
1489 RET_LABEL4:(void)0;
1490 }
1491 }
1492 if (unlikely(var_n_kwnullable == NULL)) {
1493 PRINT_ERROR("Runtime error: %s", "Cast failed");
1494 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8324);
1495 fatal_exit(1);
1496 }
1497 self->attrs[COLOR_nit__parser_nodes__AAsNotNullableExternCall___n_kwnullable].val = var_n_kwnullable; /* _n_kwnullable on <self:AAsNotNullableExternCall> */
1498 if (var_n_kwnullable == NULL) {
1499 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1500 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8325);
1501 fatal_exit(1);
1502 } else {
1503 { /* Inline parser_nodes#ANode#parent= (var_n_kwnullable,self) on <var_n_kwnullable:nullable TKwnullable> */
1504 if (unlikely(var_n_kwnullable == NULL)) {
1505 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1506 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
1507 fatal_exit(1);
1508 }
1509 var_n_kwnullable->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwnullable:nullable TKwnullable> */
1510 RET_LABEL5:(void)0;
1511 }
1512 }
1513 RET_LABEL:;
1514 }
1515 /* method parser_prod#AAsNotNullableExternCall#replace_child for (self: AAsNotNullableExternCall, ANode, nullable ANode) */
1516 void nit__parser_prod___AAsNotNullableExternCall___nit__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
1517 val* var_old_child /* var old_child: ANode */;
1518 val* var_new_child /* var new_child: nullable ANode */;
1519 val* var /* : AType */;
1520 short int var1 /* : Bool */;
1521 val* var_other /* var other: nullable Object */;
1522 short int var3 /* : Bool */;
1523 short int var5 /* : Bool */;
1524 short int var6 /* : Bool */;
1525 int cltype;
1526 int idtype;
1527 const char* var_class_name;
1528 val* var7 /* : TKwas */;
1529 short int var8 /* : Bool */;
1530 short int var10 /* : Bool */;
1531 short int var12 /* : Bool */;
1532 short int var13 /* : Bool */;
1533 int cltype14;
1534 int idtype15;
1535 const char* var_class_name16;
1536 val* var17 /* : TKwnot */;
1537 short int var18 /* : Bool */;
1538 short int var20 /* : Bool */;
1539 short int var22 /* : Bool */;
1540 short int var23 /* : Bool */;
1541 int cltype24;
1542 int idtype25;
1543 const char* var_class_name26;
1544 val* var27 /* : TKwnullable */;
1545 short int var28 /* : Bool */;
1546 short int var30 /* : Bool */;
1547 short int var32 /* : Bool */;
1548 short int var33 /* : Bool */;
1549 int cltype34;
1550 int idtype35;
1551 const char* var_class_name36;
1552 var_old_child = p0;
1553 var_new_child = p1;
1554 var = self->attrs[COLOR_nit__parser_nodes__AAsNotNullableExternCall___n_type].val; /* _n_type on <self:AAsNotNullableExternCall> */
1555 if (unlikely(var == NULL)) {
1556 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
1557 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8330);
1558 fatal_exit(1);
1559 }
1560 {
1561 { /* Inline kernel#Object#== (var,var_old_child) on <var:AType> */
1562 var_other = var_old_child;
1563 {
1564 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AType> */
1565 var5 = var == var_other;
1566 var3 = var5;
1567 goto RET_LABEL4;
1568 RET_LABEL4:(void)0;
1569 }
1570 }
1571 var1 = var3;
1572 goto RET_LABEL2;
1573 RET_LABEL2:(void)0;
1574 }
1575 }
1576 if (var1){
1577 /* <var_new_child:nullable ANode> isa AType */
1578 cltype = type_nit__AType.color;
1579 idtype = type_nit__AType.id;
1580 if(var_new_child == NULL) {
1581 var6 = 0;
1582 } else {
1583 if(cltype >= var_new_child->type->table_size) {
1584 var6 = 0;
1585 } else {
1586 var6 = var_new_child->type->type_table[cltype] == idtype;
1587 }
1588 }
1589 if (unlikely(!var6)) {
1590 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
1591 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AType", var_class_name);
1592 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8331);
1593 fatal_exit(1);
1594 }
1595 {
1596 nit__parser_prod___AAsNotNullableExternCall___n_type_61d(self, var_new_child); /* Direct call parser_prod#AAsNotNullableExternCall#n_type= on <self:AAsNotNullableExternCall>*/
1597 }
1598 goto RET_LABEL;
1599 } else {
1600 }
1601 var7 = self->attrs[COLOR_nit__parser_nodes__AAsNotNullableExternCall___n_kwas].val; /* _n_kwas on <self:AAsNotNullableExternCall> */
1602 if (unlikely(var7 == NULL)) {
1603 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwas");
1604 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8334);
1605 fatal_exit(1);
1606 }
1607 {
1608 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:TKwas> */
1609 var_other = var_old_child;
1610 {
1611 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:TKwas> */
1612 var12 = var7 == var_other;
1613 var10 = var12;
1614 goto RET_LABEL11;
1615 RET_LABEL11:(void)0;
1616 }
1617 }
1618 var8 = var10;
1619 goto RET_LABEL9;
1620 RET_LABEL9:(void)0;
1621 }
1622 }
1623 if (var8){
1624 /* <var_new_child:nullable ANode> isa TKwas */
1625 cltype14 = type_nit__TKwas.color;
1626 idtype15 = type_nit__TKwas.id;
1627 if(var_new_child == NULL) {
1628 var13 = 0;
1629 } else {
1630 if(cltype14 >= var_new_child->type->table_size) {
1631 var13 = 0;
1632 } else {
1633 var13 = var_new_child->type->type_table[cltype14] == idtype15;
1634 }
1635 }
1636 if (unlikely(!var13)) {
1637 var_class_name16 = var_new_child == NULL ? "null" : var_new_child->type->name;
1638 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwas", var_class_name16);
1639 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8335);
1640 fatal_exit(1);
1641 }
1642 {
1643 nit__parser_prod___AAsNotNullableExternCall___n_kwas_61d(self, var_new_child); /* Direct call parser_prod#AAsNotNullableExternCall#n_kwas= on <self:AAsNotNullableExternCall>*/
1644 }
1645 goto RET_LABEL;
1646 } else {
1647 }
1648 var17 = self->attrs[COLOR_nit__parser_nodes__AAsNotNullableExternCall___n_kwnot].val; /* _n_kwnot on <self:AAsNotNullableExternCall> */
1649 if (unlikely(var17 == NULL)) {
1650 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwnot");
1651 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8338);
1652 fatal_exit(1);
1653 }
1654 {
1655 { /* Inline kernel#Object#== (var17,var_old_child) on <var17:TKwnot> */
1656 var_other = var_old_child;
1657 {
1658 { /* Inline kernel#Object#is_same_instance (var17,var_other) on <var17:TKwnot> */
1659 var22 = var17 == var_other;
1660 var20 = var22;
1661 goto RET_LABEL21;
1662 RET_LABEL21:(void)0;
1663 }
1664 }
1665 var18 = var20;
1666 goto RET_LABEL19;
1667 RET_LABEL19:(void)0;
1668 }
1669 }
1670 if (var18){
1671 /* <var_new_child:nullable ANode> isa TKwnot */
1672 cltype24 = type_nit__TKwnot.color;
1673 idtype25 = type_nit__TKwnot.id;
1674 if(var_new_child == NULL) {
1675 var23 = 0;
1676 } else {
1677 if(cltype24 >= var_new_child->type->table_size) {
1678 var23 = 0;
1679 } else {
1680 var23 = var_new_child->type->type_table[cltype24] == idtype25;
1681 }
1682 }
1683 if (unlikely(!var23)) {
1684 var_class_name26 = var_new_child == NULL ? "null" : var_new_child->type->name;
1685 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwnot", var_class_name26);
1686 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8339);
1687 fatal_exit(1);
1688 }
1689 {
1690 nit__parser_prod___AAsNotNullableExternCall___n_kwnot_61d(self, var_new_child); /* Direct call parser_prod#AAsNotNullableExternCall#n_kwnot= on <self:AAsNotNullableExternCall>*/
1691 }
1692 goto RET_LABEL;
1693 } else {
1694 }
1695 var27 = self->attrs[COLOR_nit__parser_nodes__AAsNotNullableExternCall___n_kwnullable].val; /* _n_kwnullable on <self:AAsNotNullableExternCall> */
1696 if (unlikely(var27 == NULL)) {
1697 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwnullable");
1698 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8342);
1699 fatal_exit(1);
1700 }
1701 {
1702 { /* Inline kernel#Object#== (var27,var_old_child) on <var27:TKwnullable> */
1703 var_other = var_old_child;
1704 {
1705 { /* Inline kernel#Object#is_same_instance (var27,var_other) on <var27:TKwnullable> */
1706 var32 = var27 == var_other;
1707 var30 = var32;
1708 goto RET_LABEL31;
1709 RET_LABEL31:(void)0;
1710 }
1711 }
1712 var28 = var30;
1713 goto RET_LABEL29;
1714 RET_LABEL29:(void)0;
1715 }
1716 }
1717 if (var28){
1718 /* <var_new_child:nullable ANode> isa TKwnullable */
1719 cltype34 = type_nit__TKwnullable.color;
1720 idtype35 = type_nit__TKwnullable.id;
1721 if(var_new_child == NULL) {
1722 var33 = 0;
1723 } else {
1724 if(cltype34 >= var_new_child->type->table_size) {
1725 var33 = 0;
1726 } else {
1727 var33 = var_new_child->type->type_table[cltype34] == idtype35;
1728 }
1729 }
1730 if (unlikely(!var33)) {
1731 var_class_name36 = var_new_child == NULL ? "null" : var_new_child->type->name;
1732 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwnullable", var_class_name36);
1733 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8343);
1734 fatal_exit(1);
1735 }
1736 {
1737 nit__parser_prod___AAsNotNullableExternCall___n_kwnullable_61d(self, var_new_child); /* Direct call parser_prod#AAsNotNullableExternCall#n_kwnullable= on <self:AAsNotNullableExternCall>*/
1738 }
1739 goto RET_LABEL;
1740 } else {
1741 }
1742 RET_LABEL:;
1743 }
1744 /* method parser_prod#AAsNotNullableExternCall#n_type= for (self: AAsNotNullableExternCall, AType) */
1745 void nit__parser_prod___AAsNotNullableExternCall___n_type_61d(val* self, val* p0) {
1746 val* var_node /* var node: AType */;
1747 var_node = p0;
1748 self->attrs[COLOR_nit__parser_nodes__AAsNotNullableExternCall___n_type].val = var_node; /* _n_type on <self:AAsNotNullableExternCall> */
1749 {
1750 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AType> */
1751 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AType> */
1752 RET_LABEL1:(void)0;
1753 }
1754 }
1755 RET_LABEL:;
1756 }
1757 /* method parser_prod#AAsNotNullableExternCall#n_kwas= for (self: AAsNotNullableExternCall, TKwas) */
1758 void nit__parser_prod___AAsNotNullableExternCall___n_kwas_61d(val* self, val* p0) {
1759 val* var_node /* var node: TKwas */;
1760 var_node = p0;
1761 self->attrs[COLOR_nit__parser_nodes__AAsNotNullableExternCall___n_kwas].val = var_node; /* _n_kwas on <self:AAsNotNullableExternCall> */
1762 {
1763 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwas> */
1764 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwas> */
1765 RET_LABEL1:(void)0;
1766 }
1767 }
1768 RET_LABEL:;
1769 }
1770 /* method parser_prod#AAsNotNullableExternCall#n_kwnot= for (self: AAsNotNullableExternCall, TKwnot) */
1771 void nit__parser_prod___AAsNotNullableExternCall___n_kwnot_61d(val* self, val* p0) {
1772 val* var_node /* var node: TKwnot */;
1773 var_node = p0;
1774 self->attrs[COLOR_nit__parser_nodes__AAsNotNullableExternCall___n_kwnot].val = var_node; /* _n_kwnot on <self:AAsNotNullableExternCall> */
1775 {
1776 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwnot> */
1777 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwnot> */
1778 RET_LABEL1:(void)0;
1779 }
1780 }
1781 RET_LABEL:;
1782 }
1783 /* method parser_prod#AAsNotNullableExternCall#n_kwnullable= for (self: AAsNotNullableExternCall, TKwnullable) */
1784 void nit__parser_prod___AAsNotNullableExternCall___n_kwnullable_61d(val* self, val* p0) {
1785 val* var_node /* var node: TKwnullable */;
1786 var_node = p0;
1787 self->attrs[COLOR_nit__parser_nodes__AAsNotNullableExternCall___n_kwnullable].val = var_node; /* _n_kwnullable on <self:AAsNotNullableExternCall> */
1788 {
1789 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwnullable> */
1790 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwnullable> */
1791 RET_LABEL1:(void)0;
1792 }
1793 }
1794 RET_LABEL:;
1795 }
1796 /* method parser_prod#AAsNotNullableExternCall#visit_all for (self: AAsNotNullableExternCall, Visitor) */
1797 void nit__parser_prod___AAsNotNullableExternCall___nit__parser_nodes__ANode__visit_all(val* self, val* p0) {
1798 val* var_v /* var v: Visitor */;
1799 val* var /* : AType */;
1800 val* var1 /* : TKwas */;
1801 val* var2 /* : TKwnot */;
1802 val* var3 /* : TKwnullable */;
1803 var_v = p0;
1804 var = self->attrs[COLOR_nit__parser_nodes__AAsNotNullableExternCall___n_type].val; /* _n_type on <self:AAsNotNullableExternCall> */
1805 if (unlikely(var == NULL)) {
1806 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
1807 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8372);
1808 fatal_exit(1);
1809 }
1810 {
1811 nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1812 }
1813 var1 = self->attrs[COLOR_nit__parser_nodes__AAsNotNullableExternCall___n_kwas].val; /* _n_kwas on <self:AAsNotNullableExternCall> */
1814 if (unlikely(var1 == NULL)) {
1815 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwas");
1816 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8373);
1817 fatal_exit(1);
1818 }
1819 {
1820 nit___nit__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1821 }
1822 var2 = self->attrs[COLOR_nit__parser_nodes__AAsNotNullableExternCall___n_kwnot].val; /* _n_kwnot on <self:AAsNotNullableExternCall> */
1823 if (unlikely(var2 == NULL)) {
1824 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwnot");
1825 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8374);
1826 fatal_exit(1);
1827 }
1828 {
1829 nit___nit__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1830 }
1831 var3 = self->attrs[COLOR_nit__parser_nodes__AAsNotNullableExternCall___n_kwnullable].val; /* _n_kwnullable on <self:AAsNotNullableExternCall> */
1832 if (unlikely(var3 == NULL)) {
1833 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwnullable");
1834 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8375);
1835 fatal_exit(1);
1836 }
1837 {
1838 nit___nit__Visitor___enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1839 }
1840 RET_LABEL:;
1841 }
1842 /* method parser_prod#AInLanguage#init_ainlanguage for (self: AInLanguage, nullable TKwin, nullable TString) */
1843 void nit__parser_prod___AInLanguage___init_ainlanguage(val* self, val* p0, val* p1) {
1844 val* var_n_kwin /* var n_kwin: nullable TKwin */;
1845 val* var_n_string /* var n_string: nullable TString */;
1846 {
1847 { /* Inline kernel#Object#init (self) on <self:AInLanguage> */
1848 RET_LABEL1:(void)0;
1849 }
1850 }
1851 var_n_kwin = p0;
1852 var_n_string = p1;
1853 if (unlikely(var_n_kwin == NULL)) {
1854 PRINT_ERROR("Runtime error: %s", "Cast failed");
1855 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8384);
1856 fatal_exit(1);
1857 }
1858 self->attrs[COLOR_nit__parser_nodes__AInLanguage___n_kwin].val = var_n_kwin; /* _n_kwin on <self:AInLanguage> */
1859 if (var_n_kwin == NULL) {
1860 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1861 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8385);
1862 fatal_exit(1);
1863 } else {
1864 { /* Inline parser_nodes#ANode#parent= (var_n_kwin,self) on <var_n_kwin:nullable TKwin> */
1865 if (unlikely(var_n_kwin == NULL)) {
1866 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1867 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
1868 fatal_exit(1);
1869 }
1870 var_n_kwin->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwin:nullable TKwin> */
1871 RET_LABEL2:(void)0;
1872 }
1873 }
1874 if (unlikely(var_n_string == NULL)) {
1875 PRINT_ERROR("Runtime error: %s", "Cast failed");
1876 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8386);
1877 fatal_exit(1);
1878 }
1879 self->attrs[COLOR_nit__parser_nodes__AInLanguage___n_string].val = var_n_string; /* _n_string on <self:AInLanguage> */
1880 if (var_n_string == NULL) {
1881 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1882 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8387);
1883 fatal_exit(1);
1884 } else {
1885 { /* Inline parser_nodes#ANode#parent= (var_n_string,self) on <var_n_string:nullable TString> */
1886 if (unlikely(var_n_string == NULL)) {
1887 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1888 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
1889 fatal_exit(1);
1890 }
1891 var_n_string->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_string:nullable TString> */
1892 RET_LABEL3:(void)0;
1893 }
1894 }
1895 RET_LABEL:;
1896 }
1897 /* method parser_prod#AInLanguage#replace_child for (self: AInLanguage, ANode, nullable ANode) */
1898 void nit__parser_prod___AInLanguage___nit__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
1899 val* var_old_child /* var old_child: ANode */;
1900 val* var_new_child /* var new_child: nullable ANode */;
1901 val* var /* : TKwin */;
1902 short int var1 /* : Bool */;
1903 val* var_other /* var other: nullable Object */;
1904 short int var3 /* : Bool */;
1905 short int var5 /* : Bool */;
1906 short int var6 /* : Bool */;
1907 int cltype;
1908 int idtype;
1909 const char* var_class_name;
1910 val* var7 /* : TString */;
1911 short int var8 /* : Bool */;
1912 short int var10 /* : Bool */;
1913 short int var12 /* : Bool */;
1914 short int var13 /* : Bool */;
1915 int cltype14;
1916 int idtype15;
1917 const char* var_class_name16;
1918 var_old_child = p0;
1919 var_new_child = p1;
1920 var = self->attrs[COLOR_nit__parser_nodes__AInLanguage___n_kwin].val; /* _n_kwin on <self:AInLanguage> */
1921 if (unlikely(var == NULL)) {
1922 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwin");
1923 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8392);
1924 fatal_exit(1);
1925 }
1926 {
1927 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwin> */
1928 var_other = var_old_child;
1929 {
1930 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TKwin> */
1931 var5 = var == var_other;
1932 var3 = var5;
1933 goto RET_LABEL4;
1934 RET_LABEL4:(void)0;
1935 }
1936 }
1937 var1 = var3;
1938 goto RET_LABEL2;
1939 RET_LABEL2:(void)0;
1940 }
1941 }
1942 if (var1){
1943 /* <var_new_child:nullable ANode> isa TKwin */
1944 cltype = type_nit__TKwin.color;
1945 idtype = type_nit__TKwin.id;
1946 if(var_new_child == NULL) {
1947 var6 = 0;
1948 } else {
1949 if(cltype >= var_new_child->type->table_size) {
1950 var6 = 0;
1951 } else {
1952 var6 = var_new_child->type->type_table[cltype] == idtype;
1953 }
1954 }
1955 if (unlikely(!var6)) {
1956 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
1957 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwin", var_class_name);
1958 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8393);
1959 fatal_exit(1);
1960 }
1961 {
1962 nit__parser_prod___AInLanguage___n_kwin_61d(self, var_new_child); /* Direct call parser_prod#AInLanguage#n_kwin= on <self:AInLanguage>*/
1963 }
1964 goto RET_LABEL;
1965 } else {
1966 }
1967 var7 = self->attrs[COLOR_nit__parser_nodes__AInLanguage___n_string].val; /* _n_string on <self:AInLanguage> */
1968 if (unlikely(var7 == NULL)) {
1969 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_string");
1970 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8396);
1971 fatal_exit(1);
1972 }
1973 {
1974 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:TString> */
1975 var_other = var_old_child;
1976 {
1977 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:TString> */
1978 var12 = var7 == var_other;
1979 var10 = var12;
1980 goto RET_LABEL11;
1981 RET_LABEL11:(void)0;
1982 }
1983 }
1984 var8 = var10;
1985 goto RET_LABEL9;
1986 RET_LABEL9:(void)0;
1987 }
1988 }
1989 if (var8){
1990 /* <var_new_child:nullable ANode> isa TString */
1991 cltype14 = type_nit__TString.color;
1992 idtype15 = type_nit__TString.id;
1993 if(var_new_child == NULL) {
1994 var13 = 0;
1995 } else {
1996 if(cltype14 >= var_new_child->type->table_size) {
1997 var13 = 0;
1998 } else {
1999 var13 = var_new_child->type->type_table[cltype14] == idtype15;
2000 }
2001 }
2002 if (unlikely(!var13)) {
2003 var_class_name16 = var_new_child == NULL ? "null" : var_new_child->type->name;
2004 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TString", var_class_name16);
2005 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8397);
2006 fatal_exit(1);
2007 }
2008 {
2009 nit__parser_prod___AInLanguage___n_string_61d(self, var_new_child); /* Direct call parser_prod#AInLanguage#n_string= on <self:AInLanguage>*/
2010 }
2011 goto RET_LABEL;
2012 } else {
2013 }
2014 RET_LABEL:;
2015 }
2016 /* method parser_prod#AInLanguage#n_kwin= for (self: AInLanguage, TKwin) */
2017 void nit__parser_prod___AInLanguage___n_kwin_61d(val* self, val* p0) {
2018 val* var_node /* var node: TKwin */;
2019 var_node = p0;
2020 self->attrs[COLOR_nit__parser_nodes__AInLanguage___n_kwin].val = var_node; /* _n_kwin on <self:AInLanguage> */
2021 {
2022 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwin> */
2023 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwin> */
2024 RET_LABEL1:(void)0;
2025 }
2026 }
2027 RET_LABEL:;
2028 }
2029 /* method parser_prod#AInLanguage#n_string= for (self: AInLanguage, TString) */
2030 void nit__parser_prod___AInLanguage___n_string_61d(val* self, val* p0) {
2031 val* var_node /* var node: TString */;
2032 var_node = p0;
2033 self->attrs[COLOR_nit__parser_nodes__AInLanguage___n_string].val = var_node; /* _n_string on <self:AInLanguage> */
2034 {
2035 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TString> */
2036 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TString> */
2037 RET_LABEL1:(void)0;
2038 }
2039 }
2040 RET_LABEL:;
2041 }
2042 /* method parser_prod#AInLanguage#visit_all for (self: AInLanguage, Visitor) */
2043 void nit__parser_prod___AInLanguage___nit__parser_nodes__ANode__visit_all(val* self, val* p0) {
2044 val* var_v /* var v: Visitor */;
2045 val* var /* : TKwin */;
2046 val* var1 /* : TString */;
2047 var_v = p0;
2048 var = self->attrs[COLOR_nit__parser_nodes__AInLanguage___n_kwin].val; /* _n_kwin on <self:AInLanguage> */
2049 if (unlikely(var == NULL)) {
2050 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwin");
2051 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8416);
2052 fatal_exit(1);
2053 }
2054 {
2055 nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2056 }
2057 var1 = self->attrs[COLOR_nit__parser_nodes__AInLanguage___n_string].val; /* _n_string on <self:AInLanguage> */
2058 if (unlikely(var1 == NULL)) {
2059 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_string");
2060 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8417);
2061 fatal_exit(1);
2062 }
2063 {
2064 nit___nit__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2065 }
2066 RET_LABEL:;
2067 }
2068 /* method parser_prod#AExternCodeBlock#init_aexterncodeblock for (self: AExternCodeBlock, nullable AInLanguage, nullable TExternCodeSegment) */
2069 void nit__parser_prod___AExternCodeBlock___init_aexterncodeblock(val* self, val* p0, val* p1) {
2070 val* var_n_in_language /* var n_in_language: nullable AInLanguage */;
2071 val* var_n_extern_code_segment /* var n_extern_code_segment: nullable TExternCodeSegment */;
2072 short int var /* : Bool */;
2073 short int var2 /* : Bool */;
2074 val* var_other /* var other: nullable Object */;
2075 short int var4 /* : Bool */;
2076 short int var5 /* : Bool */;
2077 {
2078 { /* Inline kernel#Object#init (self) on <self:AExternCodeBlock> */
2079 RET_LABEL1:(void)0;
2080 }
2081 }
2082 var_n_in_language = p0;
2083 var_n_extern_code_segment = p1;
2084 self->attrs[COLOR_nit__parser_nodes__AExternCodeBlock___n_in_language].val = var_n_in_language; /* _n_in_language on <self:AExternCodeBlock> */
2085 if (var_n_in_language == NULL) {
2086 var = 0; /* is null */
2087 } else {
2088 var = 1; /* arg is null and recv is not */
2089 }
2090 if (0) {
2091 { /* Inline kernel#Object#!= (var_n_in_language,((val*)NULL)) on <var_n_in_language:nullable AInLanguage> */
2092 var_other = ((val*)NULL);
2093 {
2094 var4 = ((short int(*)(val* self, val* p0))(var_n_in_language->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_in_language, var_other); /* == on <var_n_in_language:nullable AInLanguage(AInLanguage)>*/
2095 }
2096 var5 = !var4;
2097 var2 = var5;
2098 goto RET_LABEL3;
2099 RET_LABEL3:(void)0;
2100 }
2101 var = var2;
2102 }
2103 if (var){
2104 {
2105 { /* Inline parser_nodes#ANode#parent= (var_n_in_language,self) on <var_n_in_language:nullable AInLanguage(AInLanguage)> */
2106 var_n_in_language->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_in_language:nullable AInLanguage(AInLanguage)> */
2107 RET_LABEL6:(void)0;
2108 }
2109 }
2110 } else {
2111 }
2112 if (unlikely(var_n_extern_code_segment == NULL)) {
2113 PRINT_ERROR("Runtime error: %s", "Cast failed");
2114 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8428);
2115 fatal_exit(1);
2116 }
2117 self->attrs[COLOR_nit__parser_nodes__AExternCodeBlock___n_extern_code_segment].val = var_n_extern_code_segment; /* _n_extern_code_segment on <self:AExternCodeBlock> */
2118 if (var_n_extern_code_segment == NULL) {
2119 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2120 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8429);
2121 fatal_exit(1);
2122 } else {
2123 { /* Inline parser_nodes#ANode#parent= (var_n_extern_code_segment,self) on <var_n_extern_code_segment:nullable TExternCodeSegment> */
2124 if (unlikely(var_n_extern_code_segment == NULL)) {
2125 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2126 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
2127 fatal_exit(1);
2128 }
2129 var_n_extern_code_segment->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_extern_code_segment:nullable TExternCodeSegment> */
2130 RET_LABEL7:(void)0;
2131 }
2132 }
2133 RET_LABEL:;
2134 }
2135 /* method parser_prod#AExternCodeBlock#replace_child for (self: AExternCodeBlock, ANode, nullable ANode) */
2136 void nit__parser_prod___AExternCodeBlock___nit__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
2137 val* var_old_child /* var old_child: ANode */;
2138 val* var_new_child /* var new_child: nullable ANode */;
2139 val* var /* : nullable AInLanguage */;
2140 short int var1 /* : Bool */;
2141 short int var2 /* : Bool */;
2142 val* var_other /* var other: nullable Object */;
2143 short int var4 /* : Bool */;
2144 short int var6 /* : Bool */;
2145 short int var7 /* : Bool */;
2146 int cltype;
2147 int idtype;
2148 const char* var_class_name;
2149 val* var8 /* : TExternCodeSegment */;
2150 short int var9 /* : Bool */;
2151 short int var11 /* : Bool */;
2152 short int var13 /* : Bool */;
2153 short int var14 /* : Bool */;
2154 int cltype15;
2155 int idtype16;
2156 const char* var_class_name17;
2157 var_old_child = p0;
2158 var_new_child = p1;
2159 var = self->attrs[COLOR_nit__parser_nodes__AExternCodeBlock___n_in_language].val; /* _n_in_language on <self:AExternCodeBlock> */
2160 if (var == NULL) {
2161 var1 = 0; /* <var_old_child:ANode> cannot be null */
2162 } else {
2163 { /* Inline kernel#Object#== (var,var_old_child) on <var:nullable AInLanguage> */
2164 var_other = var_old_child;
2165 {
2166 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:nullable AInLanguage(AInLanguage)> */
2167 var6 = var == var_other;
2168 var4 = var6;
2169 goto RET_LABEL5;
2170 RET_LABEL5:(void)0;
2171 }
2172 }
2173 var2 = var4;
2174 goto RET_LABEL3;
2175 RET_LABEL3:(void)0;
2176 }
2177 var1 = var2;
2178 }
2179 if (var1){
2180 /* <var_new_child:nullable ANode> isa nullable AInLanguage */
2181 cltype = type_nullable__nit__AInLanguage.color;
2182 idtype = type_nullable__nit__AInLanguage.id;
2183 if(var_new_child == NULL) {
2184 var7 = 1;
2185 } else {
2186 if(cltype >= var_new_child->type->table_size) {
2187 var7 = 0;
2188 } else {
2189 var7 = var_new_child->type->type_table[cltype] == idtype;
2190 }
2191 }
2192 if (unlikely(!var7)) {
2193 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
2194 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AInLanguage", var_class_name);
2195 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8435);
2196 fatal_exit(1);
2197 }
2198 {
2199 nit__parser_prod___AExternCodeBlock___n_in_language_61d(self, var_new_child); /* Direct call parser_prod#AExternCodeBlock#n_in_language= on <self:AExternCodeBlock>*/
2200 }
2201 goto RET_LABEL;
2202 } else {
2203 }
2204 var8 = self->attrs[COLOR_nit__parser_nodes__AExternCodeBlock___n_extern_code_segment].val; /* _n_extern_code_segment on <self:AExternCodeBlock> */
2205 if (unlikely(var8 == NULL)) {
2206 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_extern_code_segment");
2207 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8438);
2208 fatal_exit(1);
2209 }
2210 {
2211 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:TExternCodeSegment> */
2212 var_other = var_old_child;
2213 {
2214 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:TExternCodeSegment> */
2215 var13 = var8 == var_other;
2216 var11 = var13;
2217 goto RET_LABEL12;
2218 RET_LABEL12:(void)0;
2219 }
2220 }
2221 var9 = var11;
2222 goto RET_LABEL10;
2223 RET_LABEL10:(void)0;
2224 }
2225 }
2226 if (var9){
2227 /* <var_new_child:nullable ANode> isa TExternCodeSegment */
2228 cltype15 = type_nit__TExternCodeSegment.color;
2229 idtype16 = type_nit__TExternCodeSegment.id;
2230 if(var_new_child == NULL) {
2231 var14 = 0;
2232 } else {
2233 if(cltype15 >= var_new_child->type->table_size) {
2234 var14 = 0;
2235 } else {
2236 var14 = var_new_child->type->type_table[cltype15] == idtype16;
2237 }
2238 }
2239 if (unlikely(!var14)) {
2240 var_class_name17 = var_new_child == NULL ? "null" : var_new_child->type->name;
2241 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TExternCodeSegment", var_class_name17);
2242 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8439);
2243 fatal_exit(1);
2244 }
2245 {
2246 nit__parser_prod___AExternCodeBlock___n_extern_code_segment_61d(self, var_new_child); /* Direct call parser_prod#AExternCodeBlock#n_extern_code_segment= on <self:AExternCodeBlock>*/
2247 }
2248 goto RET_LABEL;
2249 } else {
2250 }
2251 RET_LABEL:;
2252 }
2253 /* method parser_prod#AExternCodeBlock#n_in_language= for (self: AExternCodeBlock, nullable AInLanguage) */
2254 void nit__parser_prod___AExternCodeBlock___n_in_language_61d(val* self, val* p0) {
2255 val* var_node /* var node: nullable AInLanguage */;
2256 short int var /* : Bool */;
2257 short int var1 /* : Bool */;
2258 val* var_other /* var other: nullable Object */;
2259 short int var3 /* : Bool */;
2260 short int var4 /* : Bool */;
2261 var_node = p0;
2262 self->attrs[COLOR_nit__parser_nodes__AExternCodeBlock___n_in_language].val = var_node; /* _n_in_language on <self:AExternCodeBlock> */
2263 if (var_node == NULL) {
2264 var = 0; /* is null */
2265 } else {
2266 var = 1; /* arg is null and recv is not */
2267 }
2268 if (0) {
2269 { /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable AInLanguage> */
2270 var_other = ((val*)NULL);
2271 {
2272 var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable AInLanguage(AInLanguage)>*/
2273 }
2274 var4 = !var3;
2275 var1 = var4;
2276 goto RET_LABEL2;
2277 RET_LABEL2:(void)0;
2278 }
2279 var = var1;
2280 }
2281 if (var){
2282 {
2283 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AInLanguage(AInLanguage)> */
2284 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AInLanguage(AInLanguage)> */
2285 RET_LABEL5:(void)0;
2286 }
2287 }
2288 } else {
2289 }
2290 RET_LABEL:;
2291 }
2292 /* method parser_prod#AExternCodeBlock#n_extern_code_segment= for (self: AExternCodeBlock, TExternCodeSegment) */
2293 void nit__parser_prod___AExternCodeBlock___n_extern_code_segment_61d(val* self, val* p0) {
2294 val* var_node /* var node: TExternCodeSegment */;
2295 var_node = p0;
2296 self->attrs[COLOR_nit__parser_nodes__AExternCodeBlock___n_extern_code_segment].val = var_node; /* _n_extern_code_segment on <self:AExternCodeBlock> */
2297 {
2298 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TExternCodeSegment> */
2299 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TExternCodeSegment> */
2300 RET_LABEL1:(void)0;
2301 }
2302 }
2303 RET_LABEL:;
2304 }
2305 /* method parser_prod#AExternCodeBlock#visit_all for (self: AExternCodeBlock, Visitor) */
2306 void nit__parser_prod___AExternCodeBlock___nit__parser_nodes__ANode__visit_all(val* self, val* p0) {
2307 val* var_v /* var v: Visitor */;
2308 val* var /* : nullable AInLanguage */;
2309 val* var1 /* : TExternCodeSegment */;
2310 var_v = p0;
2311 var = self->attrs[COLOR_nit__parser_nodes__AExternCodeBlock___n_in_language].val; /* _n_in_language on <self:AExternCodeBlock> */
2312 {
2313 nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2314 }
2315 var1 = self->attrs[COLOR_nit__parser_nodes__AExternCodeBlock___n_extern_code_segment].val; /* _n_extern_code_segment on <self:AExternCodeBlock> */
2316 if (unlikely(var1 == NULL)) {
2317 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_extern_code_segment");
2318 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8459);
2319 fatal_exit(1);
2320 }
2321 {
2322 nit___nit__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2323 }
2324 RET_LABEL:;
2325 }
2326 /* method parser_prod#AQualified#init_aqualified for (self: AQualified, Collection[Object], nullable TClassid) */
2327 void nit__parser_prod___AQualified___init_aqualified(val* self, val* p0, val* p1) {
2328 val* var_n_id /* var n_id: Collection[Object] */;
2329 val* var_n_classid /* var n_classid: nullable TClassid */;
2330 val* var /* : ANodes[TId] */;
2331 val* var3 /* : ANodes[TId] */;
2332 short int var4 /* : Bool */;
2333 short int var5 /* : Bool */;
2334 val* var_other /* var other: nullable Object */;
2335 short int var7 /* : Bool */;
2336 short int var8 /* : Bool */;
2337 {
2338 { /* Inline kernel#Object#init (self) on <self:AQualified> */
2339 RET_LABEL1:(void)0;
2340 }
2341 }
2342 var_n_id = p0;
2343 var_n_classid = p1;
2344 {
2345 { /* Inline parser_nodes#AQualified#n_id (self) on <self:AQualified> */
2346 var3 = self->attrs[COLOR_nit__parser_nodes__AQualified___n_id].val; /* _n_id on <self:AQualified> */
2347 if (unlikely(var3 == NULL)) {
2348 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
2349 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2933);
2350 fatal_exit(1);
2351 }
2352 var = var3;
2353 RET_LABEL2:(void)0;
2354 }
2355 }
2356 {
2357 nit___nit__ANodes___unsafe_add_all(var, var_n_id); /* Direct call parser_nodes#ANodes#unsafe_add_all on <var:ANodes[TId]>*/
2358 }
2359 self->attrs[COLOR_nit__parser_nodes__AQualified___n_classid].val = var_n_classid; /* _n_classid on <self:AQualified> */
2360 if (var_n_classid == NULL) {
2361 var4 = 0; /* is null */
2362 } else {
2363 var4 = 1; /* arg is null and recv is not */
2364 }
2365 if (0) {
2366 { /* Inline kernel#Object#!= (var_n_classid,((val*)NULL)) on <var_n_classid:nullable TClassid> */
2367 var_other = ((val*)NULL);
2368 {
2369 var7 = ((short int(*)(val* self, val* p0))(var_n_classid->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_classid, var_other); /* == on <var_n_classid:nullable TClassid(TClassid)>*/
2370 }
2371 var8 = !var7;
2372 var5 = var8;
2373 goto RET_LABEL6;
2374 RET_LABEL6:(void)0;
2375 }
2376 var4 = var5;
2377 }
2378 if (var4){
2379 {
2380 { /* Inline parser_nodes#ANode#parent= (var_n_classid,self) on <var_n_classid:nullable TClassid(TClassid)> */
2381 var_n_classid->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_classid:nullable TClassid(TClassid)> */
2382 RET_LABEL9:(void)0;
2383 }
2384 }
2385 } else {
2386 }
2387 RET_LABEL:;
2388 }
2389 /* method parser_prod#AQualified#replace_child for (self: AQualified, ANode, nullable ANode) */
2390 void nit__parser_prod___AQualified___nit__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
2391 val* var_old_child /* var old_child: ANode */;
2392 val* var_new_child /* var new_child: nullable ANode */;
2393 val* var /* : ANodes[TId] */;
2394 val* var2 /* : ANodes[TId] */;
2395 short int var3 /* : Bool */;
2396 val* var4 /* : nullable TClassid */;
2397 short int var5 /* : Bool */;
2398 short int var6 /* : Bool */;
2399 val* var_other /* var other: nullable Object */;
2400 short int var8 /* : Bool */;
2401 short int var10 /* : Bool */;
2402 short int var11 /* : Bool */;
2403 int cltype;
2404 int idtype;
2405 const char* var_class_name;
2406 var_old_child = p0;
2407 var_new_child = p1;
2408 {
2409 { /* Inline parser_nodes#AQualified#n_id (self) on <self:AQualified> */
2410 var2 = self->attrs[COLOR_nit__parser_nodes__AQualified___n_id].val; /* _n_id on <self:AQualified> */
2411 if (unlikely(var2 == NULL)) {
2412 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
2413 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2933);
2414 fatal_exit(1);
2415 }
2416 var = var2;
2417 RET_LABEL1:(void)0;
2418 }
2419 }
2420 {
2421 var3 = nit___nit__ANodes___replace_child(var, var_old_child, var_new_child);
2422 }
2423 if (var3){
2424 goto RET_LABEL;
2425 } else {
2426 }
2427 var4 = self->attrs[COLOR_nit__parser_nodes__AQualified___n_classid].val; /* _n_classid on <self:AQualified> */
2428 if (var4 == NULL) {
2429 var5 = 0; /* <var_old_child:ANode> cannot be null */
2430 } else {
2431 { /* Inline kernel#Object#== (var4,var_old_child) on <var4:nullable TClassid> */
2432 var_other = var_old_child;
2433 {
2434 { /* Inline kernel#Object#is_same_instance (var4,var_other) on <var4:nullable TClassid(TClassid)> */
2435 var10 = var4 == var_other;
2436 var8 = var10;
2437 goto RET_LABEL9;
2438 RET_LABEL9:(void)0;
2439 }
2440 }
2441 var6 = var8;
2442 goto RET_LABEL7;
2443 RET_LABEL7:(void)0;
2444 }
2445 var5 = var6;
2446 }
2447 if (var5){
2448 /* <var_new_child:nullable ANode> isa nullable TClassid */
2449 cltype = type_nullable__nit__TClassid.color;
2450 idtype = type_nullable__nit__TClassid.id;
2451 if(var_new_child == NULL) {
2452 var11 = 1;
2453 } else {
2454 if(cltype >= var_new_child->type->table_size) {
2455 var11 = 0;
2456 } else {
2457 var11 = var_new_child->type->type_table[cltype] == idtype;
2458 }
2459 }
2460 if (unlikely(!var11)) {
2461 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
2462 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TClassid", var_class_name);
2463 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8477);
2464 fatal_exit(1);
2465 }
2466 {
2467 nit__parser_prod___AQualified___n_classid_61d(self, var_new_child); /* Direct call parser_prod#AQualified#n_classid= on <self:AQualified>*/
2468 }
2469 goto RET_LABEL;
2470 } else {
2471 }
2472 RET_LABEL:;
2473 }
2474 /* method parser_prod#AQualified#n_classid= for (self: AQualified, nullable TClassid) */
2475 void nit__parser_prod___AQualified___n_classid_61d(val* self, val* p0) {
2476 val* var_node /* var node: nullable TClassid */;
2477 short int var /* : Bool */;
2478 short int var1 /* : Bool */;
2479 val* var_other /* var other: nullable Object */;
2480 short int var3 /* : Bool */;
2481 short int var4 /* : Bool */;
2482 var_node = p0;
2483 self->attrs[COLOR_nit__parser_nodes__AQualified___n_classid].val = var_node; /* _n_classid on <self:AQualified> */
2484 if (var_node == NULL) {
2485 var = 0; /* is null */
2486 } else {
2487 var = 1; /* arg is null and recv is not */
2488 }
2489 if (0) {
2490 { /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable TClassid> */
2491 var_other = ((val*)NULL);
2492 {
2493 var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable TClassid(TClassid)>*/
2494 }
2495 var4 = !var3;
2496 var1 = var4;
2497 goto RET_LABEL2;
2498 RET_LABEL2:(void)0;
2499 }
2500 var = var1;
2501 }
2502 if (var){
2503 {
2504 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TClassid(TClassid)> */
2505 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TClassid(TClassid)> */
2506 RET_LABEL5:(void)0;
2507 }
2508 }
2509 } else {
2510 }
2511 RET_LABEL:;
2512 }
2513 /* method parser_prod#AQualified#visit_all for (self: AQualified, Visitor) */
2514 void nit__parser_prod___AQualified___nit__parser_nodes__ANode__visit_all(val* self, val* p0) {
2515 val* var_v /* var v: Visitor */;
2516 val* var /* : ANodes[TId] */;
2517 val* var2 /* : ANodes[TId] */;
2518 val* var3 /* : nullable TClassid */;
2519 var_v = p0;
2520 {
2521 { /* Inline parser_nodes#AQualified#n_id (self) on <self:AQualified> */
2522 var2 = self->attrs[COLOR_nit__parser_nodes__AQualified___n_id].val; /* _n_id on <self:AQualified> */
2523 if (unlikely(var2 == NULL)) {
2524 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
2525 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2933);
2526 fatal_exit(1);
2527 }
2528 var = var2;
2529 RET_LABEL1:(void)0;
2530 }
2531 }
2532 {
2533 nit___nit__ANodes___visit_all(var, var_v); /* Direct call parser_nodes#ANodes#visit_all on <var:ANodes[TId]>*/
2534 }
2535 var3 = self->attrs[COLOR_nit__parser_nodes__AQualified___n_classid].val; /* _n_classid on <self:AQualified> */
2536 {
2537 nit___nit__Visitor___enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2538 }
2539 RET_LABEL:;
2540 }
2541 /* method parser_prod#ADoc#init_adoc for (self: ADoc, Collection[Object]) */
2542 void nit__parser_prod___ADoc___init_adoc(val* self, val* p0) {
2543 val* var_n_comment /* var n_comment: Collection[Object] */;
2544 val* var /* : ANodes[TComment] */;
2545 val* var3 /* : ANodes[TComment] */;
2546 {
2547 { /* Inline kernel#Object#init (self) on <self:ADoc> */
2548 RET_LABEL1:(void)0;
2549 }
2550 }
2551 var_n_comment = p0;
2552 {
2553 { /* Inline parser_nodes#ADoc#n_comment (self) on <self:ADoc> */
2554 var3 = self->attrs[COLOR_nit__parser_nodes__ADoc___n_comment].val; /* _n_comment on <self:ADoc> */
2555 if (unlikely(var3 == NULL)) {
2556 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_comment");
2557 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2945);
2558 fatal_exit(1);
2559 }
2560 var = var3;
2561 RET_LABEL2:(void)0;
2562 }
2563 }
2564 {
2565 nit___nit__ANodes___unsafe_add_all(var, var_n_comment); /* Direct call parser_nodes#ANodes#unsafe_add_all on <var:ANodes[TComment]>*/
2566 }
2567 RET_LABEL:;
2568 }
2569 /* method parser_prod#ADoc#replace_child for (self: ADoc, ANode, nullable ANode) */
2570 void nit__parser_prod___ADoc___nit__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
2571 val* var_old_child /* var old_child: ANode */;
2572 val* var_new_child /* var new_child: nullable ANode */;
2573 val* var /* : ANodes[TComment] */;
2574 val* var2 /* : ANodes[TComment] */;
2575 short int var3 /* : Bool */;
2576 var_old_child = p0;
2577 var_new_child = p1;
2578 {
2579 { /* Inline parser_nodes#ADoc#n_comment (self) on <self:ADoc> */
2580 var2 = self->attrs[COLOR_nit__parser_nodes__ADoc___n_comment].val; /* _n_comment on <self:ADoc> */
2581 if (unlikely(var2 == NULL)) {
2582 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_comment");
2583 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2945);
2584 fatal_exit(1);
2585 }
2586 var = var2;
2587 RET_LABEL1:(void)0;
2588 }
2589 }
2590 {
2591 var3 = nit___nit__ANodes___replace_child(var, var_old_child, var_new_child);
2592 }
2593 if (var3){
2594 goto RET_LABEL;
2595 } else {
2596 }
2597 RET_LABEL:;
2598 }
2599 /* method parser_prod#ADoc#visit_all for (self: ADoc, Visitor) */
2600 void nit__parser_prod___ADoc___nit__parser_nodes__ANode__visit_all(val* self, val* p0) {
2601 val* var_v /* var v: Visitor */;
2602 val* var /* : ANodes[TComment] */;
2603 val* var2 /* : ANodes[TComment] */;
2604 var_v = p0;
2605 {
2606 { /* Inline parser_nodes#ADoc#n_comment (self) on <self:ADoc> */
2607 var2 = self->attrs[COLOR_nit__parser_nodes__ADoc___n_comment].val; /* _n_comment on <self:ADoc> */
2608 if (unlikely(var2 == NULL)) {
2609 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_comment");
2610 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2945);
2611 fatal_exit(1);
2612 }
2613 var = var2;
2614 RET_LABEL1:(void)0;
2615 }
2616 }
2617 {
2618 nit___nit__ANodes___visit_all(var, var_v); /* Direct call parser_nodes#ANodes#visit_all on <var:ANodes[TComment]>*/
2619 }
2620 RET_LABEL:;
2621 }
2622 /* method parser_prod#AAnnotations#init_aannotations for (self: AAnnotations, nullable TKwis, nullable TAt, nullable TOpar, Collection[Object], nullable TCpar, nullable TKwend) */
2623 void nit__parser_prod___AAnnotations___init_aannotations(val* self, val* p0, val* p1, val* p2, val* p3, val* p4, val* p5) {
2624 val* var_n_kwis /* var n_kwis: nullable TKwis */;
2625 val* var_n_at /* var n_at: nullable TAt */;
2626 val* var_n_opar /* var n_opar: nullable TOpar */;
2627 val* var_n_items /* var n_items: Collection[Object] */;
2628 val* var_n_cpar /* var n_cpar: nullable TCpar */;
2629 val* var_n_kwend /* var n_kwend: nullable TKwend */;
2630 short int var /* : Bool */;
2631 short int var2 /* : Bool */;
2632 val* var_other /* var other: nullable Object */;
2633 short int var4 /* : Bool */;
2634 short int var5 /* : Bool */;
2635 short int var7 /* : Bool */;
2636 short int var8 /* : Bool */;
2637 short int var10 /* : Bool */;
2638 short int var11 /* : Bool */;
2639 short int var13 /* : Bool */;
2640 short int var14 /* : Bool */;
2641 short int var16 /* : Bool */;
2642 short int var17 /* : Bool */;
2643 val* var19 /* : ANodes[AAnnotation] */;
2644 val* var21 /* : ANodes[AAnnotation] */;
2645 short int var22 /* : Bool */;
2646 short int var23 /* : Bool */;
2647 short int var25 /* : Bool */;
2648 short int var26 /* : Bool */;
2649 short int var28 /* : Bool */;
2650 short int var29 /* : Bool */;
2651 short int var31 /* : Bool */;
2652 short int var32 /* : Bool */;
2653 {
2654 { /* Inline kernel#Object#init (self) on <self:AAnnotations> */
2655 RET_LABEL1:(void)0;
2656 }
2657 }
2658 var_n_kwis = p0;
2659 var_n_at = p1;
2660 var_n_opar = p2;
2661 var_n_items = p3;
2662 var_n_cpar = p4;
2663 var_n_kwend = p5;
2664 self->attrs[COLOR_nit__parser_nodes__AAnnotations___n_kwis].val = var_n_kwis; /* _n_kwis on <self:AAnnotations> */
2665 if (var_n_kwis == NULL) {
2666 var = 0; /* is null */
2667 } else {
2668 var = 1; /* arg is null and recv is not */
2669 }
2670 if (0) {
2671 { /* Inline kernel#Object#!= (var_n_kwis,((val*)NULL)) on <var_n_kwis:nullable TKwis> */
2672 var_other = ((val*)NULL);
2673 {
2674 var4 = ((short int(*)(val* self, val* p0))(var_n_kwis->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_kwis, var_other); /* == on <var_n_kwis:nullable TKwis(TKwis)>*/
2675 }
2676 var5 = !var4;
2677 var2 = var5;
2678 goto RET_LABEL3;
2679 RET_LABEL3:(void)0;
2680 }
2681 var = var2;
2682 }
2683 if (var){
2684 {
2685 { /* Inline parser_nodes#ANode#parent= (var_n_kwis,self) on <var_n_kwis:nullable TKwis(TKwis)> */
2686 var_n_kwis->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwis:nullable TKwis(TKwis)> */
2687 RET_LABEL6:(void)0;
2688 }
2689 }
2690 } else {
2691 }
2692 self->attrs[COLOR_nit__parser_nodes__AAnnotations___n_at].val = var_n_at; /* _n_at on <self:AAnnotations> */
2693 if (var_n_at == NULL) {
2694 var7 = 0; /* is null */
2695 } else {
2696 var7 = 1; /* arg is null and recv is not */
2697 }
2698 if (0) {
2699 { /* Inline kernel#Object#!= (var_n_at,((val*)NULL)) on <var_n_at:nullable TAt> */
2700 var_other = ((val*)NULL);
2701 {
2702 var10 = ((short int(*)(val* self, val* p0))(var_n_at->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_at, var_other); /* == on <var_n_at:nullable TAt(TAt)>*/
2703 }
2704 var11 = !var10;
2705 var8 = var11;
2706 goto RET_LABEL9;
2707 RET_LABEL9:(void)0;
2708 }
2709 var7 = var8;
2710 }
2711 if (var7){
2712 {
2713 { /* Inline parser_nodes#ANode#parent= (var_n_at,self) on <var_n_at:nullable TAt(TAt)> */
2714 var_n_at->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_at:nullable TAt(TAt)> */
2715 RET_LABEL12:(void)0;
2716 }
2717 }
2718 } else {
2719 }
2720 self->attrs[COLOR_nit__parser_nodes__AAnnotations___n_opar].val = var_n_opar; /* _n_opar on <self:AAnnotations> */
2721 if (var_n_opar == NULL) {
2722 var13 = 0; /* is null */
2723 } else {
2724 var13 = 1; /* arg is null and recv is not */
2725 }
2726 if (0) {
2727 { /* Inline kernel#Object#!= (var_n_opar,((val*)NULL)) on <var_n_opar:nullable TOpar> */
2728 var_other = ((val*)NULL);
2729 {
2730 var16 = ((short int(*)(val* self, val* p0))(var_n_opar->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_opar, var_other); /* == on <var_n_opar:nullable TOpar(TOpar)>*/
2731 }
2732 var17 = !var16;
2733 var14 = var17;
2734 goto RET_LABEL15;
2735 RET_LABEL15:(void)0;
2736 }
2737 var13 = var14;
2738 }
2739 if (var13){
2740 {
2741 { /* Inline parser_nodes#ANode#parent= (var_n_opar,self) on <var_n_opar:nullable TOpar(TOpar)> */
2742 var_n_opar->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_opar:nullable TOpar(TOpar)> */
2743 RET_LABEL18:(void)0;
2744 }
2745 }
2746 } else {
2747 }
2748 {
2749 { /* Inline parser_nodes#AAnnotations#n_items (self) on <self:AAnnotations> */
2750 var21 = self->attrs[COLOR_nit__parser_nodes__AAnnotations___n_items].val; /* _n_items on <self:AAnnotations> */
2751 if (unlikely(var21 == NULL)) {
2752 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_items");
2753 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2968);
2754 fatal_exit(1);
2755 }
2756 var19 = var21;
2757 RET_LABEL20:(void)0;
2758 }
2759 }
2760 {
2761 nit___nit__ANodes___unsafe_add_all(var19, var_n_items); /* Direct call parser_nodes#ANodes#unsafe_add_all on <var19:ANodes[AAnnotation]>*/
2762 }
2763 self->attrs[COLOR_nit__parser_nodes__AAnnotations___n_cpar].val = var_n_cpar; /* _n_cpar on <self:AAnnotations> */
2764 if (var_n_cpar == NULL) {
2765 var22 = 0; /* is null */
2766 } else {
2767 var22 = 1; /* arg is null and recv is not */
2768 }
2769 if (0) {
2770 { /* Inline kernel#Object#!= (var_n_cpar,((val*)NULL)) on <var_n_cpar:nullable TCpar> */
2771 var_other = ((val*)NULL);
2772 {
2773 var25 = ((short int(*)(val* self, val* p0))(var_n_cpar->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_cpar, var_other); /* == on <var_n_cpar:nullable TCpar(TCpar)>*/
2774 }
2775 var26 = !var25;
2776 var23 = var26;
2777 goto RET_LABEL24;
2778 RET_LABEL24:(void)0;
2779 }
2780 var22 = var23;
2781 }
2782 if (var22){
2783 {
2784 { /* Inline parser_nodes#ANode#parent= (var_n_cpar,self) on <var_n_cpar:nullable TCpar(TCpar)> */
2785 var_n_cpar->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_cpar:nullable TCpar(TCpar)> */
2786 RET_LABEL27:(void)0;
2787 }
2788 }
2789 } else {
2790 }
2791 self->attrs[COLOR_nit__parser_nodes__AAnnotations___n_kwend].val = var_n_kwend; /* _n_kwend on <self:AAnnotations> */
2792 if (var_n_kwend == NULL) {
2793 var28 = 0; /* is null */
2794 } else {
2795 var28 = 1; /* arg is null and recv is not */
2796 }
2797 if (0) {
2798 { /* Inline kernel#Object#!= (var_n_kwend,((val*)NULL)) on <var_n_kwend:nullable TKwend> */
2799 var_other = ((val*)NULL);
2800 {
2801 var31 = ((short int(*)(val* self, val* p0))(var_n_kwend->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_kwend, var_other); /* == on <var_n_kwend:nullable TKwend(TKwend)>*/
2802 }
2803 var32 = !var31;
2804 var29 = var32;
2805 goto RET_LABEL30;
2806 RET_LABEL30:(void)0;
2807 }
2808 var28 = var29;
2809 }
2810 if (var28){
2811 {
2812 { /* Inline parser_nodes#ANode#parent= (var_n_kwend,self) on <var_n_kwend:nullable TKwend(TKwend)> */
2813 var_n_kwend->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwend:nullable TKwend(TKwend)> */
2814 RET_LABEL33:(void)0;
2815 }
2816 }
2817 } else {
2818 }
2819 RET_LABEL:;
2820 }
2821 /* method parser_prod#AAnnotations#replace_child for (self: AAnnotations, ANode, nullable ANode) */
2822 void nit__parser_prod___AAnnotations___nit__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
2823 val* var_old_child /* var old_child: ANode */;
2824 val* var_new_child /* var new_child: nullable ANode */;
2825 val* var /* : nullable TKwis */;
2826 short int var1 /* : Bool */;
2827 short int var2 /* : Bool */;
2828 val* var_other /* var other: nullable Object */;
2829 short int var4 /* : Bool */;
2830 short int var6 /* : Bool */;
2831 short int var7 /* : Bool */;
2832 int cltype;
2833 int idtype;
2834 const char* var_class_name;
2835 val* var8 /* : nullable TAt */;
2836 short int var9 /* : Bool */;
2837 short int var10 /* : Bool */;
2838 short int var12 /* : Bool */;
2839 short int var14 /* : Bool */;
2840 short int var15 /* : Bool */;
2841 int cltype16;
2842 int idtype17;
2843 const char* var_class_name18;
2844 val* var19 /* : nullable TOpar */;
2845 short int var20 /* : Bool */;
2846 short int var21 /* : Bool */;
2847 short int var23 /* : Bool */;
2848 short int var25 /* : Bool */;
2849 short int var26 /* : Bool */;
2850 int cltype27;
2851 int idtype28;
2852 const char* var_class_name29;
2853 val* var30 /* : ANodes[AAnnotation] */;
2854 val* var32 /* : ANodes[AAnnotation] */;
2855 short int var33 /* : Bool */;
2856 val* var34 /* : nullable TCpar */;
2857 short int var35 /* : Bool */;
2858 short int var36 /* : Bool */;
2859 short int var38 /* : Bool */;
2860 short int var40 /* : Bool */;
2861 short int var41 /* : Bool */;
2862 int cltype42;
2863 int idtype43;
2864 const char* var_class_name44;
2865 val* var45 /* : nullable TKwend */;
2866 short int var46 /* : Bool */;
2867 short int var47 /* : Bool */;
2868 short int var49 /* : Bool */;
2869 short int var51 /* : Bool */;
2870 short int var52 /* : Bool */;
2871 int cltype53;
2872 int idtype54;
2873 const char* var_class_name55;
2874 var_old_child = p0;
2875 var_new_child = p1;
2876 var = self->attrs[COLOR_nit__parser_nodes__AAnnotations___n_kwis].val; /* _n_kwis on <self:AAnnotations> */
2877 if (var == NULL) {
2878 var1 = 0; /* <var_old_child:ANode> cannot be null */
2879 } else {
2880 { /* Inline kernel#Object#== (var,var_old_child) on <var:nullable TKwis> */
2881 var_other = var_old_child;
2882 {
2883 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:nullable TKwis(TKwis)> */
2884 var6 = var == var_other;
2885 var4 = var6;
2886 goto RET_LABEL5;
2887 RET_LABEL5:(void)0;
2888 }
2889 }
2890 var2 = var4;
2891 goto RET_LABEL3;
2892 RET_LABEL3:(void)0;
2893 }
2894 var1 = var2;
2895 }
2896 if (var1){
2897 /* <var_new_child:nullable ANode> isa nullable TKwis */
2898 cltype = type_nullable__nit__TKwis.color;
2899 idtype = type_nullable__nit__TKwis.id;
2900 if(var_new_child == NULL) {
2901 var7 = 1;
2902 } else {
2903 if(cltype >= var_new_child->type->table_size) {
2904 var7 = 0;
2905 } else {
2906 var7 = var_new_child->type->type_table[cltype] == idtype;
2907 }
2908 }
2909 if (unlikely(!var7)) {
2910 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
2911 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TKwis", var_class_name);
2912 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8541);
2913 fatal_exit(1);
2914 }
2915 {
2916 nit__parser_prod___AAnnotations___n_kwis_61d(self, var_new_child); /* Direct call parser_prod#AAnnotations#n_kwis= on <self:AAnnotations>*/
2917 }
2918 goto RET_LABEL;
2919 } else {
2920 }
2921 var8 = self->attrs[COLOR_nit__parser_nodes__AAnnotations___n_at].val; /* _n_at on <self:AAnnotations> */
2922 if (var8 == NULL) {
2923 var9 = 0; /* <var_old_child:ANode> cannot be null */
2924 } else {
2925 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:nullable TAt> */
2926 var_other = var_old_child;
2927 {
2928 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:nullable TAt(TAt)> */
2929 var14 = var8 == var_other;
2930 var12 = var14;
2931 goto RET_LABEL13;
2932 RET_LABEL13:(void)0;
2933 }
2934 }
2935 var10 = var12;
2936 goto RET_LABEL11;
2937 RET_LABEL11:(void)0;
2938 }
2939 var9 = var10;
2940 }
2941 if (var9){
2942 /* <var_new_child:nullable ANode> isa nullable TAt */
2943 cltype16 = type_nullable__nit__TAt.color;
2944 idtype17 = type_nullable__nit__TAt.id;
2945 if(var_new_child == NULL) {
2946 var15 = 1;
2947 } else {
2948 if(cltype16 >= var_new_child->type->table_size) {
2949 var15 = 0;
2950 } else {
2951 var15 = var_new_child->type->type_table[cltype16] == idtype17;
2952 }
2953 }
2954 if (unlikely(!var15)) {
2955 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
2956 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TAt", var_class_name18);
2957 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8545);
2958 fatal_exit(1);
2959 }
2960 {
2961 nit__parser_prod___AAnnotations___n_at_61d(self, var_new_child); /* Direct call parser_prod#AAnnotations#n_at= on <self:AAnnotations>*/
2962 }
2963 goto RET_LABEL;
2964 } else {
2965 }
2966 var19 = self->attrs[COLOR_nit__parser_nodes__AAnnotations___n_opar].val; /* _n_opar on <self:AAnnotations> */
2967 if (var19 == NULL) {
2968 var20 = 0; /* <var_old_child:ANode> cannot be null */
2969 } else {
2970 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:nullable TOpar> */
2971 var_other = var_old_child;
2972 {
2973 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:nullable TOpar(TOpar)> */
2974 var25 = var19 == var_other;
2975 var23 = var25;
2976 goto RET_LABEL24;
2977 RET_LABEL24:(void)0;
2978 }
2979 }
2980 var21 = var23;
2981 goto RET_LABEL22;
2982 RET_LABEL22:(void)0;
2983 }
2984 var20 = var21;
2985 }
2986 if (var20){
2987 /* <var_new_child:nullable ANode> isa nullable TOpar */
2988 cltype27 = type_nullable__nit__TOpar.color;
2989 idtype28 = type_nullable__nit__TOpar.id;
2990 if(var_new_child == NULL) {
2991 var26 = 1;
2992 } else {
2993 if(cltype27 >= var_new_child->type->table_size) {
2994 var26 = 0;
2995 } else {
2996 var26 = var_new_child->type->type_table[cltype27] == idtype28;
2997 }
2998 }
2999 if (unlikely(!var26)) {
3000 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
3001 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TOpar", var_class_name29);
3002 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8549);
3003 fatal_exit(1);
3004 }
3005 {
3006 nit__parser_prod___AAnnotations___n_opar_61d(self, var_new_child); /* Direct call parser_prod#AAnnotations#n_opar= on <self:AAnnotations>*/
3007 }
3008 goto RET_LABEL;
3009 } else {
3010 }
3011 {
3012 { /* Inline parser_nodes#AAnnotations#n_items (self) on <self:AAnnotations> */
3013 var32 = self->attrs[COLOR_nit__parser_nodes__AAnnotations___n_items].val; /* _n_items on <self:AAnnotations> */
3014 if (unlikely(var32 == NULL)) {
3015 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_items");
3016 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2968);
3017 fatal_exit(1);
3018 }
3019 var30 = var32;
3020 RET_LABEL31:(void)0;
3021 }
3022 }
3023 {
3024 var33 = nit___nit__ANodes___replace_child(var30, var_old_child, var_new_child);
3025 }
3026 if (var33){
3027 goto RET_LABEL;
3028 } else {
3029 }
3030 var34 = self->attrs[COLOR_nit__parser_nodes__AAnnotations___n_cpar].val; /* _n_cpar on <self:AAnnotations> */
3031 if (var34 == NULL) {
3032 var35 = 0; /* <var_old_child:ANode> cannot be null */
3033 } else {
3034 { /* Inline kernel#Object#== (var34,var_old_child) on <var34:nullable TCpar> */
3035 var_other = var_old_child;
3036 {
3037 { /* Inline kernel#Object#is_same_instance (var34,var_other) on <var34:nullable TCpar(TCpar)> */
3038 var40 = var34 == var_other;
3039 var38 = var40;
3040 goto RET_LABEL39;
3041 RET_LABEL39:(void)0;
3042 }
3043 }
3044 var36 = var38;
3045 goto RET_LABEL37;
3046 RET_LABEL37:(void)0;
3047 }
3048 var35 = var36;
3049 }
3050 if (var35){
3051 /* <var_new_child:nullable ANode> isa nullable TCpar */
3052 cltype42 = type_nullable__nit__TCpar.color;
3053 idtype43 = type_nullable__nit__TCpar.id;
3054 if(var_new_child == NULL) {
3055 var41 = 1;
3056 } else {
3057 if(cltype42 >= var_new_child->type->table_size) {
3058 var41 = 0;
3059 } else {
3060 var41 = var_new_child->type->type_table[cltype42] == idtype43;
3061 }
3062 }
3063 if (unlikely(!var41)) {
3064 var_class_name44 = var_new_child == NULL ? "null" : var_new_child->type->name;
3065 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TCpar", var_class_name44);
3066 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8554);
3067 fatal_exit(1);
3068 }
3069 {
3070 nit__parser_prod___AAnnotations___n_cpar_61d(self, var_new_child); /* Direct call parser_prod#AAnnotations#n_cpar= on <self:AAnnotations>*/
3071 }
3072 goto RET_LABEL;
3073 } else {
3074 }
3075 var45 = self->attrs[COLOR_nit__parser_nodes__AAnnotations___n_kwend].val; /* _n_kwend on <self:AAnnotations> */
3076 if (var45 == NULL) {
3077 var46 = 0; /* <var_old_child:ANode> cannot be null */
3078 } else {
3079 { /* Inline kernel#Object#== (var45,var_old_child) on <var45:nullable TKwend> */
3080 var_other = var_old_child;
3081 {
3082 { /* Inline kernel#Object#is_same_instance (var45,var_other) on <var45:nullable TKwend(TKwend)> */
3083 var51 = var45 == var_other;
3084 var49 = var51;
3085 goto RET_LABEL50;
3086 RET_LABEL50:(void)0;
3087 }
3088 }
3089 var47 = var49;
3090 goto RET_LABEL48;
3091 RET_LABEL48:(void)0;
3092 }
3093 var46 = var47;
3094 }
3095 if (var46){
3096 /* <var_new_child:nullable ANode> isa nullable TKwend */
3097 cltype53 = type_nullable__nit__TKwend.color;
3098 idtype54 = type_nullable__nit__TKwend.id;
3099 if(var_new_child == NULL) {
3100 var52 = 1;
3101 } else {
3102 if(cltype53 >= var_new_child->type->table_size) {
3103 var52 = 0;
3104 } else {
3105 var52 = var_new_child->type->type_table[cltype53] == idtype54;
3106 }
3107 }
3108 if (unlikely(!var52)) {
3109 var_class_name55 = var_new_child == NULL ? "null" : var_new_child->type->name;
3110 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TKwend", var_class_name55);
3111 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8558);
3112 fatal_exit(1);
3113 }
3114 {
3115 nit__parser_prod___AAnnotations___n_kwend_61d(self, var_new_child); /* Direct call parser_prod#AAnnotations#n_kwend= on <self:AAnnotations>*/
3116 }
3117 goto RET_LABEL;
3118 } else {
3119 }
3120 RET_LABEL:;
3121 }
3122 /* method parser_prod#AAnnotations#n_kwis= for (self: AAnnotations, nullable TKwis) */
3123 void nit__parser_prod___AAnnotations___n_kwis_61d(val* self, val* p0) {
3124 val* var_node /* var node: nullable TKwis */;
3125 short int var /* : Bool */;
3126 short int var1 /* : Bool */;
3127 val* var_other /* var other: nullable Object */;
3128 short int var3 /* : Bool */;
3129 short int var4 /* : Bool */;
3130 var_node = p0;
3131 self->attrs[COLOR_nit__parser_nodes__AAnnotations___n_kwis].val = var_node; /* _n_kwis on <self:AAnnotations> */
3132 if (var_node == NULL) {
3133 var = 0; /* is null */
3134 } else {
3135 var = 1; /* arg is null and recv is not */
3136 }
3137 if (0) {
3138 { /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable TKwis> */
3139 var_other = ((val*)NULL);
3140 {
3141 var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable TKwis(TKwis)>*/
3142 }
3143 var4 = !var3;
3144 var1 = var4;
3145 goto RET_LABEL2;
3146 RET_LABEL2:(void)0;
3147 }
3148 var = var1;
3149 }
3150 if (var){
3151 {
3152 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TKwis(TKwis)> */
3153 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TKwis(TKwis)> */
3154 RET_LABEL5:(void)0;
3155 }
3156 }
3157 } else {
3158 }
3159 RET_LABEL:;
3160 }
3161 /* method parser_prod#AAnnotations#n_at= for (self: AAnnotations, nullable TAt) */
3162 void nit__parser_prod___AAnnotations___n_at_61d(val* self, val* p0) {
3163 val* var_node /* var node: nullable TAt */;
3164 short int var /* : Bool */;
3165 short int var1 /* : Bool */;
3166 val* var_other /* var other: nullable Object */;
3167 short int var3 /* : Bool */;
3168 short int var4 /* : Bool */;
3169 var_node = p0;
3170 self->attrs[COLOR_nit__parser_nodes__AAnnotations___n_at].val = var_node; /* _n_at on <self:AAnnotations> */
3171 if (var_node == NULL) {
3172 var = 0; /* is null */
3173 } else {
3174 var = 1; /* arg is null and recv is not */
3175 }
3176 if (0) {
3177 { /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable TAt> */
3178 var_other = ((val*)NULL);
3179 {
3180 var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable TAt(TAt)>*/
3181 }
3182 var4 = !var3;
3183 var1 = var4;
3184 goto RET_LABEL2;
3185 RET_LABEL2:(void)0;
3186 }
3187 var = var1;
3188 }
3189 if (var){
3190 {
3191 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TAt(TAt)> */
3192 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TAt(TAt)> */
3193 RET_LABEL5:(void)0;
3194 }
3195 }
3196 } else {
3197 }
3198 RET_LABEL:;
3199 }
3200 /* method parser_prod#AAnnotations#n_opar= for (self: AAnnotations, nullable TOpar) */
3201 void nit__parser_prod___AAnnotations___n_opar_61d(val* self, val* p0) {
3202 val* var_node /* var node: nullable TOpar */;
3203 short int var /* : Bool */;
3204 short int var1 /* : Bool */;
3205 val* var_other /* var other: nullable Object */;
3206 short int var3 /* : Bool */;
3207 short int var4 /* : Bool */;
3208 var_node = p0;
3209 self->attrs[COLOR_nit__parser_nodes__AAnnotations___n_opar].val = var_node; /* _n_opar on <self:AAnnotations> */
3210 if (var_node == NULL) {
3211 var = 0; /* is null */
3212 } else {
3213 var = 1; /* arg is null and recv is not */
3214 }
3215 if (0) {
3216 { /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable TOpar> */
3217 var_other = ((val*)NULL);
3218 {
3219 var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable TOpar(TOpar)>*/
3220 }
3221 var4 = !var3;
3222 var1 = var4;
3223 goto RET_LABEL2;
3224 RET_LABEL2:(void)0;
3225 }
3226 var = var1;
3227 }
3228 if (var){
3229 {
3230 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TOpar(TOpar)> */
3231 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TOpar(TOpar)> */
3232 RET_LABEL5:(void)0;
3233 }
3234 }
3235 } else {
3236 }
3237 RET_LABEL:;
3238 }
3239 /* method parser_prod#AAnnotations#n_cpar= for (self: AAnnotations, nullable TCpar) */
3240 void nit__parser_prod___AAnnotations___n_cpar_61d(val* self, val* p0) {
3241 val* var_node /* var node: nullable TCpar */;
3242 short int var /* : Bool */;
3243 short int var1 /* : Bool */;
3244 val* var_other /* var other: nullable Object */;
3245 short int var3 /* : Bool */;
3246 short int var4 /* : Bool */;
3247 var_node = p0;
3248 self->attrs[COLOR_nit__parser_nodes__AAnnotations___n_cpar].val = var_node; /* _n_cpar on <self:AAnnotations> */
3249 if (var_node == NULL) {
3250 var = 0; /* is null */
3251 } else {
3252 var = 1; /* arg is null and recv is not */
3253 }
3254 if (0) {
3255 { /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable TCpar> */
3256 var_other = ((val*)NULL);
3257 {
3258 var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable TCpar(TCpar)>*/
3259 }
3260 var4 = !var3;
3261 var1 = var4;
3262 goto RET_LABEL2;
3263 RET_LABEL2:(void)0;
3264 }
3265 var = var1;
3266 }
3267 if (var){
3268 {
3269 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TCpar(TCpar)> */
3270 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TCpar(TCpar)> */
3271 RET_LABEL5:(void)0;
3272 }
3273 }
3274 } else {
3275 }
3276 RET_LABEL:;
3277 }
3278 /* method parser_prod#AAnnotations#n_kwend= for (self: AAnnotations, nullable TKwend) */
3279 void nit__parser_prod___AAnnotations___n_kwend_61d(val* self, val* p0) {
3280 val* var_node /* var node: nullable TKwend */;
3281 short int var /* : Bool */;
3282 short int var1 /* : Bool */;
3283 val* var_other /* var other: nullable Object */;
3284 short int var3 /* : Bool */;
3285 short int var4 /* : Bool */;
3286 var_node = p0;
3287 self->attrs[COLOR_nit__parser_nodes__AAnnotations___n_kwend].val = var_node; /* _n_kwend on <self:AAnnotations> */
3288 if (var_node == NULL) {
3289 var = 0; /* is null */
3290 } else {
3291 var = 1; /* arg is null and recv is not */
3292 }
3293 if (0) {
3294 { /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable TKwend> */
3295 var_other = ((val*)NULL);
3296 {
3297 var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable TKwend(TKwend)>*/
3298 }
3299 var4 = !var3;
3300 var1 = var4;
3301 goto RET_LABEL2;
3302 RET_LABEL2:(void)0;
3303 }
3304 var = var1;
3305 }
3306 if (var){
3307 {
3308 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TKwend(TKwend)> */
3309 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TKwend(TKwend)> */
3310 RET_LABEL5:(void)0;
3311 }
3312 }
3313 } else {
3314 }
3315 RET_LABEL:;
3316 }
3317 /* method parser_prod#AAnnotations#visit_all for (self: AAnnotations, Visitor) */
3318 void nit__parser_prod___AAnnotations___nit__parser_nodes__ANode__visit_all(val* self, val* p0) {
3319 val* var_v /* var v: Visitor */;
3320 val* var /* : nullable TKwis */;
3321 val* var1 /* : nullable TAt */;
3322 val* var2 /* : nullable TOpar */;
3323 val* var3 /* : ANodes[AAnnotation] */;
3324 val* var5 /* : ANodes[AAnnotation] */;
3325 val* var6 /* : nullable TCpar */;
3326 val* var7 /* : nullable TKwend */;
3327 var_v = p0;
3328 var = self->attrs[COLOR_nit__parser_nodes__AAnnotations___n_kwis].val; /* _n_kwis on <self:AAnnotations> */
3329 {
3330 nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3331 }
3332 var1 = self->attrs[COLOR_nit__parser_nodes__AAnnotations___n_at].val; /* _n_at on <self:AAnnotations> */
3333 {
3334 nit___nit__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3335 }
3336 var2 = self->attrs[COLOR_nit__parser_nodes__AAnnotations___n_opar].val; /* _n_opar on <self:AAnnotations> */
3337 {
3338 nit___nit__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3339 }
3340 {
3341 { /* Inline parser_nodes#AAnnotations#n_items (self) on <self:AAnnotations> */
3342 var5 = self->attrs[COLOR_nit__parser_nodes__AAnnotations___n_items].val; /* _n_items on <self:AAnnotations> */
3343 if (unlikely(var5 == NULL)) {
3344 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_items");
3345 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2968);
3346 fatal_exit(1);
3347 }
3348 var3 = var5;
3349 RET_LABEL4:(void)0;
3350 }
3351 }
3352 {
3353 nit___nit__ANodes___visit_all(var3, var_v); /* Direct call parser_nodes#ANodes#visit_all on <var3:ANodes[AAnnotation]>*/
3354 }
3355 var6 = self->attrs[COLOR_nit__parser_nodes__AAnnotations___n_cpar].val; /* _n_cpar on <self:AAnnotations> */
3356 {
3357 nit___nit__Visitor___enter_visit(var_v, var6); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3358 }
3359 var7 = self->attrs[COLOR_nit__parser_nodes__AAnnotations___n_kwend].val; /* _n_kwend on <self:AAnnotations> */
3360 {
3361 nit___nit__Visitor___enter_visit(var_v, var7); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3362 }
3363 RET_LABEL:;
3364 }
3365 /* method parser_prod#AAnnotation#init_aannotation for (self: AAnnotation, nullable ADoc, nullable TKwredef, nullable AVisibility, nullable AAtid, nullable TOpar, Collection[Object], nullable TCpar, nullable AAnnotations) */
3366 void nit__parser_prod___AAnnotation___init_aannotation(val* self, val* p0, val* p1, val* p2, val* p3, val* p4, val* p5, val* p6, val* p7) {
3367 val* var_n_doc /* var n_doc: nullable ADoc */;
3368 val* var_n_kwredef /* var n_kwredef: nullable TKwredef */;
3369 val* var_n_visibility /* var n_visibility: nullable AVisibility */;
3370 val* var_n_atid /* var n_atid: nullable AAtid */;
3371 val* var_n_opar /* var n_opar: nullable TOpar */;
3372 val* var_n_args /* var n_args: Collection[Object] */;
3373 val* var_n_cpar /* var n_cpar: nullable TCpar */;
3374 val* var_n_annotations /* var n_annotations: nullable AAnnotations */;
3375 short int var /* : Bool */;
3376 short int var2 /* : Bool */;
3377 val* var_other /* var other: nullable Object */;
3378 short int var4 /* : Bool */;
3379 short int var5 /* : Bool */;
3380 short int var7 /* : Bool */;
3381 short int var8 /* : Bool */;
3382 short int var10 /* : Bool */;
3383 short int var11 /* : Bool */;
3384 short int var13 /* : Bool */;
3385 short int var14 /* : Bool */;
3386 short int var16 /* : Bool */;
3387 short int var17 /* : Bool */;
3388 short int var20 /* : Bool */;
3389 short int var21 /* : Bool */;
3390 short int var23 /* : Bool */;
3391 short int var24 /* : Bool */;
3392 val* var26 /* : ANodes[AExpr] */;
3393 val* var28 /* : ANodes[AExpr] */;
3394 short int var29 /* : Bool */;
3395 short int var30 /* : Bool */;
3396 short int var32 /* : Bool */;
3397 short int var33 /* : Bool */;
3398 short int var35 /* : Bool */;
3399 short int var36 /* : Bool */;
3400 short int var38 /* : Bool */;
3401 short int var39 /* : Bool */;
3402 {
3403 { /* Inline kernel#Object#init (self) on <self:AAnnotation> */
3404 RET_LABEL1:(void)0;
3405 }
3406 }
3407 var_n_doc = p0;
3408 var_n_kwredef = p1;
3409 var_n_visibility = p2;
3410 var_n_atid = p3;
3411 var_n_opar = p4;
3412 var_n_args = p5;
3413 var_n_cpar = p6;
3414 var_n_annotations = p7;
3415 self->attrs[COLOR_nit__parser_nodes__ADefinition___n_doc].val = var_n_doc; /* _n_doc on <self:AAnnotation> */
3416 if (var_n_doc == NULL) {
3417 var = 0; /* is null */
3418 } else {
3419 var = 1; /* arg is null and recv is not */
3420 }
3421 if (0) {
3422 { /* Inline kernel#Object#!= (var_n_doc,((val*)NULL)) on <var_n_doc:nullable ADoc> */
3423 var_other = ((val*)NULL);
3424 {
3425 var4 = ((short int(*)(val* self, val* p0))(var_n_doc->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_doc, var_other); /* == on <var_n_doc:nullable ADoc(ADoc)>*/
3426 }
3427 var5 = !var4;
3428 var2 = var5;
3429 goto RET_LABEL3;
3430 RET_LABEL3:(void)0;
3431 }
3432 var = var2;
3433 }
3434 if (var){
3435 {
3436 { /* Inline parser_nodes#ANode#parent= (var_n_doc,self) on <var_n_doc:nullable ADoc(ADoc)> */
3437 var_n_doc->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_doc:nullable ADoc(ADoc)> */
3438 RET_LABEL6:(void)0;
3439 }
3440 }
3441 } else {
3442 }
3443 self->attrs[COLOR_nit__parser_nodes__ADefinition___n_kwredef].val = var_n_kwredef; /* _n_kwredef on <self:AAnnotation> */
3444 if (var_n_kwredef == NULL) {
3445 var7 = 0; /* is null */
3446 } else {
3447 var7 = 1; /* arg is null and recv is not */
3448 }
3449 if (0) {
3450 { /* Inline kernel#Object#!= (var_n_kwredef,((val*)NULL)) on <var_n_kwredef:nullable TKwredef> */
3451 var_other = ((val*)NULL);
3452 {
3453 var10 = ((short int(*)(val* self, val* p0))(var_n_kwredef->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_kwredef, var_other); /* == on <var_n_kwredef:nullable TKwredef(TKwredef)>*/
3454 }
3455 var11 = !var10;
3456 var8 = var11;
3457 goto RET_LABEL9;
3458 RET_LABEL9:(void)0;
3459 }
3460 var7 = var8;
3461 }
3462 if (var7){
3463 {
3464 { /* Inline parser_nodes#ANode#parent= (var_n_kwredef,self) on <var_n_kwredef:nullable TKwredef(TKwredef)> */
3465 var_n_kwredef->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwredef:nullable TKwredef(TKwredef)> */
3466 RET_LABEL12:(void)0;
3467 }
3468 }
3469 } else {
3470 }
3471 self->attrs[COLOR_nit__parser_nodes__ADefinition___n_visibility].val = var_n_visibility; /* _n_visibility on <self:AAnnotation> */
3472 if (var_n_visibility == NULL) {
3473 var13 = 0; /* is null */
3474 } else {
3475 var13 = 1; /* arg is null and recv is not */
3476 }
3477 if (0) {
3478 { /* Inline kernel#Object#!= (var_n_visibility,((val*)NULL)) on <var_n_visibility:nullable AVisibility> */
3479 var_other = ((val*)NULL);
3480 {
3481 var16 = ((short int(*)(val* self, val* p0))(var_n_visibility->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_visibility, var_other); /* == on <var_n_visibility:nullable AVisibility(AVisibility)>*/
3482 }
3483 var17 = !var16;
3484 var14 = var17;
3485 goto RET_LABEL15;
3486 RET_LABEL15:(void)0;
3487 }
3488 var13 = var14;
3489 }
3490 if (var13){
3491 {
3492 { /* Inline parser_nodes#ANode#parent= (var_n_visibility,self) on <var_n_visibility:nullable AVisibility(AVisibility)> */
3493 var_n_visibility->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_visibility:nullable AVisibility(AVisibility)> */
3494 RET_LABEL18:(void)0;
3495 }
3496 }
3497 } else {
3498 }
3499 if (unlikely(var_n_atid == NULL)) {
3500 PRINT_ERROR("Runtime error: %s", "Cast failed");
3501 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8618);
3502 fatal_exit(1);
3503 }
3504 self->attrs[COLOR_nit__parser_nodes__AAnnotation___n_atid].val = var_n_atid; /* _n_atid on <self:AAnnotation> */
3505 if (var_n_atid == NULL) {
3506 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3507 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8619);
3508 fatal_exit(1);
3509 } else {
3510 { /* Inline parser_nodes#ANode#parent= (var_n_atid,self) on <var_n_atid:nullable AAtid> */
3511 if (unlikely(var_n_atid == NULL)) {
3512 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3513 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
3514 fatal_exit(1);
3515 }
3516 var_n_atid->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_atid:nullable AAtid> */
3517 RET_LABEL19:(void)0;
3518 }
3519 }
3520 self->attrs[COLOR_nit__parser_nodes__AAnnotation___n_opar].val = var_n_opar; /* _n_opar on <self:AAnnotation> */
3521 if (var_n_opar == NULL) {
3522 var20 = 0; /* is null */
3523 } else {
3524 var20 = 1; /* arg is null and recv is not */
3525 }
3526 if (0) {
3527 { /* Inline kernel#Object#!= (var_n_opar,((val*)NULL)) on <var_n_opar:nullable TOpar> */
3528 var_other = ((val*)NULL);
3529 {
3530 var23 = ((short int(*)(val* self, val* p0))(var_n_opar->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_opar, var_other); /* == on <var_n_opar:nullable TOpar(TOpar)>*/
3531 }
3532 var24 = !var23;
3533 var21 = var24;
3534 goto RET_LABEL22;
3535 RET_LABEL22:(void)0;
3536 }
3537 var20 = var21;
3538 }
3539 if (var20){
3540 {
3541 { /* Inline parser_nodes#ANode#parent= (var_n_opar,self) on <var_n_opar:nullable TOpar(TOpar)> */
3542 var_n_opar->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_opar:nullable TOpar(TOpar)> */
3543 RET_LABEL25:(void)0;
3544 }
3545 }
3546 } else {
3547 }
3548 {
3549 { /* Inline parser_nodes#AAnnotation#n_args (self) on <self:AAnnotation> */
3550 var28 = self->attrs[COLOR_nit__parser_nodes__AAnnotation___n_args].val; /* _n_args on <self:AAnnotation> */
3551 if (unlikely(var28 == NULL)) {
3552 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
3553 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2988);
3554 fatal_exit(1);
3555 }
3556 var26 = var28;
3557 RET_LABEL27:(void)0;
3558 }
3559 }
3560 {
3561 nit___nit__ANodes___unsafe_add_all(var26, var_n_args); /* Direct call parser_nodes#ANodes#unsafe_add_all on <var26:ANodes[AExpr]>*/
3562 }
3563 self->attrs[COLOR_nit__parser_nodes__AAnnotation___n_cpar].val = var_n_cpar; /* _n_cpar on <self:AAnnotation> */
3564 if (var_n_cpar == NULL) {
3565 var29 = 0; /* is null */
3566 } else {
3567 var29 = 1; /* arg is null and recv is not */
3568 }
3569 if (0) {
3570 { /* Inline kernel#Object#!= (var_n_cpar,((val*)NULL)) on <var_n_cpar:nullable TCpar> */
3571 var_other = ((val*)NULL);
3572 {
3573 var32 = ((short int(*)(val* self, val* p0))(var_n_cpar->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_cpar, var_other); /* == on <var_n_cpar:nullable TCpar(TCpar)>*/
3574 }
3575 var33 = !var32;
3576 var30 = var33;
3577 goto RET_LABEL31;
3578 RET_LABEL31:(void)0;
3579 }
3580 var29 = var30;
3581 }
3582 if (var29){
3583 {
3584 { /* Inline parser_nodes#ANode#parent= (var_n_cpar,self) on <var_n_cpar:nullable TCpar(TCpar)> */
3585 var_n_cpar->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_cpar:nullable TCpar(TCpar)> */
3586 RET_LABEL34:(void)0;
3587 }
3588 }
3589 } else {
3590 }
3591 self->attrs[COLOR_nit__parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:AAnnotation> */
3592 if (var_n_annotations == NULL) {
3593 var35 = 0; /* is null */
3594 } else {
3595 var35 = 1; /* arg is null and recv is not */
3596 }
3597 if (0) {
3598 { /* Inline kernel#Object#!= (var_n_annotations,((val*)NULL)) on <var_n_annotations:nullable AAnnotations> */
3599 var_other = ((val*)NULL);
3600 {
3601 var38 = ((short int(*)(val* self, val* p0))(var_n_annotations->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_annotations, var_other); /* == on <var_n_annotations:nullable AAnnotations(AAnnotations)>*/
3602 }
3603 var39 = !var38;
3604 var36 = var39;
3605 goto RET_LABEL37;
3606 RET_LABEL37:(void)0;
3607 }
3608 var35 = var36;
3609 }
3610 if (var35){
3611 {
3612 { /* Inline parser_nodes#ANode#parent= (var_n_annotations,self) on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
3613 var_n_annotations->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
3614 RET_LABEL40:(void)0;
3615 }
3616 }
3617 } else {
3618 }
3619 RET_LABEL:;
3620 }
3621 /* method parser_prod#AAnnotation#replace_child for (self: AAnnotation, ANode, nullable ANode) */
3622 void nit__parser_prod___AAnnotation___nit__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
3623 val* var_old_child /* var old_child: ANode */;
3624 val* var_new_child /* var new_child: nullable ANode */;
3625 val* var /* : nullable ADoc */;
3626 short int var1 /* : Bool */;
3627 short int var2 /* : Bool */;
3628 val* var_other /* var other: nullable Object */;
3629 short int var4 /* : Bool */;
3630 short int var6 /* : Bool */;
3631 short int var7 /* : Bool */;
3632 int cltype;
3633 int idtype;
3634 const char* var_class_name;
3635 val* var8 /* : nullable TKwredef */;
3636 short int var9 /* : Bool */;
3637 short int var10 /* : Bool */;
3638 short int var12 /* : Bool */;
3639 short int var14 /* : Bool */;
3640 short int var15 /* : Bool */;
3641 int cltype16;
3642 int idtype17;
3643 const char* var_class_name18;
3644 val* var19 /* : nullable AVisibility */;
3645 short int var20 /* : Bool */;
3646 short int var21 /* : Bool */;
3647 short int var23 /* : Bool */;
3648 short int var25 /* : Bool */;
3649 short int var26 /* : Bool */;
3650 int cltype27;
3651 int idtype28;
3652 const char* var_class_name29;
3653 val* var30 /* : AAtid */;
3654 short int var31 /* : Bool */;
3655 short int var33 /* : Bool */;
3656 short int var35 /* : Bool */;
3657 short int var36 /* : Bool */;
3658 int cltype37;
3659 int idtype38;
3660 const char* var_class_name39;
3661 val* var40 /* : nullable TOpar */;
3662 short int var41 /* : Bool */;
3663 short int var42 /* : Bool */;
3664 short int var44 /* : Bool */;
3665 short int var46 /* : Bool */;
3666 short int var47 /* : Bool */;
3667 int cltype48;
3668 int idtype49;
3669 const char* var_class_name50;
3670 val* var51 /* : ANodes[AExpr] */;
3671 val* var53 /* : ANodes[AExpr] */;
3672 short int var54 /* : Bool */;
3673 val* var55 /* : nullable TCpar */;
3674 short int var56 /* : Bool */;
3675 short int var57 /* : Bool */;
3676 short int var59 /* : Bool */;
3677 short int var61 /* : Bool */;
3678 short int var62 /* : Bool */;
3679 int cltype63;
3680 int idtype64;
3681 const char* var_class_name65;
3682 val* var66 /* : nullable AAnnotations */;
3683 short int var67 /* : Bool */;
3684 short int var68 /* : Bool */;
3685 short int var70 /* : Bool */;
3686 short int var72 /* : Bool */;
3687 short int var73 /* : Bool */;
3688 int cltype74;
3689 int idtype75;
3690 const char* var_class_name76;
3691 var_old_child = p0;
3692 var_new_child = p1;
3693 var = self->attrs[COLOR_nit__parser_nodes__ADefinition___n_doc].val; /* _n_doc on <self:AAnnotation> */
3694 if (var == NULL) {
3695 var1 = 0; /* <var_old_child:ANode> cannot be null */
3696 } else {
3697 { /* Inline kernel#Object#== (var,var_old_child) on <var:nullable ADoc> */
3698 var_other = var_old_child;
3699 {
3700 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:nullable ADoc(ADoc)> */
3701 var6 = var == var_other;
3702 var4 = var6;
3703 goto RET_LABEL5;
3704 RET_LABEL5:(void)0;
3705 }
3706 }
3707 var2 = var4;
3708 goto RET_LABEL3;
3709 RET_LABEL3:(void)0;
3710 }
3711 var1 = var2;
3712 }
3713 if (var1){
3714 /* <var_new_child:nullable ANode> isa nullable ADoc */
3715 cltype = type_nullable__nit__ADoc.color;
3716 idtype = type_nullable__nit__ADoc.id;
3717 if(var_new_child == NULL) {
3718 var7 = 1;
3719 } else {
3720 if(cltype >= var_new_child->type->table_size) {
3721 var7 = 0;
3722 } else {
3723 var7 = var_new_child->type->type_table[cltype] == idtype;
3724 }
3725 }
3726 if (unlikely(!var7)) {
3727 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
3728 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ADoc", var_class_name);
3729 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8632);
3730 fatal_exit(1);
3731 }
3732 {
3733 ((void(*)(val* self, val* p0))(self->class->vft[COLOR_nit__parser_nodes__ADefinition__n_doc_61d]))(self, var_new_child); /* n_doc= on <self:AAnnotation>*/
3734 }
3735 goto RET_LABEL;
3736 } else {
3737 }
3738 var8 = self->attrs[COLOR_nit__parser_nodes__ADefinition___n_kwredef].val; /* _n_kwredef on <self:AAnnotation> */
3739 if (var8 == NULL) {
3740 var9 = 0; /* <var_old_child:ANode> cannot be null */
3741 } else {
3742 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:nullable TKwredef> */
3743 var_other = var_old_child;
3744 {
3745 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:nullable TKwredef(TKwredef)> */
3746 var14 = var8 == var_other;
3747 var12 = var14;
3748 goto RET_LABEL13;
3749 RET_LABEL13:(void)0;
3750 }
3751 }
3752 var10 = var12;
3753 goto RET_LABEL11;
3754 RET_LABEL11:(void)0;
3755 }
3756 var9 = var10;
3757 }
3758 if (var9){
3759 /* <var_new_child:nullable ANode> isa nullable TKwredef */
3760 cltype16 = type_nullable__nit__TKwredef.color;
3761 idtype17 = type_nullable__nit__TKwredef.id;
3762 if(var_new_child == NULL) {
3763 var15 = 1;
3764 } else {
3765 if(cltype16 >= var_new_child->type->table_size) {
3766 var15 = 0;
3767 } else {
3768 var15 = var_new_child->type->type_table[cltype16] == idtype17;
3769 }
3770 }
3771 if (unlikely(!var15)) {
3772 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
3773 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TKwredef", var_class_name18);
3774 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8636);
3775 fatal_exit(1);
3776 }
3777 {
3778 ((void(*)(val* self, val* p0))(self->class->vft[COLOR_nit__parser_nodes__ADefinition__n_kwredef_61d]))(self, var_new_child); /* n_kwredef= on <self:AAnnotation>*/
3779 }
3780 goto RET_LABEL;
3781 } else {
3782 }
3783 var19 = self->attrs[COLOR_nit__parser_nodes__ADefinition___n_visibility].val; /* _n_visibility on <self:AAnnotation> */
3784 if (var19 == NULL) {
3785 var20 = 0; /* <var_old_child:ANode> cannot be null */
3786 } else {
3787 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:nullable AVisibility> */
3788 var_other = var_old_child;
3789 {
3790 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:nullable AVisibility(AVisibility)> */
3791 var25 = var19 == var_other;
3792 var23 = var25;
3793 goto RET_LABEL24;
3794 RET_LABEL24:(void)0;
3795 }
3796 }
3797 var21 = var23;
3798 goto RET_LABEL22;
3799 RET_LABEL22:(void)0;
3800 }
3801 var20 = var21;
3802 }
3803 if (var20){
3804 /* <var_new_child:nullable ANode> isa nullable AVisibility */
3805 cltype27 = type_nullable__nit__AVisibility.color;
3806 idtype28 = type_nullable__nit__AVisibility.id;
3807 if(var_new_child == NULL) {
3808 var26 = 1;
3809 } else {
3810 if(cltype27 >= var_new_child->type->table_size) {
3811 var26 = 0;
3812 } else {
3813 var26 = var_new_child->type->type_table[cltype27] == idtype28;
3814 }
3815 }
3816 if (unlikely(!var26)) {
3817 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
3818 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AVisibility", var_class_name29);
3819 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8640);
3820 fatal_exit(1);
3821 }
3822 {
3823 ((void(*)(val* self, val* p0))(self->class->vft[COLOR_nit__parser_nodes__ADefinition__n_visibility_61d]))(self, var_new_child); /* n_visibility= on <self:AAnnotation>*/
3824 }
3825 goto RET_LABEL;
3826 } else {
3827 }
3828 var30 = self->attrs[COLOR_nit__parser_nodes__AAnnotation___n_atid].val; /* _n_atid on <self:AAnnotation> */
3829 if (unlikely(var30 == NULL)) {
3830 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_atid");
3831 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8643);
3832 fatal_exit(1);
3833 }
3834 {
3835 { /* Inline kernel#Object#== (var30,var_old_child) on <var30:AAtid> */
3836 var_other = var_old_child;
3837 {
3838 { /* Inline kernel#Object#is_same_instance (var30,var_other) on <var30:AAtid> */
3839 var35 = var30 == var_other;
3840 var33 = var35;
3841 goto RET_LABEL34;
3842 RET_LABEL34:(void)0;
3843 }
3844 }
3845 var31 = var33;
3846 goto RET_LABEL32;
3847 RET_LABEL32:(void)0;
3848 }
3849 }
3850 if (var31){
3851 /* <var_new_child:nullable ANode> isa AAtid */
3852 cltype37 = type_nit__AAtid.color;
3853 idtype38 = type_nit__AAtid.id;
3854 if(var_new_child == NULL) {
3855 var36 = 0;
3856 } else {
3857 if(cltype37 >= var_new_child->type->table_size) {
3858 var36 = 0;
3859 } else {
3860 var36 = var_new_child->type->type_table[cltype37] == idtype38;
3861 }
3862 }
3863 if (unlikely(!var36)) {
3864 var_class_name39 = var_new_child == NULL ? "null" : var_new_child->type->name;
3865 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AAtid", var_class_name39);
3866 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8644);
3867 fatal_exit(1);
3868 }
3869 {
3870 ((void(*)(val* self, val* p0))(self->class->vft[COLOR_nit__parser_nodes__AAnnotation__n_atid_61d]))(self, var_new_child); /* n_atid= on <self:AAnnotation>*/
3871 }
3872 goto RET_LABEL;
3873 } else {
3874 }
3875 var40 = self->attrs[COLOR_nit__parser_nodes__AAnnotation___n_opar].val; /* _n_opar on <self:AAnnotation> */
3876 if (var40 == NULL) {
3877 var41 = 0; /* <var_old_child:ANode> cannot be null */
3878 } else {
3879 { /* Inline kernel#Object#== (var40,var_old_child) on <var40:nullable TOpar> */
3880 var_other = var_old_child;
3881 {
3882 { /* Inline kernel#Object#is_same_instance (var40,var_other) on <var40:nullable TOpar(TOpar)> */
3883 var46 = var40 == var_other;
3884 var44 = var46;
3885 goto RET_LABEL45;
3886 RET_LABEL45:(void)0;
3887 }
3888 }
3889 var42 = var44;
3890 goto RET_LABEL43;
3891 RET_LABEL43:(void)0;
3892 }
3893 var41 = var42;
3894 }
3895 if (var41){
3896 /* <var_new_child:nullable ANode> isa nullable TOpar */
3897 cltype48 = type_nullable__nit__TOpar.color;
3898 idtype49 = type_nullable__nit__TOpar.id;
3899 if(var_new_child == NULL) {
3900 var47 = 1;
3901 } else {
3902 if(cltype48 >= var_new_child->type->table_size) {
3903 var47 = 0;
3904 } else {
3905 var47 = var_new_child->type->type_table[cltype48] == idtype49;
3906 }
3907 }
3908 if (unlikely(!var47)) {
3909 var_class_name50 = var_new_child == NULL ? "null" : var_new_child->type->name;
3910 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TOpar", var_class_name50);
3911 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8648);
3912 fatal_exit(1);
3913 }
3914 {
3915 ((void(*)(val* self, val* p0))(self->class->vft[COLOR_nit__parser_nodes__AAnnotation__n_opar_61d]))(self, var_new_child); /* n_opar= on <self:AAnnotation>*/
3916 }
3917 goto RET_LABEL;
3918 } else {
3919 }
3920 {
3921 { /* Inline parser_nodes#AAnnotation#n_args (self) on <self:AAnnotation> */
3922 var53 = self->attrs[COLOR_nit__parser_nodes__AAnnotation___n_args].val; /* _n_args on <self:AAnnotation> */
3923 if (unlikely(var53 == NULL)) {
3924 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
3925 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2988);
3926 fatal_exit(1);
3927 }
3928 var51 = var53;
3929 RET_LABEL52:(void)0;
3930 }
3931 }
3932 {
3933 var54 = nit___nit__ANodes___replace_child(var51, var_old_child, var_new_child);
3934 }
3935 if (var54){
3936 goto RET_LABEL;
3937 } else {
3938 }
3939 var55 = self->attrs[COLOR_nit__parser_nodes__AAnnotation___n_cpar].val; /* _n_cpar on <self:AAnnotation> */
3940 if (var55 == NULL) {
3941 var56 = 0; /* <var_old_child:ANode> cannot be null */
3942 } else {
3943 { /* Inline kernel#Object#== (var55,var_old_child) on <var55:nullable TCpar> */
3944 var_other = var_old_child;
3945 {
3946 { /* Inline kernel#Object#is_same_instance (var55,var_other) on <var55:nullable TCpar(TCpar)> */
3947 var61 = var55 == var_other;
3948 var59 = var61;
3949 goto RET_LABEL60;
3950 RET_LABEL60:(void)0;
3951 }
3952 }
3953 var57 = var59;
3954 goto RET_LABEL58;
3955 RET_LABEL58:(void)0;
3956 }
3957 var56 = var57;
3958 }
3959 if (var56){
3960 /* <var_new_child:nullable ANode> isa nullable TCpar */
3961 cltype63 = type_nullable__nit__TCpar.color;
3962 idtype64 = type_nullable__nit__TCpar.id;
3963 if(var_new_child == NULL) {
3964 var62 = 1;
3965 } else {
3966 if(cltype63 >= var_new_child->type->table_size) {
3967 var62 = 0;
3968 } else {
3969 var62 = var_new_child->type->type_table[cltype63] == idtype64;
3970 }
3971 }
3972 if (unlikely(!var62)) {
3973 var_class_name65 = var_new_child == NULL ? "null" : var_new_child->type->name;
3974 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TCpar", var_class_name65);
3975 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8653);
3976 fatal_exit(1);
3977 }
3978 {
3979 ((void(*)(val* self, val* p0))(self->class->vft[COLOR_nit__parser_nodes__AAnnotation__n_cpar_61d]))(self, var_new_child); /* n_cpar= on <self:AAnnotation>*/
3980 }
3981 goto RET_LABEL;
3982 } else {
3983 }
3984 var66 = self->attrs[COLOR_nit__parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AAnnotation> */
3985 if (var66 == NULL) {
3986 var67 = 0; /* <var_old_child:ANode> cannot be null */
3987 } else {
3988 { /* Inline kernel#Object#== (var66,var_old_child) on <var66:nullable AAnnotations> */
3989 var_other = var_old_child;
3990 {
3991 { /* Inline kernel#Object#is_same_instance (var66,var_other) on <var66:nullable AAnnotations(AAnnotations)> */
3992 var72 = var66 == var_other;
3993 var70 = var72;
3994 goto RET_LABEL71;
3995 RET_LABEL71:(void)0;
3996 }
3997 }
3998 var68 = var70;
3999 goto RET_LABEL69;
4000 RET_LABEL69:(void)0;
4001 }
4002 var67 = var68;
4003 }
4004 if (var67){
4005 /* <var_new_child:nullable ANode> isa nullable AAnnotations */
4006 cltype74 = type_nullable__nit__AAnnotations.color;
4007 idtype75 = type_nullable__nit__AAnnotations.id;
4008 if(var_new_child == NULL) {
4009 var73 = 1;
4010 } else {
4011 if(cltype74 >= var_new_child->type->table_size) {
4012 var73 = 0;
4013 } else {
4014 var73 = var_new_child->type->type_table[cltype74] == idtype75;
4015 }
4016 }
4017 if (unlikely(!var73)) {
4018 var_class_name76 = var_new_child == NULL ? "null" : var_new_child->type->name;
4019 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AAnnotations", var_class_name76);
4020 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8657);
4021 fatal_exit(1);
4022 }
4023 {
4024 ((void(*)(val* self, val* p0))(self->class->vft[COLOR_nit__parser_nodes__Prod__n_annotations_61d]))(self, var_new_child); /* n_annotations= on <self:AAnnotation>*/
4025 }
4026 goto RET_LABEL;
4027 } else {
4028 }
4029 RET_LABEL:;
4030 }
4031 /* method parser_prod#AAnnotation#n_doc= for (self: AAnnotation, nullable ADoc) */
4032 void nit__parser_prod___AAnnotation___nit__parser_nodes__ADefinition__n_doc_61d(val* self, val* p0) {
4033 val* var_node /* var node: nullable ADoc */;
4034 short int var /* : Bool */;
4035 short int var1 /* : Bool */;
4036 val* var_other /* var other: nullable Object */;
4037 short int var3 /* : Bool */;
4038 short int var4 /* : Bool */;
4039 var_node = p0;
4040 self->attrs[COLOR_nit__parser_nodes__ADefinition___n_doc].val = var_node; /* _n_doc on <self:AAnnotation> */
4041 if (var_node == NULL) {
4042 var = 0; /* is null */
4043 } else {
4044 var = 1; /* arg is null and recv is not */
4045 }
4046 if (0) {
4047 { /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable ADoc> */
4048 var_other = ((val*)NULL);
4049 {
4050 var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable ADoc(ADoc)>*/
4051 }
4052 var4 = !var3;
4053 var1 = var4;
4054 goto RET_LABEL2;
4055 RET_LABEL2:(void)0;
4056 }
4057 var = var1;
4058 }
4059 if (var){
4060 {
4061 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable ADoc(ADoc)> */
4062 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable ADoc(ADoc)> */
4063 RET_LABEL5:(void)0;
4064 }
4065 }
4066 } else {
4067 }
4068 RET_LABEL:;
4069 }
4070 /* method parser_prod#AAnnotation#n_kwredef= for (self: AAnnotation, nullable TKwredef) */
4071 void nit__parser_prod___AAnnotation___nit__parser_nodes__ADefinition__n_kwredef_61d(val* self, val* p0) {
4072 val* var_node /* var node: nullable TKwredef */;
4073 short int var /* : Bool */;
4074 short int var1 /* : Bool */;
4075 val* var_other /* var other: nullable Object */;
4076 short int var3 /* : Bool */;
4077 short int var4 /* : Bool */;
4078 var_node = p0;
4079 self->attrs[COLOR_nit__parser_nodes__ADefinition___n_kwredef].val = var_node; /* _n_kwredef on <self:AAnnotation> */
4080 if (var_node == NULL) {
4081 var = 0; /* is null */
4082 } else {
4083 var = 1; /* arg is null and recv is not */
4084 }
4085 if (0) {
4086 { /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable TKwredef> */
4087 var_other = ((val*)NULL);
4088 {
4089 var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable TKwredef(TKwredef)>*/
4090 }
4091 var4 = !var3;
4092 var1 = var4;
4093 goto RET_LABEL2;
4094 RET_LABEL2:(void)0;
4095 }
4096 var = var1;
4097 }
4098 if (var){
4099 {
4100 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TKwredef(TKwredef)> */
4101 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TKwredef(TKwredef)> */
4102 RET_LABEL5:(void)0;
4103 }
4104 }
4105 } else {
4106 }
4107 RET_LABEL:;
4108 }
4109 /* method parser_prod#AAnnotation#n_visibility= for (self: AAnnotation, nullable AVisibility) */
4110 void nit__parser_prod___AAnnotation___nit__parser_nodes__ADefinition__n_visibility_61d(val* self, val* p0) {
4111 val* var_node /* var node: nullable AVisibility */;
4112 short int var /* : Bool */;
4113 short int var1 /* : Bool */;
4114 val* var_other /* var other: nullable Object */;
4115 short int var3 /* : Bool */;
4116 short int var4 /* : Bool */;
4117 var_node = p0;
4118 self->attrs[COLOR_nit__parser_nodes__ADefinition___n_visibility].val = var_node; /* _n_visibility on <self:AAnnotation> */
4119 if (var_node == NULL) {
4120 var = 0; /* is null */
4121 } else {
4122 var = 1; /* arg is null and recv is not */
4123 }
4124 if (0) {
4125 { /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable AVisibility> */
4126 var_other = ((val*)NULL);
4127 {
4128 var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable AVisibility(AVisibility)>*/
4129 }
4130 var4 = !var3;
4131 var1 = var4;
4132 goto RET_LABEL2;
4133 RET_LABEL2:(void)0;
4134 }
4135 var = var1;
4136 }
4137 if (var){
4138 {
4139 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AVisibility(AVisibility)> */
4140 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AVisibility(AVisibility)> */
4141 RET_LABEL5:(void)0;
4142 }
4143 }
4144 } else {
4145 }
4146 RET_LABEL:;
4147 }
4148 /* method parser_prod#AAnnotation#n_atid= for (self: AAnnotation, AAtid) */
4149 void nit__parser_prod___AAnnotation___n_atid_61d(val* self, val* p0) {
4150 val* var_node /* var node: AAtid */;
4151 var_node = p0;
4152 self->attrs[COLOR_nit__parser_nodes__AAnnotation___n_atid].val = var_node; /* _n_atid on <self:AAnnotation> */
4153 {
4154 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AAtid> */
4155 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AAtid> */
4156 RET_LABEL1:(void)0;
4157 }
4158 }
4159 RET_LABEL:;
4160 }
4161 /* method parser_prod#AAnnotation#n_opar= for (self: AAnnotation, nullable TOpar) */
4162 void nit__parser_prod___AAnnotation___n_opar_61d(val* self, val* p0) {
4163 val* var_node /* var node: nullable TOpar */;
4164 short int var /* : Bool */;
4165 short int var1 /* : Bool */;
4166 val* var_other /* var other: nullable Object */;
4167 short int var3 /* : Bool */;
4168 short int var4 /* : Bool */;
4169 var_node = p0;
4170 self->attrs[COLOR_nit__parser_nodes__AAnnotation___n_opar].val = var_node; /* _n_opar on <self:AAnnotation> */
4171 if (var_node == NULL) {
4172 var = 0; /* is null */
4173 } else {
4174 var = 1; /* arg is null and recv is not */
4175 }
4176 if (0) {
4177 { /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable TOpar> */
4178 var_other = ((val*)NULL);
4179 {
4180 var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable TOpar(TOpar)>*/
4181 }
4182 var4 = !var3;
4183 var1 = var4;
4184 goto RET_LABEL2;
4185 RET_LABEL2:(void)0;
4186 }
4187 var = var1;
4188 }
4189 if (var){
4190 {
4191 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TOpar(TOpar)> */
4192 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TOpar(TOpar)> */
4193 RET_LABEL5:(void)0;
4194 }
4195 }
4196 } else {
4197 }
4198 RET_LABEL:;
4199 }
4200 /* method parser_prod#AAnnotation#n_cpar= for (self: AAnnotation, nullable TCpar) */
4201 void nit__parser_prod___AAnnotation___n_cpar_61d(val* self, val* p0) {
4202 val* var_node /* var node: nullable TCpar */;
4203 short int var /* : Bool */;
4204 short int var1 /* : Bool */;
4205 val* var_other /* var other: nullable Object */;
4206 short int var3 /* : Bool */;
4207 short int var4 /* : Bool */;
4208 var_node = p0;
4209 self->attrs[COLOR_nit__parser_nodes__AAnnotation___n_cpar].val = var_node; /* _n_cpar on <self:AAnnotation> */
4210 if (var_node == NULL) {
4211 var = 0; /* is null */
4212 } else {
4213 var = 1; /* arg is null and recv is not */
4214 }
4215 if (0) {
4216 { /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable TCpar> */
4217 var_other = ((val*)NULL);
4218 {
4219 var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable TCpar(TCpar)>*/
4220 }
4221 var4 = !var3;
4222 var1 = var4;
4223 goto RET_LABEL2;
4224 RET_LABEL2:(void)0;
4225 }
4226 var = var1;
4227 }
4228 if (var){
4229 {
4230 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TCpar(TCpar)> */
4231 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TCpar(TCpar)> */
4232 RET_LABEL5:(void)0;
4233 }
4234 }
4235 } else {
4236 }
4237 RET_LABEL:;
4238 }
4239 /* method parser_prod#AAnnotation#n_annotations= for (self: AAnnotation, nullable AAnnotations) */
4240 void nit__parser_prod___AAnnotation___nit__parser_nodes__Prod__n_annotations_61d(val* self, val* p0) {
4241 val* var_node /* var node: nullable AAnnotations */;
4242 short int var /* : Bool */;
4243 short int var1 /* : Bool */;
4244 val* var_other /* var other: nullable Object */;
4245 short int var3 /* : Bool */;
4246 short int var4 /* : Bool */;
4247 var_node = p0;
4248 self->attrs[COLOR_nit__parser_nodes__Prod___n_annotations].val = var_node; /* _n_annotations on <self:AAnnotation> */
4249 if (var_node == NULL) {
4250 var = 0; /* is null */
4251 } else {
4252 var = 1; /* arg is null and recv is not */
4253 }
4254 if (0) {
4255 { /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable AAnnotations> */
4256 var_other = ((val*)NULL);
4257 {
4258 var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable AAnnotations(AAnnotations)>*/
4259 }
4260 var4 = !var3;
4261 var1 = var4;
4262 goto RET_LABEL2;
4263 RET_LABEL2:(void)0;
4264 }
4265 var = var1;
4266 }
4267 if (var){
4268 {
4269 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AAnnotations(AAnnotations)> */
4270 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AAnnotations(AAnnotations)> */
4271 RET_LABEL5:(void)0;
4272 }
4273 }
4274 } else {
4275 }
4276 RET_LABEL:;
4277 }
4278 /* method parser_prod#AAnnotation#visit_all for (self: AAnnotation, Visitor) */
4279 void nit__parser_prod___AAnnotation___nit__parser_nodes__ANode__visit_all(val* self, val* p0) {
4280 val* var_v /* var v: Visitor */;
4281 val* var /* : nullable ADoc */;
4282 val* var1 /* : nullable TKwredef */;
4283 val* var2 /* : nullable AVisibility */;
4284 val* var3 /* : AAtid */;
4285 val* var4 /* : nullable TOpar */;
4286 val* var5 /* : ANodes[AExpr] */;
4287 val* var7 /* : ANodes[AExpr] */;
4288 val* var8 /* : nullable TCpar */;
4289 val* var9 /* : nullable AAnnotations */;
4290 var_v = p0;
4291 var = self->attrs[COLOR_nit__parser_nodes__ADefinition___n_doc].val; /* _n_doc on <self:AAnnotation> */
4292 {
4293 nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4294 }
4295 var1 = self->attrs[COLOR_nit__parser_nodes__ADefinition___n_kwredef].val; /* _n_kwredef on <self:AAnnotation> */
4296 {
4297 nit___nit__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4298 }
4299 var2 = self->attrs[COLOR_nit__parser_nodes__ADefinition___n_visibility].val; /* _n_visibility on <self:AAnnotation> */
4300 {
4301 nit___nit__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4302 }
4303 var3 = self->attrs[COLOR_nit__parser_nodes__AAnnotation___n_atid].val; /* _n_atid on <self:AAnnotation> */
4304 if (unlikely(var3 == NULL)) {
4305 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_atid");
4306 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8704);
4307 fatal_exit(1);
4308 }
4309 {
4310 nit___nit__Visitor___enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4311 }
4312 var4 = self->attrs[COLOR_nit__parser_nodes__AAnnotation___n_opar].val; /* _n_opar on <self:AAnnotation> */
4313 {
4314 nit___nit__Visitor___enter_visit(var_v, var4); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4315 }
4316 {
4317 { /* Inline parser_nodes#AAnnotation#n_args (self) on <self:AAnnotation> */
4318 var7 = self->attrs[COLOR_nit__parser_nodes__AAnnotation___n_args].val; /* _n_args on <self:AAnnotation> */
4319 if (unlikely(var7 == NULL)) {
4320 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
4321 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2988);
4322 fatal_exit(1);
4323 }
4324 var5 = var7;
4325 RET_LABEL6:(void)0;
4326 }
4327 }
4328 {
4329 nit___nit__ANodes___visit_all(var5, var_v); /* Direct call parser_nodes#ANodes#visit_all on <var5:ANodes[AExpr]>*/
4330 }
4331 var8 = self->attrs[COLOR_nit__parser_nodes__AAnnotation___n_cpar].val; /* _n_cpar on <self:AAnnotation> */
4332 {
4333 nit___nit__Visitor___enter_visit(var_v, var8); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4334 }
4335 var9 = self->attrs[COLOR_nit__parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AAnnotation> */
4336 {
4337 nit___nit__Visitor___enter_visit(var_v, var9); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4338 }
4339 RET_LABEL:;
4340 }
4341 /* method parser_prod#AIdAtid#init_aidatid for (self: AIdAtid, nullable TId) */
4342 void nit__parser_prod___AIdAtid___init_aidatid(val* self, val* p0) {
4343 val* var_n_id /* var n_id: nullable TId */;
4344 {
4345 { /* Inline kernel#Object#init (self) on <self:AIdAtid> */
4346 RET_LABEL1:(void)0;
4347 }
4348 }
4349 var_n_id = p0;
4350 if (unlikely(var_n_id == NULL)) {
4351 PRINT_ERROR("Runtime error: %s", "Cast failed");
4352 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8716);
4353 fatal_exit(1);
4354 }
4355 self->attrs[COLOR_nit__parser_nodes__AAtid___n_id].val = var_n_id; /* _n_id on <self:AIdAtid> */
4356 if (var_n_id == NULL) {
4357 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4358 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8717);
4359 fatal_exit(1);
4360 } else {
4361 { /* Inline parser_nodes#ANode#parent= (var_n_id,self) on <var_n_id:nullable TId> */
4362 if (unlikely(var_n_id == NULL)) {
4363 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4364 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
4365 fatal_exit(1);
4366 }
4367 var_n_id->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_id:nullable TId> */
4368 RET_LABEL2:(void)0;
4369 }
4370 }
4371 RET_LABEL:;
4372 }
4373 /* method parser_prod#AIdAtid#replace_child for (self: AIdAtid, ANode, nullable ANode) */
4374 void nit__parser_prod___AIdAtid___nit__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
4375 val* var_old_child /* var old_child: ANode */;
4376 val* var_new_child /* var new_child: nullable ANode */;
4377 val* var /* : Token */;
4378 short int var1 /* : Bool */;
4379 val* var_other /* var other: nullable Object */;
4380 short int var3 /* : Bool */;
4381 short int var5 /* : Bool */;
4382 short int var6 /* : Bool */;
4383 int cltype;
4384 int idtype;
4385 const char* var_class_name;
4386 var_old_child = p0;
4387 var_new_child = p1;
4388 var = self->attrs[COLOR_nit__parser_nodes__AAtid___n_id].val; /* _n_id on <self:AIdAtid> */
4389 if (unlikely(var == NULL)) {
4390 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
4391 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8722);
4392 fatal_exit(1);
4393 }
4394 {
4395 { /* Inline kernel#Object#== (var,var_old_child) on <var:Token> */
4396 var_other = var_old_child;
4397 {
4398 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:Token> */
4399 var5 = var == var_other;
4400 var3 = var5;
4401 goto RET_LABEL4;
4402 RET_LABEL4:(void)0;
4403 }
4404 }
4405 var1 = var3;
4406 goto RET_LABEL2;
4407 RET_LABEL2:(void)0;
4408 }
4409 }
4410 if (var1){
4411 /* <var_new_child:nullable ANode> isa TId */
4412 cltype = type_nit__TId.color;
4413 idtype = type_nit__TId.id;
4414 if(var_new_child == NULL) {
4415 var6 = 0;
4416 } else {
4417 if(cltype >= var_new_child->type->table_size) {
4418 var6 = 0;
4419 } else {
4420 var6 = var_new_child->type->type_table[cltype] == idtype;
4421 }
4422 }
4423 if (unlikely(!var6)) {
4424 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
4425 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TId", var_class_name);
4426 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8723);
4427 fatal_exit(1);
4428 }
4429 {
4430 nit__parser_prod___AIdAtid___nit__parser_nodes__AAtid__n_id_61d(self, var_new_child); /* Direct call parser_prod#AIdAtid#n_id= on <self:AIdAtid>*/
4431 }
4432 goto RET_LABEL;
4433 } else {
4434 }
4435 RET_LABEL:;
4436 }
4437 /* method parser_prod#AIdAtid#n_id= for (self: AIdAtid, Token) */
4438 void nit__parser_prod___AIdAtid___nit__parser_nodes__AAtid__n_id_61d(val* self, val* p0) {
4439 val* var_node /* var node: Token */;
4440 var_node = p0;
4441 self->attrs[COLOR_nit__parser_nodes__AAtid___n_id].val = var_node; /* _n_id on <self:AIdAtid> */
4442 {
4443 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:Token> */
4444 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:Token> */
4445 RET_LABEL1:(void)0;
4446 }
4447 }
4448 RET_LABEL:;
4449 }
4450 /* method parser_prod#AIdAtid#visit_all for (self: AIdAtid, Visitor) */
4451 void nit__parser_prod___AIdAtid___nit__parser_nodes__ANode__visit_all(val* self, val* p0) {
4452 val* var_v /* var v: Visitor */;
4453 val* var /* : Token */;
4454 var_v = p0;
4455 var = self->attrs[COLOR_nit__parser_nodes__AAtid___n_id].val; /* _n_id on <self:AIdAtid> */
4456 if (unlikely(var == NULL)) {
4457 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
4458 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8737);
4459 fatal_exit(1);
4460 }
4461 {
4462 nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4463 }
4464 RET_LABEL:;
4465 }
4466 /* method parser_prod#AKwexternAtid#init_akwexternatid for (self: AKwexternAtid, nullable TKwextern) */
4467 void nit__parser_prod___AKwexternAtid___init_akwexternatid(val* self, val* p0) {
4468 val* var_n_id /* var n_id: nullable TKwextern */;
4469 {
4470 { /* Inline kernel#Object#init (self) on <self:AKwexternAtid> */
4471 RET_LABEL1:(void)0;
4472 }
4473 }
4474 var_n_id = p0;
4475 if (unlikely(var_n_id == NULL)) {
4476 PRINT_ERROR("Runtime error: %s", "Cast failed");
4477 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8745);
4478 fatal_exit(1);
4479 }
4480 self->attrs[COLOR_nit__parser_nodes__AAtid___n_id].val = var_n_id; /* _n_id on <self:AKwexternAtid> */
4481 if (var_n_id == NULL) {
4482 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4483 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8746);
4484 fatal_exit(1);
4485 } else {
4486 { /* Inline parser_nodes#ANode#parent= (var_n_id,self) on <var_n_id:nullable TKwextern> */
4487 if (unlikely(var_n_id == NULL)) {
4488 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4489 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
4490 fatal_exit(1);
4491 }
4492 var_n_id->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_id:nullable TKwextern> */
4493 RET_LABEL2:(void)0;
4494 }
4495 }
4496 RET_LABEL:;
4497 }
4498 /* method parser_prod#AKwexternAtid#replace_child for (self: AKwexternAtid, ANode, nullable ANode) */
4499 void nit__parser_prod___AKwexternAtid___nit__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
4500 val* var_old_child /* var old_child: ANode */;
4501 val* var_new_child /* var new_child: nullable ANode */;
4502 val* var /* : Token */;
4503 short int var1 /* : Bool */;
4504 val* var_other /* var other: nullable Object */;
4505 short int var3 /* : Bool */;
4506 short int var5 /* : Bool */;
4507 short int var6 /* : Bool */;
4508 int cltype;
4509 int idtype;
4510 const char* var_class_name;
4511 var_old_child = p0;
4512 var_new_child = p1;
4513 var = self->attrs[COLOR_nit__parser_nodes__AAtid___n_id].val; /* _n_id on <self:AKwexternAtid> */
4514 if (unlikely(var == NULL)) {
4515 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
4516 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8751);
4517 fatal_exit(1);
4518 }
4519 {
4520 { /* Inline kernel#Object#== (var,var_old_child) on <var:Token> */
4521 var_other = var_old_child;
4522 {
4523 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:Token> */
4524 var5 = var == var_other;
4525 var3 = var5;
4526 goto RET_LABEL4;
4527 RET_LABEL4:(void)0;
4528 }
4529 }
4530 var1 = var3;
4531 goto RET_LABEL2;
4532 RET_LABEL2:(void)0;
4533 }
4534 }
4535 if (var1){
4536 /* <var_new_child:nullable ANode> isa TKwextern */
4537 cltype = type_nit__TKwextern.color;
4538 idtype = type_nit__TKwextern.id;
4539 if(var_new_child == NULL) {
4540 var6 = 0;
4541 } else {
4542 if(cltype >= var_new_child->type->table_size) {
4543 var6 = 0;
4544 } else {
4545 var6 = var_new_child->type->type_table[cltype] == idtype;
4546 }
4547 }
4548 if (unlikely(!var6)) {
4549 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
4550 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwextern", var_class_name);
4551 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8752);
4552 fatal_exit(1);
4553 }
4554 {
4555 nit__parser_prod___AKwexternAtid___nit__parser_nodes__AAtid__n_id_61d(self, var_new_child); /* Direct call parser_prod#AKwexternAtid#n_id= on <self:AKwexternAtid>*/
4556 }
4557 goto RET_LABEL;
4558 } else {
4559 }
4560 RET_LABEL:;
4561 }
4562 /* method parser_prod#AKwexternAtid#n_id= for (self: AKwexternAtid, Token) */
4563 void nit__parser_prod___AKwexternAtid___nit__parser_nodes__AAtid__n_id_61d(val* self, val* p0) {
4564 val* var_node /* var node: Token */;
4565 var_node = p0;
4566 self->attrs[COLOR_nit__parser_nodes__AAtid___n_id].val = var_node; /* _n_id on <self:AKwexternAtid> */
4567 {
4568 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:Token> */
4569 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:Token> */
4570 RET_LABEL1:(void)0;
4571 }
4572 }
4573 RET_LABEL:;
4574 }
4575 /* method parser_prod#AKwexternAtid#visit_all for (self: AKwexternAtid, Visitor) */
4576 void nit__parser_prod___AKwexternAtid___nit__parser_nodes__ANode__visit_all(val* self, val* p0) {
4577 val* var_v /* var v: Visitor */;
4578 val* var /* : Token */;
4579 var_v = p0;
4580 var = self->attrs[COLOR_nit__parser_nodes__AAtid___n_id].val; /* _n_id on <self:AKwexternAtid> */
4581 if (unlikely(var == NULL)) {
4582 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
4583 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8766);
4584 fatal_exit(1);
4585 }
4586 {
4587 nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4588 }
4589 RET_LABEL:;
4590 }
4591 /* method parser_prod#AKwabstractAtid#init_akwabstractatid for (self: AKwabstractAtid, nullable TKwabstract) */
4592 void nit__parser_prod___AKwabstractAtid___init_akwabstractatid(val* self, val* p0) {
4593 val* var_n_id /* var n_id: nullable TKwabstract */;
4594 {
4595 { /* Inline kernel#Object#init (self) on <self:AKwabstractAtid> */
4596 RET_LABEL1:(void)0;
4597 }
4598 }
4599 var_n_id = p0;
4600 if (unlikely(var_n_id == NULL)) {
4601 PRINT_ERROR("Runtime error: %s", "Cast failed");
4602 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8774);
4603 fatal_exit(1);
4604 }
4605 self->attrs[COLOR_nit__parser_nodes__AAtid___n_id].val = var_n_id; /* _n_id on <self:AKwabstractAtid> */
4606 if (var_n_id == NULL) {
4607 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4608 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8775);
4609 fatal_exit(1);
4610 } else {
4611 { /* Inline parser_nodes#ANode#parent= (var_n_id,self) on <var_n_id:nullable TKwabstract> */
4612 if (unlikely(var_n_id == NULL)) {
4613 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4614 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 46);
4615 fatal_exit(1);
4616 }
4617 var_n_id->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_id:nullable TKwabstract> */
4618 RET_LABEL2:(void)0;
4619 }
4620 }
4621 RET_LABEL:;
4622 }
4623 /* method parser_prod#AKwabstractAtid#replace_child for (self: AKwabstractAtid, ANode, nullable ANode) */
4624 void nit__parser_prod___AKwabstractAtid___nit__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
4625 val* var_old_child /* var old_child: ANode */;
4626 val* var_new_child /* var new_child: nullable ANode */;
4627 val* var /* : Token */;
4628 short int var1 /* : Bool */;
4629 val* var_other /* var other: nullable Object */;
4630 short int var3 /* : Bool */;
4631 short int var5 /* : Bool */;
4632 short int var6 /* : Bool */;
4633 int cltype;
4634 int idtype;
4635 const char* var_class_name;
4636 var_old_child = p0;
4637 var_new_child = p1;
4638 var = self->attrs[COLOR_nit__parser_nodes__AAtid___n_id].val; /* _n_id on <self:AKwabstractAtid> */
4639 if (unlikely(var == NULL)) {
4640 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
4641 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8780);
4642 fatal_exit(1);
4643 }
4644 {
4645 { /* Inline kernel#Object#== (var,var_old_child) on <var:Token> */
4646 var_other = var_old_child;
4647 {
4648 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:Token> */
4649 var5 = var == var_other;
4650 var3 = var5;
4651 goto RET_LABEL4;
4652 RET_LABEL4:(void)0;
4653 }
4654 }
4655 var1 = var3;
4656 goto RET_LABEL2;
4657 RET_LABEL2:(void)0;
4658 }
4659 }
4660 if (var1){
4661 /* <var_new_child:nullable ANode> isa TKwabstract */
4662 cltype = type_nit__TKwabstract.color;
4663 idtype = type_nit__TKwabstract.id;
4664 if(var_new_child == NULL) {
4665 var6 = 0;
4666 } else {
4667 if(cltype >= var_new_child->type->table_size) {
4668 var6 = 0;
4669 } else {
4670 var6 = var_new_child->type->type_table[cltype] == idtype;
4671 }
4672 }
4673 if (unlikely(!var6)) {
4674 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
4675 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwabstract", var_class_name);
4676 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8781);
4677 fatal_exit(1);
4678 }
4679 {
4680 nit__parser_prod___AKwabstractAtid___nit__parser_nodes__AAtid__n_id_61d(self, var_new_child); /* Direct call parser_prod#AKwabstractAtid#n_id= on <self:AKwabstractAtid>*/
4681 }
4682 goto RET_LABEL;
4683 } else {
4684 }
4685 RET_LABEL:;
4686 }
4687 /* method parser_prod#AKwabstractAtid#n_id= for (self: AKwabstractAtid, Token) */
4688 void nit__parser_prod___AKwabstractAtid___nit__parser_nodes__AAtid__n_id_61d(val* self, val* p0) {
4689 val* var_node /* var node: Token */;
4690 var_node = p0;
4691 self->attrs[COLOR_nit__parser_nodes__AAtid___n_id].val = var_node; /* _n_id on <self:AKwabstractAtid> */
4692 {
4693 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:Token> */
4694 var_node->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:Token> */
4695 RET_LABEL1:(void)0;
4696 }
4697 }
4698 RET_LABEL:;
4699 }
4700 /* method parser_prod#AKwabstractAtid#visit_all for (self: AKwabstractAtid, Visitor) */
4701 void nit__parser_prod___AKwabstractAtid___nit__parser_nodes__ANode__visit_all(val* self, val* p0) {
4702 val* var_v /* var v: Visitor */;
4703 val* var /* : Token */;
4704 var_v = p0;
4705 var = self->attrs[COLOR_nit__parser_nodes__AAtid___n_id].val; /* _n_id on <self:AKwabstractAtid> */
4706 if (unlikely(var == NULL)) {
4707 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
4708 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8795);
4709 fatal_exit(1);
4710 }
4711 {
4712 nit___nit__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4713 }
4714 RET_LABEL:;
4715 }
4716 /* method parser_prod#Start#replace_child for (self: Start, ANode, nullable ANode) */
4717 void nit__parser_prod___Start___nit__parser_nodes__ANode__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 /* : nullable AModule */;
4721 short int var1 /* : Bool */;
4722 short int var2 /* : Bool */;
4723 val* var_other /* var other: nullable Object */;
4724 short int var4 /* : Bool */;
4725 short int var6 /* : Bool */;
4726 short int var7 /* : Bool */;
4727 short int var8 /* : Bool */;
4728 short int var10 /* : Bool */;
4729 short int var12 /* : Bool */;
4730 short int var14 /* : Bool */;
4731 int cltype;
4732 int idtype;
4733 var_old_child = p0;
4734 var_new_child = p1;
4735 var = self->attrs[COLOR_nit__parser_nodes__Start___n_base].val; /* _n_base on <self:Start> */
4736 if (var == NULL) {
4737 var1 = 0; /* <var_old_child:ANode> cannot be null */
4738 } else {
4739 { /* Inline kernel#Object#== (var,var_old_child) on <var:nullable AModule> */
4740 var_other = var_old_child;
4741 {
4742 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:nullable AModule(AModule)> */
4743 var6 = var == var_other;
4744 var4 = var6;
4745 goto RET_LABEL5;
4746 RET_LABEL5:(void)0;
4747 }
4748 }
4749 var2 = var4;
4750 goto RET_LABEL3;
4751 RET_LABEL3:(void)0;
4752 }
4753 var1 = var2;
4754 }
4755 if (var1){
4756 if (var_new_child == NULL) {
4757 var7 = 1; /* is null */
4758 } else {
4759 var7 = 0; /* arg is null but recv is not */
4760 }
4761 if (0) {
4762 { /* Inline kernel#Object#== (var_new_child,((val*)NULL)) on <var_new_child:nullable ANode> */
4763 var_other = ((val*)NULL);
4764 {
4765 { /* Inline kernel#Object#is_same_instance (var_new_child,var_other) on <var_new_child:nullable ANode(ANode)> */
4766 var12 = var_new_child == var_other;
4767 var10 = var12;
4768 goto RET_LABEL11;
4769 RET_LABEL11:(void)0;
4770 }
4771 }
4772 var8 = var10;
4773 goto RET_LABEL9;
4774 RET_LABEL9:(void)0;
4775 }
4776 var7 = var8;
4777 }
4778 if (var7){
4779 } else {
4780 {
4781 { /* Inline parser_nodes#ANode#parent= (var_new_child,self) on <var_new_child:nullable ANode(ANode)> */
4782 var_new_child->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_new_child:nullable ANode(ANode)> */
4783 RET_LABEL13:(void)0;
4784 }
4785 }
4786 /* <var_new_child:nullable ANode(ANode)> isa AModule */
4787 cltype = type_nit__AModule.color;
4788 idtype = type_nit__AModule.id;
4789 if(cltype >= var_new_child->type->table_size) {
4790 var14 = 0;
4791 } else {
4792 var14 = var_new_child->type->type_table[cltype] == idtype;
4793 }
4794 if (unlikely(!var14)) {
4795 PRINT_ERROR("Runtime error: %s", "Assert failed");
4796 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8835);
4797 fatal_exit(1);
4798 }
4799 self->attrs[COLOR_nit__parser_nodes__Start___n_base].val = var_new_child; /* _n_base on <self:Start> */
4800 }
4801 {
4802 { /* Inline parser_nodes#ANode#parent= (var_old_child,((val*)NULL)) on <var_old_child:ANode> */
4803 var_old_child->attrs[COLOR_nit__parser_nodes__ANode___parent].val = ((val*)NULL); /* _parent on <var_old_child:ANode> */
4804 RET_LABEL15:(void)0;
4805 }
4806 }
4807 goto RET_LABEL;
4808 } else {
4809 }
4810 RET_LABEL:;
4811 }
4812 /* method parser_prod#Start#visit_all for (self: Start, Visitor) */
4813 void nit__parser_prod___Start___nit__parser_nodes__ANode__visit_all(val* self, val* p0) {
4814 val* var_v /* var v: Visitor */;
4815 val* var /* : nullable AModule */;
4816 short int var1 /* : Bool */;
4817 short int var2 /* : Bool */;
4818 val* var_other /* var other: nullable Object */;
4819 short int var4 /* : Bool */;
4820 short int var5 /* : Bool */;
4821 val* var6 /* : nullable AModule */;
4822 val* var7 /* : EOF */;
4823 var_v = p0;
4824 var = self->attrs[COLOR_nit__parser_nodes__Start___n_base].val; /* _n_base on <self:Start> */
4825 if (var == NULL) {
4826 var1 = 0; /* is null */
4827 } else {
4828 var1 = 1; /* arg is null and recv is not */
4829 }
4830 if (0) {
4831 { /* Inline kernel#Object#!= (var,((val*)NULL)) on <var:nullable AModule> */
4832 var_other = ((val*)NULL);
4833 {
4834 var4 = ((short int(*)(val* self, val* p0))(var->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var, var_other); /* == on <var:nullable AModule(AModule)>*/
4835 }
4836 var5 = !var4;
4837 var2 = var5;
4838 goto RET_LABEL3;
4839 RET_LABEL3:(void)0;
4840 }
4841 var1 = var2;
4842 }
4843 if (var1){
4844 var6 = self->attrs[COLOR_nit__parser_nodes__Start___n_base].val; /* _n_base on <self:Start> */
4845 if (unlikely(var6 == NULL)) {
4846 PRINT_ERROR("Runtime error: %s", "Cast failed");
4847 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8846);
4848 fatal_exit(1);
4849 }
4850 {
4851 nit___nit__Visitor___enter_visit(var_v, var6); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4852 }
4853 } else {
4854 }
4855 var7 = self->attrs[COLOR_nit__parser_nodes__Start___n_eof].val; /* _n_eof on <self:Start> */
4856 if (unlikely(var7 == NULL)) {
4857 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_eof");
4858 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_prod, 8848);
4859 fatal_exit(1);
4860 }
4861 {
4862 nit___nit__Visitor___enter_visit(var_v, var7); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
4863 }
4864 RET_LABEL:;
4865 }