Merge: doc: fixed some typos and other misc. corrections
[nit.git] / c_src / nitc__abstract_compiler.sep.6.c
1 #include "nitc__abstract_compiler.sep.0.h"
2 /* method abstract_compiler$AMethPropdef$compile_externmeth_to_c for (self: AMethPropdef, AbstractCompilerVisitor, MMethodDef, Array[RuntimeVariable]): Bool */
3 short int nitc__abstract_compiler___AMethPropdef___compile_externmeth_to_c(val* self, val* p0, val* p1, val* p2) {
4 short int var /* : Bool */;
5 val* var_v /* var v: AbstractCompilerVisitor */;
6 val* var_mpropdef /* var mpropdef: MMethodDef */;
7 val* var_arguments /* var arguments: Array[RuntimeVariable] */;
8 static val* varonce;
9 val* var1 /* : String */;
10 char* var2 /* : CString */;
11 val* var3 /* : String */;
12 val* var4 /* : nullable Int */;
13 val* var5 /* : nullable Int */;
14 val* var6 /* : nullable Bool */;
15 val* var7 /* : nullable Bool */;
16 val* var8 /* : AbstractCompiler */;
17 val* var10 /* : AbstractCompiler */;
18 val* var11 /* : ModelBuilder */;
19 val* var13 /* : ModelBuilder */;
20 val* var14 /* : nullable AAnnotation */;
21 val* var_at /* var at: nullable AAnnotation */;
22 short int var15 /* : Bool */;
23 short int var16 /* : Bool */;
24 short int var17 /* : Bool */;
25 val* var_other /* var other: nullable Object */;
26 short int var19 /* : Bool */;
27 short int var20 /* : Bool */;
28 short int var_ /* var : Bool */;
29 val* var21 /* : ANodes[AExpr] */;
30 val* var23 /* : ANodes[AExpr] */;
31 long var24 /* : Int */;
32 short int var25 /* : Bool */;
33 short int var27 /* : Bool */;
34 val* var28 /* : AbstractCompiler */;
35 val* var30 /* : AbstractCompiler */;
36 val* var31 /* : ModelBuilder */;
37 val* var33 /* : ModelBuilder */;
38 val* var34 /* : nullable String */;
39 val* var_externname /* var externname: nullable Object */;
40 short int var35 /* : Bool */;
41 short int var36 /* : Bool */;
42 val* var37 /* : MClassDef */;
43 val* var39 /* : MClassDef */;
44 val* var40 /* : MModule */;
45 val* var42 /* : MModule */;
46 val* var_res /* var res: nullable RuntimeVariable */;
47 val* var43 /* : nullable MSignature */;
48 val* var45 /* : nullable MSignature */;
49 val* var46 /* : nullable MType */;
50 val* var48 /* : nullable MType */;
51 val* var_ret /* var ret: nullable MType */;
52 short int var49 /* : Bool */;
53 short int var50 /* : Bool */;
54 short int var52 /* : Bool */;
55 short int var53 /* : Bool */;
56 val* var54 /* : nullable Object */;
57 val* var55 /* : MType */;
58 val* var56 /* : RuntimeVariable */;
59 short int var57 /* : Bool */;
60 short int var58 /* : Bool */;
61 val* var_other60 /* var other: nullable Object */;
62 short int var61 /* : Bool */;
63 short int var63 /* : Bool */;
64 val* var65 /* : NativeArray[String] */;
65 static val* varonce64;
66 static val* varonce66;
67 val* var67 /* : String */;
68 char* var68 /* : CString */;
69 val* var69 /* : String */;
70 val* var70 /* : nullable Int */;
71 val* var71 /* : nullable Int */;
72 val* var72 /* : nullable Bool */;
73 val* var73 /* : nullable Bool */;
74 static val* varonce74;
75 val* var75 /* : String */;
76 char* var76 /* : CString */;
77 val* var77 /* : String */;
78 val* var78 /* : nullable Int */;
79 val* var79 /* : nullable Int */;
80 val* var80 /* : nullable Bool */;
81 val* var81 /* : nullable Bool */;
82 static val* varonce82;
83 val* var83 /* : String */;
84 char* var84 /* : CString */;
85 val* var85 /* : String */;
86 val* var86 /* : nullable Int */;
87 val* var87 /* : nullable Int */;
88 val* var88 /* : nullable Bool */;
89 val* var89 /* : nullable Bool */;
90 val* var90 /* : String */;
91 val* var91 /* : String */;
92 val* var93 /* : NativeArray[String] */;
93 static val* varonce92;
94 static val* varonce94;
95 val* var95 /* : String */;
96 char* var96 /* : CString */;
97 val* var97 /* : String */;
98 val* var98 /* : nullable Int */;
99 val* var99 /* : nullable Int */;
100 val* var100 /* : nullable Bool */;
101 val* var101 /* : nullable Bool */;
102 static val* varonce102;
103 val* var103 /* : String */;
104 char* var104 /* : CString */;
105 val* var105 /* : String */;
106 val* var106 /* : nullable Int */;
107 val* var107 /* : nullable Int */;
108 val* var108 /* : nullable Bool */;
109 val* var109 /* : nullable Bool */;
110 static val* varonce110;
111 val* var111 /* : String */;
112 char* var112 /* : CString */;
113 val* var113 /* : String */;
114 val* var114 /* : nullable Int */;
115 val* var115 /* : nullable Int */;
116 val* var116 /* : nullable Bool */;
117 val* var117 /* : nullable Bool */;
118 val* var118 /* : String */;
119 static val* varonce119;
120 val* var120 /* : String */;
121 char* var121 /* : CString */;
122 val* var122 /* : String */;
123 val* var123 /* : nullable Int */;
124 val* var124 /* : nullable Int */;
125 val* var125 /* : nullable Bool */;
126 val* var126 /* : nullable Bool */;
127 val* var127 /* : String */;
128 val* var128 /* : String */;
129 val* var129 /* : RuntimeVariable */;
130 var_v = p0;
131 var_mpropdef = p1;
132 var_arguments = p2;
133 if (likely(varonce!=NULL)) {
134 var1 = varonce;
135 } else {
136 var2 = "extern";
137 var4 = (val*)(6l<<2|1);
138 var5 = (val*)(6l<<2|1);
139 var6 = (val*)((long)(0)<<2|3);
140 var7 = (val*)((long)(0)<<2|3);
141 var3 = core__flat___CString___to_s_unsafe(var2, var4, var5, var6, var7);
142 var1 = var3;
143 varonce = var1;
144 }
145 {
146 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (var_v) on <var_v:AbstractCompilerVisitor> */
147 var10 = var_v->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <var_v:AbstractCompilerVisitor> */
148 if (unlikely(var10 == NULL)) {
149 if(catchStack.cursor >= 0){
150 longjmp(catchStack.envs[catchStack.cursor], 1);
151 }
152 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
153 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
154 fatal_exit(1);
155 }
156 var8 = var10;
157 RET_LABEL9:(void)0;
158 }
159 }
160 {
161 { /* Inline abstract_compiler$AbstractCompiler$modelbuilder (var8) on <var8:AbstractCompiler> */
162 var13 = var8->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var8:AbstractCompiler> */
163 if (unlikely(var13 == NULL)) {
164 if(catchStack.cursor >= 0){
165 longjmp(catchStack.envs[catchStack.cursor], 1);
166 }
167 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
168 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 552);
169 fatal_exit(1);
170 }
171 var11 = var13;
172 RET_LABEL12:(void)0;
173 }
174 }
175 {
176 var14 = nitc__annotation___Prod___get_single_annotation(self, var1, var11);
177 }
178 var_at = var14;
179 if (var_at == NULL) {
180 var16 = 0; /* is null */
181 } else {
182 var16 = 1; /* arg is null and recv is not */
183 }
184 if (0) {
185 { /* Inline kernel$Object$!= (var_at,((val*)NULL)) on <var_at:nullable AAnnotation> */
186 var_other = ((val*)NULL);
187 {
188 var19 = ((short int(*)(val* self, val* p0))(var_at->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_at, var_other); /* == on <var_at:nullable AAnnotation(AAnnotation)>*/
189 }
190 var20 = !var19;
191 var17 = var20;
192 goto RET_LABEL18;
193 RET_LABEL18:(void)0;
194 }
195 var16 = var17;
196 }
197 var_ = var16;
198 if (var16){
199 {
200 { /* Inline parser_nodes$AAnnotation$n_args (var_at) on <var_at:nullable AAnnotation(AAnnotation)> */
201 var23 = var_at->attrs[COLOR_nitc__parser_nodes__AAnnotation___n_args].val; /* _n_args on <var_at:nullable AAnnotation(AAnnotation)> */
202 if (unlikely(var23 == NULL)) {
203 if(catchStack.cursor >= 0){
204 longjmp(catchStack.envs[catchStack.cursor], 1);
205 }
206 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
207 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 3007);
208 fatal_exit(1);
209 }
210 var21 = var23;
211 RET_LABEL22:(void)0;
212 }
213 }
214 {
215 var24 = nitc___nitc__ANodes___core__abstract_collection__Collection__length(var21);
216 }
217 {
218 { /* Inline kernel$Int$== (var24,1l) on <var24:Int> */
219 var27 = var24 == 1l;
220 var25 = var27;
221 goto RET_LABEL26;
222 RET_LABEL26:(void)0;
223 }
224 }
225 var15 = var25;
226 } else {
227 var15 = var_;
228 }
229 if (var15){
230 {
231 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (var_v) on <var_v:AbstractCompilerVisitor> */
232 var30 = var_v->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <var_v:AbstractCompilerVisitor> */
233 if (unlikely(var30 == NULL)) {
234 if(catchStack.cursor >= 0){
235 longjmp(catchStack.envs[catchStack.cursor], 1);
236 }
237 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
238 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
239 fatal_exit(1);
240 }
241 var28 = var30;
242 RET_LABEL29:(void)0;
243 }
244 }
245 {
246 { /* Inline abstract_compiler$AbstractCompiler$modelbuilder (var28) on <var28:AbstractCompiler> */
247 var33 = var28->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var28:AbstractCompiler> */
248 if (unlikely(var33 == NULL)) {
249 if(catchStack.cursor >= 0){
250 longjmp(catchStack.envs[catchStack.cursor], 1);
251 }
252 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
253 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 552);
254 fatal_exit(1);
255 }
256 var31 = var33;
257 RET_LABEL32:(void)0;
258 }
259 }
260 {
261 var34 = nitc__annotation___AAnnotation___arg_as_string(var_at, var31);
262 }
263 var_externname = var34;
264 if (var_externname == NULL) {
265 var35 = 1; /* is null */
266 } else {
267 var35 = 0; /* arg is null but recv is not */
268 }
269 if (0) {
270 var36 = ((short int(*)(val* self, val* p0))(var_externname->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_externname, ((val*)NULL)); /* == on <var_externname:nullable Object(nullable String)>*/
271 var35 = var36;
272 }
273 if (var35){
274 var = 0;
275 goto RET_LABEL;
276 } else {
277 }
278 } else {
279 var = 0;
280 goto RET_LABEL;
281 }
282 {
283 { /* Inline model$MPropDef$mclassdef (var_mpropdef) on <var_mpropdef:MMethodDef> */
284 var39 = var_mpropdef->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:MMethodDef> */
285 if (unlikely(var39 == NULL)) {
286 if(catchStack.cursor >= 0){
287 longjmp(catchStack.envs[catchStack.cursor], 1);
288 }
289 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
290 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2354);
291 fatal_exit(1);
292 }
293 var37 = var39;
294 RET_LABEL38:(void)0;
295 }
296 }
297 {
298 { /* Inline model$MClassDef$mmodule (var37) on <var37:MClassDef> */
299 var42 = var37->attrs[COLOR_nitc__model__MClassDef___mmodule].val; /* _mmodule on <var37:MClassDef> */
300 if (unlikely(var42 == NULL)) {
301 if(catchStack.cursor >= 0){
302 longjmp(catchStack.envs[catchStack.cursor], 1);
303 }
304 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
305 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 588);
306 fatal_exit(1);
307 }
308 var40 = var42;
309 RET_LABEL41:(void)0;
310 }
311 }
312 {
313 nitc___nitc__AbstractCompilerVisitor___add_extern(var_v, var40); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_extern on <var_v:AbstractCompilerVisitor>*/
314 }
315 var_res = ((val*)NULL);
316 {
317 { /* Inline model$MMethodDef$msignature (var_mpropdef) on <var_mpropdef:MMethodDef> */
318 var45 = var_mpropdef->attrs[COLOR_nitc__model__MMethodDef___msignature].val; /* _msignature on <var_mpropdef:MMethodDef> */
319 var43 = var45;
320 RET_LABEL44:(void)0;
321 }
322 }
323 if (var43 == NULL) {
324 if(catchStack.cursor >= 0){
325 longjmp(catchStack.envs[catchStack.cursor], 1);
326 }
327 PRINT_ERROR("Runtime error: %s", "Receiver is null");
328 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3123);
329 fatal_exit(1);
330 } else {
331 { /* Inline model$MSignature$return_mtype (var43) on <var43:nullable MSignature> */
332 if (unlikely(var43 == NULL)) {
333 if(catchStack.cursor >= 0){
334 longjmp(catchStack.envs[catchStack.cursor], 1);
335 }
336 PRINT_ERROR("Runtime error: %s", "Receiver is null");
337 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1891);
338 fatal_exit(1);
339 }
340 var48 = var43->attrs[COLOR_nitc__model__MSignature___return_mtype].val; /* _return_mtype on <var43:nullable MSignature> */
341 var46 = var48;
342 RET_LABEL47:(void)0;
343 }
344 }
345 var_ret = var46;
346 if (var_ret == NULL) {
347 var49 = 0; /* is null */
348 } else {
349 var49 = 1; /* arg is null and recv is not */
350 }
351 if (0) {
352 { /* Inline kernel$Object$!= (var_ret,((val*)NULL)) on <var_ret:nullable MType> */
353 var_other = ((val*)NULL);
354 {
355 var52 = ((short int(*)(val* self, val* p0))(var_ret->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_ret, var_other); /* == on <var_ret:nullable MType(MType)>*/
356 }
357 var53 = !var52;
358 var50 = var53;
359 goto RET_LABEL51;
360 RET_LABEL51:(void)0;
361 }
362 var49 = var50;
363 }
364 if (var49){
365 {
366 var54 = core___core__SequenceRead___Collection__first(var_arguments);
367 }
368 {
369 var55 = nitc___nitc__AbstractCompilerVisitor___resolve_for(var_v, var_ret, var54);
370 }
371 var_ret = var55;
372 {
373 var56 = nitc___nitc__AbstractCompilerVisitor___new_var_extern(var_v, var_ret);
374 }
375 var_res = var56;
376 } else {
377 }
378 {
379 nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__adapt_signature(var_v, var_mpropdef, var_arguments); /* Direct call separate_compiler$SeparateCompilerVisitor$adapt_signature on <var_v:AbstractCompilerVisitor>*/
380 }
381 {
382 nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__unbox_signature_extern(var_v, var_mpropdef, var_arguments); /* Direct call separate_compiler$SeparateCompilerVisitor$unbox_signature_extern on <var_v:AbstractCompilerVisitor>*/
383 }
384 if (var_res == NULL) {
385 var57 = 1; /* is null */
386 } else {
387 var57 = 0; /* arg is null but recv is not */
388 }
389 if (0) {
390 { /* Inline kernel$Object$== (var_res,((val*)NULL)) on <var_res:nullable RuntimeVariable> */
391 var_other60 = ((val*)NULL);
392 {
393 { /* Inline kernel$Object$is_same_instance (var_res,var_other60) on <var_res:nullable RuntimeVariable(RuntimeVariable)> */
394 var63 = var_res == var_other60;
395 var61 = var63;
396 goto RET_LABEL62;
397 RET_LABEL62:(void)0;
398 }
399 }
400 var58 = var61;
401 goto RET_LABEL59;
402 RET_LABEL59:(void)0;
403 }
404 var57 = var58;
405 }
406 if (var57){
407 if (unlikely(varonce64==NULL)) {
408 var65 = NEW_core__NativeArray((int)4l, &type_core__NativeArray__core__String);
409 if (likely(varonce66!=NULL)) {
410 var67 = varonce66;
411 } else {
412 var68 = "(";
413 var70 = (val*)(1l<<2|1);
414 var71 = (val*)(1l<<2|1);
415 var72 = (val*)((long)(0)<<2|3);
416 var73 = (val*)((long)(0)<<2|3);
417 var69 = core__flat___CString___to_s_unsafe(var68, var70, var71, var72, var73);
418 var67 = var69;
419 varonce66 = var67;
420 }
421 ((struct instance_core__NativeArray*)var65)->values[1]=var67;
422 if (likely(varonce74!=NULL)) {
423 var75 = varonce74;
424 } else {
425 var76 = ");";
426 var78 = (val*)(2l<<2|1);
427 var79 = (val*)(2l<<2|1);
428 var80 = (val*)((long)(0)<<2|3);
429 var81 = (val*)((long)(0)<<2|3);
430 var77 = core__flat___CString___to_s_unsafe(var76, var78, var79, var80, var81);
431 var75 = var77;
432 varonce74 = var75;
433 }
434 ((struct instance_core__NativeArray*)var65)->values[3]=var75;
435 } else {
436 var65 = varonce64;
437 varonce64 = NULL;
438 }
439 ((struct instance_core__NativeArray*)var65)->values[0]=var_externname;
440 if (likely(varonce82!=NULL)) {
441 var83 = varonce82;
442 } else {
443 var84 = ", ";
444 var86 = (val*)(2l<<2|1);
445 var87 = (val*)(2l<<2|1);
446 var88 = (val*)((long)(0)<<2|3);
447 var89 = (val*)((long)(0)<<2|3);
448 var85 = core__flat___CString___to_s_unsafe(var84, var86, var87, var88, var89);
449 var83 = var85;
450 varonce82 = var83;
451 }
452 {
453 var90 = core__abstract_text___Collection___join(var_arguments, var83, ((val*)NULL));
454 }
455 ((struct instance_core__NativeArray*)var65)->values[2]=var90;
456 {
457 var91 = ((val*(*)(val* self))(var65->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var65); /* native_to_s on <var65:NativeArray[String]>*/
458 }
459 varonce64 = var65;
460 {
461 nitc___nitc__AbstractCompilerVisitor___add(var_v, var91); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
462 }
463 } else {
464 if (unlikely(varonce92==NULL)) {
465 var93 = NEW_core__NativeArray((int)6l, &type_core__NativeArray__core__String);
466 if (likely(varonce94!=NULL)) {
467 var95 = varonce94;
468 } else {
469 var96 = " = ";
470 var98 = (val*)(3l<<2|1);
471 var99 = (val*)(3l<<2|1);
472 var100 = (val*)((long)(0)<<2|3);
473 var101 = (val*)((long)(0)<<2|3);
474 var97 = core__flat___CString___to_s_unsafe(var96, var98, var99, var100, var101);
475 var95 = var97;
476 varonce94 = var95;
477 }
478 ((struct instance_core__NativeArray*)var93)->values[1]=var95;
479 if (likely(varonce102!=NULL)) {
480 var103 = varonce102;
481 } else {
482 var104 = "(";
483 var106 = (val*)(1l<<2|1);
484 var107 = (val*)(1l<<2|1);
485 var108 = (val*)((long)(0)<<2|3);
486 var109 = (val*)((long)(0)<<2|3);
487 var105 = core__flat___CString___to_s_unsafe(var104, var106, var107, var108, var109);
488 var103 = var105;
489 varonce102 = var103;
490 }
491 ((struct instance_core__NativeArray*)var93)->values[3]=var103;
492 if (likely(varonce110!=NULL)) {
493 var111 = varonce110;
494 } else {
495 var112 = ");";
496 var114 = (val*)(2l<<2|1);
497 var115 = (val*)(2l<<2|1);
498 var116 = (val*)((long)(0)<<2|3);
499 var117 = (val*)((long)(0)<<2|3);
500 var113 = core__flat___CString___to_s_unsafe(var112, var114, var115, var116, var117);
501 var111 = var113;
502 varonce110 = var111;
503 }
504 ((struct instance_core__NativeArray*)var93)->values[5]=var111;
505 } else {
506 var93 = varonce92;
507 varonce92 = NULL;
508 }
509 {
510 var118 = ((val*(*)(val* self))(var_res->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_res); /* to_s on <var_res:nullable RuntimeVariable(RuntimeVariable)>*/
511 }
512 ((struct instance_core__NativeArray*)var93)->values[0]=var118;
513 ((struct instance_core__NativeArray*)var93)->values[2]=var_externname;
514 if (likely(varonce119!=NULL)) {
515 var120 = varonce119;
516 } else {
517 var121 = ", ";
518 var123 = (val*)(2l<<2|1);
519 var124 = (val*)(2l<<2|1);
520 var125 = (val*)((long)(0)<<2|3);
521 var126 = (val*)((long)(0)<<2|3);
522 var122 = core__flat___CString___to_s_unsafe(var121, var123, var124, var125, var126);
523 var120 = var122;
524 varonce119 = var120;
525 }
526 {
527 var127 = core__abstract_text___Collection___join(var_arguments, var120, ((val*)NULL));
528 }
529 ((struct instance_core__NativeArray*)var93)->values[4]=var127;
530 {
531 var128 = ((val*(*)(val* self))(var93->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var93); /* native_to_s on <var93:NativeArray[String]>*/
532 }
533 varonce92 = var93;
534 {
535 nitc___nitc__AbstractCompilerVisitor___add(var_v, var128); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
536 }
537 if (unlikely(var_ret == NULL)) {
538 if(catchStack.cursor >= 0){
539 longjmp(catchStack.envs[catchStack.cursor], 1);
540 }
541 PRINT_ERROR("Runtime error: %s", "Cast failed");
542 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3135);
543 fatal_exit(1);
544 }
545 {
546 var129 = ((val*(*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor__box_extern]))(var_v, var_res, var_ret); /* box_extern on <var_v:AbstractCompilerVisitor>*/
547 }
548 var_res = var129;
549 {
550 nitc___nitc__AbstractCompilerVisitor___ret(var_v, var_res); /* Direct call abstract_compiler$AbstractCompilerVisitor$ret on <var_v:AbstractCompilerVisitor>*/
551 }
552 }
553 var = 1;
554 goto RET_LABEL;
555 RET_LABEL:;
556 return var;
557 }
558 /* method abstract_compiler$AMethPropdef$compile_externinit_to_c for (self: AMethPropdef, AbstractCompilerVisitor, MMethodDef, Array[RuntimeVariable]): Bool */
559 short int nitc__abstract_compiler___AMethPropdef___compile_externinit_to_c(val* self, val* p0, val* p1, val* p2) {
560 short int var /* : Bool */;
561 val* var_v /* var v: AbstractCompilerVisitor */;
562 val* var_mpropdef /* var mpropdef: MMethodDef */;
563 val* var_arguments /* var arguments: Array[RuntimeVariable] */;
564 static val* varonce;
565 val* var1 /* : String */;
566 char* var2 /* : CString */;
567 val* var3 /* : String */;
568 val* var4 /* : nullable Int */;
569 val* var5 /* : nullable Int */;
570 val* var6 /* : nullable Bool */;
571 val* var7 /* : nullable Bool */;
572 val* var8 /* : AbstractCompiler */;
573 val* var10 /* : AbstractCompiler */;
574 val* var11 /* : ModelBuilder */;
575 val* var13 /* : ModelBuilder */;
576 val* var14 /* : nullable AAnnotation */;
577 val* var_at /* var at: nullable AAnnotation */;
578 short int var15 /* : Bool */;
579 short int var16 /* : Bool */;
580 val* var_other /* var other: nullable Object */;
581 short int var18 /* : Bool */;
582 short int var19 /* : Bool */;
583 val* var20 /* : AbstractCompiler */;
584 val* var22 /* : AbstractCompiler */;
585 val* var23 /* : ModelBuilder */;
586 val* var25 /* : ModelBuilder */;
587 val* var26 /* : nullable String */;
588 val* var_externname /* var externname: nullable Object */;
589 short int var27 /* : Bool */;
590 short int var28 /* : Bool */;
591 val* var29 /* : MClassDef */;
592 val* var31 /* : MClassDef */;
593 val* var32 /* : MModule */;
594 val* var34 /* : MModule */;
595 val* var35 /* : nullable Object */;
596 val* var36 /* : MType */;
597 val* var38 /* : MType */;
598 val* var_ret /* var ret: MType */;
599 val* var39 /* : RuntimeVariable */;
600 val* var_res /* var res: RuntimeVariable */;
601 val* var40 /* : nullable Object */;
602 val* var42 /* : NativeArray[String] */;
603 static val* varonce41;
604 static val* varonce43;
605 val* var44 /* : String */;
606 char* var45 /* : CString */;
607 val* var46 /* : String */;
608 val* var47 /* : nullable Int */;
609 val* var48 /* : nullable Int */;
610 val* var49 /* : nullable Bool */;
611 val* var50 /* : nullable Bool */;
612 static val* varonce51;
613 val* var52 /* : String */;
614 char* var53 /* : CString */;
615 val* var54 /* : String */;
616 val* var55 /* : nullable Int */;
617 val* var56 /* : nullable Int */;
618 val* var57 /* : nullable Bool */;
619 val* var58 /* : nullable Bool */;
620 static val* varonce59;
621 val* var60 /* : String */;
622 char* var61 /* : CString */;
623 val* var62 /* : String */;
624 val* var63 /* : nullable Int */;
625 val* var64 /* : nullable Int */;
626 val* var65 /* : nullable Bool */;
627 val* var66 /* : nullable Bool */;
628 val* var67 /* : String */;
629 static val* varonce68;
630 val* var69 /* : String */;
631 char* var70 /* : CString */;
632 val* var71 /* : String */;
633 val* var72 /* : nullable Int */;
634 val* var73 /* : nullable Int */;
635 val* var74 /* : nullable Bool */;
636 val* var75 /* : nullable Bool */;
637 val* var76 /* : String */;
638 val* var77 /* : String */;
639 val* var78 /* : RuntimeVariable */;
640 var_v = p0;
641 var_mpropdef = p1;
642 var_arguments = p2;
643 if (likely(varonce!=NULL)) {
644 var1 = varonce;
645 } else {
646 var2 = "extern";
647 var4 = (val*)(6l<<2|1);
648 var5 = (val*)(6l<<2|1);
649 var6 = (val*)((long)(0)<<2|3);
650 var7 = (val*)((long)(0)<<2|3);
651 var3 = core__flat___CString___to_s_unsafe(var2, var4, var5, var6, var7);
652 var1 = var3;
653 varonce = var1;
654 }
655 {
656 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (var_v) on <var_v:AbstractCompilerVisitor> */
657 var10 = var_v->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <var_v:AbstractCompilerVisitor> */
658 if (unlikely(var10 == NULL)) {
659 if(catchStack.cursor >= 0){
660 longjmp(catchStack.envs[catchStack.cursor], 1);
661 }
662 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
663 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
664 fatal_exit(1);
665 }
666 var8 = var10;
667 RET_LABEL9:(void)0;
668 }
669 }
670 {
671 { /* Inline abstract_compiler$AbstractCompiler$modelbuilder (var8) on <var8:AbstractCompiler> */
672 var13 = var8->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var8:AbstractCompiler> */
673 if (unlikely(var13 == NULL)) {
674 if(catchStack.cursor >= 0){
675 longjmp(catchStack.envs[catchStack.cursor], 1);
676 }
677 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
678 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 552);
679 fatal_exit(1);
680 }
681 var11 = var13;
682 RET_LABEL12:(void)0;
683 }
684 }
685 {
686 var14 = nitc__annotation___Prod___get_single_annotation(self, var1, var11);
687 }
688 var_at = var14;
689 if (var_at == NULL) {
690 var15 = 0; /* is null */
691 } else {
692 var15 = 1; /* arg is null and recv is not */
693 }
694 if (0) {
695 { /* Inline kernel$Object$!= (var_at,((val*)NULL)) on <var_at:nullable AAnnotation> */
696 var_other = ((val*)NULL);
697 {
698 var18 = ((short int(*)(val* self, val* p0))(var_at->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_at, var_other); /* == on <var_at:nullable AAnnotation(AAnnotation)>*/
699 }
700 var19 = !var18;
701 var16 = var19;
702 goto RET_LABEL17;
703 RET_LABEL17:(void)0;
704 }
705 var15 = var16;
706 }
707 if (var15){
708 {
709 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (var_v) on <var_v:AbstractCompilerVisitor> */
710 var22 = var_v->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <var_v:AbstractCompilerVisitor> */
711 if (unlikely(var22 == NULL)) {
712 if(catchStack.cursor >= 0){
713 longjmp(catchStack.envs[catchStack.cursor], 1);
714 }
715 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
716 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
717 fatal_exit(1);
718 }
719 var20 = var22;
720 RET_LABEL21:(void)0;
721 }
722 }
723 {
724 { /* Inline abstract_compiler$AbstractCompiler$modelbuilder (var20) on <var20:AbstractCompiler> */
725 var25 = var20->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var20:AbstractCompiler> */
726 if (unlikely(var25 == NULL)) {
727 if(catchStack.cursor >= 0){
728 longjmp(catchStack.envs[catchStack.cursor], 1);
729 }
730 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
731 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 552);
732 fatal_exit(1);
733 }
734 var23 = var25;
735 RET_LABEL24:(void)0;
736 }
737 }
738 {
739 var26 = nitc__annotation___AAnnotation___arg_as_string(var_at, var23);
740 }
741 var_externname = var26;
742 if (var_externname == NULL) {
743 var27 = 1; /* is null */
744 } else {
745 var27 = 0; /* arg is null but recv is not */
746 }
747 if (0) {
748 var28 = ((short int(*)(val* self, val* p0))(var_externname->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_externname, ((val*)NULL)); /* == on <var_externname:nullable Object(nullable String)>*/
749 var27 = var28;
750 }
751 if (var27){
752 var = 0;
753 goto RET_LABEL;
754 } else {
755 }
756 } else {
757 var = 0;
758 goto RET_LABEL;
759 }
760 {
761 { /* Inline model$MPropDef$mclassdef (var_mpropdef) on <var_mpropdef:MMethodDef> */
762 var31 = var_mpropdef->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:MMethodDef> */
763 if (unlikely(var31 == NULL)) {
764 if(catchStack.cursor >= 0){
765 longjmp(catchStack.envs[catchStack.cursor], 1);
766 }
767 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
768 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2354);
769 fatal_exit(1);
770 }
771 var29 = var31;
772 RET_LABEL30:(void)0;
773 }
774 }
775 {
776 { /* Inline model$MClassDef$mmodule (var29) on <var29:MClassDef> */
777 var34 = var29->attrs[COLOR_nitc__model__MClassDef___mmodule].val; /* _mmodule on <var29:MClassDef> */
778 if (unlikely(var34 == NULL)) {
779 if(catchStack.cursor >= 0){
780 longjmp(catchStack.envs[catchStack.cursor], 1);
781 }
782 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
783 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 588);
784 fatal_exit(1);
785 }
786 var32 = var34;
787 RET_LABEL33:(void)0;
788 }
789 }
790 {
791 nitc___nitc__AbstractCompilerVisitor___add_extern(var_v, var32); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_extern on <var_v:AbstractCompilerVisitor>*/
792 }
793 {
794 nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__adapt_signature(var_v, var_mpropdef, var_arguments); /* Direct call separate_compiler$SeparateCompilerVisitor$adapt_signature on <var_v:AbstractCompilerVisitor>*/
795 }
796 {
797 nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__unbox_signature_extern(var_v, var_mpropdef, var_arguments); /* Direct call separate_compiler$SeparateCompilerVisitor$unbox_signature_extern on <var_v:AbstractCompilerVisitor>*/
798 }
799 {
800 var35 = core___core__SequenceRead___Collection__first(var_arguments);
801 }
802 {
803 { /* Inline abstract_compiler$RuntimeVariable$mtype (var35) on <var35:nullable Object(RuntimeVariable)> */
804 var38 = var35->attrs[COLOR_nitc__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on <var35:nullable Object(RuntimeVariable)> */
805 if (unlikely(var38 == NULL)) {
806 if(catchStack.cursor >= 0){
807 longjmp(catchStack.envs[catchStack.cursor], 1);
808 }
809 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
810 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1983);
811 fatal_exit(1);
812 }
813 var36 = var38;
814 RET_LABEL37:(void)0;
815 }
816 }
817 var_ret = var36;
818 {
819 var39 = nitc___nitc__AbstractCompilerVisitor___new_var_extern(var_v, var_ret);
820 }
821 var_res = var39;
822 {
823 var40 = core___core__AbstractArray___core__abstract_collection__Sequence__shift(var_arguments);
824 }
825 if (unlikely(varonce41==NULL)) {
826 var42 = NEW_core__NativeArray((int)6l, &type_core__NativeArray__core__String);
827 if (likely(varonce43!=NULL)) {
828 var44 = varonce43;
829 } else {
830 var45 = " = ";
831 var47 = (val*)(3l<<2|1);
832 var48 = (val*)(3l<<2|1);
833 var49 = (val*)((long)(0)<<2|3);
834 var50 = (val*)((long)(0)<<2|3);
835 var46 = core__flat___CString___to_s_unsafe(var45, var47, var48, var49, var50);
836 var44 = var46;
837 varonce43 = var44;
838 }
839 ((struct instance_core__NativeArray*)var42)->values[1]=var44;
840 if (likely(varonce51!=NULL)) {
841 var52 = varonce51;
842 } else {
843 var53 = "(";
844 var55 = (val*)(1l<<2|1);
845 var56 = (val*)(1l<<2|1);
846 var57 = (val*)((long)(0)<<2|3);
847 var58 = (val*)((long)(0)<<2|3);
848 var54 = core__flat___CString___to_s_unsafe(var53, var55, var56, var57, var58);
849 var52 = var54;
850 varonce51 = var52;
851 }
852 ((struct instance_core__NativeArray*)var42)->values[3]=var52;
853 if (likely(varonce59!=NULL)) {
854 var60 = varonce59;
855 } else {
856 var61 = ");";
857 var63 = (val*)(2l<<2|1);
858 var64 = (val*)(2l<<2|1);
859 var65 = (val*)((long)(0)<<2|3);
860 var66 = (val*)((long)(0)<<2|3);
861 var62 = core__flat___CString___to_s_unsafe(var61, var63, var64, var65, var66);
862 var60 = var62;
863 varonce59 = var60;
864 }
865 ((struct instance_core__NativeArray*)var42)->values[5]=var60;
866 } else {
867 var42 = varonce41;
868 varonce41 = NULL;
869 }
870 {
871 var67 = ((val*(*)(val* self))(var_res->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_res); /* to_s on <var_res:RuntimeVariable>*/
872 }
873 ((struct instance_core__NativeArray*)var42)->values[0]=var67;
874 ((struct instance_core__NativeArray*)var42)->values[2]=var_externname;
875 if (likely(varonce68!=NULL)) {
876 var69 = varonce68;
877 } else {
878 var70 = ", ";
879 var72 = (val*)(2l<<2|1);
880 var73 = (val*)(2l<<2|1);
881 var74 = (val*)((long)(0)<<2|3);
882 var75 = (val*)((long)(0)<<2|3);
883 var71 = core__flat___CString___to_s_unsafe(var70, var72, var73, var74, var75);
884 var69 = var71;
885 varonce68 = var69;
886 }
887 {
888 var76 = core__abstract_text___Collection___join(var_arguments, var69, ((val*)NULL));
889 }
890 ((struct instance_core__NativeArray*)var42)->values[4]=var76;
891 {
892 var77 = ((val*(*)(val* self))(var42->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var42); /* native_to_s on <var42:NativeArray[String]>*/
893 }
894 varonce41 = var42;
895 {
896 nitc___nitc__AbstractCompilerVisitor___add(var_v, var77); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
897 }
898 {
899 var78 = ((val*(*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor__box_extern]))(var_v, var_res, var_ret); /* box_extern on <var_v:AbstractCompilerVisitor>*/
900 }
901 var_res = var78;
902 {
903 nitc___nitc__AbstractCompilerVisitor___ret(var_v, var_res); /* Direct call abstract_compiler$AbstractCompilerVisitor$ret on <var_v:AbstractCompilerVisitor>*/
904 }
905 var = 1;
906 goto RET_LABEL;
907 RET_LABEL:;
908 return var;
909 }
910 /* method abstract_compiler$AAttrPropdef$can_inline for (self: AAttrPropdef): Bool */
911 short int nitc__abstract_compiler___AAttrPropdef___APropdef__can_inline(val* self) {
912 short int var /* : Bool */;
913 short int var1 /* : Bool */;
914 short int var3 /* : Bool */;
915 short int var4 /* : Bool */;
916 {
917 { /* Inline modelize_property$AAttrPropdef$is_lazy (self) on <self:AAttrPropdef> */
918 var3 = self->attrs[COLOR_nitc__modelize_property__AAttrPropdef___is_lazy].s; /* _is_lazy on <self:AAttrPropdef> */
919 var1 = var3;
920 RET_LABEL2:(void)0;
921 }
922 }
923 var4 = !var1;
924 var = var4;
925 goto RET_LABEL;
926 RET_LABEL:;
927 return var;
928 }
929 /* method abstract_compiler$AAttrPropdef$compile_to_c for (self: AAttrPropdef, AbstractCompilerVisitor, MMethodDef, Array[RuntimeVariable]) */
930 void nitc__abstract_compiler___AAttrPropdef___APropdef__compile_to_c(val* self, val* p0, val* p1, val* p2) {
931 val* var_v /* var v: AbstractCompilerVisitor */;
932 val* var_mpropdef /* var mpropdef: MMethodDef */;
933 val* var_arguments /* var arguments: Array[RuntimeVariable] */;
934 val* var /* : nullable MMethodDef */;
935 val* var2 /* : nullable MMethodDef */;
936 short int var3 /* : Bool */;
937 val* var_other /* var other: nullable Object */;
938 short int var5 /* : Bool */;
939 short int var7 /* : Bool */;
940 long var8 /* : Int */;
941 long var10 /* : Int */;
942 short int var11 /* : Bool */;
943 short int var13 /* : Bool */;
944 val* var14 /* : nullable Object */;
945 val* var_recv /* var recv: RuntimeVariable */;
946 short int var15 /* : Bool */;
947 short int var17 /* : Bool */;
948 val* var18 /* : nullable MType */;
949 val* var20 /* : nullable MType */;
950 val* var_ret /* var ret: nullable MType */;
951 short int var21 /* : Bool */;
952 short int var22 /* : Bool */;
953 short int var23 /* : Bool */;
954 short int var_ /* var : Bool */;
955 short int var24 /* : Bool */;
956 int cltype;
957 int idtype;
958 short int var25 /* : Bool */;
959 short int var_useiset /* var useiset: Bool */;
960 val* var26 /* : nullable MAttributeDef */;
961 val* var28 /* : nullable MAttributeDef */;
962 val* var29 /* : MProperty */;
963 val* var31 /* : MProperty */;
964 val* var_guard /* var guard: MAttribute */;
965 val* var32 /* : nullable MPropDef */;
966 val* var34 /* : nullable MPropDef */;
967 val* var35 /* : MProperty */;
968 val* var37 /* : MProperty */;
969 val* var38 /* : RuntimeVariable */;
970 val* var_set /* var set: nullable Object */;
971 val* var39 /* : RuntimeVariable */;
972 val* var40 /* : NativeArray[String] */;
973 static val* varonce;
974 static val* varonce41;
975 val* var42 /* : String */;
976 char* var43 /* : CString */;
977 val* var44 /* : String */;
978 val* var45 /* : nullable Int */;
979 val* var46 /* : nullable Int */;
980 val* var47 /* : nullable Bool */;
981 val* var48 /* : nullable Bool */;
982 static val* varonce49;
983 val* var50 /* : String */;
984 char* var51 /* : CString */;
985 val* var52 /* : String */;
986 val* var53 /* : nullable Int */;
987 val* var54 /* : nullable Int */;
988 val* var55 /* : nullable Bool */;
989 val* var56 /* : nullable Bool */;
990 val* var57 /* : String */;
991 val* var58 /* : String */;
992 val* var59 /* : nullable MPropDef */;
993 val* var61 /* : nullable MPropDef */;
994 val* var62 /* : MProperty */;
995 val* var64 /* : MProperty */;
996 val* var65 /* : RuntimeVariable */;
997 val* var_res /* var res: nullable Object */;
998 static val* varonce66;
999 val* var67 /* : String */;
1000 char* var68 /* : CString */;
1001 val* var69 /* : String */;
1002 val* var70 /* : nullable Int */;
1003 val* var71 /* : nullable Int */;
1004 val* var72 /* : nullable Bool */;
1005 val* var73 /* : nullable Bool */;
1006 val* var74 /* : RuntimeVariable */;
1007 val* var_value /* var value: RuntimeVariable */;
1008 short int var75 /* : Bool */;
1009 val* var76 /* : RuntimeVariable */;
1010 val* var_true_v /* var true_v: RuntimeVariable */;
1011 val* var77 /* : nullable Object */;
1012 static val* varonce78;
1013 val* var79 /* : String */;
1014 char* var80 /* : CString */;
1015 val* var81 /* : String */;
1016 val* var82 /* : nullable Int */;
1017 val* var83 /* : nullable Int */;
1018 val* var84 /* : nullable Bool */;
1019 val* var85 /* : nullable Bool */;
1020 val* var86 /* : nullable MPropDef */;
1021 val* var88 /* : nullable MPropDef */;
1022 val* var89 /* : MProperty */;
1023 val* var91 /* : MProperty */;
1024 val* var92 /* : nullable Object */;
1025 val* var93 /* : RuntimeVariable */;
1026 val* var94 /* : nullable StaticFrame */;
1027 val* var96 /* : nullable StaticFrame */;
1028 val* var97 /* : nullable RuntimeVariable */;
1029 val* var99 /* : nullable RuntimeVariable */;
1030 val* var100 /* : nullable MMethodDef */;
1031 val* var102 /* : nullable MMethodDef */;
1032 short int var103 /* : Bool */;
1033 short int var105 /* : Bool */;
1034 short int var107 /* : Bool */;
1035 long var108 /* : Int */;
1036 long var110 /* : Int */;
1037 short int var111 /* : Bool */;
1038 short int var113 /* : Bool */;
1039 val* var114 /* : nullable Object */;
1040 val* var_recv115 /* var recv: RuntimeVariable */;
1041 val* var116 /* : nullable Object */;
1042 val* var_arg /* var arg: RuntimeVariable */;
1043 short int var117 /* : Bool */;
1044 short int var118 /* : Bool */;
1045 short int var120 /* : Bool */;
1046 short int var_121 /* var : Bool */;
1047 short int var122 /* : Bool */;
1048 val* var123 /* : nullable MPropDef */;
1049 val* var125 /* : nullable MPropDef */;
1050 val* var126 /* : nullable MType */;
1051 val* var128 /* : nullable MType */;
1052 val* var129 /* : RuntimeVariable */;
1053 val* var_value130 /* var value: RuntimeVariable */;
1054 val* var132 /* : NativeArray[String] */;
1055 static val* varonce131;
1056 static val* varonce133;
1057 val* var134 /* : String */;
1058 char* var135 /* : CString */;
1059 val* var136 /* : String */;
1060 val* var137 /* : nullable Int */;
1061 val* var138 /* : nullable Int */;
1062 val* var139 /* : nullable Bool */;
1063 val* var140 /* : nullable Bool */;
1064 static val* varonce141;
1065 val* var142 /* : String */;
1066 char* var143 /* : CString */;
1067 val* var144 /* : String */;
1068 val* var145 /* : nullable Int */;
1069 val* var146 /* : nullable Int */;
1070 val* var147 /* : nullable Bool */;
1071 val* var148 /* : nullable Bool */;
1072 val* var149 /* : String */;
1073 val* var150 /* : String */;
1074 val* var151 /* : RuntimeVariable */;
1075 static val* varonce152;
1076 val* var153 /* : String */;
1077 char* var154 /* : CString */;
1078 val* var155 /* : String */;
1079 val* var156 /* : nullable Int */;
1080 val* var157 /* : nullable Int */;
1081 val* var158 /* : nullable Bool */;
1082 val* var159 /* : nullable Bool */;
1083 static val* varonce160;
1084 val* var161 /* : String */;
1085 char* var162 /* : CString */;
1086 val* var163 /* : String */;
1087 val* var164 /* : nullable Int */;
1088 val* var165 /* : nullable Int */;
1089 val* var166 /* : nullable Bool */;
1090 val* var167 /* : nullable Bool */;
1091 val* var168 /* : nullable MPropDef */;
1092 val* var170 /* : nullable MPropDef */;
1093 val* var171 /* : MProperty */;
1094 val* var173 /* : MProperty */;
1095 val* var174 /* : nullable Object */;
1096 short int var175 /* : Bool */;
1097 short int var177 /* : Bool */;
1098 val* var178 /* : nullable MType */;
1099 val* var180 /* : nullable MType */;
1100 val* var_ret181 /* var ret: nullable MType */;
1101 short int var182 /* : Bool */;
1102 short int var183 /* : Bool */;
1103 short int var184 /* : Bool */;
1104 short int var_185 /* var : Bool */;
1105 short int var186 /* : Bool */;
1106 int cltype187;
1107 int idtype188;
1108 short int var189 /* : Bool */;
1109 short int var_useiset190 /* var useiset: Bool */;
1110 short int var191 /* : Bool */;
1111 val* var192 /* : nullable MAttributeDef */;
1112 val* var194 /* : nullable MAttributeDef */;
1113 val* var195 /* : MProperty */;
1114 val* var197 /* : MProperty */;
1115 val* var198 /* : nullable Object */;
1116 val* var199 /* : RuntimeVariable */;
1117 var_v = p0;
1118 var_mpropdef = p1;
1119 var_arguments = p2;
1120 {
1121 { /* Inline modelize_property$AAttrPropdef$mreadpropdef (self) on <self:AAttrPropdef> */
1122 var2 = self->attrs[COLOR_nitc__modelize_property__AAttrPropdef___mreadpropdef].val; /* _mreadpropdef on <self:AAttrPropdef> */
1123 var = var2;
1124 RET_LABEL1:(void)0;
1125 }
1126 }
1127 {
1128 { /* Inline kernel$Object$== (var_mpropdef,var) on <var_mpropdef:MMethodDef> */
1129 var_other = var;
1130 {
1131 { /* Inline kernel$Object$is_same_instance (var_mpropdef,var_other) on <var_mpropdef:MMethodDef> */
1132 var7 = var_mpropdef == var_other;
1133 var5 = var7;
1134 goto RET_LABEL6;
1135 RET_LABEL6:(void)0;
1136 }
1137 }
1138 var3 = var5;
1139 goto RET_LABEL4;
1140 RET_LABEL4:(void)0;
1141 }
1142 }
1143 if (var3){
1144 {
1145 { /* Inline array$AbstractArrayRead$length (var_arguments) on <var_arguments:Array[RuntimeVariable]> */
1146 var10 = var_arguments->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_arguments:Array[RuntimeVariable]> */
1147 var8 = var10;
1148 RET_LABEL9:(void)0;
1149 }
1150 }
1151 {
1152 { /* Inline kernel$Int$== (var8,1l) on <var8:Int> */
1153 var13 = var8 == 1l;
1154 var11 = var13;
1155 goto RET_LABEL12;
1156 RET_LABEL12:(void)0;
1157 }
1158 }
1159 if (unlikely(!var11)) {
1160 if(catchStack.cursor >= 0){
1161 longjmp(catchStack.envs[catchStack.cursor], 1);
1162 }
1163 PRINT_ERROR("Runtime error: %s", "Assert failed");
1164 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3174);
1165 fatal_exit(1);
1166 }
1167 {
1168 var14 = core___core__SequenceRead___Collection__first(var_arguments);
1169 }
1170 var_recv = var14;
1171 {
1172 { /* Inline modelize_property$AAttrPropdef$is_lazy (self) on <self:AAttrPropdef> */
1173 var17 = self->attrs[COLOR_nitc__modelize_property__AAttrPropdef___is_lazy].s; /* _is_lazy on <self:AAttrPropdef> */
1174 var15 = var17;
1175 RET_LABEL16:(void)0;
1176 }
1177 }
1178 if (var15){
1179 {
1180 { /* Inline modelize_property$AAttrPropdef$mtype (self) on <self:AAttrPropdef> */
1181 var20 = self->attrs[COLOR_nitc__modelize_property__AAttrPropdef___mtype].val; /* _mtype on <self:AAttrPropdef> */
1182 var18 = var20;
1183 RET_LABEL19:(void)0;
1184 }
1185 }
1186 var_ret = var18;
1187 if (var_ret == NULL) {
1188 if(catchStack.cursor >= 0){
1189 longjmp(catchStack.envs[catchStack.cursor], 1);
1190 }
1191 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1192 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3180);
1193 fatal_exit(1);
1194 } else {
1195 var22 = ((short int(*)(val* self))(var_ret->class->vft[COLOR_nitc__abstract_compiler__MType__is_c_primitive]))(var_ret); /* is_c_primitive on <var_ret:nullable MType>*/
1196 }
1197 var23 = !var22;
1198 var_ = var23;
1199 if (var23){
1200 /* <var_ret:nullable MType> isa MNullableType */
1201 cltype = type_nitc__MNullableType.color;
1202 idtype = type_nitc__MNullableType.id;
1203 if(var_ret == NULL) {
1204 var24 = 0;
1205 } else {
1206 if(cltype >= var_ret->type->table_size) {
1207 var24 = 0;
1208 } else {
1209 var24 = var_ret->type->type_table[cltype] == idtype;
1210 }
1211 }
1212 var25 = !var24;
1213 var21 = var25;
1214 } else {
1215 var21 = var_;
1216 }
1217 var_useiset = var21;
1218 {
1219 { /* Inline modelize_property$AAttrPropdef$mlazypropdef (self) on <self:AAttrPropdef> */
1220 var28 = self->attrs[COLOR_nitc__modelize_property__AAttrPropdef___mlazypropdef].val; /* _mlazypropdef on <self:AAttrPropdef> */
1221 var26 = var28;
1222 RET_LABEL27:(void)0;
1223 }
1224 }
1225 if (var26 == NULL) {
1226 if(catchStack.cursor >= 0){
1227 longjmp(catchStack.envs[catchStack.cursor], 1);
1228 }
1229 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1230 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3181);
1231 fatal_exit(1);
1232 } else {
1233 { /* Inline model$MPropDef$mproperty (var26) on <var26:nullable MAttributeDef> */
1234 if (unlikely(var26 == NULL)) {
1235 if(catchStack.cursor >= 0){
1236 longjmp(catchStack.envs[catchStack.cursor], 1);
1237 }
1238 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1239 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2357);
1240 fatal_exit(1);
1241 }
1242 var31 = var26->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <var26:nullable MAttributeDef> */
1243 if (unlikely(var31 == NULL)) {
1244 if(catchStack.cursor >= 0){
1245 longjmp(catchStack.envs[catchStack.cursor], 1);
1246 }
1247 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
1248 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2357);
1249 fatal_exit(1);
1250 }
1251 var29 = var31;
1252 RET_LABEL30:(void)0;
1253 }
1254 }
1255 var_guard = var29;
1256 if (var_useiset){
1257 {
1258 { /* Inline modelize_property$APropdef$mpropdef (self) on <self:AAttrPropdef> */
1259 var34 = self->attrs[COLOR_nitc__modelize_property__APropdef___mpropdef].val; /* _mpropdef on <self:AAttrPropdef> */
1260 var32 = var34;
1261 RET_LABEL33:(void)0;
1262 }
1263 }
1264 if (var32 == NULL) {
1265 if(catchStack.cursor >= 0){
1266 longjmp(catchStack.envs[catchStack.cursor], 1);
1267 }
1268 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1269 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3183);
1270 fatal_exit(1);
1271 } else {
1272 { /* Inline model$MPropDef$mproperty (var32) on <var32:nullable MPropDef(nullable MAttributeDef)> */
1273 if (unlikely(var32 == NULL)) {
1274 if(catchStack.cursor >= 0){
1275 longjmp(catchStack.envs[catchStack.cursor], 1);
1276 }
1277 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1278 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2357);
1279 fatal_exit(1);
1280 }
1281 var37 = var32->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <var32:nullable MPropDef(nullable MAttributeDef)> */
1282 if (unlikely(var37 == NULL)) {
1283 if(catchStack.cursor >= 0){
1284 longjmp(catchStack.envs[catchStack.cursor], 1);
1285 }
1286 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
1287 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2357);
1288 fatal_exit(1);
1289 }
1290 var35 = var37;
1291 RET_LABEL36:(void)0;
1292 }
1293 }
1294 {
1295 var38 = nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__isset_attribute(var_v, var35, var_recv);
1296 }
1297 var_set = var38;
1298 } else {
1299 {
1300 var39 = nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__read_attribute(var_v, var_guard, var_recv);
1301 }
1302 var_set = var39;
1303 }
1304 if (unlikely(varonce==NULL)) {
1305 var40 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
1306 if (likely(varonce41!=NULL)) {
1307 var42 = varonce41;
1308 } else {
1309 var43 = "if(likely(";
1310 var45 = (val*)(10l<<2|1);
1311 var46 = (val*)(10l<<2|1);
1312 var47 = (val*)((long)(0)<<2|3);
1313 var48 = (val*)((long)(0)<<2|3);
1314 var44 = core__flat___CString___to_s_unsafe(var43, var45, var46, var47, var48);
1315 var42 = var44;
1316 varonce41 = var42;
1317 }
1318 ((struct instance_core__NativeArray*)var40)->values[0]=var42;
1319 if (likely(varonce49!=NULL)) {
1320 var50 = varonce49;
1321 } else {
1322 var51 = ")) {";
1323 var53 = (val*)(4l<<2|1);
1324 var54 = (val*)(4l<<2|1);
1325 var55 = (val*)((long)(0)<<2|3);
1326 var56 = (val*)((long)(0)<<2|3);
1327 var52 = core__flat___CString___to_s_unsafe(var51, var53, var54, var55, var56);
1328 var50 = var52;
1329 varonce49 = var50;
1330 }
1331 ((struct instance_core__NativeArray*)var40)->values[2]=var50;
1332 } else {
1333 var40 = varonce;
1334 varonce = NULL;
1335 }
1336 {
1337 var57 = ((val*(*)(val* self))(var_set->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_set); /* to_s on <var_set:nullable Object(RuntimeVariable)>*/
1338 }
1339 ((struct instance_core__NativeArray*)var40)->values[1]=var57;
1340 {
1341 var58 = ((val*(*)(val* self))(var40->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var40); /* native_to_s on <var40:NativeArray[String]>*/
1342 }
1343 varonce = var40;
1344 {
1345 nitc___nitc__AbstractCompilerVisitor___add(var_v, var58); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
1346 }
1347 {
1348 { /* Inline modelize_property$APropdef$mpropdef (self) on <self:AAttrPropdef> */
1349 var61 = self->attrs[COLOR_nitc__modelize_property__APropdef___mpropdef].val; /* _mpropdef on <self:AAttrPropdef> */
1350 var59 = var61;
1351 RET_LABEL60:(void)0;
1352 }
1353 }
1354 if (var59 == NULL) {
1355 if(catchStack.cursor >= 0){
1356 longjmp(catchStack.envs[catchStack.cursor], 1);
1357 }
1358 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1359 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3188);
1360 fatal_exit(1);
1361 } else {
1362 { /* Inline model$MPropDef$mproperty (var59) on <var59:nullable MPropDef(nullable MAttributeDef)> */
1363 if (unlikely(var59 == NULL)) {
1364 if(catchStack.cursor >= 0){
1365 longjmp(catchStack.envs[catchStack.cursor], 1);
1366 }
1367 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1368 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2357);
1369 fatal_exit(1);
1370 }
1371 var64 = var59->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <var59:nullable MPropDef(nullable MAttributeDef)> */
1372 if (unlikely(var64 == NULL)) {
1373 if(catchStack.cursor >= 0){
1374 longjmp(catchStack.envs[catchStack.cursor], 1);
1375 }
1376 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
1377 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2357);
1378 fatal_exit(1);
1379 }
1380 var62 = var64;
1381 RET_LABEL63:(void)0;
1382 }
1383 }
1384 {
1385 var65 = nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__read_attribute(var_v, var62, var_recv);
1386 }
1387 var_res = var65;
1388 if (likely(varonce66!=NULL)) {
1389 var67 = varonce66;
1390 } else {
1391 var68 = "} else {";
1392 var70 = (val*)(8l<<2|1);
1393 var71 = (val*)(8l<<2|1);
1394 var72 = (val*)((long)(0)<<2|3);
1395 var73 = (val*)((long)(0)<<2|3);
1396 var69 = core__flat___CString___to_s_unsafe(var68, var70, var71, var72, var73);
1397 var67 = var69;
1398 varonce66 = var67;
1399 }
1400 {
1401 nitc___nitc__AbstractCompilerVisitor___add(var_v, var67); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
1402 }
1403 {
1404 var74 = nitc__abstract_compiler___AAttrPropdef___evaluate_expr(self, var_v, var_recv);
1405 }
1406 var_value = var74;
1407 {
1408 nitc___nitc__AbstractCompilerVisitor___assign(var_v, var_res, var_value); /* Direct call abstract_compiler$AbstractCompilerVisitor$assign on <var_v:AbstractCompilerVisitor>*/
1409 }
1410 var75 = !var_useiset;
1411 if (var75){
1412 {
1413 var76 = nitc___nitc__AbstractCompilerVisitor___bool_instance(var_v, 1);
1414 }
1415 var_true_v = var76;
1416 {
1417 var77 = core___core__SequenceRead___Collection__first(var_arguments);
1418 }
1419 {
1420 nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__write_attribute(var_v, var_guard, var77, var_true_v); /* Direct call separate_compiler$SeparateCompilerVisitor$write_attribute on <var_v:AbstractCompilerVisitor>*/
1421 }
1422 } else {
1423 }
1424 if (likely(varonce78!=NULL)) {
1425 var79 = varonce78;
1426 } else {
1427 var80 = "}";
1428 var82 = (val*)(1l<<2|1);
1429 var83 = (val*)(1l<<2|1);
1430 var84 = (val*)((long)(0)<<2|3);
1431 var85 = (val*)((long)(0)<<2|3);
1432 var81 = core__flat___CString___to_s_unsafe(var80, var82, var83, var84, var85);
1433 var79 = var81;
1434 varonce78 = var79;
1435 }
1436 {
1437 nitc___nitc__AbstractCompilerVisitor___add(var_v, var79); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
1438 }
1439 } else {
1440 {
1441 { /* Inline modelize_property$APropdef$mpropdef (self) on <self:AAttrPropdef> */
1442 var88 = self->attrs[COLOR_nitc__modelize_property__APropdef___mpropdef].val; /* _mpropdef on <self:AAttrPropdef> */
1443 var86 = var88;
1444 RET_LABEL87:(void)0;
1445 }
1446 }
1447 if (var86 == NULL) {
1448 if(catchStack.cursor >= 0){
1449 longjmp(catchStack.envs[catchStack.cursor], 1);
1450 }
1451 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1452 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3200);
1453 fatal_exit(1);
1454 } else {
1455 { /* Inline model$MPropDef$mproperty (var86) on <var86:nullable MPropDef(nullable MAttributeDef)> */
1456 if (unlikely(var86 == NULL)) {
1457 if(catchStack.cursor >= 0){
1458 longjmp(catchStack.envs[catchStack.cursor], 1);
1459 }
1460 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1461 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2357);
1462 fatal_exit(1);
1463 }
1464 var91 = var86->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <var86:nullable MPropDef(nullable MAttributeDef)> */
1465 if (unlikely(var91 == NULL)) {
1466 if(catchStack.cursor >= 0){
1467 longjmp(catchStack.envs[catchStack.cursor], 1);
1468 }
1469 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
1470 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2357);
1471 fatal_exit(1);
1472 }
1473 var89 = var91;
1474 RET_LABEL90:(void)0;
1475 }
1476 }
1477 {
1478 var92 = core___core__SequenceRead___Collection__first(var_arguments);
1479 }
1480 {
1481 var93 = nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__read_attribute(var_v, var89, var92);
1482 }
1483 var_res = var93;
1484 }
1485 {
1486 { /* Inline abstract_compiler$AbstractCompilerVisitor$frame (var_v) on <var_v:AbstractCompilerVisitor> */
1487 var96 = var_v->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on <var_v:AbstractCompilerVisitor> */
1488 var94 = var96;
1489 RET_LABEL95:(void)0;
1490 }
1491 }
1492 if (var94 == NULL) {
1493 if(catchStack.cursor >= 0){
1494 longjmp(catchStack.envs[catchStack.cursor], 1);
1495 }
1496 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1497 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3202);
1498 fatal_exit(1);
1499 } else {
1500 { /* Inline abstract_compiler$StaticFrame$returnvar (var94) on <var94:nullable StaticFrame> */
1501 if (unlikely(var94 == NULL)) {
1502 if(catchStack.cursor >= 0){
1503 longjmp(catchStack.envs[catchStack.cursor], 1);
1504 }
1505 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1506 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 2037);
1507 fatal_exit(1);
1508 }
1509 var99 = var94->attrs[COLOR_nitc__abstract_compiler__StaticFrame___returnvar].val; /* _returnvar on <var94:nullable StaticFrame> */
1510 var97 = var99;
1511 RET_LABEL98:(void)0;
1512 }
1513 }
1514 if (unlikely(var97 == NULL)) {
1515 if(catchStack.cursor >= 0){
1516 longjmp(catchStack.envs[catchStack.cursor], 1);
1517 }
1518 PRINT_ERROR("Runtime error: %s", "Cast failed");
1519 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3202);
1520 fatal_exit(1);
1521 }
1522 {
1523 nitc___nitc__AbstractCompilerVisitor___assign(var_v, var97, var_res); /* Direct call abstract_compiler$AbstractCompilerVisitor$assign on <var_v:AbstractCompilerVisitor>*/
1524 }
1525 } else {
1526 {
1527 { /* Inline modelize_property$AAttrPropdef$mwritepropdef (self) on <self:AAttrPropdef> */
1528 var102 = self->attrs[COLOR_nitc__modelize_property__AAttrPropdef___mwritepropdef].val; /* _mwritepropdef on <self:AAttrPropdef> */
1529 var100 = var102;
1530 RET_LABEL101:(void)0;
1531 }
1532 }
1533 {
1534 { /* Inline kernel$Object$== (var_mpropdef,var100) on <var_mpropdef:MMethodDef> */
1535 var_other = var100;
1536 {
1537 { /* Inline kernel$Object$is_same_instance (var_mpropdef,var_other) on <var_mpropdef:MMethodDef> */
1538 var107 = var_mpropdef == var_other;
1539 var105 = var107;
1540 goto RET_LABEL106;
1541 RET_LABEL106:(void)0;
1542 }
1543 }
1544 var103 = var105;
1545 goto RET_LABEL104;
1546 RET_LABEL104:(void)0;
1547 }
1548 }
1549 if (var103){
1550 {
1551 { /* Inline array$AbstractArrayRead$length (var_arguments) on <var_arguments:Array[RuntimeVariable]> */
1552 var110 = var_arguments->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_arguments:Array[RuntimeVariable]> */
1553 var108 = var110;
1554 RET_LABEL109:(void)0;
1555 }
1556 }
1557 {
1558 { /* Inline kernel$Int$== (var108,2l) on <var108:Int> */
1559 var113 = var108 == 2l;
1560 var111 = var113;
1561 goto RET_LABEL112;
1562 RET_LABEL112:(void)0;
1563 }
1564 }
1565 if (unlikely(!var111)) {
1566 if(catchStack.cursor >= 0){
1567 longjmp(catchStack.envs[catchStack.cursor], 1);
1568 }
1569 PRINT_ERROR("Runtime error: %s", "Assert failed");
1570 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3204);
1571 fatal_exit(1);
1572 }
1573 {
1574 var114 = core___core__SequenceRead___Collection__first(var_arguments);
1575 }
1576 var_recv115 = var114;
1577 {
1578 var116 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
1579 }
1580 var_arg = var116;
1581 {
1582 { /* Inline modelize_property$AAttrPropdef$is_optional (self) on <self:AAttrPropdef> */
1583 var120 = self->attrs[COLOR_nitc__modelize_property__AAttrPropdef___is_optional].s; /* _is_optional on <self:AAttrPropdef> */
1584 var118 = var120;
1585 RET_LABEL119:(void)0;
1586 }
1587 }
1588 var_121 = var118;
1589 if (var118){
1590 {
1591 var122 = nitc___nitc__AbstractCompilerVisitor___maybenull(var_v, var_arg);
1592 }
1593 var117 = var122;
1594 } else {
1595 var117 = var_121;
1596 }
1597 if (var117){
1598 {
1599 { /* Inline modelize_property$APropdef$mpropdef (self) on <self:AAttrPropdef> */
1600 var125 = self->attrs[COLOR_nitc__modelize_property__APropdef___mpropdef].val; /* _mpropdef on <self:AAttrPropdef> */
1601 var123 = var125;
1602 RET_LABEL124:(void)0;
1603 }
1604 }
1605 if (var123 == NULL) {
1606 if(catchStack.cursor >= 0){
1607 longjmp(catchStack.envs[catchStack.cursor], 1);
1608 }
1609 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1610 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3208);
1611 fatal_exit(1);
1612 } else {
1613 { /* Inline model$MAttributeDef$static_mtype (var123) on <var123:nullable MPropDef(nullable MAttributeDef)> */
1614 if (unlikely(var123 == NULL)) {
1615 if(catchStack.cursor >= 0){
1616 longjmp(catchStack.envs[catchStack.cursor], 1);
1617 }
1618 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1619 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2526);
1620 fatal_exit(1);
1621 }
1622 var128 = var123->attrs[COLOR_nitc__model__MAttributeDef___static_mtype].val; /* _static_mtype on <var123:nullable MPropDef(nullable MAttributeDef)> */
1623 var126 = var128;
1624 RET_LABEL127:(void)0;
1625 }
1626 }
1627 if (unlikely(var126 == NULL)) {
1628 if(catchStack.cursor >= 0){
1629 longjmp(catchStack.envs[catchStack.cursor], 1);
1630 }
1631 PRINT_ERROR("Runtime error: %s", "Cast failed");
1632 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3208);
1633 fatal_exit(1);
1634 }
1635 {
1636 var129 = nitc___nitc__AbstractCompilerVisitor___new_var(var_v, var126);
1637 }
1638 var_value130 = var129;
1639 if (unlikely(varonce131==NULL)) {
1640 var132 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
1641 if (likely(varonce133!=NULL)) {
1642 var134 = varonce133;
1643 } else {
1644 var135 = "if (";
1645 var137 = (val*)(4l<<2|1);
1646 var138 = (val*)(4l<<2|1);
1647 var139 = (val*)((long)(0)<<2|3);
1648 var140 = (val*)((long)(0)<<2|3);
1649 var136 = core__flat___CString___to_s_unsafe(var135, var137, var138, var139, var140);
1650 var134 = var136;
1651 varonce133 = var134;
1652 }
1653 ((struct instance_core__NativeArray*)var132)->values[0]=var134;
1654 if (likely(varonce141!=NULL)) {
1655 var142 = varonce141;
1656 } else {
1657 var143 = " == NULL) {";
1658 var145 = (val*)(11l<<2|1);
1659 var146 = (val*)(11l<<2|1);
1660 var147 = (val*)((long)(0)<<2|3);
1661 var148 = (val*)((long)(0)<<2|3);
1662 var144 = core__flat___CString___to_s_unsafe(var143, var145, var146, var147, var148);
1663 var142 = var144;
1664 varonce141 = var142;
1665 }
1666 ((struct instance_core__NativeArray*)var132)->values[2]=var142;
1667 } else {
1668 var132 = varonce131;
1669 varonce131 = NULL;
1670 }
1671 {
1672 var149 = ((val*(*)(val* self))(var_arg->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_arg); /* to_s on <var_arg:RuntimeVariable>*/
1673 }
1674 ((struct instance_core__NativeArray*)var132)->values[1]=var149;
1675 {
1676 var150 = ((val*(*)(val* self))(var132->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var132); /* native_to_s on <var132:NativeArray[String]>*/
1677 }
1678 varonce131 = var132;
1679 {
1680 nitc___nitc__AbstractCompilerVisitor___add(var_v, var150); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
1681 }
1682 {
1683 var151 = nitc__abstract_compiler___AAttrPropdef___evaluate_expr(self, var_v, var_recv115);
1684 }
1685 {
1686 nitc___nitc__AbstractCompilerVisitor___assign(var_v, var_value130, var151); /* Direct call abstract_compiler$AbstractCompilerVisitor$assign on <var_v:AbstractCompilerVisitor>*/
1687 }
1688 if (likely(varonce152!=NULL)) {
1689 var153 = varonce152;
1690 } else {
1691 var154 = "} else {";
1692 var156 = (val*)(8l<<2|1);
1693 var157 = (val*)(8l<<2|1);
1694 var158 = (val*)((long)(0)<<2|3);
1695 var159 = (val*)((long)(0)<<2|3);
1696 var155 = core__flat___CString___to_s_unsafe(var154, var156, var157, var158, var159);
1697 var153 = var155;
1698 varonce152 = var153;
1699 }
1700 {
1701 nitc___nitc__AbstractCompilerVisitor___add(var_v, var153); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
1702 }
1703 {
1704 nitc___nitc__AbstractCompilerVisitor___assign(var_v, var_value130, var_arg); /* Direct call abstract_compiler$AbstractCompilerVisitor$assign on <var_v:AbstractCompilerVisitor>*/
1705 }
1706 if (likely(varonce160!=NULL)) {
1707 var161 = varonce160;
1708 } else {
1709 var162 = "}";
1710 var164 = (val*)(1l<<2|1);
1711 var165 = (val*)(1l<<2|1);
1712 var166 = (val*)((long)(0)<<2|3);
1713 var167 = (val*)((long)(0)<<2|3);
1714 var163 = core__flat___CString___to_s_unsafe(var162, var164, var165, var166, var167);
1715 var161 = var163;
1716 varonce160 = var161;
1717 }
1718 {
1719 nitc___nitc__AbstractCompilerVisitor___add(var_v, var161); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
1720 }
1721 var_arg = var_value130;
1722 } else {
1723 }
1724 {
1725 { /* Inline modelize_property$APropdef$mpropdef (self) on <self:AAttrPropdef> */
1726 var170 = self->attrs[COLOR_nitc__modelize_property__APropdef___mpropdef].val; /* _mpropdef on <self:AAttrPropdef> */
1727 var168 = var170;
1728 RET_LABEL169:(void)0;
1729 }
1730 }
1731 if (var168 == NULL) {
1732 if(catchStack.cursor >= 0){
1733 longjmp(catchStack.envs[catchStack.cursor], 1);
1734 }
1735 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1736 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3216);
1737 fatal_exit(1);
1738 } else {
1739 { /* Inline model$MPropDef$mproperty (var168) on <var168:nullable MPropDef(nullable MAttributeDef)> */
1740 if (unlikely(var168 == NULL)) {
1741 if(catchStack.cursor >= 0){
1742 longjmp(catchStack.envs[catchStack.cursor], 1);
1743 }
1744 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1745 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2357);
1746 fatal_exit(1);
1747 }
1748 var173 = var168->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <var168:nullable MPropDef(nullable MAttributeDef)> */
1749 if (unlikely(var173 == NULL)) {
1750 if(catchStack.cursor >= 0){
1751 longjmp(catchStack.envs[catchStack.cursor], 1);
1752 }
1753 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
1754 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2357);
1755 fatal_exit(1);
1756 }
1757 var171 = var173;
1758 RET_LABEL172:(void)0;
1759 }
1760 }
1761 {
1762 var174 = core___core__SequenceRead___Collection__first(var_arguments);
1763 }
1764 {
1765 nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__write_attribute(var_v, var171, var174, var_arg); /* Direct call separate_compiler$SeparateCompilerVisitor$write_attribute on <var_v:AbstractCompilerVisitor>*/
1766 }
1767 {
1768 { /* Inline modelize_property$AAttrPropdef$is_lazy (self) on <self:AAttrPropdef> */
1769 var177 = self->attrs[COLOR_nitc__modelize_property__AAttrPropdef___is_lazy].s; /* _is_lazy on <self:AAttrPropdef> */
1770 var175 = var177;
1771 RET_LABEL176:(void)0;
1772 }
1773 }
1774 if (var175){
1775 {
1776 { /* Inline modelize_property$AAttrPropdef$mtype (self) on <self:AAttrPropdef> */
1777 var180 = self->attrs[COLOR_nitc__modelize_property__AAttrPropdef___mtype].val; /* _mtype on <self:AAttrPropdef> */
1778 var178 = var180;
1779 RET_LABEL179:(void)0;
1780 }
1781 }
1782 var_ret181 = var178;
1783 if (var_ret181 == NULL) {
1784 if(catchStack.cursor >= 0){
1785 longjmp(catchStack.envs[catchStack.cursor], 1);
1786 }
1787 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1788 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3219);
1789 fatal_exit(1);
1790 } else {
1791 var183 = ((short int(*)(val* self))(var_ret181->class->vft[COLOR_nitc__abstract_compiler__MType__is_c_primitive]))(var_ret181); /* is_c_primitive on <var_ret181:nullable MType>*/
1792 }
1793 var184 = !var183;
1794 var_185 = var184;
1795 if (var184){
1796 /* <var_ret181:nullable MType> isa MNullableType */
1797 cltype187 = type_nitc__MNullableType.color;
1798 idtype188 = type_nitc__MNullableType.id;
1799 if(var_ret181 == NULL) {
1800 var186 = 0;
1801 } else {
1802 if(cltype187 >= var_ret181->type->table_size) {
1803 var186 = 0;
1804 } else {
1805 var186 = var_ret181->type->type_table[cltype187] == idtype188;
1806 }
1807 }
1808 var189 = !var186;
1809 var182 = var189;
1810 } else {
1811 var182 = var_185;
1812 }
1813 var_useiset190 = var182;
1814 var191 = !var_useiset190;
1815 if (var191){
1816 {
1817 { /* Inline modelize_property$AAttrPropdef$mlazypropdef (self) on <self:AAttrPropdef> */
1818 var194 = self->attrs[COLOR_nitc__modelize_property__AAttrPropdef___mlazypropdef].val; /* _mlazypropdef on <self:AAttrPropdef> */
1819 var192 = var194;
1820 RET_LABEL193:(void)0;
1821 }
1822 }
1823 if (var192 == NULL) {
1824 if(catchStack.cursor >= 0){
1825 longjmp(catchStack.envs[catchStack.cursor], 1);
1826 }
1827 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1828 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3221);
1829 fatal_exit(1);
1830 } else {
1831 { /* Inline model$MPropDef$mproperty (var192) on <var192:nullable MAttributeDef> */
1832 if (unlikely(var192 == NULL)) {
1833 if(catchStack.cursor >= 0){
1834 longjmp(catchStack.envs[catchStack.cursor], 1);
1835 }
1836 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1837 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2357);
1838 fatal_exit(1);
1839 }
1840 var197 = var192->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <var192:nullable MAttributeDef> */
1841 if (unlikely(var197 == NULL)) {
1842 if(catchStack.cursor >= 0){
1843 longjmp(catchStack.envs[catchStack.cursor], 1);
1844 }
1845 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
1846 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2357);
1847 fatal_exit(1);
1848 }
1849 var195 = var197;
1850 RET_LABEL196:(void)0;
1851 }
1852 }
1853 {
1854 var198 = core___core__SequenceRead___Collection__first(var_arguments);
1855 }
1856 {
1857 var199 = nitc___nitc__AbstractCompilerVisitor___bool_instance(var_v, 1);
1858 }
1859 {
1860 nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__write_attribute(var_v, var195, var198, var199); /* Direct call separate_compiler$SeparateCompilerVisitor$write_attribute on <var_v:AbstractCompilerVisitor>*/
1861 }
1862 } else {
1863 }
1864 } else {
1865 }
1866 } else {
1867 if(catchStack.cursor >= 0){
1868 longjmp(catchStack.envs[catchStack.cursor], 1);
1869 }
1870 PRINT_ERROR("Runtime error: %s", "Aborted");
1871 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3225);
1872 fatal_exit(1);
1873 }
1874 }
1875 RET_LABEL:;
1876 }
1877 /* method abstract_compiler$AAttrPropdef$init_expr for (self: AAttrPropdef, AbstractCompilerVisitor, RuntimeVariable) */
1878 void nitc__abstract_compiler___AAttrPropdef___init_expr(val* self, val* p0, val* p1) {
1879 val* var_v /* var v: AbstractCompilerVisitor */;
1880 val* var_recv /* var recv: RuntimeVariable */;
1881 short int var /* : Bool */;
1882 short int var1 /* : Bool */;
1883 short int var2 /* : Bool */;
1884 short int var3 /* : Bool */;
1885 short int var5 /* : Bool */;
1886 short int var_ /* var : Bool */;
1887 short int var6 /* : Bool */;
1888 short int var8 /* : Bool */;
1889 short int var9 /* : Bool */;
1890 short int var_10 /* var : Bool */;
1891 short int var11 /* : Bool */;
1892 short int var13 /* : Bool */;
1893 short int var14 /* : Bool */;
1894 short int var_15 /* var : Bool */;
1895 val* var16 /* : nullable AExpr */;
1896 val* var18 /* : nullable AExpr */;
1897 short int var19 /* : Bool */;
1898 int cltype;
1899 int idtype;
1900 short int var20 /* : Bool */;
1901 val* var21 /* : RuntimeVariable */;
1902 var_v = p0;
1903 var_recv = p1;
1904 {
1905 { /* Inline modelize_property$AAttrPropdef$has_value (self) on <self:AAttrPropdef> */
1906 var5 = self->attrs[COLOR_nitc__modelize_property__AAttrPropdef___has_value].s; /* _has_value on <self:AAttrPropdef> */
1907 var3 = var5;
1908 RET_LABEL4:(void)0;
1909 }
1910 }
1911 var_ = var3;
1912 if (var3){
1913 {
1914 { /* Inline modelize_property$AAttrPropdef$is_lazy (self) on <self:AAttrPropdef> */
1915 var8 = self->attrs[COLOR_nitc__modelize_property__AAttrPropdef___is_lazy].s; /* _is_lazy on <self:AAttrPropdef> */
1916 var6 = var8;
1917 RET_LABEL7:(void)0;
1918 }
1919 }
1920 var9 = !var6;
1921 var2 = var9;
1922 } else {
1923 var2 = var_;
1924 }
1925 var_10 = var2;
1926 if (var2){
1927 {
1928 { /* Inline modelize_property$AAttrPropdef$is_optional (self) on <self:AAttrPropdef> */
1929 var13 = self->attrs[COLOR_nitc__modelize_property__AAttrPropdef___is_optional].s; /* _is_optional on <self:AAttrPropdef> */
1930 var11 = var13;
1931 RET_LABEL12:(void)0;
1932 }
1933 }
1934 var14 = !var11;
1935 var1 = var14;
1936 } else {
1937 var1 = var_10;
1938 }
1939 var_15 = var1;
1940 if (var1){
1941 {
1942 { /* Inline parser_nodes$AAttrPropdef$n_expr (self) on <self:AAttrPropdef> */
1943 var18 = self->attrs[COLOR_nitc__parser_nodes__AAttrPropdef___n_expr].val; /* _n_expr on <self:AAttrPropdef> */
1944 var16 = var18;
1945 RET_LABEL17:(void)0;
1946 }
1947 }
1948 /* <var16:nullable AExpr> isa ANullExpr */
1949 cltype = type_nitc__ANullExpr.color;
1950 idtype = type_nitc__ANullExpr.id;
1951 if(var16 == NULL) {
1952 var19 = 0;
1953 } else {
1954 if(cltype >= var16->type->table_size) {
1955 var19 = 0;
1956 } else {
1957 var19 = var16->type->type_table[cltype] == idtype;
1958 }
1959 }
1960 var20 = !var19;
1961 var = var20;
1962 } else {
1963 var = var_15;
1964 }
1965 if (var){
1966 {
1967 var21 = nitc__abstract_compiler___AAttrPropdef___evaluate_expr(self, var_v, var_recv);
1968 }
1969 } else {
1970 }
1971 RET_LABEL:;
1972 }
1973 /* method abstract_compiler$AAttrPropdef$evaluate_expr for (self: AAttrPropdef, AbstractCompilerVisitor, RuntimeVariable): RuntimeVariable */
1974 val* nitc__abstract_compiler___AAttrPropdef___evaluate_expr(val* self, val* p0, val* p1) {
1975 val* var /* : RuntimeVariable */;
1976 val* var_v /* var v: AbstractCompilerVisitor */;
1977 val* var_recv /* var recv: RuntimeVariable */;
1978 val* var1 /* : nullable ANode */;
1979 val* var3 /* : nullable ANode */;
1980 val* var_oldnode /* var oldnode: nullable ANode */;
1981 val* var5 /* : nullable StaticFrame */;
1982 val* var7 /* : nullable StaticFrame */;
1983 val* var_old_frame /* var old_frame: nullable StaticFrame */;
1984 val* var8 /* : StaticFrame */;
1985 val* var9 /* : nullable MMethodDef */;
1986 val* var11 /* : nullable MMethodDef */;
1987 val* var12 /* : MType */;
1988 val* var14 /* : MType */;
1989 val* var15 /* : MType */;
1990 short int var16 /* : Bool */;
1991 int cltype;
1992 int idtype;
1993 const char* var_class_name;
1994 val* var17 /* : Array[RuntimeVariable] */;
1995 val* var_ /* var : Array[RuntimeVariable] */;
1996 val* var_frame /* var frame: StaticFrame */;
1997 val* var19 /* : nullable MType */;
1998 val* var21 /* : nullable MType */;
1999 val* var_mtype /* var mtype: nullable MType */;
2000 short int var22 /* : Bool */;
2001 short int var23 /* : Bool */;
2002 val* var_other /* var other: nullable Object */;
2003 short int var25 /* : Bool */;
2004 short int var26 /* : Bool */;
2005 val* var27 /* : nullable AExpr */;
2006 val* var29 /* : nullable AExpr */;
2007 val* var_nexpr /* var nexpr: nullable AExpr */;
2008 val* var30 /* : nullable AExpr */;
2009 val* var32 /* : nullable AExpr */;
2010 val* var_nblock /* var nblock: nullable AExpr */;
2011 short int var33 /* : Bool */;
2012 short int var34 /* : Bool */;
2013 short int var36 /* : Bool */;
2014 short int var37 /* : Bool */;
2015 val* var38 /* : RuntimeVariable */;
2016 val* var_value /* var value: nullable Object */;
2017 short int var39 /* : Bool */;
2018 short int var40 /* : Bool */;
2019 short int var42 /* : Bool */;
2020 short int var43 /* : Bool */;
2021 val* var44 /* : RuntimeVariable */;
2022 static val* varonce;
2023 val* var46 /* : String */;
2024 char* var47 /* : CString */;
2025 val* var48 /* : String */;
2026 val* var49 /* : nullable Int */;
2027 val* var50 /* : nullable Int */;
2028 val* var51 /* : nullable Bool */;
2029 val* var52 /* : nullable Bool */;
2030 val* var53 /* : String */;
2031 static val* varonce55;
2032 val* var56 /* : String */;
2033 char* var57 /* : CString */;
2034 val* var58 /* : String */;
2035 val* var59 /* : nullable Int */;
2036 val* var60 /* : nullable Int */;
2037 val* var61 /* : nullable Bool */;
2038 val* var62 /* : nullable Bool */;
2039 val* var64 /* : NativeArray[String] */;
2040 static val* varonce63;
2041 static val* varonce65;
2042 val* var66 /* : String */;
2043 char* var67 /* : CString */;
2044 val* var68 /* : String */;
2045 val* var69 /* : nullable Int */;
2046 val* var70 /* : nullable Int */;
2047 val* var71 /* : nullable Bool */;
2048 val* var72 /* : nullable Bool */;
2049 val* var73 /* : nullable String */;
2050 val* var75 /* : nullable String */;
2051 val* var76 /* : String */;
2052 static val* varonce77;
2053 val* var78 /* : String */;
2054 char* var79 /* : CString */;
2055 val* var80 /* : String */;
2056 val* var81 /* : nullable Int */;
2057 val* var82 /* : nullable Int */;
2058 val* var83 /* : nullable Bool */;
2059 val* var84 /* : nullable Bool */;
2060 val* var85 /* : nullable MPropDef */;
2061 val* var87 /* : nullable MPropDef */;
2062 val* var88 /* : MProperty */;
2063 val* var90 /* : MProperty */;
2064 var_v = p0;
2065 var_recv = p1;
2066 {
2067 { /* Inline abstract_compiler$AbstractCompilerVisitor$current_node (var_v) on <var_v:AbstractCompilerVisitor> */
2068 var3 = var_v->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___current_node].val; /* _current_node on <var_v:AbstractCompilerVisitor> */
2069 var1 = var3;
2070 RET_LABEL2:(void)0;
2071 }
2072 }
2073 var_oldnode = var1;
2074 {
2075 { /* Inline abstract_compiler$AbstractCompilerVisitor$current_node= (var_v,self) on <var_v:AbstractCompilerVisitor> */
2076 var_v->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___current_node].val = self; /* _current_node on <var_v:AbstractCompilerVisitor> */
2077 RET_LABEL4:(void)0;
2078 }
2079 }
2080 {
2081 { /* Inline abstract_compiler$AbstractCompilerVisitor$frame (var_v) on <var_v:AbstractCompilerVisitor> */
2082 var7 = var_v->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on <var_v:AbstractCompilerVisitor> */
2083 var5 = var7;
2084 RET_LABEL6:(void)0;
2085 }
2086 }
2087 var_old_frame = var5;
2088 var8 = NEW_nitc__StaticFrame(&type_nitc__StaticFrame);
2089 {
2090 { /* Inline modelize_property$AAttrPropdef$mreadpropdef (self) on <self:AAttrPropdef> */
2091 var11 = self->attrs[COLOR_nitc__modelize_property__AAttrPropdef___mreadpropdef].val; /* _mreadpropdef on <self:AAttrPropdef> */
2092 var9 = var11;
2093 RET_LABEL10:(void)0;
2094 }
2095 }
2096 if (unlikely(var9 == NULL)) {
2097 if(catchStack.cursor >= 0){
2098 longjmp(catchStack.envs[catchStack.cursor], 1);
2099 }
2100 PRINT_ERROR("Runtime error: %s", "Cast failed");
2101 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3240);
2102 fatal_exit(1);
2103 }
2104 {
2105 { /* Inline abstract_compiler$RuntimeVariable$mcasttype (var_recv) on <var_recv:RuntimeVariable> */
2106 var14 = var_recv->attrs[COLOR_nitc__abstract_compiler__RuntimeVariable___mcasttype].val; /* _mcasttype on <var_recv:RuntimeVariable> */
2107 if (unlikely(var14 == NULL)) {
2108 if(catchStack.cursor >= 0){
2109 longjmp(catchStack.envs[catchStack.cursor], 1);
2110 }
2111 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mcasttype");
2112 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1986);
2113 fatal_exit(1);
2114 }
2115 var12 = var14;
2116 RET_LABEL13:(void)0;
2117 }
2118 }
2119 {
2120 var15 = ((val*(*)(val* self))(var12->class->vft[COLOR_nitc__model__MType__undecorate]))(var12); /* undecorate on <var12:MType>*/
2121 }
2122 /* <var15:MType> isa MClassType */
2123 cltype = type_nitc__MClassType.color;
2124 idtype = type_nitc__MClassType.id;
2125 if(cltype >= var15->type->table_size) {
2126 var16 = 0;
2127 } else {
2128 var16 = var15->type->type_table[cltype] == idtype;
2129 }
2130 if (unlikely(!var16)) {
2131 var_class_name = var15 == NULL ? "null" : var15->type->name;
2132 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name);
2133 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3240);
2134 fatal_exit(1);
2135 }
2136 var17 = NEW_core__Array(&type_core__Array__nitc__RuntimeVariable);
2137 {
2138 core___core__Array___with_capacity(var17, 1l); /* Direct call array$Array$with_capacity on <var17:Array[RuntimeVariable]>*/
2139 }
2140 var_ = var17;
2141 {
2142 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var_recv); /* Direct call array$AbstractArray$push on <var_:Array[RuntimeVariable]>*/
2143 }
2144 {
2145 ((void(*)(val* self, val* p0))(var8->class->vft[COLOR_nitc__abstract_compiler__StaticFrame__visitor_61d]))(var8, var_v); /* visitor= on <var8:StaticFrame>*/
2146 }
2147 {
2148 ((void(*)(val* self, val* p0))(var8->class->vft[COLOR_nitc__abstract_compiler__StaticFrame__mpropdef_61d]))(var8, var9); /* mpropdef= on <var8:StaticFrame>*/
2149 }
2150 {
2151 ((void(*)(val* self, val* p0))(var8->class->vft[COLOR_nitc__abstract_compiler__StaticFrame__receiver_61d]))(var8, var15); /* receiver= on <var8:StaticFrame>*/
2152 }
2153 {
2154 ((void(*)(val* self, val* p0))(var8->class->vft[COLOR_nitc__abstract_compiler__StaticFrame__arguments_61d]))(var8, var_); /* arguments= on <var8:StaticFrame>*/
2155 }
2156 {
2157 ((void(*)(val* self))(var8->class->vft[COLOR_core__kernel__Object__init]))(var8); /* init on <var8:StaticFrame>*/
2158 }
2159 var_frame = var8;
2160 {
2161 { /* Inline abstract_compiler$AbstractCompilerVisitor$frame= (var_v,var_frame) on <var_v:AbstractCompilerVisitor> */
2162 var_v->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___frame].val = var_frame; /* _frame on <var_v:AbstractCompilerVisitor> */
2163 RET_LABEL18:(void)0;
2164 }
2165 }
2166 {
2167 { /* Inline modelize_property$AAttrPropdef$mtype (self) on <self:AAttrPropdef> */
2168 var21 = self->attrs[COLOR_nitc__modelize_property__AAttrPropdef___mtype].val; /* _mtype on <self:AAttrPropdef> */
2169 var19 = var21;
2170 RET_LABEL20:(void)0;
2171 }
2172 }
2173 var_mtype = var19;
2174 if (var_mtype == NULL) {
2175 var22 = 0; /* is null */
2176 } else {
2177 var22 = 1; /* arg is null and recv is not */
2178 }
2179 if (0) {
2180 { /* Inline kernel$Object$!= (var_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
2181 var_other = ((val*)NULL);
2182 {
2183 var25 = ((short int(*)(val* self, val* p0))(var_mtype->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_mtype, var_other); /* == on <var_mtype:nullable MType(MType)>*/
2184 }
2185 var26 = !var25;
2186 var23 = var26;
2187 goto RET_LABEL24;
2188 RET_LABEL24:(void)0;
2189 }
2190 var22 = var23;
2191 }
2192 if (unlikely(!var22)) {
2193 if(catchStack.cursor >= 0){
2194 longjmp(catchStack.envs[catchStack.cursor], 1);
2195 }
2196 PRINT_ERROR("Runtime error: %s", "Assert failed");
2197 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3245);
2198 fatal_exit(1);
2199 }
2200 {
2201 { /* Inline parser_nodes$AAttrPropdef$n_expr (self) on <self:AAttrPropdef> */
2202 var29 = self->attrs[COLOR_nitc__parser_nodes__AAttrPropdef___n_expr].val; /* _n_expr on <self:AAttrPropdef> */
2203 var27 = var29;
2204 RET_LABEL28:(void)0;
2205 }
2206 }
2207 var_nexpr = var27;
2208 {
2209 { /* Inline parser_nodes$AAttrPropdef$n_block (self) on <self:AAttrPropdef> */
2210 var32 = self->attrs[COLOR_nitc__parser_nodes__AAttrPropdef___n_block].val; /* _n_block on <self:AAttrPropdef> */
2211 var30 = var32;
2212 RET_LABEL31:(void)0;
2213 }
2214 }
2215 var_nblock = var30;
2216 if (var_nexpr == NULL) {
2217 var33 = 0; /* is null */
2218 } else {
2219 var33 = 1; /* arg is null and recv is not */
2220 }
2221 if (0) {
2222 { /* Inline kernel$Object$!= (var_nexpr,((val*)NULL)) on <var_nexpr:nullable AExpr> */
2223 var_other = ((val*)NULL);
2224 {
2225 var36 = ((short int(*)(val* self, val* p0))(var_nexpr->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_nexpr, var_other); /* == on <var_nexpr:nullable AExpr(AExpr)>*/
2226 }
2227 var37 = !var36;
2228 var34 = var37;
2229 goto RET_LABEL35;
2230 RET_LABEL35:(void)0;
2231 }
2232 var33 = var34;
2233 }
2234 if (var33){
2235 {
2236 var38 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var_nexpr, var_mtype);
2237 }
2238 var_value = var38;
2239 } else {
2240 if (var_nblock == NULL) {
2241 var39 = 0; /* is null */
2242 } else {
2243 var39 = 1; /* arg is null and recv is not */
2244 }
2245 if (0) {
2246 { /* Inline kernel$Object$!= (var_nblock,((val*)NULL)) on <var_nblock:nullable AExpr> */
2247 var_other = ((val*)NULL);
2248 {
2249 var42 = ((short int(*)(val* self, val* p0))(var_nblock->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_nblock, var_other); /* == on <var_nblock:nullable AExpr(AExpr)>*/
2250 }
2251 var43 = !var42;
2252 var40 = var43;
2253 goto RET_LABEL41;
2254 RET_LABEL41:(void)0;
2255 }
2256 var39 = var40;
2257 }
2258 if (var39){
2259 {
2260 var44 = nitc___nitc__AbstractCompilerVisitor___new_var(var_v, var_mtype);
2261 }
2262 var_value = var44;
2263 {
2264 { /* Inline abstract_compiler$StaticFrame$returnvar= (var_frame,var_value) on <var_frame:StaticFrame> */
2265 var_frame->attrs[COLOR_nitc__abstract_compiler__StaticFrame___returnvar].val = var_value; /* _returnvar on <var_frame:StaticFrame> */
2266 RET_LABEL45:(void)0;
2267 }
2268 }
2269 if (likely(varonce!=NULL)) {
2270 var46 = varonce;
2271 } else {
2272 var47 = "RET_LABEL";
2273 var49 = (val*)(9l<<2|1);
2274 var50 = (val*)(9l<<2|1);
2275 var51 = (val*)((long)(0)<<2|3);
2276 var52 = (val*)((long)(0)<<2|3);
2277 var48 = core__flat___CString___to_s_unsafe(var47, var49, var50, var51, var52);
2278 var46 = var48;
2279 varonce = var46;
2280 }
2281 {
2282 var53 = nitc___nitc__AbstractCompilerVisitor___get_name(var_v, var46);
2283 }
2284 {
2285 { /* Inline abstract_compiler$StaticFrame$returnlabel= (var_frame,var53) on <var_frame:StaticFrame> */
2286 var_frame->attrs[COLOR_nitc__abstract_compiler__StaticFrame___returnlabel].val = var53; /* _returnlabel on <var_frame:StaticFrame> */
2287 RET_LABEL54:(void)0;
2288 }
2289 }
2290 if (likely(varonce55!=NULL)) {
2291 var56 = varonce55;
2292 } else {
2293 var57 = "{";
2294 var59 = (val*)(1l<<2|1);
2295 var60 = (val*)(1l<<2|1);
2296 var61 = (val*)((long)(0)<<2|3);
2297 var62 = (val*)((long)(0)<<2|3);
2298 var58 = core__flat___CString___to_s_unsafe(var57, var59, var60, var61, var62);
2299 var56 = var58;
2300 varonce55 = var56;
2301 }
2302 {
2303 nitc___nitc__AbstractCompilerVisitor___add(var_v, var56); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
2304 }
2305 {
2306 nitc___nitc__AbstractCompilerVisitor___stmt(var_v, var_nblock); /* Direct call abstract_compiler$AbstractCompilerVisitor$stmt on <var_v:AbstractCompilerVisitor>*/
2307 }
2308 if (unlikely(varonce63==NULL)) {
2309 var64 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
2310 if (likely(varonce65!=NULL)) {
2311 var66 = varonce65;
2312 } else {
2313 var67 = ":(void)0;";
2314 var69 = (val*)(9l<<2|1);
2315 var70 = (val*)(9l<<2|1);
2316 var71 = (val*)((long)(0)<<2|3);
2317 var72 = (val*)((long)(0)<<2|3);
2318 var68 = core__flat___CString___to_s_unsafe(var67, var69, var70, var71, var72);
2319 var66 = var68;
2320 varonce65 = var66;
2321 }
2322 ((struct instance_core__NativeArray*)var64)->values[1]=var66;
2323 } else {
2324 var64 = varonce63;
2325 varonce63 = NULL;
2326 }
2327 {
2328 { /* Inline abstract_compiler$StaticFrame$returnlabel (var_frame) on <var_frame:StaticFrame> */
2329 var75 = var_frame->attrs[COLOR_nitc__abstract_compiler__StaticFrame___returnlabel].val; /* _returnlabel on <var_frame:StaticFrame> */
2330 var73 = var75;
2331 RET_LABEL74:(void)0;
2332 }
2333 }
2334 if (unlikely(var73 == NULL)) {
2335 if(catchStack.cursor >= 0){
2336 longjmp(catchStack.envs[catchStack.cursor], 1);
2337 }
2338 PRINT_ERROR("Runtime error: %s", "Cast failed");
2339 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3257);
2340 fatal_exit(1);
2341 }
2342 ((struct instance_core__NativeArray*)var64)->values[0]=var73;
2343 {
2344 var76 = ((val*(*)(val* self))(var64->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var64); /* native_to_s on <var64:NativeArray[String]>*/
2345 }
2346 varonce63 = var64;
2347 {
2348 nitc___nitc__AbstractCompilerVisitor___add(var_v, var76); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
2349 }
2350 if (likely(varonce77!=NULL)) {
2351 var78 = varonce77;
2352 } else {
2353 var79 = "}";
2354 var81 = (val*)(1l<<2|1);
2355 var82 = (val*)(1l<<2|1);
2356 var83 = (val*)((long)(0)<<2|3);
2357 var84 = (val*)((long)(0)<<2|3);
2358 var80 = core__flat___CString___to_s_unsafe(var79, var81, var82, var83, var84);
2359 var78 = var80;
2360 varonce77 = var78;
2361 }
2362 {
2363 nitc___nitc__AbstractCompilerVisitor___add(var_v, var78); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
2364 }
2365 } else {
2366 if(catchStack.cursor >= 0){
2367 longjmp(catchStack.envs[catchStack.cursor], 1);
2368 }
2369 PRINT_ERROR("Runtime error: %s", "Aborted");
2370 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3260);
2371 fatal_exit(1);
2372 }
2373 }
2374 {
2375 { /* Inline modelize_property$APropdef$mpropdef (self) on <self:AAttrPropdef> */
2376 var87 = self->attrs[COLOR_nitc__modelize_property__APropdef___mpropdef].val; /* _mpropdef on <self:AAttrPropdef> */
2377 var85 = var87;
2378 RET_LABEL86:(void)0;
2379 }
2380 }
2381 if (var85 == NULL) {
2382 if(catchStack.cursor >= 0){
2383 longjmp(catchStack.envs[catchStack.cursor], 1);
2384 }
2385 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2386 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3263);
2387 fatal_exit(1);
2388 } else {
2389 { /* Inline model$MPropDef$mproperty (var85) on <var85:nullable MPropDef(nullable MAttributeDef)> */
2390 if (unlikely(var85 == NULL)) {
2391 if(catchStack.cursor >= 0){
2392 longjmp(catchStack.envs[catchStack.cursor], 1);
2393 }
2394 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2395 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2357);
2396 fatal_exit(1);
2397 }
2398 var90 = var85->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <var85:nullable MPropDef(nullable MAttributeDef)> */
2399 if (unlikely(var90 == NULL)) {
2400 if(catchStack.cursor >= 0){
2401 longjmp(catchStack.envs[catchStack.cursor], 1);
2402 }
2403 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
2404 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2357);
2405 fatal_exit(1);
2406 }
2407 var88 = var90;
2408 RET_LABEL89:(void)0;
2409 }
2410 }
2411 {
2412 nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__write_attribute(var_v, var88, var_recv, var_value); /* Direct call separate_compiler$SeparateCompilerVisitor$write_attribute on <var_v:AbstractCompilerVisitor>*/
2413 }
2414 {
2415 { /* Inline abstract_compiler$AbstractCompilerVisitor$frame= (var_v,var_old_frame) on <var_v:AbstractCompilerVisitor> */
2416 var_v->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___frame].val = var_old_frame; /* _frame on <var_v:AbstractCompilerVisitor> */
2417 RET_LABEL91:(void)0;
2418 }
2419 }
2420 {
2421 { /* Inline abstract_compiler$AbstractCompilerVisitor$current_node= (var_v,var_oldnode) on <var_v:AbstractCompilerVisitor> */
2422 var_v->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___current_node].val = var_oldnode; /* _current_node on <var_v:AbstractCompilerVisitor> */
2423 RET_LABEL92:(void)0;
2424 }
2425 }
2426 var = var_value;
2427 goto RET_LABEL;
2428 RET_LABEL:;
2429 return var;
2430 }
2431 /* method abstract_compiler$AClassdef$compile_to_c for (self: AClassdef, AbstractCompilerVisitor, MMethodDef, Array[RuntimeVariable]) */
2432 void nitc__abstract_compiler___AClassdef___compile_to_c(val* self, val* p0, val* p1, val* p2) {
2433 val* var_v /* var v: AbstractCompilerVisitor */;
2434 val* var_mpropdef /* var mpropdef: MMethodDef */;
2435 val* var_arguments /* var arguments: Array[RuntimeVariable] */;
2436 val* var /* : MProperty */;
2437 val* var2 /* : MProperty */;
2438 short int var3 /* : Bool */;
2439 short int var5 /* : Bool */;
2440 long var6 /* : Int */;
2441 long var8 /* : Int */;
2442 short int var9 /* : Bool */;
2443 short int var11 /* : Bool */;
2444 short int var12 /* : Bool */;
2445 short int var13 /* : Bool */;
2446 val* var14 /* : nullable Object */;
2447 val* var15 /* : MType */;
2448 val* var17 /* : MType */;
2449 short int var18 /* : Bool */;
2450 int cltype;
2451 int idtype;
2452 const char* var_class_name;
2453 val* var19 /* : nullable RuntimeVariable */;
2454 var_v = p0;
2455 var_mpropdef = p1;
2456 var_arguments = p2;
2457 {
2458 { /* Inline model$MPropDef$mproperty (var_mpropdef) on <var_mpropdef:MMethodDef> */
2459 var2 = var_mpropdef->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef:MMethodDef> */
2460 if (unlikely(var2 == NULL)) {
2461 if(catchStack.cursor >= 0){
2462 longjmp(catchStack.envs[catchStack.cursor], 1);
2463 }
2464 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
2465 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2357);
2466 fatal_exit(1);
2467 }
2468 var = var2;
2469 RET_LABEL1:(void)0;
2470 }
2471 }
2472 {
2473 { /* Inline model$MMethod$is_root_init (var) on <var:MProperty(MMethod)> */
2474 var5 = var->attrs[COLOR_nitc__model__MMethod___is_root_init].s; /* _is_root_init on <var:MProperty(MMethod)> */
2475 var3 = var5;
2476 RET_LABEL4:(void)0;
2477 }
2478 }
2479 if (var3){
2480 {
2481 { /* Inline array$AbstractArrayRead$length (var_arguments) on <var_arguments:Array[RuntimeVariable]> */
2482 var8 = var_arguments->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_arguments:Array[RuntimeVariable]> */
2483 var6 = var8;
2484 RET_LABEL7:(void)0;
2485 }
2486 }
2487 {
2488 { /* Inline kernel$Int$== (var6,1l) on <var6:Int> */
2489 var11 = var6 == 1l;
2490 var9 = var11;
2491 goto RET_LABEL10;
2492 RET_LABEL10:(void)0;
2493 }
2494 }
2495 if (unlikely(!var9)) {
2496 if(catchStack.cursor >= 0){
2497 longjmp(catchStack.envs[catchStack.cursor], 1);
2498 }
2499 PRINT_ERROR("Runtime error: %s", "Assert failed");
2500 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3292);
2501 fatal_exit(1);
2502 }
2503 {
2504 var12 = nitc___nitc__MPropDef___is_intro(var_mpropdef);
2505 }
2506 var13 = !var12;
2507 if (var13){
2508 {
2509 var14 = core___core__SequenceRead___Collection__first(var_arguments);
2510 }
2511 {
2512 { /* Inline abstract_compiler$RuntimeVariable$mtype (var14) on <var14:nullable Object(RuntimeVariable)> */
2513 var17 = var14->attrs[COLOR_nitc__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on <var14:nullable Object(RuntimeVariable)> */
2514 if (unlikely(var17 == NULL)) {
2515 if(catchStack.cursor >= 0){
2516 longjmp(catchStack.envs[catchStack.cursor], 1);
2517 }
2518 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
2519 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1983);
2520 fatal_exit(1);
2521 }
2522 var15 = var17;
2523 RET_LABEL16:(void)0;
2524 }
2525 }
2526 /* <var15:MType> isa MClassType */
2527 cltype = type_nitc__MClassType.color;
2528 idtype = type_nitc__MClassType.id;
2529 if(cltype >= var15->type->table_size) {
2530 var18 = 0;
2531 } else {
2532 var18 = var15->type->type_table[cltype] == idtype;
2533 }
2534 if (unlikely(!var18)) {
2535 var_class_name = var15 == NULL ? "null" : var15->type->name;
2536 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name);
2537 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3294);
2538 fatal_exit(1);
2539 }
2540 {
2541 var19 = nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__supercall(var_v, var_mpropdef, var15, var_arguments);
2542 }
2543 } else {
2544 }
2545 goto RET_LABEL;
2546 } else {
2547 if(catchStack.cursor >= 0){
2548 longjmp(catchStack.envs[catchStack.cursor], 1);
2549 }
2550 PRINT_ERROR("Runtime error: %s", "Aborted");
2551 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3298);
2552 fatal_exit(1);
2553 }
2554 RET_LABEL:;
2555 }
2556 /* method abstract_compiler$AExpr$expr for (self: AExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
2557 val* nitc__abstract_compiler___AExpr___expr(val* self, val* p0) {
2558 val* var /* : nullable RuntimeVariable */;
2559 val* var_v /* var v: AbstractCompilerVisitor */;
2560 val* var1 /* : NativeArray[String] */;
2561 static val* varonce;
2562 static val* varonce2;
2563 val* var3 /* : String */;
2564 char* var4 /* : CString */;
2565 val* var5 /* : String */;
2566 val* var6 /* : nullable Int */;
2567 val* var7 /* : nullable Int */;
2568 val* var8 /* : nullable Bool */;
2569 val* var9 /* : nullable Bool */;
2570 static val* varonce10;
2571 val* var11 /* : String */;
2572 char* var12 /* : CString */;
2573 val* var13 /* : String */;
2574 val* var14 /* : nullable Int */;
2575 val* var15 /* : nullable Int */;
2576 val* var16 /* : nullable Bool */;
2577 val* var17 /* : nullable Bool */;
2578 static val* varonce18;
2579 val* var19 /* : String */;
2580 char* var20 /* : CString */;
2581 val* var21 /* : String */;
2582 val* var22 /* : nullable Int */;
2583 val* var23 /* : nullable Int */;
2584 val* var24 /* : nullable Bool */;
2585 val* var25 /* : nullable Bool */;
2586 val* var26 /* : String */;
2587 val* var27 /* : Location */;
2588 val* var29 /* : Location */;
2589 val* var30 /* : String */;
2590 val* var31 /* : String */;
2591 val* var32 /* : nullable MType */;
2592 val* var_mtype /* var mtype: nullable MType */;
2593 short int var33 /* : Bool */;
2594 short int var34 /* : Bool */;
2595 val* var_other /* var other: nullable Object */;
2596 short int var36 /* : Bool */;
2597 short int var38 /* : Bool */;
2598 val* var39 /* : RuntimeVariable */;
2599 val* var_res /* var res: RuntimeVariable */;
2600 val* var41 /* : NativeArray[String] */;
2601 static val* varonce40;
2602 static val* varonce42;
2603 val* var43 /* : String */;
2604 char* var44 /* : CString */;
2605 val* var45 /* : String */;
2606 val* var46 /* : nullable Int */;
2607 val* var47 /* : nullable Int */;
2608 val* var48 /* : nullable Bool */;
2609 val* var49 /* : nullable Bool */;
2610 static val* varonce50;
2611 val* var51 /* : String */;
2612 char* var52 /* : CString */;
2613 val* var53 /* : String */;
2614 val* var54 /* : nullable Int */;
2615 val* var55 /* : nullable Int */;
2616 val* var56 /* : nullable Bool */;
2617 val* var57 /* : nullable Bool */;
2618 static val* varonce58;
2619 val* var59 /* : String */;
2620 char* var60 /* : CString */;
2621 val* var61 /* : String */;
2622 val* var62 /* : nullable Int */;
2623 val* var63 /* : nullable Int */;
2624 val* var64 /* : nullable Bool */;
2625 val* var65 /* : nullable Bool */;
2626 val* var66 /* : String */;
2627 val* var67 /* : String */;
2628 val* var68 /* : String */;
2629 var_v = p0;
2630 if (unlikely(varonce==NULL)) {
2631 var1 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String);
2632 if (likely(varonce2!=NULL)) {
2633 var3 = varonce2;
2634 } else {
2635 var4 = "PRINT_ERROR(\"NOT YET IMPLEMENTED ";
2636 var6 = (val*)(33l<<2|1);
2637 var7 = (val*)(33l<<2|1);
2638 var8 = (val*)((long)(0)<<2|3);
2639 var9 = (val*)((long)(0)<<2|3);
2640 var5 = core__flat___CString___to_s_unsafe(var4, var6, var7, var8, var9);
2641 var3 = var5;
2642 varonce2 = var3;
2643 }
2644 ((struct instance_core__NativeArray*)var1)->values[0]=var3;
2645 if (likely(varonce10!=NULL)) {
2646 var11 = varonce10;
2647 } else {
2648 var12 = ":";
2649 var14 = (val*)(1l<<2|1);
2650 var15 = (val*)(1l<<2|1);
2651 var16 = (val*)((long)(0)<<2|3);
2652 var17 = (val*)((long)(0)<<2|3);
2653 var13 = core__flat___CString___to_s_unsafe(var12, var14, var15, var16, var17);
2654 var11 = var13;
2655 varonce10 = var11;
2656 }
2657 ((struct instance_core__NativeArray*)var1)->values[2]=var11;
2658 if (likely(varonce18!=NULL)) {
2659 var19 = varonce18;
2660 } else {
2661 var20 = "\\n\");";
2662 var22 = (val*)(5l<<2|1);
2663 var23 = (val*)(5l<<2|1);
2664 var24 = (val*)((long)(0)<<2|3);
2665 var25 = (val*)((long)(0)<<2|3);
2666 var21 = core__flat___CString___to_s_unsafe(var20, var22, var23, var24, var25);
2667 var19 = var21;
2668 varonce18 = var19;
2669 }
2670 ((struct instance_core__NativeArray*)var1)->values[4]=var19;
2671 } else {
2672 var1 = varonce;
2673 varonce = NULL;
2674 }
2675 {
2676 var26 = core__abstract_text___Object___class_name(self);
2677 }
2678 ((struct instance_core__NativeArray*)var1)->values[1]=var26;
2679 {
2680 { /* Inline parser_nodes$ANode$location (self) on <self:AExpr> */
2681 var29 = self->attrs[COLOR_nitc__parser_nodes__ANode___location].val; /* _location on <self:AExpr> */
2682 if (unlikely(var29 == NULL)) {
2683 if(catchStack.cursor >= 0){
2684 longjmp(catchStack.envs[catchStack.cursor], 1);
2685 }
2686 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
2687 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 25);
2688 fatal_exit(1);
2689 }
2690 var27 = var29;
2691 RET_LABEL28:(void)0;
2692 }
2693 }
2694 {
2695 var30 = nitc___nitc__Location___core__abstract_text__Object__to_s(var27);
2696 }
2697 ((struct instance_core__NativeArray*)var1)->values[3]=var30;
2698 {
2699 var31 = ((val*(*)(val* self))(var1->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var1); /* native_to_s on <var1:NativeArray[String]>*/
2700 }
2701 varonce = var1;
2702 {
2703 nitc___nitc__AbstractCompilerVisitor___add(var_v, var31); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
2704 }
2705 {
2706 var32 = ((val*(*)(val* self))(self->class->vft[COLOR_nitc__typing__AExpr__mtype]))(self); /* mtype on <self:AExpr>*/
2707 }
2708 var_mtype = var32;
2709 if (var_mtype == NULL) {
2710 var33 = 1; /* is null */
2711 } else {
2712 var33 = 0; /* arg is null but recv is not */
2713 }
2714 if (0) {
2715 { /* Inline kernel$Object$== (var_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
2716 var_other = ((val*)NULL);
2717 {
2718 { /* Inline kernel$Object$is_same_instance (var_mtype,var_other) on <var_mtype:nullable MType(MType)> */
2719 var38 = var_mtype == var_other;
2720 var36 = var38;
2721 goto RET_LABEL37;
2722 RET_LABEL37:(void)0;
2723 }
2724 }
2725 var34 = var36;
2726 goto RET_LABEL35;
2727 RET_LABEL35:(void)0;
2728 }
2729 var33 = var34;
2730 }
2731 if (var33){
2732 var = ((val*)NULL);
2733 goto RET_LABEL;
2734 } else {
2735 {
2736 var39 = nitc___nitc__AbstractCompilerVisitor___new_var(var_v, var_mtype);
2737 }
2738 var_res = var39;
2739 if (unlikely(varonce40==NULL)) {
2740 var41 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String);
2741 if (likely(varonce42!=NULL)) {
2742 var43 = varonce42;
2743 } else {
2744 var44 = "/* ";
2745 var46 = (val*)(3l<<2|1);
2746 var47 = (val*)(3l<<2|1);
2747 var48 = (val*)((long)(0)<<2|3);
2748 var49 = (val*)((long)(0)<<2|3);
2749 var45 = core__flat___CString___to_s_unsafe(var44, var46, var47, var48, var49);
2750 var43 = var45;
2751 varonce42 = var43;
2752 }
2753 ((struct instance_core__NativeArray*)var41)->values[0]=var43;
2754 if (likely(varonce50!=NULL)) {
2755 var51 = varonce50;
2756 } else {
2757 var52 = " = NOT YET ";
2758 var54 = (val*)(11l<<2|1);
2759 var55 = (val*)(11l<<2|1);
2760 var56 = (val*)((long)(0)<<2|3);
2761 var57 = (val*)((long)(0)<<2|3);
2762 var53 = core__flat___CString___to_s_unsafe(var52, var54, var55, var56, var57);
2763 var51 = var53;
2764 varonce50 = var51;
2765 }
2766 ((struct instance_core__NativeArray*)var41)->values[2]=var51;
2767 if (likely(varonce58!=NULL)) {
2768 var59 = varonce58;
2769 } else {
2770 var60 = " */";
2771 var62 = (val*)(3l<<2|1);
2772 var63 = (val*)(3l<<2|1);
2773 var64 = (val*)((long)(0)<<2|3);
2774 var65 = (val*)((long)(0)<<2|3);
2775 var61 = core__flat___CString___to_s_unsafe(var60, var62, var63, var64, var65);
2776 var59 = var61;
2777 varonce58 = var59;
2778 }
2779 ((struct instance_core__NativeArray*)var41)->values[4]=var59;
2780 } else {
2781 var41 = varonce40;
2782 varonce40 = NULL;
2783 }
2784 {
2785 var66 = ((val*(*)(val* self))(var_res->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_res); /* to_s on <var_res:RuntimeVariable>*/
2786 }
2787 ((struct instance_core__NativeArray*)var41)->values[1]=var66;
2788 {
2789 var67 = core__abstract_text___Object___class_name(self);
2790 }
2791 ((struct instance_core__NativeArray*)var41)->values[3]=var67;
2792 {
2793 var68 = ((val*(*)(val* self))(var41->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var41); /* native_to_s on <var41:NativeArray[String]>*/
2794 }
2795 varonce40 = var41;
2796 {
2797 nitc___nitc__AbstractCompilerVisitor___add(var_v, var68); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
2798 }
2799 var = var_res;
2800 goto RET_LABEL;
2801 }
2802 RET_LABEL:;
2803 return var;
2804 }
2805 /* method abstract_compiler$AExpr$stmt for (self: AExpr, AbstractCompilerVisitor) */
2806 void nitc__abstract_compiler___AExpr___stmt(val* self, val* p0) {
2807 val* var_v /* var v: AbstractCompilerVisitor */;
2808 val* var /* : nullable RuntimeVariable */;
2809 var_v = p0;
2810 {
2811 var = ((val*(*)(val* self, val* p0))(self->class->vft[COLOR_nitc__abstract_compiler__AExpr__expr]))(self, var_v); /* expr on <self:AExpr>*/
2812 }
2813 RET_LABEL:;
2814 }
2815 /* method abstract_compiler$ABlockExpr$stmt for (self: ABlockExpr, AbstractCompilerVisitor) */
2816 void nitc__abstract_compiler___ABlockExpr___AExpr__stmt(val* self, val* p0) {
2817 val* var_v /* var v: AbstractCompilerVisitor */;
2818 val* var /* : ANodes[AExpr] */;
2819 val* var2 /* : ANodes[AExpr] */;
2820 val* var_ /* var : ANodes[AExpr] */;
2821 val* var3 /* : Iterator[ANode] */;
2822 val* var_4 /* var : Iterator[AExpr] */;
2823 short int var5 /* : Bool */;
2824 val* var6 /* : nullable Object */;
2825 val* var_e /* var e: AExpr */;
2826 var_v = p0;
2827 {
2828 { /* Inline parser_nodes$ABlockExpr$n_expr (self) on <self:ABlockExpr> */
2829 var2 = self->attrs[COLOR_nitc__parser_nodes__ABlockExpr___n_expr].val; /* _n_expr on <self:ABlockExpr> */
2830 if (unlikely(var2 == NULL)) {
2831 if(catchStack.cursor >= 0){
2832 longjmp(catchStack.envs[catchStack.cursor], 1);
2833 }
2834 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2835 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1811);
2836 fatal_exit(1);
2837 }
2838 var = var2;
2839 RET_LABEL1:(void)0;
2840 }
2841 }
2842 var_ = var;
2843 {
2844 var3 = nitc___nitc__ANodes___core__abstract_collection__Collection__iterator(var_);
2845 }
2846 var_4 = var3;
2847 for(;;) {
2848 {
2849 var5 = ((short int(*)(val* self))((((long)var_4&3)?class_info[((long)var_4&3)]:var_4->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_4); /* is_ok on <var_4:Iterator[AExpr]>*/
2850 }
2851 if (var5){
2852 } else {
2853 goto BREAK_label;
2854 }
2855 {
2856 var6 = ((val*(*)(val* self))((((long)var_4&3)?class_info[((long)var_4&3)]:var_4->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_4); /* item on <var_4:Iterator[AExpr]>*/
2857 }
2858 var_e = var6;
2859 {
2860 nitc___nitc__AbstractCompilerVisitor___stmt(var_v, var_e); /* Direct call abstract_compiler$AbstractCompilerVisitor$stmt on <var_v:AbstractCompilerVisitor>*/
2861 }
2862 {
2863 ((void(*)(val* self))((((long)var_4&3)?class_info[((long)var_4&3)]:var_4->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_4); /* next on <var_4:Iterator[AExpr]>*/
2864 }
2865 }
2866 BREAK_label: (void)0;
2867 {
2868 ((void(*)(val* self))((((long)var_4&3)?class_info[((long)var_4&3)]:var_4->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_4); /* finish on <var_4:Iterator[AExpr]>*/
2869 }
2870 RET_LABEL:;
2871 }
2872 /* method abstract_compiler$ABlockExpr$expr for (self: ABlockExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
2873 val* nitc__abstract_compiler___ABlockExpr___AExpr__expr(val* self, val* p0) {
2874 val* var /* : nullable RuntimeVariable */;
2875 val* var_v /* var v: AbstractCompilerVisitor */;
2876 val* var1 /* : ANodes[AExpr] */;
2877 val* var3 /* : ANodes[AExpr] */;
2878 val* var4 /* : nullable Object */;
2879 val* var_last /* var last: AExpr */;
2880 val* var5 /* : ANodes[AExpr] */;
2881 val* var7 /* : ANodes[AExpr] */;
2882 val* var_ /* var : ANodes[AExpr] */;
2883 val* var8 /* : Iterator[ANode] */;
2884 val* var_9 /* var : Iterator[AExpr] */;
2885 short int var10 /* : Bool */;
2886 val* var11 /* : nullable Object */;
2887 val* var_e /* var e: AExpr */;
2888 short int var12 /* : Bool */;
2889 val* var_other /* var other: nullable Object */;
2890 short int var14 /* : Bool */;
2891 short int var16 /* : Bool */;
2892 val* var17 /* : RuntimeVariable */;
2893 var_v = p0;
2894 {
2895 { /* Inline parser_nodes$ABlockExpr$n_expr (self) on <self:ABlockExpr> */
2896 var3 = self->attrs[COLOR_nitc__parser_nodes__ABlockExpr___n_expr].val; /* _n_expr on <self:ABlockExpr> */
2897 if (unlikely(var3 == NULL)) {
2898 if(catchStack.cursor >= 0){
2899 longjmp(catchStack.envs[catchStack.cursor], 1);
2900 }
2901 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2902 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1811);
2903 fatal_exit(1);
2904 }
2905 var1 = var3;
2906 RET_LABEL2:(void)0;
2907 }
2908 }
2909 {
2910 var4 = core___core__SequenceRead___last(var1);
2911 }
2912 var_last = var4;
2913 {
2914 { /* Inline parser_nodes$ABlockExpr$n_expr (self) on <self:ABlockExpr> */
2915 var7 = self->attrs[COLOR_nitc__parser_nodes__ABlockExpr___n_expr].val; /* _n_expr on <self:ABlockExpr> */
2916 if (unlikely(var7 == NULL)) {
2917 if(catchStack.cursor >= 0){
2918 longjmp(catchStack.envs[catchStack.cursor], 1);
2919 }
2920 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2921 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1811);
2922 fatal_exit(1);
2923 }
2924 var5 = var7;
2925 RET_LABEL6:(void)0;
2926 }
2927 }
2928 var_ = var5;
2929 {
2930 var8 = nitc___nitc__ANodes___core__abstract_collection__Collection__iterator(var_);
2931 }
2932 var_9 = var8;
2933 for(;;) {
2934 {
2935 var10 = ((short int(*)(val* self))((((long)var_9&3)?class_info[((long)var_9&3)]:var_9->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_9); /* is_ok on <var_9:Iterator[AExpr]>*/
2936 }
2937 if (var10){
2938 } else {
2939 goto BREAK_label;
2940 }
2941 {
2942 var11 = ((val*(*)(val* self))((((long)var_9&3)?class_info[((long)var_9&3)]:var_9->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_9); /* item on <var_9:Iterator[AExpr]>*/
2943 }
2944 var_e = var11;
2945 {
2946 { /* Inline kernel$Object$== (var_e,var_last) on <var_e:AExpr> */
2947 var_other = var_last;
2948 {
2949 { /* Inline kernel$Object$is_same_instance (var_e,var_other) on <var_e:AExpr> */
2950 var16 = var_e == var_other;
2951 var14 = var16;
2952 goto RET_LABEL15;
2953 RET_LABEL15:(void)0;
2954 }
2955 }
2956 var12 = var14;
2957 goto RET_LABEL13;
2958 RET_LABEL13:(void)0;
2959 }
2960 }
2961 if (var12){
2962 goto BREAK_label;
2963 } else {
2964 }
2965 {
2966 nitc___nitc__AbstractCompilerVisitor___stmt(var_v, var_e); /* Direct call abstract_compiler$AbstractCompilerVisitor$stmt on <var_v:AbstractCompilerVisitor>*/
2967 }
2968 {
2969 ((void(*)(val* self))((((long)var_9&3)?class_info[((long)var_9&3)]:var_9->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_9); /* next on <var_9:Iterator[AExpr]>*/
2970 }
2971 }
2972 BREAK_label: (void)0;
2973 {
2974 ((void(*)(val* self))((((long)var_9&3)?class_info[((long)var_9&3)]:var_9->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_9); /* finish on <var_9:Iterator[AExpr]>*/
2975 }
2976 {
2977 var17 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var_last, ((val*)NULL));
2978 }
2979 var = var17;
2980 goto RET_LABEL;
2981 RET_LABEL:;
2982 return var;
2983 }
2984 /* method abstract_compiler$AVardeclExpr$stmt for (self: AVardeclExpr, AbstractCompilerVisitor) */
2985 void nitc__abstract_compiler___AVardeclExpr___AExpr__stmt(val* self, val* p0) {
2986 val* var_v /* var v: AbstractCompilerVisitor */;
2987 val* var /* : nullable Variable */;
2988 val* var2 /* : nullable Variable */;
2989 val* var_variable /* var variable: Variable */;
2990 val* var3 /* : nullable AExpr */;
2991 val* var5 /* : nullable AExpr */;
2992 val* var_ne /* var ne: nullable AExpr */;
2993 short int var6 /* : Bool */;
2994 short int var7 /* : Bool */;
2995 val* var_other /* var other: nullable Object */;
2996 short int var9 /* : Bool */;
2997 short int var10 /* : Bool */;
2998 val* var11 /* : nullable MType */;
2999 val* var13 /* : nullable MType */;
3000 val* var14 /* : RuntimeVariable */;
3001 val* var_i /* var i: RuntimeVariable */;
3002 val* var15 /* : RuntimeVariable */;
3003 var_v = p0;
3004 {
3005 { /* Inline scope$AVardeclExpr$variable (self) on <self:AVardeclExpr> */
3006 var2 = self->attrs[COLOR_nitc__scope__AVardeclExpr___variable].val; /* _variable on <self:AVardeclExpr> */
3007 var = var2;
3008 RET_LABEL1:(void)0;
3009 }
3010 }
3011 if (unlikely(var == NULL)) {
3012 if(catchStack.cursor >= 0){
3013 longjmp(catchStack.envs[catchStack.cursor], 1);
3014 }
3015 PRINT_ERROR("Runtime error: %s", "Cast failed");
3016 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3346);
3017 fatal_exit(1);
3018 }
3019 var_variable = var;
3020 {
3021 { /* Inline parser_nodes$AVardeclExpr$n_expr (self) on <self:AVardeclExpr> */
3022 var5 = self->attrs[COLOR_nitc__parser_nodes__AVardeclExpr___n_expr].val; /* _n_expr on <self:AVardeclExpr> */
3023 var3 = var5;
3024 RET_LABEL4:(void)0;
3025 }
3026 }
3027 var_ne = var3;
3028 if (var_ne == NULL) {
3029 var6 = 0; /* is null */
3030 } else {
3031 var6 = 1; /* arg is null and recv is not */
3032 }
3033 if (0) {
3034 { /* Inline kernel$Object$!= (var_ne,((val*)NULL)) on <var_ne:nullable AExpr> */
3035 var_other = ((val*)NULL);
3036 {
3037 var9 = ((short int(*)(val* self, val* p0))(var_ne->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_ne, var_other); /* == on <var_ne:nullable AExpr(AExpr)>*/
3038 }
3039 var10 = !var9;
3040 var7 = var10;
3041 goto RET_LABEL8;
3042 RET_LABEL8:(void)0;
3043 }
3044 var6 = var7;
3045 }
3046 if (var6){
3047 {
3048 { /* Inline typing$Variable$declared_type (var_variable) on <var_variable:Variable> */
3049 var13 = var_variable->attrs[COLOR_nitc__typing__Variable___declared_type].val; /* _declared_type on <var_variable:Variable> */
3050 var11 = var13;
3051 RET_LABEL12:(void)0;
3052 }
3053 }
3054 {
3055 var14 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var_ne, var11);
3056 }
3057 var_i = var14;
3058 {
3059 var15 = nitc___nitc__AbstractCompilerVisitor___variable(var_v, var_variable);
3060 }
3061 {
3062 nitc___nitc__AbstractCompilerVisitor___assign(var_v, var15, var_i); /* Direct call abstract_compiler$AbstractCompilerVisitor$assign on <var_v:AbstractCompilerVisitor>*/
3063 }
3064 } else {
3065 }
3066 RET_LABEL:;
3067 }
3068 /* method abstract_compiler$AVarExpr$expr for (self: AVarExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
3069 val* nitc__abstract_compiler___AVarExpr___AExpr__expr(val* self, val* p0) {
3070 val* var /* : nullable RuntimeVariable */;
3071 val* var_v /* var v: AbstractCompilerVisitor */;
3072 val* var1 /* : nullable Variable */;
3073 val* var3 /* : nullable Variable */;
3074 val* var4 /* : RuntimeVariable */;
3075 val* var_res /* var res: RuntimeVariable */;
3076 val* var5 /* : nullable MType */;
3077 val* var7 /* : nullable MType */;
3078 val* var_mtype /* var mtype: MType */;
3079 val* var8 /* : RuntimeVariable */;
3080 var_v = p0;
3081 {
3082 { /* Inline scope$AVarFormExpr$variable (self) on <self:AVarExpr> */
3083 var3 = self->attrs[COLOR_nitc__scope__AVarFormExpr___variable].val; /* _variable on <self:AVarExpr> */
3084 var1 = var3;
3085 RET_LABEL2:(void)0;
3086 }
3087 }
3088 if (unlikely(var1 == NULL)) {
3089 if(catchStack.cursor >= 0){
3090 longjmp(catchStack.envs[catchStack.cursor], 1);
3091 }
3092 PRINT_ERROR("Runtime error: %s", "Cast failed");
3093 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3358);
3094 fatal_exit(1);
3095 }
3096 {
3097 var4 = nitc___nitc__AbstractCompilerVisitor___variable(var_v, var1);
3098 }
3099 var_res = var4;
3100 {
3101 { /* Inline typing$AExpr$mtype (self) on <self:AVarExpr> */
3102 var7 = self->attrs[COLOR_nitc__typing__AExpr___mtype].val; /* _mtype on <self:AVarExpr> */
3103 var5 = var7;
3104 RET_LABEL6:(void)0;
3105 }
3106 }
3107 if (unlikely(var5 == NULL)) {
3108 if(catchStack.cursor >= 0){
3109 longjmp(catchStack.envs[catchStack.cursor], 1);
3110 }
3111 PRINT_ERROR("Runtime error: %s", "Cast failed");
3112 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3359);
3113 fatal_exit(1);
3114 }
3115 var_mtype = var5;
3116 {
3117 var8 = nitc___nitc__AbstractCompilerVisitor___autoadapt(var_v, var_res, var_mtype);
3118 }
3119 var = var8;
3120 goto RET_LABEL;
3121 RET_LABEL:;
3122 return var;
3123 }
3124 /* method abstract_compiler$AVarAssignExpr$expr for (self: AVarAssignExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
3125 val* nitc__abstract_compiler___AVarAssignExpr___AExpr__expr(val* self, val* p0) {
3126 val* var /* : nullable RuntimeVariable */;
3127 val* var_v /* var v: AbstractCompilerVisitor */;
3128 val* var1 /* : nullable Variable */;
3129 val* var3 /* : nullable Variable */;
3130 val* var_variable /* var variable: Variable */;
3131 val* var4 /* : AExpr */;
3132 val* var6 /* : AExpr */;
3133 val* var7 /* : nullable MType */;
3134 val* var9 /* : nullable MType */;
3135 val* var10 /* : RuntimeVariable */;
3136 val* var_i /* var i: RuntimeVariable */;
3137 val* var11 /* : RuntimeVariable */;
3138 var_v = p0;
3139 {
3140 { /* Inline scope$AVarFormExpr$variable (self) on <self:AVarAssignExpr> */
3141 var3 = self->attrs[COLOR_nitc__scope__AVarFormExpr___variable].val; /* _variable on <self:AVarAssignExpr> */
3142 var1 = var3;
3143 RET_LABEL2:(void)0;
3144 }
3145 }
3146 if (unlikely(var1 == NULL)) {
3147 if(catchStack.cursor >= 0){
3148 longjmp(catchStack.envs[catchStack.cursor], 1);
3149 }
3150 PRINT_ERROR("Runtime error: %s", "Cast failed");
3151 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3367);
3152 fatal_exit(1);
3153 }
3154 var_variable = var1;
3155 {
3156 { /* Inline parser_nodes$AAssignFormExpr$n_value (self) on <self:AVarAssignExpr> */
3157 var6 = self->attrs[COLOR_nitc__parser_nodes__AAssignFormExpr___n_value].val; /* _n_value on <self:AVarAssignExpr> */
3158 if (unlikely(var6 == NULL)) {
3159 if(catchStack.cursor >= 0){
3160 longjmp(catchStack.envs[catchStack.cursor], 1);
3161 }
3162 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
3163 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2073);
3164 fatal_exit(1);
3165 }
3166 var4 = var6;
3167 RET_LABEL5:(void)0;
3168 }
3169 }
3170 {
3171 { /* Inline typing$Variable$declared_type (var_variable) on <var_variable:Variable> */
3172 var9 = var_variable->attrs[COLOR_nitc__typing__Variable___declared_type].val; /* _declared_type on <var_variable:Variable> */
3173 var7 = var9;
3174 RET_LABEL8:(void)0;
3175 }
3176 }
3177 {
3178 var10 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var4, var7);
3179 }
3180 var_i = var10;
3181 {
3182 var11 = nitc___nitc__AbstractCompilerVisitor___variable(var_v, var_variable);
3183 }
3184 {
3185 nitc___nitc__AbstractCompilerVisitor___assign(var_v, var11, var_i); /* Direct call abstract_compiler$AbstractCompilerVisitor$assign on <var_v:AbstractCompilerVisitor>*/
3186 }
3187 var = var_i;
3188 goto RET_LABEL;
3189 RET_LABEL:;
3190 return var;
3191 }
3192 /* method abstract_compiler$AVarReassignExpr$stmt for (self: AVarReassignExpr, AbstractCompilerVisitor) */
3193 void nitc__abstract_compiler___AVarReassignExpr___AExpr__stmt(val* self, val* p0) {
3194 val* var_v /* var v: AbstractCompilerVisitor */;
3195 val* var /* : nullable Variable */;
3196 val* var2 /* : nullable Variable */;
3197 val* var_variable /* var variable: Variable */;
3198 val* var3 /* : RuntimeVariable */;
3199 val* var_vari /* var vari: RuntimeVariable */;
3200 val* var4 /* : AExpr */;
3201 val* var6 /* : AExpr */;
3202 val* var7 /* : nullable MType */;
3203 val* var9 /* : nullable MType */;
3204 val* var10 /* : RuntimeVariable */;
3205 val* var_value /* var value: RuntimeVariable */;
3206 val* var11 /* : nullable CallSite */;
3207 val* var13 /* : nullable CallSite */;
3208 val* var14 /* : Array[RuntimeVariable] */;
3209 val* var_ /* var : Array[RuntimeVariable] */;
3210 val* var15 /* : nullable RuntimeVariable */;
3211 val* var_res /* var res: nullable RuntimeVariable */;
3212 short int var16 /* : Bool */;
3213 short int var17 /* : Bool */;
3214 val* var_other /* var other: nullable Object */;
3215 short int var19 /* : Bool */;
3216 short int var20 /* : Bool */;
3217 val* var21 /* : RuntimeVariable */;
3218 var_v = p0;
3219 {
3220 { /* Inline scope$AVarFormExpr$variable (self) on <self:AVarReassignExpr> */
3221 var2 = self->attrs[COLOR_nitc__scope__AVarFormExpr___variable].val; /* _variable on <self:AVarReassignExpr> */
3222 var = var2;
3223 RET_LABEL1:(void)0;
3224 }
3225 }
3226 if (unlikely(var == NULL)) {
3227 if(catchStack.cursor >= 0){
3228 longjmp(catchStack.envs[catchStack.cursor], 1);
3229 }
3230 PRINT_ERROR("Runtime error: %s", "Cast failed");
3231 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3377);
3232 fatal_exit(1);
3233 }
3234 var_variable = var;
3235 {
3236 var3 = nitc___nitc__AbstractCompilerVisitor___variable(var_v, var_variable);
3237 }
3238 var_vari = var3;
3239 {
3240 { /* Inline parser_nodes$AReassignFormExpr$n_value (self) on <self:AVarReassignExpr> */
3241 var6 = self->attrs[COLOR_nitc__parser_nodes__AReassignFormExpr___n_value].val; /* _n_value on <self:AVarReassignExpr> */
3242 if (unlikely(var6 == NULL)) {
3243 if(catchStack.cursor >= 0){
3244 longjmp(catchStack.envs[catchStack.cursor], 1);
3245 }
3246 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
3247 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2084);
3248 fatal_exit(1);
3249 }
3250 var4 = var6;
3251 RET_LABEL5:(void)0;
3252 }
3253 }
3254 {
3255 { /* Inline typing$Variable$declared_type (var_variable) on <var_variable:Variable> */
3256 var9 = var_variable->attrs[COLOR_nitc__typing__Variable___declared_type].val; /* _declared_type on <var_variable:Variable> */
3257 var7 = var9;
3258 RET_LABEL8:(void)0;
3259 }
3260 }
3261 {
3262 var10 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var4, var7);
3263 }
3264 var_value = var10;
3265 {
3266 { /* Inline typing$AReassignFormExpr$reassign_callsite (self) on <self:AVarReassignExpr> */
3267 var13 = self->attrs[COLOR_nitc__typing__AReassignFormExpr___reassign_callsite].val; /* _reassign_callsite on <self:AVarReassignExpr> */
3268 var11 = var13;
3269 RET_LABEL12:(void)0;
3270 }
3271 }
3272 if (unlikely(var11 == NULL)) {
3273 if(catchStack.cursor >= 0){
3274 longjmp(catchStack.envs[catchStack.cursor], 1);
3275 }
3276 PRINT_ERROR("Runtime error: %s", "Cast failed");
3277 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3380);
3278 fatal_exit(1);
3279 }
3280 var14 = NEW_core__Array(&type_core__Array__nitc__RuntimeVariable);
3281 {
3282 core___core__Array___with_capacity(var14, 2l); /* Direct call array$Array$with_capacity on <var14:Array[RuntimeVariable]>*/
3283 }
3284 var_ = var14;
3285 {
3286 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var_vari); /* Direct call array$AbstractArray$push on <var_:Array[RuntimeVariable]>*/
3287 }
3288 {
3289 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var_value); /* Direct call array$AbstractArray$push on <var_:Array[RuntimeVariable]>*/
3290 }
3291 {
3292 var15 = ((val*(*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var11, var_); /* compile_callsite on <var_v:AbstractCompilerVisitor>*/
3293 }
3294 var_res = var15;
3295 if (var_res == NULL) {
3296 var16 = 0; /* is null */
3297 } else {
3298 var16 = 1; /* arg is null and recv is not */
3299 }
3300 if (0) {
3301 { /* Inline kernel$Object$!= (var_res,((val*)NULL)) on <var_res:nullable RuntimeVariable> */
3302 var_other = ((val*)NULL);
3303 {
3304 var19 = ((short int(*)(val* self, val* p0))(var_res->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_res, var_other); /* == on <var_res:nullable RuntimeVariable(RuntimeVariable)>*/
3305 }
3306 var20 = !var19;
3307 var17 = var20;
3308 goto RET_LABEL18;
3309 RET_LABEL18:(void)0;
3310 }
3311 var16 = var17;
3312 }
3313 if (unlikely(!var16)) {
3314 if(catchStack.cursor >= 0){
3315 longjmp(catchStack.envs[catchStack.cursor], 1);
3316 }
3317 PRINT_ERROR("Runtime error: %s", "Assert failed");
3318 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3381);
3319 fatal_exit(1);
3320 }
3321 {
3322 var21 = nitc___nitc__AbstractCompilerVisitor___variable(var_v, var_variable);
3323 }
3324 {
3325 nitc___nitc__AbstractCompilerVisitor___assign(var_v, var21, var_res); /* Direct call abstract_compiler$AbstractCompilerVisitor$assign on <var_v:AbstractCompilerVisitor>*/
3326 }
3327 RET_LABEL:;
3328 }
3329 /* method abstract_compiler$ASelfExpr$expr for (self: ASelfExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
3330 val* nitc__abstract_compiler___ASelfExpr___AExpr__expr(val* self, val* p0) {
3331 val* var /* : nullable RuntimeVariable */;
3332 val* var_v /* var v: AbstractCompilerVisitor */;
3333 val* var1 /* : nullable StaticFrame */;
3334 val* var3 /* : nullable StaticFrame */;
3335 val* var4 /* : Array[RuntimeVariable] */;
3336 val* var6 /* : Array[RuntimeVariable] */;
3337 val* var7 /* : nullable Object */;
3338 var_v = p0;
3339 {
3340 { /* Inline abstract_compiler$AbstractCompilerVisitor$frame (var_v) on <var_v:AbstractCompilerVisitor> */
3341 var3 = var_v->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on <var_v:AbstractCompilerVisitor> */
3342 var1 = var3;
3343 RET_LABEL2:(void)0;
3344 }
3345 }
3346 if (var1 == NULL) {
3347 if(catchStack.cursor >= 0){
3348 longjmp(catchStack.envs[catchStack.cursor], 1);
3349 }
3350 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3351 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3387);
3352 fatal_exit(1);
3353 } else {
3354 { /* Inline abstract_compiler$StaticFrame$arguments (var1) on <var1:nullable StaticFrame> */
3355 if (unlikely(var1 == NULL)) {
3356 if(catchStack.cursor >= 0){
3357 longjmp(catchStack.envs[catchStack.cursor], 1);
3358 }
3359 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3360 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 2034);
3361 fatal_exit(1);
3362 }
3363 var6 = var1->attrs[COLOR_nitc__abstract_compiler__StaticFrame___arguments].val; /* _arguments on <var1:nullable StaticFrame> */
3364 if (unlikely(var6 == NULL)) {
3365 if(catchStack.cursor >= 0){
3366 longjmp(catchStack.envs[catchStack.cursor], 1);
3367 }
3368 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
3369 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 2034);
3370 fatal_exit(1);
3371 }
3372 var4 = var6;
3373 RET_LABEL5:(void)0;
3374 }
3375 }
3376 {
3377 var7 = core___core__SequenceRead___Collection__first(var4);
3378 }
3379 var = var7;
3380 goto RET_LABEL;
3381 RET_LABEL:;
3382 return var;
3383 }
3384 /* method abstract_compiler$AImplicitSelfExpr$expr for (self: AImplicitSelfExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
3385 val* nitc__abstract_compiler___AImplicitSelfExpr___AExpr__expr(val* self, val* p0) {
3386 val* var /* : nullable RuntimeVariable */;
3387 val* var_v /* var v: AbstractCompilerVisitor */;
3388 short int var1 /* : Bool */;
3389 short int var3 /* : Bool */;
3390 short int var4 /* : Bool */;
3391 val* var5 /* : nullable RuntimeVariable */;
3392 static val* varonce;
3393 val* var6 /* : String */;
3394 char* var7 /* : CString */;
3395 val* var8 /* : String */;
3396 val* var9 /* : nullable Int */;
3397 val* var10 /* : nullable Int */;
3398 val* var11 /* : nullable Bool */;
3399 val* var12 /* : nullable Bool */;
3400 val* var13 /* : nullable MType */;
3401 val* var15 /* : nullable MType */;
3402 val* var16 /* : RuntimeVariable */;
3403 var_v = p0;
3404 {
3405 { /* Inline typing$AImplicitSelfExpr$is_sys (self) on <self:AImplicitSelfExpr> */
3406 var3 = self->attrs[COLOR_nitc__typing__AImplicitSelfExpr___is_sys].s; /* _is_sys on <self:AImplicitSelfExpr> */
3407 var1 = var3;
3408 RET_LABEL2:(void)0;
3409 }
3410 }
3411 var4 = !var1;
3412 if (var4){
3413 {
3414 var5 = ((val*(*)(val* self, val* p0))(self->class->vft[COLOR_nitc__abstract_compiler___AImplicitSelfExpr___AExpr__expr]))(self, p0); /* expr on <self:AImplicitSelfExpr>*/
3415 }
3416 var = var5;
3417 goto RET_LABEL;
3418 } else {
3419 }
3420 if (likely(varonce!=NULL)) {
3421 var6 = varonce;
3422 } else {
3423 var7 = "glob_sys";
3424 var9 = (val*)(8l<<2|1);
3425 var10 = (val*)(8l<<2|1);
3426 var11 = (val*)((long)(0)<<2|3);
3427 var12 = (val*)((long)(0)<<2|3);
3428 var8 = core__flat___CString___to_s_unsafe(var7, var9, var10, var11, var12);
3429 var6 = var8;
3430 varonce = var6;
3431 }
3432 {
3433 { /* Inline typing$AExpr$mtype (self) on <self:AImplicitSelfExpr> */
3434 var15 = self->attrs[COLOR_nitc__typing__AExpr___mtype].val; /* _mtype on <self:AImplicitSelfExpr> */
3435 var13 = var15;
3436 RET_LABEL14:(void)0;
3437 }
3438 }
3439 if (unlikely(var13 == NULL)) {
3440 if(catchStack.cursor >= 0){
3441 longjmp(catchStack.envs[catchStack.cursor], 1);
3442 }
3443 PRINT_ERROR("Runtime error: %s", "Cast failed");
3444 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3393);
3445 fatal_exit(1);
3446 }
3447 {
3448 var16 = nitc___nitc__AbstractCompilerVisitor___new_expr(var_v, var6, var13);
3449 }
3450 var = var16;
3451 goto RET_LABEL;
3452 RET_LABEL:;
3453 return var;
3454 }
3455 /* method abstract_compiler$AEscapeExpr$stmt for (self: AEscapeExpr, AbstractCompilerVisitor) */
3456 void nitc__abstract_compiler___AEscapeExpr___AExpr__stmt(val* self, val* p0) {
3457 val* var_v /* var v: AbstractCompilerVisitor */;
3458 val* var /* : NativeArray[String] */;
3459 static val* varonce;
3460 static val* varonce1;
3461 val* var2 /* : String */;
3462 char* var3 /* : CString */;
3463 val* var4 /* : String */;
3464 val* var5 /* : nullable Int */;
3465 val* var6 /* : nullable Int */;
3466 val* var7 /* : nullable Bool */;
3467 val* var8 /* : nullable Bool */;
3468 static val* varonce9;
3469 val* var10 /* : String */;
3470 char* var11 /* : CString */;
3471 val* var12 /* : String */;
3472 val* var13 /* : nullable Int */;
3473 val* var14 /* : nullable Int */;
3474 val* var15 /* : nullable Bool */;
3475 val* var16 /* : nullable Bool */;
3476 val* var17 /* : nullable EscapeMark */;
3477 val* var19 /* : nullable EscapeMark */;
3478 val* var20 /* : String */;
3479 val* var21 /* : String */;
3480 var_v = p0;
3481 if (unlikely(varonce==NULL)) {
3482 var = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
3483 if (likely(varonce1!=NULL)) {
3484 var2 = varonce1;
3485 } else {
3486 var3 = "goto BREAK_";
3487 var5 = (val*)(11l<<2|1);
3488 var6 = (val*)(11l<<2|1);
3489 var7 = (val*)((long)(0)<<2|3);
3490 var8 = (val*)((long)(0)<<2|3);
3491 var4 = core__flat___CString___to_s_unsafe(var3, var5, var6, var7, var8);
3492 var2 = var4;
3493 varonce1 = var2;
3494 }
3495 ((struct instance_core__NativeArray*)var)->values[0]=var2;
3496 if (likely(varonce9!=NULL)) {
3497 var10 = varonce9;
3498 } else {
3499 var11 = ";";
3500 var13 = (val*)(1l<<2|1);
3501 var14 = (val*)(1l<<2|1);
3502 var15 = (val*)((long)(0)<<2|3);
3503 var16 = (val*)((long)(0)<<2|3);
3504 var12 = core__flat___CString___to_s_unsafe(var11, var13, var14, var15, var16);
3505 var10 = var12;
3506 varonce9 = var10;
3507 }
3508 ((struct instance_core__NativeArray*)var)->values[2]=var10;
3509 } else {
3510 var = varonce;
3511 varonce = NULL;
3512 }
3513 {
3514 { /* Inline scope$AEscapeExpr$escapemark (self) on <self:AEscapeExpr> */
3515 var19 = self->attrs[COLOR_nitc__scope__AEscapeExpr___escapemark].val; /* _escapemark on <self:AEscapeExpr> */
3516 var17 = var19;
3517 RET_LABEL18:(void)0;
3518 }
3519 }
3520 {
3521 var20 = nitc___nitc__AbstractCompilerVisitor___escapemark_name(var_v, var17);
3522 }
3523 ((struct instance_core__NativeArray*)var)->values[1]=var20;
3524 {
3525 var21 = ((val*(*)(val* self))(var->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var); /* native_to_s on <var:NativeArray[String]>*/
3526 }
3527 varonce = var;
3528 {
3529 nitc___nitc__AbstractCompilerVisitor___add(var_v, var21); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
3530 }
3531 RET_LABEL:;
3532 }
3533 /* method abstract_compiler$AReturnExpr$stmt for (self: AReturnExpr, AbstractCompilerVisitor) */
3534 void nitc__abstract_compiler___AReturnExpr___AExpr__stmt(val* self, val* p0) {
3535 val* var_v /* var v: AbstractCompilerVisitor */;
3536 val* var /* : nullable AExpr */;
3537 val* var2 /* : nullable AExpr */;
3538 val* var_nexpr /* var nexpr: nullable AExpr */;
3539 short int var3 /* : Bool */;
3540 short int var4 /* : Bool */;
3541 val* var_other /* var other: nullable Object */;
3542 short int var6 /* : Bool */;
3543 short int var7 /* : Bool */;
3544 val* var8 /* : nullable StaticFrame */;
3545 val* var10 /* : nullable StaticFrame */;
3546 val* var11 /* : nullable RuntimeVariable */;
3547 val* var13 /* : nullable RuntimeVariable */;
3548 val* var_returnvar /* var returnvar: RuntimeVariable */;
3549 val* var14 /* : MType */;
3550 val* var16 /* : MType */;
3551 val* var17 /* : RuntimeVariable */;
3552 val* var_i /* var i: RuntimeVariable */;
3553 val* var18 /* : NativeArray[String] */;
3554 static val* varonce;
3555 static val* varonce19;
3556 val* var20 /* : String */;
3557 char* var21 /* : CString */;
3558 val* var22 /* : String */;
3559 val* var23 /* : nullable Int */;
3560 val* var24 /* : nullable Int */;
3561 val* var25 /* : nullable Bool */;
3562 val* var26 /* : nullable Bool */;
3563 static val* varonce27;
3564 val* var28 /* : String */;
3565 char* var29 /* : CString */;
3566 val* var30 /* : String */;
3567 val* var31 /* : nullable Int */;
3568 val* var32 /* : nullable Int */;
3569 val* var33 /* : nullable Bool */;
3570 val* var34 /* : nullable Bool */;
3571 val* var35 /* : nullable StaticFrame */;
3572 val* var37 /* : nullable StaticFrame */;
3573 val* var38 /* : nullable String */;
3574 val* var40 /* : nullable String */;
3575 val* var41 /* : String */;
3576 var_v = p0;
3577 {
3578 { /* Inline parser_nodes$AEscapeExpr$n_expr (self) on <self:AReturnExpr> */
3579 var2 = self->attrs[COLOR_nitc__parser_nodes__AEscapeExpr___n_expr].val; /* _n_expr on <self:AReturnExpr> */
3580 var = var2;
3581 RET_LABEL1:(void)0;
3582 }
3583 }
3584 var_nexpr = var;
3585 if (var_nexpr == NULL) {
3586 var3 = 0; /* is null */
3587 } else {
3588 var3 = 1; /* arg is null and recv is not */
3589 }
3590 if (0) {
3591 { /* Inline kernel$Object$!= (var_nexpr,((val*)NULL)) on <var_nexpr:nullable AExpr> */
3592 var_other = ((val*)NULL);
3593 {
3594 var6 = ((short int(*)(val* self, val* p0))(var_nexpr->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_nexpr, var_other); /* == on <var_nexpr:nullable AExpr(AExpr)>*/
3595 }
3596 var7 = !var6;
3597 var4 = var7;
3598 goto RET_LABEL5;
3599 RET_LABEL5:(void)0;
3600 }
3601 var3 = var4;
3602 }
3603 if (var3){
3604 {
3605 { /* Inline abstract_compiler$AbstractCompilerVisitor$frame (var_v) on <var_v:AbstractCompilerVisitor> */
3606 var10 = var_v->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on <var_v:AbstractCompilerVisitor> */
3607 var8 = var10;
3608 RET_LABEL9:(void)0;
3609 }
3610 }
3611 if (var8 == NULL) {
3612 if(catchStack.cursor >= 0){
3613 longjmp(catchStack.envs[catchStack.cursor], 1);
3614 }
3615 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3616 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3406);
3617 fatal_exit(1);
3618 } else {
3619 { /* Inline abstract_compiler$StaticFrame$returnvar (var8) on <var8:nullable StaticFrame> */
3620 if (unlikely(var8 == NULL)) {
3621 if(catchStack.cursor >= 0){
3622 longjmp(catchStack.envs[catchStack.cursor], 1);
3623 }
3624 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3625 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 2037);
3626 fatal_exit(1);
3627 }
3628 var13 = var8->attrs[COLOR_nitc__abstract_compiler__StaticFrame___returnvar].val; /* _returnvar on <var8:nullable StaticFrame> */
3629 var11 = var13;
3630 RET_LABEL12:(void)0;
3631 }
3632 }
3633 if (unlikely(var11 == NULL)) {
3634 if(catchStack.cursor >= 0){
3635 longjmp(catchStack.envs[catchStack.cursor], 1);
3636 }
3637 PRINT_ERROR("Runtime error: %s", "Cast failed");
3638 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3406);
3639 fatal_exit(1);
3640 }
3641 var_returnvar = var11;
3642 {
3643 { /* Inline abstract_compiler$RuntimeVariable$mtype (var_returnvar) on <var_returnvar:RuntimeVariable> */
3644 var16 = var_returnvar->attrs[COLOR_nitc__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on <var_returnvar:RuntimeVariable> */
3645 if (unlikely(var16 == NULL)) {
3646 if(catchStack.cursor >= 0){
3647 longjmp(catchStack.envs[catchStack.cursor], 1);
3648 }
3649 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
3650 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1983);
3651 fatal_exit(1);
3652 }
3653 var14 = var16;
3654 RET_LABEL15:(void)0;
3655 }
3656 }
3657 {
3658 var17 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var_nexpr, var14);
3659 }
3660 var_i = var17;
3661 {
3662 nitc___nitc__AbstractCompilerVisitor___assign(var_v, var_returnvar, var_i); /* Direct call abstract_compiler$AbstractCompilerVisitor$assign on <var_v:AbstractCompilerVisitor>*/
3663 }
3664 } else {
3665 }
3666 if (unlikely(varonce==NULL)) {
3667 var18 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
3668 if (likely(varonce19!=NULL)) {
3669 var20 = varonce19;
3670 } else {
3671 var21 = "goto ";
3672 var23 = (val*)(5l<<2|1);
3673 var24 = (val*)(5l<<2|1);
3674 var25 = (val*)((long)(0)<<2|3);
3675 var26 = (val*)((long)(0)<<2|3);
3676 var22 = core__flat___CString___to_s_unsafe(var21, var23, var24, var25, var26);
3677 var20 = var22;
3678 varonce19 = var20;
3679 }
3680 ((struct instance_core__NativeArray*)var18)->values[0]=var20;
3681 if (likely(varonce27!=NULL)) {
3682 var28 = varonce27;
3683 } else {
3684 var29 = ";";
3685 var31 = (val*)(1l<<2|1);
3686 var32 = (val*)(1l<<2|1);
3687 var33 = (val*)((long)(0)<<2|3);
3688 var34 = (val*)((long)(0)<<2|3);
3689 var30 = core__flat___CString___to_s_unsafe(var29, var31, var32, var33, var34);
3690 var28 = var30;
3691 varonce27 = var28;
3692 }
3693 ((struct instance_core__NativeArray*)var18)->values[2]=var28;
3694 } else {
3695 var18 = varonce;
3696 varonce = NULL;
3697 }
3698 {
3699 { /* Inline abstract_compiler$AbstractCompilerVisitor$frame (var_v) on <var_v:AbstractCompilerVisitor> */
3700 var37 = var_v->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on <var_v:AbstractCompilerVisitor> */
3701 var35 = var37;
3702 RET_LABEL36:(void)0;
3703 }
3704 }
3705 if (var35 == NULL) {
3706 if(catchStack.cursor >= 0){
3707 longjmp(catchStack.envs[catchStack.cursor], 1);
3708 }
3709 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3710 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3410);
3711 fatal_exit(1);
3712 } else {
3713 { /* Inline abstract_compiler$StaticFrame$returnlabel (var35) on <var35:nullable StaticFrame> */
3714 if (unlikely(var35 == NULL)) {
3715 if(catchStack.cursor >= 0){
3716 longjmp(catchStack.envs[catchStack.cursor], 1);
3717 }
3718 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3719 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 2040);
3720 fatal_exit(1);
3721 }
3722 var40 = var35->attrs[COLOR_nitc__abstract_compiler__StaticFrame___returnlabel].val; /* _returnlabel on <var35:nullable StaticFrame> */
3723 var38 = var40;
3724 RET_LABEL39:(void)0;
3725 }
3726 }
3727 if (unlikely(var38 == NULL)) {
3728 if(catchStack.cursor >= 0){
3729 longjmp(catchStack.envs[catchStack.cursor], 1);
3730 }
3731 PRINT_ERROR("Runtime error: %s", "Cast failed");
3732 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3410);
3733 fatal_exit(1);
3734 }
3735 ((struct instance_core__NativeArray*)var18)->values[1]=var38;
3736 {
3737 var41 = ((val*(*)(val* self))(var18->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var18); /* native_to_s on <var18:NativeArray[String]>*/
3738 }
3739 varonce = var18;
3740 {
3741 nitc___nitc__AbstractCompilerVisitor___add(var_v, var41); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
3742 }
3743 RET_LABEL:;
3744 }
3745 /* method abstract_compiler$AAbortExpr$stmt for (self: AAbortExpr, AbstractCompilerVisitor) */
3746 void nitc__abstract_compiler___AAbortExpr___AExpr__stmt(val* self, val* p0) {
3747 val* var_v /* var v: AbstractCompilerVisitor */;
3748 static val* varonce;
3749 val* var /* : String */;
3750 char* var1 /* : CString */;
3751 val* var2 /* : String */;
3752 val* var3 /* : nullable Int */;
3753 val* var4 /* : nullable Int */;
3754 val* var5 /* : nullable Bool */;
3755 val* var6 /* : nullable Bool */;
3756 var_v = p0;
3757 if (likely(varonce!=NULL)) {
3758 var = varonce;
3759 } else {
3760 var1 = "Aborted";
3761 var3 = (val*)(7l<<2|1);
3762 var4 = (val*)(7l<<2|1);
3763 var5 = (val*)((long)(0)<<2|3);
3764 var6 = (val*)((long)(0)<<2|3);
3765 var2 = core__flat___CString___to_s_unsafe(var1, var3, var4, var5, var6);
3766 var = var2;
3767 varonce = var;
3768 }
3769 {
3770 nitc___nitc__AbstractCompilerVisitor___add_abort(var_v, var); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_abort on <var_v:AbstractCompilerVisitor>*/
3771 }
3772 RET_LABEL:;
3773 }
3774 /* method abstract_compiler$AIfExpr$stmt for (self: AIfExpr, AbstractCompilerVisitor) */
3775 void nitc__abstract_compiler___AIfExpr___AExpr__stmt(val* self, val* p0) {
3776 val* var_v /* var v: AbstractCompilerVisitor */;
3777 val* var /* : AExpr */;
3778 val* var2 /* : AExpr */;
3779 val* var3 /* : RuntimeVariable */;
3780 val* var_cond /* var cond: RuntimeVariable */;
3781 val* var4 /* : NativeArray[String] */;
3782 static val* varonce;
3783 static val* varonce5;
3784 val* var6 /* : String */;
3785 char* var7 /* : CString */;
3786 val* var8 /* : String */;
3787 val* var9 /* : nullable Int */;
3788 val* var10 /* : nullable Int */;
3789 val* var11 /* : nullable Bool */;
3790 val* var12 /* : nullable Bool */;
3791 static val* varonce13;
3792 val* var14 /* : String */;
3793 char* var15 /* : CString */;
3794 val* var16 /* : String */;
3795 val* var17 /* : nullable Int */;
3796 val* var18 /* : nullable Int */;
3797 val* var19 /* : nullable Bool */;
3798 val* var20 /* : nullable Bool */;
3799 val* var21 /* : String */;
3800 val* var22 /* : String */;
3801 val* var23 /* : nullable AExpr */;
3802 val* var25 /* : nullable AExpr */;
3803 static val* varonce26;
3804 val* var27 /* : String */;
3805 char* var28 /* : CString */;
3806 val* var29 /* : String */;
3807 val* var30 /* : nullable Int */;
3808 val* var31 /* : nullable Int */;
3809 val* var32 /* : nullable Bool */;
3810 val* var33 /* : nullable Bool */;
3811 val* var34 /* : nullable AExpr */;
3812 val* var36 /* : nullable AExpr */;
3813 static val* varonce37;
3814 val* var38 /* : String */;
3815 char* var39 /* : CString */;
3816 val* var40 /* : String */;
3817 val* var41 /* : nullable Int */;
3818 val* var42 /* : nullable Int */;
3819 val* var43 /* : nullable Bool */;
3820 val* var44 /* : nullable Bool */;
3821 var_v = p0;
3822 {
3823 { /* Inline parser_nodes$AIfExpr$n_expr (self) on <self:AIfExpr> */
3824 var2 = self->attrs[COLOR_nitc__parser_nodes__AIfExpr___n_expr].val; /* _n_expr on <self:AIfExpr> */
3825 if (unlikely(var2 == NULL)) {
3826 if(catchStack.cursor >= 0){
3827 longjmp(catchStack.envs[catchStack.cursor], 1);
3828 }
3829 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3830 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1924);
3831 fatal_exit(1);
3832 }
3833 var = var2;
3834 RET_LABEL1:(void)0;
3835 }
3836 }
3837 {
3838 var3 = nitc___nitc__AbstractCompilerVisitor___expr_bool(var_v, var);
3839 }
3840 var_cond = var3;
3841 if (unlikely(varonce==NULL)) {
3842 var4 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
3843 if (likely(varonce5!=NULL)) {
3844 var6 = varonce5;
3845 } else {
3846 var7 = "if (";
3847 var9 = (val*)(4l<<2|1);
3848 var10 = (val*)(4l<<2|1);
3849 var11 = (val*)((long)(0)<<2|3);
3850 var12 = (val*)((long)(0)<<2|3);
3851 var8 = core__flat___CString___to_s_unsafe(var7, var9, var10, var11, var12);
3852 var6 = var8;
3853 varonce5 = var6;
3854 }
3855 ((struct instance_core__NativeArray*)var4)->values[0]=var6;
3856 if (likely(varonce13!=NULL)) {
3857 var14 = varonce13;
3858 } else {
3859 var15 = "){";
3860 var17 = (val*)(2l<<2|1);
3861 var18 = (val*)(2l<<2|1);
3862 var19 = (val*)((long)(0)<<2|3);
3863 var20 = (val*)((long)(0)<<2|3);
3864 var16 = core__flat___CString___to_s_unsafe(var15, var17, var18, var19, var20);
3865 var14 = var16;
3866 varonce13 = var14;
3867 }
3868 ((struct instance_core__NativeArray*)var4)->values[2]=var14;
3869 } else {
3870 var4 = varonce;
3871 varonce = NULL;
3872 }
3873 {
3874 var21 = ((val*(*)(val* self))(var_cond->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_cond); /* to_s on <var_cond:RuntimeVariable>*/
3875 }
3876 ((struct instance_core__NativeArray*)var4)->values[1]=var21;
3877 {
3878 var22 = ((val*(*)(val* self))(var4->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var4); /* native_to_s on <var4:NativeArray[String]>*/
3879 }
3880 varonce = var4;
3881 {
3882 nitc___nitc__AbstractCompilerVisitor___add(var_v, var22); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
3883 }
3884 {
3885 { /* Inline parser_nodes$AIfExpr$n_then (self) on <self:AIfExpr> */
3886 var25 = self->attrs[COLOR_nitc__parser_nodes__AIfExpr___n_then].val; /* _n_then on <self:AIfExpr> */
3887 var23 = var25;
3888 RET_LABEL24:(void)0;
3889 }
3890 }
3891 {
3892 nitc___nitc__AbstractCompilerVisitor___stmt(var_v, var23); /* Direct call abstract_compiler$AbstractCompilerVisitor$stmt on <var_v:AbstractCompilerVisitor>*/
3893 }
3894 if (likely(varonce26!=NULL)) {
3895 var27 = varonce26;
3896 } else {
3897 var28 = "} else {";
3898 var30 = (val*)(8l<<2|1);
3899 var31 = (val*)(8l<<2|1);
3900 var32 = (val*)((long)(0)<<2|3);
3901 var33 = (val*)((long)(0)<<2|3);
3902 var29 = core__flat___CString___to_s_unsafe(var28, var30, var31, var32, var33);
3903 var27 = var29;
3904 varonce26 = var27;
3905 }
3906 {
3907 nitc___nitc__AbstractCompilerVisitor___add(var_v, var27); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
3908 }
3909 {
3910 { /* Inline parser_nodes$AIfExpr$n_else (self) on <self:AIfExpr> */
3911 var36 = self->attrs[COLOR_nitc__parser_nodes__AIfExpr___n_else].val; /* _n_else on <self:AIfExpr> */
3912 var34 = var36;
3913 RET_LABEL35:(void)0;
3914 }
3915 }
3916 {
3917 nitc___nitc__AbstractCompilerVisitor___stmt(var_v, var34); /* Direct call abstract_compiler$AbstractCompilerVisitor$stmt on <var_v:AbstractCompilerVisitor>*/
3918 }
3919 if (likely(varonce37!=NULL)) {
3920 var38 = varonce37;
3921 } else {
3922 var39 = "}";
3923 var41 = (val*)(1l<<2|1);
3924 var42 = (val*)(1l<<2|1);
3925 var43 = (val*)((long)(0)<<2|3);
3926 var44 = (val*)((long)(0)<<2|3);
3927 var40 = core__flat___CString___to_s_unsafe(var39, var41, var42, var43, var44);
3928 var38 = var40;
3929 varonce37 = var38;
3930 }
3931 {
3932 nitc___nitc__AbstractCompilerVisitor___add(var_v, var38); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
3933 }
3934 RET_LABEL:;
3935 }
3936 /* method abstract_compiler$AIfExpr$expr for (self: AIfExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
3937 val* nitc__abstract_compiler___AIfExpr___AExpr__expr(val* self, val* p0) {
3938 val* var /* : nullable RuntimeVariable */;
3939 val* var_v /* var v: AbstractCompilerVisitor */;
3940 val* var1 /* : nullable MType */;
3941 val* var3 /* : nullable MType */;
3942 val* var4 /* : RuntimeVariable */;
3943 val* var_res /* var res: RuntimeVariable */;
3944 val* var5 /* : AExpr */;
3945 val* var7 /* : AExpr */;
3946 val* var8 /* : RuntimeVariable */;
3947 val* var_cond /* var cond: RuntimeVariable */;
3948 val* var9 /* : NativeArray[String] */;
3949 static val* varonce;
3950 static val* varonce10;
3951 val* var11 /* : String */;
3952 char* var12 /* : CString */;
3953 val* var13 /* : String */;
3954 val* var14 /* : nullable Int */;
3955 val* var15 /* : nullable Int */;
3956 val* var16 /* : nullable Bool */;
3957 val* var17 /* : nullable Bool */;
3958 static val* varonce18;
3959 val* var19 /* : String */;
3960 char* var20 /* : CString */;
3961 val* var21 /* : String */;
3962 val* var22 /* : nullable Int */;
3963 val* var23 /* : nullable Int */;
3964 val* var24 /* : nullable Bool */;
3965 val* var25 /* : nullable Bool */;
3966 val* var26 /* : String */;
3967 val* var27 /* : String */;
3968 val* var28 /* : nullable AExpr */;
3969 val* var30 /* : nullable AExpr */;
3970 val* var31 /* : RuntimeVariable */;
3971 static val* varonce32;
3972 val* var33 /* : String */;
3973 char* var34 /* : CString */;
3974 val* var35 /* : String */;
3975 val* var36 /* : nullable Int */;
3976 val* var37 /* : nullable Int */;
3977 val* var38 /* : nullable Bool */;
3978 val* var39 /* : nullable Bool */;
3979 val* var40 /* : nullable AExpr */;
3980 val* var42 /* : nullable AExpr */;
3981 val* var43 /* : RuntimeVariable */;
3982 static val* varonce44;
3983 val* var45 /* : String */;
3984 char* var46 /* : CString */;
3985 val* var47 /* : String */;
3986 val* var48 /* : nullable Int */;
3987 val* var49 /* : nullable Int */;
3988 val* var50 /* : nullable Bool */;
3989 val* var51 /* : nullable Bool */;
3990 var_v = p0;
3991 {
3992 { /* Inline typing$AExpr$mtype (self) on <self:AIfExpr> */
3993 var3 = self->attrs[COLOR_nitc__typing__AExpr___mtype].val; /* _mtype on <self:AIfExpr> */
3994 var1 = var3;
3995 RET_LABEL2:(void)0;
3996 }
3997 }
3998 if (unlikely(var1 == NULL)) {
3999 if(catchStack.cursor >= 0){
4000 longjmp(catchStack.envs[catchStack.cursor], 1);
4001 }
4002 PRINT_ERROR("Runtime error: %s", "Cast failed");
4003 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3431);
4004 fatal_exit(1);
4005 }
4006 {
4007 var4 = nitc___nitc__AbstractCompilerVisitor___new_var(var_v, var1);
4008 }
4009 var_res = var4;
4010 {
4011 { /* Inline parser_nodes$AIfExpr$n_expr (self) on <self:AIfExpr> */
4012 var7 = self->attrs[COLOR_nitc__parser_nodes__AIfExpr___n_expr].val; /* _n_expr on <self:AIfExpr> */
4013 if (unlikely(var7 == NULL)) {
4014 if(catchStack.cursor >= 0){
4015 longjmp(catchStack.envs[catchStack.cursor], 1);
4016 }
4017 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
4018 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1924);
4019 fatal_exit(1);
4020 }
4021 var5 = var7;
4022 RET_LABEL6:(void)0;
4023 }
4024 }
4025 {
4026 var8 = nitc___nitc__AbstractCompilerVisitor___expr_bool(var_v, var5);
4027 }
4028 var_cond = var8;
4029 if (unlikely(varonce==NULL)) {
4030 var9 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
4031 if (likely(varonce10!=NULL)) {
4032 var11 = varonce10;
4033 } else {
4034 var12 = "if (";
4035 var14 = (val*)(4l<<2|1);
4036 var15 = (val*)(4l<<2|1);
4037 var16 = (val*)((long)(0)<<2|3);
4038 var17 = (val*)((long)(0)<<2|3);
4039 var13 = core__flat___CString___to_s_unsafe(var12, var14, var15, var16, var17);
4040 var11 = var13;
4041 varonce10 = var11;
4042 }
4043 ((struct instance_core__NativeArray*)var9)->values[0]=var11;
4044 if (likely(varonce18!=NULL)) {
4045 var19 = varonce18;
4046 } else {
4047 var20 = "){";
4048 var22 = (val*)(2l<<2|1);
4049 var23 = (val*)(2l<<2|1);
4050 var24 = (val*)((long)(0)<<2|3);
4051 var25 = (val*)((long)(0)<<2|3);
4052 var21 = core__flat___CString___to_s_unsafe(var20, var22, var23, var24, var25);
4053 var19 = var21;
4054 varonce18 = var19;
4055 }
4056 ((struct instance_core__NativeArray*)var9)->values[2]=var19;
4057 } else {
4058 var9 = varonce;
4059 varonce = NULL;
4060 }
4061 {
4062 var26 = ((val*(*)(val* self))(var_cond->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_cond); /* to_s on <var_cond:RuntimeVariable>*/
4063 }
4064 ((struct instance_core__NativeArray*)var9)->values[1]=var26;
4065 {
4066 var27 = ((val*(*)(val* self))(var9->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var9); /* native_to_s on <var9:NativeArray[String]>*/
4067 }
4068 varonce = var9;
4069 {
4070 nitc___nitc__AbstractCompilerVisitor___add(var_v, var27); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
4071 }
4072 {
4073 { /* Inline parser_nodes$AIfExpr$n_then (self) on <self:AIfExpr> */
4074 var30 = self->attrs[COLOR_nitc__parser_nodes__AIfExpr___n_then].val; /* _n_then on <self:AIfExpr> */
4075 var28 = var30;
4076 RET_LABEL29:(void)0;
4077 }
4078 }
4079 if (unlikely(var28 == NULL)) {
4080 if(catchStack.cursor >= 0){
4081 longjmp(catchStack.envs[catchStack.cursor], 1);
4082 }
4083 PRINT_ERROR("Runtime error: %s", "Cast failed");
4084 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3434);
4085 fatal_exit(1);
4086 }
4087 {
4088 var31 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var28, ((val*)NULL));
4089 }
4090 {
4091 nitc___nitc__AbstractCompilerVisitor___assign(var_v, var_res, var31); /* Direct call abstract_compiler$AbstractCompilerVisitor$assign on <var_v:AbstractCompilerVisitor>*/
4092 }
4093 if (likely(varonce32!=NULL)) {
4094 var33 = varonce32;
4095 } else {
4096 var34 = "} else {";
4097 var36 = (val*)(8l<<2|1);
4098 var37 = (val*)(8l<<2|1);
4099 var38 = (val*)((long)(0)<<2|3);
4100 var39 = (val*)((long)(0)<<2|3);
4101 var35 = core__flat___CString___to_s_unsafe(var34, var36, var37, var38, var39);
4102 var33 = var35;
4103 varonce32 = var33;
4104 }
4105 {
4106 nitc___nitc__AbstractCompilerVisitor___add(var_v, var33); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
4107 }
4108 {
4109 { /* Inline parser_nodes$AIfExpr$n_else (self) on <self:AIfExpr> */
4110 var42 = self->attrs[COLOR_nitc__parser_nodes__AIfExpr___n_else].val; /* _n_else on <self:AIfExpr> */
4111 var40 = var42;
4112 RET_LABEL41:(void)0;
4113 }
4114 }
4115 if (unlikely(var40 == NULL)) {
4116 if(catchStack.cursor >= 0){
4117 longjmp(catchStack.envs[catchStack.cursor], 1);
4118 }
4119 PRINT_ERROR("Runtime error: %s", "Cast failed");
4120 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3436);
4121 fatal_exit(1);
4122 }
4123 {
4124 var43 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var40, ((val*)NULL));
4125 }
4126 {
4127 nitc___nitc__AbstractCompilerVisitor___assign(var_v, var_res, var43); /* Direct call abstract_compiler$AbstractCompilerVisitor$assign on <var_v:AbstractCompilerVisitor>*/
4128 }
4129 if (likely(varonce44!=NULL)) {
4130 var45 = varonce44;
4131 } else {
4132 var46 = "}";
4133 var48 = (val*)(1l<<2|1);
4134 var49 = (val*)(1l<<2|1);
4135 var50 = (val*)((long)(0)<<2|3);
4136 var51 = (val*)((long)(0)<<2|3);
4137 var47 = core__flat___CString___to_s_unsafe(var46, var48, var49, var50, var51);
4138 var45 = var47;
4139 varonce44 = var45;
4140 }
4141 {
4142 nitc___nitc__AbstractCompilerVisitor___add(var_v, var45); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
4143 }
4144 var = var_res;
4145 goto RET_LABEL;
4146 RET_LABEL:;
4147 return var;
4148 }
4149 /* method abstract_compiler$AIfexprExpr$expr for (self: AIfexprExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
4150 val* nitc__abstract_compiler___AIfexprExpr___AExpr__expr(val* self, val* p0) {
4151 val* var /* : nullable RuntimeVariable */;
4152 val* var_v /* var v: AbstractCompilerVisitor */;
4153 val* var1 /* : nullable MType */;
4154 val* var3 /* : nullable MType */;
4155 val* var4 /* : RuntimeVariable */;
4156 val* var_res /* var res: RuntimeVariable */;
4157 val* var5 /* : AExpr */;
4158 val* var7 /* : AExpr */;
4159 val* var8 /* : RuntimeVariable */;
4160 val* var_cond /* var cond: RuntimeVariable */;
4161 val* var9 /* : NativeArray[String] */;
4162 static val* varonce;
4163 static val* varonce10;
4164 val* var11 /* : String */;
4165 char* var12 /* : CString */;
4166 val* var13 /* : String */;
4167 val* var14 /* : nullable Int */;
4168 val* var15 /* : nullable Int */;
4169 val* var16 /* : nullable Bool */;
4170 val* var17 /* : nullable Bool */;
4171 static val* varonce18;
4172 val* var19 /* : String */;
4173 char* var20 /* : CString */;
4174 val* var21 /* : String */;
4175 val* var22 /* : nullable Int */;
4176 val* var23 /* : nullable Int */;
4177 val* var24 /* : nullable Bool */;
4178 val* var25 /* : nullable Bool */;
4179 val* var26 /* : String */;
4180 val* var27 /* : String */;
4181 val* var28 /* : AExpr */;
4182 val* var30 /* : AExpr */;
4183 val* var31 /* : RuntimeVariable */;
4184 static val* varonce32;
4185 val* var33 /* : String */;
4186 char* var34 /* : CString */;
4187 val* var35 /* : String */;
4188 val* var36 /* : nullable Int */;
4189 val* var37 /* : nullable Int */;
4190 val* var38 /* : nullable Bool */;
4191 val* var39 /* : nullable Bool */;
4192 val* var40 /* : AExpr */;
4193 val* var42 /* : AExpr */;
4194 val* var43 /* : RuntimeVariable */;
4195 static val* varonce44;
4196 val* var45 /* : String */;
4197 char* var46 /* : CString */;
4198 val* var47 /* : String */;
4199 val* var48 /* : nullable Int */;
4200 val* var49 /* : nullable Int */;
4201 val* var50 /* : nullable Bool */;
4202 val* var51 /* : nullable Bool */;
4203 var_v = p0;
4204 {
4205 { /* Inline typing$AExpr$mtype (self) on <self:AIfexprExpr> */
4206 var3 = self->attrs[COLOR_nitc__typing__AExpr___mtype].val; /* _mtype on <self:AIfexprExpr> */
4207 var1 = var3;
4208 RET_LABEL2:(void)0;
4209 }
4210 }
4211 if (unlikely(var1 == NULL)) {
4212 if(catchStack.cursor >= 0){
4213 longjmp(catchStack.envs[catchStack.cursor], 1);
4214 }
4215 PRINT_ERROR("Runtime error: %s", "Cast failed");
4216 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3445);
4217 fatal_exit(1);
4218 }
4219 {
4220 var4 = nitc___nitc__AbstractCompilerVisitor___new_var(var_v, var1);
4221 }
4222 var_res = var4;
4223 {
4224 { /* Inline parser_nodes$AIfexprExpr$n_expr (self) on <self:AIfexprExpr> */
4225 var7 = self->attrs[COLOR_nitc__parser_nodes__AIfexprExpr___n_expr].val; /* _n_expr on <self:AIfexprExpr> */
4226 if (unlikely(var7 == NULL)) {
4227 if(catchStack.cursor >= 0){
4228 longjmp(catchStack.envs[catchStack.cursor], 1);
4229 }
4230 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
4231 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1947);
4232 fatal_exit(1);
4233 }
4234 var5 = var7;
4235 RET_LABEL6:(void)0;
4236 }
4237 }
4238 {
4239 var8 = nitc___nitc__AbstractCompilerVisitor___expr_bool(var_v, var5);
4240 }
4241 var_cond = var8;
4242 if (unlikely(varonce==NULL)) {
4243 var9 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
4244 if (likely(varonce10!=NULL)) {
4245 var11 = varonce10;
4246 } else {
4247 var12 = "if (";
4248 var14 = (val*)(4l<<2|1);
4249 var15 = (val*)(4l<<2|1);
4250 var16 = (val*)((long)(0)<<2|3);
4251 var17 = (val*)((long)(0)<<2|3);
4252 var13 = core__flat___CString___to_s_unsafe(var12, var14, var15, var16, var17);
4253 var11 = var13;
4254 varonce10 = var11;
4255 }
4256 ((struct instance_core__NativeArray*)var9)->values[0]=var11;
4257 if (likely(varonce18!=NULL)) {
4258 var19 = varonce18;
4259 } else {
4260 var20 = "){";
4261 var22 = (val*)(2l<<2|1);
4262 var23 = (val*)(2l<<2|1);
4263 var24 = (val*)((long)(0)<<2|3);
4264 var25 = (val*)((long)(0)<<2|3);
4265 var21 = core__flat___CString___to_s_unsafe(var20, var22, var23, var24, var25);
4266 var19 = var21;
4267 varonce18 = var19;
4268 }
4269 ((struct instance_core__NativeArray*)var9)->values[2]=var19;
4270 } else {
4271 var9 = varonce;
4272 varonce = NULL;
4273 }
4274 {
4275 var26 = ((val*(*)(val* self))(var_cond->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_cond); /* to_s on <var_cond:RuntimeVariable>*/
4276 }
4277 ((struct instance_core__NativeArray*)var9)->values[1]=var26;
4278 {
4279 var27 = ((val*(*)(val* self))(var9->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var9); /* native_to_s on <var9:NativeArray[String]>*/
4280 }
4281 varonce = var9;
4282 {
4283 nitc___nitc__AbstractCompilerVisitor___add(var_v, var27); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
4284 }
4285 {
4286 { /* Inline parser_nodes$AIfexprExpr$n_then (self) on <self:AIfexprExpr> */
4287 var30 = self->attrs[COLOR_nitc__parser_nodes__AIfexprExpr___n_then].val; /* _n_then on <self:AIfexprExpr> */
4288 if (unlikely(var30 == NULL)) {
4289 if(catchStack.cursor >= 0){
4290 longjmp(catchStack.envs[catchStack.cursor], 1);
4291 }
4292 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_then");
4293 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1953);
4294 fatal_exit(1);
4295 }
4296 var28 = var30;
4297 RET_LABEL29:(void)0;
4298 }
4299 }
4300 {
4301 var31 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var28, ((val*)NULL));
4302 }
4303 {
4304 nitc___nitc__AbstractCompilerVisitor___assign(var_v, var_res, var31); /* Direct call abstract_compiler$AbstractCompilerVisitor$assign on <var_v:AbstractCompilerVisitor>*/
4305 }
4306 if (likely(varonce32!=NULL)) {
4307 var33 = varonce32;
4308 } else {
4309 var34 = "} else {";
4310 var36 = (val*)(8l<<2|1);
4311 var37 = (val*)(8l<<2|1);
4312 var38 = (val*)((long)(0)<<2|3);
4313 var39 = (val*)((long)(0)<<2|3);
4314 var35 = core__flat___CString___to_s_unsafe(var34, var36, var37, var38, var39);
4315 var33 = var35;
4316 varonce32 = var33;
4317 }
4318 {
4319 nitc___nitc__AbstractCompilerVisitor___add(var_v, var33); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
4320 }
4321 {
4322 { /* Inline parser_nodes$AIfexprExpr$n_else (self) on <self:AIfexprExpr> */
4323 var42 = self->attrs[COLOR_nitc__parser_nodes__AIfexprExpr___n_else].val; /* _n_else on <self:AIfexprExpr> */
4324 if (unlikely(var42 == NULL)) {
4325 if(catchStack.cursor >= 0){
4326 longjmp(catchStack.envs[catchStack.cursor], 1);
4327 }
4328 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_else");
4329 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1959);
4330 fatal_exit(1);
4331 }
4332 var40 = var42;
4333 RET_LABEL41:(void)0;
4334 }
4335 }
4336 {
4337 var43 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var40, ((val*)NULL));
4338 }
4339 {
4340 nitc___nitc__AbstractCompilerVisitor___assign(var_v, var_res, var43); /* Direct call abstract_compiler$AbstractCompilerVisitor$assign on <var_v:AbstractCompilerVisitor>*/
4341 }
4342 if (likely(varonce44!=NULL)) {
4343 var45 = varonce44;
4344 } else {
4345 var46 = "}";
4346 var48 = (val*)(1l<<2|1);
4347 var49 = (val*)(1l<<2|1);
4348 var50 = (val*)((long)(0)<<2|3);
4349 var51 = (val*)((long)(0)<<2|3);
4350 var47 = core__flat___CString___to_s_unsafe(var46, var48, var49, var50, var51);
4351 var45 = var47;
4352 varonce44 = var45;
4353 }
4354 {
4355 nitc___nitc__AbstractCompilerVisitor___add(var_v, var45); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
4356 }
4357 var = var_res;
4358 goto RET_LABEL;
4359 RET_LABEL:;
4360 return var;
4361 }
4362 /* method abstract_compiler$ADoExpr$stmt for (self: ADoExpr, AbstractCompilerVisitor) */
4363 void nitc__abstract_compiler___ADoExpr___AExpr__stmt(val* self, val* p0) {
4364 val* var_v /* var v: AbstractCompilerVisitor */;
4365 val* var /* : nullable AExpr */;
4366 val* var2 /* : nullable AExpr */;
4367 short int var3 /* : Bool */;
4368 short int var4 /* : Bool */;
4369 val* var_other /* var other: nullable Object */;
4370 short int var6 /* : Bool */;
4371 short int var7 /* : Bool */;
4372 static val* varonce;
4373 val* var8 /* : String */;
4374 char* var9 /* : CString */;
4375 val* var10 /* : String */;
4376 val* var11 /* : nullable Int */;
4377 val* var12 /* : nullable Int */;
4378 val* var13 /* : nullable Bool */;
4379 val* var14 /* : nullable Bool */;
4380 static val* varonce15;
4381 val* var16 /* : String */;
4382 char* var17 /* : CString */;
4383 val* var18 /* : String */;
4384 val* var19 /* : nullable Int */;
4385 val* var20 /* : nullable Int */;
4386 val* var21 /* : nullable Bool */;
4387 val* var22 /* : nullable Bool */;
4388 val* var23 /* : nullable AExpr */;
4389 val* var25 /* : nullable AExpr */;
4390 static val* varonce26;
4391 val* var27 /* : String */;
4392 char* var28 /* : CString */;
4393 val* var29 /* : String */;
4394 val* var30 /* : nullable Int */;
4395 val* var31 /* : nullable Int */;
4396 val* var32 /* : nullable Bool */;
4397 val* var33 /* : nullable Bool */;
4398 static val* varonce34;
4399 val* var35 /* : String */;
4400 char* var36 /* : CString */;
4401 val* var37 /* : String */;
4402 val* var38 /* : nullable Int */;
4403 val* var39 /* : nullable Int */;
4404 val* var40 /* : nullable Bool */;
4405 val* var41 /* : nullable Bool */;
4406 static val* varonce42;
4407 val* var43 /* : String */;
4408 char* var44 /* : CString */;
4409 val* var45 /* : String */;
4410 val* var46 /* : nullable Int */;
4411 val* var47 /* : nullable Int */;
4412 val* var48 /* : nullable Bool */;
4413 val* var49 /* : nullable Bool */;
4414 val* var50 /* : nullable AExpr */;
4415 val* var52 /* : nullable AExpr */;
4416 static val* varonce53;
4417 val* var54 /* : String */;
4418 char* var55 /* : CString */;
4419 val* var56 /* : String */;
4420 val* var57 /* : nullable Int */;
4421 val* var58 /* : nullable Int */;
4422 val* var59 /* : nullable Bool */;
4423 val* var60 /* : nullable Bool */;
4424 val* var61 /* : nullable AExpr */;
4425 val* var63 /* : nullable AExpr */;
4426 val* var64 /* : nullable EscapeMark */;
4427 val* var66 /* : nullable EscapeMark */;
4428 var_v = p0;
4429 {
4430 { /* Inline parser_nodes$ADoExpr$n_catch (self) on <self:ADoExpr> */
4431 var2 = self->attrs[COLOR_nitc__parser_nodes__ADoExpr___n_catch].val; /* _n_catch on <self:ADoExpr> */
4432 var = var2;
4433 RET_LABEL1:(void)0;
4434 }
4435 }
4436 if (var == NULL) {
4437 var3 = 0; /* is null */
4438 } else {
4439 var3 = 1; /* arg is null and recv is not */
4440 }
4441 if (0) {
4442 { /* Inline kernel$Object$!= (var,((val*)NULL)) on <var:nullable AExpr> */
4443 var_other = ((val*)NULL);
4444 {
4445 var6 = ((short int(*)(val* self, val* p0))(var->class->vft[COLOR_core__kernel__Object___61d_61d]))(var, var_other); /* == on <var:nullable AExpr(AExpr)>*/
4446 }
4447 var7 = !var6;
4448 var4 = var7;
4449 goto RET_LABEL5;
4450 RET_LABEL5:(void)0;
4451 }
4452 var3 = var4;
4453 }
4454 if (var3){
4455 if (likely(varonce!=NULL)) {
4456 var8 = varonce;
4457 } else {
4458 var9 = "catchStack.cursor += 1;";
4459 var11 = (val*)(23l<<2|1);
4460 var12 = (val*)(23l<<2|1);
4461 var13 = (val*)((long)(0)<<2|3);
4462 var14 = (val*)((long)(0)<<2|3);
4463 var10 = core__flat___CString___to_s_unsafe(var9, var11, var12, var13, var14);
4464 var8 = var10;
4465 varonce = var8;
4466 }
4467 {
4468 nitc___nitc__AbstractCompilerVisitor___add(var_v, var8); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
4469 }
4470 if (likely(varonce15!=NULL)) {
4471 var16 = varonce15;
4472 } else {
4473 var17 = "if(!setjmp(catchStack.envs[catchStack.cursor])){";
4474 var19 = (val*)(48l<<2|1);
4475 var20 = (val*)(48l<<2|1);
4476 var21 = (val*)((long)(0)<<2|3);
4477 var22 = (val*)((long)(0)<<2|3);
4478 var18 = core__flat___CString___to_s_unsafe(var17, var19, var20, var21, var22);
4479 var16 = var18;
4480 varonce15 = var16;
4481 }
4482 {
4483 nitc___nitc__AbstractCompilerVisitor___add(var_v, var16); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
4484 }
4485 {
4486 { /* Inline parser_nodes$ADoExpr$n_block (self) on <self:ADoExpr> */
4487 var25 = self->attrs[COLOR_nitc__parser_nodes__ADoExpr___n_block].val; /* _n_block on <self:ADoExpr> */
4488 var23 = var25;
4489 RET_LABEL24:(void)0;
4490 }
4491 }
4492 {
4493 nitc___nitc__AbstractCompilerVisitor___stmt(var_v, var23); /* Direct call abstract_compiler$AbstractCompilerVisitor$stmt on <var_v:AbstractCompilerVisitor>*/
4494 }
4495 if (likely(varonce26!=NULL)) {
4496 var27 = varonce26;
4497 } else {
4498 var28 = "catchStack.cursor -= 1;";
4499 var30 = (val*)(23l<<2|1);
4500 var31 = (val*)(23l<<2|1);
4501 var32 = (val*)((long)(0)<<2|3);
4502 var33 = (val*)((long)(0)<<2|3);
4503 var29 = core__flat___CString___to_s_unsafe(var28, var30, var31, var32, var33);
4504 var27 = var29;
4505 varonce26 = var27;
4506 }
4507 {
4508 nitc___nitc__AbstractCompilerVisitor___add(var_v, var27); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
4509 }
4510 if (likely(varonce34!=NULL)) {
4511 var35 = varonce34;
4512 } else {
4513 var36 = "}else {";
4514 var38 = (val*)(7l<<2|1);
4515 var39 = (val*)(7l<<2|1);
4516 var40 = (val*)((long)(0)<<2|3);
4517 var41 = (val*)((long)(0)<<2|3);
4518 var37 = core__flat___CString___to_s_unsafe(var36, var38, var39, var40, var41);
4519 var35 = var37;
4520 varonce34 = var35;
4521 }
4522 {
4523 nitc___nitc__AbstractCompilerVisitor___add(var_v, var35); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
4524 }
4525 if (likely(varonce42!=NULL)) {
4526 var43 = varonce42;
4527 } else {
4528 var44 = "catchStack.cursor -= 1;";
4529 var46 = (val*)(23l<<2|1);
4530 var47 = (val*)(23l<<2|1);
4531 var48 = (val*)((long)(0)<<2|3);
4532 var49 = (val*)((long)(0)<<2|3);
4533 var45 = core__flat___CString___to_s_unsafe(var44, var46, var47, var48, var49);
4534 var43 = var45;
4535 varonce42 = var43;
4536 }
4537 {
4538 nitc___nitc__AbstractCompilerVisitor___add(var_v, var43); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
4539 }
4540 {
4541 { /* Inline parser_nodes$ADoExpr$n_catch (self) on <self:ADoExpr> */
4542 var52 = self->attrs[COLOR_nitc__parser_nodes__ADoExpr___n_catch].val; /* _n_catch on <self:ADoExpr> */
4543 var50 = var52;
4544 RET_LABEL51:(void)0;
4545 }
4546 }
4547 {
4548 nitc___nitc__AbstractCompilerVisitor___stmt(var_v, var50); /* Direct call abstract_compiler$AbstractCompilerVisitor$stmt on <var_v:AbstractCompilerVisitor>*/
4549 }
4550 if (likely(varonce53!=NULL)) {
4551 var54 = varonce53;
4552 } else {
4553 var55 = "}";
4554 var57 = (val*)(1l<<2|1);
4555 var58 = (val*)(1l<<2|1);
4556 var59 = (val*)((long)(0)<<2|3);
4557 var60 = (val*)((long)(0)<<2|3);
4558 var56 = core__flat___CString___to_s_unsafe(var55, var57, var58, var59, var60);
4559 var54 = var56;
4560 varonce53 = var54;
4561 }
4562 {
4563 nitc___nitc__AbstractCompilerVisitor___add(var_v, var54); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
4564 }
4565 } else {
4566 {
4567 { /* Inline parser_nodes$ADoExpr$n_block (self) on <self:ADoExpr> */
4568 var63 = self->attrs[COLOR_nitc__parser_nodes__ADoExpr___n_block].val; /* _n_block on <self:ADoExpr> */
4569 var61 = var63;
4570 RET_LABEL62:(void)0;
4571 }
4572 }
4573 {
4574 nitc___nitc__AbstractCompilerVisitor___stmt(var_v, var61); /* Direct call abstract_compiler$AbstractCompilerVisitor$stmt on <var_v:AbstractCompilerVisitor>*/
4575 }
4576 }
4577 {
4578 { /* Inline scope$ADoExpr$break_mark (self) on <self:ADoExpr> */
4579 var66 = self->attrs[COLOR_nitc__scope__ADoExpr___break_mark].val; /* _break_mark on <self:ADoExpr> */
4580 var64 = var66;
4581 RET_LABEL65:(void)0;
4582 }
4583 }
4584 {
4585 nitc___nitc__AbstractCompilerVisitor___add_escape_label(var_v, var64); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_escape_label on <var_v:AbstractCompilerVisitor>*/
4586 }
4587 RET_LABEL:;
4588 }
4589 /* method abstract_compiler$AWhileExpr$stmt for (self: AWhileExpr, AbstractCompilerVisitor) */
4590 void nitc__abstract_compiler___AWhileExpr___AExpr__stmt(val* self, val* p0) {
4591 val* var_v /* var v: AbstractCompilerVisitor */;
4592 static val* varonce;
4593 val* var /* : String */;
4594 char* var1 /* : CString */;
4595 val* var2 /* : String */;
4596 val* var3 /* : nullable Int */;
4597 val* var4 /* : nullable Int */;
4598 val* var5 /* : nullable Bool */;
4599 val* var6 /* : nullable Bool */;
4600 val* var7 /* : AExpr */;
4601 val* var9 /* : AExpr */;
4602 val* var10 /* : RuntimeVariable */;
4603 val* var_cond /* var cond: RuntimeVariable */;
4604 val* var12 /* : NativeArray[String] */;
4605 static val* varonce11;
4606 static val* varonce13;
4607 val* var14 /* : String */;
4608 char* var15 /* : CString */;
4609 val* var16 /* : String */;
4610 val* var17 /* : nullable Int */;
4611 val* var18 /* : nullable Int */;
4612 val* var19 /* : nullable Bool */;
4613 val* var20 /* : nullable Bool */;
4614 static val* varonce21;
4615 val* var22 /* : String */;
4616 char* var23 /* : CString */;
4617 val* var24 /* : String */;
4618 val* var25 /* : nullable Int */;
4619 val* var26 /* : nullable Int */;
4620 val* var27 /* : nullable Bool */;
4621 val* var28 /* : nullable Bool */;
4622 val* var29 /* : String */;
4623 val* var30 /* : String */;
4624 val* var31 /* : nullable AExpr */;
4625 val* var33 /* : nullable AExpr */;
4626 val* var34 /* : nullable EscapeMark */;
4627 val* var36 /* : nullable EscapeMark */;
4628 static val* varonce37;
4629 val* var38 /* : String */;
4630 char* var39 /* : CString */;
4631 val* var40 /* : String */;
4632 val* var41 /* : nullable Int */;
4633 val* var42 /* : nullable Int */;
4634 val* var43 /* : nullable Bool */;
4635 val* var44 /* : nullable Bool */;
4636 val* var45 /* : nullable EscapeMark */;
4637 val* var47 /* : nullable EscapeMark */;
4638 var_v = p0;
4639 if (likely(varonce!=NULL)) {
4640 var = varonce;
4641 } else {
4642 var1 = "for(;;) {";
4643 var3 = (val*)(9l<<2|1);
4644 var4 = (val*)(9l<<2|1);
4645 var5 = (val*)((long)(0)<<2|3);
4646 var6 = (val*)((long)(0)<<2|3);
4647 var2 = core__flat___CString___to_s_unsafe(var1, var3, var4, var5, var6);
4648 var = var2;
4649 varonce = var;
4650 }
4651 {
4652 nitc___nitc__AbstractCompilerVisitor___add(var_v, var); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
4653 }
4654 {
4655 { /* Inline parser_nodes$AWhileExpr$n_expr (self) on <self:AWhileExpr> */
4656 var9 = self->attrs[COLOR_nitc__parser_nodes__AWhileExpr___n_expr].val; /* _n_expr on <self:AWhileExpr> */
4657 if (unlikely(var9 == NULL)) {
4658 if(catchStack.cursor >= 0){
4659 longjmp(catchStack.envs[catchStack.cursor], 1);
4660 }
4661 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
4662 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1971);
4663 fatal_exit(1);
4664 }
4665 var7 = var9;
4666 RET_LABEL8:(void)0;
4667 }
4668 }
4669 {
4670 var10 = nitc___nitc__AbstractCompilerVisitor___expr_bool(var_v, var7);
4671 }
4672 var_cond = var10;
4673 if (unlikely(varonce11==NULL)) {
4674 var12 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
4675 if (likely(varonce13!=NULL)) {
4676 var14 = varonce13;
4677 } else {
4678 var15 = "if (!";
4679 var17 = (val*)(5l<<2|1);
4680 var18 = (val*)(5l<<2|1);
4681 var19 = (val*)((long)(0)<<2|3);
4682 var20 = (val*)((long)(0)<<2|3);
4683 var16 = core__flat___CString___to_s_unsafe(var15, var17, var18, var19, var20);
4684 var14 = var16;
4685 varonce13 = var14;
4686 }
4687 ((struct instance_core__NativeArray*)var12)->values[0]=var14;
4688 if (likely(varonce21!=NULL)) {
4689 var22 = varonce21;
4690 } else {
4691 var23 = ") break;";
4692 var25 = (val*)(8l<<2|1);
4693 var26 = (val*)(8l<<2|1);
4694 var27 = (val*)((long)(0)<<2|3);
4695 var28 = (val*)((long)(0)<<2|3);
4696 var24 = core__flat___CString___to_s_unsafe(var23, var25, var26, var27, var28);
4697 var22 = var24;
4698 varonce21 = var22;
4699 }
4700 ((struct instance_core__NativeArray*)var12)->values[2]=var22;
4701 } else {
4702 var12 = varonce11;
4703 varonce11 = NULL;
4704 }
4705 {
4706 var29 = ((val*(*)(val* self))(var_cond->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_cond); /* to_s on <var_cond:RuntimeVariable>*/
4707 }
4708 ((struct instance_core__NativeArray*)var12)->values[1]=var29;
4709 {
4710 var30 = ((val*(*)(val* self))(var12->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var12); /* native_to_s on <var12:NativeArray[String]>*/
4711 }
4712 varonce11 = var12;
4713 {
4714 nitc___nitc__AbstractCompilerVisitor___add(var_v, var30); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
4715 }
4716 {
4717 { /* Inline parser_nodes$AWhileExpr$n_block (self) on <self:AWhileExpr> */
4718 var33 = self->attrs[COLOR_nitc__parser_nodes__AWhileExpr___n_block].val; /* _n_block on <self:AWhileExpr> */
4719 var31 = var33;
4720 RET_LABEL32:(void)0;
4721 }
4722 }
4723 {
4724 nitc___nitc__AbstractCompilerVisitor___stmt(var_v, var31); /* Direct call abstract_compiler$AbstractCompilerVisitor$stmt on <var_v:AbstractCompilerVisitor>*/
4725 }
4726 {
4727 { /* Inline scope$AWhileExpr$continue_mark (self) on <self:AWhileExpr> */
4728 var36 = self->attrs[COLOR_nitc__scope__AWhileExpr___continue_mark].val; /* _continue_mark on <self:AWhileExpr> */
4729 var34 = var36;
4730 RET_LABEL35:(void)0;
4731 }
4732 }
4733 {
4734 nitc___nitc__AbstractCompilerVisitor___add_escape_label(var_v, var34); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_escape_label on <var_v:AbstractCompilerVisitor>*/
4735 }
4736 if (likely(varonce37!=NULL)) {
4737 var38 = varonce37;
4738 } else {
4739 var39 = "}";
4740 var41 = (val*)(1l<<2|1);
4741 var42 = (val*)(1l<<2|1);
4742 var43 = (val*)((long)(0)<<2|3);
4743 var44 = (val*)((long)(0)<<2|3);
4744 var40 = core__flat___CString___to_s_unsafe(var39, var41, var42, var43, var44);
4745 var38 = var40;
4746 varonce37 = var38;
4747 }
4748 {
4749 nitc___nitc__AbstractCompilerVisitor___add(var_v, var38); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
4750 }
4751 {
4752 { /* Inline scope$AWhileExpr$break_mark (self) on <self:AWhileExpr> */
4753 var47 = self->attrs[COLOR_nitc__scope__AWhileExpr___break_mark].val; /* _break_mark on <self:AWhileExpr> */
4754 var45 = var47;
4755 RET_LABEL46:(void)0;
4756 }
4757 }
4758 {
4759 nitc___nitc__AbstractCompilerVisitor___add_escape_label(var_v, var45); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_escape_label on <var_v:AbstractCompilerVisitor>*/
4760 }
4761 RET_LABEL:;
4762 }
4763 /* method abstract_compiler$ALoopExpr$stmt for (self: ALoopExpr, AbstractCompilerVisitor) */
4764 void nitc__abstract_compiler___ALoopExpr___AExpr__stmt(val* self, val* p0) {
4765 val* var_v /* var v: AbstractCompilerVisitor */;
4766 static val* varonce;
4767 val* var /* : String */;
4768 char* var1 /* : CString */;
4769 val* var2 /* : String */;
4770 val* var3 /* : nullable Int */;
4771 val* var4 /* : nullable Int */;
4772 val* var5 /* : nullable Bool */;
4773 val* var6 /* : nullable Bool */;
4774 val* var7 /* : nullable AExpr */;
4775 val* var9 /* : nullable AExpr */;
4776 val* var10 /* : nullable EscapeMark */;
4777 val* var12 /* : nullable EscapeMark */;
4778 static val* varonce13;
4779 val* var14 /* : String */;
4780 char* var15 /* : CString */;
4781 val* var16 /* : String */;
4782 val* var17 /* : nullable Int */;
4783 val* var18 /* : nullable Int */;
4784 val* var19 /* : nullable Bool */;
4785 val* var20 /* : nullable Bool */;
4786 val* var21 /* : nullable EscapeMark */;
4787 val* var23 /* : nullable EscapeMark */;
4788 var_v = p0;
4789 if (likely(varonce!=NULL)) {
4790 var = varonce;
4791 } else {
4792 var1 = "for(;;) {";
4793 var3 = (val*)(9l<<2|1);
4794 var4 = (val*)(9l<<2|1);
4795 var5 = (val*)((long)(0)<<2|3);
4796 var6 = (val*)((long)(0)<<2|3);
4797 var2 = core__flat___CString___to_s_unsafe(var1, var3, var4, var5, var6);
4798 var = var2;
4799 varonce = var;
4800 }
4801 {
4802 nitc___nitc__AbstractCompilerVisitor___add(var_v, var); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
4803 }
4804 {
4805 { /* Inline parser_nodes$ALoopExpr$n_block (self) on <self:ALoopExpr> */
4806 var9 = self->attrs[COLOR_nitc__parser_nodes__ALoopExpr___n_block].val; /* _n_block on <self:ALoopExpr> */
4807 var7 = var9;
4808 RET_LABEL8:(void)0;
4809 }
4810 }
4811 {
4812 nitc___nitc__AbstractCompilerVisitor___stmt(var_v, var7); /* Direct call abstract_compiler$AbstractCompilerVisitor$stmt on <var_v:AbstractCompilerVisitor>*/
4813 }
4814 {
4815 { /* Inline scope$ALoopExpr$continue_mark (self) on <self:ALoopExpr> */
4816 var12 = self->attrs[COLOR_nitc__scope__ALoopExpr___continue_mark].val; /* _continue_mark on <self:ALoopExpr> */
4817 var10 = var12;
4818 RET_LABEL11:(void)0;
4819 }
4820 }
4821 {
4822 nitc___nitc__AbstractCompilerVisitor___add_escape_label(var_v, var10); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_escape_label on <var_v:AbstractCompilerVisitor>*/
4823 }
4824 if (likely(varonce13!=NULL)) {
4825 var14 = varonce13;
4826 } else {
4827 var15 = "}";
4828 var17 = (val*)(1l<<2|1);
4829 var18 = (val*)(1l<<2|1);
4830 var19 = (val*)((long)(0)<<2|3);
4831 var20 = (val*)((long)(0)<<2|3);
4832 var16 = core__flat___CString___to_s_unsafe(var15, var17, var18, var19, var20);
4833 var14 = var16;
4834 varonce13 = var14;
4835 }
4836 {
4837 nitc___nitc__AbstractCompilerVisitor___add(var_v, var14); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
4838 }
4839 {
4840 { /* Inline scope$ALoopExpr$break_mark (self) on <self:ALoopExpr> */
4841 var23 = self->attrs[COLOR_nitc__scope__ALoopExpr___break_mark].val; /* _break_mark on <self:ALoopExpr> */
4842 var21 = var23;
4843 RET_LABEL22:(void)0;
4844 }
4845 }
4846 {
4847 nitc___nitc__AbstractCompilerVisitor___add_escape_label(var_v, var21); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_escape_label on <var_v:AbstractCompilerVisitor>*/
4848 }
4849 RET_LABEL:;
4850 }
4851 /* method abstract_compiler$AForExpr$stmt for (self: AForExpr, AbstractCompilerVisitor) */
4852 void nitc__abstract_compiler___AForExpr___AExpr__stmt(val* self, val* p0) {
4853 val* var_v /* var v: AbstractCompilerVisitor */;
4854 val* var /* : ANodes[AForGroup] */;
4855 val* var2 /* : ANodes[AForGroup] */;
4856 val* var_ /* var : ANodes[AForGroup] */;
4857 val* var3 /* : Iterator[ANode] */;
4858 val* var_4 /* var : Iterator[AForGroup] */;
4859 short int var5 /* : Bool */;
4860 val* var6 /* : nullable Object */;
4861 val* var_g /* var g: AForGroup */;
4862 val* var7 /* : AExpr */;
4863 val* var9 /* : AExpr */;
4864 val* var10 /* : RuntimeVariable */;
4865 val* var_cl /* var cl: RuntimeVariable */;
4866 val* var11 /* : nullable CallSite */;
4867 val* var13 /* : nullable CallSite */;
4868 val* var_it_meth /* var it_meth: nullable CallSite */;
4869 short int var14 /* : Bool */;
4870 short int var15 /* : Bool */;
4871 val* var_other /* var other: nullable Object */;
4872 short int var17 /* : Bool */;
4873 short int var18 /* : Bool */;
4874 val* var19 /* : Array[RuntimeVariable] */;
4875 val* var_20 /* var : Array[RuntimeVariable] */;
4876 val* var21 /* : nullable RuntimeVariable */;
4877 val* var_it /* var it: nullable RuntimeVariable */;
4878 short int var22 /* : Bool */;
4879 short int var23 /* : Bool */;
4880 short int var25 /* : Bool */;
4881 short int var26 /* : Bool */;
4882 static val* varonce;
4883 val* var28 /* : String */;
4884 char* var29 /* : CString */;
4885 val* var30 /* : String */;
4886 val* var31 /* : nullable Int */;
4887 val* var32 /* : nullable Int */;
4888 val* var33 /* : nullable Bool */;
4889 val* var34 /* : nullable Bool */;
4890 val* var35 /* : ANodes[AForGroup] */;
4891 val* var37 /* : ANodes[AForGroup] */;
4892 val* var_38 /* var : ANodes[AForGroup] */;
4893 val* var39 /* : Iterator[ANode] */;
4894 val* var_40 /* var : Iterator[AForGroup] */;
4895 short int var41 /* : Bool */;
4896 val* var43 /* : nullable Object */;
4897 val* var_g44 /* var g: AForGroup */;
4898 val* var45 /* : RuntimeVariable */;
4899 val* var47 /* : RuntimeVariable */;
4900 val* var_it48 /* var it: RuntimeVariable */;
4901 val* var49 /* : nullable CallSite */;
4902 val* var51 /* : nullable CallSite */;
4903 val* var_isok_meth /* var isok_meth: nullable CallSite */;
4904 short int var52 /* : Bool */;
4905 short int var53 /* : Bool */;
4906 short int var55 /* : Bool */;
4907 short int var56 /* : Bool */;
4908 val* var57 /* : Array[RuntimeVariable] */;
4909 val* var_58 /* var : Array[RuntimeVariable] */;
4910 val* var59 /* : nullable RuntimeVariable */;
4911 val* var_ok /* var ok: nullable RuntimeVariable */;
4912 short int var60 /* : Bool */;
4913 short int var61 /* : Bool */;
4914 short int var63 /* : Bool */;
4915 short int var64 /* : Bool */;
4916 val* var66 /* : NativeArray[String] */;
4917 static val* varonce65;
4918 static val* varonce67;
4919 val* var68 /* : String */;
4920 char* var69 /* : CString */;
4921 val* var70 /* : String */;
4922 val* var71 /* : nullable Int */;
4923 val* var72 /* : nullable Int */;
4924 val* var73 /* : nullable Bool */;
4925 val* var74 /* : nullable Bool */;
4926 static val* varonce75;
4927 val* var76 /* : String */;
4928 char* var77 /* : CString */;
4929 val* var78 /* : String */;
4930 val* var79 /* : nullable Int */;
4931 val* var80 /* : nullable Int */;
4932 val* var81 /* : nullable Bool */;
4933 val* var82 /* : nullable Bool */;
4934 val* var83 /* : String */;
4935 val* var84 /* : String */;
4936 val* var85 /* : nullable Array[Variable] */;
4937 val* var87 /* : nullable Array[Variable] */;
4938 long var88 /* : Int */;
4939 long var90 /* : Int */;
4940 short int var91 /* : Bool */;
4941 short int var93 /* : Bool */;
4942 val* var94 /* : nullable CallSite */;
4943 val* var96 /* : nullable CallSite */;
4944 val* var_item_meth /* var item_meth: nullable CallSite */;
4945 short int var97 /* : Bool */;
4946 short int var98 /* : Bool */;
4947 short int var100 /* : Bool */;
4948 short int var101 /* : Bool */;
4949 val* var102 /* : Array[RuntimeVariable] */;
4950 val* var_103 /* var : Array[RuntimeVariable] */;
4951 val* var104 /* : nullable RuntimeVariable */;
4952 val* var_i /* var i: nullable RuntimeVariable */;
4953 short int var105 /* : Bool */;
4954 short int var106 /* : Bool */;
4955 short int var108 /* : Bool */;
4956 short int var109 /* : Bool */;
4957 val* var110 /* : nullable Array[Variable] */;
4958 val* var112 /* : nullable Array[Variable] */;
4959 val* var113 /* : nullable Object */;
4960 val* var114 /* : RuntimeVariable */;
4961 val* var115 /* : nullable Array[Variable] */;
4962 val* var117 /* : nullable Array[Variable] */;
4963 long var118 /* : Int */;
4964 long var120 /* : Int */;
4965 short int var121 /* : Bool */;
4966 short int var123 /* : Bool */;
4967 val* var124 /* : nullable CallSite */;
4968 val* var126 /* : nullable CallSite */;
4969 val* var_key_meth /* var key_meth: nullable CallSite */;
4970 short int var127 /* : Bool */;
4971 short int var128 /* : Bool */;
4972 short int var130 /* : Bool */;
4973 short int var131 /* : Bool */;
4974 val* var132 /* : Array[RuntimeVariable] */;
4975 val* var_133 /* var : Array[RuntimeVariable] */;
4976 val* var134 /* : nullable RuntimeVariable */;
4977 val* var_i135 /* var i: nullable RuntimeVariable */;
4978 short int var136 /* : Bool */;
4979 short int var137 /* : Bool */;
4980 short int var139 /* : Bool */;
4981 short int var140 /* : Bool */;
4982 val* var141 /* : nullable Array[Variable] */;
4983 val* var143 /* : nullable Array[Variable] */;
4984 val* var144 /* : nullable Object */;
4985 val* var145 /* : RuntimeVariable */;
4986 val* var146 /* : nullable CallSite */;
4987 val* var148 /* : nullable CallSite */;
4988 val* var_item_meth149 /* var item_meth: nullable CallSite */;
4989 short int var150 /* : Bool */;
4990 short int var151 /* : Bool */;
4991 short int var153 /* : Bool */;
4992 short int var154 /* : Bool */;
4993 val* var155 /* : Array[RuntimeVariable] */;
4994 val* var_156 /* var : Array[RuntimeVariable] */;
4995 val* var157 /* : nullable RuntimeVariable */;
4996 short int var158 /* : Bool */;
4997 short int var159 /* : Bool */;
4998 short int var161 /* : Bool */;
4999 short int var162 /* : Bool */;
5000 val* var163 /* : nullable Array[Variable] */;
5001 val* var165 /* : nullable Array[Variable] */;
5002 val* var166 /* : nullable Object */;
5003 val* var167 /* : RuntimeVariable */;
5004 val* var168 /* : nullable AExpr */;
5005 val* var170 /* : nullable AExpr */;
5006 val* var171 /* : nullable EscapeMark */;
5007 val* var173 /* : nullable EscapeMark */;
5008 val* var174 /* : ANodes[AForGroup] */;
5009 val* var176 /* : ANodes[AForGroup] */;
5010 val* var_177 /* var : ANodes[AForGroup] */;
5011 val* var178 /* : Iterator[ANode] */;
5012 val* var_179 /* var : Iterator[AForGroup] */;
5013 short int var180 /* : Bool */;
5014 val* var182 /* : nullable Object */;
5015 val* var_g183 /* var g: AForGroup */;
5016 val* var184 /* : nullable CallSite */;
5017 val* var186 /* : nullable CallSite */;
5018 val* var_next_meth /* var next_meth: nullable CallSite */;
5019 short int var187 /* : Bool */;
5020 short int var188 /* : Bool */;
5021 short int var190 /* : Bool */;
5022 short int var191 /* : Bool */;
5023 val* var192 /* : Array[RuntimeVariable] */;
5024 val* var_193 /* var : Array[RuntimeVariable] */;
5025 val* var194 /* : RuntimeVariable */;
5026 val* var196 /* : RuntimeVariable */;
5027 val* var197 /* : nullable RuntimeVariable */;
5028 static val* varonce198;
5029 val* var199 /* : String */;
5030 char* var200 /* : CString */;
5031 val* var201 /* : String */;
5032 val* var202 /* : nullable Int */;
5033 val* var203 /* : nullable Int */;
5034 val* var204 /* : nullable Bool */;
5035 val* var205 /* : nullable Bool */;
5036 val* var206 /* : nullable EscapeMark */;
5037 val* var208 /* : nullable EscapeMark */;
5038 val* var209 /* : ANodes[AForGroup] */;
5039 val* var211 /* : ANodes[AForGroup] */;
5040 val* var_212 /* var : ANodes[AForGroup] */;
5041 val* var213 /* : Iterator[ANode] */;
5042 val* var_214 /* var : Iterator[AForGroup] */;
5043 short int var215 /* : Bool */;
5044 val* var217 /* : nullable Object */;
5045 val* var_g218 /* var g: AForGroup */;
5046 val* var219 /* : nullable CallSite */;
5047 val* var221 /* : nullable CallSite */;
5048 val* var_method_finish /* var method_finish: nullable CallSite */;
5049 short int var222 /* : Bool */;
5050 short int var223 /* : Bool */;
5051 short int var225 /* : Bool */;
5052 short int var226 /* : Bool */;
5053 val* var227 /* : Array[RuntimeVariable] */;
5054 val* var_228 /* var : Array[RuntimeVariable] */;
5055 val* var229 /* : RuntimeVariable */;
5056 val* var231 /* : RuntimeVariable */;
5057 val* var232 /* : nullable RuntimeVariable */;
5058 var_v = p0;
5059 {
5060 { /* Inline parser_nodes$AForExpr$n_groups (self) on <self:AForExpr> */
5061 var2 = self->attrs[COLOR_nitc__parser_nodes__AForExpr___n_groups].val; /* _n_groups on <self:AForExpr> */
5062 if (unlikely(var2 == NULL)) {
5063 if(catchStack.cursor >= 0){
5064 longjmp(catchStack.envs[catchStack.cursor], 1);
5065 }
5066 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_groups");
5067 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2001);
5068 fatal_exit(1);
5069 }
5070 var = var2;
5071 RET_LABEL1:(void)0;
5072 }
5073 }
5074 var_ = var;
5075 {
5076 var3 = nitc___nitc__ANodes___core__abstract_collection__Collection__iterator(var_);
5077 }
5078 var_4 = var3;
5079 for(;;) {
5080 {
5081 var5 = ((short int(*)(val* self))((((long)var_4&3)?class_info[((long)var_4&3)]:var_4->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_4); /* is_ok on <var_4:Iterator[AForGroup]>*/
5082 }
5083 if (var5){
5084 } else {
5085 goto BREAK_label;
5086 }
5087 {
5088 var6 = ((val*(*)(val* self))((((long)var_4&3)?class_info[((long)var_4&3)]:var_4->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_4); /* item on <var_4:Iterator[AForGroup]>*/
5089 }
5090 var_g = var6;
5091 {
5092 { /* Inline parser_nodes$AForGroup$n_expr (var_g) on <var_g:AForGroup> */
5093 var9 = var_g->attrs[COLOR_nitc__parser_nodes__AForGroup___n_expr].val; /* _n_expr on <var_g:AForGroup> */
5094 if (unlikely(var9 == NULL)) {
5095 if(catchStack.cursor >= 0){
5096 longjmp(catchStack.envs[catchStack.cursor], 1);
5097 }
5098 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
5099 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2024);
5100 fatal_exit(1);
5101 }
5102 var7 = var9;
5103 RET_LABEL8:(void)0;
5104 }
5105 }
5106 {
5107 var10 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var7, ((val*)NULL));
5108 }
5109 var_cl = var10;
5110 {
5111 { /* Inline typing$AForGroup$method_iterator (var_g) on <var_g:AForGroup> */
5112 var13 = var_g->attrs[COLOR_nitc__typing__AForGroup___method_iterator].val; /* _method_iterator on <var_g:AForGroup> */
5113 var11 = var13;
5114 RET_LABEL12:(void)0;
5115 }
5116 }
5117 var_it_meth = var11;
5118 if (var_it_meth == NULL) {
5119 var14 = 0; /* is null */
5120 } else {
5121 var14 = 1; /* arg is null and recv is not */
5122 }
5123 if (0) {
5124 { /* Inline kernel$Object$!= (var_it_meth,((val*)NULL)) on <var_it_meth:nullable CallSite> */
5125 var_other = ((val*)NULL);
5126 {
5127 var17 = ((short int(*)(val* self, val* p0))(var_it_meth->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_it_meth, var_other); /* == on <var_it_meth:nullable CallSite(CallSite)>*/
5128 }
5129 var18 = !var17;
5130 var15 = var18;
5131 goto RET_LABEL16;
5132 RET_LABEL16:(void)0;
5133 }
5134 var14 = var15;
5135 }
5136 if (unlikely(!var14)) {
5137 if(catchStack.cursor >= 0){
5138 longjmp(catchStack.envs[catchStack.cursor], 1);
5139 }
5140 PRINT_ERROR("Runtime error: %s", "Assert failed");
5141 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3505);
5142 fatal_exit(1);
5143 }
5144 var19 = NEW_core__Array(&type_core__Array__nitc__RuntimeVariable);
5145 {
5146 core___core__Array___with_capacity(var19, 1l); /* Direct call array$Array$with_capacity on <var19:Array[RuntimeVariable]>*/
5147 }
5148 var_20 = var19;
5149 {
5150 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_20, var_cl); /* Direct call array$AbstractArray$push on <var_20:Array[RuntimeVariable]>*/
5151 }
5152 {
5153 var21 = ((val*(*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var_it_meth, var_20); /* compile_callsite on <var_v:AbstractCompilerVisitor>*/
5154 }
5155 var_it = var21;
5156 if (var_it == NULL) {
5157 var22 = 0; /* is null */
5158 } else {
5159 var22 = 1; /* arg is null and recv is not */
5160 }
5161 if (0) {
5162 { /* Inline kernel$Object$!= (var_it,((val*)NULL)) on <var_it:nullable RuntimeVariable> */
5163 var_other = ((val*)NULL);
5164 {
5165 var25 = ((short int(*)(val* self, val* p0))(var_it->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_it, var_other); /* == on <var_it:nullable RuntimeVariable(RuntimeVariable)>*/
5166 }
5167 var26 = !var25;
5168 var23 = var26;
5169 goto RET_LABEL24;
5170 RET_LABEL24:(void)0;
5171 }
5172 var22 = var23;
5173 }
5174 if (unlikely(!var22)) {
5175 if(catchStack.cursor >= 0){
5176 longjmp(catchStack.envs[catchStack.cursor], 1);
5177 }
5178 PRINT_ERROR("Runtime error: %s", "Assert failed");
5179 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3507);
5180 fatal_exit(1);
5181 }
5182 {
5183 { /* Inline abstract_compiler$AForGroup$it= (var_g,var_it) on <var_g:AForGroup> */
5184 var_g->attrs[COLOR_nitc__abstract_compiler__AForGroup___it].val = var_it; /* _it on <var_g:AForGroup> */
5185 RET_LABEL27:(void)0;
5186 }
5187 }
5188 {
5189 ((void(*)(val* self))((((long)var_4&3)?class_info[((long)var_4&3)]:var_4->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_4); /* next on <var_4:Iterator[AForGroup]>*/
5190 }
5191 }
5192 BREAK_label: (void)0;
5193 {
5194 ((void(*)(val* self))((((long)var_4&3)?class_info[((long)var_4&3)]:var_4->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_4); /* finish on <var_4:Iterator[AForGroup]>*/
5195 }
5196 if (likely(varonce!=NULL)) {
5197 var28 = varonce;
5198 } else {
5199 var29 = "for(;;) {";
5200 var31 = (val*)(9l<<2|1);
5201 var32 = (val*)(9l<<2|1);
5202 var33 = (val*)((long)(0)<<2|3);
5203 var34 = (val*)((long)(0)<<2|3);
5204 var30 = core__flat___CString___to_s_unsafe(var29, var31, var32, var33, var34);
5205 var28 = var30;
5206 varonce = var28;
5207 }
5208 {
5209 nitc___nitc__AbstractCompilerVisitor___add(var_v, var28); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
5210 }
5211 {
5212 { /* Inline parser_nodes$AForExpr$n_groups (self) on <self:AForExpr> */
5213 var37 = self->attrs[COLOR_nitc__parser_nodes__AForExpr___n_groups].val; /* _n_groups on <self:AForExpr> */
5214 if (unlikely(var37 == NULL)) {
5215 if(catchStack.cursor >= 0){
5216 longjmp(catchStack.envs[catchStack.cursor], 1);
5217 }
5218 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_groups");
5219 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2001);
5220 fatal_exit(1);
5221 }
5222 var35 = var37;
5223 RET_LABEL36:(void)0;
5224 }
5225 }
5226 var_38 = var35;
5227 {
5228 var39 = nitc___nitc__ANodes___core__abstract_collection__Collection__iterator(var_38);
5229 }
5230 var_40 = var39;
5231 for(;;) {
5232 {
5233 var41 = ((short int(*)(val* self))((((long)var_40&3)?class_info[((long)var_40&3)]:var_40->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_40); /* is_ok on <var_40:Iterator[AForGroup]>*/
5234 }
5235 if (var41){
5236 } else {
5237 goto BREAK_label42;
5238 }
5239 {
5240 var43 = ((val*(*)(val* self))((((long)var_40&3)?class_info[((long)var_40&3)]:var_40->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_40); /* item on <var_40:Iterator[AForGroup]>*/
5241 }
5242 var_g44 = var43;
5243 {
5244 { /* Inline abstract_compiler$AForGroup$it (var_g44) on <var_g44:AForGroup> */
5245 var47 = var_g44->attrs[COLOR_nitc__abstract_compiler__AForGroup___it].val; /* _it on <var_g44:AForGroup> */
5246 if (unlikely(var47 == NULL)) {
5247 if(catchStack.cursor >= 0){
5248 longjmp(catchStack.envs[catchStack.cursor], 1);
5249 }
5250 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _it");
5251 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3560);
5252 fatal_exit(1);
5253 }
5254 var45 = var47;
5255 RET_LABEL46:(void)0;
5256 }
5257 }
5258 var_it48 = var45;
5259 {
5260 { /* Inline typing$AForGroup$method_is_ok (var_g44) on <var_g44:AForGroup> */
5261 var51 = var_g44->attrs[COLOR_nitc__typing__AForGroup___method_is_ok].val; /* _method_is_ok on <var_g44:AForGroup> */
5262 var49 = var51;
5263 RET_LABEL50:(void)0;
5264 }
5265 }
5266 var_isok_meth = var49;
5267 if (var_isok_meth == NULL) {
5268 var52 = 0; /* is null */
5269 } else {
5270 var52 = 1; /* arg is null and recv is not */
5271 }
5272 if (0) {
5273 { /* Inline kernel$Object$!= (var_isok_meth,((val*)NULL)) on <var_isok_meth:nullable CallSite> */
5274 var_other = ((val*)NULL);
5275 {
5276 var55 = ((short int(*)(val* self, val* p0))(var_isok_meth->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_isok_meth, var_other); /* == on <var_isok_meth:nullable CallSite(CallSite)>*/
5277 }
5278 var56 = !var55;
5279 var53 = var56;
5280 goto RET_LABEL54;
5281 RET_LABEL54:(void)0;
5282 }
5283 var52 = var53;
5284 }
5285 if (unlikely(!var52)) {
5286 if(catchStack.cursor >= 0){
5287 longjmp(catchStack.envs[catchStack.cursor], 1);
5288 }
5289 PRINT_ERROR("Runtime error: %s", "Assert failed");
5290 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3514);
5291 fatal_exit(1);
5292 }
5293 var57 = NEW_core__Array(&type_core__Array__nitc__RuntimeVariable);
5294 {
5295 core___core__Array___with_capacity(var57, 1l); /* Direct call array$Array$with_capacity on <var57:Array[RuntimeVariable]>*/
5296 }
5297 var_58 = var57;
5298 {
5299 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_58, var_it48); /* Direct call array$AbstractArray$push on <var_58:Array[RuntimeVariable]>*/
5300 }
5301 {
5302 var59 = ((val*(*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var_isok_meth, var_58); /* compile_callsite on <var_v:AbstractCompilerVisitor>*/
5303 }
5304 var_ok = var59;
5305 if (var_ok == NULL) {
5306 var60 = 0; /* is null */
5307 } else {
5308 var60 = 1; /* arg is null and recv is not */
5309 }
5310 if (0) {
5311 { /* Inline kernel$Object$!= (var_ok,((val*)NULL)) on <var_ok:nullable RuntimeVariable> */
5312 var_other = ((val*)NULL);
5313 {
5314 var63 = ((short int(*)(val* self, val* p0))(var_ok->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_ok, var_other); /* == on <var_ok:nullable RuntimeVariable(RuntimeVariable)>*/
5315 }
5316 var64 = !var63;
5317 var61 = var64;
5318 goto RET_LABEL62;
5319 RET_LABEL62:(void)0;
5320 }
5321 var60 = var61;
5322 }
5323 if (unlikely(!var60)) {
5324 if(catchStack.cursor >= 0){
5325 longjmp(catchStack.envs[catchStack.cursor], 1);
5326 }
5327 PRINT_ERROR("Runtime error: %s", "Assert failed");
5328 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3516);
5329 fatal_exit(1);
5330 }
5331 if (unlikely(varonce65==NULL)) {
5332 var66 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
5333 if (likely(varonce67!=NULL)) {
5334 var68 = varonce67;
5335 } else {
5336 var69 = "if(!";
5337 var71 = (val*)(4l<<2|1);
5338 var72 = (val*)(4l<<2|1);
5339 var73 = (val*)((long)(0)<<2|3);
5340 var74 = (val*)((long)(0)<<2|3);
5341 var70 = core__flat___CString___to_s_unsafe(var69, var71, var72, var73, var74);
5342 var68 = var70;
5343 varonce67 = var68;
5344 }
5345 ((struct instance_core__NativeArray*)var66)->values[0]=var68;
5346 if (likely(varonce75!=NULL)) {
5347 var76 = varonce75;
5348 } else {
5349 var77 = ") break;";
5350 var79 = (val*)(8l<<2|1);
5351 var80 = (val*)(8l<<2|1);
5352 var81 = (val*)((long)(0)<<2|3);
5353 var82 = (val*)((long)(0)<<2|3);
5354 var78 = core__flat___CString___to_s_unsafe(var77, var79, var80, var81, var82);
5355 var76 = var78;
5356 varonce75 = var76;
5357 }
5358 ((struct instance_core__NativeArray*)var66)->values[2]=var76;
5359 } else {
5360 var66 = varonce65;
5361 varonce65 = NULL;
5362 }
5363 {
5364 var83 = ((val*(*)(val* self))(var_ok->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_ok); /* to_s on <var_ok:nullable RuntimeVariable(RuntimeVariable)>*/
5365 }
5366 ((struct instance_core__NativeArray*)var66)->values[1]=var83;
5367 {
5368 var84 = ((val*(*)(val* self))(var66->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var66); /* native_to_s on <var66:NativeArray[String]>*/
5369 }
5370 varonce65 = var66;
5371 {
5372 nitc___nitc__AbstractCompilerVisitor___add(var_v, var84); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
5373 }
5374 {
5375 { /* Inline scope$AForGroup$variables (var_g44) on <var_g44:AForGroup> */
5376 var87 = var_g44->attrs[COLOR_nitc__scope__AForGroup___variables].val; /* _variables on <var_g44:AForGroup> */
5377 var85 = var87;
5378 RET_LABEL86:(void)0;
5379 }
5380 }
5381 if (var85 == NULL) {
5382 if(catchStack.cursor >= 0){
5383 longjmp(catchStack.envs[catchStack.cursor], 1);
5384 }
5385 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5386 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3518);
5387 fatal_exit(1);
5388 } else {
5389 { /* Inline array$AbstractArrayRead$length (var85) on <var85:nullable Array[Variable]> */
5390 if (unlikely(var85 == NULL)) {
5391 if(catchStack.cursor >= 0){
5392 longjmp(catchStack.envs[catchStack.cursor], 1);
5393 }
5394 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5395 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 26);
5396 fatal_exit(1);
5397 }
5398 var90 = var85->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var85:nullable Array[Variable]> */
5399 var88 = var90;
5400 RET_LABEL89:(void)0;
5401 }
5402 }
5403 {
5404 { /* Inline kernel$Int$== (var88,1l) on <var88:Int> */
5405 var93 = var88 == 1l;
5406 var91 = var93;
5407 goto RET_LABEL92;
5408 RET_LABEL92:(void)0;
5409 }
5410 }
5411 if (var91){
5412 {
5413 { /* Inline typing$AForGroup$method_item (var_g44) on <var_g44:AForGroup> */
5414 var96 = var_g44->attrs[COLOR_nitc__typing__AForGroup___method_item].val; /* _method_item on <var_g44:AForGroup> */
5415 var94 = var96;
5416 RET_LABEL95:(void)0;
5417 }
5418 }
5419 var_item_meth = var94;
5420 if (var_item_meth == NULL) {
5421 var97 = 0; /* is null */
5422 } else {
5423 var97 = 1; /* arg is null and recv is not */
5424 }
5425 if (0) {
5426 { /* Inline kernel$Object$!= (var_item_meth,((val*)NULL)) on <var_item_meth:nullable CallSite> */
5427 var_other = ((val*)NULL);
5428 {
5429 var100 = ((short int(*)(val* self, val* p0))(var_item_meth->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_item_meth, var_other); /* == on <var_item_meth:nullable CallSite(CallSite)>*/
5430 }
5431 var101 = !var100;
5432 var98 = var101;
5433 goto RET_LABEL99;
5434 RET_LABEL99:(void)0;
5435 }
5436 var97 = var98;
5437 }
5438 if (unlikely(!var97)) {
5439 if(catchStack.cursor >= 0){
5440 longjmp(catchStack.envs[catchStack.cursor], 1);
5441 }
5442 PRINT_ERROR("Runtime error: %s", "Assert failed");
5443 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3520);
5444 fatal_exit(1);
5445 }
5446 var102 = NEW_core__Array(&type_core__Array__nitc__RuntimeVariable);
5447 {
5448 core___core__Array___with_capacity(var102, 1l); /* Direct call array$Array$with_capacity on <var102:Array[RuntimeVariable]>*/
5449 }
5450 var_103 = var102;
5451 {
5452 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_103, var_it48); /* Direct call array$AbstractArray$push on <var_103:Array[RuntimeVariable]>*/
5453 }
5454 {
5455 var104 = ((val*(*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var_item_meth, var_103); /* compile_callsite on <var_v:AbstractCompilerVisitor>*/
5456 }
5457 var_i = var104;
5458 if (var_i == NULL) {
5459 var105 = 0; /* is null */
5460 } else {
5461 var105 = 1; /* arg is null and recv is not */
5462 }
5463 if (0) {
5464 { /* Inline kernel$Object$!= (var_i,((val*)NULL)) on <var_i:nullable RuntimeVariable> */
5465 var_other = ((val*)NULL);
5466 {
5467 var108 = ((short int(*)(val* self, val* p0))(var_i->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_i, var_other); /* == on <var_i:nullable RuntimeVariable(RuntimeVariable)>*/
5468 }
5469 var109 = !var108;
5470 var106 = var109;
5471 goto RET_LABEL107;
5472 RET_LABEL107:(void)0;
5473 }
5474 var105 = var106;
5475 }
5476 if (unlikely(!var105)) {
5477 if(catchStack.cursor >= 0){
5478 longjmp(catchStack.envs[catchStack.cursor], 1);
5479 }
5480 PRINT_ERROR("Runtime error: %s", "Assert failed");
5481 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3522);
5482 fatal_exit(1);
5483 }
5484 {
5485 { /* Inline scope$AForGroup$variables (var_g44) on <var_g44:AForGroup> */
5486 var112 = var_g44->attrs[COLOR_nitc__scope__AForGroup___variables].val; /* _variables on <var_g44:AForGroup> */
5487 var110 = var112;
5488 RET_LABEL111:(void)0;
5489 }
5490 }
5491 if (var110 == NULL) {
5492 if(catchStack.cursor >= 0){
5493 longjmp(catchStack.envs[catchStack.cursor], 1);
5494 }
5495 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5496 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3523);
5497 fatal_exit(1);
5498 } else {
5499 var113 = core___core__SequenceRead___Collection__first(var110);
5500 }
5501 {
5502 var114 = nitc___nitc__AbstractCompilerVisitor___variable(var_v, var113);
5503 }
5504 {
5505 nitc___nitc__AbstractCompilerVisitor___assign(var_v, var114, var_i); /* Direct call abstract_compiler$AbstractCompilerVisitor$assign on <var_v:AbstractCompilerVisitor>*/
5506 }
5507 } else {
5508 {
5509 { /* Inline scope$AForGroup$variables (var_g44) on <var_g44:AForGroup> */
5510 var117 = var_g44->attrs[COLOR_nitc__scope__AForGroup___variables].val; /* _variables on <var_g44:AForGroup> */
5511 var115 = var117;
5512 RET_LABEL116:(void)0;
5513 }
5514 }
5515 if (var115 == NULL) {
5516 if(catchStack.cursor >= 0){
5517 longjmp(catchStack.envs[catchStack.cursor], 1);
5518 }
5519 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5520 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3524);
5521 fatal_exit(1);
5522 } else {
5523 { /* Inline array$AbstractArrayRead$length (var115) on <var115:nullable Array[Variable]> */
5524 if (unlikely(var115 == NULL)) {
5525 if(catchStack.cursor >= 0){
5526 longjmp(catchStack.envs[catchStack.cursor], 1);
5527 }
5528 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5529 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 26);
5530 fatal_exit(1);
5531 }
5532 var120 = var115->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var115:nullable Array[Variable]> */
5533 var118 = var120;
5534 RET_LABEL119:(void)0;
5535 }
5536 }
5537 {
5538 { /* Inline kernel$Int$== (var118,2l) on <var118:Int> */
5539 var123 = var118 == 2l;
5540 var121 = var123;
5541 goto RET_LABEL122;
5542 RET_LABEL122:(void)0;
5543 }
5544 }
5545 if (var121){
5546 {
5547 { /* Inline typing$AForGroup$method_key (var_g44) on <var_g44:AForGroup> */
5548 var126 = var_g44->attrs[COLOR_nitc__typing__AForGroup___method_key].val; /* _method_key on <var_g44:AForGroup> */
5549 var124 = var126;
5550 RET_LABEL125:(void)0;
5551 }
5552 }
5553 var_key_meth = var124;
5554 if (var_key_meth == NULL) {
5555 var127 = 0; /* is null */
5556 } else {
5557 var127 = 1; /* arg is null and recv is not */
5558 }
5559 if (0) {
5560 { /* Inline kernel$Object$!= (var_key_meth,((val*)NULL)) on <var_key_meth:nullable CallSite> */
5561 var_other = ((val*)NULL);
5562 {
5563 var130 = ((short int(*)(val* self, val* p0))(var_key_meth->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_key_meth, var_other); /* == on <var_key_meth:nullable CallSite(CallSite)>*/
5564 }
5565 var131 = !var130;
5566 var128 = var131;
5567 goto RET_LABEL129;
5568 RET_LABEL129:(void)0;
5569 }
5570 var127 = var128;
5571 }
5572 if (unlikely(!var127)) {
5573 if(catchStack.cursor >= 0){
5574 longjmp(catchStack.envs[catchStack.cursor], 1);
5575 }
5576 PRINT_ERROR("Runtime error: %s", "Assert failed");
5577 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3526);
5578 fatal_exit(1);
5579 }
5580 var132 = NEW_core__Array(&type_core__Array__nitc__RuntimeVariable);
5581 {
5582 core___core__Array___with_capacity(var132, 1l); /* Direct call array$Array$with_capacity on <var132:Array[RuntimeVariable]>*/
5583 }
5584 var_133 = var132;
5585 {
5586 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_133, var_it48); /* Direct call array$AbstractArray$push on <var_133:Array[RuntimeVariable]>*/
5587 }
5588 {
5589 var134 = ((val*(*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var_key_meth, var_133); /* compile_callsite on <var_v:AbstractCompilerVisitor>*/
5590 }
5591 var_i135 = var134;
5592 if (var_i135 == NULL) {
5593 var136 = 0; /* is null */
5594 } else {
5595 var136 = 1; /* arg is null and recv is not */
5596 }
5597 if (0) {
5598 { /* Inline kernel$Object$!= (var_i135,((val*)NULL)) on <var_i135:nullable RuntimeVariable> */
5599 var_other = ((val*)NULL);
5600 {
5601 var139 = ((short int(*)(val* self, val* p0))(var_i135->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_i135, var_other); /* == on <var_i135:nullable RuntimeVariable(RuntimeVariable)>*/
5602 }
5603 var140 = !var139;
5604 var137 = var140;
5605 goto RET_LABEL138;
5606 RET_LABEL138:(void)0;
5607 }
5608 var136 = var137;
5609 }
5610 if (unlikely(!var136)) {
5611 if(catchStack.cursor >= 0){
5612 longjmp(catchStack.envs[catchStack.cursor], 1);
5613 }
5614 PRINT_ERROR("Runtime error: %s", "Assert failed");
5615 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3528);
5616 fatal_exit(1);
5617 }
5618 {
5619 { /* Inline scope$AForGroup$variables (var_g44) on <var_g44:AForGroup> */
5620 var143 = var_g44->attrs[COLOR_nitc__scope__AForGroup___variables].val; /* _variables on <var_g44:AForGroup> */
5621 var141 = var143;
5622 RET_LABEL142:(void)0;
5623 }
5624 }
5625 if (var141 == NULL) {
5626 if(catchStack.cursor >= 0){
5627 longjmp(catchStack.envs[catchStack.cursor], 1);
5628 }
5629 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5630 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3529);
5631 fatal_exit(1);
5632 } else {
5633 var144 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var141, 0l);
5634 }
5635 {
5636 var145 = nitc___nitc__AbstractCompilerVisitor___variable(var_v, var144);
5637 }
5638 {
5639 nitc___nitc__AbstractCompilerVisitor___assign(var_v, var145, var_i135); /* Direct call abstract_compiler$AbstractCompilerVisitor$assign on <var_v:AbstractCompilerVisitor>*/
5640 }
5641 {
5642 { /* Inline typing$AForGroup$method_item (var_g44) on <var_g44:AForGroup> */
5643 var148 = var_g44->attrs[COLOR_nitc__typing__AForGroup___method_item].val; /* _method_item on <var_g44:AForGroup> */
5644 var146 = var148;
5645 RET_LABEL147:(void)0;
5646 }
5647 }
5648 var_item_meth149 = var146;
5649 if (var_item_meth149 == NULL) {
5650 var150 = 0; /* is null */
5651 } else {
5652 var150 = 1; /* arg is null and recv is not */
5653 }
5654 if (0) {
5655 { /* Inline kernel$Object$!= (var_item_meth149,((val*)NULL)) on <var_item_meth149:nullable CallSite> */
5656 var_other = ((val*)NULL);
5657 {
5658 var153 = ((short int(*)(val* self, val* p0))(var_item_meth149->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_item_meth149, var_other); /* == on <var_item_meth149:nullable CallSite(CallSite)>*/
5659 }
5660 var154 = !var153;
5661 var151 = var154;
5662 goto RET_LABEL152;
5663 RET_LABEL152:(void)0;
5664 }
5665 var150 = var151;
5666 }
5667 if (unlikely(!var150)) {
5668 if(catchStack.cursor >= 0){
5669 longjmp(catchStack.envs[catchStack.cursor], 1);
5670 }
5671 PRINT_ERROR("Runtime error: %s", "Assert failed");
5672 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3531);
5673 fatal_exit(1);
5674 }
5675 var155 = NEW_core__Array(&type_core__Array__nitc__RuntimeVariable);
5676 {
5677 core___core__Array___with_capacity(var155, 1l); /* Direct call array$Array$with_capacity on <var155:Array[RuntimeVariable]>*/
5678 }
5679 var_156 = var155;
5680 {
5681 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_156, var_it48); /* Direct call array$AbstractArray$push on <var_156:Array[RuntimeVariable]>*/
5682 }
5683 {
5684 var157 = ((val*(*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var_item_meth149, var_156); /* compile_callsite on <var_v:AbstractCompilerVisitor>*/
5685 }
5686 var_i135 = var157;
5687 if (var_i135 == NULL) {
5688 var158 = 0; /* is null */
5689 } else {
5690 var158 = 1; /* arg is null and recv is not */
5691 }
5692 if (0) {
5693 { /* Inline kernel$Object$!= (var_i135,((val*)NULL)) on <var_i135:nullable RuntimeVariable> */
5694 var_other = ((val*)NULL);
5695 {
5696 var161 = ((short int(*)(val* self, val* p0))(var_i135->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_i135, var_other); /* == on <var_i135:nullable RuntimeVariable(RuntimeVariable)>*/
5697 }
5698 var162 = !var161;
5699 var159 = var162;
5700 goto RET_LABEL160;
5701 RET_LABEL160:(void)0;
5702 }
5703 var158 = var159;
5704 }
5705 if (unlikely(!var158)) {
5706 if(catchStack.cursor >= 0){
5707 longjmp(catchStack.envs[catchStack.cursor], 1);
5708 }
5709 PRINT_ERROR("Runtime error: %s", "Assert failed");
5710 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3533);
5711 fatal_exit(1);
5712 }
5713 {
5714 { /* Inline scope$AForGroup$variables (var_g44) on <var_g44:AForGroup> */
5715 var165 = var_g44->attrs[COLOR_nitc__scope__AForGroup___variables].val; /* _variables on <var_g44:AForGroup> */
5716 var163 = var165;
5717 RET_LABEL164:(void)0;
5718 }
5719 }
5720 if (var163 == NULL) {
5721 if(catchStack.cursor >= 0){
5722 longjmp(catchStack.envs[catchStack.cursor], 1);
5723 }
5724 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5725 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3534);
5726 fatal_exit(1);
5727 } else {
5728 var166 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var163, 1l);
5729 }
5730 {
5731 var167 = nitc___nitc__AbstractCompilerVisitor___variable(var_v, var166);
5732 }
5733 {
5734 nitc___nitc__AbstractCompilerVisitor___assign(var_v, var167, var_i135); /* Direct call abstract_compiler$AbstractCompilerVisitor$assign on <var_v:AbstractCompilerVisitor>*/
5735 }
5736 } else {
5737 if(catchStack.cursor >= 0){
5738 longjmp(catchStack.envs[catchStack.cursor], 1);
5739 }
5740 PRINT_ERROR("Runtime error: %s", "Aborted");
5741 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3536);
5742 fatal_exit(1);
5743 }
5744 }
5745 {
5746 ((void(*)(val* self))((((long)var_40&3)?class_info[((long)var_40&3)]:var_40->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_40); /* next on <var_40:Iterator[AForGroup]>*/
5747 }
5748 }
5749 BREAK_label42: (void)0;
5750 {
5751 ((void(*)(val* self))((((long)var_40&3)?class_info[((long)var_40&3)]:var_40->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_40); /* finish on <var_40:Iterator[AForGroup]>*/
5752 }
5753 {
5754 { /* Inline parser_nodes$AForExpr$n_block (self) on <self:AForExpr> */
5755 var170 = self->attrs[COLOR_nitc__parser_nodes__AForExpr___n_block].val; /* _n_block on <self:AForExpr> */
5756 var168 = var170;
5757 RET_LABEL169:(void)0;
5758 }
5759 }
5760 {
5761 nitc___nitc__AbstractCompilerVisitor___stmt(var_v, var168); /* Direct call abstract_compiler$AbstractCompilerVisitor$stmt on <var_v:AbstractCompilerVisitor>*/
5762 }
5763 {
5764 { /* Inline scope$AForExpr$continue_mark (self) on <self:AForExpr> */
5765 var173 = self->attrs[COLOR_nitc__scope__AForExpr___continue_mark].val; /* _continue_mark on <self:AForExpr> */
5766 var171 = var173;
5767 RET_LABEL172:(void)0;
5768 }
5769 }
5770 {
5771 nitc___nitc__AbstractCompilerVisitor___add_escape_label(var_v, var171); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_escape_label on <var_v:AbstractCompilerVisitor>*/
5772 }
5773 {
5774 { /* Inline parser_nodes$AForExpr$n_groups (self) on <self:AForExpr> */
5775 var176 = self->attrs[COLOR_nitc__parser_nodes__AForExpr___n_groups].val; /* _n_groups on <self:AForExpr> */
5776 if (unlikely(var176 == NULL)) {
5777 if(catchStack.cursor >= 0){
5778 longjmp(catchStack.envs[catchStack.cursor], 1);
5779 }
5780 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_groups");
5781 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2001);
5782 fatal_exit(1);
5783 }
5784 var174 = var176;
5785 RET_LABEL175:(void)0;
5786 }
5787 }
5788 var_177 = var174;
5789 {
5790 var178 = nitc___nitc__ANodes___core__abstract_collection__Collection__iterator(var_177);
5791 }
5792 var_179 = var178;
5793 for(;;) {
5794 {
5795 var180 = ((short int(*)(val* self))((((long)var_179&3)?class_info[((long)var_179&3)]:var_179->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_179); /* is_ok on <var_179:Iterator[AForGroup]>*/
5796 }
5797 if (var180){
5798 } else {
5799 goto BREAK_label181;
5800 }
5801 {
5802 var182 = ((val*(*)(val* self))((((long)var_179&3)?class_info[((long)var_179&3)]:var_179->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_179); /* item on <var_179:Iterator[AForGroup]>*/
5803 }
5804 var_g183 = var182;
5805 {
5806 { /* Inline typing$AForGroup$method_next (var_g183) on <var_g183:AForGroup> */
5807 var186 = var_g183->attrs[COLOR_nitc__typing__AForGroup___method_next].val; /* _method_next on <var_g183:AForGroup> */
5808 var184 = var186;
5809 RET_LABEL185:(void)0;
5810 }
5811 }
5812 var_next_meth = var184;
5813 if (var_next_meth == NULL) {
5814 var187 = 0; /* is null */
5815 } else {
5816 var187 = 1; /* arg is null and recv is not */
5817 }
5818 if (0) {
5819 { /* Inline kernel$Object$!= (var_next_meth,((val*)NULL)) on <var_next_meth:nullable CallSite> */
5820 var_other = ((val*)NULL);
5821 {
5822 var190 = ((short int(*)(val* self, val* p0))(var_next_meth->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_next_meth, var_other); /* == on <var_next_meth:nullable CallSite(CallSite)>*/
5823 }
5824 var191 = !var190;
5825 var188 = var191;
5826 goto RET_LABEL189;
5827 RET_LABEL189:(void)0;
5828 }
5829 var187 = var188;
5830 }
5831 if (unlikely(!var187)) {
5832 if(catchStack.cursor >= 0){
5833 longjmp(catchStack.envs[catchStack.cursor], 1);
5834 }
5835 PRINT_ERROR("Runtime error: %s", "Assert failed");
5836 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3543);
5837 fatal_exit(1);
5838 }
5839 var192 = NEW_core__Array(&type_core__Array__nitc__RuntimeVariable);
5840 {
5841 core___core__Array___with_capacity(var192, 1l); /* Direct call array$Array$with_capacity on <var192:Array[RuntimeVariable]>*/
5842 }
5843 var_193 = var192;
5844 {
5845 { /* Inline abstract_compiler$AForGroup$it (var_g183) on <var_g183:AForGroup> */
5846 var196 = var_g183->attrs[COLOR_nitc__abstract_compiler__AForGroup___it].val; /* _it on <var_g183:AForGroup> */
5847 if (unlikely(var196 == NULL)) {
5848 if(catchStack.cursor >= 0){
5849 longjmp(catchStack.envs[catchStack.cursor], 1);
5850 }
5851 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _it");
5852 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3560);
5853 fatal_exit(1);
5854 }
5855 var194 = var196;
5856 RET_LABEL195:(void)0;
5857 }
5858 }
5859 {
5860 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_193, var194); /* Direct call array$AbstractArray$push on <var_193:Array[RuntimeVariable]>*/
5861 }
5862 {
5863 var197 = ((val*(*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var_next_meth, var_193); /* compile_callsite on <var_v:AbstractCompilerVisitor>*/
5864 }
5865 {
5866 ((void(*)(val* self))((((long)var_179&3)?class_info[((long)var_179&3)]:var_179->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_179); /* next on <var_179:Iterator[AForGroup]>*/
5867 }
5868 }
5869 BREAK_label181: (void)0;
5870 {
5871 ((void(*)(val* self))((((long)var_179&3)?class_info[((long)var_179&3)]:var_179->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_179); /* finish on <var_179:Iterator[AForGroup]>*/
5872 }
5873 if (likely(varonce198!=NULL)) {
5874 var199 = varonce198;
5875 } else {
5876 var200 = "}";
5877 var202 = (val*)(1l<<2|1);
5878 var203 = (val*)(1l<<2|1);
5879 var204 = (val*)((long)(0)<<2|3);
5880 var205 = (val*)((long)(0)<<2|3);
5881 var201 = core__flat___CString___to_s_unsafe(var200, var202, var203, var204, var205);
5882 var199 = var201;
5883 varonce198 = var199;
5884 }
5885 {
5886 nitc___nitc__AbstractCompilerVisitor___add(var_v, var199); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
5887 }
5888 {
5889 { /* Inline scope$AForExpr$break_mark (self) on <self:AForExpr> */
5890 var208 = self->attrs[COLOR_nitc__scope__AForExpr___break_mark].val; /* _break_mark on <self:AForExpr> */
5891 var206 = var208;
5892 RET_LABEL207:(void)0;
5893 }
5894 }
5895 {
5896 nitc___nitc__AbstractCompilerVisitor___add_escape_label(var_v, var206); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_escape_label on <var_v:AbstractCompilerVisitor>*/
5897 }
5898 {
5899 { /* Inline parser_nodes$AForExpr$n_groups (self) on <self:AForExpr> */
5900 var211 = self->attrs[COLOR_nitc__parser_nodes__AForExpr___n_groups].val; /* _n_groups on <self:AForExpr> */
5901 if (unlikely(var211 == NULL)) {
5902 if(catchStack.cursor >= 0){
5903 longjmp(catchStack.envs[catchStack.cursor], 1);
5904 }
5905 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_groups");
5906 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2001);
5907 fatal_exit(1);
5908 }
5909 var209 = var211;
5910 RET_LABEL210:(void)0;
5911 }
5912 }
5913 var_212 = var209;
5914 {
5915 var213 = nitc___nitc__ANodes___core__abstract_collection__Collection__iterator(var_212);
5916 }
5917 var_214 = var213;
5918 for(;;) {
5919 {
5920 var215 = ((short int(*)(val* self))((((long)var_214&3)?class_info[((long)var_214&3)]:var_214->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_214); /* is_ok on <var_214:Iterator[AForGroup]>*/
5921 }
5922 if (var215){
5923 } else {
5924 goto BREAK_label216;
5925 }
5926 {
5927 var217 = ((val*(*)(val* self))((((long)var_214&3)?class_info[((long)var_214&3)]:var_214->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_214); /* item on <var_214:Iterator[AForGroup]>*/
5928 }
5929 var_g218 = var217;
5930 {
5931 { /* Inline typing$AForGroup$method_finish (var_g218) on <var_g218:AForGroup> */
5932 var221 = var_g218->attrs[COLOR_nitc__typing__AForGroup___method_finish].val; /* _method_finish on <var_g218:AForGroup> */
5933 var219 = var221;
5934 RET_LABEL220:(void)0;
5935 }
5936 }
5937 var_method_finish = var219;
5938 if (var_method_finish == NULL) {
5939 var222 = 0; /* is null */
5940 } else {
5941 var222 = 1; /* arg is null and recv is not */
5942 }
5943 if (0) {
5944 { /* Inline kernel$Object$!= (var_method_finish,((val*)NULL)) on <var_method_finish:nullable CallSite> */
5945 var_other = ((val*)NULL);
5946 {
5947 var225 = ((short int(*)(val* self, val* p0))(var_method_finish->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_method_finish, var_other); /* == on <var_method_finish:nullable CallSite(CallSite)>*/
5948 }
5949 var226 = !var225;
5950 var223 = var226;
5951 goto RET_LABEL224;
5952 RET_LABEL224:(void)0;
5953 }
5954 var222 = var223;
5955 }
5956 if (var222){
5957 var227 = NEW_core__Array(&type_core__Array__nitc__RuntimeVariable);
5958 {
5959 core___core__Array___with_capacity(var227, 1l); /* Direct call array$Array$with_capacity on <var227:Array[RuntimeVariable]>*/
5960 }
5961 var_228 = var227;
5962 {
5963 { /* Inline abstract_compiler$AForGroup$it (var_g218) on <var_g218:AForGroup> */
5964 var231 = var_g218->attrs[COLOR_nitc__abstract_compiler__AForGroup___it].val; /* _it on <var_g218:AForGroup> */
5965 if (unlikely(var231 == NULL)) {
5966 if(catchStack.cursor >= 0){
5967 longjmp(catchStack.envs[catchStack.cursor], 1);
5968 }
5969 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _it");
5970 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3560);
5971 fatal_exit(1);
5972 }
5973 var229 = var231;
5974 RET_LABEL230:(void)0;
5975 }
5976 }
5977 {
5978 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_228, var229); /* Direct call array$AbstractArray$push on <var_228:Array[RuntimeVariable]>*/
5979 }
5980 {
5981 var232 = ((val*(*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var_method_finish, var_228); /* compile_callsite on <var_v:AbstractCompilerVisitor>*/
5982 }
5983 } else {
5984 }
5985 {
5986 ((void(*)(val* self))((((long)var_214&3)?class_info[((long)var_214&3)]:var_214->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_214); /* next on <var_214:Iterator[AForGroup]>*/
5987 }
5988 }
5989 BREAK_label216: (void)0;
5990 {
5991 ((void(*)(val* self))((((long)var_214&3)?class_info[((long)var_214&3)]:var_214->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_214); /* finish on <var_214:Iterator[AForGroup]>*/
5992 }
5993 RET_LABEL:;
5994 }
5995 /* method abstract_compiler$AForGroup$it for (self: AForGroup): RuntimeVariable */
5996 val* nitc__abstract_compiler___AForGroup___it(val* self) {
5997 val* var /* : RuntimeVariable */;
5998 val* var1 /* : RuntimeVariable */;
5999 var1 = self->attrs[COLOR_nitc__abstract_compiler__AForGroup___it].val; /* _it on <self:AForGroup> */
6000 if (unlikely(var1 == NULL)) {
6001 if(catchStack.cursor >= 0){
6002 longjmp(catchStack.envs[catchStack.cursor], 1);
6003 }
6004 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _it");
6005 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3560);
6006 fatal_exit(1);
6007 }
6008 var = var1;
6009 RET_LABEL:;
6010 return var;
6011 }
6012 /* method abstract_compiler$AForGroup$it= for (self: AForGroup, RuntimeVariable) */
6013 void nitc__abstract_compiler___AForGroup___it_61d(val* self, val* p0) {
6014 self->attrs[COLOR_nitc__abstract_compiler__AForGroup___it].val = p0; /* _it on <self:AForGroup> */
6015 RET_LABEL:;
6016 }
6017 /* method abstract_compiler$AAssertExpr$stmt for (self: AAssertExpr, AbstractCompilerVisitor) */
6018 void nitc__abstract_compiler___AAssertExpr___AExpr__stmt(val* self, val* p0) {
6019 val* var_v /* var v: AbstractCompilerVisitor */;
6020 val* var /* : AbstractCompiler */;
6021 val* var2 /* : AbstractCompiler */;
6022 val* var3 /* : ModelBuilder */;
6023 val* var5 /* : ModelBuilder */;
6024 val* var6 /* : ToolContext */;
6025 val* var8 /* : ToolContext */;
6026 val* var9 /* : OptionBool */;
6027 val* var11 /* : OptionBool */;
6028 val* var12 /* : nullable Object */;
6029 val* var14 /* : nullable Object */;
6030 short int var15 /* : Bool */;
6031 val* var16 /* : AExpr */;
6032 val* var18 /* : AExpr */;
6033 val* var19 /* : RuntimeVariable */;
6034 val* var_cond /* var cond: RuntimeVariable */;
6035 val* var20 /* : NativeArray[String] */;
6036 static val* varonce;
6037 static val* varonce21;
6038 val* var22 /* : String */;
6039 char* var23 /* : CString */;
6040 val* var24 /* : String */;
6041 val* var25 /* : nullable Int */;
6042 val* var26 /* : nullable Int */;
6043 val* var27 /* : nullable Bool */;
6044 val* var28 /* : nullable Bool */;
6045 static val* varonce29;
6046 val* var30 /* : String */;
6047 char* var31 /* : CString */;
6048 val* var32 /* : String */;
6049 val* var33 /* : nullable Int */;
6050 val* var34 /* : nullable Int */;
6051 val* var35 /* : nullable Bool */;
6052 val* var36 /* : nullable Bool */;
6053 val* var37 /* : String */;
6054 val* var38 /* : String */;
6055 val* var39 /* : nullable AExpr */;
6056 val* var41 /* : nullable AExpr */;
6057 val* var42 /* : nullable TId */;
6058 val* var44 /* : nullable TId */;
6059 val* var_nid /* var nid: nullable TId */;
6060 short int var45 /* : Bool */;
6061 short int var46 /* : Bool */;
6062 val* var_other /* var other: nullable Object */;
6063 short int var48 /* : Bool */;
6064 short int var49 /* : Bool */;
6065 val* var51 /* : NativeArray[String] */;
6066 static val* varonce50;
6067 static val* varonce52;
6068 val* var53 /* : String */;
6069 char* var54 /* : CString */;
6070 val* var55 /* : String */;
6071 val* var56 /* : nullable Int */;
6072 val* var57 /* : nullable Int */;
6073 val* var58 /* : nullable Bool */;
6074 val* var59 /* : nullable Bool */;
6075 static val* varonce60;
6076 val* var61 /* : String */;
6077 char* var62 /* : CString */;
6078 val* var63 /* : String */;
6079 val* var64 /* : nullable Int */;
6080 val* var65 /* : nullable Int */;
6081 val* var66 /* : nullable Bool */;
6082 val* var67 /* : nullable Bool */;
6083 val* var68 /* : String */;
6084 val* var69 /* : String */;
6085 static val* varonce70;
6086 val* var71 /* : String */;
6087 char* var72 /* : CString */;
6088 val* var73 /* : String */;
6089 val* var74 /* : nullable Int */;
6090 val* var75 /* : nullable Int */;
6091 val* var76 /* : nullable Bool */;
6092 val* var77 /* : nullable Bool */;
6093 static val* varonce78;
6094 val* var79 /* : String */;
6095 char* var80 /* : CString */;
6096 val* var81 /* : String */;
6097 val* var82 /* : nullable Int */;
6098 val* var83 /* : nullable Int */;
6099 val* var84 /* : nullable Bool */;
6100 val* var85 /* : nullable Bool */;
6101 var_v = p0;
6102 {
6103 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (var_v) on <var_v:AbstractCompilerVisitor> */
6104 var2 = var_v->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <var_v:AbstractCompilerVisitor> */
6105 if (unlikely(var2 == NULL)) {
6106 if(catchStack.cursor >= 0){
6107 longjmp(catchStack.envs[catchStack.cursor], 1);
6108 }
6109 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
6110 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
6111 fatal_exit(1);
6112 }
6113 var = var2;
6114 RET_LABEL1:(void)0;
6115 }
6116 }
6117 {
6118 { /* Inline abstract_compiler$AbstractCompiler$modelbuilder (var) on <var:AbstractCompiler> */
6119 var5 = var->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var:AbstractCompiler> */
6120 if (unlikely(var5 == NULL)) {
6121 if(catchStack.cursor >= 0){
6122 longjmp(catchStack.envs[catchStack.cursor], 1);
6123 }
6124 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
6125 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 552);
6126 fatal_exit(1);
6127 }
6128 var3 = var5;
6129 RET_LABEL4:(void)0;
6130 }
6131 }
6132 {
6133 { /* Inline modelbuilder_base$ModelBuilder$toolcontext (var3) on <var3:ModelBuilder> */
6134 var8 = var3->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var3:ModelBuilder> */
6135 if (unlikely(var8 == NULL)) {
6136 if(catchStack.cursor >= 0){
6137 longjmp(catchStack.envs[catchStack.cursor], 1);
6138 }
6139 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
6140 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
6141 fatal_exit(1);
6142 }
6143 var6 = var8;
6144 RET_LABEL7:(void)0;
6145 }
6146 }
6147 {
6148 { /* Inline abstract_compiler$ToolContext$opt_no_check_assert (var6) on <var6:ToolContext> */
6149 var11 = var6->attrs[COLOR_nitc__abstract_compiler__ToolContext___opt_no_check_assert].val; /* _opt_no_check_assert on <var6:ToolContext> */
6150 if (unlikely(var11 == NULL)) {
6151 if(catchStack.cursor >= 0){
6152 longjmp(catchStack.envs[catchStack.cursor], 1);
6153 }
6154 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_assert");
6155 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 52);
6156 fatal_exit(1);
6157 }
6158 var9 = var11;
6159 RET_LABEL10:(void)0;
6160 }
6161 }
6162 {
6163 { /* Inline opts$Option$value (var9) on <var9:OptionBool> */
6164 var14 = var9->attrs[COLOR_opts__Option___value].val; /* _value on <var9:OptionBool> */
6165 var12 = var14;
6166 RET_LABEL13:(void)0;
6167 }
6168 }
6169 var15 = (short int)((long)(var12)>>2);
6170 if (var15){
6171 goto RET_LABEL;
6172 } else {
6173 }
6174 {
6175 { /* Inline parser_nodes$AAssertExpr$n_expr (self) on <self:AAssertExpr> */
6176 var18 = self->attrs[COLOR_nitc__parser_nodes__AAssertExpr___n_expr].val; /* _n_expr on <self:AAssertExpr> */
6177 if (unlikely(var18 == NULL)) {
6178 if(catchStack.cursor >= 0){
6179 longjmp(catchStack.envs[catchStack.cursor], 1);
6180 }
6181 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
6182 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2056);
6183 fatal_exit(1);
6184 }
6185 var16 = var18;
6186 RET_LABEL17:(void)0;
6187 }
6188 }
6189 {
6190 var19 = nitc___nitc__AbstractCompilerVisitor___expr_bool(var_v, var16);
6191 }
6192 var_cond = var19;
6193 if (unlikely(varonce==NULL)) {
6194 var20 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
6195 if (likely(varonce21!=NULL)) {
6196 var22 = varonce21;
6197 } else {
6198 var23 = "if (unlikely(!";
6199 var25 = (val*)(14l<<2|1);
6200 var26 = (val*)(14l<<2|1);
6201 var27 = (val*)((long)(0)<<2|3);
6202 var28 = (val*)((long)(0)<<2|3);
6203 var24 = core__flat___CString___to_s_unsafe(var23, var25, var26, var27, var28);
6204 var22 = var24;
6205 varonce21 = var22;
6206 }
6207 ((struct instance_core__NativeArray*)var20)->values[0]=var22;
6208 if (likely(varonce29!=NULL)) {
6209 var30 = varonce29;
6210 } else {
6211 var31 = ")) {";
6212 var33 = (val*)(4l<<2|1);
6213 var34 = (val*)(4l<<2|1);
6214 var35 = (val*)((long)(0)<<2|3);
6215 var36 = (val*)((long)(0)<<2|3);
6216 var32 = core__flat___CString___to_s_unsafe(var31, var33, var34, var35, var36);
6217 var30 = var32;
6218 varonce29 = var30;
6219 }
6220 ((struct instance_core__NativeArray*)var20)->values[2]=var30;
6221 } else {
6222 var20 = varonce;
6223 varonce = NULL;
6224 }
6225 {
6226 var37 = ((val*(*)(val* self))(var_cond->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_cond); /* to_s on <var_cond:RuntimeVariable>*/
6227 }
6228 ((struct instance_core__NativeArray*)var20)->values[1]=var37;
6229 {
6230 var38 = ((val*(*)(val* self))(var20->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var20); /* native_to_s on <var20:NativeArray[String]>*/
6231 }
6232 varonce = var20;
6233 {
6234 nitc___nitc__AbstractCompilerVisitor___add(var_v, var38); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
6235 }
6236 {
6237 { /* Inline parser_nodes$AAssertExpr$n_else (self) on <self:AAssertExpr> */
6238 var41 = self->attrs[COLOR_nitc__parser_nodes__AAssertExpr___n_else].val; /* _n_else on <self:AAssertExpr> */
6239 var39 = var41;
6240 RET_LABEL40:(void)0;
6241 }
6242 }
6243 {
6244 nitc___nitc__AbstractCompilerVisitor___stmt(var_v, var39); /* Direct call abstract_compiler$AbstractCompilerVisitor$stmt on <var_v:AbstractCompilerVisitor>*/
6245 }
6246 {
6247 { /* Inline parser_nodes$AAssertExpr$n_id (self) on <self:AAssertExpr> */
6248 var44 = self->attrs[COLOR_nitc__parser_nodes__AAssertExpr___n_id].val; /* _n_id on <self:AAssertExpr> */
6249 var42 = var44;
6250 RET_LABEL43:(void)0;
6251 }
6252 }
6253 var_nid = var42;
6254 if (var_nid == NULL) {
6255 var45 = 0; /* is null */
6256 } else {
6257 var45 = 1; /* arg is null and recv is not */
6258 }
6259 if (0) {
6260 { /* Inline kernel$Object$!= (var_nid,((val*)NULL)) on <var_nid:nullable TId> */
6261 var_other = ((val*)NULL);
6262 {
6263 var48 = ((short int(*)(val* self, val* p0))(var_nid->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_nid, var_other); /* == on <var_nid:nullable TId(TId)>*/
6264 }
6265 var49 = !var48;
6266 var46 = var49;
6267 goto RET_LABEL47;
6268 RET_LABEL47:(void)0;
6269 }
6270 var45 = var46;
6271 }
6272 if (var45){
6273 if (unlikely(varonce50==NULL)) {
6274 var51 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
6275 if (likely(varonce52!=NULL)) {
6276 var53 = varonce52;
6277 } else {
6278 var54 = "Assert \'";
6279 var56 = (val*)(8l<<2|1);
6280 var57 = (val*)(8l<<2|1);
6281 var58 = (val*)((long)(0)<<2|3);
6282 var59 = (val*)((long)(0)<<2|3);
6283 var55 = core__flat___CString___to_s_unsafe(var54, var56, var57, var58, var59);
6284 var53 = var55;
6285 varonce52 = var53;
6286 }
6287 ((struct instance_core__NativeArray*)var51)->values[0]=var53;
6288 if (likely(varonce60!=NULL)) {
6289 var61 = varonce60;
6290 } else {
6291 var62 = "\' failed";
6292 var64 = (val*)(8l<<2|1);
6293 var65 = (val*)(8l<<2|1);
6294 var66 = (val*)((long)(0)<<2|3);
6295 var67 = (val*)((long)(0)<<2|3);
6296 var63 = core__flat___CString___to_s_unsafe(var62, var64, var65, var66, var67);
6297 var61 = var63;
6298 varonce60 = var61;
6299 }
6300 ((struct instance_core__NativeArray*)var51)->values[2]=var61;
6301 } else {
6302 var51 = varonce50;
6303 varonce50 = NULL;
6304 }
6305 {
6306 var68 = nitc__lexer_work___Token___text(var_nid);
6307 }
6308 ((struct instance_core__NativeArray*)var51)->values[1]=var68;
6309 {
6310 var69 = ((val*(*)(val* self))(var51->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var51); /* native_to_s on <var51:NativeArray[String]>*/
6311 }
6312 varonce50 = var51;
6313 {
6314 nitc___nitc__AbstractCompilerVisitor___add_abort(var_v, var69); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_abort on <var_v:AbstractCompilerVisitor>*/
6315 }
6316 } else {
6317 if (likely(varonce70!=NULL)) {
6318 var71 = varonce70;
6319 } else {
6320 var72 = "Assert failed";
6321 var74 = (val*)(13l<<2|1);
6322 var75 = (val*)(13l<<2|1);
6323 var76 = (val*)((long)(0)<<2|3);
6324 var77 = (val*)((long)(0)<<2|3);
6325 var73 = core__flat___CString___to_s_unsafe(var72, var74, var75, var76, var77);
6326 var71 = var73;
6327 varonce70 = var71;
6328 }
6329 {
6330 nitc___nitc__AbstractCompilerVisitor___add_abort(var_v, var71); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_abort on <var_v:AbstractCompilerVisitor>*/
6331 }
6332 }
6333 if (likely(varonce78!=NULL)) {
6334 var79 = varonce78;
6335 } else {
6336 var80 = "}";
6337 var82 = (val*)(1l<<2|1);
6338 var83 = (val*)(1l<<2|1);
6339 var84 = (val*)((long)(0)<<2|3);
6340 var85 = (val*)((long)(0)<<2|3);
6341 var81 = core__flat___CString___to_s_unsafe(var80, var82, var83, var84, var85);
6342 var79 = var81;
6343 varonce78 = var79;
6344 }
6345 {
6346 nitc___nitc__AbstractCompilerVisitor___add(var_v, var79); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
6347 }
6348 RET_LABEL:;
6349 }
6350 /* method abstract_compiler$AOrExpr$expr for (self: AOrExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
6351 val* nitc__abstract_compiler___AOrExpr___AExpr__expr(val* self, val* p0) {
6352 val* var /* : nullable RuntimeVariable */;
6353 val* var_v /* var v: AbstractCompilerVisitor */;
6354 val* var1 /* : nullable MType */;
6355 val* var3 /* : nullable MType */;
6356 val* var4 /* : RuntimeVariable */;
6357 val* var_res /* var res: RuntimeVariable */;
6358 val* var5 /* : AExpr */;
6359 val* var7 /* : AExpr */;
6360 val* var8 /* : RuntimeVariable */;
6361 val* var_i1 /* var i1: RuntimeVariable */;
6362 val* var9 /* : NativeArray[String] */;
6363 static val* varonce;
6364 static val* varonce10;
6365 val* var11 /* : String */;
6366 char* var12 /* : CString */;
6367 val* var13 /* : String */;
6368 val* var14 /* : nullable Int */;
6369 val* var15 /* : nullable Int */;
6370 val* var16 /* : nullable Bool */;
6371 val* var17 /* : nullable Bool */;
6372 static val* varonce18;
6373 val* var19 /* : String */;
6374 char* var20 /* : CString */;
6375 val* var21 /* : String */;
6376 val* var22 /* : nullable Int */;
6377 val* var23 /* : nullable Int */;
6378 val* var24 /* : nullable Bool */;
6379 val* var25 /* : nullable Bool */;
6380 val* var26 /* : String */;
6381 val* var27 /* : String */;
6382 val* var29 /* : NativeArray[String] */;
6383 static val* varonce28;
6384 static val* varonce30;
6385 val* var31 /* : String */;
6386 char* var32 /* : CString */;
6387 val* var33 /* : String */;
6388 val* var34 /* : nullable Int */;
6389 val* var35 /* : nullable Int */;
6390 val* var36 /* : nullable Bool */;
6391 val* var37 /* : nullable Bool */;
6392 val* var38 /* : String */;
6393 val* var39 /* : String */;
6394 static val* varonce40;
6395 val* var41 /* : String */;
6396 char* var42 /* : CString */;
6397 val* var43 /* : String */;
6398 val* var44 /* : nullable Int */;
6399 val* var45 /* : nullable Int */;
6400 val* var46 /* : nullable Bool */;
6401 val* var47 /* : nullable Bool */;
6402 val* var48 /* : AExpr */;
6403 val* var50 /* : AExpr */;
6404 val* var51 /* : RuntimeVariable */;
6405 val* var_i2 /* var i2: RuntimeVariable */;
6406 val* var53 /* : NativeArray[String] */;
6407 static val* varonce52;
6408 static val* varonce54;
6409 val* var55 /* : String */;
6410 char* var56 /* : CString */;
6411 val* var57 /* : String */;
6412 val* var58 /* : nullable Int */;
6413 val* var59 /* : nullable Int */;
6414 val* var60 /* : nullable Bool */;
6415 val* var61 /* : nullable Bool */;
6416 static val* varonce62;
6417 val* var63 /* : String */;
6418 char* var64 /* : CString */;
6419 val* var65 /* : String */;
6420 val* var66 /* : nullable Int */;
6421 val* var67 /* : nullable Int */;
6422 val* var68 /* : nullable Bool */;
6423 val* var69 /* : nullable Bool */;
6424 val* var70 /* : String */;
6425 val* var71 /* : String */;
6426 val* var72 /* : String */;
6427 static val* varonce73;
6428 val* var74 /* : String */;
6429 char* var75 /* : CString */;
6430 val* var76 /* : String */;
6431 val* var77 /* : nullable Int */;
6432 val* var78 /* : nullable Int */;
6433 val* var79 /* : nullable Bool */;
6434 val* var80 /* : nullable Bool */;
6435 var_v = p0;
6436 {
6437 { /* Inline typing$AExpr$mtype (self) on <self:AOrExpr> */
6438 var3 = self->attrs[COLOR_nitc__typing__AExpr___mtype].val; /* _mtype on <self:AOrExpr> */
6439 var1 = var3;
6440 RET_LABEL2:(void)0;
6441 }
6442 }
6443 if (unlikely(var1 == NULL)) {
6444 if(catchStack.cursor >= 0){
6445 longjmp(catchStack.envs[catchStack.cursor], 1);
6446 }
6447 PRINT_ERROR("Runtime error: %s", "Cast failed");
6448 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3585);
6449 fatal_exit(1);
6450 }
6451 {
6452 var4 = nitc___nitc__AbstractCompilerVisitor___new_var(var_v, var1);
6453 }
6454 var_res = var4;
6455 {
6456 { /* Inline parser_nodes$ABinBoolExpr$n_expr (self) on <self:AOrExpr> */
6457 var7 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr].val; /* _n_expr on <self:AOrExpr> */
6458 if (unlikely(var7 == NULL)) {
6459 if(catchStack.cursor >= 0){
6460 longjmp(catchStack.envs[catchStack.cursor], 1);
6461 }
6462 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
6463 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2131);
6464 fatal_exit(1);
6465 }
6466 var5 = var7;
6467 RET_LABEL6:(void)0;
6468 }
6469 }
6470 {
6471 var8 = nitc___nitc__AbstractCompilerVisitor___expr_bool(var_v, var5);
6472 }
6473 var_i1 = var8;
6474 if (unlikely(varonce==NULL)) {
6475 var9 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
6476 if (likely(varonce10!=NULL)) {
6477 var11 = varonce10;
6478 } else {
6479 var12 = "if (";
6480 var14 = (val*)(4l<<2|1);
6481 var15 = (val*)(4l<<2|1);
6482 var16 = (val*)((long)(0)<<2|3);
6483 var17 = (val*)((long)(0)<<2|3);
6484 var13 = core__flat___CString___to_s_unsafe(var12, var14, var15, var16, var17);
6485 var11 = var13;
6486 varonce10 = var11;
6487 }
6488 ((struct instance_core__NativeArray*)var9)->values[0]=var11;
6489 if (likely(varonce18!=NULL)) {
6490 var19 = varonce18;
6491 } else {
6492 var20 = ") {";
6493 var22 = (val*)(3l<<2|1);
6494 var23 = (val*)(3l<<2|1);
6495 var24 = (val*)((long)(0)<<2|3);
6496 var25 = (val*)((long)(0)<<2|3);
6497 var21 = core__flat___CString___to_s_unsafe(var20, var22, var23, var24, var25);
6498 var19 = var21;
6499 varonce18 = var19;
6500 }
6501 ((struct instance_core__NativeArray*)var9)->values[2]=var19;
6502 } else {
6503 var9 = varonce;
6504 varonce = NULL;
6505 }
6506 {
6507 var26 = ((val*(*)(val* self))(var_i1->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_i1); /* to_s on <var_i1:RuntimeVariable>*/
6508 }
6509 ((struct instance_core__NativeArray*)var9)->values[1]=var26;
6510 {
6511 var27 = ((val*(*)(val* self))(var9->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var9); /* native_to_s on <var9:NativeArray[String]>*/
6512 }
6513 varonce = var9;
6514 {
6515 nitc___nitc__AbstractCompilerVisitor___add(var_v, var27); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
6516 }
6517 if (unlikely(varonce28==NULL)) {
6518 var29 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
6519 if (likely(varonce30!=NULL)) {
6520 var31 = varonce30;
6521 } else {
6522 var32 = " = 1;";
6523 var34 = (val*)(5l<<2|1);
6524 var35 = (val*)(5l<<2|1);
6525 var36 = (val*)((long)(0)<<2|3);
6526 var37 = (val*)((long)(0)<<2|3);
6527 var33 = core__flat___CString___to_s_unsafe(var32, var34, var35, var36, var37);
6528 var31 = var33;
6529 varonce30 = var31;
6530 }
6531 ((struct instance_core__NativeArray*)var29)->values[1]=var31;
6532 } else {
6533 var29 = varonce28;
6534 varonce28 = NULL;
6535 }
6536 {
6537 var38 = ((val*(*)(val* self))(var_res->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_res); /* to_s on <var_res:RuntimeVariable>*/
6538 }
6539 ((struct instance_core__NativeArray*)var29)->values[0]=var38;
6540 {
6541 var39 = ((val*(*)(val* self))(var29->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var29); /* native_to_s on <var29:NativeArray[String]>*/
6542 }
6543 varonce28 = var29;
6544 {
6545 nitc___nitc__AbstractCompilerVisitor___add(var_v, var39); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
6546 }
6547 if (likely(varonce40!=NULL)) {
6548 var41 = varonce40;
6549 } else {
6550 var42 = "} else {";
6551 var44 = (val*)(8l<<2|1);
6552 var45 = (val*)(8l<<2|1);
6553 var46 = (val*)((long)(0)<<2|3);
6554 var47 = (val*)((long)(0)<<2|3);
6555 var43 = core__flat___CString___to_s_unsafe(var42, var44, var45, var46, var47);
6556 var41 = var43;
6557 varonce40 = var41;
6558 }
6559 {
6560 nitc___nitc__AbstractCompilerVisitor___add(var_v, var41); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
6561 }
6562 {
6563 { /* Inline parser_nodes$ABinBoolExpr$n_expr2 (self) on <self:AOrExpr> */
6564 var50 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr2].val; /* _n_expr2 on <self:AOrExpr> */
6565 if (unlikely(var50 == NULL)) {
6566 if(catchStack.cursor >= 0){
6567 longjmp(catchStack.envs[catchStack.cursor], 1);
6568 }
6569 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
6570 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2137);
6571 fatal_exit(1);
6572 }
6573 var48 = var50;
6574 RET_LABEL49:(void)0;
6575 }
6576 }
6577 {
6578 var51 = nitc___nitc__AbstractCompilerVisitor___expr_bool(var_v, var48);
6579 }
6580 var_i2 = var51;
6581 if (unlikely(varonce52==NULL)) {
6582 var53 = NEW_core__NativeArray((int)4l, &type_core__NativeArray__core__String);
6583 if (likely(varonce54!=NULL)) {
6584 var55 = varonce54;
6585 } else {
6586 var56 = " = ";
6587 var58 = (val*)(3l<<2|1);
6588 var59 = (val*)(3l<<2|1);
6589 var60 = (val*)((long)(0)<<2|3);
6590 var61 = (val*)((long)(0)<<2|3);
6591 var57 = core__flat___CString___to_s_unsafe(var56, var58, var59, var60, var61);
6592 var55 = var57;
6593 varonce54 = var55;
6594 }
6595 ((struct instance_core__NativeArray*)var53)->values[1]=var55;
6596 if (likely(varonce62!=NULL)) {
6597 var63 = varonce62;
6598 } else {
6599 var64 = ";";
6600 var66 = (val*)(1l<<2|1);
6601 var67 = (val*)(1l<<2|1);
6602 var68 = (val*)((long)(0)<<2|3);
6603 var69 = (val*)((long)(0)<<2|3);
6604 var65 = core__flat___CString___to_s_unsafe(var64, var66, var67, var68, var69);
6605 var63 = var65;
6606 varonce62 = var63;
6607 }
6608 ((struct instance_core__NativeArray*)var53)->values[3]=var63;
6609 } else {
6610 var53 = varonce52;
6611 varonce52 = NULL;
6612 }
6613 {
6614 var70 = ((val*(*)(val* self))(var_res->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_res); /* to_s on <var_res:RuntimeVariable>*/
6615 }
6616 ((struct instance_core__NativeArray*)var53)->values[0]=var70;
6617 {
6618 var71 = ((val*(*)(val* self))(var_i2->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_i2); /* to_s on <var_i2:RuntimeVariable>*/
6619 }
6620 ((struct instance_core__NativeArray*)var53)->values[2]=var71;
6621 {
6622 var72 = ((val*(*)(val* self))(var53->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var53); /* native_to_s on <var53:NativeArray[String]>*/
6623 }
6624 varonce52 = var53;
6625 {
6626 nitc___nitc__AbstractCompilerVisitor___add(var_v, var72); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
6627 }
6628 if (likely(varonce73!=NULL)) {
6629 var74 = varonce73;
6630 } else {
6631 var75 = "}";
6632 var77 = (val*)(1l<<2|1);
6633 var78 = (val*)(1l<<2|1);
6634 var79 = (val*)((long)(0)<<2|3);
6635 var80 = (val*)((long)(0)<<2|3);
6636 var76 = core__flat___CString___to_s_unsafe(var75, var77, var78, var79, var80);
6637 var74 = var76;
6638 varonce73 = var74;
6639 }
6640 {
6641 nitc___nitc__AbstractCompilerVisitor___add(var_v, var74); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
6642 }
6643 var = var_res;
6644 goto RET_LABEL;
6645 RET_LABEL:;
6646 return var;
6647 }
6648 /* method abstract_compiler$AImpliesExpr$expr for (self: AImpliesExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
6649 val* nitc__abstract_compiler___AImpliesExpr___AExpr__expr(val* self, val* p0) {
6650 val* var /* : nullable RuntimeVariable */;
6651 val* var_v /* var v: AbstractCompilerVisitor */;
6652 val* var1 /* : nullable MType */;
6653 val* var3 /* : nullable MType */;
6654 val* var4 /* : RuntimeVariable */;
6655 val* var_res /* var res: RuntimeVariable */;
6656 val* var5 /* : AExpr */;
6657 val* var7 /* : AExpr */;
6658 val* var8 /* : RuntimeVariable */;
6659 val* var_i1 /* var i1: RuntimeVariable */;
6660 val* var9 /* : NativeArray[String] */;
6661 static val* varonce;
6662 static val* varonce10;
6663 val* var11 /* : String */;
6664 char* var12 /* : CString */;
6665 val* var13 /* : String */;
6666 val* var14 /* : nullable Int */;
6667 val* var15 /* : nullable Int */;
6668 val* var16 /* : nullable Bool */;
6669 val* var17 /* : nullable Bool */;
6670 static val* varonce18;
6671 val* var19 /* : String */;
6672 char* var20 /* : CString */;
6673 val* var21 /* : String */;
6674 val* var22 /* : nullable Int */;
6675 val* var23 /* : nullable Int */;
6676 val* var24 /* : nullable Bool */;
6677 val* var25 /* : nullable Bool */;
6678 val* var26 /* : String */;
6679 val* var27 /* : String */;
6680 val* var29 /* : NativeArray[String] */;
6681 static val* varonce28;
6682 static val* varonce30;
6683 val* var31 /* : String */;
6684 char* var32 /* : CString */;
6685 val* var33 /* : String */;
6686 val* var34 /* : nullable Int */;
6687 val* var35 /* : nullable Int */;
6688 val* var36 /* : nullable Bool */;
6689 val* var37 /* : nullable Bool */;
6690 val* var38 /* : String */;
6691 val* var39 /* : String */;
6692 static val* varonce40;
6693 val* var41 /* : String */;
6694 char* var42 /* : CString */;
6695 val* var43 /* : String */;
6696 val* var44 /* : nullable Int */;
6697 val* var45 /* : nullable Int */;
6698 val* var46 /* : nullable Bool */;
6699 val* var47 /* : nullable Bool */;
6700 val* var48 /* : AExpr */;
6701 val* var50 /* : AExpr */;
6702 val* var51 /* : RuntimeVariable */;
6703 val* var_i2 /* var i2: RuntimeVariable */;
6704 val* var53 /* : NativeArray[String] */;
6705 static val* varonce52;
6706 static val* varonce54;
6707 val* var55 /* : String */;
6708 char* var56 /* : CString */;
6709 val* var57 /* : String */;
6710 val* var58 /* : nullable Int */;
6711 val* var59 /* : nullable Int */;
6712 val* var60 /* : nullable Bool */;
6713 val* var61 /* : nullable Bool */;
6714 static val* varonce62;
6715 val* var63 /* : String */;
6716 char* var64 /* : CString */;
6717 val* var65 /* : String */;
6718 val* var66 /* : nullable Int */;
6719 val* var67 /* : nullable Int */;
6720 val* var68 /* : nullable Bool */;
6721 val* var69 /* : nullable Bool */;
6722 val* var70 /* : String */;
6723 val* var71 /* : String */;
6724 val* var72 /* : String */;
6725 static val* varonce73;
6726 val* var74 /* : String */;
6727 char* var75 /* : CString */;
6728 val* var76 /* : String */;
6729 val* var77 /* : nullable Int */;
6730 val* var78 /* : nullable Int */;
6731 val* var79 /* : nullable Bool */;
6732 val* var80 /* : nullable Bool */;
6733 var_v = p0;
6734 {
6735 { /* Inline typing$AExpr$mtype (self) on <self:AImpliesExpr> */
6736 var3 = self->attrs[COLOR_nitc__typing__AExpr___mtype].val; /* _mtype on <self:AImpliesExpr> */
6737 var1 = var3;
6738 RET_LABEL2:(void)0;
6739 }
6740 }
6741 if (unlikely(var1 == NULL)) {
6742 if(catchStack.cursor >= 0){
6743 longjmp(catchStack.envs[catchStack.cursor], 1);
6744 }
6745 PRINT_ERROR("Runtime error: %s", "Cast failed");
6746 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3600);
6747 fatal_exit(1);
6748 }
6749 {
6750 var4 = nitc___nitc__AbstractCompilerVisitor___new_var(var_v, var1);
6751 }
6752 var_res = var4;
6753 {
6754 { /* Inline parser_nodes$ABinBoolExpr$n_expr (self) on <self:AImpliesExpr> */
6755 var7 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr].val; /* _n_expr on <self:AImpliesExpr> */
6756 if (unlikely(var7 == NULL)) {
6757 if(catchStack.cursor >= 0){
6758 longjmp(catchStack.envs[catchStack.cursor], 1);
6759 }
6760 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
6761 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2131);
6762 fatal_exit(1);
6763 }
6764 var5 = var7;
6765 RET_LABEL6:(void)0;
6766 }
6767 }
6768 {
6769 var8 = nitc___nitc__AbstractCompilerVisitor___expr_bool(var_v, var5);
6770 }
6771 var_i1 = var8;
6772 if (unlikely(varonce==NULL)) {
6773 var9 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
6774 if (likely(varonce10!=NULL)) {
6775 var11 = varonce10;
6776 } else {
6777 var12 = "if (!";
6778 var14 = (val*)(5l<<2|1);
6779 var15 = (val*)(5l<<2|1);
6780 var16 = (val*)((long)(0)<<2|3);
6781 var17 = (val*)((long)(0)<<2|3);
6782 var13 = core__flat___CString___to_s_unsafe(var12, var14, var15, var16, var17);
6783 var11 = var13;
6784 varonce10 = var11;
6785 }
6786 ((struct instance_core__NativeArray*)var9)->values[0]=var11;
6787 if (likely(varonce18!=NULL)) {
6788 var19 = varonce18;
6789 } else {
6790 var20 = ") {";
6791 var22 = (val*)(3l<<2|1);
6792 var23 = (val*)(3l<<2|1);
6793 var24 = (val*)((long)(0)<<2|3);
6794 var25 = (val*)((long)(0)<<2|3);
6795 var21 = core__flat___CString___to_s_unsafe(var20, var22, var23, var24, var25);
6796 var19 = var21;
6797 varonce18 = var19;
6798 }
6799 ((struct instance_core__NativeArray*)var9)->values[2]=var19;
6800 } else {
6801 var9 = varonce;
6802 varonce = NULL;
6803 }
6804 {
6805 var26 = ((val*(*)(val* self))(var_i1->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_i1); /* to_s on <var_i1:RuntimeVariable>*/
6806 }
6807 ((struct instance_core__NativeArray*)var9)->values[1]=var26;
6808 {
6809 var27 = ((val*(*)(val* self))(var9->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var9); /* native_to_s on <var9:NativeArray[String]>*/
6810 }
6811 varonce = var9;
6812 {
6813 nitc___nitc__AbstractCompilerVisitor___add(var_v, var27); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
6814 }
6815 if (unlikely(varonce28==NULL)) {
6816 var29 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
6817 if (likely(varonce30!=NULL)) {
6818 var31 = varonce30;
6819 } else {
6820 var32 = " = 1;";
6821 var34 = (val*)(5l<<2|1);
6822 var35 = (val*)(5l<<2|1);
6823 var36 = (val*)((long)(0)<<2|3);
6824 var37 = (val*)((long)(0)<<2|3);
6825 var33 = core__flat___CString___to_s_unsafe(var32, var34, var35, var36, var37);
6826 var31 = var33;
6827 varonce30 = var31;
6828 }
6829 ((struct instance_core__NativeArray*)var29)->values[1]=var31;
6830 } else {
6831 var29 = varonce28;
6832 varonce28 = NULL;
6833 }
6834 {
6835 var38 = ((val*(*)(val* self))(var_res->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_res); /* to_s on <var_res:RuntimeVariable>*/
6836 }
6837 ((struct instance_core__NativeArray*)var29)->values[0]=var38;
6838 {
6839 var39 = ((val*(*)(val* self))(var29->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var29); /* native_to_s on <var29:NativeArray[String]>*/
6840 }
6841 varonce28 = var29;
6842 {
6843 nitc___nitc__AbstractCompilerVisitor___add(var_v, var39); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
6844 }
6845 if (likely(varonce40!=NULL)) {
6846 var41 = varonce40;
6847 } else {
6848 var42 = "} else {";
6849 var44 = (val*)(8l<<2|1);
6850 var45 = (val*)(8l<<2|1);
6851 var46 = (val*)((long)(0)<<2|3);
6852 var47 = (val*)((long)(0)<<2|3);
6853 var43 = core__flat___CString___to_s_unsafe(var42, var44, var45, var46, var47);
6854 var41 = var43;
6855 varonce40 = var41;
6856 }
6857 {
6858 nitc___nitc__AbstractCompilerVisitor___add(var_v, var41); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
6859 }
6860 {
6861 { /* Inline parser_nodes$ABinBoolExpr$n_expr2 (self) on <self:AImpliesExpr> */
6862 var50 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr2].val; /* _n_expr2 on <self:AImpliesExpr> */
6863 if (unlikely(var50 == NULL)) {
6864 if(catchStack.cursor >= 0){
6865 longjmp(catchStack.envs[catchStack.cursor], 1);
6866 }
6867 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
6868 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2137);
6869 fatal_exit(1);
6870 }
6871 var48 = var50;
6872 RET_LABEL49:(void)0;
6873 }
6874 }
6875 {
6876 var51 = nitc___nitc__AbstractCompilerVisitor___expr_bool(var_v, var48);
6877 }
6878 var_i2 = var51;
6879 if (unlikely(varonce52==NULL)) {
6880 var53 = NEW_core__NativeArray((int)4l, &type_core__NativeArray__core__String);
6881 if (likely(varonce54!=NULL)) {
6882 var55 = varonce54;
6883 } else {
6884 var56 = " = ";
6885 var58 = (val*)(3l<<2|1);
6886 var59 = (val*)(3l<<2|1);
6887 var60 = (val*)((long)(0)<<2|3);
6888 var61 = (val*)((long)(0)<<2|3);
6889 var57 = core__flat___CString___to_s_unsafe(var56, var58, var59, var60, var61);
6890 var55 = var57;
6891 varonce54 = var55;
6892 }
6893 ((struct instance_core__NativeArray*)var53)->values[1]=var55;
6894 if (likely(varonce62!=NULL)) {
6895 var63 = varonce62;
6896 } else {
6897 var64 = ";";
6898 var66 = (val*)(1l<<2|1);
6899 var67 = (val*)(1l<<2|1);
6900 var68 = (val*)((long)(0)<<2|3);
6901 var69 = (val*)((long)(0)<<2|3);
6902 var65 = core__flat___CString___to_s_unsafe(var64, var66, var67, var68, var69);
6903 var63 = var65;
6904 varonce62 = var63;
6905 }
6906 ((struct instance_core__NativeArray*)var53)->values[3]=var63;
6907 } else {
6908 var53 = varonce52;
6909 varonce52 = NULL;
6910 }
6911 {
6912 var70 = ((val*(*)(val* self))(var_res->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_res); /* to_s on <var_res:RuntimeVariable>*/
6913 }
6914 ((struct instance_core__NativeArray*)var53)->values[0]=var70;
6915 {
6916 var71 = ((val*(*)(val* self))(var_i2->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_i2); /* to_s on <var_i2:RuntimeVariable>*/
6917 }
6918 ((struct instance_core__NativeArray*)var53)->values[2]=var71;
6919 {
6920 var72 = ((val*(*)(val* self))(var53->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var53); /* native_to_s on <var53:NativeArray[String]>*/
6921 }
6922 varonce52 = var53;
6923 {
6924 nitc___nitc__AbstractCompilerVisitor___add(var_v, var72); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
6925 }
6926 if (likely(varonce73!=NULL)) {
6927 var74 = varonce73;
6928 } else {
6929 var75 = "}";
6930 var77 = (val*)(1l<<2|1);
6931 var78 = (val*)(1l<<2|1);
6932 var79 = (val*)((long)(0)<<2|3);
6933 var80 = (val*)((long)(0)<<2|3);
6934 var76 = core__flat___CString___to_s_unsafe(var75, var77, var78, var79, var80);
6935 var74 = var76;
6936 varonce73 = var74;
6937 }
6938 {
6939 nitc___nitc__AbstractCompilerVisitor___add(var_v, var74); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
6940 }
6941 var = var_res;
6942 goto RET_LABEL;
6943 RET_LABEL:;
6944 return var;
6945 }
6946 /* method abstract_compiler$AAndExpr$expr for (self: AAndExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
6947 val* nitc__abstract_compiler___AAndExpr___AExpr__expr(val* self, val* p0) {
6948 val* var /* : nullable RuntimeVariable */;
6949 val* var_v /* var v: AbstractCompilerVisitor */;
6950 val* var1 /* : nullable MType */;
6951 val* var3 /* : nullable MType */;
6952 val* var4 /* : RuntimeVariable */;
6953 val* var_res /* var res: RuntimeVariable */;
6954 val* var5 /* : AExpr */;
6955 val* var7 /* : AExpr */;
6956 val* var8 /* : RuntimeVariable */;
6957 val* var_i1 /* var i1: RuntimeVariable */;
6958 val* var9 /* : NativeArray[String] */;
6959 static val* varonce;
6960 static val* varonce10;
6961 val* var11 /* : String */;
6962 char* var12 /* : CString */;
6963 val* var13 /* : String */;
6964 val* var14 /* : nullable Int */;
6965 val* var15 /* : nullable Int */;
6966 val* var16 /* : nullable Bool */;
6967 val* var17 /* : nullable Bool */;
6968 static val* varonce18;
6969 val* var19 /* : String */;
6970 char* var20 /* : CString */;
6971 val* var21 /* : String */;
6972 val* var22 /* : nullable Int */;
6973 val* var23 /* : nullable Int */;
6974 val* var24 /* : nullable Bool */;
6975 val* var25 /* : nullable Bool */;
6976 val* var26 /* : String */;
6977 val* var27 /* : String */;
6978 val* var29 /* : NativeArray[String] */;
6979 static val* varonce28;
6980 static val* varonce30;
6981 val* var31 /* : String */;
6982 char* var32 /* : CString */;
6983 val* var33 /* : String */;
6984 val* var34 /* : nullable Int */;
6985 val* var35 /* : nullable Int */;
6986 val* var36 /* : nullable Bool */;
6987 val* var37 /* : nullable Bool */;
6988 val* var38 /* : String */;
6989 val* var39 /* : String */;
6990 static val* varonce40;
6991 val* var41 /* : String */;
6992 char* var42 /* : CString */;
6993 val* var43 /* : String */;
6994 val* var44 /* : nullable Int */;
6995 val* var45 /* : nullable Int */;
6996 val* var46 /* : nullable Bool */;
6997 val* var47 /* : nullable Bool */;
6998 val* var48 /* : AExpr */;
6999 val* var50 /* : AExpr */;
7000 val* var51 /* : RuntimeVariable */;
7001 val* var_i2 /* var i2: RuntimeVariable */;
7002 val* var53 /* : NativeArray[String] */;
7003 static val* varonce52;
7004 static val* varonce54;
7005 val* var55 /* : String */;
7006 char* var56 /* : CString */;
7007 val* var57 /* : String */;
7008 val* var58 /* : nullable Int */;
7009 val* var59 /* : nullable Int */;
7010 val* var60 /* : nullable Bool */;
7011 val* var61 /* : nullable Bool */;
7012 static val* varonce62;
7013 val* var63 /* : String */;
7014 char* var64 /* : CString */;
7015 val* var65 /* : String */;
7016 val* var66 /* : nullable Int */;
7017 val* var67 /* : nullable Int */;
7018 val* var68 /* : nullable Bool */;
7019 val* var69 /* : nullable Bool */;
7020 val* var70 /* : String */;
7021 val* var71 /* : String */;
7022 val* var72 /* : String */;
7023 static val* varonce73;
7024 val* var74 /* : String */;
7025 char* var75 /* : CString */;
7026 val* var76 /* : String */;
7027 val* var77 /* : nullable Int */;
7028 val* var78 /* : nullable Int */;
7029 val* var79 /* : nullable Bool */;
7030 val* var80 /* : nullable Bool */;
7031 var_v = p0;
7032 {
7033 { /* Inline typing$AExpr$mtype (self) on <self:AAndExpr> */
7034 var3 = self->attrs[COLOR_nitc__typing__AExpr___mtype].val; /* _mtype on <self:AAndExpr> */
7035 var1 = var3;
7036 RET_LABEL2:(void)0;
7037 }
7038 }
7039 if (unlikely(var1 == NULL)) {
7040 if(catchStack.cursor >= 0){
7041 longjmp(catchStack.envs[catchStack.cursor], 1);
7042 }
7043 PRINT_ERROR("Runtime error: %s", "Cast failed");
7044 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3615);
7045 fatal_exit(1);
7046 }
7047 {
7048 var4 = nitc___nitc__AbstractCompilerVisitor___new_var(var_v, var1);
7049 }
7050 var_res = var4;
7051 {
7052 { /* Inline parser_nodes$ABinBoolExpr$n_expr (self) on <self:AAndExpr> */
7053 var7 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr].val; /* _n_expr on <self:AAndExpr> */
7054 if (unlikely(var7 == NULL)) {
7055 if(catchStack.cursor >= 0){
7056 longjmp(catchStack.envs[catchStack.cursor], 1);
7057 }
7058 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
7059 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2131);
7060 fatal_exit(1);
7061 }
7062 var5 = var7;
7063 RET_LABEL6:(void)0;
7064 }
7065 }
7066 {
7067 var8 = nitc___nitc__AbstractCompilerVisitor___expr_bool(var_v, var5);
7068 }
7069 var_i1 = var8;
7070 if (unlikely(varonce==NULL)) {
7071 var9 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
7072 if (likely(varonce10!=NULL)) {
7073 var11 = varonce10;
7074 } else {
7075 var12 = "if (!";
7076 var14 = (val*)(5l<<2|1);
7077 var15 = (val*)(5l<<2|1);
7078 var16 = (val*)((long)(0)<<2|3);
7079 var17 = (val*)((long)(0)<<2|3);
7080 var13 = core__flat___CString___to_s_unsafe(var12, var14, var15, var16, var17);
7081 var11 = var13;
7082 varonce10 = var11;
7083 }
7084 ((struct instance_core__NativeArray*)var9)->values[0]=var11;
7085 if (likely(varonce18!=NULL)) {
7086 var19 = varonce18;
7087 } else {
7088 var20 = ") {";
7089 var22 = (val*)(3l<<2|1);
7090 var23 = (val*)(3l<<2|1);
7091 var24 = (val*)((long)(0)<<2|3);
7092 var25 = (val*)((long)(0)<<2|3);
7093 var21 = core__flat___CString___to_s_unsafe(var20, var22, var23, var24, var25);
7094 var19 = var21;
7095 varonce18 = var19;
7096 }
7097 ((struct instance_core__NativeArray*)var9)->values[2]=var19;
7098 } else {
7099 var9 = varonce;
7100 varonce = NULL;
7101 }
7102 {
7103 var26 = ((val*(*)(val* self))(var_i1->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_i1); /* to_s on <var_i1:RuntimeVariable>*/
7104 }
7105 ((struct instance_core__NativeArray*)var9)->values[1]=var26;
7106 {
7107 var27 = ((val*(*)(val* self))(var9->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var9); /* native_to_s on <var9:NativeArray[String]>*/
7108 }
7109 varonce = var9;
7110 {
7111 nitc___nitc__AbstractCompilerVisitor___add(var_v, var27); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
7112 }
7113 if (unlikely(varonce28==NULL)) {
7114 var29 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
7115 if (likely(varonce30!=NULL)) {
7116 var31 = varonce30;
7117 } else {
7118 var32 = " = 0;";
7119 var34 = (val*)(5l<<2|1);
7120 var35 = (val*)(5l<<2|1);
7121 var36 = (val*)((long)(0)<<2|3);
7122 var37 = (val*)((long)(0)<<2|3);
7123 var33 = core__flat___CString___to_s_unsafe(var32, var34, var35, var36, var37);
7124 var31 = var33;
7125 varonce30 = var31;
7126 }
7127 ((struct instance_core__NativeArray*)var29)->values[1]=var31;
7128 } else {
7129 var29 = varonce28;
7130 varonce28 = NULL;
7131 }
7132 {
7133 var38 = ((val*(*)(val* self))(var_res->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_res); /* to_s on <var_res:RuntimeVariable>*/
7134 }
7135 ((struct instance_core__NativeArray*)var29)->values[0]=var38;
7136 {
7137 var39 = ((val*(*)(val* self))(var29->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var29); /* native_to_s on <var29:NativeArray[String]>*/
7138 }
7139 varonce28 = var29;
7140 {
7141 nitc___nitc__AbstractCompilerVisitor___add(var_v, var39); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
7142 }
7143 if (likely(varonce40!=NULL)) {
7144 var41 = varonce40;
7145 } else {
7146 var42 = "} else {";
7147 var44 = (val*)(8l<<2|1);
7148 var45 = (val*)(8l<<2|1);
7149 var46 = (val*)((long)(0)<<2|3);
7150 var47 = (val*)((long)(0)<<2|3);
7151 var43 = core__flat___CString___to_s_unsafe(var42, var44, var45, var46, var47);
7152 var41 = var43;
7153 varonce40 = var41;
7154 }
7155 {
7156 nitc___nitc__AbstractCompilerVisitor___add(var_v, var41); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
7157 }
7158 {
7159 { /* Inline parser_nodes$ABinBoolExpr$n_expr2 (self) on <self:AAndExpr> */
7160 var50 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr2].val; /* _n_expr2 on <self:AAndExpr> */
7161 if (unlikely(var50 == NULL)) {
7162 if(catchStack.cursor >= 0){
7163 longjmp(catchStack.envs[catchStack.cursor], 1);
7164 }
7165 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
7166 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2137);
7167 fatal_exit(1);
7168 }
7169 var48 = var50;
7170 RET_LABEL49:(void)0;
7171 }
7172 }
7173 {
7174 var51 = nitc___nitc__AbstractCompilerVisitor___expr_bool(var_v, var48);
7175 }
7176 var_i2 = var51;
7177 if (unlikely(varonce52==NULL)) {
7178 var53 = NEW_core__NativeArray((int)4l, &type_core__NativeArray__core__String);
7179 if (likely(varonce54!=NULL)) {
7180 var55 = varonce54;
7181 } else {
7182 var56 = " = ";
7183 var58 = (val*)(3l<<2|1);
7184 var59 = (val*)(3l<<2|1);
7185 var60 = (val*)((long)(0)<<2|3);
7186 var61 = (val*)((long)(0)<<2|3);
7187 var57 = core__flat___CString___to_s_unsafe(var56, var58, var59, var60, var61);
7188 var55 = var57;
7189 varonce54 = var55;
7190 }
7191 ((struct instance_core__NativeArray*)var53)->values[1]=var55;
7192 if (likely(varonce62!=NULL)) {
7193 var63 = varonce62;
7194 } else {
7195 var64 = ";";
7196 var66 = (val*)(1l<<2|1);
7197 var67 = (val*)(1l<<2|1);
7198 var68 = (val*)((long)(0)<<2|3);
7199 var69 = (val*)((long)(0)<<2|3);
7200 var65 = core__flat___CString___to_s_unsafe(var64, var66, var67, var68, var69);
7201 var63 = var65;
7202 varonce62 = var63;
7203 }
7204 ((struct instance_core__NativeArray*)var53)->values[3]=var63;
7205 } else {
7206 var53 = varonce52;
7207 varonce52 = NULL;
7208 }
7209 {
7210 var70 = ((val*(*)(val* self))(var_res->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_res); /* to_s on <var_res:RuntimeVariable>*/
7211 }
7212 ((struct instance_core__NativeArray*)var53)->values[0]=var70;
7213 {
7214 var71 = ((val*(*)(val* self))(var_i2->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_i2); /* to_s on <var_i2:RuntimeVariable>*/
7215 }
7216 ((struct instance_core__NativeArray*)var53)->values[2]=var71;
7217 {
7218 var72 = ((val*(*)(val* self))(var53->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var53); /* native_to_s on <var53:NativeArray[String]>*/
7219 }
7220 varonce52 = var53;
7221 {
7222 nitc___nitc__AbstractCompilerVisitor___add(var_v, var72); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
7223 }
7224 if (likely(varonce73!=NULL)) {
7225 var74 = varonce73;
7226 } else {
7227 var75 = "}";
7228 var77 = (val*)(1l<<2|1);
7229 var78 = (val*)(1l<<2|1);
7230 var79 = (val*)((long)(0)<<2|3);
7231 var80 = (val*)((long)(0)<<2|3);
7232 var76 = core__flat___CString___to_s_unsafe(var75, var77, var78, var79, var80);
7233 var74 = var76;
7234 varonce73 = var74;
7235 }
7236 {
7237 nitc___nitc__AbstractCompilerVisitor___add(var_v, var74); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
7238 }
7239 var = var_res;
7240 goto RET_LABEL;
7241 RET_LABEL:;
7242 return var;
7243 }
7244 /* method abstract_compiler$ANotExpr$expr for (self: ANotExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
7245 val* nitc__abstract_compiler___ANotExpr___AExpr__expr(val* self, val* p0) {
7246 val* var /* : nullable RuntimeVariable */;
7247 val* var_v /* var v: AbstractCompilerVisitor */;
7248 val* var1 /* : AExpr */;
7249 val* var3 /* : AExpr */;
7250 val* var4 /* : RuntimeVariable */;
7251 val* var_cond /* var cond: RuntimeVariable */;
7252 val* var5 /* : NativeArray[String] */;
7253 static val* varonce;
7254 static val* varonce6;
7255 val* var7 /* : String */;
7256 char* var8 /* : CString */;
7257 val* var9 /* : String */;
7258 val* var10 /* : nullable Int */;
7259 val* var11 /* : nullable Int */;
7260 val* var12 /* : nullable Bool */;
7261 val* var13 /* : nullable Bool */;
7262 val* var14 /* : String */;
7263 val* var15 /* : String */;
7264 val* var16 /* : nullable MType */;
7265 val* var18 /* : nullable MType */;
7266 val* var19 /* : RuntimeVariable */;
7267 var_v = p0;
7268 {
7269 { /* Inline parser_nodes$ANotExpr$n_expr (self) on <self:ANotExpr> */
7270 var3 = self->attrs[COLOR_nitc__parser_nodes__ANotExpr___n_expr].val; /* _n_expr on <self:ANotExpr> */
7271 if (unlikely(var3 == NULL)) {
7272 if(catchStack.cursor >= 0){
7273 longjmp(catchStack.envs[catchStack.cursor], 1);
7274 }
7275 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
7276 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2171);
7277 fatal_exit(1);
7278 }
7279 var1 = var3;
7280 RET_LABEL2:(void)0;
7281 }
7282 }
7283 {
7284 var4 = nitc___nitc__AbstractCompilerVisitor___expr_bool(var_v, var1);
7285 }
7286 var_cond = var4;
7287 if (unlikely(varonce==NULL)) {
7288 var5 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
7289 if (likely(varonce6!=NULL)) {
7290 var7 = varonce6;
7291 } else {
7292 var8 = "!";
7293 var10 = (val*)(1l<<2|1);
7294 var11 = (val*)(1l<<2|1);
7295 var12 = (val*)((long)(0)<<2|3);
7296 var13 = (val*)((long)(0)<<2|3);
7297 var9 = core__flat___CString___to_s_unsafe(var8, var10, var11, var12, var13);
7298 var7 = var9;
7299 varonce6 = var7;
7300 }
7301 ((struct instance_core__NativeArray*)var5)->values[0]=var7;
7302 } else {
7303 var5 = varonce;
7304 varonce = NULL;
7305 }
7306 {
7307 var14 = ((val*(*)(val* self))(var_cond->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_cond); /* to_s on <var_cond:RuntimeVariable>*/
7308 }
7309 ((struct instance_core__NativeArray*)var5)->values[1]=var14;
7310 {
7311 var15 = ((val*(*)(val* self))(var5->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var5); /* native_to_s on <var5:NativeArray[String]>*/
7312 }
7313 varonce = var5;
7314 {
7315 { /* Inline typing$AExpr$mtype (self) on <self:ANotExpr> */
7316 var18 = self->attrs[COLOR_nitc__typing__AExpr___mtype].val; /* _mtype on <self:ANotExpr> */
7317 var16 = var18;
7318 RET_LABEL17:(void)0;
7319 }
7320 }
7321 if (unlikely(var16 == NULL)) {
7322 if(catchStack.cursor >= 0){
7323 longjmp(catchStack.envs[catchStack.cursor], 1);
7324 }
7325 PRINT_ERROR("Runtime error: %s", "Cast failed");
7326 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3631);
7327 fatal_exit(1);
7328 }
7329 {
7330 var19 = nitc___nitc__AbstractCompilerVisitor___new_expr(var_v, var15, var16);
7331 }
7332 var = var19;
7333 goto RET_LABEL;
7334 RET_LABEL:;
7335 return var;
7336 }
7337 /* method abstract_compiler$AOrElseExpr$expr for (self: AOrElseExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
7338 val* nitc__abstract_compiler___AOrElseExpr___AExpr__expr(val* self, val* p0) {
7339 val* var /* : nullable RuntimeVariable */;
7340 val* var_v /* var v: AbstractCompilerVisitor */;
7341 val* var1 /* : nullable MType */;
7342 val* var3 /* : nullable MType */;
7343 val* var4 /* : RuntimeVariable */;
7344 val* var_res /* var res: RuntimeVariable */;
7345 val* var5 /* : AExpr */;
7346 val* var7 /* : AExpr */;
7347 val* var8 /* : RuntimeVariable */;
7348 val* var_i1 /* var i1: RuntimeVariable */;
7349 short int var9 /* : Bool */;
7350 short int var10 /* : Bool */;
7351 val* var11 /* : NativeArray[String] */;
7352 static val* varonce;
7353 static val* varonce12;
7354 val* var13 /* : String */;
7355 char* var14 /* : CString */;
7356 val* var15 /* : String */;
7357 val* var16 /* : nullable Int */;
7358 val* var17 /* : nullable Int */;
7359 val* var18 /* : nullable Bool */;
7360 val* var19 /* : nullable Bool */;
7361 static val* varonce20;
7362 val* var21 /* : String */;
7363 char* var22 /* : CString */;
7364 val* var23 /* : String */;
7365 val* var24 /* : nullable Int */;
7366 val* var25 /* : nullable Int */;
7367 val* var26 /* : nullable Bool */;
7368 val* var27 /* : nullable Bool */;
7369 val* var28 /* : String */;
7370 val* var29 /* : String */;
7371 static val* varonce30;
7372 val* var31 /* : String */;
7373 char* var32 /* : CString */;
7374 val* var33 /* : String */;
7375 val* var34 /* : nullable Int */;
7376 val* var35 /* : nullable Int */;
7377 val* var36 /* : nullable Bool */;
7378 val* var37 /* : nullable Bool */;
7379 val* var38 /* : AExpr */;
7380 val* var40 /* : AExpr */;
7381 val* var41 /* : RuntimeVariable */;
7382 val* var_i2 /* var i2: RuntimeVariable */;
7383 static val* varonce42;
7384 val* var43 /* : String */;
7385 char* var44 /* : CString */;
7386 val* var45 /* : String */;
7387 val* var46 /* : nullable Int */;
7388 val* var47 /* : nullable Int */;
7389 val* var48 /* : nullable Bool */;
7390 val* var49 /* : nullable Bool */;
7391 var_v = p0;
7392 {
7393 { /* Inline typing$AExpr$mtype (self) on <self:AOrElseExpr> */
7394 var3 = self->attrs[COLOR_nitc__typing__AExpr___mtype].val; /* _mtype on <self:AOrElseExpr> */
7395 var1 = var3;
7396 RET_LABEL2:(void)0;
7397 }
7398 }
7399 if (unlikely(var1 == NULL)) {
7400 if(catchStack.cursor >= 0){
7401 longjmp(catchStack.envs[catchStack.cursor], 1);
7402 }
7403 PRINT_ERROR("Runtime error: %s", "Cast failed");
7404 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3638);
7405 fatal_exit(1);
7406 }
7407 {
7408 var4 = nitc___nitc__AbstractCompilerVisitor___new_var(var_v, var1);
7409 }
7410 var_res = var4;
7411 {
7412 { /* Inline parser_nodes$ABinBoolExpr$n_expr (self) on <self:AOrElseExpr> */
7413 var7 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr].val; /* _n_expr on <self:AOrElseExpr> */
7414 if (unlikely(var7 == NULL)) {
7415 if(catchStack.cursor >= 0){
7416 longjmp(catchStack.envs[catchStack.cursor], 1);
7417 }
7418 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
7419 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2131);
7420 fatal_exit(1);
7421 }
7422 var5 = var7;
7423 RET_LABEL6:(void)0;
7424 }
7425 }
7426 {
7427 var8 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var5, ((val*)NULL));
7428 }
7429 var_i1 = var8;
7430 {
7431 var9 = nitc___nitc__AbstractCompilerVisitor___maybenull(var_v, var_i1);
7432 }
7433 var10 = !var9;
7434 if (var10){
7435 var = var_i1;
7436 goto RET_LABEL;
7437 } else {
7438 }
7439 if (unlikely(varonce==NULL)) {
7440 var11 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
7441 if (likely(varonce12!=NULL)) {
7442 var13 = varonce12;
7443 } else {
7444 var14 = "if (";
7445 var16 = (val*)(4l<<2|1);
7446 var17 = (val*)(4l<<2|1);
7447 var18 = (val*)((long)(0)<<2|3);
7448 var19 = (val*)((long)(0)<<2|3);
7449 var15 = core__flat___CString___to_s_unsafe(var14, var16, var17, var18, var19);
7450 var13 = var15;
7451 varonce12 = var13;
7452 }
7453 ((struct instance_core__NativeArray*)var11)->values[0]=var13;
7454 if (likely(varonce20!=NULL)) {
7455 var21 = varonce20;
7456 } else {
7457 var22 = "!=NULL) {";
7458 var24 = (val*)(9l<<2|1);
7459 var25 = (val*)(9l<<2|1);
7460 var26 = (val*)((long)(0)<<2|3);
7461 var27 = (val*)((long)(0)<<2|3);
7462 var23 = core__flat___CString___to_s_unsafe(var22, var24, var25, var26, var27);
7463 var21 = var23;
7464 varonce20 = var21;
7465 }
7466 ((struct instance_core__NativeArray*)var11)->values[2]=var21;
7467 } else {
7468 var11 = varonce;
7469 varonce = NULL;
7470 }
7471 {
7472 var28 = ((val*(*)(val* self))(var_i1->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_i1); /* to_s on <var_i1:RuntimeVariable>*/
7473 }
7474 ((struct instance_core__NativeArray*)var11)->values[1]=var28;
7475 {
7476 var29 = ((val*(*)(val* self))(var11->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var11); /* native_to_s on <var11:NativeArray[String]>*/
7477 }
7478 varonce = var11;
7479 {
7480 nitc___nitc__AbstractCompilerVisitor___add(var_v, var29); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
7481 }
7482 {
7483 nitc___nitc__AbstractCompilerVisitor___assign(var_v, var_res, var_i1); /* Direct call abstract_compiler$AbstractCompilerVisitor$assign on <var_v:AbstractCompilerVisitor>*/
7484 }
7485 if (likely(varonce30!=NULL)) {
7486 var31 = varonce30;
7487 } else {
7488 var32 = "} else {";
7489 var34 = (val*)(8l<<2|1);
7490 var35 = (val*)(8l<<2|1);
7491 var36 = (val*)((long)(0)<<2|3);
7492 var37 = (val*)((long)(0)<<2|3);
7493 var33 = core__flat___CString___to_s_unsafe(var32, var34, var35, var36, var37);
7494 var31 = var33;
7495 varonce30 = var31;
7496 }
7497 {
7498 nitc___nitc__AbstractCompilerVisitor___add(var_v, var31); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
7499 }
7500 {
7501 { /* Inline parser_nodes$ABinBoolExpr$n_expr2 (self) on <self:AOrElseExpr> */
7502 var40 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr2].val; /* _n_expr2 on <self:AOrElseExpr> */
7503 if (unlikely(var40 == NULL)) {
7504 if(catchStack.cursor >= 0){
7505 longjmp(catchStack.envs[catchStack.cursor], 1);
7506 }
7507 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
7508 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2137);
7509 fatal_exit(1);
7510 }
7511 var38 = var40;
7512 RET_LABEL39:(void)0;
7513 }
7514 }
7515 {
7516 var41 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var38, ((val*)NULL));
7517 }
7518 var_i2 = var41;
7519 {
7520 nitc___nitc__AbstractCompilerVisitor___assign(var_v, var_res, var_i2); /* Direct call abstract_compiler$AbstractCompilerVisitor$assign on <var_v:AbstractCompilerVisitor>*/
7521 }
7522 if (likely(varonce42!=NULL)) {
7523 var43 = varonce42;
7524 } else {
7525 var44 = "}";
7526 var46 = (val*)(1l<<2|1);
7527 var47 = (val*)(1l<<2|1);
7528 var48 = (val*)((long)(0)<<2|3);
7529 var49 = (val*)((long)(0)<<2|3);
7530 var45 = core__flat___CString___to_s_unsafe(var44, var46, var47, var48, var49);
7531 var43 = var45;
7532 varonce42 = var43;
7533 }
7534 {
7535 nitc___nitc__AbstractCompilerVisitor___add(var_v, var43); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
7536 }
7537 var = var_res;
7538 goto RET_LABEL;
7539 RET_LABEL:;
7540 return var;
7541 }
7542 /* method abstract_compiler$AIntegerExpr$expr for (self: AIntegerExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
7543 val* nitc__abstract_compiler___AIntegerExpr___AExpr__expr(val* self, val* p0) {
7544 val* var /* : nullable RuntimeVariable */;
7545 val* var_v /* var v: AbstractCompilerVisitor */;
7546 val* var1 /* : nullable Numeric */;
7547 val* var3 /* : nullable Numeric */;
7548 short int var4 /* : Bool */;
7549 int cltype;
7550 int idtype;
7551 val* var5 /* : nullable Numeric */;
7552 val* var7 /* : nullable Numeric */;
7553 short int var8 /* : Bool */;
7554 int cltype9;
7555 int idtype10;
7556 const char* var_class_name;
7557 val* var11 /* : RuntimeVariable */;
7558 long var12 /* : Int */;
7559 val* var13 /* : nullable Numeric */;
7560 val* var15 /* : nullable Numeric */;
7561 short int var16 /* : Bool */;
7562 int cltype17;
7563 int idtype18;
7564 val* var19 /* : nullable Numeric */;
7565 val* var21 /* : nullable Numeric */;
7566 short int var22 /* : Bool */;
7567 int cltype23;
7568 int idtype24;
7569 const char* var_class_name25;
7570 val* var26 /* : RuntimeVariable */;
7571 unsigned char var27 /* : Byte */;
7572 val* var28 /* : nullable Numeric */;
7573 val* var30 /* : nullable Numeric */;
7574 short int var31 /* : Bool */;
7575 int cltype32;
7576 int idtype33;
7577 val* var34 /* : nullable Numeric */;
7578 val* var36 /* : nullable Numeric */;
7579 short int var37 /* : Bool */;
7580 int cltype38;
7581 int idtype39;
7582 const char* var_class_name40;
7583 val* var41 /* : RuntimeVariable */;
7584 int8_t var42 /* : Int8 */;
7585 val* var43 /* : nullable Numeric */;
7586 val* var45 /* : nullable Numeric */;
7587 short int var46 /* : Bool */;
7588 int cltype47;
7589 int idtype48;
7590 val* var49 /* : nullable Numeric */;
7591 val* var51 /* : nullable Numeric */;
7592 short int var52 /* : Bool */;
7593 int cltype53;
7594 int idtype54;
7595 const char* var_class_name55;
7596 val* var56 /* : RuntimeVariable */;
7597 int16_t var57 /* : Int16 */;
7598 val* var58 /* : nullable Numeric */;
7599 val* var60 /* : nullable Numeric */;
7600 short int var61 /* : Bool */;
7601 int cltype62;
7602 int idtype63;
7603 val* var64 /* : nullable Numeric */;
7604 val* var66 /* : nullable Numeric */;
7605 short int var67 /* : Bool */;
7606 int cltype68;
7607 int idtype69;
7608 const char* var_class_name70;
7609 val* var71 /* : RuntimeVariable */;
7610 uint16_t var72 /* : UInt16 */;
7611 val* var73 /* : nullable Numeric */;
7612 val* var75 /* : nullable Numeric */;
7613 short int var76 /* : Bool */;
7614 int cltype77;
7615 int idtype78;
7616 val* var79 /* : nullable Numeric */;
7617 val* var81 /* : nullable Numeric */;
7618 short int var82 /* : Bool */;
7619 int cltype83;
7620 int idtype84;
7621 const char* var_class_name85;
7622 val* var86 /* : RuntimeVariable */;
7623 int32_t var87 /* : Int32 */;
7624 val* var88 /* : nullable Numeric */;
7625 val* var90 /* : nullable Numeric */;
7626 short int var91 /* : Bool */;
7627 int cltype92;
7628 int idtype93;
7629 val* var94 /* : nullable Numeric */;
7630 val* var96 /* : nullable Numeric */;
7631 short int var97 /* : Bool */;
7632 int cltype98;
7633 int idtype99;
7634 const char* var_class_name100;
7635 val* var101 /* : RuntimeVariable */;
7636 uint32_t var102 /* : UInt32 */;
7637 var_v = p0;
7638 {
7639 { /* Inline literal$AIntegerExpr$value (self) on <self:AIntegerExpr> */
7640 var3 = self->attrs[COLOR_nitc__literal__AIntegerExpr___value].val; /* _value on <self:AIntegerExpr> */
7641 var1 = var3;
7642 RET_LABEL2:(void)0;
7643 }
7644 }
7645 /* <var1:nullable Numeric> isa Int */
7646 cltype = type_core__Int.color;
7647 idtype = type_core__Int.id;
7648 if(var1 == NULL) {
7649 var4 = 0;
7650 } else {
7651 if(cltype >= (((long)var1&3)?type_info[((long)var1&3)]:var1->type)->table_size) {
7652 var4 = 0;
7653 } else {
7654 var4 = (((long)var1&3)?type_info[((long)var1&3)]:var1->type)->type_table[cltype] == idtype;
7655 }
7656 }
7657 if (var4){
7658 {
7659 { /* Inline literal$AIntegerExpr$value (self) on <self:AIntegerExpr> */
7660 var7 = self->attrs[COLOR_nitc__literal__AIntegerExpr___value].val; /* _value on <self:AIntegerExpr> */
7661 var5 = var7;
7662 RET_LABEL6:(void)0;
7663 }
7664 }
7665 /* <var5:nullable Numeric> isa Int */
7666 cltype9 = type_core__Int.color;
7667 idtype10 = type_core__Int.id;
7668 if(var5 == NULL) {
7669 var8 = 0;
7670 } else {
7671 if(cltype9 >= (((long)var5&3)?type_info[((long)var5&3)]:var5->type)->table_size) {
7672 var8 = 0;
7673 } else {
7674 var8 = (((long)var5&3)?type_info[((long)var5&3)]:var5->type)->type_table[cltype9] == idtype10;
7675 }
7676 }
7677 if (unlikely(!var8)) {
7678 var_class_name = var5 == NULL ? "null" : (((long)var5&3)?type_info[((long)var5&3)]:var5->type)->name;
7679 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Int", var_class_name);
7680 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3655);
7681 fatal_exit(1);
7682 }
7683 {
7684 var12 = (long)(var5)>>2;
7685 var11 = nitc___nitc__AbstractCompilerVisitor___int_instance(var_v, var12);
7686 }
7687 var = var11;
7688 goto RET_LABEL;
7689 } else {
7690 }
7691 {
7692 { /* Inline literal$AIntegerExpr$value (self) on <self:AIntegerExpr> */
7693 var15 = self->attrs[COLOR_nitc__literal__AIntegerExpr___value].val; /* _value on <self:AIntegerExpr> */
7694 var13 = var15;
7695 RET_LABEL14:(void)0;
7696 }
7697 }
7698 /* <var13:nullable Numeric> isa Byte */
7699 cltype17 = type_core__Byte.color;
7700 idtype18 = type_core__Byte.id;
7701 if(var13 == NULL) {
7702 var16 = 0;
7703 } else {
7704 if(cltype17 >= (((long)var13&3)?type_info[((long)var13&3)]:var13->type)->table_size) {
7705 var16 = 0;
7706 } else {
7707 var16 = (((long)var13&3)?type_info[((long)var13&3)]:var13->type)->type_table[cltype17] == idtype18;
7708 }
7709 }
7710 if (var16){
7711 {
7712 { /* Inline literal$AIntegerExpr$value (self) on <self:AIntegerExpr> */
7713 var21 = self->attrs[COLOR_nitc__literal__AIntegerExpr___value].val; /* _value on <self:AIntegerExpr> */
7714 var19 = var21;
7715 RET_LABEL20:(void)0;
7716 }
7717 }
7718 /* <var19:nullable Numeric> isa Byte */
7719 cltype23 = type_core__Byte.color;
7720 idtype24 = type_core__Byte.id;
7721 if(var19 == NULL) {
7722 var22 = 0;
7723 } else {
7724 if(cltype23 >= (((long)var19&3)?type_info[((long)var19&3)]:var19->type)->table_size) {
7725 var22 = 0;
7726 } else {
7727 var22 = (((long)var19&3)?type_info[((long)var19&3)]:var19->type)->type_table[cltype23] == idtype24;
7728 }
7729 }
7730 if (unlikely(!var22)) {
7731 var_class_name25 = var19 == NULL ? "null" : (((long)var19&3)?type_info[((long)var19&3)]:var19->type)->name;
7732 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Byte", var_class_name25);
7733 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3656);
7734 fatal_exit(1);
7735 }
7736 {
7737 var27 = ((struct instance_core__Byte*)var19)->value; /* autounbox from nullable Numeric to Byte */;
7738 var26 = nitc___nitc__AbstractCompilerVisitor___byte_instance(var_v, var27);
7739 }
7740 var = var26;
7741 goto RET_LABEL;
7742 } else {
7743 }
7744 {
7745 { /* Inline literal$AIntegerExpr$value (self) on <self:AIntegerExpr> */
7746 var30 = self->attrs[COLOR_nitc__literal__AIntegerExpr___value].val; /* _value on <self:AIntegerExpr> */
7747 var28 = var30;
7748 RET_LABEL29:(void)0;
7749 }
7750 }
7751 /* <var28:nullable Numeric> isa Int8 */
7752 cltype32 = type_core__Int8.color;
7753 idtype33 = type_core__Int8.id;
7754 if(var28 == NULL) {
7755 var31 = 0;
7756 } else {
7757 if(cltype32 >= (((long)var28&3)?type_info[((long)var28&3)]:var28->type)->table_size) {
7758 var31 = 0;
7759 } else {
7760 var31 = (((long)var28&3)?type_info[((long)var28&3)]:var28->type)->type_table[cltype32] == idtype33;
7761 }
7762 }
7763 if (var31){
7764 {
7765 { /* Inline literal$AIntegerExpr$value (self) on <self:AIntegerExpr> */
7766 var36 = self->attrs[COLOR_nitc__literal__AIntegerExpr___value].val; /* _value on <self:AIntegerExpr> */
7767 var34 = var36;
7768 RET_LABEL35:(void)0;
7769 }
7770 }
7771 /* <var34:nullable Numeric> isa Int8 */
7772 cltype38 = type_core__Int8.color;
7773 idtype39 = type_core__Int8.id;
7774 if(var34 == NULL) {
7775 var37 = 0;
7776 } else {
7777 if(cltype38 >= (((long)var34&3)?type_info[((long)var34&3)]:var34->type)->table_size) {
7778 var37 = 0;
7779 } else {
7780 var37 = (((long)var34&3)?type_info[((long)var34&3)]:var34->type)->type_table[cltype38] == idtype39;
7781 }
7782 }
7783 if (unlikely(!var37)) {
7784 var_class_name40 = var34 == NULL ? "null" : (((long)var34&3)?type_info[((long)var34&3)]:var34->type)->name;
7785 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Int8", var_class_name40);
7786 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3657);
7787 fatal_exit(1);
7788 }
7789 {
7790 var42 = ((struct instance_core__Int8*)var34)->value; /* autounbox from nullable Numeric to Int8 */;
7791 var41 = nitc___nitc__AbstractCompilerVisitor___int8_instance(var_v, var42);
7792 }
7793 var = var41;
7794 goto RET_LABEL;
7795 } else {
7796 }
7797 {
7798 { /* Inline literal$AIntegerExpr$value (self) on <self:AIntegerExpr> */
7799 var45 = self->attrs[COLOR_nitc__literal__AIntegerExpr___value].val; /* _value on <self:AIntegerExpr> */
7800 var43 = var45;
7801 RET_LABEL44:(void)0;
7802 }
7803 }
7804 /* <var43:nullable Numeric> isa Int16 */
7805 cltype47 = type_core__Int16.color;
7806 idtype48 = type_core__Int16.id;
7807 if(var43 == NULL) {
7808 var46 = 0;
7809 } else {
7810 if(cltype47 >= (((long)var43&3)?type_info[((long)var43&3)]:var43->type)->table_size) {
7811 var46 = 0;
7812 } else {
7813 var46 = (((long)var43&3)?type_info[((long)var43&3)]:var43->type)->type_table[cltype47] == idtype48;
7814 }
7815 }
7816 if (var46){
7817 {
7818 { /* Inline literal$AIntegerExpr$value (self) on <self:AIntegerExpr> */
7819 var51 = self->attrs[COLOR_nitc__literal__AIntegerExpr___value].val; /* _value on <self:AIntegerExpr> */
7820 var49 = var51;
7821 RET_LABEL50:(void)0;
7822 }
7823 }
7824 /* <var49:nullable Numeric> isa Int16 */
7825 cltype53 = type_core__Int16.color;
7826 idtype54 = type_core__Int16.id;
7827 if(var49 == NULL) {
7828 var52 = 0;
7829 } else {
7830 if(cltype53 >= (((long)var49&3)?type_info[((long)var49&3)]:var49->type)->table_size) {
7831 var52 = 0;
7832 } else {
7833 var52 = (((long)var49&3)?type_info[((long)var49&3)]:var49->type)->type_table[cltype53] == idtype54;
7834 }
7835 }
7836 if (unlikely(!var52)) {
7837 var_class_name55 = var49 == NULL ? "null" : (((long)var49&3)?type_info[((long)var49&3)]:var49->type)->name;
7838 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Int16", var_class_name55);
7839 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3658);
7840 fatal_exit(1);
7841 }
7842 {
7843 var57 = ((struct instance_core__Int16*)var49)->value; /* autounbox from nullable Numeric to Int16 */;
7844 var56 = nitc___nitc__AbstractCompilerVisitor___int16_instance(var_v, var57);
7845 }
7846 var = var56;
7847 goto RET_LABEL;
7848 } else {
7849 }
7850 {
7851 { /* Inline literal$AIntegerExpr$value (self) on <self:AIntegerExpr> */
7852 var60 = self->attrs[COLOR_nitc__literal__AIntegerExpr___value].val; /* _value on <self:AIntegerExpr> */
7853 var58 = var60;
7854 RET_LABEL59:(void)0;
7855 }
7856 }
7857 /* <var58:nullable Numeric> isa UInt16 */
7858 cltype62 = type_core__UInt16.color;
7859 idtype63 = type_core__UInt16.id;
7860 if(var58 == NULL) {
7861 var61 = 0;
7862 } else {
7863 if(cltype62 >= (((long)var58&3)?type_info[((long)var58&3)]:var58->type)->table_size) {
7864 var61 = 0;
7865 } else {
7866 var61 = (((long)var58&3)?type_info[((long)var58&3)]:var58->type)->type_table[cltype62] == idtype63;
7867 }
7868 }
7869 if (var61){
7870 {
7871 { /* Inline literal$AIntegerExpr$value (self) on <self:AIntegerExpr> */
7872 var66 = self->attrs[COLOR_nitc__literal__AIntegerExpr___value].val; /* _value on <self:AIntegerExpr> */
7873 var64 = var66;
7874 RET_LABEL65:(void)0;
7875 }
7876 }
7877 /* <var64:nullable Numeric> isa UInt16 */
7878 cltype68 = type_core__UInt16.color;
7879 idtype69 = type_core__UInt16.id;
7880 if(var64 == NULL) {
7881 var67 = 0;
7882 } else {
7883 if(cltype68 >= (((long)var64&3)?type_info[((long)var64&3)]:var64->type)->table_size) {
7884 var67 = 0;
7885 } else {
7886 var67 = (((long)var64&3)?type_info[((long)var64&3)]:var64->type)->type_table[cltype68] == idtype69;
7887 }
7888 }
7889 if (unlikely(!var67)) {
7890 var_class_name70 = var64 == NULL ? "null" : (((long)var64&3)?type_info[((long)var64&3)]:var64->type)->name;
7891 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "UInt16", var_class_name70);
7892 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3659);
7893 fatal_exit(1);
7894 }
7895 {
7896 var72 = ((struct instance_core__UInt16*)var64)->value; /* autounbox from nullable Numeric to UInt16 */;
7897 var71 = nitc___nitc__AbstractCompilerVisitor___uint16_instance(var_v, var72);
7898 }
7899 var = var71;
7900 goto RET_LABEL;
7901 } else {
7902 }
7903 {
7904 { /* Inline literal$AIntegerExpr$value (self) on <self:AIntegerExpr> */
7905 var75 = self->attrs[COLOR_nitc__literal__AIntegerExpr___value].val; /* _value on <self:AIntegerExpr> */
7906 var73 = var75;
7907 RET_LABEL74:(void)0;
7908 }
7909 }
7910 /* <var73:nullable Numeric> isa Int32 */
7911 cltype77 = type_core__Int32.color;
7912 idtype78 = type_core__Int32.id;
7913 if(var73 == NULL) {
7914 var76 = 0;
7915 } else {
7916 if(cltype77 >= (((long)var73&3)?type_info[((long)var73&3)]:var73->type)->table_size) {
7917 var76 = 0;
7918 } else {
7919 var76 = (((long)var73&3)?type_info[((long)var73&3)]:var73->type)->type_table[cltype77] == idtype78;
7920 }
7921 }
7922 if (var76){
7923 {
7924 { /* Inline literal$AIntegerExpr$value (self) on <self:AIntegerExpr> */
7925 var81 = self->attrs[COLOR_nitc__literal__AIntegerExpr___value].val; /* _value on <self:AIntegerExpr> */
7926 var79 = var81;
7927 RET_LABEL80:(void)0;
7928 }
7929 }
7930 /* <var79:nullable Numeric> isa Int32 */
7931 cltype83 = type_core__Int32.color;
7932 idtype84 = type_core__Int32.id;
7933 if(var79 == NULL) {
7934 var82 = 0;
7935 } else {
7936 if(cltype83 >= (((long)var79&3)?type_info[((long)var79&3)]:var79->type)->table_size) {
7937 var82 = 0;
7938 } else {
7939 var82 = (((long)var79&3)?type_info[((long)var79&3)]:var79->type)->type_table[cltype83] == idtype84;
7940 }
7941 }
7942 if (unlikely(!var82)) {
7943 var_class_name85 = var79 == NULL ? "null" : (((long)var79&3)?type_info[((long)var79&3)]:var79->type)->name;
7944 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Int32", var_class_name85);
7945 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3660);
7946 fatal_exit(1);
7947 }
7948 {
7949 var87 = ((struct instance_core__Int32*)var79)->value; /* autounbox from nullable Numeric to Int32 */;
7950 var86 = nitc___nitc__AbstractCompilerVisitor___int32_instance(var_v, var87);
7951 }
7952 var = var86;
7953 goto RET_LABEL;
7954 } else {
7955 }
7956 {
7957 { /* Inline literal$AIntegerExpr$value (self) on <self:AIntegerExpr> */
7958 var90 = self->attrs[COLOR_nitc__literal__AIntegerExpr___value].val; /* _value on <self:AIntegerExpr> */
7959 var88 = var90;
7960 RET_LABEL89:(void)0;
7961 }
7962 }
7963 /* <var88:nullable Numeric> isa UInt32 */
7964 cltype92 = type_core__UInt32.color;
7965 idtype93 = type_core__UInt32.id;
7966 if(var88 == NULL) {
7967 var91 = 0;
7968 } else {
7969 if(cltype92 >= (((long)var88&3)?type_info[((long)var88&3)]:var88->type)->table_size) {
7970 var91 = 0;
7971 } else {
7972 var91 = (((long)var88&3)?type_info[((long)var88&3)]:var88->type)->type_table[cltype92] == idtype93;
7973 }
7974 }
7975 if (var91){
7976 {
7977 { /* Inline literal$AIntegerExpr$value (self) on <self:AIntegerExpr> */
7978 var96 = self->attrs[COLOR_nitc__literal__AIntegerExpr___value].val; /* _value on <self:AIntegerExpr> */
7979 var94 = var96;
7980 RET_LABEL95:(void)0;
7981 }
7982 }
7983 /* <var94:nullable Numeric> isa UInt32 */
7984 cltype98 = type_core__UInt32.color;
7985 idtype99 = type_core__UInt32.id;
7986 if(var94 == NULL) {
7987 var97 = 0;
7988 } else {
7989 if(cltype98 >= (((long)var94&3)?type_info[((long)var94&3)]:var94->type)->table_size) {
7990 var97 = 0;
7991 } else {
7992 var97 = (((long)var94&3)?type_info[((long)var94&3)]:var94->type)->type_table[cltype98] == idtype99;
7993 }
7994 }
7995 if (unlikely(!var97)) {
7996 var_class_name100 = var94 == NULL ? "null" : (((long)var94&3)?type_info[((long)var94&3)]:var94->type)->name;
7997 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "UInt32", var_class_name100);
7998 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3661);
7999 fatal_exit(1);
8000 }
8001 {
8002 var102 = ((struct instance_core__UInt32*)var94)->value; /* autounbox from nullable Numeric to UInt32 */;
8003 var101 = nitc___nitc__AbstractCompilerVisitor___uint32_instance(var_v, var102);
8004 }
8005 var = var101;
8006 goto RET_LABEL;
8007 } else {
8008 }
8009 if(catchStack.cursor >= 0){
8010 longjmp(catchStack.envs[catchStack.cursor], 1);
8011 }
8012 PRINT_ERROR("Runtime error: %s", "Aborted");
8013 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3663);
8014 fatal_exit(1);
8015 RET_LABEL:;
8016 return var;
8017 }
8018 /* method abstract_compiler$AFloatExpr$expr for (self: AFloatExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
8019 val* nitc__abstract_compiler___AFloatExpr___AExpr__expr(val* self, val* p0) {
8020 val* var /* : nullable RuntimeVariable */;
8021 val* var_v /* var v: AbstractCompilerVisitor */;
8022 val* var1 /* : NativeArray[String] */;
8023 static val* varonce;
8024 val* var2 /* : TFloat */;
8025 val* var4 /* : TFloat */;
8026 val* var5 /* : String */;
8027 val* var6 /* : String */;
8028 val* var7 /* : RuntimeVariable */;
8029 var_v = p0;
8030 if (unlikely(varonce==NULL)) {
8031 var1 = NEW_core__NativeArray((int)1l, &type_core__NativeArray__core__String);
8032 } else {
8033 var1 = varonce;
8034 varonce = NULL;
8035 }
8036 {
8037 { /* Inline parser_nodes$AFloatExpr$n_float (self) on <self:AFloatExpr> */
8038 var4 = self->attrs[COLOR_nitc__parser_nodes__AFloatExpr___n_float].val; /* _n_float on <self:AFloatExpr> */
8039 if (unlikely(var4 == NULL)) {
8040 if(catchStack.cursor >= 0){
8041 longjmp(catchStack.envs[catchStack.cursor], 1);
8042 }
8043 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_float");
8044 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2600);
8045 fatal_exit(1);
8046 }
8047 var2 = var4;
8048 RET_LABEL3:(void)0;
8049 }
8050 }
8051 {
8052 var5 = nitc__lexer_work___Token___text(var2);
8053 }
8054 ((struct instance_core__NativeArray*)var1)->values[0]=var5;
8055 {
8056 var6 = ((val*(*)(val* self))(var1->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var1); /* native_to_s on <var1:NativeArray[String]>*/
8057 }
8058 varonce = var1;
8059 {
8060 var7 = nitc___nitc__AbstractCompilerVisitor___float_instance(var_v, var6);
8061 }
8062 var = var7;
8063 goto RET_LABEL;
8064 RET_LABEL:;
8065 return var;
8066 }
8067 /* method abstract_compiler$ACharExpr$expr for (self: ACharExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
8068 val* nitc__abstract_compiler___ACharExpr___AExpr__expr(val* self, val* p0) {
8069 val* var /* : nullable RuntimeVariable */;
8070 val* var_v /* var v: AbstractCompilerVisitor */;
8071 short int var1 /* : Bool */;
8072 val* var2 /* : nullable Char */;
8073 val* var4 /* : nullable Char */;
8074 unsigned char var5 /* : Byte */;
8075 uint32_t var6 /* : Char */;
8076 val* var7 /* : RuntimeVariable */;
8077 short int var8 /* : Bool */;
8078 val* var9 /* : nullable Char */;
8079 val* var11 /* : nullable Char */;
8080 long var12 /* : Int */;
8081 uint32_t var14 /* : Char */;
8082 long var15 /* : Int */;
8083 val* var16 /* : RuntimeVariable */;
8084 val* var17 /* : nullable Char */;
8085 val* var19 /* : nullable Char */;
8086 val* var20 /* : RuntimeVariable */;
8087 uint32_t var21 /* : Char */;
8088 var_v = p0;
8089 {
8090 var1 = nitc__literal___ACharExpr___is_ascii(self);
8091 }
8092 if (var1){
8093 {
8094 { /* Inline literal$ACharExpr$value (self) on <self:ACharExpr> */
8095 var4 = self->attrs[COLOR_nitc__literal__ACharExpr___value].val; /* _value on <self:ACharExpr> */
8096 var2 = var4;
8097 RET_LABEL3:(void)0;
8098 }
8099 }
8100 if (unlikely(var2 == NULL)) {
8101 if(catchStack.cursor >= 0){
8102 longjmp(catchStack.envs[catchStack.cursor], 1);
8103 }
8104 PRINT_ERROR("Runtime error: %s", "Cast failed");
8105 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3673);
8106 fatal_exit(1);
8107 }
8108 {
8109 var6 = (uint32_t)((long)(var2)>>2);
8110 var5 = core___core__Char___ascii(var6);
8111 }
8112 {
8113 var7 = nitc___nitc__AbstractCompilerVisitor___byte_instance(var_v, var5);
8114 }
8115 var = var7;
8116 goto RET_LABEL;
8117 } else {
8118 }
8119 {
8120 var8 = nitc__literal___ACharExpr___is_code_point(self);
8121 }
8122 if (var8){
8123 {
8124 { /* Inline literal$ACharExpr$value (self) on <self:ACharExpr> */
8125 var11 = self->attrs[COLOR_nitc__literal__ACharExpr___value].val; /* _value on <self:ACharExpr> */
8126 var9 = var11;
8127 RET_LABEL10:(void)0;
8128 }
8129 }
8130 if (unlikely(var9 == NULL)) {
8131 if(catchStack.cursor >= 0){
8132 longjmp(catchStack.envs[catchStack.cursor], 1);
8133 }
8134 PRINT_ERROR("Runtime error: %s", "Cast failed");
8135 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3674);
8136 fatal_exit(1);
8137 }
8138 {
8139 { /* Inline kernel$Char$code_point (var9) on <var9:nullable Char(Char)> */
8140 var14 = (uint32_t)((long)(var9)>>2);
8141 var15 = (long)var14;
8142 var12 = var15;
8143 goto RET_LABEL13;
8144 RET_LABEL13:(void)0;
8145 }
8146 }
8147 {
8148 var16 = nitc___nitc__AbstractCompilerVisitor___int_instance(var_v, var12);
8149 }
8150 var = var16;
8151 goto RET_LABEL;
8152 } else {
8153 }
8154 {
8155 { /* Inline literal$ACharExpr$value (self) on <self:ACharExpr> */
8156 var19 = self->attrs[COLOR_nitc__literal__ACharExpr___value].val; /* _value on <self:ACharExpr> */
8157 var17 = var19;
8158 RET_LABEL18:(void)0;
8159 }
8160 }
8161 if (unlikely(var17 == NULL)) {
8162 if(catchStack.cursor >= 0){
8163 longjmp(catchStack.envs[catchStack.cursor], 1);
8164 }
8165 PRINT_ERROR("Runtime error: %s", "Cast failed");
8166 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3675);
8167 fatal_exit(1);
8168 }
8169 {
8170 var21 = (uint32_t)((long)(var17)>>2);
8171 var20 = nitc___nitc__AbstractCompilerVisitor___char_instance(var_v, var21);
8172 }
8173 var = var20;
8174 goto RET_LABEL;
8175 RET_LABEL:;
8176 return var;
8177 }
8178 /* method abstract_compiler$AArrayExpr$expr for (self: AArrayExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
8179 val* nitc__abstract_compiler___AArrayExpr___AExpr__expr(val* self, val* p0) {
8180 val* var /* : nullable RuntimeVariable */;
8181 val* var_v /* var v: AbstractCompilerVisitor */;
8182 val* var1 /* : nullable MType */;
8183 val* var3 /* : nullable MType */;
8184 val* var_mtype /* var mtype: MType */;
8185 val* var4 /* : Array[RuntimeVariable] */;
8186 val* var_array /* var array: Array[RuntimeVariable] */;
8187 val* var5 /* : RuntimeVariable */;
8188 val* var_res /* var res: RuntimeVariable */;
8189 val* var6 /* : nullable StaticFrame */;
8190 val* var8 /* : nullable StaticFrame */;
8191 val* var9 /* : nullable RuntimeVariable */;
8192 val* var11 /* : nullable RuntimeVariable */;
8193 val* var_old_comprehension /* var old_comprehension: nullable RuntimeVariable */;
8194 val* var12 /* : nullable StaticFrame */;
8195 val* var14 /* : nullable StaticFrame */;
8196 val* var16 /* : ANodes[AExpr] */;
8197 val* var18 /* : ANodes[AExpr] */;
8198 val* var_ /* var : ANodes[AExpr] */;
8199 val* var19 /* : Iterator[ANode] */;
8200 val* var_20 /* var : Iterator[AExpr] */;
8201 short int var21 /* : Bool */;
8202 val* var22 /* : nullable Object */;
8203 val* var_nexpr /* var nexpr: AExpr */;
8204 val* var23 /* : nullable StaticFrame */;
8205 val* var25 /* : nullable StaticFrame */;
8206 var_v = p0;
8207 {
8208 { /* Inline typing$AArrayExpr$element_mtype (self) on <self:AArrayExpr> */
8209 var3 = self->attrs[COLOR_nitc__typing__AArrayExpr___element_mtype].val; /* _element_mtype on <self:AArrayExpr> */
8210 var1 = var3;
8211 RET_LABEL2:(void)0;
8212 }
8213 }
8214 if (unlikely(var1 == NULL)) {
8215 if(catchStack.cursor >= 0){
8216 longjmp(catchStack.envs[catchStack.cursor], 1);
8217 }
8218 PRINT_ERROR("Runtime error: %s", "Cast failed");
8219 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3682);
8220 fatal_exit(1);
8221 }
8222 var_mtype = var1;
8223 var4 = NEW_core__Array(&type_core__Array__nitc__RuntimeVariable);
8224 {
8225 core___core__Array___core__kernel__Object__init(var4); /* Direct call array$Array$init on <var4:Array[RuntimeVariable]>*/
8226 }
8227 var_array = var4;
8228 {
8229 var5 = nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__array_instance(var_v, var_array, var_mtype);
8230 }
8231 var_res = var5;
8232 {
8233 { /* Inline abstract_compiler$AbstractCompilerVisitor$frame (var_v) on <var_v:AbstractCompilerVisitor> */
8234 var8 = var_v->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on <var_v:AbstractCompilerVisitor> */
8235 var6 = var8;
8236 RET_LABEL7:(void)0;
8237 }
8238 }
8239 if (var6 == NULL) {
8240 if(catchStack.cursor >= 0){
8241 longjmp(catchStack.envs[catchStack.cursor], 1);
8242 }
8243 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8244 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3686);
8245 fatal_exit(1);
8246 } else {
8247 { /* Inline abstract_compiler$StaticFrame$comprehension (var6) on <var6:nullable StaticFrame> */
8248 if (unlikely(var6 == NULL)) {
8249 if(catchStack.cursor >= 0){
8250 longjmp(catchStack.envs[catchStack.cursor], 1);
8251 }
8252 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8253 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 2047);
8254 fatal_exit(1);
8255 }
8256 var11 = var6->attrs[COLOR_nitc__abstract_compiler__StaticFrame___comprehension].val; /* _comprehension on <var6:nullable StaticFrame> */
8257 var9 = var11;
8258 RET_LABEL10:(void)0;
8259 }
8260 }
8261 var_old_comprehension = var9;
8262 {
8263 { /* Inline abstract_compiler$AbstractCompilerVisitor$frame (var_v) on <var_v:AbstractCompilerVisitor> */
8264 var14 = var_v->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on <var_v:AbstractCompilerVisitor> */
8265 var12 = var14;
8266 RET_LABEL13:(void)0;
8267 }
8268 }
8269 if (var12 == NULL) {
8270 if(catchStack.cursor >= 0){
8271 longjmp(catchStack.envs[catchStack.cursor], 1);
8272 }
8273 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8274 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3687);
8275 fatal_exit(1);
8276 } else {
8277 { /* Inline abstract_compiler$StaticFrame$comprehension= (var12,var_res) on <var12:nullable StaticFrame> */
8278 if (unlikely(var12 == NULL)) {
8279 if(catchStack.cursor >= 0){
8280 longjmp(catchStack.envs[catchStack.cursor], 1);
8281 }
8282 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8283 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 2047);
8284 fatal_exit(1);
8285 }
8286 var12->attrs[COLOR_nitc__abstract_compiler__StaticFrame___comprehension].val = var_res; /* _comprehension on <var12:nullable StaticFrame> */
8287 RET_LABEL15:(void)0;
8288 }
8289 }
8290 {
8291 { /* Inline parser_nodes$AArrayExpr$n_exprs (self) on <self:AArrayExpr> */
8292 var18 = self->attrs[COLOR_nitc__parser_nodes__AArrayExpr___n_exprs].val; /* _n_exprs on <self:AArrayExpr> */
8293 if (unlikely(var18 == NULL)) {
8294 if(catchStack.cursor >= 0){
8295 longjmp(catchStack.envs[catchStack.cursor], 1);
8296 }
8297 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
8298 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2541);
8299 fatal_exit(1);
8300 }
8301 var16 = var18;
8302 RET_LABEL17:(void)0;
8303 }
8304 }
8305 var_ = var16;
8306 {
8307 var19 = nitc___nitc__ANodes___core__abstract_collection__Collection__iterator(var_);
8308 }
8309 var_20 = var19;
8310 for(;;) {
8311 {
8312 var21 = ((short int(*)(val* self))((((long)var_20&3)?class_info[((long)var_20&3)]:var_20->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_20); /* is_ok on <var_20:Iterator[AExpr]>*/
8313 }
8314 if (var21){
8315 } else {
8316 goto BREAK_label;
8317 }
8318 {
8319 var22 = ((val*(*)(val* self))((((long)var_20&3)?class_info[((long)var_20&3)]:var_20->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_20); /* item on <var_20:Iterator[AExpr]>*/
8320 }
8321 var_nexpr = var22;
8322 {
8323 nitc___nitc__AbstractCompilerVisitor___stmt(var_v, var_nexpr); /* Direct call abstract_compiler$AbstractCompilerVisitor$stmt on <var_v:AbstractCompilerVisitor>*/
8324 }
8325 {
8326 ((void(*)(val* self))((((long)var_20&3)?class_info[((long)var_20&3)]:var_20->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_20); /* next on <var_20:Iterator[AExpr]>*/
8327 }
8328 }
8329 BREAK_label: (void)0;
8330 {
8331 ((void(*)(val* self))((((long)var_20&3)?class_info[((long)var_20&3)]:var_20->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_20); /* finish on <var_20:Iterator[AExpr]>*/
8332 }
8333 {
8334 { /* Inline abstract_compiler$AbstractCompilerVisitor$frame (var_v) on <var_v:AbstractCompilerVisitor> */
8335 var25 = var_v->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on <var_v:AbstractCompilerVisitor> */
8336 var23 = var25;
8337 RET_LABEL24:(void)0;
8338 }
8339 }
8340 if (var23 == NULL) {
8341 if(catchStack.cursor >= 0){
8342 longjmp(catchStack.envs[catchStack.cursor], 1);
8343 }
8344 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8345 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3691);
8346 fatal_exit(1);
8347 } else {
8348 { /* Inline abstract_compiler$StaticFrame$comprehension= (var23,var_old_comprehension) on <var23:nullable StaticFrame> */
8349 if (unlikely(var23 == NULL)) {
8350 if(catchStack.cursor >= 0){
8351 longjmp(catchStack.envs[catchStack.cursor], 1);
8352 }
8353 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8354 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 2047);
8355 fatal_exit(1);
8356 }
8357 var23->attrs[COLOR_nitc__abstract_compiler__StaticFrame___comprehension].val = var_old_comprehension; /* _comprehension on <var23:nullable StaticFrame> */
8358 RET_LABEL26:(void)0;
8359 }
8360 }
8361 var = var_res;
8362 goto RET_LABEL;
8363 RET_LABEL:;
8364 return var;
8365 }
8366 /* method abstract_compiler$AugmentedStringFormExpr$make_re for (self: AugmentedStringFormExpr, AbstractCompilerVisitor, RuntimeVariable): nullable RuntimeVariable */
8367 val* nitc__abstract_compiler___AugmentedStringFormExpr___make_re(val* self, val* p0, val* p1) {
8368 val* var /* : nullable RuntimeVariable */;
8369 val* var_v /* var v: AbstractCompilerVisitor */;
8370 val* var_rs /* var rs: RuntimeVariable */;
8371 val* var1 /* : nullable CallSite */;
8372 val* var3 /* : nullable CallSite */;
8373 val* var_re /* var re: nullable CallSite */;
8374 short int var4 /* : Bool */;
8375 short int var5 /* : Bool */;
8376 val* var_other /* var other: nullable Object */;
8377 short int var7 /* : Bool */;
8378 short int var8 /* : Bool */;
8379 val* var9 /* : Array[RuntimeVariable] */;
8380 val* var_ /* var : Array[RuntimeVariable] */;
8381 val* var10 /* : nullable RuntimeVariable */;
8382 val* var_res /* var res: nullable RuntimeVariable */;
8383 short int var11 /* : Bool */;
8384 short int var12 /* : Bool */;
8385 val* var_other14 /* var other: nullable Object */;
8386 short int var15 /* : Bool */;
8387 short int var17 /* : Bool */;
8388 val* var18 /* : Sys */;
8389 val* var19 /* : NativeArray[String] */;
8390 static val* varonce;
8391 static val* varonce20;
8392 val* var21 /* : String */;
8393 char* var22 /* : CString */;
8394 val* var23 /* : String */;
8395 val* var24 /* : nullable Int */;
8396 val* var25 /* : nullable Int */;
8397 val* var26 /* : nullable Bool */;
8398 val* var27 /* : nullable Bool */;
8399 val* var28 /* : String */;
8400 val* var29 /* : String */;
8401 val* var30 /* : String */;
8402 val* var31 /* : SequenceRead[Char] */;
8403 val* var_32 /* var : SequenceRead[Char] */;
8404 val* var33 /* : Iterator[nullable Object] */;
8405 val* var_34 /* var : IndexedIterator[Char] */;
8406 short int var35 /* : Bool */;
8407 val* var36 /* : nullable Object */;
8408 uint32_t var37 /* : Char */;
8409 uint32_t var_i /* var i: Char */;
8410 short int var38 /* : Bool */;
8411 short int var40 /* : Bool */;
8412 val* var41 /* : nullable CallSite */;
8413 val* var43 /* : nullable CallSite */;
8414 val* var_ign /* var ign: nullable CallSite */;
8415 short int var44 /* : Bool */;
8416 short int var45 /* : Bool */;
8417 short int var47 /* : Bool */;
8418 short int var48 /* : Bool */;
8419 val* var49 /* : Array[RuntimeVariable] */;
8420 val* var_50 /* var : Array[RuntimeVariable] */;
8421 val* var51 /* : RuntimeVariable */;
8422 val* var52 /* : nullable RuntimeVariable */;
8423 short int var54 /* : Bool */;
8424 short int var56 /* : Bool */;
8425 val* var57 /* : nullable CallSite */;
8426 val* var59 /* : nullable CallSite */;
8427 val* var_nl /* var nl: nullable CallSite */;
8428 short int var60 /* : Bool */;
8429 short int var61 /* : Bool */;
8430 short int var63 /* : Bool */;
8431 short int var64 /* : Bool */;
8432 val* var65 /* : Array[RuntimeVariable] */;
8433 val* var_66 /* var : Array[RuntimeVariable] */;
8434 val* var67 /* : RuntimeVariable */;
8435 val* var68 /* : nullable RuntimeVariable */;
8436 short int var69 /* : Bool */;
8437 short int var71 /* : Bool */;
8438 val* var72 /* : nullable CallSite */;
8439 val* var74 /* : nullable CallSite */;
8440 val* var_ext /* var ext: nullable CallSite */;
8441 short int var75 /* : Bool */;
8442 short int var76 /* : Bool */;
8443 short int var78 /* : Bool */;
8444 short int var79 /* : Bool */;
8445 val* var80 /* : Array[RuntimeVariable] */;
8446 val* var_81 /* var : Array[RuntimeVariable] */;
8447 val* var82 /* : RuntimeVariable */;
8448 val* var83 /* : nullable RuntimeVariable */;
8449 var_v = p0;
8450 var_rs = p1;
8451 {
8452 { /* Inline typing$AugmentedStringFormExpr$to_re (self) on <self:AugmentedStringFormExpr> */
8453 var3 = self->attrs[COLOR_nitc__typing__AugmentedStringFormExpr___to_re].val; /* _to_re on <self:AugmentedStringFormExpr> */
8454 var1 = var3;
8455 RET_LABEL2:(void)0;
8456 }
8457 }
8458 var_re = var1;
8459 if (var_re == NULL) {
8460 var4 = 0; /* is null */
8461 } else {
8462 var4 = 1; /* arg is null and recv is not */
8463 }
8464 if (0) {
8465 { /* Inline kernel$Object$!= (var_re,((val*)NULL)) on <var_re:nullable CallSite> */
8466 var_other = ((val*)NULL);
8467 {
8468 var7 = ((short int(*)(val* self, val* p0))(var_re->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_re, var_other); /* == on <var_re:nullable CallSite(CallSite)>*/
8469 }
8470 var8 = !var7;
8471 var5 = var8;
8472 goto RET_LABEL6;
8473 RET_LABEL6:(void)0;
8474 }
8475 var4 = var5;
8476 }
8477 if (unlikely(!var4)) {
8478 if(catchStack.cursor >= 0){
8479 longjmp(catchStack.envs[catchStack.cursor], 1);
8480 }
8481 PRINT_ERROR("Runtime error: %s", "Assert failed");
8482 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3701);
8483 fatal_exit(1);
8484 }
8485 var9 = NEW_core__Array(&type_core__Array__nitc__RuntimeVariable);
8486 {
8487 core___core__Array___with_capacity(var9, 1l); /* Direct call array$Array$with_capacity on <var9:Array[RuntimeVariable]>*/
8488 }
8489 var_ = var9;
8490 {
8491 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var_rs); /* Direct call array$AbstractArray$push on <var_:Array[RuntimeVariable]>*/
8492 }
8493 {
8494 var10 = ((val*(*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var_re, var_); /* compile_callsite on <var_v:AbstractCompilerVisitor>*/
8495 }
8496 var_res = var10;
8497 if (var_res == NULL) {
8498 var11 = 1; /* is null */
8499 } else {
8500 var11 = 0; /* arg is null but recv is not */
8501 }
8502 if (0) {
8503 { /* Inline kernel$Object$== (var_res,((val*)NULL)) on <var_res:nullable RuntimeVariable> */
8504 var_other14 = ((val*)NULL);
8505 {
8506 { /* Inline kernel$Object$is_same_instance (var_res,var_other14) on <var_res:nullable RuntimeVariable(RuntimeVariable)> */
8507 var17 = var_res == var_other14;
8508 var15 = var17;
8509 goto RET_LABEL16;
8510 RET_LABEL16:(void)0;
8511 }
8512 }
8513 var12 = var15;
8514 goto RET_LABEL13;
8515 RET_LABEL13:(void)0;
8516 }
8517 var11 = var12;
8518 }
8519 if (var11){
8520 var18 = glob_sys;
8521 if (unlikely(varonce==NULL)) {
8522 var19 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
8523 if (likely(varonce20!=NULL)) {
8524 var21 = varonce20;
8525 } else {
8526 var22 = "Cannot call property `to_re` on ";
8527 var24 = (val*)(32l<<2|1);
8528 var25 = (val*)(32l<<2|1);
8529 var26 = (val*)((long)(0)<<2|3);
8530 var27 = (val*)((long)(0)<<2|3);
8531 var23 = core__flat___CString___to_s_unsafe(var22, var24, var25, var26, var27);
8532 var21 = var23;
8533 varonce20 = var21;
8534 }
8535 ((struct instance_core__NativeArray*)var19)->values[0]=var21;
8536 } else {
8537 var19 = varonce;
8538 varonce = NULL;
8539 }
8540 {
8541 var28 = ((val*(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Object__to_s]))(self); /* to_s on <self:AugmentedStringFormExpr>*/
8542 }
8543 ((struct instance_core__NativeArray*)var19)->values[1]=var28;
8544 {
8545 var29 = ((val*(*)(val* self))(var19->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var19); /* native_to_s on <var19:NativeArray[String]>*/
8546 }
8547 varonce = var19;
8548 {
8549 core__file___Sys___print(var18, var29); /* Direct call file$Sys$print on <var18:Sys>*/
8550 }
8551 if(catchStack.cursor >= 0){
8552 longjmp(catchStack.envs[catchStack.cursor], 1);
8553 }
8554 PRINT_ERROR("Runtime error: %s", "Aborted");
8555 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3705);
8556 fatal_exit(1);
8557 } else {
8558 }
8559 {
8560 var30 = ((val*(*)(val* self))(self->class->vft[COLOR_nitc__literal__AAugmentedLiteral__suffix]))(self); /* suffix on <self:AugmentedStringFormExpr>*/
8561 }
8562 {
8563 var31 = ((val*(*)(val* self))(var30->class->vft[COLOR_core__abstract_text__Text__chars]))(var30); /* chars on <var30:String>*/
8564 }
8565 var_32 = var31;
8566 {
8567 var33 = ((val*(*)(val* self))((((long)var_32&3)?class_info[((long)var_32&3)]:var_32->class)->vft[COLOR_core__abstract_collection__Collection__iterator]))(var_32); /* iterator on <var_32:SequenceRead[Char]>*/
8568 }
8569 var_34 = var33;
8570 for(;;) {
8571 {
8572 var35 = ((short int(*)(val* self))((((long)var_34&3)?class_info[((long)var_34&3)]:var_34->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_34); /* is_ok on <var_34:IndexedIterator[Char]>*/
8573 }
8574 if (var35){
8575 } else {
8576 goto BREAK_label;
8577 }
8578 {
8579 var36 = ((val*(*)(val* self))((((long)var_34&3)?class_info[((long)var_34&3)]:var_34->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_34); /* item on <var_34:IndexedIterator[Char]>*/
8580 }
8581 var37 = (uint32_t)((long)(var36)>>2);
8582 var_i = var37;
8583 {
8584 { /* Inline kernel$Char$== (var_i,'i') on <var_i:Char> */
8585 var40 = var_i == 'i';
8586 var38 = var40;
8587 goto RET_LABEL39;
8588 RET_LABEL39:(void)0;
8589 }
8590 }
8591 if (var38){
8592 {
8593 { /* Inline typing$AugmentedStringFormExpr$ignore_case (self) on <self:AugmentedStringFormExpr> */
8594 var43 = self->attrs[COLOR_nitc__typing__AugmentedStringFormExpr___ignore_case].val; /* _ignore_case on <self:AugmentedStringFormExpr> */
8595 var41 = var43;
8596 RET_LABEL42:(void)0;
8597 }
8598 }
8599 var_ign = var41;
8600 if (var_ign == NULL) {
8601 var44 = 0; /* is null */
8602 } else {
8603 var44 = 1; /* arg is null and recv is not */
8604 }
8605 if (0) {
8606 { /* Inline kernel$Object$!= (var_ign,((val*)NULL)) on <var_ign:nullable CallSite> */
8607 var_other = ((val*)NULL);
8608 {
8609 var47 = ((short int(*)(val* self, val* p0))(var_ign->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_ign, var_other); /* == on <var_ign:nullable CallSite(CallSite)>*/
8610 }
8611 var48 = !var47;
8612 var45 = var48;
8613 goto RET_LABEL46;
8614 RET_LABEL46:(void)0;
8615 }
8616 var44 = var45;
8617 }
8618 if (unlikely(!var44)) {
8619 if(catchStack.cursor >= 0){
8620 longjmp(catchStack.envs[catchStack.cursor], 1);
8621 }
8622 PRINT_ERROR("Runtime error: %s", "Assert failed");
8623 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3710);
8624 fatal_exit(1);
8625 }
8626 var49 = NEW_core__Array(&type_core__Array__nitc__RuntimeVariable);
8627 {
8628 core___core__Array___with_capacity(var49, 2l); /* Direct call array$Array$with_capacity on <var49:Array[RuntimeVariable]>*/
8629 }
8630 var_50 = var49;
8631 {
8632 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_50, var_res); /* Direct call array$AbstractArray$push on <var_50:Array[RuntimeVariable]>*/
8633 }
8634 {
8635 var51 = nitc___nitc__AbstractCompilerVisitor___bool_instance(var_v, 1);
8636 }
8637 {
8638 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_50, var51); /* Direct call array$AbstractArray$push on <var_50:Array[RuntimeVariable]>*/
8639 }
8640 {
8641 var52 = ((val*(*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var_ign, var_50); /* compile_callsite on <var_v:AbstractCompilerVisitor>*/
8642 }
8643 goto BREAK_label53;
8644 } else {
8645 }
8646 {
8647 { /* Inline kernel$Char$== (var_i,'m') on <var_i:Char> */
8648 var56 = var_i == 'm';
8649 var54 = var56;
8650 goto RET_LABEL55;
8651 RET_LABEL55:(void)0;
8652 }
8653 }
8654 if (var54){
8655 {
8656 { /* Inline typing$AugmentedStringFormExpr$newline (self) on <self:AugmentedStringFormExpr> */
8657 var59 = self->attrs[COLOR_nitc__typing__AugmentedStringFormExpr___newline].val; /* _newline on <self:AugmentedStringFormExpr> */
8658 var57 = var59;
8659 RET_LABEL58:(void)0;
8660 }
8661 }
8662 var_nl = var57;
8663 if (var_nl == NULL) {
8664 var60 = 0; /* is null */
8665 } else {
8666 var60 = 1; /* arg is null and recv is not */
8667 }
8668 if (0) {
8669 { /* Inline kernel$Object$!= (var_nl,((val*)NULL)) on <var_nl:nullable CallSite> */
8670 var_other = ((val*)NULL);
8671 {
8672 var63 = ((short int(*)(val* self, val* p0))(var_nl->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_nl, var_other); /* == on <var_nl:nullable CallSite(CallSite)>*/
8673 }
8674 var64 = !var63;
8675 var61 = var64;
8676 goto RET_LABEL62;
8677 RET_LABEL62:(void)0;
8678 }
8679 var60 = var61;
8680 }
8681 if (unlikely(!var60)) {
8682 if(catchStack.cursor >= 0){
8683 longjmp(catchStack.envs[catchStack.cursor], 1);
8684 }
8685 PRINT_ERROR("Runtime error: %s", "Assert failed");
8686 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3716);
8687 fatal_exit(1);
8688 }
8689 var65 = NEW_core__Array(&type_core__Array__nitc__RuntimeVariable);
8690 {
8691 core___core__Array___with_capacity(var65, 2l); /* Direct call array$Array$with_capacity on <var65:Array[RuntimeVariable]>*/
8692 }
8693 var_66 = var65;
8694 {
8695 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_66, var_res); /* Direct call array$AbstractArray$push on <var_66:Array[RuntimeVariable]>*/
8696 }
8697 {
8698 var67 = nitc___nitc__AbstractCompilerVisitor___bool_instance(var_v, 1);
8699 }
8700 {
8701 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_66, var67); /* Direct call array$AbstractArray$push on <var_66:Array[RuntimeVariable]>*/
8702 }
8703 {
8704 var68 = ((val*(*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var_nl, var_66); /* compile_callsite on <var_v:AbstractCompilerVisitor>*/
8705 }
8706 goto BREAK_label53;
8707 } else {
8708 }
8709 {
8710 { /* Inline kernel$Char$== (var_i,'b') on <var_i:Char> */
8711 var71 = var_i == 'b';
8712 var69 = var71;
8713 goto RET_LABEL70;
8714 RET_LABEL70:(void)0;
8715 }
8716 }
8717 if (var69){
8718 {
8719 { /* Inline typing$AugmentedStringFormExpr$extended (self) on <self:AugmentedStringFormExpr> */
8720 var74 = self->attrs[COLOR_nitc__typing__AugmentedStringFormExpr___extended].val; /* _extended on <self:AugmentedStringFormExpr> */
8721 var72 = var74;
8722 RET_LABEL73:(void)0;
8723 }
8724 }
8725 var_ext = var72;
8726 if (var_ext == NULL) {
8727 var75 = 0; /* is null */
8728 } else {
8729 var75 = 1; /* arg is null and recv is not */
8730 }
8731 if (0) {
8732 { /* Inline kernel$Object$!= (var_ext,((val*)NULL)) on <var_ext:nullable CallSite> */
8733 var_other = ((val*)NULL);
8734 {
8735 var78 = ((short int(*)(val* self, val* p0))(var_ext->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_ext, var_other); /* == on <var_ext:nullable CallSite(CallSite)>*/
8736 }
8737 var79 = !var78;
8738 var76 = var79;
8739 goto RET_LABEL77;
8740 RET_LABEL77:(void)0;
8741 }
8742 var75 = var76;
8743 }
8744 if (unlikely(!var75)) {
8745 if(catchStack.cursor >= 0){
8746 longjmp(catchStack.envs[catchStack.cursor], 1);
8747 }
8748 PRINT_ERROR("Runtime error: %s", "Assert failed");
8749 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3722);
8750 fatal_exit(1);
8751 }
8752 var80 = NEW_core__Array(&type_core__Array__nitc__RuntimeVariable);
8753 {
8754 core___core__Array___with_capacity(var80, 2l); /* Direct call array$Array$with_capacity on <var80:Array[RuntimeVariable]>*/
8755 }
8756 var_81 = var80;
8757 {
8758 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_81, var_res); /* Direct call array$AbstractArray$push on <var_81:Array[RuntimeVariable]>*/
8759 }
8760 {
8761 var82 = nitc___nitc__AbstractCompilerVisitor___bool_instance(var_v, 0);
8762 }
8763 {
8764 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_81, var82); /* Direct call array$AbstractArray$push on <var_81:Array[RuntimeVariable]>*/
8765 }
8766 {
8767 var83 = ((val*(*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var_ext, var_81); /* compile_callsite on <var_v:AbstractCompilerVisitor>*/
8768 }
8769 goto BREAK_label53;
8770 } else {
8771 }
8772 if(catchStack.cursor >= 0){
8773 longjmp(catchStack.envs[catchStack.cursor], 1);
8774 }
8775 PRINT_ERROR("Runtime error: %s", "Aborted");
8776 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3728);
8777 fatal_exit(1);
8778 BREAK_label53: (void)0;
8779 {
8780 ((void(*)(val* self))((((long)var_34&3)?class_info[((long)var_34&3)]:var_34->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_34); /* next on <var_34:IndexedIterator[Char]>*/
8781 }
8782 }
8783 BREAK_label: (void)0;
8784 {
8785 ((void(*)(val* self))((((long)var_34&3)?class_info[((long)var_34&3)]:var_34->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_34); /* finish on <var_34:IndexedIterator[Char]>*/
8786 }
8787 var = var_res;
8788 goto RET_LABEL;
8789 RET_LABEL:;
8790 return var;
8791 }
8792 /* method abstract_compiler$AStringFormExpr$expr for (self: AStringFormExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
8793 val* nitc__abstract_compiler___AStringFormExpr___AExpr__expr(val* self, val* p0) {
8794 val* var /* : nullable RuntimeVariable */;
8795 val* var_v /* var v: AbstractCompilerVisitor */;
8796 val* var1 /* : String */;
8797 val* var3 /* : String */;
8798 val* var4 /* : RuntimeVariable */;
8799 var_v = p0;
8800 {
8801 { /* Inline literal$AStringFormExpr$value (self) on <self:AStringFormExpr> */
8802 var3 = self->attrs[COLOR_nitc__literal__AStringFormExpr___value].val; /* _value on <self:AStringFormExpr> */
8803 if (unlikely(var3 == NULL)) {
8804 if(catchStack.cursor >= 0){
8805 longjmp(catchStack.envs[catchStack.cursor], 1);
8806 }
8807 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _value");
8808 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__literal, 201);
8809 fatal_exit(1);
8810 }
8811 var1 = var3;
8812 RET_LABEL2:(void)0;
8813 }
8814 }
8815 {
8816 var4 = nitc___nitc__AbstractCompilerVisitor___string_instance(var_v, var1);
8817 }
8818 var = var4;
8819 goto RET_LABEL;
8820 RET_LABEL:;
8821 return var;
8822 }
8823 /* method abstract_compiler$AStringExpr$expr for (self: AStringExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
8824 val* nitc__abstract_compiler___AStringExpr___AExpr__expr(val* self, val* p0) {
8825 val* var /* : nullable RuntimeVariable */;
8826 val* var_v /* var v: AbstractCompilerVisitor */;
8827 val* var1 /* : String */;
8828 val* var3 /* : String */;
8829 val* var4 /* : RuntimeVariable */;
8830 val* var_s /* var s: RuntimeVariable */;
8831 short int var5 /* : Bool */;
8832 short int var6 /* : Bool */;
8833 val* var7 /* : Bytes */;
8834 val* var9 /* : Bytes */;
8835 char* var10 /* : CString */;
8836 char* var12 /* : CString */;
8837 val* var13 /* : Bytes */;
8838 val* var15 /* : Bytes */;
8839 long var16 /* : Int */;
8840 long var18 /* : Int */;
8841 val* var19 /* : RuntimeVariable */;
8842 val* var_ns /* var ns: RuntimeVariable */;
8843 val* var20 /* : Bytes */;
8844 val* var22 /* : Bytes */;
8845 long var23 /* : Int */;
8846 long var25 /* : Int */;
8847 val* var26 /* : RuntimeVariable */;
8848 val* var_ln /* var ln: RuntimeVariable */;
8849 val* var27 /* : nullable CallSite */;
8850 val* var29 /* : nullable CallSite */;
8851 val* var_cs /* var cs: nullable CallSite */;
8852 short int var30 /* : Bool */;
8853 short int var31 /* : Bool */;
8854 val* var_other /* var other: nullable Object */;
8855 short int var33 /* : Bool */;
8856 short int var34 /* : Bool */;
8857 val* var35 /* : Array[RuntimeVariable] */;
8858 val* var_ /* var : Array[RuntimeVariable] */;
8859 val* var36 /* : nullable RuntimeVariable */;
8860 val* var_res /* var res: nullable RuntimeVariable */;
8861 short int var37 /* : Bool */;
8862 short int var38 /* : Bool */;
8863 short int var40 /* : Bool */;
8864 short int var41 /* : Bool */;
8865 short int var42 /* : Bool */;
8866 val* var43 /* : nullable RuntimeVariable */;
8867 val* var_res44 /* var res: nullable RuntimeVariable */;
8868 short int var45 /* : Bool */;
8869 short int var46 /* : Bool */;
8870 short int var48 /* : Bool */;
8871 short int var49 /* : Bool */;
8872 val* var50 /* : Sys */;
8873 val* var51 /* : NativeArray[String] */;
8874 static val* varonce;
8875 static val* varonce52;
8876 val* var53 /* : String */;
8877 char* var54 /* : CString */;
8878 val* var55 /* : String */;
8879 val* var56 /* : nullable Int */;
8880 val* var57 /* : nullable Int */;
8881 val* var58 /* : nullable Bool */;
8882 val* var59 /* : nullable Bool */;
8883 val* var60 /* : String */;
8884 val* var61 /* : String */;
8885 var_v = p0;
8886 {
8887 { /* Inline literal$AStringFormExpr$value (self) on <self:AStringExpr> */
8888 var3 = self->attrs[COLOR_nitc__literal__AStringFormExpr___value].val; /* _value on <self:AStringExpr> */
8889 if (unlikely(var3 == NULL)) {
8890 if(catchStack.cursor >= 0){
8891 longjmp(catchStack.envs[catchStack.cursor], 1);
8892 }
8893 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _value");
8894 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__literal, 201);
8895 fatal_exit(1);
8896 }
8897 var1 = var3;
8898 RET_LABEL2:(void)0;
8899 }
8900 }
8901 {
8902 var4 = nitc___nitc__AbstractCompilerVisitor___string_instance(var_v, var1);
8903 }
8904 var_s = var4;
8905 {
8906 var5 = nitc___nitc__AugmentedStringFormExpr___is_string(self);
8907 }
8908 if (var5){
8909 var = var_s;
8910 goto RET_LABEL;
8911 } else {
8912 }
8913 {
8914 var6 = nitc___nitc__AugmentedStringFormExpr___is_bytestring(self);
8915 }
8916 if (var6){
8917 {
8918 { /* Inline literal$AStringFormExpr$bytes (self) on <self:AStringExpr> */
8919 var9 = self->attrs[COLOR_nitc__literal__AStringFormExpr___bytes].val; /* _bytes on <self:AStringExpr> */
8920 if (unlikely(var9 == NULL)) {
8921 if(catchStack.cursor >= 0){
8922 longjmp(catchStack.envs[catchStack.cursor], 1);
8923 }
8924 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bytes");
8925 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__literal, 204);
8926 fatal_exit(1);
8927 }
8928 var7 = var9;
8929 RET_LABEL8:(void)0;
8930 }
8931 }
8932 {
8933 { /* Inline bytes$Bytes$items (var7) on <var7:Bytes> */
8934 var12 = var7->attrs[COLOR_core__bytes__Bytes___items].str; /* _items on <var7:Bytes> */
8935 var10 = var12;
8936 RET_LABEL11:(void)0;
8937 }
8938 }
8939 {
8940 { /* Inline literal$AStringFormExpr$bytes (self) on <self:AStringExpr> */
8941 var15 = self->attrs[COLOR_nitc__literal__AStringFormExpr___bytes].val; /* _bytes on <self:AStringExpr> */
8942 if (unlikely(var15 == NULL)) {
8943 if(catchStack.cursor >= 0){
8944 longjmp(catchStack.envs[catchStack.cursor], 1);
8945 }
8946 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bytes");
8947 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__literal, 204);
8948 fatal_exit(1);
8949 }
8950 var13 = var15;
8951 RET_LABEL14:(void)0;
8952 }
8953 }
8954 {
8955 { /* Inline bytes$Bytes$length (var13) on <var13:Bytes> */
8956 var18 = var13->attrs[COLOR_core__bytes__Bytes___length].l; /* _length on <var13:Bytes> */
8957 var16 = var18;
8958 RET_LABEL17:(void)0;
8959 }
8960 }
8961 {
8962 var19 = nitc___nitc__AbstractCompilerVisitor___c_string_instance(var_v, var10, var16);
8963 }
8964 var_ns = var19;
8965 {
8966 { /* Inline literal$AStringFormExpr$bytes (self) on <self:AStringExpr> */
8967 var22 = self->attrs[COLOR_nitc__literal__AStringFormExpr___bytes].val; /* _bytes on <self:AStringExpr> */
8968 if (unlikely(var22 == NULL)) {
8969 if(catchStack.cursor >= 0){
8970 longjmp(catchStack.envs[catchStack.cursor], 1);
8971 }
8972 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bytes");
8973 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__literal, 204);
8974 fatal_exit(1);
8975 }
8976 var20 = var22;
8977 RET_LABEL21:(void)0;
8978 }
8979 }
8980 {
8981 { /* Inline bytes$Bytes$length (var20) on <var20:Bytes> */
8982 var25 = var20->attrs[COLOR_core__bytes__Bytes___length].l; /* _length on <var20:Bytes> */
8983 var23 = var25;
8984 RET_LABEL24:(void)0;
8985 }
8986 }
8987 {
8988 var26 = nitc___nitc__AbstractCompilerVisitor___int_instance(var_v, var23);
8989 }
8990 var_ln = var26;
8991 {
8992 { /* Inline typing$AugmentedStringFormExpr$to_bytes_with_copy (self) on <self:AStringExpr> */
8993 var29 = self->attrs[COLOR_nitc__typing__AugmentedStringFormExpr___to_bytes_with_copy].val; /* _to_bytes_with_copy on <self:AStringExpr> */
8994 var27 = var29;
8995 RET_LABEL28:(void)0;
8996 }
8997 }
8998 var_cs = var27;
8999 if (var_cs == NULL) {
9000 var30 = 0; /* is null */
9001 } else {
9002 var30 = 1; /* arg is null and recv is not */
9003 }
9004 if (0) {
9005 { /* Inline kernel$Object$!= (var_cs,((val*)NULL)) on <var_cs:nullable CallSite> */
9006 var_other = ((val*)NULL);
9007 {
9008 var33 = ((short int(*)(val* self, val* p0))(var_cs->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_cs, var_other); /* == on <var_cs:nullable CallSite(CallSite)>*/
9009 }
9010 var34 = !var33;
9011 var31 = var34;
9012 goto RET_LABEL32;
9013 RET_LABEL32:(void)0;
9014 }
9015 var30 = var31;
9016 }
9017 if (unlikely(!var30)) {
9018 if(catchStack.cursor >= 0){
9019 longjmp(catchStack.envs[catchStack.cursor], 1);
9020 }
9021 PRINT_ERROR("Runtime error: %s", "Assert failed");
9022 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3746);
9023 fatal_exit(1);
9024 }
9025 var35 = NEW_core__Array(&type_core__Array__nitc__RuntimeVariable);
9026 {
9027 core___core__Array___with_capacity(var35, 2l); /* Direct call array$Array$with_capacity on <var35:Array[RuntimeVariable]>*/
9028 }
9029 var_ = var35;
9030 {
9031 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var_ns); /* Direct call array$AbstractArray$push on <var_:Array[RuntimeVariable]>*/
9032 }
9033 {
9034 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var_ln); /* Direct call array$AbstractArray$push on <var_:Array[RuntimeVariable]>*/
9035 }
9036 {
9037 var36 = ((val*(*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var_cs, var_); /* compile_callsite on <var_v:AbstractCompilerVisitor>*/
9038 }
9039 var_res = var36;
9040 if (var_res == NULL) {
9041 var37 = 0; /* is null */
9042 } else {
9043 var37 = 1; /* arg is null and recv is not */
9044 }
9045 if (0) {
9046 { /* Inline kernel$Object$!= (var_res,((val*)NULL)) on <var_res:nullable RuntimeVariable> */
9047 var_other = ((val*)NULL);
9048 {
9049 var40 = ((short int(*)(val* self, val* p0))(var_res->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_res, var_other); /* == on <var_res:nullable RuntimeVariable(RuntimeVariable)>*/
9050 }
9051 var41 = !var40;
9052 var38 = var41;
9053 goto RET_LABEL39;
9054 RET_LABEL39:(void)0;
9055 }
9056 var37 = var38;
9057 }
9058 if (unlikely(!var37)) {
9059 if(catchStack.cursor >= 0){
9060 longjmp(catchStack.envs[catchStack.cursor], 1);
9061 }
9062 PRINT_ERROR("Runtime error: %s", "Assert failed");
9063 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3748);
9064 fatal_exit(1);
9065 }
9066 var_s = var_res;
9067 } else {
9068 {
9069 var42 = nitc___nitc__AugmentedStringFormExpr___is_re(self);
9070 }
9071 if (var42){
9072 {
9073 var43 = nitc__abstract_compiler___AugmentedStringFormExpr___make_re(self, var_v, var_s);
9074 }
9075 var_res44 = var43;
9076 if (var_res44 == NULL) {
9077 var45 = 0; /* is null */
9078 } else {
9079 var45 = 1; /* arg is null and recv is not */
9080 }
9081 if (0) {
9082 { /* Inline kernel$Object$!= (var_res44,((val*)NULL)) on <var_res44:nullable RuntimeVariable> */
9083 var_other = ((val*)NULL);
9084 {
9085 var48 = ((short int(*)(val* self, val* p0))(var_res44->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_res44, var_other); /* == on <var_res44:nullable RuntimeVariable(RuntimeVariable)>*/
9086 }
9087 var49 = !var48;
9088 var46 = var49;
9089 goto RET_LABEL47;
9090 RET_LABEL47:(void)0;
9091 }
9092 var45 = var46;
9093 }
9094 if (unlikely(!var45)) {
9095 if(catchStack.cursor >= 0){
9096 longjmp(catchStack.envs[catchStack.cursor], 1);
9097 }
9098 PRINT_ERROR("Runtime error: %s", "Assert failed");
9099 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3752);
9100 fatal_exit(1);
9101 }
9102 var_s = var_res44;
9103 } else {
9104 var50 = glob_sys;
9105 if (unlikely(varonce==NULL)) {
9106 var51 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
9107 if (likely(varonce52!=NULL)) {
9108 var53 = varonce52;
9109 } else {
9110 var54 = "Unimplemented prefix or suffix for ";
9111 var56 = (val*)(35l<<2|1);
9112 var57 = (val*)(35l<<2|1);
9113 var58 = (val*)((long)(0)<<2|3);
9114 var59 = (val*)((long)(0)<<2|3);
9115 var55 = core__flat___CString___to_s_unsafe(var54, var56, var57, var58, var59);
9116 var53 = var55;
9117 varonce52 = var53;
9118 }
9119 ((struct instance_core__NativeArray*)var51)->values[0]=var53;
9120 } else {
9121 var51 = varonce;
9122 varonce = NULL;
9123 }
9124 {
9125 var60 = ((val*(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Object__to_s]))(self); /* to_s on <self:AStringExpr>*/
9126 }
9127 ((struct instance_core__NativeArray*)var51)->values[1]=var60;
9128 {
9129 var61 = ((val*(*)(val* self))(var51->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var51); /* native_to_s on <var51:NativeArray[String]>*/
9130 }
9131 varonce = var51;
9132 {
9133 core__file___Sys___print(var50, var61); /* Direct call file$Sys$print on <var50:Sys>*/
9134 }
9135 if(catchStack.cursor >= 0){
9136 longjmp(catchStack.envs[catchStack.cursor], 1);
9137 }
9138 PRINT_ERROR("Runtime error: %s", "Aborted");
9139 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3756);
9140 fatal_exit(1);
9141 }
9142 }
9143 var = var_s;
9144 goto RET_LABEL;
9145 RET_LABEL:;
9146 return var;
9147 }