Merge: Compilation to JavaScript using the Emscripten SDK
[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 show_backtrace(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 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 var = var1;
118 goto RET_LABEL;
119 RET_LABEL:;
120 return var;
121 }
122 /* method astbuilder#ASTBuilder#make_new for (self: Object, MClassType, MMethod, nullable Array[AExpr]): ANewExpr */
123 val* VIRTUAL_astbuilder__ASTBuilder__make_new(val* self, val* p0, val* p1, val* p2) {
124 val* var /* : ANewExpr */;
125 val* var1 /* : ANewExpr */;
126 var1 = astbuilder__ASTBuilder__make_new(self, p0, p1, p2);
127 var = var1;
128 RET_LABEL:;
129 return var;
130 }
131 /* method astbuilder#ASTBuilder#make_call for (self: ASTBuilder, AExpr, MMethod, nullable Array[AExpr]): ACallExpr */
132 val* astbuilder__ASTBuilder__make_call(val* self, val* p0, val* p1, val* p2) {
133 val* var /* : ACallExpr */;
134 val* var_recv /* var recv: AExpr */;
135 val* var_mmethod /* var mmethod: MMethod */;
136 val* var_args /* var args: nullable Array[AExpr] */;
137 val* var1 /* : MPropDef */;
138 val* var2 /* : nullable MSignature */;
139 val* var3 /* : nullable MType */;
140 val* var_mtype /* var mtype: nullable MType */;
141 val* var4 /* : null */;
142 short int var5 /* : Bool */;
143 val* var6 /* : nullable MType */;
144 val* var7 /* : nullable MClassType */;
145 val* var8 /* : MModule */;
146 short int var9 /* : Bool */;
147 val* var10 /* : MType */;
148 val* var11 /* : ACallExpr */;
149 var_recv = p0;
150 var_mmethod = p1;
151 var_args = p2;
152 var1 = ((val* (*)(val*))(var_mmethod->class->vft[COLOR_model__MProperty__intro]))(var_mmethod) /* intro on <var_mmethod:MMethod>*/;
153 var2 = ((val* (*)(val*))(var1->class->vft[COLOR_model__MMethodDef__msignature]))(var1) /* msignature on <var1:MPropDef(MMethodDef)>*/;
154 if (var2 == NULL) {
155 fprintf(stderr, "Runtime error: %s", "Receiver is null");
156 fprintf(stderr, " (%s:%d)\n", "src/astbuilder.nit", 47);
157 show_backtrace(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", "Cast failed");
172 fprintf(stderr, " (%s:%d)\n", "src/astbuilder.nit", 48);
173 show_backtrace(1);
174 }
175 var7 = ((val* (*)(val*))(self->class->vft[COLOR_astbuilder__ASTBuilder__anchor]))(self) /* anchor on <self:ASTBuilder>*/;
176 var8 = ((val* (*)(val*))(self->class->vft[COLOR_astbuilder__ASTBuilder__mmodule]))(self) /* mmodule on <self:ASTBuilder>*/;
177 var9 = 1;
178 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)>*/;
179 var_mtype = var10;
180 } else {
181 }
182 var11 = NEW_parser_nodes__ACallExpr(&type_parser_nodes__ACallExpr);
183 ((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>*/;
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 var = var1;
205 goto RET_LABEL;
206 RET_LABEL:;
207 return var;
208 }
209 /* method astbuilder#ASTBuilder#make_block for (self: Object): ABlockExpr */
210 val* VIRTUAL_astbuilder__ASTBuilder__make_block(val* self) {
211 val* var /* : ABlockExpr */;
212 val* var1 /* : ABlockExpr */;
213 var1 = astbuilder__ASTBuilder__make_block(self);
214 var = var1;
215 RET_LABEL:;
216 return var;
217 }
218 /* method astbuilder#ASTBuilder#make_var_read for (self: ASTBuilder, Variable, MType): AVarExpr */
219 val* astbuilder__ASTBuilder__make_var_read(val* self, val* p0, val* p1) {
220 val* var /* : AVarExpr */;
221 val* var_variable /* var variable: Variable */;
222 val* var_mtype /* var mtype: MType */;
223 val* var1 /* : AVarExpr */;
224 var_variable = p0;
225 var_mtype = p1;
226 var1 = NEW_parser_nodes__AVarExpr(&type_parser_nodes__AVarExpr);
227 ((void (*)(val*, val*, val*))(var1->class->vft[COLOR_astbuilder__AVarExpr__make]))(var1, var_variable, var_mtype) /* make on <var1:AVarExpr>*/;
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, MType): AVarExpr */
234 val* VIRTUAL_astbuilder__ASTBuilder__make_var_read(val* self, val* p0, val* p1) {
235 val* var /* : AVarExpr */;
236 val* var1 /* : AVarExpr */;
237 var1 = astbuilder__ASTBuilder__make_var_read(self, p0, p1);
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 var = var1;
253 goto RET_LABEL;
254 RET_LABEL:;
255 return var;
256 }
257 /* method astbuilder#ASTBuilder#make_var_assign for (self: Object, Variable, AExpr): AVarAssignExpr */
258 val* VIRTUAL_astbuilder__ASTBuilder__make_var_assign(val* self, val* p0, val* p1) {
259 val* var /* : AVarAssignExpr */;
260 val* var1 /* : AVarAssignExpr */;
261 var1 = astbuilder__ASTBuilder__make_var_assign(self, p0, p1);
262 var = var1;
263 RET_LABEL:;
264 return var;
265 }
266 /* method astbuilder#ASTBuilder#make_attr_read for (self: ASTBuilder, AExpr, MAttribute): AAttrExpr */
267 val* astbuilder__ASTBuilder__make_attr_read(val* self, val* p0, val* p1) {
268 val* var /* : AAttrExpr */;
269 val* var_recv /* var recv: AExpr */;
270 val* var_attribute /* var attribute: MAttribute */;
271 val* var1 /* : MPropDef */;
272 val* var2 /* : nullable MType */;
273 val* var3 /* : nullable MType */;
274 val* var4 /* : nullable MClassType */;
275 val* var5 /* : MModule */;
276 short int var6 /* : Bool */;
277 val* var7 /* : MType */;
278 val* var_mtype /* var mtype: MType */;
279 val* var8 /* : AAttrExpr */;
280 var_recv = p0;
281 var_attribute = p1;
282 var1 = ((val* (*)(val*))(var_attribute->class->vft[COLOR_model__MProperty__intro]))(var_attribute) /* intro on <var_attribute:MAttribute>*/;
283 var2 = ((val* (*)(val*))(var1->class->vft[COLOR_model__MAttributeDef__static_mtype]))(var1) /* static_mtype on <var1:MPropDef(MAttributeDef)>*/;
284 var3 = ((val* (*)(val*))(var_recv->class->vft[COLOR_typing__AExpr__mtype]))(var_recv) /* mtype on <var_recv:AExpr>*/;
285 if (var3 == NULL) {
286 fprintf(stderr, "Runtime error: %s", "Cast failed");
287 fprintf(stderr, " (%s:%d)\n", "src/astbuilder.nit", 73);
288 show_backtrace(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", "Receiver is null");
295 fprintf(stderr, " (%s:%d)\n", "src/astbuilder.nit", 73);
296 show_backtrace(1);
297 } else {
298 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>*/;
299 }
300 var_mtype = var7;
301 var8 = NEW_parser_nodes__AAttrExpr(&type_parser_nodes__AAttrExpr);
302 ((void (*)(val*, val*, val*, val*))(var8->class->vft[COLOR_astbuilder__AAttrExpr__make]))(var8, var_recv, var_attribute, var_mtype) /* make on <var8:AAttrExpr>*/;
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 var = var1;
330 goto RET_LABEL;
331 RET_LABEL:;
332 return var;
333 }
334 /* method astbuilder#ASTBuilder#make_attr_assign for (self: Object, AExpr, MAttribute, AExpr): AAttrAssignExpr */
335 val* VIRTUAL_astbuilder__ASTBuilder__make_attr_assign(val* self, val* p0, val* p1, val* p2) {
336 val* var /* : AAttrAssignExpr */;
337 val* var1 /* : AAttrAssignExpr */;
338 var1 = astbuilder__ASTBuilder__make_attr_assign(self, p0, p1, p2);
339 var = var1;
340 RET_LABEL:;
341 return var;
342 }
343 /* method astbuilder#ASTBuilder#make_do for (self: ASTBuilder): ADoExpr */
344 val* astbuilder__ASTBuilder__make_do(val* self) {
345 val* var /* : ADoExpr */;
346 val* var1 /* : ADoExpr */;
347 var1 = NEW_parser_nodes__ADoExpr(&type_parser_nodes__ADoExpr);
348 ((void (*)(val*))(var1->class->vft[COLOR_astbuilder__ADoExpr__make]))(var1) /* make on <var1:ADoExpr>*/;
349 var = var1;
350 goto RET_LABEL;
351 RET_LABEL:;
352 return var;
353 }
354 /* method astbuilder#ASTBuilder#make_do for (self: Object): ADoExpr */
355 val* VIRTUAL_astbuilder__ASTBuilder__make_do(val* self) {
356 val* var /* : ADoExpr */;
357 val* var1 /* : ADoExpr */;
358 var1 = astbuilder__ASTBuilder__make_do(self);
359 var = var1;
360 RET_LABEL:;
361 return var;
362 }
363 /* method astbuilder#ASTBuilder#make_if for (self: ASTBuilder, AExpr, nullable MType): AIfExpr */
364 val* astbuilder__ASTBuilder__make_if(val* self, val* p0, val* p1) {
365 val* var /* : AIfExpr */;
366 val* var_condition /* var condition: AExpr */;
367 val* var_mtype /* var mtype: nullable MType */;
368 val* var1 /* : AIfExpr */;
369 var_condition = p0;
370 var_mtype = p1;
371 var1 = NEW_parser_nodes__AIfExpr(&type_parser_nodes__AIfExpr);
372 ((void (*)(val*, val*, val*))(var1->class->vft[COLOR_astbuilder__AIfExpr__make]))(var1, var_condition, var_mtype) /* make on <var1:AIfExpr>*/;
373 var = var1;
374 goto RET_LABEL;
375 RET_LABEL:;
376 return var;
377 }
378 /* method astbuilder#ASTBuilder#make_if for (self: Object, AExpr, nullable MType): AIfExpr */
379 val* VIRTUAL_astbuilder__ASTBuilder__make_if(val* self, val* p0, val* p1) {
380 val* var /* : AIfExpr */;
381 val* var1 /* : AIfExpr */;
382 var1 = astbuilder__ASTBuilder__make_if(self, p0, p1);
383 var = var1;
384 RET_LABEL:;
385 return var;
386 }
387 /* method astbuilder#ASTBuilder#init for (self: ASTBuilder, MModule, nullable MClassType) */
388 void astbuilder__ASTBuilder__init(val* self, val* p0, val* p1) {
389 self->attrs[COLOR_astbuilder__ASTBuilder___64dmmodule].val = p0; /* @mmodule on <self:ASTBuilder> */
390 self->attrs[COLOR_astbuilder__ASTBuilder___64danchor].val = p1; /* @anchor on <self:ASTBuilder> */
391 RET_LABEL:;
392 }
393 /* method astbuilder#ASTBuilder#init for (self: Object, MModule, nullable MClassType) */
394 void VIRTUAL_astbuilder__ASTBuilder__init(val* self, val* p0, val* p1) {
395 astbuilder__ASTBuilder__init(self, p0, p1);
396 RET_LABEL:;
397 }
398 /* method astbuilder#AExpr#make_var_read for (self: AExpr): AVarExpr */
399 val* astbuilder__AExpr__make_var_read(val* self) {
400 val* var /* : AVarExpr */;
401 val* var1 /* : nullable Variable */;
402 val* var_variable /* var variable: nullable Variable */;
403 val* var2 /* : null */;
404 short int var3 /* : Bool */;
405 val* var4 /* : nullable ANode */;
406 val* var5 /* : null */;
407 short int var6 /* : Bool */;
408 val* var7 /* : AExpr */;
409 val* var_place /* var place: AExpr */;
410 val* var8 /* : Variable */;
411 static val* varonce;
412 val* var9 /* : String */;
413 char* var10 /* : NativeString */;
414 long var11 /* : Int */;
415 val* var12 /* : String */;
416 val* var13 /* : nullable MType */;
417 val* var14 /* : AVarAssignExpr */;
418 val* var_nvar /* var nvar: AVarAssignExpr */;
419 val* var15 /* : AVarExpr */;
420 val* var16 /* : nullable MType */;
421 var1 = ((val* (*)(val*))(self->class->vft[COLOR_astbuilder__AExpr__variable_cache]))(self) /* variable_cache on <self:AExpr>*/;
422 var_variable = var1;
423 var2 = NULL;
424 if (var_variable == NULL) {
425 var3 = 1; /* is null */
426 } else {
427 var3 = 0; /* arg is null but recv is not */
428 }
429 if (var3){
430 var4 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANode__parent]))(self) /* parent on <self:AExpr>*/;
431 var5 = NULL;
432 if (var4 == NULL) {
433 var6 = 0; /* is null */
434 } else {
435 var6 = 1; /* arg is null and recv is not */
436 }
437 if (!var6) {
438 fprintf(stderr, "Runtime error: %s", "Assert failed");
439 fprintf(stderr, " (%s:%d)\n", "src/astbuilder.nit", 107);
440 show_backtrace(1);
441 }
442 var7 = ((val* (*)(val*))(self->class->vft[COLOR_astbuilder__AExpr__detach_with_placeholder]))(self) /* detach_with_placeholder on <self:AExpr>*/;
443 var_place = var7;
444 var8 = NEW_scope__Variable(&type_scope__Variable);
445 if (varonce) {
446 var9 = varonce;
447 } else {
448 var10 = "";
449 var11 = 0;
450 var12 = string__NativeString__to_s_with_length(var10, var11);
451 var9 = var12;
452 varonce = var9;
453 }
454 ((void (*)(val*, val*))(var8->class->vft[COLOR_scope__Variable__init]))(var8, var9) /* init on <var8:Variable>*/;
455 var_variable = var8;
456 var13 = ((val* (*)(val*))(self->class->vft[COLOR_typing__AExpr__mtype]))(self) /* mtype on <self:AExpr>*/;
457 ((void (*)(val*, val*))(var_variable->class->vft[COLOR_typing__Variable__declared_type_61d]))(var_variable, var13) /* declared_type= on <var_variable:nullable Variable(Variable)>*/;
458 var14 = NEW_parser_nodes__AVarAssignExpr(&type_parser_nodes__AVarAssignExpr);
459 ((void (*)(val*, val*, val*))(var14->class->vft[COLOR_astbuilder__AVarAssignExpr__make]))(var14, var_variable, self) /* make on <var14:AVarAssignExpr>*/;
460 var_nvar = var14;
461 ((void (*)(val*, val*))(var_place->class->vft[COLOR_parser_nodes__ANode__replace_with]))(var_place, var_nvar) /* replace_with on <var_place:AExpr>*/;
462 ((void (*)(val*, val*))(self->class->vft[COLOR_astbuilder__AExpr__variable_cache_61d]))(self, var_variable) /* variable_cache= on <self:AExpr>*/;
463 } else {
464 }
465 var15 = NEW_parser_nodes__AVarExpr(&type_parser_nodes__AVarExpr);
466 var16 = ((val* (*)(val*))(var_variable->class->vft[COLOR_typing__Variable__declared_type]))(var_variable) /* declared_type on <var_variable:nullable Variable(Variable)>*/;
467 if (var16 == NULL) {
468 fprintf(stderr, "Runtime error: %s", "Cast failed");
469 fprintf(stderr, " (%s:%d)\n", "src/astbuilder.nit", 115);
470 show_backtrace(1);
471 }
472 ((void (*)(val*, val*, val*))(var15->class->vft[COLOR_astbuilder__AVarExpr__make]))(var15, var_variable, var16) /* make on <var15:AVarExpr>*/;
473 var = var15;
474 goto RET_LABEL;
475 RET_LABEL:;
476 return var;
477 }
478 /* method astbuilder#AExpr#make_var_read for (self: Object): AVarExpr */
479 val* VIRTUAL_astbuilder__AExpr__make_var_read(val* self) {
480 val* var /* : AVarExpr */;
481 val* var1 /* : AVarExpr */;
482 var1 = astbuilder__AExpr__make_var_read(self);
483 var = var1;
484 RET_LABEL:;
485 return var;
486 }
487 /* method astbuilder#AExpr#variable_cache for (self: AExpr): nullable Variable */
488 val* astbuilder__AExpr__variable_cache(val* self) {
489 val* var /* : nullable Variable */;
490 val* var1 /* : nullable Variable */;
491 var1 = self->attrs[COLOR_astbuilder__AExpr___64dvariable_cache].val; /* @variable_cache on <self:AExpr> */
492 var = var1;
493 RET_LABEL:;
494 return var;
495 }
496 /* method astbuilder#AExpr#variable_cache for (self: Object): nullable Variable */
497 val* VIRTUAL_astbuilder__AExpr__variable_cache(val* self) {
498 val* var /* : nullable Variable */;
499 val* var1 /* : nullable Variable */;
500 var1 = astbuilder__AExpr__variable_cache(self);
501 var = var1;
502 RET_LABEL:;
503 return var;
504 }
505 /* method astbuilder#AExpr#variable_cache= for (self: AExpr, nullable Variable) */
506 void astbuilder__AExpr__variable_cache_61d(val* self, val* p0) {
507 self->attrs[COLOR_astbuilder__AExpr___64dvariable_cache].val = p0; /* @variable_cache on <self:AExpr> */
508 RET_LABEL:;
509 }
510 /* method astbuilder#AExpr#variable_cache= for (self: Object, nullable Variable) */
511 void VIRTUAL_astbuilder__AExpr__variable_cache_61d(val* self, val* p0) {
512 astbuilder__AExpr__variable_cache_61d(self, p0);
513 RET_LABEL:;
514 }
515 /* method astbuilder#AExpr#detach_with_placeholder for (self: AExpr): AExpr */
516 val* astbuilder__AExpr__detach_with_placeholder(val* self) {
517 val* var /* : AExpr */;
518 val* var1 /* : APlaceholderExpr */;
519 val* var_h /* var h: APlaceholderExpr */;
520 var1 = NEW_astbuilder__APlaceholderExpr(&type_astbuilder__APlaceholderExpr);
521 ((void (*)(val*))(var1->class->vft[COLOR_astbuilder__APlaceholderExpr__make]))(var1) /* make on <var1:APlaceholderExpr>*/;
522 var_h = var1;
523 ((void (*)(val*, val*))(self->class->vft[COLOR_parser_nodes__ANode__replace_with]))(self, var_h) /* replace_with on <self:AExpr>*/;
524 var = var_h;
525 goto RET_LABEL;
526 RET_LABEL:;
527 return var;
528 }
529 /* method astbuilder#AExpr#detach_with_placeholder for (self: Object): AExpr */
530 val* VIRTUAL_astbuilder__AExpr__detach_with_placeholder(val* self) {
531 val* var /* : AExpr */;
532 val* var1 /* : AExpr */;
533 var1 = astbuilder__AExpr__detach_with_placeholder(self);
534 var = var1;
535 RET_LABEL:;
536 return var;
537 }
538 /* method astbuilder#AExpr#add for (self: AExpr, AExpr) */
539 void astbuilder__AExpr__add(val* self, val* p0) {
540 val* var_expr /* var expr: AExpr */;
541 var_expr = p0;
542 fprintf(stderr, "Runtime error: %s", "Aborted");
543 fprintf(stderr, " (%s:%d)\n", "src/astbuilder.nit", 147);
544 show_backtrace(1);
545 RET_LABEL:;
546 }
547 /* method astbuilder#AExpr#add for (self: Object, AExpr) */
548 void VIRTUAL_astbuilder__AExpr__add(val* self, val* p0) {
549 astbuilder__AExpr__add(self, p0);
550 RET_LABEL:;
551 }
552 /* method astbuilder#APlaceholderExpr#make for (self: APlaceholderExpr) */
553 void astbuilder__APlaceholderExpr__make(val* self) {
554 ((void (*)(val*))(self->class->vft[COLOR_parser_nodes__AExpr__init]))(self) /* init on <self:APlaceholderExpr>*/;
555 RET_LABEL:;
556 }
557 /* method astbuilder#APlaceholderExpr#make for (self: Object) */
558 void VIRTUAL_astbuilder__APlaceholderExpr__make(val* self) {
559 astbuilder__APlaceholderExpr__make(self);
560 RET_LABEL:;
561 }
562 /* method astbuilder#ABlockExpr#make for (self: ABlockExpr) */
563 void astbuilder__ABlockExpr__make(val* self) {
564 short int var /* : Bool */;
565 var = 1;
566 ((void (*)(val*, short int))(self->class->vft[COLOR_typing__AExpr__is_typed_61d]))(self, var) /* is_typed= on <self:ABlockExpr>*/;
567 RET_LABEL:;
568 }
569 /* method astbuilder#ABlockExpr#make for (self: Object) */
570 void VIRTUAL_astbuilder__ABlockExpr__make(val* self) {
571 astbuilder__ABlockExpr__make(self);
572 RET_LABEL:;
573 }
574 /* method astbuilder#ABlockExpr#add for (self: ABlockExpr, AExpr) */
575 void astbuilder__ABlockExpr__add(val* self, val* p0) {
576 val* var_expr /* var expr: AExpr */;
577 val* var /* : ANodes[AExpr] */;
578 var_expr = p0;
579 var = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ABlockExpr__n_expr]))(self) /* n_expr on <self:ABlockExpr>*/;
580 ((void (*)(val*, val*))(var->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var, var_expr) /* add on <var:ANodes[AExpr]>*/;
581 RET_LABEL:;
582 }
583 /* method astbuilder#ABlockExpr#add for (self: Object, AExpr) */
584 void VIRTUAL_astbuilder__ABlockExpr__add(val* self, val* p0) {
585 astbuilder__ABlockExpr__add(self, p0);
586 RET_LABEL:;
587 }
588 /* method astbuilder#ADoExpr#make for (self: ADoExpr) */
589 void astbuilder__ADoExpr__make(val* self) {
590 val* var /* : TKwdo */;
591 val* var1 /* : EscapeMark */;
592 val* var2 /* : null */;
593 short int var3 /* : Bool */;
594 var = NEW_parser_nodes__TKwdo(&type_parser_nodes__TKwdo);
595 ((void (*)(val*))(var->class->vft[COLOR_parser_nodes__TKwdo__init]))(var) /* init on <var:TKwdo>*/;
596 self->attrs[COLOR_parser_nodes__ADoExpr___n_kwdo].val = var; /* _n_kwdo on <self:ADoExpr> */
597 var1 = NEW_scope__EscapeMark(&type_scope__EscapeMark);
598 var2 = NULL;
599 var3 = 0;
600 ((void (*)(val*, val*, short int))(var1->class->vft[COLOR_scope__EscapeMark__init]))(var1, var2, var3) /* init on <var1:EscapeMark>*/;
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 var_escapemark = var4;
634 ((void (*)(val*, val*))(self->class->vft[COLOR_scope__ADoExpr__escapemark_61d]))(self, var_escapemark) /* escapemark= on <self:ADoExpr>*/;
635 } else {
636 }
637 var7 = NEW_parser_nodes__ABreakExpr(&type_parser_nodes__ABreakExpr);
638 ((void (*)(val*, val*))(var7->class->vft[COLOR_astbuilder__ABreakExpr__make]))(var7, var_escapemark) /* make on <var7:ABreakExpr>*/;
639 var = var7;
640 goto RET_LABEL;
641 RET_LABEL:;
642 return var;
643 }
644 /* method astbuilder#ADoExpr#make_break for (self: Object): ABreakExpr */
645 val* VIRTUAL_astbuilder__ADoExpr__make_break(val* self) {
646 val* var /* : ABreakExpr */;
647 val* var1 /* : ABreakExpr */;
648 var1 = astbuilder__ADoExpr__make_break(self);
649 var = var1;
650 RET_LABEL:;
651 return var;
652 }
653 /* method astbuilder#ABreakExpr#make for (self: ABreakExpr, EscapeMark) */
654 void astbuilder__ABreakExpr__make(val* self, val* p0) {
655 val* var_escapemark /* var escapemark: EscapeMark */;
656 var_escapemark = p0;
657 ((void (*)(val*, val*))(self->class->vft[COLOR_scope__ABreakExpr__escapemark_61d]))(self, var_escapemark) /* escapemark= on <self:ABreakExpr>*/;
658 RET_LABEL:;
659 }
660 /* method astbuilder#ABreakExpr#make for (self: Object, EscapeMark) */
661 void VIRTUAL_astbuilder__ABreakExpr__make(val* self, val* p0) {
662 astbuilder__ABreakExpr__make(self, p0);
663 RET_LABEL:;
664 }
665 /* method astbuilder#AIfExpr#make for (self: AIfExpr, AExpr, nullable MType) */
666 void astbuilder__AIfExpr__make(val* self, val* p0, val* p1) {
667 val* var_condition /* var condition: AExpr */;
668 val* var_mtype /* var mtype: nullable MType */;
669 val* var /* : TKwif */;
670 val* var1 /* : AExpr */;
671 val* var2 /* : ABlockExpr */;
672 val* var3 /* : ABlockExpr */;
673 short int var4 /* : Bool */;
674 var_condition = p0;
675 var_mtype = p1;
676 var = NEW_parser_nodes__TKwif(&type_parser_nodes__TKwif);
677 ((void (*)(val*))(var->class->vft[COLOR_parser_nodes__TKwif__init]))(var) /* init on <var:TKwif>*/;
678 self->attrs[COLOR_parser_nodes__AIfExpr___n_kwif].val = var; /* _n_kwif on <self:AIfExpr> */
679 self->attrs[COLOR_parser_nodes__AIfExpr___n_expr].val = var_condition; /* _n_expr on <self:AIfExpr> */
680 var1 = self->attrs[COLOR_parser_nodes__AIfExpr___n_expr].val; /* _n_expr on <self:AIfExpr> */
681 if (var1 == NULL) {
682 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute _n_expr");
683 fprintf(stderr, " (%s:%d)\n", "src/astbuilder.nit", 208);
684 show_backtrace(1);
685 }
686 ((void (*)(val*, val*))(var1->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var1, self) /* parent= on <var1:AExpr>*/;
687 var2 = NEW_parser_nodes__ABlockExpr(&type_parser_nodes__ABlockExpr);
688 ((void (*)(val*))(var2->class->vft[COLOR_astbuilder__ABlockExpr__make]))(var2) /* make on <var2:ABlockExpr>*/;
689 self->attrs[COLOR_parser_nodes__AIfExpr___n_then].val = var2; /* _n_then on <self:AIfExpr> */
690 var3 = NEW_parser_nodes__ABlockExpr(&type_parser_nodes__ABlockExpr);
691 ((void (*)(val*))(var3->class->vft[COLOR_astbuilder__ABlockExpr__make]))(var3) /* make on <var3:ABlockExpr>*/;
692 self->attrs[COLOR_parser_nodes__AIfExpr___n_else].val = var3; /* _n_else on <self:AIfExpr> */
693 ((void (*)(val*, val*))(self->class->vft[COLOR_typing__AExpr__mtype_61d]))(self, var_mtype) /* mtype= on <self:AIfExpr>*/;
694 var4 = 1;
695 ((void (*)(val*, short int))(self->class->vft[COLOR_typing__AExpr__is_typed_61d]))(self, var4) /* is_typed= on <self:AIfExpr>*/;
696 RET_LABEL:;
697 }
698 /* method astbuilder#AIfExpr#make for (self: Object, AExpr, nullable MType) */
699 void VIRTUAL_astbuilder__AIfExpr__make(val* self, val* p0, val* p1) {
700 astbuilder__AIfExpr__make(self, p0, p1);
701 RET_LABEL:;
702 }
703 /* method astbuilder#AType#make for (self: AType) */
704 void astbuilder__AType__make(val* self) {
705 val* var /* : TClassid */;
706 var = NEW_parser_nodes__TClassid(&type_parser_nodes__TClassid);
707 ((void (*)(val*))(var->class->vft[COLOR_parser_nodes__TClassid__init]))(var) /* init on <var:TClassid>*/;
708 self->attrs[COLOR_parser_nodes__AType___n_id].val = var; /* _n_id on <self:AType> */
709 RET_LABEL:;
710 }
711 /* method astbuilder#AType#make for (self: Object) */
712 void VIRTUAL_astbuilder__AType__make(val* self) {
713 astbuilder__AType__make(self);
714 RET_LABEL:;
715 }
716 /* method astbuilder#AIntExpr#make for (self: AIntExpr, Int, MType) */
717 void astbuilder__AIntExpr__make(val* self, long p0, val* p1) {
718 long var_value /* var value: Int */;
719 val* var_t /* var t: MType */;
720 val* var /* : nullable Int */;
721 val* var1 /* : TNumber */;
722 var_value = p0;
723 var_t = p1;
724 var = BOX_kernel__Int(var_value); /* autobox from Int to nullable Int */
725 ((void (*)(val*, val*))(self->class->vft[COLOR_literal__AIntExpr__value_61d]))(self, var) /* value= on <self:AIntExpr>*/;
726 var1 = NEW_parser_nodes__TNumber(&type_parser_nodes__TNumber);
727 ((void (*)(val*))(var1->class->vft[COLOR_parser_nodes__TNumber__init]))(var1) /* init on <var1:TNumber>*/;
728 self->attrs[COLOR_parser_nodes__AIntExpr___n_number].val = var1; /* _n_number on <self:AIntExpr> */
729 ((void (*)(val*, val*))(self->class->vft[COLOR_typing__AExpr__mtype_61d]))(self, var_t) /* mtype= on <self:AIntExpr>*/;
730 RET_LABEL:;
731 }
732 /* method astbuilder#AIntExpr#make for (self: Object, Int, MType) */
733 void VIRTUAL_astbuilder__AIntExpr__make(val* self, long p0, val* p1) {
734 astbuilder__AIntExpr__make(self, p0, p1);
735 RET_LABEL:;
736 }
737 /* method astbuilder#ANewExpr#make for (self: ANewExpr, MClassType, MMethod, nullable Array[AExpr]) */
738 void astbuilder__ANewExpr__make(val* self, val* p0, val* p1, val* p2) {
739 val* var_mtype /* var mtype: MClassType */;
740 val* var_mmethod /* var mmethod: MMethod */;
741 val* var_args /* var args: nullable Array[AExpr] */;
742 val* var /* : TKwnew */;
743 val* var1 /* : AType */;
744 val* var2 /* : AListExprs */;
745 val* var3 /* : null */;
746 short int var4 /* : Bool */;
747 val* var5 /* : AExprs */;
748 val* var6 /* : ANodes[AExpr] */;
749 val* var7 /* : CallSite */;
750 short int var8 /* : Bool */;
751 val* var9 /* : MPropDef */;
752 val* var10 /* : MPropDef */;
753 val* var11 /* : nullable MSignature */;
754 short int var12 /* : Bool */;
755 var_mtype = p0;
756 var_mmethod = p1;
757 var_args = p2;
758 var = NEW_parser_nodes__TKwnew(&type_parser_nodes__TKwnew);
759 ((void (*)(val*))(var->class->vft[COLOR_parser_nodes__TKwnew__init]))(var) /* init on <var:TKwnew>*/;
760 self->attrs[COLOR_parser_nodes__ANewExpr___n_kwnew].val = var; /* _n_kwnew on <self:ANewExpr> */
761 var1 = NEW_parser_nodes__AType(&type_parser_nodes__AType);
762 ((void (*)(val*))(var1->class->vft[COLOR_astbuilder__AType__make]))(var1) /* make on <var1:AType>*/;
763 self->attrs[COLOR_parser_nodes__ANewExpr___n_type].val = var1; /* _n_type on <self:ANewExpr> */
764 var2 = NEW_parser_nodes__AListExprs(&type_parser_nodes__AListExprs);
765 ((void (*)(val*))(var2->class->vft[COLOR_parser_nodes__AListExprs__init]))(var2) /* init on <var2:AListExprs>*/;
766 self->attrs[COLOR_parser_nodes__ANewExpr___n_args].val = var2; /* _n_args on <self:ANewExpr> */
767 var3 = NULL;
768 if (var_args == NULL) {
769 var4 = 0; /* is null */
770 } else {
771 var4 = 1; /* arg is null and recv is not */
772 }
773 if (var4){
774 var5 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANewExpr__n_args]))(self) /* n_args on <self:ANewExpr>*/;
775 var6 = ((val* (*)(val*))(var5->class->vft[COLOR_parser_nodes__AExprs__n_exprs]))(var5) /* n_exprs on <var5:AExprs>*/;
776 ((void (*)(val*, val*))(var6->class->vft[COLOR_abstract_collection__SimpleCollection__add_all]))(var6, var_args) /* add_all on <var6:ANodes[AExpr]>*/;
777 } else {
778 }
779 var7 = NEW_typing__CallSite(&type_typing__CallSite);
780 var8 = 1;
781 var9 = ((val* (*)(val*))(var_mmethod->class->vft[COLOR_model__MProperty__intro]))(var_mmethod) /* intro on <var_mmethod:MMethod>*/;
782 var10 = ((val* (*)(val*))(var_mmethod->class->vft[COLOR_model__MProperty__intro]))(var_mmethod) /* intro on <var_mmethod:MMethod>*/;
783 var11 = ((val* (*)(val*))(var10->class->vft[COLOR_model__MMethodDef__msignature]))(var10) /* msignature on <var10:MPropDef(MMethodDef)>*/;
784 if (var11 == NULL) {
785 fprintf(stderr, "Runtime error: %s", "Cast failed");
786 fprintf(stderr, " (%s:%d)\n", "src/astbuilder.nit", 241);
787 show_backtrace(1);
788 }
789 var12 = 0;
790 ((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>*/;
791 ((void (*)(val*, val*))(self->class->vft[COLOR_typing__ANewExpr__callsite_61d]))(self, var7) /* callsite= on <self:ANewExpr>*/;
792 ((void (*)(val*, val*))(self->class->vft[COLOR_typing__AExpr__mtype_61d]))(self, var_mtype) /* mtype= on <self:ANewExpr>*/;
793 RET_LABEL:;
794 }
795 /* method astbuilder#ANewExpr#make for (self: Object, MClassType, MMethod, nullable Array[AExpr]) */
796 void VIRTUAL_astbuilder__ANewExpr__make(val* self, val* p0, val* p1, val* p2) {
797 astbuilder__ANewExpr__make(self, p0, p1, p2);
798 RET_LABEL:;
799 }
800 /* method astbuilder#ACallExpr#make for (self: ACallExpr, AExpr, MMethod, nullable Array[AExpr], nullable MType) */
801 void astbuilder__ACallExpr__make(val* self, val* p0, val* p1, val* p2, val* p3) {
802 val* var_recv /* var recv: AExpr */;
803 val* var_mmethod /* var mmethod: MMethod */;
804 val* var_args /* var args: nullable Array[AExpr] */;
805 val* var_t /* var t: nullable MType */;
806 val* var /* : Array[AExpr] */;
807 val* var1 /* : Array[AExpr] */;
808 val* var2 /* : AListExprs */;
809 val* var3 /* : TId */;
810 val* var4 /* : null */;
811 short int var5 /* : Bool */;
812 val* var6 /* : AExprs */;
813 val* var7 /* : ANodes[AExpr] */;
814 val* var8 /* : nullable MType */;
815 val* var_mtype /* var mtype: MType */;
816 val* var9 /* : CallSite */;
817 short int var10 /* : Bool */;
818 val* var11 /* : MPropDef */;
819 val* var12 /* : MPropDef */;
820 val* var13 /* : nullable MSignature */;
821 short int var14 /* : Bool */;
822 short int var15 /* : Bool */;
823 var_recv = p0;
824 var_mmethod = p1;
825 var_args = p2;
826 var_t = p3;
827 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_recv; /* _n_expr on <self:ACallExpr> */
828 ((void (*)(val*, val*))(var_recv->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_recv, self) /* parent= on <var_recv:AExpr>*/;
829 if (var_args!=NULL) {
830 var = var_args;
831 } else {
832 var1 = NEW_array__Array(&type_array__Arrayparser_nodes__AExpr);
833 ((void (*)(val*))(var1->class->vft[COLOR_array__Array__init]))(var1) /* init on <var1:Array[AExpr]>*/;
834 var = var1;
835 }
836 ((void (*)(val*, val*))(self->class->vft[COLOR_typing__ASendExpr__raw_arguments_61d]))(self, var) /* raw_arguments= on <self:ACallExpr>*/;
837 var2 = NEW_parser_nodes__AListExprs(&type_parser_nodes__AListExprs);
838 ((void (*)(val*))(var2->class->vft[COLOR_parser_nodes__AListExprs__init]))(var2) /* init on <var2:AListExprs>*/;
839 self->attrs[COLOR_parser_nodes__ACallFormExpr___n_args].val = var2; /* _n_args on <self:ACallExpr> */
840 var3 = NEW_parser_nodes__TId(&type_parser_nodes__TId);
841 ((void (*)(val*))(var3->class->vft[COLOR_parser_nodes__TId__init]))(var3) /* init on <var3:TId>*/;
842 self->attrs[COLOR_parser_nodes__ACallFormExpr___n_id].val = var3; /* _n_id on <self:ACallExpr> */
843 var4 = NULL;
844 if (var_args == NULL) {
845 var5 = 0; /* is null */
846 } else {
847 var5 = 1; /* arg is null and recv is not */
848 }
849 if (var5){
850 var6 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ACallFormExpr__n_args]))(self) /* n_args on <self:ACallExpr>*/;
851 var7 = ((val* (*)(val*))(var6->class->vft[COLOR_parser_nodes__AExprs__n_exprs]))(var6) /* n_exprs on <var6:AExprs>*/;
852 ((void (*)(val*, val*))(var7->class->vft[COLOR_abstract_collection__SimpleCollection__add_all]))(var7, var_args) /* add_all on <var7:ANodes[AExpr]>*/;
853 } else {
854 }
855 var8 = ((val* (*)(val*))(var_recv->class->vft[COLOR_typing__AExpr__mtype]))(var_recv) /* mtype on <var_recv:AExpr>*/;
856 if (var8 == NULL) {
857 fprintf(stderr, "Runtime error: %s", "Cast failed");
858 fprintf(stderr, " (%s:%d)\n", "src/astbuilder.nit", 257);
859 show_backtrace(1);
860 }
861 var_mtype = var8;
862 var9 = NEW_typing__CallSite(&type_typing__CallSite);
863 var10 = 1;
864 var11 = ((val* (*)(val*))(var_mmethod->class->vft[COLOR_model__MProperty__intro]))(var_mmethod) /* intro on <var_mmethod:MMethod>*/;
865 var12 = ((val* (*)(val*))(var_mmethod->class->vft[COLOR_model__MProperty__intro]))(var_mmethod) /* intro on <var_mmethod:MMethod>*/;
866 var13 = ((val* (*)(val*))(var12->class->vft[COLOR_model__MMethodDef__msignature]))(var12) /* msignature on <var12:MPropDef(MMethodDef)>*/;
867 if (var13 == NULL) {
868 fprintf(stderr, "Runtime error: %s", "Cast failed");
869 fprintf(stderr, " (%s:%d)\n", "src/astbuilder.nit", 258);
870 show_backtrace(1);
871 }
872 var14 = 0;
873 ((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>*/;
874 ((void (*)(val*, val*))(self->class->vft[COLOR_typing__ASendExpr__callsite_61d]))(self, var9) /* callsite= on <self:ACallExpr>*/;
875 ((void (*)(val*, val*))(self->class->vft[COLOR_typing__AExpr__mtype_61d]))(self, var_t) /* mtype= on <self:ACallExpr>*/;
876 var15 = 1;
877 ((void (*)(val*, short int))(self->class->vft[COLOR_typing__AExpr__is_typed_61d]))(self, var15) /* is_typed= on <self:ACallExpr>*/;
878 RET_LABEL:;
879 }
880 /* method astbuilder#ACallExpr#make for (self: Object, AExpr, MMethod, nullable Array[AExpr], nullable MType) */
881 void VIRTUAL_astbuilder__ACallExpr__make(val* self, val* p0, val* p1, val* p2, val* p3) {
882 astbuilder__ACallExpr__make(self, p0, p1, p2, p3);
883 RET_LABEL:;
884 }
885 /* method astbuilder#AAttrExpr#make for (self: AAttrExpr, AExpr, MAttribute, MType) */
886 void astbuilder__AAttrExpr__make(val* self, val* p0, val* p1, val* p2) {
887 val* var_recv /* var recv: AExpr */;
888 val* var_attribute /* var attribute: MAttribute */;
889 val* var_t /* var t: MType */;
890 val* var /* : TAttrid */;
891 var_recv = p0;
892 var_attribute = p1;
893 var_t = p2;
894 self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_expr].val = var_recv; /* _n_expr on <self:AAttrExpr> */
895 ((void (*)(val*, val*))(var_recv->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_recv, self) /* parent= on <var_recv:AExpr>*/;
896 var = NEW_parser_nodes__TAttrid(&type_parser_nodes__TAttrid);
897 ((void (*)(val*))(var->class->vft[COLOR_parser_nodes__TAttrid__init]))(var) /* init on <var:TAttrid>*/;
898 self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_id].val = var; /* _n_id on <self:AAttrExpr> */
899 ((void (*)(val*, val*))(self->class->vft[COLOR_typing__AAttrFormExpr__mproperty_61d]))(self, var_attribute) /* mproperty= on <self:AAttrExpr>*/;
900 ((void (*)(val*, val*))(self->class->vft[COLOR_typing__AExpr__mtype_61d]))(self, var_t) /* mtype= on <self:AAttrExpr>*/;
901 RET_LABEL:;
902 }
903 /* method astbuilder#AAttrExpr#make for (self: Object, AExpr, MAttribute, MType) */
904 void VIRTUAL_astbuilder__AAttrExpr__make(val* self, val* p0, val* p1, val* p2) {
905 astbuilder__AAttrExpr__make(self, p0, p1, p2);
906 RET_LABEL:;
907 }
908 /* method astbuilder#AAttrAssignExpr#make for (self: AAttrAssignExpr, AExpr, MAttribute, AExpr) */
909 void astbuilder__AAttrAssignExpr__make(val* self, val* p0, val* p1, val* p2) {
910 val* var_recv /* var recv: AExpr */;
911 val* var_attribute /* var attribute: MAttribute */;
912 val* var_value /* var value: AExpr */;
913 val* var /* : TAttrid */;
914 val* var1 /* : TAssign */;
915 val* var2 /* : nullable MType */;
916 var_recv = p0;
917 var_attribute = p1;
918 var_value = p2;
919 self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_expr].val = var_recv; /* _n_expr on <self:AAttrAssignExpr> */
920 ((void (*)(val*, val*))(var_recv->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_recv, self) /* parent= on <var_recv:AExpr>*/;
921 var = NEW_parser_nodes__TAttrid(&type_parser_nodes__TAttrid);
922 ((void (*)(val*))(var->class->vft[COLOR_parser_nodes__TAttrid__init]))(var) /* init on <var:TAttrid>*/;
923 self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_id].val = var; /* _n_id on <self:AAttrAssignExpr> */
924 self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_value].val = var_value; /* _n_value on <self:AAttrAssignExpr> */
925 ((void (*)(val*, val*))(var_value->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_value, self) /* parent= on <var_value:AExpr>*/;
926 var1 = NEW_parser_nodes__TAssign(&type_parser_nodes__TAssign);
927 ((void (*)(val*))(var1->class->vft[COLOR_parser_nodes__TAssign__init]))(var1) /* init on <var1:TAssign>*/;
928 self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_assign].val = var1; /* _n_assign on <self:AAttrAssignExpr> */
929 ((void (*)(val*, val*))(self->class->vft[COLOR_typing__AAttrFormExpr__mproperty_61d]))(self, var_attribute) /* mproperty= on <self:AAttrAssignExpr>*/;
930 var2 = ((val* (*)(val*))(var_value->class->vft[COLOR_typing__AExpr__mtype]))(var_value) /* mtype on <var_value:AExpr>*/;
931 ((void (*)(val*, val*))(self->class->vft[COLOR_typing__AExpr__mtype_61d]))(self, var2) /* mtype= on <self:AAttrAssignExpr>*/;
932 RET_LABEL:;
933 }
934 /* method astbuilder#AAttrAssignExpr#make for (self: Object, AExpr, MAttribute, AExpr) */
935 void VIRTUAL_astbuilder__AAttrAssignExpr__make(val* self, val* p0, val* p1, val* p2) {
936 astbuilder__AAttrAssignExpr__make(self, p0, p1, p2);
937 RET_LABEL:;
938 }
939 /* method astbuilder#AVarExpr#make for (self: AVarExpr, Variable, MType) */
940 void astbuilder__AVarExpr__make(val* self, val* p0, val* p1) {
941 val* var_v /* var v: Variable */;
942 val* var_mtype /* var mtype: MType */;
943 val* var /* : TId */;
944 var_v = p0;
945 var_mtype = p1;
946 var = NEW_parser_nodes__TId(&type_parser_nodes__TId);
947 ((void (*)(val*))(var->class->vft[COLOR_parser_nodes__TId__init]))(var) /* init on <var:TId>*/;
948 self->attrs[COLOR_parser_nodes__AVarFormExpr___n_id].val = var; /* _n_id on <self:AVarExpr> */
949 ((void (*)(val*, val*))(self->class->vft[COLOR_scope__AVarFormExpr__variable_61d]))(self, var_v) /* variable= on <self:AVarExpr>*/;
950 ((void (*)(val*, val*))(self->class->vft[COLOR_typing__AExpr__mtype_61d]))(self, var_mtype) /* mtype= on <self:AVarExpr>*/;
951 RET_LABEL:;
952 }
953 /* method astbuilder#AVarExpr#make for (self: Object, Variable, MType) */
954 void VIRTUAL_astbuilder__AVarExpr__make(val* self, val* p0, val* p1) {
955 astbuilder__AVarExpr__make(self, p0, p1);
956 RET_LABEL:;
957 }
958 /* method astbuilder#AVarAssignExpr#make for (self: AVarAssignExpr, Variable, AExpr) */
959 void astbuilder__AVarAssignExpr__make(val* self, val* p0, val* p1) {
960 val* var_v /* var v: Variable */;
961 val* var_value /* var value: AExpr */;
962 val* var /* : TId */;
963 val* var1 /* : TAssign */;
964 val* var2 /* : nullable MType */;
965 var_v = p0;
966 var_value = p1;
967 var = NEW_parser_nodes__TId(&type_parser_nodes__TId);
968 ((void (*)(val*))(var->class->vft[COLOR_parser_nodes__TId__init]))(var) /* init on <var:TId>*/;
969 self->attrs[COLOR_parser_nodes__AVarFormExpr___n_id].val = var; /* _n_id on <self:AVarAssignExpr> */
970 self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_value].val = var_value; /* _n_value on <self:AVarAssignExpr> */
971 ((void (*)(val*, val*))(var_value->class->vft[COLOR_parser_nodes__ANode__parent_61d]))(var_value, self) /* parent= on <var_value:AExpr>*/;
972 var1 = NEW_parser_nodes__TAssign(&type_parser_nodes__TAssign);
973 ((void (*)(val*))(var1->class->vft[COLOR_parser_nodes__TAssign__init]))(var1) /* init on <var1:TAssign>*/;
974 self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_assign].val = var1; /* _n_assign on <self:AVarAssignExpr> */
975 ((void (*)(val*, val*))(self->class->vft[COLOR_scope__AVarFormExpr__variable_61d]))(self, var_v) /* variable= on <self:AVarAssignExpr>*/;
976 var2 = ((val* (*)(val*))(var_value->class->vft[COLOR_typing__AExpr__mtype]))(var_value) /* mtype on <var_value:AExpr>*/;
977 ((void (*)(val*, val*))(self->class->vft[COLOR_typing__AExpr__mtype_61d]))(self, var2) /* mtype= on <self:AVarAssignExpr>*/;
978 RET_LABEL:;
979 }
980 /* method astbuilder#AVarAssignExpr#make for (self: Object, Variable, AExpr) */
981 void VIRTUAL_astbuilder__AVarAssignExpr__make(val* self, val* p0, val* p1) {
982 astbuilder__AVarAssignExpr__make(self, p0, p1);
983 RET_LABEL:;
984 }