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