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