pep8analysis: add copyright info for viz.js
[nit.git] / c_src / abstract_compiler.sep.3.c
1 #include "abstract_compiler.sep.0.h"
2 /* method abstract_compiler#AInternMethPropdef#compile_to_c for (self: AInternMethPropdef, AbstractCompilerVisitor, MMethodDef, Array[RuntimeVariable]) */
3 void abstract_compiler__AInternMethPropdef__compile_to_c(val* self, val* p0, val* p1, val* p2) {
4 val* var_v /* var v: AbstractCompilerVisitor */;
5 val* var_mpropdef /* var mpropdef: MMethodDef */;
6 val* var_arguments /* var arguments: Array[RuntimeVariable] */;
7 val* var /* : MProperty */;
8 val* var1 /* : String */;
9 val* var_pname /* var pname: String */;
10 val* var2 /* : MClassDef */;
11 val* var3 /* : MClass */;
12 val* var4 /* : String */;
13 val* var_cname /* var cname: String */;
14 val* var5 /* : nullable MSignature */;
15 val* var6 /* : nullable MType */;
16 val* var_ret /* var ret: nullable MType */;
17 val* var7 /* : null */;
18 short int var8 /* : Bool */;
19 val* var9 /* : nullable Object */;
20 val* var10 /* : MType */;
21 short int var11 /* : Bool */;
22 static val* varonce;
23 val* var12 /* : String */;
24 char* var13 /* : NativeString */;
25 long var14 /* : Int */;
26 val* var15 /* : String */;
27 short int var16 /* : Bool */;
28 short int var_ /* var : Bool */;
29 static val* varonce17;
30 val* var18 /* : String */;
31 char* var19 /* : NativeString */;
32 long var20 /* : Int */;
33 val* var21 /* : String */;
34 short int var22 /* : Bool */;
35 static val* varonce23;
36 val* var24 /* : String */;
37 char* var25 /* : NativeString */;
38 long var26 /* : Int */;
39 val* var27 /* : String */;
40 short int var28 /* : Bool */;
41 static val* varonce29;
42 val* var30 /* : String */;
43 char* var31 /* : NativeString */;
44 long var32 /* : Int */;
45 val* var33 /* : String */;
46 short int var34 /* : Bool */;
47 static val* varonce35;
48 val* var36 /* : String */;
49 char* var37 /* : NativeString */;
50 long var38 /* : Int */;
51 val* var39 /* : String */;
52 val* var40 /* : nullable Object */;
53 static val* varonce41;
54 val* var42 /* : String */;
55 char* var43 /* : NativeString */;
56 long var44 /* : Int */;
57 val* var45 /* : String */;
58 val* var46 /* : Array[Object] */;
59 long var47 /* : Int */;
60 val* var48 /* : NativeArray[Object] */;
61 val* var49 /* : String */;
62 static val* varonce50;
63 val* var51 /* : String */;
64 char* var52 /* : NativeString */;
65 long var53 /* : Int */;
66 val* var54 /* : String */;
67 short int var55 /* : Bool */;
68 val* var56 /* : nullable Object */;
69 static val* varonce57;
70 val* var58 /* : String */;
71 char* var59 /* : NativeString */;
72 long var60 /* : Int */;
73 val* var61 /* : String */;
74 short int var62 /* : Bool */;
75 long var63 /* : Int */;
76 val* var64 /* : nullable Object */;
77 static val* varonce65;
78 val* var66 /* : String */;
79 char* var67 /* : NativeString */;
80 long var68 /* : Int */;
81 val* var69 /* : String */;
82 long var70 /* : Int */;
83 val* var71 /* : nullable Object */;
84 val* var72 /* : Array[Object] */;
85 long var73 /* : Int */;
86 val* var74 /* : NativeArray[Object] */;
87 val* var75 /* : String */;
88 val* var76 /* : RuntimeVariable */;
89 static val* varonce77;
90 val* var78 /* : String */;
91 char* var79 /* : NativeString */;
92 long var80 /* : Int */;
93 val* var81 /* : String */;
94 short int var82 /* : Bool */;
95 long var83 /* : Int */;
96 val* var84 /* : nullable Object */;
97 static val* varonce85;
98 val* var86 /* : String */;
99 char* var87 /* : NativeString */;
100 long var88 /* : Int */;
101 val* var89 /* : String */;
102 long var90 /* : Int */;
103 val* var91 /* : nullable Object */;
104 val* var92 /* : Array[Object] */;
105 long var93 /* : Int */;
106 val* var94 /* : NativeArray[Object] */;
107 val* var95 /* : String */;
108 val* var96 /* : RuntimeVariable */;
109 static val* varonce97;
110 val* var98 /* : String */;
111 char* var99 /* : NativeString */;
112 long var100 /* : Int */;
113 val* var101 /* : String */;
114 short int var102 /* : Bool */;
115 static val* varonce103;
116 val* var104 /* : String */;
117 char* var105 /* : NativeString */;
118 long var106 /* : Int */;
119 val* var107 /* : String */;
120 long var108 /* : Int */;
121 val* var109 /* : nullable Object */;
122 val* var110 /* : Array[Object] */;
123 long var111 /* : Int */;
124 val* var112 /* : NativeArray[Object] */;
125 val* var113 /* : String */;
126 val* var114 /* : RuntimeVariable */;
127 static val* varonce115;
128 val* var116 /* : String */;
129 char* var117 /* : NativeString */;
130 long var118 /* : Int */;
131 val* var119 /* : String */;
132 short int var120 /* : Bool */;
133 long var121 /* : Int */;
134 val* var122 /* : nullable Object */;
135 static val* varonce123;
136 val* var124 /* : String */;
137 char* var125 /* : NativeString */;
138 long var126 /* : Int */;
139 val* var127 /* : String */;
140 val* var128 /* : Array[Object] */;
141 long var129 /* : Int */;
142 val* var130 /* : NativeArray[Object] */;
143 val* var131 /* : String */;
144 val* var132 /* : RuntimeVariable */;
145 static val* varonce133;
146 val* var134 /* : String */;
147 char* var135 /* : NativeString */;
148 long var136 /* : Int */;
149 val* var137 /* : String */;
150 short int var138 /* : Bool */;
151 long var139 /* : Int */;
152 val* var140 /* : nullable Object */;
153 static val* varonce141;
154 val* var142 /* : String */;
155 char* var143 /* : NativeString */;
156 long var144 /* : Int */;
157 val* var145 /* : String */;
158 val* var146 /* : Array[Object] */;
159 long var147 /* : Int */;
160 val* var148 /* : NativeArray[Object] */;
161 val* var149 /* : String */;
162 val* var150 /* : RuntimeVariable */;
163 static val* varonce151;
164 val* var152 /* : String */;
165 char* var153 /* : NativeString */;
166 long var154 /* : Int */;
167 val* var155 /* : String */;
168 short int var156 /* : Bool */;
169 long var157 /* : Int */;
170 val* var158 /* : nullable Object */;
171 static val* varonce159;
172 val* var160 /* : String */;
173 char* var161 /* : NativeString */;
174 long var162 /* : Int */;
175 val* var163 /* : String */;
176 long var164 /* : Int */;
177 val* var165 /* : nullable Object */;
178 val* var166 /* : Array[Object] */;
179 long var167 /* : Int */;
180 val* var168 /* : NativeArray[Object] */;
181 val* var169 /* : String */;
182 val* var170 /* : RuntimeVariable */;
183 static val* varonce171;
184 val* var172 /* : String */;
185 char* var173 /* : NativeString */;
186 long var174 /* : Int */;
187 val* var175 /* : String */;
188 short int var176 /* : Bool */;
189 long var177 /* : Int */;
190 val* var178 /* : nullable Object */;
191 static val* varonce179;
192 val* var180 /* : String */;
193 char* var181 /* : NativeString */;
194 long var182 /* : Int */;
195 val* var183 /* : String */;
196 long var184 /* : Int */;
197 val* var185 /* : nullable Object */;
198 val* var186 /* : Array[Object] */;
199 long var187 /* : Int */;
200 val* var188 /* : NativeArray[Object] */;
201 val* var189 /* : String */;
202 val* var190 /* : RuntimeVariable */;
203 static val* varonce191;
204 val* var192 /* : String */;
205 char* var193 /* : NativeString */;
206 long var194 /* : Int */;
207 val* var195 /* : String */;
208 short int var196 /* : Bool */;
209 long var197 /* : Int */;
210 val* var198 /* : nullable Object */;
211 static val* varonce199;
212 val* var200 /* : String */;
213 char* var201 /* : NativeString */;
214 long var202 /* : Int */;
215 val* var203 /* : String */;
216 long var204 /* : Int */;
217 val* var205 /* : nullable Object */;
218 val* var206 /* : Array[Object] */;
219 long var207 /* : Int */;
220 val* var208 /* : NativeArray[Object] */;
221 val* var209 /* : String */;
222 val* var210 /* : RuntimeVariable */;
223 static val* varonce211;
224 val* var212 /* : String */;
225 char* var213 /* : NativeString */;
226 long var214 /* : Int */;
227 val* var215 /* : String */;
228 short int var216 /* : Bool */;
229 long var217 /* : Int */;
230 val* var218 /* : nullable Object */;
231 static val* varonce219;
232 val* var220 /* : String */;
233 char* var221 /* : NativeString */;
234 long var222 /* : Int */;
235 val* var223 /* : String */;
236 long var224 /* : Int */;
237 val* var225 /* : nullable Object */;
238 val* var226 /* : Array[Object] */;
239 long var227 /* : Int */;
240 val* var228 /* : NativeArray[Object] */;
241 val* var229 /* : String */;
242 val* var230 /* : RuntimeVariable */;
243 static val* varonce231;
244 val* var232 /* : String */;
245 char* var233 /* : NativeString */;
246 long var234 /* : Int */;
247 val* var235 /* : String */;
248 short int var236 /* : Bool */;
249 long var237 /* : Int */;
250 val* var238 /* : nullable Object */;
251 static val* varonce239;
252 val* var240 /* : String */;
253 char* var241 /* : NativeString */;
254 long var242 /* : Int */;
255 val* var243 /* : String */;
256 long var244 /* : Int */;
257 val* var245 /* : nullable Object */;
258 val* var246 /* : Array[Object] */;
259 long var247 /* : Int */;
260 val* var248 /* : NativeArray[Object] */;
261 val* var249 /* : String */;
262 val* var250 /* : RuntimeVariable */;
263 static val* varonce251;
264 val* var252 /* : String */;
265 char* var253 /* : NativeString */;
266 long var254 /* : Int */;
267 val* var255 /* : String */;
268 short int var256 /* : Bool */;
269 long var257 /* : Int */;
270 val* var258 /* : nullable Object */;
271 long var259 /* : Int */;
272 val* var260 /* : nullable Object */;
273 val* var261 /* : RuntimeVariable */;
274 static val* varonce262;
275 val* var263 /* : String */;
276 char* var264 /* : NativeString */;
277 long var265 /* : Int */;
278 val* var266 /* : String */;
279 short int var267 /* : Bool */;
280 long var268 /* : Int */;
281 val* var269 /* : nullable Object */;
282 long var270 /* : Int */;
283 val* var271 /* : nullable Object */;
284 val* var272 /* : RuntimeVariable */;
285 val* var_res /* var res: RuntimeVariable */;
286 static val* varonce273;
287 val* var274 /* : String */;
288 char* var275 /* : NativeString */;
289 long var276 /* : Int */;
290 val* var277 /* : String */;
291 val* var278 /* : Array[Object] */;
292 long var279 /* : Int */;
293 val* var280 /* : NativeArray[Object] */;
294 val* var281 /* : String */;
295 val* var282 /* : RuntimeVariable */;
296 static val* varonce283;
297 val* var284 /* : String */;
298 char* var285 /* : NativeString */;
299 long var286 /* : Int */;
300 val* var287 /* : String */;
301 short int var288 /* : Bool */;
302 long var289 /* : Int */;
303 val* var290 /* : nullable Object */;
304 static val* varonce291;
305 val* var292 /* : String */;
306 char* var293 /* : NativeString */;
307 long var294 /* : Int */;
308 val* var295 /* : String */;
309 long var296 /* : Int */;
310 val* var297 /* : nullable Object */;
311 val* var298 /* : Array[Object] */;
312 long var299 /* : Int */;
313 val* var300 /* : NativeArray[Object] */;
314 val* var301 /* : String */;
315 val* var302 /* : RuntimeVariable */;
316 static val* varonce303;
317 val* var304 /* : String */;
318 char* var305 /* : NativeString */;
319 long var306 /* : Int */;
320 val* var307 /* : String */;
321 short int var308 /* : Bool */;
322 long var309 /* : Int */;
323 val* var310 /* : nullable Object */;
324 static val* varonce311;
325 val* var312 /* : String */;
326 char* var313 /* : NativeString */;
327 long var314 /* : Int */;
328 val* var315 /* : String */;
329 long var316 /* : Int */;
330 val* var317 /* : nullable Object */;
331 val* var318 /* : Array[Object] */;
332 long var319 /* : Int */;
333 val* var320 /* : NativeArray[Object] */;
334 val* var321 /* : String */;
335 val* var322 /* : RuntimeVariable */;
336 static val* varonce323;
337 val* var324 /* : String */;
338 char* var325 /* : NativeString */;
339 long var326 /* : Int */;
340 val* var327 /* : String */;
341 short int var328 /* : Bool */;
342 long var329 /* : Int */;
343 val* var330 /* : nullable Object */;
344 static val* varonce331;
345 val* var332 /* : String */;
346 char* var333 /* : NativeString */;
347 long var334 /* : Int */;
348 val* var335 /* : String */;
349 long var336 /* : Int */;
350 val* var337 /* : nullable Object */;
351 val* var338 /* : Array[Object] */;
352 long var339 /* : Int */;
353 val* var340 /* : NativeArray[Object] */;
354 val* var341 /* : String */;
355 val* var342 /* : RuntimeVariable */;
356 static val* varonce343;
357 val* var344 /* : String */;
358 char* var345 /* : NativeString */;
359 long var346 /* : Int */;
360 val* var347 /* : String */;
361 short int var348 /* : Bool */;
362 long var349 /* : Int */;
363 val* var350 /* : nullable Object */;
364 static val* varonce351;
365 val* var352 /* : String */;
366 char* var353 /* : NativeString */;
367 long var354 /* : Int */;
368 val* var355 /* : String */;
369 long var356 /* : Int */;
370 val* var357 /* : nullable Object */;
371 val* var358 /* : Array[Object] */;
372 long var359 /* : Int */;
373 val* var360 /* : NativeArray[Object] */;
374 val* var361 /* : String */;
375 val* var362 /* : RuntimeVariable */;
376 static val* varonce363;
377 val* var364 /* : String */;
378 char* var365 /* : NativeString */;
379 long var366 /* : Int */;
380 val* var367 /* : String */;
381 short int var368 /* : Bool */;
382 static val* varonce369;
383 val* var370 /* : String */;
384 char* var371 /* : NativeString */;
385 long var372 /* : Int */;
386 val* var373 /* : String */;
387 long var374 /* : Int */;
388 val* var375 /* : nullable Object */;
389 val* var376 /* : Array[Object] */;
390 long var377 /* : Int */;
391 val* var378 /* : NativeArray[Object] */;
392 val* var379 /* : String */;
393 val* var380 /* : RuntimeVariable */;
394 static val* varonce381;
395 val* var382 /* : String */;
396 char* var383 /* : NativeString */;
397 long var384 /* : Int */;
398 val* var385 /* : String */;
399 short int var386 /* : Bool */;
400 long var387 /* : Int */;
401 val* var388 /* : nullable Object */;
402 val* var389 /* : Array[Object] */;
403 long var390 /* : Int */;
404 val* var391 /* : NativeArray[Object] */;
405 val* var392 /* : String */;
406 val* var393 /* : RuntimeVariable */;
407 static val* varonce394;
408 val* var395 /* : String */;
409 char* var396 /* : NativeString */;
410 long var397 /* : Int */;
411 val* var398 /* : String */;
412 short int var399 /* : Bool */;
413 static val* varonce400;
414 val* var401 /* : String */;
415 char* var402 /* : NativeString */;
416 long var403 /* : Int */;
417 val* var404 /* : String */;
418 short int var405 /* : Bool */;
419 static val* varonce406;
420 val* var407 /* : String */;
421 char* var408 /* : NativeString */;
422 long var409 /* : Int */;
423 val* var410 /* : String */;
424 val* var411 /* : nullable Object */;
425 static val* varonce412;
426 val* var413 /* : String */;
427 char* var414 /* : NativeString */;
428 long var415 /* : Int */;
429 val* var416 /* : String */;
430 val* var417 /* : Array[Object] */;
431 long var418 /* : Int */;
432 val* var419 /* : NativeArray[Object] */;
433 val* var420 /* : String */;
434 static val* varonce421;
435 val* var422 /* : String */;
436 char* var423 /* : NativeString */;
437 long var424 /* : Int */;
438 val* var425 /* : String */;
439 short int var426 /* : Bool */;
440 static val* varonce427;
441 val* var428 /* : String */;
442 char* var429 /* : NativeString */;
443 long var430 /* : Int */;
444 val* var431 /* : String */;
445 val* var432 /* : nullable Object */;
446 val* var433 /* : Array[Object] */;
447 long var434 /* : Int */;
448 val* var435 /* : NativeArray[Object] */;
449 val* var436 /* : String */;
450 val* var437 /* : RuntimeVariable */;
451 static val* varonce438;
452 val* var439 /* : String */;
453 char* var440 /* : NativeString */;
454 long var441 /* : Int */;
455 val* var442 /* : String */;
456 short int var443 /* : Bool */;
457 long var444 /* : Int */;
458 val* var445 /* : nullable Object */;
459 static val* varonce446;
460 val* var447 /* : String */;
461 char* var448 /* : NativeString */;
462 long var449 /* : Int */;
463 val* var450 /* : String */;
464 long var451 /* : Int */;
465 val* var452 /* : nullable Object */;
466 val* var453 /* : Array[Object] */;
467 long var454 /* : Int */;
468 val* var455 /* : NativeArray[Object] */;
469 val* var456 /* : String */;
470 val* var457 /* : RuntimeVariable */;
471 static val* varonce458;
472 val* var459 /* : String */;
473 char* var460 /* : NativeString */;
474 long var461 /* : Int */;
475 val* var462 /* : String */;
476 short int var463 /* : Bool */;
477 long var464 /* : Int */;
478 val* var465 /* : nullable Object */;
479 static val* varonce466;
480 val* var467 /* : String */;
481 char* var468 /* : NativeString */;
482 long var469 /* : Int */;
483 val* var470 /* : String */;
484 long var471 /* : Int */;
485 val* var472 /* : nullable Object */;
486 val* var473 /* : Array[Object] */;
487 long var474 /* : Int */;
488 val* var475 /* : NativeArray[Object] */;
489 val* var476 /* : String */;
490 val* var477 /* : RuntimeVariable */;
491 static val* varonce478;
492 val* var479 /* : String */;
493 char* var480 /* : NativeString */;
494 long var481 /* : Int */;
495 val* var482 /* : String */;
496 short int var483 /* : Bool */;
497 long var484 /* : Int */;
498 val* var485 /* : nullable Object */;
499 static val* varonce486;
500 val* var487 /* : String */;
501 char* var488 /* : NativeString */;
502 long var489 /* : Int */;
503 val* var490 /* : String */;
504 long var491 /* : Int */;
505 val* var492 /* : nullable Object */;
506 val* var493 /* : Array[Object] */;
507 long var494 /* : Int */;
508 val* var495 /* : NativeArray[Object] */;
509 val* var496 /* : String */;
510 val* var497 /* : RuntimeVariable */;
511 static val* varonce498;
512 val* var499 /* : String */;
513 char* var500 /* : NativeString */;
514 long var501 /* : Int */;
515 val* var502 /* : String */;
516 short int var503 /* : Bool */;
517 long var504 /* : Int */;
518 val* var505 /* : nullable Object */;
519 static val* varonce506;
520 val* var507 /* : String */;
521 char* var508 /* : NativeString */;
522 long var509 /* : Int */;
523 val* var510 /* : String */;
524 long var511 /* : Int */;
525 val* var512 /* : nullable Object */;
526 val* var513 /* : Array[Object] */;
527 long var514 /* : Int */;
528 val* var515 /* : NativeArray[Object] */;
529 val* var516 /* : String */;
530 val* var517 /* : RuntimeVariable */;
531 static val* varonce518;
532 val* var519 /* : String */;
533 char* var520 /* : NativeString */;
534 long var521 /* : Int */;
535 val* var522 /* : String */;
536 short int var523 /* : Bool */;
537 long var524 /* : Int */;
538 val* var525 /* : nullable Object */;
539 long var526 /* : Int */;
540 val* var527 /* : nullable Object */;
541 val* var528 /* : RuntimeVariable */;
542 static val* varonce529;
543 val* var530 /* : String */;
544 char* var531 /* : NativeString */;
545 long var532 /* : Int */;
546 val* var533 /* : String */;
547 short int var534 /* : Bool */;
548 long var535 /* : Int */;
549 val* var536 /* : nullable Object */;
550 long var537 /* : Int */;
551 val* var538 /* : nullable Object */;
552 val* var539 /* : RuntimeVariable */;
553 val* var_res540 /* var res: RuntimeVariable */;
554 static val* varonce541;
555 val* var542 /* : String */;
556 char* var543 /* : NativeString */;
557 long var544 /* : Int */;
558 val* var545 /* : String */;
559 val* var546 /* : Array[Object] */;
560 long var547 /* : Int */;
561 val* var548 /* : NativeArray[Object] */;
562 val* var549 /* : String */;
563 val* var550 /* : RuntimeVariable */;
564 static val* varonce551;
565 val* var552 /* : String */;
566 char* var553 /* : NativeString */;
567 long var554 /* : Int */;
568 val* var555 /* : String */;
569 short int var556 /* : Bool */;
570 long var557 /* : Int */;
571 val* var558 /* : nullable Object */;
572 static val* varonce559;
573 val* var560 /* : String */;
574 char* var561 /* : NativeString */;
575 long var562 /* : Int */;
576 val* var563 /* : String */;
577 val* var564 /* : Array[Object] */;
578 long var565 /* : Int */;
579 val* var566 /* : NativeArray[Object] */;
580 val* var567 /* : String */;
581 val* var568 /* : RuntimeVariable */;
582 static val* varonce569;
583 val* var570 /* : String */;
584 char* var571 /* : NativeString */;
585 long var572 /* : Int */;
586 val* var573 /* : String */;
587 short int var574 /* : Bool */;
588 long var575 /* : Int */;
589 val* var576 /* : nullable Object */;
590 static val* varonce577;
591 val* var578 /* : String */;
592 char* var579 /* : NativeString */;
593 long var580 /* : Int */;
594 val* var581 /* : String */;
595 val* var582 /* : Array[Object] */;
596 long var583 /* : Int */;
597 val* var584 /* : NativeArray[Object] */;
598 val* var585 /* : String */;
599 val* var586 /* : RuntimeVariable */;
600 static val* varonce587;
601 val* var588 /* : String */;
602 char* var589 /* : NativeString */;
603 long var590 /* : Int */;
604 val* var591 /* : String */;
605 short int var592 /* : Bool */;
606 long var593 /* : Int */;
607 val* var594 /* : nullable Object */;
608 static val* varonce595;
609 val* var596 /* : String */;
610 char* var597 /* : NativeString */;
611 long var598 /* : Int */;
612 val* var599 /* : String */;
613 long var600 /* : Int */;
614 val* var601 /* : nullable Object */;
615 val* var602 /* : Array[Object] */;
616 long var603 /* : Int */;
617 val* var604 /* : NativeArray[Object] */;
618 val* var605 /* : String */;
619 val* var606 /* : RuntimeVariable */;
620 static val* varonce607;
621 val* var608 /* : String */;
622 char* var609 /* : NativeString */;
623 long var610 /* : Int */;
624 val* var611 /* : String */;
625 short int var612 /* : Bool */;
626 long var613 /* : Int */;
627 val* var614 /* : nullable Object */;
628 static val* varonce615;
629 val* var616 /* : String */;
630 char* var617 /* : NativeString */;
631 long var618 /* : Int */;
632 val* var619 /* : String */;
633 long var620 /* : Int */;
634 val* var621 /* : nullable Object */;
635 val* var622 /* : Array[Object] */;
636 long var623 /* : Int */;
637 val* var624 /* : NativeArray[Object] */;
638 val* var625 /* : String */;
639 val* var626 /* : RuntimeVariable */;
640 static val* varonce627;
641 val* var628 /* : String */;
642 char* var629 /* : NativeString */;
643 long var630 /* : Int */;
644 val* var631 /* : String */;
645 short int var632 /* : Bool */;
646 long var633 /* : Int */;
647 val* var634 /* : nullable Object */;
648 static val* varonce635;
649 val* var636 /* : String */;
650 char* var637 /* : NativeString */;
651 long var638 /* : Int */;
652 val* var639 /* : String */;
653 long var640 /* : Int */;
654 val* var641 /* : nullable Object */;
655 val* var642 /* : Array[Object] */;
656 long var643 /* : Int */;
657 val* var644 /* : NativeArray[Object] */;
658 val* var645 /* : String */;
659 val* var646 /* : RuntimeVariable */;
660 static val* varonce647;
661 val* var648 /* : String */;
662 char* var649 /* : NativeString */;
663 long var650 /* : Int */;
664 val* var651 /* : String */;
665 short int var652 /* : Bool */;
666 long var653 /* : Int */;
667 val* var654 /* : nullable Object */;
668 static val* varonce655;
669 val* var656 /* : String */;
670 char* var657 /* : NativeString */;
671 long var658 /* : Int */;
672 val* var659 /* : String */;
673 long var660 /* : Int */;
674 val* var661 /* : nullable Object */;
675 val* var662 /* : Array[Object] */;
676 long var663 /* : Int */;
677 val* var664 /* : NativeArray[Object] */;
678 val* var665 /* : String */;
679 val* var666 /* : RuntimeVariable */;
680 static val* varonce667;
681 val* var668 /* : String */;
682 char* var669 /* : NativeString */;
683 long var670 /* : Int */;
684 val* var671 /* : String */;
685 short int var672 /* : Bool */;
686 long var673 /* : Int */;
687 val* var674 /* : nullable Object */;
688 static val* varonce675;
689 val* var676 /* : String */;
690 char* var677 /* : NativeString */;
691 long var678 /* : Int */;
692 val* var679 /* : String */;
693 val* var680 /* : Array[Object] */;
694 long var681 /* : Int */;
695 val* var682 /* : NativeArray[Object] */;
696 val* var683 /* : String */;
697 val* var684 /* : RuntimeVariable */;
698 static val* varonce685;
699 val* var686 /* : String */;
700 char* var687 /* : NativeString */;
701 long var688 /* : Int */;
702 val* var689 /* : String */;
703 short int var690 /* : Bool */;
704 static val* varonce691;
705 val* var692 /* : String */;
706 char* var693 /* : NativeString */;
707 long var694 /* : Int */;
708 val* var695 /* : String */;
709 long var696 /* : Int */;
710 val* var697 /* : nullable Object */;
711 val* var698 /* : Array[Object] */;
712 long var699 /* : Int */;
713 val* var700 /* : NativeArray[Object] */;
714 val* var701 /* : String */;
715 val* var702 /* : RuntimeVariable */;
716 static val* varonce703;
717 val* var704 /* : String */;
718 char* var705 /* : NativeString */;
719 long var706 /* : Int */;
720 val* var707 /* : String */;
721 short int var708 /* : Bool */;
722 static val* varonce709;
723 val* var710 /* : String */;
724 char* var711 /* : NativeString */;
725 long var712 /* : Int */;
726 val* var713 /* : String */;
727 short int var714 /* : Bool */;
728 static val* varonce715;
729 val* var716 /* : String */;
730 char* var717 /* : NativeString */;
731 long var718 /* : Int */;
732 val* var719 /* : String */;
733 val* var720 /* : nullable Object */;
734 static val* varonce721;
735 val* var722 /* : String */;
736 char* var723 /* : NativeString */;
737 long var724 /* : Int */;
738 val* var725 /* : String */;
739 val* var726 /* : Array[Object] */;
740 long var727 /* : Int */;
741 val* var728 /* : NativeArray[Object] */;
742 val* var729 /* : String */;
743 static val* varonce730;
744 val* var731 /* : String */;
745 char* var732 /* : NativeString */;
746 long var733 /* : Int */;
747 val* var734 /* : String */;
748 short int var735 /* : Bool */;
749 static val* varonce736;
750 val* var737 /* : String */;
751 char* var738 /* : NativeString */;
752 long var739 /* : Int */;
753 val* var740 /* : String */;
754 val* var741 /* : nullable Object */;
755 val* var742 /* : Array[Object] */;
756 long var743 /* : Int */;
757 val* var744 /* : NativeArray[Object] */;
758 val* var745 /* : String */;
759 val* var746 /* : RuntimeVariable */;
760 static val* varonce747;
761 val* var748 /* : String */;
762 char* var749 /* : NativeString */;
763 long var750 /* : Int */;
764 val* var751 /* : String */;
765 short int var752 /* : Bool */;
766 long var753 /* : Int */;
767 val* var754 /* : nullable Object */;
768 long var755 /* : Int */;
769 val* var756 /* : nullable Object */;
770 val* var757 /* : RuntimeVariable */;
771 static val* varonce758;
772 val* var759 /* : String */;
773 char* var760 /* : NativeString */;
774 long var761 /* : Int */;
775 val* var762 /* : String */;
776 short int var763 /* : Bool */;
777 long var764 /* : Int */;
778 val* var765 /* : nullable Object */;
779 long var766 /* : Int */;
780 val* var767 /* : nullable Object */;
781 val* var768 /* : RuntimeVariable */;
782 val* var_res769 /* var res: RuntimeVariable */;
783 static val* varonce770;
784 val* var771 /* : String */;
785 char* var772 /* : NativeString */;
786 long var773 /* : Int */;
787 val* var774 /* : String */;
788 val* var775 /* : Array[Object] */;
789 long var776 /* : Int */;
790 val* var777 /* : NativeArray[Object] */;
791 val* var778 /* : String */;
792 val* var779 /* : RuntimeVariable */;
793 static val* varonce780;
794 val* var781 /* : String */;
795 char* var782 /* : NativeString */;
796 long var783 /* : Int */;
797 val* var784 /* : String */;
798 short int var785 /* : Bool */;
799 static val* varonce786;
800 val* var787 /* : String */;
801 char* var788 /* : NativeString */;
802 long var789 /* : Int */;
803 val* var790 /* : String */;
804 short int var791 /* : Bool */;
805 static val* varonce792;
806 val* var793 /* : String */;
807 char* var794 /* : NativeString */;
808 long var795 /* : Int */;
809 val* var796 /* : String */;
810 val* var797 /* : nullable Object */;
811 static val* varonce798;
812 val* var799 /* : String */;
813 char* var800 /* : NativeString */;
814 long var801 /* : Int */;
815 val* var802 /* : String */;
816 val* var803 /* : Array[Object] */;
817 long var804 /* : Int */;
818 val* var805 /* : NativeArray[Object] */;
819 val* var806 /* : String */;
820 static val* varonce807;
821 val* var808 /* : String */;
822 char* var809 /* : NativeString */;
823 long var810 /* : Int */;
824 val* var811 /* : String */;
825 short int var812 /* : Bool */;
826 static val* varonce813;
827 val* var814 /* : String */;
828 char* var815 /* : NativeString */;
829 long var816 /* : Int */;
830 val* var817 /* : String */;
831 val* var818 /* : nullable Object */;
832 val* var819 /* : Array[Object] */;
833 long var820 /* : Int */;
834 val* var821 /* : NativeArray[Object] */;
835 val* var822 /* : String */;
836 val* var823 /* : RuntimeVariable */;
837 static val* varonce824;
838 val* var825 /* : String */;
839 char* var826 /* : NativeString */;
840 long var827 /* : Int */;
841 val* var828 /* : String */;
842 short int var829 /* : Bool */;
843 long var830 /* : Int */;
844 val* var831 /* : nullable Object */;
845 static val* varonce832;
846 val* var833 /* : String */;
847 char* var834 /* : NativeString */;
848 long var835 /* : Int */;
849 val* var836 /* : String */;
850 long var837 /* : Int */;
851 val* var838 /* : nullable Object */;
852 val* var839 /* : Array[Object] */;
853 long var840 /* : Int */;
854 val* var841 /* : NativeArray[Object] */;
855 val* var842 /* : String */;
856 val* var843 /* : RuntimeVariable */;
857 static val* varonce844;
858 val* var845 /* : String */;
859 char* var846 /* : NativeString */;
860 long var847 /* : Int */;
861 val* var848 /* : String */;
862 short int var849 /* : Bool */;
863 long var850 /* : Int */;
864 val* var851 /* : nullable Object */;
865 static val* varonce852;
866 val* var853 /* : String */;
867 char* var854 /* : NativeString */;
868 long var855 /* : Int */;
869 val* var856 /* : String */;
870 long var857 /* : Int */;
871 val* var858 /* : nullable Object */;
872 val* var859 /* : Array[Object] */;
873 long var860 /* : Int */;
874 val* var861 /* : NativeArray[Object] */;
875 val* var862 /* : String */;
876 val* var863 /* : RuntimeVariable */;
877 static val* varonce864;
878 val* var865 /* : String */;
879 char* var866 /* : NativeString */;
880 long var867 /* : Int */;
881 val* var868 /* : String */;
882 short int var869 /* : Bool */;
883 static val* varonce870;
884 val* var871 /* : String */;
885 char* var872 /* : NativeString */;
886 long var873 /* : Int */;
887 val* var874 /* : String */;
888 long var875 /* : Int */;
889 val* var876 /* : nullable Object */;
890 val* var877 /* : Array[Object] */;
891 long var878 /* : Int */;
892 val* var879 /* : NativeArray[Object] */;
893 val* var880 /* : String */;
894 val* var881 /* : RuntimeVariable */;
895 static val* varonce882;
896 val* var883 /* : String */;
897 char* var884 /* : NativeString */;
898 long var885 /* : Int */;
899 val* var886 /* : String */;
900 short int var887 /* : Bool */;
901 long var888 /* : Int */;
902 val* var889 /* : nullable Object */;
903 static val* varonce890;
904 val* var891 /* : String */;
905 char* var892 /* : NativeString */;
906 long var893 /* : Int */;
907 val* var894 /* : String */;
908 val* var895 /* : Array[Object] */;
909 long var896 /* : Int */;
910 val* var897 /* : NativeArray[Object] */;
911 val* var898 /* : String */;
912 val* var899 /* : RuntimeVariable */;
913 static val* varonce900;
914 val* var901 /* : String */;
915 char* var902 /* : NativeString */;
916 long var903 /* : Int */;
917 val* var904 /* : String */;
918 short int var905 /* : Bool */;
919 long var906 /* : Int */;
920 val* var907 /* : nullable Object */;
921 static val* varonce908;
922 val* var909 /* : String */;
923 char* var910 /* : NativeString */;
924 long var911 /* : Int */;
925 val* var912 /* : String */;
926 val* var913 /* : Array[Object] */;
927 long var914 /* : Int */;
928 val* var915 /* : NativeArray[Object] */;
929 val* var916 /* : String */;
930 val* var917 /* : RuntimeVariable */;
931 static val* varonce918;
932 val* var919 /* : String */;
933 char* var920 /* : NativeString */;
934 long var921 /* : Int */;
935 val* var922 /* : String */;
936 short int var923 /* : Bool */;
937 long var924 /* : Int */;
938 val* var925 /* : nullable Object */;
939 static val* varonce926;
940 val* var927 /* : String */;
941 char* var928 /* : NativeString */;
942 long var929 /* : Int */;
943 val* var930 /* : String */;
944 long var931 /* : Int */;
945 val* var932 /* : nullable Object */;
946 val* var933 /* : Array[Object] */;
947 long var934 /* : Int */;
948 val* var935 /* : NativeArray[Object] */;
949 val* var936 /* : String */;
950 val* var937 /* : RuntimeVariable */;
951 static val* varonce938;
952 val* var939 /* : String */;
953 char* var940 /* : NativeString */;
954 long var941 /* : Int */;
955 val* var942 /* : String */;
956 short int var943 /* : Bool */;
957 long var944 /* : Int */;
958 val* var945 /* : nullable Object */;
959 static val* varonce946;
960 val* var947 /* : String */;
961 char* var948 /* : NativeString */;
962 long var949 /* : Int */;
963 val* var950 /* : String */;
964 long var951 /* : Int */;
965 val* var952 /* : nullable Object */;
966 val* var953 /* : Array[Object] */;
967 long var954 /* : Int */;
968 val* var955 /* : NativeArray[Object] */;
969 val* var956 /* : String */;
970 val* var957 /* : RuntimeVariable */;
971 static val* varonce958;
972 val* var959 /* : String */;
973 char* var960 /* : NativeString */;
974 long var961 /* : Int */;
975 val* var962 /* : String */;
976 short int var963 /* : Bool */;
977 long var964 /* : Int */;
978 val* var965 /* : nullable Object */;
979 long var966 /* : Int */;
980 val* var967 /* : nullable Object */;
981 val* var968 /* : RuntimeVariable */;
982 static val* varonce969;
983 val* var970 /* : String */;
984 char* var971 /* : NativeString */;
985 long var972 /* : Int */;
986 val* var973 /* : String */;
987 short int var974 /* : Bool */;
988 long var975 /* : Int */;
989 val* var976 /* : nullable Object */;
990 long var977 /* : Int */;
991 val* var978 /* : nullable Object */;
992 val* var979 /* : RuntimeVariable */;
993 val* var_res980 /* var res: RuntimeVariable */;
994 static val* varonce981;
995 val* var982 /* : String */;
996 char* var983 /* : NativeString */;
997 long var984 /* : Int */;
998 val* var985 /* : String */;
999 val* var986 /* : Array[Object] */;
1000 long var987 /* : Int */;
1001 val* var988 /* : NativeArray[Object] */;
1002 val* var989 /* : String */;
1003 val* var990 /* : RuntimeVariable */;
1004 static val* varonce991;
1005 val* var992 /* : String */;
1006 char* var993 /* : NativeString */;
1007 long var994 /* : Int */;
1008 val* var995 /* : String */;
1009 short int var996 /* : Bool */;
1010 long var997 /* : Int */;
1011 val* var998 /* : nullable Object */;
1012 static val* varonce999;
1013 val* var1000 /* : String */;
1014 char* var1001 /* : NativeString */;
1015 long var1002 /* : Int */;
1016 val* var1003 /* : String */;
1017 long var1004 /* : Int */;
1018 val* var1005 /* : nullable Object */;
1019 val* var1006 /* : Array[Object] */;
1020 long var1007 /* : Int */;
1021 val* var1008 /* : NativeArray[Object] */;
1022 val* var1009 /* : String */;
1023 val* var1010 /* : RuntimeVariable */;
1024 static val* varonce1011;
1025 val* var1012 /* : String */;
1026 char* var1013 /* : NativeString */;
1027 long var1014 /* : Int */;
1028 val* var1015 /* : String */;
1029 short int var1016 /* : Bool */;
1030 long var1017 /* : Int */;
1031 val* var1018 /* : nullable Object */;
1032 static val* varonce1019;
1033 val* var1020 /* : String */;
1034 char* var1021 /* : NativeString */;
1035 long var1022 /* : Int */;
1036 val* var1023 /* : String */;
1037 long var1024 /* : Int */;
1038 val* var1025 /* : nullable Object */;
1039 val* var1026 /* : Array[Object] */;
1040 long var1027 /* : Int */;
1041 val* var1028 /* : NativeArray[Object] */;
1042 val* var1029 /* : String */;
1043 val* var1030 /* : RuntimeVariable */;
1044 static val* varonce1031;
1045 val* var1032 /* : String */;
1046 char* var1033 /* : NativeString */;
1047 long var1034 /* : Int */;
1048 val* var1035 /* : String */;
1049 short int var1036 /* : Bool */;
1050 long var1037 /* : Int */;
1051 val* var1038 /* : nullable Object */;
1052 static val* varonce1039;
1053 val* var1040 /* : String */;
1054 char* var1041 /* : NativeString */;
1055 long var1042 /* : Int */;
1056 val* var1043 /* : String */;
1057 long var1044 /* : Int */;
1058 val* var1045 /* : nullable Object */;
1059 val* var1046 /* : Array[Object] */;
1060 long var1047 /* : Int */;
1061 val* var1048 /* : NativeArray[Object] */;
1062 val* var1049 /* : String */;
1063 val* var1050 /* : RuntimeVariable */;
1064 static val* varonce1051;
1065 val* var1052 /* : String */;
1066 char* var1053 /* : NativeString */;
1067 long var1054 /* : Int */;
1068 val* var1055 /* : String */;
1069 short int var1056 /* : Bool */;
1070 long var1057 /* : Int */;
1071 val* var1058 /* : nullable Object */;
1072 static val* varonce1059;
1073 val* var1060 /* : String */;
1074 char* var1061 /* : NativeString */;
1075 long var1062 /* : Int */;
1076 val* var1063 /* : String */;
1077 long var1064 /* : Int */;
1078 val* var1065 /* : nullable Object */;
1079 val* var1066 /* : Array[Object] */;
1080 long var1067 /* : Int */;
1081 val* var1068 /* : NativeArray[Object] */;
1082 val* var1069 /* : String */;
1083 val* var1070 /* : RuntimeVariable */;
1084 static val* varonce1071;
1085 val* var1072 /* : String */;
1086 char* var1073 /* : NativeString */;
1087 long var1074 /* : Int */;
1088 val* var1075 /* : String */;
1089 short int var1076 /* : Bool */;
1090 static val* varonce1077;
1091 val* var1078 /* : String */;
1092 char* var1079 /* : NativeString */;
1093 long var1080 /* : Int */;
1094 val* var1081 /* : String */;
1095 long var1082 /* : Int */;
1096 val* var1083 /* : nullable Object */;
1097 val* var1084 /* : Array[Object] */;
1098 long var1085 /* : Int */;
1099 val* var1086 /* : NativeArray[Object] */;
1100 val* var1087 /* : String */;
1101 val* var1088 /* : RuntimeVariable */;
1102 static val* varonce1089;
1103 val* var1090 /* : String */;
1104 char* var1091 /* : NativeString */;
1105 long var1092 /* : Int */;
1106 val* var1093 /* : String */;
1107 short int var1094 /* : Bool */;
1108 static val* varonce1095;
1109 val* var1096 /* : String */;
1110 char* var1097 /* : NativeString */;
1111 long var1098 /* : Int */;
1112 val* var1099 /* : String */;
1113 short int var1100 /* : Bool */;
1114 long var1101 /* : Int */;
1115 val* var1102 /* : nullable Object */;
1116 static val* varonce1103;
1117 val* var1104 /* : String */;
1118 char* var1105 /* : NativeString */;
1119 long var1106 /* : Int */;
1120 val* var1107 /* : String */;
1121 long var1108 /* : Int */;
1122 val* var1109 /* : nullable Object */;
1123 static val* varonce1110;
1124 val* var1111 /* : String */;
1125 char* var1112 /* : NativeString */;
1126 long var1113 /* : Int */;
1127 val* var1114 /* : String */;
1128 val* var1115 /* : Array[Object] */;
1129 long var1116 /* : Int */;
1130 val* var1117 /* : NativeArray[Object] */;
1131 val* var1118 /* : String */;
1132 val* var1119 /* : RuntimeVariable */;
1133 static val* varonce1120;
1134 val* var1121 /* : String */;
1135 char* var1122 /* : NativeString */;
1136 long var1123 /* : Int */;
1137 val* var1124 /* : String */;
1138 short int var1125 /* : Bool */;
1139 long var1126 /* : Int */;
1140 val* var1127 /* : nullable Object */;
1141 static val* varonce1128;
1142 val* var1129 /* : String */;
1143 char* var1130 /* : NativeString */;
1144 long var1131 /* : Int */;
1145 val* var1132 /* : String */;
1146 long var1133 /* : Int */;
1147 val* var1134 /* : nullable Object */;
1148 static val* varonce1135;
1149 val* var1136 /* : String */;
1150 char* var1137 /* : NativeString */;
1151 long var1138 /* : Int */;
1152 val* var1139 /* : String */;
1153 long var1140 /* : Int */;
1154 val* var1141 /* : nullable Object */;
1155 static val* varonce1142;
1156 val* var1143 /* : String */;
1157 char* var1144 /* : NativeString */;
1158 long var1145 /* : Int */;
1159 val* var1146 /* : String */;
1160 val* var1147 /* : Array[Object] */;
1161 long var1148 /* : Int */;
1162 val* var1149 /* : NativeArray[Object] */;
1163 val* var1150 /* : String */;
1164 static val* varonce1151;
1165 val* var1152 /* : String */;
1166 char* var1153 /* : NativeString */;
1167 long var1154 /* : Int */;
1168 val* var1155 /* : String */;
1169 short int var1156 /* : Bool */;
1170 static val* varonce1157;
1171 val* var1158 /* : String */;
1172 char* var1159 /* : NativeString */;
1173 long var1160 /* : Int */;
1174 val* var1161 /* : String */;
1175 long var1162 /* : Int */;
1176 val* var1163 /* : nullable Object */;
1177 static val* varonce1164;
1178 val* var1165 /* : String */;
1179 char* var1166 /* : NativeString */;
1180 long var1167 /* : Int */;
1181 val* var1168 /* : String */;
1182 long var1169 /* : Int */;
1183 val* var1170 /* : nullable Object */;
1184 static val* varonce1171;
1185 val* var1172 /* : String */;
1186 char* var1173 /* : NativeString */;
1187 long var1174 /* : Int */;
1188 val* var1175 /* : String */;
1189 long var1176 /* : Int */;
1190 val* var1177 /* : nullable Object */;
1191 static val* varonce1178;
1192 val* var1179 /* : String */;
1193 char* var1180 /* : NativeString */;
1194 long var1181 /* : Int */;
1195 val* var1182 /* : String */;
1196 long var1183 /* : Int */;
1197 val* var1184 /* : nullable Object */;
1198 static val* varonce1185;
1199 val* var1186 /* : String */;
1200 char* var1187 /* : NativeString */;
1201 long var1188 /* : Int */;
1202 val* var1189 /* : String */;
1203 long var1190 /* : Int */;
1204 val* var1191 /* : nullable Object */;
1205 static val* varonce1192;
1206 val* var1193 /* : String */;
1207 char* var1194 /* : NativeString */;
1208 long var1195 /* : Int */;
1209 val* var1196 /* : String */;
1210 val* var1197 /* : Array[Object] */;
1211 long var1198 /* : Int */;
1212 val* var1199 /* : NativeArray[Object] */;
1213 val* var1200 /* : String */;
1214 static val* varonce1201;
1215 val* var1202 /* : String */;
1216 char* var1203 /* : NativeString */;
1217 long var1204 /* : Int */;
1218 val* var1205 /* : String */;
1219 short int var1206 /* : Bool */;
1220 static val* varonce1207;
1221 val* var1208 /* : String */;
1222 char* var1209 /* : NativeString */;
1223 long var1210 /* : Int */;
1224 val* var1211 /* : String */;
1225 long var1212 /* : Int */;
1226 val* var1213 /* : nullable Object */;
1227 static val* varonce1214;
1228 val* var1215 /* : String */;
1229 char* var1216 /* : NativeString */;
1230 long var1217 /* : Int */;
1231 val* var1218 /* : String */;
1232 val* var1219 /* : Array[Object] */;
1233 long var1220 /* : Int */;
1234 val* var1221 /* : NativeArray[Object] */;
1235 val* var1222 /* : String */;
1236 val* var1223 /* : RuntimeVariable */;
1237 static val* varonce1224;
1238 val* var1225 /* : String */;
1239 char* var1226 /* : NativeString */;
1240 long var1227 /* : Int */;
1241 val* var1228 /* : String */;
1242 short int var1229 /* : Bool */;
1243 static val* varonce1230;
1244 val* var1231 /* : String */;
1245 char* var1232 /* : NativeString */;
1246 long var1233 /* : Int */;
1247 val* var1234 /* : String */;
1248 short int var1235 /* : Bool */;
1249 static val* varonce1236;
1250 val* var1237 /* : String */;
1251 char* var1238 /* : NativeString */;
1252 long var1239 /* : Int */;
1253 val* var1240 /* : String */;
1254 long var1241 /* : Int */;
1255 val* var1242 /* : nullable Object */;
1256 static val* varonce1243;
1257 val* var1244 /* : String */;
1258 char* var1245 /* : NativeString */;
1259 long var1246 /* : Int */;
1260 val* var1247 /* : String */;
1261 val* var1248 /* : Array[Object] */;
1262 long var1249 /* : Int */;
1263 val* var1250 /* : NativeArray[Object] */;
1264 val* var1251 /* : String */;
1265 static val* varonce1252;
1266 val* var1253 /* : String */;
1267 char* var1254 /* : NativeString */;
1268 long var1255 /* : Int */;
1269 val* var1256 /* : String */;
1270 short int var1257 /* : Bool */;
1271 static val* varonce1258;
1272 val* var1259 /* : String */;
1273 char* var1260 /* : NativeString */;
1274 long var1261 /* : Int */;
1275 val* var1262 /* : String */;
1276 val* var1263 /* : RuntimeVariable */;
1277 static val* varonce1264;
1278 val* var1265 /* : String */;
1279 char* var1266 /* : NativeString */;
1280 long var1267 /* : Int */;
1281 val* var1268 /* : String */;
1282 short int var1269 /* : Bool */;
1283 static val* varonce1270;
1284 val* var1271 /* : String */;
1285 char* var1272 /* : NativeString */;
1286 long var1273 /* : Int */;
1287 val* var1274 /* : String */;
1288 long var1275 /* : Int */;
1289 val* var1276 /* : nullable Object */;
1290 static val* varonce1277;
1291 val* var1278 /* : String */;
1292 char* var1279 /* : NativeString */;
1293 long var1280 /* : Int */;
1294 val* var1281 /* : String */;
1295 val* var1282 /* : Array[Object] */;
1296 long var1283 /* : Int */;
1297 val* var1284 /* : NativeArray[Object] */;
1298 val* var1285 /* : String */;
1299 val* var1286 /* : RuntimeVariable */;
1300 static val* varonce1287;
1301 val* var1288 /* : String */;
1302 char* var1289 /* : NativeString */;
1303 long var1290 /* : Int */;
1304 val* var1291 /* : String */;
1305 short int var1292 /* : Bool */;
1306 static val* varonce1293;
1307 val* var1294 /* : String */;
1308 char* var1295 /* : NativeString */;
1309 long var1296 /* : Int */;
1310 val* var1297 /* : String */;
1311 short int var1298 /* : Bool */;
1312 static val* varonce1299;
1313 val* var1300 /* : String */;
1314 char* var1301 /* : NativeString */;
1315 long var1302 /* : Int */;
1316 val* var1303 /* : String */;
1317 val* var1304 /* : nullable Object */;
1318 val* var1305 /* : Array[Object] */;
1319 long var1306 /* : Int */;
1320 val* var1307 /* : NativeArray[Object] */;
1321 val* var1308 /* : String */;
1322 val* var1309 /* : RuntimeVariable */;
1323 static val* varonce1310;
1324 val* var1311 /* : String */;
1325 char* var1312 /* : NativeString */;
1326 long var1313 /* : Int */;
1327 val* var1314 /* : String */;
1328 short int var1315 /* : Bool */;
1329 long var1316 /* : Int */;
1330 val* var1317 /* : nullable Object */;
1331 long var1318 /* : Int */;
1332 val* var1319 /* : nullable Object */;
1333 val* var1320 /* : RuntimeVariable */;
1334 static val* varonce1321;
1335 val* var1322 /* : String */;
1336 char* var1323 /* : NativeString */;
1337 long var1324 /* : Int */;
1338 val* var1325 /* : String */;
1339 short int var1326 /* : Bool */;
1340 long var1327 /* : Int */;
1341 val* var1328 /* : nullable Object */;
1342 long var1329 /* : Int */;
1343 val* var1330 /* : nullable Object */;
1344 val* var1331 /* : RuntimeVariable */;
1345 static val* varonce1332;
1346 val* var1333 /* : String */;
1347 char* var1334 /* : NativeString */;
1348 long var1335 /* : Int */;
1349 val* var1336 /* : String */;
1350 short int var1337 /* : Bool */;
1351 val* var1338 /* : nullable Object */;
1352 val* var1339 /* : String */;
1353 val* var_nat /* var nat: String */;
1354 static val* varonce1340;
1355 val* var1341 /* : String */;
1356 char* var1342 /* : NativeString */;
1357 long var1343 /* : Int */;
1358 val* var1344 /* : String */;
1359 static val* varonce1345;
1360 val* var1346 /* : String */;
1361 char* var1347 /* : NativeString */;
1362 long var1348 /* : Int */;
1363 val* var1349 /* : String */;
1364 val* var1350 /* : Array[Object] */;
1365 long var1351 /* : Int */;
1366 val* var1352 /* : NativeArray[Object] */;
1367 val* var1353 /* : String */;
1368 static val* varonce1354;
1369 val* var1355 /* : String */;
1370 char* var1356 /* : NativeString */;
1371 long var1357 /* : Int */;
1372 val* var1358 /* : String */;
1373 short int var1359 /* : Bool */;
1374 val* var1360 /* : nullable Object */;
1375 val* var1361 /* : String */;
1376 val* var_nat1362 /* var nat: String */;
1377 static val* varonce1363;
1378 val* var1364 /* : String */;
1379 char* var1365 /* : NativeString */;
1380 long var1366 /* : Int */;
1381 val* var1367 /* : String */;
1382 val* var1368 /* : Array[Object] */;
1383 long var1369 /* : Int */;
1384 val* var1370 /* : NativeArray[Object] */;
1385 val* var1371 /* : String */;
1386 val* var1372 /* : RuntimeVariable */;
1387 static val* varonce1373;
1388 val* var1374 /* : String */;
1389 char* var1375 /* : NativeString */;
1390 long var1376 /* : Int */;
1391 val* var1377 /* : String */;
1392 short int var1378 /* : Bool */;
1393 static val* varonce1379;
1394 val* var1380 /* : String */;
1395 char* var1381 /* : NativeString */;
1396 long var1382 /* : Int */;
1397 val* var1383 /* : String */;
1398 static val* varonce1384;
1399 val* var1385 /* : String */;
1400 char* var1386 /* : NativeString */;
1401 long var1387 /* : Int */;
1402 val* var1388 /* : String */;
1403 short int var1389 /* : Bool */;
1404 static val* varonce1390;
1405 val* var1391 /* : String */;
1406 char* var1392 /* : NativeString */;
1407 long var1393 /* : Int */;
1408 val* var1394 /* : String */;
1409 val* var1395 /* : RuntimeVariable */;
1410 static val* varonce1396;
1411 val* var1397 /* : String */;
1412 char* var1398 /* : NativeString */;
1413 long var1399 /* : Int */;
1414 val* var1400 /* : String */;
1415 short int var1401 /* : Bool */;
1416 static val* varonce1402;
1417 val* var1403 /* : String */;
1418 char* var1404 /* : NativeString */;
1419 long var1405 /* : Int */;
1420 val* var1406 /* : String */;
1421 long var1407 /* : Int */;
1422 val* var1408 /* : nullable Object */;
1423 static val* varonce1409;
1424 val* var1410 /* : String */;
1425 char* var1411 /* : NativeString */;
1426 long var1412 /* : Int */;
1427 val* var1413 /* : String */;
1428 val* var1414 /* : Array[Object] */;
1429 long var1415 /* : Int */;
1430 val* var1416 /* : NativeArray[Object] */;
1431 val* var1417 /* : String */;
1432 val* var1418 /* : RuntimeVariable */;
1433 static val* varonce1419;
1434 val* var1420 /* : String */;
1435 char* var1421 /* : NativeString */;
1436 long var1422 /* : Int */;
1437 val* var1423 /* : String */;
1438 val* var1424 /* : String */;
1439 static val* varonce1425;
1440 val* var1426 /* : String */;
1441 char* var1427 /* : NativeString */;
1442 long var1428 /* : Int */;
1443 val* var1429 /* : String */;
1444 static val* varonce1430;
1445 val* var1431 /* : String */;
1446 char* var1432 /* : NativeString */;
1447 long var1433 /* : Int */;
1448 val* var1434 /* : String */;
1449 val* var1435 /* : Location */;
1450 val* var1436 /* : String */;
1451 static val* varonce1437;
1452 val* var1438 /* : String */;
1453 char* var1439 /* : NativeString */;
1454 long var1440 /* : Int */;
1455 val* var1441 /* : String */;
1456 val* var1442 /* : Array[Object] */;
1457 long var1443 /* : Int */;
1458 val* var1444 /* : NativeArray[Object] */;
1459 val* var1445 /* : String */;
1460 static val* varonce1446;
1461 val* var1447 /* : String */;
1462 char* var1448 /* : NativeString */;
1463 long var1449 /* : Int */;
1464 val* var1450 /* : String */;
1465 val* var1451 /* : Array[Object] */;
1466 long var1452 /* : Int */;
1467 val* var1453 /* : NativeArray[Object] */;
1468 val* var1454 /* : String */;
1469 var_v = p0;
1470 var_mpropdef = p1;
1471 var_arguments = p2;
1472 var = ((val* (*)(val*))(var_mpropdef->class->vft[COLOR_model__MPropDef__mproperty]))(var_mpropdef) /* mproperty on <var_mpropdef:MMethodDef>*/;
1473 var1 = ((val* (*)(val*))(var->class->vft[COLOR_model__MProperty__name]))(var) /* name on <var:MProperty(MMethod)>*/;
1474 var_pname = var1;
1475 var2 = ((val* (*)(val*))(var_mpropdef->class->vft[COLOR_model__MPropDef__mclassdef]))(var_mpropdef) /* mclassdef on <var_mpropdef:MMethodDef>*/;
1476 var3 = ((val* (*)(val*))(var2->class->vft[COLOR_model__MClassDef__mclass]))(var2) /* mclass on <var2:MClassDef>*/;
1477 var4 = ((val* (*)(val*))(var3->class->vft[COLOR_model__MClass__name]))(var3) /* name on <var3:MClass>*/;
1478 var_cname = var4;
1479 var5 = ((val* (*)(val*))(var_mpropdef->class->vft[COLOR_model__MMethodDef__msignature]))(var_mpropdef) /* msignature on <var_mpropdef:MMethodDef>*/;
1480 if (var5 == NULL) {
1481 fprintf(stderr, "Runtime error: %s", "Receiver is null");
1482 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1587);
1483 show_backtrace(1);
1484 } else {
1485 var6 = ((val* (*)(val*))(var5->class->vft[COLOR_model__MSignature__return_mtype]))(var5) /* return_mtype on <var5:nullable MSignature>*/;
1486 }
1487 var_ret = var6;
1488 var7 = NULL;
1489 if (var_ret == NULL) {
1490 var8 = 0; /* is null */
1491 } else {
1492 var8 = 1; /* arg is null and recv is not */
1493 }
1494 if (var8){
1495 var9 = ((val* (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Collection__first]))(var_arguments) /* first on <var_arguments:Array[RuntimeVariable]>*/;
1496 var10 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__resolve_for]))(var_v, var_ret, var9) /* resolve_for on <var_v:AbstractCompilerVisitor>*/;
1497 var_ret = var10;
1498 } else {
1499 }
1500 if (varonce) {
1501 var12 = varonce;
1502 } else {
1503 var13 = "==";
1504 var14 = 2;
1505 var15 = string__NativeString__to_s_with_length(var13, var14);
1506 var12 = var15;
1507 varonce = var12;
1508 }
1509 var16 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___33d_61d]))(var_pname, var12) /* != on <var_pname:String>*/;
1510 var_ = var16;
1511 if (var16){
1512 if (varonce17) {
1513 var18 = varonce17;
1514 } else {
1515 var19 = "!=";
1516 var20 = 2;
1517 var21 = string__NativeString__to_s_with_length(var19, var20);
1518 var18 = var21;
1519 varonce17 = var18;
1520 }
1521 var22 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___33d_61d]))(var_pname, var18) /* != on <var_pname:String>*/;
1522 var11 = var22;
1523 } else {
1524 var11 = var_;
1525 }
1526 if (var11){
1527 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__adapt_signature]))(var_v, var_mpropdef, var_arguments) /* adapt_signature on <var_v:AbstractCompilerVisitor>*/;
1528 } else {
1529 }
1530 if (varonce23) {
1531 var24 = varonce23;
1532 } else {
1533 var25 = "Int";
1534 var26 = 3;
1535 var27 = string__NativeString__to_s_with_length(var25, var26);
1536 var24 = var27;
1537 varonce23 = var24;
1538 }
1539 var28 = ((short int (*)(val*, val*))(var_cname->class->vft[COLOR_kernel__Object___61d_61d]))(var_cname, var24) /* == on <var_cname:String>*/;
1540 if (var28){
1541 if (varonce29) {
1542 var30 = varonce29;
1543 } else {
1544 var31 = "output";
1545 var32 = 6;
1546 var33 = string__NativeString__to_s_with_length(var31, var32);
1547 var30 = var33;
1548 varonce29 = var30;
1549 }
1550 var34 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var30) /* == on <var_pname:String>*/;
1551 if (var34){
1552 if (varonce35) {
1553 var36 = varonce35;
1554 } else {
1555 var37 = "printf(\"%ld\\n\", ";
1556 var38 = 16;
1557 var39 = string__NativeString__to_s_with_length(var37, var38);
1558 var36 = var39;
1559 varonce35 = var36;
1560 }
1561 var40 = ((val* (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Collection__first]))(var_arguments) /* first on <var_arguments:Array[RuntimeVariable]>*/;
1562 if (varonce41) {
1563 var42 = varonce41;
1564 } else {
1565 var43 = ");";
1566 var44 = 2;
1567 var45 = string__NativeString__to_s_with_length(var43, var44);
1568 var42 = var45;
1569 varonce41 = var42;
1570 }
1571 var46 = NEW_array__Array(&type_array__Arraykernel__Object);
1572 { /* var46 = array_instance Array[Object] */
1573 var47 = 3;
1574 var48 = NEW_array__NativeArray(var47, &type_array__NativeArraykernel__Object);
1575 ((struct instance_array__NativeArray*)var48)->values[0] = (val*) var36;
1576 ((struct instance_array__NativeArray*)var48)->values[1] = (val*) var40;
1577 ((struct instance_array__NativeArray*)var48)->values[2] = (val*) var42;
1578 ((void (*)(val*, val*, long))(var46->class->vft[COLOR_array__Array__with_native]))(var46, var48, var47) /* with_native on <var46:Array[Object]>*/;
1579 }
1580 var49 = ((val* (*)(val*))(var46->class->vft[COLOR_string__Object__to_s]))(var46) /* to_s on <var46:Array[Object]>*/;
1581 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var49) /* add on <var_v:AbstractCompilerVisitor>*/;
1582 goto RET_LABEL;
1583 } else {
1584 if (varonce50) {
1585 var51 = varonce50;
1586 } else {
1587 var52 = "object_id";
1588 var53 = 9;
1589 var54 = string__NativeString__to_s_with_length(var52, var53);
1590 var51 = var54;
1591 varonce50 = var51;
1592 }
1593 var55 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var51) /* == on <var_pname:String>*/;
1594 if (var55){
1595 var56 = ((val* (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Collection__first]))(var_arguments) /* first on <var_arguments:Array[RuntimeVariable]>*/;
1596 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var56) /* ret on <var_v:AbstractCompilerVisitor>*/;
1597 goto RET_LABEL;
1598 } else {
1599 if (varonce57) {
1600 var58 = varonce57;
1601 } else {
1602 var59 = "+";
1603 var60 = 1;
1604 var61 = string__NativeString__to_s_with_length(var59, var60);
1605 var58 = var61;
1606 varonce57 = var58;
1607 }
1608 var62 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var58) /* == on <var_pname:String>*/;
1609 if (var62){
1610 var63 = 0;
1611 var64 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var63) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
1612 if (varonce65) {
1613 var66 = varonce65;
1614 } else {
1615 var67 = " + ";
1616 var68 = 3;
1617 var69 = string__NativeString__to_s_with_length(var67, var68);
1618 var66 = var69;
1619 varonce65 = var66;
1620 }
1621 var70 = 1;
1622 var71 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var70) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
1623 var72 = NEW_array__Array(&type_array__Arraykernel__Object);
1624 { /* var72 = array_instance Array[Object] */
1625 var73 = 3;
1626 var74 = NEW_array__NativeArray(var73, &type_array__NativeArraykernel__Object);
1627 ((struct instance_array__NativeArray*)var74)->values[0] = (val*) var64;
1628 ((struct instance_array__NativeArray*)var74)->values[1] = (val*) var66;
1629 ((struct instance_array__NativeArray*)var74)->values[2] = (val*) var71;
1630 ((void (*)(val*, val*, long))(var72->class->vft[COLOR_array__Array__with_native]))(var72, var74, var73) /* with_native on <var72:Array[Object]>*/;
1631 }
1632 var75 = ((val* (*)(val*))(var72->class->vft[COLOR_string__Object__to_s]))(var72) /* to_s on <var72:Array[Object]>*/;
1633 if (var_ret == NULL) {
1634 fprintf(stderr, "Runtime error: %s", "Cast failed");
1635 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1602);
1636 show_backtrace(1);
1637 }
1638 var76 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var75, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
1639 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var76) /* ret on <var_v:AbstractCompilerVisitor>*/;
1640 goto RET_LABEL;
1641 } else {
1642 if (varonce77) {
1643 var78 = varonce77;
1644 } else {
1645 var79 = "-";
1646 var80 = 1;
1647 var81 = string__NativeString__to_s_with_length(var79, var80);
1648 var78 = var81;
1649 varonce77 = var78;
1650 }
1651 var82 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var78) /* == on <var_pname:String>*/;
1652 if (var82){
1653 var83 = 0;
1654 var84 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var83) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
1655 if (varonce85) {
1656 var86 = varonce85;
1657 } else {
1658 var87 = " - ";
1659 var88 = 3;
1660 var89 = string__NativeString__to_s_with_length(var87, var88);
1661 var86 = var89;
1662 varonce85 = var86;
1663 }
1664 var90 = 1;
1665 var91 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var90) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
1666 var92 = NEW_array__Array(&type_array__Arraykernel__Object);
1667 { /* var92 = array_instance Array[Object] */
1668 var93 = 3;
1669 var94 = NEW_array__NativeArray(var93, &type_array__NativeArraykernel__Object);
1670 ((struct instance_array__NativeArray*)var94)->values[0] = (val*) var84;
1671 ((struct instance_array__NativeArray*)var94)->values[1] = (val*) var86;
1672 ((struct instance_array__NativeArray*)var94)->values[2] = (val*) var91;
1673 ((void (*)(val*, val*, long))(var92->class->vft[COLOR_array__Array__with_native]))(var92, var94, var93) /* with_native on <var92:Array[Object]>*/;
1674 }
1675 var95 = ((val* (*)(val*))(var92->class->vft[COLOR_string__Object__to_s]))(var92) /* to_s on <var92:Array[Object]>*/;
1676 if (var_ret == NULL) {
1677 fprintf(stderr, "Runtime error: %s", "Cast failed");
1678 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1605);
1679 show_backtrace(1);
1680 }
1681 var96 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var95, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
1682 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var96) /* ret on <var_v:AbstractCompilerVisitor>*/;
1683 goto RET_LABEL;
1684 } else {
1685 if (varonce97) {
1686 var98 = varonce97;
1687 } else {
1688 var99 = "unary -";
1689 var100 = 7;
1690 var101 = string__NativeString__to_s_with_length(var99, var100);
1691 var98 = var101;
1692 varonce97 = var98;
1693 }
1694 var102 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var98) /* == on <var_pname:String>*/;
1695 if (var102){
1696 if (varonce103) {
1697 var104 = varonce103;
1698 } else {
1699 var105 = "-";
1700 var106 = 1;
1701 var107 = string__NativeString__to_s_with_length(var105, var106);
1702 var104 = var107;
1703 varonce103 = var104;
1704 }
1705 var108 = 0;
1706 var109 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var108) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
1707 var110 = NEW_array__Array(&type_array__Arraykernel__Object);
1708 { /* var110 = array_instance Array[Object] */
1709 var111 = 2;
1710 var112 = NEW_array__NativeArray(var111, &type_array__NativeArraykernel__Object);
1711 ((struct instance_array__NativeArray*)var112)->values[0] = (val*) var104;
1712 ((struct instance_array__NativeArray*)var112)->values[1] = (val*) var109;
1713 ((void (*)(val*, val*, long))(var110->class->vft[COLOR_array__Array__with_native]))(var110, var112, var111) /* with_native on <var110:Array[Object]>*/;
1714 }
1715 var113 = ((val* (*)(val*))(var110->class->vft[COLOR_string__Object__to_s]))(var110) /* to_s on <var110:Array[Object]>*/;
1716 if (var_ret == NULL) {
1717 fprintf(stderr, "Runtime error: %s", "Cast failed");
1718 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1608);
1719 show_backtrace(1);
1720 }
1721 var114 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var113, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
1722 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var114) /* ret on <var_v:AbstractCompilerVisitor>*/;
1723 goto RET_LABEL;
1724 } else {
1725 if (varonce115) {
1726 var116 = varonce115;
1727 } else {
1728 var117 = "succ";
1729 var118 = 4;
1730 var119 = string__NativeString__to_s_with_length(var117, var118);
1731 var116 = var119;
1732 varonce115 = var116;
1733 }
1734 var120 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var116) /* == on <var_pname:String>*/;
1735 if (var120){
1736 var121 = 0;
1737 var122 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var121) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
1738 if (varonce123) {
1739 var124 = varonce123;
1740 } else {
1741 var125 = "+1";
1742 var126 = 2;
1743 var127 = string__NativeString__to_s_with_length(var125, var126);
1744 var124 = var127;
1745 varonce123 = var124;
1746 }
1747 var128 = NEW_array__Array(&type_array__Arraykernel__Object);
1748 { /* var128 = array_instance Array[Object] */
1749 var129 = 2;
1750 var130 = NEW_array__NativeArray(var129, &type_array__NativeArraykernel__Object);
1751 ((struct instance_array__NativeArray*)var130)->values[0] = (val*) var122;
1752 ((struct instance_array__NativeArray*)var130)->values[1] = (val*) var124;
1753 ((void (*)(val*, val*, long))(var128->class->vft[COLOR_array__Array__with_native]))(var128, var130, var129) /* with_native on <var128:Array[Object]>*/;
1754 }
1755 var131 = ((val* (*)(val*))(var128->class->vft[COLOR_string__Object__to_s]))(var128) /* to_s on <var128:Array[Object]>*/;
1756 if (var_ret == NULL) {
1757 fprintf(stderr, "Runtime error: %s", "Cast failed");
1758 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1611);
1759 show_backtrace(1);
1760 }
1761 var132 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var131, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
1762 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var132) /* ret on <var_v:AbstractCompilerVisitor>*/;
1763 goto RET_LABEL;
1764 } else {
1765 if (varonce133) {
1766 var134 = varonce133;
1767 } else {
1768 var135 = "prec";
1769 var136 = 4;
1770 var137 = string__NativeString__to_s_with_length(var135, var136);
1771 var134 = var137;
1772 varonce133 = var134;
1773 }
1774 var138 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var134) /* == on <var_pname:String>*/;
1775 if (var138){
1776 var139 = 0;
1777 var140 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var139) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
1778 if (varonce141) {
1779 var142 = varonce141;
1780 } else {
1781 var143 = "-1";
1782 var144 = 2;
1783 var145 = string__NativeString__to_s_with_length(var143, var144);
1784 var142 = var145;
1785 varonce141 = var142;
1786 }
1787 var146 = NEW_array__Array(&type_array__Arraykernel__Object);
1788 { /* var146 = array_instance Array[Object] */
1789 var147 = 2;
1790 var148 = NEW_array__NativeArray(var147, &type_array__NativeArraykernel__Object);
1791 ((struct instance_array__NativeArray*)var148)->values[0] = (val*) var140;
1792 ((struct instance_array__NativeArray*)var148)->values[1] = (val*) var142;
1793 ((void (*)(val*, val*, long))(var146->class->vft[COLOR_array__Array__with_native]))(var146, var148, var147) /* with_native on <var146:Array[Object]>*/;
1794 }
1795 var149 = ((val* (*)(val*))(var146->class->vft[COLOR_string__Object__to_s]))(var146) /* to_s on <var146:Array[Object]>*/;
1796 if (var_ret == NULL) {
1797 fprintf(stderr, "Runtime error: %s", "Cast failed");
1798 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1614);
1799 show_backtrace(1);
1800 }
1801 var150 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var149, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
1802 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var150) /* ret on <var_v:AbstractCompilerVisitor>*/;
1803 goto RET_LABEL;
1804 } else {
1805 if (varonce151) {
1806 var152 = varonce151;
1807 } else {
1808 var153 = "*";
1809 var154 = 1;
1810 var155 = string__NativeString__to_s_with_length(var153, var154);
1811 var152 = var155;
1812 varonce151 = var152;
1813 }
1814 var156 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var152) /* == on <var_pname:String>*/;
1815 if (var156){
1816 var157 = 0;
1817 var158 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var157) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
1818 if (varonce159) {
1819 var160 = varonce159;
1820 } else {
1821 var161 = " * ";
1822 var162 = 3;
1823 var163 = string__NativeString__to_s_with_length(var161, var162);
1824 var160 = var163;
1825 varonce159 = var160;
1826 }
1827 var164 = 1;
1828 var165 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var164) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
1829 var166 = NEW_array__Array(&type_array__Arraykernel__Object);
1830 { /* var166 = array_instance Array[Object] */
1831 var167 = 3;
1832 var168 = NEW_array__NativeArray(var167, &type_array__NativeArraykernel__Object);
1833 ((struct instance_array__NativeArray*)var168)->values[0] = (val*) var158;
1834 ((struct instance_array__NativeArray*)var168)->values[1] = (val*) var160;
1835 ((struct instance_array__NativeArray*)var168)->values[2] = (val*) var165;
1836 ((void (*)(val*, val*, long))(var166->class->vft[COLOR_array__Array__with_native]))(var166, var168, var167) /* with_native on <var166:Array[Object]>*/;
1837 }
1838 var169 = ((val* (*)(val*))(var166->class->vft[COLOR_string__Object__to_s]))(var166) /* to_s on <var166:Array[Object]>*/;
1839 if (var_ret == NULL) {
1840 fprintf(stderr, "Runtime error: %s", "Cast failed");
1841 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1617);
1842 show_backtrace(1);
1843 }
1844 var170 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var169, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
1845 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var170) /* ret on <var_v:AbstractCompilerVisitor>*/;
1846 goto RET_LABEL;
1847 } else {
1848 if (varonce171) {
1849 var172 = varonce171;
1850 } else {
1851 var173 = "/";
1852 var174 = 1;
1853 var175 = string__NativeString__to_s_with_length(var173, var174);
1854 var172 = var175;
1855 varonce171 = var172;
1856 }
1857 var176 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var172) /* == on <var_pname:String>*/;
1858 if (var176){
1859 var177 = 0;
1860 var178 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var177) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
1861 if (varonce179) {
1862 var180 = varonce179;
1863 } else {
1864 var181 = " / ";
1865 var182 = 3;
1866 var183 = string__NativeString__to_s_with_length(var181, var182);
1867 var180 = var183;
1868 varonce179 = var180;
1869 }
1870 var184 = 1;
1871 var185 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var184) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
1872 var186 = NEW_array__Array(&type_array__Arraykernel__Object);
1873 { /* var186 = array_instance Array[Object] */
1874 var187 = 3;
1875 var188 = NEW_array__NativeArray(var187, &type_array__NativeArraykernel__Object);
1876 ((struct instance_array__NativeArray*)var188)->values[0] = (val*) var178;
1877 ((struct instance_array__NativeArray*)var188)->values[1] = (val*) var180;
1878 ((struct instance_array__NativeArray*)var188)->values[2] = (val*) var185;
1879 ((void (*)(val*, val*, long))(var186->class->vft[COLOR_array__Array__with_native]))(var186, var188, var187) /* with_native on <var186:Array[Object]>*/;
1880 }
1881 var189 = ((val* (*)(val*))(var186->class->vft[COLOR_string__Object__to_s]))(var186) /* to_s on <var186:Array[Object]>*/;
1882 if (var_ret == NULL) {
1883 fprintf(stderr, "Runtime error: %s", "Cast failed");
1884 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1620);
1885 show_backtrace(1);
1886 }
1887 var190 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var189, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
1888 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var190) /* ret on <var_v:AbstractCompilerVisitor>*/;
1889 goto RET_LABEL;
1890 } else {
1891 if (varonce191) {
1892 var192 = varonce191;
1893 } else {
1894 var193 = "%";
1895 var194 = 1;
1896 var195 = string__NativeString__to_s_with_length(var193, var194);
1897 var192 = var195;
1898 varonce191 = var192;
1899 }
1900 var196 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var192) /* == on <var_pname:String>*/;
1901 if (var196){
1902 var197 = 0;
1903 var198 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var197) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
1904 if (varonce199) {
1905 var200 = varonce199;
1906 } else {
1907 var201 = " % ";
1908 var202 = 3;
1909 var203 = string__NativeString__to_s_with_length(var201, var202);
1910 var200 = var203;
1911 varonce199 = var200;
1912 }
1913 var204 = 1;
1914 var205 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var204) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
1915 var206 = NEW_array__Array(&type_array__Arraykernel__Object);
1916 { /* var206 = array_instance Array[Object] */
1917 var207 = 3;
1918 var208 = NEW_array__NativeArray(var207, &type_array__NativeArraykernel__Object);
1919 ((struct instance_array__NativeArray*)var208)->values[0] = (val*) var198;
1920 ((struct instance_array__NativeArray*)var208)->values[1] = (val*) var200;
1921 ((struct instance_array__NativeArray*)var208)->values[2] = (val*) var205;
1922 ((void (*)(val*, val*, long))(var206->class->vft[COLOR_array__Array__with_native]))(var206, var208, var207) /* with_native on <var206:Array[Object]>*/;
1923 }
1924 var209 = ((val* (*)(val*))(var206->class->vft[COLOR_string__Object__to_s]))(var206) /* to_s on <var206:Array[Object]>*/;
1925 if (var_ret == NULL) {
1926 fprintf(stderr, "Runtime error: %s", "Cast failed");
1927 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1623);
1928 show_backtrace(1);
1929 }
1930 var210 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var209, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
1931 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var210) /* ret on <var_v:AbstractCompilerVisitor>*/;
1932 goto RET_LABEL;
1933 } else {
1934 if (varonce211) {
1935 var212 = varonce211;
1936 } else {
1937 var213 = "lshift";
1938 var214 = 6;
1939 var215 = string__NativeString__to_s_with_length(var213, var214);
1940 var212 = var215;
1941 varonce211 = var212;
1942 }
1943 var216 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var212) /* == on <var_pname:String>*/;
1944 if (var216){
1945 var217 = 0;
1946 var218 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var217) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
1947 if (varonce219) {
1948 var220 = varonce219;
1949 } else {
1950 var221 = " << ";
1951 var222 = 4;
1952 var223 = string__NativeString__to_s_with_length(var221, var222);
1953 var220 = var223;
1954 varonce219 = var220;
1955 }
1956 var224 = 1;
1957 var225 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var224) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
1958 var226 = NEW_array__Array(&type_array__Arraykernel__Object);
1959 { /* var226 = array_instance Array[Object] */
1960 var227 = 3;
1961 var228 = NEW_array__NativeArray(var227, &type_array__NativeArraykernel__Object);
1962 ((struct instance_array__NativeArray*)var228)->values[0] = (val*) var218;
1963 ((struct instance_array__NativeArray*)var228)->values[1] = (val*) var220;
1964 ((struct instance_array__NativeArray*)var228)->values[2] = (val*) var225;
1965 ((void (*)(val*, val*, long))(var226->class->vft[COLOR_array__Array__with_native]))(var226, var228, var227) /* with_native on <var226:Array[Object]>*/;
1966 }
1967 var229 = ((val* (*)(val*))(var226->class->vft[COLOR_string__Object__to_s]))(var226) /* to_s on <var226:Array[Object]>*/;
1968 if (var_ret == NULL) {
1969 fprintf(stderr, "Runtime error: %s", "Cast failed");
1970 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1626);
1971 show_backtrace(1);
1972 }
1973 var230 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var229, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
1974 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var230) /* ret on <var_v:AbstractCompilerVisitor>*/;
1975 goto RET_LABEL;
1976 } else {
1977 if (varonce231) {
1978 var232 = varonce231;
1979 } else {
1980 var233 = "rshift";
1981 var234 = 6;
1982 var235 = string__NativeString__to_s_with_length(var233, var234);
1983 var232 = var235;
1984 varonce231 = var232;
1985 }
1986 var236 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var232) /* == on <var_pname:String>*/;
1987 if (var236){
1988 var237 = 0;
1989 var238 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var237) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
1990 if (varonce239) {
1991 var240 = varonce239;
1992 } else {
1993 var241 = " >> ";
1994 var242 = 4;
1995 var243 = string__NativeString__to_s_with_length(var241, var242);
1996 var240 = var243;
1997 varonce239 = var240;
1998 }
1999 var244 = 1;
2000 var245 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var244) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
2001 var246 = NEW_array__Array(&type_array__Arraykernel__Object);
2002 { /* var246 = array_instance Array[Object] */
2003 var247 = 3;
2004 var248 = NEW_array__NativeArray(var247, &type_array__NativeArraykernel__Object);
2005 ((struct instance_array__NativeArray*)var248)->values[0] = (val*) var238;
2006 ((struct instance_array__NativeArray*)var248)->values[1] = (val*) var240;
2007 ((struct instance_array__NativeArray*)var248)->values[2] = (val*) var245;
2008 ((void (*)(val*, val*, long))(var246->class->vft[COLOR_array__Array__with_native]))(var246, var248, var247) /* with_native on <var246:Array[Object]>*/;
2009 }
2010 var249 = ((val* (*)(val*))(var246->class->vft[COLOR_string__Object__to_s]))(var246) /* to_s on <var246:Array[Object]>*/;
2011 if (var_ret == NULL) {
2012 fprintf(stderr, "Runtime error: %s", "Cast failed");
2013 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1629);
2014 show_backtrace(1);
2015 }
2016 var250 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var249, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
2017 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var250) /* ret on <var_v:AbstractCompilerVisitor>*/;
2018 goto RET_LABEL;
2019 } else {
2020 if (varonce251) {
2021 var252 = varonce251;
2022 } else {
2023 var253 = "==";
2024 var254 = 2;
2025 var255 = string__NativeString__to_s_with_length(var253, var254);
2026 var252 = var255;
2027 varonce251 = var252;
2028 }
2029 var256 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var252) /* == on <var_pname:String>*/;
2030 if (var256){
2031 var257 = 0;
2032 var258 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var257) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
2033 var259 = 1;
2034 var260 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var259) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
2035 var261 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__equal_test]))(var_v, var258, var260) /* equal_test on <var_v:AbstractCompilerVisitor>*/;
2036 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var261) /* ret on <var_v:AbstractCompilerVisitor>*/;
2037 goto RET_LABEL;
2038 } else {
2039 if (varonce262) {
2040 var263 = varonce262;
2041 } else {
2042 var264 = "!=";
2043 var265 = 2;
2044 var266 = string__NativeString__to_s_with_length(var264, var265);
2045 var263 = var266;
2046 varonce262 = var263;
2047 }
2048 var267 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var263) /* == on <var_pname:String>*/;
2049 if (var267){
2050 var268 = 0;
2051 var269 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var268) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
2052 var270 = 1;
2053 var271 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var270) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
2054 var272 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__equal_test]))(var_v, var269, var271) /* equal_test on <var_v:AbstractCompilerVisitor>*/;
2055 var_res = var272;
2056 if (varonce273) {
2057 var274 = varonce273;
2058 } else {
2059 var275 = "!";
2060 var276 = 1;
2061 var277 = string__NativeString__to_s_with_length(var275, var276);
2062 var274 = var277;
2063 varonce273 = var274;
2064 }
2065 var278 = NEW_array__Array(&type_array__Arraykernel__Object);
2066 { /* var278 = array_instance Array[Object] */
2067 var279 = 2;
2068 var280 = NEW_array__NativeArray(var279, &type_array__NativeArraykernel__Object);
2069 ((struct instance_array__NativeArray*)var280)->values[0] = (val*) var274;
2070 ((struct instance_array__NativeArray*)var280)->values[1] = (val*) var_res;
2071 ((void (*)(val*, val*, long))(var278->class->vft[COLOR_array__Array__with_native]))(var278, var280, var279) /* with_native on <var278:Array[Object]>*/;
2072 }
2073 var281 = ((val* (*)(val*))(var278->class->vft[COLOR_string__Object__to_s]))(var278) /* to_s on <var278:Array[Object]>*/;
2074 if (var_ret == NULL) {
2075 fprintf(stderr, "Runtime error: %s", "Cast failed");
2076 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1636);
2077 show_backtrace(1);
2078 }
2079 var282 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var281, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
2080 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var282) /* ret on <var_v:AbstractCompilerVisitor>*/;
2081 goto RET_LABEL;
2082 } else {
2083 if (varonce283) {
2084 var284 = varonce283;
2085 } else {
2086 var285 = "<";
2087 var286 = 1;
2088 var287 = string__NativeString__to_s_with_length(var285, var286);
2089 var284 = var287;
2090 varonce283 = var284;
2091 }
2092 var288 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var284) /* == on <var_pname:String>*/;
2093 if (var288){
2094 var289 = 0;
2095 var290 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var289) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
2096 if (varonce291) {
2097 var292 = varonce291;
2098 } else {
2099 var293 = " < ";
2100 var294 = 3;
2101 var295 = string__NativeString__to_s_with_length(var293, var294);
2102 var292 = var295;
2103 varonce291 = var292;
2104 }
2105 var296 = 1;
2106 var297 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var296) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
2107 var298 = NEW_array__Array(&type_array__Arraykernel__Object);
2108 { /* var298 = array_instance Array[Object] */
2109 var299 = 3;
2110 var300 = NEW_array__NativeArray(var299, &type_array__NativeArraykernel__Object);
2111 ((struct instance_array__NativeArray*)var300)->values[0] = (val*) var290;
2112 ((struct instance_array__NativeArray*)var300)->values[1] = (val*) var292;
2113 ((struct instance_array__NativeArray*)var300)->values[2] = (val*) var297;
2114 ((void (*)(val*, val*, long))(var298->class->vft[COLOR_array__Array__with_native]))(var298, var300, var299) /* with_native on <var298:Array[Object]>*/;
2115 }
2116 var301 = ((val* (*)(val*))(var298->class->vft[COLOR_string__Object__to_s]))(var298) /* to_s on <var298:Array[Object]>*/;
2117 if (var_ret == NULL) {
2118 fprintf(stderr, "Runtime error: %s", "Cast failed");
2119 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1639);
2120 show_backtrace(1);
2121 }
2122 var302 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var301, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
2123 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var302) /* ret on <var_v:AbstractCompilerVisitor>*/;
2124 goto RET_LABEL;
2125 } else {
2126 if (varonce303) {
2127 var304 = varonce303;
2128 } else {
2129 var305 = ">";
2130 var306 = 1;
2131 var307 = string__NativeString__to_s_with_length(var305, var306);
2132 var304 = var307;
2133 varonce303 = var304;
2134 }
2135 var308 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var304) /* == on <var_pname:String>*/;
2136 if (var308){
2137 var309 = 0;
2138 var310 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var309) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
2139 if (varonce311) {
2140 var312 = varonce311;
2141 } else {
2142 var313 = " > ";
2143 var314 = 3;
2144 var315 = string__NativeString__to_s_with_length(var313, var314);
2145 var312 = var315;
2146 varonce311 = var312;
2147 }
2148 var316 = 1;
2149 var317 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var316) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
2150 var318 = NEW_array__Array(&type_array__Arraykernel__Object);
2151 { /* var318 = array_instance Array[Object] */
2152 var319 = 3;
2153 var320 = NEW_array__NativeArray(var319, &type_array__NativeArraykernel__Object);
2154 ((struct instance_array__NativeArray*)var320)->values[0] = (val*) var310;
2155 ((struct instance_array__NativeArray*)var320)->values[1] = (val*) var312;
2156 ((struct instance_array__NativeArray*)var320)->values[2] = (val*) var317;
2157 ((void (*)(val*, val*, long))(var318->class->vft[COLOR_array__Array__with_native]))(var318, var320, var319) /* with_native on <var318:Array[Object]>*/;
2158 }
2159 var321 = ((val* (*)(val*))(var318->class->vft[COLOR_string__Object__to_s]))(var318) /* to_s on <var318:Array[Object]>*/;
2160 if (var_ret == NULL) {
2161 fprintf(stderr, "Runtime error: %s", "Cast failed");
2162 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1642);
2163 show_backtrace(1);
2164 }
2165 var322 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var321, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
2166 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var322) /* ret on <var_v:AbstractCompilerVisitor>*/;
2167 goto RET_LABEL;
2168 } else {
2169 if (varonce323) {
2170 var324 = varonce323;
2171 } else {
2172 var325 = "<=";
2173 var326 = 2;
2174 var327 = string__NativeString__to_s_with_length(var325, var326);
2175 var324 = var327;
2176 varonce323 = var324;
2177 }
2178 var328 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var324) /* == on <var_pname:String>*/;
2179 if (var328){
2180 var329 = 0;
2181 var330 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var329) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
2182 if (varonce331) {
2183 var332 = varonce331;
2184 } else {
2185 var333 = " <= ";
2186 var334 = 4;
2187 var335 = string__NativeString__to_s_with_length(var333, var334);
2188 var332 = var335;
2189 varonce331 = var332;
2190 }
2191 var336 = 1;
2192 var337 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var336) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
2193 var338 = NEW_array__Array(&type_array__Arraykernel__Object);
2194 { /* var338 = array_instance Array[Object] */
2195 var339 = 3;
2196 var340 = NEW_array__NativeArray(var339, &type_array__NativeArraykernel__Object);
2197 ((struct instance_array__NativeArray*)var340)->values[0] = (val*) var330;
2198 ((struct instance_array__NativeArray*)var340)->values[1] = (val*) var332;
2199 ((struct instance_array__NativeArray*)var340)->values[2] = (val*) var337;
2200 ((void (*)(val*, val*, long))(var338->class->vft[COLOR_array__Array__with_native]))(var338, var340, var339) /* with_native on <var338:Array[Object]>*/;
2201 }
2202 var341 = ((val* (*)(val*))(var338->class->vft[COLOR_string__Object__to_s]))(var338) /* to_s on <var338:Array[Object]>*/;
2203 if (var_ret == NULL) {
2204 fprintf(stderr, "Runtime error: %s", "Cast failed");
2205 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1645);
2206 show_backtrace(1);
2207 }
2208 var342 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var341, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
2209 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var342) /* ret on <var_v:AbstractCompilerVisitor>*/;
2210 goto RET_LABEL;
2211 } else {
2212 if (varonce343) {
2213 var344 = varonce343;
2214 } else {
2215 var345 = ">=";
2216 var346 = 2;
2217 var347 = string__NativeString__to_s_with_length(var345, var346);
2218 var344 = var347;
2219 varonce343 = var344;
2220 }
2221 var348 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var344) /* == on <var_pname:String>*/;
2222 if (var348){
2223 var349 = 0;
2224 var350 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var349) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
2225 if (varonce351) {
2226 var352 = varonce351;
2227 } else {
2228 var353 = " >= ";
2229 var354 = 4;
2230 var355 = string__NativeString__to_s_with_length(var353, var354);
2231 var352 = var355;
2232 varonce351 = var352;
2233 }
2234 var356 = 1;
2235 var357 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var356) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
2236 var358 = NEW_array__Array(&type_array__Arraykernel__Object);
2237 { /* var358 = array_instance Array[Object] */
2238 var359 = 3;
2239 var360 = NEW_array__NativeArray(var359, &type_array__NativeArraykernel__Object);
2240 ((struct instance_array__NativeArray*)var360)->values[0] = (val*) var350;
2241 ((struct instance_array__NativeArray*)var360)->values[1] = (val*) var352;
2242 ((struct instance_array__NativeArray*)var360)->values[2] = (val*) var357;
2243 ((void (*)(val*, val*, long))(var358->class->vft[COLOR_array__Array__with_native]))(var358, var360, var359) /* with_native on <var358:Array[Object]>*/;
2244 }
2245 var361 = ((val* (*)(val*))(var358->class->vft[COLOR_string__Object__to_s]))(var358) /* to_s on <var358:Array[Object]>*/;
2246 if (var_ret == NULL) {
2247 fprintf(stderr, "Runtime error: %s", "Cast failed");
2248 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1648);
2249 show_backtrace(1);
2250 }
2251 var362 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var361, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
2252 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var362) /* ret on <var_v:AbstractCompilerVisitor>*/;
2253 goto RET_LABEL;
2254 } else {
2255 if (varonce363) {
2256 var364 = varonce363;
2257 } else {
2258 var365 = "to_f";
2259 var366 = 4;
2260 var367 = string__NativeString__to_s_with_length(var365, var366);
2261 var364 = var367;
2262 varonce363 = var364;
2263 }
2264 var368 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var364) /* == on <var_pname:String>*/;
2265 if (var368){
2266 if (varonce369) {
2267 var370 = varonce369;
2268 } else {
2269 var371 = "(double)";
2270 var372 = 8;
2271 var373 = string__NativeString__to_s_with_length(var371, var372);
2272 var370 = var373;
2273 varonce369 = var370;
2274 }
2275 var374 = 0;
2276 var375 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var374) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
2277 var376 = NEW_array__Array(&type_array__Arraykernel__Object);
2278 { /* var376 = array_instance Array[Object] */
2279 var377 = 2;
2280 var378 = NEW_array__NativeArray(var377, &type_array__NativeArraykernel__Object);
2281 ((struct instance_array__NativeArray*)var378)->values[0] = (val*) var370;
2282 ((struct instance_array__NativeArray*)var378)->values[1] = (val*) var375;
2283 ((void (*)(val*, val*, long))(var376->class->vft[COLOR_array__Array__with_native]))(var376, var378, var377) /* with_native on <var376:Array[Object]>*/;
2284 }
2285 var379 = ((val* (*)(val*))(var376->class->vft[COLOR_string__Object__to_s]))(var376) /* to_s on <var376:Array[Object]>*/;
2286 if (var_ret == NULL) {
2287 fprintf(stderr, "Runtime error: %s", "Cast failed");
2288 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1651);
2289 show_backtrace(1);
2290 }
2291 var380 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var379, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
2292 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var380) /* ret on <var_v:AbstractCompilerVisitor>*/;
2293 goto RET_LABEL;
2294 } else {
2295 if (varonce381) {
2296 var382 = varonce381;
2297 } else {
2298 var383 = "ascii";
2299 var384 = 5;
2300 var385 = string__NativeString__to_s_with_length(var383, var384);
2301 var382 = var385;
2302 varonce381 = var382;
2303 }
2304 var386 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var382) /* == on <var_pname:String>*/;
2305 if (var386){
2306 var387 = 0;
2307 var388 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var387) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
2308 var389 = NEW_array__Array(&type_array__Arraykernel__Object);
2309 { /* var389 = array_instance Array[Object] */
2310 var390 = 1;
2311 var391 = NEW_array__NativeArray(var390, &type_array__NativeArraykernel__Object);
2312 ((struct instance_array__NativeArray*)var391)->values[0] = (val*) var388;
2313 ((void (*)(val*, val*, long))(var389->class->vft[COLOR_array__Array__with_native]))(var389, var391, var390) /* with_native on <var389:Array[Object]>*/;
2314 }
2315 var392 = ((val* (*)(val*))(var389->class->vft[COLOR_string__Object__to_s]))(var389) /* to_s on <var389:Array[Object]>*/;
2316 if (var_ret == NULL) {
2317 fprintf(stderr, "Runtime error: %s", "Cast failed");
2318 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1654);
2319 show_backtrace(1);
2320 }
2321 var393 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var392, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
2322 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var393) /* ret on <var_v:AbstractCompilerVisitor>*/;
2323 goto RET_LABEL;
2324 } else {
2325 }
2326 }
2327 }
2328 }
2329 }
2330 }
2331 }
2332 }
2333 }
2334 }
2335 }
2336 }
2337 }
2338 }
2339 }
2340 }
2341 }
2342 }
2343 }
2344 }
2345 } else {
2346 if (varonce394) {
2347 var395 = varonce394;
2348 } else {
2349 var396 = "Char";
2350 var397 = 4;
2351 var398 = string__NativeString__to_s_with_length(var396, var397);
2352 var395 = var398;
2353 varonce394 = var395;
2354 }
2355 var399 = ((short int (*)(val*, val*))(var_cname->class->vft[COLOR_kernel__Object___61d_61d]))(var_cname, var395) /* == on <var_cname:String>*/;
2356 if (var399){
2357 if (varonce400) {
2358 var401 = varonce400;
2359 } else {
2360 var402 = "output";
2361 var403 = 6;
2362 var404 = string__NativeString__to_s_with_length(var402, var403);
2363 var401 = var404;
2364 varonce400 = var401;
2365 }
2366 var405 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var401) /* == on <var_pname:String>*/;
2367 if (var405){
2368 if (varonce406) {
2369 var407 = varonce406;
2370 } else {
2371 var408 = "printf(\"%c\", ";
2372 var409 = 13;
2373 var410 = string__NativeString__to_s_with_length(var408, var409);
2374 var407 = var410;
2375 varonce406 = var407;
2376 }
2377 var411 = ((val* (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Collection__first]))(var_arguments) /* first on <var_arguments:Array[RuntimeVariable]>*/;
2378 if (varonce412) {
2379 var413 = varonce412;
2380 } else {
2381 var414 = ");";
2382 var415 = 2;
2383 var416 = string__NativeString__to_s_with_length(var414, var415);
2384 var413 = var416;
2385 varonce412 = var413;
2386 }
2387 var417 = NEW_array__Array(&type_array__Arraykernel__Object);
2388 { /* var417 = array_instance Array[Object] */
2389 var418 = 3;
2390 var419 = NEW_array__NativeArray(var418, &type_array__NativeArraykernel__Object);
2391 ((struct instance_array__NativeArray*)var419)->values[0] = (val*) var407;
2392 ((struct instance_array__NativeArray*)var419)->values[1] = (val*) var411;
2393 ((struct instance_array__NativeArray*)var419)->values[2] = (val*) var413;
2394 ((void (*)(val*, val*, long))(var417->class->vft[COLOR_array__Array__with_native]))(var417, var419, var418) /* with_native on <var417:Array[Object]>*/;
2395 }
2396 var420 = ((val* (*)(val*))(var417->class->vft[COLOR_string__Object__to_s]))(var417) /* to_s on <var417:Array[Object]>*/;
2397 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var420) /* add on <var_v:AbstractCompilerVisitor>*/;
2398 goto RET_LABEL;
2399 } else {
2400 if (varonce421) {
2401 var422 = varonce421;
2402 } else {
2403 var423 = "object_id";
2404 var424 = 9;
2405 var425 = string__NativeString__to_s_with_length(var423, var424);
2406 var422 = var425;
2407 varonce421 = var422;
2408 }
2409 var426 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var422) /* == on <var_pname:String>*/;
2410 if (var426){
2411 if (varonce427) {
2412 var428 = varonce427;
2413 } else {
2414 var429 = "(long)";
2415 var430 = 6;
2416 var431 = string__NativeString__to_s_with_length(var429, var430);
2417 var428 = var431;
2418 varonce427 = var428;
2419 }
2420 var432 = ((val* (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Collection__first]))(var_arguments) /* first on <var_arguments:Array[RuntimeVariable]>*/;
2421 var433 = NEW_array__Array(&type_array__Arraykernel__Object);
2422 { /* var433 = array_instance Array[Object] */
2423 var434 = 2;
2424 var435 = NEW_array__NativeArray(var434, &type_array__NativeArraykernel__Object);
2425 ((struct instance_array__NativeArray*)var435)->values[0] = (val*) var428;
2426 ((struct instance_array__NativeArray*)var435)->values[1] = (val*) var432;
2427 ((void (*)(val*, val*, long))(var433->class->vft[COLOR_array__Array__with_native]))(var433, var435, var434) /* with_native on <var433:Array[Object]>*/;
2428 }
2429 var436 = ((val* (*)(val*))(var433->class->vft[COLOR_string__Object__to_s]))(var433) /* to_s on <var433:Array[Object]>*/;
2430 if (var_ret == NULL) {
2431 fprintf(stderr, "Runtime error: %s", "Cast failed");
2432 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1662);
2433 show_backtrace(1);
2434 }
2435 var437 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var436, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
2436 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var437) /* ret on <var_v:AbstractCompilerVisitor>*/;
2437 goto RET_LABEL;
2438 } else {
2439 if (varonce438) {
2440 var439 = varonce438;
2441 } else {
2442 var440 = "+";
2443 var441 = 1;
2444 var442 = string__NativeString__to_s_with_length(var440, var441);
2445 var439 = var442;
2446 varonce438 = var439;
2447 }
2448 var443 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var439) /* == on <var_pname:String>*/;
2449 if (var443){
2450 var444 = 0;
2451 var445 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var444) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
2452 if (varonce446) {
2453 var447 = varonce446;
2454 } else {
2455 var448 = " + ";
2456 var449 = 3;
2457 var450 = string__NativeString__to_s_with_length(var448, var449);
2458 var447 = var450;
2459 varonce446 = var447;
2460 }
2461 var451 = 1;
2462 var452 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var451) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
2463 var453 = NEW_array__Array(&type_array__Arraykernel__Object);
2464 { /* var453 = array_instance Array[Object] */
2465 var454 = 3;
2466 var455 = NEW_array__NativeArray(var454, &type_array__NativeArraykernel__Object);
2467 ((struct instance_array__NativeArray*)var455)->values[0] = (val*) var445;
2468 ((struct instance_array__NativeArray*)var455)->values[1] = (val*) var447;
2469 ((struct instance_array__NativeArray*)var455)->values[2] = (val*) var452;
2470 ((void (*)(val*, val*, long))(var453->class->vft[COLOR_array__Array__with_native]))(var453, var455, var454) /* with_native on <var453:Array[Object]>*/;
2471 }
2472 var456 = ((val* (*)(val*))(var453->class->vft[COLOR_string__Object__to_s]))(var453) /* to_s on <var453:Array[Object]>*/;
2473 if (var_ret == NULL) {
2474 fprintf(stderr, "Runtime error: %s", "Cast failed");
2475 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1665);
2476 show_backtrace(1);
2477 }
2478 var457 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var456, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
2479 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var457) /* ret on <var_v:AbstractCompilerVisitor>*/;
2480 goto RET_LABEL;
2481 } else {
2482 if (varonce458) {
2483 var459 = varonce458;
2484 } else {
2485 var460 = "-";
2486 var461 = 1;
2487 var462 = string__NativeString__to_s_with_length(var460, var461);
2488 var459 = var462;
2489 varonce458 = var459;
2490 }
2491 var463 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var459) /* == on <var_pname:String>*/;
2492 if (var463){
2493 var464 = 0;
2494 var465 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var464) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
2495 if (varonce466) {
2496 var467 = varonce466;
2497 } else {
2498 var468 = " - ";
2499 var469 = 3;
2500 var470 = string__NativeString__to_s_with_length(var468, var469);
2501 var467 = var470;
2502 varonce466 = var467;
2503 }
2504 var471 = 1;
2505 var472 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var471) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
2506 var473 = NEW_array__Array(&type_array__Arraykernel__Object);
2507 { /* var473 = array_instance Array[Object] */
2508 var474 = 3;
2509 var475 = NEW_array__NativeArray(var474, &type_array__NativeArraykernel__Object);
2510 ((struct instance_array__NativeArray*)var475)->values[0] = (val*) var465;
2511 ((struct instance_array__NativeArray*)var475)->values[1] = (val*) var467;
2512 ((struct instance_array__NativeArray*)var475)->values[2] = (val*) var472;
2513 ((void (*)(val*, val*, long))(var473->class->vft[COLOR_array__Array__with_native]))(var473, var475, var474) /* with_native on <var473:Array[Object]>*/;
2514 }
2515 var476 = ((val* (*)(val*))(var473->class->vft[COLOR_string__Object__to_s]))(var473) /* to_s on <var473:Array[Object]>*/;
2516 if (var_ret == NULL) {
2517 fprintf(stderr, "Runtime error: %s", "Cast failed");
2518 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1668);
2519 show_backtrace(1);
2520 }
2521 var477 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var476, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
2522 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var477) /* ret on <var_v:AbstractCompilerVisitor>*/;
2523 goto RET_LABEL;
2524 } else {
2525 if (varonce478) {
2526 var479 = varonce478;
2527 } else {
2528 var480 = "successor";
2529 var481 = 9;
2530 var482 = string__NativeString__to_s_with_length(var480, var481);
2531 var479 = var482;
2532 varonce478 = var479;
2533 }
2534 var483 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var479) /* == on <var_pname:String>*/;
2535 if (var483){
2536 var484 = 0;
2537 var485 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var484) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
2538 if (varonce486) {
2539 var487 = varonce486;
2540 } else {
2541 var488 = " + ";
2542 var489 = 3;
2543 var490 = string__NativeString__to_s_with_length(var488, var489);
2544 var487 = var490;
2545 varonce486 = var487;
2546 }
2547 var491 = 1;
2548 var492 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var491) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
2549 var493 = NEW_array__Array(&type_array__Arraykernel__Object);
2550 { /* var493 = array_instance Array[Object] */
2551 var494 = 3;
2552 var495 = NEW_array__NativeArray(var494, &type_array__NativeArraykernel__Object);
2553 ((struct instance_array__NativeArray*)var495)->values[0] = (val*) var485;
2554 ((struct instance_array__NativeArray*)var495)->values[1] = (val*) var487;
2555 ((struct instance_array__NativeArray*)var495)->values[2] = (val*) var492;
2556 ((void (*)(val*, val*, long))(var493->class->vft[COLOR_array__Array__with_native]))(var493, var495, var494) /* with_native on <var493:Array[Object]>*/;
2557 }
2558 var496 = ((val* (*)(val*))(var493->class->vft[COLOR_string__Object__to_s]))(var493) /* to_s on <var493:Array[Object]>*/;
2559 if (var_ret == NULL) {
2560 fprintf(stderr, "Runtime error: %s", "Cast failed");
2561 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1671);
2562 show_backtrace(1);
2563 }
2564 var497 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var496, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
2565 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var497) /* ret on <var_v:AbstractCompilerVisitor>*/;
2566 goto RET_LABEL;
2567 } else {
2568 if (varonce498) {
2569 var499 = varonce498;
2570 } else {
2571 var500 = "predecessor";
2572 var501 = 11;
2573 var502 = string__NativeString__to_s_with_length(var500, var501);
2574 var499 = var502;
2575 varonce498 = var499;
2576 }
2577 var503 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var499) /* == on <var_pname:String>*/;
2578 if (var503){
2579 var504 = 0;
2580 var505 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var504) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
2581 if (varonce506) {
2582 var507 = varonce506;
2583 } else {
2584 var508 = " - ";
2585 var509 = 3;
2586 var510 = string__NativeString__to_s_with_length(var508, var509);
2587 var507 = var510;
2588 varonce506 = var507;
2589 }
2590 var511 = 1;
2591 var512 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var511) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
2592 var513 = NEW_array__Array(&type_array__Arraykernel__Object);
2593 { /* var513 = array_instance Array[Object] */
2594 var514 = 3;
2595 var515 = NEW_array__NativeArray(var514, &type_array__NativeArraykernel__Object);
2596 ((struct instance_array__NativeArray*)var515)->values[0] = (val*) var505;
2597 ((struct instance_array__NativeArray*)var515)->values[1] = (val*) var507;
2598 ((struct instance_array__NativeArray*)var515)->values[2] = (val*) var512;
2599 ((void (*)(val*, val*, long))(var513->class->vft[COLOR_array__Array__with_native]))(var513, var515, var514) /* with_native on <var513:Array[Object]>*/;
2600 }
2601 var516 = ((val* (*)(val*))(var513->class->vft[COLOR_string__Object__to_s]))(var513) /* to_s on <var513:Array[Object]>*/;
2602 if (var_ret == NULL) {
2603 fprintf(stderr, "Runtime error: %s", "Cast failed");
2604 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1674);
2605 show_backtrace(1);
2606 }
2607 var517 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var516, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
2608 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var517) /* ret on <var_v:AbstractCompilerVisitor>*/;
2609 goto RET_LABEL;
2610 } else {
2611 if (varonce518) {
2612 var519 = varonce518;
2613 } else {
2614 var520 = "==";
2615 var521 = 2;
2616 var522 = string__NativeString__to_s_with_length(var520, var521);
2617 var519 = var522;
2618 varonce518 = var519;
2619 }
2620 var523 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var519) /* == on <var_pname:String>*/;
2621 if (var523){
2622 var524 = 0;
2623 var525 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var524) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
2624 var526 = 1;
2625 var527 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var526) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
2626 var528 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__equal_test]))(var_v, var525, var527) /* equal_test on <var_v:AbstractCompilerVisitor>*/;
2627 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var528) /* ret on <var_v:AbstractCompilerVisitor>*/;
2628 goto RET_LABEL;
2629 } else {
2630 if (varonce529) {
2631 var530 = varonce529;
2632 } else {
2633 var531 = "!=";
2634 var532 = 2;
2635 var533 = string__NativeString__to_s_with_length(var531, var532);
2636 var530 = var533;
2637 varonce529 = var530;
2638 }
2639 var534 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var530) /* == on <var_pname:String>*/;
2640 if (var534){
2641 var535 = 0;
2642 var536 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var535) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
2643 var537 = 1;
2644 var538 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var537) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
2645 var539 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__equal_test]))(var_v, var536, var538) /* equal_test on <var_v:AbstractCompilerVisitor>*/;
2646 var_res540 = var539;
2647 if (varonce541) {
2648 var542 = varonce541;
2649 } else {
2650 var543 = "!";
2651 var544 = 1;
2652 var545 = string__NativeString__to_s_with_length(var543, var544);
2653 var542 = var545;
2654 varonce541 = var542;
2655 }
2656 var546 = NEW_array__Array(&type_array__Arraykernel__Object);
2657 { /* var546 = array_instance Array[Object] */
2658 var547 = 2;
2659 var548 = NEW_array__NativeArray(var547, &type_array__NativeArraykernel__Object);
2660 ((struct instance_array__NativeArray*)var548)->values[0] = (val*) var542;
2661 ((struct instance_array__NativeArray*)var548)->values[1] = (val*) var_res540;
2662 ((void (*)(val*, val*, long))(var546->class->vft[COLOR_array__Array__with_native]))(var546, var548, var547) /* with_native on <var546:Array[Object]>*/;
2663 }
2664 var549 = ((val* (*)(val*))(var546->class->vft[COLOR_string__Object__to_s]))(var546) /* to_s on <var546:Array[Object]>*/;
2665 if (var_ret == NULL) {
2666 fprintf(stderr, "Runtime error: %s", "Cast failed");
2667 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1681);
2668 show_backtrace(1);
2669 }
2670 var550 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var549, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
2671 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var550) /* ret on <var_v:AbstractCompilerVisitor>*/;
2672 goto RET_LABEL;
2673 } else {
2674 if (varonce551) {
2675 var552 = varonce551;
2676 } else {
2677 var553 = "succ";
2678 var554 = 4;
2679 var555 = string__NativeString__to_s_with_length(var553, var554);
2680 var552 = var555;
2681 varonce551 = var552;
2682 }
2683 var556 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var552) /* == on <var_pname:String>*/;
2684 if (var556){
2685 var557 = 0;
2686 var558 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var557) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
2687 if (varonce559) {
2688 var560 = varonce559;
2689 } else {
2690 var561 = "+1";
2691 var562 = 2;
2692 var563 = string__NativeString__to_s_with_length(var561, var562);
2693 var560 = var563;
2694 varonce559 = var560;
2695 }
2696 var564 = NEW_array__Array(&type_array__Arraykernel__Object);
2697 { /* var564 = array_instance Array[Object] */
2698 var565 = 2;
2699 var566 = NEW_array__NativeArray(var565, &type_array__NativeArraykernel__Object);
2700 ((struct instance_array__NativeArray*)var566)->values[0] = (val*) var558;
2701 ((struct instance_array__NativeArray*)var566)->values[1] = (val*) var560;
2702 ((void (*)(val*, val*, long))(var564->class->vft[COLOR_array__Array__with_native]))(var564, var566, var565) /* with_native on <var564:Array[Object]>*/;
2703 }
2704 var567 = ((val* (*)(val*))(var564->class->vft[COLOR_string__Object__to_s]))(var564) /* to_s on <var564:Array[Object]>*/;
2705 if (var_ret == NULL) {
2706 fprintf(stderr, "Runtime error: %s", "Cast failed");
2707 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1684);
2708 show_backtrace(1);
2709 }
2710 var568 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var567, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
2711 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var568) /* ret on <var_v:AbstractCompilerVisitor>*/;
2712 goto RET_LABEL;
2713 } else {
2714 if (varonce569) {
2715 var570 = varonce569;
2716 } else {
2717 var571 = "prec";
2718 var572 = 4;
2719 var573 = string__NativeString__to_s_with_length(var571, var572);
2720 var570 = var573;
2721 varonce569 = var570;
2722 }
2723 var574 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var570) /* == on <var_pname:String>*/;
2724 if (var574){
2725 var575 = 0;
2726 var576 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var575) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
2727 if (varonce577) {
2728 var578 = varonce577;
2729 } else {
2730 var579 = "-1";
2731 var580 = 2;
2732 var581 = string__NativeString__to_s_with_length(var579, var580);
2733 var578 = var581;
2734 varonce577 = var578;
2735 }
2736 var582 = NEW_array__Array(&type_array__Arraykernel__Object);
2737 { /* var582 = array_instance Array[Object] */
2738 var583 = 2;
2739 var584 = NEW_array__NativeArray(var583, &type_array__NativeArraykernel__Object);
2740 ((struct instance_array__NativeArray*)var584)->values[0] = (val*) var576;
2741 ((struct instance_array__NativeArray*)var584)->values[1] = (val*) var578;
2742 ((void (*)(val*, val*, long))(var582->class->vft[COLOR_array__Array__with_native]))(var582, var584, var583) /* with_native on <var582:Array[Object]>*/;
2743 }
2744 var585 = ((val* (*)(val*))(var582->class->vft[COLOR_string__Object__to_s]))(var582) /* to_s on <var582:Array[Object]>*/;
2745 if (var_ret == NULL) {
2746 fprintf(stderr, "Runtime error: %s", "Cast failed");
2747 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1687);
2748 show_backtrace(1);
2749 }
2750 var586 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var585, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
2751 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var586) /* ret on <var_v:AbstractCompilerVisitor>*/;
2752 goto RET_LABEL;
2753 } else {
2754 if (varonce587) {
2755 var588 = varonce587;
2756 } else {
2757 var589 = "<";
2758 var590 = 1;
2759 var591 = string__NativeString__to_s_with_length(var589, var590);
2760 var588 = var591;
2761 varonce587 = var588;
2762 }
2763 var592 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var588) /* == on <var_pname:String>*/;
2764 if (var592){
2765 var593 = 0;
2766 var594 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var593) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
2767 if (varonce595) {
2768 var596 = varonce595;
2769 } else {
2770 var597 = " < ";
2771 var598 = 3;
2772 var599 = string__NativeString__to_s_with_length(var597, var598);
2773 var596 = var599;
2774 varonce595 = var596;
2775 }
2776 var600 = 1;
2777 var601 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var600) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
2778 var602 = NEW_array__Array(&type_array__Arraykernel__Object);
2779 { /* var602 = array_instance Array[Object] */
2780 var603 = 3;
2781 var604 = NEW_array__NativeArray(var603, &type_array__NativeArraykernel__Object);
2782 ((struct instance_array__NativeArray*)var604)->values[0] = (val*) var594;
2783 ((struct instance_array__NativeArray*)var604)->values[1] = (val*) var596;
2784 ((struct instance_array__NativeArray*)var604)->values[2] = (val*) var601;
2785 ((void (*)(val*, val*, long))(var602->class->vft[COLOR_array__Array__with_native]))(var602, var604, var603) /* with_native on <var602:Array[Object]>*/;
2786 }
2787 var605 = ((val* (*)(val*))(var602->class->vft[COLOR_string__Object__to_s]))(var602) /* to_s on <var602:Array[Object]>*/;
2788 if (var_ret == NULL) {
2789 fprintf(stderr, "Runtime error: %s", "Cast failed");
2790 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1690);
2791 show_backtrace(1);
2792 }
2793 var606 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var605, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
2794 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var606) /* ret on <var_v:AbstractCompilerVisitor>*/;
2795 goto RET_LABEL;
2796 } else {
2797 if (varonce607) {
2798 var608 = varonce607;
2799 } else {
2800 var609 = ">";
2801 var610 = 1;
2802 var611 = string__NativeString__to_s_with_length(var609, var610);
2803 var608 = var611;
2804 varonce607 = var608;
2805 }
2806 var612 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var608) /* == on <var_pname:String>*/;
2807 if (var612){
2808 var613 = 0;
2809 var614 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var613) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
2810 if (varonce615) {
2811 var616 = varonce615;
2812 } else {
2813 var617 = " > ";
2814 var618 = 3;
2815 var619 = string__NativeString__to_s_with_length(var617, var618);
2816 var616 = var619;
2817 varonce615 = var616;
2818 }
2819 var620 = 1;
2820 var621 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var620) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
2821 var622 = NEW_array__Array(&type_array__Arraykernel__Object);
2822 { /* var622 = array_instance Array[Object] */
2823 var623 = 3;
2824 var624 = NEW_array__NativeArray(var623, &type_array__NativeArraykernel__Object);
2825 ((struct instance_array__NativeArray*)var624)->values[0] = (val*) var614;
2826 ((struct instance_array__NativeArray*)var624)->values[1] = (val*) var616;
2827 ((struct instance_array__NativeArray*)var624)->values[2] = (val*) var621;
2828 ((void (*)(val*, val*, long))(var622->class->vft[COLOR_array__Array__with_native]))(var622, var624, var623) /* with_native on <var622:Array[Object]>*/;
2829 }
2830 var625 = ((val* (*)(val*))(var622->class->vft[COLOR_string__Object__to_s]))(var622) /* to_s on <var622:Array[Object]>*/;
2831 if (var_ret == NULL) {
2832 fprintf(stderr, "Runtime error: %s", "Cast failed");
2833 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1693);
2834 show_backtrace(1);
2835 }
2836 var626 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var625, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
2837 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var626) /* ret on <var_v:AbstractCompilerVisitor>*/;
2838 goto RET_LABEL;
2839 } else {
2840 if (varonce627) {
2841 var628 = varonce627;
2842 } else {
2843 var629 = "<=";
2844 var630 = 2;
2845 var631 = string__NativeString__to_s_with_length(var629, var630);
2846 var628 = var631;
2847 varonce627 = var628;
2848 }
2849 var632 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var628) /* == on <var_pname:String>*/;
2850 if (var632){
2851 var633 = 0;
2852 var634 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var633) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
2853 if (varonce635) {
2854 var636 = varonce635;
2855 } else {
2856 var637 = " <= ";
2857 var638 = 4;
2858 var639 = string__NativeString__to_s_with_length(var637, var638);
2859 var636 = var639;
2860 varonce635 = var636;
2861 }
2862 var640 = 1;
2863 var641 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var640) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
2864 var642 = NEW_array__Array(&type_array__Arraykernel__Object);
2865 { /* var642 = array_instance Array[Object] */
2866 var643 = 3;
2867 var644 = NEW_array__NativeArray(var643, &type_array__NativeArraykernel__Object);
2868 ((struct instance_array__NativeArray*)var644)->values[0] = (val*) var634;
2869 ((struct instance_array__NativeArray*)var644)->values[1] = (val*) var636;
2870 ((struct instance_array__NativeArray*)var644)->values[2] = (val*) var641;
2871 ((void (*)(val*, val*, long))(var642->class->vft[COLOR_array__Array__with_native]))(var642, var644, var643) /* with_native on <var642:Array[Object]>*/;
2872 }
2873 var645 = ((val* (*)(val*))(var642->class->vft[COLOR_string__Object__to_s]))(var642) /* to_s on <var642:Array[Object]>*/;
2874 if (var_ret == NULL) {
2875 fprintf(stderr, "Runtime error: %s", "Cast failed");
2876 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1696);
2877 show_backtrace(1);
2878 }
2879 var646 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var645, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
2880 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var646) /* ret on <var_v:AbstractCompilerVisitor>*/;
2881 goto RET_LABEL;
2882 } else {
2883 if (varonce647) {
2884 var648 = varonce647;
2885 } else {
2886 var649 = ">=";
2887 var650 = 2;
2888 var651 = string__NativeString__to_s_with_length(var649, var650);
2889 var648 = var651;
2890 varonce647 = var648;
2891 }
2892 var652 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var648) /* == on <var_pname:String>*/;
2893 if (var652){
2894 var653 = 0;
2895 var654 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var653) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
2896 if (varonce655) {
2897 var656 = varonce655;
2898 } else {
2899 var657 = " >= ";
2900 var658 = 4;
2901 var659 = string__NativeString__to_s_with_length(var657, var658);
2902 var656 = var659;
2903 varonce655 = var656;
2904 }
2905 var660 = 1;
2906 var661 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var660) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
2907 var662 = NEW_array__Array(&type_array__Arraykernel__Object);
2908 { /* var662 = array_instance Array[Object] */
2909 var663 = 3;
2910 var664 = NEW_array__NativeArray(var663, &type_array__NativeArraykernel__Object);
2911 ((struct instance_array__NativeArray*)var664)->values[0] = (val*) var654;
2912 ((struct instance_array__NativeArray*)var664)->values[1] = (val*) var656;
2913 ((struct instance_array__NativeArray*)var664)->values[2] = (val*) var661;
2914 ((void (*)(val*, val*, long))(var662->class->vft[COLOR_array__Array__with_native]))(var662, var664, var663) /* with_native on <var662:Array[Object]>*/;
2915 }
2916 var665 = ((val* (*)(val*))(var662->class->vft[COLOR_string__Object__to_s]))(var662) /* to_s on <var662:Array[Object]>*/;
2917 if (var_ret == NULL) {
2918 fprintf(stderr, "Runtime error: %s", "Cast failed");
2919 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1699);
2920 show_backtrace(1);
2921 }
2922 var666 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var665, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
2923 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var666) /* ret on <var_v:AbstractCompilerVisitor>*/;
2924 goto RET_LABEL;
2925 } else {
2926 if (varonce667) {
2927 var668 = varonce667;
2928 } else {
2929 var669 = "to_i";
2930 var670 = 4;
2931 var671 = string__NativeString__to_s_with_length(var669, var670);
2932 var668 = var671;
2933 varonce667 = var668;
2934 }
2935 var672 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var668) /* == on <var_pname:String>*/;
2936 if (var672){
2937 var673 = 0;
2938 var674 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var673) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
2939 if (varonce675) {
2940 var676 = varonce675;
2941 } else {
2942 var677 = "-\'0\'";
2943 var678 = 4;
2944 var679 = string__NativeString__to_s_with_length(var677, var678);
2945 var676 = var679;
2946 varonce675 = var676;
2947 }
2948 var680 = NEW_array__Array(&type_array__Arraykernel__Object);
2949 { /* var680 = array_instance Array[Object] */
2950 var681 = 2;
2951 var682 = NEW_array__NativeArray(var681, &type_array__NativeArraykernel__Object);
2952 ((struct instance_array__NativeArray*)var682)->values[0] = (val*) var674;
2953 ((struct instance_array__NativeArray*)var682)->values[1] = (val*) var676;
2954 ((void (*)(val*, val*, long))(var680->class->vft[COLOR_array__Array__with_native]))(var680, var682, var681) /* with_native on <var680:Array[Object]>*/;
2955 }
2956 var683 = ((val* (*)(val*))(var680->class->vft[COLOR_string__Object__to_s]))(var680) /* to_s on <var680:Array[Object]>*/;
2957 if (var_ret == NULL) {
2958 fprintf(stderr, "Runtime error: %s", "Cast failed");
2959 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1702);
2960 show_backtrace(1);
2961 }
2962 var684 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var683, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
2963 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var684) /* ret on <var_v:AbstractCompilerVisitor>*/;
2964 goto RET_LABEL;
2965 } else {
2966 if (varonce685) {
2967 var686 = varonce685;
2968 } else {
2969 var687 = "ascii";
2970 var688 = 5;
2971 var689 = string__NativeString__to_s_with_length(var687, var688);
2972 var686 = var689;
2973 varonce685 = var686;
2974 }
2975 var690 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var686) /* == on <var_pname:String>*/;
2976 if (var690){
2977 if (varonce691) {
2978 var692 = varonce691;
2979 } else {
2980 var693 = "(unsigned char)";
2981 var694 = 15;
2982 var695 = string__NativeString__to_s_with_length(var693, var694);
2983 var692 = var695;
2984 varonce691 = var692;
2985 }
2986 var696 = 0;
2987 var697 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var696) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
2988 var698 = NEW_array__Array(&type_array__Arraykernel__Object);
2989 { /* var698 = array_instance Array[Object] */
2990 var699 = 2;
2991 var700 = NEW_array__NativeArray(var699, &type_array__NativeArraykernel__Object);
2992 ((struct instance_array__NativeArray*)var700)->values[0] = (val*) var692;
2993 ((struct instance_array__NativeArray*)var700)->values[1] = (val*) var697;
2994 ((void (*)(val*, val*, long))(var698->class->vft[COLOR_array__Array__with_native]))(var698, var700, var699) /* with_native on <var698:Array[Object]>*/;
2995 }
2996 var701 = ((val* (*)(val*))(var698->class->vft[COLOR_string__Object__to_s]))(var698) /* to_s on <var698:Array[Object]>*/;
2997 if (var_ret == NULL) {
2998 fprintf(stderr, "Runtime error: %s", "Cast failed");
2999 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1705);
3000 show_backtrace(1);
3001 }
3002 var702 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var701, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
3003 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var702) /* ret on <var_v:AbstractCompilerVisitor>*/;
3004 goto RET_LABEL;
3005 } else {
3006 }
3007 }
3008 }
3009 }
3010 }
3011 }
3012 }
3013 }
3014 }
3015 }
3016 }
3017 }
3018 }
3019 }
3020 }
3021 }
3022 } else {
3023 if (varonce703) {
3024 var704 = varonce703;
3025 } else {
3026 var705 = "Bool";
3027 var706 = 4;
3028 var707 = string__NativeString__to_s_with_length(var705, var706);
3029 var704 = var707;
3030 varonce703 = var704;
3031 }
3032 var708 = ((short int (*)(val*, val*))(var_cname->class->vft[COLOR_kernel__Object___61d_61d]))(var_cname, var704) /* == on <var_cname:String>*/;
3033 if (var708){
3034 if (varonce709) {
3035 var710 = varonce709;
3036 } else {
3037 var711 = "output";
3038 var712 = 6;
3039 var713 = string__NativeString__to_s_with_length(var711, var712);
3040 var710 = var713;
3041 varonce709 = var710;
3042 }
3043 var714 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var710) /* == on <var_pname:String>*/;
3044 if (var714){
3045 if (varonce715) {
3046 var716 = varonce715;
3047 } else {
3048 var717 = "printf(";
3049 var718 = 7;
3050 var719 = string__NativeString__to_s_with_length(var717, var718);
3051 var716 = var719;
3052 varonce715 = var716;
3053 }
3054 var720 = ((val* (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Collection__first]))(var_arguments) /* first on <var_arguments:Array[RuntimeVariable]>*/;
3055 if (varonce721) {
3056 var722 = varonce721;
3057 } else {
3058 var723 = "?\"true\\n\":\"false\\n\");";
3059 var724 = 21;
3060 var725 = string__NativeString__to_s_with_length(var723, var724);
3061 var722 = var725;
3062 varonce721 = var722;
3063 }
3064 var726 = NEW_array__Array(&type_array__Arraykernel__Object);
3065 { /* var726 = array_instance Array[Object] */
3066 var727 = 3;
3067 var728 = NEW_array__NativeArray(var727, &type_array__NativeArraykernel__Object);
3068 ((struct instance_array__NativeArray*)var728)->values[0] = (val*) var716;
3069 ((struct instance_array__NativeArray*)var728)->values[1] = (val*) var720;
3070 ((struct instance_array__NativeArray*)var728)->values[2] = (val*) var722;
3071 ((void (*)(val*, val*, long))(var726->class->vft[COLOR_array__Array__with_native]))(var726, var728, var727) /* with_native on <var726:Array[Object]>*/;
3072 }
3073 var729 = ((val* (*)(val*))(var726->class->vft[COLOR_string__Object__to_s]))(var726) /* to_s on <var726:Array[Object]>*/;
3074 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var729) /* add on <var_v:AbstractCompilerVisitor>*/;
3075 goto RET_LABEL;
3076 } else {
3077 if (varonce730) {
3078 var731 = varonce730;
3079 } else {
3080 var732 = "object_id";
3081 var733 = 9;
3082 var734 = string__NativeString__to_s_with_length(var732, var733);
3083 var731 = var734;
3084 varonce730 = var731;
3085 }
3086 var735 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var731) /* == on <var_pname:String>*/;
3087 if (var735){
3088 if (varonce736) {
3089 var737 = varonce736;
3090 } else {
3091 var738 = "(long)";
3092 var739 = 6;
3093 var740 = string__NativeString__to_s_with_length(var738, var739);
3094 var737 = var740;
3095 varonce736 = var737;
3096 }
3097 var741 = ((val* (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Collection__first]))(var_arguments) /* first on <var_arguments:Array[RuntimeVariable]>*/;
3098 var742 = NEW_array__Array(&type_array__Arraykernel__Object);
3099 { /* var742 = array_instance Array[Object] */
3100 var743 = 2;
3101 var744 = NEW_array__NativeArray(var743, &type_array__NativeArraykernel__Object);
3102 ((struct instance_array__NativeArray*)var744)->values[0] = (val*) var737;
3103 ((struct instance_array__NativeArray*)var744)->values[1] = (val*) var741;
3104 ((void (*)(val*, val*, long))(var742->class->vft[COLOR_array__Array__with_native]))(var742, var744, var743) /* with_native on <var742:Array[Object]>*/;
3105 }
3106 var745 = ((val* (*)(val*))(var742->class->vft[COLOR_string__Object__to_s]))(var742) /* to_s on <var742:Array[Object]>*/;
3107 if (var_ret == NULL) {
3108 fprintf(stderr, "Runtime error: %s", "Cast failed");
3109 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1713);
3110 show_backtrace(1);
3111 }
3112 var746 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var745, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
3113 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var746) /* ret on <var_v:AbstractCompilerVisitor>*/;
3114 goto RET_LABEL;
3115 } else {
3116 if (varonce747) {
3117 var748 = varonce747;
3118 } else {
3119 var749 = "==";
3120 var750 = 2;
3121 var751 = string__NativeString__to_s_with_length(var749, var750);
3122 var748 = var751;
3123 varonce747 = var748;
3124 }
3125 var752 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var748) /* == on <var_pname:String>*/;
3126 if (var752){
3127 var753 = 0;
3128 var754 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var753) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3129 var755 = 1;
3130 var756 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var755) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3131 var757 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__equal_test]))(var_v, var754, var756) /* equal_test on <var_v:AbstractCompilerVisitor>*/;
3132 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var757) /* ret on <var_v:AbstractCompilerVisitor>*/;
3133 goto RET_LABEL;
3134 } else {
3135 if (varonce758) {
3136 var759 = varonce758;
3137 } else {
3138 var760 = "!=";
3139 var761 = 2;
3140 var762 = string__NativeString__to_s_with_length(var760, var761);
3141 var759 = var762;
3142 varonce758 = var759;
3143 }
3144 var763 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var759) /* == on <var_pname:String>*/;
3145 if (var763){
3146 var764 = 0;
3147 var765 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var764) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3148 var766 = 1;
3149 var767 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var766) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3150 var768 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__equal_test]))(var_v, var765, var767) /* equal_test on <var_v:AbstractCompilerVisitor>*/;
3151 var_res769 = var768;
3152 if (varonce770) {
3153 var771 = varonce770;
3154 } else {
3155 var772 = "!";
3156 var773 = 1;
3157 var774 = string__NativeString__to_s_with_length(var772, var773);
3158 var771 = var774;
3159 varonce770 = var771;
3160 }
3161 var775 = NEW_array__Array(&type_array__Arraykernel__Object);
3162 { /* var775 = array_instance Array[Object] */
3163 var776 = 2;
3164 var777 = NEW_array__NativeArray(var776, &type_array__NativeArraykernel__Object);
3165 ((struct instance_array__NativeArray*)var777)->values[0] = (val*) var771;
3166 ((struct instance_array__NativeArray*)var777)->values[1] = (val*) var_res769;
3167 ((void (*)(val*, val*, long))(var775->class->vft[COLOR_array__Array__with_native]))(var775, var777, var776) /* with_native on <var775:Array[Object]>*/;
3168 }
3169 var778 = ((val* (*)(val*))(var775->class->vft[COLOR_string__Object__to_s]))(var775) /* to_s on <var775:Array[Object]>*/;
3170 if (var_ret == NULL) {
3171 fprintf(stderr, "Runtime error: %s", "Cast failed");
3172 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1720);
3173 show_backtrace(1);
3174 }
3175 var779 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var778, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
3176 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var779) /* ret on <var_v:AbstractCompilerVisitor>*/;
3177 goto RET_LABEL;
3178 } else {
3179 }
3180 }
3181 }
3182 }
3183 } else {
3184 if (varonce780) {
3185 var781 = varonce780;
3186 } else {
3187 var782 = "Float";
3188 var783 = 5;
3189 var784 = string__NativeString__to_s_with_length(var782, var783);
3190 var781 = var784;
3191 varonce780 = var781;
3192 }
3193 var785 = ((short int (*)(val*, val*))(var_cname->class->vft[COLOR_kernel__Object___61d_61d]))(var_cname, var781) /* == on <var_cname:String>*/;
3194 if (var785){
3195 if (varonce786) {
3196 var787 = varonce786;
3197 } else {
3198 var788 = "output";
3199 var789 = 6;
3200 var790 = string__NativeString__to_s_with_length(var788, var789);
3201 var787 = var790;
3202 varonce786 = var787;
3203 }
3204 var791 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var787) /* == on <var_pname:String>*/;
3205 if (var791){
3206 if (varonce792) {
3207 var793 = varonce792;
3208 } else {
3209 var794 = "printf(\"%f\\n\", ";
3210 var795 = 15;
3211 var796 = string__NativeString__to_s_with_length(var794, var795);
3212 var793 = var796;
3213 varonce792 = var793;
3214 }
3215 var797 = ((val* (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Collection__first]))(var_arguments) /* first on <var_arguments:Array[RuntimeVariable]>*/;
3216 if (varonce798) {
3217 var799 = varonce798;
3218 } else {
3219 var800 = ");";
3220 var801 = 2;
3221 var802 = string__NativeString__to_s_with_length(var800, var801);
3222 var799 = var802;
3223 varonce798 = var799;
3224 }
3225 var803 = NEW_array__Array(&type_array__Arraykernel__Object);
3226 { /* var803 = array_instance Array[Object] */
3227 var804 = 3;
3228 var805 = NEW_array__NativeArray(var804, &type_array__NativeArraykernel__Object);
3229 ((struct instance_array__NativeArray*)var805)->values[0] = (val*) var793;
3230 ((struct instance_array__NativeArray*)var805)->values[1] = (val*) var797;
3231 ((struct instance_array__NativeArray*)var805)->values[2] = (val*) var799;
3232 ((void (*)(val*, val*, long))(var803->class->vft[COLOR_array__Array__with_native]))(var803, var805, var804) /* with_native on <var803:Array[Object]>*/;
3233 }
3234 var806 = ((val* (*)(val*))(var803->class->vft[COLOR_string__Object__to_s]))(var803) /* to_s on <var803:Array[Object]>*/;
3235 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var806) /* add on <var_v:AbstractCompilerVisitor>*/;
3236 goto RET_LABEL;
3237 } else {
3238 if (varonce807) {
3239 var808 = varonce807;
3240 } else {
3241 var809 = "object_id";
3242 var810 = 9;
3243 var811 = string__NativeString__to_s_with_length(var809, var810);
3244 var808 = var811;
3245 varonce807 = var808;
3246 }
3247 var812 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var808) /* == on <var_pname:String>*/;
3248 if (var812){
3249 if (varonce813) {
3250 var814 = varonce813;
3251 } else {
3252 var815 = "(double)";
3253 var816 = 8;
3254 var817 = string__NativeString__to_s_with_length(var815, var816);
3255 var814 = var817;
3256 varonce813 = var814;
3257 }
3258 var818 = ((val* (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Collection__first]))(var_arguments) /* first on <var_arguments:Array[RuntimeVariable]>*/;
3259 var819 = NEW_array__Array(&type_array__Arraykernel__Object);
3260 { /* var819 = array_instance Array[Object] */
3261 var820 = 2;
3262 var821 = NEW_array__NativeArray(var820, &type_array__NativeArraykernel__Object);
3263 ((struct instance_array__NativeArray*)var821)->values[0] = (val*) var814;
3264 ((struct instance_array__NativeArray*)var821)->values[1] = (val*) var818;
3265 ((void (*)(val*, val*, long))(var819->class->vft[COLOR_array__Array__with_native]))(var819, var821, var820) /* with_native on <var819:Array[Object]>*/;
3266 }
3267 var822 = ((val* (*)(val*))(var819->class->vft[COLOR_string__Object__to_s]))(var819) /* to_s on <var819:Array[Object]>*/;
3268 if (var_ret == NULL) {
3269 fprintf(stderr, "Runtime error: %s", "Cast failed");
3270 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1728);
3271 show_backtrace(1);
3272 }
3273 var823 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var822, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
3274 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var823) /* ret on <var_v:AbstractCompilerVisitor>*/;
3275 goto RET_LABEL;
3276 } else {
3277 if (varonce824) {
3278 var825 = varonce824;
3279 } else {
3280 var826 = "+";
3281 var827 = 1;
3282 var828 = string__NativeString__to_s_with_length(var826, var827);
3283 var825 = var828;
3284 varonce824 = var825;
3285 }
3286 var829 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var825) /* == on <var_pname:String>*/;
3287 if (var829){
3288 var830 = 0;
3289 var831 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var830) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3290 if (varonce832) {
3291 var833 = varonce832;
3292 } else {
3293 var834 = " + ";
3294 var835 = 3;
3295 var836 = string__NativeString__to_s_with_length(var834, var835);
3296 var833 = var836;
3297 varonce832 = var833;
3298 }
3299 var837 = 1;
3300 var838 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var837) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3301 var839 = NEW_array__Array(&type_array__Arraykernel__Object);
3302 { /* var839 = array_instance Array[Object] */
3303 var840 = 3;
3304 var841 = NEW_array__NativeArray(var840, &type_array__NativeArraykernel__Object);
3305 ((struct instance_array__NativeArray*)var841)->values[0] = (val*) var831;
3306 ((struct instance_array__NativeArray*)var841)->values[1] = (val*) var833;
3307 ((struct instance_array__NativeArray*)var841)->values[2] = (val*) var838;
3308 ((void (*)(val*, val*, long))(var839->class->vft[COLOR_array__Array__with_native]))(var839, var841, var840) /* with_native on <var839:Array[Object]>*/;
3309 }
3310 var842 = ((val* (*)(val*))(var839->class->vft[COLOR_string__Object__to_s]))(var839) /* to_s on <var839:Array[Object]>*/;
3311 if (var_ret == NULL) {
3312 fprintf(stderr, "Runtime error: %s", "Cast failed");
3313 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1731);
3314 show_backtrace(1);
3315 }
3316 var843 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var842, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
3317 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var843) /* ret on <var_v:AbstractCompilerVisitor>*/;
3318 goto RET_LABEL;
3319 } else {
3320 if (varonce844) {
3321 var845 = varonce844;
3322 } else {
3323 var846 = "-";
3324 var847 = 1;
3325 var848 = string__NativeString__to_s_with_length(var846, var847);
3326 var845 = var848;
3327 varonce844 = var845;
3328 }
3329 var849 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var845) /* == on <var_pname:String>*/;
3330 if (var849){
3331 var850 = 0;
3332 var851 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var850) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3333 if (varonce852) {
3334 var853 = varonce852;
3335 } else {
3336 var854 = " - ";
3337 var855 = 3;
3338 var856 = string__NativeString__to_s_with_length(var854, var855);
3339 var853 = var856;
3340 varonce852 = var853;
3341 }
3342 var857 = 1;
3343 var858 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var857) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3344 var859 = NEW_array__Array(&type_array__Arraykernel__Object);
3345 { /* var859 = array_instance Array[Object] */
3346 var860 = 3;
3347 var861 = NEW_array__NativeArray(var860, &type_array__NativeArraykernel__Object);
3348 ((struct instance_array__NativeArray*)var861)->values[0] = (val*) var851;
3349 ((struct instance_array__NativeArray*)var861)->values[1] = (val*) var853;
3350 ((struct instance_array__NativeArray*)var861)->values[2] = (val*) var858;
3351 ((void (*)(val*, val*, long))(var859->class->vft[COLOR_array__Array__with_native]))(var859, var861, var860) /* with_native on <var859:Array[Object]>*/;
3352 }
3353 var862 = ((val* (*)(val*))(var859->class->vft[COLOR_string__Object__to_s]))(var859) /* to_s on <var859:Array[Object]>*/;
3354 if (var_ret == NULL) {
3355 fprintf(stderr, "Runtime error: %s", "Cast failed");
3356 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1734);
3357 show_backtrace(1);
3358 }
3359 var863 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var862, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
3360 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var863) /* ret on <var_v:AbstractCompilerVisitor>*/;
3361 goto RET_LABEL;
3362 } else {
3363 if (varonce864) {
3364 var865 = varonce864;
3365 } else {
3366 var866 = "unary -";
3367 var867 = 7;
3368 var868 = string__NativeString__to_s_with_length(var866, var867);
3369 var865 = var868;
3370 varonce864 = var865;
3371 }
3372 var869 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var865) /* == on <var_pname:String>*/;
3373 if (var869){
3374 if (varonce870) {
3375 var871 = varonce870;
3376 } else {
3377 var872 = "-";
3378 var873 = 1;
3379 var874 = string__NativeString__to_s_with_length(var872, var873);
3380 var871 = var874;
3381 varonce870 = var871;
3382 }
3383 var875 = 0;
3384 var876 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var875) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3385 var877 = NEW_array__Array(&type_array__Arraykernel__Object);
3386 { /* var877 = array_instance Array[Object] */
3387 var878 = 2;
3388 var879 = NEW_array__NativeArray(var878, &type_array__NativeArraykernel__Object);
3389 ((struct instance_array__NativeArray*)var879)->values[0] = (val*) var871;
3390 ((struct instance_array__NativeArray*)var879)->values[1] = (val*) var876;
3391 ((void (*)(val*, val*, long))(var877->class->vft[COLOR_array__Array__with_native]))(var877, var879, var878) /* with_native on <var877:Array[Object]>*/;
3392 }
3393 var880 = ((val* (*)(val*))(var877->class->vft[COLOR_string__Object__to_s]))(var877) /* to_s on <var877:Array[Object]>*/;
3394 if (var_ret == NULL) {
3395 fprintf(stderr, "Runtime error: %s", "Cast failed");
3396 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1737);
3397 show_backtrace(1);
3398 }
3399 var881 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var880, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
3400 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var881) /* ret on <var_v:AbstractCompilerVisitor>*/;
3401 goto RET_LABEL;
3402 } else {
3403 if (varonce882) {
3404 var883 = varonce882;
3405 } else {
3406 var884 = "succ";
3407 var885 = 4;
3408 var886 = string__NativeString__to_s_with_length(var884, var885);
3409 var883 = var886;
3410 varonce882 = var883;
3411 }
3412 var887 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var883) /* == on <var_pname:String>*/;
3413 if (var887){
3414 var888 = 0;
3415 var889 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var888) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3416 if (varonce890) {
3417 var891 = varonce890;
3418 } else {
3419 var892 = "+1";
3420 var893 = 2;
3421 var894 = string__NativeString__to_s_with_length(var892, var893);
3422 var891 = var894;
3423 varonce890 = var891;
3424 }
3425 var895 = NEW_array__Array(&type_array__Arraykernel__Object);
3426 { /* var895 = array_instance Array[Object] */
3427 var896 = 2;
3428 var897 = NEW_array__NativeArray(var896, &type_array__NativeArraykernel__Object);
3429 ((struct instance_array__NativeArray*)var897)->values[0] = (val*) var889;
3430 ((struct instance_array__NativeArray*)var897)->values[1] = (val*) var891;
3431 ((void (*)(val*, val*, long))(var895->class->vft[COLOR_array__Array__with_native]))(var895, var897, var896) /* with_native on <var895:Array[Object]>*/;
3432 }
3433 var898 = ((val* (*)(val*))(var895->class->vft[COLOR_string__Object__to_s]))(var895) /* to_s on <var895:Array[Object]>*/;
3434 if (var_ret == NULL) {
3435 fprintf(stderr, "Runtime error: %s", "Cast failed");
3436 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1740);
3437 show_backtrace(1);
3438 }
3439 var899 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var898, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
3440 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var899) /* ret on <var_v:AbstractCompilerVisitor>*/;
3441 goto RET_LABEL;
3442 } else {
3443 if (varonce900) {
3444 var901 = varonce900;
3445 } else {
3446 var902 = "prec";
3447 var903 = 4;
3448 var904 = string__NativeString__to_s_with_length(var902, var903);
3449 var901 = var904;
3450 varonce900 = var901;
3451 }
3452 var905 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var901) /* == on <var_pname:String>*/;
3453 if (var905){
3454 var906 = 0;
3455 var907 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var906) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3456 if (varonce908) {
3457 var909 = varonce908;
3458 } else {
3459 var910 = "-1";
3460 var911 = 2;
3461 var912 = string__NativeString__to_s_with_length(var910, var911);
3462 var909 = var912;
3463 varonce908 = var909;
3464 }
3465 var913 = NEW_array__Array(&type_array__Arraykernel__Object);
3466 { /* var913 = array_instance Array[Object] */
3467 var914 = 2;
3468 var915 = NEW_array__NativeArray(var914, &type_array__NativeArraykernel__Object);
3469 ((struct instance_array__NativeArray*)var915)->values[0] = (val*) var907;
3470 ((struct instance_array__NativeArray*)var915)->values[1] = (val*) var909;
3471 ((void (*)(val*, val*, long))(var913->class->vft[COLOR_array__Array__with_native]))(var913, var915, var914) /* with_native on <var913:Array[Object]>*/;
3472 }
3473 var916 = ((val* (*)(val*))(var913->class->vft[COLOR_string__Object__to_s]))(var913) /* to_s on <var913:Array[Object]>*/;
3474 if (var_ret == NULL) {
3475 fprintf(stderr, "Runtime error: %s", "Cast failed");
3476 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1743);
3477 show_backtrace(1);
3478 }
3479 var917 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var916, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
3480 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var917) /* ret on <var_v:AbstractCompilerVisitor>*/;
3481 goto RET_LABEL;
3482 } else {
3483 if (varonce918) {
3484 var919 = varonce918;
3485 } else {
3486 var920 = "*";
3487 var921 = 1;
3488 var922 = string__NativeString__to_s_with_length(var920, var921);
3489 var919 = var922;
3490 varonce918 = var919;
3491 }
3492 var923 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var919) /* == on <var_pname:String>*/;
3493 if (var923){
3494 var924 = 0;
3495 var925 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var924) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3496 if (varonce926) {
3497 var927 = varonce926;
3498 } else {
3499 var928 = " * ";
3500 var929 = 3;
3501 var930 = string__NativeString__to_s_with_length(var928, var929);
3502 var927 = var930;
3503 varonce926 = var927;
3504 }
3505 var931 = 1;
3506 var932 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var931) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3507 var933 = NEW_array__Array(&type_array__Arraykernel__Object);
3508 { /* var933 = array_instance Array[Object] */
3509 var934 = 3;
3510 var935 = NEW_array__NativeArray(var934, &type_array__NativeArraykernel__Object);
3511 ((struct instance_array__NativeArray*)var935)->values[0] = (val*) var925;
3512 ((struct instance_array__NativeArray*)var935)->values[1] = (val*) var927;
3513 ((struct instance_array__NativeArray*)var935)->values[2] = (val*) var932;
3514 ((void (*)(val*, val*, long))(var933->class->vft[COLOR_array__Array__with_native]))(var933, var935, var934) /* with_native on <var933:Array[Object]>*/;
3515 }
3516 var936 = ((val* (*)(val*))(var933->class->vft[COLOR_string__Object__to_s]))(var933) /* to_s on <var933:Array[Object]>*/;
3517 if (var_ret == NULL) {
3518 fprintf(stderr, "Runtime error: %s", "Cast failed");
3519 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1746);
3520 show_backtrace(1);
3521 }
3522 var937 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var936, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
3523 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var937) /* ret on <var_v:AbstractCompilerVisitor>*/;
3524 goto RET_LABEL;
3525 } else {
3526 if (varonce938) {
3527 var939 = varonce938;
3528 } else {
3529 var940 = "/";
3530 var941 = 1;
3531 var942 = string__NativeString__to_s_with_length(var940, var941);
3532 var939 = var942;
3533 varonce938 = var939;
3534 }
3535 var943 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var939) /* == on <var_pname:String>*/;
3536 if (var943){
3537 var944 = 0;
3538 var945 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var944) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3539 if (varonce946) {
3540 var947 = varonce946;
3541 } else {
3542 var948 = " / ";
3543 var949 = 3;
3544 var950 = string__NativeString__to_s_with_length(var948, var949);
3545 var947 = var950;
3546 varonce946 = var947;
3547 }
3548 var951 = 1;
3549 var952 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var951) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3550 var953 = NEW_array__Array(&type_array__Arraykernel__Object);
3551 { /* var953 = array_instance Array[Object] */
3552 var954 = 3;
3553 var955 = NEW_array__NativeArray(var954, &type_array__NativeArraykernel__Object);
3554 ((struct instance_array__NativeArray*)var955)->values[0] = (val*) var945;
3555 ((struct instance_array__NativeArray*)var955)->values[1] = (val*) var947;
3556 ((struct instance_array__NativeArray*)var955)->values[2] = (val*) var952;
3557 ((void (*)(val*, val*, long))(var953->class->vft[COLOR_array__Array__with_native]))(var953, var955, var954) /* with_native on <var953:Array[Object]>*/;
3558 }
3559 var956 = ((val* (*)(val*))(var953->class->vft[COLOR_string__Object__to_s]))(var953) /* to_s on <var953:Array[Object]>*/;
3560 if (var_ret == NULL) {
3561 fprintf(stderr, "Runtime error: %s", "Cast failed");
3562 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1749);
3563 show_backtrace(1);
3564 }
3565 var957 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var956, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
3566 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var957) /* ret on <var_v:AbstractCompilerVisitor>*/;
3567 goto RET_LABEL;
3568 } else {
3569 if (varonce958) {
3570 var959 = varonce958;
3571 } else {
3572 var960 = "==";
3573 var961 = 2;
3574 var962 = string__NativeString__to_s_with_length(var960, var961);
3575 var959 = var962;
3576 varonce958 = var959;
3577 }
3578 var963 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var959) /* == on <var_pname:String>*/;
3579 if (var963){
3580 var964 = 0;
3581 var965 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var964) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3582 var966 = 1;
3583 var967 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var966) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3584 var968 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__equal_test]))(var_v, var965, var967) /* equal_test on <var_v:AbstractCompilerVisitor>*/;
3585 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var968) /* ret on <var_v:AbstractCompilerVisitor>*/;
3586 goto RET_LABEL;
3587 } else {
3588 if (varonce969) {
3589 var970 = varonce969;
3590 } else {
3591 var971 = "!=";
3592 var972 = 2;
3593 var973 = string__NativeString__to_s_with_length(var971, var972);
3594 var970 = var973;
3595 varonce969 = var970;
3596 }
3597 var974 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var970) /* == on <var_pname:String>*/;
3598 if (var974){
3599 var975 = 0;
3600 var976 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var975) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3601 var977 = 1;
3602 var978 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var977) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3603 var979 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__equal_test]))(var_v, var976, var978) /* equal_test on <var_v:AbstractCompilerVisitor>*/;
3604 var_res980 = var979;
3605 if (varonce981) {
3606 var982 = varonce981;
3607 } else {
3608 var983 = "!";
3609 var984 = 1;
3610 var985 = string__NativeString__to_s_with_length(var983, var984);
3611 var982 = var985;
3612 varonce981 = var982;
3613 }
3614 var986 = NEW_array__Array(&type_array__Arraykernel__Object);
3615 { /* var986 = array_instance Array[Object] */
3616 var987 = 2;
3617 var988 = NEW_array__NativeArray(var987, &type_array__NativeArraykernel__Object);
3618 ((struct instance_array__NativeArray*)var988)->values[0] = (val*) var982;
3619 ((struct instance_array__NativeArray*)var988)->values[1] = (val*) var_res980;
3620 ((void (*)(val*, val*, long))(var986->class->vft[COLOR_array__Array__with_native]))(var986, var988, var987) /* with_native on <var986:Array[Object]>*/;
3621 }
3622 var989 = ((val* (*)(val*))(var986->class->vft[COLOR_string__Object__to_s]))(var986) /* to_s on <var986:Array[Object]>*/;
3623 if (var_ret == NULL) {
3624 fprintf(stderr, "Runtime error: %s", "Cast failed");
3625 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1756);
3626 show_backtrace(1);
3627 }
3628 var990 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var989, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
3629 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var990) /* ret on <var_v:AbstractCompilerVisitor>*/;
3630 goto RET_LABEL;
3631 } else {
3632 if (varonce991) {
3633 var992 = varonce991;
3634 } else {
3635 var993 = "<";
3636 var994 = 1;
3637 var995 = string__NativeString__to_s_with_length(var993, var994);
3638 var992 = var995;
3639 varonce991 = var992;
3640 }
3641 var996 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var992) /* == on <var_pname:String>*/;
3642 if (var996){
3643 var997 = 0;
3644 var998 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var997) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3645 if (varonce999) {
3646 var1000 = varonce999;
3647 } else {
3648 var1001 = " < ";
3649 var1002 = 3;
3650 var1003 = string__NativeString__to_s_with_length(var1001, var1002);
3651 var1000 = var1003;
3652 varonce999 = var1000;
3653 }
3654 var1004 = 1;
3655 var1005 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1004) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3656 var1006 = NEW_array__Array(&type_array__Arraykernel__Object);
3657 { /* var1006 = array_instance Array[Object] */
3658 var1007 = 3;
3659 var1008 = NEW_array__NativeArray(var1007, &type_array__NativeArraykernel__Object);
3660 ((struct instance_array__NativeArray*)var1008)->values[0] = (val*) var998;
3661 ((struct instance_array__NativeArray*)var1008)->values[1] = (val*) var1000;
3662 ((struct instance_array__NativeArray*)var1008)->values[2] = (val*) var1005;
3663 ((void (*)(val*, val*, long))(var1006->class->vft[COLOR_array__Array__with_native]))(var1006, var1008, var1007) /* with_native on <var1006:Array[Object]>*/;
3664 }
3665 var1009 = ((val* (*)(val*))(var1006->class->vft[COLOR_string__Object__to_s]))(var1006) /* to_s on <var1006:Array[Object]>*/;
3666 if (var_ret == NULL) {
3667 fprintf(stderr, "Runtime error: %s", "Cast failed");
3668 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1759);
3669 show_backtrace(1);
3670 }
3671 var1010 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var1009, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
3672 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var1010) /* ret on <var_v:AbstractCompilerVisitor>*/;
3673 goto RET_LABEL;
3674 } else {
3675 if (varonce1011) {
3676 var1012 = varonce1011;
3677 } else {
3678 var1013 = ">";
3679 var1014 = 1;
3680 var1015 = string__NativeString__to_s_with_length(var1013, var1014);
3681 var1012 = var1015;
3682 varonce1011 = var1012;
3683 }
3684 var1016 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var1012) /* == on <var_pname:String>*/;
3685 if (var1016){
3686 var1017 = 0;
3687 var1018 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1017) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3688 if (varonce1019) {
3689 var1020 = varonce1019;
3690 } else {
3691 var1021 = " > ";
3692 var1022 = 3;
3693 var1023 = string__NativeString__to_s_with_length(var1021, var1022);
3694 var1020 = var1023;
3695 varonce1019 = var1020;
3696 }
3697 var1024 = 1;
3698 var1025 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1024) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3699 var1026 = NEW_array__Array(&type_array__Arraykernel__Object);
3700 { /* var1026 = array_instance Array[Object] */
3701 var1027 = 3;
3702 var1028 = NEW_array__NativeArray(var1027, &type_array__NativeArraykernel__Object);
3703 ((struct instance_array__NativeArray*)var1028)->values[0] = (val*) var1018;
3704 ((struct instance_array__NativeArray*)var1028)->values[1] = (val*) var1020;
3705 ((struct instance_array__NativeArray*)var1028)->values[2] = (val*) var1025;
3706 ((void (*)(val*, val*, long))(var1026->class->vft[COLOR_array__Array__with_native]))(var1026, var1028, var1027) /* with_native on <var1026:Array[Object]>*/;
3707 }
3708 var1029 = ((val* (*)(val*))(var1026->class->vft[COLOR_string__Object__to_s]))(var1026) /* to_s on <var1026:Array[Object]>*/;
3709 if (var_ret == NULL) {
3710 fprintf(stderr, "Runtime error: %s", "Cast failed");
3711 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1762);
3712 show_backtrace(1);
3713 }
3714 var1030 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var1029, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
3715 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var1030) /* ret on <var_v:AbstractCompilerVisitor>*/;
3716 goto RET_LABEL;
3717 } else {
3718 if (varonce1031) {
3719 var1032 = varonce1031;
3720 } else {
3721 var1033 = "<=";
3722 var1034 = 2;
3723 var1035 = string__NativeString__to_s_with_length(var1033, var1034);
3724 var1032 = var1035;
3725 varonce1031 = var1032;
3726 }
3727 var1036 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var1032) /* == on <var_pname:String>*/;
3728 if (var1036){
3729 var1037 = 0;
3730 var1038 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1037) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3731 if (varonce1039) {
3732 var1040 = varonce1039;
3733 } else {
3734 var1041 = " <= ";
3735 var1042 = 4;
3736 var1043 = string__NativeString__to_s_with_length(var1041, var1042);
3737 var1040 = var1043;
3738 varonce1039 = var1040;
3739 }
3740 var1044 = 1;
3741 var1045 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1044) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3742 var1046 = NEW_array__Array(&type_array__Arraykernel__Object);
3743 { /* var1046 = array_instance Array[Object] */
3744 var1047 = 3;
3745 var1048 = NEW_array__NativeArray(var1047, &type_array__NativeArraykernel__Object);
3746 ((struct instance_array__NativeArray*)var1048)->values[0] = (val*) var1038;
3747 ((struct instance_array__NativeArray*)var1048)->values[1] = (val*) var1040;
3748 ((struct instance_array__NativeArray*)var1048)->values[2] = (val*) var1045;
3749 ((void (*)(val*, val*, long))(var1046->class->vft[COLOR_array__Array__with_native]))(var1046, var1048, var1047) /* with_native on <var1046:Array[Object]>*/;
3750 }
3751 var1049 = ((val* (*)(val*))(var1046->class->vft[COLOR_string__Object__to_s]))(var1046) /* to_s on <var1046:Array[Object]>*/;
3752 if (var_ret == NULL) {
3753 fprintf(stderr, "Runtime error: %s", "Cast failed");
3754 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1765);
3755 show_backtrace(1);
3756 }
3757 var1050 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var1049, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
3758 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var1050) /* ret on <var_v:AbstractCompilerVisitor>*/;
3759 goto RET_LABEL;
3760 } else {
3761 if (varonce1051) {
3762 var1052 = varonce1051;
3763 } else {
3764 var1053 = ">=";
3765 var1054 = 2;
3766 var1055 = string__NativeString__to_s_with_length(var1053, var1054);
3767 var1052 = var1055;
3768 varonce1051 = var1052;
3769 }
3770 var1056 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var1052) /* == on <var_pname:String>*/;
3771 if (var1056){
3772 var1057 = 0;
3773 var1058 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1057) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3774 if (varonce1059) {
3775 var1060 = varonce1059;
3776 } else {
3777 var1061 = " >= ";
3778 var1062 = 4;
3779 var1063 = string__NativeString__to_s_with_length(var1061, var1062);
3780 var1060 = var1063;
3781 varonce1059 = var1060;
3782 }
3783 var1064 = 1;
3784 var1065 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1064) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3785 var1066 = NEW_array__Array(&type_array__Arraykernel__Object);
3786 { /* var1066 = array_instance Array[Object] */
3787 var1067 = 3;
3788 var1068 = NEW_array__NativeArray(var1067, &type_array__NativeArraykernel__Object);
3789 ((struct instance_array__NativeArray*)var1068)->values[0] = (val*) var1058;
3790 ((struct instance_array__NativeArray*)var1068)->values[1] = (val*) var1060;
3791 ((struct instance_array__NativeArray*)var1068)->values[2] = (val*) var1065;
3792 ((void (*)(val*, val*, long))(var1066->class->vft[COLOR_array__Array__with_native]))(var1066, var1068, var1067) /* with_native on <var1066:Array[Object]>*/;
3793 }
3794 var1069 = ((val* (*)(val*))(var1066->class->vft[COLOR_string__Object__to_s]))(var1066) /* to_s on <var1066:Array[Object]>*/;
3795 if (var_ret == NULL) {
3796 fprintf(stderr, "Runtime error: %s", "Cast failed");
3797 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1768);
3798 show_backtrace(1);
3799 }
3800 var1070 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var1069, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
3801 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var1070) /* ret on <var_v:AbstractCompilerVisitor>*/;
3802 goto RET_LABEL;
3803 } else {
3804 if (varonce1071) {
3805 var1072 = varonce1071;
3806 } else {
3807 var1073 = "to_i";
3808 var1074 = 4;
3809 var1075 = string__NativeString__to_s_with_length(var1073, var1074);
3810 var1072 = var1075;
3811 varonce1071 = var1072;
3812 }
3813 var1076 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var1072) /* == on <var_pname:String>*/;
3814 if (var1076){
3815 if (varonce1077) {
3816 var1078 = varonce1077;
3817 } else {
3818 var1079 = "(long)";
3819 var1080 = 6;
3820 var1081 = string__NativeString__to_s_with_length(var1079, var1080);
3821 var1078 = var1081;
3822 varonce1077 = var1078;
3823 }
3824 var1082 = 0;
3825 var1083 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1082) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3826 var1084 = NEW_array__Array(&type_array__Arraykernel__Object);
3827 { /* var1084 = array_instance Array[Object] */
3828 var1085 = 2;
3829 var1086 = NEW_array__NativeArray(var1085, &type_array__NativeArraykernel__Object);
3830 ((struct instance_array__NativeArray*)var1086)->values[0] = (val*) var1078;
3831 ((struct instance_array__NativeArray*)var1086)->values[1] = (val*) var1083;
3832 ((void (*)(val*, val*, long))(var1084->class->vft[COLOR_array__Array__with_native]))(var1084, var1086, var1085) /* with_native on <var1084:Array[Object]>*/;
3833 }
3834 var1087 = ((val* (*)(val*))(var1084->class->vft[COLOR_string__Object__to_s]))(var1084) /* to_s on <var1084:Array[Object]>*/;
3835 if (var_ret == NULL) {
3836 fprintf(stderr, "Runtime error: %s", "Cast failed");
3837 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1771);
3838 show_backtrace(1);
3839 }
3840 var1088 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var1087, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
3841 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var1088) /* ret on <var_v:AbstractCompilerVisitor>*/;
3842 goto RET_LABEL;
3843 } else {
3844 }
3845 }
3846 }
3847 }
3848 }
3849 }
3850 }
3851 }
3852 }
3853 }
3854 }
3855 }
3856 }
3857 }
3858 }
3859 }
3860 } else {
3861 if (varonce1089) {
3862 var1090 = varonce1089;
3863 } else {
3864 var1091 = "NativeString";
3865 var1092 = 12;
3866 var1093 = string__NativeString__to_s_with_length(var1091, var1092);
3867 var1090 = var1093;
3868 varonce1089 = var1090;
3869 }
3870 var1094 = ((short int (*)(val*, val*))(var_cname->class->vft[COLOR_kernel__Object___61d_61d]))(var_cname, var1090) /* == on <var_cname:String>*/;
3871 if (var1094){
3872 if (varonce1095) {
3873 var1096 = varonce1095;
3874 } else {
3875 var1097 = "[]";
3876 var1098 = 2;
3877 var1099 = string__NativeString__to_s_with_length(var1097, var1098);
3878 var1096 = var1099;
3879 varonce1095 = var1096;
3880 }
3881 var1100 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var1096) /* == on <var_pname:String>*/;
3882 if (var1100){
3883 var1101 = 0;
3884 var1102 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1101) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3885 if (varonce1103) {
3886 var1104 = varonce1103;
3887 } else {
3888 var1105 = "[";
3889 var1106 = 1;
3890 var1107 = string__NativeString__to_s_with_length(var1105, var1106);
3891 var1104 = var1107;
3892 varonce1103 = var1104;
3893 }
3894 var1108 = 1;
3895 var1109 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1108) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3896 if (varonce1110) {
3897 var1111 = varonce1110;
3898 } else {
3899 var1112 = "]";
3900 var1113 = 1;
3901 var1114 = string__NativeString__to_s_with_length(var1112, var1113);
3902 var1111 = var1114;
3903 varonce1110 = var1111;
3904 }
3905 var1115 = NEW_array__Array(&type_array__Arraykernel__Object);
3906 { /* var1115 = array_instance Array[Object] */
3907 var1116 = 4;
3908 var1117 = NEW_array__NativeArray(var1116, &type_array__NativeArraykernel__Object);
3909 ((struct instance_array__NativeArray*)var1117)->values[0] = (val*) var1102;
3910 ((struct instance_array__NativeArray*)var1117)->values[1] = (val*) var1104;
3911 ((struct instance_array__NativeArray*)var1117)->values[2] = (val*) var1109;
3912 ((struct instance_array__NativeArray*)var1117)->values[3] = (val*) var1111;
3913 ((void (*)(val*, val*, long))(var1115->class->vft[COLOR_array__Array__with_native]))(var1115, var1117, var1116) /* with_native on <var1115:Array[Object]>*/;
3914 }
3915 var1118 = ((val* (*)(val*))(var1115->class->vft[COLOR_string__Object__to_s]))(var1115) /* to_s on <var1115:Array[Object]>*/;
3916 if (var_ret == NULL) {
3917 fprintf(stderr, "Runtime error: %s", "Cast failed");
3918 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1776);
3919 show_backtrace(1);
3920 }
3921 var1119 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var1118, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
3922 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var1119) /* ret on <var_v:AbstractCompilerVisitor>*/;
3923 goto RET_LABEL;
3924 } else {
3925 if (varonce1120) {
3926 var1121 = varonce1120;
3927 } else {
3928 var1122 = "[]=";
3929 var1123 = 3;
3930 var1124 = string__NativeString__to_s_with_length(var1122, var1123);
3931 var1121 = var1124;
3932 varonce1120 = var1121;
3933 }
3934 var1125 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var1121) /* == on <var_pname:String>*/;
3935 if (var1125){
3936 var1126 = 0;
3937 var1127 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1126) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3938 if (varonce1128) {
3939 var1129 = varonce1128;
3940 } else {
3941 var1130 = "[";
3942 var1131 = 1;
3943 var1132 = string__NativeString__to_s_with_length(var1130, var1131);
3944 var1129 = var1132;
3945 varonce1128 = var1129;
3946 }
3947 var1133 = 1;
3948 var1134 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1133) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3949 if (varonce1135) {
3950 var1136 = varonce1135;
3951 } else {
3952 var1137 = "]=";
3953 var1138 = 2;
3954 var1139 = string__NativeString__to_s_with_length(var1137, var1138);
3955 var1136 = var1139;
3956 varonce1135 = var1136;
3957 }
3958 var1140 = 2;
3959 var1141 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1140) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
3960 if (varonce1142) {
3961 var1143 = varonce1142;
3962 } else {
3963 var1144 = ";";
3964 var1145 = 1;
3965 var1146 = string__NativeString__to_s_with_length(var1144, var1145);
3966 var1143 = var1146;
3967 varonce1142 = var1143;
3968 }
3969 var1147 = NEW_array__Array(&type_array__Arraykernel__Object);
3970 { /* var1147 = array_instance Array[Object] */
3971 var1148 = 6;
3972 var1149 = NEW_array__NativeArray(var1148, &type_array__NativeArraykernel__Object);
3973 ((struct instance_array__NativeArray*)var1149)->values[0] = (val*) var1127;
3974 ((struct instance_array__NativeArray*)var1149)->values[1] = (val*) var1129;
3975 ((struct instance_array__NativeArray*)var1149)->values[2] = (val*) var1134;
3976 ((struct instance_array__NativeArray*)var1149)->values[3] = (val*) var1136;
3977 ((struct instance_array__NativeArray*)var1149)->values[4] = (val*) var1141;
3978 ((struct instance_array__NativeArray*)var1149)->values[5] = (val*) var1143;
3979 ((void (*)(val*, val*, long))(var1147->class->vft[COLOR_array__Array__with_native]))(var1147, var1149, var1148) /* with_native on <var1147:Array[Object]>*/;
3980 }
3981 var1150 = ((val* (*)(val*))(var1147->class->vft[COLOR_string__Object__to_s]))(var1147) /* to_s on <var1147:Array[Object]>*/;
3982 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var1150) /* add on <var_v:AbstractCompilerVisitor>*/;
3983 goto RET_LABEL;
3984 } else {
3985 if (varonce1151) {
3986 var1152 = varonce1151;
3987 } else {
3988 var1153 = "copy_to";
3989 var1154 = 7;
3990 var1155 = string__NativeString__to_s_with_length(var1153, var1154);
3991 var1152 = var1155;
3992 varonce1151 = var1152;
3993 }
3994 var1156 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var1152) /* == on <var_pname:String>*/;
3995 if (var1156){
3996 if (varonce1157) {
3997 var1158 = varonce1157;
3998 } else {
3999 var1159 = "memcpy(";
4000 var1160 = 7;
4001 var1161 = string__NativeString__to_s_with_length(var1159, var1160);
4002 var1158 = var1161;
4003 varonce1157 = var1158;
4004 }
4005 var1162 = 1;
4006 var1163 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1162) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
4007 if (varonce1164) {
4008 var1165 = varonce1164;
4009 } else {
4010 var1166 = "+";
4011 var1167 = 1;
4012 var1168 = string__NativeString__to_s_with_length(var1166, var1167);
4013 var1165 = var1168;
4014 varonce1164 = var1165;
4015 }
4016 var1169 = 4;
4017 var1170 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1169) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
4018 if (varonce1171) {
4019 var1172 = varonce1171;
4020 } else {
4021 var1173 = ",";
4022 var1174 = 1;
4023 var1175 = string__NativeString__to_s_with_length(var1173, var1174);
4024 var1172 = var1175;
4025 varonce1171 = var1172;
4026 }
4027 var1176 = 0;
4028 var1177 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1176) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
4029 if (varonce1178) {
4030 var1179 = varonce1178;
4031 } else {
4032 var1180 = "+";
4033 var1181 = 1;
4034 var1182 = string__NativeString__to_s_with_length(var1180, var1181);
4035 var1179 = var1182;
4036 varonce1178 = var1179;
4037 }
4038 var1183 = 3;
4039 var1184 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1183) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
4040 if (varonce1185) {
4041 var1186 = varonce1185;
4042 } else {
4043 var1187 = ",";
4044 var1188 = 1;
4045 var1189 = string__NativeString__to_s_with_length(var1187, var1188);
4046 var1186 = var1189;
4047 varonce1185 = var1186;
4048 }
4049 var1190 = 2;
4050 var1191 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1190) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
4051 if (varonce1192) {
4052 var1193 = varonce1192;
4053 } else {
4054 var1194 = ");";
4055 var1195 = 2;
4056 var1196 = string__NativeString__to_s_with_length(var1194, var1195);
4057 var1193 = var1196;
4058 varonce1192 = var1193;
4059 }
4060 var1197 = NEW_array__Array(&type_array__Arraykernel__Object);
4061 { /* var1197 = array_instance Array[Object] */
4062 var1198 = 11;
4063 var1199 = NEW_array__NativeArray(var1198, &type_array__NativeArraykernel__Object);
4064 ((struct instance_array__NativeArray*)var1199)->values[0] = (val*) var1158;
4065 ((struct instance_array__NativeArray*)var1199)->values[1] = (val*) var1163;
4066 ((struct instance_array__NativeArray*)var1199)->values[2] = (val*) var1165;
4067 ((struct instance_array__NativeArray*)var1199)->values[3] = (val*) var1170;
4068 ((struct instance_array__NativeArray*)var1199)->values[4] = (val*) var1172;
4069 ((struct instance_array__NativeArray*)var1199)->values[5] = (val*) var1177;
4070 ((struct instance_array__NativeArray*)var1199)->values[6] = (val*) var1179;
4071 ((struct instance_array__NativeArray*)var1199)->values[7] = (val*) var1184;
4072 ((struct instance_array__NativeArray*)var1199)->values[8] = (val*) var1186;
4073 ((struct instance_array__NativeArray*)var1199)->values[9] = (val*) var1191;
4074 ((struct instance_array__NativeArray*)var1199)->values[10] = (val*) var1193;
4075 ((void (*)(val*, val*, long))(var1197->class->vft[COLOR_array__Array__with_native]))(var1197, var1199, var1198) /* with_native on <var1197:Array[Object]>*/;
4076 }
4077 var1200 = ((val* (*)(val*))(var1197->class->vft[COLOR_string__Object__to_s]))(var1197) /* to_s on <var1197:Array[Object]>*/;
4078 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var1200) /* add on <var_v:AbstractCompilerVisitor>*/;
4079 goto RET_LABEL;
4080 } else {
4081 if (varonce1201) {
4082 var1202 = varonce1201;
4083 } else {
4084 var1203 = "atoi";
4085 var1204 = 4;
4086 var1205 = string__NativeString__to_s_with_length(var1203, var1204);
4087 var1202 = var1205;
4088 varonce1201 = var1202;
4089 }
4090 var1206 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var1202) /* == on <var_pname:String>*/;
4091 if (var1206){
4092 if (varonce1207) {
4093 var1208 = varonce1207;
4094 } else {
4095 var1209 = "atoi(";
4096 var1210 = 5;
4097 var1211 = string__NativeString__to_s_with_length(var1209, var1210);
4098 var1208 = var1211;
4099 varonce1207 = var1208;
4100 }
4101 var1212 = 0;
4102 var1213 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1212) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
4103 if (varonce1214) {
4104 var1215 = varonce1214;
4105 } else {
4106 var1216 = ");";
4107 var1217 = 2;
4108 var1218 = string__NativeString__to_s_with_length(var1216, var1217);
4109 var1215 = var1218;
4110 varonce1214 = var1215;
4111 }
4112 var1219 = NEW_array__Array(&type_array__Arraykernel__Object);
4113 { /* var1219 = array_instance Array[Object] */
4114 var1220 = 3;
4115 var1221 = NEW_array__NativeArray(var1220, &type_array__NativeArraykernel__Object);
4116 ((struct instance_array__NativeArray*)var1221)->values[0] = (val*) var1208;
4117 ((struct instance_array__NativeArray*)var1221)->values[1] = (val*) var1213;
4118 ((struct instance_array__NativeArray*)var1221)->values[2] = (val*) var1215;
4119 ((void (*)(val*, val*, long))(var1219->class->vft[COLOR_array__Array__with_native]))(var1219, var1221, var1220) /* with_native on <var1219:Array[Object]>*/;
4120 }
4121 var1222 = ((val* (*)(val*))(var1219->class->vft[COLOR_string__Object__to_s]))(var1219) /* to_s on <var1219:Array[Object]>*/;
4122 if (var_ret == NULL) {
4123 fprintf(stderr, "Runtime error: %s", "Cast failed");
4124 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1785);
4125 show_backtrace(1);
4126 }
4127 var1223 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var1222, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
4128 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var1223) /* ret on <var_v:AbstractCompilerVisitor>*/;
4129 goto RET_LABEL;
4130 } else {
4131 }
4132 }
4133 }
4134 }
4135 } else {
4136 if (varonce1224) {
4137 var1225 = varonce1224;
4138 } else {
4139 var1226 = "NativeArray";
4140 var1227 = 11;
4141 var1228 = string__NativeString__to_s_with_length(var1226, var1227);
4142 var1225 = var1228;
4143 varonce1224 = var1225;
4144 }
4145 var1229 = ((short int (*)(val*, val*))(var_cname->class->vft[COLOR_kernel__Object___61d_61d]))(var_cname, var1225) /* == on <var_cname:String>*/;
4146 if (var1229){
4147 ((void (*)(val*, val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__native_array_def]))(var_v, var_pname, var_ret, var_arguments) /* native_array_def on <var_v:AbstractCompilerVisitor>*/;
4148 goto RET_LABEL;
4149 } else {
4150 }
4151 }
4152 }
4153 }
4154 }
4155 }
4156 if (varonce1230) {
4157 var1231 = varonce1230;
4158 } else {
4159 var1232 = "exit";
4160 var1233 = 4;
4161 var1234 = string__NativeString__to_s_with_length(var1232, var1233);
4162 var1231 = var1234;
4163 varonce1230 = var1231;
4164 }
4165 var1235 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var1231) /* == on <var_pname:String>*/;
4166 if (var1235){
4167 if (varonce1236) {
4168 var1237 = varonce1236;
4169 } else {
4170 var1238 = "exit(";
4171 var1239 = 5;
4172 var1240 = string__NativeString__to_s_with_length(var1238, var1239);
4173 var1237 = var1240;
4174 varonce1236 = var1237;
4175 }
4176 var1241 = 1;
4177 var1242 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1241) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
4178 if (varonce1243) {
4179 var1244 = varonce1243;
4180 } else {
4181 var1245 = ");";
4182 var1246 = 2;
4183 var1247 = string__NativeString__to_s_with_length(var1245, var1246);
4184 var1244 = var1247;
4185 varonce1243 = var1244;
4186 }
4187 var1248 = NEW_array__Array(&type_array__Arraykernel__Object);
4188 { /* var1248 = array_instance Array[Object] */
4189 var1249 = 3;
4190 var1250 = NEW_array__NativeArray(var1249, &type_array__NativeArraykernel__Object);
4191 ((struct instance_array__NativeArray*)var1250)->values[0] = (val*) var1237;
4192 ((struct instance_array__NativeArray*)var1250)->values[1] = (val*) var1242;
4193 ((struct instance_array__NativeArray*)var1250)->values[2] = (val*) var1244;
4194 ((void (*)(val*, val*, long))(var1248->class->vft[COLOR_array__Array__with_native]))(var1248, var1250, var1249) /* with_native on <var1248:Array[Object]>*/;
4195 }
4196 var1251 = ((val* (*)(val*))(var1248->class->vft[COLOR_string__Object__to_s]))(var1248) /* to_s on <var1248:Array[Object]>*/;
4197 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var1251) /* add on <var_v:AbstractCompilerVisitor>*/;
4198 goto RET_LABEL;
4199 } else {
4200 if (varonce1252) {
4201 var1253 = varonce1252;
4202 } else {
4203 var1254 = "sys";
4204 var1255 = 3;
4205 var1256 = string__NativeString__to_s_with_length(var1254, var1255);
4206 var1253 = var1256;
4207 varonce1252 = var1253;
4208 }
4209 var1257 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var1253) /* == on <var_pname:String>*/;
4210 if (var1257){
4211 if (varonce1258) {
4212 var1259 = varonce1258;
4213 } else {
4214 var1260 = "glob_sys";
4215 var1261 = 8;
4216 var1262 = string__NativeString__to_s_with_length(var1260, var1261);
4217 var1259 = var1262;
4218 varonce1258 = var1259;
4219 }
4220 if (var_ret == NULL) {
4221 fprintf(stderr, "Runtime error: %s", "Cast failed");
4222 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1796);
4223 show_backtrace(1);
4224 }
4225 var1263 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var1259, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
4226 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var1263) /* ret on <var_v:AbstractCompilerVisitor>*/;
4227 goto RET_LABEL;
4228 } else {
4229 if (varonce1264) {
4230 var1265 = varonce1264;
4231 } else {
4232 var1266 = "calloc_string";
4233 var1267 = 13;
4234 var1268 = string__NativeString__to_s_with_length(var1266, var1267);
4235 var1265 = var1268;
4236 varonce1264 = var1265;
4237 }
4238 var1269 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var1265) /* == on <var_pname:String>*/;
4239 if (var1269){
4240 if (varonce1270) {
4241 var1271 = varonce1270;
4242 } else {
4243 var1272 = "(char*)nit_alloc(";
4244 var1273 = 17;
4245 var1274 = string__NativeString__to_s_with_length(var1272, var1273);
4246 var1271 = var1274;
4247 varonce1270 = var1271;
4248 }
4249 var1275 = 1;
4250 var1276 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1275) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
4251 if (varonce1277) {
4252 var1278 = varonce1277;
4253 } else {
4254 var1279 = ")";
4255 var1280 = 1;
4256 var1281 = string__NativeString__to_s_with_length(var1279, var1280);
4257 var1278 = var1281;
4258 varonce1277 = var1278;
4259 }
4260 var1282 = NEW_array__Array(&type_array__Arraykernel__Object);
4261 { /* var1282 = array_instance Array[Object] */
4262 var1283 = 3;
4263 var1284 = NEW_array__NativeArray(var1283, &type_array__NativeArraykernel__Object);
4264 ((struct instance_array__NativeArray*)var1284)->values[0] = (val*) var1271;
4265 ((struct instance_array__NativeArray*)var1284)->values[1] = (val*) var1276;
4266 ((struct instance_array__NativeArray*)var1284)->values[2] = (val*) var1278;
4267 ((void (*)(val*, val*, long))(var1282->class->vft[COLOR_array__Array__with_native]))(var1282, var1284, var1283) /* with_native on <var1282:Array[Object]>*/;
4268 }
4269 var1285 = ((val* (*)(val*))(var1282->class->vft[COLOR_string__Object__to_s]))(var1282) /* to_s on <var1282:Array[Object]>*/;
4270 if (var_ret == NULL) {
4271 fprintf(stderr, "Runtime error: %s", "Cast failed");
4272 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1799);
4273 show_backtrace(1);
4274 }
4275 var1286 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var1285, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
4276 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var1286) /* ret on <var_v:AbstractCompilerVisitor>*/;
4277 goto RET_LABEL;
4278 } else {
4279 if (varonce1287) {
4280 var1288 = varonce1287;
4281 } else {
4282 var1289 = "calloc_array";
4283 var1290 = 12;
4284 var1291 = string__NativeString__to_s_with_length(var1289, var1290);
4285 var1288 = var1291;
4286 varonce1287 = var1288;
4287 }
4288 var1292 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var1288) /* == on <var_pname:String>*/;
4289 if (var1292){
4290 if (var_ret == NULL) {
4291 fprintf(stderr, "Runtime error: %s", "Cast failed");
4292 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1802);
4293 show_backtrace(1);
4294 }
4295 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__calloc_array]))(var_v, var_ret, var_arguments) /* calloc_array on <var_v:AbstractCompilerVisitor>*/;
4296 goto RET_LABEL;
4297 } else {
4298 if (varonce1293) {
4299 var1294 = varonce1293;
4300 } else {
4301 var1295 = "object_id";
4302 var1296 = 9;
4303 var1297 = string__NativeString__to_s_with_length(var1295, var1296);
4304 var1294 = var1297;
4305 varonce1293 = var1294;
4306 }
4307 var1298 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var1294) /* == on <var_pname:String>*/;
4308 if (var1298){
4309 if (varonce1299) {
4310 var1300 = varonce1299;
4311 } else {
4312 var1301 = "(long)";
4313 var1302 = 6;
4314 var1303 = string__NativeString__to_s_with_length(var1301, var1302);
4315 var1300 = var1303;
4316 varonce1299 = var1300;
4317 }
4318 var1304 = ((val* (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Collection__first]))(var_arguments) /* first on <var_arguments:Array[RuntimeVariable]>*/;
4319 var1305 = NEW_array__Array(&type_array__Arraykernel__Object);
4320 { /* var1305 = array_instance Array[Object] */
4321 var1306 = 2;
4322 var1307 = NEW_array__NativeArray(var1306, &type_array__NativeArraykernel__Object);
4323 ((struct instance_array__NativeArray*)var1307)->values[0] = (val*) var1300;
4324 ((struct instance_array__NativeArray*)var1307)->values[1] = (val*) var1304;
4325 ((void (*)(val*, val*, long))(var1305->class->vft[COLOR_array__Array__with_native]))(var1305, var1307, var1306) /* with_native on <var1305:Array[Object]>*/;
4326 }
4327 var1308 = ((val* (*)(val*))(var1305->class->vft[COLOR_string__Object__to_s]))(var1305) /* to_s on <var1305:Array[Object]>*/;
4328 if (var_ret == NULL) {
4329 fprintf(stderr, "Runtime error: %s", "Cast failed");
4330 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1805);
4331 show_backtrace(1);
4332 }
4333 var1309 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var1308, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
4334 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var1309) /* ret on <var_v:AbstractCompilerVisitor>*/;
4335 goto RET_LABEL;
4336 } else {
4337 if (varonce1310) {
4338 var1311 = varonce1310;
4339 } else {
4340 var1312 = "is_same_type";
4341 var1313 = 12;
4342 var1314 = string__NativeString__to_s_with_length(var1312, var1313);
4343 var1311 = var1314;
4344 varonce1310 = var1311;
4345 }
4346 var1315 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var1311) /* == on <var_pname:String>*/;
4347 if (var1315){
4348 var1316 = 0;
4349 var1317 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1316) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
4350 var1318 = 1;
4351 var1319 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1318) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
4352 var1320 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__is_same_type_test]))(var_v, var1317, var1319) /* is_same_type_test on <var_v:AbstractCompilerVisitor>*/;
4353 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var1320) /* ret on <var_v:AbstractCompilerVisitor>*/;
4354 goto RET_LABEL;
4355 } else {
4356 if (varonce1321) {
4357 var1322 = varonce1321;
4358 } else {
4359 var1323 = "is_same_instance";
4360 var1324 = 16;
4361 var1325 = string__NativeString__to_s_with_length(var1323, var1324);
4362 var1322 = var1325;
4363 varonce1321 = var1322;
4364 }
4365 var1326 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var1322) /* == on <var_pname:String>*/;
4366 if (var1326){
4367 var1327 = 0;
4368 var1328 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1327) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
4369 var1329 = 1;
4370 var1330 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1329) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
4371 var1331 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__equal_test]))(var_v, var1328, var1330) /* equal_test on <var_v:AbstractCompilerVisitor>*/;
4372 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var1331) /* ret on <var_v:AbstractCompilerVisitor>*/;
4373 goto RET_LABEL;
4374 } else {
4375 if (varonce1332) {
4376 var1333 = varonce1332;
4377 } else {
4378 var1334 = "output_class_name";
4379 var1335 = 17;
4380 var1336 = string__NativeString__to_s_with_length(var1334, var1335);
4381 var1333 = var1336;
4382 varonce1332 = var1333;
4383 }
4384 var1337 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var1333) /* == on <var_pname:String>*/;
4385 if (var1337){
4386 var1338 = ((val* (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Collection__first]))(var_arguments) /* first on <var_arguments:Array[RuntimeVariable]>*/;
4387 var1339 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__class_name_string]))(var_v, var1338) /* class_name_string on <var_v:AbstractCompilerVisitor>*/;
4388 var_nat = var1339;
4389 if (varonce1340) {
4390 var1341 = varonce1340;
4391 } else {
4392 var1342 = "printf(\"%s\\n\", ";
4393 var1343 = 15;
4394 var1344 = string__NativeString__to_s_with_length(var1342, var1343);
4395 var1341 = var1344;
4396 varonce1340 = var1341;
4397 }
4398 if (varonce1345) {
4399 var1346 = varonce1345;
4400 } else {
4401 var1347 = ");";
4402 var1348 = 2;
4403 var1349 = string__NativeString__to_s_with_length(var1347, var1348);
4404 var1346 = var1349;
4405 varonce1345 = var1346;
4406 }
4407 var1350 = NEW_array__Array(&type_array__Arraykernel__Object);
4408 { /* var1350 = array_instance Array[Object] */
4409 var1351 = 3;
4410 var1352 = NEW_array__NativeArray(var1351, &type_array__NativeArraykernel__Object);
4411 ((struct instance_array__NativeArray*)var1352)->values[0] = (val*) var1341;
4412 ((struct instance_array__NativeArray*)var1352)->values[1] = (val*) var_nat;
4413 ((struct instance_array__NativeArray*)var1352)->values[2] = (val*) var1346;
4414 ((void (*)(val*, val*, long))(var1350->class->vft[COLOR_array__Array__with_native]))(var1350, var1352, var1351) /* with_native on <var1350:Array[Object]>*/;
4415 }
4416 var1353 = ((val* (*)(val*))(var1350->class->vft[COLOR_string__Object__to_s]))(var1350) /* to_s on <var1350:Array[Object]>*/;
4417 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var1353) /* add on <var_v:AbstractCompilerVisitor>*/;
4418 goto RET_LABEL;
4419 } else {
4420 if (varonce1354) {
4421 var1355 = varonce1354;
4422 } else {
4423 var1356 = "native_class_name";
4424 var1357 = 17;
4425 var1358 = string__NativeString__to_s_with_length(var1356, var1357);
4426 var1355 = var1358;
4427 varonce1354 = var1355;
4428 }
4429 var1359 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var1355) /* == on <var_pname:String>*/;
4430 if (var1359){
4431 var1360 = ((val* (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Collection__first]))(var_arguments) /* first on <var_arguments:Array[RuntimeVariable]>*/;
4432 var1361 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__class_name_string]))(var_v, var1360) /* class_name_string on <var_v:AbstractCompilerVisitor>*/;
4433 var_nat1362 = var1361;
4434 if (varonce1363) {
4435 var1364 = varonce1363;
4436 } else {
4437 var1365 = "(char*)";
4438 var1366 = 7;
4439 var1367 = string__NativeString__to_s_with_length(var1365, var1366);
4440 var1364 = var1367;
4441 varonce1363 = var1364;
4442 }
4443 var1368 = NEW_array__Array(&type_array__Arraykernel__Object);
4444 { /* var1368 = array_instance Array[Object] */
4445 var1369 = 2;
4446 var1370 = NEW_array__NativeArray(var1369, &type_array__NativeArraykernel__Object);
4447 ((struct instance_array__NativeArray*)var1370)->values[0] = (val*) var1364;
4448 ((struct instance_array__NativeArray*)var1370)->values[1] = (val*) var_nat1362;
4449 ((void (*)(val*, val*, long))(var1368->class->vft[COLOR_array__Array__with_native]))(var1368, var1370, var1369) /* with_native on <var1368:Array[Object]>*/;
4450 }
4451 var1371 = ((val* (*)(val*))(var1368->class->vft[COLOR_string__Object__to_s]))(var1368) /* to_s on <var1368:Array[Object]>*/;
4452 if (var_ret == NULL) {
4453 fprintf(stderr, "Runtime error: %s", "Cast failed");
4454 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1819);
4455 show_backtrace(1);
4456 }
4457 var1372 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var1371, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
4458 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var1372) /* ret on <var_v:AbstractCompilerVisitor>*/;
4459 goto RET_LABEL;
4460 } else {
4461 if (varonce1373) {
4462 var1374 = varonce1373;
4463 } else {
4464 var1375 = "force_garbage_collection";
4465 var1376 = 24;
4466 var1377 = string__NativeString__to_s_with_length(var1375, var1376);
4467 var1374 = var1377;
4468 varonce1373 = var1374;
4469 }
4470 var1378 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var1374) /* == on <var_pname:String>*/;
4471 if (var1378){
4472 if (varonce1379) {
4473 var1380 = varonce1379;
4474 } else {
4475 var1381 = "nit_gcollect();";
4476 var1382 = 15;
4477 var1383 = string__NativeString__to_s_with_length(var1381, var1382);
4478 var1380 = var1383;
4479 varonce1379 = var1380;
4480 }
4481 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var1380) /* add on <var_v:AbstractCompilerVisitor>*/;
4482 goto RET_LABEL;
4483 } else {
4484 if (varonce1384) {
4485 var1385 = varonce1384;
4486 } else {
4487 var1386 = "native_argc";
4488 var1387 = 11;
4489 var1388 = string__NativeString__to_s_with_length(var1386, var1387);
4490 var1385 = var1388;
4491 varonce1384 = var1385;
4492 }
4493 var1389 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var1385) /* == on <var_pname:String>*/;
4494 if (var1389){
4495 if (varonce1390) {
4496 var1391 = varonce1390;
4497 } else {
4498 var1392 = "glob_argc";
4499 var1393 = 9;
4500 var1394 = string__NativeString__to_s_with_length(var1392, var1393);
4501 var1391 = var1394;
4502 varonce1390 = var1391;
4503 }
4504 if (var_ret == NULL) {
4505 fprintf(stderr, "Runtime error: %s", "Cast failed");
4506 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1825);
4507 show_backtrace(1);
4508 }
4509 var1395 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var1391, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
4510 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var1395) /* ret on <var_v:AbstractCompilerVisitor>*/;
4511 goto RET_LABEL;
4512 } else {
4513 if (varonce1396) {
4514 var1397 = varonce1396;
4515 } else {
4516 var1398 = "native_argv";
4517 var1399 = 11;
4518 var1400 = string__NativeString__to_s_with_length(var1398, var1399);
4519 var1397 = var1400;
4520 varonce1396 = var1397;
4521 }
4522 var1401 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var1397) /* == on <var_pname:String>*/;
4523 if (var1401){
4524 if (varonce1402) {
4525 var1403 = varonce1402;
4526 } else {
4527 var1404 = "glob_argv[";
4528 var1405 = 10;
4529 var1406 = string__NativeString__to_s_with_length(var1404, var1405);
4530 var1403 = var1406;
4531 varonce1402 = var1403;
4532 }
4533 var1407 = 1;
4534 var1408 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1407) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
4535 if (varonce1409) {
4536 var1410 = varonce1409;
4537 } else {
4538 var1411 = "]";
4539 var1412 = 1;
4540 var1413 = string__NativeString__to_s_with_length(var1411, var1412);
4541 var1410 = var1413;
4542 varonce1409 = var1410;
4543 }
4544 var1414 = NEW_array__Array(&type_array__Arraykernel__Object);
4545 { /* var1414 = array_instance Array[Object] */
4546 var1415 = 3;
4547 var1416 = NEW_array__NativeArray(var1415, &type_array__NativeArraykernel__Object);
4548 ((struct instance_array__NativeArray*)var1416)->values[0] = (val*) var1403;
4549 ((struct instance_array__NativeArray*)var1416)->values[1] = (val*) var1408;
4550 ((struct instance_array__NativeArray*)var1416)->values[2] = (val*) var1410;
4551 ((void (*)(val*, val*, long))(var1414->class->vft[COLOR_array__Array__with_native]))(var1414, var1416, var1415) /* with_native on <var1414:Array[Object]>*/;
4552 }
4553 var1417 = ((val* (*)(val*))(var1414->class->vft[COLOR_string__Object__to_s]))(var1414) /* to_s on <var1414:Array[Object]>*/;
4554 if (var_ret == NULL) {
4555 fprintf(stderr, "Runtime error: %s", "Cast failed");
4556 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1828);
4557 show_backtrace(1);
4558 }
4559 var1418 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var1417, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
4560 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var1418) /* ret on <var_v:AbstractCompilerVisitor>*/;
4561 goto RET_LABEL;
4562 } else {
4563 }
4564 }
4565 }
4566 }
4567 }
4568 }
4569 }
4570 }
4571 }
4572 }
4573 }
4574 }
4575 if (varonce1419) {
4576 var1420 = varonce1419;
4577 } else {
4578 var1421 = "printf(\"NOT YET IMPLEMENTED ";
4579 var1422 = 28;
4580 var1423 = string__NativeString__to_s_with_length(var1421, var1422);
4581 var1420 = var1423;
4582 varonce1419 = var1420;
4583 }
4584 var1424 = ((val* (*)(val*))(self->class->vft[COLOR_string__Object__class_name]))(self) /* class_name on <self:AInternMethPropdef>*/;
4585 if (varonce1425) {
4586 var1426 = varonce1425;
4587 } else {
4588 var1427 = ":";
4589 var1428 = 1;
4590 var1429 = string__NativeString__to_s_with_length(var1427, var1428);
4591 var1426 = var1429;
4592 varonce1425 = var1426;
4593 }
4594 if (varonce1430) {
4595 var1431 = varonce1430;
4596 } else {
4597 var1432 = " at ";
4598 var1433 = 4;
4599 var1434 = string__NativeString__to_s_with_length(var1432, var1433);
4600 var1431 = var1434;
4601 varonce1430 = var1431;
4602 }
4603 var1435 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANode__location]))(self) /* location on <self:AInternMethPropdef>*/;
4604 var1436 = ((val* (*)(val*))(var1435->class->vft[COLOR_string__Object__to_s]))(var1435) /* to_s on <var1435:Location>*/;
4605 if (varonce1437) {
4606 var1438 = varonce1437;
4607 } else {
4608 var1439 = "\\n\");";
4609 var1440 = 5;
4610 var1441 = string__NativeString__to_s_with_length(var1439, var1440);
4611 var1438 = var1441;
4612 varonce1437 = var1438;
4613 }
4614 var1442 = NEW_array__Array(&type_array__Arraykernel__Object);
4615 { /* var1442 = array_instance Array[Object] */
4616 var1443 = 7;
4617 var1444 = NEW_array__NativeArray(var1443, &type_array__NativeArraykernel__Object);
4618 ((struct instance_array__NativeArray*)var1444)->values[0] = (val*) var1420;
4619 ((struct instance_array__NativeArray*)var1444)->values[1] = (val*) var1424;
4620 ((struct instance_array__NativeArray*)var1444)->values[2] = (val*) var1426;
4621 ((struct instance_array__NativeArray*)var1444)->values[3] = (val*) var_mpropdef;
4622 ((struct instance_array__NativeArray*)var1444)->values[4] = (val*) var1431;
4623 ((struct instance_array__NativeArray*)var1444)->values[5] = (val*) var1436;
4624 ((struct instance_array__NativeArray*)var1444)->values[6] = (val*) var1438;
4625 ((void (*)(val*, val*, long))(var1442->class->vft[COLOR_array__Array__with_native]))(var1442, var1444, var1443) /* with_native on <var1442:Array[Object]>*/;
4626 }
4627 var1445 = ((val* (*)(val*))(var1442->class->vft[COLOR_string__Object__to_s]))(var1442) /* to_s on <var1442:Array[Object]>*/;
4628 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var1445) /* add on <var_v:AbstractCompilerVisitor>*/;
4629 if (varonce1446) {
4630 var1447 = varonce1446;
4631 } else {
4632 var1448 = "Not implemented ";
4633 var1449 = 16;
4634 var1450 = string__NativeString__to_s_with_length(var1448, var1449);
4635 var1447 = var1450;
4636 varonce1446 = var1447;
4637 }
4638 var1451 = NEW_array__Array(&type_array__Arraykernel__Object);
4639 { /* var1451 = array_instance Array[Object] */
4640 var1452 = 2;
4641 var1453 = NEW_array__NativeArray(var1452, &type_array__NativeArraykernel__Object);
4642 ((struct instance_array__NativeArray*)var1453)->values[0] = (val*) var1447;
4643 ((struct instance_array__NativeArray*)var1453)->values[1] = (val*) var_mpropdef;
4644 ((void (*)(val*, val*, long))(var1451->class->vft[COLOR_array__Array__with_native]))(var1451, var1453, var1452) /* with_native on <var1451:Array[Object]>*/;
4645 }
4646 var1454 = ((val* (*)(val*))(var1451->class->vft[COLOR_string__Object__to_s]))(var1451) /* to_s on <var1451:Array[Object]>*/;
4647 ((void (*)(val*, val*))(self->class->vft[COLOR_parser_nodes__ANode__debug]))(self, var1454) /* debug on <self:AInternMethPropdef>*/;
4648 RET_LABEL:;
4649 }
4650 /* method abstract_compiler#AInternMethPropdef#compile_to_c for (self: Object, AbstractCompilerVisitor, MMethodDef, Array[RuntimeVariable]) */
4651 void VIRTUAL_abstract_compiler__AInternMethPropdef__compile_to_c(val* self, val* p0, val* p1, val* p2) {
4652 abstract_compiler__AInternMethPropdef__compile_to_c(self, p0, p1, p2);
4653 RET_LABEL:;
4654 }
4655 /* method abstract_compiler#AExternMethPropdef#compile_to_c for (self: AExternMethPropdef, AbstractCompilerVisitor, MMethodDef, Array[RuntimeVariable]) */
4656 void abstract_compiler__AExternMethPropdef__compile_to_c(val* self, val* p0, val* p1, val* p2) {
4657 val* var_v /* var v: AbstractCompilerVisitor */;
4658 val* var_mpropdef /* var mpropdef: MMethodDef */;
4659 val* var_arguments /* var arguments: Array[RuntimeVariable] */;
4660 val* var /* : nullable TString */;
4661 val* var_nextern /* var nextern: nullable TString */;
4662 val* var1 /* : null */;
4663 short int var2 /* : Bool */;
4664 static val* varonce;
4665 val* var3 /* : String */;
4666 char* var4 /* : NativeString */;
4667 long var5 /* : Int */;
4668 val* var6 /* : String */;
4669 static val* varonce7;
4670 val* var8 /* : String */;
4671 char* var9 /* : NativeString */;
4672 long var10 /* : Int */;
4673 val* var11 /* : String */;
4674 val* var12 /* : Location */;
4675 val* var13 /* : String */;
4676 static val* varonce14;
4677 val* var15 /* : String */;
4678 char* var16 /* : NativeString */;
4679 long var17 /* : Int */;
4680 val* var18 /* : String */;
4681 val* var19 /* : Array[Object] */;
4682 long var20 /* : Int */;
4683 val* var21 /* : NativeArray[Object] */;
4684 val* var22 /* : String */;
4685 static val* varonce23;
4686 val* var24 /* : String */;
4687 char* var25 /* : NativeString */;
4688 long var26 /* : Int */;
4689 val* var27 /* : String */;
4690 val* var28 /* : String */;
4691 long var29 /* : Int */;
4692 val* var30 /* : String */;
4693 long var31 /* : Int */;
4694 long var32 /* : Int */;
4695 long var33 /* : Int */;
4696 long var35 /* : Int */;
4697 val* var36 /* : String */;
4698 val* var_externname /* var externname: nullable Object */;
4699 val* var37 /* : Location */;
4700 val* var38 /* : nullable SourceFile */;
4701 val* var39 /* : null */;
4702 short int var40 /* : Bool */;
4703 val* var41 /* : Location */;
4704 val* var42 /* : nullable SourceFile */;
4705 val* var43 /* : String */;
4706 val* var_file /* var file: String */;
4707 val* var44 /* : null */;
4708 val* var_res /* var res: nullable RuntimeVariable */;
4709 val* var45 /* : nullable MSignature */;
4710 val* var46 /* : nullable MType */;
4711 val* var_ret /* var ret: nullable MType */;
4712 val* var47 /* : null */;
4713 short int var48 /* : Bool */;
4714 val* var49 /* : nullable Object */;
4715 val* var50 /* : MType */;
4716 val* var51 /* : RuntimeVariable */;
4717 val* var52 /* : null */;
4718 short int var53 /* : Bool */;
4719 static val* varonce54;
4720 val* var55 /* : String */;
4721 char* var56 /* : NativeString */;
4722 long var57 /* : Int */;
4723 val* var58 /* : String */;
4724 static val* varonce59;
4725 val* var60 /* : String */;
4726 char* var61 /* : NativeString */;
4727 long var62 /* : Int */;
4728 val* var63 /* : String */;
4729 val* var64 /* : String */;
4730 static val* varonce65;
4731 val* var66 /* : String */;
4732 char* var67 /* : NativeString */;
4733 long var68 /* : Int */;
4734 val* var69 /* : String */;
4735 val* var70 /* : Array[Object] */;
4736 long var71 /* : Int */;
4737 val* var72 /* : NativeArray[Object] */;
4738 val* var73 /* : String */;
4739 static val* varonce74;
4740 val* var75 /* : String */;
4741 char* var76 /* : NativeString */;
4742 long var77 /* : Int */;
4743 val* var78 /* : String */;
4744 static val* varonce79;
4745 val* var80 /* : String */;
4746 char* var81 /* : NativeString */;
4747 long var82 /* : Int */;
4748 val* var83 /* : String */;
4749 static val* varonce84;
4750 val* var85 /* : String */;
4751 char* var86 /* : NativeString */;
4752 long var87 /* : Int */;
4753 val* var88 /* : String */;
4754 val* var89 /* : String */;
4755 static val* varonce90;
4756 val* var91 /* : String */;
4757 char* var92 /* : NativeString */;
4758 long var93 /* : Int */;
4759 val* var94 /* : String */;
4760 val* var95 /* : Array[Object] */;
4761 long var96 /* : Int */;
4762 val* var97 /* : NativeArray[Object] */;
4763 val* var98 /* : String */;
4764 var_v = p0;
4765 var_mpropdef = p1;
4766 var_arguments = p2;
4767 var = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AExternPropdef__n_extern]))(self) /* n_extern on <self:AExternMethPropdef>*/;
4768 var_nextern = var;
4769 var1 = NULL;
4770 if (var_nextern == NULL) {
4771 var2 = 1; /* is null */
4772 } else {
4773 var2 = 0; /* arg is null but recv is not */
4774 }
4775 if (var2){
4776 if (varonce) {
4777 var3 = varonce;
4778 } else {
4779 var4 = "fprintf(stderr, \"NOT YET IMPLEMENTED nitni for ";
4780 var5 = 47;
4781 var6 = string__NativeString__to_s_with_length(var4, var5);
4782 var3 = var6;
4783 varonce = var3;
4784 }
4785 if (varonce7) {
4786 var8 = varonce7;
4787 } else {
4788 var9 = " at ";
4789 var10 = 4;
4790 var11 = string__NativeString__to_s_with_length(var9, var10);
4791 var8 = var11;
4792 varonce7 = var8;
4793 }
4794 var12 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANode__location]))(self) /* location on <self:AExternMethPropdef>*/;
4795 var13 = ((val* (*)(val*))(var12->class->vft[COLOR_string__Object__to_s]))(var12) /* to_s on <var12:Location>*/;
4796 if (varonce14) {
4797 var15 = varonce14;
4798 } else {
4799 var16 = "\\n\");";
4800 var17 = 5;
4801 var18 = string__NativeString__to_s_with_length(var16, var17);
4802 var15 = var18;
4803 varonce14 = var15;
4804 }
4805 var19 = NEW_array__Array(&type_array__Arraykernel__Object);
4806 { /* var19 = array_instance Array[Object] */
4807 var20 = 5;
4808 var21 = NEW_array__NativeArray(var20, &type_array__NativeArraykernel__Object);
4809 ((struct instance_array__NativeArray*)var21)->values[0] = (val*) var3;
4810 ((struct instance_array__NativeArray*)var21)->values[1] = (val*) var_mpropdef;
4811 ((struct instance_array__NativeArray*)var21)->values[2] = (val*) var8;
4812 ((struct instance_array__NativeArray*)var21)->values[3] = (val*) var13;
4813 ((struct instance_array__NativeArray*)var21)->values[4] = (val*) var15;
4814 ((void (*)(val*, val*, long))(var19->class->vft[COLOR_array__Array__with_native]))(var19, var21, var20) /* with_native on <var19:Array[Object]>*/;
4815 }
4816 var22 = ((val* (*)(val*))(var19->class->vft[COLOR_string__Object__to_s]))(var19) /* to_s on <var19:Array[Object]>*/;
4817 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var22) /* add on <var_v:AbstractCompilerVisitor>*/;
4818 if (varonce23) {
4819 var24 = varonce23;
4820 } else {
4821 var25 = "show_backtrace(1);";
4822 var26 = 18;
4823 var27 = string__NativeString__to_s_with_length(var25, var26);
4824 var24 = var27;
4825 varonce23 = var24;
4826 }
4827 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var24) /* add on <var_v:AbstractCompilerVisitor>*/;
4828 goto RET_LABEL;
4829 } else {
4830 }
4831 var28 = ((val* (*)(val*))(var_nextern->class->vft[COLOR_parser_nodes__Token__text]))(var_nextern) /* text on <var_nextern:nullable TString(TString)>*/;
4832 var29 = 1;
4833 var30 = ((val* (*)(val*))(var_nextern->class->vft[COLOR_parser_nodes__Token__text]))(var_nextern) /* text on <var_nextern:nullable TString(TString)>*/;
4834 var31 = ((long (*)(val*))(var30->class->vft[COLOR_abstract_collection__Collection__length]))(var30) /* length on <var30:String>*/;
4835 var32 = 2;
4836 { /* Inline kernel#Int#- (var31,var32) */
4837 var35 = var31 - var32;
4838 var33 = var35;
4839 goto RET_LABEL34;
4840 RET_LABEL34:(void)0;
4841 }
4842 var36 = ((val* (*)(val*, long, long))(var28->class->vft[COLOR_string__AbstractString__substring]))(var28, var29, var33) /* substring on <var28:String>*/;
4843 var_externname = var36;
4844 var37 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANode__location]))(self) /* location on <self:AExternMethPropdef>*/;
4845 var38 = ((val* (*)(val*))(var37->class->vft[COLOR_location__Location__file]))(var37) /* file on <var37:Location>*/;
4846 var39 = NULL;
4847 if (var38 == NULL) {
4848 var40 = 0; /* is null */
4849 } else {
4850 var40 = 1; /* arg is null and recv is not */
4851 }
4852 if (var40){
4853 var41 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANode__location]))(self) /* location on <self:AExternMethPropdef>*/;
4854 var42 = ((val* (*)(val*))(var41->class->vft[COLOR_location__Location__file]))(var41) /* file on <var41:Location>*/;
4855 if (var42 == NULL) {
4856 fprintf(stderr, "Runtime error: %s", "Receiver is null");
4857 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1848);
4858 show_backtrace(1);
4859 } else {
4860 var43 = ((val* (*)(val*))(var42->class->vft[COLOR_location__SourceFile__filename]))(var42) /* filename on <var42:nullable SourceFile>*/;
4861 }
4862 var_file = var43;
4863 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add_extern]))(var_v, var_file) /* add_extern on <var_v:AbstractCompilerVisitor>*/;
4864 } else {
4865 }
4866 var44 = NULL;
4867 var_res = var44;
4868 var45 = ((val* (*)(val*))(var_mpropdef->class->vft[COLOR_model__MMethodDef__msignature]))(var_mpropdef) /* msignature on <var_mpropdef:MMethodDef>*/;
4869 if (var45 == NULL) {
4870 fprintf(stderr, "Runtime error: %s", "Receiver is null");
4871 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1852);
4872 show_backtrace(1);
4873 } else {
4874 var46 = ((val* (*)(val*))(var45->class->vft[COLOR_model__MSignature__return_mtype]))(var45) /* return_mtype on <var45:nullable MSignature>*/;
4875 }
4876 var_ret = var46;
4877 var47 = NULL;
4878 if (var_ret == NULL) {
4879 var48 = 0; /* is null */
4880 } else {
4881 var48 = 1; /* arg is null and recv is not */
4882 }
4883 if (var48){
4884 var49 = ((val* (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Collection__first]))(var_arguments) /* first on <var_arguments:Array[RuntimeVariable]>*/;
4885 var50 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__resolve_for]))(var_v, var_ret, var49) /* resolve_for on <var_v:AbstractCompilerVisitor>*/;
4886 var_ret = var50;
4887 var51 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var]))(var_v, var_ret) /* new_var on <var_v:AbstractCompilerVisitor>*/;
4888 var_res = var51;
4889 } else {
4890 }
4891 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__adapt_signature]))(var_v, var_mpropdef, var_arguments) /* adapt_signature on <var_v:AbstractCompilerVisitor>*/;
4892 var52 = NULL;
4893 if (var_res == NULL) {
4894 var53 = 1; /* is null */
4895 } else {
4896 var53 = 0; /* arg is null but recv is not */
4897 }
4898 if (var53){
4899 if (varonce54) {
4900 var55 = varonce54;
4901 } else {
4902 var56 = "(";
4903 var57 = 1;
4904 var58 = string__NativeString__to_s_with_length(var56, var57);
4905 var55 = var58;
4906 varonce54 = var55;
4907 }
4908 if (varonce59) {
4909 var60 = varonce59;
4910 } else {
4911 var61 = ", ";
4912 var62 = 2;
4913 var63 = string__NativeString__to_s_with_length(var61, var62);
4914 var60 = var63;
4915 varonce59 = var60;
4916 }
4917 var64 = ((val* (*)(val*, val*))(var_arguments->class->vft[COLOR_string__Collection__join]))(var_arguments, var60) /* join on <var_arguments:Array[RuntimeVariable]>*/;
4918 if (varonce65) {
4919 var66 = varonce65;
4920 } else {
4921 var67 = ");";
4922 var68 = 2;
4923 var69 = string__NativeString__to_s_with_length(var67, var68);
4924 var66 = var69;
4925 varonce65 = var66;
4926 }
4927 var70 = NEW_array__Array(&type_array__Arraykernel__Object);
4928 { /* var70 = array_instance Array[Object] */
4929 var71 = 4;
4930 var72 = NEW_array__NativeArray(var71, &type_array__NativeArraykernel__Object);
4931 ((struct instance_array__NativeArray*)var72)->values[0] = (val*) var_externname;
4932 ((struct instance_array__NativeArray*)var72)->values[1] = (val*) var55;
4933 ((struct instance_array__NativeArray*)var72)->values[2] = (val*) var64;
4934 ((struct instance_array__NativeArray*)var72)->values[3] = (val*) var66;
4935 ((void (*)(val*, val*, long))(var70->class->vft[COLOR_array__Array__with_native]))(var70, var72, var71) /* with_native on <var70:Array[Object]>*/;
4936 }
4937 var73 = ((val* (*)(val*))(var70->class->vft[COLOR_string__Object__to_s]))(var70) /* to_s on <var70:Array[Object]>*/;
4938 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var73) /* add on <var_v:AbstractCompilerVisitor>*/;
4939 } else {
4940 if (varonce74) {
4941 var75 = varonce74;
4942 } else {
4943 var76 = " = ";
4944 var77 = 3;
4945 var78 = string__NativeString__to_s_with_length(var76, var77);
4946 var75 = var78;
4947 varonce74 = var75;
4948 }
4949 if (varonce79) {
4950 var80 = varonce79;
4951 } else {
4952 var81 = "(";
4953 var82 = 1;
4954 var83 = string__NativeString__to_s_with_length(var81, var82);
4955 var80 = var83;
4956 varonce79 = var80;
4957 }
4958 if (varonce84) {
4959 var85 = varonce84;
4960 } else {
4961 var86 = ", ";
4962 var87 = 2;
4963 var88 = string__NativeString__to_s_with_length(var86, var87);
4964 var85 = var88;
4965 varonce84 = var85;
4966 }
4967 var89 = ((val* (*)(val*, val*))(var_arguments->class->vft[COLOR_string__Collection__join]))(var_arguments, var85) /* join on <var_arguments:Array[RuntimeVariable]>*/;
4968 if (varonce90) {
4969 var91 = varonce90;
4970 } else {
4971 var92 = ");";
4972 var93 = 2;
4973 var94 = string__NativeString__to_s_with_length(var92, var93);
4974 var91 = var94;
4975 varonce90 = var91;
4976 }
4977 var95 = NEW_array__Array(&type_array__Arraykernel__Object);
4978 { /* var95 = array_instance Array[Object] */
4979 var96 = 6;
4980 var97 = NEW_array__NativeArray(var96, &type_array__NativeArraykernel__Object);
4981 ((struct instance_array__NativeArray*)var97)->values[0] = (val*) var_res;
4982 ((struct instance_array__NativeArray*)var97)->values[1] = (val*) var75;
4983 ((struct instance_array__NativeArray*)var97)->values[2] = (val*) var_externname;
4984 ((struct instance_array__NativeArray*)var97)->values[3] = (val*) var80;
4985 ((struct instance_array__NativeArray*)var97)->values[4] = (val*) var89;
4986 ((struct instance_array__NativeArray*)var97)->values[5] = (val*) var91;
4987 ((void (*)(val*, val*, long))(var95->class->vft[COLOR_array__Array__with_native]))(var95, var97, var96) /* with_native on <var95:Array[Object]>*/;
4988 }
4989 var98 = ((val* (*)(val*))(var95->class->vft[COLOR_string__Object__to_s]))(var95) /* to_s on <var95:Array[Object]>*/;
4990 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var98) /* add on <var_v:AbstractCompilerVisitor>*/;
4991 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var_res) /* ret on <var_v:AbstractCompilerVisitor>*/;
4992 }
4993 RET_LABEL:;
4994 }
4995 /* method abstract_compiler#AExternMethPropdef#compile_to_c for (self: Object, AbstractCompilerVisitor, MMethodDef, Array[RuntimeVariable]) */
4996 void VIRTUAL_abstract_compiler__AExternMethPropdef__compile_to_c(val* self, val* p0, val* p1, val* p2) {
4997 abstract_compiler__AExternMethPropdef__compile_to_c(self, p0, p1, p2);
4998 RET_LABEL:;
4999 }
5000 /* method abstract_compiler#AExternInitPropdef#compile_to_c for (self: AExternInitPropdef, AbstractCompilerVisitor, MMethodDef, Array[RuntimeVariable]) */
5001 void abstract_compiler__AExternInitPropdef__compile_to_c(val* self, val* p0, val* p1, val* p2) {
5002 val* var_v /* var v: AbstractCompilerVisitor */;
5003 val* var_mpropdef /* var mpropdef: MMethodDef */;
5004 val* var_arguments /* var arguments: Array[RuntimeVariable] */;
5005 val* var /* : nullable TString */;
5006 val* var_nextern /* var nextern: nullable TString */;
5007 val* var1 /* : null */;
5008 short int var2 /* : Bool */;
5009 static val* varonce;
5010 val* var3 /* : String */;
5011 char* var4 /* : NativeString */;
5012 long var5 /* : Int */;
5013 val* var6 /* : String */;
5014 static val* varonce7;
5015 val* var8 /* : String */;
5016 char* var9 /* : NativeString */;
5017 long var10 /* : Int */;
5018 val* var11 /* : String */;
5019 val* var12 /* : Location */;
5020 val* var13 /* : String */;
5021 static val* varonce14;
5022 val* var15 /* : String */;
5023 char* var16 /* : NativeString */;
5024 long var17 /* : Int */;
5025 val* var18 /* : String */;
5026 val* var19 /* : Array[Object] */;
5027 long var20 /* : Int */;
5028 val* var21 /* : NativeArray[Object] */;
5029 val* var22 /* : String */;
5030 static val* varonce23;
5031 val* var24 /* : String */;
5032 char* var25 /* : NativeString */;
5033 long var26 /* : Int */;
5034 val* var27 /* : String */;
5035 val* var28 /* : String */;
5036 long var29 /* : Int */;
5037 val* var30 /* : String */;
5038 long var31 /* : Int */;
5039 long var32 /* : Int */;
5040 long var33 /* : Int */;
5041 long var35 /* : Int */;
5042 val* var36 /* : String */;
5043 val* var_externname /* var externname: nullable Object */;
5044 val* var37 /* : Location */;
5045 val* var38 /* : nullable SourceFile */;
5046 val* var39 /* : null */;
5047 short int var40 /* : Bool */;
5048 val* var41 /* : Location */;
5049 val* var42 /* : nullable SourceFile */;
5050 val* var43 /* : String */;
5051 val* var_file /* var file: String */;
5052 val* var44 /* : nullable Object */;
5053 val* var45 /* : MType */;
5054 val* var_ret /* var ret: MType */;
5055 val* var46 /* : RuntimeVariable */;
5056 val* var_res /* var res: RuntimeVariable */;
5057 val* var47 /* : nullable Object */;
5058 static val* varonce48;
5059 val* var49 /* : String */;
5060 char* var50 /* : NativeString */;
5061 long var51 /* : Int */;
5062 val* var52 /* : String */;
5063 static val* varonce53;
5064 val* var54 /* : String */;
5065 char* var55 /* : NativeString */;
5066 long var56 /* : Int */;
5067 val* var57 /* : String */;
5068 static val* varonce58;
5069 val* var59 /* : String */;
5070 char* var60 /* : NativeString */;
5071 long var61 /* : Int */;
5072 val* var62 /* : String */;
5073 val* var63 /* : String */;
5074 static val* varonce64;
5075 val* var65 /* : String */;
5076 char* var66 /* : NativeString */;
5077 long var67 /* : Int */;
5078 val* var68 /* : String */;
5079 val* var69 /* : Array[Object] */;
5080 long var70 /* : Int */;
5081 val* var71 /* : NativeArray[Object] */;
5082 val* var72 /* : String */;
5083 var_v = p0;
5084 var_mpropdef = p1;
5085 var_arguments = p2;
5086 var = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AExternPropdef__n_extern]))(self) /* n_extern on <self:AExternInitPropdef>*/;
5087 var_nextern = var;
5088 var1 = NULL;
5089 if (var_nextern == NULL) {
5090 var2 = 1; /* is null */
5091 } else {
5092 var2 = 0; /* arg is null but recv is not */
5093 }
5094 if (var2){
5095 if (varonce) {
5096 var3 = varonce;
5097 } else {
5098 var4 = "printf(\"NOT YET IMPLEMENTED nitni for ";
5099 var5 = 38;
5100 var6 = string__NativeString__to_s_with_length(var4, var5);
5101 var3 = var6;
5102 varonce = var3;
5103 }
5104 if (varonce7) {
5105 var8 = varonce7;
5106 } else {
5107 var9 = " at ";
5108 var10 = 4;
5109 var11 = string__NativeString__to_s_with_length(var9, var10);
5110 var8 = var11;
5111 varonce7 = var8;
5112 }
5113 var12 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANode__location]))(self) /* location on <self:AExternInitPropdef>*/;
5114 var13 = ((val* (*)(val*))(var12->class->vft[COLOR_string__Object__to_s]))(var12) /* to_s on <var12:Location>*/;
5115 if (varonce14) {
5116 var15 = varonce14;
5117 } else {
5118 var16 = "\\n\");";
5119 var17 = 5;
5120 var18 = string__NativeString__to_s_with_length(var16, var17);
5121 var15 = var18;
5122 varonce14 = var15;
5123 }
5124 var19 = NEW_array__Array(&type_array__Arraykernel__Object);
5125 { /* var19 = array_instance Array[Object] */
5126 var20 = 5;
5127 var21 = NEW_array__NativeArray(var20, &type_array__NativeArraykernel__Object);
5128 ((struct instance_array__NativeArray*)var21)->values[0] = (val*) var3;
5129 ((struct instance_array__NativeArray*)var21)->values[1] = (val*) var_mpropdef;
5130 ((struct instance_array__NativeArray*)var21)->values[2] = (val*) var8;
5131 ((struct instance_array__NativeArray*)var21)->values[3] = (val*) var13;
5132 ((struct instance_array__NativeArray*)var21)->values[4] = (val*) var15;
5133 ((void (*)(val*, val*, long))(var19->class->vft[COLOR_array__Array__with_native]))(var19, var21, var20) /* with_native on <var19:Array[Object]>*/;
5134 }
5135 var22 = ((val* (*)(val*))(var19->class->vft[COLOR_string__Object__to_s]))(var19) /* to_s on <var19:Array[Object]>*/;
5136 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var22) /* add on <var_v:AbstractCompilerVisitor>*/;
5137 if (varonce23) {
5138 var24 = varonce23;
5139 } else {
5140 var25 = "show_backtrace(1);";
5141 var26 = 18;
5142 var27 = string__NativeString__to_s_with_length(var25, var26);
5143 var24 = var27;
5144 varonce23 = var24;
5145 }
5146 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var24) /* add on <var_v:AbstractCompilerVisitor>*/;
5147 goto RET_LABEL;
5148 } else {
5149 }
5150 var28 = ((val* (*)(val*))(var_nextern->class->vft[COLOR_parser_nodes__Token__text]))(var_nextern) /* text on <var_nextern:nullable TString(TString)>*/;
5151 var29 = 1;
5152 var30 = ((val* (*)(val*))(var_nextern->class->vft[COLOR_parser_nodes__Token__text]))(var_nextern) /* text on <var_nextern:nullable TString(TString)>*/;
5153 var31 = ((long (*)(val*))(var30->class->vft[COLOR_abstract_collection__Collection__length]))(var30) /* length on <var30:String>*/;
5154 var32 = 2;
5155 { /* Inline kernel#Int#- (var31,var32) */
5156 var35 = var31 - var32;
5157 var33 = var35;
5158 goto RET_LABEL34;
5159 RET_LABEL34:(void)0;
5160 }
5161 var36 = ((val* (*)(val*, long, long))(var28->class->vft[COLOR_string__AbstractString__substring]))(var28, var29, var33) /* substring on <var28:String>*/;
5162 var_externname = var36;
5163 var37 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANode__location]))(self) /* location on <self:AExternInitPropdef>*/;
5164 var38 = ((val* (*)(val*))(var37->class->vft[COLOR_location__Location__file]))(var37) /* file on <var37:Location>*/;
5165 var39 = NULL;
5166 if (var38 == NULL) {
5167 var40 = 0; /* is null */
5168 } else {
5169 var40 = 1; /* arg is null and recv is not */
5170 }
5171 if (var40){
5172 var41 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANode__location]))(self) /* location on <self:AExternInitPropdef>*/;
5173 var42 = ((val* (*)(val*))(var41->class->vft[COLOR_location__Location__file]))(var41) /* file on <var41:Location>*/;
5174 if (var42 == NULL) {
5175 fprintf(stderr, "Runtime error: %s", "Receiver is null");
5176 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1880);
5177 show_backtrace(1);
5178 } else {
5179 var43 = ((val* (*)(val*))(var42->class->vft[COLOR_location__SourceFile__filename]))(var42) /* filename on <var42:nullable SourceFile>*/;
5180 }
5181 var_file = var43;
5182 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add_extern]))(var_v, var_file) /* add_extern on <var_v:AbstractCompilerVisitor>*/;
5183 } else {
5184 }
5185 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__adapt_signature]))(var_v, var_mpropdef, var_arguments) /* adapt_signature on <var_v:AbstractCompilerVisitor>*/;
5186 var44 = ((val* (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Collection__first]))(var_arguments) /* first on <var_arguments:Array[RuntimeVariable]>*/;
5187 var45 = ((val* (*)(val*))(var44->class->vft[COLOR_abstract_compiler__RuntimeVariable__mtype]))(var44) /* mtype on <var44:nullable Object(RuntimeVariable)>*/;
5188 var_ret = var45;
5189 var46 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var]))(var_v, var_ret) /* new_var on <var_v:AbstractCompilerVisitor>*/;
5190 var_res = var46;
5191 var47 = ((val* (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Sequence__shift]))(var_arguments) /* shift on <var_arguments:Array[RuntimeVariable]>*/;
5192 var47;
5193 if (varonce48) {
5194 var49 = varonce48;
5195 } else {
5196 var50 = " = ";
5197 var51 = 3;
5198 var52 = string__NativeString__to_s_with_length(var50, var51);
5199 var49 = var52;
5200 varonce48 = var49;
5201 }
5202 if (varonce53) {
5203 var54 = varonce53;
5204 } else {
5205 var55 = "(";
5206 var56 = 1;
5207 var57 = string__NativeString__to_s_with_length(var55, var56);
5208 var54 = var57;
5209 varonce53 = var54;
5210 }
5211 if (varonce58) {
5212 var59 = varonce58;
5213 } else {
5214 var60 = ", ";
5215 var61 = 2;
5216 var62 = string__NativeString__to_s_with_length(var60, var61);
5217 var59 = var62;
5218 varonce58 = var59;
5219 }
5220 var63 = ((val* (*)(val*, val*))(var_arguments->class->vft[COLOR_string__Collection__join]))(var_arguments, var59) /* join on <var_arguments:Array[RuntimeVariable]>*/;
5221 if (varonce64) {
5222 var65 = varonce64;
5223 } else {
5224 var66 = ");";
5225 var67 = 2;
5226 var68 = string__NativeString__to_s_with_length(var66, var67);
5227 var65 = var68;
5228 varonce64 = var65;
5229 }
5230 var69 = NEW_array__Array(&type_array__Arraykernel__Object);
5231 { /* var69 = array_instance Array[Object] */
5232 var70 = 6;
5233 var71 = NEW_array__NativeArray(var70, &type_array__NativeArraykernel__Object);
5234 ((struct instance_array__NativeArray*)var71)->values[0] = (val*) var_res;
5235 ((struct instance_array__NativeArray*)var71)->values[1] = (val*) var49;
5236 ((struct instance_array__NativeArray*)var71)->values[2] = (val*) var_externname;
5237 ((struct instance_array__NativeArray*)var71)->values[3] = (val*) var54;
5238 ((struct instance_array__NativeArray*)var71)->values[4] = (val*) var63;
5239 ((struct instance_array__NativeArray*)var71)->values[5] = (val*) var65;
5240 ((void (*)(val*, val*, long))(var69->class->vft[COLOR_array__Array__with_native]))(var69, var71, var70) /* with_native on <var69:Array[Object]>*/;
5241 }
5242 var72 = ((val* (*)(val*))(var69->class->vft[COLOR_string__Object__to_s]))(var69) /* to_s on <var69:Array[Object]>*/;
5243 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var72) /* add on <var_v:AbstractCompilerVisitor>*/;
5244 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var_res) /* ret on <var_v:AbstractCompilerVisitor>*/;
5245 RET_LABEL:;
5246 }
5247 /* method abstract_compiler#AExternInitPropdef#compile_to_c for (self: Object, AbstractCompilerVisitor, MMethodDef, Array[RuntimeVariable]) */
5248 void VIRTUAL_abstract_compiler__AExternInitPropdef__compile_to_c(val* self, val* p0, val* p1, val* p2) {
5249 abstract_compiler__AExternInitPropdef__compile_to_c(self, p0, p1, p2);
5250 RET_LABEL:;
5251 }
5252 /* method abstract_compiler#AAttrPropdef#compile_to_c for (self: AAttrPropdef, AbstractCompilerVisitor, MMethodDef, Array[RuntimeVariable]) */
5253 void abstract_compiler__AAttrPropdef__compile_to_c(val* self, val* p0, val* p1, val* p2) {
5254 val* var_v /* var v: AbstractCompilerVisitor */;
5255 val* var_mpropdef /* var mpropdef: MMethodDef */;
5256 val* var_arguments /* var arguments: Array[RuntimeVariable] */;
5257 long var /* : Int */;
5258 long var1 /* : Int */;
5259 short int var2 /* : Bool */;
5260 short int var4 /* : Bool */;
5261 val* var5 /* : nullable MPropDef */;
5262 val* var6 /* : MProperty */;
5263 val* var7 /* : nullable Object */;
5264 val* var8 /* : RuntimeVariable */;
5265 val* var_res /* var res: RuntimeVariable */;
5266 val* var9 /* : nullable Frame */;
5267 val* var10 /* : nullable RuntimeVariable */;
5268 val* var11 /* : nullable MPropDef */;
5269 val* var12 /* : MProperty */;
5270 val* var13 /* : nullable Object */;
5271 long var14 /* : Int */;
5272 val* var15 /* : nullable Object */;
5273 var_v = p0;
5274 var_mpropdef = p1;
5275 var_arguments = p2;
5276 var = ((long (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Collection__length]))(var_arguments) /* length on <var_arguments:Array[RuntimeVariable]>*/;
5277 var1 = 1;
5278 { /* Inline kernel#Int#== (var,var1) */
5279 var4 = var == var1;
5280 var2 = var4;
5281 goto RET_LABEL3;
5282 RET_LABEL3:(void)0;
5283 }
5284 if (var2){
5285 var5 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(self) /* mpropdef on <self:AAttrPropdef>*/;
5286 if (var5 == NULL) {
5287 fprintf(stderr, "Runtime error: %s", "Receiver is null");
5288 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1898);
5289 show_backtrace(1);
5290 } else {
5291 var6 = ((val* (*)(val*))(var5->class->vft[COLOR_model__MPropDef__mproperty]))(var5) /* mproperty on <var5:nullable MPropDef(nullable MAttributeDef)>*/;
5292 }
5293 var7 = ((val* (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Collection__first]))(var_arguments) /* first on <var_arguments:Array[RuntimeVariable]>*/;
5294 var8 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__read_attribute]))(var_v, var6, var7) /* read_attribute on <var_v:AbstractCompilerVisitor>*/;
5295 var_res = var8;
5296 var9 = ((val* (*)(val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__frame]))(var_v) /* frame on <var_v:AbstractCompilerVisitor>*/;
5297 if (var9 == NULL) {
5298 fprintf(stderr, "Runtime error: %s", "Receiver is null");
5299 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1899);
5300 show_backtrace(1);
5301 } else {
5302 var10 = ((val* (*)(val*))(var9->class->vft[COLOR_abstract_compiler__Frame__returnvar]))(var9) /* returnvar on <var9:nullable Frame>*/;
5303 }
5304 if (var10 == NULL) {
5305 fprintf(stderr, "Runtime error: %s", "Cast failed");
5306 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1899);
5307 show_backtrace(1);
5308 }
5309 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__assign]))(var_v, var10, var_res) /* assign on <var_v:AbstractCompilerVisitor>*/;
5310 } else {
5311 var11 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(self) /* mpropdef on <self:AAttrPropdef>*/;
5312 if (var11 == NULL) {
5313 fprintf(stderr, "Runtime error: %s", "Receiver is null");
5314 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1901);
5315 show_backtrace(1);
5316 } else {
5317 var12 = ((val* (*)(val*))(var11->class->vft[COLOR_model__MPropDef__mproperty]))(var11) /* mproperty on <var11:nullable MPropDef(nullable MAttributeDef)>*/;
5318 }
5319 var13 = ((val* (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Collection__first]))(var_arguments) /* first on <var_arguments:Array[RuntimeVariable]>*/;
5320 var14 = 1;
5321 var15 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var14) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
5322 ((void (*)(val*, val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__write_attribute]))(var_v, var12, var13, var15) /* write_attribute on <var_v:AbstractCompilerVisitor>*/;
5323 }
5324 RET_LABEL:;
5325 }
5326 /* method abstract_compiler#AAttrPropdef#compile_to_c for (self: Object, AbstractCompilerVisitor, MMethodDef, Array[RuntimeVariable]) */
5327 void VIRTUAL_abstract_compiler__AAttrPropdef__compile_to_c(val* self, val* p0, val* p1, val* p2) {
5328 abstract_compiler__AAttrPropdef__compile_to_c(self, p0, p1, p2);
5329 RET_LABEL:;
5330 }
5331 /* method abstract_compiler#AAttrPropdef#init_expr for (self: AAttrPropdef, AbstractCompilerVisitor, RuntimeVariable) */
5332 void abstract_compiler__AAttrPropdef__init_expr(val* self, val* p0, val* p1) {
5333 val* var_v /* var v: AbstractCompilerVisitor */;
5334 val* var_recv /* var recv: RuntimeVariable */;
5335 val* var /* : nullable AExpr */;
5336 val* var_nexpr /* var nexpr: nullable AExpr */;
5337 val* var1 /* : null */;
5338 short int var2 /* : Bool */;
5339 val* var3 /* : nullable ANode */;
5340 val* var_oldnode /* var oldnode: nullable ANode */;
5341 val* var4 /* : nullable Frame */;
5342 val* var_old_frame /* var old_frame: nullable Frame */;
5343 val* var5 /* : Frame */;
5344 val* var6 /* : nullable MPropDef */;
5345 val* var7 /* : MType */;
5346 short int var8 /* : Bool */;
5347 int cltype;
5348 int idtype;
5349 const char* var_class_name;
5350 val* var9 /* : Array[RuntimeVariable] */;
5351 long var10 /* : Int */;
5352 val* var_ /* var : Array[RuntimeVariable] */;
5353 val* var_frame /* var frame: Frame */;
5354 val* var11 /* : nullable MPropDef */;
5355 val* var12 /* : nullable MType */;
5356 val* var13 /* : RuntimeVariable */;
5357 val* var_value /* var value: RuntimeVariable */;
5358 val* var14 /* : nullable MPropDef */;
5359 val* var15 /* : MProperty */;
5360 var_v = p0;
5361 var_recv = p1;
5362 var = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrPropdef__n_expr]))(self) /* n_expr on <self:AAttrPropdef>*/;
5363 var_nexpr = var;
5364 var1 = NULL;
5365 if (var_nexpr == NULL) {
5366 var2 = 0; /* is null */
5367 } else {
5368 var2 = 1; /* arg is null and recv is not */
5369 }
5370 if (var2){
5371 var3 = ((val* (*)(val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__current_node]))(var_v) /* current_node on <var_v:AbstractCompilerVisitor>*/;
5372 var_oldnode = var3;
5373 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__current_node_61d]))(var_v, self) /* current_node= on <var_v:AbstractCompilerVisitor>*/;
5374 var4 = ((val* (*)(val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__frame]))(var_v) /* frame on <var_v:AbstractCompilerVisitor>*/;
5375 var_old_frame = var4;
5376 var5 = NEW_abstract_compiler__Frame(&type_abstract_compiler__Frame);
5377 var6 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(self) /* mpropdef on <self:AAttrPropdef>*/;
5378 if (var6 == NULL) {
5379 fprintf(stderr, "Runtime error: %s", "Cast failed");
5380 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1912);
5381 show_backtrace(1);
5382 }
5383 var7 = ((val* (*)(val*))(var_recv->class->vft[COLOR_abstract_compiler__RuntimeVariable__mtype]))(var_recv) /* mtype on <var_recv:RuntimeVariable>*/;
5384 /* <var7:MType> isa MClassType */
5385 cltype = type_model__MClassType.color;
5386 idtype = type_model__MClassType.id;
5387 if(cltype >= var7->type->table_size) {
5388 var8 = 0;
5389 } else {
5390 var8 = var7->type->type_table[cltype] == idtype;
5391 }
5392 if (!var8) {
5393 var_class_name = var7 == NULL ? "null" : var7->type->name;
5394 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name);
5395 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1912);
5396 show_backtrace(1);
5397 }
5398 var9 = NEW_array__Array(&type_array__Arrayabstract_compiler__RuntimeVariable);
5399 var10 = 1;
5400 ((void (*)(val*, long))(var9->class->vft[COLOR_array__Array__with_capacity]))(var9, var10) /* with_capacity on <var9:Array[RuntimeVariable]>*/;
5401 var_ = var9;
5402 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__Sequence__push]))(var_, var_recv) /* push on <var_:Array[RuntimeVariable]>*/;
5403 ((void (*)(val*, val*, val*, val*, val*))(var5->class->vft[COLOR_abstract_compiler__Frame__init]))(var5, var_v, var6, var7, var_) /* init on <var5:Frame>*/;
5404 var_frame = var5;
5405 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__frame_61d]))(var_v, var_frame) /* frame= on <var_v:AbstractCompilerVisitor>*/;
5406 var11 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(self) /* mpropdef on <self:AAttrPropdef>*/;
5407 if (var11 == NULL) {
5408 fprintf(stderr, "Runtime error: %s", "Receiver is null");
5409 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1914);
5410 show_backtrace(1);
5411 } else {
5412 var12 = ((val* (*)(val*))(var11->class->vft[COLOR_model__MAttributeDef__static_mtype]))(var11) /* static_mtype on <var11:nullable MPropDef(nullable MAttributeDef)>*/;
5413 }
5414 var13 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__expr]))(var_v, var_nexpr, var12) /* expr on <var_v:AbstractCompilerVisitor>*/;
5415 var_value = var13;
5416 var14 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(self) /* mpropdef on <self:AAttrPropdef>*/;
5417 if (var14 == NULL) {
5418 fprintf(stderr, "Runtime error: %s", "Receiver is null");
5419 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1915);
5420 show_backtrace(1);
5421 } else {
5422 var15 = ((val* (*)(val*))(var14->class->vft[COLOR_model__MPropDef__mproperty]))(var14) /* mproperty on <var14:nullable MPropDef(nullable MAttributeDef)>*/;
5423 }
5424 ((void (*)(val*, val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__write_attribute]))(var_v, var15, var_recv, var_value) /* write_attribute on <var_v:AbstractCompilerVisitor>*/;
5425 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__frame_61d]))(var_v, var_old_frame) /* frame= on <var_v:AbstractCompilerVisitor>*/;
5426 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__current_node_61d]))(var_v, var_oldnode) /* current_node= on <var_v:AbstractCompilerVisitor>*/;
5427 } else {
5428 }
5429 RET_LABEL:;
5430 }
5431 /* method abstract_compiler#AAttrPropdef#init_expr for (self: Object, AbstractCompilerVisitor, RuntimeVariable) */
5432 void VIRTUAL_abstract_compiler__AAttrPropdef__init_expr(val* self, val* p0, val* p1) {
5433 abstract_compiler__AAttrPropdef__init_expr(self, p0, p1);
5434 RET_LABEL:;
5435 }
5436 /* method abstract_compiler#AAttrPropdef#check_expr for (self: AAttrPropdef, AbstractCompilerVisitor, RuntimeVariable) */
5437 void abstract_compiler__AAttrPropdef__check_expr(val* self, val* p0, val* p1) {
5438 val* var_v /* var v: AbstractCompilerVisitor */;
5439 val* var_recv /* var recv: RuntimeVariable */;
5440 val* var /* : nullable AExpr */;
5441 val* var_nexpr /* var nexpr: nullable AExpr */;
5442 val* var1 /* : null */;
5443 short int var2 /* : Bool */;
5444 val* var3 /* : nullable ANode */;
5445 val* var_oldnode /* var oldnode: nullable ANode */;
5446 val* var4 /* : nullable Frame */;
5447 val* var_old_frame /* var old_frame: nullable Frame */;
5448 val* var5 /* : Frame */;
5449 val* var6 /* : nullable MPropDef */;
5450 val* var7 /* : MType */;
5451 short int var8 /* : Bool */;
5452 int cltype;
5453 int idtype;
5454 const char* var_class_name;
5455 val* var9 /* : Array[RuntimeVariable] */;
5456 long var10 /* : Int */;
5457 val* var_ /* var : Array[RuntimeVariable] */;
5458 val* var_frame /* var frame: Frame */;
5459 val* var11 /* : nullable MPropDef */;
5460 val* var12 /* : MProperty */;
5461 val* var13 /* : RuntimeVariable */;
5462 var_v = p0;
5463 var_recv = p1;
5464 var = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrPropdef__n_expr]))(self) /* n_expr on <self:AAttrPropdef>*/;
5465 var_nexpr = var;
5466 var1 = NULL;
5467 if (var_nexpr == NULL) {
5468 var2 = 0; /* is null */
5469 } else {
5470 var2 = 1; /* arg is null and recv is not */
5471 }
5472 if (var2){
5473 goto RET_LABEL;
5474 } else {
5475 }
5476 var3 = ((val* (*)(val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__current_node]))(var_v) /* current_node on <var_v:AbstractCompilerVisitor>*/;
5477 var_oldnode = var3;
5478 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__current_node_61d]))(var_v, self) /* current_node= on <var_v:AbstractCompilerVisitor>*/;
5479 var4 = ((val* (*)(val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__frame]))(var_v) /* frame on <var_v:AbstractCompilerVisitor>*/;
5480 var_old_frame = var4;
5481 var5 = NEW_abstract_compiler__Frame(&type_abstract_compiler__Frame);
5482 var6 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(self) /* mpropdef on <self:AAttrPropdef>*/;
5483 if (var6 == NULL) {
5484 fprintf(stderr, "Runtime error: %s", "Cast failed");
5485 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1929);
5486 show_backtrace(1);
5487 }
5488 var7 = ((val* (*)(val*))(var_recv->class->vft[COLOR_abstract_compiler__RuntimeVariable__mtype]))(var_recv) /* mtype on <var_recv:RuntimeVariable>*/;
5489 /* <var7:MType> isa MClassType */
5490 cltype = type_model__MClassType.color;
5491 idtype = type_model__MClassType.id;
5492 if(cltype >= var7->type->table_size) {
5493 var8 = 0;
5494 } else {
5495 var8 = var7->type->type_table[cltype] == idtype;
5496 }
5497 if (!var8) {
5498 var_class_name = var7 == NULL ? "null" : var7->type->name;
5499 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name);
5500 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1929);
5501 show_backtrace(1);
5502 }
5503 var9 = NEW_array__Array(&type_array__Arrayabstract_compiler__RuntimeVariable);
5504 var10 = 1;
5505 ((void (*)(val*, long))(var9->class->vft[COLOR_array__Array__with_capacity]))(var9, var10) /* with_capacity on <var9:Array[RuntimeVariable]>*/;
5506 var_ = var9;
5507 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__Sequence__push]))(var_, var_recv) /* push on <var_:Array[RuntimeVariable]>*/;
5508 ((void (*)(val*, val*, val*, val*, val*))(var5->class->vft[COLOR_abstract_compiler__Frame__init]))(var5, var_v, var6, var7, var_) /* init on <var5:Frame>*/;
5509 var_frame = var5;
5510 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__frame_61d]))(var_v, var_frame) /* frame= on <var_v:AbstractCompilerVisitor>*/;
5511 var11 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(self) /* mpropdef on <self:AAttrPropdef>*/;
5512 if (var11 == NULL) {
5513 fprintf(stderr, "Runtime error: %s", "Receiver is null");
5514 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1932);
5515 show_backtrace(1);
5516 } else {
5517 var12 = ((val* (*)(val*))(var11->class->vft[COLOR_model__MPropDef__mproperty]))(var11) /* mproperty on <var11:nullable MPropDef(nullable MAttributeDef)>*/;
5518 }
5519 var13 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__read_attribute]))(var_v, var12, var_recv) /* read_attribute on <var_v:AbstractCompilerVisitor>*/;
5520 var13;
5521 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__frame_61d]))(var_v, var_old_frame) /* frame= on <var_v:AbstractCompilerVisitor>*/;
5522 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__current_node_61d]))(var_v, var_oldnode) /* current_node= on <var_v:AbstractCompilerVisitor>*/;
5523 RET_LABEL:;
5524 }
5525 /* method abstract_compiler#AAttrPropdef#check_expr for (self: Object, AbstractCompilerVisitor, RuntimeVariable) */
5526 void VIRTUAL_abstract_compiler__AAttrPropdef__check_expr(val* self, val* p0, val* p1) {
5527 abstract_compiler__AAttrPropdef__check_expr(self, p0, p1);
5528 RET_LABEL:;
5529 }
5530 /* method abstract_compiler#AClassdef#compile_to_c for (self: AClassdef, AbstractCompilerVisitor, MMethodDef, Array[RuntimeVariable]) */
5531 void abstract_compiler__AClassdef__compile_to_c(val* self, val* p0, val* p1, val* p2) {
5532 val* var_v /* var v: AbstractCompilerVisitor */;
5533 val* var_mpropdef /* var mpropdef: MMethodDef */;
5534 val* var_arguments /* var arguments: Array[RuntimeVariable] */;
5535 val* var /* : nullable MMethodDef */;
5536 short int var1 /* : Bool */;
5537 val* var2 /* : nullable Collection[MMethod] */;
5538 val* var_super_inits /* var super_inits: nullable Collection[MMethod] */;
5539 val* var3 /* : null */;
5540 short int var4 /* : Bool */;
5541 long var5 /* : Int */;
5542 long var6 /* : Int */;
5543 short int var7 /* : Bool */;
5544 short int var9 /* : Bool */;
5545 val* var10 /* : Iterator[nullable Object] */;
5546 short int var11 /* : Bool */;
5547 val* var12 /* : nullable Object */;
5548 val* var_su /* var su: MMethod */;
5549 val* var13 /* : nullable RuntimeVariable */;
5550 val* var14 /* : nullable Object */;
5551 val* var_recv /* var recv: RuntimeVariable */;
5552 long var15 /* : Int */;
5553 long var_i /* var i: Int */;
5554 val* var16 /* : ANodes[APropdef] */;
5555 val* var17 /* : Iterator[nullable Object] */;
5556 short int var18 /* : Bool */;
5557 val* var19 /* : nullable Object */;
5558 val* var_npropdef /* var npropdef: APropdef */;
5559 short int var20 /* : Bool */;
5560 short int var21 /* : Bool */;
5561 int cltype;
5562 int idtype;
5563 short int var_ /* var : Bool */;
5564 val* var22 /* : nullable AExpr */;
5565 val* var23 /* : null */;
5566 short int var24 /* : Bool */;
5567 val* var25 /* : nullable MPropDef */;
5568 val* var26 /* : MProperty */;
5569 val* var27 /* : nullable Object */;
5570 long var28 /* : Int */;
5571 long var29 /* : Int */;
5572 long var31 /* : Int */;
5573 var_v = p0;
5574 var_mpropdef = p1;
5575 var_arguments = p2;
5576 var = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__AClassdef__mfree_init]))(self) /* mfree_init on <self:AClassdef>*/;
5577 var1 = ((short int (*)(val*, val*))(var_mpropdef->class->vft[COLOR_kernel__Object___61d_61d]))(var_mpropdef, var) /* == on <var_mpropdef:MMethodDef>*/;
5578 if (var1){
5579 var2 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__AClassdef__super_inits]))(self) /* super_inits on <self:AClassdef>*/;
5580 var_super_inits = var2;
5581 var3 = NULL;
5582 if (var_super_inits == NULL) {
5583 var4 = 0; /* is null */
5584 } else {
5585 var4 = 1; /* arg is null and recv is not */
5586 }
5587 if (var4){
5588 var5 = ((long (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Collection__length]))(var_arguments) /* length on <var_arguments:Array[RuntimeVariable]>*/;
5589 var6 = 1;
5590 { /* Inline kernel#Int#== (var5,var6) */
5591 var9 = var5 == var6;
5592 var7 = var9;
5593 goto RET_LABEL8;
5594 RET_LABEL8:(void)0;
5595 }
5596 if (!var7) {
5597 fprintf(stderr, "Runtime error: %s", "Assert failed");
5598 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1944);
5599 show_backtrace(1);
5600 }
5601 var10 = ((val* (*)(val*))(var_super_inits->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_super_inits) /* iterator on <var_super_inits:nullable Collection[MMethod](Collection[MMethod])>*/;
5602 for(;;) {
5603 var11 = ((short int (*)(val*))(var10->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var10) /* is_ok on <var10:Iterator[nullable Object]>*/;
5604 if(!var11) break;
5605 var12 = ((val* (*)(val*))(var10->class->vft[COLOR_abstract_collection__Iterator__item]))(var10) /* item on <var10:Iterator[nullable Object]>*/;
5606 var_su = var12;
5607 var13 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__send]))(var_v, var_su, var_arguments) /* send on <var_v:AbstractCompilerVisitor>*/;
5608 var13;
5609 CONTINUE_label: (void)0;
5610 ((void (*)(val*))(var10->class->vft[COLOR_abstract_collection__Iterator__next]))(var10) /* next on <var10:Iterator[nullable Object]>*/;
5611 }
5612 BREAK_label: (void)0;
5613 goto RET_LABEL;
5614 } else {
5615 }
5616 var14 = ((val* (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Collection__first]))(var_arguments) /* first on <var_arguments:Array[RuntimeVariable]>*/;
5617 var_recv = var14;
5618 var15 = 1;
5619 var_i = var15;
5620 var16 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AClassdef__n_propdefs]))(self) /* n_propdefs on <self:AClassdef>*/;
5621 var17 = ((val* (*)(val*))(var16->class->vft[COLOR_abstract_collection__Collection__iterator]))(var16) /* iterator on <var16:ANodes[APropdef]>*/;
5622 for(;;) {
5623 var18 = ((short int (*)(val*))(var17->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var17) /* is_ok on <var17:Iterator[nullable Object]>*/;
5624 if(!var18) break;
5625 var19 = ((val* (*)(val*))(var17->class->vft[COLOR_abstract_collection__Iterator__item]))(var17) /* item on <var17:Iterator[nullable Object]>*/;
5626 var_npropdef = var19;
5627 /* <var_npropdef:APropdef> isa AAttrPropdef */
5628 cltype = type_parser_nodes__AAttrPropdef.color;
5629 idtype = type_parser_nodes__AAttrPropdef.id;
5630 if(cltype >= var_npropdef->type->table_size) {
5631 var21 = 0;
5632 } else {
5633 var21 = var_npropdef->type->type_table[cltype] == idtype;
5634 }
5635 var_ = var21;
5636 if (var21){
5637 var22 = ((val* (*)(val*))(var_npropdef->class->vft[COLOR_parser_nodes__AAttrPropdef__n_expr]))(var_npropdef) /* n_expr on <var_npropdef:APropdef(AAttrPropdef)>*/;
5638 var23 = NULL;
5639 if (var22 == NULL) {
5640 var24 = 1; /* is null */
5641 } else {
5642 var24 = 0; /* arg is null but recv is not */
5643 }
5644 var20 = var24;
5645 } else {
5646 var20 = var_;
5647 }
5648 if (var20){
5649 var25 = ((val* (*)(val*))(var_npropdef->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(var_npropdef) /* mpropdef on <var_npropdef:APropdef(AAttrPropdef)>*/;
5650 if (var25 == NULL) {
5651 fprintf(stderr, "Runtime error: %s", "Receiver is null");
5652 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1955);
5653 show_backtrace(1);
5654 } else {
5655 var26 = ((val* (*)(val*))(var25->class->vft[COLOR_model__MPropDef__mproperty]))(var25) /* mproperty on <var25:nullable MPropDef(nullable MAttributeDef)>*/;
5656 }
5657 var27 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var_i) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
5658 ((void (*)(val*, val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__write_attribute]))(var_v, var26, var_recv, var27) /* write_attribute on <var_v:AbstractCompilerVisitor>*/;
5659 var28 = 1;
5660 { /* Inline kernel#Int#+ (var_i,var28) */
5661 var31 = var_i + var28;
5662 var29 = var31;
5663 goto RET_LABEL30;
5664 RET_LABEL30:(void)0;
5665 }
5666 var_i = var29;
5667 } else {
5668 }
5669 CONTINUE_label32: (void)0;
5670 ((void (*)(val*))(var17->class->vft[COLOR_abstract_collection__Iterator__next]))(var17) /* next on <var17:Iterator[nullable Object]>*/;
5671 }
5672 BREAK_label32: (void)0;
5673 } else {
5674 fprintf(stderr, "Runtime error: %s", "Aborted");
5675 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1960);
5676 show_backtrace(1);
5677 }
5678 RET_LABEL:;
5679 }
5680 /* method abstract_compiler#AClassdef#compile_to_c for (self: Object, AbstractCompilerVisitor, MMethodDef, Array[RuntimeVariable]) */
5681 void VIRTUAL_abstract_compiler__AClassdef__compile_to_c(val* self, val* p0, val* p1, val* p2) {
5682 abstract_compiler__AClassdef__compile_to_c(self, p0, p1, p2);
5683 RET_LABEL:;
5684 }
5685 /* method abstract_compiler#ADeferredMethPropdef#compile_to_c for (self: ADeferredMethPropdef, AbstractCompilerVisitor, MMethodDef, Array[RuntimeVariable]) */
5686 void abstract_compiler__ADeferredMethPropdef__compile_to_c(val* self, val* p0, val* p1, val* p2) {
5687 val* var_v /* var v: AbstractCompilerVisitor */;
5688 val* var_mpropdef /* var mpropdef: MMethodDef */;
5689 val* var_arguments /* var arguments: Array[RuntimeVariable] */;
5690 val* var /* : nullable Object */;
5691 val* var1 /* : String */;
5692 val* var_cn /* var cn: String */;
5693 static val* varonce;
5694 val* var2 /* : String */;
5695 char* var3 /* : NativeString */;
5696 long var4 /* : Int */;
5697 val* var5 /* : String */;
5698 val* var6 /* : MProperty */;
5699 val* var7 /* : String */;
5700 val* var8 /* : String */;
5701 static val* varonce9;
5702 val* var10 /* : String */;
5703 char* var11 /* : NativeString */;
5704 long var12 /* : Int */;
5705 val* var13 /* : String */;
5706 static val* varonce14;
5707 val* var15 /* : String */;
5708 char* var16 /* : NativeString */;
5709 long var17 /* : Int */;
5710 val* var18 /* : String */;
5711 val* var19 /* : Array[Object] */;
5712 long var20 /* : Int */;
5713 val* var21 /* : NativeArray[Object] */;
5714 val* var22 /* : String */;
5715 var_v = p0;
5716 var_mpropdef = p1;
5717 var_arguments = p2;
5718 var = ((val* (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Collection__first]))(var_arguments) /* first on <var_arguments:Array[RuntimeVariable]>*/;
5719 var1 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__class_name_string]))(var_v, var) /* class_name_string on <var_v:AbstractCompilerVisitor>*/;
5720 var_cn = var1;
5721 if (varonce) {
5722 var2 = varonce;
5723 } else {
5724 var3 = "fprintf(stderr, \"Runtime error: Abstract method `%s` called on `%s`\", \"";
5725 var4 = 71;
5726 var5 = string__NativeString__to_s_with_length(var3, var4);
5727 var2 = var5;
5728 varonce = var2;
5729 }
5730 var6 = ((val* (*)(val*))(var_mpropdef->class->vft[COLOR_model__MPropDef__mproperty]))(var_mpropdef) /* mproperty on <var_mpropdef:MMethodDef>*/;
5731 var7 = ((val* (*)(val*))(var6->class->vft[COLOR_model__MProperty__name]))(var6) /* name on <var6:MProperty(MMethod)>*/;
5732 var8 = ((val* (*)(val*))(var7->class->vft[COLOR_string__AbstractString__escape_to_c]))(var7) /* escape_to_c on <var7:String>*/;
5733 if (varonce9) {
5734 var10 = varonce9;
5735 } else {
5736 var11 = "\", ";
5737 var12 = 3;
5738 var13 = string__NativeString__to_s_with_length(var11, var12);
5739 var10 = var13;
5740 varonce9 = var10;
5741 }
5742 if (varonce14) {
5743 var15 = varonce14;
5744 } else {
5745 var16 = ");";
5746 var17 = 2;
5747 var18 = string__NativeString__to_s_with_length(var16, var17);
5748 var15 = var18;
5749 varonce14 = var15;
5750 }
5751 var19 = NEW_array__Array(&type_array__Arraykernel__Object);
5752 { /* var19 = array_instance Array[Object] */
5753 var20 = 5;
5754 var21 = NEW_array__NativeArray(var20, &type_array__NativeArraykernel__Object);
5755 ((struct instance_array__NativeArray*)var21)->values[0] = (val*) var2;
5756 ((struct instance_array__NativeArray*)var21)->values[1] = (val*) var8;
5757 ((struct instance_array__NativeArray*)var21)->values[2] = (val*) var10;
5758 ((struct instance_array__NativeArray*)var21)->values[3] = (val*) var_cn;
5759 ((struct instance_array__NativeArray*)var21)->values[4] = (val*) var15;
5760 ((void (*)(val*, val*, long))(var19->class->vft[COLOR_array__Array__with_native]))(var19, var21, var20) /* with_native on <var19:Array[Object]>*/;
5761 }
5762 var22 = ((val* (*)(val*))(var19->class->vft[COLOR_string__Object__to_s]))(var19) /* to_s on <var19:Array[Object]>*/;
5763 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var22) /* add on <var_v:AbstractCompilerVisitor>*/;
5764 ((void (*)(val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add_raw_abort]))(var_v) /* add_raw_abort on <var_v:AbstractCompilerVisitor>*/;
5765 RET_LABEL:;
5766 }
5767 /* method abstract_compiler#ADeferredMethPropdef#compile_to_c for (self: Object, AbstractCompilerVisitor, MMethodDef, Array[RuntimeVariable]) */
5768 void VIRTUAL_abstract_compiler__ADeferredMethPropdef__compile_to_c(val* self, val* p0, val* p1, val* p2) {
5769 abstract_compiler__ADeferredMethPropdef__compile_to_c(self, p0, p1, p2);
5770 RET_LABEL:;
5771 }
5772 /* method abstract_compiler#ADeferredMethPropdef#can_inline for (self: ADeferredMethPropdef): Bool */
5773 short int abstract_compiler__ADeferredMethPropdef__can_inline(val* self) {
5774 short int var /* : Bool */;
5775 short int var1 /* : Bool */;
5776 var1 = 1;
5777 var = var1;
5778 goto RET_LABEL;
5779 RET_LABEL:;
5780 return var;
5781 }
5782 /* method abstract_compiler#ADeferredMethPropdef#can_inline for (self: Object): Bool */
5783 short int VIRTUAL_abstract_compiler__ADeferredMethPropdef__can_inline(val* self) {
5784 short int var /* : Bool */;
5785 short int var1 /* : Bool */;
5786 var1 = abstract_compiler__ADeferredMethPropdef__can_inline(self);
5787 var = var1;
5788 RET_LABEL:;
5789 return var;
5790 }
5791 /* method abstract_compiler#AExpr#expr for (self: AExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
5792 val* abstract_compiler__AExpr__expr(val* self, val* p0) {
5793 val* var /* : nullable RuntimeVariable */;
5794 val* var_v /* var v: AbstractCompilerVisitor */;
5795 static val* varonce;
5796 val* var1 /* : String */;
5797 char* var2 /* : NativeString */;
5798 long var3 /* : Int */;
5799 val* var4 /* : String */;
5800 val* var5 /* : String */;
5801 static val* varonce6;
5802 val* var7 /* : String */;
5803 char* var8 /* : NativeString */;
5804 long var9 /* : Int */;
5805 val* var10 /* : String */;
5806 val* var11 /* : Location */;
5807 val* var12 /* : String */;
5808 static val* varonce13;
5809 val* var14 /* : String */;
5810 char* var15 /* : NativeString */;
5811 long var16 /* : Int */;
5812 val* var17 /* : String */;
5813 val* var18 /* : Array[Object] */;
5814 long var19 /* : Int */;
5815 val* var20 /* : NativeArray[Object] */;
5816 val* var21 /* : String */;
5817 val* var22 /* : nullable MType */;
5818 val* var_mtype /* var mtype: nullable MType */;
5819 val* var23 /* : null */;
5820 short int var24 /* : Bool */;
5821 val* var25 /* : null */;
5822 val* var26 /* : RuntimeVariable */;
5823 val* var_res /* var res: RuntimeVariable */;
5824 static val* varonce27;
5825 val* var28 /* : String */;
5826 char* var29 /* : NativeString */;
5827 long var30 /* : Int */;
5828 val* var31 /* : String */;
5829 static val* varonce32;
5830 val* var33 /* : String */;
5831 char* var34 /* : NativeString */;
5832 long var35 /* : Int */;
5833 val* var36 /* : String */;
5834 val* var37 /* : String */;
5835 static val* varonce38;
5836 val* var39 /* : String */;
5837 char* var40 /* : NativeString */;
5838 long var41 /* : Int */;
5839 val* var42 /* : String */;
5840 val* var43 /* : Array[Object] */;
5841 long var44 /* : Int */;
5842 val* var45 /* : NativeArray[Object] */;
5843 val* var46 /* : String */;
5844 var_v = p0;
5845 if (varonce) {
5846 var1 = varonce;
5847 } else {
5848 var2 = "printf(\"NOT YET IMPLEMENTED ";
5849 var3 = 28;
5850 var4 = string__NativeString__to_s_with_length(var2, var3);
5851 var1 = var4;
5852 varonce = var1;
5853 }
5854 var5 = ((val* (*)(val*))(self->class->vft[COLOR_string__Object__class_name]))(self) /* class_name on <self:AExpr>*/;
5855 if (varonce6) {
5856 var7 = varonce6;
5857 } else {
5858 var8 = ":";
5859 var9 = 1;
5860 var10 = string__NativeString__to_s_with_length(var8, var9);
5861 var7 = var10;
5862 varonce6 = var7;
5863 }
5864 var11 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANode__location]))(self) /* location on <self:AExpr>*/;
5865 var12 = ((val* (*)(val*))(var11->class->vft[COLOR_string__Object__to_s]))(var11) /* to_s on <var11:Location>*/;
5866 if (varonce13) {
5867 var14 = varonce13;
5868 } else {
5869 var15 = "\\n\");";
5870 var16 = 5;
5871 var17 = string__NativeString__to_s_with_length(var15, var16);
5872 var14 = var17;
5873 varonce13 = var14;
5874 }
5875 var18 = NEW_array__Array(&type_array__Arraykernel__Object);
5876 { /* var18 = array_instance Array[Object] */
5877 var19 = 5;
5878 var20 = NEW_array__NativeArray(var19, &type_array__NativeArraykernel__Object);
5879 ((struct instance_array__NativeArray*)var20)->values[0] = (val*) var1;
5880 ((struct instance_array__NativeArray*)var20)->values[1] = (val*) var5;
5881 ((struct instance_array__NativeArray*)var20)->values[2] = (val*) var7;
5882 ((struct instance_array__NativeArray*)var20)->values[3] = (val*) var12;
5883 ((struct instance_array__NativeArray*)var20)->values[4] = (val*) var14;
5884 ((void (*)(val*, val*, long))(var18->class->vft[COLOR_array__Array__with_native]))(var18, var20, var19) /* with_native on <var18:Array[Object]>*/;
5885 }
5886 var21 = ((val* (*)(val*))(var18->class->vft[COLOR_string__Object__to_s]))(var18) /* to_s on <var18:Array[Object]>*/;
5887 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var21) /* add on <var_v:AbstractCompilerVisitor>*/;
5888 var22 = ((val* (*)(val*))(self->class->vft[COLOR_typing__AExpr__mtype]))(self) /* mtype on <self:AExpr>*/;
5889 var_mtype = var22;
5890 var23 = NULL;
5891 if (var_mtype == NULL) {
5892 var24 = 1; /* is null */
5893 } else {
5894 var24 = 0; /* arg is null but recv is not */
5895 }
5896 if (var24){
5897 var25 = NULL;
5898 var = var25;
5899 goto RET_LABEL;
5900 } else {
5901 var26 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var]))(var_v, var_mtype) /* new_var on <var_v:AbstractCompilerVisitor>*/;
5902 var_res = var26;
5903 if (varonce27) {
5904 var28 = varonce27;
5905 } else {
5906 var29 = "/* ";
5907 var30 = 3;
5908 var31 = string__NativeString__to_s_with_length(var29, var30);
5909 var28 = var31;
5910 varonce27 = var28;
5911 }
5912 if (varonce32) {
5913 var33 = varonce32;
5914 } else {
5915 var34 = " = NOT YET ";
5916 var35 = 11;
5917 var36 = string__NativeString__to_s_with_length(var34, var35);
5918 var33 = var36;
5919 varonce32 = var33;
5920 }
5921 var37 = ((val* (*)(val*))(self->class->vft[COLOR_string__Object__class_name]))(self) /* class_name on <self:AExpr>*/;
5922 if (varonce38) {
5923 var39 = varonce38;
5924 } else {
5925 var40 = " */";
5926 var41 = 3;
5927 var42 = string__NativeString__to_s_with_length(var40, var41);
5928 var39 = var42;
5929 varonce38 = var39;
5930 }
5931 var43 = NEW_array__Array(&type_array__Arraykernel__Object);
5932 { /* var43 = array_instance Array[Object] */
5933 var44 = 5;
5934 var45 = NEW_array__NativeArray(var44, &type_array__NativeArraykernel__Object);
5935 ((struct instance_array__NativeArray*)var45)->values[0] = (val*) var28;
5936 ((struct instance_array__NativeArray*)var45)->values[1] = (val*) var_res;
5937 ((struct instance_array__NativeArray*)var45)->values[2] = (val*) var33;
5938 ((struct instance_array__NativeArray*)var45)->values[3] = (val*) var37;
5939 ((struct instance_array__NativeArray*)var45)->values[4] = (val*) var39;
5940 ((void (*)(val*, val*, long))(var43->class->vft[COLOR_array__Array__with_native]))(var43, var45, var44) /* with_native on <var43:Array[Object]>*/;
5941 }
5942 var46 = ((val* (*)(val*))(var43->class->vft[COLOR_string__Object__to_s]))(var43) /* to_s on <var43:Array[Object]>*/;
5943 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var46) /* add on <var_v:AbstractCompilerVisitor>*/;
5944 var = var_res;
5945 goto RET_LABEL;
5946 }
5947 RET_LABEL:;
5948 return var;
5949 }
5950 /* method abstract_compiler#AExpr#expr for (self: Object, AbstractCompilerVisitor): nullable RuntimeVariable */
5951 val* VIRTUAL_abstract_compiler__AExpr__expr(val* self, val* p0) {
5952 val* var /* : nullable RuntimeVariable */;
5953 val* var1 /* : nullable RuntimeVariable */;
5954 var1 = abstract_compiler__AExpr__expr(self, p0);
5955 var = var1;
5956 RET_LABEL:;
5957 return var;
5958 }
5959 /* method abstract_compiler#AExpr#stmt for (self: AExpr, AbstractCompilerVisitor) */
5960 void abstract_compiler__AExpr__stmt(val* self, val* p0) {
5961 val* var_v /* var v: AbstractCompilerVisitor */;
5962 val* var /* : nullable RuntimeVariable */;
5963 val* var_res /* var res: nullable RuntimeVariable */;
5964 val* var1 /* : null */;
5965 short int var2 /* : Bool */;
5966 static val* varonce;
5967 val* var3 /* : String */;
5968 char* var4 /* : NativeString */;
5969 long var5 /* : Int */;
5970 val* var6 /* : String */;
5971 val* var7 /* : Array[Object] */;
5972 long var8 /* : Int */;
5973 val* var9 /* : NativeArray[Object] */;
5974 val* var10 /* : String */;
5975 var_v = p0;
5976 var = ((val* (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__AExpr__expr]))(self, var_v) /* expr on <self:AExpr>*/;
5977 var_res = var;
5978 var1 = NULL;
5979 if (var_res == NULL) {
5980 var2 = 0; /* is null */
5981 } else {
5982 var2 = 1; /* arg is null and recv is not */
5983 }
5984 if (var2){
5985 if (varonce) {
5986 var3 = varonce;
5987 } else {
5988 var4 = ";";
5989 var5 = 1;
5990 var6 = string__NativeString__to_s_with_length(var4, var5);
5991 var3 = var6;
5992 varonce = var3;
5993 }
5994 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
5995 { /* var7 = array_instance Array[Object] */
5996 var8 = 2;
5997 var9 = NEW_array__NativeArray(var8, &type_array__NativeArraykernel__Object);
5998 ((struct instance_array__NativeArray*)var9)->values[0] = (val*) var_res;
5999 ((struct instance_array__NativeArray*)var9)->values[1] = (val*) var3;
6000 ((void (*)(val*, val*, long))(var7->class->vft[COLOR_array__Array__with_native]))(var7, var9, var8) /* with_native on <var7:Array[Object]>*/;
6001 }
6002 var10 = ((val* (*)(val*))(var7->class->vft[COLOR_string__Object__to_s]))(var7) /* to_s on <var7:Array[Object]>*/;
6003 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var10) /* add on <var_v:AbstractCompilerVisitor>*/;
6004 } else {
6005 }
6006 RET_LABEL:;
6007 }
6008 /* method abstract_compiler#AExpr#stmt for (self: Object, AbstractCompilerVisitor) */
6009 void VIRTUAL_abstract_compiler__AExpr__stmt(val* self, val* p0) {
6010 abstract_compiler__AExpr__stmt(self, p0);
6011 RET_LABEL:;
6012 }
6013 /* method abstract_compiler#ABlockExpr#stmt for (self: ABlockExpr, AbstractCompilerVisitor) */
6014 void abstract_compiler__ABlockExpr__stmt(val* self, val* p0) {
6015 val* var_v /* var v: AbstractCompilerVisitor */;
6016 val* var /* : ANodes[AExpr] */;
6017 val* var1 /* : Iterator[nullable Object] */;
6018 short int var2 /* : Bool */;
6019 val* var3 /* : nullable Object */;
6020 val* var_e /* var e: AExpr */;
6021 var_v = p0;
6022 var = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ABlockExpr__n_expr]))(self) /* n_expr on <self:ABlockExpr>*/;
6023 var1 = ((val* (*)(val*))(var->class->vft[COLOR_abstract_collection__Collection__iterator]))(var) /* iterator on <var:ANodes[AExpr]>*/;
6024 for(;;) {
6025 var2 = ((short int (*)(val*))(var1->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var1) /* is_ok on <var1:Iterator[nullable Object]>*/;
6026 if(!var2) break;
6027 var3 = ((val* (*)(val*))(var1->class->vft[COLOR_abstract_collection__Iterator__item]))(var1) /* item on <var1:Iterator[nullable Object]>*/;
6028 var_e = var3;
6029 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__stmt]))(var_v, var_e) /* stmt on <var_v:AbstractCompilerVisitor>*/;
6030 CONTINUE_label: (void)0;
6031 ((void (*)(val*))(var1->class->vft[COLOR_abstract_collection__Iterator__next]))(var1) /* next on <var1:Iterator[nullable Object]>*/;
6032 }
6033 BREAK_label: (void)0;
6034 RET_LABEL:;
6035 }
6036 /* method abstract_compiler#ABlockExpr#stmt for (self: Object, AbstractCompilerVisitor) */
6037 void VIRTUAL_abstract_compiler__ABlockExpr__stmt(val* self, val* p0) {
6038 abstract_compiler__ABlockExpr__stmt(self, p0);
6039 RET_LABEL:;
6040 }
6041 /* method abstract_compiler#ABlockExpr#expr for (self: ABlockExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
6042 val* abstract_compiler__ABlockExpr__expr(val* self, val* p0) {
6043 val* var /* : nullable RuntimeVariable */;
6044 val* var_v /* var v: AbstractCompilerVisitor */;
6045 val* var1 /* : ANodes[AExpr] */;
6046 val* var2 /* : nullable Object */;
6047 val* var_last /* var last: AExpr */;
6048 val* var3 /* : ANodes[AExpr] */;
6049 val* var4 /* : Iterator[nullable Object] */;
6050 short int var5 /* : Bool */;
6051 val* var6 /* : nullable Object */;
6052 val* var_e /* var e: AExpr */;
6053 short int var7 /* : Bool */;
6054 val* var8 /* : null */;
6055 val* var9 /* : RuntimeVariable */;
6056 var_v = p0;
6057 var1 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ABlockExpr__n_expr]))(self) /* n_expr on <self:ABlockExpr>*/;
6058 var2 = ((val* (*)(val*))(var1->class->vft[COLOR_abstract_collection__SequenceRead__last]))(var1) /* last on <var1:ANodes[AExpr]>*/;
6059 var_last = var2;
6060 var3 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ABlockExpr__n_expr]))(self) /* n_expr on <self:ABlockExpr>*/;
6061 var4 = ((val* (*)(val*))(var3->class->vft[COLOR_abstract_collection__Collection__iterator]))(var3) /* iterator on <var3:ANodes[AExpr]>*/;
6062 for(;;) {
6063 var5 = ((short int (*)(val*))(var4->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var4) /* is_ok on <var4:Iterator[nullable Object]>*/;
6064 if(!var5) break;
6065 var6 = ((val* (*)(val*))(var4->class->vft[COLOR_abstract_collection__Iterator__item]))(var4) /* item on <var4:Iterator[nullable Object]>*/;
6066 var_e = var6;
6067 var7 = ((short int (*)(val*, val*))(var_e->class->vft[COLOR_kernel__Object___61d_61d]))(var_e, var_last) /* == on <var_e:AExpr>*/;
6068 if (var7){
6069 goto BREAK_label;
6070 } else {
6071 }
6072 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__stmt]))(var_v, var_e) /* stmt on <var_v:AbstractCompilerVisitor>*/;
6073 CONTINUE_label: (void)0;
6074 ((void (*)(val*))(var4->class->vft[COLOR_abstract_collection__Iterator__next]))(var4) /* next on <var4:Iterator[nullable Object]>*/;
6075 }
6076 BREAK_label: (void)0;
6077 var8 = NULL;
6078 var9 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__expr]))(var_v, var_last, var8) /* expr on <var_v:AbstractCompilerVisitor>*/;
6079 var = var9;
6080 goto RET_LABEL;
6081 RET_LABEL:;
6082 return var;
6083 }
6084 /* method abstract_compiler#ABlockExpr#expr for (self: Object, AbstractCompilerVisitor): nullable RuntimeVariable */
6085 val* VIRTUAL_abstract_compiler__ABlockExpr__expr(val* self, val* p0) {
6086 val* var /* : nullable RuntimeVariable */;
6087 val* var1 /* : nullable RuntimeVariable */;
6088 var1 = abstract_compiler__ABlockExpr__expr(self, p0);
6089 var = var1;
6090 RET_LABEL:;
6091 return var;
6092 }
6093 /* method abstract_compiler#AVardeclExpr#stmt for (self: AVardeclExpr, AbstractCompilerVisitor) */
6094 void abstract_compiler__AVardeclExpr__stmt(val* self, val* p0) {
6095 val* var_v /* var v: AbstractCompilerVisitor */;
6096 val* var /* : nullable Variable */;
6097 val* var_variable /* var variable: Variable */;
6098 val* var1 /* : nullable AExpr */;
6099 val* var_ne /* var ne: nullable AExpr */;
6100 val* var2 /* : null */;
6101 short int var3 /* : Bool */;
6102 val* var4 /* : nullable MType */;
6103 val* var5 /* : RuntimeVariable */;
6104 val* var_i /* var i: RuntimeVariable */;
6105 val* var6 /* : RuntimeVariable */;
6106 var_v = p0;
6107 var = ((val* (*)(val*))(self->class->vft[COLOR_scope__AVardeclExpr__variable]))(self) /* variable on <self:AVardeclExpr>*/;
6108 if (var == NULL) {
6109 fprintf(stderr, "Runtime error: %s", "Cast failed");
6110 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2018);
6111 show_backtrace(1);
6112 }
6113 var_variable = var;
6114 var1 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AVardeclExpr__n_expr]))(self) /* n_expr on <self:AVardeclExpr>*/;
6115 var_ne = var1;
6116 var2 = NULL;
6117 if (var_ne == NULL) {
6118 var3 = 0; /* is null */
6119 } else {
6120 var3 = 1; /* arg is null and recv is not */
6121 }
6122 if (var3){
6123 var4 = ((val* (*)(val*))(var_variable->class->vft[COLOR_typing__Variable__declared_type]))(var_variable) /* declared_type on <var_variable:Variable>*/;
6124 var5 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__expr]))(var_v, var_ne, var4) /* expr on <var_v:AbstractCompilerVisitor>*/;
6125 var_i = var5;
6126 var6 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__variable]))(var_v, var_variable) /* variable on <var_v:AbstractCompilerVisitor>*/;
6127 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__assign]))(var_v, var6, var_i) /* assign on <var_v:AbstractCompilerVisitor>*/;
6128 } else {
6129 }
6130 RET_LABEL:;
6131 }
6132 /* method abstract_compiler#AVardeclExpr#stmt for (self: Object, AbstractCompilerVisitor) */
6133 void VIRTUAL_abstract_compiler__AVardeclExpr__stmt(val* self, val* p0) {
6134 abstract_compiler__AVardeclExpr__stmt(self, p0);
6135 RET_LABEL:;
6136 }
6137 /* method abstract_compiler#AVarExpr#expr for (self: AVarExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
6138 val* abstract_compiler__AVarExpr__expr(val* self, val* p0) {
6139 val* var /* : nullable RuntimeVariable */;
6140 val* var_v /* var v: AbstractCompilerVisitor */;
6141 val* var1 /* : nullable Variable */;
6142 val* var2 /* : RuntimeVariable */;
6143 val* var_res /* var res: RuntimeVariable */;
6144 val* var3 /* : nullable MType */;
6145 val* var_mtype /* var mtype: MType */;
6146 val* var4 /* : RuntimeVariable */;
6147 var_v = p0;
6148 var1 = ((val* (*)(val*))(self->class->vft[COLOR_scope__AVarFormExpr__variable]))(self) /* variable on <self:AVarExpr>*/;
6149 if (var1 == NULL) {
6150 fprintf(stderr, "Runtime error: %s", "Cast failed");
6151 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2030);
6152 show_backtrace(1);
6153 }
6154 var2 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__variable]))(var_v, var1) /* variable on <var_v:AbstractCompilerVisitor>*/;
6155 var_res = var2;
6156 var3 = ((val* (*)(val*))(self->class->vft[COLOR_typing__AExpr__mtype]))(self) /* mtype on <self:AVarExpr>*/;
6157 if (var3 == NULL) {
6158 fprintf(stderr, "Runtime error: %s", "Cast failed");
6159 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2031);
6160 show_backtrace(1);
6161 }
6162 var_mtype = var3;
6163 var4 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__autoadapt]))(var_v, var_res, var_mtype) /* autoadapt on <var_v:AbstractCompilerVisitor>*/;
6164 var = var4;
6165 goto RET_LABEL;
6166 RET_LABEL:;
6167 return var;
6168 }
6169 /* method abstract_compiler#AVarExpr#expr for (self: Object, AbstractCompilerVisitor): nullable RuntimeVariable */
6170 val* VIRTUAL_abstract_compiler__AVarExpr__expr(val* self, val* p0) {
6171 val* var /* : nullable RuntimeVariable */;
6172 val* var1 /* : nullable RuntimeVariable */;
6173 var1 = abstract_compiler__AVarExpr__expr(self, p0);
6174 var = var1;
6175 RET_LABEL:;
6176 return var;
6177 }
6178 /* method abstract_compiler#AVarAssignExpr#stmt for (self: AVarAssignExpr, AbstractCompilerVisitor) */
6179 void abstract_compiler__AVarAssignExpr__stmt(val* self, val* p0) {
6180 val* var_v /* var v: AbstractCompilerVisitor */;
6181 val* var /* : nullable Variable */;
6182 val* var_variable /* var variable: Variable */;
6183 val* var1 /* : AExpr */;
6184 val* var2 /* : nullable MType */;
6185 val* var3 /* : RuntimeVariable */;
6186 val* var_i /* var i: RuntimeVariable */;
6187 val* var4 /* : RuntimeVariable */;
6188 var_v = p0;
6189 var = ((val* (*)(val*))(self->class->vft[COLOR_scope__AVarFormExpr__variable]))(self) /* variable on <self:AVarAssignExpr>*/;
6190 if (var == NULL) {
6191 fprintf(stderr, "Runtime error: %s", "Cast failed");
6192 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2039);
6193 show_backtrace(1);
6194 }
6195 var_variable = var;
6196 var1 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAssignFormExpr__n_value]))(self) /* n_value on <self:AVarAssignExpr>*/;
6197 var2 = ((val* (*)(val*))(var_variable->class->vft[COLOR_typing__Variable__declared_type]))(var_variable) /* declared_type on <var_variable:Variable>*/;
6198 var3 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__expr]))(var_v, var1, var2) /* expr on <var_v:AbstractCompilerVisitor>*/;
6199 var_i = var3;
6200 var4 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__variable]))(var_v, var_variable) /* variable on <var_v:AbstractCompilerVisitor>*/;
6201 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__assign]))(var_v, var4, var_i) /* assign on <var_v:AbstractCompilerVisitor>*/;
6202 RET_LABEL:;
6203 }
6204 /* method abstract_compiler#AVarAssignExpr#stmt for (self: Object, AbstractCompilerVisitor) */
6205 void VIRTUAL_abstract_compiler__AVarAssignExpr__stmt(val* self, val* p0) {
6206 abstract_compiler__AVarAssignExpr__stmt(self, p0);
6207 RET_LABEL:;
6208 }
6209 /* method abstract_compiler#AVarAssignExpr#expr for (self: AVarAssignExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
6210 val* abstract_compiler__AVarAssignExpr__expr(val* self, val* p0) {
6211 val* var /* : nullable RuntimeVariable */;
6212 val* var_v /* var v: AbstractCompilerVisitor */;
6213 val* var1 /* : nullable Variable */;
6214 val* var_variable /* var variable: Variable */;
6215 val* var2 /* : AExpr */;
6216 val* var3 /* : nullable MType */;
6217 val* var4 /* : RuntimeVariable */;
6218 val* var_i /* var i: RuntimeVariable */;
6219 val* var5 /* : RuntimeVariable */;
6220 var_v = p0;
6221 var1 = ((val* (*)(val*))(self->class->vft[COLOR_scope__AVarFormExpr__variable]))(self) /* variable on <self:AVarAssignExpr>*/;
6222 if (var1 == NULL) {
6223 fprintf(stderr, "Runtime error: %s", "Cast failed");
6224 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2045);
6225 show_backtrace(1);
6226 }
6227 var_variable = var1;
6228 var2 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAssignFormExpr__n_value]))(self) /* n_value on <self:AVarAssignExpr>*/;
6229 var3 = ((val* (*)(val*))(var_variable->class->vft[COLOR_typing__Variable__declared_type]))(var_variable) /* declared_type on <var_variable:Variable>*/;
6230 var4 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__expr]))(var_v, var2, var3) /* expr on <var_v:AbstractCompilerVisitor>*/;
6231 var_i = var4;
6232 var5 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__variable]))(var_v, var_variable) /* variable on <var_v:AbstractCompilerVisitor>*/;
6233 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__assign]))(var_v, var5, var_i) /* assign on <var_v:AbstractCompilerVisitor>*/;
6234 var = var_i;
6235 goto RET_LABEL;
6236 RET_LABEL:;
6237 return var;
6238 }
6239 /* method abstract_compiler#AVarAssignExpr#expr for (self: Object, AbstractCompilerVisitor): nullable RuntimeVariable */
6240 val* VIRTUAL_abstract_compiler__AVarAssignExpr__expr(val* self, val* p0) {
6241 val* var /* : nullable RuntimeVariable */;
6242 val* var1 /* : nullable RuntimeVariable */;
6243 var1 = abstract_compiler__AVarAssignExpr__expr(self, p0);
6244 var = var1;
6245 RET_LABEL:;
6246 return var;
6247 }
6248 /* method abstract_compiler#AVarReassignExpr#stmt for (self: AVarReassignExpr, AbstractCompilerVisitor) */
6249 void abstract_compiler__AVarReassignExpr__stmt(val* self, val* p0) {
6250 val* var_v /* var v: AbstractCompilerVisitor */;
6251 val* var /* : nullable Variable */;
6252 val* var_variable /* var variable: Variable */;
6253 val* var1 /* : RuntimeVariable */;
6254 val* var_vari /* var vari: RuntimeVariable */;
6255 val* var2 /* : AExpr */;
6256 val* var3 /* : nullable MType */;
6257 val* var4 /* : RuntimeVariable */;
6258 val* var_value /* var value: RuntimeVariable */;
6259 val* var5 /* : nullable CallSite */;
6260 val* var6 /* : Array[RuntimeVariable] */;
6261 long var7 /* : Int */;
6262 val* var8 /* : NativeArray[RuntimeVariable] */;
6263 val* var9 /* : nullable RuntimeVariable */;
6264 val* var_res /* var res: nullable RuntimeVariable */;
6265 val* var10 /* : null */;
6266 short int var11 /* : Bool */;
6267 val* var12 /* : RuntimeVariable */;
6268 var_v = p0;
6269 var = ((val* (*)(val*))(self->class->vft[COLOR_scope__AVarFormExpr__variable]))(self) /* variable on <self:AVarReassignExpr>*/;
6270 if (var == NULL) {
6271 fprintf(stderr, "Runtime error: %s", "Cast failed");
6272 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2055);
6273 show_backtrace(1);
6274 }
6275 var_variable = var;
6276 var1 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__variable]))(var_v, var_variable) /* variable on <var_v:AbstractCompilerVisitor>*/;
6277 var_vari = var1;
6278 var2 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AReassignFormExpr__n_value]))(self) /* n_value on <self:AVarReassignExpr>*/;
6279 var3 = ((val* (*)(val*))(var_variable->class->vft[COLOR_typing__Variable__declared_type]))(var_variable) /* declared_type on <var_variable:Variable>*/;
6280 var4 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__expr]))(var_v, var2, var3) /* expr on <var_v:AbstractCompilerVisitor>*/;
6281 var_value = var4;
6282 var5 = ((val* (*)(val*))(self->class->vft[COLOR_typing__AReassignFormExpr__reassign_callsite]))(self) /* reassign_callsite on <self:AVarReassignExpr>*/;
6283 if (var5 == NULL) {
6284 fprintf(stderr, "Runtime error: %s", "Cast failed");
6285 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2058);
6286 show_backtrace(1);
6287 }
6288 var6 = NEW_array__Array(&type_array__Arrayabstract_compiler__RuntimeVariable);
6289 { /* var6 = array_instance Array[RuntimeVariable] */
6290 var7 = 2;
6291 var8 = NEW_array__NativeArray(var7, &type_array__NativeArrayabstract_compiler__RuntimeVariable);
6292 ((struct instance_array__NativeArray*)var8)->values[0] = (val*) var_vari;
6293 ((struct instance_array__NativeArray*)var8)->values[1] = (val*) var_value;
6294 ((void (*)(val*, val*, long))(var6->class->vft[COLOR_array__Array__with_native]))(var6, var8, var7) /* with_native on <var6:Array[RuntimeVariable]>*/;
6295 }
6296 var9 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var5, var6) /* compile_callsite on <var_v:AbstractCompilerVisitor>*/;
6297 var_res = var9;
6298 var10 = NULL;
6299 if (var_res == NULL) {
6300 var11 = 0; /* is null */
6301 } else {
6302 var11 = 1; /* arg is null and recv is not */
6303 }
6304 if (!var11) {
6305 fprintf(stderr, "Runtime error: %s", "Assert failed");
6306 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2059);
6307 show_backtrace(1);
6308 }
6309 var12 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__variable]))(var_v, var_variable) /* variable on <var_v:AbstractCompilerVisitor>*/;
6310 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__assign]))(var_v, var12, var_res) /* assign on <var_v:AbstractCompilerVisitor>*/;
6311 RET_LABEL:;
6312 }
6313 /* method abstract_compiler#AVarReassignExpr#stmt for (self: Object, AbstractCompilerVisitor) */
6314 void VIRTUAL_abstract_compiler__AVarReassignExpr__stmt(val* self, val* p0) {
6315 abstract_compiler__AVarReassignExpr__stmt(self, p0);
6316 RET_LABEL:;
6317 }
6318 /* method abstract_compiler#ASelfExpr#expr for (self: ASelfExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
6319 val* abstract_compiler__ASelfExpr__expr(val* self, val* p0) {
6320 val* var /* : nullable RuntimeVariable */;
6321 val* var_v /* var v: AbstractCompilerVisitor */;
6322 val* var1 /* : nullable Frame */;
6323 val* var2 /* : Array[RuntimeVariable] */;
6324 val* var3 /* : nullable Object */;
6325 var_v = p0;
6326 var1 = ((val* (*)(val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__frame]))(var_v) /* frame on <var_v:AbstractCompilerVisitor>*/;
6327 if (var1 == NULL) {
6328 fprintf(stderr, "Runtime error: %s", "Receiver is null");
6329 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2065);
6330 show_backtrace(1);
6331 } else {
6332 var2 = ((val* (*)(val*))(var1->class->vft[COLOR_abstract_compiler__Frame__arguments]))(var1) /* arguments on <var1:nullable Frame>*/;
6333 }
6334 var3 = ((val* (*)(val*))(var2->class->vft[COLOR_abstract_collection__Collection__first]))(var2) /* first on <var2:Array[RuntimeVariable]>*/;
6335 var = var3;
6336 goto RET_LABEL;
6337 RET_LABEL:;
6338 return var;
6339 }
6340 /* method abstract_compiler#ASelfExpr#expr for (self: Object, AbstractCompilerVisitor): nullable RuntimeVariable */
6341 val* VIRTUAL_abstract_compiler__ASelfExpr__expr(val* self, val* p0) {
6342 val* var /* : nullable RuntimeVariable */;
6343 val* var1 /* : nullable RuntimeVariable */;
6344 var1 = abstract_compiler__ASelfExpr__expr(self, p0);
6345 var = var1;
6346 RET_LABEL:;
6347 return var;
6348 }
6349 /* method abstract_compiler#AContinueExpr#stmt for (self: AContinueExpr, AbstractCompilerVisitor) */
6350 void abstract_compiler__AContinueExpr__stmt(val* self, val* p0) {
6351 val* var_v /* var v: AbstractCompilerVisitor */;
6352 static val* varonce;
6353 val* var /* : String */;
6354 char* var1 /* : NativeString */;
6355 long var2 /* : Int */;
6356 val* var3 /* : String */;
6357 val* var4 /* : nullable EscapeMark */;
6358 val* var5 /* : String */;
6359 static val* varonce6;
6360 val* var7 /* : String */;
6361 char* var8 /* : NativeString */;
6362 long var9 /* : Int */;
6363 val* var10 /* : String */;
6364 val* var11 /* : Array[Object] */;
6365 long var12 /* : Int */;
6366 val* var13 /* : NativeArray[Object] */;
6367 val* var14 /* : String */;
6368 var_v = p0;
6369 if (varonce) {
6370 var = varonce;
6371 } else {
6372 var1 = "goto CONTINUE_";
6373 var2 = 14;
6374 var3 = string__NativeString__to_s_with_length(var1, var2);
6375 var = var3;
6376 varonce = var;
6377 }
6378 var4 = ((val* (*)(val*))(self->class->vft[COLOR_scope__AContinueExpr__escapemark]))(self) /* escapemark on <self:AContinueExpr>*/;
6379 var5 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__escapemark_name]))(var_v, var4) /* escapemark_name on <var_v:AbstractCompilerVisitor>*/;
6380 if (varonce6) {
6381 var7 = varonce6;
6382 } else {
6383 var8 = ";";
6384 var9 = 1;
6385 var10 = string__NativeString__to_s_with_length(var8, var9);
6386 var7 = var10;
6387 varonce6 = var7;
6388 }
6389 var11 = NEW_array__Array(&type_array__Arraykernel__Object);
6390 { /* var11 = array_instance Array[Object] */
6391 var12 = 3;
6392 var13 = NEW_array__NativeArray(var12, &type_array__NativeArraykernel__Object);
6393 ((struct instance_array__NativeArray*)var13)->values[0] = (val*) var;
6394 ((struct instance_array__NativeArray*)var13)->values[1] = (val*) var5;
6395 ((struct instance_array__NativeArray*)var13)->values[2] = (val*) var7;
6396 ((void (*)(val*, val*, long))(var11->class->vft[COLOR_array__Array__with_native]))(var11, var13, var12) /* with_native on <var11:Array[Object]>*/;
6397 }
6398 var14 = ((val* (*)(val*))(var11->class->vft[COLOR_string__Object__to_s]))(var11) /* to_s on <var11:Array[Object]>*/;
6399 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var14) /* add on <var_v:AbstractCompilerVisitor>*/;
6400 RET_LABEL:;
6401 }
6402 /* method abstract_compiler#AContinueExpr#stmt for (self: Object, AbstractCompilerVisitor) */
6403 void VIRTUAL_abstract_compiler__AContinueExpr__stmt(val* self, val* p0) {
6404 abstract_compiler__AContinueExpr__stmt(self, p0);
6405 RET_LABEL:;
6406 }
6407 /* method abstract_compiler#ABreakExpr#stmt for (self: ABreakExpr, AbstractCompilerVisitor) */
6408 void abstract_compiler__ABreakExpr__stmt(val* self, val* p0) {
6409 val* var_v /* var v: AbstractCompilerVisitor */;
6410 static val* varonce;
6411 val* var /* : String */;
6412 char* var1 /* : NativeString */;
6413 long var2 /* : Int */;
6414 val* var3 /* : String */;
6415 val* var4 /* : nullable EscapeMark */;
6416 val* var5 /* : String */;
6417 static val* varonce6;
6418 val* var7 /* : String */;
6419 char* var8 /* : NativeString */;
6420 long var9 /* : Int */;
6421 val* var10 /* : String */;
6422 val* var11 /* : Array[Object] */;
6423 long var12 /* : Int */;
6424 val* var13 /* : NativeArray[Object] */;
6425 val* var14 /* : String */;
6426 var_v = p0;
6427 if (varonce) {
6428 var = varonce;
6429 } else {
6430 var1 = "goto BREAK_";
6431 var2 = 11;
6432 var3 = string__NativeString__to_s_with_length(var1, var2);
6433 var = var3;
6434 varonce = var;
6435 }
6436 var4 = ((val* (*)(val*))(self->class->vft[COLOR_scope__ABreakExpr__escapemark]))(self) /* escapemark on <self:ABreakExpr>*/;
6437 var5 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__escapemark_name]))(var_v, var4) /* escapemark_name on <var_v:AbstractCompilerVisitor>*/;
6438 if (varonce6) {
6439 var7 = varonce6;
6440 } else {
6441 var8 = ";";
6442 var9 = 1;
6443 var10 = string__NativeString__to_s_with_length(var8, var9);
6444 var7 = var10;
6445 varonce6 = var7;
6446 }
6447 var11 = NEW_array__Array(&type_array__Arraykernel__Object);
6448 { /* var11 = array_instance Array[Object] */
6449 var12 = 3;
6450 var13 = NEW_array__NativeArray(var12, &type_array__NativeArraykernel__Object);
6451 ((struct instance_array__NativeArray*)var13)->values[0] = (val*) var;
6452 ((struct instance_array__NativeArray*)var13)->values[1] = (val*) var5;
6453 ((struct instance_array__NativeArray*)var13)->values[2] = (val*) var7;
6454 ((void (*)(val*, val*, long))(var11->class->vft[COLOR_array__Array__with_native]))(var11, var13, var12) /* with_native on <var11:Array[Object]>*/;
6455 }
6456 var14 = ((val* (*)(val*))(var11->class->vft[COLOR_string__Object__to_s]))(var11) /* to_s on <var11:Array[Object]>*/;
6457 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var14) /* add on <var_v:AbstractCompilerVisitor>*/;
6458 RET_LABEL:;
6459 }
6460 /* method abstract_compiler#ABreakExpr#stmt for (self: Object, AbstractCompilerVisitor) */
6461 void VIRTUAL_abstract_compiler__ABreakExpr__stmt(val* self, val* p0) {
6462 abstract_compiler__ABreakExpr__stmt(self, p0);
6463 RET_LABEL:;
6464 }
6465 /* method abstract_compiler#AReturnExpr#stmt for (self: AReturnExpr, AbstractCompilerVisitor) */
6466 void abstract_compiler__AReturnExpr__stmt(val* self, val* p0) {
6467 val* var_v /* var v: AbstractCompilerVisitor */;
6468 val* var /* : nullable AExpr */;
6469 val* var_nexpr /* var nexpr: nullable AExpr */;
6470 val* var1 /* : null */;
6471 short int var2 /* : Bool */;
6472 val* var3 /* : nullable Frame */;
6473 val* var4 /* : nullable RuntimeVariable */;
6474 val* var_returnvar /* var returnvar: RuntimeVariable */;
6475 val* var5 /* : MType */;
6476 val* var6 /* : RuntimeVariable */;
6477 val* var_i /* var i: RuntimeVariable */;
6478 static val* varonce;
6479 val* var7 /* : String */;
6480 char* var8 /* : NativeString */;
6481 long var9 /* : Int */;
6482 val* var10 /* : String */;
6483 val* var11 /* : nullable Frame */;
6484 val* var12 /* : nullable String */;
6485 static val* varonce13;
6486 val* var14 /* : String */;
6487 char* var15 /* : NativeString */;
6488 long var16 /* : Int */;
6489 val* var17 /* : String */;
6490 val* var18 /* : Array[Object] */;
6491 long var19 /* : Int */;
6492 val* var20 /* : NativeArray[Object] */;
6493 val* var21 /* : String */;
6494 var_v = p0;
6495 var = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AReturnExpr__n_expr]))(self) /* n_expr on <self:AReturnExpr>*/;
6496 var_nexpr = var;
6497 var1 = NULL;
6498 if (var_nexpr == NULL) {
6499 var2 = 0; /* is null */
6500 } else {
6501 var2 = 1; /* arg is null and recv is not */
6502 }
6503 if (var2){
6504 var3 = ((val* (*)(val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__frame]))(var_v) /* frame on <var_v:AbstractCompilerVisitor>*/;
6505 if (var3 == NULL) {
6506 fprintf(stderr, "Runtime error: %s", "Receiver is null");
6507 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2081);
6508 show_backtrace(1);
6509 } else {
6510 var4 = ((val* (*)(val*))(var3->class->vft[COLOR_abstract_compiler__Frame__returnvar]))(var3) /* returnvar on <var3:nullable Frame>*/;
6511 }
6512 if (var4 == NULL) {
6513 fprintf(stderr, "Runtime error: %s", "Cast failed");
6514 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2081);
6515 show_backtrace(1);
6516 }
6517 var_returnvar = var4;
6518 var5 = ((val* (*)(val*))(var_returnvar->class->vft[COLOR_abstract_compiler__RuntimeVariable__mtype]))(var_returnvar) /* mtype on <var_returnvar:RuntimeVariable>*/;
6519 var6 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__expr]))(var_v, var_nexpr, var5) /* expr on <var_v:AbstractCompilerVisitor>*/;
6520 var_i = var6;
6521 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__assign]))(var_v, var_returnvar, var_i) /* assign on <var_v:AbstractCompilerVisitor>*/;
6522 } else {
6523 }
6524 if (varonce) {
6525 var7 = varonce;
6526 } else {
6527 var8 = "goto ";
6528 var9 = 5;
6529 var10 = string__NativeString__to_s_with_length(var8, var9);
6530 var7 = var10;
6531 varonce = var7;
6532 }
6533 var11 = ((val* (*)(val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__frame]))(var_v) /* frame on <var_v:AbstractCompilerVisitor>*/;
6534 if (var11 == NULL) {
6535 fprintf(stderr, "Runtime error: %s", "Receiver is null");
6536 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2085);
6537 show_backtrace(1);
6538 } else {
6539 var12 = ((val* (*)(val*))(var11->class->vft[COLOR_abstract_compiler__Frame__returnlabel]))(var11) /* returnlabel on <var11:nullable Frame>*/;
6540 }
6541 if (var12 == NULL) {
6542 fprintf(stderr, "Runtime error: %s", "Cast failed");
6543 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2085);
6544 show_backtrace(1);
6545 }
6546 if (varonce13) {
6547 var14 = varonce13;
6548 } else {
6549 var15 = ";";
6550 var16 = 1;
6551 var17 = string__NativeString__to_s_with_length(var15, var16);
6552 var14 = var17;
6553 varonce13 = var14;
6554 }
6555 var18 = NEW_array__Array(&type_array__Arraykernel__Object);
6556 { /* var18 = array_instance Array[Object] */
6557 var19 = 3;
6558 var20 = NEW_array__NativeArray(var19, &type_array__NativeArraykernel__Object);
6559 ((struct instance_array__NativeArray*)var20)->values[0] = (val*) var7;
6560 ((struct instance_array__NativeArray*)var20)->values[1] = (val*) var12;
6561 ((struct instance_array__NativeArray*)var20)->values[2] = (val*) var14;
6562 ((void (*)(val*, val*, long))(var18->class->vft[COLOR_array__Array__with_native]))(var18, var20, var19) /* with_native on <var18:Array[Object]>*/;
6563 }
6564 var21 = ((val* (*)(val*))(var18->class->vft[COLOR_string__Object__to_s]))(var18) /* to_s on <var18:Array[Object]>*/;
6565 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var21) /* add on <var_v:AbstractCompilerVisitor>*/;
6566 RET_LABEL:;
6567 }
6568 /* method abstract_compiler#AReturnExpr#stmt for (self: Object, AbstractCompilerVisitor) */
6569 void VIRTUAL_abstract_compiler__AReturnExpr__stmt(val* self, val* p0) {
6570 abstract_compiler__AReturnExpr__stmt(self, p0);
6571 RET_LABEL:;
6572 }
6573 /* method abstract_compiler#AAbortExpr#stmt for (self: AAbortExpr, AbstractCompilerVisitor) */
6574 void abstract_compiler__AAbortExpr__stmt(val* self, val* p0) {
6575 val* var_v /* var v: AbstractCompilerVisitor */;
6576 static val* varonce;
6577 val* var /* : String */;
6578 char* var1 /* : NativeString */;
6579 long var2 /* : Int */;
6580 val* var3 /* : String */;
6581 var_v = p0;
6582 if (varonce) {
6583 var = varonce;
6584 } else {
6585 var1 = "Aborted";
6586 var2 = 7;
6587 var3 = string__NativeString__to_s_with_length(var1, var2);
6588 var = var3;
6589 varonce = var;
6590 }
6591 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add_abort]))(var_v, var) /* add_abort on <var_v:AbstractCompilerVisitor>*/;
6592 RET_LABEL:;
6593 }
6594 /* method abstract_compiler#AAbortExpr#stmt for (self: Object, AbstractCompilerVisitor) */
6595 void VIRTUAL_abstract_compiler__AAbortExpr__stmt(val* self, val* p0) {
6596 abstract_compiler__AAbortExpr__stmt(self, p0);
6597 RET_LABEL:;
6598 }
6599 /* method abstract_compiler#AIfExpr#stmt for (self: AIfExpr, AbstractCompilerVisitor) */
6600 void abstract_compiler__AIfExpr__stmt(val* self, val* p0) {
6601 val* var_v /* var v: AbstractCompilerVisitor */;
6602 val* var /* : AExpr */;
6603 val* var1 /* : RuntimeVariable */;
6604 val* var_cond /* var cond: RuntimeVariable */;
6605 static val* varonce;
6606 val* var2 /* : String */;
6607 char* var3 /* : NativeString */;
6608 long var4 /* : Int */;
6609 val* var5 /* : String */;
6610 static val* varonce6;
6611 val* var7 /* : String */;
6612 char* var8 /* : NativeString */;
6613 long var9 /* : Int */;
6614 val* var10 /* : String */;
6615 val* var11 /* : Array[Object] */;
6616 long var12 /* : Int */;
6617 val* var13 /* : NativeArray[Object] */;
6618 val* var14 /* : String */;
6619 val* var15 /* : nullable AExpr */;
6620 static val* varonce16;
6621 val* var17 /* : String */;
6622 char* var18 /* : NativeString */;
6623 long var19 /* : Int */;
6624 val* var20 /* : String */;
6625 val* var21 /* : nullable AExpr */;
6626 static val* varonce22;
6627 val* var23 /* : String */;
6628 char* var24 /* : NativeString */;
6629 long var25 /* : Int */;
6630 val* var26 /* : String */;
6631 var_v = p0;
6632 var = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AIfExpr__n_expr]))(self) /* n_expr on <self:AIfExpr>*/;
6633 var1 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__expr_bool]))(var_v, var) /* expr_bool on <var_v:AbstractCompilerVisitor>*/;
6634 var_cond = var1;
6635 if (varonce) {
6636 var2 = varonce;
6637 } else {
6638 var3 = "if (";
6639 var4 = 4;
6640 var5 = string__NativeString__to_s_with_length(var3, var4);
6641 var2 = var5;
6642 varonce = var2;
6643 }
6644 if (varonce6) {
6645 var7 = varonce6;
6646 } else {
6647 var8 = "){";
6648 var9 = 2;
6649 var10 = string__NativeString__to_s_with_length(var8, var9);
6650 var7 = var10;
6651 varonce6 = var7;
6652 }
6653 var11 = NEW_array__Array(&type_array__Arraykernel__Object);
6654 { /* var11 = array_instance Array[Object] */
6655 var12 = 3;
6656 var13 = NEW_array__NativeArray(var12, &type_array__NativeArraykernel__Object);
6657 ((struct instance_array__NativeArray*)var13)->values[0] = (val*) var2;
6658 ((struct instance_array__NativeArray*)var13)->values[1] = (val*) var_cond;
6659 ((struct instance_array__NativeArray*)var13)->values[2] = (val*) var7;
6660 ((void (*)(val*, val*, long))(var11->class->vft[COLOR_array__Array__with_native]))(var11, var13, var12) /* with_native on <var11:Array[Object]>*/;
6661 }
6662 var14 = ((val* (*)(val*))(var11->class->vft[COLOR_string__Object__to_s]))(var11) /* to_s on <var11:Array[Object]>*/;
6663 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var14) /* add on <var_v:AbstractCompilerVisitor>*/;
6664 var15 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AIfExpr__n_then]))(self) /* n_then on <self:AIfExpr>*/;
6665 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__stmt]))(var_v, var15) /* stmt on <var_v:AbstractCompilerVisitor>*/;
6666 if (varonce16) {
6667 var17 = varonce16;
6668 } else {
6669 var18 = "} else {";
6670 var19 = 8;
6671 var20 = string__NativeString__to_s_with_length(var18, var19);
6672 var17 = var20;
6673 varonce16 = var17;
6674 }
6675 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var17) /* add on <var_v:AbstractCompilerVisitor>*/;
6676 var21 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AIfExpr__n_else]))(self) /* n_else on <self:AIfExpr>*/;
6677 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__stmt]))(var_v, var21) /* stmt on <var_v:AbstractCompilerVisitor>*/;
6678 if (varonce22) {
6679 var23 = varonce22;
6680 } else {
6681 var24 = "}";
6682 var25 = 1;
6683 var26 = string__NativeString__to_s_with_length(var24, var25);
6684 var23 = var26;
6685 varonce22 = var23;
6686 }
6687 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var23) /* add on <var_v:AbstractCompilerVisitor>*/;
6688 RET_LABEL:;
6689 }
6690 /* method abstract_compiler#AIfExpr#stmt for (self: Object, AbstractCompilerVisitor) */
6691 void VIRTUAL_abstract_compiler__AIfExpr__stmt(val* self, val* p0) {
6692 abstract_compiler__AIfExpr__stmt(self, p0);
6693 RET_LABEL:;
6694 }
6695 /* method abstract_compiler#AIfExpr#expr for (self: AIfExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
6696 val* abstract_compiler__AIfExpr__expr(val* self, val* p0) {
6697 val* var /* : nullable RuntimeVariable */;
6698 val* var_v /* var v: AbstractCompilerVisitor */;
6699 val* var1 /* : nullable MType */;
6700 val* var2 /* : RuntimeVariable */;
6701 val* var_res /* var res: RuntimeVariable */;
6702 val* var3 /* : AExpr */;
6703 val* var4 /* : RuntimeVariable */;
6704 val* var_cond /* var cond: RuntimeVariable */;
6705 static val* varonce;
6706 val* var5 /* : String */;
6707 char* var6 /* : NativeString */;
6708 long var7 /* : Int */;
6709 val* var8 /* : String */;
6710 static val* varonce9;
6711 val* var10 /* : String */;
6712 char* var11 /* : NativeString */;
6713 long var12 /* : Int */;
6714 val* var13 /* : String */;
6715 val* var14 /* : Array[Object] */;
6716 long var15 /* : Int */;
6717 val* var16 /* : NativeArray[Object] */;
6718 val* var17 /* : String */;
6719 val* var18 /* : nullable AExpr */;
6720 val* var19 /* : null */;
6721 val* var20 /* : RuntimeVariable */;
6722 static val* varonce21;
6723 val* var22 /* : String */;
6724 char* var23 /* : NativeString */;
6725 long var24 /* : Int */;
6726 val* var25 /* : String */;
6727 val* var26 /* : nullable AExpr */;
6728 val* var27 /* : null */;
6729 val* var28 /* : RuntimeVariable */;
6730 static val* varonce29;
6731 val* var30 /* : String */;
6732 char* var31 /* : NativeString */;
6733 long var32 /* : Int */;
6734 val* var33 /* : String */;
6735 var_v = p0;
6736 var1 = ((val* (*)(val*))(self->class->vft[COLOR_typing__AExpr__mtype]))(self) /* mtype on <self:AIfExpr>*/;
6737 if (var1 == NULL) {
6738 fprintf(stderr, "Runtime error: %s", "Cast failed");
6739 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2106);
6740 show_backtrace(1);
6741 }
6742 var2 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var]))(var_v, var1) /* new_var on <var_v:AbstractCompilerVisitor>*/;
6743 var_res = var2;
6744 var3 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AIfExpr__n_expr]))(self) /* n_expr on <self:AIfExpr>*/;
6745 var4 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__expr_bool]))(var_v, var3) /* expr_bool on <var_v:AbstractCompilerVisitor>*/;
6746 var_cond = var4;
6747 if (varonce) {
6748 var5 = varonce;
6749 } else {
6750 var6 = "if (";
6751 var7 = 4;
6752 var8 = string__NativeString__to_s_with_length(var6, var7);
6753 var5 = var8;
6754 varonce = var5;
6755 }
6756 if (varonce9) {
6757 var10 = varonce9;
6758 } else {
6759 var11 = "){";
6760 var12 = 2;
6761 var13 = string__NativeString__to_s_with_length(var11, var12);
6762 var10 = var13;
6763 varonce9 = var10;
6764 }
6765 var14 = NEW_array__Array(&type_array__Arraykernel__Object);
6766 { /* var14 = array_instance Array[Object] */
6767 var15 = 3;
6768 var16 = NEW_array__NativeArray(var15, &type_array__NativeArraykernel__Object);
6769 ((struct instance_array__NativeArray*)var16)->values[0] = (val*) var5;
6770 ((struct instance_array__NativeArray*)var16)->values[1] = (val*) var_cond;
6771 ((struct instance_array__NativeArray*)var16)->values[2] = (val*) var10;
6772 ((void (*)(val*, val*, long))(var14->class->vft[COLOR_array__Array__with_native]))(var14, var16, var15) /* with_native on <var14:Array[Object]>*/;
6773 }
6774 var17 = ((val* (*)(val*))(var14->class->vft[COLOR_string__Object__to_s]))(var14) /* to_s on <var14:Array[Object]>*/;
6775 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var17) /* add on <var_v:AbstractCompilerVisitor>*/;
6776 var18 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AIfExpr__n_then]))(self) /* n_then on <self:AIfExpr>*/;
6777 if (var18 == NULL) {
6778 fprintf(stderr, "Runtime error: %s", "Cast failed");
6779 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2109);
6780 show_backtrace(1);
6781 }
6782 var19 = NULL;
6783 var20 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__expr]))(var_v, var18, var19) /* expr on <var_v:AbstractCompilerVisitor>*/;
6784 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__assign]))(var_v, var_res, var20) /* assign on <var_v:AbstractCompilerVisitor>*/;
6785 if (varonce21) {
6786 var22 = varonce21;
6787 } else {
6788 var23 = "} else {";
6789 var24 = 8;
6790 var25 = string__NativeString__to_s_with_length(var23, var24);
6791 var22 = var25;
6792 varonce21 = var22;
6793 }
6794 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var22) /* add on <var_v:AbstractCompilerVisitor>*/;
6795 var26 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AIfExpr__n_else]))(self) /* n_else on <self:AIfExpr>*/;
6796 if (var26 == NULL) {
6797 fprintf(stderr, "Runtime error: %s", "Cast failed");
6798 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2111);
6799 show_backtrace(1);
6800 }
6801 var27 = NULL;
6802 var28 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__expr]))(var_v, var26, var27) /* expr on <var_v:AbstractCompilerVisitor>*/;
6803 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__assign]))(var_v, var_res, var28) /* assign on <var_v:AbstractCompilerVisitor>*/;
6804 if (varonce29) {
6805 var30 = varonce29;
6806 } else {
6807 var31 = "}";
6808 var32 = 1;
6809 var33 = string__NativeString__to_s_with_length(var31, var32);
6810 var30 = var33;
6811 varonce29 = var30;
6812 }
6813 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var30) /* add on <var_v:AbstractCompilerVisitor>*/;
6814 var = var_res;
6815 goto RET_LABEL;
6816 RET_LABEL:;
6817 return var;
6818 }
6819 /* method abstract_compiler#AIfExpr#expr for (self: Object, AbstractCompilerVisitor): nullable RuntimeVariable */
6820 val* VIRTUAL_abstract_compiler__AIfExpr__expr(val* self, val* p0) {
6821 val* var /* : nullable RuntimeVariable */;
6822 val* var1 /* : nullable RuntimeVariable */;
6823 var1 = abstract_compiler__AIfExpr__expr(self, p0);
6824 var = var1;
6825 RET_LABEL:;
6826 return var;
6827 }
6828 /* method abstract_compiler#AIfexprExpr#expr for (self: AIfexprExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
6829 val* abstract_compiler__AIfexprExpr__expr(val* self, val* p0) {
6830 val* var /* : nullable RuntimeVariable */;
6831 val* var_v /* var v: AbstractCompilerVisitor */;
6832 val* var1 /* : nullable MType */;
6833 val* var2 /* : RuntimeVariable */;
6834 val* var_res /* var res: RuntimeVariable */;
6835 val* var3 /* : AExpr */;
6836 val* var4 /* : RuntimeVariable */;
6837 val* var_cond /* var cond: RuntimeVariable */;
6838 static val* varonce;
6839 val* var5 /* : String */;
6840 char* var6 /* : NativeString */;
6841 long var7 /* : Int */;
6842 val* var8 /* : String */;
6843 static val* varonce9;
6844 val* var10 /* : String */;
6845 char* var11 /* : NativeString */;
6846 long var12 /* : Int */;
6847 val* var13 /* : String */;
6848 val* var14 /* : Array[Object] */;
6849 long var15 /* : Int */;
6850 val* var16 /* : NativeArray[Object] */;
6851 val* var17 /* : String */;
6852 val* var18 /* : AExpr */;
6853 val* var19 /* : null */;
6854 val* var20 /* : RuntimeVariable */;
6855 static val* varonce21;
6856 val* var22 /* : String */;
6857 char* var23 /* : NativeString */;
6858 long var24 /* : Int */;
6859 val* var25 /* : String */;
6860 val* var26 /* : AExpr */;
6861 val* var27 /* : null */;
6862 val* var28 /* : RuntimeVariable */;
6863 static val* varonce29;
6864 val* var30 /* : String */;
6865 char* var31 /* : NativeString */;
6866 long var32 /* : Int */;
6867 val* var33 /* : String */;
6868 var_v = p0;
6869 var1 = ((val* (*)(val*))(self->class->vft[COLOR_typing__AExpr__mtype]))(self) /* mtype on <self:AIfexprExpr>*/;
6870 if (var1 == NULL) {
6871 fprintf(stderr, "Runtime error: %s", "Cast failed");
6872 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2120);
6873 show_backtrace(1);
6874 }
6875 var2 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var]))(var_v, var1) /* new_var on <var_v:AbstractCompilerVisitor>*/;
6876 var_res = var2;
6877 var3 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AIfexprExpr__n_expr]))(self) /* n_expr on <self:AIfexprExpr>*/;
6878 var4 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__expr_bool]))(var_v, var3) /* expr_bool on <var_v:AbstractCompilerVisitor>*/;
6879 var_cond = var4;
6880 if (varonce) {
6881 var5 = varonce;
6882 } else {
6883 var6 = "if (";
6884 var7 = 4;
6885 var8 = string__NativeString__to_s_with_length(var6, var7);
6886 var5 = var8;
6887 varonce = var5;
6888 }
6889 if (varonce9) {
6890 var10 = varonce9;
6891 } else {
6892 var11 = "){";
6893 var12 = 2;
6894 var13 = string__NativeString__to_s_with_length(var11, var12);
6895 var10 = var13;
6896 varonce9 = var10;
6897 }
6898 var14 = NEW_array__Array(&type_array__Arraykernel__Object);
6899 { /* var14 = array_instance Array[Object] */
6900 var15 = 3;
6901 var16 = NEW_array__NativeArray(var15, &type_array__NativeArraykernel__Object);
6902 ((struct instance_array__NativeArray*)var16)->values[0] = (val*) var5;
6903 ((struct instance_array__NativeArray*)var16)->values[1] = (val*) var_cond;
6904 ((struct instance_array__NativeArray*)var16)->values[2] = (val*) var10;
6905 ((void (*)(val*, val*, long))(var14->class->vft[COLOR_array__Array__with_native]))(var14, var16, var15) /* with_native on <var14:Array[Object]>*/;
6906 }
6907 var17 = ((val* (*)(val*))(var14->class->vft[COLOR_string__Object__to_s]))(var14) /* to_s on <var14:Array[Object]>*/;
6908 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var17) /* add on <var_v:AbstractCompilerVisitor>*/;
6909 var18 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AIfexprExpr__n_then]))(self) /* n_then on <self:AIfexprExpr>*/;
6910 var19 = NULL;
6911 var20 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__expr]))(var_v, var18, var19) /* expr on <var_v:AbstractCompilerVisitor>*/;
6912 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__assign]))(var_v, var_res, var20) /* assign on <var_v:AbstractCompilerVisitor>*/;
6913 if (varonce21) {
6914 var22 = varonce21;
6915 } else {
6916 var23 = "} else {";
6917 var24 = 8;
6918 var25 = string__NativeString__to_s_with_length(var23, var24);
6919 var22 = var25;
6920 varonce21 = var22;
6921 }
6922 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var22) /* add on <var_v:AbstractCompilerVisitor>*/;
6923 var26 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AIfexprExpr__n_else]))(self) /* n_else on <self:AIfexprExpr>*/;
6924 var27 = NULL;
6925 var28 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__expr]))(var_v, var26, var27) /* expr on <var_v:AbstractCompilerVisitor>*/;
6926 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__assign]))(var_v, var_res, var28) /* assign on <var_v:AbstractCompilerVisitor>*/;
6927 if (varonce29) {
6928 var30 = varonce29;
6929 } else {
6930 var31 = "}";
6931 var32 = 1;
6932 var33 = string__NativeString__to_s_with_length(var31, var32);
6933 var30 = var33;
6934 varonce29 = var30;
6935 }
6936 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var30) /* add on <var_v:AbstractCompilerVisitor>*/;
6937 var = var_res;
6938 goto RET_LABEL;
6939 RET_LABEL:;
6940 return var;
6941 }
6942 /* method abstract_compiler#AIfexprExpr#expr for (self: Object, AbstractCompilerVisitor): nullable RuntimeVariable */
6943 val* VIRTUAL_abstract_compiler__AIfexprExpr__expr(val* self, val* p0) {
6944 val* var /* : nullable RuntimeVariable */;
6945 val* var1 /* : nullable RuntimeVariable */;
6946 var1 = abstract_compiler__AIfexprExpr__expr(self, p0);
6947 var = var1;
6948 RET_LABEL:;
6949 return var;
6950 }
6951 /* method abstract_compiler#ADoExpr#stmt for (self: ADoExpr, AbstractCompilerVisitor) */
6952 void abstract_compiler__ADoExpr__stmt(val* self, val* p0) {
6953 val* var_v /* var v: AbstractCompilerVisitor */;
6954 val* var /* : nullable AExpr */;
6955 val* var1 /* : nullable EscapeMark */;
6956 val* var_escapemark /* var escapemark: nullable EscapeMark */;
6957 val* var2 /* : null */;
6958 short int var3 /* : Bool */;
6959 static val* varonce;
6960 val* var4 /* : String */;
6961 char* var5 /* : NativeString */;
6962 long var6 /* : Int */;
6963 val* var7 /* : String */;
6964 val* var8 /* : String */;
6965 static val* varonce9;
6966 val* var10 /* : String */;
6967 char* var11 /* : NativeString */;
6968 long var12 /* : Int */;
6969 val* var13 /* : String */;
6970 val* var14 /* : Array[Object] */;
6971 long var15 /* : Int */;
6972 val* var16 /* : NativeArray[Object] */;
6973 val* var17 /* : String */;
6974 var_v = p0;
6975 var = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ADoExpr__n_block]))(self) /* n_block on <self:ADoExpr>*/;
6976 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__stmt]))(var_v, var) /* stmt on <var_v:AbstractCompilerVisitor>*/;
6977 var1 = ((val* (*)(val*))(self->class->vft[COLOR_scope__ADoExpr__escapemark]))(self) /* escapemark on <self:ADoExpr>*/;
6978 var_escapemark = var1;
6979 var2 = NULL;
6980 if (var_escapemark == NULL) {
6981 var3 = 0; /* is null */
6982 } else {
6983 var3 = 1; /* arg is null and recv is not */
6984 }
6985 if (var3){
6986 if (varonce) {
6987 var4 = varonce;
6988 } else {
6989 var5 = "BREAK_";
6990 var6 = 6;
6991 var7 = string__NativeString__to_s_with_length(var5, var6);
6992 var4 = var7;
6993 varonce = var4;
6994 }
6995 var8 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__escapemark_name]))(var_v, var_escapemark) /* escapemark_name on <var_v:AbstractCompilerVisitor>*/;
6996 if (varonce9) {
6997 var10 = varonce9;
6998 } else {
6999 var11 = ": (void)0;";
7000 var12 = 10;
7001 var13 = string__NativeString__to_s_with_length(var11, var12);
7002 var10 = var13;
7003 varonce9 = var10;
7004 }
7005 var14 = NEW_array__Array(&type_array__Arraykernel__Object);
7006 { /* var14 = array_instance Array[Object] */
7007 var15 = 3;
7008 var16 = NEW_array__NativeArray(var15, &type_array__NativeArraykernel__Object);
7009 ((struct instance_array__NativeArray*)var16)->values[0] = (val*) var4;
7010 ((struct instance_array__NativeArray*)var16)->values[1] = (val*) var8;
7011 ((struct instance_array__NativeArray*)var16)->values[2] = (val*) var10;
7012 ((void (*)(val*, val*, long))(var14->class->vft[COLOR_array__Array__with_native]))(var14, var16, var15) /* with_native on <var14:Array[Object]>*/;
7013 }
7014 var17 = ((val* (*)(val*))(var14->class->vft[COLOR_string__Object__to_s]))(var14) /* to_s on <var14:Array[Object]>*/;
7015 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var17) /* add on <var_v:AbstractCompilerVisitor>*/;
7016 } else {
7017 }
7018 RET_LABEL:;
7019 }
7020 /* method abstract_compiler#ADoExpr#stmt for (self: Object, AbstractCompilerVisitor) */
7021 void VIRTUAL_abstract_compiler__ADoExpr__stmt(val* self, val* p0) {
7022 abstract_compiler__ADoExpr__stmt(self, p0);
7023 RET_LABEL:;
7024 }
7025 /* method abstract_compiler#AWhileExpr#stmt for (self: AWhileExpr, AbstractCompilerVisitor) */
7026 void abstract_compiler__AWhileExpr__stmt(val* self, val* p0) {
7027 val* var_v /* var v: AbstractCompilerVisitor */;
7028 static val* varonce;
7029 val* var /* : String */;
7030 char* var1 /* : NativeString */;
7031 long var2 /* : Int */;
7032 val* var3 /* : String */;
7033 val* var4 /* : AExpr */;
7034 val* var5 /* : RuntimeVariable */;
7035 val* var_cond /* var cond: RuntimeVariable */;
7036 static val* varonce6;
7037 val* var7 /* : String */;
7038 char* var8 /* : NativeString */;
7039 long var9 /* : Int */;
7040 val* var10 /* : String */;
7041 static val* varonce11;
7042 val* var12 /* : String */;
7043 char* var13 /* : NativeString */;
7044 long var14 /* : Int */;
7045 val* var15 /* : String */;
7046 val* var16 /* : Array[Object] */;
7047 long var17 /* : Int */;
7048 val* var18 /* : NativeArray[Object] */;
7049 val* var19 /* : String */;
7050 val* var20 /* : nullable AExpr */;
7051 static val* varonce21;
7052 val* var22 /* : String */;
7053 char* var23 /* : NativeString */;
7054 long var24 /* : Int */;
7055 val* var25 /* : String */;
7056 val* var26 /* : nullable EscapeMark */;
7057 val* var27 /* : String */;
7058 static val* varonce28;
7059 val* var29 /* : String */;
7060 char* var30 /* : NativeString */;
7061 long var31 /* : Int */;
7062 val* var32 /* : String */;
7063 val* var33 /* : Array[Object] */;
7064 long var34 /* : Int */;
7065 val* var35 /* : NativeArray[Object] */;
7066 val* var36 /* : String */;
7067 static val* varonce37;
7068 val* var38 /* : String */;
7069 char* var39 /* : NativeString */;
7070 long var40 /* : Int */;
7071 val* var41 /* : String */;
7072 static val* varonce42;
7073 val* var43 /* : String */;
7074 char* var44 /* : NativeString */;
7075 long var45 /* : Int */;
7076 val* var46 /* : String */;
7077 val* var47 /* : nullable EscapeMark */;
7078 val* var48 /* : String */;
7079 static val* varonce49;
7080 val* var50 /* : String */;
7081 char* var51 /* : NativeString */;
7082 long var52 /* : Int */;
7083 val* var53 /* : String */;
7084 val* var54 /* : Array[Object] */;
7085 long var55 /* : Int */;
7086 val* var56 /* : NativeArray[Object] */;
7087 val* var57 /* : String */;
7088 var_v = p0;
7089 if (varonce) {
7090 var = varonce;
7091 } else {
7092 var1 = "for(;;) {";
7093 var2 = 9;
7094 var3 = string__NativeString__to_s_with_length(var1, var2);
7095 var = var3;
7096 varonce = var;
7097 }
7098 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var) /* add on <var_v:AbstractCompilerVisitor>*/;
7099 var4 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AWhileExpr__n_expr]))(self) /* n_expr on <self:AWhileExpr>*/;
7100 var5 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__expr_bool]))(var_v, var4) /* expr_bool on <var_v:AbstractCompilerVisitor>*/;
7101 var_cond = var5;
7102 if (varonce6) {
7103 var7 = varonce6;
7104 } else {
7105 var8 = "if (!";
7106 var9 = 5;
7107 var10 = string__NativeString__to_s_with_length(var8, var9);
7108 var7 = var10;
7109 varonce6 = var7;
7110 }
7111 if (varonce11) {
7112 var12 = varonce11;
7113 } else {
7114 var13 = ") break;";
7115 var14 = 8;
7116 var15 = string__NativeString__to_s_with_length(var13, var14);
7117 var12 = var15;
7118 varonce11 = var12;
7119 }
7120 var16 = NEW_array__Array(&type_array__Arraykernel__Object);
7121 { /* var16 = array_instance Array[Object] */
7122 var17 = 3;
7123 var18 = NEW_array__NativeArray(var17, &type_array__NativeArraykernel__Object);
7124 ((struct instance_array__NativeArray*)var18)->values[0] = (val*) var7;
7125 ((struct instance_array__NativeArray*)var18)->values[1] = (val*) var_cond;
7126 ((struct instance_array__NativeArray*)var18)->values[2] = (val*) var12;
7127 ((void (*)(val*, val*, long))(var16->class->vft[COLOR_array__Array__with_native]))(var16, var18, var17) /* with_native on <var16:Array[Object]>*/;
7128 }
7129 var19 = ((val* (*)(val*))(var16->class->vft[COLOR_string__Object__to_s]))(var16) /* to_s on <var16:Array[Object]>*/;
7130 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var19) /* add on <var_v:AbstractCompilerVisitor>*/;
7131 var20 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AWhileExpr__n_block]))(self) /* n_block on <self:AWhileExpr>*/;
7132 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__stmt]))(var_v, var20) /* stmt on <var_v:AbstractCompilerVisitor>*/;
7133 if (varonce21) {
7134 var22 = varonce21;
7135 } else {
7136 var23 = "CONTINUE_";
7137 var24 = 9;
7138 var25 = string__NativeString__to_s_with_length(var23, var24);
7139 var22 = var25;
7140 varonce21 = var22;
7141 }
7142 var26 = ((val* (*)(val*))(self->class->vft[COLOR_scope__AWhileExpr__escapemark]))(self) /* escapemark on <self:AWhileExpr>*/;
7143 var27 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__escapemark_name]))(var_v, var26) /* escapemark_name on <var_v:AbstractCompilerVisitor>*/;
7144 if (varonce28) {
7145 var29 = varonce28;
7146 } else {
7147 var30 = ": (void)0;";
7148 var31 = 10;
7149 var32 = string__NativeString__to_s_with_length(var30, var31);
7150 var29 = var32;
7151 varonce28 = var29;
7152 }
7153 var33 = NEW_array__Array(&type_array__Arraykernel__Object);
7154 { /* var33 = array_instance Array[Object] */
7155 var34 = 3;
7156 var35 = NEW_array__NativeArray(var34, &type_array__NativeArraykernel__Object);
7157 ((struct instance_array__NativeArray*)var35)->values[0] = (val*) var22;
7158 ((struct instance_array__NativeArray*)var35)->values[1] = (val*) var27;
7159 ((struct instance_array__NativeArray*)var35)->values[2] = (val*) var29;
7160 ((void (*)(val*, val*, long))(var33->class->vft[COLOR_array__Array__with_native]))(var33, var35, var34) /* with_native on <var33:Array[Object]>*/;
7161 }
7162 var36 = ((val* (*)(val*))(var33->class->vft[COLOR_string__Object__to_s]))(var33) /* to_s on <var33:Array[Object]>*/;
7163 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var36) /* add on <var_v:AbstractCompilerVisitor>*/;
7164 if (varonce37) {
7165 var38 = varonce37;
7166 } else {
7167 var39 = "}";
7168 var40 = 1;
7169 var41 = string__NativeString__to_s_with_length(var39, var40);
7170 var38 = var41;
7171 varonce37 = var38;
7172 }
7173 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var38) /* add on <var_v:AbstractCompilerVisitor>*/;
7174 if (varonce42) {
7175 var43 = varonce42;
7176 } else {
7177 var44 = "BREAK_";
7178 var45 = 6;
7179 var46 = string__NativeString__to_s_with_length(var44, var45);
7180 var43 = var46;
7181 varonce42 = var43;
7182 }
7183 var47 = ((val* (*)(val*))(self->class->vft[COLOR_scope__AWhileExpr__escapemark]))(self) /* escapemark on <self:AWhileExpr>*/;
7184 var48 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__escapemark_name]))(var_v, var47) /* escapemark_name on <var_v:AbstractCompilerVisitor>*/;
7185 if (varonce49) {
7186 var50 = varonce49;
7187 } else {
7188 var51 = ": (void)0;";
7189 var52 = 10;
7190 var53 = string__NativeString__to_s_with_length(var51, var52);
7191 var50 = var53;
7192 varonce49 = var50;
7193 }
7194 var54 = NEW_array__Array(&type_array__Arraykernel__Object);
7195 { /* var54 = array_instance Array[Object] */
7196 var55 = 3;
7197 var56 = NEW_array__NativeArray(var55, &type_array__NativeArraykernel__Object);
7198 ((struct instance_array__NativeArray*)var56)->values[0] = (val*) var43;
7199 ((struct instance_array__NativeArray*)var56)->values[1] = (val*) var48;
7200 ((struct instance_array__NativeArray*)var56)->values[2] = (val*) var50;
7201 ((void (*)(val*, val*, long))(var54->class->vft[COLOR_array__Array__with_native]))(var54, var56, var55) /* with_native on <var54:Array[Object]>*/;
7202 }
7203 var57 = ((val* (*)(val*))(var54->class->vft[COLOR_string__Object__to_s]))(var54) /* to_s on <var54:Array[Object]>*/;
7204 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var57) /* add on <var_v:AbstractCompilerVisitor>*/;
7205 RET_LABEL:;
7206 }
7207 /* method abstract_compiler#AWhileExpr#stmt for (self: Object, AbstractCompilerVisitor) */
7208 void VIRTUAL_abstract_compiler__AWhileExpr__stmt(val* self, val* p0) {
7209 abstract_compiler__AWhileExpr__stmt(self, p0);
7210 RET_LABEL:;
7211 }
7212 /* method abstract_compiler#ALoopExpr#stmt for (self: ALoopExpr, AbstractCompilerVisitor) */
7213 void abstract_compiler__ALoopExpr__stmt(val* self, val* p0) {
7214 val* var_v /* var v: AbstractCompilerVisitor */;
7215 static val* varonce;
7216 val* var /* : String */;
7217 char* var1 /* : NativeString */;
7218 long var2 /* : Int */;
7219 val* var3 /* : String */;
7220 val* var4 /* : nullable AExpr */;
7221 static val* varonce5;
7222 val* var6 /* : String */;
7223 char* var7 /* : NativeString */;
7224 long var8 /* : Int */;
7225 val* var9 /* : String */;
7226 val* var10 /* : nullable EscapeMark */;
7227 val* var11 /* : String */;
7228 static val* varonce12;
7229 val* var13 /* : String */;
7230 char* var14 /* : NativeString */;
7231 long var15 /* : Int */;
7232 val* var16 /* : String */;
7233 val* var17 /* : Array[Object] */;
7234 long var18 /* : Int */;
7235 val* var19 /* : NativeArray[Object] */;
7236 val* var20 /* : String */;
7237 static val* varonce21;
7238 val* var22 /* : String */;
7239 char* var23 /* : NativeString */;
7240 long var24 /* : Int */;
7241 val* var25 /* : String */;
7242 static val* varonce26;
7243 val* var27 /* : String */;
7244 char* var28 /* : NativeString */;
7245 long var29 /* : Int */;
7246 val* var30 /* : String */;
7247 val* var31 /* : nullable EscapeMark */;
7248 val* var32 /* : String */;
7249 static val* varonce33;
7250 val* var34 /* : String */;
7251 char* var35 /* : NativeString */;
7252 long var36 /* : Int */;
7253 val* var37 /* : String */;
7254 val* var38 /* : Array[Object] */;
7255 long var39 /* : Int */;
7256 val* var40 /* : NativeArray[Object] */;
7257 val* var41 /* : String */;
7258 var_v = p0;
7259 if (varonce) {
7260 var = varonce;
7261 } else {
7262 var1 = "for(;;) {";
7263 var2 = 9;
7264 var3 = string__NativeString__to_s_with_length(var1, var2);
7265 var = var3;
7266 varonce = var;
7267 }
7268 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var) /* add on <var_v:AbstractCompilerVisitor>*/;
7269 var4 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ALoopExpr__n_block]))(self) /* n_block on <self:ALoopExpr>*/;
7270 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__stmt]))(var_v, var4) /* stmt on <var_v:AbstractCompilerVisitor>*/;
7271 if (varonce5) {
7272 var6 = varonce5;
7273 } else {
7274 var7 = "CONTINUE_";
7275 var8 = 9;
7276 var9 = string__NativeString__to_s_with_length(var7, var8);
7277 var6 = var9;
7278 varonce5 = var6;
7279 }
7280 var10 = ((val* (*)(val*))(self->class->vft[COLOR_scope__ALoopExpr__escapemark]))(self) /* escapemark on <self:ALoopExpr>*/;
7281 var11 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__escapemark_name]))(var_v, var10) /* escapemark_name on <var_v:AbstractCompilerVisitor>*/;
7282 if (varonce12) {
7283 var13 = varonce12;
7284 } else {
7285 var14 = ": (void)0;";
7286 var15 = 10;
7287 var16 = string__NativeString__to_s_with_length(var14, var15);
7288 var13 = var16;
7289 varonce12 = var13;
7290 }
7291 var17 = NEW_array__Array(&type_array__Arraykernel__Object);
7292 { /* var17 = array_instance Array[Object] */
7293 var18 = 3;
7294 var19 = NEW_array__NativeArray(var18, &type_array__NativeArraykernel__Object);
7295 ((struct instance_array__NativeArray*)var19)->values[0] = (val*) var6;
7296 ((struct instance_array__NativeArray*)var19)->values[1] = (val*) var11;
7297 ((struct instance_array__NativeArray*)var19)->values[2] = (val*) var13;
7298 ((void (*)(val*, val*, long))(var17->class->vft[COLOR_array__Array__with_native]))(var17, var19, var18) /* with_native on <var17:Array[Object]>*/;
7299 }
7300 var20 = ((val* (*)(val*))(var17->class->vft[COLOR_string__Object__to_s]))(var17) /* to_s on <var17:Array[Object]>*/;
7301 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var20) /* add on <var_v:AbstractCompilerVisitor>*/;
7302 if (varonce21) {
7303 var22 = varonce21;
7304 } else {
7305 var23 = "}";
7306 var24 = 1;
7307 var25 = string__NativeString__to_s_with_length(var23, var24);
7308 var22 = var25;
7309 varonce21 = var22;
7310 }
7311 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var22) /* add on <var_v:AbstractCompilerVisitor>*/;
7312 if (varonce26) {
7313 var27 = varonce26;
7314 } else {
7315 var28 = "BREAK_";
7316 var29 = 6;
7317 var30 = string__NativeString__to_s_with_length(var28, var29);
7318 var27 = var30;
7319 varonce26 = var27;
7320 }
7321 var31 = ((val* (*)(val*))(self->class->vft[COLOR_scope__ALoopExpr__escapemark]))(self) /* escapemark on <self:ALoopExpr>*/;
7322 var32 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__escapemark_name]))(var_v, var31) /* escapemark_name on <var_v:AbstractCompilerVisitor>*/;
7323 if (varonce33) {
7324 var34 = varonce33;
7325 } else {
7326 var35 = ": (void)0;";
7327 var36 = 10;
7328 var37 = string__NativeString__to_s_with_length(var35, var36);
7329 var34 = var37;
7330 varonce33 = var34;
7331 }
7332 var38 = NEW_array__Array(&type_array__Arraykernel__Object);
7333 { /* var38 = array_instance Array[Object] */
7334 var39 = 3;
7335 var40 = NEW_array__NativeArray(var39, &type_array__NativeArraykernel__Object);
7336 ((struct instance_array__NativeArray*)var40)->values[0] = (val*) var27;
7337 ((struct instance_array__NativeArray*)var40)->values[1] = (val*) var32;
7338 ((struct instance_array__NativeArray*)var40)->values[2] = (val*) var34;
7339 ((void (*)(val*, val*, long))(var38->class->vft[COLOR_array__Array__with_native]))(var38, var40, var39) /* with_native on <var38:Array[Object]>*/;
7340 }
7341 var41 = ((val* (*)(val*))(var38->class->vft[COLOR_string__Object__to_s]))(var38) /* to_s on <var38:Array[Object]>*/;
7342 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var41) /* add on <var_v:AbstractCompilerVisitor>*/;
7343 RET_LABEL:;
7344 }
7345 /* method abstract_compiler#ALoopExpr#stmt for (self: Object, AbstractCompilerVisitor) */
7346 void VIRTUAL_abstract_compiler__ALoopExpr__stmt(val* self, val* p0) {
7347 abstract_compiler__ALoopExpr__stmt(self, p0);
7348 RET_LABEL:;
7349 }
7350 /* method abstract_compiler#AForExpr#stmt for (self: AForExpr, AbstractCompilerVisitor) */
7351 void abstract_compiler__AForExpr__stmt(val* self, val* p0) {
7352 val* var_v /* var v: AbstractCompilerVisitor */;
7353 val* var /* : AExpr */;
7354 val* var_nexpr /* var nexpr: AExpr */;
7355 short int var1 /* : Bool */;
7356 short int var2 /* : Bool */;
7357 val* var3 /* : nullable Array[Variable] */;
7358 long var4 /* : Int */;
7359 long var5 /* : Int */;
7360 short int var6 /* : Bool */;
7361 short int var8 /* : Bool */;
7362 short int var_ /* var : Bool */;
7363 short int var9 /* : Bool */;
7364 int cltype;
7365 int idtype;
7366 short int var_10 /* var : Bool */;
7367 val* var11 /* : AbstractCompiler */;
7368 val* var12 /* : ModelBuilder */;
7369 val* var13 /* : ToolContext */;
7370 val* var14 /* : OptionBool */;
7371 val* var15 /* : nullable Object */;
7372 short int var16 /* : Bool */;
7373 short int var17 /* : Bool */;
7374 val* var18 /* : AExpr */;
7375 val* var19 /* : null */;
7376 val* var20 /* : RuntimeVariable */;
7377 val* var_from /* var from: RuntimeVariable */;
7378 val* var21 /* : AExpr */;
7379 val* var22 /* : null */;
7380 val* var23 /* : RuntimeVariable */;
7381 val* var_to /* var to: RuntimeVariable */;
7382 val* var24 /* : nullable Array[Variable] */;
7383 val* var25 /* : nullable Object */;
7384 val* var26 /* : RuntimeVariable */;
7385 val* var_variable /* var variable: RuntimeVariable */;
7386 static val* varonce;
7387 val* var27 /* : String */;
7388 char* var28 /* : NativeString */;
7389 long var29 /* : Int */;
7390 val* var30 /* : String */;
7391 static val* varonce31;
7392 val* var32 /* : String */;
7393 char* var33 /* : NativeString */;
7394 long var34 /* : Int */;
7395 val* var35 /* : String */;
7396 val* var36 /* : MType */;
7397 val* var37 /* : MMethod */;
7398 val* var38 /* : Array[RuntimeVariable] */;
7399 long var39 /* : Int */;
7400 val* var40 /* : NativeArray[RuntimeVariable] */;
7401 val* var41 /* : nullable RuntimeVariable */;
7402 val* var_ok /* var ok: nullable RuntimeVariable */;
7403 val* var42 /* : null */;
7404 short int var43 /* : Bool */;
7405 static val* varonce44;
7406 val* var45 /* : String */;
7407 char* var46 /* : NativeString */;
7408 long var47 /* : Int */;
7409 val* var48 /* : String */;
7410 static val* varonce49;
7411 val* var50 /* : String */;
7412 char* var51 /* : NativeString */;
7413 long var52 /* : Int */;
7414 val* var53 /* : String */;
7415 val* var54 /* : Array[Object] */;
7416 long var55 /* : Int */;
7417 val* var56 /* : NativeArray[Object] */;
7418 val* var57 /* : String */;
7419 val* var58 /* : nullable AExpr */;
7420 static val* varonce59;
7421 val* var60 /* : String */;
7422 char* var61 /* : NativeString */;
7423 long var62 /* : Int */;
7424 val* var63 /* : String */;
7425 val* var64 /* : nullable EscapeMark */;
7426 val* var65 /* : String */;
7427 static val* varonce66;
7428 val* var67 /* : String */;
7429 char* var68 /* : NativeString */;
7430 long var69 /* : Int */;
7431 val* var70 /* : String */;
7432 val* var71 /* : Array[Object] */;
7433 long var72 /* : Int */;
7434 val* var73 /* : NativeArray[Object] */;
7435 val* var74 /* : String */;
7436 static val* varonce75;
7437 val* var76 /* : String */;
7438 char* var77 /* : NativeString */;
7439 long var78 /* : Int */;
7440 val* var79 /* : String */;
7441 val* var80 /* : MType */;
7442 val* var81 /* : MMethod */;
7443 val* var82 /* : Array[RuntimeVariable] */;
7444 long var83 /* : Int */;
7445 val* var84 /* : NativeArray[RuntimeVariable] */;
7446 val* var85 /* : nullable RuntimeVariable */;
7447 val* var_succ /* var succ: nullable RuntimeVariable */;
7448 val* var86 /* : null */;
7449 short int var87 /* : Bool */;
7450 static val* varonce88;
7451 val* var89 /* : String */;
7452 char* var90 /* : NativeString */;
7453 long var91 /* : Int */;
7454 val* var92 /* : String */;
7455 static val* varonce93;
7456 val* var94 /* : String */;
7457 char* var95 /* : NativeString */;
7458 long var96 /* : Int */;
7459 val* var97 /* : String */;
7460 val* var98 /* : nullable EscapeMark */;
7461 val* var99 /* : String */;
7462 static val* varonce100;
7463 val* var101 /* : String */;
7464 char* var102 /* : NativeString */;
7465 long var103 /* : Int */;
7466 val* var104 /* : String */;
7467 val* var105 /* : Array[Object] */;
7468 long var106 /* : Int */;
7469 val* var107 /* : NativeArray[Object] */;
7470 val* var108 /* : String */;
7471 val* var109 /* : AExpr */;
7472 val* var110 /* : null */;
7473 val* var111 /* : RuntimeVariable */;
7474 val* var_cl /* var cl: RuntimeVariable */;
7475 val* var112 /* : nullable MMethod */;
7476 val* var_it_meth /* var it_meth: nullable MMethod */;
7477 val* var113 /* : null */;
7478 short int var114 /* : Bool */;
7479 val* var115 /* : Array[RuntimeVariable] */;
7480 long var116 /* : Int */;
7481 val* var117 /* : NativeArray[RuntimeVariable] */;
7482 val* var118 /* : nullable RuntimeVariable */;
7483 val* var_it /* var it: nullable RuntimeVariable */;
7484 val* var119 /* : null */;
7485 short int var120 /* : Bool */;
7486 static val* varonce121;
7487 val* var122 /* : String */;
7488 char* var123 /* : NativeString */;
7489 long var124 /* : Int */;
7490 val* var125 /* : String */;
7491 val* var126 /* : nullable MMethod */;
7492 val* var_isok_meth /* var isok_meth: nullable MMethod */;
7493 val* var127 /* : null */;
7494 short int var128 /* : Bool */;
7495 val* var129 /* : Array[RuntimeVariable] */;
7496 long var130 /* : Int */;
7497 val* var131 /* : NativeArray[RuntimeVariable] */;
7498 val* var132 /* : nullable RuntimeVariable */;
7499 val* var_ok133 /* var ok: nullable RuntimeVariable */;
7500 val* var134 /* : null */;
7501 short int var135 /* : Bool */;
7502 static val* varonce136;
7503 val* var137 /* : String */;
7504 char* var138 /* : NativeString */;
7505 long var139 /* : Int */;
7506 val* var140 /* : String */;
7507 static val* varonce141;
7508 val* var142 /* : String */;
7509 char* var143 /* : NativeString */;
7510 long var144 /* : Int */;
7511 val* var145 /* : String */;
7512 val* var146 /* : Array[Object] */;
7513 long var147 /* : Int */;
7514 val* var148 /* : NativeArray[Object] */;
7515 val* var149 /* : String */;
7516 val* var150 /* : nullable Array[Variable] */;
7517 long var151 /* : Int */;
7518 long var152 /* : Int */;
7519 short int var153 /* : Bool */;
7520 short int var155 /* : Bool */;
7521 val* var156 /* : nullable MMethod */;
7522 val* var_item_meth /* var item_meth: nullable MMethod */;
7523 val* var157 /* : null */;
7524 short int var158 /* : Bool */;
7525 val* var159 /* : Array[RuntimeVariable] */;
7526 long var160 /* : Int */;
7527 val* var161 /* : NativeArray[RuntimeVariable] */;
7528 val* var162 /* : nullable RuntimeVariable */;
7529 val* var_i /* var i: nullable RuntimeVariable */;
7530 val* var163 /* : null */;
7531 short int var164 /* : Bool */;
7532 val* var165 /* : nullable Array[Variable] */;
7533 val* var166 /* : nullable Object */;
7534 val* var167 /* : RuntimeVariable */;
7535 val* var168 /* : nullable Array[Variable] */;
7536 long var169 /* : Int */;
7537 long var170 /* : Int */;
7538 short int var171 /* : Bool */;
7539 short int var173 /* : Bool */;
7540 val* var174 /* : nullable MMethod */;
7541 val* var_key_meth /* var key_meth: nullable MMethod */;
7542 val* var175 /* : null */;
7543 short int var176 /* : Bool */;
7544 val* var177 /* : Array[RuntimeVariable] */;
7545 long var178 /* : Int */;
7546 val* var179 /* : NativeArray[RuntimeVariable] */;
7547 val* var180 /* : nullable RuntimeVariable */;
7548 val* var_i181 /* var i: nullable RuntimeVariable */;
7549 val* var182 /* : null */;
7550 short int var183 /* : Bool */;
7551 val* var184 /* : nullable Array[Variable] */;
7552 long var185 /* : Int */;
7553 val* var186 /* : nullable Object */;
7554 val* var187 /* : RuntimeVariable */;
7555 val* var188 /* : nullable MMethod */;
7556 val* var_item_meth189 /* var item_meth: nullable MMethod */;
7557 val* var190 /* : null */;
7558 short int var191 /* : Bool */;
7559 val* var192 /* : Array[RuntimeVariable] */;
7560 long var193 /* : Int */;
7561 val* var194 /* : NativeArray[RuntimeVariable] */;
7562 val* var195 /* : nullable RuntimeVariable */;
7563 val* var196 /* : null */;
7564 short int var197 /* : Bool */;
7565 val* var198 /* : nullable Array[Variable] */;
7566 long var199 /* : Int */;
7567 val* var200 /* : nullable Object */;
7568 val* var201 /* : RuntimeVariable */;
7569 val* var202 /* : nullable AExpr */;
7570 static val* varonce203;
7571 val* var204 /* : String */;
7572 char* var205 /* : NativeString */;
7573 long var206 /* : Int */;
7574 val* var207 /* : String */;
7575 val* var208 /* : nullable EscapeMark */;
7576 val* var209 /* : String */;
7577 static val* varonce210;
7578 val* var211 /* : String */;
7579 char* var212 /* : NativeString */;
7580 long var213 /* : Int */;
7581 val* var214 /* : String */;
7582 val* var215 /* : Array[Object] */;
7583 long var216 /* : Int */;
7584 val* var217 /* : NativeArray[Object] */;
7585 val* var218 /* : String */;
7586 val* var219 /* : nullable MMethod */;
7587 val* var_next_meth /* var next_meth: nullable MMethod */;
7588 val* var220 /* : null */;
7589 short int var221 /* : Bool */;
7590 val* var222 /* : Array[RuntimeVariable] */;
7591 long var223 /* : Int */;
7592 val* var224 /* : NativeArray[RuntimeVariable] */;
7593 val* var225 /* : nullable RuntimeVariable */;
7594 static val* varonce226;
7595 val* var227 /* : String */;
7596 char* var228 /* : NativeString */;
7597 long var229 /* : Int */;
7598 val* var230 /* : String */;
7599 static val* varonce231;
7600 val* var232 /* : String */;
7601 char* var233 /* : NativeString */;
7602 long var234 /* : Int */;
7603 val* var235 /* : String */;
7604 val* var236 /* : nullable EscapeMark */;
7605 val* var237 /* : String */;
7606 static val* varonce238;
7607 val* var239 /* : String */;
7608 char* var240 /* : NativeString */;
7609 long var241 /* : Int */;
7610 val* var242 /* : String */;
7611 val* var243 /* : Array[Object] */;
7612 long var244 /* : Int */;
7613 val* var245 /* : NativeArray[Object] */;
7614 val* var246 /* : String */;
7615 var_v = p0;
7616 var = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AForExpr__n_expr]))(self) /* n_expr on <self:AForExpr>*/;
7617 var_nexpr = var;
7618 var3 = ((val* (*)(val*))(self->class->vft[COLOR_scope__AForExpr__variables]))(self) /* variables on <self:AForExpr>*/;
7619 if (var3 == NULL) {
7620 fprintf(stderr, "Runtime error: %s", "Receiver is null");
7621 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2172);
7622 show_backtrace(1);
7623 } else {
7624 var4 = ((long (*)(val*))(var3->class->vft[COLOR_abstract_collection__Collection__length]))(var3) /* length on <var3:nullable Array[Variable]>*/;
7625 }
7626 var5 = 1;
7627 { /* Inline kernel#Int#== (var4,var5) */
7628 var8 = var4 == var5;
7629 var6 = var8;
7630 goto RET_LABEL7;
7631 RET_LABEL7:(void)0;
7632 }
7633 var_ = var6;
7634 if (var6){
7635 /* <var_nexpr:AExpr> isa AOrangeExpr */
7636 cltype = type_parser_nodes__AOrangeExpr.color;
7637 idtype = type_parser_nodes__AOrangeExpr.id;
7638 if(cltype >= var_nexpr->type->table_size) {
7639 var9 = 0;
7640 } else {
7641 var9 = var_nexpr->type->type_table[cltype] == idtype;
7642 }
7643 var2 = var9;
7644 } else {
7645 var2 = var_;
7646 }
7647 var_10 = var2;
7648 if (var2){
7649 var11 = ((val* (*)(val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler]))(var_v) /* compiler on <var_v:AbstractCompilerVisitor>*/;
7650 var12 = ((val* (*)(val*))(var11->class->vft[COLOR_abstract_compiler__AbstractCompiler__modelbuilder]))(var11) /* modelbuilder on <var11:AbstractCompiler>*/;
7651 var13 = ((val* (*)(val*))(var12->class->vft[COLOR_modelbuilder__ModelBuilder__toolcontext]))(var12) /* toolcontext on <var12:ModelBuilder>*/;
7652 var14 = ((val* (*)(val*))(var13->class->vft[COLOR_abstract_compiler__ToolContext__opt_no_shortcut_range]))(var13) /* opt_no_shortcut_range on <var13:ToolContext>*/;
7653 var15 = ((val* (*)(val*))(var14->class->vft[COLOR_opts__Option__value]))(var14) /* value on <var14:OptionBool>*/;
7654 var16 = ((struct instance_kernel__Bool*)var15)->value; /* autounbox from nullable Object to Bool */;
7655 var17 = !var16;
7656 var1 = var17;
7657 } else {
7658 var1 = var_10;
7659 }
7660 if (var1){
7661 var18 = ((val* (*)(val*))(var_nexpr->class->vft[COLOR_parser_nodes__ARangeExpr__n_expr]))(var_nexpr) /* n_expr on <var_nexpr:AExpr(AOrangeExpr)>*/;
7662 var19 = NULL;
7663 var20 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__expr]))(var_v, var18, var19) /* expr on <var_v:AbstractCompilerVisitor>*/;
7664 var_from = var20;
7665 var21 = ((val* (*)(val*))(var_nexpr->class->vft[COLOR_parser_nodes__ARangeExpr__n_expr2]))(var_nexpr) /* n_expr2 on <var_nexpr:AExpr(AOrangeExpr)>*/;
7666 var22 = NULL;
7667 var23 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__expr]))(var_v, var21, var22) /* expr on <var_v:AbstractCompilerVisitor>*/;
7668 var_to = var23;
7669 var24 = ((val* (*)(val*))(self->class->vft[COLOR_scope__AForExpr__variables]))(self) /* variables on <self:AForExpr>*/;
7670 if (var24 == NULL) {
7671 fprintf(stderr, "Runtime error: %s", "Receiver is null");
7672 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2175);
7673 show_backtrace(1);
7674 } else {
7675 var25 = ((val* (*)(val*))(var24->class->vft[COLOR_abstract_collection__Collection__first]))(var24) /* first on <var24:nullable Array[Variable]>*/;
7676 }
7677 var26 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__variable]))(var_v, var25) /* variable on <var_v:AbstractCompilerVisitor>*/;
7678 var_variable = var26;
7679 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__assign]))(var_v, var_variable, var_from) /* assign on <var_v:AbstractCompilerVisitor>*/;
7680 if (varonce) {
7681 var27 = varonce;
7682 } else {
7683 var28 = "for(;;) { /* shortcut range */";
7684 var29 = 30;
7685 var30 = string__NativeString__to_s_with_length(var28, var29);
7686 var27 = var30;
7687 varonce = var27;
7688 }
7689 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var27) /* add on <var_v:AbstractCompilerVisitor>*/;
7690 if (varonce31) {
7691 var32 = varonce31;
7692 } else {
7693 var33 = "<";
7694 var34 = 1;
7695 var35 = string__NativeString__to_s_with_length(var33, var34);
7696 var32 = var35;
7697 varonce31 = var32;
7698 }
7699 var36 = ((val* (*)(val*))(var_variable->class->vft[COLOR_abstract_compiler__RuntimeVariable__mtype]))(var_variable) /* mtype on <var_variable:RuntimeVariable>*/;
7700 var37 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__get_property]))(var_v, var32, var36) /* get_property on <var_v:AbstractCompilerVisitor>*/;
7701 var38 = NEW_array__Array(&type_array__Arrayabstract_compiler__RuntimeVariable);
7702 { /* var38 = array_instance Array[RuntimeVariable] */
7703 var39 = 2;
7704 var40 = NEW_array__NativeArray(var39, &type_array__NativeArrayabstract_compiler__RuntimeVariable);
7705 ((struct instance_array__NativeArray*)var40)->values[0] = (val*) var_variable;
7706 ((struct instance_array__NativeArray*)var40)->values[1] = (val*) var_to;
7707 ((void (*)(val*, val*, long))(var38->class->vft[COLOR_array__Array__with_native]))(var38, var40, var39) /* with_native on <var38:Array[RuntimeVariable]>*/;
7708 }
7709 var41 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__send]))(var_v, var37, var38) /* send on <var_v:AbstractCompilerVisitor>*/;
7710 var_ok = var41;
7711 var42 = NULL;
7712 if (var_ok == NULL) {
7713 var43 = 0; /* is null */
7714 } else {
7715 var43 = 1; /* arg is null and recv is not */
7716 }
7717 if (!var43) {
7718 fprintf(stderr, "Runtime error: %s", "Assert failed");
7719 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2181);
7720 show_backtrace(1);
7721 }
7722 if (varonce44) {
7723 var45 = varonce44;
7724 } else {
7725 var46 = "if(!";
7726 var47 = 4;
7727 var48 = string__NativeString__to_s_with_length(var46, var47);
7728 var45 = var48;
7729 varonce44 = var45;
7730 }
7731 if (varonce49) {
7732 var50 = varonce49;
7733 } else {
7734 var51 = ") break;";
7735 var52 = 8;
7736 var53 = string__NativeString__to_s_with_length(var51, var52);
7737 var50 = var53;
7738 varonce49 = var50;
7739 }
7740 var54 = NEW_array__Array(&type_array__Arraykernel__Object);
7741 { /* var54 = array_instance Array[Object] */
7742 var55 = 3;
7743 var56 = NEW_array__NativeArray(var55, &type_array__NativeArraykernel__Object);
7744 ((struct instance_array__NativeArray*)var56)->values[0] = (val*) var45;
7745 ((struct instance_array__NativeArray*)var56)->values[1] = (val*) var_ok;
7746 ((struct instance_array__NativeArray*)var56)->values[2] = (val*) var50;
7747 ((void (*)(val*, val*, long))(var54->class->vft[COLOR_array__Array__with_native]))(var54, var56, var55) /* with_native on <var54:Array[Object]>*/;
7748 }
7749 var57 = ((val* (*)(val*))(var54->class->vft[COLOR_string__Object__to_s]))(var54) /* to_s on <var54:Array[Object]>*/;
7750 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var57) /* add on <var_v:AbstractCompilerVisitor>*/;
7751 var58 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AForExpr__n_block]))(self) /* n_block on <self:AForExpr>*/;
7752 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__stmt]))(var_v, var58) /* stmt on <var_v:AbstractCompilerVisitor>*/;
7753 if (varonce59) {
7754 var60 = varonce59;
7755 } else {
7756 var61 = "CONTINUE_";
7757 var62 = 9;
7758 var63 = string__NativeString__to_s_with_length(var61, var62);
7759 var60 = var63;
7760 varonce59 = var60;
7761 }
7762 var64 = ((val* (*)(val*))(self->class->vft[COLOR_scope__AForExpr__escapemark]))(self) /* escapemark on <self:AForExpr>*/;
7763 var65 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__escapemark_name]))(var_v, var64) /* escapemark_name on <var_v:AbstractCompilerVisitor>*/;
7764 if (varonce66) {
7765 var67 = varonce66;
7766 } else {
7767 var68 = ": (void)0;";
7768 var69 = 10;
7769 var70 = string__NativeString__to_s_with_length(var68, var69);
7770 var67 = var70;
7771 varonce66 = var67;
7772 }
7773 var71 = NEW_array__Array(&type_array__Arraykernel__Object);
7774 { /* var71 = array_instance Array[Object] */
7775 var72 = 3;
7776 var73 = NEW_array__NativeArray(var72, &type_array__NativeArraykernel__Object);
7777 ((struct instance_array__NativeArray*)var73)->values[0] = (val*) var60;
7778 ((struct instance_array__NativeArray*)var73)->values[1] = (val*) var65;
7779 ((struct instance_array__NativeArray*)var73)->values[2] = (val*) var67;
7780 ((void (*)(val*, val*, long))(var71->class->vft[COLOR_array__Array__with_native]))(var71, var73, var72) /* with_native on <var71:Array[Object]>*/;
7781 }
7782 var74 = ((val* (*)(val*))(var71->class->vft[COLOR_string__Object__to_s]))(var71) /* to_s on <var71:Array[Object]>*/;
7783 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var74) /* add on <var_v:AbstractCompilerVisitor>*/;
7784 if (varonce75) {
7785 var76 = varonce75;
7786 } else {
7787 var77 = "succ";
7788 var78 = 4;
7789 var79 = string__NativeString__to_s_with_length(var77, var78);
7790 var76 = var79;
7791 varonce75 = var76;
7792 }
7793 var80 = ((val* (*)(val*))(var_variable->class->vft[COLOR_abstract_compiler__RuntimeVariable__mtype]))(var_variable) /* mtype on <var_variable:RuntimeVariable>*/;
7794 var81 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__get_property]))(var_v, var76, var80) /* get_property on <var_v:AbstractCompilerVisitor>*/;
7795 var82 = NEW_array__Array(&type_array__Arrayabstract_compiler__RuntimeVariable);
7796 { /* var82 = array_instance Array[RuntimeVariable] */
7797 var83 = 1;
7798 var84 = NEW_array__NativeArray(var83, &type_array__NativeArrayabstract_compiler__RuntimeVariable);
7799 ((struct instance_array__NativeArray*)var84)->values[0] = (val*) var_variable;
7800 ((void (*)(val*, val*, long))(var82->class->vft[COLOR_array__Array__with_native]))(var82, var84, var83) /* with_native on <var82:Array[RuntimeVariable]>*/;
7801 }
7802 var85 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__send]))(var_v, var81, var82) /* send on <var_v:AbstractCompilerVisitor>*/;
7803 var_succ = var85;
7804 var86 = NULL;
7805 if (var_succ == NULL) {
7806 var87 = 0; /* is null */
7807 } else {
7808 var87 = 1; /* arg is null and recv is not */
7809 }
7810 if (!var87) {
7811 fprintf(stderr, "Runtime error: %s", "Assert failed");
7812 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2188);
7813 show_backtrace(1);
7814 }
7815 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__assign]))(var_v, var_variable, var_succ) /* assign on <var_v:AbstractCompilerVisitor>*/;
7816 if (varonce88) {
7817 var89 = varonce88;
7818 } else {
7819 var90 = "}";
7820 var91 = 1;
7821 var92 = string__NativeString__to_s_with_length(var90, var91);
7822 var89 = var92;
7823 varonce88 = var89;
7824 }
7825 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var89) /* add on <var_v:AbstractCompilerVisitor>*/;
7826 if (varonce93) {
7827 var94 = varonce93;
7828 } else {
7829 var95 = "BREAK_";
7830 var96 = 6;
7831 var97 = string__NativeString__to_s_with_length(var95, var96);
7832 var94 = var97;
7833 varonce93 = var94;
7834 }
7835 var98 = ((val* (*)(val*))(self->class->vft[COLOR_scope__AForExpr__escapemark]))(self) /* escapemark on <self:AForExpr>*/;
7836 var99 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__escapemark_name]))(var_v, var98) /* escapemark_name on <var_v:AbstractCompilerVisitor>*/;
7837 if (varonce100) {
7838 var101 = varonce100;
7839 } else {
7840 var102 = ": (void)0;";
7841 var103 = 10;
7842 var104 = string__NativeString__to_s_with_length(var102, var103);
7843 var101 = var104;
7844 varonce100 = var101;
7845 }
7846 var105 = NEW_array__Array(&type_array__Arraykernel__Object);
7847 { /* var105 = array_instance Array[Object] */
7848 var106 = 3;
7849 var107 = NEW_array__NativeArray(var106, &type_array__NativeArraykernel__Object);
7850 ((struct instance_array__NativeArray*)var107)->values[0] = (val*) var94;
7851 ((struct instance_array__NativeArray*)var107)->values[1] = (val*) var99;
7852 ((struct instance_array__NativeArray*)var107)->values[2] = (val*) var101;
7853 ((void (*)(val*, val*, long))(var105->class->vft[COLOR_array__Array__with_native]))(var105, var107, var106) /* with_native on <var105:Array[Object]>*/;
7854 }
7855 var108 = ((val* (*)(val*))(var105->class->vft[COLOR_string__Object__to_s]))(var105) /* to_s on <var105:Array[Object]>*/;
7856 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var108) /* add on <var_v:AbstractCompilerVisitor>*/;
7857 goto RET_LABEL;
7858 } else {
7859 }
7860 var109 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AForExpr__n_expr]))(self) /* n_expr on <self:AForExpr>*/;
7861 var110 = NULL;
7862 var111 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__expr]))(var_v, var109, var110) /* expr on <var_v:AbstractCompilerVisitor>*/;
7863 var_cl = var111;
7864 var112 = ((val* (*)(val*))(self->class->vft[COLOR_typing__AForExpr__method_iterator]))(self) /* method_iterator on <self:AForExpr>*/;
7865 var_it_meth = var112;
7866 var113 = NULL;
7867 if (var_it_meth == NULL) {
7868 var114 = 0; /* is null */
7869 } else {
7870 var114 = 1; /* arg is null and recv is not */
7871 }
7872 if (!var114) {
7873 fprintf(stderr, "Runtime error: %s", "Assert failed");
7874 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2197);
7875 show_backtrace(1);
7876 }
7877 var115 = NEW_array__Array(&type_array__Arrayabstract_compiler__RuntimeVariable);
7878 { /* var115 = array_instance Array[RuntimeVariable] */
7879 var116 = 1;
7880 var117 = NEW_array__NativeArray(var116, &type_array__NativeArrayabstract_compiler__RuntimeVariable);
7881 ((struct instance_array__NativeArray*)var117)->values[0] = (val*) var_cl;
7882 ((void (*)(val*, val*, long))(var115->class->vft[COLOR_array__Array__with_native]))(var115, var117, var116) /* with_native on <var115:Array[RuntimeVariable]>*/;
7883 }
7884 var118 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__send]))(var_v, var_it_meth, var115) /* send on <var_v:AbstractCompilerVisitor>*/;
7885 var_it = var118;
7886 var119 = NULL;
7887 if (var_it == NULL) {
7888 var120 = 0; /* is null */
7889 } else {
7890 var120 = 1; /* arg is null and recv is not */
7891 }
7892 if (!var120) {
7893 fprintf(stderr, "Runtime error: %s", "Assert failed");
7894 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2199);
7895 show_backtrace(1);
7896 }
7897 if (varonce121) {
7898 var122 = varonce121;
7899 } else {
7900 var123 = "for(;;) {";
7901 var124 = 9;
7902 var125 = string__NativeString__to_s_with_length(var123, var124);
7903 var122 = var125;
7904 varonce121 = var122;
7905 }
7906 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var122) /* add on <var_v:AbstractCompilerVisitor>*/;
7907 var126 = ((val* (*)(val*))(self->class->vft[COLOR_typing__AForExpr__method_is_ok]))(self) /* method_is_ok on <self:AForExpr>*/;
7908 var_isok_meth = var126;
7909 var127 = NULL;
7910 if (var_isok_meth == NULL) {
7911 var128 = 0; /* is null */
7912 } else {
7913 var128 = 1; /* arg is null and recv is not */
7914 }
7915 if (!var128) {
7916 fprintf(stderr, "Runtime error: %s", "Assert failed");
7917 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2202);
7918 show_backtrace(1);
7919 }
7920 var129 = NEW_array__Array(&type_array__Arrayabstract_compiler__RuntimeVariable);
7921 { /* var129 = array_instance Array[RuntimeVariable] */
7922 var130 = 1;
7923 var131 = NEW_array__NativeArray(var130, &type_array__NativeArrayabstract_compiler__RuntimeVariable);
7924 ((struct instance_array__NativeArray*)var131)->values[0] = (val*) var_it;
7925 ((void (*)(val*, val*, long))(var129->class->vft[COLOR_array__Array__with_native]))(var129, var131, var130) /* with_native on <var129:Array[RuntimeVariable]>*/;
7926 }
7927 var132 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__send]))(var_v, var_isok_meth, var129) /* send on <var_v:AbstractCompilerVisitor>*/;
7928 var_ok133 = var132;
7929 var134 = NULL;
7930 if (var_ok133 == NULL) {
7931 var135 = 0; /* is null */
7932 } else {
7933 var135 = 1; /* arg is null and recv is not */
7934 }
7935 if (!var135) {
7936 fprintf(stderr, "Runtime error: %s", "Assert failed");
7937 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2204);
7938 show_backtrace(1);
7939 }
7940 if (varonce136) {
7941 var137 = varonce136;
7942 } else {
7943 var138 = "if(!";
7944 var139 = 4;
7945 var140 = string__NativeString__to_s_with_length(var138, var139);
7946 var137 = var140;
7947 varonce136 = var137;
7948 }
7949 if (varonce141) {
7950 var142 = varonce141;
7951 } else {
7952 var143 = ") break;";
7953 var144 = 8;
7954 var145 = string__NativeString__to_s_with_length(var143, var144);
7955 var142 = var145;
7956 varonce141 = var142;
7957 }
7958 var146 = NEW_array__Array(&type_array__Arraykernel__Object);
7959 { /* var146 = array_instance Array[Object] */
7960 var147 = 3;
7961 var148 = NEW_array__NativeArray(var147, &type_array__NativeArraykernel__Object);
7962 ((struct instance_array__NativeArray*)var148)->values[0] = (val*) var137;
7963 ((struct instance_array__NativeArray*)var148)->values[1] = (val*) var_ok133;
7964 ((struct instance_array__NativeArray*)var148)->values[2] = (val*) var142;
7965 ((void (*)(val*, val*, long))(var146->class->vft[COLOR_array__Array__with_native]))(var146, var148, var147) /* with_native on <var146:Array[Object]>*/;
7966 }
7967 var149 = ((val* (*)(val*))(var146->class->vft[COLOR_string__Object__to_s]))(var146) /* to_s on <var146:Array[Object]>*/;
7968 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var149) /* add on <var_v:AbstractCompilerVisitor>*/;
7969 var150 = ((val* (*)(val*))(self->class->vft[COLOR_scope__AForExpr__variables]))(self) /* variables on <self:AForExpr>*/;
7970 if (var150 == NULL) {
7971 fprintf(stderr, "Runtime error: %s", "Receiver is null");
7972 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2206);
7973 show_backtrace(1);
7974 } else {
7975 var151 = ((long (*)(val*))(var150->class->vft[COLOR_abstract_collection__Collection__length]))(var150) /* length on <var150:nullable Array[Variable]>*/;
7976 }
7977 var152 = 1;
7978 { /* Inline kernel#Int#== (var151,var152) */
7979 var155 = var151 == var152;
7980 var153 = var155;
7981 goto RET_LABEL154;
7982 RET_LABEL154:(void)0;
7983 }
7984 if (var153){
7985 var156 = ((val* (*)(val*))(self->class->vft[COLOR_typing__AForExpr__method_item]))(self) /* method_item on <self:AForExpr>*/;
7986 var_item_meth = var156;
7987 var157 = NULL;
7988 if (var_item_meth == NULL) {
7989 var158 = 0; /* is null */
7990 } else {
7991 var158 = 1; /* arg is null and recv is not */
7992 }
7993 if (!var158) {
7994 fprintf(stderr, "Runtime error: %s", "Assert failed");
7995 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2208);
7996 show_backtrace(1);
7997 }
7998 var159 = NEW_array__Array(&type_array__Arrayabstract_compiler__RuntimeVariable);
7999 { /* var159 = array_instance Array[RuntimeVariable] */
8000 var160 = 1;
8001 var161 = NEW_array__NativeArray(var160, &type_array__NativeArrayabstract_compiler__RuntimeVariable);
8002 ((struct instance_array__NativeArray*)var161)->values[0] = (val*) var_it;
8003 ((void (*)(val*, val*, long))(var159->class->vft[COLOR_array__Array__with_native]))(var159, var161, var160) /* with_native on <var159:Array[RuntimeVariable]>*/;
8004 }
8005 var162 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__send]))(var_v, var_item_meth, var159) /* send on <var_v:AbstractCompilerVisitor>*/;
8006 var_i = var162;
8007 var163 = NULL;
8008 if (var_i == NULL) {
8009 var164 = 0; /* is null */
8010 } else {
8011 var164 = 1; /* arg is null and recv is not */
8012 }
8013 if (!var164) {
8014 fprintf(stderr, "Runtime error: %s", "Assert failed");
8015 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2210);
8016 show_backtrace(1);
8017 }
8018 var165 = ((val* (*)(val*))(self->class->vft[COLOR_scope__AForExpr__variables]))(self) /* variables on <self:AForExpr>*/;
8019 if (var165 == NULL) {
8020 fprintf(stderr, "Runtime error: %s", "Receiver is null");
8021 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2211);
8022 show_backtrace(1);
8023 } else {
8024 var166 = ((val* (*)(val*))(var165->class->vft[COLOR_abstract_collection__Collection__first]))(var165) /* first on <var165:nullable Array[Variable]>*/;
8025 }
8026 var167 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__variable]))(var_v, var166) /* variable on <var_v:AbstractCompilerVisitor>*/;
8027 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__assign]))(var_v, var167, var_i) /* assign on <var_v:AbstractCompilerVisitor>*/;
8028 } else {
8029 var168 = ((val* (*)(val*))(self->class->vft[COLOR_scope__AForExpr__variables]))(self) /* variables on <self:AForExpr>*/;
8030 if (var168 == NULL) {
8031 fprintf(stderr, "Runtime error: %s", "Receiver is null");
8032 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2212);
8033 show_backtrace(1);
8034 } else {
8035 var169 = ((long (*)(val*))(var168->class->vft[COLOR_abstract_collection__Collection__length]))(var168) /* length on <var168:nullable Array[Variable]>*/;
8036 }
8037 var170 = 2;
8038 { /* Inline kernel#Int#== (var169,var170) */
8039 var173 = var169 == var170;
8040 var171 = var173;
8041 goto RET_LABEL172;
8042 RET_LABEL172:(void)0;
8043 }
8044 if (var171){
8045 var174 = ((val* (*)(val*))(self->class->vft[COLOR_typing__AForExpr__method_key]))(self) /* method_key on <self:AForExpr>*/;
8046 var_key_meth = var174;
8047 var175 = NULL;
8048 if (var_key_meth == NULL) {
8049 var176 = 0; /* is null */
8050 } else {
8051 var176 = 1; /* arg is null and recv is not */
8052 }
8053 if (!var176) {
8054 fprintf(stderr, "Runtime error: %s", "Assert failed");
8055 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2214);
8056 show_backtrace(1);
8057 }
8058 var177 = NEW_array__Array(&type_array__Arrayabstract_compiler__RuntimeVariable);
8059 { /* var177 = array_instance Array[RuntimeVariable] */
8060 var178 = 1;
8061 var179 = NEW_array__NativeArray(var178, &type_array__NativeArrayabstract_compiler__RuntimeVariable);
8062 ((struct instance_array__NativeArray*)var179)->values[0] = (val*) var_it;
8063 ((void (*)(val*, val*, long))(var177->class->vft[COLOR_array__Array__with_native]))(var177, var179, var178) /* with_native on <var177:Array[RuntimeVariable]>*/;
8064 }
8065 var180 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__send]))(var_v, var_key_meth, var177) /* send on <var_v:AbstractCompilerVisitor>*/;
8066 var_i181 = var180;
8067 var182 = NULL;
8068 if (var_i181 == NULL) {
8069 var183 = 0; /* is null */
8070 } else {
8071 var183 = 1; /* arg is null and recv is not */
8072 }
8073 if (!var183) {
8074 fprintf(stderr, "Runtime error: %s", "Assert failed");
8075 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2216);
8076 show_backtrace(1);
8077 }
8078 var184 = ((val* (*)(val*))(self->class->vft[COLOR_scope__AForExpr__variables]))(self) /* variables on <self:AForExpr>*/;
8079 var185 = 0;
8080 if (var184 == NULL) {
8081 fprintf(stderr, "Runtime error: %s", "Receiver is null");
8082 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2217);
8083 show_backtrace(1);
8084 } else {
8085 var186 = ((val* (*)(val*, long))(var184->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var184, var185) /* [] on <var184:nullable Array[Variable]>*/;
8086 }
8087 var187 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__variable]))(var_v, var186) /* variable on <var_v:AbstractCompilerVisitor>*/;
8088 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__assign]))(var_v, var187, var_i181) /* assign on <var_v:AbstractCompilerVisitor>*/;
8089 var188 = ((val* (*)(val*))(self->class->vft[COLOR_typing__AForExpr__method_item]))(self) /* method_item on <self:AForExpr>*/;
8090 var_item_meth189 = var188;
8091 var190 = NULL;
8092 if (var_item_meth189 == NULL) {
8093 var191 = 0; /* is null */
8094 } else {
8095 var191 = 1; /* arg is null and recv is not */
8096 }
8097 if (!var191) {
8098 fprintf(stderr, "Runtime error: %s", "Assert failed");
8099 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2219);
8100 show_backtrace(1);
8101 }
8102 var192 = NEW_array__Array(&type_array__Arrayabstract_compiler__RuntimeVariable);
8103 { /* var192 = array_instance Array[RuntimeVariable] */
8104 var193 = 1;
8105 var194 = NEW_array__NativeArray(var193, &type_array__NativeArrayabstract_compiler__RuntimeVariable);
8106 ((struct instance_array__NativeArray*)var194)->values[0] = (val*) var_it;
8107 ((void (*)(val*, val*, long))(var192->class->vft[COLOR_array__Array__with_native]))(var192, var194, var193) /* with_native on <var192:Array[RuntimeVariable]>*/;
8108 }
8109 var195 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__send]))(var_v, var_item_meth189, var192) /* send on <var_v:AbstractCompilerVisitor>*/;
8110 var_i181 = var195;
8111 var196 = NULL;
8112 if (var_i181 == NULL) {
8113 var197 = 0; /* is null */
8114 } else {
8115 var197 = 1; /* arg is null and recv is not */
8116 }
8117 if (!var197) {
8118 fprintf(stderr, "Runtime error: %s", "Assert failed");
8119 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2221);
8120 show_backtrace(1);
8121 }
8122 var198 = ((val* (*)(val*))(self->class->vft[COLOR_scope__AForExpr__variables]))(self) /* variables on <self:AForExpr>*/;
8123 var199 = 1;
8124 if (var198 == NULL) {
8125 fprintf(stderr, "Runtime error: %s", "Receiver is null");
8126 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2222);
8127 show_backtrace(1);
8128 } else {
8129 var200 = ((val* (*)(val*, long))(var198->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var198, var199) /* [] on <var198:nullable Array[Variable]>*/;
8130 }
8131 var201 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__variable]))(var_v, var200) /* variable on <var_v:AbstractCompilerVisitor>*/;
8132 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__assign]))(var_v, var201, var_i181) /* assign on <var_v:AbstractCompilerVisitor>*/;
8133 } else {
8134 fprintf(stderr, "Runtime error: %s", "Aborted");
8135 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2224);
8136 show_backtrace(1);
8137 }
8138 }
8139 var202 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AForExpr__n_block]))(self) /* n_block on <self:AForExpr>*/;
8140 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__stmt]))(var_v, var202) /* stmt on <var_v:AbstractCompilerVisitor>*/;
8141 if (varonce203) {
8142 var204 = varonce203;
8143 } else {
8144 var205 = "CONTINUE_";
8145 var206 = 9;
8146 var207 = string__NativeString__to_s_with_length(var205, var206);
8147 var204 = var207;
8148 varonce203 = var204;
8149 }
8150 var208 = ((val* (*)(val*))(self->class->vft[COLOR_scope__AForExpr__escapemark]))(self) /* escapemark on <self:AForExpr>*/;
8151 var209 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__escapemark_name]))(var_v, var208) /* escapemark_name on <var_v:AbstractCompilerVisitor>*/;
8152 if (varonce210) {
8153 var211 = varonce210;
8154 } else {
8155 var212 = ": (void)0;";
8156 var213 = 10;
8157 var214 = string__NativeString__to_s_with_length(var212, var213);
8158 var211 = var214;
8159 varonce210 = var211;
8160 }
8161 var215 = NEW_array__Array(&type_array__Arraykernel__Object);
8162 { /* var215 = array_instance Array[Object] */
8163 var216 = 3;
8164 var217 = NEW_array__NativeArray(var216, &type_array__NativeArraykernel__Object);
8165 ((struct instance_array__NativeArray*)var217)->values[0] = (val*) var204;
8166 ((struct instance_array__NativeArray*)var217)->values[1] = (val*) var209;
8167 ((struct instance_array__NativeArray*)var217)->values[2] = (val*) var211;
8168 ((void (*)(val*, val*, long))(var215->class->vft[COLOR_array__Array__with_native]))(var215, var217, var216) /* with_native on <var215:Array[Object]>*/;
8169 }
8170 var218 = ((val* (*)(val*))(var215->class->vft[COLOR_string__Object__to_s]))(var215) /* to_s on <var215:Array[Object]>*/;
8171 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var218) /* add on <var_v:AbstractCompilerVisitor>*/;
8172 var219 = ((val* (*)(val*))(self->class->vft[COLOR_typing__AForExpr__method_next]))(self) /* method_next on <self:AForExpr>*/;
8173 var_next_meth = var219;
8174 var220 = NULL;
8175 if (var_next_meth == NULL) {
8176 var221 = 0; /* is null */
8177 } else {
8178 var221 = 1; /* arg is null and recv is not */
8179 }
8180 if (!var221) {
8181 fprintf(stderr, "Runtime error: %s", "Assert failed");
8182 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2229);
8183 show_backtrace(1);
8184 }
8185 var222 = NEW_array__Array(&type_array__Arrayabstract_compiler__RuntimeVariable);
8186 { /* var222 = array_instance Array[RuntimeVariable] */
8187 var223 = 1;
8188 var224 = NEW_array__NativeArray(var223, &type_array__NativeArrayabstract_compiler__RuntimeVariable);
8189 ((struct instance_array__NativeArray*)var224)->values[0] = (val*) var_it;
8190 ((void (*)(val*, val*, long))(var222->class->vft[COLOR_array__Array__with_native]))(var222, var224, var223) /* with_native on <var222:Array[RuntimeVariable]>*/;
8191 }
8192 var225 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__send]))(var_v, var_next_meth, var222) /* send on <var_v:AbstractCompilerVisitor>*/;
8193 var225;
8194 if (varonce226) {
8195 var227 = varonce226;
8196 } else {
8197 var228 = "}";
8198 var229 = 1;
8199 var230 = string__NativeString__to_s_with_length(var228, var229);
8200 var227 = var230;
8201 varonce226 = var227;
8202 }
8203 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var227) /* add on <var_v:AbstractCompilerVisitor>*/;
8204 if (varonce231) {
8205 var232 = varonce231;
8206 } else {
8207 var233 = "BREAK_";
8208 var234 = 6;
8209 var235 = string__NativeString__to_s_with_length(var233, var234);
8210 var232 = var235;
8211 varonce231 = var232;
8212 }
8213 var236 = ((val* (*)(val*))(self->class->vft[COLOR_scope__AForExpr__escapemark]))(self) /* escapemark on <self:AForExpr>*/;
8214 var237 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__escapemark_name]))(var_v, var236) /* escapemark_name on <var_v:AbstractCompilerVisitor>*/;
8215 if (varonce238) {
8216 var239 = varonce238;
8217 } else {
8218 var240 = ": (void)0;";
8219 var241 = 10;
8220 var242 = string__NativeString__to_s_with_length(var240, var241);
8221 var239 = var242;
8222 varonce238 = var239;
8223 }
8224 var243 = NEW_array__Array(&type_array__Arraykernel__Object);
8225 { /* var243 = array_instance Array[Object] */
8226 var244 = 3;
8227 var245 = NEW_array__NativeArray(var244, &type_array__NativeArraykernel__Object);
8228 ((struct instance_array__NativeArray*)var245)->values[0] = (val*) var232;
8229 ((struct instance_array__NativeArray*)var245)->values[1] = (val*) var237;
8230 ((struct instance_array__NativeArray*)var245)->values[2] = (val*) var239;
8231 ((void (*)(val*, val*, long))(var243->class->vft[COLOR_array__Array__with_native]))(var243, var245, var244) /* with_native on <var243:Array[Object]>*/;
8232 }
8233 var246 = ((val* (*)(val*))(var243->class->vft[COLOR_string__Object__to_s]))(var243) /* to_s on <var243:Array[Object]>*/;
8234 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var246) /* add on <var_v:AbstractCompilerVisitor>*/;
8235 RET_LABEL:;
8236 }
8237 /* method abstract_compiler#AForExpr#stmt for (self: Object, AbstractCompilerVisitor) */
8238 void VIRTUAL_abstract_compiler__AForExpr__stmt(val* self, val* p0) {
8239 abstract_compiler__AForExpr__stmt(self, p0);
8240 RET_LABEL:;
8241 }
8242 /* method abstract_compiler#AAssertExpr#stmt for (self: AAssertExpr, AbstractCompilerVisitor) */
8243 void abstract_compiler__AAssertExpr__stmt(val* self, val* p0) {
8244 val* var_v /* var v: AbstractCompilerVisitor */;
8245 val* var /* : AbstractCompiler */;
8246 val* var1 /* : ModelBuilder */;
8247 val* var2 /* : ToolContext */;
8248 val* var3 /* : OptionBool */;
8249 val* var4 /* : nullable Object */;
8250 short int var5 /* : Bool */;
8251 val* var6 /* : AExpr */;
8252 val* var7 /* : RuntimeVariable */;
8253 val* var_cond /* var cond: RuntimeVariable */;
8254 static val* varonce;
8255 val* var8 /* : String */;
8256 char* var9 /* : NativeString */;
8257 long var10 /* : Int */;
8258 val* var11 /* : String */;
8259 static val* varonce12;
8260 val* var13 /* : String */;
8261 char* var14 /* : NativeString */;
8262 long var15 /* : Int */;
8263 val* var16 /* : String */;
8264 val* var17 /* : Array[Object] */;
8265 long var18 /* : Int */;
8266 val* var19 /* : NativeArray[Object] */;
8267 val* var20 /* : String */;
8268 val* var21 /* : nullable AExpr */;
8269 val* var22 /* : nullable TId */;
8270 val* var_nid /* var nid: nullable TId */;
8271 val* var23 /* : null */;
8272 short int var24 /* : Bool */;
8273 static val* varonce25;
8274 val* var26 /* : String */;
8275 char* var27 /* : NativeString */;
8276 long var28 /* : Int */;
8277 val* var29 /* : String */;
8278 val* var30 /* : String */;
8279 static val* varonce31;
8280 val* var32 /* : String */;
8281 char* var33 /* : NativeString */;
8282 long var34 /* : Int */;
8283 val* var35 /* : String */;
8284 val* var36 /* : Array[Object] */;
8285 long var37 /* : Int */;
8286 val* var38 /* : NativeArray[Object] */;
8287 val* var39 /* : String */;
8288 static val* varonce40;
8289 val* var41 /* : String */;
8290 char* var42 /* : NativeString */;
8291 long var43 /* : Int */;
8292 val* var44 /* : String */;
8293 static val* varonce45;
8294 val* var46 /* : String */;
8295 char* var47 /* : NativeString */;
8296 long var48 /* : Int */;
8297 val* var49 /* : String */;
8298 var_v = p0;
8299 var = ((val* (*)(val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler]))(var_v) /* compiler on <var_v:AbstractCompilerVisitor>*/;
8300 var1 = ((val* (*)(val*))(var->class->vft[COLOR_abstract_compiler__AbstractCompiler__modelbuilder]))(var) /* modelbuilder on <var:AbstractCompiler>*/;
8301 var2 = ((val* (*)(val*))(var1->class->vft[COLOR_modelbuilder__ModelBuilder__toolcontext]))(var1) /* toolcontext on <var1:ModelBuilder>*/;
8302 var3 = ((val* (*)(val*))(var2->class->vft[COLOR_abstract_compiler__ToolContext__opt_no_check_assert]))(var2) /* opt_no_check_assert on <var2:ToolContext>*/;
8303 var4 = ((val* (*)(val*))(var3->class->vft[COLOR_opts__Option__value]))(var3) /* value on <var3:OptionBool>*/;
8304 var5 = ((struct instance_kernel__Bool*)var4)->value; /* autounbox from nullable Object to Bool */;
8305 if (var5){
8306 goto RET_LABEL;
8307 } else {
8308 }
8309 var6 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAssertExpr__n_expr]))(self) /* n_expr on <self:AAssertExpr>*/;
8310 var7 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__expr_bool]))(var_v, var6) /* expr_bool on <var_v:AbstractCompilerVisitor>*/;
8311 var_cond = var7;
8312 if (varonce) {
8313 var8 = varonce;
8314 } else {
8315 var9 = "if (!";
8316 var10 = 5;
8317 var11 = string__NativeString__to_s_with_length(var9, var10);
8318 var8 = var11;
8319 varonce = var8;
8320 }
8321 if (varonce12) {
8322 var13 = varonce12;
8323 } else {
8324 var14 = ") {";
8325 var15 = 3;
8326 var16 = string__NativeString__to_s_with_length(var14, var15);
8327 var13 = var16;
8328 varonce12 = var13;
8329 }
8330 var17 = NEW_array__Array(&type_array__Arraykernel__Object);
8331 { /* var17 = array_instance Array[Object] */
8332 var18 = 3;
8333 var19 = NEW_array__NativeArray(var18, &type_array__NativeArraykernel__Object);
8334 ((struct instance_array__NativeArray*)var19)->values[0] = (val*) var8;
8335 ((struct instance_array__NativeArray*)var19)->values[1] = (val*) var_cond;
8336 ((struct instance_array__NativeArray*)var19)->values[2] = (val*) var13;
8337 ((void (*)(val*, val*, long))(var17->class->vft[COLOR_array__Array__with_native]))(var17, var19, var18) /* with_native on <var17:Array[Object]>*/;
8338 }
8339 var20 = ((val* (*)(val*))(var17->class->vft[COLOR_string__Object__to_s]))(var17) /* to_s on <var17:Array[Object]>*/;
8340 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var20) /* add on <var_v:AbstractCompilerVisitor>*/;
8341 var21 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAssertExpr__n_else]))(self) /* n_else on <self:AAssertExpr>*/;
8342 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__stmt]))(var_v, var21) /* stmt on <var_v:AbstractCompilerVisitor>*/;
8343 var22 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAssertExpr__n_id]))(self) /* n_id on <self:AAssertExpr>*/;
8344 var_nid = var22;
8345 var23 = NULL;
8346 if (var_nid == NULL) {
8347 var24 = 0; /* is null */
8348 } else {
8349 var24 = 1; /* arg is null and recv is not */
8350 }
8351 if (var24){
8352 if (varonce25) {
8353 var26 = varonce25;
8354 } else {
8355 var27 = "Assert \'";
8356 var28 = 8;
8357 var29 = string__NativeString__to_s_with_length(var27, var28);
8358 var26 = var29;
8359 varonce25 = var26;
8360 }
8361 var30 = ((val* (*)(val*))(var_nid->class->vft[COLOR_parser_nodes__Token__text]))(var_nid) /* text on <var_nid:nullable TId(TId)>*/;
8362 if (varonce31) {
8363 var32 = varonce31;
8364 } else {
8365 var33 = "\' failed";
8366 var34 = 8;
8367 var35 = string__NativeString__to_s_with_length(var33, var34);
8368 var32 = var35;
8369 varonce31 = var32;
8370 }
8371 var36 = NEW_array__Array(&type_array__Arraykernel__Object);
8372 { /* var36 = array_instance Array[Object] */
8373 var37 = 3;
8374 var38 = NEW_array__NativeArray(var37, &type_array__NativeArraykernel__Object);
8375 ((struct instance_array__NativeArray*)var38)->values[0] = (val*) var26;
8376 ((struct instance_array__NativeArray*)var38)->values[1] = (val*) var30;
8377 ((struct instance_array__NativeArray*)var38)->values[2] = (val*) var32;
8378 ((void (*)(val*, val*, long))(var36->class->vft[COLOR_array__Array__with_native]))(var36, var38, var37) /* with_native on <var36:Array[Object]>*/;
8379 }
8380 var39 = ((val* (*)(val*))(var36->class->vft[COLOR_string__Object__to_s]))(var36) /* to_s on <var36:Array[Object]>*/;
8381 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add_abort]))(var_v, var39) /* add_abort on <var_v:AbstractCompilerVisitor>*/;
8382 } else {
8383 if (varonce40) {
8384 var41 = varonce40;
8385 } else {
8386 var42 = "Assert failed";
8387 var43 = 13;
8388 var44 = string__NativeString__to_s_with_length(var42, var43);
8389 var41 = var44;
8390 varonce40 = var41;
8391 }
8392 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add_abort]))(var_v, var41) /* add_abort on <var_v:AbstractCompilerVisitor>*/;
8393 }
8394 if (varonce45) {
8395 var46 = varonce45;
8396 } else {
8397 var47 = "}";
8398 var48 = 1;
8399 var49 = string__NativeString__to_s_with_length(var47, var48);
8400 var46 = var49;
8401 varonce45 = var46;
8402 }
8403 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var46) /* add on <var_v:AbstractCompilerVisitor>*/;
8404 RET_LABEL:;
8405 }
8406 /* method abstract_compiler#AAssertExpr#stmt for (self: Object, AbstractCompilerVisitor) */
8407 void VIRTUAL_abstract_compiler__AAssertExpr__stmt(val* self, val* p0) {
8408 abstract_compiler__AAssertExpr__stmt(self, p0);
8409 RET_LABEL:;
8410 }
8411 /* method abstract_compiler#AOrExpr#expr for (self: AOrExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
8412 val* abstract_compiler__AOrExpr__expr(val* self, val* p0) {
8413 val* var /* : nullable RuntimeVariable */;
8414 val* var_v /* var v: AbstractCompilerVisitor */;
8415 val* var1 /* : nullable MType */;
8416 val* var2 /* : RuntimeVariable */;
8417 val* var_res /* var res: RuntimeVariable */;
8418 val* var3 /* : AExpr */;
8419 val* var4 /* : RuntimeVariable */;
8420 val* var_i1 /* var i1: RuntimeVariable */;
8421 static val* varonce;
8422 val* var5 /* : String */;
8423 char* var6 /* : NativeString */;
8424 long var7 /* : Int */;
8425 val* var8 /* : String */;
8426 static val* varonce9;
8427 val* var10 /* : String */;
8428 char* var11 /* : NativeString */;
8429 long var12 /* : Int */;
8430 val* var13 /* : String */;
8431 val* var14 /* : Array[Object] */;
8432 long var15 /* : Int */;
8433 val* var16 /* : NativeArray[Object] */;
8434 val* var17 /* : String */;
8435 static val* varonce18;
8436 val* var19 /* : String */;
8437 char* var20 /* : NativeString */;
8438 long var21 /* : Int */;
8439 val* var22 /* : String */;
8440 val* var23 /* : Array[Object] */;
8441 long var24 /* : Int */;
8442 val* var25 /* : NativeArray[Object] */;
8443 val* var26 /* : String */;
8444 static val* varonce27;
8445 val* var28 /* : String */;
8446 char* var29 /* : NativeString */;
8447 long var30 /* : Int */;
8448 val* var31 /* : String */;
8449 val* var32 /* : AExpr */;
8450 val* var33 /* : RuntimeVariable */;
8451 val* var_i2 /* var i2: RuntimeVariable */;
8452 static val* varonce34;
8453 val* var35 /* : String */;
8454 char* var36 /* : NativeString */;
8455 long var37 /* : Int */;
8456 val* var38 /* : String */;
8457 static val* varonce39;
8458 val* var40 /* : String */;
8459 char* var41 /* : NativeString */;
8460 long var42 /* : Int */;
8461 val* var43 /* : String */;
8462 val* var44 /* : Array[Object] */;
8463 long var45 /* : Int */;
8464 val* var46 /* : NativeArray[Object] */;
8465 val* var47 /* : String */;
8466 static val* varonce48;
8467 val* var49 /* : String */;
8468 char* var50 /* : NativeString */;
8469 long var51 /* : Int */;
8470 val* var52 /* : String */;
8471 var_v = p0;
8472 var1 = ((val* (*)(val*))(self->class->vft[COLOR_typing__AExpr__mtype]))(self) /* mtype on <self:AOrExpr>*/;
8473 if (var1 == NULL) {
8474 fprintf(stderr, "Runtime error: %s", "Cast failed");
8475 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2257);
8476 show_backtrace(1);
8477 }
8478 var2 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var]))(var_v, var1) /* new_var on <var_v:AbstractCompilerVisitor>*/;
8479 var_res = var2;
8480 var3 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AOrExpr__n_expr]))(self) /* n_expr on <self:AOrExpr>*/;
8481 var4 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__expr_bool]))(var_v, var3) /* expr_bool on <var_v:AbstractCompilerVisitor>*/;
8482 var_i1 = var4;
8483 if (varonce) {
8484 var5 = varonce;
8485 } else {
8486 var6 = "if (";
8487 var7 = 4;
8488 var8 = string__NativeString__to_s_with_length(var6, var7);
8489 var5 = var8;
8490 varonce = var5;
8491 }
8492 if (varonce9) {
8493 var10 = varonce9;
8494 } else {
8495 var11 = ") {";
8496 var12 = 3;
8497 var13 = string__NativeString__to_s_with_length(var11, var12);
8498 var10 = var13;
8499 varonce9 = var10;
8500 }
8501 var14 = NEW_array__Array(&type_array__Arraykernel__Object);
8502 { /* var14 = array_instance Array[Object] */
8503 var15 = 3;
8504 var16 = NEW_array__NativeArray(var15, &type_array__NativeArraykernel__Object);
8505 ((struct instance_array__NativeArray*)var16)->values[0] = (val*) var5;
8506 ((struct instance_array__NativeArray*)var16)->values[1] = (val*) var_i1;
8507 ((struct instance_array__NativeArray*)var16)->values[2] = (val*) var10;
8508 ((void (*)(val*, val*, long))(var14->class->vft[COLOR_array__Array__with_native]))(var14, var16, var15) /* with_native on <var14:Array[Object]>*/;
8509 }
8510 var17 = ((val* (*)(val*))(var14->class->vft[COLOR_string__Object__to_s]))(var14) /* to_s on <var14:Array[Object]>*/;
8511 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var17) /* add on <var_v:AbstractCompilerVisitor>*/;
8512 if (varonce18) {
8513 var19 = varonce18;
8514 } else {
8515 var20 = " = 1;";
8516 var21 = 5;
8517 var22 = string__NativeString__to_s_with_length(var20, var21);
8518 var19 = var22;
8519 varonce18 = var19;
8520 }
8521 var23 = NEW_array__Array(&type_array__Arraykernel__Object);
8522 { /* var23 = array_instance Array[Object] */
8523 var24 = 2;
8524 var25 = NEW_array__NativeArray(var24, &type_array__NativeArraykernel__Object);
8525 ((struct instance_array__NativeArray*)var25)->values[0] = (val*) var_res;
8526 ((struct instance_array__NativeArray*)var25)->values[1] = (val*) var19;
8527 ((void (*)(val*, val*, long))(var23->class->vft[COLOR_array__Array__with_native]))(var23, var25, var24) /* with_native on <var23:Array[Object]>*/;
8528 }
8529 var26 = ((val* (*)(val*))(var23->class->vft[COLOR_string__Object__to_s]))(var23) /* to_s on <var23:Array[Object]>*/;
8530 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var26) /* add on <var_v:AbstractCompilerVisitor>*/;
8531 if (varonce27) {
8532 var28 = varonce27;
8533 } else {
8534 var29 = "} else {";
8535 var30 = 8;
8536 var31 = string__NativeString__to_s_with_length(var29, var30);
8537 var28 = var31;
8538 varonce27 = var28;
8539 }
8540 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var28) /* add on <var_v:AbstractCompilerVisitor>*/;
8541 var32 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AOrExpr__n_expr2]))(self) /* n_expr2 on <self:AOrExpr>*/;
8542 var33 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__expr_bool]))(var_v, var32) /* expr_bool on <var_v:AbstractCompilerVisitor>*/;
8543 var_i2 = var33;
8544 if (varonce34) {
8545 var35 = varonce34;
8546 } else {
8547 var36 = " = ";
8548 var37 = 3;
8549 var38 = string__NativeString__to_s_with_length(var36, var37);
8550 var35 = var38;
8551 varonce34 = var35;
8552 }
8553 if (varonce39) {
8554 var40 = varonce39;
8555 } else {
8556 var41 = ";";
8557 var42 = 1;
8558 var43 = string__NativeString__to_s_with_length(var41, var42);
8559 var40 = var43;
8560 varonce39 = var40;
8561 }
8562 var44 = NEW_array__Array(&type_array__Arraykernel__Object);
8563 { /* var44 = array_instance Array[Object] */
8564 var45 = 4;
8565 var46 = NEW_array__NativeArray(var45, &type_array__NativeArraykernel__Object);
8566 ((struct instance_array__NativeArray*)var46)->values[0] = (val*) var_res;
8567 ((struct instance_array__NativeArray*)var46)->values[1] = (val*) var35;
8568 ((struct instance_array__NativeArray*)var46)->values[2] = (val*) var_i2;
8569 ((struct instance_array__NativeArray*)var46)->values[3] = (val*) var40;
8570 ((void (*)(val*, val*, long))(var44->class->vft[COLOR_array__Array__with_native]))(var44, var46, var45) /* with_native on <var44:Array[Object]>*/;
8571 }
8572 var47 = ((val* (*)(val*))(var44->class->vft[COLOR_string__Object__to_s]))(var44) /* to_s on <var44:Array[Object]>*/;
8573 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var47) /* add on <var_v:AbstractCompilerVisitor>*/;
8574 if (varonce48) {
8575 var49 = varonce48;
8576 } else {
8577 var50 = "}";
8578 var51 = 1;
8579 var52 = string__NativeString__to_s_with_length(var50, var51);
8580 var49 = var52;
8581 varonce48 = var49;
8582 }
8583 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var49) /* add on <var_v:AbstractCompilerVisitor>*/;
8584 var = var_res;
8585 goto RET_LABEL;
8586 RET_LABEL:;
8587 return var;
8588 }
8589 /* method abstract_compiler#AOrExpr#expr for (self: Object, AbstractCompilerVisitor): nullable RuntimeVariable */
8590 val* VIRTUAL_abstract_compiler__AOrExpr__expr(val* self, val* p0) {
8591 val* var /* : nullable RuntimeVariable */;
8592 val* var1 /* : nullable RuntimeVariable */;
8593 var1 = abstract_compiler__AOrExpr__expr(self, p0);
8594 var = var1;
8595 RET_LABEL:;
8596 return var;
8597 }
8598 /* method abstract_compiler#AImpliesExpr#expr for (self: AImpliesExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
8599 val* abstract_compiler__AImpliesExpr__expr(val* self, val* p0) {
8600 val* var /* : nullable RuntimeVariable */;
8601 val* var_v /* var v: AbstractCompilerVisitor */;
8602 val* var1 /* : nullable MType */;
8603 val* var2 /* : RuntimeVariable */;
8604 val* var_res /* var res: RuntimeVariable */;
8605 val* var3 /* : AExpr */;
8606 val* var4 /* : RuntimeVariable */;
8607 val* var_i1 /* var i1: RuntimeVariable */;
8608 static val* varonce;
8609 val* var5 /* : String */;
8610 char* var6 /* : NativeString */;
8611 long var7 /* : Int */;
8612 val* var8 /* : String */;
8613 static val* varonce9;
8614 val* var10 /* : String */;
8615 char* var11 /* : NativeString */;
8616 long var12 /* : Int */;
8617 val* var13 /* : String */;
8618 val* var14 /* : Array[Object] */;
8619 long var15 /* : Int */;
8620 val* var16 /* : NativeArray[Object] */;
8621 val* var17 /* : String */;
8622 static val* varonce18;
8623 val* var19 /* : String */;
8624 char* var20 /* : NativeString */;
8625 long var21 /* : Int */;
8626 val* var22 /* : String */;
8627 val* var23 /* : Array[Object] */;
8628 long var24 /* : Int */;
8629 val* var25 /* : NativeArray[Object] */;
8630 val* var26 /* : String */;
8631 static val* varonce27;
8632 val* var28 /* : String */;
8633 char* var29 /* : NativeString */;
8634 long var30 /* : Int */;
8635 val* var31 /* : String */;
8636 val* var32 /* : AExpr */;
8637 val* var33 /* : RuntimeVariable */;
8638 val* var_i2 /* var i2: RuntimeVariable */;
8639 static val* varonce34;
8640 val* var35 /* : String */;
8641 char* var36 /* : NativeString */;
8642 long var37 /* : Int */;
8643 val* var38 /* : String */;
8644 static val* varonce39;
8645 val* var40 /* : String */;
8646 char* var41 /* : NativeString */;
8647 long var42 /* : Int */;
8648 val* var43 /* : String */;
8649 val* var44 /* : Array[Object] */;
8650 long var45 /* : Int */;
8651 val* var46 /* : NativeArray[Object] */;
8652 val* var47 /* : String */;
8653 static val* varonce48;
8654 val* var49 /* : String */;
8655 char* var50 /* : NativeString */;
8656 long var51 /* : Int */;
8657 val* var52 /* : String */;
8658 var_v = p0;
8659 var1 = ((val* (*)(val*))(self->class->vft[COLOR_typing__AExpr__mtype]))(self) /* mtype on <self:AImpliesExpr>*/;
8660 if (var1 == NULL) {
8661 fprintf(stderr, "Runtime error: %s", "Cast failed");
8662 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2272);
8663 show_backtrace(1);
8664 }
8665 var2 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var]))(var_v, var1) /* new_var on <var_v:AbstractCompilerVisitor>*/;
8666 var_res = var2;
8667 var3 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AImpliesExpr__n_expr]))(self) /* n_expr on <self:AImpliesExpr>*/;
8668 var4 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__expr_bool]))(var_v, var3) /* expr_bool on <var_v:AbstractCompilerVisitor>*/;
8669 var_i1 = var4;
8670 if (varonce) {
8671 var5 = varonce;
8672 } else {
8673 var6 = "if (!";
8674 var7 = 5;
8675 var8 = string__NativeString__to_s_with_length(var6, var7);
8676 var5 = var8;
8677 varonce = var5;
8678 }
8679 if (varonce9) {
8680 var10 = varonce9;
8681 } else {
8682 var11 = ") {";
8683 var12 = 3;
8684 var13 = string__NativeString__to_s_with_length(var11, var12);
8685 var10 = var13;
8686 varonce9 = var10;
8687 }
8688 var14 = NEW_array__Array(&type_array__Arraykernel__Object);
8689 { /* var14 = array_instance Array[Object] */
8690 var15 = 3;
8691 var16 = NEW_array__NativeArray(var15, &type_array__NativeArraykernel__Object);
8692 ((struct instance_array__NativeArray*)var16)->values[0] = (val*) var5;
8693 ((struct instance_array__NativeArray*)var16)->values[1] = (val*) var_i1;
8694 ((struct instance_array__NativeArray*)var16)->values[2] = (val*) var10;
8695 ((void (*)(val*, val*, long))(var14->class->vft[COLOR_array__Array__with_native]))(var14, var16, var15) /* with_native on <var14:Array[Object]>*/;
8696 }
8697 var17 = ((val* (*)(val*))(var14->class->vft[COLOR_string__Object__to_s]))(var14) /* to_s on <var14:Array[Object]>*/;
8698 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var17) /* add on <var_v:AbstractCompilerVisitor>*/;
8699 if (varonce18) {
8700 var19 = varonce18;
8701 } else {
8702 var20 = " = 1;";
8703 var21 = 5;
8704 var22 = string__NativeString__to_s_with_length(var20, var21);
8705 var19 = var22;
8706 varonce18 = var19;
8707 }
8708 var23 = NEW_array__Array(&type_array__Arraykernel__Object);
8709 { /* var23 = array_instance Array[Object] */
8710 var24 = 2;
8711 var25 = NEW_array__NativeArray(var24, &type_array__NativeArraykernel__Object);
8712 ((struct instance_array__NativeArray*)var25)->values[0] = (val*) var_res;
8713 ((struct instance_array__NativeArray*)var25)->values[1] = (val*) var19;
8714 ((void (*)(val*, val*, long))(var23->class->vft[COLOR_array__Array__with_native]))(var23, var25, var24) /* with_native on <var23:Array[Object]>*/;
8715 }
8716 var26 = ((val* (*)(val*))(var23->class->vft[COLOR_string__Object__to_s]))(var23) /* to_s on <var23:Array[Object]>*/;
8717 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var26) /* add on <var_v:AbstractCompilerVisitor>*/;
8718 if (varonce27) {
8719 var28 = varonce27;
8720 } else {
8721 var29 = "} else {";
8722 var30 = 8;
8723 var31 = string__NativeString__to_s_with_length(var29, var30);
8724 var28 = var31;
8725 varonce27 = var28;
8726 }
8727 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var28) /* add on <var_v:AbstractCompilerVisitor>*/;
8728 var32 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AImpliesExpr__n_expr2]))(self) /* n_expr2 on <self:AImpliesExpr>*/;
8729 var33 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__expr_bool]))(var_v, var32) /* expr_bool on <var_v:AbstractCompilerVisitor>*/;
8730 var_i2 = var33;
8731 if (varonce34) {
8732 var35 = varonce34;
8733 } else {
8734 var36 = " = ";
8735 var37 = 3;
8736 var38 = string__NativeString__to_s_with_length(var36, var37);
8737 var35 = var38;
8738 varonce34 = var35;
8739 }
8740 if (varonce39) {
8741 var40 = varonce39;
8742 } else {
8743 var41 = ";";
8744 var42 = 1;
8745 var43 = string__NativeString__to_s_with_length(var41, var42);
8746 var40 = var43;
8747 varonce39 = var40;
8748 }
8749 var44 = NEW_array__Array(&type_array__Arraykernel__Object);
8750 { /* var44 = array_instance Array[Object] */
8751 var45 = 4;
8752 var46 = NEW_array__NativeArray(var45, &type_array__NativeArraykernel__Object);
8753 ((struct instance_array__NativeArray*)var46)->values[0] = (val*) var_res;
8754 ((struct instance_array__NativeArray*)var46)->values[1] = (val*) var35;
8755 ((struct instance_array__NativeArray*)var46)->values[2] = (val*) var_i2;
8756 ((struct instance_array__NativeArray*)var46)->values[3] = (val*) var40;
8757 ((void (*)(val*, val*, long))(var44->class->vft[COLOR_array__Array__with_native]))(var44, var46, var45) /* with_native on <var44:Array[Object]>*/;
8758 }
8759 var47 = ((val* (*)(val*))(var44->class->vft[COLOR_string__Object__to_s]))(var44) /* to_s on <var44:Array[Object]>*/;
8760 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var47) /* add on <var_v:AbstractCompilerVisitor>*/;
8761 if (varonce48) {
8762 var49 = varonce48;
8763 } else {
8764 var50 = "}";
8765 var51 = 1;
8766 var52 = string__NativeString__to_s_with_length(var50, var51);
8767 var49 = var52;
8768 varonce48 = var49;
8769 }
8770 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var49) /* add on <var_v:AbstractCompilerVisitor>*/;
8771 var = var_res;
8772 goto RET_LABEL;
8773 RET_LABEL:;
8774 return var;
8775 }
8776 /* method abstract_compiler#AImpliesExpr#expr for (self: Object, AbstractCompilerVisitor): nullable RuntimeVariable */
8777 val* VIRTUAL_abstract_compiler__AImpliesExpr__expr(val* self, val* p0) {
8778 val* var /* : nullable RuntimeVariable */;
8779 val* var1 /* : nullable RuntimeVariable */;
8780 var1 = abstract_compiler__AImpliesExpr__expr(self, p0);
8781 var = var1;
8782 RET_LABEL:;
8783 return var;
8784 }
8785 /* method abstract_compiler#AAndExpr#expr for (self: AAndExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
8786 val* abstract_compiler__AAndExpr__expr(val* self, val* p0) {
8787 val* var /* : nullable RuntimeVariable */;
8788 val* var_v /* var v: AbstractCompilerVisitor */;
8789 val* var1 /* : nullable MType */;
8790 val* var2 /* : RuntimeVariable */;
8791 val* var_res /* var res: RuntimeVariable */;
8792 val* var3 /* : AExpr */;
8793 val* var4 /* : RuntimeVariable */;
8794 val* var_i1 /* var i1: RuntimeVariable */;
8795 static val* varonce;
8796 val* var5 /* : String */;
8797 char* var6 /* : NativeString */;
8798 long var7 /* : Int */;
8799 val* var8 /* : String */;
8800 static val* varonce9;
8801 val* var10 /* : String */;
8802 char* var11 /* : NativeString */;
8803 long var12 /* : Int */;
8804 val* var13 /* : String */;
8805 val* var14 /* : Array[Object] */;
8806 long var15 /* : Int */;
8807 val* var16 /* : NativeArray[Object] */;
8808 val* var17 /* : String */;
8809 static val* varonce18;
8810 val* var19 /* : String */;
8811 char* var20 /* : NativeString */;
8812 long var21 /* : Int */;
8813 val* var22 /* : String */;
8814 val* var23 /* : Array[Object] */;
8815 long var24 /* : Int */;
8816 val* var25 /* : NativeArray[Object] */;
8817 val* var26 /* : String */;
8818 static val* varonce27;
8819 val* var28 /* : String */;
8820 char* var29 /* : NativeString */;
8821 long var30 /* : Int */;
8822 val* var31 /* : String */;
8823 val* var32 /* : AExpr */;
8824 val* var33 /* : RuntimeVariable */;
8825 val* var_i2 /* var i2: RuntimeVariable */;
8826 static val* varonce34;
8827 val* var35 /* : String */;
8828 char* var36 /* : NativeString */;
8829 long var37 /* : Int */;
8830 val* var38 /* : String */;
8831 static val* varonce39;
8832 val* var40 /* : String */;
8833 char* var41 /* : NativeString */;
8834 long var42 /* : Int */;
8835 val* var43 /* : String */;
8836 val* var44 /* : Array[Object] */;
8837 long var45 /* : Int */;
8838 val* var46 /* : NativeArray[Object] */;
8839 val* var47 /* : String */;
8840 static val* varonce48;
8841 val* var49 /* : String */;
8842 char* var50 /* : NativeString */;
8843 long var51 /* : Int */;
8844 val* var52 /* : String */;
8845 var_v = p0;
8846 var1 = ((val* (*)(val*))(self->class->vft[COLOR_typing__AExpr__mtype]))(self) /* mtype on <self:AAndExpr>*/;
8847 if (var1 == NULL) {
8848 fprintf(stderr, "Runtime error: %s", "Cast failed");
8849 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2287);
8850 show_backtrace(1);
8851 }
8852 var2 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var]))(var_v, var1) /* new_var on <var_v:AbstractCompilerVisitor>*/;
8853 var_res = var2;
8854 var3 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAndExpr__n_expr]))(self) /* n_expr on <self:AAndExpr>*/;
8855 var4 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__expr_bool]))(var_v, var3) /* expr_bool on <var_v:AbstractCompilerVisitor>*/;
8856 var_i1 = var4;
8857 if (varonce) {
8858 var5 = varonce;
8859 } else {
8860 var6 = "if (!";
8861 var7 = 5;
8862 var8 = string__NativeString__to_s_with_length(var6, var7);
8863 var5 = var8;
8864 varonce = var5;
8865 }
8866 if (varonce9) {
8867 var10 = varonce9;
8868 } else {
8869 var11 = ") {";
8870 var12 = 3;
8871 var13 = string__NativeString__to_s_with_length(var11, var12);
8872 var10 = var13;
8873 varonce9 = var10;
8874 }
8875 var14 = NEW_array__Array(&type_array__Arraykernel__Object);
8876 { /* var14 = array_instance Array[Object] */
8877 var15 = 3;
8878 var16 = NEW_array__NativeArray(var15, &type_array__NativeArraykernel__Object);
8879 ((struct instance_array__NativeArray*)var16)->values[0] = (val*) var5;
8880 ((struct instance_array__NativeArray*)var16)->values[1] = (val*) var_i1;
8881 ((struct instance_array__NativeArray*)var16)->values[2] = (val*) var10;
8882 ((void (*)(val*, val*, long))(var14->class->vft[COLOR_array__Array__with_native]))(var14, var16, var15) /* with_native on <var14:Array[Object]>*/;
8883 }
8884 var17 = ((val* (*)(val*))(var14->class->vft[COLOR_string__Object__to_s]))(var14) /* to_s on <var14:Array[Object]>*/;
8885 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var17) /* add on <var_v:AbstractCompilerVisitor>*/;
8886 if (varonce18) {
8887 var19 = varonce18;
8888 } else {
8889 var20 = " = 0;";
8890 var21 = 5;
8891 var22 = string__NativeString__to_s_with_length(var20, var21);
8892 var19 = var22;
8893 varonce18 = var19;
8894 }
8895 var23 = NEW_array__Array(&type_array__Arraykernel__Object);
8896 { /* var23 = array_instance Array[Object] */
8897 var24 = 2;
8898 var25 = NEW_array__NativeArray(var24, &type_array__NativeArraykernel__Object);
8899 ((struct instance_array__NativeArray*)var25)->values[0] = (val*) var_res;
8900 ((struct instance_array__NativeArray*)var25)->values[1] = (val*) var19;
8901 ((void (*)(val*, val*, long))(var23->class->vft[COLOR_array__Array__with_native]))(var23, var25, var24) /* with_native on <var23:Array[Object]>*/;
8902 }
8903 var26 = ((val* (*)(val*))(var23->class->vft[COLOR_string__Object__to_s]))(var23) /* to_s on <var23:Array[Object]>*/;
8904 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var26) /* add on <var_v:AbstractCompilerVisitor>*/;
8905 if (varonce27) {
8906 var28 = varonce27;
8907 } else {
8908 var29 = "} else {";
8909 var30 = 8;
8910 var31 = string__NativeString__to_s_with_length(var29, var30);
8911 var28 = var31;
8912 varonce27 = var28;
8913 }
8914 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var28) /* add on <var_v:AbstractCompilerVisitor>*/;
8915 var32 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAndExpr__n_expr2]))(self) /* n_expr2 on <self:AAndExpr>*/;
8916 var33 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__expr_bool]))(var_v, var32) /* expr_bool on <var_v:AbstractCompilerVisitor>*/;
8917 var_i2 = var33;
8918 if (varonce34) {
8919 var35 = varonce34;
8920 } else {
8921 var36 = " = ";
8922 var37 = 3;
8923 var38 = string__NativeString__to_s_with_length(var36, var37);
8924 var35 = var38;
8925 varonce34 = var35;
8926 }
8927 if (varonce39) {
8928 var40 = varonce39;
8929 } else {
8930 var41 = ";";
8931 var42 = 1;
8932 var43 = string__NativeString__to_s_with_length(var41, var42);
8933 var40 = var43;
8934 varonce39 = var40;
8935 }
8936 var44 = NEW_array__Array(&type_array__Arraykernel__Object);
8937 { /* var44 = array_instance Array[Object] */
8938 var45 = 4;
8939 var46 = NEW_array__NativeArray(var45, &type_array__NativeArraykernel__Object);
8940 ((struct instance_array__NativeArray*)var46)->values[0] = (val*) var_res;
8941 ((struct instance_array__NativeArray*)var46)->values[1] = (val*) var35;
8942 ((struct instance_array__NativeArray*)var46)->values[2] = (val*) var_i2;
8943 ((struct instance_array__NativeArray*)var46)->values[3] = (val*) var40;
8944 ((void (*)(val*, val*, long))(var44->class->vft[COLOR_array__Array__with_native]))(var44, var46, var45) /* with_native on <var44:Array[Object]>*/;
8945 }
8946 var47 = ((val* (*)(val*))(var44->class->vft[COLOR_string__Object__to_s]))(var44) /* to_s on <var44:Array[Object]>*/;
8947 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var47) /* add on <var_v:AbstractCompilerVisitor>*/;
8948 if (varonce48) {
8949 var49 = varonce48;
8950 } else {
8951 var50 = "}";
8952 var51 = 1;
8953 var52 = string__NativeString__to_s_with_length(var50, var51);
8954 var49 = var52;
8955 varonce48 = var49;
8956 }
8957 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var49) /* add on <var_v:AbstractCompilerVisitor>*/;
8958 var = var_res;
8959 goto RET_LABEL;
8960 RET_LABEL:;
8961 return var;
8962 }
8963 /* method abstract_compiler#AAndExpr#expr for (self: Object, AbstractCompilerVisitor): nullable RuntimeVariable */
8964 val* VIRTUAL_abstract_compiler__AAndExpr__expr(val* self, val* p0) {
8965 val* var /* : nullable RuntimeVariable */;
8966 val* var1 /* : nullable RuntimeVariable */;
8967 var1 = abstract_compiler__AAndExpr__expr(self, p0);
8968 var = var1;
8969 RET_LABEL:;
8970 return var;
8971 }
8972 /* method abstract_compiler#ANotExpr#expr for (self: ANotExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
8973 val* abstract_compiler__ANotExpr__expr(val* self, val* p0) {
8974 val* var /* : nullable RuntimeVariable */;
8975 val* var_v /* var v: AbstractCompilerVisitor */;
8976 val* var1 /* : AExpr */;
8977 val* var2 /* : RuntimeVariable */;
8978 val* var_cond /* var cond: RuntimeVariable */;
8979 static val* varonce;
8980 val* var3 /* : String */;
8981 char* var4 /* : NativeString */;
8982 long var5 /* : Int */;
8983 val* var6 /* : String */;
8984 val* var7 /* : Array[Object] */;
8985 long var8 /* : Int */;
8986 val* var9 /* : NativeArray[Object] */;
8987 val* var10 /* : String */;
8988 val* var11 /* : nullable MType */;
8989 val* var12 /* : RuntimeVariable */;
8990 var_v = p0;
8991 var1 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANotExpr__n_expr]))(self) /* n_expr on <self:ANotExpr>*/;
8992 var2 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__expr_bool]))(var_v, var1) /* expr_bool on <var_v:AbstractCompilerVisitor>*/;
8993 var_cond = var2;
8994 if (varonce) {
8995 var3 = varonce;
8996 } else {
8997 var4 = "!";
8998 var5 = 1;
8999 var6 = string__NativeString__to_s_with_length(var4, var5);
9000 var3 = var6;
9001 varonce = var3;
9002 }
9003 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
9004 { /* var7 = array_instance Array[Object] */
9005 var8 = 2;
9006 var9 = NEW_array__NativeArray(var8, &type_array__NativeArraykernel__Object);
9007 ((struct instance_array__NativeArray*)var9)->values[0] = (val*) var3;
9008 ((struct instance_array__NativeArray*)var9)->values[1] = (val*) var_cond;
9009 ((void (*)(val*, val*, long))(var7->class->vft[COLOR_array__Array__with_native]))(var7, var9, var8) /* with_native on <var7:Array[Object]>*/;
9010 }
9011 var10 = ((val* (*)(val*))(var7->class->vft[COLOR_string__Object__to_s]))(var7) /* to_s on <var7:Array[Object]>*/;
9012 var11 = ((val* (*)(val*))(self->class->vft[COLOR_typing__AExpr__mtype]))(self) /* mtype on <self:ANotExpr>*/;
9013 if (var11 == NULL) {
9014 fprintf(stderr, "Runtime error: %s", "Cast failed");
9015 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2303);
9016 show_backtrace(1);
9017 }
9018 var12 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var10, var11) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
9019 var = var12;
9020 goto RET_LABEL;
9021 RET_LABEL:;
9022 return var;
9023 }
9024 /* method abstract_compiler#ANotExpr#expr for (self: Object, AbstractCompilerVisitor): nullable RuntimeVariable */
9025 val* VIRTUAL_abstract_compiler__ANotExpr__expr(val* self, val* p0) {
9026 val* var /* : nullable RuntimeVariable */;
9027 val* var1 /* : nullable RuntimeVariable */;
9028 var1 = abstract_compiler__ANotExpr__expr(self, p0);
9029 var = var1;
9030 RET_LABEL:;
9031 return var;
9032 }
9033 /* method abstract_compiler#AOrElseExpr#expr for (self: AOrElseExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
9034 val* abstract_compiler__AOrElseExpr__expr(val* self, val* p0) {
9035 val* var /* : nullable RuntimeVariable */;
9036 val* var_v /* var v: AbstractCompilerVisitor */;
9037 val* var1 /* : nullable MType */;
9038 val* var2 /* : RuntimeVariable */;
9039 val* var_res /* var res: RuntimeVariable */;
9040 val* var3 /* : AExpr */;
9041 val* var4 /* : null */;
9042 val* var5 /* : RuntimeVariable */;
9043 val* var_i1 /* var i1: RuntimeVariable */;
9044 static val* varonce;
9045 val* var6 /* : String */;
9046 char* var7 /* : NativeString */;
9047 long var8 /* : Int */;
9048 val* var9 /* : String */;
9049 static val* varonce10;
9050 val* var11 /* : String */;
9051 char* var12 /* : NativeString */;
9052 long var13 /* : Int */;
9053 val* var14 /* : String */;
9054 val* var15 /* : Array[Object] */;
9055 long var16 /* : Int */;
9056 val* var17 /* : NativeArray[Object] */;
9057 val* var18 /* : String */;
9058 static val* varonce19;
9059 val* var20 /* : String */;
9060 char* var21 /* : NativeString */;
9061 long var22 /* : Int */;
9062 val* var23 /* : String */;
9063 val* var24 /* : AExpr */;
9064 val* var25 /* : null */;
9065 val* var26 /* : RuntimeVariable */;
9066 val* var_i2 /* var i2: RuntimeVariable */;
9067 static val* varonce27;
9068 val* var28 /* : String */;
9069 char* var29 /* : NativeString */;
9070 long var30 /* : Int */;
9071 val* var31 /* : String */;
9072 var_v = p0;
9073 var1 = ((val* (*)(val*))(self->class->vft[COLOR_typing__AExpr__mtype]))(self) /* mtype on <self:AOrElseExpr>*/;
9074 if (var1 == NULL) {
9075 fprintf(stderr, "Runtime error: %s", "Cast failed");
9076 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2310);
9077 show_backtrace(1);
9078 }
9079 var2 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var]))(var_v, var1) /* new_var on <var_v:AbstractCompilerVisitor>*/;
9080 var_res = var2;
9081 var3 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AOrElseExpr__n_expr]))(self) /* n_expr on <self:AOrElseExpr>*/;
9082 var4 = NULL;
9083 var5 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__expr]))(var_v, var3, var4) /* expr on <var_v:AbstractCompilerVisitor>*/;
9084 var_i1 = var5;
9085 if (varonce) {
9086 var6 = varonce;
9087 } else {
9088 var7 = "if (";
9089 var8 = 4;
9090 var9 = string__NativeString__to_s_with_length(var7, var8);
9091 var6 = var9;
9092 varonce = var6;
9093 }
9094 if (varonce10) {
9095 var11 = varonce10;
9096 } else {
9097 var12 = "!=NULL) {";
9098 var13 = 9;
9099 var14 = string__NativeString__to_s_with_length(var12, var13);
9100 var11 = var14;
9101 varonce10 = var11;
9102 }
9103 var15 = NEW_array__Array(&type_array__Arraykernel__Object);
9104 { /* var15 = array_instance Array[Object] */
9105 var16 = 3;
9106 var17 = NEW_array__NativeArray(var16, &type_array__NativeArraykernel__Object);
9107 ((struct instance_array__NativeArray*)var17)->values[0] = (val*) var6;
9108 ((struct instance_array__NativeArray*)var17)->values[1] = (val*) var_i1;
9109 ((struct instance_array__NativeArray*)var17)->values[2] = (val*) var11;
9110 ((void (*)(val*, val*, long))(var15->class->vft[COLOR_array__Array__with_native]))(var15, var17, var16) /* with_native on <var15:Array[Object]>*/;
9111 }
9112 var18 = ((val* (*)(val*))(var15->class->vft[COLOR_string__Object__to_s]))(var15) /* to_s on <var15:Array[Object]>*/;
9113 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var18) /* add on <var_v:AbstractCompilerVisitor>*/;
9114 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__assign]))(var_v, var_res, var_i1) /* assign on <var_v:AbstractCompilerVisitor>*/;
9115 if (varonce19) {
9116 var20 = varonce19;
9117 } else {
9118 var21 = "} else {";
9119 var22 = 8;
9120 var23 = string__NativeString__to_s_with_length(var21, var22);
9121 var20 = var23;
9122 varonce19 = var20;
9123 }
9124 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var20) /* add on <var_v:AbstractCompilerVisitor>*/;
9125 var24 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AOrElseExpr__n_expr2]))(self) /* n_expr2 on <self:AOrElseExpr>*/;
9126 var25 = NULL;
9127 var26 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__expr]))(var_v, var24, var25) /* expr on <var_v:AbstractCompilerVisitor>*/;
9128 var_i2 = var26;
9129 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__assign]))(var_v, var_res, var_i2) /* assign on <var_v:AbstractCompilerVisitor>*/;
9130 if (varonce27) {
9131 var28 = varonce27;
9132 } else {
9133 var29 = "}";
9134 var30 = 1;
9135 var31 = string__NativeString__to_s_with_length(var29, var30);
9136 var28 = var31;
9137 varonce27 = var28;
9138 }
9139 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var28) /* add on <var_v:AbstractCompilerVisitor>*/;
9140 var = var_res;
9141 goto RET_LABEL;
9142 RET_LABEL:;
9143 return var;
9144 }
9145 /* method abstract_compiler#AOrElseExpr#expr for (self: Object, AbstractCompilerVisitor): nullable RuntimeVariable */
9146 val* VIRTUAL_abstract_compiler__AOrElseExpr__expr(val* self, val* p0) {
9147 val* var /* : nullable RuntimeVariable */;
9148 val* var1 /* : nullable RuntimeVariable */;
9149 var1 = abstract_compiler__AOrElseExpr__expr(self, p0);
9150 var = var1;
9151 RET_LABEL:;
9152 return var;
9153 }
9154 /* method abstract_compiler#AIntExpr#expr for (self: AIntExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
9155 val* abstract_compiler__AIntExpr__expr(val* self, val* p0) {
9156 val* var /* : nullable RuntimeVariable */;
9157 val* var_v /* var v: AbstractCompilerVisitor */;
9158 val* var1 /* : nullable Int */;
9159 val* var2 /* : String */;
9160 val* var3 /* : Array[Object] */;
9161 long var4 /* : Int */;
9162 val* var5 /* : NativeArray[Object] */;
9163 val* var6 /* : String */;
9164 val* var7 /* : nullable MType */;
9165 val* var8 /* : RuntimeVariable */;
9166 var_v = p0;
9167 var1 = ((val* (*)(val*))(self->class->vft[COLOR_literal__AIntExpr__value]))(self) /* value on <self:AIntExpr>*/;
9168 if (var1 == NULL) {
9169 fprintf(stderr, "Runtime error: %s", "Receiver is null");
9170 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2323);
9171 show_backtrace(1);
9172 } else {
9173 var2 = ((val* (*)(val*))(var1->class->vft[COLOR_string__Object__to_s]))(var1) /* to_s on <var1:nullable Int>*/;
9174 }
9175 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
9176 { /* var3 = array_instance Array[Object] */
9177 var4 = 1;
9178 var5 = NEW_array__NativeArray(var4, &type_array__NativeArraykernel__Object);
9179 ((struct instance_array__NativeArray*)var5)->values[0] = (val*) var2;
9180 ((void (*)(val*, val*, long))(var3->class->vft[COLOR_array__Array__with_native]))(var3, var5, var4) /* with_native on <var3:Array[Object]>*/;
9181 }
9182 var6 = ((val* (*)(val*))(var3->class->vft[COLOR_string__Object__to_s]))(var3) /* to_s on <var3:Array[Object]>*/;
9183 var7 = ((val* (*)(val*))(self->class->vft[COLOR_typing__AExpr__mtype]))(self) /* mtype on <self:AIntExpr>*/;
9184 if (var7 == NULL) {
9185 fprintf(stderr, "Runtime error: %s", "Cast failed");
9186 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2323);
9187 show_backtrace(1);
9188 }
9189 var8 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var6, var7) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
9190 var = var8;
9191 goto RET_LABEL;
9192 RET_LABEL:;
9193 return var;
9194 }
9195 /* method abstract_compiler#AIntExpr#expr for (self: Object, AbstractCompilerVisitor): nullable RuntimeVariable */
9196 val* VIRTUAL_abstract_compiler__AIntExpr__expr(val* self, val* p0) {
9197 val* var /* : nullable RuntimeVariable */;
9198 val* var1 /* : nullable RuntimeVariable */;
9199 var1 = abstract_compiler__AIntExpr__expr(self, p0);
9200 var = var1;
9201 RET_LABEL:;
9202 return var;
9203 }
9204 /* method abstract_compiler#AFloatExpr#expr for (self: AFloatExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
9205 val* abstract_compiler__AFloatExpr__expr(val* self, val* p0) {
9206 val* var /* : nullable RuntimeVariable */;
9207 val* var_v /* var v: AbstractCompilerVisitor */;
9208 val* var1 /* : TFloat */;
9209 val* var2 /* : String */;
9210 val* var3 /* : Array[Object] */;
9211 long var4 /* : Int */;
9212 val* var5 /* : NativeArray[Object] */;
9213 val* var6 /* : String */;
9214 val* var7 /* : nullable MType */;
9215 val* var8 /* : RuntimeVariable */;
9216 var_v = p0;
9217 var1 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AFloatExpr__n_float]))(self) /* n_float on <self:AFloatExpr>*/;
9218 var2 = ((val* (*)(val*))(var1->class->vft[COLOR_parser_nodes__Token__text]))(var1) /* text on <var1:TFloat>*/;
9219 var3 = NEW_array__Array(&type_array__Arraykernel__Object);
9220 { /* var3 = array_instance Array[Object] */
9221 var4 = 1;
9222 var5 = NEW_array__NativeArray(var4, &type_array__NativeArraykernel__Object);
9223 ((struct instance_array__NativeArray*)var5)->values[0] = (val*) var2;
9224 ((void (*)(val*, val*, long))(var3->class->vft[COLOR_array__Array__with_native]))(var3, var5, var4) /* with_native on <var3:Array[Object]>*/;
9225 }
9226 var6 = ((val* (*)(val*))(var3->class->vft[COLOR_string__Object__to_s]))(var3) /* to_s on <var3:Array[Object]>*/;
9227 var7 = ((val* (*)(val*))(self->class->vft[COLOR_typing__AExpr__mtype]))(self) /* mtype on <self:AFloatExpr>*/;
9228 if (var7 == NULL) {
9229 fprintf(stderr, "Runtime error: %s", "Cast failed");
9230 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2327);
9231 show_backtrace(1);
9232 }
9233 var8 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var6, var7) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
9234 var = var8;
9235 goto RET_LABEL;
9236 RET_LABEL:;
9237 return var;
9238 }
9239 /* method abstract_compiler#AFloatExpr#expr for (self: Object, AbstractCompilerVisitor): nullable RuntimeVariable */
9240 val* VIRTUAL_abstract_compiler__AFloatExpr__expr(val* self, val* p0) {
9241 val* var /* : nullable RuntimeVariable */;
9242 val* var1 /* : nullable RuntimeVariable */;
9243 var1 = abstract_compiler__AFloatExpr__expr(self, p0);
9244 var = var1;
9245 RET_LABEL:;
9246 return var;
9247 }
9248 /* method abstract_compiler#ACharExpr#expr for (self: ACharExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
9249 val* abstract_compiler__ACharExpr__expr(val* self, val* p0) {
9250 val* var /* : nullable RuntimeVariable */;
9251 val* var_v /* var v: AbstractCompilerVisitor */;
9252 static val* varonce;
9253 val* var1 /* : String */;
9254 char* var2 /* : NativeString */;
9255 long var3 /* : Int */;
9256 val* var4 /* : String */;
9257 val* var5 /* : nullable Char */;
9258 val* var6 /* : String */;
9259 val* var7 /* : String */;
9260 static val* varonce8;
9261 val* var9 /* : String */;
9262 char* var10 /* : NativeString */;
9263 long var11 /* : Int */;
9264 val* var12 /* : String */;
9265 val* var13 /* : Array[Object] */;
9266 long var14 /* : Int */;
9267 val* var15 /* : NativeArray[Object] */;
9268 val* var16 /* : String */;
9269 val* var17 /* : nullable MType */;
9270 val* var18 /* : RuntimeVariable */;
9271 var_v = p0;
9272 if (varonce) {
9273 var1 = varonce;
9274 } else {
9275 var2 = "\'";
9276 var3 = 1;
9277 var4 = string__NativeString__to_s_with_length(var2, var3);
9278 var1 = var4;
9279 varonce = var1;
9280 }
9281 var5 = ((val* (*)(val*))(self->class->vft[COLOR_literal__ACharExpr__value]))(self) /* value on <self:ACharExpr>*/;
9282 if (var5 == NULL) {
9283 fprintf(stderr, "Runtime error: %s", "Receiver is null");
9284 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2331);
9285 show_backtrace(1);
9286 } else {
9287 var6 = ((val* (*)(val*))(var5->class->vft[COLOR_string__Object__to_s]))(var5) /* to_s on <var5:nullable Char>*/;
9288 }
9289 var7 = ((val* (*)(val*))(var6->class->vft[COLOR_string__AbstractString__escape_to_c]))(var6) /* escape_to_c on <var6:String>*/;
9290 if (varonce8) {
9291 var9 = varonce8;
9292 } else {
9293 var10 = "\'";
9294 var11 = 1;
9295 var12 = string__NativeString__to_s_with_length(var10, var11);
9296 var9 = var12;
9297 varonce8 = var9;
9298 }
9299 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
9300 { /* var13 = array_instance Array[Object] */
9301 var14 = 3;
9302 var15 = NEW_array__NativeArray(var14, &type_array__NativeArraykernel__Object);
9303 ((struct instance_array__NativeArray*)var15)->values[0] = (val*) var1;
9304 ((struct instance_array__NativeArray*)var15)->values[1] = (val*) var7;
9305 ((struct instance_array__NativeArray*)var15)->values[2] = (val*) var9;
9306 ((void (*)(val*, val*, long))(var13->class->vft[COLOR_array__Array__with_native]))(var13, var15, var14) /* with_native on <var13:Array[Object]>*/;
9307 }
9308 var16 = ((val* (*)(val*))(var13->class->vft[COLOR_string__Object__to_s]))(var13) /* to_s on <var13:Array[Object]>*/;
9309 var17 = ((val* (*)(val*))(self->class->vft[COLOR_typing__AExpr__mtype]))(self) /* mtype on <self:ACharExpr>*/;
9310 if (var17 == NULL) {
9311 fprintf(stderr, "Runtime error: %s", "Cast failed");
9312 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2331);
9313 show_backtrace(1);
9314 }
9315 var18 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var16, var17) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
9316 var = var18;
9317 goto RET_LABEL;
9318 RET_LABEL:;
9319 return var;
9320 }
9321 /* method abstract_compiler#ACharExpr#expr for (self: Object, AbstractCompilerVisitor): nullable RuntimeVariable */
9322 val* VIRTUAL_abstract_compiler__ACharExpr__expr(val* self, val* p0) {
9323 val* var /* : nullable RuntimeVariable */;
9324 val* var1 /* : nullable RuntimeVariable */;
9325 var1 = abstract_compiler__ACharExpr__expr(self, p0);
9326 var = var1;
9327 RET_LABEL:;
9328 return var;
9329 }
9330 /* method abstract_compiler#AArrayExpr#expr for (self: AArrayExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
9331 val* abstract_compiler__AArrayExpr__expr(val* self, val* p0) {
9332 val* var /* : nullable RuntimeVariable */;
9333 val* var_v /* var v: AbstractCompilerVisitor */;
9334 val* var1 /* : nullable MType */;
9335 short int var2 /* : Bool */;
9336 int cltype;
9337 int idtype;
9338 const char* var_class_name;
9339 val* var3 /* : Array[MType] */;
9340 val* var4 /* : nullable Object */;
9341 val* var_mtype /* var mtype: MType */;
9342 val* var5 /* : Array[RuntimeVariable] */;
9343 val* var_array /* var array: Array[RuntimeVariable] */;
9344 val* var6 /* : AExprs */;
9345 val* var7 /* : ANodes[AExpr] */;
9346 val* var8 /* : Iterator[nullable Object] */;
9347 short int var9 /* : Bool */;
9348 val* var10 /* : nullable Object */;
9349 val* var_nexpr /* var nexpr: AExpr */;
9350 val* var11 /* : RuntimeVariable */;
9351 val* var_i /* var i: RuntimeVariable */;
9352 val* var12 /* : RuntimeVariable */;
9353 var_v = p0;
9354 var1 = ((val* (*)(val*))(self->class->vft[COLOR_typing__AExpr__mtype]))(self) /* mtype on <self:AArrayExpr>*/;
9355 /* <var1:nullable MType> isa MClassType */
9356 cltype = type_model__MClassType.color;
9357 idtype = type_model__MClassType.id;
9358 if(var1 == NULL) {
9359 var2 = 0;
9360 } else {
9361 if(cltype >= var1->type->table_size) {
9362 var2 = 0;
9363 } else {
9364 var2 = var1->type->type_table[cltype] == idtype;
9365 }
9366 }
9367 if (!var2) {
9368 var_class_name = var1 == NULL ? "null" : var1->type->name;
9369 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name);
9370 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2337);
9371 show_backtrace(1);
9372 }
9373 var3 = ((val* (*)(val*))(var1->class->vft[COLOR_model__MClassType__arguments]))(var1) /* arguments on <var1:nullable MType(MClassType)>*/;
9374 var4 = ((val* (*)(val*))(var3->class->vft[COLOR_abstract_collection__Collection__first]))(var3) /* first on <var3:Array[MType]>*/;
9375 var_mtype = var4;
9376 var5 = NEW_array__Array(&type_array__Arrayabstract_compiler__RuntimeVariable);
9377 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[RuntimeVariable]>*/;
9378 var_array = var5;
9379 var6 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AArrayExpr__n_exprs]))(self) /* n_exprs on <self:AArrayExpr>*/;
9380 var7 = ((val* (*)(val*))(var6->class->vft[COLOR_parser_nodes__AExprs__n_exprs]))(var6) /* n_exprs on <var6:AExprs>*/;
9381 var8 = ((val* (*)(val*))(var7->class->vft[COLOR_abstract_collection__Collection__iterator]))(var7) /* iterator on <var7:ANodes[AExpr]>*/;
9382 for(;;) {
9383 var9 = ((short int (*)(val*))(var8->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var8) /* is_ok on <var8:Iterator[nullable Object]>*/;
9384 if(!var9) break;
9385 var10 = ((val* (*)(val*))(var8->class->vft[COLOR_abstract_collection__Iterator__item]))(var8) /* item on <var8:Iterator[nullable Object]>*/;
9386 var_nexpr = var10;
9387 var11 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__expr]))(var_v, var_nexpr, var_mtype) /* expr on <var_v:AbstractCompilerVisitor>*/;
9388 var_i = var11;
9389 ((void (*)(val*, val*))(var_array->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_array, var_i) /* add on <var_array:Array[RuntimeVariable]>*/;
9390 CONTINUE_label: (void)0;
9391 ((void (*)(val*))(var8->class->vft[COLOR_abstract_collection__Iterator__next]))(var8) /* next on <var8:Iterator[nullable Object]>*/;
9392 }
9393 BREAK_label: (void)0;
9394 var12 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__array_instance]))(var_v, var_array, var_mtype) /* array_instance on <var_v:AbstractCompilerVisitor>*/;
9395 var = var12;
9396 goto RET_LABEL;
9397 RET_LABEL:;
9398 return var;
9399 }
9400 /* method abstract_compiler#AArrayExpr#expr for (self: Object, AbstractCompilerVisitor): nullable RuntimeVariable */
9401 val* VIRTUAL_abstract_compiler__AArrayExpr__expr(val* self, val* p0) {
9402 val* var /* : nullable RuntimeVariable */;
9403 val* var1 /* : nullable RuntimeVariable */;
9404 var1 = abstract_compiler__AArrayExpr__expr(self, p0);
9405 var = var1;
9406 RET_LABEL:;
9407 return var;
9408 }
9409 /* method abstract_compiler#AStringFormExpr#expr for (self: AStringFormExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
9410 val* abstract_compiler__AStringFormExpr__expr(val* self, val* p0) {
9411 val* var /* : nullable RuntimeVariable */;
9412 val* var_v /* var v: AbstractCompilerVisitor */;
9413 val* var1 /* : nullable String */;
9414 val* var2 /* : RuntimeVariable */;
9415 var_v = p0;
9416 var1 = ((val* (*)(val*))(self->class->vft[COLOR_literal__AStringFormExpr__value]))(self) /* value on <self:AStringFormExpr>*/;
9417 if (var1 == NULL) {
9418 fprintf(stderr, "Runtime error: %s", "Cast failed");
9419 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2348);
9420 show_backtrace(1);
9421 }
9422 var2 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__string_instance]))(var_v, var1) /* string_instance on <var_v:AbstractCompilerVisitor>*/;
9423 var = var2;
9424 goto RET_LABEL;
9425 RET_LABEL:;
9426 return var;
9427 }
9428 /* method abstract_compiler#AStringFormExpr#expr for (self: Object, AbstractCompilerVisitor): nullable RuntimeVariable */
9429 val* VIRTUAL_abstract_compiler__AStringFormExpr__expr(val* self, val* p0) {
9430 val* var /* : nullable RuntimeVariable */;
9431 val* var1 /* : nullable RuntimeVariable */;
9432 var1 = abstract_compiler__AStringFormExpr__expr(self, p0);
9433 var = var1;
9434 RET_LABEL:;
9435 return var;
9436 }
9437 /* method abstract_compiler#ASuperstringExpr#expr for (self: ASuperstringExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
9438 val* abstract_compiler__ASuperstringExpr__expr(val* self, val* p0) {
9439 val* var /* : nullable RuntimeVariable */;
9440 val* var_v /* var v: AbstractCompilerVisitor */;
9441 val* var1 /* : Array[RuntimeVariable] */;
9442 val* var_array /* var array: Array[RuntimeVariable] */;
9443 val* var2 /* : ANodes[AExpr] */;
9444 val* var3 /* : Iterator[nullable Object] */;
9445 short int var4 /* : Bool */;
9446 val* var5 /* : nullable Object */;
9447 val* var_ne /* var ne: AExpr */;
9448 short int var6 /* : Bool */;
9449 short int var7 /* : Bool */;
9450 int cltype;
9451 int idtype;
9452 short int var_ /* var : Bool */;
9453 val* var8 /* : nullable String */;
9454 static val* varonce;
9455 val* var9 /* : String */;
9456 char* var10 /* : NativeString */;
9457 long var11 /* : Int */;
9458 val* var12 /* : String */;
9459 short int var13 /* : Bool */;
9460 val* var14 /* : null */;
9461 val* var15 /* : RuntimeVariable */;
9462 val* var_i /* var i: RuntimeVariable */;
9463 val* var16 /* : MClassType */;
9464 val* var17 /* : RuntimeVariable */;
9465 val* var_a /* var a: RuntimeVariable */;
9466 static val* varonce18;
9467 val* var19 /* : String */;
9468 char* var20 /* : NativeString */;
9469 long var21 /* : Int */;
9470 val* var22 /* : String */;
9471 val* var23 /* : MType */;
9472 val* var24 /* : MMethod */;
9473 val* var25 /* : Array[RuntimeVariable] */;
9474 long var26 /* : Int */;
9475 val* var27 /* : NativeArray[RuntimeVariable] */;
9476 val* var28 /* : nullable RuntimeVariable */;
9477 val* var_res /* var res: nullable RuntimeVariable */;
9478 var_v = p0;
9479 var1 = NEW_array__Array(&type_array__Arrayabstract_compiler__RuntimeVariable);
9480 ((void (*)(val*))(var1->class->vft[COLOR_array__Array__init]))(var1) /* init on <var1:Array[RuntimeVariable]>*/;
9481 var_array = var1;
9482 var2 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ASuperstringExpr__n_exprs]))(self) /* n_exprs on <self:ASuperstringExpr>*/;
9483 var3 = ((val* (*)(val*))(var2->class->vft[COLOR_abstract_collection__Collection__iterator]))(var2) /* iterator on <var2:ANodes[AExpr]>*/;
9484 for(;;) {
9485 var4 = ((short int (*)(val*))(var3->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var3) /* is_ok on <var3:Iterator[nullable Object]>*/;
9486 if(!var4) break;
9487 var5 = ((val* (*)(val*))(var3->class->vft[COLOR_abstract_collection__Iterator__item]))(var3) /* item on <var3:Iterator[nullable Object]>*/;
9488 var_ne = var5;
9489 /* <var_ne:AExpr> isa AStringFormExpr */
9490 cltype = type_parser_nodes__AStringFormExpr.color;
9491 idtype = type_parser_nodes__AStringFormExpr.id;
9492 if(cltype >= var_ne->type->table_size) {
9493 var7 = 0;
9494 } else {
9495 var7 = var_ne->type->type_table[cltype] == idtype;
9496 }
9497 var_ = var7;
9498 if (var7){
9499 var8 = ((val* (*)(val*))(var_ne->class->vft[COLOR_literal__AStringFormExpr__value]))(var_ne) /* value on <var_ne:AExpr(AStringFormExpr)>*/;
9500 if (varonce) {
9501 var9 = varonce;
9502 } else {
9503 var10 = "";
9504 var11 = 0;
9505 var12 = string__NativeString__to_s_with_length(var10, var11);
9506 var9 = var12;
9507 varonce = var9;
9508 }
9509 if (var8 == NULL) {
9510 var13 = 0; /* <var9:String> cannot be null */
9511 } else {
9512 var13 = ((short int (*)(val*, val*))(var8->class->vft[COLOR_kernel__Object___61d_61d]))(var8, var9) /* == on <var8:nullable String>*/;
9513 }
9514 var6 = var13;
9515 } else {
9516 var6 = var_;
9517 }
9518 if (var6){
9519 goto CONTINUE_label;
9520 } else {
9521 }
9522 var14 = NULL;
9523 var15 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__expr]))(var_v, var_ne, var14) /* expr on <var_v:AbstractCompilerVisitor>*/;
9524 var_i = var15;
9525 ((void (*)(val*, val*))(var_array->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_array, var_i) /* add on <var_array:Array[RuntimeVariable]>*/;
9526 CONTINUE_label: (void)0;
9527 ((void (*)(val*))(var3->class->vft[COLOR_abstract_collection__Iterator__next]))(var3) /* next on <var3:Iterator[nullable Object]>*/;
9528 }
9529 BREAK_label: (void)0;
9530 var16 = ((val* (*)(val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__object_type]))(var_v) /* object_type on <var_v:AbstractCompilerVisitor>*/;
9531 var17 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__array_instance]))(var_v, var_array, var16) /* array_instance on <var_v:AbstractCompilerVisitor>*/;
9532 var_a = var17;
9533 if (varonce18) {
9534 var19 = varonce18;
9535 } else {
9536 var20 = "to_s";
9537 var21 = 4;
9538 var22 = string__NativeString__to_s_with_length(var20, var21);
9539 var19 = var22;
9540 varonce18 = var19;
9541 }
9542 var23 = ((val* (*)(val*))(var_a->class->vft[COLOR_abstract_compiler__RuntimeVariable__mtype]))(var_a) /* mtype on <var_a:RuntimeVariable>*/;
9543 var24 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__get_property]))(var_v, var19, var23) /* get_property on <var_v:AbstractCompilerVisitor>*/;
9544 var25 = NEW_array__Array(&type_array__Arrayabstract_compiler__RuntimeVariable);
9545 { /* var25 = array_instance Array[RuntimeVariable] */
9546 var26 = 1;
9547 var27 = NEW_array__NativeArray(var26, &type_array__NativeArrayabstract_compiler__RuntimeVariable);
9548 ((struct instance_array__NativeArray*)var27)->values[0] = (val*) var_a;
9549 ((void (*)(val*, val*, long))(var25->class->vft[COLOR_array__Array__with_native]))(var25, var27, var26) /* with_native on <var25:Array[RuntimeVariable]>*/;
9550 }
9551 var28 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__send]))(var_v, var24, var25) /* send on <var_v:AbstractCompilerVisitor>*/;
9552 var_res = var28;
9553 var = var_res;
9554 goto RET_LABEL;
9555 RET_LABEL:;
9556 return var;
9557 }
9558 /* method abstract_compiler#ASuperstringExpr#expr for (self: Object, AbstractCompilerVisitor): nullable RuntimeVariable */
9559 val* VIRTUAL_abstract_compiler__ASuperstringExpr__expr(val* self, val* p0) {
9560 val* var /* : nullable RuntimeVariable */;
9561 val* var1 /* : nullable RuntimeVariable */;
9562 var1 = abstract_compiler__ASuperstringExpr__expr(self, p0);
9563 var = var1;
9564 RET_LABEL:;
9565 return var;
9566 }
9567 /* method abstract_compiler#ACrangeExpr#expr for (self: ACrangeExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
9568 val* abstract_compiler__ACrangeExpr__expr(val* self, val* p0) {
9569 val* var /* : nullable RuntimeVariable */;
9570 val* var_v /* var v: AbstractCompilerVisitor */;
9571 val* var1 /* : AExpr */;
9572 val* var2 /* : null */;
9573 val* var3 /* : RuntimeVariable */;
9574 val* var_i1 /* var i1: RuntimeVariable */;
9575 val* var4 /* : AExpr */;
9576 val* var5 /* : null */;
9577 val* var6 /* : RuntimeVariable */;
9578 val* var_i2 /* var i2: RuntimeVariable */;
9579 val* var7 /* : nullable MType */;
9580 short int var8 /* : Bool */;
9581 int cltype;
9582 int idtype;
9583 const char* var_class_name;
9584 val* var_mtype /* var mtype: MClassType */;
9585 val* var9 /* : RuntimeVariable */;
9586 val* var_res /* var res: RuntimeVariable */;
9587 static val* varonce;
9588 val* var10 /* : String */;
9589 char* var11 /* : NativeString */;
9590 long var12 /* : Int */;
9591 val* var13 /* : String */;
9592 val* var14 /* : MType */;
9593 val* var15 /* : MMethod */;
9594 val* var16 /* : Array[RuntimeVariable] */;
9595 long var17 /* : Int */;
9596 val* var18 /* : NativeArray[RuntimeVariable] */;
9597 val* var19 /* : nullable RuntimeVariable */;
9598 val* var_it /* var it: nullable RuntimeVariable */;
9599 var_v = p0;
9600 var1 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ARangeExpr__n_expr]))(self) /* n_expr on <self:ACrangeExpr>*/;
9601 var2 = NULL;
9602 var3 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__expr]))(var_v, var1, var2) /* expr on <var_v:AbstractCompilerVisitor>*/;
9603 var_i1 = var3;
9604 var4 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ARangeExpr__n_expr2]))(self) /* n_expr2 on <self:ACrangeExpr>*/;
9605 var5 = NULL;
9606 var6 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__expr]))(var_v, var4, var5) /* expr on <var_v:AbstractCompilerVisitor>*/;
9607 var_i2 = var6;
9608 var7 = ((val* (*)(val*))(self->class->vft[COLOR_typing__AExpr__mtype]))(self) /* mtype on <self:ACrangeExpr>*/;
9609 /* <var7:nullable MType> isa MClassType */
9610 cltype = type_model__MClassType.color;
9611 idtype = type_model__MClassType.id;
9612 if(var7 == NULL) {
9613 var8 = 0;
9614 } else {
9615 if(cltype >= var7->type->table_size) {
9616 var8 = 0;
9617 } else {
9618 var8 = var7->type->type_table[cltype] == idtype;
9619 }
9620 }
9621 if (!var8) {
9622 var_class_name = var7 == NULL ? "null" : var7->type->name;
9623 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name);
9624 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2371);
9625 show_backtrace(1);
9626 }
9627 var_mtype = var7;
9628 var9 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__init_instance]))(var_v, var_mtype) /* init_instance on <var_v:AbstractCompilerVisitor>*/;
9629 var_res = var9;
9630 if (varonce) {
9631 var10 = varonce;
9632 } else {
9633 var11 = "init";
9634 var12 = 4;
9635 var13 = string__NativeString__to_s_with_length(var11, var12);
9636 var10 = var13;
9637 varonce = var10;
9638 }
9639 var14 = ((val* (*)(val*))(var_res->class->vft[COLOR_abstract_compiler__RuntimeVariable__mtype]))(var_res) /* mtype on <var_res:RuntimeVariable>*/;
9640 var15 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__get_property]))(var_v, var10, var14) /* get_property on <var_v:AbstractCompilerVisitor>*/;
9641 var16 = NEW_array__Array(&type_array__Arrayabstract_compiler__RuntimeVariable);
9642 { /* var16 = array_instance Array[RuntimeVariable] */
9643 var17 = 3;
9644 var18 = NEW_array__NativeArray(var17, &type_array__NativeArrayabstract_compiler__RuntimeVariable);
9645 ((struct instance_array__NativeArray*)var18)->values[0] = (val*) var_res;
9646 ((struct instance_array__NativeArray*)var18)->values[1] = (val*) var_i1;
9647 ((struct instance_array__NativeArray*)var18)->values[2] = (val*) var_i2;
9648 ((void (*)(val*, val*, long))(var16->class->vft[COLOR_array__Array__with_native]))(var16, var18, var17) /* with_native on <var16:Array[RuntimeVariable]>*/;
9649 }
9650 var19 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__send]))(var_v, var15, var16) /* send on <var_v:AbstractCompilerVisitor>*/;
9651 var_it = var19;
9652 var = var_res;
9653 goto RET_LABEL;
9654 RET_LABEL:;
9655 return var;
9656 }
9657 /* method abstract_compiler#ACrangeExpr#expr for (self: Object, AbstractCompilerVisitor): nullable RuntimeVariable */
9658 val* VIRTUAL_abstract_compiler__ACrangeExpr__expr(val* self, val* p0) {
9659 val* var /* : nullable RuntimeVariable */;
9660 val* var1 /* : nullable RuntimeVariable */;
9661 var1 = abstract_compiler__ACrangeExpr__expr(self, p0);
9662 var = var1;
9663 RET_LABEL:;
9664 return var;
9665 }
9666 /* method abstract_compiler#AOrangeExpr#expr for (self: AOrangeExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
9667 val* abstract_compiler__AOrangeExpr__expr(val* self, val* p0) {
9668 val* var /* : nullable RuntimeVariable */;
9669 val* var_v /* var v: AbstractCompilerVisitor */;
9670 val* var1 /* : AExpr */;
9671 val* var2 /* : null */;
9672 val* var3 /* : RuntimeVariable */;
9673 val* var_i1 /* var i1: RuntimeVariable */;
9674 val* var4 /* : AExpr */;
9675 val* var5 /* : null */;
9676 val* var6 /* : RuntimeVariable */;
9677 val* var_i2 /* var i2: RuntimeVariable */;
9678 val* var7 /* : nullable MType */;
9679 short int var8 /* : Bool */;
9680 int cltype;
9681 int idtype;
9682 const char* var_class_name;
9683 val* var_mtype /* var mtype: MClassType */;
9684 val* var9 /* : RuntimeVariable */;
9685 val* var_res /* var res: RuntimeVariable */;
9686 static val* varonce;
9687 val* var10 /* : String */;
9688 char* var11 /* : NativeString */;
9689 long var12 /* : Int */;
9690 val* var13 /* : String */;
9691 val* var14 /* : MType */;
9692 val* var15 /* : MMethod */;
9693 val* var16 /* : Array[RuntimeVariable] */;
9694 long var17 /* : Int */;
9695 val* var18 /* : NativeArray[RuntimeVariable] */;
9696 val* var19 /* : nullable RuntimeVariable */;
9697 val* var_it /* var it: nullable RuntimeVariable */;
9698 var_v = p0;
9699 var1 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ARangeExpr__n_expr]))(self) /* n_expr on <self:AOrangeExpr>*/;
9700 var2 = NULL;
9701 var3 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__expr]))(var_v, var1, var2) /* expr on <var_v:AbstractCompilerVisitor>*/;
9702 var_i1 = var3;
9703 var4 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ARangeExpr__n_expr2]))(self) /* n_expr2 on <self:AOrangeExpr>*/;
9704 var5 = NULL;
9705 var6 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__expr]))(var_v, var4, var5) /* expr on <var_v:AbstractCompilerVisitor>*/;
9706 var_i2 = var6;
9707 var7 = ((val* (*)(val*))(self->class->vft[COLOR_typing__AExpr__mtype]))(self) /* mtype on <self:AOrangeExpr>*/;
9708 /* <var7:nullable MType> isa MClassType */
9709 cltype = type_model__MClassType.color;
9710 idtype = type_model__MClassType.id;
9711 if(var7 == NULL) {
9712 var8 = 0;
9713 } else {
9714 if(cltype >= var7->type->table_size) {
9715 var8 = 0;
9716 } else {
9717 var8 = var7->type->type_table[cltype] == idtype;
9718 }
9719 }
9720 if (!var8) {
9721 var_class_name = var7 == NULL ? "null" : var7->type->name;
9722 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name);
9723 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2383);
9724 show_backtrace(1);
9725 }
9726 var_mtype = var7;
9727 var9 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__init_instance]))(var_v, var_mtype) /* init_instance on <var_v:AbstractCompilerVisitor>*/;
9728 var_res = var9;
9729 if (varonce) {
9730 var10 = varonce;
9731 } else {
9732 var11 = "without_last";
9733 var12 = 12;
9734 var13 = string__NativeString__to_s_with_length(var11, var12);
9735 var10 = var13;
9736 varonce = var10;
9737 }
9738 var14 = ((val* (*)(val*))(var_res->class->vft[COLOR_abstract_compiler__RuntimeVariable__mtype]))(var_res) /* mtype on <var_res:RuntimeVariable>*/;
9739 var15 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__get_property]))(var_v, var10, var14) /* get_property on <var_v:AbstractCompilerVisitor>*/;
9740 var16 = NEW_array__Array(&type_array__Arrayabstract_compiler__RuntimeVariable);
9741 { /* var16 = array_instance Array[RuntimeVariable] */
9742 var17 = 3;
9743 var18 = NEW_array__NativeArray(var17, &type_array__NativeArrayabstract_compiler__RuntimeVariable);
9744 ((struct instance_array__NativeArray*)var18)->values[0] = (val*) var_res;
9745 ((struct instance_array__NativeArray*)var18)->values[1] = (val*) var_i1;
9746 ((struct instance_array__NativeArray*)var18)->values[2] = (val*) var_i2;
9747 ((void (*)(val*, val*, long))(var16->class->vft[COLOR_array__Array__with_native]))(var16, var18, var17) /* with_native on <var16:Array[RuntimeVariable]>*/;
9748 }
9749 var19 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__send]))(var_v, var15, var16) /* send on <var_v:AbstractCompilerVisitor>*/;
9750 var_it = var19;
9751 var = var_res;
9752 goto RET_LABEL;
9753 RET_LABEL:;
9754 return var;
9755 }
9756 /* method abstract_compiler#AOrangeExpr#expr for (self: Object, AbstractCompilerVisitor): nullable RuntimeVariable */
9757 val* VIRTUAL_abstract_compiler__AOrangeExpr__expr(val* self, val* p0) {
9758 val* var /* : nullable RuntimeVariable */;
9759 val* var1 /* : nullable RuntimeVariable */;
9760 var1 = abstract_compiler__AOrangeExpr__expr(self, p0);
9761 var = var1;
9762 RET_LABEL:;
9763 return var;
9764 }
9765 /* method abstract_compiler#ATrueExpr#expr for (self: ATrueExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
9766 val* abstract_compiler__ATrueExpr__expr(val* self, val* p0) {
9767 val* var /* : nullable RuntimeVariable */;
9768 val* var_v /* var v: AbstractCompilerVisitor */;
9769 static val* varonce;
9770 val* var1 /* : String */;
9771 char* var2 /* : NativeString */;
9772 long var3 /* : Int */;
9773 val* var4 /* : String */;
9774 val* var5 /* : nullable MType */;
9775 val* var6 /* : RuntimeVariable */;
9776 var_v = p0;
9777 if (varonce) {
9778 var1 = varonce;
9779 } else {
9780 var2 = "1";
9781 var3 = 1;
9782 var4 = string__NativeString__to_s_with_length(var2, var3);
9783 var1 = var4;
9784 varonce = var1;
9785 }
9786 var5 = ((val* (*)(val*))(self->class->vft[COLOR_typing__AExpr__mtype]))(self) /* mtype on <self:ATrueExpr>*/;
9787 if (var5 == NULL) {
9788 fprintf(stderr, "Runtime error: %s", "Cast failed");
9789 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2391);
9790 show_backtrace(1);
9791 }
9792 var6 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var1, var5) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
9793 var = var6;
9794 goto RET_LABEL;
9795 RET_LABEL:;
9796 return var;
9797 }
9798 /* method abstract_compiler#ATrueExpr#expr for (self: Object, AbstractCompilerVisitor): nullable RuntimeVariable */
9799 val* VIRTUAL_abstract_compiler__ATrueExpr__expr(val* self, val* p0) {
9800 val* var /* : nullable RuntimeVariable */;
9801 val* var1 /* : nullable RuntimeVariable */;
9802 var1 = abstract_compiler__ATrueExpr__expr(self, p0);
9803 var = var1;
9804 RET_LABEL:;
9805 return var;
9806 }
9807 /* method abstract_compiler#AFalseExpr#expr for (self: AFalseExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
9808 val* abstract_compiler__AFalseExpr__expr(val* self, val* p0) {
9809 val* var /* : nullable RuntimeVariable */;
9810 val* var_v /* var v: AbstractCompilerVisitor */;
9811 static val* varonce;
9812 val* var1 /* : String */;
9813 char* var2 /* : NativeString */;
9814 long var3 /* : Int */;
9815 val* var4 /* : String */;
9816 val* var5 /* : nullable MType */;
9817 val* var6 /* : RuntimeVariable */;
9818 var_v = p0;
9819 if (varonce) {
9820 var1 = varonce;
9821 } else {
9822 var2 = "0";
9823 var3 = 1;
9824 var4 = string__NativeString__to_s_with_length(var2, var3);
9825 var1 = var4;
9826 varonce = var1;
9827 }
9828 var5 = ((val* (*)(val*))(self->class->vft[COLOR_typing__AExpr__mtype]))(self) /* mtype on <self:AFalseExpr>*/;
9829 if (var5 == NULL) {
9830 fprintf(stderr, "Runtime error: %s", "Cast failed");
9831 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2395);
9832 show_backtrace(1);
9833 }
9834 var6 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var1, var5) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
9835 var = var6;
9836 goto RET_LABEL;
9837 RET_LABEL:;
9838 return var;
9839 }
9840 /* method abstract_compiler#AFalseExpr#expr for (self: Object, AbstractCompilerVisitor): nullable RuntimeVariable */
9841 val* VIRTUAL_abstract_compiler__AFalseExpr__expr(val* self, val* p0) {
9842 val* var /* : nullable RuntimeVariable */;
9843 val* var1 /* : nullable RuntimeVariable */;
9844 var1 = abstract_compiler__AFalseExpr__expr(self, p0);
9845 var = var1;
9846 RET_LABEL:;
9847 return var;
9848 }
9849 /* method abstract_compiler#ANullExpr#expr for (self: ANullExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
9850 val* abstract_compiler__ANullExpr__expr(val* self, val* p0) {
9851 val* var /* : nullable RuntimeVariable */;
9852 val* var_v /* var v: AbstractCompilerVisitor */;
9853 static val* varonce;
9854 val* var1 /* : String */;
9855 char* var2 /* : NativeString */;
9856 long var3 /* : Int */;
9857 val* var4 /* : String */;
9858 val* var5 /* : nullable MType */;
9859 val* var6 /* : RuntimeVariable */;
9860 var_v = p0;
9861 if (varonce) {
9862 var1 = varonce;
9863 } else {
9864 var2 = "NULL";
9865 var3 = 4;
9866 var4 = string__NativeString__to_s_with_length(var2, var3);
9867 var1 = var4;
9868 varonce = var1;
9869 }
9870 var5 = ((val* (*)(val*))(self->class->vft[COLOR_typing__AExpr__mtype]))(self) /* mtype on <self:ANullExpr>*/;
9871 if (var5 == NULL) {
9872 fprintf(stderr, "Runtime error: %s", "Cast failed");
9873 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2399);
9874 show_backtrace(1);
9875 }
9876 var6 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var1, var5) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
9877 var = var6;
9878 goto RET_LABEL;
9879 RET_LABEL:;
9880 return var;
9881 }
9882 /* method abstract_compiler#ANullExpr#expr for (self: Object, AbstractCompilerVisitor): nullable RuntimeVariable */
9883 val* VIRTUAL_abstract_compiler__ANullExpr__expr(val* self, val* p0) {
9884 val* var /* : nullable RuntimeVariable */;
9885 val* var1 /* : nullable RuntimeVariable */;
9886 var1 = abstract_compiler__ANullExpr__expr(self, p0);
9887 var = var1;
9888 RET_LABEL:;
9889 return var;
9890 }
9891 /* method abstract_compiler#AIsaExpr#expr for (self: AIsaExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
9892 val* abstract_compiler__AIsaExpr__expr(val* self, val* p0) {
9893 val* var /* : nullable RuntimeVariable */;
9894 val* var_v /* var v: AbstractCompilerVisitor */;
9895 val* var1 /* : AExpr */;
9896 val* var2 /* : null */;
9897 val* var3 /* : RuntimeVariable */;
9898 val* var_i /* var i: RuntimeVariable */;
9899 val* var4 /* : nullable MType */;
9900 static val* varonce;
9901 val* var5 /* : String */;
9902 char* var6 /* : NativeString */;
9903 long var7 /* : Int */;
9904 val* var8 /* : String */;
9905 val* var9 /* : RuntimeVariable */;
9906 var_v = p0;
9907 var1 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AIsaExpr__n_expr]))(self) /* n_expr on <self:AIsaExpr>*/;
9908 var2 = NULL;
9909 var3 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__expr]))(var_v, var1, var2) /* expr on <var_v:AbstractCompilerVisitor>*/;
9910 var_i = var3;
9911 var4 = ((val* (*)(val*))(self->class->vft[COLOR_typing__AIsaExpr__cast_type]))(self) /* cast_type on <self:AIsaExpr>*/;
9912 if (var4 == NULL) {
9913 fprintf(stderr, "Runtime error: %s", "Cast failed");
9914 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2406);
9915 show_backtrace(1);
9916 }
9917 if (varonce) {
9918 var5 = varonce;
9919 } else {
9920 var6 = "isa";
9921 var7 = 3;
9922 var8 = string__NativeString__to_s_with_length(var6, var7);
9923 var5 = var8;
9924 varonce = var5;
9925 }
9926 var9 = ((val* (*)(val*, val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__type_test]))(var_v, var_i, var4, var5) /* type_test on <var_v:AbstractCompilerVisitor>*/;
9927 var = var9;
9928 goto RET_LABEL;
9929 RET_LABEL:;
9930 return var;
9931 }
9932 /* method abstract_compiler#AIsaExpr#expr for (self: Object, AbstractCompilerVisitor): nullable RuntimeVariable */
9933 val* VIRTUAL_abstract_compiler__AIsaExpr__expr(val* self, val* p0) {
9934 val* var /* : nullable RuntimeVariable */;
9935 val* var1 /* : nullable RuntimeVariable */;
9936 var1 = abstract_compiler__AIsaExpr__expr(self, p0);
9937 var = var1;
9938 RET_LABEL:;
9939 return var;
9940 }
9941 /* method abstract_compiler#AAsCastExpr#expr for (self: AAsCastExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
9942 val* abstract_compiler__AAsCastExpr__expr(val* self, val* p0) {
9943 val* var /* : nullable RuntimeVariable */;
9944 val* var_v /* var v: AbstractCompilerVisitor */;
9945 val* var1 /* : AExpr */;
9946 val* var2 /* : null */;
9947 val* var3 /* : RuntimeVariable */;
9948 val* var_i /* var i: RuntimeVariable */;
9949 val* var4 /* : AbstractCompiler */;
9950 val* var5 /* : ModelBuilder */;
9951 val* var6 /* : ToolContext */;
9952 val* var7 /* : OptionBool */;
9953 val* var8 /* : nullable Object */;
9954 short int var9 /* : Bool */;
9955 val* var10 /* : nullable MType */;
9956 static val* varonce;
9957 val* var11 /* : String */;
9958 char* var12 /* : NativeString */;
9959 long var13 /* : Int */;
9960 val* var14 /* : String */;
9961 var_v = p0;
9962 var1 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAsCastExpr__n_expr]))(self) /* n_expr on <self:AAsCastExpr>*/;
9963 var2 = NULL;
9964 var3 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__expr]))(var_v, var1, var2) /* expr on <var_v:AbstractCompilerVisitor>*/;
9965 var_i = var3;
9966 var4 = ((val* (*)(val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler]))(var_v) /* compiler on <var_v:AbstractCompilerVisitor>*/;
9967 var5 = ((val* (*)(val*))(var4->class->vft[COLOR_abstract_compiler__AbstractCompiler__modelbuilder]))(var4) /* modelbuilder on <var4:AbstractCompiler>*/;
9968 var6 = ((val* (*)(val*))(var5->class->vft[COLOR_modelbuilder__ModelBuilder__toolcontext]))(var5) /* toolcontext on <var5:ModelBuilder>*/;
9969 var7 = ((val* (*)(val*))(var6->class->vft[COLOR_abstract_compiler__ToolContext__opt_no_check_assert]))(var6) /* opt_no_check_assert on <var6:ToolContext>*/;
9970 var8 = ((val* (*)(val*))(var7->class->vft[COLOR_opts__Option__value]))(var7) /* value on <var7:OptionBool>*/;
9971 var9 = ((struct instance_kernel__Bool*)var8)->value; /* autounbox from nullable Object to Bool */;
9972 if (var9){
9973 var = var_i;
9974 goto RET_LABEL;
9975 } else {
9976 }
9977 var10 = ((val* (*)(val*))(self->class->vft[COLOR_typing__AExpr__mtype]))(self) /* mtype on <self:AAsCastExpr>*/;
9978 if (var10 == NULL) {
9979 fprintf(stderr, "Runtime error: %s", "Cast failed");
9980 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2416);
9981 show_backtrace(1);
9982 }
9983 if (varonce) {
9984 var11 = varonce;
9985 } else {
9986 var12 = "as";
9987 var13 = 2;
9988 var14 = string__NativeString__to_s_with_length(var12, var13);
9989 var11 = var14;
9990 varonce = var11;
9991 }
9992 ((void (*)(val*, val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add_cast]))(var_v, var_i, var10, var11) /* add_cast on <var_v:AbstractCompilerVisitor>*/;
9993 var = var_i;
9994 goto RET_LABEL;
9995 RET_LABEL:;
9996 return var;
9997 }