cleanup some remaining nitc
[nit.git] / c_src / astbuilder.sep.1.c
1 #include "astbuilder.sep.0.h"
2 /* method astbuilder#ASTBuilder#mmodule for (self: ASTBuilder): MModule */
3 val* astbuilder__ASTBuilder__mmodule(val* self) {
4 val* var /* : MModule */;
5 val* var1 /* : MModule */;
6 var1 = self->attrs[COLOR_astbuilder__ASTBuilder___64dmmodule].val; /* @mmodule on <self:ASTBuilder> */
7 if (var1 == NULL) {
8 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute @mmodule", "src/astbuilder.nit", 25);
9 exit(1);
10 }
11 var = var1;
12 RET_LABEL:;
13 return var;
14 }
15 /* method astbuilder#ASTBuilder#mmodule for (self: Object): MModule */
16 val* VIRTUAL_astbuilder__ASTBuilder__mmodule(val* self) {
17 val* var /* : MModule */;
18 val* var1 /* : MModule */;
19 var1 = astbuilder__ASTBuilder__mmodule(self);
20 var = var1;
21 RET_LABEL:;
22 return var;
23 }
24 /* method astbuilder#ASTBuilder#mmodule= for (self: ASTBuilder, MModule) */
25 void astbuilder__ASTBuilder__mmodule_61d(val* self, val* p0) {
26 self->attrs[COLOR_astbuilder__ASTBuilder___64dmmodule].val = p0; /* @mmodule on <self:ASTBuilder> */
27 RET_LABEL:;
28 }
29 /* method astbuilder#ASTBuilder#mmodule= for (self: Object, MModule) */
30 void VIRTUAL_astbuilder__ASTBuilder__mmodule_61d(val* self, val* p0) {
31 astbuilder__ASTBuilder__mmodule_61d(self, p0);
32 RET_LABEL:;
33 }
34 /* method astbuilder#ASTBuilder#anchor for (self: ASTBuilder): nullable MClassType */
35 val* astbuilder__ASTBuilder__anchor(val* self) {
36 val* var /* : nullable MClassType */;
37 val* var1 /* : nullable MClassType */;
38 var1 = self->attrs[COLOR_astbuilder__ASTBuilder___64danchor].val; /* @anchor on <self:ASTBuilder> */
39 var = var1;
40 RET_LABEL:;
41 return var;
42 }
43 /* method astbuilder#ASTBuilder#anchor for (self: Object): nullable MClassType */
44 val* VIRTUAL_astbuilder__ASTBuilder__anchor(val* self) {
45 val* var /* : nullable MClassType */;
46 val* var1 /* : nullable MClassType */;
47 var1 = astbuilder__ASTBuilder__anchor(self);
48 var = var1;
49 RET_LABEL:;
50 return var;
51 }
52 /* method astbuilder#ASTBuilder#anchor= for (self: ASTBuilder, nullable MClassType) */
53 void astbuilder__ASTBuilder__anchor_61d(val* self, val* p0) {
54 self->attrs[COLOR_astbuilder__ASTBuilder___64danchor].val = p0; /* @anchor on <self:ASTBuilder> */
55 RET_LABEL:;
56 }
57 /* method astbuilder#ASTBuilder#anchor= for (self: Object, nullable MClassType) */
58 void VIRTUAL_astbuilder__ASTBuilder__anchor_61d(val* self, val* p0) {
59 astbuilder__ASTBuilder__anchor_61d(self, p0);
60 RET_LABEL:;
61 }
62 /* method astbuilder#ASTBuilder#make_int for (self: ASTBuilder, Int): AIntExpr */
63 val* astbuilder__ASTBuilder__make_int(val* self, long p0) {
64 val* var /* : AIntExpr */;
65 long var_value /* var value: Int */;
66 val* var1 /* : AIntExpr */;
67 val* var2 /* : MModule */;
68 static val* varonce;
69 val* var3 /* : String */;
70 char* var4 /* : NativeString */;
71 long var5 /* : Int */;
72 val* var6 /* : String */;
73 val* var7 /* : MClass */;
74 val* var8 /* : MClassType */;
75 var_value = p0;
76 var1 = NEW_parser_nodes__AIntExpr(&type_parser_nodes__AIntExpr);
77 var2 = ((val* (*)(val*))(self->class->vft[COLOR_astbuilder__ASTBuilder__mmodule]))(self) /* mmodule on <self:ASTBuilder>*/;
78 if (varonce) {
79 var3 = varonce;
80 } else {
81 var4 = "Int";
82 var5 = 3;
83 var6 = string__NativeString__to_s_with_length(var4, var5);
84 var3 = var6;
85 varonce = var3;
86 }
87 var7 = ((val* (*)(val*, val*))(var2->class->vft[COLOR_model__MModule__get_primitive_class]))(var2, var3) /* get_primitive_class on <var2:MModule>*/;
88 var8 = ((val* (*)(val*))(var7->class->vft[COLOR_model__MClass__mclass_type]))(var7) /* mclass_type on <var7:MClass>*/;
89 ((void (*)(val*, long, val*))(var1->class->vft[COLOR_astbuilder__AIntExpr__make]))(var1, var_value, var8) /* make on <var1:AIntExpr>*/;
90 CHECK_NEW_parser_nodes__AIntExpr(var1);
91 var = var1;
92 goto RET_LABEL;
93 RET_LABEL:;
94 return var;
95 }
96 /* method astbuilder#ASTBuilder#make_int for (self: Object, Int): AIntExpr */
97 val* VIRTUAL_astbuilder__ASTBuilder__make_int(val* self, long p0) {
98 val* var /* : AIntExpr */;
99 val* var1 /* : AIntExpr */;
100 var1 = astbuilder__ASTBuilder__make_int(self, p0);
101 var = var1;
102 RET_LABEL:;
103 return var;
104 }
105 /* method astbuilder#ASTBuilder#make_new for (self: ASTBuilder, MClassType, MMethod, nullable Array[AExpr]): ANewExpr */
106 val* astbuilder__ASTBuilder__make_new(val* self, val* p0, val* p1, val* p2) {
107 val* var /* : ANewExpr */;
108 val* var_mtype /* var mtype: MClassType */;
109 val* var_constructor /* var constructor: MMethod */;
110 val* var_args /* var args: nullable Array[AExpr] */;
111 val* var1 /* : ANewExpr */;
112 var_mtype = p0;
113 var_constructor = p1;
114 var_args = p2;
115 var1 = NEW_parser_nodes__ANewExpr(&type_parser_nodes__ANewExpr);
116 ((void (*)(val*, val*, val*, val*))(var1->class->vft[COLOR_astbuilder__ANewExpr__make]))(var1, var_mtype, var_constructor, var_args) /* make on <var1:ANewExpr>*/;
117 CHECK_NEW_parser_nodes__ANewExpr(var1);
118 var = var1;
119 goto RET_LABEL;
120 RET_LABEL:;
121 return var;
122 }
123 /* method astbuilder#ASTBuilder#make_new for (self: Object, MClassType, MMethod, nullable Array[AExpr]): ANewExpr */
124 val* VIRTUAL_astbuilder__ASTBuilder__make_new(val* self, val* p0, val* p1, val* p2) {
125 val* var /* : ANewExpr */;
126 val* var1 /* : ANewExpr */;
127 var1 = astbuilder__ASTBuilder__make_new(self, p0, p1, p2);
128 var = var1;
129 RET_LABEL:;
130 return var;
131 }
132 /* method astbuilder#ASTBuilder#make_call for (self: ASTBuilder, AExpr, MMethod, nullable Array[AExpr]): ACallExpr */
133 val* astbuilder__ASTBuilder__make_call(val* self, val* p0, val* p1, val* p2) {
134 val* var /* : ACallExpr */;
135 val* var_recv /* var recv: AExpr */;
136 val* var_mmethod /* var mmethod: MMethod */;
137 val* var_args /* var args: nullable Array[AExpr] */;
138 val* var1 /* : MPropDef */;
139 val* var2 /* : nullable MSignature */;
140 val* var3 /* : nullable MType */;
141 val* var_mtype /* var mtype: nullable MType */;
142 val* var4 /* : null */;
143 short int var5 /* : Bool */;
144 val* var6 /* : nullable MType */;
145 val* var7 /* : nullable MClassType */;
146 val* var8 /* : MModule */;
147 short int var9 /* : Bool */;
148 val* var10 /* : MType */;
149 val* var11 /* : ACallExpr */;
150 var_recv = p0;
151 var_mmethod = p1;
152 var_args = p2;
153 var1 = ((val* (*)(val*))(var_mmethod->class->vft[COLOR_model__MProperty__intro]))(var_mmethod) /* intro on <var_mmethod:MMethod>*/;
154 var2 = ((val* (*)(val*))(var1->class->vft[COLOR_model__MMethodDef__msignature]))(var1) /* msignature on <var1:MPropDef(MMethodDef)>*/;
155 if (var2 == NULL) {
156 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/astbuilder.nit", 47);
157 exit(1);
158 } else {
159 var3 = ((val* (*)(val*))(var2->class->vft[COLOR_model__MSignature__return_mtype]))(var2) /* return_mtype on <var2:nullable MSignature>*/;
160 }
161 var_mtype = var3;
162 var4 = NULL;
163 if (var_mtype == NULL) {
164 var5 = 0; /* is null */
165 } else {
166 var5 = 1; /* arg is null and recv is not */
167 }
168 if (var5){
169 var6 = ((val* (*)(val*))(var_recv->class->vft[COLOR_typing__AExpr__mtype]))(var_recv) /* mtype on <var_recv:AExpr>*/;
170 if (var6 == NULL) {
171 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/astbuilder.nit", 48);
172 exit(1);
173 }
174 var7 = ((val* (*)(val*))(self->class->vft[COLOR_astbuilder__ASTBuilder__anchor]))(self) /* anchor on <self:ASTBuilder>*/;
175 var8 = ((val* (*)(val*))(self->class->vft[COLOR_astbuilder__ASTBuilder__mmodule]))(self) /* mmodule on <self:ASTBuilder>*/;
176 var9 = 1;
177 var10 = ((val* (*)(val*, val*, val*, val*, short int))(var_mtype->class->vft[COLOR_model__MType__resolve_for]))(var_mtype, var6, var7, var8, var9) /* resolve_for on <var_mtype:nullable MType(MType)>*/;
178 var_mtype = var10;
179 } else {
180 }
181 var11 = NEW_parser_nodes__ACallExpr(&type_parser_nodes__ACallExpr);
182 ((void (*)(val*, val*, val*, val*, val*))(var11->class->vft[COLOR_astbuilder__ACallExpr__make]))(var11, var_recv, var_mmethod, var_args, var_mtype) /* make on <var11:ACallExpr>*/;
183 CHECK_NEW_parser_nodes__ACallExpr(var11);
184 var = var11;
185 goto RET_LABEL;
186 RET_LABEL:;
187 return var;
188 }
189 /* method astbuilder#ASTBuilder#make_call for (self: Object, AExpr, MMethod, nullable Array[AExpr]): ACallExpr */
190 val* VIRTUAL_astbuilder__ASTBuilder__make_call(val* self, val* p0, val* p1, val* p2) {
191 val* var /* : ACallExpr */;
192 val* var1 /* : ACallExpr */;
193 var1 = astbuilder__ASTBuilder__make_call(self, p0, p1, p2);
194 var = var1;
195 RET_LABEL:;
196 return var;
197 }
198 /* method astbuilder#ASTBuilder#make_block for (self: ASTBuilder): ABlockExpr */
199 val* astbuilder__ASTBuilder__make_block(val* self) {
200 val* var /* : ABlockExpr */;
201 val* var1 /* : ABlockExpr */;
202 var1 = NEW_parser_nodes__ABlockExpr(&type_parser_nodes__ABlockExpr);
203 ((void (*)(val*))(var1->class->vft[COLOR_astbuilder__ABlockExpr__make]))(var1) /* make on <var1:ABlockExpr>*/;
204 CHECK_NEW_parser_nodes__ABlockExpr(var1);
205 var = var1;
206 goto RET_LABEL;
207 RET_LABEL:;
208 return var;
209 }
210 /* method astbuilder#ASTBuilder#make_block for (self: Object): ABlockExpr */
211 val* VIRTUAL_astbuilder__ASTBuilder__make_block(val* self) {
212 val* var /* : ABlockExpr */;
213 val* var1 /* : ABlockExpr */;
214 var1 = astbuilder__ASTBuilder__make_block(self);
215 var = var1;
216 RET_LABEL:;
217 return var;
218 }
219 /* method astbuilder#ASTBuilder#make_var_read for (self: ASTBuilder, Variable): AVarExpr */
220 val* astbuilder__ASTBuilder__make_var_read(val* self, val* p0) {
221 val* var /* : AVarExpr */;
222 val* var_variable /* var variable: Variable */;
223 val* var1 /* : AVarExpr */;
224 var_variable = p0;
225 var1 = NEW_parser_nodes__AVarExpr(&type_parser_nodes__AVarExpr);
226 ((void (*)(val*, val*))(var1->class->vft[COLOR_astbuilder__AVarExpr__make]))(var1, var_variable) /* make on <var1:AVarExpr>*/;
227 CHECK_NEW_parser_nodes__AVarExpr(var1);
228 var = var1;
229 goto RET_LABEL;
230 RET_LABEL:;
231 return var;
232 }
233 /* method astbuilder#ASTBuilder#make_var_read for (self: Object, Variable): AVarExpr */
234 val* VIRTUAL_astbuilder__ASTBuilder__make_var_read(val* self, val* p0) {
235 val* var /* : AVarExpr */;
236 val* var1 /* : AVarExpr */;
237 var1 = astbuilder__ASTBuilder__make_var_read(self, p0);
238 var = var1;
239 RET_LABEL:;
240 return var;
241 }
242 /* method astbuilder#ASTBuilder#make_var_assign for (self: ASTBuilder, Variable, AExpr): AVarAssignExpr */
243 val* astbuilder__ASTBuilder__make_var_assign(val* self, val* p0, val* p1) {
244 val* var /* : AVarAssignExpr */;
245 val* var_variable /* var variable: Variable */;
246 val* var_value /* var value: AExpr */;
247 val* var1 /* : AVarAssignExpr */;
248 var_variable = p0;
249 var_value = p1;
250 var1 = NEW_parser_nodes__AVarAssignExpr(&type_parser_nodes__AVarAssignExpr);
251 ((void (*)(val*, val*, val*))(var1->class->vft[COLOR_astbuilder__AVarAssignExpr__make]))(var1, var_variable, var_value) /* make on <var1:AVarAssignExpr>*/;
252 CHECK_NEW_parser_nodes__AVarAssignExpr(var1);
253 var = var1;
254 goto RET_LABEL;
255 RET_LABEL:;
256 return var;
257 }
258 /* method astbuilder#ASTBuilder#make_var_assign for (self: Object, Variable, AExpr): AVarAssignExpr */
259 val* VIRTUAL_astbuilder__ASTBuilder__make_var_assign(val* self, val* p0, val* p1) {
260 val* var /* : AVarAssignExpr */;
261 val* var1 /* : AVarAssignExpr */;
262 var1 = astbuilder__ASTBuilder__make_var_assign(self, p0, p1);
263 var = var1;
264 RET_LABEL:;
265 return var;
266 }
267 /* method astbuilder#ASTBuilder#make_attr_read for (self: ASTBuilder, AExpr, MAttribute): AAttrExpr */
268 val* astbuilder__ASTBuilder__make_attr_read(val* self, val* p0, val* p1) {
269 val* var /* : AAttrExpr */;
270 val* var_recv /* var recv: AExpr */;
271 val* var_attribute /* var attribute: MAttribute */;
272 val* var1 /* : MPropDef */;
273 val* var2 /* : nullable MType */;
274 val* var3 /* : nullable MType */;
275 val* var4 /* : nullable MClassType */;
276 val* var5 /* : MModule */;
277 short int var6 /* : Bool */;
278 val* var7 /* : MType */;
279 val* var_mtype /* var mtype: MType */;
280 val* var8 /* : AAttrExpr */;
281 var_recv = p0;
282 var_attribute = p1;
283 var1 = ((val* (*)(val*))(var_attribute->class->vft[COLOR_model__MProperty__intro]))(var_attribute) /* intro on <var_attribute:MAttribute>*/;
284 var2 = ((val* (*)(val*))(var1->class->vft[COLOR_model__MAttributeDef__static_mtype]))(var1) /* static_mtype on <var1:MPropDef(MAttributeDef)>*/;
285 var3 = ((val* (*)(val*))(var_recv->class->vft[COLOR_typing__AExpr__mtype]))(var_recv) /* mtype on <var_recv:AExpr>*/;
286 if (var3 == NULL) {
287 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/astbuilder.nit", 73);
288 exit(1);
289 }
290 var4 = ((val* (*)(val*))(self->class->vft[COLOR_astbuilder__ASTBuilder__anchor]))(self) /* anchor on <self:ASTBuilder>*/;
291 var5 = ((val* (*)(val*))(self->class->vft[COLOR_astbuilder__ASTBuilder__mmodule]))(self) /* mmodule on <self:ASTBuilder>*/;
292 var6 = 1;
293 if (var2 == NULL) {
294 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Reciever is null", "src/astbuilder.nit", 73);
295 exit(1);
296 } else {
297 var7 = ((val* (*)(val*, val*, val*, val*, short int))(var2->class->vft[COLOR_model__MType__resolve_for]))(var2, var3, var4, var5, var6) /* resolve_for on <var2:nullable MType>*/;
298 }
299 var_mtype = var7;
300 var8 = NEW_parser_nodes__AAttrExpr(&type_parser_nodes__AAttrExpr);
301 ((void (*)(val*, val*, val*, val*))(var8->class->vft[COLOR_astbuilder__AAttrExpr__make]))(var8, var_recv, var_attribute, var_mtype) /* make on <var8:AAttrExpr>*/;
302 CHECK_NEW_parser_nodes__AAttrExpr(var8);
303 var = var8;
304 goto RET_LABEL;
305 RET_LABEL:;
306 return var;
307 }
308 /* method astbuilder#ASTBuilder#make_attr_read for (self: Object, AExpr, MAttribute): AAttrExpr */
309 val* VIRTUAL_astbuilder__ASTBuilder__make_attr_read(val* self, val* p0, val* p1) {
310 val* var /* : AAttrExpr */;
311 val* var1 /* : AAttrExpr */;
312 var1 = astbuilder__ASTBuilder__make_attr_read(self, p0, p1);
313 var = var1;
314 RET_LABEL:;
315 return var;
316 }
317 /* method astbuilder#ASTBuilder#make_attr_assign for (self: ASTBuilder, AExpr, MAttribute, AExpr): AAttrAssignExpr */
318 val* astbuilder__ASTBuilder__make_attr_assign(val* self, val* p0, val* p1, val* p2) {
319 val* var /* : AAttrAssignExpr */;
320 val* var_recv /* var recv: AExpr */;
321 val* var_attribute /* var attribute: MAttribute */;
322 val* var_value /* var value: AExpr */;
323 val* var1 /* : AAttrAssignExpr */;
324 var_recv = p0;
325 var_attribute = p1;
326 var_value = p2;
327 var1 = NEW_parser_nodes__AAttrAssignExpr(&type_parser_nodes__AAttrAssignExpr);
328 ((void (*)(val*, val*, val*, val*))(var1->class->vft[COLOR_astbuilder__AAttrAssignExpr__make]))(var1, var_recv, var_attribute, var_value) /* make on <var1:AAttrAssignExpr>*/;
329 CHECK_NEW_parser_nodes__AAttrAssignExpr(var1);
330 var = var1;
331 goto RET_LABEL;
332 RET_LABEL:;
333 return var;
334 }
335 /* method astbuilder#ASTBuilder#make_attr_assign for (self: Object, AExpr, MAttribute, AExpr): AAttrAssignExpr */
336 val* VIRTUAL_astbuilder__ASTBuilder__make_attr_assign(val* self, val* p0, val* p1, val* p2) {
337 val* var /* : AAttrAssignExpr */;
338 val* var1 /* : AAttrAssignExpr */;
339 var1 = astbuilder__ASTBuilder__make_attr_assign(self, p0, p1, p2);
340 var = var1;
341 RET_LABEL:;
342 return var;
343 }
344 /* method astbuilder#ASTBuilder#make_do for (self: ASTBuilder): ADoExpr */
345 val* astbuilder__ASTBuilder__make_do(val* self) {
346 val* var /* : ADoExpr */;
347 val* var1 /* : ADoExpr */;
348 var1 = NEW_parser_nodes__ADoExpr(&type_parser_nodes__ADoExpr);
349 ((void (*)(val*))(var1->class->vft[COLOR_astbuilder__ADoExpr__make]))(var1) /* make on <var1:ADoExpr>*/;
350 CHECK_NEW_parser_nodes__ADoExpr(var1);
351 var = var1;
352 goto RET_LABEL;
353 RET_LABEL:;
354 return var;
355 }
356 /* method astbuilder#ASTBuilder#make_do for (self: Object): ADoExpr */
357 val* VIRTUAL_astbuilder__ASTBuilder__make_do(val* self) {
358 val* var /* : ADoExpr */;
359 val* var1 /* : ADoExpr */;
360 var1 = astbuilder__ASTBuilder__make_do(self);
361 var = var1;
362 RET_LABEL:;
363 return var;
364 }
365 /* method astbuilder#ASTBuilder#make_if for (self: ASTBuilder, AExpr, nullable MType): AIfExpr */
366 val* astbuilder__ASTBuilder__make_if(val* self, val* p0, val* p1) {
367 val* var /* : AIfExpr */;
368 val* var_condition /* var condition: AExpr */;
369 val* var_mtype /* var mtype: nullable MType */;
370 val* var1 /* : AIfExpr */;
371 var_condition = p0;
372 var_mtype = p1;
373 var1 = NEW_parser_nodes__AIfExpr(&type_parser_nodes__AIfExpr);
374 ((void (*)(val*, val*, val*))(var1->class->vft[COLOR_astbuilder__AIfExpr__make]))(var1, var_condition, var_mtype) /* make on <var1:AIfExpr>*/;
375 CHECK_NEW_parser_nodes__AIfExpr(var1);
376 var = var1;
377 goto RET_LABEL;
378 RET_LABEL:;
379 return var;
380 }
381 /* method astbuilder#ASTBuilder#make_if for (self: Object, AExpr, nullable MType): AIfExpr */
382 val* VIRTUAL_astbuilder__ASTBuilder__make_if(val* self, val* p0, val* p1) {
383 val* var /* : AIfExpr */;
384 val* var1 /* : AIfExpr */;
385 var1 = astbuilder__ASTBuilder__make_if(self, p0, p1);
386 var = var1;
387 RET_LABEL:;
388 return var;
389 }
390 /* method astbuilder#ASTBuilder#init for (self: ASTBuilder, MModule, nullable MClassType) */
391 void astbuilder__ASTBuilder__init(val* self, val* p0, val* p1) {
392 self->attrs[COLOR_astbuilder__ASTBuilder___64dmmodule].val = p0; /* @mmodule on <self:ASTBuilder> */
393 self->attrs[COLOR_astbuilder__ASTBuilder___64danchor].val = p1; /* @anchor on <self:ASTBuilder> */
394 RET_LABEL:;
395 }
396 /* method astbuilder#ASTBuilder#init for (self: Object, MModule, nullable MClassType) */
397 void VIRTUAL_astbuilder__ASTBuilder__init(val* self, val* p0, val* p1) {
398 astbuilder__ASTBuilder__init(self, p0, p1);
399 RET_LABEL:;
400 }
401 /* method astbuilder#AExpr#make_var_read for (self: AExpr): AVarExpr */
402 val* astbuilder__AExpr__make_var_read(val* self) {
403 val* var /* : AVarExpr */;
404 val* var1 /* : nullable Variable */;
405 val* var_variable /* var variable: nullable Variable */;
406 val* var2 /* : null */;
407 short int var3 /* : Bool */;
408 val* var4 /* : nullable ANode */;
409 val* var5 /* : null */;
410 short int var6 /* : Bool */;
411 val* var7 /* : AExpr */;
412 val* var_place /* var place: AExpr */;
413 val* var8 /* : Variable */;
414 static val* varonce;
415 val* var9 /* : String */;
416 char* var10 /* : NativeString */;
417 long var11 /* : Int */;
418 val* var12 /* : String */;
419 val* var13 /* : nullable MType */;
420 val* var14 /* : AVarAssignExpr */;
421 val* var_nvar /* var nvar: AVarAssignExpr */;
422 val* var15 /* : AVarExpr */;
423 var1 = ((val* (*)(val*))(self->class->vft[COLOR_astbuilder__AExpr__variable_cache]))(self) /* variable_cache on <self:AExpr>*/;
424 var_variable = var1;
425 var2 = NULL;
426 if (var_variable == NULL) {
427 var3 = 1; /* is null */
428 } else {
429 var3 = 0; /* arg is null but recv is not */
430 }
431 if (var3){
432 var4 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANode__parent]))(self) /* parent on <self:AExpr>*/;
433 var5 = NULL;
434 if (var4 == NULL) {
435 var6 = 0; /* is null */
436 } else {
437 var6 = 1; /* arg is null and recv is not */
438 }
439 if (!var6) {
440 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Assert failed", "src/astbuilder.nit", 107);
441 exit(1);
442 }
443 var7 = ((val* (*)(val*))(self->class->vft[COLOR_astbuilder__AExpr__detach_with_placeholder]))(self) /* detach_with_placeholder on <self:AExpr>*/;
444 var_place = var7;
445 var8 = NEW_scope__Variable(&type_scope__Variable);
446 if (varonce) {
447 var9 = varonce;
448 } else {
449 var10 = "";
450 var11 = 0;
451 var12 = string__NativeString__to_s_with_length(var10, var11);
452 var9 = var12;
453 varonce = var9;
454 }
455 ((void (*)(val*, val*))(var8->class->vft[COLOR_scope__Variable__init]))(var8, var9) /* init on <var8:Variable>*/;
456 CHECK_NEW_scope__Variable(var8);
457 var_variable = var8;
458 var13 = ((val* (*)(val*))(self->class->vft[COLOR_typing__AExpr__mtype]))(self) /* mtype on <self:AExpr>*/;
459 ((void (*)(val*, val*))(var_variable->class->vft[COLOR_typing__Variable__declared_type_61d]))(var_variable, var13) /* declared_type= on <var_variable:nullable Variable(Variable)>*/;
460 var14 = NEW_parser_nodes__AVarAssignExpr(&type_parser_nodes__AVarAssignExpr);
461 ((void (*)(val*, val*, val*))(var14->class->vft[COLOR_astbuilder__AVarAssignExpr__make]))(var14, var_variable, self) /* make on <var14:AVarAssignExpr>*/;
462 CHECK_NEW_parser_nodes__AVarAssignExpr(var14);
463 var_nvar = var14;
464 ((void (*)(val*, val*))(var_place->class->vft[COLOR_parser_nodes__ANode__replace_with]))(var_place, var_nvar) /* replace_with on <var_place:AExpr>*/;
465 ((void (*)(val*, val*))(self->class->vft[COLOR_astbuilder__AExpr__variable_cache_61d]))(self, var_variable) /* variable_cache= on <self:AExpr>*/;
466 } else {
467 }
468 var15 = NEW_parser_nodes__AVarExpr(&type_parser_nodes__AVarExpr);
469 ((void (*)(val*, val*))(var15->class->vft[COLOR_astbuilder__AVarExpr__make]))(var15, var_variable) /* make on <var15:AVarExpr>*/;
470 CHECK_NEW_parser_nodes__AVarExpr(var15);
471 var = var15;
472 goto RET_LABEL;
473 RET_LABEL:;
474 return var;
475 }
476 /* method astbuilder#AExpr#make_var_read for (self: Object): AVarExpr */
477 val* VIRTUAL_astbuilder__AExpr__make_var_read(val* self) {
478 val* var /* : AVarExpr */;
479 val* var1 /* : AVarExpr */;
480 var1 = astbuilder__AExpr__make_var_read(self);
481 var = var1;
482 RET_LABEL:;
483 return var;
484 }
485 /* method astbuilder#AExpr#variable_cache for (self: AExpr): nullable Variable */
486 val* astbuilder__AExpr__variable_cache(val* self) {
487 val* var /* : nullable Variable */;
488 val* var1 /* : nullable Variable */;
489 var1 = self->attrs[COLOR_astbuilder__AExpr___64dvariable_cache].val; /* @variable_cache on <self:AExpr> */
490 var = var1;
491 RET_LABEL:;
492 return var;
493 }
494 /* method astbuilder#AExpr#variable_cache for (self: Object): nullable Variable */
495 val* VIRTUAL_astbuilder__AExpr__variable_cache(val* self) {
496 val* var /* : nullable Variable */;
497 val* var1 /* : nullable Variable */;
498 var1 = astbuilder__AExpr__variable_cache(self);
499 var = var1;
500 RET_LABEL:;
501 return var;
502 }
503 /* method astbuilder#AExpr#variable_cache= for (self: AExpr, nullable Variable) */
504 void astbuilder__AExpr__variable_cache_61d(val* self, val* p0) {
505 self->attrs[COLOR_astbuilder__AExpr___64dvariable_cache].val = p0; /* @variable_cache on <self:AExpr> */
506 RET_LABEL:;
507 }
508 /* method astbuilder#AExpr#variable_cache= for (self: Object, nullable Variable) */
509 void VIRTUAL_astbuilder__AExpr__variable_cache_61d(val* self, val* p0) {
510 astbuilder__AExpr__variable_cache_61d(self, p0);
511 RET_LABEL:;
512 }
513 /* method astbuilder#AExpr#detach_with_placeholder for (self: AExpr): AExpr */
514 val* astbuilder__AExpr__detach_with_placeholder(val* self) {
515 val* var /* : AExpr */;
516 val* var1 /* : APlaceholderExpr */;
517 val* var_h /* var h: APlaceholderExpr */;
518 var1 = NEW_astbuilder__APlaceholderExpr(&type_astbuilder__APlaceholderExpr);
519 ((void (*)(val*))(var1->class->vft[COLOR_astbuilder__APlaceholderExpr__make]))(var1) /* make on <var1:APlaceholderExpr>*/;
520 CHECK_NEW_astbuilder__APlaceholderExpr(var1);
521 var_h = var1;
522 ((void (*)(val*, val*))(self->class->vft[COLOR_parser_nodes__ANode__replace_with]))(self, var_h) /* replace_with on <self:AExpr>*/;
523 var = var_h;
524 goto RET_LABEL;
525 RET_LABEL:;
526 return var;
527 }
528 /* method astbuilder#AExpr#detach_with_placeholder for (self: Object): AExpr */
529 val* VIRTUAL_astbuilder__AExpr__detach_with_placeholder(val* self) {
530 val* var /* : AExpr */;
531 val* var1 /* : AExpr */;
532 var1 = astbuilder__AExpr__detach_with_placeholder(self);
533 var = var1;
534 RET_LABEL:;
535 return var;
536 }
537 /* method astbuilder#AExpr#add for (self: AExpr, AExpr) */
538 void astbuilder__AExpr__add(val* self, val* p0) {
539 val* var_expr /* var expr: AExpr */;
540 var_expr = p0;
541 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Aborted", "src/astbuilder.nit", 147);
542 exit(1);
543 RET_LABEL:;
544 }
545 /* method astbuilder#AExpr#add for (self: Object, AExpr) */
546 void VIRTUAL_astbuilder__AExpr__add(val* self, val* p0) {
547 astbuilder__AExpr__add(self, p0);
548 RET_LABEL:;
549 }
550 /* method astbuilder#APlaceholderExpr#make for (self: APlaceholderExpr) */
551 void astbuilder__APlaceholderExpr__make(val* self) {
552 ((void (*)(val*))(self->class->vft[COLOR_parser_nodes__AExpr__init]))(self) /* init on <self:APlaceholderExpr>*/;
553 RET_LABEL:;
554 }
555 /* method astbuilder#APlaceholderExpr#make for (self: Object) */
556 void VIRTUAL_astbuilder__APlaceholderExpr__make(val* self) {
557 astbuilder__APlaceholderExpr__make(self);
558 RET_LABEL:;
559 }
560 /* method astbuilder#ABlockExpr#make for (self: ABlockExpr) */
561 void astbuilder__ABlockExpr__make(val* self) {
562 short int var /* : Bool */;
563 var = 1;
564 ((void (*)(val*, short int))(self->class->vft[COLOR_typing__AExpr__is_typed_61d]))(self, var) /* is_typed= on <self:ABlockExpr>*/;
565 RET_LABEL:;
566 }
567 /* method astbuilder#ABlockExpr#make for (self: Object) */
568 void VIRTUAL_astbuilder__ABlockExpr__make(val* self) {
569 astbuilder__ABlockExpr__make(self);
570 RET_LABEL:;
571 }
572 /* method astbuilder#ABlockExpr#add for (self: ABlockExpr, AExpr) */
573 void astbuilder__ABlockExpr__add(val* self, val* p0) {
574 val* var_expr /* var expr: AExpr */;
575 val* var /* : ANodes[AExpr] */;
576 var_expr = p0;
577 var = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ABlockExpr__n_expr]))(self) /* n_expr on <self:ABlockExpr>*/;
578 ((void (*)(val*, val*))(var->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var, var_expr) /* add on <var:ANodes[AExpr]>*/;
579 RET_LABEL:;
580 }
581 /* method astbuilder#ABlockExpr#add for (self: Object, AExpr) */
582 void VIRTUAL_astbuilder__ABlockExpr__add(val* self, val* p0) {
583 astbuilder__ABlockExpr__add(self, p0);
584 RET_LABEL:;
585 }
586 /* method astbuilder#ADoExpr#make for (self: ADoExpr) */
587 void astbuilder__ADoExpr__make(val* self) {
588 val* var /* : TKwdo */;
589 val* var1 /* : EscapeMark */;
590 val* var2 /* : null */;
591 short int var3 /* : Bool */;
592 var = NEW_parser_nodes__TKwdo(&type_parser_nodes__TKwdo);
593 ((void (*)(val*))(var->class->vft[COLOR_parser_nodes__TKwdo__init]))(var) /* init on <var:TKwdo>*/;
594 CHECK_NEW_parser_nodes__TKwdo(var);
595 self->attrs[COLOR_parser_nodes__ADoExpr___n_kwdo].val = var; /* _n_kwdo on <self:ADoExpr> */
596 var1 = NEW_scope__EscapeMark(&type_scope__EscapeMark);
597 var2 = NULL;
598 var3 = 0;
599 ((void (*)(val*, val*, short int))(var1->class->vft[COLOR_scope__EscapeMark__init]))(var1, var2, var3) /* init on <var1:EscapeMark>*/;
600 CHECK_NEW_scope__EscapeMark(var1);
601 ((void (*)(val*, val*))(self->class->vft[COLOR_scope__ADoExpr__escapemark_61d]))(self, var1) /* escapemark= on <self:ADoExpr>*/;
602 RET_LABEL:;
603 }
604 /* method astbuilder#ADoExpr#make for (self: Object) */
605 void VIRTUAL_astbuilder__ADoExpr__make(val* self) {
606 astbuilder__ADoExpr__make(self);
607 RET_LABEL:;
608 }
609 /* method astbuilder#ADoExpr#make_break for (self: ADoExpr): ABreakExpr */
610 val* astbuilder__ADoExpr__make_break(val* self) {
611 val* var /* : ABreakExpr */;
612 val* var1 /* : nullable EscapeMark */;
613 val* var_escapemark /* var escapemark: nullable EscapeMark */;
614 val* var2 /* : null */;
615 short int var3 /* : Bool */;
616 val* var4 /* : EscapeMark */;
617 val* var5 /* : null */;
618 short int var6 /* : Bool */;
619 val* var7 /* : ABreakExpr */;
620 var1 = ((val* (*)(val*))(self->class->vft[COLOR_scope__ADoExpr__escapemark]))(self) /* escapemark on <self:ADoExpr>*/;
621 var_escapemark = var1;
622 var2 = NULL;
623 if (var_escapemark == NULL) {
624 var3 = 1; /* is null */
625 } else {
626 var3 = 0; /* arg is null but recv is not */
627 }
628 if (var3){
629 var4 = NEW_scope__EscapeMark(&type_scope__EscapeMark);
630 var5 = NULL;
631 var6 = 0;
632 ((void (*)(val*, val*, short int))(var4->class->vft[COLOR_scope__EscapeMark__init]))(var4, var5, var6) /* init on <var4:EscapeMark>*/;
633 CHECK_NEW_scope__EscapeMark(var4);
634 var_escapemark = var4;
635 ((void (*)(val*, val*))(self->class->vft[COLOR_scope__ADoExpr__escapemark_61d]))(self, var_escapemark) /* escapemark= on <self:ADoExpr>*/;
636 } else {
637 }
638 var7 = NEW_parser_nodes__ABreakExpr(&type_parser_nodes__ABreakExpr);
639 ((void (*)(val*, val*))(var7->class->vft[COLOR_astbuilder__ABreakExpr__make]))(var7, var_escapemark) /* make on <var7:ABreakExpr>*/;
640 CHECK_NEW_parser_nodes__ABreakExpr(var7);
641 var = var7;
642 goto RET_LABEL;
643 RET_LABEL:;
644 return var;
645 }
646 /* method astbuilder#ADoExpr#make_break for (self: Object): ABreakExpr */
647 val* VIRTUAL_astbuilder__ADoExpr__make_break(val* self) {
648 val* var /* : ABreakExpr */;
649 val* var1 /* : ABreakExpr */;
650 var1 = astbuilder__ADoExpr__make_break(self);
651 var = var1;
652 RET_LABEL:;
653 return var;
654 }
655 /* method astbuilder#ABreakExpr#make for (self: ABreakExpr, EscapeMark) */
656 void astbuilder__ABreakExpr__make(val* self, val* p0) {
657 val* var_escapemark /* var escapemark: EscapeMark */;
658 var_escapemark = p0;
659 ((void (*)(val*, val*))(self->class->vft[COLOR_scope__ABreakExpr__escapemark_61d]))(self, var_escapemark) /* escapemark= on <self:ABreakExpr>*/;
660 RET_LABEL:;
661 }
662 /* method astbuilder#ABreakExpr#make for (self: Object, EscapeMark) */
663 void VIRTUAL_astbuilder__ABreakExpr__make(val* self, val* p0) {
664 astbuilder__ABreakExpr__make(self, p0);
665 RET_LABEL:;
666 }
667 /* method astbuilder#AIfExpr#make for (self: AIfExpr, AExpr, nullable MType) */
668 void astbuilder__AIfExpr__make(val* self, val* p0, val* p1) {
669 val* var_condition /* var condition: AExpr */;
670 val* var_mtype /* var mtype: nullable MType */;
671 val* var /* : TKwif */;
672 val* var1 /* : AExpr */;
673 val* var2 /* : ABlockExpr */;
674 val* var3 /* : ABlockExpr */;
675 short int var4 /* : Bool */;
676 var_condition = p0;
677 var_mtype = p1;
678 var = NEW_parser_nodes__TKwif(&type_parser_nodes__TKwif);
679 ((void (*)(val*))(var->class->vft[COLOR_parser_nodes__TKwif__init]))(var) /* init on <var:TKwif>*/;
680 CHECK_NEW_parser_nodes__TKwif(var);
681 self->attrs[COLOR_parser_nodes__AIfExpr___n_kwif].val = var; /* _n_kwif on <self:AIfExpr> */
682 self->attrs[COLOR_parser_nodes__AIfExpr___n_expr].val = var_condition; /* _n_expr on <self:AIfExpr> */
683 var1 = self->attrs[COLOR_parser_nodes__AIfExpr___n_expr].val; /* _n_expr on <self:AIfExpr> */
684 if (var1 == NULL) {
685 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _n_expr", "src/astbuilder.nit", 208);
686 exit(1);
687 }
688 ((void (*)(val*, val*))(var1->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var1, self) /* parent= on <var1:AExpr>*/;
689 var2 = NEW_parser_nodes__ABlockExpr(&type_parser_nodes__ABlockExpr);
690 ((void (*)(val*))(var2->class->vft[COLOR_astbuilder__ABlockExpr__make]))(var2) /* make on <var2:ABlockExpr>*/;
691 CHECK_NEW_parser_nodes__ABlockExpr(var2);
692 self->attrs[COLOR_parser_nodes__AIfExpr___n_then].val = var2; /* _n_then on <self:AIfExpr> */
693 var3 = NEW_parser_nodes__ABlockExpr(&type_parser_nodes__ABlockExpr);
694 ((void (*)(val*))(var3->class->vft[COLOR_astbuilder__ABlockExpr__make]))(var3) /* make on <var3:ABlockExpr>*/;
695 CHECK_NEW_parser_nodes__ABlockExpr(var3);
696 self->attrs[COLOR_parser_nodes__AIfExpr___n_else].val = var3; /* _n_else on <self:AIfExpr> */
697 ((void (*)(val*, val*))(self->class->vft[COLOR_typing__AExpr__mtype_61d]))(self, var_mtype) /* mtype= on <self:AIfExpr>*/;
698 var4 = 1;
699 ((void (*)(val*, short int))(self->class->vft[COLOR_typing__AExpr__is_typed_61d]))(self, var4) /* is_typed= on <self:AIfExpr>*/;
700 RET_LABEL:;
701 }
702 /* method astbuilder#AIfExpr#make for (self: Object, AExpr, nullable MType) */
703 void VIRTUAL_astbuilder__AIfExpr__make(val* self, val* p0, val* p1) {
704 astbuilder__AIfExpr__make(self, p0, p1);
705 RET_LABEL:;
706 }
707 /* method astbuilder#AType#make for (self: AType) */
708 void astbuilder__AType__make(val* self) {
709 val* var /* : TClassid */;
710 var = NEW_parser_nodes__TClassid(&type_parser_nodes__TClassid);
711 ((void (*)(val*))(var->class->vft[COLOR_parser_nodes__TClassid__init]))(var) /* init on <var:TClassid>*/;
712 CHECK_NEW_parser_nodes__TClassid(var);
713 self->attrs[COLOR_parser_nodes__AType___n_id].val = var; /* _n_id on <self:AType> */
714 RET_LABEL:;
715 }
716 /* method astbuilder#AType#make for (self: Object) */
717 void VIRTUAL_astbuilder__AType__make(val* self) {
718 astbuilder__AType__make(self);
719 RET_LABEL:;
720 }
721 /* method astbuilder#AIntExpr#make for (self: AIntExpr, Int, MType) */
722 void astbuilder__AIntExpr__make(val* self, long p0, val* p1) {
723 long var_value /* var value: Int */;
724 val* var_t /* var t: MType */;
725 val* var /* : nullable Int */;
726 val* var1 /* : TNumber */;
727 var_value = p0;
728 var_t = p1;
729 var = BOX_kernel__Int(var_value); /* autobox from Int to nullable Int */
730 ((void (*)(val*, val*))(self->class->vft[COLOR_literal__AIntExpr__value_61d]))(self, var) /* value= on <self:AIntExpr>*/;
731 var1 = NEW_parser_nodes__TNumber(&type_parser_nodes__TNumber);
732 ((void (*)(val*))(var1->class->vft[COLOR_parser_nodes__TNumber__init]))(var1) /* init on <var1:TNumber>*/;
733 CHECK_NEW_parser_nodes__TNumber(var1);
734 self->attrs[COLOR_parser_nodes__AIntExpr___n_number].val = var1; /* _n_number on <self:AIntExpr> */
735 ((void (*)(val*, val*))(self->class->vft[COLOR_typing__AExpr__mtype_61d]))(self, var_t) /* mtype= on <self:AIntExpr>*/;
736 RET_LABEL:;
737 }
738 /* method astbuilder#AIntExpr#make for (self: Object, Int, MType) */
739 void VIRTUAL_astbuilder__AIntExpr__make(val* self, long p0, val* p1) {
740 astbuilder__AIntExpr__make(self, p0, p1);
741 RET_LABEL:;
742 }
743 /* method astbuilder#ANewExpr#make for (self: ANewExpr, MClassType, MMethod, nullable Array[AExpr]) */
744 void astbuilder__ANewExpr__make(val* self, val* p0, val* p1, val* p2) {
745 val* var_mtype /* var mtype: MClassType */;
746 val* var_mmethod /* var mmethod: MMethod */;
747 val* var_args /* var args: nullable Array[AExpr] */;
748 val* var /* : TKwnew */;
749 val* var1 /* : AType */;
750 val* var2 /* : AListExprs */;
751 val* var3 /* : null */;
752 short int var4 /* : Bool */;
753 val* var5 /* : AExprs */;
754 val* var6 /* : ANodes[AExpr] */;
755 val* var7 /* : CallSite */;
756 short int var8 /* : Bool */;
757 val* var9 /* : MPropDef */;
758 val* var10 /* : MPropDef */;
759 val* var11 /* : nullable MSignature */;
760 short int var12 /* : Bool */;
761 var_mtype = p0;
762 var_mmethod = p1;
763 var_args = p2;
764 var = NEW_parser_nodes__TKwnew(&type_parser_nodes__TKwnew);
765 ((void (*)(val*))(var->class->vft[COLOR_parser_nodes__TKwnew__init]))(var) /* init on <var:TKwnew>*/;
766 CHECK_NEW_parser_nodes__TKwnew(var);
767 self->attrs[COLOR_parser_nodes__ANewExpr___n_kwnew].val = var; /* _n_kwnew on <self:ANewExpr> */
768 var1 = NEW_parser_nodes__AType(&type_parser_nodes__AType);
769 ((void (*)(val*))(var1->class->vft[COLOR_astbuilder__AType__make]))(var1) /* make on <var1:AType>*/;
770 CHECK_NEW_parser_nodes__AType(var1);
771 self->attrs[COLOR_parser_nodes__ANewExpr___n_type].val = var1; /* _n_type on <self:ANewExpr> */
772 var2 = NEW_parser_nodes__AListExprs(&type_parser_nodes__AListExprs);
773 ((void (*)(val*))(var2->class->vft[COLOR_parser_nodes__AListExprs__init]))(var2) /* init on <var2:AListExprs>*/;
774 CHECK_NEW_parser_nodes__AListExprs(var2);
775 self->attrs[COLOR_parser_nodes__ANewExpr___n_args].val = var2; /* _n_args on <self:ANewExpr> */
776 var3 = NULL;
777 if (var_args == NULL) {
778 var4 = 0; /* is null */
779 } else {
780 var4 = 1; /* arg is null and recv is not */
781 }
782 if (var4){
783 var5 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANewExpr__n_args]))(self) /* n_args on <self:ANewExpr>*/;
784 var6 = ((val* (*)(val*))(var5->class->vft[COLOR_parser_nodes__AExprs__n_exprs]))(var5) /* n_exprs on <var5:AExprs>*/;
785 ((void (*)(val*, val*))(var6->class->vft[COLOR_abstract_collection__SimpleCollection__add_all]))(var6, var_args) /* add_all on <var6:ANodes[AExpr]>*/;
786 } else {
787 }
788 var7 = NEW_typing__CallSite(&type_typing__CallSite);
789 var8 = 1;
790 var9 = ((val* (*)(val*))(var_mmethod->class->vft[COLOR_model__MProperty__intro]))(var_mmethod) /* intro on <var_mmethod:MMethod>*/;
791 var10 = ((val* (*)(val*))(var_mmethod->class->vft[COLOR_model__MProperty__intro]))(var_mmethod) /* intro on <var_mmethod:MMethod>*/;
792 var11 = ((val* (*)(val*))(var10->class->vft[COLOR_model__MMethodDef__msignature]))(var10) /* msignature on <var10:MPropDef(MMethodDef)>*/;
793 if (var11 == NULL) {
794 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/astbuilder.nit", 241);
795 exit(1);
796 }
797 var12 = 0;
798 ((void (*)(val*, val*, val*, short int, val*, val*, val*, short int))(var7->class->vft[COLOR_typing__CallSite__init]))(var7, self, var_mtype, var8, var_mmethod, var9, var11, var12) /* init on <var7:CallSite>*/;
799 CHECK_NEW_typing__CallSite(var7);
800 ((void (*)(val*, val*))(self->class->vft[COLOR_typing__ANewExpr__callsite_61d]))(self, var7) /* callsite= on <self:ANewExpr>*/;
801 ((void (*)(val*, val*))(self->class->vft[COLOR_typing__AExpr__mtype_61d]))(self, var_mtype) /* mtype= on <self:ANewExpr>*/;
802 RET_LABEL:;
803 }
804 /* method astbuilder#ANewExpr#make for (self: Object, MClassType, MMethod, nullable Array[AExpr]) */
805 void VIRTUAL_astbuilder__ANewExpr__make(val* self, val* p0, val* p1, val* p2) {
806 astbuilder__ANewExpr__make(self, p0, p1, p2);
807 RET_LABEL:;
808 }
809 /* method astbuilder#ACallExpr#make for (self: ACallExpr, AExpr, MMethod, nullable Array[AExpr], nullable MType) */
810 void astbuilder__ACallExpr__make(val* self, val* p0, val* p1, val* p2, val* p3) {
811 val* var_recv /* var recv: AExpr */;
812 val* var_mmethod /* var mmethod: MMethod */;
813 val* var_args /* var args: nullable Array[AExpr] */;
814 val* var_t /* var t: nullable MType */;
815 val* var /* : Array[AExpr] */;
816 val* var1 /* : Array[AExpr] */;
817 val* var2 /* : AListExprs */;
818 val* var3 /* : TId */;
819 val* var4 /* : null */;
820 short int var5 /* : Bool */;
821 val* var6 /* : AExprs */;
822 val* var7 /* : ANodes[AExpr] */;
823 val* var8 /* : nullable MType */;
824 val* var_mtype /* var mtype: MType */;
825 val* var9 /* : CallSite */;
826 short int var10 /* : Bool */;
827 val* var11 /* : MPropDef */;
828 val* var12 /* : MPropDef */;
829 val* var13 /* : nullable MSignature */;
830 short int var14 /* : Bool */;
831 short int var15 /* : Bool */;
832 var_recv = p0;
833 var_mmethod = p1;
834 var_args = p2;
835 var_t = p3;
836 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_recv; /* _n_expr on <self:ACallExpr> */
837 ((void (*)(val*, val*))(var_recv->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_recv, self) /* parent= on <var_recv:AExpr>*/;
838 if (var_args!=NULL) {
839 var = var_args;
840 } else {
841 var1 = NEW_array__Array(&type_array__Arrayparser_nodes__AExpr);
842 ((void (*)(val*))(var1->class->vft[COLOR_array__Array__init]))(var1) /* init on <var1:Array[AExpr]>*/;
843 CHECK_NEW_array__Array(var1);
844 var = var1;
845 }
846 ((void (*)(val*, val*))(self->class->vft[COLOR_typing__ASendExpr__raw_arguments_61d]))(self, var) /* raw_arguments= on <self:ACallExpr>*/;
847 var2 = NEW_parser_nodes__AListExprs(&type_parser_nodes__AListExprs);
848 ((void (*)(val*))(var2->class->vft[COLOR_parser_nodes__AListExprs__init]))(var2) /* init on <var2:AListExprs>*/;
849 CHECK_NEW_parser_nodes__AListExprs(var2);
850 self->attrs[COLOR_parser_nodes__ACallFormExpr___n_args].val = var2; /* _n_args on <self:ACallExpr> */
851 var3 = NEW_parser_nodes__TId(&type_parser_nodes__TId);
852 ((void (*)(val*))(var3->class->vft[COLOR_parser_nodes__TId__init]))(var3) /* init on <var3:TId>*/;
853 CHECK_NEW_parser_nodes__TId(var3);
854 self->attrs[COLOR_parser_nodes__ACallFormExpr___n_id].val = var3; /* _n_id on <self:ACallExpr> */
855 var4 = NULL;
856 if (var_args == NULL) {
857 var5 = 0; /* is null */
858 } else {
859 var5 = 1; /* arg is null and recv is not */
860 }
861 if (var5){
862 var6 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ACallFormExpr__n_args]))(self) /* n_args on <self:ACallExpr>*/;
863 var7 = ((val* (*)(val*))(var6->class->vft[COLOR_parser_nodes__AExprs__n_exprs]))(var6) /* n_exprs on <var6:AExprs>*/;
864 ((void (*)(val*, val*))(var7->class->vft[COLOR_abstract_collection__SimpleCollection__add_all]))(var7, var_args) /* add_all on <var7:ANodes[AExpr]>*/;
865 } else {
866 }
867 var8 = ((val* (*)(val*))(var_recv->class->vft[COLOR_typing__AExpr__mtype]))(var_recv) /* mtype on <var_recv:AExpr>*/;
868 if (var8 == NULL) {
869 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/astbuilder.nit", 257);
870 exit(1);
871 }
872 var_mtype = var8;
873 var9 = NEW_typing__CallSite(&type_typing__CallSite);
874 var10 = 1;
875 var11 = ((val* (*)(val*))(var_mmethod->class->vft[COLOR_model__MProperty__intro]))(var_mmethod) /* intro on <var_mmethod:MMethod>*/;
876 var12 = ((val* (*)(val*))(var_mmethod->class->vft[COLOR_model__MProperty__intro]))(var_mmethod) /* intro on <var_mmethod:MMethod>*/;
877 var13 = ((val* (*)(val*))(var12->class->vft[COLOR_model__MMethodDef__msignature]))(var12) /* msignature on <var12:MPropDef(MMethodDef)>*/;
878 if (var13 == NULL) {
879 fprintf(stderr, "Runtime error: %s (%s:%d)\n", "Cast failed", "src/astbuilder.nit", 258);
880 exit(1);
881 }
882 var14 = 0;
883 ((void (*)(val*, val*, val*, short int, val*, val*, val*, short int))(var9->class->vft[COLOR_typing__CallSite__init]))(var9, self, var_mtype, var10, var_mmethod, var11, var13, var14) /* init on <var9:CallSite>*/;
884 CHECK_NEW_typing__CallSite(var9);
885 ((void (*)(val*, val*))(self->class->vft[COLOR_typing__ASendExpr__callsite_61d]))(self, var9) /* callsite= on <self:ACallExpr>*/;
886 ((void (*)(val*, val*))(self->class->vft[COLOR_typing__AExpr__mtype_61d]))(self, var_t) /* mtype= on <self:ACallExpr>*/;
887 var15 = 1;
888 ((void (*)(val*, short int))(self->class->vft[COLOR_typing__AExpr__is_typed_61d]))(self, var15) /* is_typed= on <self:ACallExpr>*/;
889 RET_LABEL:;
890 }
891 /* method astbuilder#ACallExpr#make for (self: Object, AExpr, MMethod, nullable Array[AExpr], nullable MType) */
892 void VIRTUAL_astbuilder__ACallExpr__make(val* self, val* p0, val* p1, val* p2, val* p3) {
893 astbuilder__ACallExpr__make(self, p0, p1, p2, p3);
894 RET_LABEL:;
895 }
896 /* method astbuilder#AAttrExpr#make for (self: AAttrExpr, AExpr, MAttribute, MType) */
897 void astbuilder__AAttrExpr__make(val* self, val* p0, val* p1, val* p2) {
898 val* var_recv /* var recv: AExpr */;
899 val* var_attribute /* var attribute: MAttribute */;
900 val* var_t /* var t: MType */;
901 val* var /* : TAttrid */;
902 var_recv = p0;
903 var_attribute = p1;
904 var_t = p2;
905 self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_expr].val = var_recv; /* _n_expr on <self:AAttrExpr> */
906 ((void (*)(val*, val*))(var_recv->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_recv, self) /* parent= on <var_recv:AExpr>*/;
907 var = NEW_parser_nodes__TAttrid(&type_parser_nodes__TAttrid);
908 ((void (*)(val*))(var->class->vft[COLOR_parser_nodes__TAttrid__init]))(var) /* init on <var:TAttrid>*/;
909 CHECK_NEW_parser_nodes__TAttrid(var);
910 self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_id].val = var; /* _n_id on <self:AAttrExpr> */
911 ((void (*)(val*, val*))(self->class->vft[COLOR_typing__AAttrFormExpr__mproperty_61d]))(self, var_attribute) /* mproperty= on <self:AAttrExpr>*/;
912 ((void (*)(val*, val*))(self->class->vft[COLOR_typing__AExpr__mtype_61d]))(self, var_t) /* mtype= on <self:AAttrExpr>*/;
913 RET_LABEL:;
914 }
915 /* method astbuilder#AAttrExpr#make for (self: Object, AExpr, MAttribute, MType) */
916 void VIRTUAL_astbuilder__AAttrExpr__make(val* self, val* p0, val* p1, val* p2) {
917 astbuilder__AAttrExpr__make(self, p0, p1, p2);
918 RET_LABEL:;
919 }
920 /* method astbuilder#AAttrAssignExpr#make for (self: AAttrAssignExpr, AExpr, MAttribute, AExpr) */
921 void astbuilder__AAttrAssignExpr__make(val* self, val* p0, val* p1, val* p2) {
922 val* var_recv /* var recv: AExpr */;
923 val* var_attribute /* var attribute: MAttribute */;
924 val* var_value /* var value: AExpr */;
925 val* var /* : TAttrid */;
926 val* var1 /* : TAssign */;
927 val* var2 /* : nullable MType */;
928 var_recv = p0;
929 var_attribute = p1;
930 var_value = p2;
931 self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_expr].val = var_recv; /* _n_expr on <self:AAttrAssignExpr> */
932 ((void (*)(val*, val*))(var_recv->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_recv, self) /* parent= on <var_recv:AExpr>*/;
933 var = NEW_parser_nodes__TAttrid(&type_parser_nodes__TAttrid);
934 ((void (*)(val*))(var->class->vft[COLOR_parser_nodes__TAttrid__init]))(var) /* init on <var:TAttrid>*/;
935 CHECK_NEW_parser_nodes__TAttrid(var);
936 self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_id].val = var; /* _n_id on <self:AAttrAssignExpr> */
937 self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_value].val = var_value; /* _n_value on <self:AAttrAssignExpr> */
938 ((void (*)(val*, val*))(var_value->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_value, self) /* parent= on <var_value:AExpr>*/;
939 var1 = NEW_parser_nodes__TAssign(&type_parser_nodes__TAssign);
940 ((void (*)(val*))(var1->class->vft[COLOR_parser_nodes__TAssign__init]))(var1) /* init on <var1:TAssign>*/;
941 CHECK_NEW_parser_nodes__TAssign(var1);
942 self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_assign].val = var1; /* _n_assign on <self:AAttrAssignExpr> */
943 ((void (*)(val*, val*))(self->class->vft[COLOR_typing__AAttrFormExpr__mproperty_61d]))(self, var_attribute) /* mproperty= on <self:AAttrAssignExpr>*/;
944 var2 = ((val* (*)(val*))(var_value->class->vft[COLOR_typing__AExpr__mtype]))(var_value) /* mtype on <var_value:AExpr>*/;
945 ((void (*)(val*, val*))(self->class->vft[COLOR_typing__AExpr__mtype_61d]))(self, var2) /* mtype= on <self:AAttrAssignExpr>*/;
946 RET_LABEL:;
947 }
948 /* method astbuilder#AAttrAssignExpr#make for (self: Object, AExpr, MAttribute, AExpr) */
949 void VIRTUAL_astbuilder__AAttrAssignExpr__make(val* self, val* p0, val* p1, val* p2) {
950 astbuilder__AAttrAssignExpr__make(self, p0, p1, p2);
951 RET_LABEL:;
952 }
953 /* method astbuilder#AVarExpr#make for (self: AVarExpr, Variable) */
954 void astbuilder__AVarExpr__make(val* self, val* p0) {
955 val* var_v /* var v: Variable */;
956 val* var /* : TId */;
957 val* var1 /* : nullable MType */;
958 var_v = p0;
959 var = NEW_parser_nodes__TId(&type_parser_nodes__TId);
960 ((void (*)(val*))(var->class->vft[COLOR_parser_nodes__TId__init]))(var) /* init on <var:TId>*/;
961 CHECK_NEW_parser_nodes__TId(var);
962 self->attrs[COLOR_parser_nodes__AVarFormExpr___n_id].val = var; /* _n_id on <self:AVarExpr> */
963 ((void (*)(val*, val*))(self->class->vft[COLOR_scope__AVarFormExpr__variable_61d]))(self, var_v) /* variable= on <self:AVarExpr>*/;
964 var1 = ((val* (*)(val*))(var_v->class->vft[COLOR_typing__Variable__declared_type]))(var_v) /* declared_type on <var_v:Variable>*/;
965 ((void (*)(val*, val*))(self->class->vft[COLOR_typing__AExpr__mtype_61d]))(self, var1) /* mtype= on <self:AVarExpr>*/;
966 RET_LABEL:;
967 }
968 /* method astbuilder#AVarExpr#make for (self: Object, Variable) */
969 void VIRTUAL_astbuilder__AVarExpr__make(val* self, val* p0) {
970 astbuilder__AVarExpr__make(self, p0);
971 RET_LABEL:;
972 }
973 /* method astbuilder#AVarAssignExpr#make for (self: AVarAssignExpr, Variable, AExpr) */
974 void astbuilder__AVarAssignExpr__make(val* self, val* p0, val* p1) {
975 val* var_v /* var v: Variable */;
976 val* var_value /* var value: AExpr */;
977 val* var /* : TId */;
978 val* var1 /* : TAssign */;
979 val* var2 /* : nullable MType */;
980 var_v = p0;
981 var_value = p1;
982 var = NEW_parser_nodes__TId(&type_parser_nodes__TId);
983 ((void (*)(val*))(var->class->vft[COLOR_parser_nodes__TId__init]))(var) /* init on <var:TId>*/;
984 CHECK_NEW_parser_nodes__TId(var);
985 self->attrs[COLOR_parser_nodes__AVarFormExpr___n_id].val = var; /* _n_id on <self:AVarAssignExpr> */
986 self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_value].val = var_value; /* _n_value on <self:AVarAssignExpr> */
987 ((void (*)(val*, val*))(var_value->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_value, self) /* parent= on <var_value:AExpr>*/;
988 var1 = NEW_parser_nodes__TAssign(&type_parser_nodes__TAssign);
989 ((void (*)(val*))(var1->class->vft[COLOR_parser_nodes__TAssign__init]))(var1) /* init on <var1:TAssign>*/;
990 CHECK_NEW_parser_nodes__TAssign(var1);
991 self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_assign].val = var1; /* _n_assign on <self:AVarAssignExpr> */
992 ((void (*)(val*, val*))(self->class->vft[COLOR_scope__AVarFormExpr__variable_61d]))(self, var_v) /* variable= on <self:AVarAssignExpr>*/;
993 var2 = ((val* (*)(val*))(var_value->class->vft[COLOR_typing__AExpr__mtype]))(var_value) /* mtype on <var_value:AExpr>*/;
994 ((void (*)(val*, val*))(self->class->vft[COLOR_typing__AExpr__mtype_61d]))(self, var2) /* mtype= on <self:AVarAssignExpr>*/;
995 RET_LABEL:;
996 }
997 /* method astbuilder#AVarAssignExpr#make for (self: Object, Variable, AExpr) */
998 void VIRTUAL_astbuilder__AVarAssignExpr__make(val* self, val* p0, val* p1) {
999 astbuilder__AVarAssignExpr__make(self, p0, p1);
1000 RET_LABEL:;
1001 }