nitc: let CC, CXX and NO_STACKTRACE use env value
[nit.git] / c_src / nitc__transform.sep.1.c
1 #include "nitc__transform.sep.0.h"
2 /* method transform#ToolContext#opt_no_shortcut_range for (self: ToolContext): OptionBool */
3 val* nitc__transform___ToolContext___opt_no_shortcut_range(val* self) {
4 val* var /* : OptionBool */;
5 val* var1 /* : OptionBool */;
6 var1 = self->attrs[COLOR_nitc__transform__ToolContext___opt_no_shortcut_range].val; /* _opt_no_shortcut_range on <self:ToolContext> */
7 if (unlikely(var1 == NULL)) {
8 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_shortcut_range");
9 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 28);
10 fatal_exit(1);
11 }
12 var = var1;
13 RET_LABEL:;
14 return var;
15 }
16 /* method transform#ToolContext#init for (self: ToolContext) */
17 void nitc__transform___ToolContext___core__kernel__Object__init(val* self) {
18 val* var /* : OptionContext */;
19 val* var2 /* : OptionContext */;
20 val* var3 /* : OptionBool */;
21 val* var5 /* : OptionBool */;
22 val* var6 /* : Array[Option] */;
23 val* var7 /* : NativeArray[Option] */;
24 {
25 ((void(*)(val* self))(self->class->vft[COLOR_nitc__transform___ToolContext___core__kernel__Object__init]))(self); /* init on <self:ToolContext>*/
26 }
27 {
28 { /* Inline toolcontext#ToolContext#option_context (self) on <self:ToolContext> */
29 var2 = self->attrs[COLOR_nitc__toolcontext__ToolContext___option_context].val; /* _option_context on <self:ToolContext> */
30 if (unlikely(var2 == NULL)) {
31 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
32 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 342);
33 fatal_exit(1);
34 }
35 var = var2;
36 RET_LABEL1:(void)0;
37 }
38 }
39 {
40 { /* Inline transform#ToolContext#opt_no_shortcut_range (self) on <self:ToolContext> */
41 var5 = self->attrs[COLOR_nitc__transform__ToolContext___opt_no_shortcut_range].val; /* _opt_no_shortcut_range on <self:ToolContext> */
42 if (unlikely(var5 == NULL)) {
43 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_shortcut_range");
44 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 28);
45 fatal_exit(1);
46 }
47 var3 = var5;
48 RET_LABEL4:(void)0;
49 }
50 }
51 var6 = NEW_core__Array(&type_core__Array__opts__Option);
52 { /* var6 = array_instance Array[Option] */
53 var7 = NEW_core__NativeArray(1l, &type_core__NativeArray__opts__Option);
54 ((struct instance_core__NativeArray*)var7)->values[0] = (val*) var3;
55 {
56 ((void(*)(val* self, val* p0, long p1))(var6->class->vft[COLOR_core__array__Array__with_native]))(var6, var7, 1l); /* with_native on <var6:Array[Option]>*/
57 }
58 }
59 {
60 opts___opts__OptionContext___add_option(var, var6); /* Direct call opts#OptionContext#add_option on <var:OptionContext>*/
61 }
62 RET_LABEL:;
63 }
64 /* method transform#TransformPhase#process_npropdef for (self: TransformPhase, APropdef) */
65 void nitc__transform___nitc__transform__TransformPhase___nitc__phase__Phase__process_npropdef(val* self, val* p0) {
66 val* var_npropdef /* var npropdef: APropdef */;
67 val* var /* : nullable MPropDef */;
68 val* var2 /* : nullable MPropDef */;
69 val* var_m /* var m: nullable MPropDef */;
70 short int var3 /* : Bool */;
71 short int var4 /* : Bool */;
72 val* var_other /* var other: nullable Object */;
73 short int var6 /* : Bool */;
74 short int var8 /* : Bool */;
75 val* var9 /* : TransformVisitor */;
76 val* var_v /* var v: TransformVisitor */;
77 val* var10 /* : ASTValidationVisitor */;
78 val* var_val /* var val: nullable Object */;
79 var_npropdef = p0;
80 {
81 { /* Inline modelize_property#APropdef#mpropdef (var_npropdef) on <var_npropdef:APropdef> */
82 var2 = var_npropdef->attrs[COLOR_nitc__modelize_property__APropdef___mpropdef].val; /* _mpropdef on <var_npropdef:APropdef> */
83 var = var2;
84 RET_LABEL1:(void)0;
85 }
86 }
87 var_m = var;
88 if (var_m == NULL) {
89 var3 = 1; /* is null */
90 } else {
91 var3 = 0; /* arg is null but recv is not */
92 }
93 if (0) {
94 { /* Inline kernel#Object#== (var_m,((val*)NULL)) on <var_m:nullable MPropDef> */
95 var_other = ((val*)NULL);
96 {
97 { /* Inline kernel#Object#is_same_instance (var_m,var_other) on <var_m:nullable MPropDef(MPropDef)> */
98 var8 = var_m == var_other;
99 var6 = var8;
100 goto RET_LABEL7;
101 RET_LABEL7:(void)0;
102 }
103 }
104 var4 = var6;
105 goto RET_LABEL5;
106 RET_LABEL5:(void)0;
107 }
108 var3 = var4;
109 }
110 if (var3){
111 goto RET_LABEL;
112 } else {
113 }
114 var9 = NEW_nitc__transform__TransformVisitor(&type_nitc__transform__TransformVisitor);
115 {
116 ((void(*)(val* self, val* p0))(var9->class->vft[COLOR_nitc__transform__TransformVisitor__phase_61d]))(var9, self); /* phase= on <var9:TransformVisitor>*/
117 }
118 {
119 ((void(*)(val* self, val* p0))(var9->class->vft[COLOR_nitc__transform__TransformVisitor__mpropdef_61d]))(var9, var_m); /* mpropdef= on <var9:TransformVisitor>*/
120 }
121 {
122 ((void(*)(val* self))(var9->class->vft[COLOR_core__kernel__Object__init]))(var9); /* init on <var9:TransformVisitor>*/
123 }
124 var_v = var9;
125 {
126 nitc___nitc__Visitor___enter_visit(var_v, var_npropdef); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:TransformVisitor>*/
127 }
128 var10 = NEW_nitc__ASTValidationVisitor(&type_nitc__ASTValidationVisitor);
129 {
130 { /* Inline kernel#Object#init (var10) on <var10:ASTValidationVisitor> */
131 RET_LABEL11:(void)0;
132 }
133 }
134 var_val = var10;
135 {
136 nitc___nitc__Visitor___enter_visit(var_val, var_npropdef); /* Direct call parser_nodes#Visitor#enter_visit on <var_val:nullable Object(ASTValidationVisitor)>*/
137 }
138 RET_LABEL:;
139 }
140 /* method transform#TransformVisitor#phase for (self: TransformVisitor): TransformPhase */
141 val* nitc__transform___nitc__transform__TransformVisitor___phase(val* self) {
142 val* var /* : TransformPhase */;
143 val* var1 /* : TransformPhase */;
144 var1 = self->attrs[COLOR_nitc__transform__TransformVisitor___phase].val; /* _phase on <self:TransformVisitor> */
145 if (unlikely(var1 == NULL)) {
146 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _phase");
147 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 58);
148 fatal_exit(1);
149 }
150 var = var1;
151 RET_LABEL:;
152 return var;
153 }
154 /* method transform#TransformVisitor#phase= for (self: TransformVisitor, TransformPhase) */
155 void nitc__transform___nitc__transform__TransformVisitor___phase_61d(val* self, val* p0) {
156 self->attrs[COLOR_nitc__transform__TransformVisitor___phase].val = p0; /* _phase on <self:TransformVisitor> */
157 RET_LABEL:;
158 }
159 /* method transform#TransformVisitor#mmodule for (self: TransformVisitor): MModule */
160 val* nitc__transform___nitc__transform__TransformVisitor___mmodule(val* self) {
161 val* var /* : MModule */;
162 val* var1 /* : MModule */;
163 var1 = self->attrs[COLOR_nitc__transform__TransformVisitor___mmodule].val; /* _mmodule on <self:TransformVisitor> */
164 if (unlikely(var1 == NULL)) {
165 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
166 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 59);
167 fatal_exit(1);
168 }
169 var = var1;
170 RET_LABEL:;
171 return var;
172 }
173 /* method transform#TransformVisitor#mmodule= for (self: TransformVisitor, MModule) */
174 void nitc__transform___nitc__transform__TransformVisitor___mmodule_61d(val* self, val* p0) {
175 self->attrs[COLOR_nitc__transform__TransformVisitor___mmodule].val = p0; /* _mmodule on <self:TransformVisitor> */
176 RET_LABEL:;
177 }
178 /* method transform#TransformVisitor#mclassdef for (self: TransformVisitor): MClassDef */
179 val* nitc__transform___nitc__transform__TransformVisitor___mclassdef(val* self) {
180 val* var /* : MClassDef */;
181 val* var1 /* : MClassDef */;
182 var1 = self->attrs[COLOR_nitc__transform__TransformVisitor___mclassdef].val; /* _mclassdef on <self:TransformVisitor> */
183 if (unlikely(var1 == NULL)) {
184 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
185 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 60);
186 fatal_exit(1);
187 }
188 var = var1;
189 RET_LABEL:;
190 return var;
191 }
192 /* method transform#TransformVisitor#mclassdef= for (self: TransformVisitor, MClassDef) */
193 void nitc__transform___nitc__transform__TransformVisitor___mclassdef_61d(val* self, val* p0) {
194 self->attrs[COLOR_nitc__transform__TransformVisitor___mclassdef].val = p0; /* _mclassdef on <self:TransformVisitor> */
195 RET_LABEL:;
196 }
197 /* method transform#TransformVisitor#mpropdef for (self: TransformVisitor): MPropDef */
198 val* nitc__transform___nitc__transform__TransformVisitor___mpropdef(val* self) {
199 val* var /* : MPropDef */;
200 val* var1 /* : MPropDef */;
201 var1 = self->attrs[COLOR_nitc__transform__TransformVisitor___mpropdef].val; /* _mpropdef on <self:TransformVisitor> */
202 if (unlikely(var1 == NULL)) {
203 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef");
204 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 61);
205 fatal_exit(1);
206 }
207 var = var1;
208 RET_LABEL:;
209 return var;
210 }
211 /* method transform#TransformVisitor#mpropdef= for (self: TransformVisitor, MPropDef) */
212 void nitc__transform___nitc__transform__TransformVisitor___mpropdef_61d(val* self, val* p0) {
213 self->attrs[COLOR_nitc__transform__TransformVisitor___mpropdef].val = p0; /* _mpropdef on <self:TransformVisitor> */
214 RET_LABEL:;
215 }
216 /* method transform#TransformVisitor#builder for (self: TransformVisitor): ASTBuilder */
217 val* nitc__transform___nitc__transform__TransformVisitor___builder(val* self) {
218 val* var /* : ASTBuilder */;
219 val* var1 /* : ASTBuilder */;
220 var1 = self->attrs[COLOR_nitc__transform__TransformVisitor___builder].val; /* _builder on <self:TransformVisitor> */
221 if (unlikely(var1 == NULL)) {
222 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
223 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 62);
224 fatal_exit(1);
225 }
226 var = var1;
227 RET_LABEL:;
228 return var;
229 }
230 /* method transform#TransformVisitor#builder= for (self: TransformVisitor, ASTBuilder) */
231 void nitc__transform___nitc__transform__TransformVisitor___builder_61d(val* self, val* p0) {
232 self->attrs[COLOR_nitc__transform__TransformVisitor___builder].val = p0; /* _builder on <self:TransformVisitor> */
233 RET_LABEL:;
234 }
235 /* method transform#TransformVisitor#init for (self: TransformVisitor) */
236 void nitc__transform___nitc__transform__TransformVisitor___core__kernel__Object__init(val* self) {
237 val* var /* : MPropDef */;
238 val* var2 /* : MPropDef */;
239 val* var3 /* : MClassDef */;
240 val* var5 /* : MClassDef */;
241 val* var7 /* : MClassDef */;
242 val* var9 /* : MClassDef */;
243 val* var10 /* : MModule */;
244 val* var12 /* : MModule */;
245 val* var14 /* : ASTBuilder */;
246 val* var15 /* : MModule */;
247 val* var17 /* : MModule */;
248 val* var18 /* : MPropDef */;
249 val* var20 /* : MPropDef */;
250 val* var21 /* : MClassDef */;
251 val* var23 /* : MClassDef */;
252 val* var24 /* : MClassType */;
253 val* var26 /* : MClassType */;
254 {
255 ((void(*)(val* self))(self->class->vft[COLOR_nitc__transform___nitc__transform__TransformVisitor___core__kernel__Object__init]))(self); /* init on <self:TransformVisitor>*/
256 }
257 {
258 { /* Inline transform#TransformVisitor#mpropdef (self) on <self:TransformVisitor> */
259 var2 = self->attrs[COLOR_nitc__transform__TransformVisitor___mpropdef].val; /* _mpropdef on <self:TransformVisitor> */
260 if (unlikely(var2 == NULL)) {
261 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef");
262 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 61);
263 fatal_exit(1);
264 }
265 var = var2;
266 RET_LABEL1:(void)0;
267 }
268 }
269 {
270 { /* Inline model#MPropDef#mclassdef (var) on <var:MPropDef> */
271 var5 = var->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <var:MPropDef> */
272 if (unlikely(var5 == NULL)) {
273 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
274 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2227);
275 fatal_exit(1);
276 }
277 var3 = var5;
278 RET_LABEL4:(void)0;
279 }
280 }
281 {
282 { /* Inline transform#TransformVisitor#mclassdef= (self,var3) on <self:TransformVisitor> */
283 self->attrs[COLOR_nitc__transform__TransformVisitor___mclassdef].val = var3; /* _mclassdef on <self:TransformVisitor> */
284 RET_LABEL6:(void)0;
285 }
286 }
287 {
288 { /* Inline transform#TransformVisitor#mclassdef (self) on <self:TransformVisitor> */
289 var9 = self->attrs[COLOR_nitc__transform__TransformVisitor___mclassdef].val; /* _mclassdef on <self:TransformVisitor> */
290 if (unlikely(var9 == NULL)) {
291 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
292 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 60);
293 fatal_exit(1);
294 }
295 var7 = var9;
296 RET_LABEL8:(void)0;
297 }
298 }
299 {
300 { /* Inline model#MClassDef#mmodule (var7) on <var7:MClassDef> */
301 var12 = var7->attrs[COLOR_nitc__model__MClassDef___mmodule].val; /* _mmodule on <var7:MClassDef> */
302 if (unlikely(var12 == NULL)) {
303 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
304 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 573);
305 fatal_exit(1);
306 }
307 var10 = var12;
308 RET_LABEL11:(void)0;
309 }
310 }
311 {
312 { /* Inline transform#TransformVisitor#mmodule= (self,var10) on <self:TransformVisitor> */
313 self->attrs[COLOR_nitc__transform__TransformVisitor___mmodule].val = var10; /* _mmodule on <self:TransformVisitor> */
314 RET_LABEL13:(void)0;
315 }
316 }
317 var14 = NEW_nitc__ASTBuilder(&type_nitc__ASTBuilder);
318 {
319 { /* Inline transform#TransformVisitor#mmodule (self) on <self:TransformVisitor> */
320 var17 = self->attrs[COLOR_nitc__transform__TransformVisitor___mmodule].val; /* _mmodule on <self:TransformVisitor> */
321 if (unlikely(var17 == NULL)) {
322 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
323 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 59);
324 fatal_exit(1);
325 }
326 var15 = var17;
327 RET_LABEL16:(void)0;
328 }
329 }
330 {
331 { /* Inline transform#TransformVisitor#mpropdef (self) on <self:TransformVisitor> */
332 var20 = self->attrs[COLOR_nitc__transform__TransformVisitor___mpropdef].val; /* _mpropdef on <self:TransformVisitor> */
333 if (unlikely(var20 == NULL)) {
334 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef");
335 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 61);
336 fatal_exit(1);
337 }
338 var18 = var20;
339 RET_LABEL19:(void)0;
340 }
341 }
342 {
343 { /* Inline model#MPropDef#mclassdef (var18) on <var18:MPropDef> */
344 var23 = var18->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <var18:MPropDef> */
345 if (unlikely(var23 == NULL)) {
346 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
347 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2227);
348 fatal_exit(1);
349 }
350 var21 = var23;
351 RET_LABEL22:(void)0;
352 }
353 }
354 {
355 { /* Inline model#MClassDef#bound_mtype (var21) on <var21:MClassDef> */
356 var26 = var21->attrs[COLOR_nitc__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var21:MClassDef> */
357 if (unlikely(var26 == NULL)) {
358 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
359 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 579);
360 fatal_exit(1);
361 }
362 var24 = var26;
363 RET_LABEL25:(void)0;
364 }
365 }
366 {
367 ((void(*)(val* self, val* p0))(var14->class->vft[COLOR_nitc__astbuilder__ASTBuilder__mmodule_61d]))(var14, var15); /* mmodule= on <var14:ASTBuilder>*/
368 }
369 {
370 ((void(*)(val* self, val* p0))(var14->class->vft[COLOR_nitc__astbuilder__ASTBuilder__anchor_61d]))(var14, var24); /* anchor= on <var14:ASTBuilder>*/
371 }
372 {
373 ((void(*)(val* self))(var14->class->vft[COLOR_core__kernel__Object__init]))(var14); /* init on <var14:ASTBuilder>*/
374 }
375 {
376 { /* Inline transform#TransformVisitor#builder= (self,var14) on <self:TransformVisitor> */
377 self->attrs[COLOR_nitc__transform__TransformVisitor___builder].val = var14; /* _builder on <self:TransformVisitor> */
378 RET_LABEL27:(void)0;
379 }
380 }
381 RET_LABEL:;
382 }
383 /* method transform#TransformVisitor#visit for (self: TransformVisitor, ANode) */
384 void nitc__transform___nitc__transform__TransformVisitor___nitc__parser_nodes__Visitor__visit(val* self, val* p0) {
385 val* var_node /* var node: ANode */;
386 short int var /* : Bool */;
387 int cltype;
388 int idtype;
389 var_node = p0;
390 /* <var_node:ANode> isa AAnnotations */
391 cltype = type_nitc__AAnnotations.color;
392 idtype = type_nitc__AAnnotations.id;
393 if(cltype >= var_node->type->table_size) {
394 var = 0;
395 } else {
396 var = var_node->type->type_table[cltype] == idtype;
397 }
398 if (var){
399 goto RET_LABEL;
400 } else {
401 }
402 {
403 ((void(*)(val* self, val* p0))(var_node->class->vft[COLOR_nitc__transform__ANode__full_transform_visitor]))(var_node, self); /* full_transform_visitor on <var_node:ANode>*/
404 }
405 RET_LABEL:;
406 }
407 /* method transform#ANode#full_transform_visitor for (self: ANode, TransformVisitor) */
408 void nitc__transform___ANode___full_transform_visitor(val* self, val* p0) {
409 val* var_v /* var v: TransformVisitor */;
410 var_v = p0;
411 {
412 ((void(*)(val* self, val* p0))(self->class->vft[COLOR_nitc__parser_nodes__ANode__visit_all]))(self, var_v); /* visit_all on <self:ANode>*/
413 }
414 {
415 ((void(*)(val* self, val* p0))(self->class->vft[COLOR_nitc__transform__ANode__accept_transform_visitor]))(self, var_v); /* accept_transform_visitor on <self:ANode>*/
416 }
417 RET_LABEL:;
418 }
419 /* method transform#ANode#accept_transform_visitor for (self: ANode, TransformVisitor) */
420 void nitc__transform___ANode___accept_transform_visitor(val* self, val* p0) {
421 val* var_v /* var v: TransformVisitor */;
422 var_v = p0;
423 RET_LABEL:;
424 }
425 /* method transform#AExpr#full_transform_visitor for (self: AExpr, TransformVisitor) */
426 void nitc__transform___AExpr___ANode__full_transform_visitor(val* self, val* p0) {
427 val* var_v /* var v: TransformVisitor */;
428 val* var /* : nullable AArrayExpr */;
429 val* var2 /* : nullable AArrayExpr */;
430 val* var_na /* var na: nullable AArrayExpr */;
431 short int var3 /* : Bool */;
432 short int var4 /* : Bool */;
433 val* var_other /* var other: nullable Object */;
434 short int var6 /* : Bool */;
435 short int var7 /* : Bool */;
436 val* var8 /* : AExpr */;
437 val* var_place /* var place: AExpr */;
438 val* var9 /* : ANewExpr */;
439 val* var11 /* : ANewExpr */;
440 val* var12 /* : AVarExpr */;
441 val* var_recv /* var recv: AVarExpr */;
442 val* var13 /* : ASTBuilder */;
443 val* var15 /* : ASTBuilder */;
444 val* var16 /* : nullable CallSite */;
445 val* var18 /* : nullable CallSite */;
446 val* var19 /* : Array[AExpr] */;
447 val* var_ /* var : Array[AExpr] */;
448 val* var20 /* : ACallExpr */;
449 val* var_nadd /* var nadd: ACallExpr */;
450 short int var21 /* : Bool */;
451 short int var23 /* : Bool */;
452 var_v = p0;
453 {
454 { /* Inline typing#AExpr#comprehension (self) on <self:AExpr> */
455 var2 = self->attrs[COLOR_nitc__typing__AExpr___comprehension].val; /* _comprehension on <self:AExpr> */
456 var = var2;
457 RET_LABEL1:(void)0;
458 }
459 }
460 var_na = var;
461 if (var_na == NULL) {
462 var3 = 0; /* is null */
463 } else {
464 var3 = 1; /* arg is null and recv is not */
465 }
466 if (0) {
467 { /* Inline kernel#Object#!= (var_na,((val*)NULL)) on <var_na:nullable AArrayExpr> */
468 var_other = ((val*)NULL);
469 {
470 var6 = ((short int(*)(val* self, val* p0))(var_na->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_na, var_other); /* == on <var_na:nullable AArrayExpr(AArrayExpr)>*/
471 }
472 var7 = !var6;
473 var4 = var7;
474 goto RET_LABEL5;
475 RET_LABEL5:(void)0;
476 }
477 var3 = var4;
478 }
479 if (var3){
480 {
481 var8 = nitc__astbuilder___AExpr___detach_with_placeholder(self);
482 }
483 var_place = var8;
484 {
485 { /* Inline transform#AArrayExpr#nnew (var_na) on <var_na:nullable AArrayExpr(AArrayExpr)> */
486 var11 = var_na->attrs[COLOR_nitc__transform__AArrayExpr___nnew].val; /* _nnew on <var_na:nullable AArrayExpr(AArrayExpr)> */
487 if (unlikely(var11 == NULL)) {
488 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _nnew");
489 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 392);
490 fatal_exit(1);
491 }
492 var9 = var11;
493 RET_LABEL10:(void)0;
494 }
495 }
496 {
497 var12 = nitc__astbuilder___AExpr___make_var_read(var9);
498 }
499 var_recv = var12;
500 {
501 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
502 var15 = var_v->attrs[COLOR_nitc__transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
503 if (unlikely(var15 == NULL)) {
504 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
505 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 62);
506 fatal_exit(1);
507 }
508 var13 = var15;
509 RET_LABEL14:(void)0;
510 }
511 }
512 {
513 { /* Inline typing#AArrayExpr#push_callsite (var_na) on <var_na:nullable AArrayExpr(AArrayExpr)> */
514 var18 = var_na->attrs[COLOR_nitc__typing__AArrayExpr___push_callsite].val; /* _push_callsite on <var_na:nullable AArrayExpr(AArrayExpr)> */
515 var16 = var18;
516 RET_LABEL17:(void)0;
517 }
518 }
519 if (unlikely(var16 == NULL)) {
520 PRINT_ERROR("Runtime error: %s", "Cast failed");
521 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 104);
522 fatal_exit(1);
523 }
524 var19 = NEW_core__Array(&type_core__Array__nitc__AExpr);
525 {
526 core___core__Array___with_capacity(var19, 1l); /* Direct call array#Array#with_capacity on <var19:Array[AExpr]>*/
527 }
528 var_ = var19;
529 {
530 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, self); /* Direct call array#AbstractArray#push on <var_:Array[AExpr]>*/
531 }
532 {
533 var20 = nitc___nitc__ASTBuilder___make_call(var13, var_recv, var16, var_);
534 }
535 var_nadd = var20;
536 {
537 nitc__transform___AExpr___nitc__parser_nodes__ANode__replace_with(var_place, var_nadd); /* Direct call transform#AExpr#replace_with on <var_place:AExpr>*/
538 }
539 } else {
540 }
541 {
542 ((void(*)(val* self, val* p0))(self->class->vft[COLOR_nitc__parser_nodes__ANode__visit_all]))(self, var_v); /* visit_all on <self:AExpr>*/
543 }
544 {
545 { /* Inline modelbuilder_base#ANode#is_broken (self) on <self:AExpr> */
546 var23 = self->attrs[COLOR_nitc__modelbuilder_base__ANode___is_broken].s; /* _is_broken on <self:AExpr> */
547 var21 = var23;
548 RET_LABEL22:(void)0;
549 }
550 }
551 if (var21){
552 goto RET_LABEL;
553 } else {
554 }
555 {
556 ((void(*)(val* self, val* p0))(self->class->vft[COLOR_nitc__transform__ANode__accept_transform_visitor]))(self, var_v); /* accept_transform_visitor on <self:AExpr>*/
557 }
558 RET_LABEL:;
559 }
560 /* method transform#AExpr#replace_with for (self: AExpr, ANode) */
561 void nitc__transform___AExpr___nitc__parser_nodes__ANode__replace_with(val* self, val* p0) {
562 val* var_other /* var other: ANode */;
563 short int var /* : Bool */;
564 int cltype;
565 int idtype;
566 val* var1 /* : nullable MType */;
567 val* var3 /* : nullable MType */;
568 short int var4 /* : Bool */;
569 short int var5 /* : Bool */;
570 val* var_other7 /* var other: nullable Object */;
571 short int var8 /* : Bool */;
572 short int var10 /* : Bool */;
573 val* var11 /* : nullable MType */;
574 val* var13 /* : nullable MType */;
575 var_other = p0;
576 {
577 ((void(*)(val* self, val* p0))(self->class->vft[COLOR_nitc__transform___AExpr___nitc__parser_nodes__ANode__replace_with]))(self, p0); /* replace_with on <self:AExpr>*/
578 }
579 /* <var_other:ANode> isa AExpr */
580 cltype = type_nitc__AExpr.color;
581 idtype = type_nitc__AExpr.id;
582 if(cltype >= var_other->type->table_size) {
583 var = 0;
584 } else {
585 var = var_other->type->type_table[cltype] == idtype;
586 }
587 if (var){
588 {
589 { /* Inline typing#AExpr#implicit_cast_to (var_other) on <var_other:ANode(AExpr)> */
590 var3 = var_other->attrs[COLOR_nitc__typing__AExpr___implicit_cast_to].val; /* _implicit_cast_to on <var_other:ANode(AExpr)> */
591 var1 = var3;
592 RET_LABEL2:(void)0;
593 }
594 }
595 if (var1 == NULL) {
596 var4 = 1; /* is null */
597 } else {
598 var4 = 0; /* arg is null but recv is not */
599 }
600 if (0) {
601 { /* Inline kernel#Object#== (var1,((val*)NULL)) on <var1:nullable MType> */
602 var_other7 = ((val*)NULL);
603 {
604 { /* Inline kernel#Object#is_same_instance (var1,var_other7) on <var1:nullable MType(MType)> */
605 var10 = var1 == var_other7;
606 var8 = var10;
607 goto RET_LABEL9;
608 RET_LABEL9:(void)0;
609 }
610 }
611 var5 = var8;
612 goto RET_LABEL6;
613 RET_LABEL6:(void)0;
614 }
615 var4 = var5;
616 }
617 if (var4){
618 {
619 { /* Inline typing#AExpr#implicit_cast_to (self) on <self:AExpr> */
620 var13 = self->attrs[COLOR_nitc__typing__AExpr___implicit_cast_to].val; /* _implicit_cast_to on <self:AExpr> */
621 var11 = var13;
622 RET_LABEL12:(void)0;
623 }
624 }
625 {
626 { /* Inline typing#AExpr#implicit_cast_to= (var_other,var11) on <var_other:ANode(AExpr)> */
627 var_other->attrs[COLOR_nitc__typing__AExpr___implicit_cast_to].val = var11; /* _implicit_cast_to on <var_other:ANode(AExpr)> */
628 RET_LABEL14:(void)0;
629 }
630 }
631 } else {
632 }
633 } else {
634 }
635 RET_LABEL:;
636 }
637 /* method transform#AVardeclExpr#accept_transform_visitor for (self: AVardeclExpr, TransformVisitor) */
638 void nitc__transform___AVardeclExpr___ANode__accept_transform_visitor(val* self, val* p0) {
639 val* var_v /* var v: TransformVisitor */;
640 val* var /* : nullable AExpr */;
641 val* var2 /* : nullable AExpr */;
642 val* var_nexpr /* var nexpr: nullable AExpr */;
643 short int var3 /* : Bool */;
644 short int var4 /* : Bool */;
645 val* var_other /* var other: nullable Object */;
646 short int var6 /* : Bool */;
647 short int var8 /* : Bool */;
648 val* var9 /* : ASTBuilder */;
649 val* var11 /* : ASTBuilder */;
650 val* var12 /* : nullable Variable */;
651 val* var14 /* : nullable Variable */;
652 val* var15 /* : AVarAssignExpr */;
653 val* var_nvar /* var nvar: AVarAssignExpr */;
654 var_v = p0;
655 {
656 { /* Inline parser_nodes#AVardeclExpr#n_expr (self) on <self:AVardeclExpr> */
657 var2 = self->attrs[COLOR_nitc__parser_nodes__AVardeclExpr___n_expr].val; /* _n_expr on <self:AVardeclExpr> */
658 var = var2;
659 RET_LABEL1:(void)0;
660 }
661 }
662 var_nexpr = var;
663 if (var_nexpr == NULL) {
664 var3 = 1; /* is null */
665 } else {
666 var3 = 0; /* arg is null but recv is not */
667 }
668 if (0) {
669 { /* Inline kernel#Object#== (var_nexpr,((val*)NULL)) on <var_nexpr:nullable AExpr> */
670 var_other = ((val*)NULL);
671 {
672 { /* Inline kernel#Object#is_same_instance (var_nexpr,var_other) on <var_nexpr:nullable AExpr(AExpr)> */
673 var8 = var_nexpr == var_other;
674 var6 = var8;
675 goto RET_LABEL7;
676 RET_LABEL7:(void)0;
677 }
678 }
679 var4 = var6;
680 goto RET_LABEL5;
681 RET_LABEL5:(void)0;
682 }
683 var3 = var4;
684 }
685 if (var3){
686 } else {
687 {
688 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
689 var11 = var_v->attrs[COLOR_nitc__transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
690 if (unlikely(var11 == NULL)) {
691 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
692 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 62);
693 fatal_exit(1);
694 }
695 var9 = var11;
696 RET_LABEL10:(void)0;
697 }
698 }
699 {
700 { /* Inline scope#AVardeclExpr#variable (self) on <self:AVardeclExpr> */
701 var14 = self->attrs[COLOR_nitc__scope__AVardeclExpr___variable].val; /* _variable on <self:AVardeclExpr> */
702 var12 = var14;
703 RET_LABEL13:(void)0;
704 }
705 }
706 if (unlikely(var12 == NULL)) {
707 PRINT_ERROR("Runtime error: %s", "Cast failed");
708 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 138);
709 fatal_exit(1);
710 }
711 {
712 var15 = nitc___nitc__ASTBuilder___make_var_assign(var9, var12, var_nexpr);
713 }
714 var_nvar = var15;
715 {
716 nitc__transform___AExpr___nitc__parser_nodes__ANode__replace_with(self, var_nvar); /* Direct call transform#AExpr#replace_with on <self:AVardeclExpr>*/
717 }
718 }
719 RET_LABEL:;
720 }
721 /* method transform#AIfexprExpr#accept_transform_visitor for (self: AIfexprExpr, TransformVisitor) */
722 void nitc__transform___AIfexprExpr___ANode__accept_transform_visitor(val* self, val* p0) {
723 val* var_v /* var v: TransformVisitor */;
724 val* var /* : ASTBuilder */;
725 val* var2 /* : ASTBuilder */;
726 val* var3 /* : AExpr */;
727 val* var5 /* : AExpr */;
728 val* var6 /* : nullable MType */;
729 val* var8 /* : nullable MType */;
730 val* var9 /* : AIfExpr */;
731 val* var_nif /* var nif: AIfExpr */;
732 val* var10 /* : nullable AExpr */;
733 val* var12 /* : nullable AExpr */;
734 val* var13 /* : AExpr */;
735 val* var15 /* : AExpr */;
736 val* var16 /* : nullable AExpr */;
737 val* var18 /* : nullable AExpr */;
738 val* var19 /* : AExpr */;
739 val* var21 /* : AExpr */;
740 var_v = p0;
741 {
742 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
743 var2 = var_v->attrs[COLOR_nitc__transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
744 if (unlikely(var2 == NULL)) {
745 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
746 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 62);
747 fatal_exit(1);
748 }
749 var = var2;
750 RET_LABEL1:(void)0;
751 }
752 }
753 {
754 { /* Inline parser_nodes#AIfexprExpr#n_expr (self) on <self:AIfexprExpr> */
755 var5 = self->attrs[COLOR_nitc__parser_nodes__AIfexprExpr___n_expr].val; /* _n_expr on <self:AIfexprExpr> */
756 if (unlikely(var5 == NULL)) {
757 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
758 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1866);
759 fatal_exit(1);
760 }
761 var3 = var5;
762 RET_LABEL4:(void)0;
763 }
764 }
765 {
766 { /* Inline typing#AExpr#mtype (self) on <self:AIfexprExpr> */
767 var8 = self->attrs[COLOR_nitc__typing__AExpr___mtype].val; /* _mtype on <self:AIfexprExpr> */
768 var6 = var8;
769 RET_LABEL7:(void)0;
770 }
771 }
772 {
773 var9 = nitc___nitc__ASTBuilder___make_if(var, var3, var6);
774 }
775 var_nif = var9;
776 {
777 { /* Inline parser_nodes#AIfExpr#n_then (var_nif) on <var_nif:AIfExpr> */
778 var12 = var_nif->attrs[COLOR_nitc__parser_nodes__AIfExpr___n_then].val; /* _n_then on <var_nif:AIfExpr> */
779 var10 = var12;
780 RET_LABEL11:(void)0;
781 }
782 }
783 {
784 { /* Inline parser_nodes#AIfexprExpr#n_then (self) on <self:AIfexprExpr> */
785 var15 = self->attrs[COLOR_nitc__parser_nodes__AIfexprExpr___n_then].val; /* _n_then on <self:AIfexprExpr> */
786 if (unlikely(var15 == NULL)) {
787 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_then");
788 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1872);
789 fatal_exit(1);
790 }
791 var13 = var15;
792 RET_LABEL14:(void)0;
793 }
794 }
795 if (var10 == NULL) {
796 PRINT_ERROR("Runtime error: %s", "Receiver is null");
797 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 151);
798 fatal_exit(1);
799 } else {
800 ((void(*)(val* self, val* p0))(var10->class->vft[COLOR_nitc__astbuilder__AExpr__add]))(var10, var13); /* add on <var10:nullable AExpr>*/
801 }
802 {
803 { /* Inline parser_nodes#AIfExpr#n_else (var_nif) on <var_nif:AIfExpr> */
804 var18 = var_nif->attrs[COLOR_nitc__parser_nodes__AIfExpr___n_else].val; /* _n_else on <var_nif:AIfExpr> */
805 var16 = var18;
806 RET_LABEL17:(void)0;
807 }
808 }
809 {
810 { /* Inline parser_nodes#AIfexprExpr#n_else (self) on <self:AIfexprExpr> */
811 var21 = self->attrs[COLOR_nitc__parser_nodes__AIfexprExpr___n_else].val; /* _n_else on <self:AIfexprExpr> */
812 if (unlikely(var21 == NULL)) {
813 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_else");
814 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1878);
815 fatal_exit(1);
816 }
817 var19 = var21;
818 RET_LABEL20:(void)0;
819 }
820 }
821 if (var16 == NULL) {
822 PRINT_ERROR("Runtime error: %s", "Receiver is null");
823 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 152);
824 fatal_exit(1);
825 } else {
826 ((void(*)(val* self, val* p0))(var16->class->vft[COLOR_nitc__astbuilder__AExpr__add]))(var16, var19); /* add on <var16:nullable AExpr>*/
827 }
828 {
829 nitc__transform___AExpr___nitc__parser_nodes__ANode__replace_with(self, var_nif); /* Direct call transform#AExpr#replace_with on <self:AIfexprExpr>*/
830 }
831 RET_LABEL:;
832 }
833 /* method transform#AOrExpr#accept_transform_visitor for (self: AOrExpr, TransformVisitor) */
834 void nitc__transform___AOrExpr___ANode__accept_transform_visitor(val* self, val* p0) {
835 val* var_v /* var v: TransformVisitor */;
836 val* var /* : ASTBuilder */;
837 val* var2 /* : ASTBuilder */;
838 val* var3 /* : AExpr */;
839 val* var5 /* : AExpr */;
840 val* var6 /* : nullable MType */;
841 val* var8 /* : nullable MType */;
842 val* var9 /* : AIfExpr */;
843 val* var_nif /* var nif: AIfExpr */;
844 val* var10 /* : nullable AExpr */;
845 val* var12 /* : nullable AExpr */;
846 val* var13 /* : AExpr */;
847 val* var15 /* : AExpr */;
848 val* var16 /* : AVarExpr */;
849 val* var17 /* : nullable AExpr */;
850 val* var19 /* : nullable AExpr */;
851 val* var20 /* : AExpr */;
852 val* var22 /* : AExpr */;
853 var_v = p0;
854 {
855 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
856 var2 = var_v->attrs[COLOR_nitc__transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
857 if (unlikely(var2 == NULL)) {
858 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
859 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 62);
860 fatal_exit(1);
861 }
862 var = var2;
863 RET_LABEL1:(void)0;
864 }
865 }
866 {
867 { /* Inline parser_nodes#ABinBoolExpr#n_expr (self) on <self:AOrExpr> */
868 var5 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr].val; /* _n_expr on <self:AOrExpr> */
869 if (unlikely(var5 == NULL)) {
870 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
871 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2050);
872 fatal_exit(1);
873 }
874 var3 = var5;
875 RET_LABEL4:(void)0;
876 }
877 }
878 {
879 { /* Inline typing#AExpr#mtype (self) on <self:AOrExpr> */
880 var8 = self->attrs[COLOR_nitc__typing__AExpr___mtype].val; /* _mtype on <self:AOrExpr> */
881 var6 = var8;
882 RET_LABEL7:(void)0;
883 }
884 }
885 {
886 var9 = nitc___nitc__ASTBuilder___make_if(var, var3, var6);
887 }
888 var_nif = var9;
889 {
890 { /* Inline parser_nodes#AIfExpr#n_then (var_nif) on <var_nif:AIfExpr> */
891 var12 = var_nif->attrs[COLOR_nitc__parser_nodes__AIfExpr___n_then].val; /* _n_then on <var_nif:AIfExpr> */
892 var10 = var12;
893 RET_LABEL11:(void)0;
894 }
895 }
896 {
897 { /* Inline parser_nodes#ABinBoolExpr#n_expr (self) on <self:AOrExpr> */
898 var15 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr].val; /* _n_expr on <self:AOrExpr> */
899 if (unlikely(var15 == NULL)) {
900 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
901 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2050);
902 fatal_exit(1);
903 }
904 var13 = var15;
905 RET_LABEL14:(void)0;
906 }
907 }
908 {
909 var16 = nitc__astbuilder___AExpr___make_var_read(var13);
910 }
911 if (var10 == NULL) {
912 PRINT_ERROR("Runtime error: %s", "Receiver is null");
913 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 163);
914 fatal_exit(1);
915 } else {
916 ((void(*)(val* self, val* p0))(var10->class->vft[COLOR_nitc__astbuilder__AExpr__add]))(var10, var16); /* add on <var10:nullable AExpr>*/
917 }
918 {
919 { /* Inline parser_nodes#AIfExpr#n_else (var_nif) on <var_nif:AIfExpr> */
920 var19 = var_nif->attrs[COLOR_nitc__parser_nodes__AIfExpr___n_else].val; /* _n_else on <var_nif:AIfExpr> */
921 var17 = var19;
922 RET_LABEL18:(void)0;
923 }
924 }
925 {
926 { /* Inline parser_nodes#ABinBoolExpr#n_expr2 (self) on <self:AOrExpr> */
927 var22 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr2].val; /* _n_expr2 on <self:AOrExpr> */
928 if (unlikely(var22 == NULL)) {
929 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
930 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2056);
931 fatal_exit(1);
932 }
933 var20 = var22;
934 RET_LABEL21:(void)0;
935 }
936 }
937 if (var17 == NULL) {
938 PRINT_ERROR("Runtime error: %s", "Receiver is null");
939 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 164);
940 fatal_exit(1);
941 } else {
942 ((void(*)(val* self, val* p0))(var17->class->vft[COLOR_nitc__astbuilder__AExpr__add]))(var17, var20); /* add on <var17:nullable AExpr>*/
943 }
944 {
945 nitc__transform___AExpr___nitc__parser_nodes__ANode__replace_with(self, var_nif); /* Direct call transform#AExpr#replace_with on <self:AOrExpr>*/
946 }
947 RET_LABEL:;
948 }
949 /* method transform#AImpliesExpr#accept_transform_visitor for (self: AImpliesExpr, TransformVisitor) */
950 void nitc__transform___AImpliesExpr___ANode__accept_transform_visitor(val* self, val* p0) {
951 val* var_v /* var v: TransformVisitor */;
952 var_v = p0;
953 RET_LABEL:;
954 }
955 /* method transform#AAndExpr#accept_transform_visitor for (self: AAndExpr, TransformVisitor) */
956 void nitc__transform___AAndExpr___ANode__accept_transform_visitor(val* self, val* p0) {
957 val* var_v /* var v: TransformVisitor */;
958 val* var /* : ASTBuilder */;
959 val* var2 /* : ASTBuilder */;
960 val* var3 /* : AExpr */;
961 val* var5 /* : AExpr */;
962 val* var6 /* : nullable MType */;
963 val* var8 /* : nullable MType */;
964 val* var9 /* : AIfExpr */;
965 val* var_nif /* var nif: AIfExpr */;
966 val* var10 /* : nullable AExpr */;
967 val* var12 /* : nullable AExpr */;
968 val* var13 /* : AExpr */;
969 val* var15 /* : AExpr */;
970 val* var16 /* : nullable AExpr */;
971 val* var18 /* : nullable AExpr */;
972 val* var19 /* : AExpr */;
973 val* var21 /* : AExpr */;
974 val* var22 /* : AVarExpr */;
975 var_v = p0;
976 {
977 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
978 var2 = var_v->attrs[COLOR_nitc__transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
979 if (unlikely(var2 == NULL)) {
980 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
981 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 62);
982 fatal_exit(1);
983 }
984 var = var2;
985 RET_LABEL1:(void)0;
986 }
987 }
988 {
989 { /* Inline parser_nodes#ABinBoolExpr#n_expr (self) on <self:AAndExpr> */
990 var5 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr].val; /* _n_expr on <self:AAndExpr> */
991 if (unlikely(var5 == NULL)) {
992 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
993 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2050);
994 fatal_exit(1);
995 }
996 var3 = var5;
997 RET_LABEL4:(void)0;
998 }
999 }
1000 {
1001 { /* Inline typing#AExpr#mtype (self) on <self:AAndExpr> */
1002 var8 = self->attrs[COLOR_nitc__typing__AExpr___mtype].val; /* _mtype on <self:AAndExpr> */
1003 var6 = var8;
1004 RET_LABEL7:(void)0;
1005 }
1006 }
1007 {
1008 var9 = nitc___nitc__ASTBuilder___make_if(var, var3, var6);
1009 }
1010 var_nif = var9;
1011 {
1012 { /* Inline parser_nodes#AIfExpr#n_then (var_nif) on <var_nif:AIfExpr> */
1013 var12 = var_nif->attrs[COLOR_nitc__parser_nodes__AIfExpr___n_then].val; /* _n_then on <var_nif:AIfExpr> */
1014 var10 = var12;
1015 RET_LABEL11:(void)0;
1016 }
1017 }
1018 {
1019 { /* Inline parser_nodes#ABinBoolExpr#n_expr2 (self) on <self:AAndExpr> */
1020 var15 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr2].val; /* _n_expr2 on <self:AAndExpr> */
1021 if (unlikely(var15 == NULL)) {
1022 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
1023 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2056);
1024 fatal_exit(1);
1025 }
1026 var13 = var15;
1027 RET_LABEL14:(void)0;
1028 }
1029 }
1030 if (var10 == NULL) {
1031 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1032 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 182);
1033 fatal_exit(1);
1034 } else {
1035 ((void(*)(val* self, val* p0))(var10->class->vft[COLOR_nitc__astbuilder__AExpr__add]))(var10, var13); /* add on <var10:nullable AExpr>*/
1036 }
1037 {
1038 { /* Inline parser_nodes#AIfExpr#n_else (var_nif) on <var_nif:AIfExpr> */
1039 var18 = var_nif->attrs[COLOR_nitc__parser_nodes__AIfExpr___n_else].val; /* _n_else on <var_nif:AIfExpr> */
1040 var16 = var18;
1041 RET_LABEL17:(void)0;
1042 }
1043 }
1044 {
1045 { /* Inline parser_nodes#ABinBoolExpr#n_expr (self) on <self:AAndExpr> */
1046 var21 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr].val; /* _n_expr on <self:AAndExpr> */
1047 if (unlikely(var21 == NULL)) {
1048 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1049 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2050);
1050 fatal_exit(1);
1051 }
1052 var19 = var21;
1053 RET_LABEL20:(void)0;
1054 }
1055 }
1056 {
1057 var22 = nitc__astbuilder___AExpr___make_var_read(var19);
1058 }
1059 if (var16 == NULL) {
1060 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1061 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 183);
1062 fatal_exit(1);
1063 } else {
1064 ((void(*)(val* self, val* p0))(var16->class->vft[COLOR_nitc__astbuilder__AExpr__add]))(var16, var22); /* add on <var16:nullable AExpr>*/
1065 }
1066 {
1067 nitc__transform___AExpr___nitc__parser_nodes__ANode__replace_with(self, var_nif); /* Direct call transform#AExpr#replace_with on <self:AAndExpr>*/
1068 }
1069 RET_LABEL:;
1070 }
1071 /* method transform#AWhileExpr#accept_transform_visitor for (self: AWhileExpr, TransformVisitor) */
1072 void nitc__transform___AWhileExpr___ANode__accept_transform_visitor(val* self, val* p0) {
1073 val* var_v /* var v: TransformVisitor */;
1074 val* var /* : ASTBuilder */;
1075 val* var2 /* : ASTBuilder */;
1076 val* var3 /* : ALoopExpr */;
1077 val* var_nloop /* var nloop: ALoopExpr */;
1078 val* var4 /* : ASTBuilder */;
1079 val* var6 /* : ASTBuilder */;
1080 val* var7 /* : AExpr */;
1081 val* var9 /* : AExpr */;
1082 val* var10 /* : AIfExpr */;
1083 val* var_nif /* var nif: AIfExpr */;
1084 val* var11 /* : nullable AExpr */;
1085 val* var13 /* : nullable AExpr */;
1086 val* var_nblock /* var nblock: nullable AExpr */;
1087 short int var14 /* : Bool */;
1088 short int var15 /* : Bool */;
1089 val* var_other /* var other: nullable Object */;
1090 short int var17 /* : Bool */;
1091 short int var18 /* : Bool */;
1092 val* var19 /* : nullable AExpr */;
1093 val* var21 /* : nullable AExpr */;
1094 val* var22 /* : nullable EscapeMark */;
1095 val* var24 /* : nullable EscapeMark */;
1096 val* var_escapemark /* var escapemark: EscapeMark */;
1097 val* var25 /* : ASTBuilder */;
1098 val* var27 /* : ASTBuilder */;
1099 val* var28 /* : ABreakExpr */;
1100 val* var_nbreak /* var nbreak: ABreakExpr */;
1101 val* var29 /* : nullable AExpr */;
1102 val* var31 /* : nullable AExpr */;
1103 val* var32 /* : nullable EscapeMark */;
1104 val* var34 /* : nullable EscapeMark */;
1105 val* var36 /* : nullable EscapeMark */;
1106 val* var38 /* : nullable EscapeMark */;
1107 var_v = p0;
1108 {
1109 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
1110 var2 = var_v->attrs[COLOR_nitc__transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
1111 if (unlikely(var2 == NULL)) {
1112 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
1113 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 62);
1114 fatal_exit(1);
1115 }
1116 var = var2;
1117 RET_LABEL1:(void)0;
1118 }
1119 }
1120 {
1121 var3 = nitc___nitc__ASTBuilder___make_loop(var);
1122 }
1123 var_nloop = var3;
1124 {
1125 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
1126 var6 = var_v->attrs[COLOR_nitc__transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
1127 if (unlikely(var6 == NULL)) {
1128 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
1129 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 62);
1130 fatal_exit(1);
1131 }
1132 var4 = var6;
1133 RET_LABEL5:(void)0;
1134 }
1135 }
1136 {
1137 { /* Inline parser_nodes#AWhileExpr#n_expr (self) on <self:AWhileExpr> */
1138 var9 = self->attrs[COLOR_nitc__parser_nodes__AWhileExpr___n_expr].val; /* _n_expr on <self:AWhileExpr> */
1139 if (unlikely(var9 == NULL)) {
1140 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1141 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1890);
1142 fatal_exit(1);
1143 }
1144 var7 = var9;
1145 RET_LABEL8:(void)0;
1146 }
1147 }
1148 {
1149 var10 = nitc___nitc__ASTBuilder___make_if(var4, var7, ((val*)NULL));
1150 }
1151 var_nif = var10;
1152 {
1153 nitc__astbuilder___ALoopExpr___AExpr__add(var_nloop, var_nif); /* Direct call astbuilder#ALoopExpr#add on <var_nloop:ALoopExpr>*/
1154 }
1155 {
1156 { /* Inline parser_nodes#AWhileExpr#n_block (self) on <self:AWhileExpr> */
1157 var13 = self->attrs[COLOR_nitc__parser_nodes__AWhileExpr___n_block].val; /* _n_block on <self:AWhileExpr> */
1158 var11 = var13;
1159 RET_LABEL12:(void)0;
1160 }
1161 }
1162 var_nblock = var11;
1163 if (var_nblock == NULL) {
1164 var14 = 0; /* is null */
1165 } else {
1166 var14 = 1; /* arg is null and recv is not */
1167 }
1168 if (0) {
1169 { /* Inline kernel#Object#!= (var_nblock,((val*)NULL)) on <var_nblock:nullable AExpr> */
1170 var_other = ((val*)NULL);
1171 {
1172 var17 = ((short int(*)(val* self, val* p0))(var_nblock->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_nblock, var_other); /* == on <var_nblock:nullable AExpr(AExpr)>*/
1173 }
1174 var18 = !var17;
1175 var15 = var18;
1176 goto RET_LABEL16;
1177 RET_LABEL16:(void)0;
1178 }
1179 var14 = var15;
1180 }
1181 if (var14){
1182 {
1183 { /* Inline parser_nodes#AIfExpr#n_then (var_nif) on <var_nif:AIfExpr> */
1184 var21 = var_nif->attrs[COLOR_nitc__parser_nodes__AIfExpr___n_then].val; /* _n_then on <var_nif:AIfExpr> */
1185 var19 = var21;
1186 RET_LABEL20:(void)0;
1187 }
1188 }
1189 if (var19 == NULL) {
1190 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1191 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 197);
1192 fatal_exit(1);
1193 } else {
1194 ((void(*)(val* self, val* p0))(var19->class->vft[COLOR_nitc__astbuilder__AExpr__add]))(var19, var_nblock); /* add on <var19:nullable AExpr>*/
1195 }
1196 } else {
1197 }
1198 {
1199 { /* Inline scope#AWhileExpr#break_mark (self) on <self:AWhileExpr> */
1200 var24 = self->attrs[COLOR_nitc__scope__AWhileExpr___break_mark].val; /* _break_mark on <self:AWhileExpr> */
1201 var22 = var24;
1202 RET_LABEL23:(void)0;
1203 }
1204 }
1205 if (unlikely(var22 == NULL)) {
1206 PRINT_ERROR("Runtime error: %s", "Cast failed");
1207 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 199);
1208 fatal_exit(1);
1209 }
1210 var_escapemark = var22;
1211 {
1212 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
1213 var27 = var_v->attrs[COLOR_nitc__transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
1214 if (unlikely(var27 == NULL)) {
1215 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
1216 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 62);
1217 fatal_exit(1);
1218 }
1219 var25 = var27;
1220 RET_LABEL26:(void)0;
1221 }
1222 }
1223 {
1224 var28 = nitc___nitc__ASTBuilder___make_break(var25, var_escapemark);
1225 }
1226 var_nbreak = var28;
1227 {
1228 { /* Inline parser_nodes#AIfExpr#n_else (var_nif) on <var_nif:AIfExpr> */
1229 var31 = var_nif->attrs[COLOR_nitc__parser_nodes__AIfExpr___n_else].val; /* _n_else on <var_nif:AIfExpr> */
1230 var29 = var31;
1231 RET_LABEL30:(void)0;
1232 }
1233 }
1234 if (var29 == NULL) {
1235 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1236 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 201);
1237 fatal_exit(1);
1238 } else {
1239 ((void(*)(val* self, val* p0))(var29->class->vft[COLOR_nitc__astbuilder__AExpr__add]))(var29, var_nbreak); /* add on <var29:nullable AExpr>*/
1240 }
1241 {
1242 { /* Inline scope#AWhileExpr#break_mark (self) on <self:AWhileExpr> */
1243 var34 = self->attrs[COLOR_nitc__scope__AWhileExpr___break_mark].val; /* _break_mark on <self:AWhileExpr> */
1244 var32 = var34;
1245 RET_LABEL33:(void)0;
1246 }
1247 }
1248 {
1249 { /* Inline scope#ALoopExpr#break_mark= (var_nloop,var32) on <var_nloop:ALoopExpr> */
1250 var_nloop->attrs[COLOR_nitc__scope__ALoopExpr___break_mark].val = var32; /* _break_mark on <var_nloop:ALoopExpr> */
1251 RET_LABEL35:(void)0;
1252 }
1253 }
1254 {
1255 { /* Inline scope#AWhileExpr#continue_mark (self) on <self:AWhileExpr> */
1256 var38 = self->attrs[COLOR_nitc__scope__AWhileExpr___continue_mark].val; /* _continue_mark on <self:AWhileExpr> */
1257 var36 = var38;
1258 RET_LABEL37:(void)0;
1259 }
1260 }
1261 {
1262 { /* Inline scope#ALoopExpr#continue_mark= (var_nloop,var36) on <var_nloop:ALoopExpr> */
1263 var_nloop->attrs[COLOR_nitc__scope__ALoopExpr___continue_mark].val = var36; /* _continue_mark on <var_nloop:ALoopExpr> */
1264 RET_LABEL39:(void)0;
1265 }
1266 }
1267 {
1268 nitc__transform___AExpr___nitc__parser_nodes__ANode__replace_with(self, var_nloop); /* Direct call transform#AExpr#replace_with on <self:AWhileExpr>*/
1269 }
1270 RET_LABEL:;
1271 }
1272 /* method transform#AForExpr#accept_transform_visitor for (self: AForExpr, TransformVisitor) */
1273 void nitc__transform___AForExpr___ANode__accept_transform_visitor(val* self, val* p0) {
1274 val* var_v /* var v: TransformVisitor */;
1275 val* var /* : nullable EscapeMark */;
1276 val* var2 /* : nullable EscapeMark */;
1277 val* var_escapemark /* var escapemark: nullable EscapeMark */;
1278 short int var3 /* : Bool */;
1279 short int var4 /* : Bool */;
1280 val* var_other /* var other: nullable Object */;
1281 short int var6 /* : Bool */;
1282 short int var7 /* : Bool */;
1283 val* var8 /* : ASTBuilder */;
1284 val* var10 /* : ASTBuilder */;
1285 val* var11 /* : ABlockExpr */;
1286 val* var_nblock /* var nblock: ABlockExpr */;
1287 val* var12 /* : ASTBuilder */;
1288 val* var14 /* : ASTBuilder */;
1289 val* var15 /* : ABlockExpr */;
1290 val* var_before /* var before: ABlockExpr */;
1291 val* var16 /* : ASTBuilder */;
1292 val* var18 /* : ASTBuilder */;
1293 val* var19 /* : ALoopExpr */;
1294 val* var_nloop /* var nloop: ALoopExpr */;
1295 val* var21 /* : ASTBuilder */;
1296 val* var23 /* : ASTBuilder */;
1297 val* var24 /* : ABlockExpr */;
1298 val* var_begin /* var begin: ABlockExpr */;
1299 val* var25 /* : ASTBuilder */;
1300 val* var27 /* : ASTBuilder */;
1301 val* var28 /* : ADoExpr */;
1302 val* var_ndo /* var ndo: ADoExpr */;
1303 val* var29 /* : nullable EscapeMark */;
1304 val* var31 /* : nullable EscapeMark */;
1305 val* var33 /* : nullable AExpr */;
1306 val* var35 /* : nullable AExpr */;
1307 val* var36 /* : ANodes[AForGroup] */;
1308 val* var38 /* : ANodes[AForGroup] */;
1309 val* var_ /* var : ANodes[AForGroup] */;
1310 val* var39 /* : Iterator[ANode] */;
1311 val* var_40 /* var : Iterator[AForGroup] */;
1312 short int var41 /* : Bool */;
1313 val* var42 /* : nullable Object */;
1314 val* var_g /* var g: AForGroup */;
1315 var_v = p0;
1316 {
1317 { /* Inline scope#AForExpr#break_mark (self) on <self:AForExpr> */
1318 var2 = self->attrs[COLOR_nitc__scope__AForExpr___break_mark].val; /* _break_mark on <self:AForExpr> */
1319 var = var2;
1320 RET_LABEL1:(void)0;
1321 }
1322 }
1323 var_escapemark = var;
1324 if (var_escapemark == NULL) {
1325 var3 = 0; /* is null */
1326 } else {
1327 var3 = 1; /* arg is null and recv is not */
1328 }
1329 if (0) {
1330 { /* Inline kernel#Object#!= (var_escapemark,((val*)NULL)) on <var_escapemark:nullable EscapeMark> */
1331 var_other = ((val*)NULL);
1332 {
1333 var6 = ((short int(*)(val* self, val* p0))(var_escapemark->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_escapemark, var_other); /* == on <var_escapemark:nullable EscapeMark(EscapeMark)>*/
1334 }
1335 var7 = !var6;
1336 var4 = var7;
1337 goto RET_LABEL5;
1338 RET_LABEL5:(void)0;
1339 }
1340 var3 = var4;
1341 }
1342 if (unlikely(!var3)) {
1343 PRINT_ERROR("Runtime error: %s", "Assert failed");
1344 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 214);
1345 fatal_exit(1);
1346 }
1347 {
1348 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
1349 var10 = var_v->attrs[COLOR_nitc__transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
1350 if (unlikely(var10 == NULL)) {
1351 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
1352 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 62);
1353 fatal_exit(1);
1354 }
1355 var8 = var10;
1356 RET_LABEL9:(void)0;
1357 }
1358 }
1359 {
1360 var11 = nitc___nitc__ASTBuilder___make_block(var8);
1361 }
1362 var_nblock = var11;
1363 {
1364 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
1365 var14 = var_v->attrs[COLOR_nitc__transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
1366 if (unlikely(var14 == NULL)) {
1367 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
1368 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 62);
1369 fatal_exit(1);
1370 }
1371 var12 = var14;
1372 RET_LABEL13:(void)0;
1373 }
1374 }
1375 {
1376 var15 = nitc___nitc__ASTBuilder___make_block(var12);
1377 }
1378 var_before = var15;
1379 {
1380 nitc__astbuilder___ABlockExpr___AExpr__add(var_nblock, var_before); /* Direct call astbuilder#ABlockExpr#add on <var_nblock:ABlockExpr>*/
1381 }
1382 {
1383 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
1384 var18 = var_v->attrs[COLOR_nitc__transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
1385 if (unlikely(var18 == NULL)) {
1386 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
1387 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 62);
1388 fatal_exit(1);
1389 }
1390 var16 = var18;
1391 RET_LABEL17:(void)0;
1392 }
1393 }
1394 {
1395 var19 = nitc___nitc__ASTBuilder___make_loop(var16);
1396 }
1397 var_nloop = var19;
1398 {
1399 { /* Inline scope#ALoopExpr#break_mark= (var_nloop,var_escapemark) on <var_nloop:ALoopExpr> */
1400 var_nloop->attrs[COLOR_nitc__scope__ALoopExpr___break_mark].val = var_escapemark; /* _break_mark on <var_nloop:ALoopExpr> */
1401 RET_LABEL20:(void)0;
1402 }
1403 }
1404 {
1405 nitc__astbuilder___ABlockExpr___AExpr__add(var_nblock, var_nloop); /* Direct call astbuilder#ABlockExpr#add on <var_nblock:ABlockExpr>*/
1406 }
1407 {
1408 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
1409 var23 = var_v->attrs[COLOR_nitc__transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
1410 if (unlikely(var23 == NULL)) {
1411 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
1412 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 62);
1413 fatal_exit(1);
1414 }
1415 var21 = var23;
1416 RET_LABEL22:(void)0;
1417 }
1418 }
1419 {
1420 var24 = nitc___nitc__ASTBuilder___make_block(var21);
1421 }
1422 var_begin = var24;
1423 {
1424 nitc__astbuilder___ALoopExpr___AExpr__add(var_nloop, var_begin); /* Direct call astbuilder#ALoopExpr#add on <var_nloop:ALoopExpr>*/
1425 }
1426 {
1427 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
1428 var27 = var_v->attrs[COLOR_nitc__transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
1429 if (unlikely(var27 == NULL)) {
1430 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
1431 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 62);
1432 fatal_exit(1);
1433 }
1434 var25 = var27;
1435 RET_LABEL26:(void)0;
1436 }
1437 }
1438 {
1439 var28 = nitc___nitc__ASTBuilder___make_do(var25);
1440 }
1441 var_ndo = var28;
1442 {
1443 { /* Inline scope#EscapeMark#continue_mark (var_escapemark) on <var_escapemark:nullable EscapeMark(EscapeMark)> */
1444 var31 = var_escapemark->attrs[COLOR_nitc__scope__EscapeMark___continue_mark].val; /* _continue_mark on <var_escapemark:nullable EscapeMark(EscapeMark)> */
1445 var29 = var31;
1446 RET_LABEL30:(void)0;
1447 }
1448 }
1449 {
1450 { /* Inline scope#ADoExpr#break_mark= (var_ndo,var29) on <var_ndo:ADoExpr> */
1451 var_ndo->attrs[COLOR_nitc__scope__ADoExpr___break_mark].val = var29; /* _break_mark on <var_ndo:ADoExpr> */
1452 RET_LABEL32:(void)0;
1453 }
1454 }
1455 {
1456 nitc__astbuilder___ALoopExpr___AExpr__add(var_nloop, var_ndo); /* Direct call astbuilder#ALoopExpr#add on <var_nloop:ALoopExpr>*/
1457 }
1458 {
1459 { /* Inline parser_nodes#AForExpr#n_block (self) on <self:AForExpr> */
1460 var35 = self->attrs[COLOR_nitc__parser_nodes__AForExpr___n_block].val; /* _n_block on <self:AForExpr> */
1461 var33 = var35;
1462 RET_LABEL34:(void)0;
1463 }
1464 }
1465 if (unlikely(var33 == NULL)) {
1466 PRINT_ERROR("Runtime error: %s", "Cast failed");
1467 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 237);
1468 fatal_exit(1);
1469 }
1470 {
1471 nitc__astbuilder___ADoExpr___AExpr__add(var_ndo, var33); /* Direct call astbuilder#ADoExpr#add on <var_ndo:ADoExpr>*/
1472 }
1473 {
1474 { /* Inline parser_nodes#AForExpr#n_groups (self) on <self:AForExpr> */
1475 var38 = self->attrs[COLOR_nitc__parser_nodes__AForExpr___n_groups].val; /* _n_groups on <self:AForExpr> */
1476 if (unlikely(var38 == NULL)) {
1477 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_groups");
1478 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1920);
1479 fatal_exit(1);
1480 }
1481 var36 = var38;
1482 RET_LABEL37:(void)0;
1483 }
1484 }
1485 var_ = var36;
1486 {
1487 var39 = nitc___nitc__ANodes___core__abstract_collection__Collection__iterator(var_);
1488 }
1489 var_40 = var39;
1490 for(;;) {
1491 {
1492 var41 = ((short int(*)(val* self))((((long)var_40&3)?class_info[((long)var_40&3)]:var_40->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_40); /* is_ok on <var_40:Iterator[AForGroup]>*/
1493 }
1494 if (var41){
1495 } else {
1496 goto BREAK_label;
1497 }
1498 {
1499 var42 = ((val*(*)(val* self))((((long)var_40&3)?class_info[((long)var_40&3)]:var_40->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_40); /* item on <var_40:Iterator[AForGroup]>*/
1500 }
1501 var_g = var42;
1502 {
1503 nitc__transform___AForGroup___transform_in(var_g, var_v, var_before, var_begin, var_nloop, var_nblock, var_escapemark); /* Direct call transform#AForGroup#transform_in on <var_g:AForGroup>*/
1504 }
1505 {
1506 ((void(*)(val* self))((((long)var_40&3)?class_info[((long)var_40&3)]:var_40->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_40); /* next on <var_40:Iterator[AForGroup]>*/
1507 }
1508 }
1509 BREAK_label: (void)0;
1510 {
1511 ((void(*)(val* self))((((long)var_40&3)?class_info[((long)var_40&3)]:var_40->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_40); /* finish on <var_40:Iterator[AForGroup]>*/
1512 }
1513 {
1514 nitc__transform___AExpr___nitc__parser_nodes__ANode__replace_with(self, var_nblock); /* Direct call transform#AExpr#replace_with on <self:AForExpr>*/
1515 }
1516 RET_LABEL:;
1517 }
1518 /* method transform#AForGroup#transform_in for (self: AForGroup, TransformVisitor, AExpr, AExpr, AExpr, AExpr, EscapeMark) */
1519 void nitc__transform___AForGroup___transform_in(val* self, val* p0, val* p1, val* p2, val* p3, val* p4, val* p5) {
1520 val* var_v /* var v: TransformVisitor */;
1521 val* var_before /* var before: AExpr */;
1522 val* var_begin /* var begin: AExpr */;
1523 val* var_next /* var next: AExpr */;
1524 val* var_finish /* var finish: AExpr */;
1525 val* var_escapemark /* var escapemark: EscapeMark */;
1526 val* var /* : AExpr */;
1527 val* var2 /* : AExpr */;
1528 val* var_nexpr /* var nexpr: AExpr */;
1529 short int var3 /* : Bool */;
1530 short int var4 /* : Bool */;
1531 val* var5 /* : nullable Array[Variable] */;
1532 val* var7 /* : nullable Array[Variable] */;
1533 long var8 /* : Int */;
1534 long var10 /* : Int */;
1535 short int var11 /* : Bool */;
1536 short int var13 /* : Bool */;
1537 short int var_ /* var : Bool */;
1538 short int var14 /* : Bool */;
1539 int cltype;
1540 int idtype;
1541 short int var_15 /* var : Bool */;
1542 val* var16 /* : TransformPhase */;
1543 val* var18 /* : TransformPhase */;
1544 val* var19 /* : ToolContext */;
1545 val* var21 /* : ToolContext */;
1546 val* var22 /* : OptionBool */;
1547 val* var24 /* : OptionBool */;
1548 val* var25 /* : nullable Object */;
1549 val* var27 /* : nullable Object */;
1550 short int var28 /* : Bool */;
1551 short int var29 /* : Bool */;
1552 val* var30 /* : nullable Array[Variable] */;
1553 val* var32 /* : nullable Array[Variable] */;
1554 val* var33 /* : nullable Object */;
1555 val* var_variable /* var variable: Variable */;
1556 val* var34 /* : ASTBuilder */;
1557 val* var36 /* : ASTBuilder */;
1558 val* var37 /* : AExpr */;
1559 val* var39 /* : AExpr */;
1560 val* var40 /* : AVarAssignExpr */;
1561 val* var41 /* : AExpr */;
1562 val* var43 /* : AExpr */;
1563 val* var_to /* var to: AExpr */;
1564 val* var44 /* : ASTBuilder */;
1565 val* var46 /* : ASTBuilder */;
1566 val* var47 /* : ASTBuilder */;
1567 val* var49 /* : ASTBuilder */;
1568 val* var50 /* : nullable MType */;
1569 val* var52 /* : nullable MType */;
1570 val* var53 /* : AVarExpr */;
1571 val* var54 /* : nullable CallSite */;
1572 val* var56 /* : nullable CallSite */;
1573 val* var57 /* : Array[AVarExpr] */;
1574 val* var_58 /* var : Array[AVarExpr] */;
1575 val* var59 /* : AVarExpr */;
1576 val* var60 /* : ACallExpr */;
1577 val* var_is_ok /* var is_ok: ACallExpr */;
1578 val* var61 /* : ASTBuilder */;
1579 val* var63 /* : ASTBuilder */;
1580 val* var64 /* : AIfExpr */;
1581 val* var_nif /* var nif: AIfExpr */;
1582 val* var65 /* : nullable AExpr */;
1583 val* var67 /* : nullable AExpr */;
1584 val* var68 /* : ASTBuilder */;
1585 val* var70 /* : ASTBuilder */;
1586 val* var71 /* : ABreakExpr */;
1587 val* var72 /* : ASTBuilder */;
1588 val* var74 /* : ASTBuilder */;
1589 val* var75 /* : AIntegerExpr */;
1590 val* var_one /* var one: AIntegerExpr */;
1591 val* var76 /* : ASTBuilder */;
1592 val* var78 /* : ASTBuilder */;
1593 val* var79 /* : ASTBuilder */;
1594 val* var81 /* : ASTBuilder */;
1595 val* var82 /* : nullable MType */;
1596 val* var84 /* : nullable MType */;
1597 val* var85 /* : AVarExpr */;
1598 val* var86 /* : nullable CallSite */;
1599 val* var88 /* : nullable CallSite */;
1600 val* var89 /* : Array[AIntegerExpr] */;
1601 val* var_90 /* var : Array[AIntegerExpr] */;
1602 val* var91 /* : ACallExpr */;
1603 val* var_succ /* var succ: ACallExpr */;
1604 val* var92 /* : ASTBuilder */;
1605 val* var94 /* : ASTBuilder */;
1606 val* var95 /* : AVarAssignExpr */;
1607 val* var96 /* : ASTBuilder */;
1608 val* var98 /* : ASTBuilder */;
1609 val* var99 /* : AVarExpr */;
1610 val* var100 /* : nullable CallSite */;
1611 val* var102 /* : nullable CallSite */;
1612 val* var103 /* : ACallExpr */;
1613 val* var_iter /* var iter: ACallExpr */;
1614 val* var104 /* : ASTBuilder */;
1615 val* var106 /* : ASTBuilder */;
1616 val* var107 /* : AVarExpr */;
1617 val* var108 /* : nullable CallSite */;
1618 val* var110 /* : nullable CallSite */;
1619 val* var111 /* : ACallExpr */;
1620 val* var_is_ok112 /* var is_ok: ACallExpr */;
1621 val* var113 /* : ASTBuilder */;
1622 val* var115 /* : ASTBuilder */;
1623 val* var116 /* : AIfExpr */;
1624 val* var_nif117 /* var nif: AIfExpr */;
1625 val* var118 /* : nullable AExpr */;
1626 val* var120 /* : nullable AExpr */;
1627 val* var121 /* : ASTBuilder */;
1628 val* var123 /* : ASTBuilder */;
1629 val* var124 /* : ABreakExpr */;
1630 val* var125 /* : nullable Array[Variable] */;
1631 val* var127 /* : nullable Array[Variable] */;
1632 long var128 /* : Int */;
1633 long var130 /* : Int */;
1634 short int var131 /* : Bool */;
1635 short int var133 /* : Bool */;
1636 val* var134 /* : ASTBuilder */;
1637 val* var136 /* : ASTBuilder */;
1638 val* var137 /* : AVarExpr */;
1639 val* var138 /* : nullable CallSite */;
1640 val* var140 /* : nullable CallSite */;
1641 val* var141 /* : ACallExpr */;
1642 val* var_item /* var item: ACallExpr */;
1643 val* var142 /* : ASTBuilder */;
1644 val* var144 /* : ASTBuilder */;
1645 val* var145 /* : nullable Array[Variable] */;
1646 val* var147 /* : nullable Array[Variable] */;
1647 val* var148 /* : nullable Object */;
1648 val* var149 /* : AVarAssignExpr */;
1649 val* var150 /* : nullable Array[Variable] */;
1650 val* var152 /* : nullable Array[Variable] */;
1651 long var153 /* : Int */;
1652 long var155 /* : Int */;
1653 short int var156 /* : Bool */;
1654 short int var158 /* : Bool */;
1655 val* var159 /* : ASTBuilder */;
1656 val* var161 /* : ASTBuilder */;
1657 val* var162 /* : AVarExpr */;
1658 val* var163 /* : nullable CallSite */;
1659 val* var165 /* : nullable CallSite */;
1660 val* var166 /* : ACallExpr */;
1661 val* var_key /* var key: ACallExpr */;
1662 val* var167 /* : ASTBuilder */;
1663 val* var169 /* : ASTBuilder */;
1664 val* var170 /* : nullable Array[Variable] */;
1665 val* var172 /* : nullable Array[Variable] */;
1666 val* var173 /* : nullable Object */;
1667 val* var174 /* : AVarAssignExpr */;
1668 val* var175 /* : ASTBuilder */;
1669 val* var177 /* : ASTBuilder */;
1670 val* var178 /* : AVarExpr */;
1671 val* var179 /* : nullable CallSite */;
1672 val* var181 /* : nullable CallSite */;
1673 val* var182 /* : ACallExpr */;
1674 val* var_item183 /* var item: ACallExpr */;
1675 val* var184 /* : ASTBuilder */;
1676 val* var186 /* : ASTBuilder */;
1677 val* var187 /* : nullable Array[Variable] */;
1678 val* var189 /* : nullable Array[Variable] */;
1679 val* var190 /* : nullable Object */;
1680 val* var191 /* : AVarAssignExpr */;
1681 val* var192 /* : ASTBuilder */;
1682 val* var194 /* : ASTBuilder */;
1683 val* var195 /* : AVarExpr */;
1684 val* var196 /* : nullable CallSite */;
1685 val* var198 /* : nullable CallSite */;
1686 val* var199 /* : ACallExpr */;
1687 val* var200 /* : nullable CallSite */;
1688 val* var202 /* : nullable CallSite */;
1689 val* var_method_finish /* var method_finish: nullable CallSite */;
1690 short int var203 /* : Bool */;
1691 short int var204 /* : Bool */;
1692 val* var_other /* var other: nullable Object */;
1693 short int var206 /* : Bool */;
1694 short int var207 /* : Bool */;
1695 val* var208 /* : ASTBuilder */;
1696 val* var210 /* : ASTBuilder */;
1697 val* var211 /* : AVarExpr */;
1698 val* var212 /* : ACallExpr */;
1699 var_v = p0;
1700 var_before = p1;
1701 var_begin = p2;
1702 var_next = p3;
1703 var_finish = p4;
1704 var_escapemark = p5;
1705 {
1706 { /* Inline parser_nodes#AForGroup#n_expr (self) on <self:AForGroup> */
1707 var2 = self->attrs[COLOR_nitc__parser_nodes__AForGroup___n_expr].val; /* _n_expr on <self:AForGroup> */
1708 if (unlikely(var2 == NULL)) {
1709 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1710 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1943);
1711 fatal_exit(1);
1712 }
1713 var = var2;
1714 RET_LABEL1:(void)0;
1715 }
1716 }
1717 var_nexpr = var;
1718 {
1719 { /* Inline scope#AForGroup#variables (self) on <self:AForGroup> */
1720 var7 = self->attrs[COLOR_nitc__scope__AForGroup___variables].val; /* _variables on <self:AForGroup> */
1721 var5 = var7;
1722 RET_LABEL6:(void)0;
1723 }
1724 }
1725 if (var5 == NULL) {
1726 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1727 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 255);
1728 fatal_exit(1);
1729 } else {
1730 { /* Inline array#AbstractArrayRead#length (var5) on <var5:nullable Array[Variable]> */
1731 if (unlikely(var5 == NULL)) {
1732 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1733 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 26);
1734 fatal_exit(1);
1735 }
1736 var10 = var5->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var5:nullable Array[Variable]> */
1737 var8 = var10;
1738 RET_LABEL9:(void)0;
1739 }
1740 }
1741 {
1742 { /* Inline kernel#Int#== (var8,1l) on <var8:Int> */
1743 var13 = var8 == 1l;
1744 var11 = var13;
1745 goto RET_LABEL12;
1746 RET_LABEL12:(void)0;
1747 }
1748 }
1749 var_ = var11;
1750 if (var11){
1751 /* <var_nexpr:AExpr> isa ARangeExpr */
1752 cltype = type_nitc__ARangeExpr.color;
1753 idtype = type_nitc__ARangeExpr.id;
1754 if(cltype >= var_nexpr->type->table_size) {
1755 var14 = 0;
1756 } else {
1757 var14 = var_nexpr->type->type_table[cltype] == idtype;
1758 }
1759 var4 = var14;
1760 } else {
1761 var4 = var_;
1762 }
1763 var_15 = var4;
1764 if (var4){
1765 {
1766 { /* Inline transform#TransformVisitor#phase (var_v) on <var_v:TransformVisitor> */
1767 var18 = var_v->attrs[COLOR_nitc__transform__TransformVisitor___phase].val; /* _phase on <var_v:TransformVisitor> */
1768 if (unlikely(var18 == NULL)) {
1769 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _phase");
1770 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 58);
1771 fatal_exit(1);
1772 }
1773 var16 = var18;
1774 RET_LABEL17:(void)0;
1775 }
1776 }
1777 {
1778 { /* Inline phase#Phase#toolcontext (var16) on <var16:TransformPhase> */
1779 var21 = var16->attrs[COLOR_nitc__phase__Phase___toolcontext].val; /* _toolcontext on <var16:TransformPhase> */
1780 if (unlikely(var21 == NULL)) {
1781 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1782 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__phase, 200);
1783 fatal_exit(1);
1784 }
1785 var19 = var21;
1786 RET_LABEL20:(void)0;
1787 }
1788 }
1789 {
1790 { /* Inline transform#ToolContext#opt_no_shortcut_range (var19) on <var19:ToolContext> */
1791 var24 = var19->attrs[COLOR_nitc__transform__ToolContext___opt_no_shortcut_range].val; /* _opt_no_shortcut_range on <var19:ToolContext> */
1792 if (unlikely(var24 == NULL)) {
1793 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_shortcut_range");
1794 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 28);
1795 fatal_exit(1);
1796 }
1797 var22 = var24;
1798 RET_LABEL23:(void)0;
1799 }
1800 }
1801 {
1802 { /* Inline opts#Option#value (var22) on <var22:OptionBool> */
1803 var27 = var22->attrs[COLOR_opts__Option___value].val; /* _value on <var22:OptionBool> */
1804 var25 = var27;
1805 RET_LABEL26:(void)0;
1806 }
1807 }
1808 var28 = (short int)((long)(var25)>>2);
1809 var29 = !var28;
1810 var3 = var29;
1811 } else {
1812 var3 = var_15;
1813 }
1814 if (var3){
1815 {
1816 { /* Inline scope#AForGroup#variables (self) on <self:AForGroup> */
1817 var32 = self->attrs[COLOR_nitc__scope__AForGroup___variables].val; /* _variables on <self:AForGroup> */
1818 var30 = var32;
1819 RET_LABEL31:(void)0;
1820 }
1821 }
1822 if (var30 == NULL) {
1823 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1824 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 257);
1825 fatal_exit(1);
1826 } else {
1827 var33 = core___core__SequenceRead___Collection__first(var30);
1828 }
1829 var_variable = var33;
1830 {
1831 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
1832 var36 = var_v->attrs[COLOR_nitc__transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
1833 if (unlikely(var36 == NULL)) {
1834 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
1835 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 62);
1836 fatal_exit(1);
1837 }
1838 var34 = var36;
1839 RET_LABEL35:(void)0;
1840 }
1841 }
1842 {
1843 { /* Inline parser_nodes#ARangeExpr#n_expr (var_nexpr) on <var_nexpr:AExpr(ARangeExpr)> */
1844 var39 = var_nexpr->attrs[COLOR_nitc__parser_nodes__ARangeExpr___n_expr].val; /* _n_expr on <var_nexpr:AExpr(ARangeExpr)> */
1845 if (unlikely(var39 == NULL)) {
1846 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1847 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2421);
1848 fatal_exit(1);
1849 }
1850 var37 = var39;
1851 RET_LABEL38:(void)0;
1852 }
1853 }
1854 {
1855 var40 = nitc___nitc__ASTBuilder___make_var_assign(var34, var_variable, var37);
1856 }
1857 {
1858 ((void(*)(val* self, val* p0))(var_before->class->vft[COLOR_nitc__astbuilder__AExpr__add]))(var_before, var40); /* add on <var_before:AExpr>*/
1859 }
1860 {
1861 { /* Inline parser_nodes#ARangeExpr#n_expr2 (var_nexpr) on <var_nexpr:AExpr(ARangeExpr)> */
1862 var43 = var_nexpr->attrs[COLOR_nitc__parser_nodes__ARangeExpr___n_expr2].val; /* _n_expr2 on <var_nexpr:AExpr(ARangeExpr)> */
1863 if (unlikely(var43 == NULL)) {
1864 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
1865 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2427);
1866 fatal_exit(1);
1867 }
1868 var41 = var43;
1869 RET_LABEL42:(void)0;
1870 }
1871 }
1872 var_to = var41;
1873 {
1874 ((void(*)(val* self, val* p0))(var_before->class->vft[COLOR_nitc__astbuilder__AExpr__add]))(var_before, var_to); /* add on <var_before:AExpr>*/
1875 }
1876 {
1877 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
1878 var46 = var_v->attrs[COLOR_nitc__transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
1879 if (unlikely(var46 == NULL)) {
1880 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
1881 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 62);
1882 fatal_exit(1);
1883 }
1884 var44 = var46;
1885 RET_LABEL45:(void)0;
1886 }
1887 }
1888 {
1889 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
1890 var49 = var_v->attrs[COLOR_nitc__transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
1891 if (unlikely(var49 == NULL)) {
1892 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
1893 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 62);
1894 fatal_exit(1);
1895 }
1896 var47 = var49;
1897 RET_LABEL48:(void)0;
1898 }
1899 }
1900 {
1901 { /* Inline typing#Variable#declared_type (var_variable) on <var_variable:Variable> */
1902 var52 = var_variable->attrs[COLOR_nitc__typing__Variable___declared_type].val; /* _declared_type on <var_variable:Variable> */
1903 var50 = var52;
1904 RET_LABEL51:(void)0;
1905 }
1906 }
1907 if (unlikely(var50 == NULL)) {
1908 PRINT_ERROR("Runtime error: %s", "Cast failed");
1909 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 263);
1910 fatal_exit(1);
1911 }
1912 {
1913 var53 = nitc___nitc__ASTBuilder___make_var_read(var47, var_variable, var50);
1914 }
1915 {
1916 { /* Inline typing#AForGroup#method_lt (self) on <self:AForGroup> */
1917 var56 = self->attrs[COLOR_nitc__typing__AForGroup___method_lt].val; /* _method_lt on <self:AForGroup> */
1918 var54 = var56;
1919 RET_LABEL55:(void)0;
1920 }
1921 }
1922 if (unlikely(var54 == NULL)) {
1923 PRINT_ERROR("Runtime error: %s", "Cast failed");
1924 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 263);
1925 fatal_exit(1);
1926 }
1927 var57 = NEW_core__Array(&type_core__Array__nitc__AVarExpr);
1928 {
1929 core___core__Array___with_capacity(var57, 1l); /* Direct call array#Array#with_capacity on <var57:Array[AVarExpr]>*/
1930 }
1931 var_58 = var57;
1932 {
1933 var59 = nitc__astbuilder___AExpr___make_var_read(var_to);
1934 }
1935 {
1936 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_58, var59); /* Direct call array#AbstractArray#push on <var_58:Array[AVarExpr]>*/
1937 }
1938 {
1939 var60 = nitc___nitc__ASTBuilder___make_call(var44, var53, var54, var_58);
1940 }
1941 var_is_ok = var60;
1942 {
1943 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
1944 var63 = var_v->attrs[COLOR_nitc__transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
1945 if (unlikely(var63 == NULL)) {
1946 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
1947 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 62);
1948 fatal_exit(1);
1949 }
1950 var61 = var63;
1951 RET_LABEL62:(void)0;
1952 }
1953 }
1954 {
1955 var64 = nitc___nitc__ASTBuilder___make_if(var61, var_is_ok, ((val*)NULL));
1956 }
1957 var_nif = var64;
1958 {
1959 ((void(*)(val* self, val* p0))(var_begin->class->vft[COLOR_nitc__astbuilder__AExpr__add]))(var_begin, var_nif); /* add on <var_begin:AExpr>*/
1960 }
1961 {
1962 { /* Inline parser_nodes#AIfExpr#n_else (var_nif) on <var_nif:AIfExpr> */
1963 var67 = var_nif->attrs[COLOR_nitc__parser_nodes__AIfExpr___n_else].val; /* _n_else on <var_nif:AIfExpr> */
1964 var65 = var67;
1965 RET_LABEL66:(void)0;
1966 }
1967 }
1968 {
1969 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
1970 var70 = var_v->attrs[COLOR_nitc__transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
1971 if (unlikely(var70 == NULL)) {
1972 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
1973 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 62);
1974 fatal_exit(1);
1975 }
1976 var68 = var70;
1977 RET_LABEL69:(void)0;
1978 }
1979 }
1980 {
1981 var71 = nitc___nitc__ASTBuilder___make_break(var68, var_escapemark);
1982 }
1983 if (var65 == NULL) {
1984 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1985 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 266);
1986 fatal_exit(1);
1987 } else {
1988 ((void(*)(val* self, val* p0))(var65->class->vft[COLOR_nitc__astbuilder__AExpr__add]))(var65, var71); /* add on <var65:nullable AExpr>*/
1989 }
1990 {
1991 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
1992 var74 = var_v->attrs[COLOR_nitc__transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
1993 if (unlikely(var74 == NULL)) {
1994 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
1995 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 62);
1996 fatal_exit(1);
1997 }
1998 var72 = var74;
1999 RET_LABEL73:(void)0;
2000 }
2001 }
2002 {
2003 var75 = nitc___nitc__ASTBuilder___make_int(var72, 1l);
2004 }
2005 var_one = var75;
2006 {
2007 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
2008 var78 = var_v->attrs[COLOR_nitc__transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
2009 if (unlikely(var78 == NULL)) {
2010 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
2011 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 62);
2012 fatal_exit(1);
2013 }
2014 var76 = var78;
2015 RET_LABEL77:(void)0;
2016 }
2017 }
2018 {
2019 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
2020 var81 = var_v->attrs[COLOR_nitc__transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
2021 if (unlikely(var81 == NULL)) {
2022 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
2023 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 62);
2024 fatal_exit(1);
2025 }
2026 var79 = var81;
2027 RET_LABEL80:(void)0;
2028 }
2029 }
2030 {
2031 { /* Inline typing#Variable#declared_type (var_variable) on <var_variable:Variable> */
2032 var84 = var_variable->attrs[COLOR_nitc__typing__Variable___declared_type].val; /* _declared_type on <var_variable:Variable> */
2033 var82 = var84;
2034 RET_LABEL83:(void)0;
2035 }
2036 }
2037 if (unlikely(var82 == NULL)) {
2038 PRINT_ERROR("Runtime error: %s", "Cast failed");
2039 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 270);
2040 fatal_exit(1);
2041 }
2042 {
2043 var85 = nitc___nitc__ASTBuilder___make_var_read(var79, var_variable, var82);
2044 }
2045 {
2046 { /* Inline typing#AForGroup#method_successor (self) on <self:AForGroup> */
2047 var88 = self->attrs[COLOR_nitc__typing__AForGroup___method_successor].val; /* _method_successor on <self:AForGroup> */
2048 var86 = var88;
2049 RET_LABEL87:(void)0;
2050 }
2051 }
2052 if (unlikely(var86 == NULL)) {
2053 PRINT_ERROR("Runtime error: %s", "Cast failed");
2054 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 270);
2055 fatal_exit(1);
2056 }
2057 var89 = NEW_core__Array(&type_core__Array__nitc__AIntegerExpr);
2058 {
2059 core___core__Array___with_capacity(var89, 1l); /* Direct call array#Array#with_capacity on <var89:Array[AIntegerExpr]>*/
2060 }
2061 var_90 = var89;
2062 {
2063 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_90, var_one); /* Direct call array#AbstractArray#push on <var_90:Array[AIntegerExpr]>*/
2064 }
2065 {
2066 var91 = nitc___nitc__ASTBuilder___make_call(var76, var85, var86, var_90);
2067 }
2068 var_succ = var91;
2069 {
2070 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
2071 var94 = var_v->attrs[COLOR_nitc__transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
2072 if (unlikely(var94 == NULL)) {
2073 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
2074 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 62);
2075 fatal_exit(1);
2076 }
2077 var92 = var94;
2078 RET_LABEL93:(void)0;
2079 }
2080 }
2081 {
2082 var95 = nitc___nitc__ASTBuilder___make_var_assign(var92, var_variable, var_succ);
2083 }
2084 {
2085 ((void(*)(val* self, val* p0))(var_next->class->vft[COLOR_nitc__astbuilder__AExpr__add]))(var_next, var95); /* add on <var_next:AExpr>*/
2086 }
2087 goto RET_LABEL;
2088 } else {
2089 }
2090 {
2091 ((void(*)(val* self, val* p0))(var_before->class->vft[COLOR_nitc__astbuilder__AExpr__add]))(var_before, var_nexpr); /* add on <var_before:AExpr>*/
2092 }
2093 {
2094 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
2095 var98 = var_v->attrs[COLOR_nitc__transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
2096 if (unlikely(var98 == NULL)) {
2097 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
2098 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 62);
2099 fatal_exit(1);
2100 }
2101 var96 = var98;
2102 RET_LABEL97:(void)0;
2103 }
2104 }
2105 {
2106 var99 = nitc__astbuilder___AExpr___make_var_read(var_nexpr);
2107 }
2108 {
2109 { /* Inline typing#AForGroup#method_iterator (self) on <self:AForGroup> */
2110 var102 = self->attrs[COLOR_nitc__typing__AForGroup___method_iterator].val; /* _method_iterator on <self:AForGroup> */
2111 var100 = var102;
2112 RET_LABEL101:(void)0;
2113 }
2114 }
2115 if (unlikely(var100 == NULL)) {
2116 PRINT_ERROR("Runtime error: %s", "Cast failed");
2117 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 277);
2118 fatal_exit(1);
2119 }
2120 {
2121 var103 = nitc___nitc__ASTBuilder___make_call(var96, var99, var100, ((val*)NULL));
2122 }
2123 var_iter = var103;
2124 {
2125 ((void(*)(val* self, val* p0))(var_before->class->vft[COLOR_nitc__astbuilder__AExpr__add]))(var_before, var_iter); /* add on <var_before:AExpr>*/
2126 }
2127 {
2128 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
2129 var106 = var_v->attrs[COLOR_nitc__transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
2130 if (unlikely(var106 == NULL)) {
2131 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
2132 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 62);
2133 fatal_exit(1);
2134 }
2135 var104 = var106;
2136 RET_LABEL105:(void)0;
2137 }
2138 }
2139 {
2140 var107 = nitc__astbuilder___AExpr___make_var_read(var_iter);
2141 }
2142 {
2143 { /* Inline typing#AForGroup#method_is_ok (self) on <self:AForGroup> */
2144 var110 = self->attrs[COLOR_nitc__typing__AForGroup___method_is_ok].val; /* _method_is_ok on <self:AForGroup> */
2145 var108 = var110;
2146 RET_LABEL109:(void)0;
2147 }
2148 }
2149 if (unlikely(var108 == NULL)) {
2150 PRINT_ERROR("Runtime error: %s", "Cast failed");
2151 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 281);
2152 fatal_exit(1);
2153 }
2154 {
2155 var111 = nitc___nitc__ASTBuilder___make_call(var104, var107, var108, ((val*)NULL));
2156 }
2157 var_is_ok112 = var111;
2158 {
2159 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
2160 var115 = var_v->attrs[COLOR_nitc__transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
2161 if (unlikely(var115 == NULL)) {
2162 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
2163 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 62);
2164 fatal_exit(1);
2165 }
2166 var113 = var115;
2167 RET_LABEL114:(void)0;
2168 }
2169 }
2170 {
2171 var116 = nitc___nitc__ASTBuilder___make_if(var113, var_is_ok112, ((val*)NULL));
2172 }
2173 var_nif117 = var116;
2174 {
2175 ((void(*)(val* self, val* p0))(var_begin->class->vft[COLOR_nitc__astbuilder__AExpr__add]))(var_begin, var_nif117); /* add on <var_begin:AExpr>*/
2176 }
2177 {
2178 { /* Inline parser_nodes#AIfExpr#n_else (var_nif117) on <var_nif117:AIfExpr> */
2179 var120 = var_nif117->attrs[COLOR_nitc__parser_nodes__AIfExpr___n_else].val; /* _n_else on <var_nif117:AIfExpr> */
2180 var118 = var120;
2181 RET_LABEL119:(void)0;
2182 }
2183 }
2184 {
2185 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
2186 var123 = var_v->attrs[COLOR_nitc__transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
2187 if (unlikely(var123 == NULL)) {
2188 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
2189 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 62);
2190 fatal_exit(1);
2191 }
2192 var121 = var123;
2193 RET_LABEL122:(void)0;
2194 }
2195 }
2196 {
2197 var124 = nitc___nitc__ASTBuilder___make_break(var121, var_escapemark);
2198 }
2199 if (var118 == NULL) {
2200 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2201 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 284);
2202 fatal_exit(1);
2203 } else {
2204 ((void(*)(val* self, val* p0))(var118->class->vft[COLOR_nitc__astbuilder__AExpr__add]))(var118, var124); /* add on <var118:nullable AExpr>*/
2205 }
2206 {
2207 { /* Inline scope#AForGroup#variables (self) on <self:AForGroup> */
2208 var127 = self->attrs[COLOR_nitc__scope__AForGroup___variables].val; /* _variables on <self:AForGroup> */
2209 var125 = var127;
2210 RET_LABEL126:(void)0;
2211 }
2212 }
2213 if (var125 == NULL) {
2214 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2215 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 287);
2216 fatal_exit(1);
2217 } else {
2218 { /* Inline array#AbstractArrayRead#length (var125) on <var125:nullable Array[Variable]> */
2219 if (unlikely(var125 == NULL)) {
2220 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2221 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 26);
2222 fatal_exit(1);
2223 }
2224 var130 = var125->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var125:nullable Array[Variable]> */
2225 var128 = var130;
2226 RET_LABEL129:(void)0;
2227 }
2228 }
2229 {
2230 { /* Inline kernel#Int#== (var128,1l) on <var128:Int> */
2231 var133 = var128 == 1l;
2232 var131 = var133;
2233 goto RET_LABEL132;
2234 RET_LABEL132:(void)0;
2235 }
2236 }
2237 if (var131){
2238 {
2239 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
2240 var136 = var_v->attrs[COLOR_nitc__transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
2241 if (unlikely(var136 == NULL)) {
2242 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
2243 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 62);
2244 fatal_exit(1);
2245 }
2246 var134 = var136;
2247 RET_LABEL135:(void)0;
2248 }
2249 }
2250 {
2251 var137 = nitc__astbuilder___AExpr___make_var_read(var_iter);
2252 }
2253 {
2254 { /* Inline typing#AForGroup#method_item (self) on <self:AForGroup> */
2255 var140 = self->attrs[COLOR_nitc__typing__AForGroup___method_item].val; /* _method_item on <self:AForGroup> */
2256 var138 = var140;
2257 RET_LABEL139:(void)0;
2258 }
2259 }
2260 if (unlikely(var138 == NULL)) {
2261 PRINT_ERROR("Runtime error: %s", "Cast failed");
2262 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 288);
2263 fatal_exit(1);
2264 }
2265 {
2266 var141 = nitc___nitc__ASTBuilder___make_call(var134, var137, var138, ((val*)NULL));
2267 }
2268 var_item = var141;
2269 {
2270 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
2271 var144 = var_v->attrs[COLOR_nitc__transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
2272 if (unlikely(var144 == NULL)) {
2273 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
2274 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 62);
2275 fatal_exit(1);
2276 }
2277 var142 = var144;
2278 RET_LABEL143:(void)0;
2279 }
2280 }
2281 {
2282 { /* Inline scope#AForGroup#variables (self) on <self:AForGroup> */
2283 var147 = self->attrs[COLOR_nitc__scope__AForGroup___variables].val; /* _variables on <self:AForGroup> */
2284 var145 = var147;
2285 RET_LABEL146:(void)0;
2286 }
2287 }
2288 if (var145 == NULL) {
2289 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2290 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 289);
2291 fatal_exit(1);
2292 } else {
2293 var148 = core___core__SequenceRead___Collection__first(var145);
2294 }
2295 {
2296 var149 = nitc___nitc__ASTBuilder___make_var_assign(var142, var148, var_item);
2297 }
2298 {
2299 ((void(*)(val* self, val* p0))(var_begin->class->vft[COLOR_nitc__astbuilder__AExpr__add]))(var_begin, var149); /* add on <var_begin:AExpr>*/
2300 }
2301 } else {
2302 {
2303 { /* Inline scope#AForGroup#variables (self) on <self:AForGroup> */
2304 var152 = self->attrs[COLOR_nitc__scope__AForGroup___variables].val; /* _variables on <self:AForGroup> */
2305 var150 = var152;
2306 RET_LABEL151:(void)0;
2307 }
2308 }
2309 if (var150 == NULL) {
2310 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2311 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 290);
2312 fatal_exit(1);
2313 } else {
2314 { /* Inline array#AbstractArrayRead#length (var150) on <var150:nullable Array[Variable]> */
2315 if (unlikely(var150 == NULL)) {
2316 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2317 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 26);
2318 fatal_exit(1);
2319 }
2320 var155 = var150->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var150:nullable Array[Variable]> */
2321 var153 = var155;
2322 RET_LABEL154:(void)0;
2323 }
2324 }
2325 {
2326 { /* Inline kernel#Int#== (var153,2l) on <var153:Int> */
2327 var158 = var153 == 2l;
2328 var156 = var158;
2329 goto RET_LABEL157;
2330 RET_LABEL157:(void)0;
2331 }
2332 }
2333 if (var156){
2334 {
2335 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
2336 var161 = var_v->attrs[COLOR_nitc__transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
2337 if (unlikely(var161 == NULL)) {
2338 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
2339 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 62);
2340 fatal_exit(1);
2341 }
2342 var159 = var161;
2343 RET_LABEL160:(void)0;
2344 }
2345 }
2346 {
2347 var162 = nitc__astbuilder___AExpr___make_var_read(var_iter);
2348 }
2349 {
2350 { /* Inline typing#AForGroup#method_key (self) on <self:AForGroup> */
2351 var165 = self->attrs[COLOR_nitc__typing__AForGroup___method_key].val; /* _method_key on <self:AForGroup> */
2352 var163 = var165;
2353 RET_LABEL164:(void)0;
2354 }
2355 }
2356 if (unlikely(var163 == NULL)) {
2357 PRINT_ERROR("Runtime error: %s", "Cast failed");
2358 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 291);
2359 fatal_exit(1);
2360 }
2361 {
2362 var166 = nitc___nitc__ASTBuilder___make_call(var159, var162, var163, ((val*)NULL));
2363 }
2364 var_key = var166;
2365 {
2366 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
2367 var169 = var_v->attrs[COLOR_nitc__transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
2368 if (unlikely(var169 == NULL)) {
2369 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
2370 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 62);
2371 fatal_exit(1);
2372 }
2373 var167 = var169;
2374 RET_LABEL168:(void)0;
2375 }
2376 }
2377 {
2378 { /* Inline scope#AForGroup#variables (self) on <self:AForGroup> */
2379 var172 = self->attrs[COLOR_nitc__scope__AForGroup___variables].val; /* _variables on <self:AForGroup> */
2380 var170 = var172;
2381 RET_LABEL171:(void)0;
2382 }
2383 }
2384 if (var170 == NULL) {
2385 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2386 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 292);
2387 fatal_exit(1);
2388 } else {
2389 var173 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var170, 0l);
2390 }
2391 {
2392 var174 = nitc___nitc__ASTBuilder___make_var_assign(var167, var173, var_key);
2393 }
2394 {
2395 ((void(*)(val* self, val* p0))(var_begin->class->vft[COLOR_nitc__astbuilder__AExpr__add]))(var_begin, var174); /* add on <var_begin:AExpr>*/
2396 }
2397 {
2398 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
2399 var177 = var_v->attrs[COLOR_nitc__transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
2400 if (unlikely(var177 == NULL)) {
2401 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
2402 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 62);
2403 fatal_exit(1);
2404 }
2405 var175 = var177;
2406 RET_LABEL176:(void)0;
2407 }
2408 }
2409 {
2410 var178 = nitc__astbuilder___AExpr___make_var_read(var_iter);
2411 }
2412 {
2413 { /* Inline typing#AForGroup#method_item (self) on <self:AForGroup> */
2414 var181 = self->attrs[COLOR_nitc__typing__AForGroup___method_item].val; /* _method_item on <self:AForGroup> */
2415 var179 = var181;
2416 RET_LABEL180:(void)0;
2417 }
2418 }
2419 if (unlikely(var179 == NULL)) {
2420 PRINT_ERROR("Runtime error: %s", "Cast failed");
2421 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 293);
2422 fatal_exit(1);
2423 }
2424 {
2425 var182 = nitc___nitc__ASTBuilder___make_call(var175, var178, var179, ((val*)NULL));
2426 }
2427 var_item183 = var182;
2428 {
2429 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
2430 var186 = var_v->attrs[COLOR_nitc__transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
2431 if (unlikely(var186 == NULL)) {
2432 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
2433 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 62);
2434 fatal_exit(1);
2435 }
2436 var184 = var186;
2437 RET_LABEL185:(void)0;
2438 }
2439 }
2440 {
2441 { /* Inline scope#AForGroup#variables (self) on <self:AForGroup> */
2442 var189 = self->attrs[COLOR_nitc__scope__AForGroup___variables].val; /* _variables on <self:AForGroup> */
2443 var187 = var189;
2444 RET_LABEL188:(void)0;
2445 }
2446 }
2447 if (var187 == NULL) {
2448 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2449 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 294);
2450 fatal_exit(1);
2451 } else {
2452 var190 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var187, 1l);
2453 }
2454 {
2455 var191 = nitc___nitc__ASTBuilder___make_var_assign(var184, var190, var_item183);
2456 }
2457 {
2458 ((void(*)(val* self, val* p0))(var_begin->class->vft[COLOR_nitc__astbuilder__AExpr__add]))(var_begin, var191); /* add on <var_begin:AExpr>*/
2459 }
2460 } else {
2461 PRINT_ERROR("Runtime error: %s", "Aborted");
2462 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 296);
2463 fatal_exit(1);
2464 }
2465 }
2466 {
2467 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
2468 var194 = var_v->attrs[COLOR_nitc__transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
2469 if (unlikely(var194 == NULL)) {
2470 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
2471 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 62);
2472 fatal_exit(1);
2473 }
2474 var192 = var194;
2475 RET_LABEL193:(void)0;
2476 }
2477 }
2478 {
2479 var195 = nitc__astbuilder___AExpr___make_var_read(var_iter);
2480 }
2481 {
2482 { /* Inline typing#AForGroup#method_next (self) on <self:AForGroup> */
2483 var198 = self->attrs[COLOR_nitc__typing__AForGroup___method_next].val; /* _method_next on <self:AForGroup> */
2484 var196 = var198;
2485 RET_LABEL197:(void)0;
2486 }
2487 }
2488 if (unlikely(var196 == NULL)) {
2489 PRINT_ERROR("Runtime error: %s", "Cast failed");
2490 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 300);
2491 fatal_exit(1);
2492 }
2493 {
2494 var199 = nitc___nitc__ASTBuilder___make_call(var192, var195, var196, ((val*)NULL));
2495 }
2496 {
2497 ((void(*)(val* self, val* p0))(var_next->class->vft[COLOR_nitc__astbuilder__AExpr__add]))(var_next, var199); /* add on <var_next:AExpr>*/
2498 }
2499 {
2500 { /* Inline typing#AForGroup#method_finish (self) on <self:AForGroup> */
2501 var202 = self->attrs[COLOR_nitc__typing__AForGroup___method_finish].val; /* _method_finish on <self:AForGroup> */
2502 var200 = var202;
2503 RET_LABEL201:(void)0;
2504 }
2505 }
2506 var_method_finish = var200;
2507 if (var_method_finish == NULL) {
2508 var203 = 0; /* is null */
2509 } else {
2510 var203 = 1; /* arg is null and recv is not */
2511 }
2512 if (0) {
2513 { /* Inline kernel#Object#!= (var_method_finish,((val*)NULL)) on <var_method_finish:nullable CallSite> */
2514 var_other = ((val*)NULL);
2515 {
2516 var206 = ((short int(*)(val* self, val* p0))(var_method_finish->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_method_finish, var_other); /* == on <var_method_finish:nullable CallSite(CallSite)>*/
2517 }
2518 var207 = !var206;
2519 var204 = var207;
2520 goto RET_LABEL205;
2521 RET_LABEL205:(void)0;
2522 }
2523 var203 = var204;
2524 }
2525 if (var203){
2526 {
2527 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
2528 var210 = var_v->attrs[COLOR_nitc__transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
2529 if (unlikely(var210 == NULL)) {
2530 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
2531 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 62);
2532 fatal_exit(1);
2533 }
2534 var208 = var210;
2535 RET_LABEL209:(void)0;
2536 }
2537 }
2538 {
2539 var211 = nitc__astbuilder___AExpr___make_var_read(var_iter);
2540 }
2541 {
2542 var212 = nitc___nitc__ASTBuilder___make_call(var208, var211, var_method_finish, ((val*)NULL));
2543 }
2544 {
2545 ((void(*)(val* self, val* p0))(var_finish->class->vft[COLOR_nitc__astbuilder__AExpr__add]))(var_finish, var212); /* add on <var_finish:AExpr>*/
2546 }
2547 } else {
2548 }
2549 RET_LABEL:;
2550 }
2551 /* method transform#AWithExpr#accept_transform_visitor for (self: AWithExpr, TransformVisitor) */
2552 void nitc__transform___AWithExpr___ANode__accept_transform_visitor(val* self, val* p0) {
2553 val* var_v /* var v: TransformVisitor */;
2554 val* var /* : nullable EscapeMark */;
2555 val* var2 /* : nullable EscapeMark */;
2556 val* var_escapemark /* var escapemark: nullable EscapeMark */;
2557 short int var3 /* : Bool */;
2558 short int var4 /* : Bool */;
2559 val* var_other /* var other: nullable Object */;
2560 short int var6 /* : Bool */;
2561 short int var7 /* : Bool */;
2562 val* var8 /* : ASTBuilder */;
2563 val* var10 /* : ASTBuilder */;
2564 val* var11 /* : ABlockExpr */;
2565 val* var_nblock /* var nblock: ABlockExpr */;
2566 val* var12 /* : AExpr */;
2567 val* var14 /* : AExpr */;
2568 val* var_nexpr /* var nexpr: AExpr */;
2569 val* var15 /* : ASTBuilder */;
2570 val* var17 /* : ASTBuilder */;
2571 val* var18 /* : ADoExpr */;
2572 val* var_ndo /* var ndo: ADoExpr */;
2573 val* var20 /* : ASTBuilder */;
2574 val* var22 /* : ASTBuilder */;
2575 val* var23 /* : AVarExpr */;
2576 val* var24 /* : nullable CallSite */;
2577 val* var26 /* : nullable CallSite */;
2578 val* var27 /* : ACallExpr */;
2579 val* var_start /* var start: ACallExpr */;
2580 val* var28 /* : nullable AExpr */;
2581 val* var30 /* : nullable AExpr */;
2582 val* var31 /* : ASTBuilder */;
2583 val* var33 /* : ASTBuilder */;
2584 val* var34 /* : AVarExpr */;
2585 val* var35 /* : nullable CallSite */;
2586 val* var37 /* : nullable CallSite */;
2587 val* var38 /* : ACallExpr */;
2588 var_v = p0;
2589 {
2590 { /* Inline scope#AWithExpr#break_mark (self) on <self:AWithExpr> */
2591 var2 = self->attrs[COLOR_nitc__scope__AWithExpr___break_mark].val; /* _break_mark on <self:AWithExpr> */
2592 var = var2;
2593 RET_LABEL1:(void)0;
2594 }
2595 }
2596 var_escapemark = var;
2597 if (var_escapemark == NULL) {
2598 var3 = 0; /* is null */
2599 } else {
2600 var3 = 1; /* arg is null and recv is not */
2601 }
2602 if (0) {
2603 { /* Inline kernel#Object#!= (var_escapemark,((val*)NULL)) on <var_escapemark:nullable EscapeMark> */
2604 var_other = ((val*)NULL);
2605 {
2606 var6 = ((short int(*)(val* self, val* p0))(var_escapemark->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_escapemark, var_other); /* == on <var_escapemark:nullable EscapeMark(EscapeMark)>*/
2607 }
2608 var7 = !var6;
2609 var4 = var7;
2610 goto RET_LABEL5;
2611 RET_LABEL5:(void)0;
2612 }
2613 var3 = var4;
2614 }
2615 if (unlikely(!var3)) {
2616 PRINT_ERROR("Runtime error: %s", "Assert failed");
2617 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 336);
2618 fatal_exit(1);
2619 }
2620 {
2621 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
2622 var10 = var_v->attrs[COLOR_nitc__transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
2623 if (unlikely(var10 == NULL)) {
2624 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
2625 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 62);
2626 fatal_exit(1);
2627 }
2628 var8 = var10;
2629 RET_LABEL9:(void)0;
2630 }
2631 }
2632 {
2633 var11 = nitc___nitc__ASTBuilder___make_block(var8);
2634 }
2635 var_nblock = var11;
2636 {
2637 { /* Inline parser_nodes#AWithExpr#n_expr (self) on <self:AWithExpr> */
2638 var14 = self->attrs[COLOR_nitc__parser_nodes__AWithExpr___n_expr].val; /* _n_expr on <self:AWithExpr> */
2639 if (unlikely(var14 == NULL)) {
2640 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2641 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1955);
2642 fatal_exit(1);
2643 }
2644 var12 = var14;
2645 RET_LABEL13:(void)0;
2646 }
2647 }
2648 var_nexpr = var12;
2649 {
2650 nitc__astbuilder___ABlockExpr___AExpr__add(var_nblock, var_nexpr); /* Direct call astbuilder#ABlockExpr#add on <var_nblock:ABlockExpr>*/
2651 }
2652 {
2653 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
2654 var17 = var_v->attrs[COLOR_nitc__transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
2655 if (unlikely(var17 == NULL)) {
2656 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
2657 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 62);
2658 fatal_exit(1);
2659 }
2660 var15 = var17;
2661 RET_LABEL16:(void)0;
2662 }
2663 }
2664 {
2665 var18 = nitc___nitc__ASTBuilder___make_do(var15);
2666 }
2667 var_ndo = var18;
2668 {
2669 { /* Inline scope#ADoExpr#break_mark= (var_ndo,var_escapemark) on <var_ndo:ADoExpr> */
2670 var_ndo->attrs[COLOR_nitc__scope__ADoExpr___break_mark].val = var_escapemark; /* _break_mark on <var_ndo:ADoExpr> */
2671 RET_LABEL19:(void)0;
2672 }
2673 }
2674 {
2675 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
2676 var22 = var_v->attrs[COLOR_nitc__transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
2677 if (unlikely(var22 == NULL)) {
2678 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
2679 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 62);
2680 fatal_exit(1);
2681 }
2682 var20 = var22;
2683 RET_LABEL21:(void)0;
2684 }
2685 }
2686 {
2687 var23 = nitc__astbuilder___AExpr___make_var_read(var_nexpr);
2688 }
2689 {
2690 { /* Inline typing#AWithExpr#method_start (self) on <self:AWithExpr> */
2691 var26 = self->attrs[COLOR_nitc__typing__AWithExpr___method_start].val; /* _method_start on <self:AWithExpr> */
2692 var24 = var26;
2693 RET_LABEL25:(void)0;
2694 }
2695 }
2696 if (unlikely(var24 == NULL)) {
2697 PRINT_ERROR("Runtime error: %s", "Cast failed");
2698 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 347);
2699 fatal_exit(1);
2700 }
2701 {
2702 var27 = nitc___nitc__ASTBuilder___make_call(var20, var23, var24, ((val*)NULL));
2703 }
2704 var_start = var27;
2705 {
2706 nitc__astbuilder___ADoExpr___AExpr__add(var_ndo, var_start); /* Direct call astbuilder#ADoExpr#add on <var_ndo:ADoExpr>*/
2707 }
2708 {
2709 { /* Inline parser_nodes#AWithExpr#n_block (self) on <self:AWithExpr> */
2710 var30 = self->attrs[COLOR_nitc__parser_nodes__AWithExpr___n_block].val; /* _n_block on <self:AWithExpr> */
2711 var28 = var30;
2712 RET_LABEL29:(void)0;
2713 }
2714 }
2715 if (unlikely(var28 == NULL)) {
2716 PRINT_ERROR("Runtime error: %s", "Cast failed");
2717 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 351);
2718 fatal_exit(1);
2719 }
2720 {
2721 nitc__astbuilder___ADoExpr___AExpr__add(var_ndo, var28); /* Direct call astbuilder#ADoExpr#add on <var_ndo:ADoExpr>*/
2722 }
2723 {
2724 nitc__astbuilder___ABlockExpr___AExpr__add(var_nblock, var_ndo); /* Direct call astbuilder#ABlockExpr#add on <var_nblock:ABlockExpr>*/
2725 }
2726 {
2727 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
2728 var33 = var_v->attrs[COLOR_nitc__transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
2729 if (unlikely(var33 == NULL)) {
2730 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
2731 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 62);
2732 fatal_exit(1);
2733 }
2734 var31 = var33;
2735 RET_LABEL32:(void)0;
2736 }
2737 }
2738 {
2739 var34 = nitc__astbuilder___AExpr___make_var_read(var_nexpr);
2740 }
2741 {
2742 { /* Inline typing#AWithExpr#method_finish (self) on <self:AWithExpr> */
2743 var37 = self->attrs[COLOR_nitc__typing__AWithExpr___method_finish].val; /* _method_finish on <self:AWithExpr> */
2744 var35 = var37;
2745 RET_LABEL36:(void)0;
2746 }
2747 }
2748 if (unlikely(var35 == NULL)) {
2749 PRINT_ERROR("Runtime error: %s", "Cast failed");
2750 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 355);
2751 fatal_exit(1);
2752 }
2753 {
2754 var38 = nitc___nitc__ASTBuilder___make_call(var31, var34, var35, ((val*)NULL));
2755 }
2756 {
2757 nitc__astbuilder___ABlockExpr___AExpr__add(var_nblock, var38); /* Direct call astbuilder#ABlockExpr#add on <var_nblock:ABlockExpr>*/
2758 }
2759 {
2760 nitc__transform___AExpr___nitc__parser_nodes__ANode__replace_with(self, var_nblock); /* Direct call transform#AExpr#replace_with on <self:AWithExpr>*/
2761 }
2762 RET_LABEL:;
2763 }
2764 /* method transform#AArrayExpr#full_transform_visitor for (self: AArrayExpr, TransformVisitor) */
2765 void nitc__transform___AArrayExpr___ANode__full_transform_visitor(val* self, val* p0) {
2766 val* var_v /* var v: TransformVisitor */;
2767 short int var /* : Bool */;
2768 short int var2 /* : Bool */;
2769 val* var3 /* : ASTBuilder */;
2770 val* var5 /* : ASTBuilder */;
2771 val* var6 /* : ABlockExpr */;
2772 val* var_nblock /* var nblock: ABlockExpr */;
2773 val* var7 /* : ASTBuilder */;
2774 val* var9 /* : ASTBuilder */;
2775 val* var10 /* : nullable CallSite */;
2776 val* var12 /* : nullable CallSite */;
2777 val* var13 /* : Array[AIntegerExpr] */;
2778 val* var_ /* var : Array[AIntegerExpr] */;
2779 val* var14 /* : ASTBuilder */;
2780 val* var16 /* : ASTBuilder */;
2781 val* var17 /* : ANodes[AExpr] */;
2782 val* var19 /* : ANodes[AExpr] */;
2783 long var20 /* : Int */;
2784 val* var21 /* : AIntegerExpr */;
2785 val* var22 /* : ANewExpr */;
2786 val* var_nnew /* var nnew: ANewExpr */;
2787 val* var24 /* : ANodes[AExpr] */;
2788 val* var26 /* : ANodes[AExpr] */;
2789 val* var_27 /* var : ANodes[AExpr] */;
2790 val* var28 /* : Iterator[ANode] */;
2791 val* var_29 /* var : Iterator[AExpr] */;
2792 short int var30 /* : Bool */;
2793 val* var31 /* : nullable Object */;
2794 val* var_nexpr /* var nexpr: AExpr */;
2795 val* var32 /* : AVarExpr */;
2796 val* var_nres /* var nres: AVarExpr */;
2797 var_v = p0;
2798 {
2799 { /* Inline modelbuilder_base#ANode#is_broken (self) on <self:AArrayExpr> */
2800 var2 = self->attrs[COLOR_nitc__modelbuilder_base__ANode___is_broken].s; /* _is_broken on <self:AArrayExpr> */
2801 var = var2;
2802 RET_LABEL1:(void)0;
2803 }
2804 }
2805 if (var){
2806 goto RET_LABEL;
2807 } else {
2808 }
2809 {
2810 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
2811 var5 = var_v->attrs[COLOR_nitc__transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
2812 if (unlikely(var5 == NULL)) {
2813 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
2814 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 62);
2815 fatal_exit(1);
2816 }
2817 var3 = var5;
2818 RET_LABEL4:(void)0;
2819 }
2820 }
2821 {
2822 var6 = nitc___nitc__ASTBuilder___make_block(var3);
2823 }
2824 var_nblock = var6;
2825 {
2826 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
2827 var9 = var_v->attrs[COLOR_nitc__transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
2828 if (unlikely(var9 == NULL)) {
2829 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
2830 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 62);
2831 fatal_exit(1);
2832 }
2833 var7 = var9;
2834 RET_LABEL8:(void)0;
2835 }
2836 }
2837 {
2838 { /* Inline typing#AArrayExpr#with_capacity_callsite (self) on <self:AArrayExpr> */
2839 var12 = self->attrs[COLOR_nitc__typing__AArrayExpr___with_capacity_callsite].val; /* _with_capacity_callsite on <self:AArrayExpr> */
2840 var10 = var12;
2841 RET_LABEL11:(void)0;
2842 }
2843 }
2844 if (unlikely(var10 == NULL)) {
2845 PRINT_ERROR("Runtime error: %s", "Cast failed");
2846 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 376);
2847 fatal_exit(1);
2848 }
2849 var13 = NEW_core__Array(&type_core__Array__nitc__AIntegerExpr);
2850 {
2851 core___core__Array___with_capacity(var13, 1l); /* Direct call array#Array#with_capacity on <var13:Array[AIntegerExpr]>*/
2852 }
2853 var_ = var13;
2854 {
2855 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
2856 var16 = var_v->attrs[COLOR_nitc__transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
2857 if (unlikely(var16 == NULL)) {
2858 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
2859 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 62);
2860 fatal_exit(1);
2861 }
2862 var14 = var16;
2863 RET_LABEL15:(void)0;
2864 }
2865 }
2866 {
2867 { /* Inline parser_nodes#AArrayExpr#n_exprs (self) on <self:AArrayExpr> */
2868 var19 = self->attrs[COLOR_nitc__parser_nodes__AArrayExpr___n_exprs].val; /* _n_exprs on <self:AArrayExpr> */
2869 if (unlikely(var19 == NULL)) {
2870 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
2871 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2460);
2872 fatal_exit(1);
2873 }
2874 var17 = var19;
2875 RET_LABEL18:(void)0;
2876 }
2877 }
2878 {
2879 var20 = nitc___nitc__ANodes___core__abstract_collection__Collection__length(var17);
2880 }
2881 {
2882 var21 = nitc___nitc__ASTBuilder___make_int(var14, var20);
2883 }
2884 {
2885 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var21); /* Direct call array#AbstractArray#push on <var_:Array[AIntegerExpr]>*/
2886 }
2887 {
2888 var22 = nitc___nitc__ASTBuilder___make_new(var7, var10, var_);
2889 }
2890 var_nnew = var22;
2891 {
2892 { /* Inline transform#AArrayExpr#nnew= (self,var_nnew) on <self:AArrayExpr> */
2893 self->attrs[COLOR_nitc__transform__AArrayExpr___nnew].val = var_nnew; /* _nnew on <self:AArrayExpr> */
2894 RET_LABEL23:(void)0;
2895 }
2896 }
2897 {
2898 nitc__astbuilder___ABlockExpr___AExpr__add(var_nblock, var_nnew); /* Direct call astbuilder#ABlockExpr#add on <var_nblock:ABlockExpr>*/
2899 }
2900 {
2901 ((void(*)(val* self, val* p0))(self->class->vft[COLOR_nitc__transform___AArrayExpr___ANode__full_transform_visitor]))(self, p0); /* full_transform_visitor on <self:AArrayExpr>*/
2902 }
2903 {
2904 { /* Inline parser_nodes#AArrayExpr#n_exprs (self) on <self:AArrayExpr> */
2905 var26 = self->attrs[COLOR_nitc__parser_nodes__AArrayExpr___n_exprs].val; /* _n_exprs on <self:AArrayExpr> */
2906 if (unlikely(var26 == NULL)) {
2907 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
2908 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2460);
2909 fatal_exit(1);
2910 }
2911 var24 = var26;
2912 RET_LABEL25:(void)0;
2913 }
2914 }
2915 var_27 = var24;
2916 {
2917 var28 = nitc___nitc__ANodes___core__abstract_collection__Collection__iterator(var_27);
2918 }
2919 var_29 = var28;
2920 for(;;) {
2921 {
2922 var30 = ((short int(*)(val* self))((((long)var_29&3)?class_info[((long)var_29&3)]:var_29->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_29); /* is_ok on <var_29:Iterator[AExpr]>*/
2923 }
2924 if (var30){
2925 } else {
2926 goto BREAK_label;
2927 }
2928 {
2929 var31 = ((val*(*)(val* self))((((long)var_29&3)?class_info[((long)var_29&3)]:var_29->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_29); /* item on <var_29:Iterator[AExpr]>*/
2930 }
2931 var_nexpr = var31;
2932 {
2933 nitc__astbuilder___ABlockExpr___AExpr__add(var_nblock, var_nexpr); /* Direct call astbuilder#ABlockExpr#add on <var_nblock:ABlockExpr>*/
2934 }
2935 {
2936 ((void(*)(val* self))((((long)var_29&3)?class_info[((long)var_29&3)]:var_29->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_29); /* next on <var_29:Iterator[AExpr]>*/
2937 }
2938 }
2939 BREAK_label: (void)0;
2940 {
2941 ((void(*)(val* self))((((long)var_29&3)?class_info[((long)var_29&3)]:var_29->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_29); /* finish on <var_29:Iterator[AExpr]>*/
2942 }
2943 {
2944 var32 = nitc__astbuilder___AExpr___make_var_read(var_nnew);
2945 }
2946 var_nres = var32;
2947 {
2948 nitc__astbuilder___ABlockExpr___AExpr__add(var_nblock, var_nres); /* Direct call astbuilder#ABlockExpr#add on <var_nblock:ABlockExpr>*/
2949 }
2950 {
2951 nitc__transform___AExpr___nitc__parser_nodes__ANode__replace_with(self, var_nblock); /* Direct call transform#AExpr#replace_with on <self:AArrayExpr>*/
2952 }
2953 RET_LABEL:;
2954 }
2955 /* method transform#AArrayExpr#nnew for (self: AArrayExpr): ANewExpr */
2956 val* nitc__transform___AArrayExpr___nnew(val* self) {
2957 val* var /* : ANewExpr */;
2958 val* var1 /* : ANewExpr */;
2959 var1 = self->attrs[COLOR_nitc__transform__AArrayExpr___nnew].val; /* _nnew on <self:AArrayExpr> */
2960 if (unlikely(var1 == NULL)) {
2961 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _nnew");
2962 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 392);
2963 fatal_exit(1);
2964 }
2965 var = var1;
2966 RET_LABEL:;
2967 return var;
2968 }
2969 /* method transform#AArrayExpr#nnew= for (self: AArrayExpr, ANewExpr) */
2970 void nitc__transform___AArrayExpr___nnew_61d(val* self, val* p0) {
2971 self->attrs[COLOR_nitc__transform__AArrayExpr___nnew].val = p0; /* _nnew on <self:AArrayExpr> */
2972 RET_LABEL:;
2973 }
2974 /* method transform#ACrangeExpr#accept_transform_visitor for (self: ACrangeExpr, TransformVisitor) */
2975 void nitc__transform___ACrangeExpr___ANode__accept_transform_visitor(val* self, val* p0) {
2976 val* var_v /* var v: TransformVisitor */;
2977 val* var /* : nullable ANode */;
2978 val* var2 /* : nullable ANode */;
2979 short int var3 /* : Bool */;
2980 int cltype;
2981 int idtype;
2982 val* var4 /* : ASTBuilder */;
2983 val* var6 /* : ASTBuilder */;
2984 val* var7 /* : nullable CallSite */;
2985 val* var9 /* : nullable CallSite */;
2986 val* var10 /* : Array[AExpr] */;
2987 val* var_ /* var : Array[AExpr] */;
2988 val* var11 /* : AExpr */;
2989 val* var13 /* : AExpr */;
2990 val* var14 /* : AExpr */;
2991 val* var16 /* : AExpr */;
2992 val* var17 /* : ANewExpr */;
2993 var_v = p0;
2994 {
2995 { /* Inline parser_nodes#ANode#parent (self) on <self:ACrangeExpr> */
2996 var2 = self->attrs[COLOR_nitc__parser_nodes__ANode___parent].val; /* _parent on <self:ACrangeExpr> */
2997 var = var2;
2998 RET_LABEL1:(void)0;
2999 }
3000 }
3001 /* <var:nullable ANode> isa AForGroup */
3002 cltype = type_nitc__AForGroup.color;
3003 idtype = type_nitc__AForGroup.id;
3004 if(var == NULL) {
3005 var3 = 0;
3006 } else {
3007 if(cltype >= var->type->table_size) {
3008 var3 = 0;
3009 } else {
3010 var3 = var->type->type_table[cltype] == idtype;
3011 }
3012 }
3013 if (var3){
3014 goto RET_LABEL;
3015 } else {
3016 }
3017 {
3018 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
3019 var6 = var_v->attrs[COLOR_nitc__transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
3020 if (unlikely(var6 == NULL)) {
3021 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
3022 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 62);
3023 fatal_exit(1);
3024 }
3025 var4 = var6;
3026 RET_LABEL5:(void)0;
3027 }
3028 }
3029 {
3030 { /* Inline typing#ARangeExpr#init_callsite (self) on <self:ACrangeExpr> */
3031 var9 = self->attrs[COLOR_nitc__typing__ARangeExpr___init_callsite].val; /* _init_callsite on <self:ACrangeExpr> */
3032 var7 = var9;
3033 RET_LABEL8:(void)0;
3034 }
3035 }
3036 if (unlikely(var7 == NULL)) {
3037 PRINT_ERROR("Runtime error: %s", "Cast failed");
3038 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 400);
3039 fatal_exit(1);
3040 }
3041 var10 = NEW_core__Array(&type_core__Array__nitc__AExpr);
3042 {
3043 core___core__Array___with_capacity(var10, 2l); /* Direct call array#Array#with_capacity on <var10:Array[AExpr]>*/
3044 }
3045 var_ = var10;
3046 {
3047 { /* Inline parser_nodes#ARangeExpr#n_expr (self) on <self:ACrangeExpr> */
3048 var13 = self->attrs[COLOR_nitc__parser_nodes__ARangeExpr___n_expr].val; /* _n_expr on <self:ACrangeExpr> */
3049 if (unlikely(var13 == NULL)) {
3050 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3051 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2421);
3052 fatal_exit(1);
3053 }
3054 var11 = var13;
3055 RET_LABEL12:(void)0;
3056 }
3057 }
3058 {
3059 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var11); /* Direct call array#AbstractArray#push on <var_:Array[AExpr]>*/
3060 }
3061 {
3062 { /* Inline parser_nodes#ARangeExpr#n_expr2 (self) on <self:ACrangeExpr> */
3063 var16 = self->attrs[COLOR_nitc__parser_nodes__ARangeExpr___n_expr2].val; /* _n_expr2 on <self:ACrangeExpr> */
3064 if (unlikely(var16 == NULL)) {
3065 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
3066 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2427);
3067 fatal_exit(1);
3068 }
3069 var14 = var16;
3070 RET_LABEL15:(void)0;
3071 }
3072 }
3073 {
3074 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var14); /* Direct call array#AbstractArray#push on <var_:Array[AExpr]>*/
3075 }
3076 {
3077 var17 = nitc___nitc__ASTBuilder___make_new(var4, var7, var_);
3078 }
3079 {
3080 nitc__transform___AExpr___nitc__parser_nodes__ANode__replace_with(self, var17); /* Direct call transform#AExpr#replace_with on <self:ACrangeExpr>*/
3081 }
3082 RET_LABEL:;
3083 }
3084 /* method transform#AOrangeExpr#accept_transform_visitor for (self: AOrangeExpr, TransformVisitor) */
3085 void nitc__transform___AOrangeExpr___ANode__accept_transform_visitor(val* self, val* p0) {
3086 val* var_v /* var v: TransformVisitor */;
3087 val* var /* : nullable ANode */;
3088 val* var2 /* : nullable ANode */;
3089 short int var3 /* : Bool */;
3090 int cltype;
3091 int idtype;
3092 val* var4 /* : ASTBuilder */;
3093 val* var6 /* : ASTBuilder */;
3094 val* var7 /* : nullable CallSite */;
3095 val* var9 /* : nullable CallSite */;
3096 val* var10 /* : Array[AExpr] */;
3097 val* var_ /* var : Array[AExpr] */;
3098 val* var11 /* : AExpr */;
3099 val* var13 /* : AExpr */;
3100 val* var14 /* : AExpr */;
3101 val* var16 /* : AExpr */;
3102 val* var17 /* : ANewExpr */;
3103 var_v = p0;
3104 {
3105 { /* Inline parser_nodes#ANode#parent (self) on <self:AOrangeExpr> */
3106 var2 = self->attrs[COLOR_nitc__parser_nodes__ANode___parent].val; /* _parent on <self:AOrangeExpr> */
3107 var = var2;
3108 RET_LABEL1:(void)0;
3109 }
3110 }
3111 /* <var:nullable ANode> isa AForGroup */
3112 cltype = type_nitc__AForGroup.color;
3113 idtype = type_nitc__AForGroup.id;
3114 if(var == NULL) {
3115 var3 = 0;
3116 } else {
3117 if(cltype >= var->type->table_size) {
3118 var3 = 0;
3119 } else {
3120 var3 = var->type->type_table[cltype] == idtype;
3121 }
3122 }
3123 if (var3){
3124 goto RET_LABEL;
3125 } else {
3126 }
3127 {
3128 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
3129 var6 = var_v->attrs[COLOR_nitc__transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
3130 if (unlikely(var6 == NULL)) {
3131 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
3132 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 62);
3133 fatal_exit(1);
3134 }
3135 var4 = var6;
3136 RET_LABEL5:(void)0;
3137 }
3138 }
3139 {
3140 { /* Inline typing#ARangeExpr#init_callsite (self) on <self:AOrangeExpr> */
3141 var9 = self->attrs[COLOR_nitc__typing__ARangeExpr___init_callsite].val; /* _init_callsite on <self:AOrangeExpr> */
3142 var7 = var9;
3143 RET_LABEL8:(void)0;
3144 }
3145 }
3146 if (unlikely(var7 == NULL)) {
3147 PRINT_ERROR("Runtime error: %s", "Cast failed");
3148 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 409);
3149 fatal_exit(1);
3150 }
3151 var10 = NEW_core__Array(&type_core__Array__nitc__AExpr);
3152 {
3153 core___core__Array___with_capacity(var10, 2l); /* Direct call array#Array#with_capacity on <var10:Array[AExpr]>*/
3154 }
3155 var_ = var10;
3156 {
3157 { /* Inline parser_nodes#ARangeExpr#n_expr (self) on <self:AOrangeExpr> */
3158 var13 = self->attrs[COLOR_nitc__parser_nodes__ARangeExpr___n_expr].val; /* _n_expr on <self:AOrangeExpr> */
3159 if (unlikely(var13 == NULL)) {
3160 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3161 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2421);
3162 fatal_exit(1);
3163 }
3164 var11 = var13;
3165 RET_LABEL12:(void)0;
3166 }
3167 }
3168 {
3169 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var11); /* Direct call array#AbstractArray#push on <var_:Array[AExpr]>*/
3170 }
3171 {
3172 { /* Inline parser_nodes#ARangeExpr#n_expr2 (self) on <self:AOrangeExpr> */
3173 var16 = self->attrs[COLOR_nitc__parser_nodes__ARangeExpr___n_expr2].val; /* _n_expr2 on <self:AOrangeExpr> */
3174 if (unlikely(var16 == NULL)) {
3175 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
3176 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2427);
3177 fatal_exit(1);
3178 }
3179 var14 = var16;
3180 RET_LABEL15:(void)0;
3181 }
3182 }
3183 {
3184 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var14); /* Direct call array#AbstractArray#push on <var_:Array[AExpr]>*/
3185 }
3186 {
3187 var17 = nitc___nitc__ASTBuilder___make_new(var4, var7, var_);
3188 }
3189 {
3190 nitc__transform___AExpr___nitc__parser_nodes__ANode__replace_with(self, var17); /* Direct call transform#AExpr#replace_with on <self:AOrangeExpr>*/
3191 }
3192 RET_LABEL:;
3193 }
3194 /* method transform#AParExpr#accept_transform_visitor for (self: AParExpr, TransformVisitor) */
3195 void nitc__transform___AParExpr___ANode__accept_transform_visitor(val* self, val* p0) {
3196 val* var_v /* var v: TransformVisitor */;
3197 val* var /* : AExpr */;
3198 val* var2 /* : AExpr */;
3199 var_v = p0;
3200 {
3201 { /* Inline parser_nodes#AParExpr#n_expr (self) on <self:AParExpr> */
3202 var2 = self->attrs[COLOR_nitc__parser_nodes__AParExpr___n_expr].val; /* _n_expr on <self:AParExpr> */
3203 if (unlikely(var2 == NULL)) {
3204 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3205 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2575);
3206 fatal_exit(1);
3207 }
3208 var = var2;
3209 RET_LABEL1:(void)0;
3210 }
3211 }
3212 {
3213 nitc__transform___AExpr___nitc__parser_nodes__ANode__replace_with(self, var); /* Direct call transform#AExpr#replace_with on <self:AParExpr>*/
3214 }
3215 RET_LABEL:;
3216 }
3217 /* method transform#ASendReassignFormExpr#accept_transform_visitor for (self: ASendReassignFormExpr, TransformVisitor) */
3218 void nitc__transform___ASendReassignFormExpr___ANode__accept_transform_visitor(val* self, val* p0) {
3219 val* var_v /* var v: TransformVisitor */;
3220 val* var /* : ASTBuilder */;
3221 val* var2 /* : ASTBuilder */;
3222 val* var3 /* : ABlockExpr */;
3223 val* var_nblock /* var nblock: ABlockExpr */;
3224 val* var4 /* : AExpr */;
3225 val* var6 /* : AExpr */;
3226 val* var7 /* : Array[AExpr] */;
3227 val* var_read_args /* var read_args: Array[AExpr] */;
3228 val* var8 /* : Array[AExpr] */;
3229 val* var_write_args /* var write_args: Array[AExpr] */;
3230 val* var9 /* : Array[AExpr] */;
3231 val* var_ /* var : Array[AExpr] */;
3232 val* var10 /* : IndexedIterator[nullable Object] */;
3233 val* var_11 /* var : IndexedIterator[AExpr] */;
3234 short int var12 /* : Bool */;
3235 val* var13 /* : nullable Object */;
3236 val* var_a /* var a: AExpr */;
3237 val* var14 /* : AVarExpr */;
3238 val* var15 /* : AVarExpr */;
3239 val* var16 /* : ASTBuilder */;
3240 val* var18 /* : ASTBuilder */;
3241 val* var19 /* : AExpr */;
3242 val* var21 /* : AExpr */;
3243 val* var22 /* : AVarExpr */;
3244 val* var23 /* : nullable CallSite */;
3245 val* var25 /* : nullable CallSite */;
3246 val* var26 /* : ACallExpr */;
3247 val* var_nread /* var nread: ACallExpr */;
3248 val* var27 /* : ASTBuilder */;
3249 val* var29 /* : ASTBuilder */;
3250 val* var30 /* : nullable CallSite */;
3251 val* var32 /* : nullable CallSite */;
3252 val* var33 /* : Array[AExpr] */;
3253 val* var_34 /* var : Array[AExpr] */;
3254 val* var35 /* : AExpr */;
3255 val* var37 /* : AExpr */;
3256 val* var38 /* : ACallExpr */;
3257 val* var_nnewvalue /* var nnewvalue: ACallExpr */;
3258 val* var39 /* : ASTBuilder */;
3259 val* var41 /* : ASTBuilder */;
3260 val* var42 /* : AExpr */;
3261 val* var44 /* : AExpr */;
3262 val* var45 /* : AVarExpr */;
3263 val* var46 /* : nullable CallSite */;
3264 val* var48 /* : nullable CallSite */;
3265 val* var49 /* : ACallExpr */;
3266 val* var_nwrite /* var nwrite: ACallExpr */;
3267 var_v = p0;
3268 {
3269 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
3270 var2 = var_v->attrs[COLOR_nitc__transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
3271 if (unlikely(var2 == NULL)) {
3272 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
3273 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 62);
3274 fatal_exit(1);
3275 }
3276 var = var2;
3277 RET_LABEL1:(void)0;
3278 }
3279 }
3280 {
3281 var3 = nitc___nitc__ASTBuilder___make_block(var);
3282 }
3283 var_nblock = var3;
3284 {
3285 { /* Inline parser_nodes#ASendExpr#n_expr (self) on <self:ASendReassignFormExpr> */
3286 var6 = self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ASendReassignFormExpr> */
3287 if (unlikely(var6 == NULL)) {
3288 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3289 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2022);
3290 fatal_exit(1);
3291 }
3292 var4 = var6;
3293 RET_LABEL5:(void)0;
3294 }
3295 }
3296 {
3297 nitc__astbuilder___ABlockExpr___AExpr__add(var_nblock, var4); /* Direct call astbuilder#ABlockExpr#add on <var_nblock:ABlockExpr>*/
3298 }
3299 var7 = NEW_core__Array(&type_core__Array__nitc__AExpr);
3300 {
3301 core___core__Array___core__kernel__Object__init(var7); /* Direct call array#Array#init on <var7:Array[AExpr]>*/
3302 }
3303 var_read_args = var7;
3304 var8 = NEW_core__Array(&type_core__Array__nitc__AExpr);
3305 {
3306 core___core__Array___core__kernel__Object__init(var8); /* Direct call array#Array#init on <var8:Array[AExpr]>*/
3307 }
3308 var_write_args = var8;
3309 {
3310 var9 = nitc__typing___ASendExpr___raw_arguments(self);
3311 }
3312 var_ = var9;
3313 {
3314 var10 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_);
3315 }
3316 var_11 = var10;
3317 for(;;) {
3318 {
3319 var12 = ((short int(*)(val* self))((((long)var_11&3)?class_info[((long)var_11&3)]:var_11->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_11); /* is_ok on <var_11:IndexedIterator[AExpr]>*/
3320 }
3321 if (var12){
3322 } else {
3323 goto BREAK_label;
3324 }
3325 {
3326 var13 = ((val*(*)(val* self))((((long)var_11&3)?class_info[((long)var_11&3)]:var_11->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_11); /* item on <var_11:IndexedIterator[AExpr]>*/
3327 }
3328 var_a = var13;
3329 {
3330 nitc__astbuilder___ABlockExpr___AExpr__add(var_nblock, var_a); /* Direct call astbuilder#ABlockExpr#add on <var_nblock:ABlockExpr>*/
3331 }
3332 {
3333 var14 = nitc__astbuilder___AExpr___make_var_read(var_a);
3334 }
3335 {
3336 core___core__Array___core__abstract_collection__SimpleCollection__add(var_read_args, var14); /* Direct call array#Array#add on <var_read_args:Array[AExpr]>*/
3337 }
3338 {
3339 var15 = nitc__astbuilder___AExpr___make_var_read(var_a);
3340 }
3341 {
3342 core___core__Array___core__abstract_collection__SimpleCollection__add(var_write_args, var15); /* Direct call array#Array#add on <var_write_args:Array[AExpr]>*/
3343 }
3344 {
3345 ((void(*)(val* self))((((long)var_11&3)?class_info[((long)var_11&3)]:var_11->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_11); /* next on <var_11:IndexedIterator[AExpr]>*/
3346 }
3347 }
3348 BREAK_label: (void)0;
3349 {
3350 ((void(*)(val* self))((((long)var_11&3)?class_info[((long)var_11&3)]:var_11->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_11); /* finish on <var_11:IndexedIterator[AExpr]>*/
3351 }
3352 {
3353 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
3354 var18 = var_v->attrs[COLOR_nitc__transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
3355 if (unlikely(var18 == NULL)) {
3356 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
3357 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 62);
3358 fatal_exit(1);
3359 }
3360 var16 = var18;
3361 RET_LABEL17:(void)0;
3362 }
3363 }
3364 {
3365 { /* Inline parser_nodes#ASendExpr#n_expr (self) on <self:ASendReassignFormExpr> */
3366 var21 = self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ASendReassignFormExpr> */
3367 if (unlikely(var21 == NULL)) {
3368 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3369 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2022);
3370 fatal_exit(1);
3371 }
3372 var19 = var21;
3373 RET_LABEL20:(void)0;
3374 }
3375 }
3376 {
3377 var22 = nitc__astbuilder___AExpr___make_var_read(var19);
3378 }
3379 {
3380 { /* Inline typing#ASendExpr#callsite (self) on <self:ASendReassignFormExpr> */
3381 var25 = self->attrs[COLOR_nitc__typing__ASendExpr___callsite].val; /* _callsite on <self:ASendReassignFormExpr> */
3382 var23 = var25;
3383 RET_LABEL24:(void)0;
3384 }
3385 }
3386 if (unlikely(var23 == NULL)) {
3387 PRINT_ERROR("Runtime error: %s", "Cast failed");
3388 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 446);
3389 fatal_exit(1);
3390 }
3391 {
3392 var26 = nitc___nitc__ASTBuilder___make_call(var16, var22, var23, var_read_args);
3393 }
3394 var_nread = var26;
3395 {
3396 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
3397 var29 = var_v->attrs[COLOR_nitc__transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
3398 if (unlikely(var29 == NULL)) {
3399 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
3400 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 62);
3401 fatal_exit(1);
3402 }
3403 var27 = var29;
3404 RET_LABEL28:(void)0;
3405 }
3406 }
3407 {
3408 { /* Inline typing#AReassignFormExpr#reassign_callsite (self) on <self:ASendReassignFormExpr> */
3409 var32 = self->attrs[COLOR_nitc__typing__AReassignFormExpr___reassign_callsite].val; /* _reassign_callsite on <self:ASendReassignFormExpr> */
3410 var30 = var32;
3411 RET_LABEL31:(void)0;
3412 }
3413 }
3414 if (unlikely(var30 == NULL)) {
3415 PRINT_ERROR("Runtime error: %s", "Cast failed");
3416 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 448);
3417 fatal_exit(1);
3418 }
3419 var33 = NEW_core__Array(&type_core__Array__nitc__AExpr);
3420 {
3421 core___core__Array___with_capacity(var33, 1l); /* Direct call array#Array#with_capacity on <var33:Array[AExpr]>*/
3422 }
3423 var_34 = var33;
3424 {
3425 { /* Inline parser_nodes#AReassignFormExpr#n_value (self) on <self:ASendReassignFormExpr> */
3426 var37 = self->attrs[COLOR_nitc__parser_nodes__AReassignFormExpr___n_value].val; /* _n_value on <self:ASendReassignFormExpr> */
3427 if (unlikely(var37 == NULL)) {
3428 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
3429 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2003);
3430 fatal_exit(1);
3431 }
3432 var35 = var37;
3433 RET_LABEL36:(void)0;
3434 }
3435 }
3436 {
3437 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_34, var35); /* Direct call array#AbstractArray#push on <var_34:Array[AExpr]>*/
3438 }
3439 {
3440 var38 = nitc___nitc__ASTBuilder___make_call(var27, var_nread, var30, var_34);
3441 }
3442 var_nnewvalue = var38;
3443 {
3444 core___core__Array___core__abstract_collection__SimpleCollection__add(var_write_args, var_nnewvalue); /* Direct call array#Array#add on <var_write_args:Array[AExpr]>*/
3445 }
3446 {
3447 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
3448 var41 = var_v->attrs[COLOR_nitc__transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
3449 if (unlikely(var41 == NULL)) {
3450 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
3451 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 62);
3452 fatal_exit(1);
3453 }
3454 var39 = var41;
3455 RET_LABEL40:(void)0;
3456 }
3457 }
3458 {
3459 { /* Inline parser_nodes#ASendExpr#n_expr (self) on <self:ASendReassignFormExpr> */
3460 var44 = self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ASendReassignFormExpr> */
3461 if (unlikely(var44 == NULL)) {
3462 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3463 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2022);
3464 fatal_exit(1);
3465 }
3466 var42 = var44;
3467 RET_LABEL43:(void)0;
3468 }
3469 }
3470 {
3471 var45 = nitc__astbuilder___AExpr___make_var_read(var42);
3472 }
3473 {
3474 { /* Inline typing#ASendReassignFormExpr#write_callsite (self) on <self:ASendReassignFormExpr> */
3475 var48 = self->attrs[COLOR_nitc__typing__ASendReassignFormExpr___write_callsite].val; /* _write_callsite on <self:ASendReassignFormExpr> */
3476 var46 = var48;
3477 RET_LABEL47:(void)0;
3478 }
3479 }
3480 if (unlikely(var46 == NULL)) {
3481 PRINT_ERROR("Runtime error: %s", "Cast failed");
3482 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 451);
3483 fatal_exit(1);
3484 }
3485 {
3486 var49 = nitc___nitc__ASTBuilder___make_call(var39, var45, var46, var_write_args);
3487 }
3488 var_nwrite = var49;
3489 {
3490 nitc__astbuilder___ABlockExpr___AExpr__add(var_nblock, var_nwrite); /* Direct call astbuilder#ABlockExpr#add on <var_nblock:ABlockExpr>*/
3491 }
3492 {
3493 nitc__transform___AExpr___nitc__parser_nodes__ANode__replace_with(self, var_nblock); /* Direct call transform#AExpr#replace_with on <self:ASendReassignFormExpr>*/
3494 }
3495 RET_LABEL:;
3496 }
3497 /* method transform#AVarReassignExpr#accept_transform_visitor for (self: AVarReassignExpr, TransformVisitor) */
3498 void nitc__transform___AVarReassignExpr___ANode__accept_transform_visitor(val* self, val* p0) {
3499 val* var_v /* var v: TransformVisitor */;
3500 val* var /* : nullable Variable */;
3501 val* var2 /* : nullable Variable */;
3502 val* var_variable /* var variable: Variable */;
3503 val* var3 /* : ASTBuilder */;
3504 val* var5 /* : ASTBuilder */;
3505 val* var6 /* : nullable MType */;
3506 val* var8 /* : nullable MType */;
3507 val* var9 /* : AVarExpr */;
3508 val* var_nread /* var nread: AVarExpr */;
3509 val* var10 /* : ASTBuilder */;
3510 val* var12 /* : ASTBuilder */;
3511 val* var13 /* : nullable CallSite */;
3512 val* var15 /* : nullable CallSite */;
3513 val* var16 /* : Array[AExpr] */;
3514 val* var_ /* var : Array[AExpr] */;
3515 val* var17 /* : AExpr */;
3516 val* var19 /* : AExpr */;
3517 val* var20 /* : ACallExpr */;
3518 val* var_nnewvalue /* var nnewvalue: ACallExpr */;
3519 val* var21 /* : ASTBuilder */;
3520 val* var23 /* : ASTBuilder */;
3521 val* var24 /* : AVarAssignExpr */;
3522 val* var_nwrite /* var nwrite: AVarAssignExpr */;
3523 var_v = p0;
3524 {
3525 { /* Inline scope#AVarFormExpr#variable (self) on <self:AVarReassignExpr> */
3526 var2 = self->attrs[COLOR_nitc__scope__AVarFormExpr___variable].val; /* _variable on <self:AVarReassignExpr> */
3527 var = var2;
3528 RET_LABEL1:(void)0;
3529 }
3530 }
3531 if (unlikely(var == NULL)) {
3532 PRINT_ERROR("Runtime error: %s", "Cast failed");
3533 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 462);
3534 fatal_exit(1);
3535 }
3536 var_variable = var;
3537 {
3538 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
3539 var5 = var_v->attrs[COLOR_nitc__transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
3540 if (unlikely(var5 == NULL)) {
3541 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
3542 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 62);
3543 fatal_exit(1);
3544 }
3545 var3 = var5;
3546 RET_LABEL4:(void)0;
3547 }
3548 }
3549 {
3550 { /* Inline typing#AReassignFormExpr#read_type (self) on <self:AVarReassignExpr> */
3551 var8 = self->attrs[COLOR_nitc__typing__AReassignFormExpr___read_type].val; /* _read_type on <self:AVarReassignExpr> */
3552 var6 = var8;
3553 RET_LABEL7:(void)0;
3554 }
3555 }
3556 if (unlikely(var6 == NULL)) {
3557 PRINT_ERROR("Runtime error: %s", "Cast failed");
3558 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 464);
3559 fatal_exit(1);
3560 }
3561 {
3562 var9 = nitc___nitc__ASTBuilder___make_var_read(var3, var_variable, var6);
3563 }
3564 var_nread = var9;
3565 {
3566 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
3567 var12 = var_v->attrs[COLOR_nitc__transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
3568 if (unlikely(var12 == NULL)) {
3569 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
3570 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 62);
3571 fatal_exit(1);
3572 }
3573 var10 = var12;
3574 RET_LABEL11:(void)0;
3575 }
3576 }
3577 {
3578 { /* Inline typing#AReassignFormExpr#reassign_callsite (self) on <self:AVarReassignExpr> */
3579 var15 = self->attrs[COLOR_nitc__typing__AReassignFormExpr___reassign_callsite].val; /* _reassign_callsite on <self:AVarReassignExpr> */
3580 var13 = var15;
3581 RET_LABEL14:(void)0;
3582 }
3583 }
3584 if (unlikely(var13 == NULL)) {
3585 PRINT_ERROR("Runtime error: %s", "Cast failed");
3586 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 466);
3587 fatal_exit(1);
3588 }
3589 var16 = NEW_core__Array(&type_core__Array__nitc__AExpr);
3590 {
3591 core___core__Array___with_capacity(var16, 1l); /* Direct call array#Array#with_capacity on <var16:Array[AExpr]>*/
3592 }
3593 var_ = var16;
3594 {
3595 { /* Inline parser_nodes#AReassignFormExpr#n_value (self) on <self:AVarReassignExpr> */
3596 var19 = self->attrs[COLOR_nitc__parser_nodes__AReassignFormExpr___n_value].val; /* _n_value on <self:AVarReassignExpr> */
3597 if (unlikely(var19 == NULL)) {
3598 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
3599 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2003);
3600 fatal_exit(1);
3601 }
3602 var17 = var19;
3603 RET_LABEL18:(void)0;
3604 }
3605 }
3606 {
3607 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var17); /* Direct call array#AbstractArray#push on <var_:Array[AExpr]>*/
3608 }
3609 {
3610 var20 = nitc___nitc__ASTBuilder___make_call(var10, var_nread, var13, var_);
3611 }
3612 var_nnewvalue = var20;
3613 {
3614 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
3615 var23 = var_v->attrs[COLOR_nitc__transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
3616 if (unlikely(var23 == NULL)) {
3617 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
3618 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 62);
3619 fatal_exit(1);
3620 }
3621 var21 = var23;
3622 RET_LABEL22:(void)0;
3623 }
3624 }
3625 {
3626 var24 = nitc___nitc__ASTBuilder___make_var_assign(var21, var_variable, var_nnewvalue);
3627 }
3628 var_nwrite = var24;
3629 {
3630 nitc__transform___AExpr___nitc__parser_nodes__ANode__replace_with(self, var_nwrite); /* Direct call transform#AExpr#replace_with on <self:AVarReassignExpr>*/
3631 }
3632 RET_LABEL:;
3633 }
3634 /* method transform#AAttrReassignExpr#accept_transform_visitor for (self: AAttrReassignExpr, TransformVisitor) */
3635 void nitc__transform___AAttrReassignExpr___ANode__accept_transform_visitor(val* self, val* p0) {
3636 val* var_v /* var v: TransformVisitor */;
3637 val* var /* : ASTBuilder */;
3638 val* var2 /* : ASTBuilder */;
3639 val* var3 /* : ABlockExpr */;
3640 val* var_nblock /* var nblock: ABlockExpr */;
3641 val* var4 /* : AExpr */;
3642 val* var6 /* : AExpr */;
3643 val* var7 /* : nullable MAttribute */;
3644 val* var9 /* : nullable MAttribute */;
3645 val* var_attribute /* var attribute: MAttribute */;
3646 val* var10 /* : ASTBuilder */;
3647 val* var12 /* : ASTBuilder */;
3648 val* var13 /* : AExpr */;
3649 val* var15 /* : AExpr */;
3650 val* var16 /* : AVarExpr */;
3651 val* var17 /* : AAttrExpr */;
3652 val* var_nread /* var nread: AAttrExpr */;
3653 val* var18 /* : ASTBuilder */;
3654 val* var20 /* : ASTBuilder */;
3655 val* var21 /* : nullable CallSite */;
3656 val* var23 /* : nullable CallSite */;
3657 val* var24 /* : Array[AExpr] */;
3658 val* var_ /* var : Array[AExpr] */;
3659 val* var25 /* : AExpr */;
3660 val* var27 /* : AExpr */;
3661 val* var28 /* : ACallExpr */;
3662 val* var_nnewvalue /* var nnewvalue: ACallExpr */;
3663 val* var29 /* : ASTBuilder */;
3664 val* var31 /* : ASTBuilder */;
3665 val* var32 /* : AExpr */;
3666 val* var34 /* : AExpr */;
3667 val* var35 /* : AVarExpr */;
3668 val* var36 /* : AAttrAssignExpr */;
3669 val* var_nwrite /* var nwrite: AAttrAssignExpr */;
3670 var_v = p0;
3671 {
3672 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
3673 var2 = var_v->attrs[COLOR_nitc__transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
3674 if (unlikely(var2 == NULL)) {
3675 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
3676 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 62);
3677 fatal_exit(1);
3678 }
3679 var = var2;
3680 RET_LABEL1:(void)0;
3681 }
3682 }
3683 {
3684 var3 = nitc___nitc__ASTBuilder___make_block(var);
3685 }
3686 var_nblock = var3;
3687 {
3688 { /* Inline parser_nodes#AAttrFormExpr#n_expr (self) on <self:AAttrReassignExpr> */
3689 var6 = self->attrs[COLOR_nitc__parser_nodes__AAttrFormExpr___n_expr].val; /* _n_expr on <self:AAttrReassignExpr> */
3690 if (unlikely(var6 == NULL)) {
3691 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3692 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2273);
3693 fatal_exit(1);
3694 }
3695 var4 = var6;
3696 RET_LABEL5:(void)0;
3697 }
3698 }
3699 {
3700 nitc__astbuilder___ABlockExpr___AExpr__add(var_nblock, var4); /* Direct call astbuilder#ABlockExpr#add on <var_nblock:ABlockExpr>*/
3701 }
3702 {
3703 { /* Inline typing#AAttrFormExpr#mproperty (self) on <self:AAttrReassignExpr> */
3704 var9 = self->attrs[COLOR_nitc__typing__AAttrFormExpr___mproperty].val; /* _mproperty on <self:AAttrReassignExpr> */
3705 var7 = var9;
3706 RET_LABEL8:(void)0;
3707 }
3708 }
3709 if (unlikely(var7 == NULL)) {
3710 PRINT_ERROR("Runtime error: %s", "Cast failed");
3711 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 479);
3712 fatal_exit(1);
3713 }
3714 var_attribute = var7;
3715 {
3716 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
3717 var12 = var_v->attrs[COLOR_nitc__transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
3718 if (unlikely(var12 == NULL)) {
3719 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
3720 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 62);
3721 fatal_exit(1);
3722 }
3723 var10 = var12;
3724 RET_LABEL11:(void)0;
3725 }
3726 }
3727 {
3728 { /* Inline parser_nodes#AAttrFormExpr#n_expr (self) on <self:AAttrReassignExpr> */
3729 var15 = self->attrs[COLOR_nitc__parser_nodes__AAttrFormExpr___n_expr].val; /* _n_expr on <self:AAttrReassignExpr> */
3730 if (unlikely(var15 == NULL)) {
3731 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3732 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2273);
3733 fatal_exit(1);
3734 }
3735 var13 = var15;
3736 RET_LABEL14:(void)0;
3737 }
3738 }
3739 {
3740 var16 = nitc__astbuilder___AExpr___make_var_read(var13);
3741 }
3742 {
3743 var17 = nitc___nitc__ASTBuilder___make_attr_read(var10, var16, var_attribute);
3744 }
3745 var_nread = var17;
3746 {
3747 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
3748 var20 = var_v->attrs[COLOR_nitc__transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
3749 if (unlikely(var20 == NULL)) {
3750 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
3751 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 62);
3752 fatal_exit(1);
3753 }
3754 var18 = var20;
3755 RET_LABEL19:(void)0;
3756 }
3757 }
3758 {
3759 { /* Inline typing#AReassignFormExpr#reassign_callsite (self) on <self:AAttrReassignExpr> */
3760 var23 = self->attrs[COLOR_nitc__typing__AReassignFormExpr___reassign_callsite].val; /* _reassign_callsite on <self:AAttrReassignExpr> */
3761 var21 = var23;
3762 RET_LABEL22:(void)0;
3763 }
3764 }
3765 if (unlikely(var21 == NULL)) {
3766 PRINT_ERROR("Runtime error: %s", "Cast failed");
3767 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 482);
3768 fatal_exit(1);
3769 }
3770 var24 = NEW_core__Array(&type_core__Array__nitc__AExpr);
3771 {
3772 core___core__Array___with_capacity(var24, 1l); /* Direct call array#Array#with_capacity on <var24:Array[AExpr]>*/
3773 }
3774 var_ = var24;
3775 {
3776 { /* Inline parser_nodes#AReassignFormExpr#n_value (self) on <self:AAttrReassignExpr> */
3777 var27 = self->attrs[COLOR_nitc__parser_nodes__AReassignFormExpr___n_value].val; /* _n_value on <self:AAttrReassignExpr> */
3778 if (unlikely(var27 == NULL)) {
3779 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
3780 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2003);
3781 fatal_exit(1);
3782 }
3783 var25 = var27;
3784 RET_LABEL26:(void)0;
3785 }
3786 }
3787 {
3788 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var25); /* Direct call array#AbstractArray#push on <var_:Array[AExpr]>*/
3789 }
3790 {
3791 var28 = nitc___nitc__ASTBuilder___make_call(var18, var_nread, var21, var_);
3792 }
3793 var_nnewvalue = var28;
3794 {
3795 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
3796 var31 = var_v->attrs[COLOR_nitc__transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
3797 if (unlikely(var31 == NULL)) {
3798 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
3799 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__transform, 62);
3800 fatal_exit(1);
3801 }
3802 var29 = var31;
3803 RET_LABEL30:(void)0;
3804 }
3805 }
3806 {
3807 { /* Inline parser_nodes#AAttrFormExpr#n_expr (self) on <self:AAttrReassignExpr> */
3808 var34 = self->attrs[COLOR_nitc__parser_nodes__AAttrFormExpr___n_expr].val; /* _n_expr on <self:AAttrReassignExpr> */
3809 if (unlikely(var34 == NULL)) {
3810 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3811 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2273);
3812 fatal_exit(1);
3813 }
3814 var32 = var34;
3815 RET_LABEL33:(void)0;
3816 }
3817 }
3818 {
3819 var35 = nitc__astbuilder___AExpr___make_var_read(var32);
3820 }
3821 {
3822 var36 = nitc___nitc__ASTBuilder___make_attr_assign(var29, var35, var_attribute, var_nnewvalue);
3823 }
3824 var_nwrite = var36;
3825 {
3826 nitc__astbuilder___ABlockExpr___AExpr__add(var_nblock, var_nwrite); /* Direct call astbuilder#ABlockExpr#add on <var_nblock:ABlockExpr>*/
3827 }
3828 {
3829 nitc__transform___AExpr___nitc__parser_nodes__ANode__replace_with(self, var_nblock); /* Direct call transform#AExpr#replace_with on <self:AAttrReassignExpr>*/
3830 }
3831 RET_LABEL:;
3832 }