c_src: update for kill is
[nit.git] / c_src / transform.sep.1.c
1 #include "transform.sep.0.h"
2 /* method transform#ToolContext#transform_phase for (self: ToolContext): Phase */
3 val* transform__ToolContext__transform_phase(val* self) {
4 val* var /* : Phase */;
5 val* var1 /* : Phase */;
6 var1 = self->attrs[COLOR_transform__ToolContext___64dtransform_phase].val; /* @transform_phase on <self:ToolContext> */
7 if (var1 == NULL) {
8 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @transform_phase");
9 fprintf(stderr, " (%s:%d)\n", "src/transform.nit", 24);
10 exit(1);
11 }
12 var = var1;
13 RET_LABEL:;
14 return var;
15 }
16 /* method transform#ToolContext#transform_phase for (self: Object): Phase */
17 val* VIRTUAL_transform__ToolContext__transform_phase(val* self) {
18 val* var /* : Phase */;
19 val* var1 /* : Phase */;
20 var1 = transform__ToolContext__transform_phase(self);
21 var = var1;
22 RET_LABEL:;
23 return var;
24 }
25 /* method transform#ToolContext#transform_phase= for (self: ToolContext, Phase) */
26 void transform__ToolContext__transform_phase_61d(val* self, val* p0) {
27 self->attrs[COLOR_transform__ToolContext___64dtransform_phase].val = p0; /* @transform_phase on <self:ToolContext> */
28 RET_LABEL:;
29 }
30 /* method transform#ToolContext#transform_phase= for (self: Object, Phase) */
31 void VIRTUAL_transform__ToolContext__transform_phase_61d(val* self, val* p0) {
32 transform__ToolContext__transform_phase_61d(self, p0);
33 RET_LABEL:;
34 }
35 /* method transform#TransformPhase#process_npropdef for (self: TransformPhase, APropdef) */
36 void transform__TransformPhase__process_npropdef(val* self, val* p0) {
37 val* var_npropdef /* var npropdef: APropdef */;
38 val* var /* : TransformVisitor */;
39 val* var_v /* var v: TransformVisitor */;
40 val* var1 /* : ASTValidationVisitor */;
41 val* var_val /* var val: nullable Object */;
42 var_npropdef = p0;
43 var = NEW_transform__TransformVisitor(&type_transform__TransformVisitor);
44 ((void (*)(val*, val*, val*))(var->class->vft[COLOR_transform__TransformVisitor__init]))(var, self, var_npropdef) /* init on <var:TransformVisitor>*/;
45 CHECK_NEW_transform__TransformVisitor(var);
46 var_v = var;
47 ((void (*)(val*, val*))(var_v->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_v, var_npropdef) /* enter_visit on <var_v:TransformVisitor>*/;
48 var1 = NEW_astvalidation__ASTValidationVisitor(&type_astvalidation__ASTValidationVisitor);
49 ((void (*)(val*))(var1->class->vft[COLOR_astvalidation__ASTValidationVisitor__init]))(var1) /* init on <var1:ASTValidationVisitor>*/;
50 CHECK_NEW_astvalidation__ASTValidationVisitor(var1);
51 var_val = var1;
52 ((void (*)(val*, val*))(var_val->class->vft[COLOR_parser_nodes__Visitor__enter_visit]))(var_val, var_npropdef) /* enter_visit on <var_val:nullable Object(ASTValidationVisitor)>*/;
53 RET_LABEL:;
54 }
55 /* method transform#TransformPhase#process_npropdef for (self: Object, APropdef) */
56 void VIRTUAL_transform__TransformPhase__process_npropdef(val* self, val* p0) {
57 transform__TransformPhase__process_npropdef(self, p0);
58 RET_LABEL:;
59 }
60 /* method transform#TransformVisitor#phase for (self: TransformVisitor): TransformPhase */
61 val* transform__TransformVisitor__phase(val* self) {
62 val* var /* : TransformPhase */;
63 val* var1 /* : TransformPhase */;
64 var1 = self->attrs[COLOR_transform__TransformVisitor___64dphase].val; /* @phase on <self:TransformVisitor> */
65 if (var1 == NULL) {
66 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @phase");
67 fprintf(stderr, " (%s:%d)\n", "src/transform.nit", 45);
68 exit(1);
69 }
70 var = var1;
71 RET_LABEL:;
72 return var;
73 }
74 /* method transform#TransformVisitor#phase for (self: Object): TransformPhase */
75 val* VIRTUAL_transform__TransformVisitor__phase(val* self) {
76 val* var /* : TransformPhase */;
77 val* var1 /* : TransformPhase */;
78 var1 = transform__TransformVisitor__phase(self);
79 var = var1;
80 RET_LABEL:;
81 return var;
82 }
83 /* method transform#TransformVisitor#phase= for (self: TransformVisitor, TransformPhase) */
84 void transform__TransformVisitor__phase_61d(val* self, val* p0) {
85 self->attrs[COLOR_transform__TransformVisitor___64dphase].val = p0; /* @phase on <self:TransformVisitor> */
86 RET_LABEL:;
87 }
88 /* method transform#TransformVisitor#phase= for (self: Object, TransformPhase) */
89 void VIRTUAL_transform__TransformVisitor__phase_61d(val* self, val* p0) {
90 transform__TransformVisitor__phase_61d(self, p0);
91 RET_LABEL:;
92 }
93 /* method transform#TransformVisitor#mmodule for (self: TransformVisitor): MModule */
94 val* transform__TransformVisitor__mmodule(val* self) {
95 val* var /* : MModule */;
96 val* var1 /* : MModule */;
97 var1 = self->attrs[COLOR_transform__TransformVisitor___64dmmodule].val; /* @mmodule on <self:TransformVisitor> */
98 if (var1 == NULL) {
99 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @mmodule");
100 fprintf(stderr, " (%s:%d)\n", "src/transform.nit", 46);
101 exit(1);
102 }
103 var = var1;
104 RET_LABEL:;
105 return var;
106 }
107 /* method transform#TransformVisitor#mmodule for (self: Object): MModule */
108 val* VIRTUAL_transform__TransformVisitor__mmodule(val* self) {
109 val* var /* : MModule */;
110 val* var1 /* : MModule */;
111 var1 = transform__TransformVisitor__mmodule(self);
112 var = var1;
113 RET_LABEL:;
114 return var;
115 }
116 /* method transform#TransformVisitor#mmodule= for (self: TransformVisitor, MModule) */
117 void transform__TransformVisitor__mmodule_61d(val* self, val* p0) {
118 self->attrs[COLOR_transform__TransformVisitor___64dmmodule].val = p0; /* @mmodule on <self:TransformVisitor> */
119 RET_LABEL:;
120 }
121 /* method transform#TransformVisitor#mmodule= for (self: Object, MModule) */
122 void VIRTUAL_transform__TransformVisitor__mmodule_61d(val* self, val* p0) {
123 transform__TransformVisitor__mmodule_61d(self, p0);
124 RET_LABEL:;
125 }
126 /* method transform#TransformVisitor#mclassdef for (self: TransformVisitor): MClassDef */
127 val* transform__TransformVisitor__mclassdef(val* self) {
128 val* var /* : MClassDef */;
129 val* var1 /* : MClassDef */;
130 var1 = self->attrs[COLOR_transform__TransformVisitor___64dmclassdef].val; /* @mclassdef on <self:TransformVisitor> */
131 if (var1 == NULL) {
132 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @mclassdef");
133 fprintf(stderr, " (%s:%d)\n", "src/transform.nit", 47);
134 exit(1);
135 }
136 var = var1;
137 RET_LABEL:;
138 return var;
139 }
140 /* method transform#TransformVisitor#mclassdef for (self: Object): MClassDef */
141 val* VIRTUAL_transform__TransformVisitor__mclassdef(val* self) {
142 val* var /* : MClassDef */;
143 val* var1 /* : MClassDef */;
144 var1 = transform__TransformVisitor__mclassdef(self);
145 var = var1;
146 RET_LABEL:;
147 return var;
148 }
149 /* method transform#TransformVisitor#mclassdef= for (self: TransformVisitor, MClassDef) */
150 void transform__TransformVisitor__mclassdef_61d(val* self, val* p0) {
151 self->attrs[COLOR_transform__TransformVisitor___64dmclassdef].val = p0; /* @mclassdef on <self:TransformVisitor> */
152 RET_LABEL:;
153 }
154 /* method transform#TransformVisitor#mclassdef= for (self: Object, MClassDef) */
155 void VIRTUAL_transform__TransformVisitor__mclassdef_61d(val* self, val* p0) {
156 transform__TransformVisitor__mclassdef_61d(self, p0);
157 RET_LABEL:;
158 }
159 /* method transform#TransformVisitor#mpropdef for (self: TransformVisitor): MPropDef */
160 val* transform__TransformVisitor__mpropdef(val* self) {
161 val* var /* : MPropDef */;
162 val* var1 /* : MPropDef */;
163 var1 = self->attrs[COLOR_transform__TransformVisitor___64dmpropdef].val; /* @mpropdef on <self:TransformVisitor> */
164 if (var1 == NULL) {
165 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @mpropdef");
166 fprintf(stderr, " (%s:%d)\n", "src/transform.nit", 48);
167 exit(1);
168 }
169 var = var1;
170 RET_LABEL:;
171 return var;
172 }
173 /* method transform#TransformVisitor#mpropdef for (self: Object): MPropDef */
174 val* VIRTUAL_transform__TransformVisitor__mpropdef(val* self) {
175 val* var /* : MPropDef */;
176 val* var1 /* : MPropDef */;
177 var1 = transform__TransformVisitor__mpropdef(self);
178 var = var1;
179 RET_LABEL:;
180 return var;
181 }
182 /* method transform#TransformVisitor#mpropdef= for (self: TransformVisitor, MPropDef) */
183 void transform__TransformVisitor__mpropdef_61d(val* self, val* p0) {
184 self->attrs[COLOR_transform__TransformVisitor___64dmpropdef].val = p0; /* @mpropdef on <self:TransformVisitor> */
185 RET_LABEL:;
186 }
187 /* method transform#TransformVisitor#mpropdef= for (self: Object, MPropDef) */
188 void VIRTUAL_transform__TransformVisitor__mpropdef_61d(val* self, val* p0) {
189 transform__TransformVisitor__mpropdef_61d(self, p0);
190 RET_LABEL:;
191 }
192 /* method transform#TransformVisitor#builder for (self: TransformVisitor): ASTBuilder */
193 val* transform__TransformVisitor__builder(val* self) {
194 val* var /* : ASTBuilder */;
195 val* var1 /* : ASTBuilder */;
196 var1 = self->attrs[COLOR_transform__TransformVisitor___64dbuilder].val; /* @builder on <self:TransformVisitor> */
197 if (var1 == NULL) {
198 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @builder");
199 fprintf(stderr, " (%s:%d)\n", "src/transform.nit", 49);
200 exit(1);
201 }
202 var = var1;
203 RET_LABEL:;
204 return var;
205 }
206 /* method transform#TransformVisitor#builder for (self: Object): ASTBuilder */
207 val* VIRTUAL_transform__TransformVisitor__builder(val* self) {
208 val* var /* : ASTBuilder */;
209 val* var1 /* : ASTBuilder */;
210 var1 = transform__TransformVisitor__builder(self);
211 var = var1;
212 RET_LABEL:;
213 return var;
214 }
215 /* method transform#TransformVisitor#builder= for (self: TransformVisitor, ASTBuilder) */
216 void transform__TransformVisitor__builder_61d(val* self, val* p0) {
217 self->attrs[COLOR_transform__TransformVisitor___64dbuilder].val = p0; /* @builder on <self:TransformVisitor> */
218 RET_LABEL:;
219 }
220 /* method transform#TransformVisitor#builder= for (self: Object, ASTBuilder) */
221 void VIRTUAL_transform__TransformVisitor__builder_61d(val* self, val* p0) {
222 transform__TransformVisitor__builder_61d(self, p0);
223 RET_LABEL:;
224 }
225 /* method transform#TransformVisitor#init for (self: TransformVisitor, TransformPhase, APropdef) */
226 void transform__TransformVisitor__init(val* self, val* p0, val* p1) {
227 val* var_phase /* var phase: TransformPhase */;
228 val* var_npropdef /* var npropdef: APropdef */;
229 val* var /* : nullable MPropDef */;
230 val* var1 /* : MPropDef */;
231 val* var2 /* : MClassDef */;
232 val* var3 /* : MClassDef */;
233 val* var4 /* : MModule */;
234 val* var5 /* : ASTBuilder */;
235 val* var6 /* : MModule */;
236 val* var7 /* : MPropDef */;
237 val* var8 /* : MClassDef */;
238 val* var9 /* : MClassType */;
239 var_phase = p0;
240 var_npropdef = p1;
241 ((void (*)(val*))(self->class->vft[COLOR_parser_nodes__Visitor__init]))(self) /* init on <self:TransformVisitor>*/;
242 ((void (*)(val*, val*))(self->class->vft[COLOR_transform__TransformVisitor__phase_61d]))(self, var_phase) /* phase= on <self:TransformVisitor>*/;
243 var = ((val* (*)(val*))(var_npropdef->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(var_npropdef) /* mpropdef on <var_npropdef:APropdef>*/;
244 if (var == NULL) {
245 fprintf(stderr, "Runtime error: %s", "Cast failed");
246 fprintf(stderr, " (%s:%d)\n", "src/transform.nit", 54);
247 exit(1);
248 }
249 ((void (*)(val*, val*))(self->class->vft[COLOR_transform__TransformVisitor__mpropdef_61d]))(self, var) /* mpropdef= on <self:TransformVisitor>*/;
250 var1 = ((val* (*)(val*))(self->class->vft[COLOR_transform__TransformVisitor__mpropdef]))(self) /* mpropdef on <self:TransformVisitor>*/;
251 var2 = ((val* (*)(val*))(var1->class->vft[COLOR_model__MPropDef__mclassdef]))(var1) /* mclassdef on <var1:MPropDef>*/;
252 ((void (*)(val*, val*))(self->class->vft[COLOR_transform__TransformVisitor__mclassdef_61d]))(self, var2) /* mclassdef= on <self:TransformVisitor>*/;
253 var3 = ((val* (*)(val*))(self->class->vft[COLOR_transform__TransformVisitor__mclassdef]))(self) /* mclassdef on <self:TransformVisitor>*/;
254 var4 = ((val* (*)(val*))(var3->class->vft[COLOR_model__MClassDef__mmodule]))(var3) /* mmodule on <var3:MClassDef>*/;
255 ((void (*)(val*, val*))(self->class->vft[COLOR_transform__TransformVisitor__mmodule_61d]))(self, var4) /* mmodule= on <self:TransformVisitor>*/;
256 var5 = NEW_astbuilder__ASTBuilder(&type_astbuilder__ASTBuilder);
257 var6 = ((val* (*)(val*))(self->class->vft[COLOR_transform__TransformVisitor__mmodule]))(self) /* mmodule on <self:TransformVisitor>*/;
258 var7 = ((val* (*)(val*))(self->class->vft[COLOR_transform__TransformVisitor__mpropdef]))(self) /* mpropdef on <self:TransformVisitor>*/;
259 var8 = ((val* (*)(val*))(var7->class->vft[COLOR_model__MPropDef__mclassdef]))(var7) /* mclassdef on <var7:MPropDef>*/;
260 var9 = ((val* (*)(val*))(var8->class->vft[COLOR_model__MClassDef__bound_mtype]))(var8) /* bound_mtype on <var8:MClassDef>*/;
261 ((void (*)(val*, val*, val*))(var5->class->vft[COLOR_astbuilder__ASTBuilder__init]))(var5, var6, var9) /* init on <var5:ASTBuilder>*/;
262 CHECK_NEW_astbuilder__ASTBuilder(var5);
263 ((void (*)(val*, val*))(self->class->vft[COLOR_transform__TransformVisitor__builder_61d]))(self, var5) /* builder= on <self:TransformVisitor>*/;
264 RET_LABEL:;
265 }
266 /* method transform#TransformVisitor#init for (self: Object, TransformPhase, APropdef) */
267 void VIRTUAL_transform__TransformVisitor__init(val* self, val* p0, val* p1) {
268 transform__TransformVisitor__init(self, p0, p1);
269 RET_LABEL:;
270 }
271 /* method transform#TransformVisitor#visit for (self: TransformVisitor, ANode) */
272 void transform__TransformVisitor__visit(val* self, val* p0) {
273 val* var_node /* var node: ANode */;
274 short int var /* : Bool */;
275 int cltype;
276 int idtype;
277 var_node = p0;
278 /* <var_node:ANode> isa AAnnotations */
279 cltype = type_parser_nodes__AAnnotations.color;
280 idtype = type_parser_nodes__AAnnotations.id;
281 if(cltype >= var_node->type->table_size) {
282 var = 0;
283 } else {
284 var = var_node->type->type_table[cltype] == idtype;
285 }
286 if (var){
287 goto RET_LABEL;
288 } else {
289 }
290 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__visit_all]))(var_node, self) /* visit_all on <var_node:ANode>*/;
291 ((void (*)(val*, val*))(var_node->class->vft[COLOR_transform__ANode__accept_transform_visitor]))(var_node, self) /* accept_transform_visitor on <var_node:ANode>*/;
292 RET_LABEL:;
293 }
294 /* method transform#TransformVisitor#visit for (self: Object, ANode) */
295 void VIRTUAL_transform__TransformVisitor__visit(val* self, val* p0) {
296 transform__TransformVisitor__visit(self, p0);
297 RET_LABEL:;
298 }
299 /* method transform#TransformVisitor#get_class for (self: TransformVisitor, AExpr, String): MClass */
300 val* transform__TransformVisitor__get_class(val* self, val* p0, val* p1) {
301 val* var /* : MClass */;
302 val* var_location /* var location: AExpr */;
303 val* var_name /* var name: String */;
304 val* var1 /* : MModule */;
305 val* var2 /* : MClass */;
306 var_location = p0;
307 var_name = p1;
308 var1 = ((val* (*)(val*))(self->class->vft[COLOR_transform__TransformVisitor__mmodule]))(self) /* mmodule on <self:TransformVisitor>*/;
309 var2 = ((val* (*)(val*, val*))(var1->class->vft[COLOR_model__MModule__get_primitive_class]))(var1, var_name) /* get_primitive_class on <var1:MModule>*/;
310 var = var2;
311 goto RET_LABEL;
312 RET_LABEL:;
313 return var;
314 }
315 /* method transform#TransformVisitor#get_class for (self: Object, AExpr, String): MClass */
316 val* VIRTUAL_transform__TransformVisitor__get_class(val* self, val* p0, val* p1) {
317 val* var /* : MClass */;
318 val* var1 /* : MClass */;
319 var1 = transform__TransformVisitor__get_class(self, p0, p1);
320 var = var1;
321 RET_LABEL:;
322 return var;
323 }
324 /* method transform#TransformVisitor#get_method for (self: TransformVisitor, AExpr, String, MClass): MMethod */
325 val* transform__TransformVisitor__get_method(val* self, val* p0, val* p1, val* p2) {
326 val* var /* : MMethod */;
327 val* var_location /* var location: AExpr */;
328 val* var_name /* var name: String */;
329 val* var_recv /* var recv: MClass */;
330 val* var1 /* : TransformPhase */;
331 val* var2 /* : ToolContext */;
332 val* var3 /* : ModelBuilder */;
333 val* var4 /* : MModule */;
334 val* var5 /* : MMethod */;
335 var_location = p0;
336 var_name = p1;
337 var_recv = p2;
338 var1 = ((val* (*)(val*))(self->class->vft[COLOR_transform__TransformVisitor__phase]))(self) /* phase on <self:TransformVisitor>*/;
339 var2 = ((val* (*)(val*))(var1->class->vft[COLOR_phase__Phase__toolcontext]))(var1) /* toolcontext on <var1:TransformPhase>*/;
340 var3 = ((val* (*)(val*))(var2->class->vft[COLOR_modelbuilder__ToolContext__modelbuilder]))(var2) /* modelbuilder on <var2:ToolContext>*/;
341 var4 = ((val* (*)(val*))(self->class->vft[COLOR_transform__TransformVisitor__mmodule]))(self) /* mmodule on <self:TransformVisitor>*/;
342 var5 = ((val* (*)(val*, val*, val*, val*, val*))(var3->class->vft[COLOR_modelbuilder__ModelBuilder__force_get_primitive_method]))(var3, var_location, var_name, var_recv, var4) /* force_get_primitive_method on <var3:ModelBuilder>*/;
343 var = var5;
344 goto RET_LABEL;
345 RET_LABEL:;
346 return var;
347 }
348 /* method transform#TransformVisitor#get_method for (self: Object, AExpr, String, MClass): MMethod */
349 val* VIRTUAL_transform__TransformVisitor__get_method(val* self, val* p0, val* p1, val* p2) {
350 val* var /* : MMethod */;
351 val* var1 /* : MMethod */;
352 var1 = transform__TransformVisitor__get_method(self, p0, p1, p2);
353 var = var1;
354 RET_LABEL:;
355 return var;
356 }
357 /* method transform#ANode#accept_transform_visitor for (self: ANode, TransformVisitor) */
358 void transform__ANode__accept_transform_visitor(val* self, val* p0) {
359 val* var_v /* var v: TransformVisitor */;
360 var_v = p0;
361 RET_LABEL:;
362 }
363 /* method transform#ANode#accept_transform_visitor for (self: Object, TransformVisitor) */
364 void VIRTUAL_transform__ANode__accept_transform_visitor(val* self, val* p0) {
365 transform__ANode__accept_transform_visitor(self, p0);
366 RET_LABEL:;
367 }
368 /* method transform#AVardeclExpr#accept_transform_visitor for (self: AVardeclExpr, TransformVisitor) */
369 void transform__AVardeclExpr__accept_transform_visitor(val* self, val* p0) {
370 val* var_v /* var v: TransformVisitor */;
371 val* var /* : nullable AExpr */;
372 val* var_nexpr /* var nexpr: nullable AExpr */;
373 val* var1 /* : null */;
374 short int var2 /* : Bool */;
375 val* var3 /* : ASTBuilder */;
376 val* var4 /* : nullable Variable */;
377 val* var5 /* : AVarAssignExpr */;
378 val* var_nvar /* var nvar: AVarAssignExpr */;
379 var_v = p0;
380 var = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AVardeclExpr__n_expr]))(self) /* n_expr on <self:AVardeclExpr>*/;
381 var_nexpr = var;
382 var1 = NULL;
383 if (var_nexpr == NULL) {
384 var2 = 1; /* is null */
385 } else {
386 var2 = 0; /* arg is null but recv is not */
387 }
388 if (var2){
389 ((void (*)(val*))(self->class->vft[COLOR_parser_nodes__ANode__detach]))(self) /* detach on <self:AVardeclExpr>*/;
390 } else {
391 var3 = ((val* (*)(val*))(var_v->class->vft[COLOR_transform__TransformVisitor__builder]))(var_v) /* builder on <var_v:TransformVisitor>*/;
392 var4 = ((val* (*)(val*))(self->class->vft[COLOR_scope__AVardeclExpr__variable]))(self) /* variable on <self:AVardeclExpr>*/;
393 if (var4 == NULL) {
394 fprintf(stderr, "Runtime error: %s", "Cast failed");
395 fprintf(stderr, " (%s:%d)\n", "src/transform.nit", 99);
396 exit(1);
397 }
398 var5 = ((val* (*)(val*, val*, val*))(var3->class->vft[COLOR_astbuilder__ASTBuilder__make_var_assign]))(var3, var4, var_nexpr) /* make_var_assign on <var3:ASTBuilder>*/;
399 var_nvar = var5;
400 ((void (*)(val*, val*))(self->class->vft[COLOR_parser_nodes__ANode__replace_with]))(self, var_nvar) /* replace_with on <self:AVardeclExpr>*/;
401 }
402 RET_LABEL:;
403 }
404 /* method transform#AVardeclExpr#accept_transform_visitor for (self: Object, TransformVisitor) */
405 void VIRTUAL_transform__AVardeclExpr__accept_transform_visitor(val* self, val* p0) {
406 transform__AVardeclExpr__accept_transform_visitor(self, p0);
407 RET_LABEL:;
408 }
409 /* method transform#AIfexprExpr#accept_transform_visitor for (self: AIfexprExpr, TransformVisitor) */
410 void transform__AIfexprExpr__accept_transform_visitor(val* self, val* p0) {
411 val* var_v /* var v: TransformVisitor */;
412 val* var /* : ASTBuilder */;
413 val* var1 /* : AExpr */;
414 val* var2 /* : nullable MType */;
415 val* var3 /* : AIfExpr */;
416 val* var_nif /* var nif: AIfExpr */;
417 val* var4 /* : nullable AExpr */;
418 val* var5 /* : AExpr */;
419 val* var6 /* : nullable AExpr */;
420 val* var7 /* : AExpr */;
421 var_v = p0;
422 var = ((val* (*)(val*))(var_v->class->vft[COLOR_transform__TransformVisitor__builder]))(var_v) /* builder on <var_v:TransformVisitor>*/;
423 var1 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AIfexprExpr__n_expr]))(self) /* n_expr on <self:AIfexprExpr>*/;
424 var2 = ((val* (*)(val*))(self->class->vft[COLOR_typing__AExpr__mtype]))(self) /* mtype on <self:AIfexprExpr>*/;
425 var3 = ((val* (*)(val*, val*, val*))(var->class->vft[COLOR_astbuilder__ASTBuilder__make_if]))(var, var1, var2) /* make_if on <var:ASTBuilder>*/;
426 var_nif = var3;
427 var4 = ((val* (*)(val*))(var_nif->class->vft[COLOR_parser_nodes__AIfExpr__n_then]))(var_nif) /* n_then on <var_nif:AIfExpr>*/;
428 var5 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AIfexprExpr__n_then]))(self) /* n_then on <self:AIfexprExpr>*/;
429 if (var4 == NULL) {
430 fprintf(stderr, "Runtime error: %s", "Reciever is null");
431 fprintf(stderr, " (%s:%d)\n", "src/transform.nit", 112);
432 exit(1);
433 } else {
434 ((void (*)(val*, val*))(var4->class->vft[COLOR_astbuilder__AExpr__add]))(var4, var5) /* add on <var4:nullable AExpr>*/;
435 }
436 var6 = ((val* (*)(val*))(var_nif->class->vft[COLOR_parser_nodes__AIfExpr__n_else]))(var_nif) /* n_else on <var_nif:AIfExpr>*/;
437 var7 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AIfexprExpr__n_else]))(self) /* n_else on <self:AIfexprExpr>*/;
438 if (var6 == NULL) {
439 fprintf(stderr, "Runtime error: %s", "Reciever is null");
440 fprintf(stderr, " (%s:%d)\n", "src/transform.nit", 113);
441 exit(1);
442 } else {
443 ((void (*)(val*, val*))(var6->class->vft[COLOR_astbuilder__AExpr__add]))(var6, var7) /* add on <var6:nullable AExpr>*/;
444 }
445 ((void (*)(val*, val*))(self->class->vft[COLOR_parser_nodes__ANode__replace_with]))(self, var_nif) /* replace_with on <self:AIfexprExpr>*/;
446 RET_LABEL:;
447 }
448 /* method transform#AIfexprExpr#accept_transform_visitor for (self: Object, TransformVisitor) */
449 void VIRTUAL_transform__AIfexprExpr__accept_transform_visitor(val* self, val* p0) {
450 transform__AIfexprExpr__accept_transform_visitor(self, p0);
451 RET_LABEL:;
452 }
453 /* method transform#AOrExpr#accept_transform_visitor for (self: AOrExpr, TransformVisitor) */
454 void transform__AOrExpr__accept_transform_visitor(val* self, val* p0) {
455 val* var_v /* var v: TransformVisitor */;
456 val* var /* : ASTBuilder */;
457 val* var1 /* : AExpr */;
458 val* var2 /* : nullable MType */;
459 val* var3 /* : AIfExpr */;
460 val* var_nif /* var nif: AIfExpr */;
461 val* var4 /* : nullable AExpr */;
462 val* var5 /* : AExpr */;
463 val* var6 /* : AVarExpr */;
464 val* var7 /* : nullable AExpr */;
465 val* var8 /* : AExpr */;
466 var_v = p0;
467 var = ((val* (*)(val*))(var_v->class->vft[COLOR_transform__TransformVisitor__builder]))(var_v) /* builder on <var_v:TransformVisitor>*/;
468 var1 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AOrExpr__n_expr]))(self) /* n_expr on <self:AOrExpr>*/;
469 var2 = ((val* (*)(val*))(self->class->vft[COLOR_typing__AExpr__mtype]))(self) /* mtype on <self:AOrExpr>*/;
470 var3 = ((val* (*)(val*, val*, val*))(var->class->vft[COLOR_astbuilder__ASTBuilder__make_if]))(var, var1, var2) /* make_if on <var:ASTBuilder>*/;
471 var_nif = var3;
472 var4 = ((val* (*)(val*))(var_nif->class->vft[COLOR_parser_nodes__AIfExpr__n_then]))(var_nif) /* n_then on <var_nif:AIfExpr>*/;
473 var5 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AOrExpr__n_expr]))(self) /* n_expr on <self:AOrExpr>*/;
474 var6 = ((val* (*)(val*))(var5->class->vft[COLOR_astbuilder__AExpr__make_var_read]))(var5) /* make_var_read on <var5:AExpr>*/;
475 if (var4 == NULL) {
476 fprintf(stderr, "Runtime error: %s", "Reciever is null");
477 fprintf(stderr, " (%s:%d)\n", "src/transform.nit", 124);
478 exit(1);
479 } else {
480 ((void (*)(val*, val*))(var4->class->vft[COLOR_astbuilder__AExpr__add]))(var4, var6) /* add on <var4:nullable AExpr>*/;
481 }
482 var7 = ((val* (*)(val*))(var_nif->class->vft[COLOR_parser_nodes__AIfExpr__n_else]))(var_nif) /* n_else on <var_nif:AIfExpr>*/;
483 var8 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AOrExpr__n_expr2]))(self) /* n_expr2 on <self:AOrExpr>*/;
484 if (var7 == NULL) {
485 fprintf(stderr, "Runtime error: %s", "Reciever is null");
486 fprintf(stderr, " (%s:%d)\n", "src/transform.nit", 125);
487 exit(1);
488 } else {
489 ((void (*)(val*, val*))(var7->class->vft[COLOR_astbuilder__AExpr__add]))(var7, var8) /* add on <var7:nullable AExpr>*/;
490 }
491 ((void (*)(val*, val*))(self->class->vft[COLOR_parser_nodes__ANode__replace_with]))(self, var_nif) /* replace_with on <self:AOrExpr>*/;
492 RET_LABEL:;
493 }
494 /* method transform#AOrExpr#accept_transform_visitor for (self: Object, TransformVisitor) */
495 void VIRTUAL_transform__AOrExpr__accept_transform_visitor(val* self, val* p0) {
496 transform__AOrExpr__accept_transform_visitor(self, p0);
497 RET_LABEL:;
498 }
499 /* method transform#AImpliesExpr#accept_transform_visitor for (self: AImpliesExpr, TransformVisitor) */
500 void transform__AImpliesExpr__accept_transform_visitor(val* self, val* p0) {
501 val* var_v /* var v: TransformVisitor */;
502 var_v = p0;
503 RET_LABEL:;
504 }
505 /* method transform#AImpliesExpr#accept_transform_visitor for (self: Object, TransformVisitor) */
506 void VIRTUAL_transform__AImpliesExpr__accept_transform_visitor(val* self, val* p0) {
507 transform__AImpliesExpr__accept_transform_visitor(self, p0);
508 RET_LABEL:;
509 }
510 /* method transform#AAndExpr#accept_transform_visitor for (self: AAndExpr, TransformVisitor) */
511 void transform__AAndExpr__accept_transform_visitor(val* self, val* p0) {
512 val* var_v /* var v: TransformVisitor */;
513 val* var /* : ASTBuilder */;
514 val* var1 /* : AExpr */;
515 val* var2 /* : nullable MType */;
516 val* var3 /* : AIfExpr */;
517 val* var_nif /* var nif: AIfExpr */;
518 val* var4 /* : nullable AExpr */;
519 val* var5 /* : AExpr */;
520 val* var6 /* : nullable AExpr */;
521 val* var7 /* : AExpr */;
522 val* var8 /* : AVarExpr */;
523 var_v = p0;
524 var = ((val* (*)(val*))(var_v->class->vft[COLOR_transform__TransformVisitor__builder]))(var_v) /* builder on <var_v:TransformVisitor>*/;
525 var1 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAndExpr__n_expr]))(self) /* n_expr on <self:AAndExpr>*/;
526 var2 = ((val* (*)(val*))(self->class->vft[COLOR_typing__AExpr__mtype]))(self) /* mtype on <self:AAndExpr>*/;
527 var3 = ((val* (*)(val*, val*, val*))(var->class->vft[COLOR_astbuilder__ASTBuilder__make_if]))(var, var1, var2) /* make_if on <var:ASTBuilder>*/;
528 var_nif = var3;
529 var4 = ((val* (*)(val*))(var_nif->class->vft[COLOR_parser_nodes__AIfExpr__n_then]))(var_nif) /* n_then on <var_nif:AIfExpr>*/;
530 var5 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAndExpr__n_expr2]))(self) /* n_expr2 on <self:AAndExpr>*/;
531 if (var4 == NULL) {
532 fprintf(stderr, "Runtime error: %s", "Reciever is null");
533 fprintf(stderr, " (%s:%d)\n", "src/transform.nit", 143);
534 exit(1);
535 } else {
536 ((void (*)(val*, val*))(var4->class->vft[COLOR_astbuilder__AExpr__add]))(var4, var5) /* add on <var4:nullable AExpr>*/;
537 }
538 var6 = ((val* (*)(val*))(var_nif->class->vft[COLOR_parser_nodes__AIfExpr__n_else]))(var_nif) /* n_else on <var_nif:AIfExpr>*/;
539 var7 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAndExpr__n_expr]))(self) /* n_expr on <self:AAndExpr>*/;
540 var8 = ((val* (*)(val*))(var7->class->vft[COLOR_astbuilder__AExpr__make_var_read]))(var7) /* make_var_read on <var7:AExpr>*/;
541 if (var6 == NULL) {
542 fprintf(stderr, "Runtime error: %s", "Reciever is null");
543 fprintf(stderr, " (%s:%d)\n", "src/transform.nit", 144);
544 exit(1);
545 } else {
546 ((void (*)(val*, val*))(var6->class->vft[COLOR_astbuilder__AExpr__add]))(var6, var8) /* add on <var6:nullable AExpr>*/;
547 }
548 ((void (*)(val*, val*))(self->class->vft[COLOR_parser_nodes__ANode__replace_with]))(self, var_nif) /* replace_with on <self:AAndExpr>*/;
549 RET_LABEL:;
550 }
551 /* method transform#AAndExpr#accept_transform_visitor for (self: Object, TransformVisitor) */
552 void VIRTUAL_transform__AAndExpr__accept_transform_visitor(val* self, val* p0) {
553 transform__AAndExpr__accept_transform_visitor(self, p0);
554 RET_LABEL:;
555 }
556 /* method transform#AWhileExpr#accept_transform_visitor for (self: AWhileExpr, TransformVisitor) */
557 void transform__AWhileExpr__accept_transform_visitor(val* self, val* p0) {
558 val* var_v /* var v: TransformVisitor */;
559 var_v = p0;
560 RET_LABEL:;
561 }
562 /* method transform#AWhileExpr#accept_transform_visitor for (self: Object, TransformVisitor) */
563 void VIRTUAL_transform__AWhileExpr__accept_transform_visitor(val* self, val* p0) {
564 transform__AWhileExpr__accept_transform_visitor(self, p0);
565 RET_LABEL:;
566 }
567 /* method transform#AForExpr#accept_transform_visitor for (self: AForExpr, TransformVisitor) */
568 void transform__AForExpr__accept_transform_visitor(val* self, val* p0) {
569 val* var_v /* var v: TransformVisitor */;
570 var_v = p0;
571 RET_LABEL:;
572 }
573 /* method transform#AForExpr#accept_transform_visitor for (self: Object, TransformVisitor) */
574 void VIRTUAL_transform__AForExpr__accept_transform_visitor(val* self, val* p0) {
575 transform__AForExpr__accept_transform_visitor(self, p0);
576 RET_LABEL:;
577 }
578 /* method transform#AArrayExpr#accept_transform_visitor for (self: AArrayExpr, TransformVisitor) */
579 void transform__AArrayExpr__accept_transform_visitor(val* self, val* p0) {
580 val* var_v /* var v: TransformVisitor */;
581 val* var /* : nullable MType */;
582 short int var1 /* : Bool */;
583 int cltype;
584 int idtype;
585 const char* var_class_name;
586 val* var_mtype /* var mtype: MClassType */;
587 val* var2 /* : ASTBuilder */;
588 val* var3 /* : ABlockExpr */;
589 val* var_nblock /* var nblock: ABlockExpr */;
590 static val* varonce;
591 val* var4 /* : String */;
592 char* var5 /* : NativeString */;
593 long var6 /* : Int */;
594 val* var7 /* : String */;
595 val* var8 /* : MClass */;
596 val* var9 /* : MMethod */;
597 val* var_meth /* var meth: MMethod */;
598 val* var10 /* : ASTBuilder */;
599 val* var11 /* : ASTBuilder */;
600 val* var12 /* : AExprs */;
601 val* var13 /* : ANodes[AExpr] */;
602 long var14 /* : Int */;
603 val* var15 /* : AIntExpr */;
604 val* var16 /* : Array[AIntExpr] */;
605 long var17 /* : Int */;
606 val* var18 /* : NativeArray[AIntExpr] */;
607 val* var19 /* : ANewExpr */;
608 val* var_nnew /* var nnew: ANewExpr */;
609 static val* varonce20;
610 val* var21 /* : String */;
611 char* var22 /* : NativeString */;
612 long var23 /* : Int */;
613 val* var24 /* : String */;
614 val* var25 /* : MClass */;
615 val* var26 /* : MMethod */;
616 val* var_madd /* var madd: MMethod */;
617 val* var27 /* : AExprs */;
618 val* var28 /* : ANodes[AExpr] */;
619 val* var29 /* : Iterator[nullable Object] */;
620 short int var30 /* : Bool */;
621 val* var31 /* : nullable Object */;
622 val* var_nexpr /* var nexpr: AExpr */;
623 val* var32 /* : ASTBuilder */;
624 val* var33 /* : AVarExpr */;
625 val* var34 /* : Array[AExpr] */;
626 long var35 /* : Int */;
627 val* var36 /* : NativeArray[AExpr] */;
628 val* var37 /* : ACallExpr */;
629 val* var_nadd /* var nadd: ACallExpr */;
630 val* var38 /* : AVarExpr */;
631 val* var_nres /* var nres: AVarExpr */;
632 var_v = p0;
633 var = ((val* (*)(val*))(self->class->vft[COLOR_typing__AExpr__mtype]))(self) /* mtype on <self:AArrayExpr>*/;
634 /* <var:nullable MType> isa MClassType */
635 cltype = type_model__MClassType.color;
636 idtype = type_model__MClassType.id;
637 if(var == NULL) {
638 var1 = 0;
639 } else {
640 if(cltype >= var->type->table_size) {
641 var1 = 0;
642 } else {
643 var1 = var->type->type_table[cltype] == idtype;
644 }
645 }
646 if (!var1) {
647 var_class_name = var == NULL ? "null" : var->type->name;
648 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name);
649 fprintf(stderr, " (%s:%d)\n", "src/transform.nit", 173);
650 exit(1);
651 }
652 var_mtype = var;
653 var2 = ((val* (*)(val*))(var_v->class->vft[COLOR_transform__TransformVisitor__builder]))(var_v) /* builder on <var_v:TransformVisitor>*/;
654 var3 = ((val* (*)(val*))(var2->class->vft[COLOR_astbuilder__ASTBuilder__make_block]))(var2) /* make_block on <var2:ASTBuilder>*/;
655 var_nblock = var3;
656 if (varonce) {
657 var4 = varonce;
658 } else {
659 var5 = "with_capacity";
660 var6 = 13;
661 var7 = string__NativeString__to_s_with_length(var5, var6);
662 var4 = var7;
663 varonce = var4;
664 }
665 var8 = ((val* (*)(val*))(var_mtype->class->vft[COLOR_model__MClassType__mclass]))(var_mtype) /* mclass on <var_mtype:MClassType>*/;
666 var9 = ((val* (*)(val*, val*, val*, val*))(var_v->class->vft[COLOR_transform__TransformVisitor__get_method]))(var_v, self, var4, var8) /* get_method on <var_v:TransformVisitor>*/;
667 var_meth = var9;
668 var10 = ((val* (*)(val*))(var_v->class->vft[COLOR_transform__TransformVisitor__builder]))(var_v) /* builder on <var_v:TransformVisitor>*/;
669 var11 = ((val* (*)(val*))(var_v->class->vft[COLOR_transform__TransformVisitor__builder]))(var_v) /* builder on <var_v:TransformVisitor>*/;
670 var12 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AArrayExpr__n_exprs]))(self) /* n_exprs on <self:AArrayExpr>*/;
671 var13 = ((val* (*)(val*))(var12->class->vft[COLOR_parser_nodes__AExprs__n_exprs]))(var12) /* n_exprs on <var12:AExprs>*/;
672 var14 = ((long (*)(val*))(var13->class->vft[COLOR_abstract_collection__Collection__length]))(var13) /* length on <var13:ANodes[AExpr]>*/;
673 var15 = ((val* (*)(val*, long))(var11->class->vft[COLOR_astbuilder__ASTBuilder__make_int]))(var11, var14) /* make_int on <var11:ASTBuilder>*/;
674 var16 = NEW_array__Array(&type_array__Arrayparser_nodes__AIntExpr);
675 { /* var16 = array_instance Array[AIntExpr] */
676 var17 = 1;
677 var18 = NEW_array__NativeArray(var17, &type_array__NativeArrayparser_nodes__AIntExpr);
678 ((struct instance_array__NativeArray*)var18)->values[0] = (val*) var15;
679 ((void (*)(val*, val*, long))(var16->class->vft[COLOR_array__Array__with_native]))(var16, var18, var17) /* with_native on <var16:Array[AIntExpr]>*/;
680 CHECK_NEW_array__Array(var16);
681 }
682 var19 = ((val* (*)(val*, val*, val*, val*))(var10->class->vft[COLOR_astbuilder__ASTBuilder__make_new]))(var10, var_mtype, var_meth, var16) /* make_new on <var10:ASTBuilder>*/;
683 var_nnew = var19;
684 ((void (*)(val*, val*))(var_nblock->class->vft[COLOR_astbuilder__AExpr__add]))(var_nblock, var_nnew) /* add on <var_nblock:ABlockExpr>*/;
685 if (varonce20) {
686 var21 = varonce20;
687 } else {
688 var22 = "push";
689 var23 = 4;
690 var24 = string__NativeString__to_s_with_length(var22, var23);
691 var21 = var24;
692 varonce20 = var21;
693 }
694 var25 = ((val* (*)(val*))(var_mtype->class->vft[COLOR_model__MClassType__mclass]))(var_mtype) /* mclass on <var_mtype:MClassType>*/;
695 var26 = ((val* (*)(val*, val*, val*, val*))(var_v->class->vft[COLOR_transform__TransformVisitor__get_method]))(var_v, self, var21, var25) /* get_method on <var_v:TransformVisitor>*/;
696 var_madd = var26;
697 var27 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AArrayExpr__n_exprs]))(self) /* n_exprs on <self:AArrayExpr>*/;
698 var28 = ((val* (*)(val*))(var27->class->vft[COLOR_parser_nodes__AExprs__n_exprs]))(var27) /* n_exprs on <var27:AExprs>*/;
699 var29 = ((val* (*)(val*))(var28->class->vft[COLOR_abstract_collection__Collection__iterator]))(var28) /* iterator on <var28:ANodes[AExpr]>*/;
700 for(;;) {
701 var30 = ((short int (*)(val*))(var29->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var29) /* is_ok on <var29:Iterator[nullable Object]>*/;
702 if(!var30) break;
703 var31 = ((val* (*)(val*))(var29->class->vft[COLOR_abstract_collection__Iterator__item]))(var29) /* item on <var29:Iterator[nullable Object]>*/;
704 var_nexpr = var31;
705 var32 = ((val* (*)(val*))(var_v->class->vft[COLOR_transform__TransformVisitor__builder]))(var_v) /* builder on <var_v:TransformVisitor>*/;
706 var33 = ((val* (*)(val*))(var_nnew->class->vft[COLOR_astbuilder__AExpr__make_var_read]))(var_nnew) /* make_var_read on <var_nnew:ANewExpr>*/;
707 var34 = NEW_array__Array(&type_array__Arrayparser_nodes__AExpr);
708 { /* var34 = array_instance Array[AExpr] */
709 var35 = 1;
710 var36 = NEW_array__NativeArray(var35, &type_array__NativeArrayparser_nodes__AExpr);
711 ((struct instance_array__NativeArray*)var36)->values[0] = (val*) var_nexpr;
712 ((void (*)(val*, val*, long))(var34->class->vft[COLOR_array__Array__with_native]))(var34, var36, var35) /* with_native on <var34:Array[AExpr]>*/;
713 CHECK_NEW_array__Array(var34);
714 }
715 var37 = ((val* (*)(val*, val*, val*, val*))(var32->class->vft[COLOR_astbuilder__ASTBuilder__make_call]))(var32, var33, var_madd, var34) /* make_call on <var32:ASTBuilder>*/;
716 var_nadd = var37;
717 ((void (*)(val*, val*))(var_nblock->class->vft[COLOR_astbuilder__AExpr__add]))(var_nblock, var_nadd) /* add on <var_nblock:ABlockExpr>*/;
718 CONTINUE_label: (void)0;
719 ((void (*)(val*))(var29->class->vft[COLOR_abstract_collection__Iterator__next]))(var29) /* next on <var29:Iterator[nullable Object]>*/;
720 }
721 BREAK_label: (void)0;
722 var38 = ((val* (*)(val*))(var_nnew->class->vft[COLOR_astbuilder__AExpr__make_var_read]))(var_nnew) /* make_var_read on <var_nnew:ANewExpr>*/;
723 var_nres = var38;
724 ((void (*)(val*, val*))(var_nblock->class->vft[COLOR_astbuilder__AExpr__add]))(var_nblock, var_nres) /* add on <var_nblock:ABlockExpr>*/;
725 ((void (*)(val*, val*))(self->class->vft[COLOR_parser_nodes__ANode__replace_with]))(self, var_nblock) /* replace_with on <self:AArrayExpr>*/;
726 RET_LABEL:;
727 }
728 /* method transform#AArrayExpr#accept_transform_visitor for (self: Object, TransformVisitor) */
729 void VIRTUAL_transform__AArrayExpr__accept_transform_visitor(val* self, val* p0) {
730 transform__AArrayExpr__accept_transform_visitor(self, p0);
731 RET_LABEL:;
732 }
733 /* method transform#ASuperstringExpr#accept_transform_visitor for (self: ASuperstringExpr, TransformVisitor) */
734 void transform__ASuperstringExpr__accept_transform_visitor(val* self, val* p0) {
735 val* var_v /* var v: TransformVisitor */;
736 val* var /* : ASTBuilder */;
737 val* var1 /* : ABlockExpr */;
738 val* var_nblock /* var nblock: ABlockExpr */;
739 static val* varonce;
740 val* var2 /* : String */;
741 char* var3 /* : NativeString */;
742 long var4 /* : Int */;
743 val* var5 /* : String */;
744 val* var6 /* : MClass */;
745 static val* varonce7;
746 val* var8 /* : String */;
747 char* var9 /* : NativeString */;
748 long var10 /* : Int */;
749 val* var11 /* : String */;
750 val* var12 /* : MClass */;
751 val* var13 /* : MClassType */;
752 val* var14 /* : Array[MClassType] */;
753 long var15 /* : Int */;
754 val* var16 /* : NativeArray[MClassType] */;
755 val* var17 /* : MClassType */;
756 val* var_arraytype /* var arraytype: MClassType */;
757 static val* varonce18;
758 val* var19 /* : String */;
759 char* var20 /* : NativeString */;
760 long var21 /* : Int */;
761 val* var22 /* : String */;
762 val* var23 /* : MClass */;
763 val* var24 /* : MMethod */;
764 val* var_meth /* var meth: MMethod */;
765 val* var25 /* : ASTBuilder */;
766 val* var26 /* : ASTBuilder */;
767 val* var27 /* : ANodes[AExpr] */;
768 long var28 /* : Int */;
769 val* var29 /* : AIntExpr */;
770 val* var30 /* : Array[AIntExpr] */;
771 long var31 /* : Int */;
772 val* var32 /* : NativeArray[AIntExpr] */;
773 val* var33 /* : ANewExpr */;
774 val* var_nnew /* var nnew: ANewExpr */;
775 static val* varonce34;
776 val* var35 /* : String */;
777 char* var36 /* : NativeString */;
778 long var37 /* : Int */;
779 val* var38 /* : String */;
780 val* var39 /* : MClass */;
781 val* var40 /* : MMethod */;
782 val* var_madd /* var madd: MMethod */;
783 val* var41 /* : ANodes[AExpr] */;
784 val* var42 /* : Iterator[nullable Object] */;
785 short int var43 /* : Bool */;
786 val* var44 /* : nullable Object */;
787 val* var_nexpr /* var nexpr: AExpr */;
788 val* var45 /* : ASTBuilder */;
789 val* var46 /* : AVarExpr */;
790 val* var47 /* : Array[AExpr] */;
791 long var48 /* : Int */;
792 val* var49 /* : NativeArray[AExpr] */;
793 val* var50 /* : ACallExpr */;
794 val* var_nadd /* var nadd: ACallExpr */;
795 static val* varonce51;
796 val* var52 /* : String */;
797 char* var53 /* : NativeString */;
798 long var54 /* : Int */;
799 val* var55 /* : String */;
800 val* var56 /* : MClass */;
801 val* var57 /* : MMethod */;
802 val* var_mtos /* var mtos: MMethod */;
803 val* var58 /* : ASTBuilder */;
804 val* var59 /* : AVarExpr */;
805 val* var60 /* : null */;
806 val* var61 /* : ACallExpr */;
807 val* var_ntos /* var ntos: ACallExpr */;
808 var_v = p0;
809 var = ((val* (*)(val*))(var_v->class->vft[COLOR_transform__TransformVisitor__builder]))(var_v) /* builder on <var_v:TransformVisitor>*/;
810 var1 = ((val* (*)(val*))(var->class->vft[COLOR_astbuilder__ASTBuilder__make_block]))(var) /* make_block on <var:ASTBuilder>*/;
811 var_nblock = var1;
812 if (varonce) {
813 var2 = varonce;
814 } else {
815 var3 = "Array";
816 var4 = 5;
817 var5 = string__NativeString__to_s_with_length(var3, var4);
818 var2 = var5;
819 varonce = var2;
820 }
821 var6 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_transform__TransformVisitor__get_class]))(var_v, self, var2) /* get_class on <var_v:TransformVisitor>*/;
822 if (varonce7) {
823 var8 = varonce7;
824 } else {
825 var9 = "Object";
826 var10 = 6;
827 var11 = string__NativeString__to_s_with_length(var9, var10);
828 var8 = var11;
829 varonce7 = var8;
830 }
831 var12 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_transform__TransformVisitor__get_class]))(var_v, self, var8) /* get_class on <var_v:TransformVisitor>*/;
832 var13 = ((val* (*)(val*))(var12->class->vft[COLOR_model__MClass__mclass_type]))(var12) /* mclass_type on <var12:MClass>*/;
833 var14 = NEW_array__Array(&type_array__Arraymodel__MClassType);
834 { /* var14 = array_instance Array[MClassType] */
835 var15 = 1;
836 var16 = NEW_array__NativeArray(var15, &type_array__NativeArraymodel__MClassType);
837 ((struct instance_array__NativeArray*)var16)->values[0] = (val*) var13;
838 ((void (*)(val*, val*, long))(var14->class->vft[COLOR_array__Array__with_native]))(var14, var16, var15) /* with_native on <var14:Array[MClassType]>*/;
839 CHECK_NEW_array__Array(var14);
840 }
841 var17 = ((val* (*)(val*, val*))(var6->class->vft[COLOR_model__MClass__get_mtype]))(var6, var14) /* get_mtype on <var6:MClass>*/;
842 var_arraytype = var17;
843 if (varonce18) {
844 var19 = varonce18;
845 } else {
846 var20 = "with_capacity";
847 var21 = 13;
848 var22 = string__NativeString__to_s_with_length(var20, var21);
849 var19 = var22;
850 varonce18 = var19;
851 }
852 var23 = ((val* (*)(val*))(var_arraytype->class->vft[COLOR_model__MClassType__mclass]))(var_arraytype) /* mclass on <var_arraytype:MClassType>*/;
853 var24 = ((val* (*)(val*, val*, val*, val*))(var_v->class->vft[COLOR_transform__TransformVisitor__get_method]))(var_v, self, var19, var23) /* get_method on <var_v:TransformVisitor>*/;
854 var_meth = var24;
855 var25 = ((val* (*)(val*))(var_v->class->vft[COLOR_transform__TransformVisitor__builder]))(var_v) /* builder on <var_v:TransformVisitor>*/;
856 var26 = ((val* (*)(val*))(var_v->class->vft[COLOR_transform__TransformVisitor__builder]))(var_v) /* builder on <var_v:TransformVisitor>*/;
857 var27 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ASuperstringExpr__n_exprs]))(self) /* n_exprs on <self:ASuperstringExpr>*/;
858 var28 = ((long (*)(val*))(var27->class->vft[COLOR_abstract_collection__Collection__length]))(var27) /* length on <var27:ANodes[AExpr]>*/;
859 var29 = ((val* (*)(val*, long))(var26->class->vft[COLOR_astbuilder__ASTBuilder__make_int]))(var26, var28) /* make_int on <var26:ASTBuilder>*/;
860 var30 = NEW_array__Array(&type_array__Arrayparser_nodes__AIntExpr);
861 { /* var30 = array_instance Array[AIntExpr] */
862 var31 = 1;
863 var32 = NEW_array__NativeArray(var31, &type_array__NativeArrayparser_nodes__AIntExpr);
864 ((struct instance_array__NativeArray*)var32)->values[0] = (val*) var29;
865 ((void (*)(val*, val*, long))(var30->class->vft[COLOR_array__Array__with_native]))(var30, var32, var31) /* with_native on <var30:Array[AIntExpr]>*/;
866 CHECK_NEW_array__Array(var30);
867 }
868 var33 = ((val* (*)(val*, val*, val*, val*))(var25->class->vft[COLOR_astbuilder__ASTBuilder__make_new]))(var25, var_arraytype, var_meth, var30) /* make_new on <var25:ASTBuilder>*/;
869 var_nnew = var33;
870 ((void (*)(val*, val*))(var_nblock->class->vft[COLOR_astbuilder__AExpr__add]))(var_nblock, var_nnew) /* add on <var_nblock:ABlockExpr>*/;
871 if (varonce34) {
872 var35 = varonce34;
873 } else {
874 var36 = "add";
875 var37 = 3;
876 var38 = string__NativeString__to_s_with_length(var36, var37);
877 var35 = var38;
878 varonce34 = var35;
879 }
880 var39 = ((val* (*)(val*))(var_arraytype->class->vft[COLOR_model__MClassType__mclass]))(var_arraytype) /* mclass on <var_arraytype:MClassType>*/;
881 var40 = ((val* (*)(val*, val*, val*, val*))(var_v->class->vft[COLOR_transform__TransformVisitor__get_method]))(var_v, self, var35, var39) /* get_method on <var_v:TransformVisitor>*/;
882 var_madd = var40;
883 var41 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ASuperstringExpr__n_exprs]))(self) /* n_exprs on <self:ASuperstringExpr>*/;
884 var42 = ((val* (*)(val*))(var41->class->vft[COLOR_abstract_collection__Collection__iterator]))(var41) /* iterator on <var41:ANodes[AExpr]>*/;
885 for(;;) {
886 var43 = ((short int (*)(val*))(var42->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var42) /* is_ok on <var42:Iterator[nullable Object]>*/;
887 if(!var43) break;
888 var44 = ((val* (*)(val*))(var42->class->vft[COLOR_abstract_collection__Iterator__item]))(var42) /* item on <var42:Iterator[nullable Object]>*/;
889 var_nexpr = var44;
890 var45 = ((val* (*)(val*))(var_v->class->vft[COLOR_transform__TransformVisitor__builder]))(var_v) /* builder on <var_v:TransformVisitor>*/;
891 var46 = ((val* (*)(val*))(var_nnew->class->vft[COLOR_astbuilder__AExpr__make_var_read]))(var_nnew) /* make_var_read on <var_nnew:ANewExpr>*/;
892 var47 = NEW_array__Array(&type_array__Arrayparser_nodes__AExpr);
893 { /* var47 = array_instance Array[AExpr] */
894 var48 = 1;
895 var49 = NEW_array__NativeArray(var48, &type_array__NativeArrayparser_nodes__AExpr);
896 ((struct instance_array__NativeArray*)var49)->values[0] = (val*) var_nexpr;
897 ((void (*)(val*, val*, long))(var47->class->vft[COLOR_array__Array__with_native]))(var47, var49, var48) /* with_native on <var47:Array[AExpr]>*/;
898 CHECK_NEW_array__Array(var47);
899 }
900 var50 = ((val* (*)(val*, val*, val*, val*))(var45->class->vft[COLOR_astbuilder__ASTBuilder__make_call]))(var45, var46, var_madd, var47) /* make_call on <var45:ASTBuilder>*/;
901 var_nadd = var50;
902 ((void (*)(val*, val*))(var_nblock->class->vft[COLOR_astbuilder__AExpr__add]))(var_nblock, var_nadd) /* add on <var_nblock:ABlockExpr>*/;
903 CONTINUE_label: (void)0;
904 ((void (*)(val*))(var42->class->vft[COLOR_abstract_collection__Iterator__next]))(var42) /* next on <var42:Iterator[nullable Object]>*/;
905 }
906 BREAK_label: (void)0;
907 if (varonce51) {
908 var52 = varonce51;
909 } else {
910 var53 = "to_s";
911 var54 = 4;
912 var55 = string__NativeString__to_s_with_length(var53, var54);
913 var52 = var55;
914 varonce51 = var52;
915 }
916 var56 = ((val* (*)(val*))(var_arraytype->class->vft[COLOR_model__MClassType__mclass]))(var_arraytype) /* mclass on <var_arraytype:MClassType>*/;
917 var57 = ((val* (*)(val*, val*, val*, val*))(var_v->class->vft[COLOR_transform__TransformVisitor__get_method]))(var_v, self, var52, var56) /* get_method on <var_v:TransformVisitor>*/;
918 var_mtos = var57;
919 var58 = ((val* (*)(val*))(var_v->class->vft[COLOR_transform__TransformVisitor__builder]))(var_v) /* builder on <var_v:TransformVisitor>*/;
920 var59 = ((val* (*)(val*))(var_nnew->class->vft[COLOR_astbuilder__AExpr__make_var_read]))(var_nnew) /* make_var_read on <var_nnew:ANewExpr>*/;
921 var60 = NULL;
922 var61 = ((val* (*)(val*, val*, val*, val*))(var58->class->vft[COLOR_astbuilder__ASTBuilder__make_call]))(var58, var59, var_mtos, var60) /* make_call on <var58:ASTBuilder>*/;
923 var_ntos = var61;
924 ((void (*)(val*, val*))(var_nblock->class->vft[COLOR_astbuilder__AExpr__add]))(var_nblock, var_ntos) /* add on <var_nblock:ABlockExpr>*/;
925 ((void (*)(val*, val*))(self->class->vft[COLOR_parser_nodes__ANode__replace_with]))(self, var_nblock) /* replace_with on <self:ASuperstringExpr>*/;
926 RET_LABEL:;
927 }
928 /* method transform#ASuperstringExpr#accept_transform_visitor for (self: Object, TransformVisitor) */
929 void VIRTUAL_transform__ASuperstringExpr__accept_transform_visitor(val* self, val* p0) {
930 transform__ASuperstringExpr__accept_transform_visitor(self, p0);
931 RET_LABEL:;
932 }
933 /* method transform#ACrangeExpr#accept_transform_visitor for (self: ACrangeExpr, TransformVisitor) */
934 void transform__ACrangeExpr__accept_transform_visitor(val* self, val* p0) {
935 val* var_v /* var v: TransformVisitor */;
936 val* var /* : nullable MType */;
937 short int var1 /* : Bool */;
938 int cltype;
939 int idtype;
940 const char* var_class_name;
941 val* var_mtype /* var mtype: MClassType */;
942 static val* varonce;
943 val* var2 /* : String */;
944 char* var3 /* : NativeString */;
945 long var4 /* : Int */;
946 val* var5 /* : String */;
947 val* var6 /* : MClass */;
948 val* var7 /* : MMethod */;
949 val* var_meth /* var meth: MMethod */;
950 val* var8 /* : ASTBuilder */;
951 val* var9 /* : AExpr */;
952 val* var10 /* : AExpr */;
953 val* var11 /* : Array[AExpr] */;
954 long var12 /* : Int */;
955 val* var13 /* : NativeArray[AExpr] */;
956 val* var14 /* : ANewExpr */;
957 var_v = p0;
958 var = ((val* (*)(val*))(self->class->vft[COLOR_typing__AExpr__mtype]))(self) /* mtype on <self:ACrangeExpr>*/;
959 /* <var:nullable MType> isa MClassType */
960 cltype = type_model__MClassType.color;
961 idtype = type_model__MClassType.id;
962 if(var == NULL) {
963 var1 = 0;
964 } else {
965 if(cltype >= var->type->table_size) {
966 var1 = 0;
967 } else {
968 var1 = var->type->type_table[cltype] == idtype;
969 }
970 }
971 if (!var1) {
972 var_class_name = var == NULL ? "null" : var->type->name;
973 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name);
974 fprintf(stderr, " (%s:%d)\n", "src/transform.nit", 227);
975 exit(1);
976 }
977 var_mtype = var;
978 if (varonce) {
979 var2 = varonce;
980 } else {
981 var3 = "init";
982 var4 = 4;
983 var5 = string__NativeString__to_s_with_length(var3, var4);
984 var2 = var5;
985 varonce = var2;
986 }
987 var6 = ((val* (*)(val*))(var_mtype->class->vft[COLOR_model__MClassType__mclass]))(var_mtype) /* mclass on <var_mtype:MClassType>*/;
988 var7 = ((val* (*)(val*, val*, val*, val*))(var_v->class->vft[COLOR_transform__TransformVisitor__get_method]))(var_v, self, var2, var6) /* get_method on <var_v:TransformVisitor>*/;
989 var_meth = var7;
990 var8 = ((val* (*)(val*))(var_v->class->vft[COLOR_transform__TransformVisitor__builder]))(var_v) /* builder on <var_v:TransformVisitor>*/;
991 var9 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ARangeExpr__n_expr]))(self) /* n_expr on <self:ACrangeExpr>*/;
992 var10 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ARangeExpr__n_expr2]))(self) /* n_expr2 on <self:ACrangeExpr>*/;
993 var11 = NEW_array__Array(&type_array__Arrayparser_nodes__AExpr);
994 { /* var11 = array_instance Array[AExpr] */
995 var12 = 2;
996 var13 = NEW_array__NativeArray(var12, &type_array__NativeArrayparser_nodes__AExpr);
997 ((struct instance_array__NativeArray*)var13)->values[0] = (val*) var9;
998 ((struct instance_array__NativeArray*)var13)->values[1] = (val*) var10;
999 ((void (*)(val*, val*, long))(var11->class->vft[COLOR_array__Array__with_native]))(var11, var13, var12) /* with_native on <var11:Array[AExpr]>*/;
1000 CHECK_NEW_array__Array(var11);
1001 }
1002 var14 = ((val* (*)(val*, val*, val*, val*))(var8->class->vft[COLOR_astbuilder__ASTBuilder__make_new]))(var8, var_mtype, var_meth, var11) /* make_new on <var8:ASTBuilder>*/;
1003 ((void (*)(val*, val*))(self->class->vft[COLOR_parser_nodes__ANode__replace_with]))(self, var14) /* replace_with on <self:ACrangeExpr>*/;
1004 RET_LABEL:;
1005 }
1006 /* method transform#ACrangeExpr#accept_transform_visitor for (self: Object, TransformVisitor) */
1007 void VIRTUAL_transform__ACrangeExpr__accept_transform_visitor(val* self, val* p0) {
1008 transform__ACrangeExpr__accept_transform_visitor(self, p0);
1009 RET_LABEL:;
1010 }
1011 /* method transform#AOrangeExpr#accept_transform_visitor for (self: AOrangeExpr, TransformVisitor) */
1012 void transform__AOrangeExpr__accept_transform_visitor(val* self, val* p0) {
1013 val* var_v /* var v: TransformVisitor */;
1014 val* var /* : nullable MType */;
1015 short int var1 /* : Bool */;
1016 int cltype;
1017 int idtype;
1018 const char* var_class_name;
1019 val* var_mtype /* var mtype: MClassType */;
1020 static val* varonce;
1021 val* var2 /* : String */;
1022 char* var3 /* : NativeString */;
1023 long var4 /* : Int */;
1024 val* var5 /* : String */;
1025 val* var6 /* : MClass */;
1026 val* var7 /* : MMethod */;
1027 val* var_meth /* var meth: MMethod */;
1028 val* var8 /* : ASTBuilder */;
1029 val* var9 /* : AExpr */;
1030 val* var10 /* : AExpr */;
1031 val* var11 /* : Array[AExpr] */;
1032 long var12 /* : Int */;
1033 val* var13 /* : NativeArray[AExpr] */;
1034 val* var14 /* : ANewExpr */;
1035 var_v = p0;
1036 var = ((val* (*)(val*))(self->class->vft[COLOR_typing__AExpr__mtype]))(self) /* mtype on <self:AOrangeExpr>*/;
1037 /* <var:nullable MType> isa MClassType */
1038 cltype = type_model__MClassType.color;
1039 idtype = type_model__MClassType.id;
1040 if(var == NULL) {
1041 var1 = 0;
1042 } else {
1043 if(cltype >= var->type->table_size) {
1044 var1 = 0;
1045 } else {
1046 var1 = var->type->type_table[cltype] == idtype;
1047 }
1048 }
1049 if (!var1) {
1050 var_class_name = var == NULL ? "null" : var->type->name;
1051 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name);
1052 fprintf(stderr, " (%s:%d)\n", "src/transform.nit", 238);
1053 exit(1);
1054 }
1055 var_mtype = var;
1056 if (varonce) {
1057 var2 = varonce;
1058 } else {
1059 var3 = "without_last";
1060 var4 = 12;
1061 var5 = string__NativeString__to_s_with_length(var3, var4);
1062 var2 = var5;
1063 varonce = var2;
1064 }
1065 var6 = ((val* (*)(val*))(var_mtype->class->vft[COLOR_model__MClassType__mclass]))(var_mtype) /* mclass on <var_mtype:MClassType>*/;
1066 var7 = ((val* (*)(val*, val*, val*, val*))(var_v->class->vft[COLOR_transform__TransformVisitor__get_method]))(var_v, self, var2, var6) /* get_method on <var_v:TransformVisitor>*/;
1067 var_meth = var7;
1068 var8 = ((val* (*)(val*))(var_v->class->vft[COLOR_transform__TransformVisitor__builder]))(var_v) /* builder on <var_v:TransformVisitor>*/;
1069 var9 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ARangeExpr__n_expr]))(self) /* n_expr on <self:AOrangeExpr>*/;
1070 var10 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ARangeExpr__n_expr2]))(self) /* n_expr2 on <self:AOrangeExpr>*/;
1071 var11 = NEW_array__Array(&type_array__Arrayparser_nodes__AExpr);
1072 { /* var11 = array_instance Array[AExpr] */
1073 var12 = 2;
1074 var13 = NEW_array__NativeArray(var12, &type_array__NativeArrayparser_nodes__AExpr);
1075 ((struct instance_array__NativeArray*)var13)->values[0] = (val*) var9;
1076 ((struct instance_array__NativeArray*)var13)->values[1] = (val*) var10;
1077 ((void (*)(val*, val*, long))(var11->class->vft[COLOR_array__Array__with_native]))(var11, var13, var12) /* with_native on <var11:Array[AExpr]>*/;
1078 CHECK_NEW_array__Array(var11);
1079 }
1080 var14 = ((val* (*)(val*, val*, val*, val*))(var8->class->vft[COLOR_astbuilder__ASTBuilder__make_new]))(var8, var_mtype, var_meth, var11) /* make_new on <var8:ASTBuilder>*/;
1081 ((void (*)(val*, val*))(self->class->vft[COLOR_parser_nodes__ANode__replace_with]))(self, var14) /* replace_with on <self:AOrangeExpr>*/;
1082 RET_LABEL:;
1083 }
1084 /* method transform#AOrangeExpr#accept_transform_visitor for (self: Object, TransformVisitor) */
1085 void VIRTUAL_transform__AOrangeExpr__accept_transform_visitor(val* self, val* p0) {
1086 transform__AOrangeExpr__accept_transform_visitor(self, p0);
1087 RET_LABEL:;
1088 }
1089 /* method transform#AParExpr#accept_transform_visitor for (self: AParExpr, TransformVisitor) */
1090 void transform__AParExpr__accept_transform_visitor(val* self, val* p0) {
1091 val* var_v /* var v: TransformVisitor */;
1092 val* var /* : AExpr */;
1093 var_v = p0;
1094 var = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AProxyExpr__n_expr]))(self) /* n_expr on <self:AParExpr>*/;
1095 ((void (*)(val*, val*))(self->class->vft[COLOR_parser_nodes__ANode__replace_with]))(self, var) /* replace_with on <self:AParExpr>*/;
1096 RET_LABEL:;
1097 }
1098 /* method transform#AParExpr#accept_transform_visitor for (self: Object, TransformVisitor) */
1099 void VIRTUAL_transform__AParExpr__accept_transform_visitor(val* self, val* p0) {
1100 transform__AParExpr__accept_transform_visitor(self, p0);
1101 RET_LABEL:;
1102 }
1103 /* method transform#ASendReassignFormExpr#accept_transform_visitor for (self: ASendReassignFormExpr, TransformVisitor) */
1104 void transform__ASendReassignFormExpr__accept_transform_visitor(val* self, val* p0) {
1105 val* var_v /* var v: TransformVisitor */;
1106 val* var /* : ASTBuilder */;
1107 val* var1 /* : ABlockExpr */;
1108 val* var_nblock /* var nblock: ABlockExpr */;
1109 val* var2 /* : AExpr */;
1110 val* var3 /* : Array[AExpr] */;
1111 val* var_read_args /* var read_args: Array[AExpr] */;
1112 val* var4 /* : Array[AExpr] */;
1113 val* var_write_args /* var write_args: Array[AExpr] */;
1114 val* var5 /* : nullable Array[AExpr] */;
1115 val* var6 /* : Iterator[nullable Object] */;
1116 short int var7 /* : Bool */;
1117 val* var8 /* : nullable Object */;
1118 val* var_a /* var a: AExpr */;
1119 val* var9 /* : AVarExpr */;
1120 val* var10 /* : AVarExpr */;
1121 val* var11 /* : ASTBuilder */;
1122 val* var12 /* : AExpr */;
1123 val* var13 /* : AVarExpr */;
1124 val* var14 /* : nullable CallSite */;
1125 val* var15 /* : MMethod */;
1126 val* var16 /* : ACallExpr */;
1127 val* var_nread /* var nread: ACallExpr */;
1128 val* var17 /* : ASTBuilder */;
1129 val* var18 /* : nullable CallSite */;
1130 val* var19 /* : MMethod */;
1131 val* var20 /* : AExpr */;
1132 val* var21 /* : Array[AExpr] */;
1133 long var22 /* : Int */;
1134 val* var23 /* : NativeArray[AExpr] */;
1135 val* var24 /* : ACallExpr */;
1136 val* var_nnewvalue /* var nnewvalue: ACallExpr */;
1137 val* var25 /* : ASTBuilder */;
1138 val* var26 /* : AExpr */;
1139 val* var27 /* : AVarExpr */;
1140 val* var28 /* : nullable CallSite */;
1141 val* var29 /* : MMethod */;
1142 val* var30 /* : ACallExpr */;
1143 val* var_nwrite /* var nwrite: ACallExpr */;
1144 var_v = p0;
1145 var = ((val* (*)(val*))(var_v->class->vft[COLOR_transform__TransformVisitor__builder]))(var_v) /* builder on <var_v:TransformVisitor>*/;
1146 var1 = ((val* (*)(val*))(var->class->vft[COLOR_astbuilder__ASTBuilder__make_block]))(var) /* make_block on <var:ASTBuilder>*/;
1147 var_nblock = var1;
1148 var2 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ASendExpr__n_expr]))(self) /* n_expr on <self:ASendReassignFormExpr>*/;
1149 ((void (*)(val*, val*))(var_nblock->class->vft[COLOR_astbuilder__AExpr__add]))(var_nblock, var2) /* add on <var_nblock:ABlockExpr>*/;
1150 var3 = NEW_array__Array(&type_array__Arrayparser_nodes__AExpr);
1151 ((void (*)(val*))(var3->class->vft[COLOR_array__Array__init]))(var3) /* init on <var3:Array[AExpr]>*/;
1152 CHECK_NEW_array__Array(var3);
1153 var_read_args = var3;
1154 var4 = NEW_array__Array(&type_array__Arrayparser_nodes__AExpr);
1155 ((void (*)(val*))(var4->class->vft[COLOR_array__Array__init]))(var4) /* init on <var4:Array[AExpr]>*/;
1156 CHECK_NEW_array__Array(var4);
1157 var_write_args = var4;
1158 var5 = ((val* (*)(val*))(self->class->vft[COLOR_typing__ASendExpr__raw_arguments]))(self) /* raw_arguments on <self:ASendReassignFormExpr>*/;
1159 if (var5 == NULL) {
1160 fprintf(stderr, "Runtime error: %s", "Cast failed");
1161 fprintf(stderr, " (%s:%d)\n", "src/transform.nit", 268);
1162 exit(1);
1163 }
1164 var6 = ((val* (*)(val*))(var5->class->vft[COLOR_abstract_collection__Collection__iterator]))(var5) /* iterator on <var5:nullable Array[AExpr](Array[AExpr])>*/;
1165 for(;;) {
1166 var7 = ((short int (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var6) /* is_ok on <var6:Iterator[nullable Object]>*/;
1167 if(!var7) break;
1168 var8 = ((val* (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__item]))(var6) /* item on <var6:Iterator[nullable Object]>*/;
1169 var_a = var8;
1170 ((void (*)(val*, val*))(var_nblock->class->vft[COLOR_astbuilder__AExpr__add]))(var_nblock, var_a) /* add on <var_nblock:ABlockExpr>*/;
1171 var9 = ((val* (*)(val*))(var_a->class->vft[COLOR_astbuilder__AExpr__make_var_read]))(var_a) /* make_var_read on <var_a:AExpr>*/;
1172 ((void (*)(val*, val*))(var_read_args->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_read_args, var9) /* add on <var_read_args:Array[AExpr]>*/;
1173 var10 = ((val* (*)(val*))(var_a->class->vft[COLOR_astbuilder__AExpr__make_var_read]))(var_a) /* make_var_read on <var_a:AExpr>*/;
1174 ((void (*)(val*, val*))(var_write_args->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_write_args, var10) /* add on <var_write_args:Array[AExpr]>*/;
1175 CONTINUE_label: (void)0;
1176 ((void (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__next]))(var6) /* next on <var6:Iterator[nullable Object]>*/;
1177 }
1178 BREAK_label: (void)0;
1179 var11 = ((val* (*)(val*))(var_v->class->vft[COLOR_transform__TransformVisitor__builder]))(var_v) /* builder on <var_v:TransformVisitor>*/;
1180 var12 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ASendExpr__n_expr]))(self) /* n_expr on <self:ASendReassignFormExpr>*/;
1181 var13 = ((val* (*)(val*))(var12->class->vft[COLOR_astbuilder__AExpr__make_var_read]))(var12) /* make_var_read on <var12:AExpr>*/;
1182 var14 = ((val* (*)(val*))(self->class->vft[COLOR_typing__ASendExpr__callsite]))(self) /* callsite on <self:ASendReassignFormExpr>*/;
1183 if (var14 == NULL) {
1184 fprintf(stderr, "Runtime error: %s", "Reciever is null");
1185 fprintf(stderr, " (%s:%d)\n", "src/transform.nit", 274);
1186 exit(1);
1187 } else {
1188 var15 = ((val* (*)(val*))(var14->class->vft[COLOR_typing__CallSite__mproperty]))(var14) /* mproperty on <var14:nullable CallSite>*/;
1189 }
1190 var16 = ((val* (*)(val*, val*, val*, val*))(var11->class->vft[COLOR_astbuilder__ASTBuilder__make_call]))(var11, var13, var15, var_read_args) /* make_call on <var11:ASTBuilder>*/;
1191 var_nread = var16;
1192 var17 = ((val* (*)(val*))(var_v->class->vft[COLOR_transform__TransformVisitor__builder]))(var_v) /* builder on <var_v:TransformVisitor>*/;
1193 var18 = ((val* (*)(val*))(self->class->vft[COLOR_typing__AReassignFormExpr__reassign_callsite]))(self) /* reassign_callsite on <self:ASendReassignFormExpr>*/;
1194 if (var18 == NULL) {
1195 fprintf(stderr, "Runtime error: %s", "Reciever is null");
1196 fprintf(stderr, " (%s:%d)\n", "src/transform.nit", 276);
1197 exit(1);
1198 } else {
1199 var19 = ((val* (*)(val*))(var18->class->vft[COLOR_typing__CallSite__mproperty]))(var18) /* mproperty on <var18:nullable CallSite>*/;
1200 }
1201 var20 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AReassignFormExpr__n_value]))(self) /* n_value on <self:ASendReassignFormExpr>*/;
1202 var21 = NEW_array__Array(&type_array__Arrayparser_nodes__AExpr);
1203 { /* var21 = array_instance Array[AExpr] */
1204 var22 = 1;
1205 var23 = NEW_array__NativeArray(var22, &type_array__NativeArrayparser_nodes__AExpr);
1206 ((struct instance_array__NativeArray*)var23)->values[0] = (val*) var20;
1207 ((void (*)(val*, val*, long))(var21->class->vft[COLOR_array__Array__with_native]))(var21, var23, var22) /* with_native on <var21:Array[AExpr]>*/;
1208 CHECK_NEW_array__Array(var21);
1209 }
1210 var24 = ((val* (*)(val*, val*, val*, val*))(var17->class->vft[COLOR_astbuilder__ASTBuilder__make_call]))(var17, var_nread, var19, var21) /* make_call on <var17:ASTBuilder>*/;
1211 var_nnewvalue = var24;
1212 ((void (*)(val*, val*))(var_write_args->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_write_args, var_nnewvalue) /* add on <var_write_args:Array[AExpr]>*/;
1213 var25 = ((val* (*)(val*))(var_v->class->vft[COLOR_transform__TransformVisitor__builder]))(var_v) /* builder on <var_v:TransformVisitor>*/;
1214 var26 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ASendExpr__n_expr]))(self) /* n_expr on <self:ASendReassignFormExpr>*/;
1215 var27 = ((val* (*)(val*))(var26->class->vft[COLOR_astbuilder__AExpr__make_var_read]))(var26) /* make_var_read on <var26:AExpr>*/;
1216 var28 = ((val* (*)(val*))(self->class->vft[COLOR_typing__ASendReassignFormExpr__write_callsite]))(self) /* write_callsite on <self:ASendReassignFormExpr>*/;
1217 if (var28 == NULL) {
1218 fprintf(stderr, "Runtime error: %s", "Reciever is null");
1219 fprintf(stderr, " (%s:%d)\n", "src/transform.nit", 279);
1220 exit(1);
1221 } else {
1222 var29 = ((val* (*)(val*))(var28->class->vft[COLOR_typing__CallSite__mproperty]))(var28) /* mproperty on <var28:nullable CallSite>*/;
1223 }
1224 var30 = ((val* (*)(val*, val*, val*, val*))(var25->class->vft[COLOR_astbuilder__ASTBuilder__make_call]))(var25, var27, var29, var_write_args) /* make_call on <var25:ASTBuilder>*/;
1225 var_nwrite = var30;
1226 ((void (*)(val*, val*))(var_nblock->class->vft[COLOR_astbuilder__AExpr__add]))(var_nblock, var_nwrite) /* add on <var_nblock:ABlockExpr>*/;
1227 ((void (*)(val*, val*))(self->class->vft[COLOR_parser_nodes__ANode__replace_with]))(self, var_nblock) /* replace_with on <self:ASendReassignFormExpr>*/;
1228 RET_LABEL:;
1229 }
1230 /* method transform#ASendReassignFormExpr#accept_transform_visitor for (self: Object, TransformVisitor) */
1231 void VIRTUAL_transform__ASendReassignFormExpr__accept_transform_visitor(val* self, val* p0) {
1232 transform__ASendReassignFormExpr__accept_transform_visitor(self, p0);
1233 RET_LABEL:;
1234 }
1235 /* method transform#AVarReassignExpr#accept_transform_visitor for (self: AVarReassignExpr, TransformVisitor) */
1236 void transform__AVarReassignExpr__accept_transform_visitor(val* self, val* p0) {
1237 val* var_v /* var v: TransformVisitor */;
1238 val* var /* : nullable Variable */;
1239 val* var_variable /* var variable: Variable */;
1240 val* var1 /* : ASTBuilder */;
1241 val* var2 /* : AVarExpr */;
1242 val* var_nread /* var nread: AVarExpr */;
1243 val* var3 /* : ASTBuilder */;
1244 val* var4 /* : nullable CallSite */;
1245 val* var5 /* : MMethod */;
1246 val* var6 /* : AExpr */;
1247 val* var7 /* : Array[AExpr] */;
1248 long var8 /* : Int */;
1249 val* var9 /* : NativeArray[AExpr] */;
1250 val* var10 /* : ACallExpr */;
1251 val* var_nnewvalue /* var nnewvalue: ACallExpr */;
1252 val* var11 /* : ASTBuilder */;
1253 val* var12 /* : AVarAssignExpr */;
1254 val* var_nwrite /* var nwrite: AVarAssignExpr */;
1255 var_v = p0;
1256 var = ((val* (*)(val*))(self->class->vft[COLOR_scope__AVarFormExpr__variable]))(self) /* variable on <self:AVarReassignExpr>*/;
1257 if (var == NULL) {
1258 fprintf(stderr, "Runtime error: %s", "Cast failed");
1259 fprintf(stderr, " (%s:%d)\n", "src/transform.nit", 290);
1260 exit(1);
1261 }
1262 var_variable = var;
1263 var1 = ((val* (*)(val*))(var_v->class->vft[COLOR_transform__TransformVisitor__builder]))(var_v) /* builder on <var_v:TransformVisitor>*/;
1264 var2 = ((val* (*)(val*, val*))(var1->class->vft[COLOR_astbuilder__ASTBuilder__make_var_read]))(var1, var_variable) /* make_var_read on <var1:ASTBuilder>*/;
1265 var_nread = var2;
1266 var3 = ((val* (*)(val*))(var_v->class->vft[COLOR_transform__TransformVisitor__builder]))(var_v) /* builder on <var_v:TransformVisitor>*/;
1267 var4 = ((val* (*)(val*))(self->class->vft[COLOR_typing__AReassignFormExpr__reassign_callsite]))(self) /* reassign_callsite on <self:AVarReassignExpr>*/;
1268 if (var4 == NULL) {
1269 fprintf(stderr, "Runtime error: %s", "Reciever is null");
1270 fprintf(stderr, " (%s:%d)\n", "src/transform.nit", 293);
1271 exit(1);
1272 } else {
1273 var5 = ((val* (*)(val*))(var4->class->vft[COLOR_typing__CallSite__mproperty]))(var4) /* mproperty on <var4:nullable CallSite>*/;
1274 }
1275 var6 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AReassignFormExpr__n_value]))(self) /* n_value on <self:AVarReassignExpr>*/;
1276 var7 = NEW_array__Array(&type_array__Arrayparser_nodes__AExpr);
1277 { /* var7 = array_instance Array[AExpr] */
1278 var8 = 1;
1279 var9 = NEW_array__NativeArray(var8, &type_array__NativeArrayparser_nodes__AExpr);
1280 ((struct instance_array__NativeArray*)var9)->values[0] = (val*) var6;
1281 ((void (*)(val*, val*, long))(var7->class->vft[COLOR_array__Array__with_native]))(var7, var9, var8) /* with_native on <var7:Array[AExpr]>*/;
1282 CHECK_NEW_array__Array(var7);
1283 }
1284 var10 = ((val* (*)(val*, val*, val*, val*))(var3->class->vft[COLOR_astbuilder__ASTBuilder__make_call]))(var3, var_nread, var5, var7) /* make_call on <var3:ASTBuilder>*/;
1285 var_nnewvalue = var10;
1286 var11 = ((val* (*)(val*))(var_v->class->vft[COLOR_transform__TransformVisitor__builder]))(var_v) /* builder on <var_v:TransformVisitor>*/;
1287 var12 = ((val* (*)(val*, val*, val*))(var11->class->vft[COLOR_astbuilder__ASTBuilder__make_var_assign]))(var11, var_variable, var_nnewvalue) /* make_var_assign on <var11:ASTBuilder>*/;
1288 var_nwrite = var12;
1289 ((void (*)(val*, val*))(self->class->vft[COLOR_parser_nodes__ANode__replace_with]))(self, var_nwrite) /* replace_with on <self:AVarReassignExpr>*/;
1290 RET_LABEL:;
1291 }
1292 /* method transform#AVarReassignExpr#accept_transform_visitor for (self: Object, TransformVisitor) */
1293 void VIRTUAL_transform__AVarReassignExpr__accept_transform_visitor(val* self, val* p0) {
1294 transform__AVarReassignExpr__accept_transform_visitor(self, p0);
1295 RET_LABEL:;
1296 }
1297 /* method transform#AAttrReassignExpr#accept_transform_visitor for (self: AAttrReassignExpr, TransformVisitor) */
1298 void transform__AAttrReassignExpr__accept_transform_visitor(val* self, val* p0) {
1299 val* var_v /* var v: TransformVisitor */;
1300 val* var /* : ASTBuilder */;
1301 val* var1 /* : ABlockExpr */;
1302 val* var_nblock /* var nblock: ABlockExpr */;
1303 val* var2 /* : AExpr */;
1304 val* var3 /* : nullable MAttribute */;
1305 val* var_attribute /* var attribute: MAttribute */;
1306 val* var4 /* : ASTBuilder */;
1307 val* var5 /* : AExpr */;
1308 val* var6 /* : AVarExpr */;
1309 val* var7 /* : AAttrExpr */;
1310 val* var_nread /* var nread: AAttrExpr */;
1311 val* var8 /* : ASTBuilder */;
1312 val* var9 /* : nullable CallSite */;
1313 val* var10 /* : MMethod */;
1314 val* var11 /* : AExpr */;
1315 val* var12 /* : Array[AExpr] */;
1316 long var13 /* : Int */;
1317 val* var14 /* : NativeArray[AExpr] */;
1318 val* var15 /* : ACallExpr */;
1319 val* var_nnewvalue /* var nnewvalue: ACallExpr */;
1320 val* var16 /* : ASTBuilder */;
1321 val* var17 /* : AExpr */;
1322 val* var18 /* : AVarExpr */;
1323 val* var19 /* : AAttrAssignExpr */;
1324 val* var_nwrite /* var nwrite: AAttrAssignExpr */;
1325 var_v = p0;
1326 var = ((val* (*)(val*))(var_v->class->vft[COLOR_transform__TransformVisitor__builder]))(var_v) /* builder on <var_v:TransformVisitor>*/;
1327 var1 = ((val* (*)(val*))(var->class->vft[COLOR_astbuilder__ASTBuilder__make_block]))(var) /* make_block on <var:ASTBuilder>*/;
1328 var_nblock = var1;
1329 var2 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrFormExpr__n_expr]))(self) /* n_expr on <self:AAttrReassignExpr>*/;
1330 ((void (*)(val*, val*))(var_nblock->class->vft[COLOR_astbuilder__AExpr__add]))(var_nblock, var2) /* add on <var_nblock:ABlockExpr>*/;
1331 var3 = ((val* (*)(val*))(self->class->vft[COLOR_typing__AAttrFormExpr__mproperty]))(self) /* mproperty on <self:AAttrReassignExpr>*/;
1332 if (var3 == NULL) {
1333 fprintf(stderr, "Runtime error: %s", "Cast failed");
1334 fprintf(stderr, " (%s:%d)\n", "src/transform.nit", 306);
1335 exit(1);
1336 }
1337 var_attribute = var3;
1338 var4 = ((val* (*)(val*))(var_v->class->vft[COLOR_transform__TransformVisitor__builder]))(var_v) /* builder on <var_v:TransformVisitor>*/;
1339 var5 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrFormExpr__n_expr]))(self) /* n_expr on <self:AAttrReassignExpr>*/;
1340 var6 = ((val* (*)(val*))(var5->class->vft[COLOR_astbuilder__AExpr__make_var_read]))(var5) /* make_var_read on <var5:AExpr>*/;
1341 var7 = ((val* (*)(val*, val*, val*))(var4->class->vft[COLOR_astbuilder__ASTBuilder__make_attr_read]))(var4, var6, var_attribute) /* make_attr_read on <var4:ASTBuilder>*/;
1342 var_nread = var7;
1343 var8 = ((val* (*)(val*))(var_v->class->vft[COLOR_transform__TransformVisitor__builder]))(var_v) /* builder on <var_v:TransformVisitor>*/;
1344 var9 = ((val* (*)(val*))(self->class->vft[COLOR_typing__AReassignFormExpr__reassign_callsite]))(self) /* reassign_callsite on <self:AAttrReassignExpr>*/;
1345 if (var9 == NULL) {
1346 fprintf(stderr, "Runtime error: %s", "Reciever is null");
1347 fprintf(stderr, " (%s:%d)\n", "src/transform.nit", 309);
1348 exit(1);
1349 } else {
1350 var10 = ((val* (*)(val*))(var9->class->vft[COLOR_typing__CallSite__mproperty]))(var9) /* mproperty on <var9:nullable CallSite>*/;
1351 }
1352 var11 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AReassignFormExpr__n_value]))(self) /* n_value on <self:AAttrReassignExpr>*/;
1353 var12 = NEW_array__Array(&type_array__Arrayparser_nodes__AExpr);
1354 { /* var12 = array_instance Array[AExpr] */
1355 var13 = 1;
1356 var14 = NEW_array__NativeArray(var13, &type_array__NativeArrayparser_nodes__AExpr);
1357 ((struct instance_array__NativeArray*)var14)->values[0] = (val*) var11;
1358 ((void (*)(val*, val*, long))(var12->class->vft[COLOR_array__Array__with_native]))(var12, var14, var13) /* with_native on <var12:Array[AExpr]>*/;
1359 CHECK_NEW_array__Array(var12);
1360 }
1361 var15 = ((val* (*)(val*, val*, val*, val*))(var8->class->vft[COLOR_astbuilder__ASTBuilder__make_call]))(var8, var_nread, var10, var12) /* make_call on <var8:ASTBuilder>*/;
1362 var_nnewvalue = var15;
1363 var16 = ((val* (*)(val*))(var_v->class->vft[COLOR_transform__TransformVisitor__builder]))(var_v) /* builder on <var_v:TransformVisitor>*/;
1364 var17 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrFormExpr__n_expr]))(self) /* n_expr on <self:AAttrReassignExpr>*/;
1365 var18 = ((val* (*)(val*))(var17->class->vft[COLOR_astbuilder__AExpr__make_var_read]))(var17) /* make_var_read on <var17:AExpr>*/;
1366 var19 = ((val* (*)(val*, val*, val*, val*))(var16->class->vft[COLOR_astbuilder__ASTBuilder__make_attr_assign]))(var16, var18, var_attribute, var_nnewvalue) /* make_attr_assign on <var16:ASTBuilder>*/;
1367 var_nwrite = var19;
1368 ((void (*)(val*, val*))(var_nblock->class->vft[COLOR_astbuilder__AExpr__add]))(var_nblock, var_nwrite) /* add on <var_nblock:ABlockExpr>*/;
1369 ((void (*)(val*, val*))(self->class->vft[COLOR_parser_nodes__ANode__replace_with]))(self, var_nblock) /* replace_with on <self:AAttrReassignExpr>*/;
1370 RET_LABEL:;
1371 }
1372 /* method transform#AAttrReassignExpr#accept_transform_visitor for (self: Object, TransformVisitor) */
1373 void VIRTUAL_transform__AAttrReassignExpr__accept_transform_visitor(val* self, val* p0) {
1374 transform__AAttrReassignExpr__accept_transform_visitor(self, p0);
1375 RET_LABEL:;
1376 }