README: document nit_env.sh
[nit.git] / c_src / nit__astbuilder.sep.1.c
1 #include "nit__astbuilder.sep.0.h"
2 /* method astbuilder#ASTBuilder#mmodule for (self: ASTBuilder): MModule */
3 val* nit___nit__ASTBuilder___mmodule(val* self) {
4 val* var /* : MModule */;
5 val* var1 /* : MModule */;
6 var1 = self->attrs[COLOR_nit__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", FILE_nit__astbuilder, 25);
10 fatal_exit(1);
11 }
12 var = var1;
13 RET_LABEL:;
14 return var;
15 }
16 /* method astbuilder#ASTBuilder#mmodule= for (self: ASTBuilder, MModule) */
17 void nit___nit__ASTBuilder___mmodule_61d(val* self, val* p0) {
18 self->attrs[COLOR_nit__astbuilder__ASTBuilder___mmodule].val = p0; /* _mmodule on <self:ASTBuilder> */
19 RET_LABEL:;
20 }
21 /* method astbuilder#ASTBuilder#anchor for (self: ASTBuilder): nullable MClassType */
22 val* nit___nit__ASTBuilder___anchor(val* self) {
23 val* var /* : nullable MClassType */;
24 val* var1 /* : nullable MClassType */;
25 var1 = self->attrs[COLOR_nit__astbuilder__ASTBuilder___anchor].val; /* _anchor on <self:ASTBuilder> */
26 var = var1;
27 RET_LABEL:;
28 return var;
29 }
30 /* method astbuilder#ASTBuilder#anchor= for (self: ASTBuilder, nullable MClassType) */
31 void nit___nit__ASTBuilder___anchor_61d(val* self, val* p0) {
32 self->attrs[COLOR_nit__astbuilder__ASTBuilder___anchor].val = p0; /* _anchor on <self:ASTBuilder> */
33 RET_LABEL:;
34 }
35 /* method astbuilder#ASTBuilder#make_int for (self: ASTBuilder, Int): AIntExpr */
36 val* nit___nit__ASTBuilder___make_int(val* self, long p0) {
37 val* var /* : AIntExpr */;
38 long var_value /* var value: Int */;
39 val* var1 /* : ADecIntExpr */;
40 val* var2 /* : MModule */;
41 val* var4 /* : MModule */;
42 val* var5 /* : MClassType */;
43 var_value = p0;
44 var1 = NEW_nit__ADecIntExpr(&type_nit__ADecIntExpr);
45 {
46 { /* Inline astbuilder#ASTBuilder#mmodule (self) on <self:ASTBuilder> */
47 var4 = self->attrs[COLOR_nit__astbuilder__ASTBuilder___mmodule].val; /* _mmodule on <self:ASTBuilder> */
48 if (unlikely(var4 == NULL)) {
49 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
50 PRINT_ERROR(" (%s:%d)\n", FILE_nit__astbuilder, 25);
51 fatal_exit(1);
52 }
53 var2 = var4;
54 RET_LABEL3:(void)0;
55 }
56 }
57 {
58 var5 = nit__model___MModule___int_type(var2);
59 }
60 {
61 nit__astbuilder___ADecIntExpr___make(var1, var_value, var5); /* Direct call astbuilder#ADecIntExpr#make on <var1:ADecIntExpr>*/
62 }
63 var = var1;
64 goto RET_LABEL;
65 RET_LABEL:;
66 return var;
67 }
68 /* method astbuilder#ASTBuilder#make_new for (self: ASTBuilder, CallSite, nullable Array[AExpr]): ANewExpr */
69 val* nit___nit__ASTBuilder___make_new(val* self, val* p0, val* p1) {
70 val* var /* : ANewExpr */;
71 val* var_callsite /* var callsite: CallSite */;
72 val* var_args /* var args: nullable Array[AExpr] */;
73 val* var1 /* : ANewExpr */;
74 var_callsite = p0;
75 var_args = p1;
76 var1 = NEW_nit__ANewExpr(&type_nit__ANewExpr);
77 {
78 nit__astbuilder___ANewExpr___make(var1, var_callsite, var_args); /* Direct call astbuilder#ANewExpr#make on <var1:ANewExpr>*/
79 }
80 var = var1;
81 goto RET_LABEL;
82 RET_LABEL:;
83 return var;
84 }
85 /* method astbuilder#ASTBuilder#make_call for (self: ASTBuilder, AExpr, CallSite, nullable Array[AExpr]): ACallExpr */
86 val* nit___nit__ASTBuilder___make_call(val* self, val* p0, val* p1, val* p2) {
87 val* var /* : ACallExpr */;
88 val* var_recv /* var recv: AExpr */;
89 val* var_callsite /* var callsite: CallSite */;
90 val* var_args /* var args: nullable Array[AExpr] */;
91 val* var1 /* : ACallExpr */;
92 var_recv = p0;
93 var_callsite = p1;
94 var_args = p2;
95 var1 = NEW_nit__ACallExpr(&type_nit__ACallExpr);
96 {
97 nit__astbuilder___ACallExpr___make(var1, var_recv, var_callsite, var_args); /* Direct call astbuilder#ACallExpr#make on <var1:ACallExpr>*/
98 }
99 var = var1;
100 goto RET_LABEL;
101 RET_LABEL:;
102 return var;
103 }
104 /* method astbuilder#ASTBuilder#make_block for (self: ASTBuilder): ABlockExpr */
105 val* nit___nit__ASTBuilder___make_block(val* self) {
106 val* var /* : ABlockExpr */;
107 val* var1 /* : ABlockExpr */;
108 var1 = NEW_nit__ABlockExpr(&type_nit__ABlockExpr);
109 {
110 nit__astbuilder___ABlockExpr___make(var1); /* Direct call astbuilder#ABlockExpr#make on <var1:ABlockExpr>*/
111 }
112 var = var1;
113 goto RET_LABEL;
114 RET_LABEL:;
115 return var;
116 }
117 /* method astbuilder#ASTBuilder#make_loop for (self: ASTBuilder): ALoopExpr */
118 val* nit___nit__ASTBuilder___make_loop(val* self) {
119 val* var /* : ALoopExpr */;
120 val* var1 /* : ALoopExpr */;
121 var1 = NEW_nit__ALoopExpr(&type_nit__ALoopExpr);
122 {
123 nit__astbuilder___ALoopExpr___make(var1); /* Direct call astbuilder#ALoopExpr#make on <var1:ALoopExpr>*/
124 }
125 var = var1;
126 goto RET_LABEL;
127 RET_LABEL:;
128 return var;
129 }
130 /* method astbuilder#ASTBuilder#make_var_read for (self: ASTBuilder, Variable, MType): AVarExpr */
131 val* nit___nit__ASTBuilder___make_var_read(val* self, val* p0, val* p1) {
132 val* var /* : AVarExpr */;
133 val* var_variable /* var variable: Variable */;
134 val* var_mtype /* var mtype: MType */;
135 val* var1 /* : AVarExpr */;
136 var_variable = p0;
137 var_mtype = p1;
138 var1 = NEW_nit__AVarExpr(&type_nit__AVarExpr);
139 {
140 nit__astbuilder___AVarExpr___make(var1, var_variable, var_mtype); /* Direct call astbuilder#AVarExpr#make on <var1:AVarExpr>*/
141 }
142 var = var1;
143 goto RET_LABEL;
144 RET_LABEL:;
145 return var;
146 }
147 /* method astbuilder#ASTBuilder#make_var_assign for (self: ASTBuilder, Variable, AExpr): AVarAssignExpr */
148 val* nit___nit__ASTBuilder___make_var_assign(val* self, val* p0, val* p1) {
149 val* var /* : AVarAssignExpr */;
150 val* var_variable /* var variable: Variable */;
151 val* var_value /* var value: AExpr */;
152 val* var1 /* : AVarAssignExpr */;
153 var_variable = p0;
154 var_value = p1;
155 var1 = NEW_nit__AVarAssignExpr(&type_nit__AVarAssignExpr);
156 {
157 nit__astbuilder___AVarAssignExpr___make(var1, var_variable, var_value); /* Direct call astbuilder#AVarAssignExpr#make on <var1:AVarAssignExpr>*/
158 }
159 var = var1;
160 goto RET_LABEL;
161 RET_LABEL:;
162 return var;
163 }
164 /* method astbuilder#ASTBuilder#make_attr_read for (self: ASTBuilder, AExpr, MAttribute): AAttrExpr */
165 val* nit___nit__ASTBuilder___make_attr_read(val* self, val* p0, val* p1) {
166 val* var /* : AAttrExpr */;
167 val* var_recv /* var recv: AExpr */;
168 val* var_attribute /* var attribute: MAttribute */;
169 val* var1 /* : MPropDef */;
170 val* var3 /* : MPropDef */;
171 val* var4 /* : nullable MType */;
172 val* var6 /* : nullable MType */;
173 val* var7 /* : nullable MType */;
174 val* var8 /* : nullable MClassType */;
175 val* var10 /* : nullable MClassType */;
176 val* var11 /* : MModule */;
177 val* var13 /* : MModule */;
178 val* var14 /* : MType */;
179 val* var_mtype /* var mtype: MType */;
180 val* var15 /* : AAttrExpr */;
181 var_recv = p0;
182 var_attribute = p1;
183 {
184 { /* Inline model#MProperty#intro (var_attribute) on <var_attribute:MAttribute> */
185 var3 = var_attribute->attrs[COLOR_nit__model__MProperty___intro].val; /* _intro on <var_attribute:MAttribute> */
186 if (unlikely(var3 == NULL)) {
187 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
188 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1968);
189 fatal_exit(1);
190 }
191 var1 = var3;
192 RET_LABEL2:(void)0;
193 }
194 }
195 {
196 { /* Inline model#MAttributeDef#static_mtype (var1) on <var1:MPropDef(MAttributeDef)> */
197 var6 = var1->attrs[COLOR_nit__model__MAttributeDef___static_mtype].val; /* _static_mtype on <var1:MPropDef(MAttributeDef)> */
198 var4 = var6;
199 RET_LABEL5:(void)0;
200 }
201 }
202 {
203 var7 = ((val*(*)(val* self))(var_recv->class->vft[COLOR_nit__typing__AExpr__mtype]))(var_recv); /* mtype on <var_recv:AExpr>*/
204 }
205 if (unlikely(var7 == NULL)) {
206 PRINT_ERROR("Runtime error: %s", "Cast failed");
207 PRINT_ERROR(" (%s:%d)\n", FILE_nit__astbuilder, 77);
208 fatal_exit(1);
209 }
210 {
211 { /* Inline astbuilder#ASTBuilder#anchor (self) on <self:ASTBuilder> */
212 var10 = self->attrs[COLOR_nit__astbuilder__ASTBuilder___anchor].val; /* _anchor on <self:ASTBuilder> */
213 var8 = var10;
214 RET_LABEL9:(void)0;
215 }
216 }
217 {
218 { /* Inline astbuilder#ASTBuilder#mmodule (self) on <self:ASTBuilder> */
219 var13 = self->attrs[COLOR_nit__astbuilder__ASTBuilder___mmodule].val; /* _mmodule on <self:ASTBuilder> */
220 if (unlikely(var13 == NULL)) {
221 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
222 PRINT_ERROR(" (%s:%d)\n", FILE_nit__astbuilder, 25);
223 fatal_exit(1);
224 }
225 var11 = var13;
226 RET_LABEL12:(void)0;
227 }
228 }
229 if (var4 == NULL) {
230 PRINT_ERROR("Runtime error: %s", "Receiver is null");
231 PRINT_ERROR(" (%s:%d)\n", FILE_nit__astbuilder, 77);
232 fatal_exit(1);
233 } else {
234 var14 = ((val*(*)(val* self, val* p0, val* p1, val* p2, short int p3))(var4->class->vft[COLOR_nit__model__MType__resolve_for]))(var4, var7, var8, var11, 1); /* resolve_for on <var4:nullable MType>*/
235 }
236 var_mtype = var14;
237 var15 = NEW_nit__AAttrExpr(&type_nit__AAttrExpr);
238 {
239 nit__astbuilder___AAttrExpr___make(var15, var_recv, var_attribute, var_mtype); /* Direct call astbuilder#AAttrExpr#make on <var15:AAttrExpr>*/
240 }
241 var = var15;
242 goto RET_LABEL;
243 RET_LABEL:;
244 return var;
245 }
246 /* method astbuilder#ASTBuilder#make_attr_assign for (self: ASTBuilder, AExpr, MAttribute, AExpr): AAttrAssignExpr */
247 val* nit___nit__ASTBuilder___make_attr_assign(val* self, val* p0, val* p1, val* p2) {
248 val* var /* : AAttrAssignExpr */;
249 val* var_recv /* var recv: AExpr */;
250 val* var_attribute /* var attribute: MAttribute */;
251 val* var_value /* var value: AExpr */;
252 val* var1 /* : AAttrAssignExpr */;
253 var_recv = p0;
254 var_attribute = p1;
255 var_value = p2;
256 var1 = NEW_nit__AAttrAssignExpr(&type_nit__AAttrAssignExpr);
257 {
258 nit__astbuilder___AAttrAssignExpr___make(var1, var_recv, var_attribute, var_value); /* Direct call astbuilder#AAttrAssignExpr#make on <var1:AAttrAssignExpr>*/
259 }
260 var = var1;
261 goto RET_LABEL;
262 RET_LABEL:;
263 return var;
264 }
265 /* method astbuilder#ASTBuilder#make_do for (self: ASTBuilder): ADoExpr */
266 val* nit___nit__ASTBuilder___make_do(val* self) {
267 val* var /* : ADoExpr */;
268 val* var1 /* : ADoExpr */;
269 var1 = NEW_nit__ADoExpr(&type_nit__ADoExpr);
270 {
271 nit__astbuilder___ADoExpr___make(var1); /* Direct call astbuilder#ADoExpr#make on <var1:ADoExpr>*/
272 }
273 var = var1;
274 goto RET_LABEL;
275 RET_LABEL:;
276 return var;
277 }
278 /* method astbuilder#ASTBuilder#make_break for (self: ASTBuilder, EscapeMark): ABreakExpr */
279 val* nit___nit__ASTBuilder___make_break(val* self, val* p0) {
280 val* var /* : ABreakExpr */;
281 val* var_escapemark /* var escapemark: EscapeMark */;
282 val* var1 /* : ABreakExpr */;
283 var_escapemark = p0;
284 var1 = NEW_nit__ABreakExpr(&type_nit__ABreakExpr);
285 {
286 nit__astbuilder___ABreakExpr___make(var1, var_escapemark); /* Direct call astbuilder#ABreakExpr#make on <var1:ABreakExpr>*/
287 }
288 var = var1;
289 goto RET_LABEL;
290 RET_LABEL:;
291 return var;
292 }
293 /* method astbuilder#ASTBuilder#make_if for (self: ASTBuilder, AExpr, nullable MType): AIfExpr */
294 val* nit___nit__ASTBuilder___make_if(val* self, val* p0, val* p1) {
295 val* var /* : AIfExpr */;
296 val* var_condition /* var condition: AExpr */;
297 val* var_mtype /* var mtype: nullable MType */;
298 val* var1 /* : AIfExpr */;
299 var_condition = p0;
300 var_mtype = p1;
301 var1 = NEW_nit__AIfExpr(&type_nit__AIfExpr);
302 {
303 nit__astbuilder___AIfExpr___make(var1, var_condition, var_mtype); /* Direct call astbuilder#AIfExpr#make on <var1:AIfExpr>*/
304 }
305 var = var1;
306 goto RET_LABEL;
307 RET_LABEL:;
308 return var;
309 }
310 /* method astbuilder#ASTBuilder#init for (self: ASTBuilder) */
311 void nit___nit__ASTBuilder___standard__kernel__Object__init(val* self) {
312 {
313 ((void(*)(val* self))(self->class->vft[COLOR_nit___nit__ASTBuilder___standard__kernel__Object__init]))(self); /* init on <self:ASTBuilder>*/
314 }
315 RET_LABEL:;
316 }
317 /* method astbuilder#AExpr#make_var_read for (self: AExpr): AVarExpr */
318 val* nit__astbuilder___AExpr___make_var_read(val* self) {
319 val* var /* : AVarExpr */;
320 val* var1 /* : nullable Variable */;
321 val* var3 /* : nullable Variable */;
322 val* var_variable /* var variable: nullable Variable */;
323 short int var4 /* : Bool */;
324 short int var5 /* : Bool */;
325 val* var_other /* var other: nullable Object */;
326 short int var7 /* : Bool */;
327 short int var9 /* : Bool */;
328 val* var10 /* : nullable ANode */;
329 val* var12 /* : nullable ANode */;
330 short int var13 /* : Bool */;
331 short int var14 /* : Bool */;
332 val* var_other16 /* var other: nullable Object */;
333 short int var17 /* : Bool */;
334 short int var18 /* : Bool */;
335 val* var19 /* : AExpr */;
336 val* var_place /* var place: AExpr */;
337 val* var20 /* : Variable */;
338 static val* varonce;
339 val* var21 /* : String */;
340 char* var22 /* : NativeString */;
341 val* var23 /* : FlatString */;
342 val* var24 /* : nullable MType */;
343 val* var26 /* : AVarAssignExpr */;
344 val* var_nvar /* var nvar: AVarAssignExpr */;
345 val* var28 /* : AVarExpr */;
346 val* var29 /* : nullable MType */;
347 val* var31 /* : nullable MType */;
348 {
349 { /* Inline astbuilder#AExpr#variable_cache (self) on <self:AExpr> */
350 var3 = self->attrs[COLOR_nit__astbuilder__AExpr___variable_cache].val; /* _variable_cache on <self:AExpr> */
351 var1 = var3;
352 RET_LABEL2:(void)0;
353 }
354 }
355 var_variable = var1;
356 if (var_variable == NULL) {
357 var4 = 1; /* is null */
358 } else {
359 var4 = 0; /* arg is null but recv is not */
360 }
361 if (0) {
362 { /* Inline kernel#Object#== (var_variable,((val*)NULL)) on <var_variable:nullable Variable> */
363 var_other = ((val*)NULL);
364 {
365 { /* Inline kernel#Object#is_same_instance (var_variable,var_other) on <var_variable:nullable Variable(Variable)> */
366 var9 = var_variable == var_other;
367 var7 = var9;
368 goto RET_LABEL8;
369 RET_LABEL8:(void)0;
370 }
371 }
372 var5 = var7;
373 goto RET_LABEL6;
374 RET_LABEL6:(void)0;
375 }
376 var4 = var5;
377 }
378 if (var4){
379 {
380 { /* Inline parser_nodes#ANode#parent (self) on <self:AExpr> */
381 var12 = self->attrs[COLOR_nit__parser_nodes__ANode___parent].val; /* _parent on <self:AExpr> */
382 var10 = var12;
383 RET_LABEL11:(void)0;
384 }
385 }
386 if (var10 == NULL) {
387 var13 = 0; /* is null */
388 } else {
389 var13 = 1; /* arg is null and recv is not */
390 }
391 if (0) {
392 { /* Inline kernel#Object#!= (var10,((val*)NULL)) on <var10:nullable ANode> */
393 var_other16 = ((val*)NULL);
394 {
395 var17 = ((short int(*)(val* self, val* p0))(var10->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var10, var_other16); /* == on <var10:nullable ANode(ANode)>*/
396 }
397 var18 = !var17;
398 var14 = var18;
399 goto RET_LABEL15;
400 RET_LABEL15:(void)0;
401 }
402 var13 = var14;
403 }
404 if (unlikely(!var13)) {
405 PRINT_ERROR("Runtime error: %s", "Assert failed");
406 PRINT_ERROR(" (%s:%d)\n", FILE_nit__astbuilder, 117);
407 fatal_exit(1);
408 }
409 {
410 var19 = nit__astbuilder___AExpr___detach_with_placeholder(self);
411 }
412 var_place = var19;
413 var20 = NEW_nit__Variable(&type_nit__Variable);
414 if (likely(varonce!=NULL)) {
415 var21 = varonce;
416 } else {
417 var22 = "";
418 var23 = standard___standard__NativeString___to_s_with_length(var22, 0l);
419 var21 = var23;
420 varonce = var21;
421 }
422 {
423 ((void(*)(val* self, val* p0))(var20->class->vft[COLOR_nit__scope__Variable__name_61d]))(var20, var21); /* name= on <var20:Variable>*/
424 }
425 {
426 ((void(*)(val* self))(var20->class->vft[COLOR_standard__kernel__Object__init]))(var20); /* init on <var20:Variable>*/
427 }
428 var_variable = var20;
429 {
430 var24 = ((val*(*)(val* self))(self->class->vft[COLOR_nit__typing__AExpr__mtype]))(self); /* mtype on <self:AExpr>*/
431 }
432 {
433 { /* Inline typing#Variable#declared_type= (var_variable,var24) on <var_variable:nullable Variable(Variable)> */
434 var_variable->attrs[COLOR_nit__typing__Variable___declared_type].val = var24; /* _declared_type on <var_variable:nullable Variable(Variable)> */
435 RET_LABEL25:(void)0;
436 }
437 }
438 var26 = NEW_nit__AVarAssignExpr(&type_nit__AVarAssignExpr);
439 {
440 nit__astbuilder___AVarAssignExpr___make(var26, var_variable, self); /* Direct call astbuilder#AVarAssignExpr#make on <var26:AVarAssignExpr>*/
441 }
442 var_nvar = var26;
443 {
444 nit__transform___AExpr___nit__parser_nodes__ANode__replace_with(var_place, var_nvar); /* Direct call transform#AExpr#replace_with on <var_place:AExpr>*/
445 }
446 {
447 { /* Inline astbuilder#AExpr#variable_cache= (self,var_variable) on <self:AExpr> */
448 self->attrs[COLOR_nit__astbuilder__AExpr___variable_cache].val = var_variable; /* _variable_cache on <self:AExpr> */
449 RET_LABEL27:(void)0;
450 }
451 }
452 } else {
453 }
454 var28 = NEW_nit__AVarExpr(&type_nit__AVarExpr);
455 {
456 { /* Inline typing#Variable#declared_type (var_variable) on <var_variable:nullable Variable(Variable)> */
457 var31 = var_variable->attrs[COLOR_nit__typing__Variable___declared_type].val; /* _declared_type on <var_variable:nullable Variable(Variable)> */
458 var29 = var31;
459 RET_LABEL30:(void)0;
460 }
461 }
462 if (unlikely(var29 == NULL)) {
463 PRINT_ERROR("Runtime error: %s", "Cast failed");
464 PRINT_ERROR(" (%s:%d)\n", FILE_nit__astbuilder, 125);
465 fatal_exit(1);
466 }
467 {
468 nit__astbuilder___AVarExpr___make(var28, var_variable, var29); /* Direct call astbuilder#AVarExpr#make on <var28:AVarExpr>*/
469 }
470 var = var28;
471 goto RET_LABEL;
472 RET_LABEL:;
473 return var;
474 }
475 /* method astbuilder#AExpr#variable_cache for (self: AExpr): nullable Variable */
476 val* nit__astbuilder___AExpr___variable_cache(val* self) {
477 val* var /* : nullable Variable */;
478 val* var1 /* : nullable Variable */;
479 var1 = self->attrs[COLOR_nit__astbuilder__AExpr___variable_cache].val; /* _variable_cache on <self:AExpr> */
480 var = var1;
481 RET_LABEL:;
482 return var;
483 }
484 /* method astbuilder#AExpr#variable_cache= for (self: AExpr, nullable Variable) */
485 void nit__astbuilder___AExpr___variable_cache_61d(val* self, val* p0) {
486 self->attrs[COLOR_nit__astbuilder__AExpr___variable_cache].val = p0; /* _variable_cache on <self:AExpr> */
487 RET_LABEL:;
488 }
489 /* method astbuilder#AExpr#detach_with_placeholder for (self: AExpr): AExpr */
490 val* nit__astbuilder___AExpr___detach_with_placeholder(val* self) {
491 val* var /* : AExpr */;
492 val* var1 /* : APlaceholderExpr */;
493 val* var_h /* var h: APlaceholderExpr */;
494 var1 = NEW_nit__APlaceholderExpr(&type_nit__APlaceholderExpr);
495 {
496 nit___nit__APlaceholderExpr___make(var1); /* Direct call astbuilder#APlaceholderExpr#make on <var1:APlaceholderExpr>*/
497 }
498 var_h = var1;
499 {
500 nit__transform___AExpr___nit__parser_nodes__ANode__replace_with(self, var_h); /* Direct call transform#AExpr#replace_with on <self:AExpr>*/
501 }
502 var = var_h;
503 goto RET_LABEL;
504 RET_LABEL:;
505 return var;
506 }
507 /* method astbuilder#AExpr#add for (self: AExpr, AExpr) */
508 void nit__astbuilder___AExpr___add(val* self, val* p0) {
509 val* var_expr /* var expr: AExpr */;
510 val* var /* : Sys */;
511 val* var1 /* : NativeArray[String] */;
512 static val* varonce;
513 static val* varonce2;
514 val* var3 /* : String */;
515 char* var4 /* : NativeString */;
516 val* var5 /* : FlatString */;
517 val* var6 /* : String */;
518 val* var7 /* : String */;
519 var_expr = p0;
520 var = glob_sys;
521 if (unlikely(varonce==NULL)) {
522 var1 = NEW_standard__NativeArray(2l, &type_standard__NativeArray__standard__String);
523 if (likely(varonce2!=NULL)) {
524 var3 = varonce2;
525 } else {
526 var4 = "add not implemented in ";
527 var5 = standard___standard__NativeString___to_s_with_length(var4, 23l);
528 var3 = var5;
529 varonce2 = var3;
530 }
531 ((struct instance_standard__NativeArray*)var1)->values[0]=var3;
532 } else {
533 var1 = varonce;
534 varonce = NULL;
535 }
536 {
537 var6 = standard__string___Object___inspect(self);
538 }
539 ((struct instance_standard__NativeArray*)var1)->values[1]=var6;
540 {
541 var7 = ((val*(*)(val* self))(var1->class->vft[COLOR_standard__string__NativeArray__native_to_s]))(var1); /* native_to_s on <var1:NativeArray[String]>*/
542 }
543 varonce = var1;
544 {
545 standard__file___Sys___print(var, var7); /* Direct call file#Sys#print on <var:Sys>*/
546 }
547 PRINT_ERROR("Runtime error: %s", "Aborted");
548 PRINT_ERROR(" (%s:%d)\n", FILE_nit__astbuilder, 160);
549 fatal_exit(1);
550 RET_LABEL:;
551 }
552 /* method astbuilder#APlaceholderExpr#make for (self: APlaceholderExpr) */
553 void nit___nit__APlaceholderExpr___make(val* self) {
554 {
555 { /* Inline kernel#Object#init (self) on <self:APlaceholderExpr> */
556 RET_LABEL1:(void)0;
557 }
558 }
559 RET_LABEL:;
560 }
561 /* method astbuilder#ABlockExpr#make for (self: ABlockExpr) */
562 void nit__astbuilder___ABlockExpr___make(val* self) {
563 {
564 { /* Inline kernel#Object#init (self) on <self:ABlockExpr> */
565 RET_LABEL1:(void)0;
566 }
567 }
568 {
569 { /* Inline typing#AExpr#is_typed= (self,1) on <self:ABlockExpr> */
570 self->attrs[COLOR_nit__typing__AExpr___is_typed].s = 1; /* _is_typed on <self:ABlockExpr> */
571 RET_LABEL2:(void)0;
572 }
573 }
574 RET_LABEL:;
575 }
576 /* method astbuilder#ABlockExpr#add for (self: ABlockExpr, AExpr) */
577 void nit__astbuilder___ABlockExpr___AExpr__add(val* self, val* p0) {
578 val* var_expr /* var expr: AExpr */;
579 val* var /* : ANodes[AExpr] */;
580 val* var2 /* : ANodes[AExpr] */;
581 var_expr = p0;
582 {
583 { /* Inline parser_nodes#ABlockExpr#n_expr (self) on <self:ABlockExpr> */
584 var2 = self->attrs[COLOR_nit__parser_nodes__ABlockExpr___n_expr].val; /* _n_expr on <self:ABlockExpr> */
585 if (unlikely(var2 == NULL)) {
586 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
587 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1758);
588 fatal_exit(1);
589 }
590 var = var2;
591 RET_LABEL1:(void)0;
592 }
593 }
594 {
595 standard___standard__Sequence___SimpleCollection__add(var, var_expr); /* Direct call abstract_collection#Sequence#add on <var:ANodes[AExpr]>*/
596 }
597 RET_LABEL:;
598 }
599 /* method astbuilder#ALoopExpr#make for (self: ALoopExpr) */
600 void nit__astbuilder___ALoopExpr___make(val* self) {
601 val* var /* : TKwloop */;
602 val* var4 /* : ABlockExpr */;
603 val* var6 /* : nullable AExpr */;
604 val* var8 /* : nullable AExpr */;
605 {
606 { /* Inline kernel#Object#init (self) on <self:ALoopExpr> */
607 RET_LABEL1:(void)0;
608 }
609 }
610 var = NEW_nit__TKwloop(&type_nit__TKwloop);
611 {
612 { /* Inline kernel#Object#init (var) on <var:TKwloop> */
613 RET_LABEL2:(void)0;
614 }
615 }
616 self->attrs[COLOR_nit__parser_nodes__ALoopExpr___n_kwloop].val = var; /* _n_kwloop on <self:ALoopExpr> */
617 {
618 { /* Inline typing#AExpr#is_typed= (self,1) on <self:ALoopExpr> */
619 self->attrs[COLOR_nit__typing__AExpr___is_typed].s = 1; /* _is_typed on <self:ALoopExpr> */
620 RET_LABEL3:(void)0;
621 }
622 }
623 var4 = NEW_nit__ABlockExpr(&type_nit__ABlockExpr);
624 {
625 { /* Inline kernel#Object#init (var4) on <var4:ABlockExpr> */
626 RET_LABEL5:(void)0;
627 }
628 }
629 {
630 nit__parser_prod___ALoopExpr___n_block_61d(self, var4); /* Direct call parser_prod#ALoopExpr#n_block= on <self:ALoopExpr>*/
631 }
632 {
633 { /* Inline parser_nodes#ALoopExpr#n_block (self) on <self:ALoopExpr> */
634 var8 = self->attrs[COLOR_nit__parser_nodes__ALoopExpr___n_block].val; /* _n_block on <self:ALoopExpr> */
635 var6 = var8;
636 RET_LABEL7:(void)0;
637 }
638 }
639 if (var6 == NULL) {
640 PRINT_ERROR("Runtime error: %s", "Receiver is null");
641 PRINT_ERROR(" (%s:%d)\n", FILE_nit__astbuilder, 196);
642 fatal_exit(1);
643 } else {
644 { /* Inline typing#AExpr#is_typed= (var6,1) on <var6:nullable AExpr> */
645 if (unlikely(var6 == NULL)) {
646 PRINT_ERROR("Runtime error: %s", "Receiver is null");
647 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing, 792);
648 fatal_exit(1);
649 }
650 var6->attrs[COLOR_nit__typing__AExpr___is_typed].s = 1; /* _is_typed on <var6:nullable AExpr> */
651 RET_LABEL9:(void)0;
652 }
653 }
654 RET_LABEL:;
655 }
656 /* method astbuilder#ALoopExpr#add for (self: ALoopExpr, AExpr) */
657 void nit__astbuilder___ALoopExpr___AExpr__add(val* self, val* p0) {
658 val* var_expr /* var expr: AExpr */;
659 val* var /* : nullable AExpr */;
660 val* var2 /* : nullable AExpr */;
661 var_expr = p0;
662 {
663 { /* Inline parser_nodes#ALoopExpr#n_block (self) on <self:ALoopExpr> */
664 var2 = self->attrs[COLOR_nit__parser_nodes__ALoopExpr___n_block].val; /* _n_block on <self:ALoopExpr> */
665 var = var2;
666 RET_LABEL1:(void)0;
667 }
668 }
669 if (var == NULL) {
670 PRINT_ERROR("Runtime error: %s", "Receiver is null");
671 PRINT_ERROR(" (%s:%d)\n", FILE_nit__astbuilder, 201);
672 fatal_exit(1);
673 } else {
674 ((void(*)(val* self, val* p0))(var->class->vft[COLOR_nit__astbuilder__AExpr__add]))(var, var_expr); /* add on <var:nullable AExpr>*/
675 }
676 RET_LABEL:;
677 }
678 /* method astbuilder#ADoExpr#make for (self: ADoExpr) */
679 void nit__astbuilder___ADoExpr___make(val* self) {
680 val* var /* : TKwdo */;
681 val* var4 /* : ABlockExpr */;
682 val* var6 /* : nullable AExpr */;
683 val* var8 /* : nullable AExpr */;
684 {
685 { /* Inline kernel#Object#init (self) on <self:ADoExpr> */
686 RET_LABEL1:(void)0;
687 }
688 }
689 var = NEW_nit__TKwdo(&type_nit__TKwdo);
690 {
691 { /* Inline kernel#Object#init (var) on <var:TKwdo> */
692 RET_LABEL2:(void)0;
693 }
694 }
695 self->attrs[COLOR_nit__parser_nodes__ADoExpr___n_kwdo].val = var; /* _n_kwdo on <self:ADoExpr> */
696 {
697 { /* Inline typing#AExpr#is_typed= (self,1) on <self:ADoExpr> */
698 self->attrs[COLOR_nit__typing__AExpr___is_typed].s = 1; /* _is_typed on <self:ADoExpr> */
699 RET_LABEL3:(void)0;
700 }
701 }
702 var4 = NEW_nit__ABlockExpr(&type_nit__ABlockExpr);
703 {
704 { /* Inline kernel#Object#init (var4) on <var4:ABlockExpr> */
705 RET_LABEL5:(void)0;
706 }
707 }
708 {
709 nit__parser_prod___ADoExpr___n_block_61d(self, var4); /* Direct call parser_prod#ADoExpr#n_block= on <self:ADoExpr>*/
710 }
711 {
712 { /* Inline parser_nodes#ADoExpr#n_block (self) on <self:ADoExpr> */
713 var8 = self->attrs[COLOR_nit__parser_nodes__ADoExpr___n_block].val; /* _n_block on <self:ADoExpr> */
714 var6 = var8;
715 RET_LABEL7:(void)0;
716 }
717 }
718 if (var6 == NULL) {
719 PRINT_ERROR("Runtime error: %s", "Receiver is null");
720 PRINT_ERROR(" (%s:%d)\n", FILE_nit__astbuilder, 211);
721 fatal_exit(1);
722 } else {
723 { /* Inline typing#AExpr#is_typed= (var6,1) on <var6:nullable AExpr> */
724 if (unlikely(var6 == NULL)) {
725 PRINT_ERROR("Runtime error: %s", "Receiver is null");
726 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing, 792);
727 fatal_exit(1);
728 }
729 var6->attrs[COLOR_nit__typing__AExpr___is_typed].s = 1; /* _is_typed on <var6:nullable AExpr> */
730 RET_LABEL9:(void)0;
731 }
732 }
733 RET_LABEL:;
734 }
735 /* method astbuilder#ADoExpr#add for (self: ADoExpr, AExpr) */
736 void nit__astbuilder___ADoExpr___AExpr__add(val* self, val* p0) {
737 val* var_expr /* var expr: AExpr */;
738 val* var /* : nullable AExpr */;
739 val* var2 /* : nullable AExpr */;
740 var_expr = p0;
741 {
742 { /* Inline parser_nodes#ADoExpr#n_block (self) on <self:ADoExpr> */
743 var2 = self->attrs[COLOR_nit__parser_nodes__ADoExpr___n_block].val; /* _n_block on <self:ADoExpr> */
744 var = var2;
745 RET_LABEL1:(void)0;
746 }
747 }
748 if (var == NULL) {
749 PRINT_ERROR("Runtime error: %s", "Receiver is null");
750 PRINT_ERROR(" (%s:%d)\n", FILE_nit__astbuilder, 227);
751 fatal_exit(1);
752 } else {
753 ((void(*)(val* self, val* p0))(var->class->vft[COLOR_nit__astbuilder__AExpr__add]))(var, var_expr); /* add on <var:nullable AExpr>*/
754 }
755 RET_LABEL:;
756 }
757 /* method astbuilder#ABreakExpr#make for (self: ABreakExpr, EscapeMark) */
758 void nit__astbuilder___ABreakExpr___make(val* self, val* p0) {
759 val* var_escapemark /* var escapemark: EscapeMark */;
760 val* var /* : TKwbreak */;
761 val* var4 /* : Array[AEscapeExpr] */;
762 val* var6 /* : Array[AEscapeExpr] */;
763 {
764 { /* Inline kernel#Object#init (self) on <self:ABreakExpr> */
765 RET_LABEL1:(void)0;
766 }
767 }
768 var_escapemark = p0;
769 var = NEW_nit__TKwbreak(&type_nit__TKwbreak);
770 {
771 { /* Inline kernel#Object#init (var) on <var:TKwbreak> */
772 RET_LABEL2:(void)0;
773 }
774 }
775 self->attrs[COLOR_nit__parser_nodes__ABreakExpr___n_kwbreak].val = var; /* _n_kwbreak on <self:ABreakExpr> */
776 {
777 { /* Inline scope#AEscapeExpr#escapemark= (self,var_escapemark) on <self:ABreakExpr> */
778 self->attrs[COLOR_nit__scope__AEscapeExpr___escapemark].val = var_escapemark; /* _escapemark on <self:ABreakExpr> */
779 RET_LABEL3:(void)0;
780 }
781 }
782 {
783 { /* Inline scope#EscapeMark#escapes (var_escapemark) on <var_escapemark:EscapeMark> */
784 var6 = var_escapemark->attrs[COLOR_nit__scope__EscapeMark___escapes].val; /* _escapes on <var_escapemark:EscapeMark> */
785 if (unlikely(var6 == NULL)) {
786 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _escapes");
787 PRINT_ERROR(" (%s:%d)\n", FILE_nit__scope, 58);
788 fatal_exit(1);
789 }
790 var4 = var6;
791 RET_LABEL5:(void)0;
792 }
793 }
794 {
795 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var4, self); /* Direct call array#Array#add on <var4:Array[AEscapeExpr]>*/
796 }
797 {
798 { /* Inline typing#AExpr#is_typed= (self,1) on <self:ABreakExpr> */
799 self->attrs[COLOR_nit__typing__AExpr___is_typed].s = 1; /* _is_typed on <self:ABreakExpr> */
800 RET_LABEL7:(void)0;
801 }
802 }
803 RET_LABEL:;
804 }
805 /* method astbuilder#AIfExpr#make for (self: AIfExpr, AExpr, nullable MType) */
806 void nit__astbuilder___AIfExpr___make(val* self, val* p0, val* p1) {
807 val* var_condition /* var condition: AExpr */;
808 val* var_mtype /* var mtype: nullable MType */;
809 val* var /* : TKwif */;
810 val* var3 /* : AExpr */;
811 val* var5 /* : TKwthen */;
812 val* var7 /* : ABlockExpr */;
813 val* var8 /* : TKwelse */;
814 val* var10 /* : ABlockExpr */;
815 {
816 { /* Inline kernel#Object#init (self) on <self:AIfExpr> */
817 RET_LABEL1:(void)0;
818 }
819 }
820 var_condition = p0;
821 var_mtype = p1;
822 var = NEW_nit__TKwif(&type_nit__TKwif);
823 {
824 { /* Inline kernel#Object#init (var) on <var:TKwif> */
825 RET_LABEL2:(void)0;
826 }
827 }
828 self->attrs[COLOR_nit__parser_nodes__AIfExpr___n_kwif].val = var; /* _n_kwif on <self:AIfExpr> */
829 self->attrs[COLOR_nit__parser_nodes__AIfExpr___n_expr].val = var_condition; /* _n_expr on <self:AIfExpr> */
830 var3 = self->attrs[COLOR_nit__parser_nodes__AIfExpr___n_expr].val; /* _n_expr on <self:AIfExpr> */
831 if (unlikely(var3 == NULL)) {
832 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
833 PRINT_ERROR(" (%s:%d)\n", FILE_nit__astbuilder, 246);
834 fatal_exit(1);
835 }
836 {
837 { /* Inline parser_nodes#ANode#parent= (var3,self) on <var3:AExpr> */
838 var3->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var3:AExpr> */
839 RET_LABEL4:(void)0;
840 }
841 }
842 var5 = NEW_nit__TKwthen(&type_nit__TKwthen);
843 {
844 { /* Inline kernel#Object#init (var5) on <var5:TKwthen> */
845 RET_LABEL6:(void)0;
846 }
847 }
848 self->attrs[COLOR_nit__parser_nodes__AIfExpr___n_kwthen].val = var5; /* _n_kwthen on <self:AIfExpr> */
849 var7 = NEW_nit__ABlockExpr(&type_nit__ABlockExpr);
850 {
851 nit__astbuilder___ABlockExpr___make(var7); /* Direct call astbuilder#ABlockExpr#make on <var7:ABlockExpr>*/
852 }
853 self->attrs[COLOR_nit__parser_nodes__AIfExpr___n_then].val = var7; /* _n_then on <self:AIfExpr> */
854 var8 = NEW_nit__TKwelse(&type_nit__TKwelse);
855 {
856 { /* Inline kernel#Object#init (var8) on <var8:TKwelse> */
857 RET_LABEL9:(void)0;
858 }
859 }
860 self->attrs[COLOR_nit__parser_nodes__AIfExpr___n_kwelse].val = var8; /* _n_kwelse on <self:AIfExpr> */
861 var10 = NEW_nit__ABlockExpr(&type_nit__ABlockExpr);
862 {
863 nit__astbuilder___ABlockExpr___make(var10); /* Direct call astbuilder#ABlockExpr#make on <var10:ABlockExpr>*/
864 }
865 self->attrs[COLOR_nit__parser_nodes__AIfExpr___n_else].val = var10; /* _n_else on <self:AIfExpr> */
866 {
867 { /* Inline typing#AExpr#mtype= (self,var_mtype) on <self:AIfExpr> */
868 self->attrs[COLOR_nit__typing__AExpr___mtype].val = var_mtype; /* _mtype on <self:AIfExpr> */
869 RET_LABEL11:(void)0;
870 }
871 }
872 {
873 { /* Inline typing#AExpr#is_typed= (self,1) on <self:AIfExpr> */
874 self->attrs[COLOR_nit__typing__AExpr___is_typed].s = 1; /* _is_typed on <self:AIfExpr> */
875 RET_LABEL12:(void)0;
876 }
877 }
878 RET_LABEL:;
879 }
880 /* method astbuilder#AType#make for (self: AType) */
881 void nit__astbuilder___AType___make(val* self) {
882 val* var /* : TClassid */;
883 {
884 { /* Inline kernel#Object#init (self) on <self:AType> */
885 RET_LABEL1:(void)0;
886 }
887 }
888 var = NEW_nit__TClassid(&type_nit__TClassid);
889 {
890 { /* Inline kernel#Object#init (var) on <var:TClassid> */
891 RET_LABEL2:(void)0;
892 }
893 }
894 self->attrs[COLOR_nit__parser_nodes__AType___n_id].val = var; /* _n_id on <self:AType> */
895 RET_LABEL:;
896 }
897 /* method astbuilder#ADecIntExpr#make for (self: ADecIntExpr, Int, MType) */
898 void nit__astbuilder___ADecIntExpr___make(val* self, long p0, val* p1) {
899 long var_value /* var value: Int */;
900 val* var_t /* var t: MType */;
901 val* var /* : nullable Int */;
902 val* var3 /* : TNumber */;
903 {
904 { /* Inline kernel#Object#init (self) on <self:ADecIntExpr> */
905 RET_LABEL1:(void)0;
906 }
907 }
908 var_value = p0;
909 var_t = p1;
910 {
911 { /* Inline literal#AIntExpr#value= (self,var_value) on <self:ADecIntExpr> */
912 var = (val*)(var_value<<2|1);
913 self->attrs[COLOR_nit__literal__AIntExpr___value].val = var; /* _value on <self:ADecIntExpr> */
914 RET_LABEL2:(void)0;
915 }
916 }
917 var3 = NEW_nit__TNumber(&type_nit__TNumber);
918 {
919 { /* Inline kernel#Object#init (var3) on <var3:TNumber> */
920 RET_LABEL4:(void)0;
921 }
922 }
923 self->attrs[COLOR_nit__parser_nodes__ADecIntExpr___n_number].val = var3; /* _n_number on <self:ADecIntExpr> */
924 {
925 { /* Inline typing#AExpr#mtype= (self,var_t) on <self:ADecIntExpr> */
926 self->attrs[COLOR_nit__typing__AExpr___mtype].val = var_t; /* _mtype on <self:ADecIntExpr> */
927 RET_LABEL5:(void)0;
928 }
929 }
930 RET_LABEL:;
931 }
932 /* method astbuilder#ANewExpr#make for (self: ANewExpr, CallSite, nullable Array[AExpr]) */
933 void nit__astbuilder___ANewExpr___make(val* self, val* p0, val* p1) {
934 val* var_callsite /* var callsite: CallSite */;
935 val* var_args /* var args: nullable Array[AExpr] */;
936 val* var /* : TKwnew */;
937 val* var3 /* : AType */;
938 val* var4 /* : AListExprs */;
939 short int var6 /* : Bool */;
940 short int var7 /* : Bool */;
941 val* var_other /* var other: nullable Object */;
942 short int var9 /* : Bool */;
943 short int var10 /* : Bool */;
944 val* var11 /* : AExprs */;
945 val* var13 /* : AExprs */;
946 val* var14 /* : ANodes[AExpr] */;
947 val* var16 /* : ANodes[AExpr] */;
948 val* var18 /* : MType */;
949 val* var20 /* : MType */;
950 short int var21 /* : Bool */;
951 int cltype;
952 int idtype;
953 const char* var_class_name;
954 val* var23 /* : MMethod */;
955 val* var25 /* : MMethod */;
956 short int var26 /* : Bool */;
957 short int var28 /* : Bool */;
958 val* var29 /* : MSignature */;
959 val* var31 /* : MSignature */;
960 val* var32 /* : nullable MType */;
961 val* var34 /* : nullable MType */;
962 val* var36 /* : MType */;
963 val* var38 /* : MType */;
964 {
965 { /* Inline kernel#Object#init (self) on <self:ANewExpr> */
966 RET_LABEL1:(void)0;
967 }
968 }
969 var_callsite = p0;
970 var_args = p1;
971 var = NEW_nit__TKwnew(&type_nit__TKwnew);
972 {
973 { /* Inline kernel#Object#init (var) on <var:TKwnew> */
974 RET_LABEL2:(void)0;
975 }
976 }
977 self->attrs[COLOR_nit__parser_nodes__ANewExpr___n_kwnew].val = var; /* _n_kwnew on <self:ANewExpr> */
978 var3 = NEW_nit__AType(&type_nit__AType);
979 {
980 nit__astbuilder___AType___make(var3); /* Direct call astbuilder#AType#make on <var3:AType>*/
981 }
982 self->attrs[COLOR_nit__parser_nodes__ANewExpr___n_type].val = var3; /* _n_type on <self:ANewExpr> */
983 var4 = NEW_nit__AListExprs(&type_nit__AListExprs);
984 {
985 { /* Inline kernel#Object#init (var4) on <var4:AListExprs> */
986 RET_LABEL5:(void)0;
987 }
988 }
989 self->attrs[COLOR_nit__parser_nodes__ANewExpr___n_args].val = var4; /* _n_args on <self:ANewExpr> */
990 if (var_args == NULL) {
991 var6 = 0; /* is null */
992 } else {
993 var6 = 1; /* arg is null and recv is not */
994 }
995 if (0) {
996 { /* Inline kernel#Object#!= (var_args,((val*)NULL)) on <var_args:nullable Array[AExpr]> */
997 var_other = ((val*)NULL);
998 {
999 var9 = ((short int(*)(val* self, val* p0))(var_args->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_args, var_other); /* == on <var_args:nullable Array[AExpr](Array[AExpr])>*/
1000 }
1001 var10 = !var9;
1002 var7 = var10;
1003 goto RET_LABEL8;
1004 RET_LABEL8:(void)0;
1005 }
1006 var6 = var7;
1007 }
1008 if (var6){
1009 {
1010 { /* Inline parser_nodes#ANewExpr#n_args (self) on <self:ANewExpr> */
1011 var13 = self->attrs[COLOR_nit__parser_nodes__ANewExpr___n_args].val; /* _n_args on <self:ANewExpr> */
1012 if (unlikely(var13 == NULL)) {
1013 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
1014 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2261);
1015 fatal_exit(1);
1016 }
1017 var11 = var13;
1018 RET_LABEL12:(void)0;
1019 }
1020 }
1021 {
1022 { /* Inline parser_nodes#AExprs#n_exprs (var11) on <var11:AExprs> */
1023 var16 = var11->attrs[COLOR_nit__parser_nodes__AExprs___n_exprs].val; /* _n_exprs on <var11:AExprs> */
1024 if (unlikely(var16 == NULL)) {
1025 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
1026 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2771);
1027 fatal_exit(1);
1028 }
1029 var14 = var16;
1030 RET_LABEL15:(void)0;
1031 }
1032 }
1033 {
1034 standard___standard__SimpleCollection___add_all(var14, var_args); /* Direct call abstract_collection#SimpleCollection#add_all on <var14:ANodes[AExpr]>*/
1035 }
1036 } else {
1037 }
1038 {
1039 { /* Inline typing#ANewExpr#callsite= (self,var_callsite) on <self:ANewExpr> */
1040 self->attrs[COLOR_nit__typing__ANewExpr___callsite].val = var_callsite; /* _callsite on <self:ANewExpr> */
1041 RET_LABEL17:(void)0;
1042 }
1043 }
1044 {
1045 { /* Inline typing#CallSite#recv (var_callsite) on <var_callsite:CallSite> */
1046 var20 = var_callsite->attrs[COLOR_nit__typing__CallSite___recv].val; /* _recv on <var_callsite:CallSite> */
1047 if (unlikely(var20 == NULL)) {
1048 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _recv");
1049 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing, 610);
1050 fatal_exit(1);
1051 }
1052 var18 = var20;
1053 RET_LABEL19:(void)0;
1054 }
1055 }
1056 /* <var18:MType> isa MClassType */
1057 cltype = type_nit__MClassType.color;
1058 idtype = type_nit__MClassType.id;
1059 if(cltype >= var18->type->table_size) {
1060 var21 = 0;
1061 } else {
1062 var21 = var18->type->type_table[cltype] == idtype;
1063 }
1064 if (unlikely(!var21)) {
1065 var_class_name = var18 == NULL ? "null" : var18->type->name;
1066 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name);
1067 PRINT_ERROR(" (%s:%d)\n", FILE_nit__astbuilder, 282);
1068 fatal_exit(1);
1069 }
1070 {
1071 { /* Inline typing#ANewExpr#recvtype= (self,var18) on <self:ANewExpr> */
1072 self->attrs[COLOR_nit__typing__ANewExpr___recvtype].val = var18; /* _recvtype on <self:ANewExpr> */
1073 RET_LABEL22:(void)0;
1074 }
1075 }
1076 {
1077 { /* Inline typing#CallSite#mproperty (var_callsite) on <var_callsite:CallSite> */
1078 var25 = var_callsite->attrs[COLOR_nit__typing__CallSite___mproperty].val; /* _mproperty on <var_callsite:CallSite> */
1079 if (unlikely(var25 == NULL)) {
1080 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
1081 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing, 624);
1082 fatal_exit(1);
1083 }
1084 var23 = var25;
1085 RET_LABEL24:(void)0;
1086 }
1087 }
1088 {
1089 { /* Inline model#MMethod#is_new (var23) on <var23:MMethod> */
1090 var28 = var23->attrs[COLOR_nit__model__MMethod___is_new].s; /* _is_new on <var23:MMethod> */
1091 var26 = var28;
1092 RET_LABEL27:(void)0;
1093 }
1094 }
1095 if (var26){
1096 {
1097 { /* Inline typing#CallSite#msignature (var_callsite) on <var_callsite:CallSite> */
1098 var31 = var_callsite->attrs[COLOR_nit__typing__CallSite___msignature].val; /* _msignature on <var_callsite:CallSite> */
1099 if (unlikely(var31 == NULL)) {
1100 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _msignature");
1101 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing, 631);
1102 fatal_exit(1);
1103 }
1104 var29 = var31;
1105 RET_LABEL30:(void)0;
1106 }
1107 }
1108 {
1109 { /* Inline model#MSignature#return_mtype (var29) on <var29:MSignature> */
1110 var34 = var29->attrs[COLOR_nit__model__MSignature___return_mtype].val; /* _return_mtype on <var29:MSignature> */
1111 var32 = var34;
1112 RET_LABEL33:(void)0;
1113 }
1114 }
1115 {
1116 { /* Inline typing#AExpr#mtype= (self,var32) on <self:ANewExpr> */
1117 self->attrs[COLOR_nit__typing__AExpr___mtype].val = var32; /* _mtype on <self:ANewExpr> */
1118 RET_LABEL35:(void)0;
1119 }
1120 }
1121 } else {
1122 {
1123 { /* Inline typing#CallSite#recv (var_callsite) on <var_callsite:CallSite> */
1124 var38 = var_callsite->attrs[COLOR_nit__typing__CallSite___recv].val; /* _recv on <var_callsite:CallSite> */
1125 if (unlikely(var38 == NULL)) {
1126 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _recv");
1127 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing, 610);
1128 fatal_exit(1);
1129 }
1130 var36 = var38;
1131 RET_LABEL37:(void)0;
1132 }
1133 }
1134 {
1135 { /* Inline typing#AExpr#mtype= (self,var36) on <self:ANewExpr> */
1136 self->attrs[COLOR_nit__typing__AExpr___mtype].val = var36; /* _mtype on <self:ANewExpr> */
1137 RET_LABEL39:(void)0;
1138 }
1139 }
1140 }
1141 {
1142 { /* Inline typing#AExpr#is_typed= (self,1) on <self:ANewExpr> */
1143 self->attrs[COLOR_nit__typing__AExpr___is_typed].s = 1; /* _is_typed on <self:ANewExpr> */
1144 RET_LABEL40:(void)0;
1145 }
1146 }
1147 RET_LABEL:;
1148 }
1149 /* method astbuilder#ACallExpr#make for (self: ACallExpr, AExpr, CallSite, nullable Array[AExpr]) */
1150 void nit__astbuilder___ACallExpr___make(val* self, val* p0, val* p1, val* p2) {
1151 val* var_recv /* var recv: AExpr */;
1152 val* var_callsite /* var callsite: CallSite */;
1153 val* var_args /* var args: nullable Array[AExpr] */;
1154 val* var /* : AListExprs */;
1155 val* var3 /* : TId */;
1156 short int var5 /* : Bool */;
1157 short int var6 /* : Bool */;
1158 val* var_other /* var other: nullable Object */;
1159 short int var8 /* : Bool */;
1160 short int var9 /* : Bool */;
1161 val* var10 /* : AExprs */;
1162 val* var12 /* : AExprs */;
1163 val* var13 /* : ANodes[AExpr] */;
1164 val* var15 /* : ANodes[AExpr] */;
1165 val* var17 /* : MSignature */;
1166 val* var19 /* : MSignature */;
1167 val* var20 /* : nullable MType */;
1168 val* var22 /* : nullable MType */;
1169 {
1170 { /* Inline kernel#Object#init (self) on <self:ACallExpr> */
1171 RET_LABEL1:(void)0;
1172 }
1173 }
1174 var_recv = p0;
1175 var_callsite = p1;
1176 var_args = p2;
1177 self->attrs[COLOR_nit__parser_nodes__ASendExpr___n_expr].val = var_recv; /* _n_expr on <self:ACallExpr> */
1178 var = NEW_nit__AListExprs(&type_nit__AListExprs);
1179 {
1180 { /* Inline kernel#Object#init (var) on <var:AListExprs> */
1181 RET_LABEL2:(void)0;
1182 }
1183 }
1184 self->attrs[COLOR_nit__parser_nodes__ACallFormExpr___n_args].val = var; /* _n_args on <self:ACallExpr> */
1185 var3 = NEW_nit__TId(&type_nit__TId);
1186 {
1187 { /* Inline kernel#Object#init (var3) on <var3:TId> */
1188 RET_LABEL4:(void)0;
1189 }
1190 }
1191 self->attrs[COLOR_nit__parser_nodes__ACallFormExpr___n_id].val = var3; /* _n_id on <self:ACallExpr> */
1192 if (var_args == NULL) {
1193 var5 = 0; /* is null */
1194 } else {
1195 var5 = 1; /* arg is null and recv is not */
1196 }
1197 if (0) {
1198 { /* Inline kernel#Object#!= (var_args,((val*)NULL)) on <var_args:nullable Array[AExpr]> */
1199 var_other = ((val*)NULL);
1200 {
1201 var8 = ((short int(*)(val* self, val* p0))(var_args->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_args, var_other); /* == on <var_args:nullable Array[AExpr](Array[AExpr])>*/
1202 }
1203 var9 = !var8;
1204 var6 = var9;
1205 goto RET_LABEL7;
1206 RET_LABEL7:(void)0;
1207 }
1208 var5 = var6;
1209 }
1210 if (var5){
1211 {
1212 { /* Inline parser_nodes#ACallFormExpr#n_args (self) on <self:ACallExpr> */
1213 var12 = self->attrs[COLOR_nit__parser_nodes__ACallFormExpr___n_args].val; /* _n_args on <self:ACallExpr> */
1214 if (unlikely(var12 == NULL)) {
1215 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
1216 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2295);
1217 fatal_exit(1);
1218 }
1219 var10 = var12;
1220 RET_LABEL11:(void)0;
1221 }
1222 }
1223 {
1224 { /* Inline parser_nodes#AExprs#n_exprs (var10) on <var10:AExprs> */
1225 var15 = var10->attrs[COLOR_nit__parser_nodes__AExprs___n_exprs].val; /* _n_exprs on <var10:AExprs> */
1226 if (unlikely(var15 == NULL)) {
1227 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
1228 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2771);
1229 fatal_exit(1);
1230 }
1231 var13 = var15;
1232 RET_LABEL14:(void)0;
1233 }
1234 }
1235 {
1236 standard___standard__SimpleCollection___add_all(var13, var_args); /* Direct call abstract_collection#SimpleCollection#add_all on <var13:ANodes[AExpr]>*/
1237 }
1238 } else {
1239 }
1240 {
1241 { /* Inline typing#ASendExpr#callsite= (self,var_callsite) on <self:ACallExpr> */
1242 self->attrs[COLOR_nit__typing__ASendExpr___callsite].val = var_callsite; /* _callsite on <self:ACallExpr> */
1243 RET_LABEL16:(void)0;
1244 }
1245 }
1246 {
1247 { /* Inline typing#CallSite#msignature (var_callsite) on <var_callsite:CallSite> */
1248 var19 = var_callsite->attrs[COLOR_nit__typing__CallSite___msignature].val; /* _msignature on <var_callsite:CallSite> */
1249 if (unlikely(var19 == NULL)) {
1250 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _msignature");
1251 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing, 631);
1252 fatal_exit(1);
1253 }
1254 var17 = var19;
1255 RET_LABEL18:(void)0;
1256 }
1257 }
1258 {
1259 { /* Inline model#MSignature#return_mtype (var17) on <var17:MSignature> */
1260 var22 = var17->attrs[COLOR_nit__model__MSignature___return_mtype].val; /* _return_mtype on <var17:MSignature> */
1261 var20 = var22;
1262 RET_LABEL21:(void)0;
1263 }
1264 }
1265 {
1266 { /* Inline typing#AExpr#mtype= (self,var20) on <self:ACallExpr> */
1267 self->attrs[COLOR_nit__typing__AExpr___mtype].val = var20; /* _mtype on <self:ACallExpr> */
1268 RET_LABEL23:(void)0;
1269 }
1270 }
1271 {
1272 { /* Inline typing#AExpr#is_typed= (self,1) on <self:ACallExpr> */
1273 self->attrs[COLOR_nit__typing__AExpr___is_typed].s = 1; /* _is_typed on <self:ACallExpr> */
1274 RET_LABEL24:(void)0;
1275 }
1276 }
1277 RET_LABEL:;
1278 }
1279 /* method astbuilder#AAttrExpr#make for (self: AAttrExpr, AExpr, MAttribute, MType) */
1280 void nit__astbuilder___AAttrExpr___make(val* self, val* p0, val* p1, val* p2) {
1281 val* var_recv /* var recv: AExpr */;
1282 val* var_attribute /* var attribute: MAttribute */;
1283 val* var_t /* var t: MType */;
1284 val* var /* : TAttrid */;
1285 {
1286 { /* Inline kernel#Object#init (self) on <self:AAttrExpr> */
1287 RET_LABEL1:(void)0;
1288 }
1289 }
1290 var_recv = p0;
1291 var_attribute = p1;
1292 var_t = p2;
1293 self->attrs[COLOR_nit__parser_nodes__AAttrFormExpr___n_expr].val = var_recv; /* _n_expr on <self:AAttrExpr> */
1294 {
1295 { /* Inline parser_nodes#ANode#parent= (var_recv,self) on <var_recv:AExpr> */
1296 var_recv->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_recv:AExpr> */
1297 RET_LABEL2:(void)0;
1298 }
1299 }
1300 var = NEW_nit__TAttrid(&type_nit__TAttrid);
1301 {
1302 { /* Inline kernel#Object#init (var) on <var:TAttrid> */
1303 RET_LABEL3:(void)0;
1304 }
1305 }
1306 self->attrs[COLOR_nit__parser_nodes__AAttrFormExpr___n_id].val = var; /* _n_id on <self:AAttrExpr> */
1307 {
1308 { /* Inline typing#AAttrFormExpr#mproperty= (self,var_attribute) on <self:AAttrExpr> */
1309 self->attrs[COLOR_nit__typing__AAttrFormExpr___mproperty].val = var_attribute; /* _mproperty on <self:AAttrExpr> */
1310 RET_LABEL4:(void)0;
1311 }
1312 }
1313 {
1314 { /* Inline typing#AExpr#mtype= (self,var_t) on <self:AAttrExpr> */
1315 self->attrs[COLOR_nit__typing__AExpr___mtype].val = var_t; /* _mtype on <self:AAttrExpr> */
1316 RET_LABEL5:(void)0;
1317 }
1318 }
1319 RET_LABEL:;
1320 }
1321 /* method astbuilder#AAttrAssignExpr#make for (self: AAttrAssignExpr, AExpr, MAttribute, AExpr) */
1322 void nit__astbuilder___AAttrAssignExpr___make(val* self, val* p0, val* p1, val* p2) {
1323 val* var_recv /* var recv: AExpr */;
1324 val* var_attribute /* var attribute: MAttribute */;
1325 val* var_value /* var value: AExpr */;
1326 val* var /* : TAttrid */;
1327 val* var5 /* : TAssign */;
1328 val* var8 /* : nullable MType */;
1329 {
1330 { /* Inline kernel#Object#init (self) on <self:AAttrAssignExpr> */
1331 RET_LABEL1:(void)0;
1332 }
1333 }
1334 var_recv = p0;
1335 var_attribute = p1;
1336 var_value = p2;
1337 self->attrs[COLOR_nit__parser_nodes__AAttrFormExpr___n_expr].val = var_recv; /* _n_expr on <self:AAttrAssignExpr> */
1338 {
1339 { /* Inline parser_nodes#ANode#parent= (var_recv,self) on <var_recv:AExpr> */
1340 var_recv->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_recv:AExpr> */
1341 RET_LABEL2:(void)0;
1342 }
1343 }
1344 var = NEW_nit__TAttrid(&type_nit__TAttrid);
1345 {
1346 { /* Inline kernel#Object#init (var) on <var:TAttrid> */
1347 RET_LABEL3:(void)0;
1348 }
1349 }
1350 self->attrs[COLOR_nit__parser_nodes__AAttrFormExpr___n_id].val = var; /* _n_id on <self:AAttrAssignExpr> */
1351 self->attrs[COLOR_nit__parser_nodes__AAssignFormExpr___n_value].val = var_value; /* _n_value on <self:AAttrAssignExpr> */
1352 {
1353 { /* Inline parser_nodes#ANode#parent= (var_value,self) on <var_value:AExpr> */
1354 var_value->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_value:AExpr> */
1355 RET_LABEL4:(void)0;
1356 }
1357 }
1358 var5 = NEW_nit__TAssign(&type_nit__TAssign);
1359 {
1360 { /* Inline kernel#Object#init (var5) on <var5:TAssign> */
1361 RET_LABEL6:(void)0;
1362 }
1363 }
1364 self->attrs[COLOR_nit__parser_nodes__AAssignFormExpr___n_assign].val = var5; /* _n_assign on <self:AAttrAssignExpr> */
1365 {
1366 { /* Inline typing#AAttrFormExpr#mproperty= (self,var_attribute) on <self:AAttrAssignExpr> */
1367 self->attrs[COLOR_nit__typing__AAttrFormExpr___mproperty].val = var_attribute; /* _mproperty on <self:AAttrAssignExpr> */
1368 RET_LABEL7:(void)0;
1369 }
1370 }
1371 {
1372 var8 = ((val*(*)(val* self))(var_value->class->vft[COLOR_nit__typing__AExpr__mtype]))(var_value); /* mtype on <var_value:AExpr>*/
1373 }
1374 {
1375 { /* Inline typing#AExpr#mtype= (self,var8) on <self:AAttrAssignExpr> */
1376 self->attrs[COLOR_nit__typing__AExpr___mtype].val = var8; /* _mtype on <self:AAttrAssignExpr> */
1377 RET_LABEL9:(void)0;
1378 }
1379 }
1380 RET_LABEL:;
1381 }
1382 /* method astbuilder#AVarExpr#make for (self: AVarExpr, Variable, MType) */
1383 void nit__astbuilder___AVarExpr___make(val* self, val* p0, val* p1) {
1384 val* var_v /* var v: Variable */;
1385 val* var_mtype /* var mtype: MType */;
1386 val* var /* : TId */;
1387 {
1388 { /* Inline kernel#Object#init (self) on <self:AVarExpr> */
1389 RET_LABEL1:(void)0;
1390 }
1391 }
1392 var_v = p0;
1393 var_mtype = p1;
1394 var = NEW_nit__TId(&type_nit__TId);
1395 {
1396 { /* Inline kernel#Object#init (var) on <var:TId> */
1397 RET_LABEL2:(void)0;
1398 }
1399 }
1400 self->attrs[COLOR_nit__parser_nodes__AVarFormExpr___n_id].val = var; /* _n_id on <self:AVarExpr> */
1401 {
1402 { /* Inline scope#AVarFormExpr#variable= (self,var_v) on <self:AVarExpr> */
1403 self->attrs[COLOR_nit__scope__AVarFormExpr___variable].val = var_v; /* _variable on <self:AVarExpr> */
1404 RET_LABEL3:(void)0;
1405 }
1406 }
1407 {
1408 { /* Inline typing#AExpr#mtype= (self,var_mtype) on <self:AVarExpr> */
1409 self->attrs[COLOR_nit__typing__AExpr___mtype].val = var_mtype; /* _mtype on <self:AVarExpr> */
1410 RET_LABEL4:(void)0;
1411 }
1412 }
1413 RET_LABEL:;
1414 }
1415 /* method astbuilder#AVarAssignExpr#make for (self: AVarAssignExpr, Variable, AExpr) */
1416 void nit__astbuilder___AVarAssignExpr___make(val* self, val* p0, val* p1) {
1417 val* var_v /* var v: Variable */;
1418 val* var_value /* var value: AExpr */;
1419 val* var /* : TId */;
1420 val* var4 /* : TAssign */;
1421 val* var7 /* : nullable MType */;
1422 {
1423 { /* Inline kernel#Object#init (self) on <self:AVarAssignExpr> */
1424 RET_LABEL1:(void)0;
1425 }
1426 }
1427 var_v = p0;
1428 var_value = p1;
1429 var = NEW_nit__TId(&type_nit__TId);
1430 {
1431 { /* Inline kernel#Object#init (var) on <var:TId> */
1432 RET_LABEL2:(void)0;
1433 }
1434 }
1435 self->attrs[COLOR_nit__parser_nodes__AVarFormExpr___n_id].val = var; /* _n_id on <self:AVarAssignExpr> */
1436 self->attrs[COLOR_nit__parser_nodes__AAssignFormExpr___n_value].val = var_value; /* _n_value on <self:AVarAssignExpr> */
1437 {
1438 { /* Inline parser_nodes#ANode#parent= (var_value,self) on <var_value:AExpr> */
1439 var_value->attrs[COLOR_nit__parser_nodes__ANode___parent].val = self; /* _parent on <var_value:AExpr> */
1440 RET_LABEL3:(void)0;
1441 }
1442 }
1443 var4 = NEW_nit__TAssign(&type_nit__TAssign);
1444 {
1445 { /* Inline kernel#Object#init (var4) on <var4:TAssign> */
1446 RET_LABEL5:(void)0;
1447 }
1448 }
1449 self->attrs[COLOR_nit__parser_nodes__AAssignFormExpr___n_assign].val = var4; /* _n_assign on <self:AVarAssignExpr> */
1450 {
1451 { /* Inline scope#AVarFormExpr#variable= (self,var_v) on <self:AVarAssignExpr> */
1452 self->attrs[COLOR_nit__scope__AVarFormExpr___variable].val = var_v; /* _variable on <self:AVarAssignExpr> */
1453 RET_LABEL6:(void)0;
1454 }
1455 }
1456 {
1457 var7 = ((val*(*)(val* self))(var_value->class->vft[COLOR_nit__typing__AExpr__mtype]))(var_value); /* mtype on <var_value:AExpr>*/
1458 }
1459 {
1460 { /* Inline typing#AExpr#mtype= (self,var7) on <self:AVarAssignExpr> */
1461 self->attrs[COLOR_nit__typing__AExpr___mtype].val = var7; /* _mtype on <self:AVarAssignExpr> */
1462 RET_LABEL8:(void)0;
1463 }
1464 }
1465 RET_LABEL:;
1466 }