Makefile: clean the clean recipes
[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___mmodule].val; /* _mmodule on <self:ASTBuilder> */
7 if (unlikely(var1 == NULL)) {
8 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
9 PRINT_ERROR(" (%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 val* var3 /* : MModule */;
21 { /* Inline astbuilder#ASTBuilder#mmodule (self) on <self:Object(ASTBuilder)> */
22 var3 = self->attrs[COLOR_astbuilder__ASTBuilder___mmodule].val; /* _mmodule on <self:Object(ASTBuilder)> */
23 if (unlikely(var3 == NULL)) {
24 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
25 PRINT_ERROR(" (%s:%d)\n", "src/astbuilder.nit", 25);
26 show_backtrace(1);
27 }
28 var1 = var3;
29 RET_LABEL2:(void)0;
30 }
31 var = var1;
32 RET_LABEL:;
33 return var;
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___anchor].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 val* var3 /* : nullable MClassType */;
49 { /* Inline astbuilder#ASTBuilder#anchor (self) on <self:Object(ASTBuilder)> */
50 var3 = self->attrs[COLOR_astbuilder__ASTBuilder___anchor].val; /* _anchor on <self:Object(ASTBuilder)> */
51 var1 = var3;
52 RET_LABEL2:(void)0;
53 }
54 var = var1;
55 RET_LABEL:;
56 return var;
57 }
58 /* method astbuilder#ASTBuilder#make_int for (self: ASTBuilder, Int): AIntExpr */
59 val* astbuilder__ASTBuilder__make_int(val* self, long p0) {
60 val* var /* : AIntExpr */;
61 long var_value /* var value: Int */;
62 val* var1 /* : ADecIntExpr */;
63 val* var2 /* : MModule */;
64 val* var4 /* : MModule */;
65 static val* varonce;
66 val* var5 /* : String */;
67 char* var6 /* : NativeString */;
68 long var7 /* : Int */;
69 val* var8 /* : FlatString */;
70 val* var9 /* : MClass */;
71 val* var10 /* : MClassType */;
72 val* var12 /* : MClassType */;
73 var_value = p0;
74 var1 = NEW_parser_nodes__ADecIntExpr(&type_parser_nodes__ADecIntExpr);
75 {
76 { /* Inline astbuilder#ASTBuilder#mmodule (self) on <self:ASTBuilder> */
77 var4 = self->attrs[COLOR_astbuilder__ASTBuilder___mmodule].val; /* _mmodule on <self:ASTBuilder> */
78 if (unlikely(var4 == NULL)) {
79 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
80 PRINT_ERROR(" (%s:%d)\n", "src/astbuilder.nit", 25);
81 show_backtrace(1);
82 }
83 var2 = var4;
84 RET_LABEL3:(void)0;
85 }
86 }
87 if (varonce) {
88 var5 = varonce;
89 } else {
90 var6 = "Int";
91 var7 = 3;
92 var8 = string__NativeString__to_s_with_length(var6, var7);
93 var5 = var8;
94 varonce = var5;
95 }
96 {
97 var9 = model__MModule__get_primitive_class(var2, var5);
98 }
99 {
100 { /* Inline model#MClass#mclass_type (var9) on <var9:MClass> */
101 var12 = var9->attrs[COLOR_model__MClass___mclass_type].val; /* _mclass_type on <var9:MClass> */
102 if (unlikely(var12 == NULL)) {
103 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
104 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 417);
105 show_backtrace(1);
106 }
107 var10 = var12;
108 RET_LABEL11:(void)0;
109 }
110 }
111 {
112 astbuilder__ADecIntExpr__make(var1, var_value, var10); /* Direct call astbuilder#ADecIntExpr#make on <var1:ADecIntExpr>*/
113 }
114 var = var1;
115 goto RET_LABEL;
116 RET_LABEL:;
117 return var;
118 }
119 /* method astbuilder#ASTBuilder#make_int for (self: Object, Int): AIntExpr */
120 val* VIRTUAL_astbuilder__ASTBuilder__make_int(val* self, long p0) {
121 val* var /* : AIntExpr */;
122 val* var1 /* : AIntExpr */;
123 var1 = astbuilder__ASTBuilder__make_int(self, p0);
124 var = var1;
125 RET_LABEL:;
126 return var;
127 }
128 /* method astbuilder#ASTBuilder#make_new for (self: ASTBuilder, CallSite, nullable Array[AExpr]): ANewExpr */
129 val* astbuilder__ASTBuilder__make_new(val* self, val* p0, val* p1) {
130 val* var /* : ANewExpr */;
131 val* var_callsite /* var callsite: CallSite */;
132 val* var_args /* var args: nullable Array[AExpr] */;
133 val* var1 /* : ANewExpr */;
134 var_callsite = p0;
135 var_args = p1;
136 var1 = NEW_parser_nodes__ANewExpr(&type_parser_nodes__ANewExpr);
137 {
138 astbuilder__ANewExpr__make(var1, var_callsite, var_args); /* Direct call astbuilder#ANewExpr#make on <var1:ANewExpr>*/
139 }
140 var = var1;
141 goto RET_LABEL;
142 RET_LABEL:;
143 return var;
144 }
145 /* method astbuilder#ASTBuilder#make_new for (self: Object, CallSite, nullable Array[AExpr]): ANewExpr */
146 val* VIRTUAL_astbuilder__ASTBuilder__make_new(val* self, val* p0, val* p1) {
147 val* var /* : ANewExpr */;
148 val* var1 /* : ANewExpr */;
149 var1 = astbuilder__ASTBuilder__make_new(self, p0, p1);
150 var = var1;
151 RET_LABEL:;
152 return var;
153 }
154 /* method astbuilder#ASTBuilder#make_call for (self: ASTBuilder, AExpr, CallSite, nullable Array[AExpr]): ACallExpr */
155 val* astbuilder__ASTBuilder__make_call(val* self, val* p0, val* p1, val* p2) {
156 val* var /* : ACallExpr */;
157 val* var_recv /* var recv: AExpr */;
158 val* var_callsite /* var callsite: CallSite */;
159 val* var_args /* var args: nullable Array[AExpr] */;
160 val* var1 /* : ACallExpr */;
161 var_recv = p0;
162 var_callsite = p1;
163 var_args = p2;
164 var1 = NEW_parser_nodes__ACallExpr(&type_parser_nodes__ACallExpr);
165 {
166 astbuilder__ACallExpr__make(var1, var_recv, var_callsite, var_args); /* Direct call astbuilder#ACallExpr#make on <var1:ACallExpr>*/
167 }
168 var = var1;
169 goto RET_LABEL;
170 RET_LABEL:;
171 return var;
172 }
173 /* method astbuilder#ASTBuilder#make_call for (self: Object, AExpr, CallSite, nullable Array[AExpr]): ACallExpr */
174 val* VIRTUAL_astbuilder__ASTBuilder__make_call(val* self, val* p0, val* p1, val* p2) {
175 val* var /* : ACallExpr */;
176 val* var1 /* : ACallExpr */;
177 var1 = astbuilder__ASTBuilder__make_call(self, p0, p1, p2);
178 var = var1;
179 RET_LABEL:;
180 return var;
181 }
182 /* method astbuilder#ASTBuilder#make_block for (self: ASTBuilder): ABlockExpr */
183 val* astbuilder__ASTBuilder__make_block(val* self) {
184 val* var /* : ABlockExpr */;
185 val* var1 /* : ABlockExpr */;
186 var1 = NEW_parser_nodes__ABlockExpr(&type_parser_nodes__ABlockExpr);
187 {
188 astbuilder__ABlockExpr__make(var1); /* Direct call astbuilder#ABlockExpr#make on <var1:ABlockExpr>*/
189 }
190 var = var1;
191 goto RET_LABEL;
192 RET_LABEL:;
193 return var;
194 }
195 /* method astbuilder#ASTBuilder#make_block for (self: Object): ABlockExpr */
196 val* VIRTUAL_astbuilder__ASTBuilder__make_block(val* self) {
197 val* var /* : ABlockExpr */;
198 val* var1 /* : ABlockExpr */;
199 var1 = astbuilder__ASTBuilder__make_block(self);
200 var = var1;
201 RET_LABEL:;
202 return var;
203 }
204 /* method astbuilder#ASTBuilder#make_var_read for (self: ASTBuilder, Variable, MType): AVarExpr */
205 val* astbuilder__ASTBuilder__make_var_read(val* self, val* p0, val* p1) {
206 val* var /* : AVarExpr */;
207 val* var_variable /* var variable: Variable */;
208 val* var_mtype /* var mtype: MType */;
209 val* var1 /* : AVarExpr */;
210 var_variable = p0;
211 var_mtype = p1;
212 var1 = NEW_parser_nodes__AVarExpr(&type_parser_nodes__AVarExpr);
213 {
214 astbuilder__AVarExpr__make(var1, var_variable, var_mtype); /* Direct call astbuilder#AVarExpr#make on <var1:AVarExpr>*/
215 }
216 var = var1;
217 goto RET_LABEL;
218 RET_LABEL:;
219 return var;
220 }
221 /* method astbuilder#ASTBuilder#make_var_read for (self: Object, Variable, MType): AVarExpr */
222 val* VIRTUAL_astbuilder__ASTBuilder__make_var_read(val* self, val* p0, val* p1) {
223 val* var /* : AVarExpr */;
224 val* var1 /* : AVarExpr */;
225 var1 = astbuilder__ASTBuilder__make_var_read(self, p0, p1);
226 var = var1;
227 RET_LABEL:;
228 return var;
229 }
230 /* method astbuilder#ASTBuilder#make_var_assign for (self: ASTBuilder, Variable, AExpr): AVarAssignExpr */
231 val* astbuilder__ASTBuilder__make_var_assign(val* self, val* p0, val* p1) {
232 val* var /* : AVarAssignExpr */;
233 val* var_variable /* var variable: Variable */;
234 val* var_value /* var value: AExpr */;
235 val* var1 /* : AVarAssignExpr */;
236 var_variable = p0;
237 var_value = p1;
238 var1 = NEW_parser_nodes__AVarAssignExpr(&type_parser_nodes__AVarAssignExpr);
239 {
240 astbuilder__AVarAssignExpr__make(var1, var_variable, var_value); /* Direct call astbuilder#AVarAssignExpr#make on <var1:AVarAssignExpr>*/
241 }
242 var = var1;
243 goto RET_LABEL;
244 RET_LABEL:;
245 return var;
246 }
247 /* method astbuilder#ASTBuilder#make_var_assign for (self: Object, Variable, AExpr): AVarAssignExpr */
248 val* VIRTUAL_astbuilder__ASTBuilder__make_var_assign(val* self, val* p0, val* p1) {
249 val* var /* : AVarAssignExpr */;
250 val* var1 /* : AVarAssignExpr */;
251 var1 = astbuilder__ASTBuilder__make_var_assign(self, p0, p1);
252 var = var1;
253 RET_LABEL:;
254 return var;
255 }
256 /* method astbuilder#ASTBuilder#make_attr_read for (self: ASTBuilder, AExpr, MAttribute): AAttrExpr */
257 val* astbuilder__ASTBuilder__make_attr_read(val* self, val* p0, val* p1) {
258 val* var /* : AAttrExpr */;
259 val* var_recv /* var recv: AExpr */;
260 val* var_attribute /* var attribute: MAttribute */;
261 val* var1 /* : MPropDef */;
262 val* var2 /* : nullable MType */;
263 val* var4 /* : nullable MType */;
264 val* var5 /* : nullable MType */;
265 val* var6 /* : nullable MClassType */;
266 val* var8 /* : nullable MClassType */;
267 val* var9 /* : MModule */;
268 val* var11 /* : MModule */;
269 short int var12 /* : Bool */;
270 val* var13 /* : MType */;
271 val* var_mtype /* var mtype: MType */;
272 val* var14 /* : AAttrExpr */;
273 var_recv = p0;
274 var_attribute = p1;
275 {
276 var1 = model__MProperty__intro(var_attribute);
277 }
278 {
279 { /* Inline model#MAttributeDef#static_mtype (var1) on <var1:MPropDef(MAttributeDef)> */
280 var4 = var1->attrs[COLOR_model__MAttributeDef___static_mtype].val; /* _static_mtype on <var1:MPropDef(MAttributeDef)> */
281 var2 = var4;
282 RET_LABEL3:(void)0;
283 }
284 }
285 {
286 var5 = ((val* (*)(val*))(var_recv->class->vft[COLOR_typing__AExpr__mtype]))(var_recv) /* mtype on <var_recv:AExpr>*/;
287 }
288 if (unlikely(var5 == NULL)) {
289 PRINT_ERROR("Runtime error: %s", "Cast failed");
290 PRINT_ERROR(" (%s:%d)\n", "src/astbuilder.nit", 71);
291 show_backtrace(1);
292 }
293 {
294 { /* Inline astbuilder#ASTBuilder#anchor (self) on <self:ASTBuilder> */
295 var8 = self->attrs[COLOR_astbuilder__ASTBuilder___anchor].val; /* _anchor on <self:ASTBuilder> */
296 var6 = var8;
297 RET_LABEL7:(void)0;
298 }
299 }
300 {
301 { /* Inline astbuilder#ASTBuilder#mmodule (self) on <self:ASTBuilder> */
302 var11 = self->attrs[COLOR_astbuilder__ASTBuilder___mmodule].val; /* _mmodule on <self:ASTBuilder> */
303 if (unlikely(var11 == NULL)) {
304 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
305 PRINT_ERROR(" (%s:%d)\n", "src/astbuilder.nit", 25);
306 show_backtrace(1);
307 }
308 var9 = var11;
309 RET_LABEL10:(void)0;
310 }
311 }
312 var12 = 1;
313 if (var2 == NULL) {
314 PRINT_ERROR("Runtime error: %s", "Receiver is null");
315 PRINT_ERROR(" (%s:%d)\n", "src/astbuilder.nit", 71);
316 show_backtrace(1);
317 } else {
318 var13 = ((val* (*)(val*, val*, val*, val*, short int))(var2->class->vft[COLOR_model__MType__resolve_for]))(var2, var5, var6, var9, var12) /* resolve_for on <var2:nullable MType>*/;
319 }
320 var_mtype = var13;
321 var14 = NEW_parser_nodes__AAttrExpr(&type_parser_nodes__AAttrExpr);
322 {
323 astbuilder__AAttrExpr__make(var14, var_recv, var_attribute, var_mtype); /* Direct call astbuilder#AAttrExpr#make on <var14:AAttrExpr>*/
324 }
325 var = var14;
326 goto RET_LABEL;
327 RET_LABEL:;
328 return var;
329 }
330 /* method astbuilder#ASTBuilder#make_attr_read for (self: Object, AExpr, MAttribute): AAttrExpr */
331 val* VIRTUAL_astbuilder__ASTBuilder__make_attr_read(val* self, val* p0, val* p1) {
332 val* var /* : AAttrExpr */;
333 val* var1 /* : AAttrExpr */;
334 var1 = astbuilder__ASTBuilder__make_attr_read(self, p0, p1);
335 var = var1;
336 RET_LABEL:;
337 return var;
338 }
339 /* method astbuilder#ASTBuilder#make_attr_assign for (self: ASTBuilder, AExpr, MAttribute, AExpr): AAttrAssignExpr */
340 val* astbuilder__ASTBuilder__make_attr_assign(val* self, val* p0, val* p1, val* p2) {
341 val* var /* : AAttrAssignExpr */;
342 val* var_recv /* var recv: AExpr */;
343 val* var_attribute /* var attribute: MAttribute */;
344 val* var_value /* var value: AExpr */;
345 val* var1 /* : AAttrAssignExpr */;
346 var_recv = p0;
347 var_attribute = p1;
348 var_value = p2;
349 var1 = NEW_parser_nodes__AAttrAssignExpr(&type_parser_nodes__AAttrAssignExpr);
350 {
351 astbuilder__AAttrAssignExpr__make(var1, var_recv, var_attribute, var_value); /* Direct call astbuilder#AAttrAssignExpr#make on <var1:AAttrAssignExpr>*/
352 }
353 var = var1;
354 goto RET_LABEL;
355 RET_LABEL:;
356 return var;
357 }
358 /* method astbuilder#ASTBuilder#make_attr_assign for (self: Object, AExpr, MAttribute, AExpr): AAttrAssignExpr */
359 val* VIRTUAL_astbuilder__ASTBuilder__make_attr_assign(val* self, val* p0, val* p1, val* p2) {
360 val* var /* : AAttrAssignExpr */;
361 val* var1 /* : AAttrAssignExpr */;
362 var1 = astbuilder__ASTBuilder__make_attr_assign(self, p0, p1, p2);
363 var = var1;
364 RET_LABEL:;
365 return var;
366 }
367 /* method astbuilder#ASTBuilder#make_if for (self: ASTBuilder, AExpr, nullable MType): AIfExpr */
368 val* astbuilder__ASTBuilder__make_if(val* self, val* p0, val* p1) {
369 val* var /* : AIfExpr */;
370 val* var_condition /* var condition: AExpr */;
371 val* var_mtype /* var mtype: nullable MType */;
372 val* var1 /* : AIfExpr */;
373 var_condition = p0;
374 var_mtype = p1;
375 var1 = NEW_parser_nodes__AIfExpr(&type_parser_nodes__AIfExpr);
376 {
377 astbuilder__AIfExpr__make(var1, var_condition, var_mtype); /* Direct call astbuilder#AIfExpr#make on <var1:AIfExpr>*/
378 }
379 var = var1;
380 goto RET_LABEL;
381 RET_LABEL:;
382 return var;
383 }
384 /* method astbuilder#ASTBuilder#make_if for (self: Object, AExpr, nullable MType): AIfExpr */
385 val* VIRTUAL_astbuilder__ASTBuilder__make_if(val* self, val* p0, val* p1) {
386 val* var /* : AIfExpr */;
387 val* var1 /* : AIfExpr */;
388 var1 = astbuilder__ASTBuilder__make_if(self, p0, p1);
389 var = var1;
390 RET_LABEL:;
391 return var;
392 }
393 /* method astbuilder#ASTBuilder#init for (self: ASTBuilder, MModule, nullable MClassType) */
394 void astbuilder__ASTBuilder__init(val* self, val* p0, val* p1) {
395 self->attrs[COLOR_astbuilder__ASTBuilder___mmodule].val = p0; /* _mmodule on <self:ASTBuilder> */
396 self->attrs[COLOR_astbuilder__ASTBuilder___anchor].val = p1; /* _anchor on <self:ASTBuilder> */
397 RET_LABEL:;
398 }
399 /* method astbuilder#ASTBuilder#init for (self: Object, MModule, nullable MClassType) */
400 void VIRTUAL_astbuilder__ASTBuilder__init(val* self, val* p0, val* p1) {
401 { /* Inline astbuilder#ASTBuilder#init (self,p0,p1) on <self:Object(ASTBuilder)> */
402 self->attrs[COLOR_astbuilder__ASTBuilder___mmodule].val = p0; /* _mmodule on <self:Object(ASTBuilder)> */
403 self->attrs[COLOR_astbuilder__ASTBuilder___anchor].val = p1; /* _anchor on <self:Object(ASTBuilder)> */
404 RET_LABEL1:(void)0;
405 }
406 RET_LABEL:;
407 }
408 /* method astbuilder#AExpr#make_var_read for (self: AExpr): AVarExpr */
409 val* astbuilder__AExpr__make_var_read(val* self) {
410 val* var /* : AVarExpr */;
411 val* var1 /* : nullable Variable */;
412 val* var3 /* : nullable Variable */;
413 val* var_variable /* var variable: nullable Variable */;
414 val* var4 /* : null */;
415 short int var5 /* : Bool */;
416 short int var6 /* : Bool */;
417 val* var_other /* var other: nullable Object */;
418 short int var8 /* : Bool */;
419 short int var10 /* : Bool */;
420 val* var11 /* : nullable ANode */;
421 val* var13 /* : nullable ANode */;
422 val* var14 /* : null */;
423 short int var15 /* : Bool */;
424 short int var16 /* : Bool */;
425 val* var_other18 /* var other: nullable Object */;
426 short int var19 /* : Bool */;
427 short int var20 /* : Bool */;
428 short int var21 /* : Bool */;
429 val* var22 /* : AExpr */;
430 val* var_place /* var place: AExpr */;
431 val* var23 /* : Variable */;
432 static val* varonce;
433 val* var24 /* : String */;
434 char* var25 /* : NativeString */;
435 long var26 /* : Int */;
436 val* var27 /* : FlatString */;
437 val* var29 /* : nullable MType */;
438 val* var31 /* : AVarAssignExpr */;
439 val* var_nvar /* var nvar: AVarAssignExpr */;
440 val* var33 /* : AVarExpr */;
441 val* var34 /* : nullable MType */;
442 val* var36 /* : nullable MType */;
443 {
444 { /* Inline astbuilder#AExpr#variable_cache (self) on <self:AExpr> */
445 var3 = self->attrs[COLOR_astbuilder__AExpr___variable_cache].val; /* _variable_cache on <self:AExpr> */
446 var1 = var3;
447 RET_LABEL2:(void)0;
448 }
449 }
450 var_variable = var1;
451 var4 = NULL;
452 if (var_variable == NULL) {
453 var5 = 1; /* is null */
454 } else {
455 var5 = 0; /* arg is null but recv is not */
456 }
457 if (0) {
458 { /* Inline kernel#Object#== (var_variable,var4) on <var_variable:nullable Variable> */
459 var_other = var4;
460 {
461 { /* Inline kernel#Object#is_same_instance (var_variable,var_other) on <var_variable:nullable Variable(Variable)> */
462 var10 = var_variable == var_other;
463 var8 = var10;
464 goto RET_LABEL9;
465 RET_LABEL9:(void)0;
466 }
467 }
468 var6 = var8;
469 goto RET_LABEL7;
470 RET_LABEL7:(void)0;
471 }
472 var5 = var6;
473 }
474 if (var5){
475 {
476 { /* Inline parser_nodes#ANode#parent (self) on <self:AExpr> */
477 var13 = self->attrs[COLOR_parser_nodes__ANode___parent].val; /* _parent on <self:AExpr> */
478 var11 = var13;
479 RET_LABEL12:(void)0;
480 }
481 }
482 var14 = NULL;
483 if (var11 == NULL) {
484 var15 = 0; /* is null */
485 } else {
486 var15 = 1; /* arg is null and recv is not */
487 }
488 if (0) {
489 { /* Inline kernel#Object#!= (var11,var14) on <var11:nullable ANode> */
490 var_other18 = var14;
491 {
492 var20 = ((short int (*)(val*, val*))(var11->class->vft[COLOR_kernel__Object___61d_61d]))(var11, var_other18) /* == on <var11:nullable ANode(ANode)>*/;
493 var19 = var20;
494 }
495 var21 = !var19;
496 var16 = var21;
497 goto RET_LABEL17;
498 RET_LABEL17:(void)0;
499 }
500 var15 = var16;
501 }
502 if (unlikely(!var15)) {
503 PRINT_ERROR("Runtime error: %s", "Assert failed");
504 PRINT_ERROR(" (%s:%d)\n", "src/astbuilder.nit", 105);
505 show_backtrace(1);
506 }
507 {
508 var22 = astbuilder__AExpr__detach_with_placeholder(self);
509 }
510 var_place = var22;
511 var23 = NEW_scope__Variable(&type_scope__Variable);
512 if (varonce) {
513 var24 = varonce;
514 } else {
515 var25 = "";
516 var26 = 0;
517 var27 = string__NativeString__to_s_with_length(var25, var26);
518 var24 = var27;
519 varonce = var24;
520 }
521 {
522 { /* Inline scope#Variable#init (var23,var24) on <var23:Variable> */
523 var23->attrs[COLOR_scope__Variable___name].val = var24; /* _name on <var23:Variable> */
524 RET_LABEL28:(void)0;
525 }
526 }
527 var_variable = var23;
528 {
529 var29 = ((val* (*)(val*))(self->class->vft[COLOR_typing__AExpr__mtype]))(self) /* mtype on <self:AExpr>*/;
530 }
531 {
532 { /* Inline typing#Variable#declared_type= (var_variable,var29) on <var_variable:nullable Variable(Variable)> */
533 var_variable->attrs[COLOR_typing__Variable___declared_type].val = var29; /* _declared_type on <var_variable:nullable Variable(Variable)> */
534 RET_LABEL30:(void)0;
535 }
536 }
537 var31 = NEW_parser_nodes__AVarAssignExpr(&type_parser_nodes__AVarAssignExpr);
538 {
539 astbuilder__AVarAssignExpr__make(var31, var_variable, self); /* Direct call astbuilder#AVarAssignExpr#make on <var31:AVarAssignExpr>*/
540 }
541 var_nvar = var31;
542 {
543 parser_nodes__Prod__replace_with(var_place, var_nvar); /* Direct call parser_nodes#Prod#replace_with on <var_place:AExpr>*/
544 }
545 {
546 { /* Inline astbuilder#AExpr#variable_cache= (self,var_variable) on <self:AExpr> */
547 self->attrs[COLOR_astbuilder__AExpr___variable_cache].val = var_variable; /* _variable_cache on <self:AExpr> */
548 RET_LABEL32:(void)0;
549 }
550 }
551 } else {
552 }
553 var33 = NEW_parser_nodes__AVarExpr(&type_parser_nodes__AVarExpr);
554 {
555 { /* Inline typing#Variable#declared_type (var_variable) on <var_variable:nullable Variable(Variable)> */
556 var36 = var_variable->attrs[COLOR_typing__Variable___declared_type].val; /* _declared_type on <var_variable:nullable Variable(Variable)> */
557 var34 = var36;
558 RET_LABEL35:(void)0;
559 }
560 }
561 if (unlikely(var34 == NULL)) {
562 PRINT_ERROR("Runtime error: %s", "Cast failed");
563 PRINT_ERROR(" (%s:%d)\n", "src/astbuilder.nit", 113);
564 show_backtrace(1);
565 }
566 {
567 astbuilder__AVarExpr__make(var33, var_variable, var34); /* Direct call astbuilder#AVarExpr#make on <var33:AVarExpr>*/
568 }
569 var = var33;
570 goto RET_LABEL;
571 RET_LABEL:;
572 return var;
573 }
574 /* method astbuilder#AExpr#make_var_read for (self: Object): AVarExpr */
575 val* VIRTUAL_astbuilder__AExpr__make_var_read(val* self) {
576 val* var /* : AVarExpr */;
577 val* var1 /* : AVarExpr */;
578 var1 = astbuilder__AExpr__make_var_read(self);
579 var = var1;
580 RET_LABEL:;
581 return var;
582 }
583 /* method astbuilder#AExpr#variable_cache for (self: AExpr): nullable Variable */
584 val* astbuilder__AExpr__variable_cache(val* self) {
585 val* var /* : nullable Variable */;
586 val* var1 /* : nullable Variable */;
587 var1 = self->attrs[COLOR_astbuilder__AExpr___variable_cache].val; /* _variable_cache on <self:AExpr> */
588 var = var1;
589 RET_LABEL:;
590 return var;
591 }
592 /* method astbuilder#AExpr#variable_cache for (self: Object): nullable Variable */
593 val* VIRTUAL_astbuilder__AExpr__variable_cache(val* self) {
594 val* var /* : nullable Variable */;
595 val* var1 /* : nullable Variable */;
596 val* var3 /* : nullable Variable */;
597 { /* Inline astbuilder#AExpr#variable_cache (self) on <self:Object(AExpr)> */
598 var3 = self->attrs[COLOR_astbuilder__AExpr___variable_cache].val; /* _variable_cache on <self:Object(AExpr)> */
599 var1 = var3;
600 RET_LABEL2:(void)0;
601 }
602 var = var1;
603 RET_LABEL:;
604 return var;
605 }
606 /* method astbuilder#AExpr#variable_cache= for (self: AExpr, nullable Variable) */
607 void astbuilder__AExpr__variable_cache_61d(val* self, val* p0) {
608 self->attrs[COLOR_astbuilder__AExpr___variable_cache].val = p0; /* _variable_cache on <self:AExpr> */
609 RET_LABEL:;
610 }
611 /* method astbuilder#AExpr#variable_cache= for (self: Object, nullable Variable) */
612 void VIRTUAL_astbuilder__AExpr__variable_cache_61d(val* self, val* p0) {
613 { /* Inline astbuilder#AExpr#variable_cache= (self,p0) on <self:Object(AExpr)> */
614 self->attrs[COLOR_astbuilder__AExpr___variable_cache].val = p0; /* _variable_cache on <self:Object(AExpr)> */
615 RET_LABEL1:(void)0;
616 }
617 RET_LABEL:;
618 }
619 /* method astbuilder#AExpr#detach_with_placeholder for (self: AExpr): AExpr */
620 val* astbuilder__AExpr__detach_with_placeholder(val* self) {
621 val* var /* : AExpr */;
622 val* var1 /* : APlaceholderExpr */;
623 val* var_h /* var h: APlaceholderExpr */;
624 var1 = NEW_astbuilder__APlaceholderExpr(&type_astbuilder__APlaceholderExpr);
625 {
626 astbuilder__APlaceholderExpr__make(var1); /* Direct call astbuilder#APlaceholderExpr#make on <var1:APlaceholderExpr>*/
627 }
628 var_h = var1;
629 {
630 parser_nodes__Prod__replace_with(self, var_h); /* Direct call parser_nodes#Prod#replace_with on <self:AExpr>*/
631 }
632 var = var_h;
633 goto RET_LABEL;
634 RET_LABEL:;
635 return var;
636 }
637 /* method astbuilder#AExpr#detach_with_placeholder for (self: Object): AExpr */
638 val* VIRTUAL_astbuilder__AExpr__detach_with_placeholder(val* self) {
639 val* var /* : AExpr */;
640 val* var1 /* : AExpr */;
641 var1 = astbuilder__AExpr__detach_with_placeholder(self);
642 var = var1;
643 RET_LABEL:;
644 return var;
645 }
646 /* method astbuilder#AExpr#add for (self: AExpr, AExpr) */
647 void astbuilder__AExpr__add(val* self, val* p0) {
648 val* var_expr /* var expr: AExpr */;
649 var_expr = p0;
650 PRINT_ERROR("Runtime error: %s", "Aborted");
651 PRINT_ERROR(" (%s:%d)\n", "src/astbuilder.nit", 145);
652 show_backtrace(1);
653 RET_LABEL:;
654 }
655 /* method astbuilder#AExpr#add for (self: Object, AExpr) */
656 void VIRTUAL_astbuilder__AExpr__add(val* self, val* p0) {
657 astbuilder__AExpr__add(self, p0); /* Direct call astbuilder#AExpr#add on <self:Object(AExpr)>*/
658 RET_LABEL:;
659 }
660 /* method astbuilder#APlaceholderExpr#make for (self: APlaceholderExpr) */
661 void astbuilder__APlaceholderExpr__make(val* self) {
662 {
663 { /* Inline parser_nodes#ANode#init (self) on <self:APlaceholderExpr> */
664 RET_LABEL1:(void)0;
665 }
666 }
667 RET_LABEL:;
668 }
669 /* method astbuilder#APlaceholderExpr#make for (self: Object) */
670 void VIRTUAL_astbuilder__APlaceholderExpr__make(val* self) {
671 astbuilder__APlaceholderExpr__make(self); /* Direct call astbuilder#APlaceholderExpr#make on <self:Object(APlaceholderExpr)>*/
672 RET_LABEL:;
673 }
674 /* method astbuilder#ABlockExpr#make for (self: ABlockExpr) */
675 void astbuilder__ABlockExpr__make(val* self) {
676 short int var /* : Bool */;
677 var = 1;
678 {
679 { /* Inline typing#AExpr#is_typed= (self,var) on <self:ABlockExpr> */
680 self->attrs[COLOR_typing__AExpr___is_typed].s = var; /* _is_typed on <self:ABlockExpr> */
681 RET_LABEL1:(void)0;
682 }
683 }
684 RET_LABEL:;
685 }
686 /* method astbuilder#ABlockExpr#make for (self: Object) */
687 void VIRTUAL_astbuilder__ABlockExpr__make(val* self) {
688 astbuilder__ABlockExpr__make(self); /* Direct call astbuilder#ABlockExpr#make on <self:Object(ABlockExpr)>*/
689 RET_LABEL:;
690 }
691 /* method astbuilder#ABlockExpr#add for (self: ABlockExpr, AExpr) */
692 void astbuilder__ABlockExpr__add(val* self, val* p0) {
693 val* var_expr /* var expr: AExpr */;
694 val* var /* : ANodes[AExpr] */;
695 val* var2 /* : ANodes[AExpr] */;
696 var_expr = p0;
697 {
698 { /* Inline parser_nodes#ABlockExpr#n_expr (self) on <self:ABlockExpr> */
699 var2 = self->attrs[COLOR_parser_nodes__ABlockExpr___n_expr].val; /* _n_expr on <self:ABlockExpr> */
700 if (unlikely(var2 == NULL)) {
701 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
702 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 1424);
703 show_backtrace(1);
704 }
705 var = var2;
706 RET_LABEL1:(void)0;
707 }
708 }
709 {
710 abstract_collection__Sequence__add(var, var_expr); /* Direct call abstract_collection#Sequence#add on <var:ANodes[AExpr]>*/
711 }
712 RET_LABEL:;
713 }
714 /* method astbuilder#ABlockExpr#add for (self: Object, AExpr) */
715 void VIRTUAL_astbuilder__ABlockExpr__add(val* self, val* p0) {
716 astbuilder__ABlockExpr__add(self, p0); /* Direct call astbuilder#ABlockExpr#add on <self:Object(ABlockExpr)>*/
717 RET_LABEL:;
718 }
719 /* method astbuilder#AIfExpr#make for (self: AIfExpr, AExpr, nullable MType) */
720 void astbuilder__AIfExpr__make(val* self, val* p0, val* p1) {
721 val* var_condition /* var condition: AExpr */;
722 val* var_mtype /* var mtype: nullable MType */;
723 val* var /* : TKwif */;
724 val* var2 /* : AExpr */;
725 val* var4 /* : ABlockExpr */;
726 val* var5 /* : ABlockExpr */;
727 short int var7 /* : Bool */;
728 var_condition = p0;
729 var_mtype = p1;
730 var = NEW_parser_nodes__TKwif(&type_parser_nodes__TKwif);
731 {
732 { /* Inline parser_nodes#ANode#init (var) on <var:TKwif> */
733 RET_LABEL1:(void)0;
734 }
735 }
736 self->attrs[COLOR_parser_nodes__AIfExpr___n_kwif].val = var; /* _n_kwif on <self:AIfExpr> */
737 self->attrs[COLOR_parser_nodes__AIfExpr___n_expr].val = var_condition; /* _n_expr on <self:AIfExpr> */
738 var2 = self->attrs[COLOR_parser_nodes__AIfExpr___n_expr].val; /* _n_expr on <self:AIfExpr> */
739 if (unlikely(var2 == NULL)) {
740 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
741 PRINT_ERROR(" (%s:%d)\n", "src/astbuilder.nit", 206);
742 show_backtrace(1);
743 }
744 {
745 { /* Inline parser_nodes#ANode#parent= (var2,self) on <var2:AExpr> */
746 var2->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var2:AExpr> */
747 RET_LABEL3:(void)0;
748 }
749 }
750 var4 = NEW_parser_nodes__ABlockExpr(&type_parser_nodes__ABlockExpr);
751 {
752 astbuilder__ABlockExpr__make(var4); /* Direct call astbuilder#ABlockExpr#make on <var4:ABlockExpr>*/
753 }
754 self->attrs[COLOR_parser_nodes__AIfExpr___n_then].val = var4; /* _n_then on <self:AIfExpr> */
755 var5 = NEW_parser_nodes__ABlockExpr(&type_parser_nodes__ABlockExpr);
756 {
757 astbuilder__ABlockExpr__make(var5); /* Direct call astbuilder#ABlockExpr#make on <var5:ABlockExpr>*/
758 }
759 self->attrs[COLOR_parser_nodes__AIfExpr___n_else].val = var5; /* _n_else on <self:AIfExpr> */
760 {
761 { /* Inline typing#AExpr#mtype= (self,var_mtype) on <self:AIfExpr> */
762 self->attrs[COLOR_typing__AExpr___mtype].val = var_mtype; /* _mtype on <self:AIfExpr> */
763 RET_LABEL6:(void)0;
764 }
765 }
766 var7 = 1;
767 {
768 { /* Inline typing#AExpr#is_typed= (self,var7) on <self:AIfExpr> */
769 self->attrs[COLOR_typing__AExpr___is_typed].s = var7; /* _is_typed on <self:AIfExpr> */
770 RET_LABEL8:(void)0;
771 }
772 }
773 RET_LABEL:;
774 }
775 /* method astbuilder#AIfExpr#make for (self: Object, AExpr, nullable MType) */
776 void VIRTUAL_astbuilder__AIfExpr__make(val* self, val* p0, val* p1) {
777 astbuilder__AIfExpr__make(self, p0, p1); /* Direct call astbuilder#AIfExpr#make on <self:Object(AIfExpr)>*/
778 RET_LABEL:;
779 }
780 /* method astbuilder#AType#make for (self: AType) */
781 void astbuilder__AType__make(val* self) {
782 val* var /* : TClassid */;
783 var = NEW_parser_nodes__TClassid(&type_parser_nodes__TClassid);
784 {
785 { /* Inline parser_nodes#ANode#init (var) on <var:TClassid> */
786 RET_LABEL1:(void)0;
787 }
788 }
789 self->attrs[COLOR_parser_nodes__AType___n_id].val = var; /* _n_id on <self:AType> */
790 RET_LABEL:;
791 }
792 /* method astbuilder#AType#make for (self: Object) */
793 void VIRTUAL_astbuilder__AType__make(val* self) {
794 astbuilder__AType__make(self); /* Direct call astbuilder#AType#make on <self:Object(AType)>*/
795 RET_LABEL:;
796 }
797 /* method astbuilder#ADecIntExpr#make for (self: ADecIntExpr, Int, MType) */
798 void astbuilder__ADecIntExpr__make(val* self, long p0, val* p1) {
799 long var_value /* var value: Int */;
800 val* var_t /* var t: MType */;
801 val* var /* : nullable Int */;
802 val* var2 /* : TNumber */;
803 var_value = p0;
804 var_t = p1;
805 {
806 { /* Inline literal#AIntExpr#value= (self,var_value) on <self:ADecIntExpr> */
807 var = BOX_kernel__Int(var_value); /* autobox from Int to nullable Int */
808 self->attrs[COLOR_literal__AIntExpr___value].val = var; /* _value on <self:ADecIntExpr> */
809 RET_LABEL1:(void)0;
810 }
811 }
812 var2 = NEW_parser_nodes__TNumber(&type_parser_nodes__TNumber);
813 {
814 { /* Inline parser_nodes#ANode#init (var2) on <var2:TNumber> */
815 RET_LABEL3:(void)0;
816 }
817 }
818 self->attrs[COLOR_parser_nodes__ADecIntExpr___n_number].val = var2; /* _n_number on <self:ADecIntExpr> */
819 {
820 { /* Inline typing#AExpr#mtype= (self,var_t) on <self:ADecIntExpr> */
821 self->attrs[COLOR_typing__AExpr___mtype].val = var_t; /* _mtype on <self:ADecIntExpr> */
822 RET_LABEL4:(void)0;
823 }
824 }
825 RET_LABEL:;
826 }
827 /* method astbuilder#ADecIntExpr#make for (self: Object, Int, MType) */
828 void VIRTUAL_astbuilder__ADecIntExpr__make(val* self, long p0, val* p1) {
829 astbuilder__ADecIntExpr__make(self, p0, p1); /* Direct call astbuilder#ADecIntExpr#make on <self:Object(ADecIntExpr)>*/
830 RET_LABEL:;
831 }
832 /* method astbuilder#ANewExpr#make for (self: ANewExpr, CallSite, nullable Array[AExpr]) */
833 void astbuilder__ANewExpr__make(val* self, val* p0, val* p1) {
834 val* var_callsite /* var callsite: CallSite */;
835 val* var_args /* var args: nullable Array[AExpr] */;
836 val* var /* : TKwnew */;
837 val* var2 /* : AType */;
838 val* var3 /* : AListExprs */;
839 val* var4 /* : null */;
840 short int var5 /* : Bool */;
841 short int var6 /* : Bool */;
842 val* var_other /* var other: nullable Object */;
843 short int var8 /* : Bool */;
844 short int var9 /* : Bool */;
845 short int var10 /* : Bool */;
846 val* var11 /* : AExprs */;
847 val* var12 /* : ANodes[AExpr] */;
848 val* var14 /* : ANodes[AExpr] */;
849 val* var16 /* : MType */;
850 val* var18 /* : MType */;
851 short int var20 /* : Bool */;
852 var_callsite = p0;
853 var_args = p1;
854 var = NEW_parser_nodes__TKwnew(&type_parser_nodes__TKwnew);
855 {
856 { /* Inline parser_nodes#ANode#init (var) on <var:TKwnew> */
857 RET_LABEL1:(void)0;
858 }
859 }
860 self->attrs[COLOR_parser_nodes__ANewExpr___n_kwnew].val = var; /* _n_kwnew on <self:ANewExpr> */
861 var2 = NEW_parser_nodes__AType(&type_parser_nodes__AType);
862 {
863 astbuilder__AType__make(var2); /* Direct call astbuilder#AType#make on <var2:AType>*/
864 }
865 self->attrs[COLOR_parser_nodes__ANewExpr___n_type].val = var2; /* _n_type on <self:ANewExpr> */
866 var3 = NEW_parser_nodes__AListExprs(&type_parser_nodes__AListExprs);
867 {
868 parser_nodes__AExprs__init(var3); /* Direct call parser_nodes#AExprs#init on <var3:AListExprs>*/
869 }
870 self->attrs[COLOR_parser_nodes__ANewExpr___n_args].val = var3; /* _n_args on <self:ANewExpr> */
871 var4 = NULL;
872 if (var_args == NULL) {
873 var5 = 0; /* is null */
874 } else {
875 var5 = 1; /* arg is null and recv is not */
876 }
877 if (0) {
878 { /* Inline kernel#Object#!= (var_args,var4) on <var_args:nullable Array[AExpr]> */
879 var_other = var4;
880 {
881 var9 = ((short int (*)(val*, val*))(var_args->class->vft[COLOR_kernel__Object___61d_61d]))(var_args, var_other) /* == on <var_args:nullable Array[AExpr](Array[AExpr])>*/;
882 var8 = var9;
883 }
884 var10 = !var8;
885 var6 = var10;
886 goto RET_LABEL7;
887 RET_LABEL7:(void)0;
888 }
889 var5 = var6;
890 }
891 if (var5){
892 {
893 var11 = parser_nodes__ANewExpr__n_args(self);
894 }
895 {
896 { /* Inline parser_nodes#AExprs#n_exprs (var11) on <var11:AExprs> */
897 var14 = var11->attrs[COLOR_parser_nodes__AExprs___n_exprs].val; /* _n_exprs on <var11:AExprs> */
898 if (unlikely(var14 == NULL)) {
899 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
900 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 2274);
901 show_backtrace(1);
902 }
903 var12 = var14;
904 RET_LABEL13:(void)0;
905 }
906 }
907 {
908 abstract_collection__SimpleCollection__add_all(var12, var_args); /* Direct call abstract_collection#SimpleCollection#add_all on <var12:ANodes[AExpr]>*/
909 }
910 } else {
911 }
912 {
913 { /* Inline typing#ANewExpr#callsite= (self,var_callsite) on <self:ANewExpr> */
914 self->attrs[COLOR_typing__ANewExpr___callsite].val = var_callsite; /* _callsite on <self:ANewExpr> */
915 RET_LABEL15:(void)0;
916 }
917 }
918 {
919 { /* Inline typing#CallSite#recv (var_callsite) on <var_callsite:CallSite> */
920 var18 = var_callsite->attrs[COLOR_typing__CallSite___recv].val; /* _recv on <var_callsite:CallSite> */
921 if (unlikely(var18 == NULL)) {
922 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _recv");
923 PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 408);
924 show_backtrace(1);
925 }
926 var16 = var18;
927 RET_LABEL17:(void)0;
928 }
929 }
930 {
931 { /* Inline typing#AExpr#mtype= (self,var16) on <self:ANewExpr> */
932 self->attrs[COLOR_typing__AExpr___mtype].val = var16; /* _mtype on <self:ANewExpr> */
933 RET_LABEL19:(void)0;
934 }
935 }
936 var20 = 1;
937 {
938 { /* Inline typing#AExpr#is_typed= (self,var20) on <self:ANewExpr> */
939 self->attrs[COLOR_typing__AExpr___is_typed].s = var20; /* _is_typed on <self:ANewExpr> */
940 RET_LABEL21:(void)0;
941 }
942 }
943 RET_LABEL:;
944 }
945 /* method astbuilder#ANewExpr#make for (self: Object, CallSite, nullable Array[AExpr]) */
946 void VIRTUAL_astbuilder__ANewExpr__make(val* self, val* p0, val* p1) {
947 astbuilder__ANewExpr__make(self, p0, p1); /* Direct call astbuilder#ANewExpr#make on <self:Object(ANewExpr)>*/
948 RET_LABEL:;
949 }
950 /* method astbuilder#ACallExpr#make for (self: ACallExpr, AExpr, CallSite, nullable Array[AExpr]) */
951 void astbuilder__ACallExpr__make(val* self, val* p0, val* p1, val* p2) {
952 val* var_recv /* var recv: AExpr */;
953 val* var_callsite /* var callsite: CallSite */;
954 val* var_args /* var args: nullable Array[AExpr] */;
955 val* var /* : AListExprs */;
956 val* var1 /* : TId */;
957 val* var3 /* : null */;
958 short int var4 /* : Bool */;
959 short int var5 /* : Bool */;
960 val* var_other /* var other: nullable Object */;
961 short int var7 /* : Bool */;
962 short int var8 /* : Bool */;
963 short int var9 /* : Bool */;
964 val* var10 /* : AExprs */;
965 val* var11 /* : ANodes[AExpr] */;
966 val* var13 /* : ANodes[AExpr] */;
967 val* var14 /* : nullable MType */;
968 val* var_mtype /* var mtype: MType */;
969 val* var16 /* : MSignature */;
970 val* var18 /* : MSignature */;
971 val* var19 /* : nullable MType */;
972 val* var21 /* : nullable MType */;
973 short int var23 /* : Bool */;
974 var_recv = p0;
975 var_callsite = p1;
976 var_args = p2;
977 self->attrs[COLOR_parser_nodes__ASendExpr___n_expr].val = var_recv; /* _n_expr on <self:ACallExpr> */
978 var = NEW_parser_nodes__AListExprs(&type_parser_nodes__AListExprs);
979 {
980 parser_nodes__AExprs__init(var); /* Direct call parser_nodes#AExprs#init on <var:AListExprs>*/
981 }
982 self->attrs[COLOR_parser_nodes__ACallFormExpr___n_args].val = var; /* _n_args on <self:ACallExpr> */
983 var1 = NEW_parser_nodes__TId(&type_parser_nodes__TId);
984 {
985 { /* Inline parser_nodes#ANode#init (var1) on <var1:TId> */
986 RET_LABEL2:(void)0;
987 }
988 }
989 self->attrs[COLOR_parser_nodes__ACallFormExpr___n_id].val = var1; /* _n_id on <self:ACallExpr> */
990 var3 = NULL;
991 if (var_args == NULL) {
992 var4 = 0; /* is null */
993 } else {
994 var4 = 1; /* arg is null and recv is not */
995 }
996 if (0) {
997 { /* Inline kernel#Object#!= (var_args,var3) on <var_args:nullable Array[AExpr]> */
998 var_other = var3;
999 {
1000 var8 = ((short int (*)(val*, val*))(var_args->class->vft[COLOR_kernel__Object___61d_61d]))(var_args, var_other) /* == on <var_args:nullable Array[AExpr](Array[AExpr])>*/;
1001 var7 = var8;
1002 }
1003 var9 = !var7;
1004 var5 = var9;
1005 goto RET_LABEL6;
1006 RET_LABEL6:(void)0;
1007 }
1008 var4 = var5;
1009 }
1010 if (var4){
1011 {
1012 var10 = parser_nodes__ACallFormExpr__n_args(self);
1013 }
1014 {
1015 { /* Inline parser_nodes#AExprs#n_exprs (var10) on <var10:AExprs> */
1016 var13 = var10->attrs[COLOR_parser_nodes__AExprs___n_exprs].val; /* _n_exprs on <var10:AExprs> */
1017 if (unlikely(var13 == NULL)) {
1018 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
1019 PRINT_ERROR(" (%s:%d)\n", "src/parser/parser_nodes.nit", 2274);
1020 show_backtrace(1);
1021 }
1022 var11 = var13;
1023 RET_LABEL12:(void)0;
1024 }
1025 }
1026 {
1027 abstract_collection__SimpleCollection__add_all(var11, var_args); /* Direct call abstract_collection#SimpleCollection#add_all on <var11:ANodes[AExpr]>*/
1028 }
1029 } else {
1030 }
1031 {
1032 var14 = ((val* (*)(val*))(var_recv->class->vft[COLOR_typing__AExpr__mtype]))(var_recv) /* mtype on <var_recv:AExpr>*/;
1033 }
1034 if (unlikely(var14 == NULL)) {
1035 PRINT_ERROR("Runtime error: %s", "Cast failed");
1036 PRINT_ERROR(" (%s:%d)\n", "src/astbuilder.nit", 254);
1037 show_backtrace(1);
1038 }
1039 var_mtype = var14;
1040 {
1041 { /* Inline typing#ASendExpr#callsite= (self,var_callsite) on <self:ACallExpr> */
1042 self->attrs[COLOR_typing__ASendExpr___callsite].val = var_callsite; /* _callsite on <self:ACallExpr> */
1043 RET_LABEL15:(void)0;
1044 }
1045 }
1046 {
1047 { /* Inline typing#CallSite#msignature (var_callsite) on <var_callsite:CallSite> */
1048 var18 = var_callsite->attrs[COLOR_typing__CallSite___msignature].val; /* _msignature on <var_callsite:CallSite> */
1049 if (unlikely(var18 == NULL)) {
1050 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _msignature");
1051 PRINT_ERROR(" (%s:%d)\n", "src/typing.nit", 429);
1052 show_backtrace(1);
1053 }
1054 var16 = var18;
1055 RET_LABEL17:(void)0;
1056 }
1057 }
1058 {
1059 { /* Inline model#MSignature#return_mtype (var16) on <var16:MSignature> */
1060 var21 = var16->attrs[COLOR_model__MSignature___return_mtype].val; /* _return_mtype on <var16:MSignature> */
1061 var19 = var21;
1062 RET_LABEL20:(void)0;
1063 }
1064 }
1065 {
1066 { /* Inline typing#AExpr#mtype= (self,var19) on <self:ACallExpr> */
1067 self->attrs[COLOR_typing__AExpr___mtype].val = var19; /* _mtype on <self:ACallExpr> */
1068 RET_LABEL22:(void)0;
1069 }
1070 }
1071 var23 = 1;
1072 {
1073 { /* Inline typing#AExpr#is_typed= (self,var23) on <self:ACallExpr> */
1074 self->attrs[COLOR_typing__AExpr___is_typed].s = var23; /* _is_typed on <self:ACallExpr> */
1075 RET_LABEL24:(void)0;
1076 }
1077 }
1078 RET_LABEL:;
1079 }
1080 /* method astbuilder#ACallExpr#make for (self: Object, AExpr, CallSite, nullable Array[AExpr]) */
1081 void VIRTUAL_astbuilder__ACallExpr__make(val* self, val* p0, val* p1, val* p2) {
1082 astbuilder__ACallExpr__make(self, p0, p1, p2); /* Direct call astbuilder#ACallExpr#make on <self:Object(ACallExpr)>*/
1083 RET_LABEL:;
1084 }
1085 /* method astbuilder#AAttrExpr#make for (self: AAttrExpr, AExpr, MAttribute, MType) */
1086 void astbuilder__AAttrExpr__make(val* self, val* p0, val* p1, val* p2) {
1087 val* var_recv /* var recv: AExpr */;
1088 val* var_attribute /* var attribute: MAttribute */;
1089 val* var_t /* var t: MType */;
1090 val* var /* : TAttrid */;
1091 var_recv = p0;
1092 var_attribute = p1;
1093 var_t = p2;
1094 self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_expr].val = var_recv; /* _n_expr on <self:AAttrExpr> */
1095 {
1096 { /* Inline parser_nodes#ANode#parent= (var_recv,self) on <var_recv:AExpr> */
1097 var_recv->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_recv:AExpr> */
1098 RET_LABEL1:(void)0;
1099 }
1100 }
1101 var = NEW_parser_nodes__TAttrid(&type_parser_nodes__TAttrid);
1102 {
1103 { /* Inline parser_nodes#ANode#init (var) on <var:TAttrid> */
1104 RET_LABEL2:(void)0;
1105 }
1106 }
1107 self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_id].val = var; /* _n_id on <self:AAttrExpr> */
1108 {
1109 { /* Inline typing#AAttrFormExpr#mproperty= (self,var_attribute) on <self:AAttrExpr> */
1110 self->attrs[COLOR_typing__AAttrFormExpr___mproperty].val = var_attribute; /* _mproperty on <self:AAttrExpr> */
1111 RET_LABEL3:(void)0;
1112 }
1113 }
1114 {
1115 { /* Inline typing#AExpr#mtype= (self,var_t) on <self:AAttrExpr> */
1116 self->attrs[COLOR_typing__AExpr___mtype].val = var_t; /* _mtype on <self:AAttrExpr> */
1117 RET_LABEL4:(void)0;
1118 }
1119 }
1120 RET_LABEL:;
1121 }
1122 /* method astbuilder#AAttrExpr#make for (self: Object, AExpr, MAttribute, MType) */
1123 void VIRTUAL_astbuilder__AAttrExpr__make(val* self, val* p0, val* p1, val* p2) {
1124 astbuilder__AAttrExpr__make(self, p0, p1, p2); /* Direct call astbuilder#AAttrExpr#make on <self:Object(AAttrExpr)>*/
1125 RET_LABEL:;
1126 }
1127 /* method astbuilder#AAttrAssignExpr#make for (self: AAttrAssignExpr, AExpr, MAttribute, AExpr) */
1128 void astbuilder__AAttrAssignExpr__make(val* self, val* p0, val* p1, val* p2) {
1129 val* var_recv /* var recv: AExpr */;
1130 val* var_attribute /* var attribute: MAttribute */;
1131 val* var_value /* var value: AExpr */;
1132 val* var /* : TAttrid */;
1133 val* var4 /* : TAssign */;
1134 val* var7 /* : nullable MType */;
1135 var_recv = p0;
1136 var_attribute = p1;
1137 var_value = p2;
1138 self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_expr].val = var_recv; /* _n_expr on <self:AAttrAssignExpr> */
1139 {
1140 { /* Inline parser_nodes#ANode#parent= (var_recv,self) on <var_recv:AExpr> */
1141 var_recv->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_recv:AExpr> */
1142 RET_LABEL1:(void)0;
1143 }
1144 }
1145 var = NEW_parser_nodes__TAttrid(&type_parser_nodes__TAttrid);
1146 {
1147 { /* Inline parser_nodes#ANode#init (var) on <var:TAttrid> */
1148 RET_LABEL2:(void)0;
1149 }
1150 }
1151 self->attrs[COLOR_parser_nodes__AAttrFormExpr___n_id].val = var; /* _n_id on <self:AAttrAssignExpr> */
1152 self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_value].val = var_value; /* _n_value on <self:AAttrAssignExpr> */
1153 {
1154 { /* Inline parser_nodes#ANode#parent= (var_value,self) on <var_value:AExpr> */
1155 var_value->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_value:AExpr> */
1156 RET_LABEL3:(void)0;
1157 }
1158 }
1159 var4 = NEW_parser_nodes__TAssign(&type_parser_nodes__TAssign);
1160 {
1161 { /* Inline parser_nodes#ANode#init (var4) on <var4:TAssign> */
1162 RET_LABEL5:(void)0;
1163 }
1164 }
1165 self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_assign].val = var4; /* _n_assign on <self:AAttrAssignExpr> */
1166 {
1167 { /* Inline typing#AAttrFormExpr#mproperty= (self,var_attribute) on <self:AAttrAssignExpr> */
1168 self->attrs[COLOR_typing__AAttrFormExpr___mproperty].val = var_attribute; /* _mproperty on <self:AAttrAssignExpr> */
1169 RET_LABEL6:(void)0;
1170 }
1171 }
1172 {
1173 var7 = ((val* (*)(val*))(var_value->class->vft[COLOR_typing__AExpr__mtype]))(var_value) /* mtype on <var_value:AExpr>*/;
1174 }
1175 {
1176 { /* Inline typing#AExpr#mtype= (self,var7) on <self:AAttrAssignExpr> */
1177 self->attrs[COLOR_typing__AExpr___mtype].val = var7; /* _mtype on <self:AAttrAssignExpr> */
1178 RET_LABEL8:(void)0;
1179 }
1180 }
1181 RET_LABEL:;
1182 }
1183 /* method astbuilder#AAttrAssignExpr#make for (self: Object, AExpr, MAttribute, AExpr) */
1184 void VIRTUAL_astbuilder__AAttrAssignExpr__make(val* self, val* p0, val* p1, val* p2) {
1185 astbuilder__AAttrAssignExpr__make(self, p0, p1, p2); /* Direct call astbuilder#AAttrAssignExpr#make on <self:Object(AAttrAssignExpr)>*/
1186 RET_LABEL:;
1187 }
1188 /* method astbuilder#AVarExpr#make for (self: AVarExpr, Variable, MType) */
1189 void astbuilder__AVarExpr__make(val* self, val* p0, val* p1) {
1190 val* var_v /* var v: Variable */;
1191 val* var_mtype /* var mtype: MType */;
1192 val* var /* : TId */;
1193 var_v = p0;
1194 var_mtype = p1;
1195 var = NEW_parser_nodes__TId(&type_parser_nodes__TId);
1196 {
1197 { /* Inline parser_nodes#ANode#init (var) on <var:TId> */
1198 RET_LABEL1:(void)0;
1199 }
1200 }
1201 self->attrs[COLOR_parser_nodes__AVarFormExpr___n_id].val = var; /* _n_id on <self:AVarExpr> */
1202 {
1203 { /* Inline scope#AVarFormExpr#variable= (self,var_v) on <self:AVarExpr> */
1204 self->attrs[COLOR_scope__AVarFormExpr___variable].val = var_v; /* _variable on <self:AVarExpr> */
1205 RET_LABEL2:(void)0;
1206 }
1207 }
1208 {
1209 { /* Inline typing#AExpr#mtype= (self,var_mtype) on <self:AVarExpr> */
1210 self->attrs[COLOR_typing__AExpr___mtype].val = var_mtype; /* _mtype on <self:AVarExpr> */
1211 RET_LABEL3:(void)0;
1212 }
1213 }
1214 RET_LABEL:;
1215 }
1216 /* method astbuilder#AVarExpr#make for (self: Object, Variable, MType) */
1217 void VIRTUAL_astbuilder__AVarExpr__make(val* self, val* p0, val* p1) {
1218 astbuilder__AVarExpr__make(self, p0, p1); /* Direct call astbuilder#AVarExpr#make on <self:Object(AVarExpr)>*/
1219 RET_LABEL:;
1220 }
1221 /* method astbuilder#AVarAssignExpr#make for (self: AVarAssignExpr, Variable, AExpr) */
1222 void astbuilder__AVarAssignExpr__make(val* self, val* p0, val* p1) {
1223 val* var_v /* var v: Variable */;
1224 val* var_value /* var value: AExpr */;
1225 val* var /* : TId */;
1226 val* var3 /* : TAssign */;
1227 val* var6 /* : nullable MType */;
1228 var_v = p0;
1229 var_value = p1;
1230 var = NEW_parser_nodes__TId(&type_parser_nodes__TId);
1231 {
1232 { /* Inline parser_nodes#ANode#init (var) on <var:TId> */
1233 RET_LABEL1:(void)0;
1234 }
1235 }
1236 self->attrs[COLOR_parser_nodes__AVarFormExpr___n_id].val = var; /* _n_id on <self:AVarAssignExpr> */
1237 self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_value].val = var_value; /* _n_value on <self:AVarAssignExpr> */
1238 {
1239 { /* Inline parser_nodes#ANode#parent= (var_value,self) on <var_value:AExpr> */
1240 var_value->attrs[COLOR_parser_nodes__ANode___parent].val = self; /* _parent on <var_value:AExpr> */
1241 RET_LABEL2:(void)0;
1242 }
1243 }
1244 var3 = NEW_parser_nodes__TAssign(&type_parser_nodes__TAssign);
1245 {
1246 { /* Inline parser_nodes#ANode#init (var3) on <var3:TAssign> */
1247 RET_LABEL4:(void)0;
1248 }
1249 }
1250 self->attrs[COLOR_parser_nodes__AAssignFormExpr___n_assign].val = var3; /* _n_assign on <self:AVarAssignExpr> */
1251 {
1252 { /* Inline scope#AVarFormExpr#variable= (self,var_v) on <self:AVarAssignExpr> */
1253 self->attrs[COLOR_scope__AVarFormExpr___variable].val = var_v; /* _variable on <self:AVarAssignExpr> */
1254 RET_LABEL5:(void)0;
1255 }
1256 }
1257 {
1258 var6 = ((val* (*)(val*))(var_value->class->vft[COLOR_typing__AExpr__mtype]))(var_value) /* mtype on <var_value:AExpr>*/;
1259 }
1260 {
1261 { /* Inline typing#AExpr#mtype= (self,var6) on <self:AVarAssignExpr> */
1262 self->attrs[COLOR_typing__AExpr___mtype].val = var6; /* _mtype on <self:AVarAssignExpr> */
1263 RET_LABEL7:(void)0;
1264 }
1265 }
1266 RET_LABEL:;
1267 }
1268 /* method astbuilder#AVarAssignExpr#make for (self: Object, Variable, AExpr) */
1269 void VIRTUAL_astbuilder__AVarAssignExpr__make(val* self, val* p0, val* p1) {
1270 astbuilder__AVarAssignExpr__make(self, p0, p1); /* Direct call astbuilder#AVarAssignExpr#make on <self:Object(AVarAssignExpr)>*/
1271 RET_LABEL:;
1272 }