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