NOTICE: Update author list and years
[nit.git] / c_src / nitc__parser_prod.sep.6.c
1 #include "nitc__parser_prod.sep.0.h"
2 /* method parser_prod#AAsNullableExternCall#init_aasnullableexterncall for (self: AAsNullableExternCall, nullable AType, nullable TKwas, nullable TKwnullable) */
3 void nitc__parser_prod___AAsNullableExternCall___init_aasnullableexterncall(val* self, val* p0, val* p1, val* p2) {
4 val* var_n_type /* var n_type: nullable AType */;
5 val* var_n_kwas /* var n_kwas: nullable TKwas */;
6 val* var_n_kwnullable /* var n_kwnullable: nullable TKwnullable */;
7 {
8 { /* Inline kernel#Object#init (self) on <self:AAsNullableExternCall> */
9 RET_LABEL1:(void)0;
10 }
11 }
12 var_n_type = p0;
13 var_n_kwas = p1;
14 var_n_kwnullable = p2;
15 if (unlikely(var_n_type == NULL)) {
16 PRINT_ERROR("Runtime error: %s", "Cast failed");
17 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8072);
18 fatal_exit(1);
19 }
20 self->attrs[COLOR_nitc__parser_nodes__AAsNullableExternCall___n_type].val = var_n_type; /* _n_type on <self:AAsNullableExternCall> */
21 if (var_n_type == NULL) {
22 PRINT_ERROR("Runtime error: %s", "Receiver is null");
23 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8073);
24 fatal_exit(1);
25 } else {
26 { /* Inline parser_nodes#ANode#parent= (var_n_type,self) on <var_n_type:nullable AType> */
27 if (unlikely(var_n_type == NULL)) {
28 PRINT_ERROR("Runtime error: %s", "Receiver is null");
29 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
30 fatal_exit(1);
31 }
32 var_n_type->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_type:nullable AType> */
33 RET_LABEL2:(void)0;
34 }
35 }
36 if (unlikely(var_n_kwas == NULL)) {
37 PRINT_ERROR("Runtime error: %s", "Cast failed");
38 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8074);
39 fatal_exit(1);
40 }
41 self->attrs[COLOR_nitc__parser_nodes__AAsNullableExternCall___n_kwas].val = var_n_kwas; /* _n_kwas on <self:AAsNullableExternCall> */
42 if (var_n_kwas == NULL) {
43 PRINT_ERROR("Runtime error: %s", "Receiver is null");
44 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8075);
45 fatal_exit(1);
46 } else {
47 { /* Inline parser_nodes#ANode#parent= (var_n_kwas,self) on <var_n_kwas:nullable TKwas> */
48 if (unlikely(var_n_kwas == NULL)) {
49 PRINT_ERROR("Runtime error: %s", "Receiver is null");
50 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
51 fatal_exit(1);
52 }
53 var_n_kwas->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwas:nullable TKwas> */
54 RET_LABEL3:(void)0;
55 }
56 }
57 if (unlikely(var_n_kwnullable == NULL)) {
58 PRINT_ERROR("Runtime error: %s", "Cast failed");
59 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8076);
60 fatal_exit(1);
61 }
62 self->attrs[COLOR_nitc__parser_nodes__AAsNullableExternCall___n_kwnullable].val = var_n_kwnullable; /* _n_kwnullable on <self:AAsNullableExternCall> */
63 if (var_n_kwnullable == NULL) {
64 PRINT_ERROR("Runtime error: %s", "Receiver is null");
65 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8077);
66 fatal_exit(1);
67 } else {
68 { /* Inline parser_nodes#ANode#parent= (var_n_kwnullable,self) on <var_n_kwnullable:nullable TKwnullable> */
69 if (unlikely(var_n_kwnullable == NULL)) {
70 PRINT_ERROR("Runtime error: %s", "Receiver is null");
71 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
72 fatal_exit(1);
73 }
74 var_n_kwnullable->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwnullable:nullable TKwnullable> */
75 RET_LABEL4:(void)0;
76 }
77 }
78 RET_LABEL:;
79 }
80 /* method parser_prod#AAsNullableExternCall#replace_child for (self: AAsNullableExternCall, ANode, nullable ANode) */
81 void nitc__parser_prod___AAsNullableExternCall___nitc__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
82 val* var_old_child /* var old_child: ANode */;
83 val* var_new_child /* var new_child: nullable ANode */;
84 val* var /* : AType */;
85 short int var1 /* : Bool */;
86 val* var_other /* var other: nullable Object */;
87 short int var3 /* : Bool */;
88 short int var5 /* : Bool */;
89 short int var6 /* : Bool */;
90 int cltype;
91 int idtype;
92 const char* var_class_name;
93 val* var7 /* : TKwas */;
94 short int var8 /* : Bool */;
95 short int var10 /* : Bool */;
96 short int var12 /* : Bool */;
97 short int var13 /* : Bool */;
98 int cltype14;
99 int idtype15;
100 const char* var_class_name16;
101 val* var17 /* : TKwnullable */;
102 short int var18 /* : Bool */;
103 short int var20 /* : Bool */;
104 short int var22 /* : Bool */;
105 short int var23 /* : Bool */;
106 int cltype24;
107 int idtype25;
108 const char* var_class_name26;
109 var_old_child = p0;
110 var_new_child = p1;
111 var = self->attrs[COLOR_nitc__parser_nodes__AAsNullableExternCall___n_type].val; /* _n_type on <self:AAsNullableExternCall> */
112 if (unlikely(var == NULL)) {
113 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
114 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8082);
115 fatal_exit(1);
116 }
117 {
118 { /* Inline kernel#Object#== (var,var_old_child) on <var:AType> */
119 var_other = var_old_child;
120 {
121 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AType> */
122 var5 = var == var_other;
123 var3 = var5;
124 goto RET_LABEL4;
125 RET_LABEL4:(void)0;
126 }
127 }
128 var1 = var3;
129 goto RET_LABEL2;
130 RET_LABEL2:(void)0;
131 }
132 }
133 if (var1){
134 /* <var_new_child:nullable ANode> isa AType */
135 cltype = type_nitc__AType.color;
136 idtype = type_nitc__AType.id;
137 if(var_new_child == NULL) {
138 var6 = 0;
139 } else {
140 if(cltype >= var_new_child->type->table_size) {
141 var6 = 0;
142 } else {
143 var6 = var_new_child->type->type_table[cltype] == idtype;
144 }
145 }
146 if (unlikely(!var6)) {
147 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
148 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AType", var_class_name);
149 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8083);
150 fatal_exit(1);
151 }
152 {
153 nitc__parser_prod___AAsNullableExternCall___n_type_61d(self, var_new_child); /* Direct call parser_prod#AAsNullableExternCall#n_type= on <self:AAsNullableExternCall>*/
154 }
155 goto RET_LABEL;
156 } else {
157 }
158 var7 = self->attrs[COLOR_nitc__parser_nodes__AAsNullableExternCall___n_kwas].val; /* _n_kwas on <self:AAsNullableExternCall> */
159 if (unlikely(var7 == NULL)) {
160 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwas");
161 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8086);
162 fatal_exit(1);
163 }
164 {
165 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:TKwas> */
166 var_other = var_old_child;
167 {
168 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:TKwas> */
169 var12 = var7 == var_other;
170 var10 = var12;
171 goto RET_LABEL11;
172 RET_LABEL11:(void)0;
173 }
174 }
175 var8 = var10;
176 goto RET_LABEL9;
177 RET_LABEL9:(void)0;
178 }
179 }
180 if (var8){
181 /* <var_new_child:nullable ANode> isa TKwas */
182 cltype14 = type_nitc__TKwas.color;
183 idtype15 = type_nitc__TKwas.id;
184 if(var_new_child == NULL) {
185 var13 = 0;
186 } else {
187 if(cltype14 >= var_new_child->type->table_size) {
188 var13 = 0;
189 } else {
190 var13 = var_new_child->type->type_table[cltype14] == idtype15;
191 }
192 }
193 if (unlikely(!var13)) {
194 var_class_name16 = var_new_child == NULL ? "null" : var_new_child->type->name;
195 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwas", var_class_name16);
196 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8087);
197 fatal_exit(1);
198 }
199 {
200 nitc__parser_prod___AAsNullableExternCall___n_kwas_61d(self, var_new_child); /* Direct call parser_prod#AAsNullableExternCall#n_kwas= on <self:AAsNullableExternCall>*/
201 }
202 goto RET_LABEL;
203 } else {
204 }
205 var17 = self->attrs[COLOR_nitc__parser_nodes__AAsNullableExternCall___n_kwnullable].val; /* _n_kwnullable on <self:AAsNullableExternCall> */
206 if (unlikely(var17 == NULL)) {
207 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwnullable");
208 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8090);
209 fatal_exit(1);
210 }
211 {
212 { /* Inline kernel#Object#== (var17,var_old_child) on <var17:TKwnullable> */
213 var_other = var_old_child;
214 {
215 { /* Inline kernel#Object#is_same_instance (var17,var_other) on <var17:TKwnullable> */
216 var22 = var17 == var_other;
217 var20 = var22;
218 goto RET_LABEL21;
219 RET_LABEL21:(void)0;
220 }
221 }
222 var18 = var20;
223 goto RET_LABEL19;
224 RET_LABEL19:(void)0;
225 }
226 }
227 if (var18){
228 /* <var_new_child:nullable ANode> isa TKwnullable */
229 cltype24 = type_nitc__TKwnullable.color;
230 idtype25 = type_nitc__TKwnullable.id;
231 if(var_new_child == NULL) {
232 var23 = 0;
233 } else {
234 if(cltype24 >= var_new_child->type->table_size) {
235 var23 = 0;
236 } else {
237 var23 = var_new_child->type->type_table[cltype24] == idtype25;
238 }
239 }
240 if (unlikely(!var23)) {
241 var_class_name26 = var_new_child == NULL ? "null" : var_new_child->type->name;
242 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwnullable", var_class_name26);
243 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8091);
244 fatal_exit(1);
245 }
246 {
247 nitc__parser_prod___AAsNullableExternCall___n_kwnullable_61d(self, var_new_child); /* Direct call parser_prod#AAsNullableExternCall#n_kwnullable= on <self:AAsNullableExternCall>*/
248 }
249 goto RET_LABEL;
250 } else {
251 }
252 RET_LABEL:;
253 }
254 /* method parser_prod#AAsNullableExternCall#n_type= for (self: AAsNullableExternCall, AType) */
255 void nitc__parser_prod___AAsNullableExternCall___n_type_61d(val* self, val* p0) {
256 val* var_node /* var node: AType */;
257 var_node = p0;
258 self->attrs[COLOR_nitc__parser_nodes__AAsNullableExternCall___n_type].val = var_node; /* _n_type on <self:AAsNullableExternCall> */
259 {
260 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AType> */
261 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AType> */
262 RET_LABEL1:(void)0;
263 }
264 }
265 RET_LABEL:;
266 }
267 /* method parser_prod#AAsNullableExternCall#n_kwas= for (self: AAsNullableExternCall, TKwas) */
268 void nitc__parser_prod___AAsNullableExternCall___n_kwas_61d(val* self, val* p0) {
269 val* var_node /* var node: TKwas */;
270 var_node = p0;
271 self->attrs[COLOR_nitc__parser_nodes__AAsNullableExternCall___n_kwas].val = var_node; /* _n_kwas on <self:AAsNullableExternCall> */
272 {
273 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwas> */
274 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwas> */
275 RET_LABEL1:(void)0;
276 }
277 }
278 RET_LABEL:;
279 }
280 /* method parser_prod#AAsNullableExternCall#n_kwnullable= for (self: AAsNullableExternCall, TKwnullable) */
281 void nitc__parser_prod___AAsNullableExternCall___n_kwnullable_61d(val* self, val* p0) {
282 val* var_node /* var node: TKwnullable */;
283 var_node = p0;
284 self->attrs[COLOR_nitc__parser_nodes__AAsNullableExternCall___n_kwnullable].val = var_node; /* _n_kwnullable on <self:AAsNullableExternCall> */
285 {
286 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwnullable> */
287 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwnullable> */
288 RET_LABEL1:(void)0;
289 }
290 }
291 RET_LABEL:;
292 }
293 /* method parser_prod#AAsNullableExternCall#visit_all for (self: AAsNullableExternCall, Visitor) */
294 void nitc__parser_prod___AAsNullableExternCall___nitc__parser_nodes__ANode__visit_all(val* self, val* p0) {
295 val* var_v /* var v: Visitor */;
296 val* var /* : AType */;
297 val* var1 /* : TKwas */;
298 val* var2 /* : TKwnullable */;
299 var_v = p0;
300 var = self->attrs[COLOR_nitc__parser_nodes__AAsNullableExternCall___n_type].val; /* _n_type on <self:AAsNullableExternCall> */
301 if (unlikely(var == NULL)) {
302 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
303 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8115);
304 fatal_exit(1);
305 }
306 {
307 nitc___nitc__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
308 }
309 var1 = self->attrs[COLOR_nitc__parser_nodes__AAsNullableExternCall___n_kwas].val; /* _n_kwas on <self:AAsNullableExternCall> */
310 if (unlikely(var1 == NULL)) {
311 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwas");
312 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8116);
313 fatal_exit(1);
314 }
315 {
316 nitc___nitc__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
317 }
318 var2 = self->attrs[COLOR_nitc__parser_nodes__AAsNullableExternCall___n_kwnullable].val; /* _n_kwnullable on <self:AAsNullableExternCall> */
319 if (unlikely(var2 == NULL)) {
320 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwnullable");
321 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8117);
322 fatal_exit(1);
323 }
324 {
325 nitc___nitc__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
326 }
327 RET_LABEL:;
328 }
329 /* method parser_prod#AAsNotNullableExternCall#init_aasnotnullableexterncall for (self: AAsNotNullableExternCall, nullable AType, nullable TKwas, nullable TKwnot, nullable TKwnullable) */
330 void nitc__parser_prod___AAsNotNullableExternCall___init_aasnotnullableexterncall(val* self, val* p0, val* p1, val* p2, val* p3) {
331 val* var_n_type /* var n_type: nullable AType */;
332 val* var_n_kwas /* var n_kwas: nullable TKwas */;
333 val* var_n_kwnot /* var n_kwnot: nullable TKwnot */;
334 val* var_n_kwnullable /* var n_kwnullable: nullable TKwnullable */;
335 {
336 { /* Inline kernel#Object#init (self) on <self:AAsNotNullableExternCall> */
337 RET_LABEL1:(void)0;
338 }
339 }
340 var_n_type = p0;
341 var_n_kwas = p1;
342 var_n_kwnot = p2;
343 var_n_kwnullable = p3;
344 if (unlikely(var_n_type == NULL)) {
345 PRINT_ERROR("Runtime error: %s", "Cast failed");
346 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8128);
347 fatal_exit(1);
348 }
349 self->attrs[COLOR_nitc__parser_nodes__AAsNotNullableExternCall___n_type].val = var_n_type; /* _n_type on <self:AAsNotNullableExternCall> */
350 if (var_n_type == NULL) {
351 PRINT_ERROR("Runtime error: %s", "Receiver is null");
352 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8129);
353 fatal_exit(1);
354 } else {
355 { /* Inline parser_nodes#ANode#parent= (var_n_type,self) on <var_n_type:nullable AType> */
356 if (unlikely(var_n_type == NULL)) {
357 PRINT_ERROR("Runtime error: %s", "Receiver is null");
358 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
359 fatal_exit(1);
360 }
361 var_n_type->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_type:nullable AType> */
362 RET_LABEL2:(void)0;
363 }
364 }
365 if (unlikely(var_n_kwas == NULL)) {
366 PRINT_ERROR("Runtime error: %s", "Cast failed");
367 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8130);
368 fatal_exit(1);
369 }
370 self->attrs[COLOR_nitc__parser_nodes__AAsNotNullableExternCall___n_kwas].val = var_n_kwas; /* _n_kwas on <self:AAsNotNullableExternCall> */
371 if (var_n_kwas == NULL) {
372 PRINT_ERROR("Runtime error: %s", "Receiver is null");
373 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8131);
374 fatal_exit(1);
375 } else {
376 { /* Inline parser_nodes#ANode#parent= (var_n_kwas,self) on <var_n_kwas:nullable TKwas> */
377 if (unlikely(var_n_kwas == NULL)) {
378 PRINT_ERROR("Runtime error: %s", "Receiver is null");
379 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
380 fatal_exit(1);
381 }
382 var_n_kwas->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwas:nullable TKwas> */
383 RET_LABEL3:(void)0;
384 }
385 }
386 if (unlikely(var_n_kwnot == NULL)) {
387 PRINT_ERROR("Runtime error: %s", "Cast failed");
388 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8132);
389 fatal_exit(1);
390 }
391 self->attrs[COLOR_nitc__parser_nodes__AAsNotNullableExternCall___n_kwnot].val = var_n_kwnot; /* _n_kwnot on <self:AAsNotNullableExternCall> */
392 if (var_n_kwnot == NULL) {
393 PRINT_ERROR("Runtime error: %s", "Receiver is null");
394 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8133);
395 fatal_exit(1);
396 } else {
397 { /* Inline parser_nodes#ANode#parent= (var_n_kwnot,self) on <var_n_kwnot:nullable TKwnot> */
398 if (unlikely(var_n_kwnot == NULL)) {
399 PRINT_ERROR("Runtime error: %s", "Receiver is null");
400 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
401 fatal_exit(1);
402 }
403 var_n_kwnot->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwnot:nullable TKwnot> */
404 RET_LABEL4:(void)0;
405 }
406 }
407 if (unlikely(var_n_kwnullable == NULL)) {
408 PRINT_ERROR("Runtime error: %s", "Cast failed");
409 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8134);
410 fatal_exit(1);
411 }
412 self->attrs[COLOR_nitc__parser_nodes__AAsNotNullableExternCall___n_kwnullable].val = var_n_kwnullable; /* _n_kwnullable on <self:AAsNotNullableExternCall> */
413 if (var_n_kwnullable == NULL) {
414 PRINT_ERROR("Runtime error: %s", "Receiver is null");
415 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8135);
416 fatal_exit(1);
417 } else {
418 { /* Inline parser_nodes#ANode#parent= (var_n_kwnullable,self) on <var_n_kwnullable:nullable TKwnullable> */
419 if (unlikely(var_n_kwnullable == NULL)) {
420 PRINT_ERROR("Runtime error: %s", "Receiver is null");
421 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
422 fatal_exit(1);
423 }
424 var_n_kwnullable->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwnullable:nullable TKwnullable> */
425 RET_LABEL5:(void)0;
426 }
427 }
428 RET_LABEL:;
429 }
430 /* method parser_prod#AAsNotNullableExternCall#replace_child for (self: AAsNotNullableExternCall, ANode, nullable ANode) */
431 void nitc__parser_prod___AAsNotNullableExternCall___nitc__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
432 val* var_old_child /* var old_child: ANode */;
433 val* var_new_child /* var new_child: nullable ANode */;
434 val* var /* : AType */;
435 short int var1 /* : Bool */;
436 val* var_other /* var other: nullable Object */;
437 short int var3 /* : Bool */;
438 short int var5 /* : Bool */;
439 short int var6 /* : Bool */;
440 int cltype;
441 int idtype;
442 const char* var_class_name;
443 val* var7 /* : TKwas */;
444 short int var8 /* : Bool */;
445 short int var10 /* : Bool */;
446 short int var12 /* : Bool */;
447 short int var13 /* : Bool */;
448 int cltype14;
449 int idtype15;
450 const char* var_class_name16;
451 val* var17 /* : TKwnot */;
452 short int var18 /* : Bool */;
453 short int var20 /* : Bool */;
454 short int var22 /* : Bool */;
455 short int var23 /* : Bool */;
456 int cltype24;
457 int idtype25;
458 const char* var_class_name26;
459 val* var27 /* : TKwnullable */;
460 short int var28 /* : Bool */;
461 short int var30 /* : Bool */;
462 short int var32 /* : Bool */;
463 short int var33 /* : Bool */;
464 int cltype34;
465 int idtype35;
466 const char* var_class_name36;
467 var_old_child = p0;
468 var_new_child = p1;
469 var = self->attrs[COLOR_nitc__parser_nodes__AAsNotNullableExternCall___n_type].val; /* _n_type on <self:AAsNotNullableExternCall> */
470 if (unlikely(var == NULL)) {
471 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
472 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8140);
473 fatal_exit(1);
474 }
475 {
476 { /* Inline kernel#Object#== (var,var_old_child) on <var:AType> */
477 var_other = var_old_child;
478 {
479 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:AType> */
480 var5 = var == var_other;
481 var3 = var5;
482 goto RET_LABEL4;
483 RET_LABEL4:(void)0;
484 }
485 }
486 var1 = var3;
487 goto RET_LABEL2;
488 RET_LABEL2:(void)0;
489 }
490 }
491 if (var1){
492 /* <var_new_child:nullable ANode> isa AType */
493 cltype = type_nitc__AType.color;
494 idtype = type_nitc__AType.id;
495 if(var_new_child == NULL) {
496 var6 = 0;
497 } else {
498 if(cltype >= var_new_child->type->table_size) {
499 var6 = 0;
500 } else {
501 var6 = var_new_child->type->type_table[cltype] == idtype;
502 }
503 }
504 if (unlikely(!var6)) {
505 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
506 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AType", var_class_name);
507 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8141);
508 fatal_exit(1);
509 }
510 {
511 nitc__parser_prod___AAsNotNullableExternCall___n_type_61d(self, var_new_child); /* Direct call parser_prod#AAsNotNullableExternCall#n_type= on <self:AAsNotNullableExternCall>*/
512 }
513 goto RET_LABEL;
514 } else {
515 }
516 var7 = self->attrs[COLOR_nitc__parser_nodes__AAsNotNullableExternCall___n_kwas].val; /* _n_kwas on <self:AAsNotNullableExternCall> */
517 if (unlikely(var7 == NULL)) {
518 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwas");
519 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8144);
520 fatal_exit(1);
521 }
522 {
523 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:TKwas> */
524 var_other = var_old_child;
525 {
526 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:TKwas> */
527 var12 = var7 == var_other;
528 var10 = var12;
529 goto RET_LABEL11;
530 RET_LABEL11:(void)0;
531 }
532 }
533 var8 = var10;
534 goto RET_LABEL9;
535 RET_LABEL9:(void)0;
536 }
537 }
538 if (var8){
539 /* <var_new_child:nullable ANode> isa TKwas */
540 cltype14 = type_nitc__TKwas.color;
541 idtype15 = type_nitc__TKwas.id;
542 if(var_new_child == NULL) {
543 var13 = 0;
544 } else {
545 if(cltype14 >= var_new_child->type->table_size) {
546 var13 = 0;
547 } else {
548 var13 = var_new_child->type->type_table[cltype14] == idtype15;
549 }
550 }
551 if (unlikely(!var13)) {
552 var_class_name16 = var_new_child == NULL ? "null" : var_new_child->type->name;
553 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwas", var_class_name16);
554 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8145);
555 fatal_exit(1);
556 }
557 {
558 nitc__parser_prod___AAsNotNullableExternCall___n_kwas_61d(self, var_new_child); /* Direct call parser_prod#AAsNotNullableExternCall#n_kwas= on <self:AAsNotNullableExternCall>*/
559 }
560 goto RET_LABEL;
561 } else {
562 }
563 var17 = self->attrs[COLOR_nitc__parser_nodes__AAsNotNullableExternCall___n_kwnot].val; /* _n_kwnot on <self:AAsNotNullableExternCall> */
564 if (unlikely(var17 == NULL)) {
565 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwnot");
566 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8148);
567 fatal_exit(1);
568 }
569 {
570 { /* Inline kernel#Object#== (var17,var_old_child) on <var17:TKwnot> */
571 var_other = var_old_child;
572 {
573 { /* Inline kernel#Object#is_same_instance (var17,var_other) on <var17:TKwnot> */
574 var22 = var17 == var_other;
575 var20 = var22;
576 goto RET_LABEL21;
577 RET_LABEL21:(void)0;
578 }
579 }
580 var18 = var20;
581 goto RET_LABEL19;
582 RET_LABEL19:(void)0;
583 }
584 }
585 if (var18){
586 /* <var_new_child:nullable ANode> isa TKwnot */
587 cltype24 = type_nitc__TKwnot.color;
588 idtype25 = type_nitc__TKwnot.id;
589 if(var_new_child == NULL) {
590 var23 = 0;
591 } else {
592 if(cltype24 >= var_new_child->type->table_size) {
593 var23 = 0;
594 } else {
595 var23 = var_new_child->type->type_table[cltype24] == idtype25;
596 }
597 }
598 if (unlikely(!var23)) {
599 var_class_name26 = var_new_child == NULL ? "null" : var_new_child->type->name;
600 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwnot", var_class_name26);
601 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8149);
602 fatal_exit(1);
603 }
604 {
605 nitc__parser_prod___AAsNotNullableExternCall___n_kwnot_61d(self, var_new_child); /* Direct call parser_prod#AAsNotNullableExternCall#n_kwnot= on <self:AAsNotNullableExternCall>*/
606 }
607 goto RET_LABEL;
608 } else {
609 }
610 var27 = self->attrs[COLOR_nitc__parser_nodes__AAsNotNullableExternCall___n_kwnullable].val; /* _n_kwnullable on <self:AAsNotNullableExternCall> */
611 if (unlikely(var27 == NULL)) {
612 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwnullable");
613 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8152);
614 fatal_exit(1);
615 }
616 {
617 { /* Inline kernel#Object#== (var27,var_old_child) on <var27:TKwnullable> */
618 var_other = var_old_child;
619 {
620 { /* Inline kernel#Object#is_same_instance (var27,var_other) on <var27:TKwnullable> */
621 var32 = var27 == var_other;
622 var30 = var32;
623 goto RET_LABEL31;
624 RET_LABEL31:(void)0;
625 }
626 }
627 var28 = var30;
628 goto RET_LABEL29;
629 RET_LABEL29:(void)0;
630 }
631 }
632 if (var28){
633 /* <var_new_child:nullable ANode> isa TKwnullable */
634 cltype34 = type_nitc__TKwnullable.color;
635 idtype35 = type_nitc__TKwnullable.id;
636 if(var_new_child == NULL) {
637 var33 = 0;
638 } else {
639 if(cltype34 >= var_new_child->type->table_size) {
640 var33 = 0;
641 } else {
642 var33 = var_new_child->type->type_table[cltype34] == idtype35;
643 }
644 }
645 if (unlikely(!var33)) {
646 var_class_name36 = var_new_child == NULL ? "null" : var_new_child->type->name;
647 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwnullable", var_class_name36);
648 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8153);
649 fatal_exit(1);
650 }
651 {
652 nitc__parser_prod___AAsNotNullableExternCall___n_kwnullable_61d(self, var_new_child); /* Direct call parser_prod#AAsNotNullableExternCall#n_kwnullable= on <self:AAsNotNullableExternCall>*/
653 }
654 goto RET_LABEL;
655 } else {
656 }
657 RET_LABEL:;
658 }
659 /* method parser_prod#AAsNotNullableExternCall#n_type= for (self: AAsNotNullableExternCall, AType) */
660 void nitc__parser_prod___AAsNotNullableExternCall___n_type_61d(val* self, val* p0) {
661 val* var_node /* var node: AType */;
662 var_node = p0;
663 self->attrs[COLOR_nitc__parser_nodes__AAsNotNullableExternCall___n_type].val = var_node; /* _n_type on <self:AAsNotNullableExternCall> */
664 {
665 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AType> */
666 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AType> */
667 RET_LABEL1:(void)0;
668 }
669 }
670 RET_LABEL:;
671 }
672 /* method parser_prod#AAsNotNullableExternCall#n_kwas= for (self: AAsNotNullableExternCall, TKwas) */
673 void nitc__parser_prod___AAsNotNullableExternCall___n_kwas_61d(val* self, val* p0) {
674 val* var_node /* var node: TKwas */;
675 var_node = p0;
676 self->attrs[COLOR_nitc__parser_nodes__AAsNotNullableExternCall___n_kwas].val = var_node; /* _n_kwas on <self:AAsNotNullableExternCall> */
677 {
678 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwas> */
679 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwas> */
680 RET_LABEL1:(void)0;
681 }
682 }
683 RET_LABEL:;
684 }
685 /* method parser_prod#AAsNotNullableExternCall#n_kwnot= for (self: AAsNotNullableExternCall, TKwnot) */
686 void nitc__parser_prod___AAsNotNullableExternCall___n_kwnot_61d(val* self, val* p0) {
687 val* var_node /* var node: TKwnot */;
688 var_node = p0;
689 self->attrs[COLOR_nitc__parser_nodes__AAsNotNullableExternCall___n_kwnot].val = var_node; /* _n_kwnot on <self:AAsNotNullableExternCall> */
690 {
691 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwnot> */
692 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwnot> */
693 RET_LABEL1:(void)0;
694 }
695 }
696 RET_LABEL:;
697 }
698 /* method parser_prod#AAsNotNullableExternCall#n_kwnullable= for (self: AAsNotNullableExternCall, TKwnullable) */
699 void nitc__parser_prod___AAsNotNullableExternCall___n_kwnullable_61d(val* self, val* p0) {
700 val* var_node /* var node: TKwnullable */;
701 var_node = p0;
702 self->attrs[COLOR_nitc__parser_nodes__AAsNotNullableExternCall___n_kwnullable].val = var_node; /* _n_kwnullable on <self:AAsNotNullableExternCall> */
703 {
704 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwnullable> */
705 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwnullable> */
706 RET_LABEL1:(void)0;
707 }
708 }
709 RET_LABEL:;
710 }
711 /* method parser_prod#AAsNotNullableExternCall#visit_all for (self: AAsNotNullableExternCall, Visitor) */
712 void nitc__parser_prod___AAsNotNullableExternCall___nitc__parser_nodes__ANode__visit_all(val* self, val* p0) {
713 val* var_v /* var v: Visitor */;
714 val* var /* : AType */;
715 val* var1 /* : TKwas */;
716 val* var2 /* : TKwnot */;
717 val* var3 /* : TKwnullable */;
718 var_v = p0;
719 var = self->attrs[COLOR_nitc__parser_nodes__AAsNotNullableExternCall___n_type].val; /* _n_type on <self:AAsNotNullableExternCall> */
720 if (unlikely(var == NULL)) {
721 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
722 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8182);
723 fatal_exit(1);
724 }
725 {
726 nitc___nitc__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
727 }
728 var1 = self->attrs[COLOR_nitc__parser_nodes__AAsNotNullableExternCall___n_kwas].val; /* _n_kwas on <self:AAsNotNullableExternCall> */
729 if (unlikely(var1 == NULL)) {
730 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwas");
731 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8183);
732 fatal_exit(1);
733 }
734 {
735 nitc___nitc__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
736 }
737 var2 = self->attrs[COLOR_nitc__parser_nodes__AAsNotNullableExternCall___n_kwnot].val; /* _n_kwnot on <self:AAsNotNullableExternCall> */
738 if (unlikely(var2 == NULL)) {
739 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwnot");
740 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8184);
741 fatal_exit(1);
742 }
743 {
744 nitc___nitc__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
745 }
746 var3 = self->attrs[COLOR_nitc__parser_nodes__AAsNotNullableExternCall___n_kwnullable].val; /* _n_kwnullable on <self:AAsNotNullableExternCall> */
747 if (unlikely(var3 == NULL)) {
748 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwnullable");
749 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8185);
750 fatal_exit(1);
751 }
752 {
753 nitc___nitc__Visitor___enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
754 }
755 RET_LABEL:;
756 }
757 /* method parser_prod#AInLanguage#init_ainlanguage for (self: AInLanguage, nullable TKwin, nullable TString) */
758 void nitc__parser_prod___AInLanguage___init_ainlanguage(val* self, val* p0, val* p1) {
759 val* var_n_kwin /* var n_kwin: nullable TKwin */;
760 val* var_n_string /* var n_string: nullable TString */;
761 {
762 { /* Inline kernel#Object#init (self) on <self:AInLanguage> */
763 RET_LABEL1:(void)0;
764 }
765 }
766 var_n_kwin = p0;
767 var_n_string = p1;
768 if (unlikely(var_n_kwin == NULL)) {
769 PRINT_ERROR("Runtime error: %s", "Cast failed");
770 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8194);
771 fatal_exit(1);
772 }
773 self->attrs[COLOR_nitc__parser_nodes__AInLanguage___n_kwin].val = var_n_kwin; /* _n_kwin on <self:AInLanguage> */
774 if (var_n_kwin == NULL) {
775 PRINT_ERROR("Runtime error: %s", "Receiver is null");
776 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8195);
777 fatal_exit(1);
778 } else {
779 { /* Inline parser_nodes#ANode#parent= (var_n_kwin,self) on <var_n_kwin:nullable TKwin> */
780 if (unlikely(var_n_kwin == NULL)) {
781 PRINT_ERROR("Runtime error: %s", "Receiver is null");
782 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
783 fatal_exit(1);
784 }
785 var_n_kwin->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwin:nullable TKwin> */
786 RET_LABEL2:(void)0;
787 }
788 }
789 if (unlikely(var_n_string == NULL)) {
790 PRINT_ERROR("Runtime error: %s", "Cast failed");
791 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8196);
792 fatal_exit(1);
793 }
794 self->attrs[COLOR_nitc__parser_nodes__AInLanguage___n_string].val = var_n_string; /* _n_string on <self:AInLanguage> */
795 if (var_n_string == NULL) {
796 PRINT_ERROR("Runtime error: %s", "Receiver is null");
797 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8197);
798 fatal_exit(1);
799 } else {
800 { /* Inline parser_nodes#ANode#parent= (var_n_string,self) on <var_n_string:nullable TString> */
801 if (unlikely(var_n_string == NULL)) {
802 PRINT_ERROR("Runtime error: %s", "Receiver is null");
803 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
804 fatal_exit(1);
805 }
806 var_n_string->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_string:nullable TString> */
807 RET_LABEL3:(void)0;
808 }
809 }
810 RET_LABEL:;
811 }
812 /* method parser_prod#AInLanguage#replace_child for (self: AInLanguage, ANode, nullable ANode) */
813 void nitc__parser_prod___AInLanguage___nitc__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
814 val* var_old_child /* var old_child: ANode */;
815 val* var_new_child /* var new_child: nullable ANode */;
816 val* var /* : TKwin */;
817 short int var1 /* : Bool */;
818 val* var_other /* var other: nullable Object */;
819 short int var3 /* : Bool */;
820 short int var5 /* : Bool */;
821 short int var6 /* : Bool */;
822 int cltype;
823 int idtype;
824 const char* var_class_name;
825 val* var7 /* : TString */;
826 short int var8 /* : Bool */;
827 short int var10 /* : Bool */;
828 short int var12 /* : Bool */;
829 short int var13 /* : Bool */;
830 int cltype14;
831 int idtype15;
832 const char* var_class_name16;
833 var_old_child = p0;
834 var_new_child = p1;
835 var = self->attrs[COLOR_nitc__parser_nodes__AInLanguage___n_kwin].val; /* _n_kwin on <self:AInLanguage> */
836 if (unlikely(var == NULL)) {
837 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwin");
838 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8202);
839 fatal_exit(1);
840 }
841 {
842 { /* Inline kernel#Object#== (var,var_old_child) on <var:TKwin> */
843 var_other = var_old_child;
844 {
845 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:TKwin> */
846 var5 = var == var_other;
847 var3 = var5;
848 goto RET_LABEL4;
849 RET_LABEL4:(void)0;
850 }
851 }
852 var1 = var3;
853 goto RET_LABEL2;
854 RET_LABEL2:(void)0;
855 }
856 }
857 if (var1){
858 /* <var_new_child:nullable ANode> isa TKwin */
859 cltype = type_nitc__TKwin.color;
860 idtype = type_nitc__TKwin.id;
861 if(var_new_child == NULL) {
862 var6 = 0;
863 } else {
864 if(cltype >= var_new_child->type->table_size) {
865 var6 = 0;
866 } else {
867 var6 = var_new_child->type->type_table[cltype] == idtype;
868 }
869 }
870 if (unlikely(!var6)) {
871 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
872 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwin", var_class_name);
873 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8203);
874 fatal_exit(1);
875 }
876 {
877 nitc__parser_prod___AInLanguage___n_kwin_61d(self, var_new_child); /* Direct call parser_prod#AInLanguage#n_kwin= on <self:AInLanguage>*/
878 }
879 goto RET_LABEL;
880 } else {
881 }
882 var7 = self->attrs[COLOR_nitc__parser_nodes__AInLanguage___n_string].val; /* _n_string on <self:AInLanguage> */
883 if (unlikely(var7 == NULL)) {
884 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_string");
885 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8206);
886 fatal_exit(1);
887 }
888 {
889 { /* Inline kernel#Object#== (var7,var_old_child) on <var7:TString> */
890 var_other = var_old_child;
891 {
892 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:TString> */
893 var12 = var7 == var_other;
894 var10 = var12;
895 goto RET_LABEL11;
896 RET_LABEL11:(void)0;
897 }
898 }
899 var8 = var10;
900 goto RET_LABEL9;
901 RET_LABEL9:(void)0;
902 }
903 }
904 if (var8){
905 /* <var_new_child:nullable ANode> isa TString */
906 cltype14 = type_nitc__TString.color;
907 idtype15 = type_nitc__TString.id;
908 if(var_new_child == NULL) {
909 var13 = 0;
910 } else {
911 if(cltype14 >= var_new_child->type->table_size) {
912 var13 = 0;
913 } else {
914 var13 = var_new_child->type->type_table[cltype14] == idtype15;
915 }
916 }
917 if (unlikely(!var13)) {
918 var_class_name16 = var_new_child == NULL ? "null" : var_new_child->type->name;
919 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TString", var_class_name16);
920 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8207);
921 fatal_exit(1);
922 }
923 {
924 nitc__parser_prod___AInLanguage___n_string_61d(self, var_new_child); /* Direct call parser_prod#AInLanguage#n_string= on <self:AInLanguage>*/
925 }
926 goto RET_LABEL;
927 } else {
928 }
929 RET_LABEL:;
930 }
931 /* method parser_prod#AInLanguage#n_kwin= for (self: AInLanguage, TKwin) */
932 void nitc__parser_prod___AInLanguage___n_kwin_61d(val* self, val* p0) {
933 val* var_node /* var node: TKwin */;
934 var_node = p0;
935 self->attrs[COLOR_nitc__parser_nodes__AInLanguage___n_kwin].val = var_node; /* _n_kwin on <self:AInLanguage> */
936 {
937 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TKwin> */
938 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TKwin> */
939 RET_LABEL1:(void)0;
940 }
941 }
942 RET_LABEL:;
943 }
944 /* method parser_prod#AInLanguage#n_string= for (self: AInLanguage, TString) */
945 void nitc__parser_prod___AInLanguage___n_string_61d(val* self, val* p0) {
946 val* var_node /* var node: TString */;
947 var_node = p0;
948 self->attrs[COLOR_nitc__parser_nodes__AInLanguage___n_string].val = var_node; /* _n_string on <self:AInLanguage> */
949 {
950 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TString> */
951 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TString> */
952 RET_LABEL1:(void)0;
953 }
954 }
955 RET_LABEL:;
956 }
957 /* method parser_prod#AInLanguage#visit_all for (self: AInLanguage, Visitor) */
958 void nitc__parser_prod___AInLanguage___nitc__parser_nodes__ANode__visit_all(val* self, val* p0) {
959 val* var_v /* var v: Visitor */;
960 val* var /* : TKwin */;
961 val* var1 /* : TString */;
962 var_v = p0;
963 var = self->attrs[COLOR_nitc__parser_nodes__AInLanguage___n_kwin].val; /* _n_kwin on <self:AInLanguage> */
964 if (unlikely(var == NULL)) {
965 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwin");
966 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8226);
967 fatal_exit(1);
968 }
969 {
970 nitc___nitc__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
971 }
972 var1 = self->attrs[COLOR_nitc__parser_nodes__AInLanguage___n_string].val; /* _n_string on <self:AInLanguage> */
973 if (unlikely(var1 == NULL)) {
974 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_string");
975 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8227);
976 fatal_exit(1);
977 }
978 {
979 nitc___nitc__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
980 }
981 RET_LABEL:;
982 }
983 /* method parser_prod#AExternCodeBlock#init_aexterncodeblock for (self: AExternCodeBlock, nullable AInLanguage, nullable TExternCodeSegment) */
984 void nitc__parser_prod___AExternCodeBlock___init_aexterncodeblock(val* self, val* p0, val* p1) {
985 val* var_n_in_language /* var n_in_language: nullable AInLanguage */;
986 val* var_n_extern_code_segment /* var n_extern_code_segment: nullable TExternCodeSegment */;
987 short int var /* : Bool */;
988 short int var2 /* : Bool */;
989 val* var_other /* var other: nullable Object */;
990 short int var4 /* : Bool */;
991 short int var5 /* : Bool */;
992 {
993 { /* Inline kernel#Object#init (self) on <self:AExternCodeBlock> */
994 RET_LABEL1:(void)0;
995 }
996 }
997 var_n_in_language = p0;
998 var_n_extern_code_segment = p1;
999 self->attrs[COLOR_nitc__parser_nodes__AExternCodeBlock___n_in_language].val = var_n_in_language; /* _n_in_language on <self:AExternCodeBlock> */
1000 if (var_n_in_language == NULL) {
1001 var = 0; /* is null */
1002 } else {
1003 var = 1; /* arg is null and recv is not */
1004 }
1005 if (0) {
1006 { /* Inline kernel#Object#!= (var_n_in_language,((val*)NULL)) on <var_n_in_language:nullable AInLanguage> */
1007 var_other = ((val*)NULL);
1008 {
1009 var4 = ((short int(*)(val* self, val* p0))(var_n_in_language->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_n_in_language, var_other); /* == on <var_n_in_language:nullable AInLanguage(AInLanguage)>*/
1010 }
1011 var5 = !var4;
1012 var2 = var5;
1013 goto RET_LABEL3;
1014 RET_LABEL3:(void)0;
1015 }
1016 var = var2;
1017 }
1018 if (var){
1019 {
1020 { /* Inline parser_nodes#ANode#parent= (var_n_in_language,self) on <var_n_in_language:nullable AInLanguage(AInLanguage)> */
1021 var_n_in_language->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_in_language:nullable AInLanguage(AInLanguage)> */
1022 RET_LABEL6:(void)0;
1023 }
1024 }
1025 } else {
1026 }
1027 if (unlikely(var_n_extern_code_segment == NULL)) {
1028 PRINT_ERROR("Runtime error: %s", "Cast failed");
1029 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8238);
1030 fatal_exit(1);
1031 }
1032 self->attrs[COLOR_nitc__parser_nodes__AExternCodeBlock___n_extern_code_segment].val = var_n_extern_code_segment; /* _n_extern_code_segment on <self:AExternCodeBlock> */
1033 if (var_n_extern_code_segment == NULL) {
1034 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1035 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8239);
1036 fatal_exit(1);
1037 } else {
1038 { /* Inline parser_nodes#ANode#parent= (var_n_extern_code_segment,self) on <var_n_extern_code_segment:nullable TExternCodeSegment> */
1039 if (unlikely(var_n_extern_code_segment == NULL)) {
1040 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1041 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
1042 fatal_exit(1);
1043 }
1044 var_n_extern_code_segment->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_extern_code_segment:nullable TExternCodeSegment> */
1045 RET_LABEL7:(void)0;
1046 }
1047 }
1048 RET_LABEL:;
1049 }
1050 /* method parser_prod#AExternCodeBlock#replace_child for (self: AExternCodeBlock, ANode, nullable ANode) */
1051 void nitc__parser_prod___AExternCodeBlock___nitc__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
1052 val* var_old_child /* var old_child: ANode */;
1053 val* var_new_child /* var new_child: nullable ANode */;
1054 val* var /* : nullable AInLanguage */;
1055 short int var1 /* : Bool */;
1056 short int var2 /* : Bool */;
1057 val* var_other /* var other: nullable Object */;
1058 short int var4 /* : Bool */;
1059 short int var6 /* : Bool */;
1060 short int var7 /* : Bool */;
1061 int cltype;
1062 int idtype;
1063 const char* var_class_name;
1064 val* var8 /* : TExternCodeSegment */;
1065 short int var9 /* : Bool */;
1066 short int var11 /* : Bool */;
1067 short int var13 /* : Bool */;
1068 short int var14 /* : Bool */;
1069 int cltype15;
1070 int idtype16;
1071 const char* var_class_name17;
1072 var_old_child = p0;
1073 var_new_child = p1;
1074 var = self->attrs[COLOR_nitc__parser_nodes__AExternCodeBlock___n_in_language].val; /* _n_in_language on <self:AExternCodeBlock> */
1075 if (var == NULL) {
1076 var1 = 0; /* <var_old_child:ANode> cannot be null */
1077 } else {
1078 { /* Inline kernel#Object#== (var,var_old_child) on <var:nullable AInLanguage> */
1079 var_other = var_old_child;
1080 {
1081 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:nullable AInLanguage(AInLanguage)> */
1082 var6 = var == var_other;
1083 var4 = var6;
1084 goto RET_LABEL5;
1085 RET_LABEL5:(void)0;
1086 }
1087 }
1088 var2 = var4;
1089 goto RET_LABEL3;
1090 RET_LABEL3:(void)0;
1091 }
1092 var1 = var2;
1093 }
1094 if (var1){
1095 /* <var_new_child:nullable ANode> isa nullable AInLanguage */
1096 cltype = type_nullable__nitc__AInLanguage.color;
1097 idtype = type_nullable__nitc__AInLanguage.id;
1098 if(var_new_child == NULL) {
1099 var7 = 1;
1100 } else {
1101 if(cltype >= var_new_child->type->table_size) {
1102 var7 = 0;
1103 } else {
1104 var7 = var_new_child->type->type_table[cltype] == idtype;
1105 }
1106 }
1107 if (unlikely(!var7)) {
1108 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
1109 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AInLanguage", var_class_name);
1110 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8245);
1111 fatal_exit(1);
1112 }
1113 {
1114 nitc__parser_prod___AExternCodeBlock___n_in_language_61d(self, var_new_child); /* Direct call parser_prod#AExternCodeBlock#n_in_language= on <self:AExternCodeBlock>*/
1115 }
1116 goto RET_LABEL;
1117 } else {
1118 }
1119 var8 = self->attrs[COLOR_nitc__parser_nodes__AExternCodeBlock___n_extern_code_segment].val; /* _n_extern_code_segment on <self:AExternCodeBlock> */
1120 if (unlikely(var8 == NULL)) {
1121 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_extern_code_segment");
1122 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8248);
1123 fatal_exit(1);
1124 }
1125 {
1126 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:TExternCodeSegment> */
1127 var_other = var_old_child;
1128 {
1129 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:TExternCodeSegment> */
1130 var13 = var8 == var_other;
1131 var11 = var13;
1132 goto RET_LABEL12;
1133 RET_LABEL12:(void)0;
1134 }
1135 }
1136 var9 = var11;
1137 goto RET_LABEL10;
1138 RET_LABEL10:(void)0;
1139 }
1140 }
1141 if (var9){
1142 /* <var_new_child:nullable ANode> isa TExternCodeSegment */
1143 cltype15 = type_nitc__TExternCodeSegment.color;
1144 idtype16 = type_nitc__TExternCodeSegment.id;
1145 if(var_new_child == NULL) {
1146 var14 = 0;
1147 } else {
1148 if(cltype15 >= var_new_child->type->table_size) {
1149 var14 = 0;
1150 } else {
1151 var14 = var_new_child->type->type_table[cltype15] == idtype16;
1152 }
1153 }
1154 if (unlikely(!var14)) {
1155 var_class_name17 = var_new_child == NULL ? "null" : var_new_child->type->name;
1156 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TExternCodeSegment", var_class_name17);
1157 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8249);
1158 fatal_exit(1);
1159 }
1160 {
1161 nitc__parser_prod___AExternCodeBlock___n_extern_code_segment_61d(self, var_new_child); /* Direct call parser_prod#AExternCodeBlock#n_extern_code_segment= on <self:AExternCodeBlock>*/
1162 }
1163 goto RET_LABEL;
1164 } else {
1165 }
1166 RET_LABEL:;
1167 }
1168 /* method parser_prod#AExternCodeBlock#n_in_language= for (self: AExternCodeBlock, nullable AInLanguage) */
1169 void nitc__parser_prod___AExternCodeBlock___n_in_language_61d(val* self, val* p0) {
1170 val* var_node /* var node: nullable AInLanguage */;
1171 short int var /* : Bool */;
1172 short int var1 /* : Bool */;
1173 val* var_other /* var other: nullable Object */;
1174 short int var3 /* : Bool */;
1175 short int var4 /* : Bool */;
1176 var_node = p0;
1177 self->attrs[COLOR_nitc__parser_nodes__AExternCodeBlock___n_in_language].val = var_node; /* _n_in_language on <self:AExternCodeBlock> */
1178 if (var_node == NULL) {
1179 var = 0; /* is null */
1180 } else {
1181 var = 1; /* arg is null and recv is not */
1182 }
1183 if (0) {
1184 { /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable AInLanguage> */
1185 var_other = ((val*)NULL);
1186 {
1187 var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable AInLanguage(AInLanguage)>*/
1188 }
1189 var4 = !var3;
1190 var1 = var4;
1191 goto RET_LABEL2;
1192 RET_LABEL2:(void)0;
1193 }
1194 var = var1;
1195 }
1196 if (var){
1197 {
1198 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AInLanguage(AInLanguage)> */
1199 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AInLanguage(AInLanguage)> */
1200 RET_LABEL5:(void)0;
1201 }
1202 }
1203 } else {
1204 }
1205 RET_LABEL:;
1206 }
1207 /* method parser_prod#AExternCodeBlock#n_extern_code_segment= for (self: AExternCodeBlock, TExternCodeSegment) */
1208 void nitc__parser_prod___AExternCodeBlock___n_extern_code_segment_61d(val* self, val* p0) {
1209 val* var_node /* var node: TExternCodeSegment */;
1210 var_node = p0;
1211 self->attrs[COLOR_nitc__parser_nodes__AExternCodeBlock___n_extern_code_segment].val = var_node; /* _n_extern_code_segment on <self:AExternCodeBlock> */
1212 {
1213 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:TExternCodeSegment> */
1214 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:TExternCodeSegment> */
1215 RET_LABEL1:(void)0;
1216 }
1217 }
1218 RET_LABEL:;
1219 }
1220 /* method parser_prod#AExternCodeBlock#visit_all for (self: AExternCodeBlock, Visitor) */
1221 void nitc__parser_prod___AExternCodeBlock___nitc__parser_nodes__ANode__visit_all(val* self, val* p0) {
1222 val* var_v /* var v: Visitor */;
1223 val* var /* : nullable AInLanguage */;
1224 val* var1 /* : TExternCodeSegment */;
1225 var_v = p0;
1226 var = self->attrs[COLOR_nitc__parser_nodes__AExternCodeBlock___n_in_language].val; /* _n_in_language on <self:AExternCodeBlock> */
1227 {
1228 nitc___nitc__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1229 }
1230 var1 = self->attrs[COLOR_nitc__parser_nodes__AExternCodeBlock___n_extern_code_segment].val; /* _n_extern_code_segment on <self:AExternCodeBlock> */
1231 if (unlikely(var1 == NULL)) {
1232 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_extern_code_segment");
1233 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8269);
1234 fatal_exit(1);
1235 }
1236 {
1237 nitc___nitc__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1238 }
1239 RET_LABEL:;
1240 }
1241 /* method parser_prod#AQualified#init_aqualified for (self: AQualified, Collection[Object], nullable TClassid) */
1242 void nitc__parser_prod___AQualified___init_aqualified(val* self, val* p0, val* p1) {
1243 val* var_n_id /* var n_id: Collection[Object] */;
1244 val* var_n_classid /* var n_classid: nullable TClassid */;
1245 val* var /* : ANodes[TId] */;
1246 val* var3 /* : ANodes[TId] */;
1247 short int var4 /* : Bool */;
1248 short int var5 /* : Bool */;
1249 val* var_other /* var other: nullable Object */;
1250 short int var7 /* : Bool */;
1251 short int var8 /* : Bool */;
1252 {
1253 { /* Inline kernel#Object#init (self) on <self:AQualified> */
1254 RET_LABEL1:(void)0;
1255 }
1256 }
1257 var_n_id = p0;
1258 var_n_classid = p1;
1259 {
1260 { /* Inline parser_nodes#AQualified#n_id (self) on <self:AQualified> */
1261 var3 = self->attrs[COLOR_nitc__parser_nodes__AQualified___n_id].val; /* _n_id on <self:AQualified> */
1262 if (unlikely(var3 == NULL)) {
1263 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
1264 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2871);
1265 fatal_exit(1);
1266 }
1267 var = var3;
1268 RET_LABEL2:(void)0;
1269 }
1270 }
1271 {
1272 nitc___nitc__ANodes___unsafe_add_all(var, var_n_id); /* Direct call parser_nodes#ANodes#unsafe_add_all on <var:ANodes[TId]>*/
1273 }
1274 self->attrs[COLOR_nitc__parser_nodes__AQualified___n_classid].val = var_n_classid; /* _n_classid on <self:AQualified> */
1275 if (var_n_classid == NULL) {
1276 var4 = 0; /* is null */
1277 } else {
1278 var4 = 1; /* arg is null and recv is not */
1279 }
1280 if (0) {
1281 { /* Inline kernel#Object#!= (var_n_classid,((val*)NULL)) on <var_n_classid:nullable TClassid> */
1282 var_other = ((val*)NULL);
1283 {
1284 var7 = ((short int(*)(val* self, val* p0))(var_n_classid->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_n_classid, var_other); /* == on <var_n_classid:nullable TClassid(TClassid)>*/
1285 }
1286 var8 = !var7;
1287 var5 = var8;
1288 goto RET_LABEL6;
1289 RET_LABEL6:(void)0;
1290 }
1291 var4 = var5;
1292 }
1293 if (var4){
1294 {
1295 { /* Inline parser_nodes#ANode#parent= (var_n_classid,self) on <var_n_classid:nullable TClassid(TClassid)> */
1296 var_n_classid->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_classid:nullable TClassid(TClassid)> */
1297 RET_LABEL9:(void)0;
1298 }
1299 }
1300 } else {
1301 }
1302 RET_LABEL:;
1303 }
1304 /* method parser_prod#AQualified#replace_child for (self: AQualified, ANode, nullable ANode) */
1305 void nitc__parser_prod___AQualified___nitc__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
1306 val* var_old_child /* var old_child: ANode */;
1307 val* var_new_child /* var new_child: nullable ANode */;
1308 val* var /* : ANodes[TId] */;
1309 val* var2 /* : ANodes[TId] */;
1310 short int var3 /* : Bool */;
1311 val* var4 /* : nullable TClassid */;
1312 short int var5 /* : Bool */;
1313 short int var6 /* : Bool */;
1314 val* var_other /* var other: nullable Object */;
1315 short int var8 /* : Bool */;
1316 short int var10 /* : Bool */;
1317 short int var11 /* : Bool */;
1318 int cltype;
1319 int idtype;
1320 const char* var_class_name;
1321 var_old_child = p0;
1322 var_new_child = p1;
1323 {
1324 { /* Inline parser_nodes#AQualified#n_id (self) on <self:AQualified> */
1325 var2 = self->attrs[COLOR_nitc__parser_nodes__AQualified___n_id].val; /* _n_id on <self:AQualified> */
1326 if (unlikely(var2 == NULL)) {
1327 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
1328 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2871);
1329 fatal_exit(1);
1330 }
1331 var = var2;
1332 RET_LABEL1:(void)0;
1333 }
1334 }
1335 {
1336 var3 = nitc___nitc__ANodes___replace_child(var, var_old_child, var_new_child);
1337 }
1338 if (var3){
1339 goto RET_LABEL;
1340 } else {
1341 }
1342 var4 = self->attrs[COLOR_nitc__parser_nodes__AQualified___n_classid].val; /* _n_classid on <self:AQualified> */
1343 if (var4 == NULL) {
1344 var5 = 0; /* <var_old_child:ANode> cannot be null */
1345 } else {
1346 { /* Inline kernel#Object#== (var4,var_old_child) on <var4:nullable TClassid> */
1347 var_other = var_old_child;
1348 {
1349 { /* Inline kernel#Object#is_same_instance (var4,var_other) on <var4:nullable TClassid(TClassid)> */
1350 var10 = var4 == var_other;
1351 var8 = var10;
1352 goto RET_LABEL9;
1353 RET_LABEL9:(void)0;
1354 }
1355 }
1356 var6 = var8;
1357 goto RET_LABEL7;
1358 RET_LABEL7:(void)0;
1359 }
1360 var5 = var6;
1361 }
1362 if (var5){
1363 /* <var_new_child:nullable ANode> isa nullable TClassid */
1364 cltype = type_nullable__nitc__TClassid.color;
1365 idtype = type_nullable__nitc__TClassid.id;
1366 if(var_new_child == NULL) {
1367 var11 = 1;
1368 } else {
1369 if(cltype >= var_new_child->type->table_size) {
1370 var11 = 0;
1371 } else {
1372 var11 = var_new_child->type->type_table[cltype] == idtype;
1373 }
1374 }
1375 if (unlikely(!var11)) {
1376 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
1377 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TClassid", var_class_name);
1378 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8287);
1379 fatal_exit(1);
1380 }
1381 {
1382 nitc__parser_prod___AQualified___n_classid_61d(self, var_new_child); /* Direct call parser_prod#AQualified#n_classid= on <self:AQualified>*/
1383 }
1384 goto RET_LABEL;
1385 } else {
1386 }
1387 RET_LABEL:;
1388 }
1389 /* method parser_prod#AQualified#n_classid= for (self: AQualified, nullable TClassid) */
1390 void nitc__parser_prod___AQualified___n_classid_61d(val* self, val* p0) {
1391 val* var_node /* var node: nullable TClassid */;
1392 short int var /* : Bool */;
1393 short int var1 /* : Bool */;
1394 val* var_other /* var other: nullable Object */;
1395 short int var3 /* : Bool */;
1396 short int var4 /* : Bool */;
1397 var_node = p0;
1398 self->attrs[COLOR_nitc__parser_nodes__AQualified___n_classid].val = var_node; /* _n_classid on <self:AQualified> */
1399 if (var_node == NULL) {
1400 var = 0; /* is null */
1401 } else {
1402 var = 1; /* arg is null and recv is not */
1403 }
1404 if (0) {
1405 { /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable TClassid> */
1406 var_other = ((val*)NULL);
1407 {
1408 var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable TClassid(TClassid)>*/
1409 }
1410 var4 = !var3;
1411 var1 = var4;
1412 goto RET_LABEL2;
1413 RET_LABEL2:(void)0;
1414 }
1415 var = var1;
1416 }
1417 if (var){
1418 {
1419 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TClassid(TClassid)> */
1420 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TClassid(TClassid)> */
1421 RET_LABEL5:(void)0;
1422 }
1423 }
1424 } else {
1425 }
1426 RET_LABEL:;
1427 }
1428 /* method parser_prod#AQualified#visit_all for (self: AQualified, Visitor) */
1429 void nitc__parser_prod___AQualified___nitc__parser_nodes__ANode__visit_all(val* self, val* p0) {
1430 val* var_v /* var v: Visitor */;
1431 val* var /* : ANodes[TId] */;
1432 val* var2 /* : ANodes[TId] */;
1433 val* var3 /* : nullable TClassid */;
1434 var_v = p0;
1435 {
1436 { /* Inline parser_nodes#AQualified#n_id (self) on <self:AQualified> */
1437 var2 = self->attrs[COLOR_nitc__parser_nodes__AQualified___n_id].val; /* _n_id on <self:AQualified> */
1438 if (unlikely(var2 == NULL)) {
1439 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
1440 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2871);
1441 fatal_exit(1);
1442 }
1443 var = var2;
1444 RET_LABEL1:(void)0;
1445 }
1446 }
1447 {
1448 nitc___nitc__ANodes___visit_all(var, var_v); /* Direct call parser_nodes#ANodes#visit_all on <var:ANodes[TId]>*/
1449 }
1450 var3 = self->attrs[COLOR_nitc__parser_nodes__AQualified___n_classid].val; /* _n_classid on <self:AQualified> */
1451 {
1452 nitc___nitc__Visitor___enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
1453 }
1454 RET_LABEL:;
1455 }
1456 /* method parser_prod#ADoc#init_adoc for (self: ADoc, Collection[Object]) */
1457 void nitc__parser_prod___ADoc___init_adoc(val* self, val* p0) {
1458 val* var_n_comment /* var n_comment: Collection[Object] */;
1459 val* var /* : ANodes[TComment] */;
1460 val* var3 /* : ANodes[TComment] */;
1461 {
1462 { /* Inline kernel#Object#init (self) on <self:ADoc> */
1463 RET_LABEL1:(void)0;
1464 }
1465 }
1466 var_n_comment = p0;
1467 {
1468 { /* Inline parser_nodes#ADoc#n_comment (self) on <self:ADoc> */
1469 var3 = self->attrs[COLOR_nitc__parser_nodes__ADoc___n_comment].val; /* _n_comment on <self:ADoc> */
1470 if (unlikely(var3 == NULL)) {
1471 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_comment");
1472 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2883);
1473 fatal_exit(1);
1474 }
1475 var = var3;
1476 RET_LABEL2:(void)0;
1477 }
1478 }
1479 {
1480 nitc___nitc__ANodes___unsafe_add_all(var, var_n_comment); /* Direct call parser_nodes#ANodes#unsafe_add_all on <var:ANodes[TComment]>*/
1481 }
1482 RET_LABEL:;
1483 }
1484 /* method parser_prod#ADoc#replace_child for (self: ADoc, ANode, nullable ANode) */
1485 void nitc__parser_prod___ADoc___nitc__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
1486 val* var_old_child /* var old_child: ANode */;
1487 val* var_new_child /* var new_child: nullable ANode */;
1488 val* var /* : ANodes[TComment] */;
1489 val* var2 /* : ANodes[TComment] */;
1490 short int var3 /* : Bool */;
1491 var_old_child = p0;
1492 var_new_child = p1;
1493 {
1494 { /* Inline parser_nodes#ADoc#n_comment (self) on <self:ADoc> */
1495 var2 = self->attrs[COLOR_nitc__parser_nodes__ADoc___n_comment].val; /* _n_comment on <self:ADoc> */
1496 if (unlikely(var2 == NULL)) {
1497 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_comment");
1498 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2883);
1499 fatal_exit(1);
1500 }
1501 var = var2;
1502 RET_LABEL1:(void)0;
1503 }
1504 }
1505 {
1506 var3 = nitc___nitc__ANodes___replace_child(var, var_old_child, var_new_child);
1507 }
1508 if (var3){
1509 goto RET_LABEL;
1510 } else {
1511 }
1512 RET_LABEL:;
1513 }
1514 /* method parser_prod#ADoc#visit_all for (self: ADoc, Visitor) */
1515 void nitc__parser_prod___ADoc___nitc__parser_nodes__ANode__visit_all(val* self, val* p0) {
1516 val* var_v /* var v: Visitor */;
1517 val* var /* : ANodes[TComment] */;
1518 val* var2 /* : ANodes[TComment] */;
1519 var_v = p0;
1520 {
1521 { /* Inline parser_nodes#ADoc#n_comment (self) on <self:ADoc> */
1522 var2 = self->attrs[COLOR_nitc__parser_nodes__ADoc___n_comment].val; /* _n_comment on <self:ADoc> */
1523 if (unlikely(var2 == NULL)) {
1524 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_comment");
1525 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2883);
1526 fatal_exit(1);
1527 }
1528 var = var2;
1529 RET_LABEL1:(void)0;
1530 }
1531 }
1532 {
1533 nitc___nitc__ANodes___visit_all(var, var_v); /* Direct call parser_nodes#ANodes#visit_all on <var:ANodes[TComment]>*/
1534 }
1535 RET_LABEL:;
1536 }
1537 /* method parser_prod#AAnnotations#init_aannotations for (self: AAnnotations, nullable TKwis, nullable TAt, nullable TOpar, Collection[Object], nullable TCpar, nullable TKwend) */
1538 void nitc__parser_prod___AAnnotations___init_aannotations(val* self, val* p0, val* p1, val* p2, val* p3, val* p4, val* p5) {
1539 val* var_n_kwis /* var n_kwis: nullable TKwis */;
1540 val* var_n_at /* var n_at: nullable TAt */;
1541 val* var_n_opar /* var n_opar: nullable TOpar */;
1542 val* var_n_items /* var n_items: Collection[Object] */;
1543 val* var_n_cpar /* var n_cpar: nullable TCpar */;
1544 val* var_n_kwend /* var n_kwend: nullable TKwend */;
1545 short int var /* : Bool */;
1546 short int var2 /* : Bool */;
1547 val* var_other /* var other: nullable Object */;
1548 short int var4 /* : Bool */;
1549 short int var5 /* : Bool */;
1550 short int var7 /* : Bool */;
1551 short int var8 /* : Bool */;
1552 short int var10 /* : Bool */;
1553 short int var11 /* : Bool */;
1554 short int var13 /* : Bool */;
1555 short int var14 /* : Bool */;
1556 short int var16 /* : Bool */;
1557 short int var17 /* : Bool */;
1558 val* var19 /* : ANodes[AAnnotation] */;
1559 val* var21 /* : ANodes[AAnnotation] */;
1560 short int var22 /* : Bool */;
1561 short int var23 /* : Bool */;
1562 short int var25 /* : Bool */;
1563 short int var26 /* : Bool */;
1564 short int var28 /* : Bool */;
1565 short int var29 /* : Bool */;
1566 short int var31 /* : Bool */;
1567 short int var32 /* : Bool */;
1568 {
1569 { /* Inline kernel#Object#init (self) on <self:AAnnotations> */
1570 RET_LABEL1:(void)0;
1571 }
1572 }
1573 var_n_kwis = p0;
1574 var_n_at = p1;
1575 var_n_opar = p2;
1576 var_n_items = p3;
1577 var_n_cpar = p4;
1578 var_n_kwend = p5;
1579 self->attrs[COLOR_nitc__parser_nodes__AAnnotations___n_kwis].val = var_n_kwis; /* _n_kwis on <self:AAnnotations> */
1580 if (var_n_kwis == NULL) {
1581 var = 0; /* is null */
1582 } else {
1583 var = 1; /* arg is null and recv is not */
1584 }
1585 if (0) {
1586 { /* Inline kernel#Object#!= (var_n_kwis,((val*)NULL)) on <var_n_kwis:nullable TKwis> */
1587 var_other = ((val*)NULL);
1588 {
1589 var4 = ((short int(*)(val* self, val* p0))(var_n_kwis->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_n_kwis, var_other); /* == on <var_n_kwis:nullable TKwis(TKwis)>*/
1590 }
1591 var5 = !var4;
1592 var2 = var5;
1593 goto RET_LABEL3;
1594 RET_LABEL3:(void)0;
1595 }
1596 var = var2;
1597 }
1598 if (var){
1599 {
1600 { /* Inline parser_nodes#ANode#parent= (var_n_kwis,self) on <var_n_kwis:nullable TKwis(TKwis)> */
1601 var_n_kwis->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwis:nullable TKwis(TKwis)> */
1602 RET_LABEL6:(void)0;
1603 }
1604 }
1605 } else {
1606 }
1607 self->attrs[COLOR_nitc__parser_nodes__AAnnotations___n_at].val = var_n_at; /* _n_at on <self:AAnnotations> */
1608 if (var_n_at == NULL) {
1609 var7 = 0; /* is null */
1610 } else {
1611 var7 = 1; /* arg is null and recv is not */
1612 }
1613 if (0) {
1614 { /* Inline kernel#Object#!= (var_n_at,((val*)NULL)) on <var_n_at:nullable TAt> */
1615 var_other = ((val*)NULL);
1616 {
1617 var10 = ((short int(*)(val* self, val* p0))(var_n_at->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_n_at, var_other); /* == on <var_n_at:nullable TAt(TAt)>*/
1618 }
1619 var11 = !var10;
1620 var8 = var11;
1621 goto RET_LABEL9;
1622 RET_LABEL9:(void)0;
1623 }
1624 var7 = var8;
1625 }
1626 if (var7){
1627 {
1628 { /* Inline parser_nodes#ANode#parent= (var_n_at,self) on <var_n_at:nullable TAt(TAt)> */
1629 var_n_at->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_at:nullable TAt(TAt)> */
1630 RET_LABEL12:(void)0;
1631 }
1632 }
1633 } else {
1634 }
1635 self->attrs[COLOR_nitc__parser_nodes__AAnnotations___n_opar].val = var_n_opar; /* _n_opar on <self:AAnnotations> */
1636 if (var_n_opar == NULL) {
1637 var13 = 0; /* is null */
1638 } else {
1639 var13 = 1; /* arg is null and recv is not */
1640 }
1641 if (0) {
1642 { /* Inline kernel#Object#!= (var_n_opar,((val*)NULL)) on <var_n_opar:nullable TOpar> */
1643 var_other = ((val*)NULL);
1644 {
1645 var16 = ((short int(*)(val* self, val* p0))(var_n_opar->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_n_opar, var_other); /* == on <var_n_opar:nullable TOpar(TOpar)>*/
1646 }
1647 var17 = !var16;
1648 var14 = var17;
1649 goto RET_LABEL15;
1650 RET_LABEL15:(void)0;
1651 }
1652 var13 = var14;
1653 }
1654 if (var13){
1655 {
1656 { /* Inline parser_nodes#ANode#parent= (var_n_opar,self) on <var_n_opar:nullable TOpar(TOpar)> */
1657 var_n_opar->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_opar:nullable TOpar(TOpar)> */
1658 RET_LABEL18:(void)0;
1659 }
1660 }
1661 } else {
1662 }
1663 {
1664 { /* Inline parser_nodes#AAnnotations#n_items (self) on <self:AAnnotations> */
1665 var21 = self->attrs[COLOR_nitc__parser_nodes__AAnnotations___n_items].val; /* _n_items on <self:AAnnotations> */
1666 if (unlikely(var21 == NULL)) {
1667 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_items");
1668 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2906);
1669 fatal_exit(1);
1670 }
1671 var19 = var21;
1672 RET_LABEL20:(void)0;
1673 }
1674 }
1675 {
1676 nitc___nitc__ANodes___unsafe_add_all(var19, var_n_items); /* Direct call parser_nodes#ANodes#unsafe_add_all on <var19:ANodes[AAnnotation]>*/
1677 }
1678 self->attrs[COLOR_nitc__parser_nodes__AAnnotations___n_cpar].val = var_n_cpar; /* _n_cpar on <self:AAnnotations> */
1679 if (var_n_cpar == NULL) {
1680 var22 = 0; /* is null */
1681 } else {
1682 var22 = 1; /* arg is null and recv is not */
1683 }
1684 if (0) {
1685 { /* Inline kernel#Object#!= (var_n_cpar,((val*)NULL)) on <var_n_cpar:nullable TCpar> */
1686 var_other = ((val*)NULL);
1687 {
1688 var25 = ((short int(*)(val* self, val* p0))(var_n_cpar->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_n_cpar, var_other); /* == on <var_n_cpar:nullable TCpar(TCpar)>*/
1689 }
1690 var26 = !var25;
1691 var23 = var26;
1692 goto RET_LABEL24;
1693 RET_LABEL24:(void)0;
1694 }
1695 var22 = var23;
1696 }
1697 if (var22){
1698 {
1699 { /* Inline parser_nodes#ANode#parent= (var_n_cpar,self) on <var_n_cpar:nullable TCpar(TCpar)> */
1700 var_n_cpar->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_cpar:nullable TCpar(TCpar)> */
1701 RET_LABEL27:(void)0;
1702 }
1703 }
1704 } else {
1705 }
1706 self->attrs[COLOR_nitc__parser_nodes__AAnnotations___n_kwend].val = var_n_kwend; /* _n_kwend on <self:AAnnotations> */
1707 if (var_n_kwend == NULL) {
1708 var28 = 0; /* is null */
1709 } else {
1710 var28 = 1; /* arg is null and recv is not */
1711 }
1712 if (0) {
1713 { /* Inline kernel#Object#!= (var_n_kwend,((val*)NULL)) on <var_n_kwend:nullable TKwend> */
1714 var_other = ((val*)NULL);
1715 {
1716 var31 = ((short int(*)(val* self, val* p0))(var_n_kwend->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_n_kwend, var_other); /* == on <var_n_kwend:nullable TKwend(TKwend)>*/
1717 }
1718 var32 = !var31;
1719 var29 = var32;
1720 goto RET_LABEL30;
1721 RET_LABEL30:(void)0;
1722 }
1723 var28 = var29;
1724 }
1725 if (var28){
1726 {
1727 { /* Inline parser_nodes#ANode#parent= (var_n_kwend,self) on <var_n_kwend:nullable TKwend(TKwend)> */
1728 var_n_kwend->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwend:nullable TKwend(TKwend)> */
1729 RET_LABEL33:(void)0;
1730 }
1731 }
1732 } else {
1733 }
1734 RET_LABEL:;
1735 }
1736 /* method parser_prod#AAnnotations#replace_child for (self: AAnnotations, ANode, nullable ANode) */
1737 void nitc__parser_prod___AAnnotations___nitc__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
1738 val* var_old_child /* var old_child: ANode */;
1739 val* var_new_child /* var new_child: nullable ANode */;
1740 val* var /* : nullable TKwis */;
1741 short int var1 /* : Bool */;
1742 short int var2 /* : Bool */;
1743 val* var_other /* var other: nullable Object */;
1744 short int var4 /* : Bool */;
1745 short int var6 /* : Bool */;
1746 short int var7 /* : Bool */;
1747 int cltype;
1748 int idtype;
1749 const char* var_class_name;
1750 val* var8 /* : nullable TAt */;
1751 short int var9 /* : Bool */;
1752 short int var10 /* : Bool */;
1753 short int var12 /* : Bool */;
1754 short int var14 /* : Bool */;
1755 short int var15 /* : Bool */;
1756 int cltype16;
1757 int idtype17;
1758 const char* var_class_name18;
1759 val* var19 /* : nullable TOpar */;
1760 short int var20 /* : Bool */;
1761 short int var21 /* : Bool */;
1762 short int var23 /* : Bool */;
1763 short int var25 /* : Bool */;
1764 short int var26 /* : Bool */;
1765 int cltype27;
1766 int idtype28;
1767 const char* var_class_name29;
1768 val* var30 /* : ANodes[AAnnotation] */;
1769 val* var32 /* : ANodes[AAnnotation] */;
1770 short int var33 /* : Bool */;
1771 val* var34 /* : nullable TCpar */;
1772 short int var35 /* : Bool */;
1773 short int var36 /* : Bool */;
1774 short int var38 /* : Bool */;
1775 short int var40 /* : Bool */;
1776 short int var41 /* : Bool */;
1777 int cltype42;
1778 int idtype43;
1779 const char* var_class_name44;
1780 val* var45 /* : nullable TKwend */;
1781 short int var46 /* : Bool */;
1782 short int var47 /* : Bool */;
1783 short int var49 /* : Bool */;
1784 short int var51 /* : Bool */;
1785 short int var52 /* : Bool */;
1786 int cltype53;
1787 int idtype54;
1788 const char* var_class_name55;
1789 var_old_child = p0;
1790 var_new_child = p1;
1791 var = self->attrs[COLOR_nitc__parser_nodes__AAnnotations___n_kwis].val; /* _n_kwis on <self:AAnnotations> */
1792 if (var == NULL) {
1793 var1 = 0; /* <var_old_child:ANode> cannot be null */
1794 } else {
1795 { /* Inline kernel#Object#== (var,var_old_child) on <var:nullable TKwis> */
1796 var_other = var_old_child;
1797 {
1798 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:nullable TKwis(TKwis)> */
1799 var6 = var == var_other;
1800 var4 = var6;
1801 goto RET_LABEL5;
1802 RET_LABEL5:(void)0;
1803 }
1804 }
1805 var2 = var4;
1806 goto RET_LABEL3;
1807 RET_LABEL3:(void)0;
1808 }
1809 var1 = var2;
1810 }
1811 if (var1){
1812 /* <var_new_child:nullable ANode> isa nullable TKwis */
1813 cltype = type_nullable__nitc__TKwis.color;
1814 idtype = type_nullable__nitc__TKwis.id;
1815 if(var_new_child == NULL) {
1816 var7 = 1;
1817 } else {
1818 if(cltype >= var_new_child->type->table_size) {
1819 var7 = 0;
1820 } else {
1821 var7 = var_new_child->type->type_table[cltype] == idtype;
1822 }
1823 }
1824 if (unlikely(!var7)) {
1825 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
1826 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TKwis", var_class_name);
1827 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8351);
1828 fatal_exit(1);
1829 }
1830 {
1831 nitc__parser_prod___AAnnotations___n_kwis_61d(self, var_new_child); /* Direct call parser_prod#AAnnotations#n_kwis= on <self:AAnnotations>*/
1832 }
1833 goto RET_LABEL;
1834 } else {
1835 }
1836 var8 = self->attrs[COLOR_nitc__parser_nodes__AAnnotations___n_at].val; /* _n_at on <self:AAnnotations> */
1837 if (var8 == NULL) {
1838 var9 = 0; /* <var_old_child:ANode> cannot be null */
1839 } else {
1840 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:nullable TAt> */
1841 var_other = var_old_child;
1842 {
1843 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:nullable TAt(TAt)> */
1844 var14 = var8 == var_other;
1845 var12 = var14;
1846 goto RET_LABEL13;
1847 RET_LABEL13:(void)0;
1848 }
1849 }
1850 var10 = var12;
1851 goto RET_LABEL11;
1852 RET_LABEL11:(void)0;
1853 }
1854 var9 = var10;
1855 }
1856 if (var9){
1857 /* <var_new_child:nullable ANode> isa nullable TAt */
1858 cltype16 = type_nullable__nitc__TAt.color;
1859 idtype17 = type_nullable__nitc__TAt.id;
1860 if(var_new_child == NULL) {
1861 var15 = 1;
1862 } else {
1863 if(cltype16 >= var_new_child->type->table_size) {
1864 var15 = 0;
1865 } else {
1866 var15 = var_new_child->type->type_table[cltype16] == idtype17;
1867 }
1868 }
1869 if (unlikely(!var15)) {
1870 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
1871 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TAt", var_class_name18);
1872 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8355);
1873 fatal_exit(1);
1874 }
1875 {
1876 nitc__parser_prod___AAnnotations___n_at_61d(self, var_new_child); /* Direct call parser_prod#AAnnotations#n_at= on <self:AAnnotations>*/
1877 }
1878 goto RET_LABEL;
1879 } else {
1880 }
1881 var19 = self->attrs[COLOR_nitc__parser_nodes__AAnnotations___n_opar].val; /* _n_opar on <self:AAnnotations> */
1882 if (var19 == NULL) {
1883 var20 = 0; /* <var_old_child:ANode> cannot be null */
1884 } else {
1885 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:nullable TOpar> */
1886 var_other = var_old_child;
1887 {
1888 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:nullable TOpar(TOpar)> */
1889 var25 = var19 == var_other;
1890 var23 = var25;
1891 goto RET_LABEL24;
1892 RET_LABEL24:(void)0;
1893 }
1894 }
1895 var21 = var23;
1896 goto RET_LABEL22;
1897 RET_LABEL22:(void)0;
1898 }
1899 var20 = var21;
1900 }
1901 if (var20){
1902 /* <var_new_child:nullable ANode> isa nullable TOpar */
1903 cltype27 = type_nullable__nitc__TOpar.color;
1904 idtype28 = type_nullable__nitc__TOpar.id;
1905 if(var_new_child == NULL) {
1906 var26 = 1;
1907 } else {
1908 if(cltype27 >= var_new_child->type->table_size) {
1909 var26 = 0;
1910 } else {
1911 var26 = var_new_child->type->type_table[cltype27] == idtype28;
1912 }
1913 }
1914 if (unlikely(!var26)) {
1915 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
1916 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TOpar", var_class_name29);
1917 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8359);
1918 fatal_exit(1);
1919 }
1920 {
1921 nitc__parser_prod___AAnnotations___n_opar_61d(self, var_new_child); /* Direct call parser_prod#AAnnotations#n_opar= on <self:AAnnotations>*/
1922 }
1923 goto RET_LABEL;
1924 } else {
1925 }
1926 {
1927 { /* Inline parser_nodes#AAnnotations#n_items (self) on <self:AAnnotations> */
1928 var32 = self->attrs[COLOR_nitc__parser_nodes__AAnnotations___n_items].val; /* _n_items on <self:AAnnotations> */
1929 if (unlikely(var32 == NULL)) {
1930 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_items");
1931 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2906);
1932 fatal_exit(1);
1933 }
1934 var30 = var32;
1935 RET_LABEL31:(void)0;
1936 }
1937 }
1938 {
1939 var33 = nitc___nitc__ANodes___replace_child(var30, var_old_child, var_new_child);
1940 }
1941 if (var33){
1942 goto RET_LABEL;
1943 } else {
1944 }
1945 var34 = self->attrs[COLOR_nitc__parser_nodes__AAnnotations___n_cpar].val; /* _n_cpar on <self:AAnnotations> */
1946 if (var34 == NULL) {
1947 var35 = 0; /* <var_old_child:ANode> cannot be null */
1948 } else {
1949 { /* Inline kernel#Object#== (var34,var_old_child) on <var34:nullable TCpar> */
1950 var_other = var_old_child;
1951 {
1952 { /* Inline kernel#Object#is_same_instance (var34,var_other) on <var34:nullable TCpar(TCpar)> */
1953 var40 = var34 == var_other;
1954 var38 = var40;
1955 goto RET_LABEL39;
1956 RET_LABEL39:(void)0;
1957 }
1958 }
1959 var36 = var38;
1960 goto RET_LABEL37;
1961 RET_LABEL37:(void)0;
1962 }
1963 var35 = var36;
1964 }
1965 if (var35){
1966 /* <var_new_child:nullable ANode> isa nullable TCpar */
1967 cltype42 = type_nullable__nitc__TCpar.color;
1968 idtype43 = type_nullable__nitc__TCpar.id;
1969 if(var_new_child == NULL) {
1970 var41 = 1;
1971 } else {
1972 if(cltype42 >= var_new_child->type->table_size) {
1973 var41 = 0;
1974 } else {
1975 var41 = var_new_child->type->type_table[cltype42] == idtype43;
1976 }
1977 }
1978 if (unlikely(!var41)) {
1979 var_class_name44 = var_new_child == NULL ? "null" : var_new_child->type->name;
1980 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TCpar", var_class_name44);
1981 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8364);
1982 fatal_exit(1);
1983 }
1984 {
1985 nitc__parser_prod___AAnnotations___n_cpar_61d(self, var_new_child); /* Direct call parser_prod#AAnnotations#n_cpar= on <self:AAnnotations>*/
1986 }
1987 goto RET_LABEL;
1988 } else {
1989 }
1990 var45 = self->attrs[COLOR_nitc__parser_nodes__AAnnotations___n_kwend].val; /* _n_kwend on <self:AAnnotations> */
1991 if (var45 == NULL) {
1992 var46 = 0; /* <var_old_child:ANode> cannot be null */
1993 } else {
1994 { /* Inline kernel#Object#== (var45,var_old_child) on <var45:nullable TKwend> */
1995 var_other = var_old_child;
1996 {
1997 { /* Inline kernel#Object#is_same_instance (var45,var_other) on <var45:nullable TKwend(TKwend)> */
1998 var51 = var45 == var_other;
1999 var49 = var51;
2000 goto RET_LABEL50;
2001 RET_LABEL50:(void)0;
2002 }
2003 }
2004 var47 = var49;
2005 goto RET_LABEL48;
2006 RET_LABEL48:(void)0;
2007 }
2008 var46 = var47;
2009 }
2010 if (var46){
2011 /* <var_new_child:nullable ANode> isa nullable TKwend */
2012 cltype53 = type_nullable__nitc__TKwend.color;
2013 idtype54 = type_nullable__nitc__TKwend.id;
2014 if(var_new_child == NULL) {
2015 var52 = 1;
2016 } else {
2017 if(cltype53 >= var_new_child->type->table_size) {
2018 var52 = 0;
2019 } else {
2020 var52 = var_new_child->type->type_table[cltype53] == idtype54;
2021 }
2022 }
2023 if (unlikely(!var52)) {
2024 var_class_name55 = var_new_child == NULL ? "null" : var_new_child->type->name;
2025 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TKwend", var_class_name55);
2026 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8368);
2027 fatal_exit(1);
2028 }
2029 {
2030 nitc__parser_prod___AAnnotations___n_kwend_61d(self, var_new_child); /* Direct call parser_prod#AAnnotations#n_kwend= on <self:AAnnotations>*/
2031 }
2032 goto RET_LABEL;
2033 } else {
2034 }
2035 RET_LABEL:;
2036 }
2037 /* method parser_prod#AAnnotations#n_kwis= for (self: AAnnotations, nullable TKwis) */
2038 void nitc__parser_prod___AAnnotations___n_kwis_61d(val* self, val* p0) {
2039 val* var_node /* var node: nullable TKwis */;
2040 short int var /* : Bool */;
2041 short int var1 /* : Bool */;
2042 val* var_other /* var other: nullable Object */;
2043 short int var3 /* : Bool */;
2044 short int var4 /* : Bool */;
2045 var_node = p0;
2046 self->attrs[COLOR_nitc__parser_nodes__AAnnotations___n_kwis].val = var_node; /* _n_kwis on <self:AAnnotations> */
2047 if (var_node == NULL) {
2048 var = 0; /* is null */
2049 } else {
2050 var = 1; /* arg is null and recv is not */
2051 }
2052 if (0) {
2053 { /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable TKwis> */
2054 var_other = ((val*)NULL);
2055 {
2056 var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable TKwis(TKwis)>*/
2057 }
2058 var4 = !var3;
2059 var1 = var4;
2060 goto RET_LABEL2;
2061 RET_LABEL2:(void)0;
2062 }
2063 var = var1;
2064 }
2065 if (var){
2066 {
2067 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TKwis(TKwis)> */
2068 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TKwis(TKwis)> */
2069 RET_LABEL5:(void)0;
2070 }
2071 }
2072 } else {
2073 }
2074 RET_LABEL:;
2075 }
2076 /* method parser_prod#AAnnotations#n_at= for (self: AAnnotations, nullable TAt) */
2077 void nitc__parser_prod___AAnnotations___n_at_61d(val* self, val* p0) {
2078 val* var_node /* var node: nullable TAt */;
2079 short int var /* : Bool */;
2080 short int var1 /* : Bool */;
2081 val* var_other /* var other: nullable Object */;
2082 short int var3 /* : Bool */;
2083 short int var4 /* : Bool */;
2084 var_node = p0;
2085 self->attrs[COLOR_nitc__parser_nodes__AAnnotations___n_at].val = var_node; /* _n_at on <self:AAnnotations> */
2086 if (var_node == NULL) {
2087 var = 0; /* is null */
2088 } else {
2089 var = 1; /* arg is null and recv is not */
2090 }
2091 if (0) {
2092 { /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable TAt> */
2093 var_other = ((val*)NULL);
2094 {
2095 var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable TAt(TAt)>*/
2096 }
2097 var4 = !var3;
2098 var1 = var4;
2099 goto RET_LABEL2;
2100 RET_LABEL2:(void)0;
2101 }
2102 var = var1;
2103 }
2104 if (var){
2105 {
2106 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TAt(TAt)> */
2107 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TAt(TAt)> */
2108 RET_LABEL5:(void)0;
2109 }
2110 }
2111 } else {
2112 }
2113 RET_LABEL:;
2114 }
2115 /* method parser_prod#AAnnotations#n_opar= for (self: AAnnotations, nullable TOpar) */
2116 void nitc__parser_prod___AAnnotations___n_opar_61d(val* self, val* p0) {
2117 val* var_node /* var node: nullable TOpar */;
2118 short int var /* : Bool */;
2119 short int var1 /* : Bool */;
2120 val* var_other /* var other: nullable Object */;
2121 short int var3 /* : Bool */;
2122 short int var4 /* : Bool */;
2123 var_node = p0;
2124 self->attrs[COLOR_nitc__parser_nodes__AAnnotations___n_opar].val = var_node; /* _n_opar on <self:AAnnotations> */
2125 if (var_node == NULL) {
2126 var = 0; /* is null */
2127 } else {
2128 var = 1; /* arg is null and recv is not */
2129 }
2130 if (0) {
2131 { /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable TOpar> */
2132 var_other = ((val*)NULL);
2133 {
2134 var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable TOpar(TOpar)>*/
2135 }
2136 var4 = !var3;
2137 var1 = var4;
2138 goto RET_LABEL2;
2139 RET_LABEL2:(void)0;
2140 }
2141 var = var1;
2142 }
2143 if (var){
2144 {
2145 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TOpar(TOpar)> */
2146 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TOpar(TOpar)> */
2147 RET_LABEL5:(void)0;
2148 }
2149 }
2150 } else {
2151 }
2152 RET_LABEL:;
2153 }
2154 /* method parser_prod#AAnnotations#n_cpar= for (self: AAnnotations, nullable TCpar) */
2155 void nitc__parser_prod___AAnnotations___n_cpar_61d(val* self, val* p0) {
2156 val* var_node /* var node: nullable TCpar */;
2157 short int var /* : Bool */;
2158 short int var1 /* : Bool */;
2159 val* var_other /* var other: nullable Object */;
2160 short int var3 /* : Bool */;
2161 short int var4 /* : Bool */;
2162 var_node = p0;
2163 self->attrs[COLOR_nitc__parser_nodes__AAnnotations___n_cpar].val = var_node; /* _n_cpar on <self:AAnnotations> */
2164 if (var_node == NULL) {
2165 var = 0; /* is null */
2166 } else {
2167 var = 1; /* arg is null and recv is not */
2168 }
2169 if (0) {
2170 { /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable TCpar> */
2171 var_other = ((val*)NULL);
2172 {
2173 var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable TCpar(TCpar)>*/
2174 }
2175 var4 = !var3;
2176 var1 = var4;
2177 goto RET_LABEL2;
2178 RET_LABEL2:(void)0;
2179 }
2180 var = var1;
2181 }
2182 if (var){
2183 {
2184 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TCpar(TCpar)> */
2185 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TCpar(TCpar)> */
2186 RET_LABEL5:(void)0;
2187 }
2188 }
2189 } else {
2190 }
2191 RET_LABEL:;
2192 }
2193 /* method parser_prod#AAnnotations#n_kwend= for (self: AAnnotations, nullable TKwend) */
2194 void nitc__parser_prod___AAnnotations___n_kwend_61d(val* self, val* p0) {
2195 val* var_node /* var node: nullable TKwend */;
2196 short int var /* : Bool */;
2197 short int var1 /* : Bool */;
2198 val* var_other /* var other: nullable Object */;
2199 short int var3 /* : Bool */;
2200 short int var4 /* : Bool */;
2201 var_node = p0;
2202 self->attrs[COLOR_nitc__parser_nodes__AAnnotations___n_kwend].val = var_node; /* _n_kwend on <self:AAnnotations> */
2203 if (var_node == NULL) {
2204 var = 0; /* is null */
2205 } else {
2206 var = 1; /* arg is null and recv is not */
2207 }
2208 if (0) {
2209 { /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable TKwend> */
2210 var_other = ((val*)NULL);
2211 {
2212 var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable TKwend(TKwend)>*/
2213 }
2214 var4 = !var3;
2215 var1 = var4;
2216 goto RET_LABEL2;
2217 RET_LABEL2:(void)0;
2218 }
2219 var = var1;
2220 }
2221 if (var){
2222 {
2223 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TKwend(TKwend)> */
2224 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TKwend(TKwend)> */
2225 RET_LABEL5:(void)0;
2226 }
2227 }
2228 } else {
2229 }
2230 RET_LABEL:;
2231 }
2232 /* method parser_prod#AAnnotations#visit_all for (self: AAnnotations, Visitor) */
2233 void nitc__parser_prod___AAnnotations___nitc__parser_nodes__ANode__visit_all(val* self, val* p0) {
2234 val* var_v /* var v: Visitor */;
2235 val* var /* : nullable TKwis */;
2236 val* var1 /* : nullable TAt */;
2237 val* var2 /* : nullable TOpar */;
2238 val* var3 /* : ANodes[AAnnotation] */;
2239 val* var5 /* : ANodes[AAnnotation] */;
2240 val* var6 /* : nullable TCpar */;
2241 val* var7 /* : nullable TKwend */;
2242 var_v = p0;
2243 var = self->attrs[COLOR_nitc__parser_nodes__AAnnotations___n_kwis].val; /* _n_kwis on <self:AAnnotations> */
2244 {
2245 nitc___nitc__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2246 }
2247 var1 = self->attrs[COLOR_nitc__parser_nodes__AAnnotations___n_at].val; /* _n_at on <self:AAnnotations> */
2248 {
2249 nitc___nitc__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2250 }
2251 var2 = self->attrs[COLOR_nitc__parser_nodes__AAnnotations___n_opar].val; /* _n_opar on <self:AAnnotations> */
2252 {
2253 nitc___nitc__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2254 }
2255 {
2256 { /* Inline parser_nodes#AAnnotations#n_items (self) on <self:AAnnotations> */
2257 var5 = self->attrs[COLOR_nitc__parser_nodes__AAnnotations___n_items].val; /* _n_items on <self:AAnnotations> */
2258 if (unlikely(var5 == NULL)) {
2259 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_items");
2260 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2906);
2261 fatal_exit(1);
2262 }
2263 var3 = var5;
2264 RET_LABEL4:(void)0;
2265 }
2266 }
2267 {
2268 nitc___nitc__ANodes___visit_all(var3, var_v); /* Direct call parser_nodes#ANodes#visit_all on <var3:ANodes[AAnnotation]>*/
2269 }
2270 var6 = self->attrs[COLOR_nitc__parser_nodes__AAnnotations___n_cpar].val; /* _n_cpar on <self:AAnnotations> */
2271 {
2272 nitc___nitc__Visitor___enter_visit(var_v, var6); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2273 }
2274 var7 = self->attrs[COLOR_nitc__parser_nodes__AAnnotations___n_kwend].val; /* _n_kwend on <self:AAnnotations> */
2275 {
2276 nitc___nitc__Visitor___enter_visit(var_v, var7); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
2277 }
2278 RET_LABEL:;
2279 }
2280 /* 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) */
2281 void nitc__parser_prod___AAnnotation___init_aannotation(val* self, val* p0, val* p1, val* p2, val* p3, val* p4, val* p5, val* p6, val* p7) {
2282 val* var_n_doc /* var n_doc: nullable ADoc */;
2283 val* var_n_kwredef /* var n_kwredef: nullable TKwredef */;
2284 val* var_n_visibility /* var n_visibility: nullable AVisibility */;
2285 val* var_n_atid /* var n_atid: nullable AAtid */;
2286 val* var_n_opar /* var n_opar: nullable TOpar */;
2287 val* var_n_args /* var n_args: Collection[Object] */;
2288 val* var_n_cpar /* var n_cpar: nullable TCpar */;
2289 val* var_n_annotations /* var n_annotations: nullable AAnnotations */;
2290 short int var /* : Bool */;
2291 short int var2 /* : Bool */;
2292 val* var_other /* var other: nullable Object */;
2293 short int var4 /* : Bool */;
2294 short int var5 /* : Bool */;
2295 short int var7 /* : Bool */;
2296 short int var8 /* : Bool */;
2297 short int var10 /* : Bool */;
2298 short int var11 /* : Bool */;
2299 short int var13 /* : Bool */;
2300 short int var14 /* : Bool */;
2301 short int var16 /* : Bool */;
2302 short int var17 /* : Bool */;
2303 short int var20 /* : Bool */;
2304 short int var21 /* : Bool */;
2305 short int var23 /* : Bool */;
2306 short int var24 /* : Bool */;
2307 val* var26 /* : ANodes[AExpr] */;
2308 val* var28 /* : ANodes[AExpr] */;
2309 short int var29 /* : Bool */;
2310 short int var30 /* : Bool */;
2311 short int var32 /* : Bool */;
2312 short int var33 /* : Bool */;
2313 short int var35 /* : Bool */;
2314 short int var36 /* : Bool */;
2315 short int var38 /* : Bool */;
2316 short int var39 /* : Bool */;
2317 {
2318 { /* Inline kernel#Object#init (self) on <self:AAnnotation> */
2319 RET_LABEL1:(void)0;
2320 }
2321 }
2322 var_n_doc = p0;
2323 var_n_kwredef = p1;
2324 var_n_visibility = p2;
2325 var_n_atid = p3;
2326 var_n_opar = p4;
2327 var_n_args = p5;
2328 var_n_cpar = p6;
2329 var_n_annotations = p7;
2330 self->attrs[COLOR_nitc__parser_nodes__ADefinition___n_doc].val = var_n_doc; /* _n_doc on <self:AAnnotation> */
2331 if (var_n_doc == NULL) {
2332 var = 0; /* is null */
2333 } else {
2334 var = 1; /* arg is null and recv is not */
2335 }
2336 if (0) {
2337 { /* Inline kernel#Object#!= (var_n_doc,((val*)NULL)) on <var_n_doc:nullable ADoc> */
2338 var_other = ((val*)NULL);
2339 {
2340 var4 = ((short int(*)(val* self, val* p0))(var_n_doc->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_n_doc, var_other); /* == on <var_n_doc:nullable ADoc(ADoc)>*/
2341 }
2342 var5 = !var4;
2343 var2 = var5;
2344 goto RET_LABEL3;
2345 RET_LABEL3:(void)0;
2346 }
2347 var = var2;
2348 }
2349 if (var){
2350 {
2351 { /* Inline parser_nodes#ANode#parent= (var_n_doc,self) on <var_n_doc:nullable ADoc(ADoc)> */
2352 var_n_doc->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_doc:nullable ADoc(ADoc)> */
2353 RET_LABEL6:(void)0;
2354 }
2355 }
2356 } else {
2357 }
2358 self->attrs[COLOR_nitc__parser_nodes__ADefinition___n_kwredef].val = var_n_kwredef; /* _n_kwredef on <self:AAnnotation> */
2359 if (var_n_kwredef == NULL) {
2360 var7 = 0; /* is null */
2361 } else {
2362 var7 = 1; /* arg is null and recv is not */
2363 }
2364 if (0) {
2365 { /* Inline kernel#Object#!= (var_n_kwredef,((val*)NULL)) on <var_n_kwredef:nullable TKwredef> */
2366 var_other = ((val*)NULL);
2367 {
2368 var10 = ((short int(*)(val* self, val* p0))(var_n_kwredef->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_n_kwredef, var_other); /* == on <var_n_kwredef:nullable TKwredef(TKwredef)>*/
2369 }
2370 var11 = !var10;
2371 var8 = var11;
2372 goto RET_LABEL9;
2373 RET_LABEL9:(void)0;
2374 }
2375 var7 = var8;
2376 }
2377 if (var7){
2378 {
2379 { /* Inline parser_nodes#ANode#parent= (var_n_kwredef,self) on <var_n_kwredef:nullable TKwredef(TKwredef)> */
2380 var_n_kwredef->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_kwredef:nullable TKwredef(TKwredef)> */
2381 RET_LABEL12:(void)0;
2382 }
2383 }
2384 } else {
2385 }
2386 self->attrs[COLOR_nitc__parser_nodes__ADefinition___n_visibility].val = var_n_visibility; /* _n_visibility on <self:AAnnotation> */
2387 if (var_n_visibility == NULL) {
2388 var13 = 0; /* is null */
2389 } else {
2390 var13 = 1; /* arg is null and recv is not */
2391 }
2392 if (0) {
2393 { /* Inline kernel#Object#!= (var_n_visibility,((val*)NULL)) on <var_n_visibility:nullable AVisibility> */
2394 var_other = ((val*)NULL);
2395 {
2396 var16 = ((short int(*)(val* self, val* p0))(var_n_visibility->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_n_visibility, var_other); /* == on <var_n_visibility:nullable AVisibility(AVisibility)>*/
2397 }
2398 var17 = !var16;
2399 var14 = var17;
2400 goto RET_LABEL15;
2401 RET_LABEL15:(void)0;
2402 }
2403 var13 = var14;
2404 }
2405 if (var13){
2406 {
2407 { /* Inline parser_nodes#ANode#parent= (var_n_visibility,self) on <var_n_visibility:nullable AVisibility(AVisibility)> */
2408 var_n_visibility->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_visibility:nullable AVisibility(AVisibility)> */
2409 RET_LABEL18:(void)0;
2410 }
2411 }
2412 } else {
2413 }
2414 if (unlikely(var_n_atid == NULL)) {
2415 PRINT_ERROR("Runtime error: %s", "Cast failed");
2416 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8428);
2417 fatal_exit(1);
2418 }
2419 self->attrs[COLOR_nitc__parser_nodes__AAnnotation___n_atid].val = var_n_atid; /* _n_atid on <self:AAnnotation> */
2420 if (var_n_atid == NULL) {
2421 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2422 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8429);
2423 fatal_exit(1);
2424 } else {
2425 { /* Inline parser_nodes#ANode#parent= (var_n_atid,self) on <var_n_atid:nullable AAtid> */
2426 if (unlikely(var_n_atid == NULL)) {
2427 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2428 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
2429 fatal_exit(1);
2430 }
2431 var_n_atid->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_atid:nullable AAtid> */
2432 RET_LABEL19:(void)0;
2433 }
2434 }
2435 self->attrs[COLOR_nitc__parser_nodes__AAnnotation___n_opar].val = var_n_opar; /* _n_opar on <self:AAnnotation> */
2436 if (var_n_opar == NULL) {
2437 var20 = 0; /* is null */
2438 } else {
2439 var20 = 1; /* arg is null and recv is not */
2440 }
2441 if (0) {
2442 { /* Inline kernel#Object#!= (var_n_opar,((val*)NULL)) on <var_n_opar:nullable TOpar> */
2443 var_other = ((val*)NULL);
2444 {
2445 var23 = ((short int(*)(val* self, val* p0))(var_n_opar->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_n_opar, var_other); /* == on <var_n_opar:nullable TOpar(TOpar)>*/
2446 }
2447 var24 = !var23;
2448 var21 = var24;
2449 goto RET_LABEL22;
2450 RET_LABEL22:(void)0;
2451 }
2452 var20 = var21;
2453 }
2454 if (var20){
2455 {
2456 { /* Inline parser_nodes#ANode#parent= (var_n_opar,self) on <var_n_opar:nullable TOpar(TOpar)> */
2457 var_n_opar->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_opar:nullable TOpar(TOpar)> */
2458 RET_LABEL25:(void)0;
2459 }
2460 }
2461 } else {
2462 }
2463 {
2464 { /* Inline parser_nodes#AAnnotation#n_args (self) on <self:AAnnotation> */
2465 var28 = self->attrs[COLOR_nitc__parser_nodes__AAnnotation___n_args].val; /* _n_args on <self:AAnnotation> */
2466 if (unlikely(var28 == NULL)) {
2467 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
2468 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2926);
2469 fatal_exit(1);
2470 }
2471 var26 = var28;
2472 RET_LABEL27:(void)0;
2473 }
2474 }
2475 {
2476 nitc___nitc__ANodes___unsafe_add_all(var26, var_n_args); /* Direct call parser_nodes#ANodes#unsafe_add_all on <var26:ANodes[AExpr]>*/
2477 }
2478 self->attrs[COLOR_nitc__parser_nodes__AAnnotation___n_cpar].val = var_n_cpar; /* _n_cpar on <self:AAnnotation> */
2479 if (var_n_cpar == NULL) {
2480 var29 = 0; /* is null */
2481 } else {
2482 var29 = 1; /* arg is null and recv is not */
2483 }
2484 if (0) {
2485 { /* Inline kernel#Object#!= (var_n_cpar,((val*)NULL)) on <var_n_cpar:nullable TCpar> */
2486 var_other = ((val*)NULL);
2487 {
2488 var32 = ((short int(*)(val* self, val* p0))(var_n_cpar->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_n_cpar, var_other); /* == on <var_n_cpar:nullable TCpar(TCpar)>*/
2489 }
2490 var33 = !var32;
2491 var30 = var33;
2492 goto RET_LABEL31;
2493 RET_LABEL31:(void)0;
2494 }
2495 var29 = var30;
2496 }
2497 if (var29){
2498 {
2499 { /* Inline parser_nodes#ANode#parent= (var_n_cpar,self) on <var_n_cpar:nullable TCpar(TCpar)> */
2500 var_n_cpar->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_cpar:nullable TCpar(TCpar)> */
2501 RET_LABEL34:(void)0;
2502 }
2503 }
2504 } else {
2505 }
2506 self->attrs[COLOR_nitc__parser_nodes__Prod___n_annotations].val = var_n_annotations; /* _n_annotations on <self:AAnnotation> */
2507 if (var_n_annotations == NULL) {
2508 var35 = 0; /* is null */
2509 } else {
2510 var35 = 1; /* arg is null and recv is not */
2511 }
2512 if (0) {
2513 { /* Inline kernel#Object#!= (var_n_annotations,((val*)NULL)) on <var_n_annotations:nullable AAnnotations> */
2514 var_other = ((val*)NULL);
2515 {
2516 var38 = ((short int(*)(val* self, val* p0))(var_n_annotations->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_n_annotations, var_other); /* == on <var_n_annotations:nullable AAnnotations(AAnnotations)>*/
2517 }
2518 var39 = !var38;
2519 var36 = var39;
2520 goto RET_LABEL37;
2521 RET_LABEL37:(void)0;
2522 }
2523 var35 = var36;
2524 }
2525 if (var35){
2526 {
2527 { /* Inline parser_nodes#ANode#parent= (var_n_annotations,self) on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
2528 var_n_annotations->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_annotations:nullable AAnnotations(AAnnotations)> */
2529 RET_LABEL40:(void)0;
2530 }
2531 }
2532 } else {
2533 }
2534 RET_LABEL:;
2535 }
2536 /* method parser_prod#AAnnotation#replace_child for (self: AAnnotation, ANode, nullable ANode) */
2537 void nitc__parser_prod___AAnnotation___nitc__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
2538 val* var_old_child /* var old_child: ANode */;
2539 val* var_new_child /* var new_child: nullable ANode */;
2540 val* var /* : nullable ADoc */;
2541 short int var1 /* : Bool */;
2542 short int var2 /* : Bool */;
2543 val* var_other /* var other: nullable Object */;
2544 short int var4 /* : Bool */;
2545 short int var6 /* : Bool */;
2546 short int var7 /* : Bool */;
2547 int cltype;
2548 int idtype;
2549 const char* var_class_name;
2550 val* var8 /* : nullable TKwredef */;
2551 short int var9 /* : Bool */;
2552 short int var10 /* : Bool */;
2553 short int var12 /* : Bool */;
2554 short int var14 /* : Bool */;
2555 short int var15 /* : Bool */;
2556 int cltype16;
2557 int idtype17;
2558 const char* var_class_name18;
2559 val* var19 /* : nullable AVisibility */;
2560 short int var20 /* : Bool */;
2561 short int var21 /* : Bool */;
2562 short int var23 /* : Bool */;
2563 short int var25 /* : Bool */;
2564 short int var26 /* : Bool */;
2565 int cltype27;
2566 int idtype28;
2567 const char* var_class_name29;
2568 val* var30 /* : AAtid */;
2569 short int var31 /* : Bool */;
2570 short int var33 /* : Bool */;
2571 short int var35 /* : Bool */;
2572 short int var36 /* : Bool */;
2573 int cltype37;
2574 int idtype38;
2575 const char* var_class_name39;
2576 val* var40 /* : nullable TOpar */;
2577 short int var41 /* : Bool */;
2578 short int var42 /* : Bool */;
2579 short int var44 /* : Bool */;
2580 short int var46 /* : Bool */;
2581 short int var47 /* : Bool */;
2582 int cltype48;
2583 int idtype49;
2584 const char* var_class_name50;
2585 val* var51 /* : ANodes[AExpr] */;
2586 val* var53 /* : ANodes[AExpr] */;
2587 short int var54 /* : Bool */;
2588 val* var55 /* : nullable TCpar */;
2589 short int var56 /* : Bool */;
2590 short int var57 /* : Bool */;
2591 short int var59 /* : Bool */;
2592 short int var61 /* : Bool */;
2593 short int var62 /* : Bool */;
2594 int cltype63;
2595 int idtype64;
2596 const char* var_class_name65;
2597 val* var66 /* : nullable AAnnotations */;
2598 short int var67 /* : Bool */;
2599 short int var68 /* : Bool */;
2600 short int var70 /* : Bool */;
2601 short int var72 /* : Bool */;
2602 short int var73 /* : Bool */;
2603 int cltype74;
2604 int idtype75;
2605 const char* var_class_name76;
2606 var_old_child = p0;
2607 var_new_child = p1;
2608 var = self->attrs[COLOR_nitc__parser_nodes__ADefinition___n_doc].val; /* _n_doc on <self:AAnnotation> */
2609 if (var == NULL) {
2610 var1 = 0; /* <var_old_child:ANode> cannot be null */
2611 } else {
2612 { /* Inline kernel#Object#== (var,var_old_child) on <var:nullable ADoc> */
2613 var_other = var_old_child;
2614 {
2615 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:nullable ADoc(ADoc)> */
2616 var6 = var == var_other;
2617 var4 = var6;
2618 goto RET_LABEL5;
2619 RET_LABEL5:(void)0;
2620 }
2621 }
2622 var2 = var4;
2623 goto RET_LABEL3;
2624 RET_LABEL3:(void)0;
2625 }
2626 var1 = var2;
2627 }
2628 if (var1){
2629 /* <var_new_child:nullable ANode> isa nullable ADoc */
2630 cltype = type_nullable__nitc__ADoc.color;
2631 idtype = type_nullable__nitc__ADoc.id;
2632 if(var_new_child == NULL) {
2633 var7 = 1;
2634 } else {
2635 if(cltype >= var_new_child->type->table_size) {
2636 var7 = 0;
2637 } else {
2638 var7 = var_new_child->type->type_table[cltype] == idtype;
2639 }
2640 }
2641 if (unlikely(!var7)) {
2642 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
2643 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ADoc", var_class_name);
2644 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8442);
2645 fatal_exit(1);
2646 }
2647 {
2648 ((void(*)(val* self, val* p0))(self->class->vft[COLOR_nitc__parser_nodes__ADefinition__n_doc_61d]))(self, var_new_child); /* n_doc= on <self:AAnnotation>*/
2649 }
2650 goto RET_LABEL;
2651 } else {
2652 }
2653 var8 = self->attrs[COLOR_nitc__parser_nodes__ADefinition___n_kwredef].val; /* _n_kwredef on <self:AAnnotation> */
2654 if (var8 == NULL) {
2655 var9 = 0; /* <var_old_child:ANode> cannot be null */
2656 } else {
2657 { /* Inline kernel#Object#== (var8,var_old_child) on <var8:nullable TKwredef> */
2658 var_other = var_old_child;
2659 {
2660 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:nullable TKwredef(TKwredef)> */
2661 var14 = var8 == var_other;
2662 var12 = var14;
2663 goto RET_LABEL13;
2664 RET_LABEL13:(void)0;
2665 }
2666 }
2667 var10 = var12;
2668 goto RET_LABEL11;
2669 RET_LABEL11:(void)0;
2670 }
2671 var9 = var10;
2672 }
2673 if (var9){
2674 /* <var_new_child:nullable ANode> isa nullable TKwredef */
2675 cltype16 = type_nullable__nitc__TKwredef.color;
2676 idtype17 = type_nullable__nitc__TKwredef.id;
2677 if(var_new_child == NULL) {
2678 var15 = 1;
2679 } else {
2680 if(cltype16 >= var_new_child->type->table_size) {
2681 var15 = 0;
2682 } else {
2683 var15 = var_new_child->type->type_table[cltype16] == idtype17;
2684 }
2685 }
2686 if (unlikely(!var15)) {
2687 var_class_name18 = var_new_child == NULL ? "null" : var_new_child->type->name;
2688 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TKwredef", var_class_name18);
2689 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8446);
2690 fatal_exit(1);
2691 }
2692 {
2693 ((void(*)(val* self, val* p0))(self->class->vft[COLOR_nitc__parser_nodes__ADefinition__n_kwredef_61d]))(self, var_new_child); /* n_kwredef= on <self:AAnnotation>*/
2694 }
2695 goto RET_LABEL;
2696 } else {
2697 }
2698 var19 = self->attrs[COLOR_nitc__parser_nodes__ADefinition___n_visibility].val; /* _n_visibility on <self:AAnnotation> */
2699 if (var19 == NULL) {
2700 var20 = 0; /* <var_old_child:ANode> cannot be null */
2701 } else {
2702 { /* Inline kernel#Object#== (var19,var_old_child) on <var19:nullable AVisibility> */
2703 var_other = var_old_child;
2704 {
2705 { /* Inline kernel#Object#is_same_instance (var19,var_other) on <var19:nullable AVisibility(AVisibility)> */
2706 var25 = var19 == var_other;
2707 var23 = var25;
2708 goto RET_LABEL24;
2709 RET_LABEL24:(void)0;
2710 }
2711 }
2712 var21 = var23;
2713 goto RET_LABEL22;
2714 RET_LABEL22:(void)0;
2715 }
2716 var20 = var21;
2717 }
2718 if (var20){
2719 /* <var_new_child:nullable ANode> isa nullable AVisibility */
2720 cltype27 = type_nullable__nitc__AVisibility.color;
2721 idtype28 = type_nullable__nitc__AVisibility.id;
2722 if(var_new_child == NULL) {
2723 var26 = 1;
2724 } else {
2725 if(cltype27 >= var_new_child->type->table_size) {
2726 var26 = 0;
2727 } else {
2728 var26 = var_new_child->type->type_table[cltype27] == idtype28;
2729 }
2730 }
2731 if (unlikely(!var26)) {
2732 var_class_name29 = var_new_child == NULL ? "null" : var_new_child->type->name;
2733 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AVisibility", var_class_name29);
2734 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8450);
2735 fatal_exit(1);
2736 }
2737 {
2738 ((void(*)(val* self, val* p0))(self->class->vft[COLOR_nitc__parser_nodes__ADefinition__n_visibility_61d]))(self, var_new_child); /* n_visibility= on <self:AAnnotation>*/
2739 }
2740 goto RET_LABEL;
2741 } else {
2742 }
2743 var30 = self->attrs[COLOR_nitc__parser_nodes__AAnnotation___n_atid].val; /* _n_atid on <self:AAnnotation> */
2744 if (unlikely(var30 == NULL)) {
2745 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_atid");
2746 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8453);
2747 fatal_exit(1);
2748 }
2749 {
2750 { /* Inline kernel#Object#== (var30,var_old_child) on <var30:AAtid> */
2751 var_other = var_old_child;
2752 {
2753 { /* Inline kernel#Object#is_same_instance (var30,var_other) on <var30:AAtid> */
2754 var35 = var30 == var_other;
2755 var33 = var35;
2756 goto RET_LABEL34;
2757 RET_LABEL34:(void)0;
2758 }
2759 }
2760 var31 = var33;
2761 goto RET_LABEL32;
2762 RET_LABEL32:(void)0;
2763 }
2764 }
2765 if (var31){
2766 /* <var_new_child:nullable ANode> isa AAtid */
2767 cltype37 = type_nitc__AAtid.color;
2768 idtype38 = type_nitc__AAtid.id;
2769 if(var_new_child == NULL) {
2770 var36 = 0;
2771 } else {
2772 if(cltype37 >= var_new_child->type->table_size) {
2773 var36 = 0;
2774 } else {
2775 var36 = var_new_child->type->type_table[cltype37] == idtype38;
2776 }
2777 }
2778 if (unlikely(!var36)) {
2779 var_class_name39 = var_new_child == NULL ? "null" : var_new_child->type->name;
2780 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AAtid", var_class_name39);
2781 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8454);
2782 fatal_exit(1);
2783 }
2784 {
2785 ((void(*)(val* self, val* p0))(self->class->vft[COLOR_nitc__parser_nodes__AAnnotation__n_atid_61d]))(self, var_new_child); /* n_atid= on <self:AAnnotation>*/
2786 }
2787 goto RET_LABEL;
2788 } else {
2789 }
2790 var40 = self->attrs[COLOR_nitc__parser_nodes__AAnnotation___n_opar].val; /* _n_opar on <self:AAnnotation> */
2791 if (var40 == NULL) {
2792 var41 = 0; /* <var_old_child:ANode> cannot be null */
2793 } else {
2794 { /* Inline kernel#Object#== (var40,var_old_child) on <var40:nullable TOpar> */
2795 var_other = var_old_child;
2796 {
2797 { /* Inline kernel#Object#is_same_instance (var40,var_other) on <var40:nullable TOpar(TOpar)> */
2798 var46 = var40 == var_other;
2799 var44 = var46;
2800 goto RET_LABEL45;
2801 RET_LABEL45:(void)0;
2802 }
2803 }
2804 var42 = var44;
2805 goto RET_LABEL43;
2806 RET_LABEL43:(void)0;
2807 }
2808 var41 = var42;
2809 }
2810 if (var41){
2811 /* <var_new_child:nullable ANode> isa nullable TOpar */
2812 cltype48 = type_nullable__nitc__TOpar.color;
2813 idtype49 = type_nullable__nitc__TOpar.id;
2814 if(var_new_child == NULL) {
2815 var47 = 1;
2816 } else {
2817 if(cltype48 >= var_new_child->type->table_size) {
2818 var47 = 0;
2819 } else {
2820 var47 = var_new_child->type->type_table[cltype48] == idtype49;
2821 }
2822 }
2823 if (unlikely(!var47)) {
2824 var_class_name50 = var_new_child == NULL ? "null" : var_new_child->type->name;
2825 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TOpar", var_class_name50);
2826 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8458);
2827 fatal_exit(1);
2828 }
2829 {
2830 ((void(*)(val* self, val* p0))(self->class->vft[COLOR_nitc__parser_nodes__AAnnotation__n_opar_61d]))(self, var_new_child); /* n_opar= on <self:AAnnotation>*/
2831 }
2832 goto RET_LABEL;
2833 } else {
2834 }
2835 {
2836 { /* Inline parser_nodes#AAnnotation#n_args (self) on <self:AAnnotation> */
2837 var53 = self->attrs[COLOR_nitc__parser_nodes__AAnnotation___n_args].val; /* _n_args on <self:AAnnotation> */
2838 if (unlikely(var53 == NULL)) {
2839 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
2840 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2926);
2841 fatal_exit(1);
2842 }
2843 var51 = var53;
2844 RET_LABEL52:(void)0;
2845 }
2846 }
2847 {
2848 var54 = nitc___nitc__ANodes___replace_child(var51, var_old_child, var_new_child);
2849 }
2850 if (var54){
2851 goto RET_LABEL;
2852 } else {
2853 }
2854 var55 = self->attrs[COLOR_nitc__parser_nodes__AAnnotation___n_cpar].val; /* _n_cpar on <self:AAnnotation> */
2855 if (var55 == NULL) {
2856 var56 = 0; /* <var_old_child:ANode> cannot be null */
2857 } else {
2858 { /* Inline kernel#Object#== (var55,var_old_child) on <var55:nullable TCpar> */
2859 var_other = var_old_child;
2860 {
2861 { /* Inline kernel#Object#is_same_instance (var55,var_other) on <var55:nullable TCpar(TCpar)> */
2862 var61 = var55 == var_other;
2863 var59 = var61;
2864 goto RET_LABEL60;
2865 RET_LABEL60:(void)0;
2866 }
2867 }
2868 var57 = var59;
2869 goto RET_LABEL58;
2870 RET_LABEL58:(void)0;
2871 }
2872 var56 = var57;
2873 }
2874 if (var56){
2875 /* <var_new_child:nullable ANode> isa nullable TCpar */
2876 cltype63 = type_nullable__nitc__TCpar.color;
2877 idtype64 = type_nullable__nitc__TCpar.id;
2878 if(var_new_child == NULL) {
2879 var62 = 1;
2880 } else {
2881 if(cltype63 >= var_new_child->type->table_size) {
2882 var62 = 0;
2883 } else {
2884 var62 = var_new_child->type->type_table[cltype63] == idtype64;
2885 }
2886 }
2887 if (unlikely(!var62)) {
2888 var_class_name65 = var_new_child == NULL ? "null" : var_new_child->type->name;
2889 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable TCpar", var_class_name65);
2890 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8463);
2891 fatal_exit(1);
2892 }
2893 {
2894 ((void(*)(val* self, val* p0))(self->class->vft[COLOR_nitc__parser_nodes__AAnnotation__n_cpar_61d]))(self, var_new_child); /* n_cpar= on <self:AAnnotation>*/
2895 }
2896 goto RET_LABEL;
2897 } else {
2898 }
2899 var66 = self->attrs[COLOR_nitc__parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AAnnotation> */
2900 if (var66 == NULL) {
2901 var67 = 0; /* <var_old_child:ANode> cannot be null */
2902 } else {
2903 { /* Inline kernel#Object#== (var66,var_old_child) on <var66:nullable AAnnotations> */
2904 var_other = var_old_child;
2905 {
2906 { /* Inline kernel#Object#is_same_instance (var66,var_other) on <var66:nullable AAnnotations(AAnnotations)> */
2907 var72 = var66 == var_other;
2908 var70 = var72;
2909 goto RET_LABEL71;
2910 RET_LABEL71:(void)0;
2911 }
2912 }
2913 var68 = var70;
2914 goto RET_LABEL69;
2915 RET_LABEL69:(void)0;
2916 }
2917 var67 = var68;
2918 }
2919 if (var67){
2920 /* <var_new_child:nullable ANode> isa nullable AAnnotations */
2921 cltype74 = type_nullable__nitc__AAnnotations.color;
2922 idtype75 = type_nullable__nitc__AAnnotations.id;
2923 if(var_new_child == NULL) {
2924 var73 = 1;
2925 } else {
2926 if(cltype74 >= var_new_child->type->table_size) {
2927 var73 = 0;
2928 } else {
2929 var73 = var_new_child->type->type_table[cltype74] == idtype75;
2930 }
2931 }
2932 if (unlikely(!var73)) {
2933 var_class_name76 = var_new_child == NULL ? "null" : var_new_child->type->name;
2934 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable AAnnotations", var_class_name76);
2935 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8467);
2936 fatal_exit(1);
2937 }
2938 {
2939 ((void(*)(val* self, val* p0))(self->class->vft[COLOR_nitc__parser_nodes__Prod__n_annotations_61d]))(self, var_new_child); /* n_annotations= on <self:AAnnotation>*/
2940 }
2941 goto RET_LABEL;
2942 } else {
2943 }
2944 RET_LABEL:;
2945 }
2946 /* method parser_prod#AAnnotation#n_doc= for (self: AAnnotation, nullable ADoc) */
2947 void nitc__parser_prod___AAnnotation___nitc__parser_nodes__ADefinition__n_doc_61d(val* self, val* p0) {
2948 val* var_node /* var node: nullable ADoc */;
2949 short int var /* : Bool */;
2950 short int var1 /* : Bool */;
2951 val* var_other /* var other: nullable Object */;
2952 short int var3 /* : Bool */;
2953 short int var4 /* : Bool */;
2954 var_node = p0;
2955 self->attrs[COLOR_nitc__parser_nodes__ADefinition___n_doc].val = var_node; /* _n_doc on <self:AAnnotation> */
2956 if (var_node == NULL) {
2957 var = 0; /* is null */
2958 } else {
2959 var = 1; /* arg is null and recv is not */
2960 }
2961 if (0) {
2962 { /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable ADoc> */
2963 var_other = ((val*)NULL);
2964 {
2965 var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable ADoc(ADoc)>*/
2966 }
2967 var4 = !var3;
2968 var1 = var4;
2969 goto RET_LABEL2;
2970 RET_LABEL2:(void)0;
2971 }
2972 var = var1;
2973 }
2974 if (var){
2975 {
2976 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable ADoc(ADoc)> */
2977 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable ADoc(ADoc)> */
2978 RET_LABEL5:(void)0;
2979 }
2980 }
2981 } else {
2982 }
2983 RET_LABEL:;
2984 }
2985 /* method parser_prod#AAnnotation#n_kwredef= for (self: AAnnotation, nullable TKwredef) */
2986 void nitc__parser_prod___AAnnotation___nitc__parser_nodes__ADefinition__n_kwredef_61d(val* self, val* p0) {
2987 val* var_node /* var node: nullable TKwredef */;
2988 short int var /* : Bool */;
2989 short int var1 /* : Bool */;
2990 val* var_other /* var other: nullable Object */;
2991 short int var3 /* : Bool */;
2992 short int var4 /* : Bool */;
2993 var_node = p0;
2994 self->attrs[COLOR_nitc__parser_nodes__ADefinition___n_kwredef].val = var_node; /* _n_kwredef on <self:AAnnotation> */
2995 if (var_node == NULL) {
2996 var = 0; /* is null */
2997 } else {
2998 var = 1; /* arg is null and recv is not */
2999 }
3000 if (0) {
3001 { /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable TKwredef> */
3002 var_other = ((val*)NULL);
3003 {
3004 var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable TKwredef(TKwredef)>*/
3005 }
3006 var4 = !var3;
3007 var1 = var4;
3008 goto RET_LABEL2;
3009 RET_LABEL2:(void)0;
3010 }
3011 var = var1;
3012 }
3013 if (var){
3014 {
3015 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TKwredef(TKwredef)> */
3016 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TKwredef(TKwredef)> */
3017 RET_LABEL5:(void)0;
3018 }
3019 }
3020 } else {
3021 }
3022 RET_LABEL:;
3023 }
3024 /* method parser_prod#AAnnotation#n_visibility= for (self: AAnnotation, nullable AVisibility) */
3025 void nitc__parser_prod___AAnnotation___nitc__parser_nodes__ADefinition__n_visibility_61d(val* self, val* p0) {
3026 val* var_node /* var node: nullable AVisibility */;
3027 short int var /* : Bool */;
3028 short int var1 /* : Bool */;
3029 val* var_other /* var other: nullable Object */;
3030 short int var3 /* : Bool */;
3031 short int var4 /* : Bool */;
3032 var_node = p0;
3033 self->attrs[COLOR_nitc__parser_nodes__ADefinition___n_visibility].val = var_node; /* _n_visibility on <self:AAnnotation> */
3034 if (var_node == NULL) {
3035 var = 0; /* is null */
3036 } else {
3037 var = 1; /* arg is null and recv is not */
3038 }
3039 if (0) {
3040 { /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable AVisibility> */
3041 var_other = ((val*)NULL);
3042 {
3043 var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable AVisibility(AVisibility)>*/
3044 }
3045 var4 = !var3;
3046 var1 = var4;
3047 goto RET_LABEL2;
3048 RET_LABEL2:(void)0;
3049 }
3050 var = var1;
3051 }
3052 if (var){
3053 {
3054 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AVisibility(AVisibility)> */
3055 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AVisibility(AVisibility)> */
3056 RET_LABEL5:(void)0;
3057 }
3058 }
3059 } else {
3060 }
3061 RET_LABEL:;
3062 }
3063 /* method parser_prod#AAnnotation#n_atid= for (self: AAnnotation, AAtid) */
3064 void nitc__parser_prod___AAnnotation___n_atid_61d(val* self, val* p0) {
3065 val* var_node /* var node: AAtid */;
3066 var_node = p0;
3067 self->attrs[COLOR_nitc__parser_nodes__AAnnotation___n_atid].val = var_node; /* _n_atid on <self:AAnnotation> */
3068 {
3069 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:AAtid> */
3070 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:AAtid> */
3071 RET_LABEL1:(void)0;
3072 }
3073 }
3074 RET_LABEL:;
3075 }
3076 /* method parser_prod#AAnnotation#n_opar= for (self: AAnnotation, nullable TOpar) */
3077 void nitc__parser_prod___AAnnotation___n_opar_61d(val* self, val* p0) {
3078 val* var_node /* var node: nullable TOpar */;
3079 short int var /* : Bool */;
3080 short int var1 /* : Bool */;
3081 val* var_other /* var other: nullable Object */;
3082 short int var3 /* : Bool */;
3083 short int var4 /* : Bool */;
3084 var_node = p0;
3085 self->attrs[COLOR_nitc__parser_nodes__AAnnotation___n_opar].val = var_node; /* _n_opar on <self:AAnnotation> */
3086 if (var_node == NULL) {
3087 var = 0; /* is null */
3088 } else {
3089 var = 1; /* arg is null and recv is not */
3090 }
3091 if (0) {
3092 { /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable TOpar> */
3093 var_other = ((val*)NULL);
3094 {
3095 var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable TOpar(TOpar)>*/
3096 }
3097 var4 = !var3;
3098 var1 = var4;
3099 goto RET_LABEL2;
3100 RET_LABEL2:(void)0;
3101 }
3102 var = var1;
3103 }
3104 if (var){
3105 {
3106 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TOpar(TOpar)> */
3107 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TOpar(TOpar)> */
3108 RET_LABEL5:(void)0;
3109 }
3110 }
3111 } else {
3112 }
3113 RET_LABEL:;
3114 }
3115 /* method parser_prod#AAnnotation#n_cpar= for (self: AAnnotation, nullable TCpar) */
3116 void nitc__parser_prod___AAnnotation___n_cpar_61d(val* self, val* p0) {
3117 val* var_node /* var node: nullable TCpar */;
3118 short int var /* : Bool */;
3119 short int var1 /* : Bool */;
3120 val* var_other /* var other: nullable Object */;
3121 short int var3 /* : Bool */;
3122 short int var4 /* : Bool */;
3123 var_node = p0;
3124 self->attrs[COLOR_nitc__parser_nodes__AAnnotation___n_cpar].val = var_node; /* _n_cpar on <self:AAnnotation> */
3125 if (var_node == NULL) {
3126 var = 0; /* is null */
3127 } else {
3128 var = 1; /* arg is null and recv is not */
3129 }
3130 if (0) {
3131 { /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable TCpar> */
3132 var_other = ((val*)NULL);
3133 {
3134 var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable TCpar(TCpar)>*/
3135 }
3136 var4 = !var3;
3137 var1 = var4;
3138 goto RET_LABEL2;
3139 RET_LABEL2:(void)0;
3140 }
3141 var = var1;
3142 }
3143 if (var){
3144 {
3145 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable TCpar(TCpar)> */
3146 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable TCpar(TCpar)> */
3147 RET_LABEL5:(void)0;
3148 }
3149 }
3150 } else {
3151 }
3152 RET_LABEL:;
3153 }
3154 /* method parser_prod#AAnnotation#n_annotations= for (self: AAnnotation, nullable AAnnotations) */
3155 void nitc__parser_prod___AAnnotation___nitc__parser_nodes__Prod__n_annotations_61d(val* self, val* p0) {
3156 val* var_node /* var node: nullable AAnnotations */;
3157 short int var /* : Bool */;
3158 short int var1 /* : Bool */;
3159 val* var_other /* var other: nullable Object */;
3160 short int var3 /* : Bool */;
3161 short int var4 /* : Bool */;
3162 var_node = p0;
3163 self->attrs[COLOR_nitc__parser_nodes__Prod___n_annotations].val = var_node; /* _n_annotations on <self:AAnnotation> */
3164 if (var_node == NULL) {
3165 var = 0; /* is null */
3166 } else {
3167 var = 1; /* arg is null and recv is not */
3168 }
3169 if (0) {
3170 { /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable AAnnotations> */
3171 var_other = ((val*)NULL);
3172 {
3173 var3 = ((short int(*)(val* self, val* p0))(var_node->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_node, var_other); /* == on <var_node:nullable AAnnotations(AAnnotations)>*/
3174 }
3175 var4 = !var3;
3176 var1 = var4;
3177 goto RET_LABEL2;
3178 RET_LABEL2:(void)0;
3179 }
3180 var = var1;
3181 }
3182 if (var){
3183 {
3184 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:nullable AAnnotations(AAnnotations)> */
3185 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:nullable AAnnotations(AAnnotations)> */
3186 RET_LABEL5:(void)0;
3187 }
3188 }
3189 } else {
3190 }
3191 RET_LABEL:;
3192 }
3193 /* method parser_prod#AAnnotation#visit_all for (self: AAnnotation, Visitor) */
3194 void nitc__parser_prod___AAnnotation___nitc__parser_nodes__ANode__visit_all(val* self, val* p0) {
3195 val* var_v /* var v: Visitor */;
3196 val* var /* : nullable ADoc */;
3197 val* var1 /* : nullable TKwredef */;
3198 val* var2 /* : nullable AVisibility */;
3199 val* var3 /* : AAtid */;
3200 val* var4 /* : nullable TOpar */;
3201 val* var5 /* : ANodes[AExpr] */;
3202 val* var7 /* : ANodes[AExpr] */;
3203 val* var8 /* : nullable TCpar */;
3204 val* var9 /* : nullable AAnnotations */;
3205 var_v = p0;
3206 var = self->attrs[COLOR_nitc__parser_nodes__ADefinition___n_doc].val; /* _n_doc on <self:AAnnotation> */
3207 {
3208 nitc___nitc__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3209 }
3210 var1 = self->attrs[COLOR_nitc__parser_nodes__ADefinition___n_kwredef].val; /* _n_kwredef on <self:AAnnotation> */
3211 {
3212 nitc___nitc__Visitor___enter_visit(var_v, var1); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3213 }
3214 var2 = self->attrs[COLOR_nitc__parser_nodes__ADefinition___n_visibility].val; /* _n_visibility on <self:AAnnotation> */
3215 {
3216 nitc___nitc__Visitor___enter_visit(var_v, var2); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3217 }
3218 var3 = self->attrs[COLOR_nitc__parser_nodes__AAnnotation___n_atid].val; /* _n_atid on <self:AAnnotation> */
3219 if (unlikely(var3 == NULL)) {
3220 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_atid");
3221 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8514);
3222 fatal_exit(1);
3223 }
3224 {
3225 nitc___nitc__Visitor___enter_visit(var_v, var3); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3226 }
3227 var4 = self->attrs[COLOR_nitc__parser_nodes__AAnnotation___n_opar].val; /* _n_opar on <self:AAnnotation> */
3228 {
3229 nitc___nitc__Visitor___enter_visit(var_v, var4); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3230 }
3231 {
3232 { /* Inline parser_nodes#AAnnotation#n_args (self) on <self:AAnnotation> */
3233 var7 = self->attrs[COLOR_nitc__parser_nodes__AAnnotation___n_args].val; /* _n_args on <self:AAnnotation> */
3234 if (unlikely(var7 == NULL)) {
3235 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
3236 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2926);
3237 fatal_exit(1);
3238 }
3239 var5 = var7;
3240 RET_LABEL6:(void)0;
3241 }
3242 }
3243 {
3244 nitc___nitc__ANodes___visit_all(var5, var_v); /* Direct call parser_nodes#ANodes#visit_all on <var5:ANodes[AExpr]>*/
3245 }
3246 var8 = self->attrs[COLOR_nitc__parser_nodes__AAnnotation___n_cpar].val; /* _n_cpar on <self:AAnnotation> */
3247 {
3248 nitc___nitc__Visitor___enter_visit(var_v, var8); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3249 }
3250 var9 = self->attrs[COLOR_nitc__parser_nodes__Prod___n_annotations].val; /* _n_annotations on <self:AAnnotation> */
3251 {
3252 nitc___nitc__Visitor___enter_visit(var_v, var9); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3253 }
3254 RET_LABEL:;
3255 }
3256 /* method parser_prod#AIdAtid#init_aidatid for (self: AIdAtid, nullable TId) */
3257 void nitc__parser_prod___AIdAtid___init_aidatid(val* self, val* p0) {
3258 val* var_n_id /* var n_id: nullable TId */;
3259 {
3260 { /* Inline kernel#Object#init (self) on <self:AIdAtid> */
3261 RET_LABEL1:(void)0;
3262 }
3263 }
3264 var_n_id = p0;
3265 if (unlikely(var_n_id == NULL)) {
3266 PRINT_ERROR("Runtime error: %s", "Cast failed");
3267 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8526);
3268 fatal_exit(1);
3269 }
3270 self->attrs[COLOR_nitc__parser_nodes__AAtid___n_id].val = var_n_id; /* _n_id on <self:AIdAtid> */
3271 if (var_n_id == NULL) {
3272 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3273 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8527);
3274 fatal_exit(1);
3275 } else {
3276 { /* Inline parser_nodes#ANode#parent= (var_n_id,self) on <var_n_id:nullable TId> */
3277 if (unlikely(var_n_id == NULL)) {
3278 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3279 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
3280 fatal_exit(1);
3281 }
3282 var_n_id->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_id:nullable TId> */
3283 RET_LABEL2:(void)0;
3284 }
3285 }
3286 RET_LABEL:;
3287 }
3288 /* method parser_prod#AIdAtid#replace_child for (self: AIdAtid, ANode, nullable ANode) */
3289 void nitc__parser_prod___AIdAtid___nitc__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
3290 val* var_old_child /* var old_child: ANode */;
3291 val* var_new_child /* var new_child: nullable ANode */;
3292 val* var /* : Token */;
3293 short int var1 /* : Bool */;
3294 val* var_other /* var other: nullable Object */;
3295 short int var3 /* : Bool */;
3296 short int var5 /* : Bool */;
3297 short int var6 /* : Bool */;
3298 int cltype;
3299 int idtype;
3300 const char* var_class_name;
3301 var_old_child = p0;
3302 var_new_child = p1;
3303 var = self->attrs[COLOR_nitc__parser_nodes__AAtid___n_id].val; /* _n_id on <self:AIdAtid> */
3304 if (unlikely(var == NULL)) {
3305 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
3306 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8532);
3307 fatal_exit(1);
3308 }
3309 {
3310 { /* Inline kernel#Object#== (var,var_old_child) on <var:Token> */
3311 var_other = var_old_child;
3312 {
3313 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:Token> */
3314 var5 = var == var_other;
3315 var3 = var5;
3316 goto RET_LABEL4;
3317 RET_LABEL4:(void)0;
3318 }
3319 }
3320 var1 = var3;
3321 goto RET_LABEL2;
3322 RET_LABEL2:(void)0;
3323 }
3324 }
3325 if (var1){
3326 /* <var_new_child:nullable ANode> isa TId */
3327 cltype = type_nitc__TId.color;
3328 idtype = type_nitc__TId.id;
3329 if(var_new_child == NULL) {
3330 var6 = 0;
3331 } else {
3332 if(cltype >= var_new_child->type->table_size) {
3333 var6 = 0;
3334 } else {
3335 var6 = var_new_child->type->type_table[cltype] == idtype;
3336 }
3337 }
3338 if (unlikely(!var6)) {
3339 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
3340 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TId", var_class_name);
3341 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8533);
3342 fatal_exit(1);
3343 }
3344 {
3345 nitc__parser_prod___AIdAtid___nitc__parser_nodes__AAtid__n_id_61d(self, var_new_child); /* Direct call parser_prod#AIdAtid#n_id= on <self:AIdAtid>*/
3346 }
3347 goto RET_LABEL;
3348 } else {
3349 }
3350 RET_LABEL:;
3351 }
3352 /* method parser_prod#AIdAtid#n_id= for (self: AIdAtid, Token) */
3353 void nitc__parser_prod___AIdAtid___nitc__parser_nodes__AAtid__n_id_61d(val* self, val* p0) {
3354 val* var_node /* var node: Token */;
3355 var_node = p0;
3356 self->attrs[COLOR_nitc__parser_nodes__AAtid___n_id].val = var_node; /* _n_id on <self:AIdAtid> */
3357 {
3358 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:Token> */
3359 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:Token> */
3360 RET_LABEL1:(void)0;
3361 }
3362 }
3363 RET_LABEL:;
3364 }
3365 /* method parser_prod#AIdAtid#visit_all for (self: AIdAtid, Visitor) */
3366 void nitc__parser_prod___AIdAtid___nitc__parser_nodes__ANode__visit_all(val* self, val* p0) {
3367 val* var_v /* var v: Visitor */;
3368 val* var /* : Token */;
3369 var_v = p0;
3370 var = self->attrs[COLOR_nitc__parser_nodes__AAtid___n_id].val; /* _n_id on <self:AIdAtid> */
3371 if (unlikely(var == NULL)) {
3372 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
3373 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8547);
3374 fatal_exit(1);
3375 }
3376 {
3377 nitc___nitc__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3378 }
3379 RET_LABEL:;
3380 }
3381 /* method parser_prod#AKwexternAtid#init_akwexternatid for (self: AKwexternAtid, nullable TKwextern) */
3382 void nitc__parser_prod___AKwexternAtid___init_akwexternatid(val* self, val* p0) {
3383 val* var_n_id /* var n_id: nullable TKwextern */;
3384 {
3385 { /* Inline kernel#Object#init (self) on <self:AKwexternAtid> */
3386 RET_LABEL1:(void)0;
3387 }
3388 }
3389 var_n_id = p0;
3390 if (unlikely(var_n_id == NULL)) {
3391 PRINT_ERROR("Runtime error: %s", "Cast failed");
3392 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8555);
3393 fatal_exit(1);
3394 }
3395 self->attrs[COLOR_nitc__parser_nodes__AAtid___n_id].val = var_n_id; /* _n_id on <self:AKwexternAtid> */
3396 if (var_n_id == NULL) {
3397 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3398 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8556);
3399 fatal_exit(1);
3400 } else {
3401 { /* Inline parser_nodes#ANode#parent= (var_n_id,self) on <var_n_id:nullable TKwextern> */
3402 if (unlikely(var_n_id == NULL)) {
3403 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3404 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
3405 fatal_exit(1);
3406 }
3407 var_n_id->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_id:nullable TKwextern> */
3408 RET_LABEL2:(void)0;
3409 }
3410 }
3411 RET_LABEL:;
3412 }
3413 /* method parser_prod#AKwexternAtid#replace_child for (self: AKwexternAtid, ANode, nullable ANode) */
3414 void nitc__parser_prod___AKwexternAtid___nitc__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
3415 val* var_old_child /* var old_child: ANode */;
3416 val* var_new_child /* var new_child: nullable ANode */;
3417 val* var /* : Token */;
3418 short int var1 /* : Bool */;
3419 val* var_other /* var other: nullable Object */;
3420 short int var3 /* : Bool */;
3421 short int var5 /* : Bool */;
3422 short int var6 /* : Bool */;
3423 int cltype;
3424 int idtype;
3425 const char* var_class_name;
3426 var_old_child = p0;
3427 var_new_child = p1;
3428 var = self->attrs[COLOR_nitc__parser_nodes__AAtid___n_id].val; /* _n_id on <self:AKwexternAtid> */
3429 if (unlikely(var == NULL)) {
3430 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
3431 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8561);
3432 fatal_exit(1);
3433 }
3434 {
3435 { /* Inline kernel#Object#== (var,var_old_child) on <var:Token> */
3436 var_other = var_old_child;
3437 {
3438 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:Token> */
3439 var5 = var == var_other;
3440 var3 = var5;
3441 goto RET_LABEL4;
3442 RET_LABEL4:(void)0;
3443 }
3444 }
3445 var1 = var3;
3446 goto RET_LABEL2;
3447 RET_LABEL2:(void)0;
3448 }
3449 }
3450 if (var1){
3451 /* <var_new_child:nullable ANode> isa TKwextern */
3452 cltype = type_nitc__TKwextern.color;
3453 idtype = type_nitc__TKwextern.id;
3454 if(var_new_child == NULL) {
3455 var6 = 0;
3456 } else {
3457 if(cltype >= var_new_child->type->table_size) {
3458 var6 = 0;
3459 } else {
3460 var6 = var_new_child->type->type_table[cltype] == idtype;
3461 }
3462 }
3463 if (unlikely(!var6)) {
3464 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
3465 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwextern", var_class_name);
3466 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8562);
3467 fatal_exit(1);
3468 }
3469 {
3470 nitc__parser_prod___AKwexternAtid___nitc__parser_nodes__AAtid__n_id_61d(self, var_new_child); /* Direct call parser_prod#AKwexternAtid#n_id= on <self:AKwexternAtid>*/
3471 }
3472 goto RET_LABEL;
3473 } else {
3474 }
3475 RET_LABEL:;
3476 }
3477 /* method parser_prod#AKwexternAtid#n_id= for (self: AKwexternAtid, Token) */
3478 void nitc__parser_prod___AKwexternAtid___nitc__parser_nodes__AAtid__n_id_61d(val* self, val* p0) {
3479 val* var_node /* var node: Token */;
3480 var_node = p0;
3481 self->attrs[COLOR_nitc__parser_nodes__AAtid___n_id].val = var_node; /* _n_id on <self:AKwexternAtid> */
3482 {
3483 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:Token> */
3484 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:Token> */
3485 RET_LABEL1:(void)0;
3486 }
3487 }
3488 RET_LABEL:;
3489 }
3490 /* method parser_prod#AKwexternAtid#visit_all for (self: AKwexternAtid, Visitor) */
3491 void nitc__parser_prod___AKwexternAtid___nitc__parser_nodes__ANode__visit_all(val* self, val* p0) {
3492 val* var_v /* var v: Visitor */;
3493 val* var /* : Token */;
3494 var_v = p0;
3495 var = self->attrs[COLOR_nitc__parser_nodes__AAtid___n_id].val; /* _n_id on <self:AKwexternAtid> */
3496 if (unlikely(var == NULL)) {
3497 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
3498 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8576);
3499 fatal_exit(1);
3500 }
3501 {
3502 nitc___nitc__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3503 }
3504 RET_LABEL:;
3505 }
3506 /* method parser_prod#AKwabstractAtid#init_akwabstractatid for (self: AKwabstractAtid, nullable TKwabstract) */
3507 void nitc__parser_prod___AKwabstractAtid___init_akwabstractatid(val* self, val* p0) {
3508 val* var_n_id /* var n_id: nullable TKwabstract */;
3509 {
3510 { /* Inline kernel#Object#init (self) on <self:AKwabstractAtid> */
3511 RET_LABEL1:(void)0;
3512 }
3513 }
3514 var_n_id = p0;
3515 if (unlikely(var_n_id == NULL)) {
3516 PRINT_ERROR("Runtime error: %s", "Cast failed");
3517 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8584);
3518 fatal_exit(1);
3519 }
3520 self->attrs[COLOR_nitc__parser_nodes__AAtid___n_id].val = var_n_id; /* _n_id on <self:AKwabstractAtid> */
3521 if (var_n_id == NULL) {
3522 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3523 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8585);
3524 fatal_exit(1);
3525 } else {
3526 { /* Inline parser_nodes#ANode#parent= (var_n_id,self) on <var_n_id:nullable TKwabstract> */
3527 if (unlikely(var_n_id == NULL)) {
3528 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3529 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 46);
3530 fatal_exit(1);
3531 }
3532 var_n_id->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_n_id:nullable TKwabstract> */
3533 RET_LABEL2:(void)0;
3534 }
3535 }
3536 RET_LABEL:;
3537 }
3538 /* method parser_prod#AKwabstractAtid#replace_child for (self: AKwabstractAtid, ANode, nullable ANode) */
3539 void nitc__parser_prod___AKwabstractAtid___nitc__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
3540 val* var_old_child /* var old_child: ANode */;
3541 val* var_new_child /* var new_child: nullable ANode */;
3542 val* var /* : Token */;
3543 short int var1 /* : Bool */;
3544 val* var_other /* var other: nullable Object */;
3545 short int var3 /* : Bool */;
3546 short int var5 /* : Bool */;
3547 short int var6 /* : Bool */;
3548 int cltype;
3549 int idtype;
3550 const char* var_class_name;
3551 var_old_child = p0;
3552 var_new_child = p1;
3553 var = self->attrs[COLOR_nitc__parser_nodes__AAtid___n_id].val; /* _n_id on <self:AKwabstractAtid> */
3554 if (unlikely(var == NULL)) {
3555 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
3556 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8590);
3557 fatal_exit(1);
3558 }
3559 {
3560 { /* Inline kernel#Object#== (var,var_old_child) on <var:Token> */
3561 var_other = var_old_child;
3562 {
3563 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:Token> */
3564 var5 = var == var_other;
3565 var3 = var5;
3566 goto RET_LABEL4;
3567 RET_LABEL4:(void)0;
3568 }
3569 }
3570 var1 = var3;
3571 goto RET_LABEL2;
3572 RET_LABEL2:(void)0;
3573 }
3574 }
3575 if (var1){
3576 /* <var_new_child:nullable ANode> isa TKwabstract */
3577 cltype = type_nitc__TKwabstract.color;
3578 idtype = type_nitc__TKwabstract.id;
3579 if(var_new_child == NULL) {
3580 var6 = 0;
3581 } else {
3582 if(cltype >= var_new_child->type->table_size) {
3583 var6 = 0;
3584 } else {
3585 var6 = var_new_child->type->type_table[cltype] == idtype;
3586 }
3587 }
3588 if (unlikely(!var6)) {
3589 var_class_name = var_new_child == NULL ? "null" : var_new_child->type->name;
3590 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "TKwabstract", var_class_name);
3591 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8591);
3592 fatal_exit(1);
3593 }
3594 {
3595 nitc__parser_prod___AKwabstractAtid___nitc__parser_nodes__AAtid__n_id_61d(self, var_new_child); /* Direct call parser_prod#AKwabstractAtid#n_id= on <self:AKwabstractAtid>*/
3596 }
3597 goto RET_LABEL;
3598 } else {
3599 }
3600 RET_LABEL:;
3601 }
3602 /* method parser_prod#AKwabstractAtid#n_id= for (self: AKwabstractAtid, Token) */
3603 void nitc__parser_prod___AKwabstractAtid___nitc__parser_nodes__AAtid__n_id_61d(val* self, val* p0) {
3604 val* var_node /* var node: Token */;
3605 var_node = p0;
3606 self->attrs[COLOR_nitc__parser_nodes__AAtid___n_id].val = var_node; /* _n_id on <self:AKwabstractAtid> */
3607 {
3608 { /* Inline parser_nodes#ANode#parent= (var_node,self) on <var_node:Token> */
3609 var_node->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_node:Token> */
3610 RET_LABEL1:(void)0;
3611 }
3612 }
3613 RET_LABEL:;
3614 }
3615 /* method parser_prod#AKwabstractAtid#visit_all for (self: AKwabstractAtid, Visitor) */
3616 void nitc__parser_prod___AKwabstractAtid___nitc__parser_nodes__ANode__visit_all(val* self, val* p0) {
3617 val* var_v /* var v: Visitor */;
3618 val* var /* : Token */;
3619 var_v = p0;
3620 var = self->attrs[COLOR_nitc__parser_nodes__AAtid___n_id].val; /* _n_id on <self:AKwabstractAtid> */
3621 if (unlikely(var == NULL)) {
3622 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
3623 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8605);
3624 fatal_exit(1);
3625 }
3626 {
3627 nitc___nitc__Visitor___enter_visit(var_v, var); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3628 }
3629 RET_LABEL:;
3630 }
3631 /* method parser_prod#Start#replace_child for (self: Start, ANode, nullable ANode) */
3632 void nitc__parser_prod___Start___nitc__parser_nodes__ANode__replace_child(val* self, val* p0, val* p1) {
3633 val* var_old_child /* var old_child: ANode */;
3634 val* var_new_child /* var new_child: nullable ANode */;
3635 val* var /* : nullable AModule */;
3636 short int var1 /* : Bool */;
3637 short int var2 /* : Bool */;
3638 val* var_other /* var other: nullable Object */;
3639 short int var4 /* : Bool */;
3640 short int var6 /* : Bool */;
3641 short int var7 /* : Bool */;
3642 short int var8 /* : Bool */;
3643 short int var10 /* : Bool */;
3644 short int var12 /* : Bool */;
3645 short int var14 /* : Bool */;
3646 int cltype;
3647 int idtype;
3648 var_old_child = p0;
3649 var_new_child = p1;
3650 var = self->attrs[COLOR_nitc__parser_nodes__Start___n_base].val; /* _n_base on <self:Start> */
3651 if (var == NULL) {
3652 var1 = 0; /* <var_old_child:ANode> cannot be null */
3653 } else {
3654 { /* Inline kernel#Object#== (var,var_old_child) on <var:nullable AModule> */
3655 var_other = var_old_child;
3656 {
3657 { /* Inline kernel#Object#is_same_instance (var,var_other) on <var:nullable AModule(AModule)> */
3658 var6 = var == var_other;
3659 var4 = var6;
3660 goto RET_LABEL5;
3661 RET_LABEL5:(void)0;
3662 }
3663 }
3664 var2 = var4;
3665 goto RET_LABEL3;
3666 RET_LABEL3:(void)0;
3667 }
3668 var1 = var2;
3669 }
3670 if (var1){
3671 if (var_new_child == NULL) {
3672 var7 = 1; /* is null */
3673 } else {
3674 var7 = 0; /* arg is null but recv is not */
3675 }
3676 if (0) {
3677 { /* Inline kernel#Object#== (var_new_child,((val*)NULL)) on <var_new_child:nullable ANode> */
3678 var_other = ((val*)NULL);
3679 {
3680 { /* Inline kernel#Object#is_same_instance (var_new_child,var_other) on <var_new_child:nullable ANode(ANode)> */
3681 var12 = var_new_child == var_other;
3682 var10 = var12;
3683 goto RET_LABEL11;
3684 RET_LABEL11:(void)0;
3685 }
3686 }
3687 var8 = var10;
3688 goto RET_LABEL9;
3689 RET_LABEL9:(void)0;
3690 }
3691 var7 = var8;
3692 }
3693 if (var7){
3694 } else {
3695 {
3696 { /* Inline parser_nodes#ANode#parent= (var_new_child,self) on <var_new_child:nullable ANode(ANode)> */
3697 var_new_child->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = self; /* _parent on <var_new_child:nullable ANode(ANode)> */
3698 RET_LABEL13:(void)0;
3699 }
3700 }
3701 /* <var_new_child:nullable ANode(ANode)> isa AModule */
3702 cltype = type_nitc__AModule.color;
3703 idtype = type_nitc__AModule.id;
3704 if(cltype >= var_new_child->type->table_size) {
3705 var14 = 0;
3706 } else {
3707 var14 = var_new_child->type->type_table[cltype] == idtype;
3708 }
3709 if (unlikely(!var14)) {
3710 PRINT_ERROR("Runtime error: %s", "Assert failed");
3711 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8645);
3712 fatal_exit(1);
3713 }
3714 self->attrs[COLOR_nitc__parser_nodes__Start___n_base].val = var_new_child; /* _n_base on <self:Start> */
3715 }
3716 {
3717 { /* Inline parser_nodes#ANode#parent= (var_old_child,((val*)NULL)) on <var_old_child:ANode> */
3718 var_old_child->attrs[COLOR_nitc__parser_nodes__ANode___parent].val = ((val*)NULL); /* _parent on <var_old_child:ANode> */
3719 RET_LABEL15:(void)0;
3720 }
3721 }
3722 goto RET_LABEL;
3723 } else {
3724 }
3725 RET_LABEL:;
3726 }
3727 /* method parser_prod#Start#visit_all for (self: Start, Visitor) */
3728 void nitc__parser_prod___Start___nitc__parser_nodes__ANode__visit_all(val* self, val* p0) {
3729 val* var_v /* var v: Visitor */;
3730 val* var /* : nullable AModule */;
3731 short int var1 /* : Bool */;
3732 short int var2 /* : Bool */;
3733 val* var_other /* var other: nullable Object */;
3734 short int var4 /* : Bool */;
3735 short int var5 /* : Bool */;
3736 val* var6 /* : nullable AModule */;
3737 val* var7 /* : EOF */;
3738 var_v = p0;
3739 var = self->attrs[COLOR_nitc__parser_nodes__Start___n_base].val; /* _n_base on <self:Start> */
3740 if (var == NULL) {
3741 var1 = 0; /* is null */
3742 } else {
3743 var1 = 1; /* arg is null and recv is not */
3744 }
3745 if (0) {
3746 { /* Inline kernel#Object#!= (var,((val*)NULL)) on <var:nullable AModule> */
3747 var_other = ((val*)NULL);
3748 {
3749 var4 = ((short int(*)(val* self, val* p0))(var->class->vft[COLOR_core__kernel__Object___61d_61d]))(var, var_other); /* == on <var:nullable AModule(AModule)>*/
3750 }
3751 var5 = !var4;
3752 var2 = var5;
3753 goto RET_LABEL3;
3754 RET_LABEL3:(void)0;
3755 }
3756 var1 = var2;
3757 }
3758 if (var1){
3759 var6 = self->attrs[COLOR_nitc__parser_nodes__Start___n_base].val; /* _n_base on <self:Start> */
3760 if (unlikely(var6 == NULL)) {
3761 PRINT_ERROR("Runtime error: %s", "Cast failed");
3762 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8656);
3763 fatal_exit(1);
3764 }
3765 {
3766 nitc___nitc__Visitor___enter_visit(var_v, var6); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3767 }
3768 } else {
3769 }
3770 var7 = self->attrs[COLOR_nitc__parser_nodes__Start___n_eof].val; /* _n_eof on <self:Start> */
3771 if (unlikely(var7 == NULL)) {
3772 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_eof");
3773 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_prod, 8658);
3774 fatal_exit(1);
3775 }
3776 {
3777 nitc___nitc__Visitor___enter_visit(var_v, var7); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:Visitor>*/
3778 }
3779 RET_LABEL:;
3780 }