Makefile: Document deeply-nested libraries.
[nit.git] / c_src / transform.sep.1.c
1 #include "transform.sep.0.h"
2 /* method transform#TransformPhase#process_npropdef for (self: TransformPhase, APropdef) */
3 void transform__TransformPhase__process_npropdef(val* self, val* p0) {
4 val* var_npropdef /* var npropdef: APropdef */;
5 val* var /* : TransformVisitor */;
6 val* var_v /* var v: TransformVisitor */;
7 val* var1 /* : ASTValidationVisitor */;
8 val* var_val /* var val: nullable Object */;
9 var_npropdef = p0;
10 var = NEW_transform__TransformVisitor(&type_transform__TransformVisitor);
11 {
12 transform__TransformVisitor__init(var, self, var_npropdef); /* Direct call transform#TransformVisitor#init on <var:TransformVisitor>*/
13 }
14 var_v = var;
15 {
16 parser_nodes__Visitor__enter_visit(var_v, var_npropdef); /* Direct call parser_nodes#Visitor#enter_visit on <var_v:TransformVisitor>*/
17 }
18 var1 = NEW_astvalidation__ASTValidationVisitor(&type_astvalidation__ASTValidationVisitor);
19 {
20 { /* Inline parser_nodes#Visitor#init (var1) on <var1:ASTValidationVisitor> */
21 RET_LABEL2:(void)0;
22 }
23 }
24 var_val = var1;
25 {
26 parser_nodes__Visitor__enter_visit(var_val, var_npropdef); /* Direct call parser_nodes#Visitor#enter_visit on <var_val:nullable Object(ASTValidationVisitor)>*/
27 }
28 RET_LABEL:;
29 }
30 /* method transform#TransformPhase#process_npropdef for (self: Object, APropdef) */
31 void VIRTUAL_transform__TransformPhase__process_npropdef(val* self, val* p0) {
32 transform__TransformPhase__process_npropdef(self, p0); /* Direct call transform#TransformPhase#process_npropdef on <self:Object(TransformPhase)>*/
33 RET_LABEL:;
34 }
35 /* method transform#TransformVisitor#phase= for (self: TransformVisitor, TransformPhase) */
36 void transform__TransformVisitor__phase_61d(val* self, val* p0) {
37 self->attrs[COLOR_transform__TransformVisitor___phase].val = p0; /* _phase on <self:TransformVisitor> */
38 RET_LABEL:;
39 }
40 /* method transform#TransformVisitor#phase= for (self: Object, TransformPhase) */
41 void VIRTUAL_transform__TransformVisitor__phase_61d(val* self, val* p0) {
42 { /* Inline transform#TransformVisitor#phase= (self,p0) on <self:Object(TransformVisitor)> */
43 self->attrs[COLOR_transform__TransformVisitor___phase].val = p0; /* _phase on <self:Object(TransformVisitor)> */
44 RET_LABEL1:(void)0;
45 }
46 RET_LABEL:;
47 }
48 /* method transform#TransformVisitor#mmodule for (self: TransformVisitor): MModule */
49 val* transform__TransformVisitor__mmodule(val* self) {
50 val* var /* : MModule */;
51 val* var1 /* : MModule */;
52 var1 = self->attrs[COLOR_transform__TransformVisitor___mmodule].val; /* _mmodule on <self:TransformVisitor> */
53 if (unlikely(var1 == NULL)) {
54 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
55 PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 46);
56 show_backtrace(1);
57 }
58 var = var1;
59 RET_LABEL:;
60 return var;
61 }
62 /* method transform#TransformVisitor#mmodule for (self: Object): MModule */
63 val* VIRTUAL_transform__TransformVisitor__mmodule(val* self) {
64 val* var /* : MModule */;
65 val* var1 /* : MModule */;
66 val* var3 /* : MModule */;
67 { /* Inline transform#TransformVisitor#mmodule (self) on <self:Object(TransformVisitor)> */
68 var3 = self->attrs[COLOR_transform__TransformVisitor___mmodule].val; /* _mmodule on <self:Object(TransformVisitor)> */
69 if (unlikely(var3 == NULL)) {
70 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
71 PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 46);
72 show_backtrace(1);
73 }
74 var1 = var3;
75 RET_LABEL2:(void)0;
76 }
77 var = var1;
78 RET_LABEL:;
79 return var;
80 }
81 /* method transform#TransformVisitor#mmodule= for (self: TransformVisitor, MModule) */
82 void transform__TransformVisitor__mmodule_61d(val* self, val* p0) {
83 self->attrs[COLOR_transform__TransformVisitor___mmodule].val = p0; /* _mmodule on <self:TransformVisitor> */
84 RET_LABEL:;
85 }
86 /* method transform#TransformVisitor#mmodule= for (self: Object, MModule) */
87 void VIRTUAL_transform__TransformVisitor__mmodule_61d(val* self, val* p0) {
88 { /* Inline transform#TransformVisitor#mmodule= (self,p0) on <self:Object(TransformVisitor)> */
89 self->attrs[COLOR_transform__TransformVisitor___mmodule].val = p0; /* _mmodule on <self:Object(TransformVisitor)> */
90 RET_LABEL1:(void)0;
91 }
92 RET_LABEL:;
93 }
94 /* method transform#TransformVisitor#mclassdef for (self: TransformVisitor): MClassDef */
95 val* transform__TransformVisitor__mclassdef(val* self) {
96 val* var /* : MClassDef */;
97 val* var1 /* : MClassDef */;
98 var1 = self->attrs[COLOR_transform__TransformVisitor___mclassdef].val; /* _mclassdef on <self:TransformVisitor> */
99 if (unlikely(var1 == NULL)) {
100 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
101 PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 47);
102 show_backtrace(1);
103 }
104 var = var1;
105 RET_LABEL:;
106 return var;
107 }
108 /* method transform#TransformVisitor#mclassdef for (self: Object): MClassDef */
109 val* VIRTUAL_transform__TransformVisitor__mclassdef(val* self) {
110 val* var /* : MClassDef */;
111 val* var1 /* : MClassDef */;
112 val* var3 /* : MClassDef */;
113 { /* Inline transform#TransformVisitor#mclassdef (self) on <self:Object(TransformVisitor)> */
114 var3 = self->attrs[COLOR_transform__TransformVisitor___mclassdef].val; /* _mclassdef on <self:Object(TransformVisitor)> */
115 if (unlikely(var3 == NULL)) {
116 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
117 PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 47);
118 show_backtrace(1);
119 }
120 var1 = var3;
121 RET_LABEL2:(void)0;
122 }
123 var = var1;
124 RET_LABEL:;
125 return var;
126 }
127 /* method transform#TransformVisitor#mclassdef= for (self: TransformVisitor, MClassDef) */
128 void transform__TransformVisitor__mclassdef_61d(val* self, val* p0) {
129 self->attrs[COLOR_transform__TransformVisitor___mclassdef].val = p0; /* _mclassdef on <self:TransformVisitor> */
130 RET_LABEL:;
131 }
132 /* method transform#TransformVisitor#mclassdef= for (self: Object, MClassDef) */
133 void VIRTUAL_transform__TransformVisitor__mclassdef_61d(val* self, val* p0) {
134 { /* Inline transform#TransformVisitor#mclassdef= (self,p0) on <self:Object(TransformVisitor)> */
135 self->attrs[COLOR_transform__TransformVisitor___mclassdef].val = p0; /* _mclassdef on <self:Object(TransformVisitor)> */
136 RET_LABEL1:(void)0;
137 }
138 RET_LABEL:;
139 }
140 /* method transform#TransformVisitor#mpropdef for (self: TransformVisitor): MPropDef */
141 val* transform__TransformVisitor__mpropdef(val* self) {
142 val* var /* : MPropDef */;
143 val* var1 /* : MPropDef */;
144 var1 = self->attrs[COLOR_transform__TransformVisitor___mpropdef].val; /* _mpropdef on <self:TransformVisitor> */
145 if (unlikely(var1 == NULL)) {
146 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef");
147 PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 48);
148 show_backtrace(1);
149 }
150 var = var1;
151 RET_LABEL:;
152 return var;
153 }
154 /* method transform#TransformVisitor#mpropdef for (self: Object): MPropDef */
155 val* VIRTUAL_transform__TransformVisitor__mpropdef(val* self) {
156 val* var /* : MPropDef */;
157 val* var1 /* : MPropDef */;
158 val* var3 /* : MPropDef */;
159 { /* Inline transform#TransformVisitor#mpropdef (self) on <self:Object(TransformVisitor)> */
160 var3 = self->attrs[COLOR_transform__TransformVisitor___mpropdef].val; /* _mpropdef on <self:Object(TransformVisitor)> */
161 if (unlikely(var3 == NULL)) {
162 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef");
163 PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 48);
164 show_backtrace(1);
165 }
166 var1 = var3;
167 RET_LABEL2:(void)0;
168 }
169 var = var1;
170 RET_LABEL:;
171 return var;
172 }
173 /* method transform#TransformVisitor#mpropdef= for (self: TransformVisitor, MPropDef) */
174 void transform__TransformVisitor__mpropdef_61d(val* self, val* p0) {
175 self->attrs[COLOR_transform__TransformVisitor___mpropdef].val = p0; /* _mpropdef on <self:TransformVisitor> */
176 RET_LABEL:;
177 }
178 /* method transform#TransformVisitor#mpropdef= for (self: Object, MPropDef) */
179 void VIRTUAL_transform__TransformVisitor__mpropdef_61d(val* self, val* p0) {
180 { /* Inline transform#TransformVisitor#mpropdef= (self,p0) on <self:Object(TransformVisitor)> */
181 self->attrs[COLOR_transform__TransformVisitor___mpropdef].val = p0; /* _mpropdef on <self:Object(TransformVisitor)> */
182 RET_LABEL1:(void)0;
183 }
184 RET_LABEL:;
185 }
186 /* method transform#TransformVisitor#builder for (self: TransformVisitor): ASTBuilder */
187 val* transform__TransformVisitor__builder(val* self) {
188 val* var /* : ASTBuilder */;
189 val* var1 /* : ASTBuilder */;
190 var1 = self->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on <self:TransformVisitor> */
191 if (unlikely(var1 == NULL)) {
192 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
193 PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 49);
194 show_backtrace(1);
195 }
196 var = var1;
197 RET_LABEL:;
198 return var;
199 }
200 /* method transform#TransformVisitor#builder for (self: Object): ASTBuilder */
201 val* VIRTUAL_transform__TransformVisitor__builder(val* self) {
202 val* var /* : ASTBuilder */;
203 val* var1 /* : ASTBuilder */;
204 val* var3 /* : ASTBuilder */;
205 { /* Inline transform#TransformVisitor#builder (self) on <self:Object(TransformVisitor)> */
206 var3 = self->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on <self:Object(TransformVisitor)> */
207 if (unlikely(var3 == NULL)) {
208 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
209 PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 49);
210 show_backtrace(1);
211 }
212 var1 = var3;
213 RET_LABEL2:(void)0;
214 }
215 var = var1;
216 RET_LABEL:;
217 return var;
218 }
219 /* method transform#TransformVisitor#builder= for (self: TransformVisitor, ASTBuilder) */
220 void transform__TransformVisitor__builder_61d(val* self, val* p0) {
221 self->attrs[COLOR_transform__TransformVisitor___builder].val = p0; /* _builder on <self:TransformVisitor> */
222 RET_LABEL:;
223 }
224 /* method transform#TransformVisitor#builder= for (self: Object, ASTBuilder) */
225 void VIRTUAL_transform__TransformVisitor__builder_61d(val* self, val* p0) {
226 { /* Inline transform#TransformVisitor#builder= (self,p0) on <self:Object(TransformVisitor)> */
227 self->attrs[COLOR_transform__TransformVisitor___builder].val = p0; /* _builder on <self:Object(TransformVisitor)> */
228 RET_LABEL1:(void)0;
229 }
230 RET_LABEL:;
231 }
232 /* method transform#TransformVisitor#init for (self: TransformVisitor, TransformPhase, APropdef) */
233 void transform__TransformVisitor__init(val* self, val* p0, val* p1) {
234 val* var_phase /* var phase: TransformPhase */;
235 val* var_npropdef /* var npropdef: APropdef */;
236 val* var /* : nullable MPropDef */;
237 val* var4 /* : nullable MPropDef */;
238 val* var6 /* : MPropDef */;
239 val* var8 /* : MPropDef */;
240 val* var9 /* : MClassDef */;
241 val* var11 /* : MClassDef */;
242 val* var13 /* : MClassDef */;
243 val* var15 /* : MClassDef */;
244 val* var16 /* : MModule */;
245 val* var18 /* : MModule */;
246 val* var20 /* : ASTBuilder */;
247 val* var21 /* : MModule */;
248 val* var23 /* : MModule */;
249 val* var24 /* : MPropDef */;
250 val* var26 /* : MPropDef */;
251 val* var27 /* : MClassDef */;
252 val* var29 /* : MClassDef */;
253 val* var30 /* : MClassType */;
254 val* var32 /* : MClassType */;
255 {
256 { /* Inline parser_nodes#Visitor#init (self) on <self:TransformVisitor> */
257 RET_LABEL1:(void)0;
258 }
259 }
260 var_phase = p0;
261 var_npropdef = p1;
262 {
263 { /* Inline transform#TransformVisitor#phase= (self,var_phase) on <self:TransformVisitor> */
264 self->attrs[COLOR_transform__TransformVisitor___phase].val = var_phase; /* _phase on <self:TransformVisitor> */
265 RET_LABEL2:(void)0;
266 }
267 }
268 {
269 { /* Inline modelize_property#APropdef#mpropdef (var_npropdef) on <var_npropdef:APropdef> */
270 var4 = var_npropdef->attrs[COLOR_modelize_property__APropdef___mpropdef].val; /* _mpropdef on <var_npropdef:APropdef> */
271 var = var4;
272 RET_LABEL3:(void)0;
273 }
274 }
275 if (unlikely(var == NULL)) {
276 PRINT_ERROR("Runtime error: %s", "Cast failed");
277 PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 54);
278 show_backtrace(1);
279 }
280 {
281 { /* Inline transform#TransformVisitor#mpropdef= (self,var) on <self:TransformVisitor> */
282 self->attrs[COLOR_transform__TransformVisitor___mpropdef].val = var; /* _mpropdef on <self:TransformVisitor> */
283 RET_LABEL5:(void)0;
284 }
285 }
286 {
287 { /* Inline transform#TransformVisitor#mpropdef (self) on <self:TransformVisitor> */
288 var8 = self->attrs[COLOR_transform__TransformVisitor___mpropdef].val; /* _mpropdef on <self:TransformVisitor> */
289 if (unlikely(var8 == NULL)) {
290 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef");
291 PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 48);
292 show_backtrace(1);
293 }
294 var6 = var8;
295 RET_LABEL7:(void)0;
296 }
297 }
298 {
299 { /* Inline model#MPropDef#mclassdef (var6) on <var6:MPropDef> */
300 var11 = var6->attrs[COLOR_model__MPropDef___mclassdef].val; /* _mclassdef on <var6:MPropDef> */
301 if (unlikely(var11 == NULL)) {
302 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
303 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1879);
304 show_backtrace(1);
305 }
306 var9 = var11;
307 RET_LABEL10:(void)0;
308 }
309 }
310 {
311 { /* Inline transform#TransformVisitor#mclassdef= (self,var9) on <self:TransformVisitor> */
312 self->attrs[COLOR_transform__TransformVisitor___mclassdef].val = var9; /* _mclassdef on <self:TransformVisitor> */
313 RET_LABEL12:(void)0;
314 }
315 }
316 {
317 { /* Inline transform#TransformVisitor#mclassdef (self) on <self:TransformVisitor> */
318 var15 = self->attrs[COLOR_transform__TransformVisitor___mclassdef].val; /* _mclassdef on <self:TransformVisitor> */
319 if (unlikely(var15 == NULL)) {
320 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
321 PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 47);
322 show_backtrace(1);
323 }
324 var13 = var15;
325 RET_LABEL14:(void)0;
326 }
327 }
328 {
329 { /* Inline model#MClassDef#mmodule (var13) on <var13:MClassDef> */
330 var18 = var13->attrs[COLOR_model__MClassDef___mmodule].val; /* _mmodule on <var13:MClassDef> */
331 if (unlikely(var18 == NULL)) {
332 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
333 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 471);
334 show_backtrace(1);
335 }
336 var16 = var18;
337 RET_LABEL17:(void)0;
338 }
339 }
340 {
341 { /* Inline transform#TransformVisitor#mmodule= (self,var16) on <self:TransformVisitor> */
342 self->attrs[COLOR_transform__TransformVisitor___mmodule].val = var16; /* _mmodule on <self:TransformVisitor> */
343 RET_LABEL19:(void)0;
344 }
345 }
346 var20 = NEW_astbuilder__ASTBuilder(&type_astbuilder__ASTBuilder);
347 {
348 { /* Inline transform#TransformVisitor#mmodule (self) on <self:TransformVisitor> */
349 var23 = self->attrs[COLOR_transform__TransformVisitor___mmodule].val; /* _mmodule on <self:TransformVisitor> */
350 if (unlikely(var23 == NULL)) {
351 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
352 PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 46);
353 show_backtrace(1);
354 }
355 var21 = var23;
356 RET_LABEL22:(void)0;
357 }
358 }
359 {
360 { /* Inline transform#TransformVisitor#mpropdef (self) on <self:TransformVisitor> */
361 var26 = self->attrs[COLOR_transform__TransformVisitor___mpropdef].val; /* _mpropdef on <self:TransformVisitor> */
362 if (unlikely(var26 == NULL)) {
363 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef");
364 PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 48);
365 show_backtrace(1);
366 }
367 var24 = var26;
368 RET_LABEL25:(void)0;
369 }
370 }
371 {
372 { /* Inline model#MPropDef#mclassdef (var24) on <var24:MPropDef> */
373 var29 = var24->attrs[COLOR_model__MPropDef___mclassdef].val; /* _mclassdef on <var24:MPropDef> */
374 if (unlikely(var29 == NULL)) {
375 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
376 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1879);
377 show_backtrace(1);
378 }
379 var27 = var29;
380 RET_LABEL28:(void)0;
381 }
382 }
383 {
384 { /* Inline model#MClassDef#bound_mtype (var27) on <var27:MClassDef> */
385 var32 = var27->attrs[COLOR_model__MClassDef___bound_mtype].val; /* _bound_mtype on <var27:MClassDef> */
386 if (unlikely(var32 == NULL)) {
387 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
388 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 477);
389 show_backtrace(1);
390 }
391 var30 = var32;
392 RET_LABEL31:(void)0;
393 }
394 }
395 {
396 { /* Inline astbuilder#ASTBuilder#init (var20,var21,var30) on <var20:ASTBuilder> */
397 var20->attrs[COLOR_astbuilder__ASTBuilder___mmodule].val = var21; /* _mmodule on <var20:ASTBuilder> */
398 var20->attrs[COLOR_astbuilder__ASTBuilder___anchor].val = var30; /* _anchor on <var20:ASTBuilder> */
399 RET_LABEL33:(void)0;
400 }
401 }
402 {
403 { /* Inline transform#TransformVisitor#builder= (self,var20) on <self:TransformVisitor> */
404 self->attrs[COLOR_transform__TransformVisitor___builder].val = var20; /* _builder on <self:TransformVisitor> */
405 RET_LABEL34:(void)0;
406 }
407 }
408 RET_LABEL:;
409 }
410 /* method transform#TransformVisitor#init for (self: Object, TransformPhase, APropdef) */
411 void VIRTUAL_transform__TransformVisitor__init(val* self, val* p0, val* p1) {
412 transform__TransformVisitor__init(self, p0, p1); /* Direct call transform#TransformVisitor#init on <self:Object(TransformVisitor)>*/
413 RET_LABEL:;
414 }
415 /* method transform#TransformVisitor#visit for (self: TransformVisitor, ANode) */
416 void transform__TransformVisitor__visit(val* self, val* p0) {
417 val* var_node /* var node: ANode */;
418 short int var /* : Bool */;
419 int cltype;
420 int idtype;
421 var_node = p0;
422 /* <var_node:ANode> isa AAnnotations */
423 cltype = type_parser_nodes__AAnnotations.color;
424 idtype = type_parser_nodes__AAnnotations.id;
425 if(cltype >= var_node->type->table_size) {
426 var = 0;
427 } else {
428 var = var_node->type->type_table[cltype] == idtype;
429 }
430 if (var){
431 goto RET_LABEL;
432 } else {
433 }
434 {
435 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__visit_all]))(var_node, self) /* visit_all on <var_node:ANode>*/;
436 }
437 {
438 ((void (*)(val*, val*))(var_node->class->vft[COLOR_transform__ANode__accept_transform_visitor]))(var_node, self) /* accept_transform_visitor on <var_node:ANode>*/;
439 }
440 RET_LABEL:;
441 }
442 /* method transform#TransformVisitor#visit for (self: Object, ANode) */
443 void VIRTUAL_transform__TransformVisitor__visit(val* self, val* p0) {
444 transform__TransformVisitor__visit(self, p0); /* Direct call transform#TransformVisitor#visit on <self:Object(TransformVisitor)>*/
445 RET_LABEL:;
446 }
447 /* method transform#ANode#accept_transform_visitor for (self: ANode, TransformVisitor) */
448 void transform__ANode__accept_transform_visitor(val* self, val* p0) {
449 val* var_v /* var v: TransformVisitor */;
450 var_v = p0;
451 RET_LABEL:;
452 }
453 /* method transform#ANode#accept_transform_visitor for (self: Object, TransformVisitor) */
454 void VIRTUAL_transform__ANode__accept_transform_visitor(val* self, val* p0) {
455 val* var_v /* var v: TransformVisitor */;
456 { /* Inline transform#ANode#accept_transform_visitor (self,p0) on <self:Object(ANode)> */
457 var_v = p0;
458 RET_LABEL1:(void)0;
459 }
460 RET_LABEL:;
461 }
462 /* method transform#AVardeclExpr#accept_transform_visitor for (self: AVardeclExpr, TransformVisitor) */
463 void transform__AVardeclExpr__accept_transform_visitor(val* self, val* p0) {
464 val* var_v /* var v: TransformVisitor */;
465 val* var /* : nullable AExpr */;
466 val* var_nexpr /* var nexpr: nullable AExpr */;
467 val* var1 /* : null */;
468 short int var2 /* : Bool */;
469 short int var3 /* : Bool */;
470 val* var_other /* var other: nullable Object */;
471 short int var5 /* : Bool */;
472 short int var7 /* : Bool */;
473 val* var8 /* : ASTBuilder */;
474 val* var10 /* : ASTBuilder */;
475 val* var11 /* : nullable Variable */;
476 val* var13 /* : nullable Variable */;
477 val* var14 /* : AVarAssignExpr */;
478 val* var_nvar /* var nvar: AVarAssignExpr */;
479 var_v = p0;
480 {
481 var = parser_nodes__AVardeclExpr__n_expr(self);
482 }
483 var_nexpr = var;
484 var1 = NULL;
485 if (var_nexpr == NULL) {
486 var2 = 1; /* is null */
487 } else {
488 var2 = 0; /* arg is null but recv is not */
489 }
490 if (0) {
491 { /* Inline kernel#Object#== (var_nexpr,var1) on <var_nexpr:nullable AExpr> */
492 var_other = var1;
493 {
494 { /* Inline kernel#Object#is_same_instance (var_nexpr,var_other) on <var_nexpr:nullable AExpr(AExpr)> */
495 var7 = var_nexpr == var_other;
496 var5 = var7;
497 goto RET_LABEL6;
498 RET_LABEL6:(void)0;
499 }
500 }
501 var3 = var5;
502 goto RET_LABEL4;
503 RET_LABEL4:(void)0;
504 }
505 var2 = var3;
506 }
507 if (var2){
508 } else {
509 {
510 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
511 var10 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
512 if (unlikely(var10 == NULL)) {
513 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
514 PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 49);
515 show_backtrace(1);
516 }
517 var8 = var10;
518 RET_LABEL9:(void)0;
519 }
520 }
521 {
522 { /* Inline scope#AVardeclExpr#variable (self) on <self:AVardeclExpr> */
523 var13 = self->attrs[COLOR_scope__AVardeclExpr___variable].val; /* _variable on <self:AVardeclExpr> */
524 var11 = var13;
525 RET_LABEL12:(void)0;
526 }
527 }
528 if (unlikely(var11 == NULL)) {
529 PRINT_ERROR("Runtime error: %s", "Cast failed");
530 PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 100);
531 show_backtrace(1);
532 }
533 {
534 var14 = astbuilder__ASTBuilder__make_var_assign(var8, var11, var_nexpr);
535 }
536 var_nvar = var14;
537 {
538 parser_nodes__Prod__replace_with(self, var_nvar); /* Direct call parser_nodes#Prod#replace_with on <self:AVardeclExpr>*/
539 }
540 }
541 RET_LABEL:;
542 }
543 /* method transform#AVardeclExpr#accept_transform_visitor for (self: Object, TransformVisitor) */
544 void VIRTUAL_transform__AVardeclExpr__accept_transform_visitor(val* self, val* p0) {
545 transform__AVardeclExpr__accept_transform_visitor(self, p0); /* Direct call transform#AVardeclExpr#accept_transform_visitor on <self:Object(AVardeclExpr)>*/
546 RET_LABEL:;
547 }
548 /* method transform#AIfexprExpr#accept_transform_visitor for (self: AIfexprExpr, TransformVisitor) */
549 void transform__AIfexprExpr__accept_transform_visitor(val* self, val* p0) {
550 val* var_v /* var v: TransformVisitor */;
551 val* var /* : ASTBuilder */;
552 val* var2 /* : ASTBuilder */;
553 val* var3 /* : AExpr */;
554 val* var4 /* : nullable MType */;
555 val* var6 /* : nullable MType */;
556 val* var7 /* : AIfExpr */;
557 val* var_nif /* var nif: AIfExpr */;
558 val* var8 /* : nullable AExpr */;
559 val* var9 /* : AExpr */;
560 val* var10 /* : nullable AExpr */;
561 val* var11 /* : AExpr */;
562 var_v = p0;
563 {
564 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
565 var2 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
566 if (unlikely(var2 == NULL)) {
567 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
568 PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 49);
569 show_backtrace(1);
570 }
571 var = var2;
572 RET_LABEL1:(void)0;
573 }
574 }
575 {
576 var3 = parser_nodes__AIfexprExpr__n_expr(self);
577 }
578 {
579 { /* Inline typing#AExpr#mtype (self) on <self:AIfexprExpr> */
580 var6 = self->attrs[COLOR_typing__AExpr___mtype].val; /* _mtype on <self:AIfexprExpr> */
581 var4 = var6;
582 RET_LABEL5:(void)0;
583 }
584 }
585 {
586 var7 = astbuilder__ASTBuilder__make_if(var, var3, var4);
587 }
588 var_nif = var7;
589 {
590 var8 = parser_nodes__AIfExpr__n_then(var_nif);
591 }
592 {
593 var9 = parser_nodes__AIfexprExpr__n_then(self);
594 }
595 if (var8 == NULL) {
596 PRINT_ERROR("Runtime error: %s", "Receiver is null");
597 PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 113);
598 show_backtrace(1);
599 } else {
600 ((void (*)(val*, val*))(var8->class->vft[COLOR_astbuilder__AExpr__add]))(var8, var9) /* add on <var8:nullable AExpr>*/;
601 }
602 {
603 var10 = parser_nodes__AIfExpr__n_else(var_nif);
604 }
605 {
606 var11 = parser_nodes__AIfexprExpr__n_else(self);
607 }
608 if (var10 == NULL) {
609 PRINT_ERROR("Runtime error: %s", "Receiver is null");
610 PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 114);
611 show_backtrace(1);
612 } else {
613 ((void (*)(val*, val*))(var10->class->vft[COLOR_astbuilder__AExpr__add]))(var10, var11) /* add on <var10:nullable AExpr>*/;
614 }
615 {
616 parser_nodes__Prod__replace_with(self, var_nif); /* Direct call parser_nodes#Prod#replace_with on <self:AIfexprExpr>*/
617 }
618 RET_LABEL:;
619 }
620 /* method transform#AIfexprExpr#accept_transform_visitor for (self: Object, TransformVisitor) */
621 void VIRTUAL_transform__AIfexprExpr__accept_transform_visitor(val* self, val* p0) {
622 transform__AIfexprExpr__accept_transform_visitor(self, p0); /* Direct call transform#AIfexprExpr#accept_transform_visitor on <self:Object(AIfexprExpr)>*/
623 RET_LABEL:;
624 }
625 /* method transform#AOrExpr#accept_transform_visitor for (self: AOrExpr, TransformVisitor) */
626 void transform__AOrExpr__accept_transform_visitor(val* self, val* p0) {
627 val* var_v /* var v: TransformVisitor */;
628 val* var /* : ASTBuilder */;
629 val* var2 /* : ASTBuilder */;
630 val* var3 /* : AExpr */;
631 val* var4 /* : nullable MType */;
632 val* var6 /* : nullable MType */;
633 val* var7 /* : AIfExpr */;
634 val* var_nif /* var nif: AIfExpr */;
635 val* var8 /* : nullable AExpr */;
636 val* var9 /* : AExpr */;
637 val* var10 /* : AVarExpr */;
638 val* var11 /* : nullable AExpr */;
639 val* var12 /* : AExpr */;
640 var_v = p0;
641 {
642 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
643 var2 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
644 if (unlikely(var2 == NULL)) {
645 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
646 PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 49);
647 show_backtrace(1);
648 }
649 var = var2;
650 RET_LABEL1:(void)0;
651 }
652 }
653 {
654 var3 = parser_nodes__AOrExpr__n_expr(self);
655 }
656 {
657 { /* Inline typing#AExpr#mtype (self) on <self:AOrExpr> */
658 var6 = self->attrs[COLOR_typing__AExpr___mtype].val; /* _mtype on <self:AOrExpr> */
659 var4 = var6;
660 RET_LABEL5:(void)0;
661 }
662 }
663 {
664 var7 = astbuilder__ASTBuilder__make_if(var, var3, var4);
665 }
666 var_nif = var7;
667 {
668 var8 = parser_nodes__AIfExpr__n_then(var_nif);
669 }
670 {
671 var9 = parser_nodes__AOrExpr__n_expr(self);
672 }
673 {
674 var10 = astbuilder__AExpr__make_var_read(var9);
675 }
676 if (var8 == NULL) {
677 PRINT_ERROR("Runtime error: %s", "Receiver is null");
678 PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 125);
679 show_backtrace(1);
680 } else {
681 ((void (*)(val*, val*))(var8->class->vft[COLOR_astbuilder__AExpr__add]))(var8, var10) /* add on <var8:nullable AExpr>*/;
682 }
683 {
684 var11 = parser_nodes__AIfExpr__n_else(var_nif);
685 }
686 {
687 var12 = parser_nodes__AOrExpr__n_expr2(self);
688 }
689 if (var11 == NULL) {
690 PRINT_ERROR("Runtime error: %s", "Receiver is null");
691 PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 126);
692 show_backtrace(1);
693 } else {
694 ((void (*)(val*, val*))(var11->class->vft[COLOR_astbuilder__AExpr__add]))(var11, var12) /* add on <var11:nullable AExpr>*/;
695 }
696 {
697 parser_nodes__Prod__replace_with(self, var_nif); /* Direct call parser_nodes#Prod#replace_with on <self:AOrExpr>*/
698 }
699 RET_LABEL:;
700 }
701 /* method transform#AOrExpr#accept_transform_visitor for (self: Object, TransformVisitor) */
702 void VIRTUAL_transform__AOrExpr__accept_transform_visitor(val* self, val* p0) {
703 transform__AOrExpr__accept_transform_visitor(self, p0); /* Direct call transform#AOrExpr#accept_transform_visitor on <self:Object(AOrExpr)>*/
704 RET_LABEL:;
705 }
706 /* method transform#AImpliesExpr#accept_transform_visitor for (self: AImpliesExpr, TransformVisitor) */
707 void transform__AImpliesExpr__accept_transform_visitor(val* self, val* p0) {
708 val* var_v /* var v: TransformVisitor */;
709 var_v = p0;
710 RET_LABEL:;
711 }
712 /* method transform#AImpliesExpr#accept_transform_visitor for (self: Object, TransformVisitor) */
713 void VIRTUAL_transform__AImpliesExpr__accept_transform_visitor(val* self, val* p0) {
714 val* var_v /* var v: TransformVisitor */;
715 { /* Inline transform#AImpliesExpr#accept_transform_visitor (self,p0) on <self:Object(AImpliesExpr)> */
716 var_v = p0;
717 RET_LABEL1:(void)0;
718 }
719 RET_LABEL:;
720 }
721 /* method transform#AAndExpr#accept_transform_visitor for (self: AAndExpr, TransformVisitor) */
722 void transform__AAndExpr__accept_transform_visitor(val* self, val* p0) {
723 val* var_v /* var v: TransformVisitor */;
724 val* var /* : ASTBuilder */;
725 val* var2 /* : ASTBuilder */;
726 val* var3 /* : AExpr */;
727 val* var4 /* : nullable MType */;
728 val* var6 /* : nullable MType */;
729 val* var7 /* : AIfExpr */;
730 val* var_nif /* var nif: AIfExpr */;
731 val* var8 /* : nullable AExpr */;
732 val* var9 /* : AExpr */;
733 val* var10 /* : nullable AExpr */;
734 val* var11 /* : AExpr */;
735 val* var12 /* : AVarExpr */;
736 var_v = p0;
737 {
738 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
739 var2 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
740 if (unlikely(var2 == NULL)) {
741 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
742 PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 49);
743 show_backtrace(1);
744 }
745 var = var2;
746 RET_LABEL1:(void)0;
747 }
748 }
749 {
750 var3 = parser_nodes__AAndExpr__n_expr(self);
751 }
752 {
753 { /* Inline typing#AExpr#mtype (self) on <self:AAndExpr> */
754 var6 = self->attrs[COLOR_typing__AExpr___mtype].val; /* _mtype on <self:AAndExpr> */
755 var4 = var6;
756 RET_LABEL5:(void)0;
757 }
758 }
759 {
760 var7 = astbuilder__ASTBuilder__make_if(var, var3, var4);
761 }
762 var_nif = var7;
763 {
764 var8 = parser_nodes__AIfExpr__n_then(var_nif);
765 }
766 {
767 var9 = parser_nodes__AAndExpr__n_expr2(self);
768 }
769 if (var8 == NULL) {
770 PRINT_ERROR("Runtime error: %s", "Receiver is null");
771 PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 144);
772 show_backtrace(1);
773 } else {
774 ((void (*)(val*, val*))(var8->class->vft[COLOR_astbuilder__AExpr__add]))(var8, var9) /* add on <var8:nullable AExpr>*/;
775 }
776 {
777 var10 = parser_nodes__AIfExpr__n_else(var_nif);
778 }
779 {
780 var11 = parser_nodes__AAndExpr__n_expr(self);
781 }
782 {
783 var12 = astbuilder__AExpr__make_var_read(var11);
784 }
785 if (var10 == NULL) {
786 PRINT_ERROR("Runtime error: %s", "Receiver is null");
787 PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 145);
788 show_backtrace(1);
789 } else {
790 ((void (*)(val*, val*))(var10->class->vft[COLOR_astbuilder__AExpr__add]))(var10, var12) /* add on <var10:nullable AExpr>*/;
791 }
792 {
793 parser_nodes__Prod__replace_with(self, var_nif); /* Direct call parser_nodes#Prod#replace_with on <self:AAndExpr>*/
794 }
795 RET_LABEL:;
796 }
797 /* method transform#AAndExpr#accept_transform_visitor for (self: Object, TransformVisitor) */
798 void VIRTUAL_transform__AAndExpr__accept_transform_visitor(val* self, val* p0) {
799 transform__AAndExpr__accept_transform_visitor(self, p0); /* Direct call transform#AAndExpr#accept_transform_visitor on <self:Object(AAndExpr)>*/
800 RET_LABEL:;
801 }
802 /* method transform#AWhileExpr#accept_transform_visitor for (self: AWhileExpr, TransformVisitor) */
803 void transform__AWhileExpr__accept_transform_visitor(val* self, val* p0) {
804 val* var_v /* var v: TransformVisitor */;
805 var_v = p0;
806 RET_LABEL:;
807 }
808 /* method transform#AWhileExpr#accept_transform_visitor for (self: Object, TransformVisitor) */
809 void VIRTUAL_transform__AWhileExpr__accept_transform_visitor(val* self, val* p0) {
810 val* var_v /* var v: TransformVisitor */;
811 { /* Inline transform#AWhileExpr#accept_transform_visitor (self,p0) on <self:Object(AWhileExpr)> */
812 var_v = p0;
813 RET_LABEL1:(void)0;
814 }
815 RET_LABEL:;
816 }
817 /* method transform#AForExpr#accept_transform_visitor for (self: AForExpr, TransformVisitor) */
818 void transform__AForExpr__accept_transform_visitor(val* self, val* p0) {
819 val* var_v /* var v: TransformVisitor */;
820 var_v = p0;
821 RET_LABEL:;
822 }
823 /* method transform#AForExpr#accept_transform_visitor for (self: Object, TransformVisitor) */
824 void VIRTUAL_transform__AForExpr__accept_transform_visitor(val* self, val* p0) {
825 val* var_v /* var v: TransformVisitor */;
826 { /* Inline transform#AForExpr#accept_transform_visitor (self,p0) on <self:Object(AForExpr)> */
827 var_v = p0;
828 RET_LABEL1:(void)0;
829 }
830 RET_LABEL:;
831 }
832 /* method transform#AArrayExpr#accept_transform_visitor for (self: AArrayExpr, TransformVisitor) */
833 void transform__AArrayExpr__accept_transform_visitor(val* self, val* p0) {
834 val* var_v /* var v: TransformVisitor */;
835 val* var /* : ASTBuilder */;
836 val* var2 /* : ASTBuilder */;
837 val* var3 /* : ABlockExpr */;
838 val* var_nblock /* var nblock: ABlockExpr */;
839 val* var4 /* : ASTBuilder */;
840 val* var6 /* : ASTBuilder */;
841 val* var7 /* : nullable CallSite */;
842 val* var9 /* : nullable CallSite */;
843 val* var10 /* : Array[AIntExpr] */;
844 long var11 /* : Int */;
845 val* var_ /* var : Array[AIntExpr] */;
846 val* var12 /* : ASTBuilder */;
847 val* var14 /* : ASTBuilder */;
848 val* var15 /* : AExprs */;
849 val* var16 /* : ANodes[AExpr] */;
850 val* var18 /* : ANodes[AExpr] */;
851 long var19 /* : Int */;
852 val* var20 /* : AIntExpr */;
853 val* var21 /* : ANewExpr */;
854 val* var_nnew /* var nnew: ANewExpr */;
855 val* var22 /* : AExprs */;
856 val* var23 /* : ANodes[AExpr] */;
857 val* var25 /* : ANodes[AExpr] */;
858 val* var26 /* : Iterator[ANode] */;
859 short int var27 /* : Bool */;
860 val* var28 /* : nullable Object */;
861 val* var_nexpr /* var nexpr: AExpr */;
862 val* var29 /* : ASTBuilder */;
863 val* var31 /* : ASTBuilder */;
864 val* var32 /* : AVarExpr */;
865 val* var33 /* : nullable CallSite */;
866 val* var35 /* : nullable CallSite */;
867 val* var36 /* : Array[AExpr] */;
868 long var37 /* : Int */;
869 val* var_38 /* var : Array[AExpr] */;
870 val* var39 /* : ACallExpr */;
871 val* var_nadd /* var nadd: ACallExpr */;
872 val* var40 /* : AVarExpr */;
873 val* var_nres /* var nres: AVarExpr */;
874 var_v = p0;
875 {
876 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
877 var2 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
878 if (unlikely(var2 == NULL)) {
879 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
880 PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 49);
881 show_backtrace(1);
882 }
883 var = var2;
884 RET_LABEL1:(void)0;
885 }
886 }
887 {
888 var3 = astbuilder__ASTBuilder__make_block(var);
889 }
890 var_nblock = var3;
891 {
892 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
893 var6 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
894 if (unlikely(var6 == NULL)) {
895 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
896 PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 49);
897 show_backtrace(1);
898 }
899 var4 = var6;
900 RET_LABEL5:(void)0;
901 }
902 }
903 {
904 { /* Inline typing#AArrayExpr#with_capacity_callsite (self) on <self:AArrayExpr> */
905 var9 = self->attrs[COLOR_typing__AArrayExpr___with_capacity_callsite].val; /* _with_capacity_callsite on <self:AArrayExpr> */
906 var7 = var9;
907 RET_LABEL8:(void)0;
908 }
909 }
910 if (unlikely(var7 == NULL)) {
911 PRINT_ERROR("Runtime error: %s", "Cast failed");
912 PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 176);
913 show_backtrace(1);
914 }
915 var10 = NEW_array__Array(&type_array__Arrayparser_nodes__AIntExpr);
916 var11 = 1;
917 {
918 array__Array__with_capacity(var10, var11); /* Direct call array#Array#with_capacity on <var10:Array[AIntExpr]>*/
919 }
920 var_ = var10;
921 {
922 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
923 var14 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
924 if (unlikely(var14 == NULL)) {
925 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
926 PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 49);
927 show_backtrace(1);
928 }
929 var12 = var14;
930 RET_LABEL13:(void)0;
931 }
932 }
933 {
934 var15 = parser_nodes__AArrayExpr__n_exprs(self);
935 }
936 {
937 { /* Inline parser_nodes#AExprs#n_exprs (var15) on <var15:AExprs> */
938 var18 = var15->attrs[COLOR_parser_nodes__AExprs___n_exprs].val; /* _n_exprs on <var15:AExprs> */
939 if (unlikely(var18 == NULL)) {
940 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
941 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 2274);
942 show_backtrace(1);
943 }
944 var16 = var18;
945 RET_LABEL17:(void)0;
946 }
947 }
948 {
949 var19 = parser_nodes__ANodes__length(var16);
950 }
951 {
952 var20 = astbuilder__ASTBuilder__make_int(var12, var19);
953 }
954 {
955 array__AbstractArray__push(var_, var20); /* Direct call array#AbstractArray#push on <var_:Array[AIntExpr]>*/
956 }
957 {
958 var21 = astbuilder__ASTBuilder__make_new(var4, var7, var_);
959 }
960 var_nnew = var21;
961 {
962 astbuilder__ABlockExpr__add(var_nblock, var_nnew); /* Direct call astbuilder#ABlockExpr#add on <var_nblock:ABlockExpr>*/
963 }
964 {
965 var22 = parser_nodes__AArrayExpr__n_exprs(self);
966 }
967 {
968 { /* Inline parser_nodes#AExprs#n_exprs (var22) on <var22:AExprs> */
969 var25 = var22->attrs[COLOR_parser_nodes__AExprs___n_exprs].val; /* _n_exprs on <var22:AExprs> */
970 if (unlikely(var25 == NULL)) {
971 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
972 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 2274);
973 show_backtrace(1);
974 }
975 var23 = var25;
976 RET_LABEL24:(void)0;
977 }
978 }
979 {
980 var26 = parser_nodes__ANodes__iterator(var23);
981 }
982 for(;;) {
983 {
984 var27 = ((short int (*)(val*))(var26->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var26) /* is_ok on <var26:Iterator[ANode]>*/;
985 }
986 if(!var27) break;
987 {
988 var28 = ((val* (*)(val*))(var26->class->vft[COLOR_abstract_collection__Iterator__item]))(var26) /* item on <var26:Iterator[ANode]>*/;
989 }
990 var_nexpr = var28;
991 {
992 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
993 var31 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
994 if (unlikely(var31 == NULL)) {
995 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
996 PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 49);
997 show_backtrace(1);
998 }
999 var29 = var31;
1000 RET_LABEL30:(void)0;
1001 }
1002 }
1003 {
1004 var32 = astbuilder__AExpr__make_var_read(var_nnew);
1005 }
1006 {
1007 { /* Inline typing#AArrayExpr#push_callsite (self) on <self:AArrayExpr> */
1008 var35 = self->attrs[COLOR_typing__AArrayExpr___push_callsite].val; /* _push_callsite on <self:AArrayExpr> */
1009 var33 = var35;
1010 RET_LABEL34:(void)0;
1011 }
1012 }
1013 if (unlikely(var33 == NULL)) {
1014 PRINT_ERROR("Runtime error: %s", "Cast failed");
1015 PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 180);
1016 show_backtrace(1);
1017 }
1018 var36 = NEW_array__Array(&type_array__Arrayparser_nodes__AExpr);
1019 var37 = 1;
1020 {
1021 array__Array__with_capacity(var36, var37); /* Direct call array#Array#with_capacity on <var36:Array[AExpr]>*/
1022 }
1023 var_38 = var36;
1024 {
1025 array__AbstractArray__push(var_38, var_nexpr); /* Direct call array#AbstractArray#push on <var_38:Array[AExpr]>*/
1026 }
1027 {
1028 var39 = astbuilder__ASTBuilder__make_call(var29, var32, var33, var_38);
1029 }
1030 var_nadd = var39;
1031 {
1032 astbuilder__ABlockExpr__add(var_nblock, var_nadd); /* Direct call astbuilder#ABlockExpr#add on <var_nblock:ABlockExpr>*/
1033 }
1034 CONTINUE_label: (void)0;
1035 {
1036 ((void (*)(val*))(var26->class->vft[COLOR_abstract_collection__Iterator__next]))(var26) /* next on <var26:Iterator[ANode]>*/;
1037 }
1038 }
1039 BREAK_label: (void)0;
1040 {
1041 var40 = astbuilder__AExpr__make_var_read(var_nnew);
1042 }
1043 var_nres = var40;
1044 {
1045 astbuilder__ABlockExpr__add(var_nblock, var_nres); /* Direct call astbuilder#ABlockExpr#add on <var_nblock:ABlockExpr>*/
1046 }
1047 {
1048 parser_nodes__Prod__replace_with(self, var_nblock); /* Direct call parser_nodes#Prod#replace_with on <self:AArrayExpr>*/
1049 }
1050 RET_LABEL:;
1051 }
1052 /* method transform#AArrayExpr#accept_transform_visitor for (self: Object, TransformVisitor) */
1053 void VIRTUAL_transform__AArrayExpr__accept_transform_visitor(val* self, val* p0) {
1054 transform__AArrayExpr__accept_transform_visitor(self, p0); /* Direct call transform#AArrayExpr#accept_transform_visitor on <self:Object(AArrayExpr)>*/
1055 RET_LABEL:;
1056 }
1057 /* method transform#ACrangeExpr#accept_transform_visitor for (self: ACrangeExpr, TransformVisitor) */
1058 void transform__ACrangeExpr__accept_transform_visitor(val* self, val* p0) {
1059 val* var_v /* var v: TransformVisitor */;
1060 val* var /* : ASTBuilder */;
1061 val* var2 /* : ASTBuilder */;
1062 val* var3 /* : nullable CallSite */;
1063 val* var5 /* : nullable CallSite */;
1064 val* var6 /* : Array[AExpr] */;
1065 long var7 /* : Int */;
1066 val* var_ /* var : Array[AExpr] */;
1067 val* var8 /* : AExpr */;
1068 val* var9 /* : AExpr */;
1069 val* var10 /* : ANewExpr */;
1070 var_v = p0;
1071 {
1072 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
1073 var2 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
1074 if (unlikely(var2 == NULL)) {
1075 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
1076 PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 49);
1077 show_backtrace(1);
1078 }
1079 var = var2;
1080 RET_LABEL1:(void)0;
1081 }
1082 }
1083 {
1084 { /* Inline typing#ARangeExpr#init_callsite (self) on <self:ACrangeExpr> */
1085 var5 = self->attrs[COLOR_typing__ARangeExpr___init_callsite].val; /* _init_callsite on <self:ACrangeExpr> */
1086 var3 = var5;
1087 RET_LABEL4:(void)0;
1088 }
1089 }
1090 if (unlikely(var3 == NULL)) {
1091 PRINT_ERROR("Runtime error: %s", "Cast failed");
1092 PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 194);
1093 show_backtrace(1);
1094 }
1095 var6 = NEW_array__Array(&type_array__Arrayparser_nodes__AExpr);
1096 var7 = 2;
1097 {
1098 array__Array__with_capacity(var6, var7); /* Direct call array#Array#with_capacity on <var6:Array[AExpr]>*/
1099 }
1100 var_ = var6;
1101 {
1102 var8 = parser_nodes__ARangeExpr__n_expr(self);
1103 }
1104 {
1105 array__AbstractArray__push(var_, var8); /* Direct call array#AbstractArray#push on <var_:Array[AExpr]>*/
1106 }
1107 {
1108 var9 = parser_nodes__ARangeExpr__n_expr2(self);
1109 }
1110 {
1111 array__AbstractArray__push(var_, var9); /* Direct call array#AbstractArray#push on <var_:Array[AExpr]>*/
1112 }
1113 {
1114 var10 = astbuilder__ASTBuilder__make_new(var, var3, var_);
1115 }
1116 {
1117 parser_nodes__Prod__replace_with(self, var10); /* Direct call parser_nodes#Prod#replace_with on <self:ACrangeExpr>*/
1118 }
1119 RET_LABEL:;
1120 }
1121 /* method transform#ACrangeExpr#accept_transform_visitor for (self: Object, TransformVisitor) */
1122 void VIRTUAL_transform__ACrangeExpr__accept_transform_visitor(val* self, val* p0) {
1123 transform__ACrangeExpr__accept_transform_visitor(self, p0); /* Direct call transform#ACrangeExpr#accept_transform_visitor on <self:Object(ACrangeExpr)>*/
1124 RET_LABEL:;
1125 }
1126 /* method transform#AOrangeExpr#accept_transform_visitor for (self: AOrangeExpr, TransformVisitor) */
1127 void transform__AOrangeExpr__accept_transform_visitor(val* self, val* p0) {
1128 val* var_v /* var v: TransformVisitor */;
1129 val* var /* : ASTBuilder */;
1130 val* var2 /* : ASTBuilder */;
1131 val* var3 /* : nullable CallSite */;
1132 val* var5 /* : nullable CallSite */;
1133 val* var6 /* : Array[AExpr] */;
1134 long var7 /* : Int */;
1135 val* var_ /* var : Array[AExpr] */;
1136 val* var8 /* : AExpr */;
1137 val* var9 /* : AExpr */;
1138 val* var10 /* : ANewExpr */;
1139 var_v = p0;
1140 {
1141 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
1142 var2 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
1143 if (unlikely(var2 == NULL)) {
1144 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
1145 PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 49);
1146 show_backtrace(1);
1147 }
1148 var = var2;
1149 RET_LABEL1:(void)0;
1150 }
1151 }
1152 {
1153 { /* Inline typing#ARangeExpr#init_callsite (self) on <self:AOrangeExpr> */
1154 var5 = self->attrs[COLOR_typing__ARangeExpr___init_callsite].val; /* _init_callsite on <self:AOrangeExpr> */
1155 var3 = var5;
1156 RET_LABEL4:(void)0;
1157 }
1158 }
1159 if (unlikely(var3 == NULL)) {
1160 PRINT_ERROR("Runtime error: %s", "Cast failed");
1161 PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 202);
1162 show_backtrace(1);
1163 }
1164 var6 = NEW_array__Array(&type_array__Arrayparser_nodes__AExpr);
1165 var7 = 2;
1166 {
1167 array__Array__with_capacity(var6, var7); /* Direct call array#Array#with_capacity on <var6:Array[AExpr]>*/
1168 }
1169 var_ = var6;
1170 {
1171 var8 = parser_nodes__ARangeExpr__n_expr(self);
1172 }
1173 {
1174 array__AbstractArray__push(var_, var8); /* Direct call array#AbstractArray#push on <var_:Array[AExpr]>*/
1175 }
1176 {
1177 var9 = parser_nodes__ARangeExpr__n_expr2(self);
1178 }
1179 {
1180 array__AbstractArray__push(var_, var9); /* Direct call array#AbstractArray#push on <var_:Array[AExpr]>*/
1181 }
1182 {
1183 var10 = astbuilder__ASTBuilder__make_new(var, var3, var_);
1184 }
1185 {
1186 parser_nodes__Prod__replace_with(self, var10); /* Direct call parser_nodes#Prod#replace_with on <self:AOrangeExpr>*/
1187 }
1188 RET_LABEL:;
1189 }
1190 /* method transform#AOrangeExpr#accept_transform_visitor for (self: Object, TransformVisitor) */
1191 void VIRTUAL_transform__AOrangeExpr__accept_transform_visitor(val* self, val* p0) {
1192 transform__AOrangeExpr__accept_transform_visitor(self, p0); /* Direct call transform#AOrangeExpr#accept_transform_visitor on <self:Object(AOrangeExpr)>*/
1193 RET_LABEL:;
1194 }
1195 /* method transform#AParExpr#accept_transform_visitor for (self: AParExpr, TransformVisitor) */
1196 void transform__AParExpr__accept_transform_visitor(val* self, val* p0) {
1197 val* var_v /* var v: TransformVisitor */;
1198 val* var /* : AExpr */;
1199 var_v = p0;
1200 {
1201 var = parser_nodes__AProxyExpr__n_expr(self);
1202 }
1203 {
1204 parser_nodes__Prod__replace_with(self, var); /* Direct call parser_nodes#Prod#replace_with on <self:AParExpr>*/
1205 }
1206 RET_LABEL:;
1207 }
1208 /* method transform#AParExpr#accept_transform_visitor for (self: Object, TransformVisitor) */
1209 void VIRTUAL_transform__AParExpr__accept_transform_visitor(val* self, val* p0) {
1210 transform__AParExpr__accept_transform_visitor(self, p0); /* Direct call transform#AParExpr#accept_transform_visitor on <self:Object(AParExpr)>*/
1211 RET_LABEL:;
1212 }
1213 /* method transform#ASendReassignFormExpr#accept_transform_visitor for (self: ASendReassignFormExpr, TransformVisitor) */
1214 void transform__ASendReassignFormExpr__accept_transform_visitor(val* self, val* p0) {
1215 val* var_v /* var v: TransformVisitor */;
1216 val* var /* : ASTBuilder */;
1217 val* var2 /* : ASTBuilder */;
1218 val* var3 /* : ABlockExpr */;
1219 val* var_nblock /* var nblock: ABlockExpr */;
1220 val* var4 /* : AExpr */;
1221 val* var5 /* : Array[AExpr] */;
1222 val* var_read_args /* var read_args: Array[AExpr] */;
1223 val* var6 /* : Array[AExpr] */;
1224 val* var_write_args /* var write_args: Array[AExpr] */;
1225 val* var7 /* : Array[AExpr] */;
1226 val* var8 /* : ArrayIterator[nullable Object] */;
1227 short int var9 /* : Bool */;
1228 val* var10 /* : nullable Object */;
1229 val* var_a /* var a: AExpr */;
1230 val* var11 /* : AVarExpr */;
1231 val* var12 /* : AVarExpr */;
1232 val* var13 /* : ASTBuilder */;
1233 val* var15 /* : ASTBuilder */;
1234 val* var16 /* : AExpr */;
1235 val* var17 /* : AVarExpr */;
1236 val* var18 /* : nullable CallSite */;
1237 val* var20 /* : nullable CallSite */;
1238 val* var21 /* : ACallExpr */;
1239 val* var_nread /* var nread: ACallExpr */;
1240 val* var22 /* : ASTBuilder */;
1241 val* var24 /* : ASTBuilder */;
1242 val* var25 /* : nullable CallSite */;
1243 val* var27 /* : nullable CallSite */;
1244 val* var28 /* : Array[AExpr] */;
1245 long var29 /* : Int */;
1246 val* var_ /* var : Array[AExpr] */;
1247 val* var30 /* : AExpr */;
1248 val* var31 /* : ACallExpr */;
1249 val* var_nnewvalue /* var nnewvalue: ACallExpr */;
1250 val* var32 /* : ASTBuilder */;
1251 val* var34 /* : ASTBuilder */;
1252 val* var35 /* : AExpr */;
1253 val* var36 /* : AVarExpr */;
1254 val* var37 /* : nullable CallSite */;
1255 val* var39 /* : nullable CallSite */;
1256 val* var40 /* : ACallExpr */;
1257 val* var_nwrite /* var nwrite: ACallExpr */;
1258 var_v = p0;
1259 {
1260 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
1261 var2 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
1262 if (unlikely(var2 == NULL)) {
1263 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
1264 PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 49);
1265 show_backtrace(1);
1266 }
1267 var = var2;
1268 RET_LABEL1:(void)0;
1269 }
1270 }
1271 {
1272 var3 = astbuilder__ASTBuilder__make_block(var);
1273 }
1274 var_nblock = var3;
1275 {
1276 var4 = parser_nodes__ASendExpr__n_expr(self);
1277 }
1278 {
1279 astbuilder__ABlockExpr__add(var_nblock, var4); /* Direct call astbuilder#ABlockExpr#add on <var_nblock:ABlockExpr>*/
1280 }
1281 var5 = NEW_array__Array(&type_array__Arrayparser_nodes__AExpr);
1282 {
1283 array__Array__init(var5); /* Direct call array#Array#init on <var5:Array[AExpr]>*/
1284 }
1285 var_read_args = var5;
1286 var6 = NEW_array__Array(&type_array__Arrayparser_nodes__AExpr);
1287 {
1288 array__Array__init(var6); /* Direct call array#Array#init on <var6:Array[AExpr]>*/
1289 }
1290 var_write_args = var6;
1291 {
1292 var7 = typing__ASendExpr__raw_arguments(self);
1293 }
1294 {
1295 var8 = array__AbstractArrayRead__iterator(var7);
1296 }
1297 for(;;) {
1298 {
1299 var9 = array__ArrayIterator__is_ok(var8);
1300 }
1301 if(!var9) break;
1302 {
1303 var10 = array__ArrayIterator__item(var8);
1304 }
1305 var_a = var10;
1306 {
1307 astbuilder__ABlockExpr__add(var_nblock, var_a); /* Direct call astbuilder#ABlockExpr#add on <var_nblock:ABlockExpr>*/
1308 }
1309 {
1310 var11 = astbuilder__AExpr__make_var_read(var_a);
1311 }
1312 {
1313 array__Array__add(var_read_args, var11); /* Direct call array#Array#add on <var_read_args:Array[AExpr]>*/
1314 }
1315 {
1316 var12 = astbuilder__AExpr__make_var_read(var_a);
1317 }
1318 {
1319 array__Array__add(var_write_args, var12); /* Direct call array#Array#add on <var_write_args:Array[AExpr]>*/
1320 }
1321 CONTINUE_label: (void)0;
1322 {
1323 array__ArrayIterator__next(var8); /* Direct call array#ArrayIterator#next on <var8:ArrayIterator[nullable Object]>*/
1324 }
1325 }
1326 BREAK_label: (void)0;
1327 {
1328 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
1329 var15 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
1330 if (unlikely(var15 == NULL)) {
1331 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
1332 PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 49);
1333 show_backtrace(1);
1334 }
1335 var13 = var15;
1336 RET_LABEL14:(void)0;
1337 }
1338 }
1339 {
1340 var16 = parser_nodes__ASendExpr__n_expr(self);
1341 }
1342 {
1343 var17 = astbuilder__AExpr__make_var_read(var16);
1344 }
1345 {
1346 { /* Inline typing#ASendExpr#callsite (self) on <self:ASendReassignFormExpr> */
1347 var20 = self->attrs[COLOR_typing__ASendExpr___callsite].val; /* _callsite on <self:ASendReassignFormExpr> */
1348 var18 = var20;
1349 RET_LABEL19:(void)0;
1350 }
1351 }
1352 if (unlikely(var18 == NULL)) {
1353 PRINT_ERROR("Runtime error: %s", "Cast failed");
1354 PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 235);
1355 show_backtrace(1);
1356 }
1357 {
1358 var21 = astbuilder__ASTBuilder__make_call(var13, var17, var18, var_read_args);
1359 }
1360 var_nread = var21;
1361 {
1362 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
1363 var24 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
1364 if (unlikely(var24 == NULL)) {
1365 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
1366 PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 49);
1367 show_backtrace(1);
1368 }
1369 var22 = var24;
1370 RET_LABEL23:(void)0;
1371 }
1372 }
1373 {
1374 { /* Inline typing#AReassignFormExpr#reassign_callsite (self) on <self:ASendReassignFormExpr> */
1375 var27 = self->attrs[COLOR_typing__AReassignFormExpr___reassign_callsite].val; /* _reassign_callsite on <self:ASendReassignFormExpr> */
1376 var25 = var27;
1377 RET_LABEL26:(void)0;
1378 }
1379 }
1380 if (unlikely(var25 == NULL)) {
1381 PRINT_ERROR("Runtime error: %s", "Cast failed");
1382 PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 237);
1383 show_backtrace(1);
1384 }
1385 var28 = NEW_array__Array(&type_array__Arrayparser_nodes__AExpr);
1386 var29 = 1;
1387 {
1388 array__Array__with_capacity(var28, var29); /* Direct call array#Array#with_capacity on <var28:Array[AExpr]>*/
1389 }
1390 var_ = var28;
1391 {
1392 var30 = parser_nodes__AReassignFormExpr__n_value(self);
1393 }
1394 {
1395 array__AbstractArray__push(var_, var30); /* Direct call array#AbstractArray#push on <var_:Array[AExpr]>*/
1396 }
1397 {
1398 var31 = astbuilder__ASTBuilder__make_call(var22, var_nread, var25, var_);
1399 }
1400 var_nnewvalue = var31;
1401 {
1402 array__Array__add(var_write_args, var_nnewvalue); /* Direct call array#Array#add on <var_write_args:Array[AExpr]>*/
1403 }
1404 {
1405 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
1406 var34 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
1407 if (unlikely(var34 == NULL)) {
1408 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
1409 PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 49);
1410 show_backtrace(1);
1411 }
1412 var32 = var34;
1413 RET_LABEL33:(void)0;
1414 }
1415 }
1416 {
1417 var35 = parser_nodes__ASendExpr__n_expr(self);
1418 }
1419 {
1420 var36 = astbuilder__AExpr__make_var_read(var35);
1421 }
1422 {
1423 { /* Inline typing#ASendReassignFormExpr#write_callsite (self) on <self:ASendReassignFormExpr> */
1424 var39 = self->attrs[COLOR_typing__ASendReassignFormExpr___write_callsite].val; /* _write_callsite on <self:ASendReassignFormExpr> */
1425 var37 = var39;
1426 RET_LABEL38:(void)0;
1427 }
1428 }
1429 if (unlikely(var37 == NULL)) {
1430 PRINT_ERROR("Runtime error: %s", "Cast failed");
1431 PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 240);
1432 show_backtrace(1);
1433 }
1434 {
1435 var40 = astbuilder__ASTBuilder__make_call(var32, var36, var37, var_write_args);
1436 }
1437 var_nwrite = var40;
1438 {
1439 astbuilder__ABlockExpr__add(var_nblock, var_nwrite); /* Direct call astbuilder#ABlockExpr#add on <var_nblock:ABlockExpr>*/
1440 }
1441 {
1442 parser_nodes__Prod__replace_with(self, var_nblock); /* Direct call parser_nodes#Prod#replace_with on <self:ASendReassignFormExpr>*/
1443 }
1444 RET_LABEL:;
1445 }
1446 /* method transform#ASendReassignFormExpr#accept_transform_visitor for (self: Object, TransformVisitor) */
1447 void VIRTUAL_transform__ASendReassignFormExpr__accept_transform_visitor(val* self, val* p0) {
1448 transform__ASendReassignFormExpr__accept_transform_visitor(self, p0); /* Direct call transform#ASendReassignFormExpr#accept_transform_visitor on <self:Object(ASendReassignFormExpr)>*/
1449 RET_LABEL:;
1450 }
1451 /* method transform#AVarReassignExpr#accept_transform_visitor for (self: AVarReassignExpr, TransformVisitor) */
1452 void transform__AVarReassignExpr__accept_transform_visitor(val* self, val* p0) {
1453 val* var_v /* var v: TransformVisitor */;
1454 val* var /* : nullable Variable */;
1455 val* var2 /* : nullable Variable */;
1456 val* var_variable /* var variable: Variable */;
1457 val* var3 /* : ASTBuilder */;
1458 val* var5 /* : ASTBuilder */;
1459 val* var6 /* : nullable MType */;
1460 val* var8 /* : nullable MType */;
1461 val* var9 /* : AVarExpr */;
1462 val* var_nread /* var nread: AVarExpr */;
1463 val* var10 /* : ASTBuilder */;
1464 val* var12 /* : ASTBuilder */;
1465 val* var13 /* : nullable CallSite */;
1466 val* var15 /* : nullable CallSite */;
1467 val* var16 /* : Array[AExpr] */;
1468 long var17 /* : Int */;
1469 val* var_ /* var : Array[AExpr] */;
1470 val* var18 /* : AExpr */;
1471 val* var19 /* : ACallExpr */;
1472 val* var_nnewvalue /* var nnewvalue: ACallExpr */;
1473 val* var20 /* : ASTBuilder */;
1474 val* var22 /* : ASTBuilder */;
1475 val* var23 /* : AVarAssignExpr */;
1476 val* var_nwrite /* var nwrite: AVarAssignExpr */;
1477 var_v = p0;
1478 {
1479 { /* Inline scope#AVarFormExpr#variable (self) on <self:AVarReassignExpr> */
1480 var2 = self->attrs[COLOR_scope__AVarFormExpr___variable].val; /* _variable on <self:AVarReassignExpr> */
1481 var = var2;
1482 RET_LABEL1:(void)0;
1483 }
1484 }
1485 if (unlikely(var == NULL)) {
1486 PRINT_ERROR("Runtime error: %s", "Cast failed");
1487 PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 251);
1488 show_backtrace(1);
1489 }
1490 var_variable = var;
1491 {
1492 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
1493 var5 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
1494 if (unlikely(var5 == NULL)) {
1495 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
1496 PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 49);
1497 show_backtrace(1);
1498 }
1499 var3 = var5;
1500 RET_LABEL4:(void)0;
1501 }
1502 }
1503 {
1504 { /* Inline typing#AReassignFormExpr#read_type (self) on <self:AVarReassignExpr> */
1505 var8 = self->attrs[COLOR_typing__AReassignFormExpr___read_type].val; /* _read_type on <self:AVarReassignExpr> */
1506 var6 = var8;
1507 RET_LABEL7:(void)0;
1508 }
1509 }
1510 if (unlikely(var6 == NULL)) {
1511 PRINT_ERROR("Runtime error: %s", "Cast failed");
1512 PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 253);
1513 show_backtrace(1);
1514 }
1515 {
1516 var9 = astbuilder__ASTBuilder__make_var_read(var3, var_variable, var6);
1517 }
1518 var_nread = var9;
1519 {
1520 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
1521 var12 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
1522 if (unlikely(var12 == NULL)) {
1523 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
1524 PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 49);
1525 show_backtrace(1);
1526 }
1527 var10 = var12;
1528 RET_LABEL11:(void)0;
1529 }
1530 }
1531 {
1532 { /* Inline typing#AReassignFormExpr#reassign_callsite (self) on <self:AVarReassignExpr> */
1533 var15 = self->attrs[COLOR_typing__AReassignFormExpr___reassign_callsite].val; /* _reassign_callsite on <self:AVarReassignExpr> */
1534 var13 = var15;
1535 RET_LABEL14:(void)0;
1536 }
1537 }
1538 if (unlikely(var13 == NULL)) {
1539 PRINT_ERROR("Runtime error: %s", "Cast failed");
1540 PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 255);
1541 show_backtrace(1);
1542 }
1543 var16 = NEW_array__Array(&type_array__Arrayparser_nodes__AExpr);
1544 var17 = 1;
1545 {
1546 array__Array__with_capacity(var16, var17); /* Direct call array#Array#with_capacity on <var16:Array[AExpr]>*/
1547 }
1548 var_ = var16;
1549 {
1550 var18 = parser_nodes__AReassignFormExpr__n_value(self);
1551 }
1552 {
1553 array__AbstractArray__push(var_, var18); /* Direct call array#AbstractArray#push on <var_:Array[AExpr]>*/
1554 }
1555 {
1556 var19 = astbuilder__ASTBuilder__make_call(var10, var_nread, var13, var_);
1557 }
1558 var_nnewvalue = var19;
1559 {
1560 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
1561 var22 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
1562 if (unlikely(var22 == NULL)) {
1563 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
1564 PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 49);
1565 show_backtrace(1);
1566 }
1567 var20 = var22;
1568 RET_LABEL21:(void)0;
1569 }
1570 }
1571 {
1572 var23 = astbuilder__ASTBuilder__make_var_assign(var20, var_variable, var_nnewvalue);
1573 }
1574 var_nwrite = var23;
1575 {
1576 parser_nodes__Prod__replace_with(self, var_nwrite); /* Direct call parser_nodes#Prod#replace_with on <self:AVarReassignExpr>*/
1577 }
1578 RET_LABEL:;
1579 }
1580 /* method transform#AVarReassignExpr#accept_transform_visitor for (self: Object, TransformVisitor) */
1581 void VIRTUAL_transform__AVarReassignExpr__accept_transform_visitor(val* self, val* p0) {
1582 transform__AVarReassignExpr__accept_transform_visitor(self, p0); /* Direct call transform#AVarReassignExpr#accept_transform_visitor on <self:Object(AVarReassignExpr)>*/
1583 RET_LABEL:;
1584 }
1585 /* method transform#AAttrReassignExpr#accept_transform_visitor for (self: AAttrReassignExpr, TransformVisitor) */
1586 void transform__AAttrReassignExpr__accept_transform_visitor(val* self, val* p0) {
1587 val* var_v /* var v: TransformVisitor */;
1588 val* var /* : ASTBuilder */;
1589 val* var2 /* : ASTBuilder */;
1590 val* var3 /* : ABlockExpr */;
1591 val* var_nblock /* var nblock: ABlockExpr */;
1592 val* var4 /* : AExpr */;
1593 val* var5 /* : nullable MAttribute */;
1594 val* var7 /* : nullable MAttribute */;
1595 val* var_attribute /* var attribute: MAttribute */;
1596 val* var8 /* : ASTBuilder */;
1597 val* var10 /* : ASTBuilder */;
1598 val* var11 /* : AExpr */;
1599 val* var12 /* : AVarExpr */;
1600 val* var13 /* : AAttrExpr */;
1601 val* var_nread /* var nread: AAttrExpr */;
1602 val* var14 /* : ASTBuilder */;
1603 val* var16 /* : ASTBuilder */;
1604 val* var17 /* : nullable CallSite */;
1605 val* var19 /* : nullable CallSite */;
1606 val* var20 /* : Array[AExpr] */;
1607 long var21 /* : Int */;
1608 val* var_ /* var : Array[AExpr] */;
1609 val* var22 /* : AExpr */;
1610 val* var23 /* : ACallExpr */;
1611 val* var_nnewvalue /* var nnewvalue: ACallExpr */;
1612 val* var24 /* : ASTBuilder */;
1613 val* var26 /* : ASTBuilder */;
1614 val* var27 /* : AExpr */;
1615 val* var28 /* : AVarExpr */;
1616 val* var29 /* : AAttrAssignExpr */;
1617 val* var_nwrite /* var nwrite: AAttrAssignExpr */;
1618 var_v = p0;
1619 {
1620 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
1621 var2 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
1622 if (unlikely(var2 == NULL)) {
1623 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
1624 PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 49);
1625 show_backtrace(1);
1626 }
1627 var = var2;
1628 RET_LABEL1:(void)0;
1629 }
1630 }
1631 {
1632 var3 = astbuilder__ASTBuilder__make_block(var);
1633 }
1634 var_nblock = var3;
1635 {
1636 var4 = parser_nodes__AAttrFormExpr__n_expr(self);
1637 }
1638 {
1639 astbuilder__ABlockExpr__add(var_nblock, var4); /* Direct call astbuilder#ABlockExpr#add on <var_nblock:ABlockExpr>*/
1640 }
1641 {
1642 { /* Inline typing#AAttrFormExpr#mproperty (self) on <self:AAttrReassignExpr> */
1643 var7 = self->attrs[COLOR_typing__AAttrFormExpr___mproperty].val; /* _mproperty on <self:AAttrReassignExpr> */
1644 var5 = var7;
1645 RET_LABEL6:(void)0;
1646 }
1647 }
1648 if (unlikely(var5 == NULL)) {
1649 PRINT_ERROR("Runtime error: %s", "Cast failed");
1650 PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 268);
1651 show_backtrace(1);
1652 }
1653 var_attribute = var5;
1654 {
1655 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
1656 var10 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
1657 if (unlikely(var10 == NULL)) {
1658 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
1659 PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 49);
1660 show_backtrace(1);
1661 }
1662 var8 = var10;
1663 RET_LABEL9:(void)0;
1664 }
1665 }
1666 {
1667 var11 = parser_nodes__AAttrFormExpr__n_expr(self);
1668 }
1669 {
1670 var12 = astbuilder__AExpr__make_var_read(var11);
1671 }
1672 {
1673 var13 = astbuilder__ASTBuilder__make_attr_read(var8, var12, var_attribute);
1674 }
1675 var_nread = var13;
1676 {
1677 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
1678 var16 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
1679 if (unlikely(var16 == NULL)) {
1680 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
1681 PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 49);
1682 show_backtrace(1);
1683 }
1684 var14 = var16;
1685 RET_LABEL15:(void)0;
1686 }
1687 }
1688 {
1689 { /* Inline typing#AReassignFormExpr#reassign_callsite (self) on <self:AAttrReassignExpr> */
1690 var19 = self->attrs[COLOR_typing__AReassignFormExpr___reassign_callsite].val; /* _reassign_callsite on <self:AAttrReassignExpr> */
1691 var17 = var19;
1692 RET_LABEL18:(void)0;
1693 }
1694 }
1695 if (unlikely(var17 == NULL)) {
1696 PRINT_ERROR("Runtime error: %s", "Cast failed");
1697 PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 271);
1698 show_backtrace(1);
1699 }
1700 var20 = NEW_array__Array(&type_array__Arrayparser_nodes__AExpr);
1701 var21 = 1;
1702 {
1703 array__Array__with_capacity(var20, var21); /* Direct call array#Array#with_capacity on <var20:Array[AExpr]>*/
1704 }
1705 var_ = var20;
1706 {
1707 var22 = parser_nodes__AReassignFormExpr__n_value(self);
1708 }
1709 {
1710 array__AbstractArray__push(var_, var22); /* Direct call array#AbstractArray#push on <var_:Array[AExpr]>*/
1711 }
1712 {
1713 var23 = astbuilder__ASTBuilder__make_call(var14, var_nread, var17, var_);
1714 }
1715 var_nnewvalue = var23;
1716 {
1717 { /* Inline transform#TransformVisitor#builder (var_v) on <var_v:TransformVisitor> */
1718 var26 = var_v->attrs[COLOR_transform__TransformVisitor___builder].val; /* _builder on <var_v:TransformVisitor> */
1719 if (unlikely(var26 == NULL)) {
1720 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _builder");
1721 PRINT_ERROR(" (%s:%d)\n", "src/transform.nit", 49);
1722 show_backtrace(1);
1723 }
1724 var24 = var26;
1725 RET_LABEL25:(void)0;
1726 }
1727 }
1728 {
1729 var27 = parser_nodes__AAttrFormExpr__n_expr(self);
1730 }
1731 {
1732 var28 = astbuilder__AExpr__make_var_read(var27);
1733 }
1734 {
1735 var29 = astbuilder__ASTBuilder__make_attr_assign(var24, var28, var_attribute, var_nnewvalue);
1736 }
1737 var_nwrite = var29;
1738 {
1739 astbuilder__ABlockExpr__add(var_nblock, var_nwrite); /* Direct call astbuilder#ABlockExpr#add on <var_nblock:ABlockExpr>*/
1740 }
1741 {
1742 parser_nodes__Prod__replace_with(self, var_nblock); /* Direct call parser_nodes#Prod#replace_with on <self:AAttrReassignExpr>*/
1743 }
1744 RET_LABEL:;
1745 }
1746 /* method transform#AAttrReassignExpr#accept_transform_visitor for (self: Object, TransformVisitor) */
1747 void VIRTUAL_transform__AAttrReassignExpr__accept_transform_visitor(val* self, val* p0) {
1748 transform__AAttrReassignExpr__accept_transform_visitor(self, p0); /* Direct call transform#AAttrReassignExpr#accept_transform_visitor on <self:Object(AAttrReassignExpr)>*/
1749 RET_LABEL:;
1750 }