nitc: fix calling extern constructors from extern code in separate compiler
[nit.git] / c_src / string.sep.2.c
1 #include "string.sep.0.h"
2 /* method string#FlatBufferIterator#index for (self: FlatBufferIterator): Int */
3 long string__FlatBufferIterator__index(val* self) {
4 long var /* : Int */;
5 long var1 /* : Int */;
6 long var3 /* : Int */;
7 {
8 { /* Inline string#FlatBufferIterator#curr_pos (self) on <self:FlatBufferIterator> */
9 var3 = self->attrs[COLOR_string__FlatBufferIterator___curr_pos].l; /* _curr_pos on <self:FlatBufferIterator> */
10 var1 = var3;
11 RET_LABEL2:(void)0;
12 }
13 }
14 var = var1;
15 goto RET_LABEL;
16 RET_LABEL:;
17 return var;
18 }
19 /* method string#FlatBufferIterator#index for (self: Object): Int */
20 long VIRTUAL_string__FlatBufferIterator__index(val* self) {
21 long var /* : Int */;
22 long var1 /* : Int */;
23 var1 = string__FlatBufferIterator__index(self);
24 var = var1;
25 RET_LABEL:;
26 return var;
27 }
28 /* method string#FlatBufferIterator#is_ok for (self: FlatBufferIterator): Bool */
29 short int string__FlatBufferIterator__is_ok(val* self) {
30 short int var /* : Bool */;
31 long var1 /* : Int */;
32 long var3 /* : Int */;
33 val* var4 /* : FlatBuffer */;
34 val* var6 /* : FlatBuffer */;
35 long var7 /* : Int */;
36 long var9 /* : Int */;
37 short int var10 /* : Bool */;
38 short int var12 /* : Bool */;
39 int cltype;
40 int idtype;
41 const char* var_class_name;
42 short int var13 /* : Bool */;
43 {
44 { /* Inline string#FlatBufferIterator#curr_pos (self) on <self:FlatBufferIterator> */
45 var3 = self->attrs[COLOR_string__FlatBufferIterator___curr_pos].l; /* _curr_pos on <self:FlatBufferIterator> */
46 var1 = var3;
47 RET_LABEL2:(void)0;
48 }
49 }
50 {
51 { /* Inline string#FlatBufferIterator#target (self) on <self:FlatBufferIterator> */
52 var6 = self->attrs[COLOR_string__FlatBufferIterator___target].val; /* _target on <self:FlatBufferIterator> */
53 if (unlikely(var6 == NULL)) {
54 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target");
55 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 1693);
56 show_backtrace(1);
57 }
58 var4 = var6;
59 RET_LABEL5:(void)0;
60 }
61 }
62 {
63 { /* Inline string#FlatText#length (var4) on <var4:FlatBuffer> */
64 var9 = var4->attrs[COLOR_string__FlatText___length].l; /* _length on <var4:FlatBuffer> */
65 var7 = var9;
66 RET_LABEL8:(void)0;
67 }
68 }
69 {
70 { /* Inline kernel#Int#< (var1,var7) on <var1:Int> */
71 /* Covariant cast for argument 0 (i) <var7:Int> isa OTHER */
72 /* <var7:Int> isa OTHER */
73 var12 = 1; /* easy <var7:Int> isa OTHER*/
74 if (unlikely(!var12)) {
75 var_class_name = type_kernel__Int.name;
76 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
77 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371);
78 show_backtrace(1);
79 }
80 var13 = var1 < var7;
81 var10 = var13;
82 goto RET_LABEL11;
83 RET_LABEL11:(void)0;
84 }
85 }
86 var = var10;
87 goto RET_LABEL;
88 RET_LABEL:;
89 return var;
90 }
91 /* method string#FlatBufferIterator#is_ok for (self: Object): Bool */
92 short int VIRTUAL_string__FlatBufferIterator__is_ok(val* self) {
93 short int var /* : Bool */;
94 short int var1 /* : Bool */;
95 var1 = string__FlatBufferIterator__is_ok(self);
96 var = var1;
97 RET_LABEL:;
98 return var;
99 }
100 /* method string#FlatBufferIterator#item for (self: FlatBufferIterator): Char */
101 char string__FlatBufferIterator__item(val* self) {
102 char var /* : Char */;
103 char* var1 /* : NativeString */;
104 char* var3 /* : NativeString */;
105 long var4 /* : Int */;
106 long var6 /* : Int */;
107 char var7 /* : Char */;
108 char var9 /* : Char */;
109 {
110 { /* Inline string#FlatBufferIterator#target_items (self) on <self:FlatBufferIterator> */
111 var3 = self->attrs[COLOR_string__FlatBufferIterator___target_items].str; /* _target_items on <self:FlatBufferIterator> */
112 var1 = var3;
113 RET_LABEL2:(void)0;
114 }
115 }
116 {
117 { /* Inline string#FlatBufferIterator#curr_pos (self) on <self:FlatBufferIterator> */
118 var6 = self->attrs[COLOR_string__FlatBufferIterator___curr_pos].l; /* _curr_pos on <self:FlatBufferIterator> */
119 var4 = var6;
120 RET_LABEL5:(void)0;
121 }
122 }
123 {
124 { /* Inline string#NativeString#[] (var1,var4) on <var1:NativeString> */
125 var9 = var1[var4];
126 var7 = var9;
127 goto RET_LABEL8;
128 RET_LABEL8:(void)0;
129 }
130 }
131 var = var7;
132 goto RET_LABEL;
133 RET_LABEL:;
134 return var;
135 }
136 /* method string#FlatBufferIterator#item for (self: Object): nullable Object */
137 val* VIRTUAL_string__FlatBufferIterator__item(val* self) {
138 val* var /* : nullable Object */;
139 char var1 /* : Char */;
140 val* var2 /* : nullable Object */;
141 var1 = string__FlatBufferIterator__item(self);
142 var2 = BOX_kernel__Char(var1); /* autobox from Char to nullable Object */
143 var = var2;
144 RET_LABEL:;
145 return var;
146 }
147 /* method string#FlatBufferIterator#next for (self: FlatBufferIterator) */
148 void string__FlatBufferIterator__next(val* self) {
149 val* var_ /* var : FlatBufferIterator */;
150 long var /* : Int */;
151 long var2 /* : Int */;
152 long var3 /* : Int */;
153 long var4 /* : Int */;
154 short int var6 /* : Bool */;
155 int cltype;
156 int idtype;
157 const char* var_class_name;
158 long var7 /* : Int */;
159 var_ = self;
160 {
161 { /* Inline string#FlatBufferIterator#curr_pos (var_) on <var_:FlatBufferIterator> */
162 var2 = var_->attrs[COLOR_string__FlatBufferIterator___curr_pos].l; /* _curr_pos on <var_:FlatBufferIterator> */
163 var = var2;
164 RET_LABEL1:(void)0;
165 }
166 }
167 var3 = 1;
168 {
169 { /* Inline kernel#Int#+ (var,var3) on <var:Int> */
170 /* Covariant cast for argument 0 (i) <var3:Int> isa OTHER */
171 /* <var3:Int> isa OTHER */
172 var6 = 1; /* easy <var3:Int> isa OTHER*/
173 if (unlikely(!var6)) {
174 var_class_name = type_kernel__Int.name;
175 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
176 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
177 show_backtrace(1);
178 }
179 var7 = var + var3;
180 var4 = var7;
181 goto RET_LABEL5;
182 RET_LABEL5:(void)0;
183 }
184 }
185 {
186 { /* Inline string#FlatBufferIterator#curr_pos= (var_,var4) on <var_:FlatBufferIterator> */
187 var_->attrs[COLOR_string__FlatBufferIterator___curr_pos].l = var4; /* _curr_pos on <var_:FlatBufferIterator> */
188 RET_LABEL8:(void)0;
189 }
190 }
191 RET_LABEL:;
192 }
193 /* method string#FlatBufferIterator#next for (self: Object) */
194 void VIRTUAL_string__FlatBufferIterator__next(val* self) {
195 string__FlatBufferIterator__next(self); /* Direct call string#FlatBufferIterator#next on <self:Object(FlatBufferIterator)>*/
196 RET_LABEL:;
197 }
198 /* method string#FlatBufferIterator#init for (self: FlatBufferIterator) */
199 void string__FlatBufferIterator__init(val* self) {
200 {
201 ((void (*)(val*))(self->class->vft[COLOR_string__FlatBufferIterator__init]))(self) /* init on <self:FlatBufferIterator>*/;
202 }
203 RET_LABEL:;
204 }
205 /* method string#FlatBufferIterator#init for (self: Object) */
206 void VIRTUAL_string__FlatBufferIterator__init(val* self) {
207 { /* Inline string#FlatBufferIterator#init (self) on <self:Object(FlatBufferIterator)> */
208 {
209 ((void (*)(val*))(self->class->vft[COLOR_string__FlatBufferIterator__init]))(self) /* init on <self:Object(FlatBufferIterator)>*/;
210 }
211 RET_LABEL1:(void)0;
212 }
213 RET_LABEL:;
214 }
215 /* method string#Object#to_s for (self: Object): String */
216 val* string__Object__to_s(val* self) {
217 val* var /* : String */;
218 val* var1 /* : String */;
219 {
220 var1 = ((val* (*)(val*))(self->class->vft[COLOR_string__Object__inspect]))(self) /* inspect on <self:Object>*/;
221 }
222 var = var1;
223 goto RET_LABEL;
224 RET_LABEL:;
225 return var;
226 }
227 /* method string#Object#to_s for (self: Object): String */
228 val* VIRTUAL_string__Object__to_s(val* self) {
229 val* var /* : String */;
230 val* var1 /* : String */;
231 var1 = string__Object__to_s(self);
232 var = var1;
233 RET_LABEL:;
234 return var;
235 }
236 /* method string#Object#native_class_name for (self: Object): NativeString */
237 char* string__Object__native_class_name(val* self) {
238 char* var /* : NativeString */;
239 const char* var_class_name;
240 char* var1 /* : NativeString */;
241 var_class_name = self == NULL ? "null" : self->type->name;
242 var1 = (char*)var_class_name;
243 var = var1;
244 goto RET_LABEL;
245 RET_LABEL:;
246 return var;
247 }
248 /* method string#Object#native_class_name for (self: Object): NativeString */
249 char* VIRTUAL_string__Object__native_class_name(val* self) {
250 char* var /* : NativeString */;
251 char* var1 /* : NativeString */;
252 const char* var_class_name;
253 char* var3 /* : NativeString */;
254 { /* Inline string#Object#native_class_name (self) on <self:Object> */
255 var_class_name = self == NULL ? "null" : self->type->name;
256 var3 = (char*)var_class_name;
257 var1 = var3;
258 goto RET_LABEL2;
259 RET_LABEL2:(void)0;
260 }
261 var = var1;
262 RET_LABEL:;
263 return var;
264 }
265 /* method string#Object#class_name for (self: Object): String */
266 val* string__Object__class_name(val* self) {
267 val* var /* : String */;
268 char* var1 /* : NativeString */;
269 const char* var_class_name;
270 char* var3 /* : NativeString */;
271 val* var4 /* : String */;
272 {
273 { /* Inline string#Object#native_class_name (self) on <self:Object> */
274 var_class_name = self == NULL ? "null" : self->type->name;
275 var3 = (char*)var_class_name;
276 var1 = var3;
277 goto RET_LABEL2;
278 RET_LABEL2:(void)0;
279 }
280 }
281 {
282 var4 = string__NativeString__to_s(var1);
283 }
284 var = var4;
285 goto RET_LABEL;
286 RET_LABEL:;
287 return var;
288 }
289 /* method string#Object#class_name for (self: Object): String */
290 val* VIRTUAL_string__Object__class_name(val* self) {
291 val* var /* : String */;
292 val* var1 /* : String */;
293 var1 = string__Object__class_name(self);
294 var = var1;
295 RET_LABEL:;
296 return var;
297 }
298 /* method string#Object#inspect for (self: Object): String */
299 val* string__Object__inspect(val* self) {
300 val* var /* : String */;
301 static val* varonce;
302 val* var1 /* : String */;
303 char* var2 /* : NativeString */;
304 long var3 /* : Int */;
305 val* var4 /* : FlatString */;
306 val* var5 /* : String */;
307 static val* varonce6;
308 val* var7 /* : String */;
309 char* var8 /* : NativeString */;
310 long var9 /* : Int */;
311 val* var10 /* : FlatString */;
312 val* var11 /* : Array[Object] */;
313 long var12 /* : Int */;
314 val* var13 /* : NativeArray[Object] */;
315 val* var14 /* : String */;
316 if (varonce) {
317 var1 = varonce;
318 } else {
319 var2 = "<";
320 var3 = 1;
321 var4 = string__NativeString__to_s_with_length(var2, var3);
322 var1 = var4;
323 varonce = var1;
324 }
325 {
326 var5 = string__Object__inspect_head(self);
327 }
328 if (varonce6) {
329 var7 = varonce6;
330 } else {
331 var8 = ">";
332 var9 = 1;
333 var10 = string__NativeString__to_s_with_length(var8, var9);
334 var7 = var10;
335 varonce6 = var7;
336 }
337 var11 = NEW_array__Array(&type_array__Arraykernel__Object);
338 { /* var11 = array_instance Array[Object] */
339 var12 = 3;
340 var13 = NEW_array__NativeArray(var12, &type_array__NativeArraykernel__Object);
341 ((struct instance_array__NativeArray*)var13)->values[0] = (val*) var1;
342 ((struct instance_array__NativeArray*)var13)->values[1] = (val*) var5;
343 ((struct instance_array__NativeArray*)var13)->values[2] = (val*) var7;
344 {
345 ((void (*)(val*, val*, long))(var11->class->vft[COLOR_array__Array__with_native]))(var11, var13, var12) /* with_native on <var11:Array[Object]>*/;
346 }
347 }
348 {
349 var14 = ((val* (*)(val*))(var11->class->vft[COLOR_string__Object__to_s]))(var11) /* to_s on <var11:Array[Object]>*/;
350 }
351 var = var14;
352 goto RET_LABEL;
353 RET_LABEL:;
354 return var;
355 }
356 /* method string#Object#inspect for (self: Object): String */
357 val* VIRTUAL_string__Object__inspect(val* self) {
358 val* var /* : String */;
359 val* var1 /* : String */;
360 var1 = string__Object__inspect(self);
361 var = var1;
362 RET_LABEL:;
363 return var;
364 }
365 /* method string#Object#inspect_head for (self: Object): String */
366 val* string__Object__inspect_head(val* self) {
367 val* var /* : String */;
368 val* var1 /* : String */;
369 static val* varonce;
370 val* var2 /* : String */;
371 char* var3 /* : NativeString */;
372 long var4 /* : Int */;
373 val* var5 /* : FlatString */;
374 long var6 /* : Int */;
375 val* var7 /* : String */;
376 val* var8 /* : Array[Object] */;
377 long var9 /* : Int */;
378 val* var10 /* : NativeArray[Object] */;
379 val* var11 /* : String */;
380 {
381 var1 = string__Object__class_name(self);
382 }
383 if (varonce) {
384 var2 = varonce;
385 } else {
386 var3 = ":#";
387 var4 = 2;
388 var5 = string__NativeString__to_s_with_length(var3, var4);
389 var2 = var5;
390 varonce = var2;
391 }
392 {
393 var6 = ((long (*)(val*))(self->class->vft[COLOR_kernel__Object__object_id]))(self) /* object_id on <self:Object>*/;
394 }
395 {
396 var7 = string__Int__to_hex(var6);
397 }
398 var8 = NEW_array__Array(&type_array__Arraykernel__Object);
399 { /* var8 = array_instance Array[Object] */
400 var9 = 3;
401 var10 = NEW_array__NativeArray(var9, &type_array__NativeArraykernel__Object);
402 ((struct instance_array__NativeArray*)var10)->values[0] = (val*) var1;
403 ((struct instance_array__NativeArray*)var10)->values[1] = (val*) var2;
404 ((struct instance_array__NativeArray*)var10)->values[2] = (val*) var7;
405 {
406 ((void (*)(val*, val*, long))(var8->class->vft[COLOR_array__Array__with_native]))(var8, var10, var9) /* with_native on <var8:Array[Object]>*/;
407 }
408 }
409 {
410 var11 = ((val* (*)(val*))(var8->class->vft[COLOR_string__Object__to_s]))(var8) /* to_s on <var8:Array[Object]>*/;
411 }
412 var = var11;
413 goto RET_LABEL;
414 RET_LABEL:;
415 return var;
416 }
417 /* method string#Object#inspect_head for (self: Object): String */
418 val* VIRTUAL_string__Object__inspect_head(val* self) {
419 val* var /* : String */;
420 val* var1 /* : String */;
421 var1 = string__Object__inspect_head(self);
422 var = var1;
423 RET_LABEL:;
424 return var;
425 }
426 /* method string#Object#args for (self: Object): Sequence[String] */
427 val* string__Object__args(val* self) {
428 val* var /* : Sequence[String] */;
429 val* var1 /* : Sys */;
430 val* var3 /* : Sys */;
431 val* var4 /* : Sequence[String] */;
432 {
433 { /* Inline kernel#Object#sys (self) on <self:Object> */
434 var3 = glob_sys;
435 var1 = var3;
436 goto RET_LABEL2;
437 RET_LABEL2:(void)0;
438 }
439 }
440 {
441 var4 = string__Sys__program_args(var1);
442 }
443 var = var4;
444 goto RET_LABEL;
445 RET_LABEL:;
446 return var;
447 }
448 /* method string#Object#args for (self: Object): Sequence[String] */
449 val* VIRTUAL_string__Object__args(val* self) {
450 val* var /* : Sequence[String] */;
451 val* var1 /* : Sequence[String] */;
452 var1 = string__Object__args(self);
453 var = var1;
454 RET_LABEL:;
455 return var;
456 }
457 /* method string#Bool#to_s for (self: Bool): String */
458 val* string__Bool__to_s(short int self) {
459 val* var /* : String */;
460 static val* varonce;
461 static int varonce_guard;
462 val* var1 /* : String */;
463 static val* varonce2;
464 val* var3 /* : String */;
465 char* var4 /* : NativeString */;
466 long var5 /* : Int */;
467 val* var6 /* : FlatString */;
468 static val* varonce7;
469 static int varonce7_guard;
470 val* var8 /* : String */;
471 static val* varonce9;
472 val* var10 /* : String */;
473 char* var11 /* : NativeString */;
474 long var12 /* : Int */;
475 val* var13 /* : FlatString */;
476 if (self){
477 if (varonce_guard) {
478 var1 = varonce;
479 } else {
480 if (varonce2) {
481 var3 = varonce2;
482 } else {
483 var4 = "true";
484 var5 = 4;
485 var6 = string__NativeString__to_s_with_length(var4, var5);
486 var3 = var6;
487 varonce2 = var3;
488 }
489 var1 = var3;
490 varonce = var1;
491 varonce_guard = 1;
492 }
493 var = var1;
494 goto RET_LABEL;
495 } else {
496 if (varonce7_guard) {
497 var8 = varonce7;
498 } else {
499 if (varonce9) {
500 var10 = varonce9;
501 } else {
502 var11 = "false";
503 var12 = 5;
504 var13 = string__NativeString__to_s_with_length(var11, var12);
505 var10 = var13;
506 varonce9 = var10;
507 }
508 var8 = var10;
509 varonce7 = var8;
510 varonce7_guard = 1;
511 }
512 var = var8;
513 goto RET_LABEL;
514 }
515 RET_LABEL:;
516 return var;
517 }
518 /* method string#Bool#to_s for (self: Object): String */
519 val* VIRTUAL_string__Bool__to_s(val* self) {
520 val* var /* : String */;
521 val* var1 /* : String */;
522 short int var2 /* : Bool */;
523 var2 = ((struct instance_kernel__Bool*)self)->value; /* autounbox from Object to Bool */;
524 var1 = string__Bool__to_s(var2);
525 var = var1;
526 RET_LABEL:;
527 return var;
528 }
529 /* method string#Int#strerror_ext for (self: Int): NativeString */
530 char* string__Int__strerror_ext(long self) {
531 char* var /* : NativeString */;
532 char* var1 /* : NativeString */;
533 var1 = string___Int_strerror_ext___impl(self);
534 var = var1;
535 goto RET_LABEL;
536 RET_LABEL:;
537 return var;
538 }
539 /* method string#Int#strerror_ext for (self: Object): NativeString */
540 char* VIRTUAL_string__Int__strerror_ext(val* self) {
541 char* var /* : NativeString */;
542 char* var1 /* : NativeString */;
543 char* var3 /* : NativeString */;
544 long var4 /* : Int */;
545 { /* Inline string#Int#strerror_ext (self) on <self:Object(Int)> */
546 var4 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
547 var3 = string___Int_strerror_ext___impl(var4);
548 var1 = var3;
549 goto RET_LABEL2;
550 RET_LABEL2:(void)0;
551 }
552 var = var1;
553 RET_LABEL:;
554 return var;
555 }
556 /* method string#Int#strerror for (self: Int): String */
557 val* string__Int__strerror(long self) {
558 val* var /* : String */;
559 char* var1 /* : NativeString */;
560 char* var3 /* : NativeString */;
561 val* var4 /* : String */;
562 {
563 { /* Inline string#Int#strerror_ext (self) on <self:Int> */
564 var3 = string___Int_strerror_ext___impl(self);
565 var1 = var3;
566 goto RET_LABEL2;
567 RET_LABEL2:(void)0;
568 }
569 }
570 {
571 var4 = string__NativeString__to_s(var1);
572 }
573 var = var4;
574 goto RET_LABEL;
575 RET_LABEL:;
576 return var;
577 }
578 /* method string#Int#strerror for (self: Object): String */
579 val* VIRTUAL_string__Int__strerror(val* self) {
580 val* var /* : String */;
581 val* var1 /* : String */;
582 long var2 /* : Int */;
583 var2 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
584 var1 = string__Int__strerror(var2);
585 var = var1;
586 RET_LABEL:;
587 return var;
588 }
589 /* method string#Int#fill_buffer for (self: Int, Buffer, Int, Bool) */
590 void string__Int__fill_buffer(long self, val* p0, long p1, short int p2) {
591 val* var_s /* var s: Buffer */;
592 long var_base /* var base: Int */;
593 short int var_signed /* var signed: Bool */;
594 long var /* : Int */;
595 short int var1 /* : Bool */;
596 short int var3 /* : Bool */;
597 int cltype;
598 int idtype;
599 const char* var_class_name;
600 short int var4 /* : Bool */;
601 long var5 /* : Int */;
602 long var7 /* : Int */;
603 long var_n /* var n: Int */;
604 val* var8 /* : Sequence[Char] */;
605 val* var10 /* : Sequence[Char] */;
606 long var11 /* : Int */;
607 char var12 /* : Char */;
608 val* var13 /* : nullable Object */;
609 long var14 /* : Int */;
610 short int var15 /* : Bool */;
611 short int var16 /* : Bool */;
612 short int var18 /* : Bool */;
613 val* var19 /* : Sequence[Char] */;
614 val* var21 /* : Sequence[Char] */;
615 long var22 /* : Int */;
616 char var23 /* : Char */;
617 val* var24 /* : nullable Object */;
618 long var25 /* : Int */;
619 long var26 /* : Int */;
620 long var27 /* : Int */;
621 short int var29 /* : Bool */;
622 int cltype30;
623 int idtype31;
624 const char* var_class_name32;
625 long var33 /* : Int */;
626 long var_pos /* var pos: Int */;
627 short int var34 /* : Bool */;
628 long var35 /* : Int */;
629 short int var36 /* : Bool */;
630 short int var38 /* : Bool */;
631 int cltype39;
632 int idtype40;
633 const char* var_class_name41;
634 short int var42 /* : Bool */;
635 short int var_ /* var : Bool */;
636 long var43 /* : Int */;
637 short int var44 /* : Bool */;
638 short int var46 /* : Bool */;
639 int cltype47;
640 int idtype48;
641 const char* var_class_name49;
642 short int var50 /* : Bool */;
643 val* var51 /* : Sequence[Char] */;
644 val* var53 /* : Sequence[Char] */;
645 long var54 /* : Int */;
646 long var56 /* : Int */;
647 char var57 /* : Char */;
648 val* var58 /* : nullable Object */;
649 long var59 /* : Int */;
650 short int var61 /* : Bool */;
651 int cltype62;
652 int idtype63;
653 const char* var_class_name64;
654 long var65 /* : Int */;
655 long var66 /* : Int */;
656 long var67 /* : Int */;
657 short int var69 /* : Bool */;
658 int cltype70;
659 int idtype71;
660 const char* var_class_name72;
661 long var73 /* : Int */;
662 var_s = p0;
663 var_base = p1;
664 var_signed = p2;
665 var = 0;
666 {
667 { /* Inline kernel#Int#< (self,var) on <self:Int> */
668 /* Covariant cast for argument 0 (i) <var:Int> isa OTHER */
669 /* <var:Int> isa OTHER */
670 var3 = 1; /* easy <var:Int> isa OTHER*/
671 if (unlikely(!var3)) {
672 var_class_name = type_kernel__Int.name;
673 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
674 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371);
675 show_backtrace(1);
676 }
677 var4 = self < var;
678 var1 = var4;
679 goto RET_LABEL2;
680 RET_LABEL2:(void)0;
681 }
682 }
683 if (var1){
684 {
685 { /* Inline kernel#Int#unary - (self) on <self:Int> */
686 var7 = -self;
687 var5 = var7;
688 goto RET_LABEL6;
689 RET_LABEL6:(void)0;
690 }
691 }
692 var_n = var5;
693 {
694 { /* Inline string#FlatBuffer#chars (var_s) on <var_s:Buffer> */
695 var10 = var_s->attrs[COLOR_string__FlatBuffer___chars].val; /* _chars on <var_s:Buffer> */
696 if (unlikely(var10 == NULL)) {
697 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _chars");
698 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 1406);
699 show_backtrace(1);
700 }
701 var8 = var10;
702 RET_LABEL9:(void)0;
703 }
704 }
705 var11 = 0;
706 var12 = '-';
707 {
708 var13 = BOX_kernel__Char(var12); /* autobox from Char to nullable Object */
709 ((void (*)(val*, long, val*))(var8->class->vft[COLOR_abstract_collection__Sequence___91d_93d_61d]))(var8, var11, var13) /* []= on <var8:Sequence[Char]>*/;
710 }
711 } else {
712 var14 = 0;
713 {
714 { /* Inline kernel#Int#== (self,var14) on <self:Int> */
715 var18 = self == var14;
716 var16 = var18;
717 goto RET_LABEL17;
718 RET_LABEL17:(void)0;
719 }
720 var15 = var16;
721 }
722 if (var15){
723 {
724 { /* Inline string#FlatBuffer#chars (var_s) on <var_s:Buffer> */
725 var21 = var_s->attrs[COLOR_string__FlatBuffer___chars].val; /* _chars on <var_s:Buffer> */
726 if (unlikely(var21 == NULL)) {
727 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _chars");
728 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 1406);
729 show_backtrace(1);
730 }
731 var19 = var21;
732 RET_LABEL20:(void)0;
733 }
734 }
735 var22 = 0;
736 var23 = '0';
737 {
738 var24 = BOX_kernel__Char(var23); /* autobox from Char to nullable Object */
739 ((void (*)(val*, long, val*))(var19->class->vft[COLOR_abstract_collection__Sequence___91d_93d_61d]))(var19, var22, var24) /* []= on <var19:Sequence[Char]>*/;
740 }
741 goto RET_LABEL;
742 } else {
743 var_n = self;
744 }
745 }
746 {
747 var25 = kernel__Int__digit_count(self, var_base);
748 }
749 var26 = 1;
750 {
751 { /* Inline kernel#Int#- (var25,var26) on <var25:Int> */
752 /* Covariant cast for argument 0 (i) <var26:Int> isa OTHER */
753 /* <var26:Int> isa OTHER */
754 var29 = 1; /* easy <var26:Int> isa OTHER*/
755 if (unlikely(!var29)) {
756 var_class_name32 = type_kernel__Int.name;
757 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name32);
758 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377);
759 show_backtrace(1);
760 }
761 var33 = var25 - var26;
762 var27 = var33;
763 goto RET_LABEL28;
764 RET_LABEL28:(void)0;
765 }
766 }
767 var_pos = var27;
768 for(;;) {
769 var35 = 0;
770 {
771 { /* Inline kernel#Int#>= (var_pos,var35) on <var_pos:Int> */
772 /* Covariant cast for argument 0 (i) <var35:Int> isa OTHER */
773 /* <var35:Int> isa OTHER */
774 var38 = 1; /* easy <var35:Int> isa OTHER*/
775 if (unlikely(!var38)) {
776 var_class_name41 = type_kernel__Int.name;
777 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name41);
778 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 372);
779 show_backtrace(1);
780 }
781 var42 = var_pos >= var35;
782 var36 = var42;
783 goto RET_LABEL37;
784 RET_LABEL37:(void)0;
785 }
786 }
787 var_ = var36;
788 if (var36){
789 var43 = 0;
790 {
791 { /* Inline kernel#Int#> (var_n,var43) on <var_n:Int> */
792 /* Covariant cast for argument 0 (i) <var43:Int> isa OTHER */
793 /* <var43:Int> isa OTHER */
794 var46 = 1; /* easy <var43:Int> isa OTHER*/
795 if (unlikely(!var46)) {
796 var_class_name49 = type_kernel__Int.name;
797 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name49);
798 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 373);
799 show_backtrace(1);
800 }
801 var50 = var_n > var43;
802 var44 = var50;
803 goto RET_LABEL45;
804 RET_LABEL45:(void)0;
805 }
806 }
807 var34 = var44;
808 } else {
809 var34 = var_;
810 }
811 if (var34){
812 {
813 { /* Inline string#FlatBuffer#chars (var_s) on <var_s:Buffer> */
814 var53 = var_s->attrs[COLOR_string__FlatBuffer___chars].val; /* _chars on <var_s:Buffer> */
815 if (unlikely(var53 == NULL)) {
816 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _chars");
817 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 1406);
818 show_backtrace(1);
819 }
820 var51 = var53;
821 RET_LABEL52:(void)0;
822 }
823 }
824 {
825 { /* Inline kernel#Int#% (var_n,var_base) on <var_n:Int> */
826 var56 = var_n % var_base;
827 var54 = var56;
828 goto RET_LABEL55;
829 RET_LABEL55:(void)0;
830 }
831 }
832 {
833 var57 = kernel__Int__to_c(var54);
834 }
835 {
836 var58 = BOX_kernel__Char(var57); /* autobox from Char to nullable Object */
837 ((void (*)(val*, long, val*))(var51->class->vft[COLOR_abstract_collection__Sequence___91d_93d_61d]))(var51, var_pos, var58) /* []= on <var51:Sequence[Char]>*/;
838 }
839 {
840 { /* Inline kernel#Int#/ (var_n,var_base) on <var_n:Int> */
841 /* Covariant cast for argument 0 (i) <var_base:Int> isa OTHER */
842 /* <var_base:Int> isa OTHER */
843 var61 = 1; /* easy <var_base:Int> isa OTHER*/
844 if (unlikely(!var61)) {
845 var_class_name64 = type_kernel__Int.name;
846 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name64);
847 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 379);
848 show_backtrace(1);
849 }
850 var65 = var_n / var_base;
851 var59 = var65;
852 goto RET_LABEL60;
853 RET_LABEL60:(void)0;
854 }
855 }
856 var_n = var59;
857 var66 = 1;
858 {
859 { /* Inline kernel#Int#- (var_pos,var66) on <var_pos:Int> */
860 /* Covariant cast for argument 0 (i) <var66:Int> isa OTHER */
861 /* <var66:Int> isa OTHER */
862 var69 = 1; /* easy <var66:Int> isa OTHER*/
863 if (unlikely(!var69)) {
864 var_class_name72 = type_kernel__Int.name;
865 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name72);
866 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377);
867 show_backtrace(1);
868 }
869 var73 = var_pos - var66;
870 var67 = var73;
871 goto RET_LABEL68;
872 RET_LABEL68:(void)0;
873 }
874 }
875 var_pos = var67;
876 } else {
877 goto BREAK_label;
878 }
879 }
880 BREAK_label: (void)0;
881 RET_LABEL:;
882 }
883 /* method string#Int#fill_buffer for (self: Object, Buffer, Int, Bool) */
884 void VIRTUAL_string__Int__fill_buffer(val* self, val* p0, long p1, short int p2) {
885 long var /* : Int */;
886 var = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
887 string__Int__fill_buffer(var, p0, p1, p2); /* Direct call string#Int#fill_buffer on <var:Int>*/
888 RET_LABEL:;
889 }
890 /* method string#Int#native_int_to_s for (self: Int): NativeString */
891 char* string__Int__native_int_to_s(long self) {
892 char* var /* : NativeString */;
893 void* var1 /* : NativeString for extern */;
894 var1 = native_int_to_s(self);
895 var = var1;
896 goto RET_LABEL;
897 RET_LABEL:;
898 return var;
899 }
900 /* method string#Int#native_int_to_s for (self: Object): NativeString */
901 char* VIRTUAL_string__Int__native_int_to_s(val* self) {
902 char* var /* : NativeString */;
903 char* var1 /* : NativeString */;
904 void* var3 /* : NativeString for extern */;
905 long var4 /* : Int */;
906 { /* Inline string#Int#native_int_to_s (self) on <self:Object(Int)> */
907 var4 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
908 var3 = native_int_to_s(var4);
909 var1 = var3;
910 goto RET_LABEL2;
911 RET_LABEL2:(void)0;
912 }
913 var = var1;
914 RET_LABEL:;
915 return var;
916 }
917 /* method string#Int#to_s for (self: Int): String */
918 val* string__Int__to_s(long self) {
919 val* var /* : String */;
920 char* var1 /* : NativeString */;
921 void* var3 /* : NativeString for extern */;
922 val* var4 /* : String */;
923 {
924 { /* Inline string#Int#native_int_to_s (self) on <self:Int> */
925 var3 = native_int_to_s(self);
926 var1 = var3;
927 goto RET_LABEL2;
928 RET_LABEL2:(void)0;
929 }
930 }
931 {
932 var4 = string__NativeString__to_s(var1);
933 }
934 var = var4;
935 goto RET_LABEL;
936 RET_LABEL:;
937 return var;
938 }
939 /* method string#Int#to_s for (self: Object): String */
940 val* VIRTUAL_string__Int__to_s(val* self) {
941 val* var /* : String */;
942 val* var1 /* : String */;
943 long var2 /* : Int */;
944 var2 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
945 var1 = string__Int__to_s(var2);
946 var = var1;
947 RET_LABEL:;
948 return var;
949 }
950 /* method string#Int#to_hex for (self: Int): String */
951 val* string__Int__to_hex(long self) {
952 val* var /* : String */;
953 long var1 /* : Int */;
954 short int var2 /* : Bool */;
955 val* var3 /* : String */;
956 var1 = 16;
957 var2 = 0;
958 {
959 var3 = string__Int__to_base(self, var1, var2);
960 }
961 var = var3;
962 goto RET_LABEL;
963 RET_LABEL:;
964 return var;
965 }
966 /* method string#Int#to_hex for (self: Object): String */
967 val* VIRTUAL_string__Int__to_hex(val* self) {
968 val* var /* : String */;
969 val* var1 /* : String */;
970 long var2 /* : Int */;
971 var2 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
972 var1 = string__Int__to_hex(var2);
973 var = var1;
974 RET_LABEL:;
975 return var;
976 }
977 /* method string#Int#to_base for (self: Int, Int, Bool): String */
978 val* string__Int__to_base(long self, long p0, short int p1) {
979 val* var /* : String */;
980 long var_base /* var base: Int */;
981 short int var_signed /* var signed: Bool */;
982 long var1 /* : Int */;
983 long var_l /* var l: Int */;
984 val* var2 /* : FlatBuffer */;
985 static val* varonce;
986 val* var3 /* : String */;
987 char* var4 /* : NativeString */;
988 long var5 /* : Int */;
989 val* var6 /* : FlatString */;
990 val* var7 /* : String */;
991 val* var_s /* var s: FlatBuffer */;
992 val* var8 /* : String */;
993 var_base = p0;
994 var_signed = p1;
995 {
996 var1 = kernel__Int__digit_count(self, var_base);
997 }
998 var_l = var1;
999 var2 = NEW_string__FlatBuffer(&type_string__FlatBuffer);
1000 if (varonce) {
1001 var3 = varonce;
1002 } else {
1003 var4 = " ";
1004 var5 = 1;
1005 var6 = string__NativeString__to_s_with_length(var4, var5);
1006 var3 = var6;
1007 varonce = var3;
1008 }
1009 {
1010 var7 = string__FlatString___42d(var3, var_l);
1011 }
1012 {
1013 string__FlatBuffer__from(var2, var7); /* Direct call string#FlatBuffer#from on <var2:FlatBuffer>*/
1014 }
1015 var_s = var2;
1016 {
1017 string__Int__fill_buffer(self, var_s, var_base, var_signed); /* Direct call string#Int#fill_buffer on <self:Int>*/
1018 }
1019 {
1020 var8 = string__FlatBuffer__to_s(var_s);
1021 }
1022 var = var8;
1023 goto RET_LABEL;
1024 RET_LABEL:;
1025 return var;
1026 }
1027 /* method string#Int#to_base for (self: Object, Int, Bool): String */
1028 val* VIRTUAL_string__Int__to_base(val* self, long p0, short int p1) {
1029 val* var /* : String */;
1030 val* var1 /* : String */;
1031 long var2 /* : Int */;
1032 var2 = ((struct instance_kernel__Int*)self)->value; /* autounbox from Object to Int */;
1033 var1 = string__Int__to_base(var2, p0, p1);
1034 var = var1;
1035 RET_LABEL:;
1036 return var;
1037 }
1038 /* method string#Float#to_s for (self: Float): String */
1039 val* string__Float__to_s(double self) {
1040 val* var /* : String */;
1041 long var1 /* : Int */;
1042 val* var2 /* : String */;
1043 val* var_str /* var str: String */;
1044 short int var3 /* : Bool */;
1045 long var4 /* : Int */;
1046 long var5 /* : Int */;
1047 short int var6 /* : Bool */;
1048 short int var7 /* : Bool */;
1049 short int var9 /* : Bool */;
1050 short int var10 /* : Bool */;
1051 short int var_ /* var : Bool */;
1052 short int var11 /* : Bool */;
1053 short int var13 /* : Bool for extern */;
1054 long var14 /* : Int */;
1055 long var16 /* : Int */;
1056 long var_len /* var len: Int */;
1057 long var17 /* : Int */;
1058 long var_i /* var i: Int */;
1059 long var18 /* : Int */;
1060 long var19 /* : Int */;
1061 short int var21 /* : Bool */;
1062 int cltype;
1063 int idtype;
1064 const char* var_class_name;
1065 long var22 /* : Int */;
1066 long var_23 /* var : Int */;
1067 short int var24 /* : Bool */;
1068 short int var26 /* : Bool */;
1069 int cltype27;
1070 int idtype28;
1071 const char* var_class_name29;
1072 short int var30 /* : Bool */;
1073 long var31 /* : Int */;
1074 long var32 /* : Int */;
1075 short int var34 /* : Bool */;
1076 int cltype35;
1077 int idtype36;
1078 const char* var_class_name37;
1079 long var38 /* : Int */;
1080 long var39 /* : Int */;
1081 short int var41 /* : Bool */;
1082 int cltype42;
1083 int idtype43;
1084 const char* var_class_name44;
1085 long var45 /* : Int */;
1086 long var_j /* var j: Int */;
1087 val* var46 /* : SequenceRead[Char] */;
1088 val* var48 /* : SequenceRead[Char] */;
1089 val* var49 /* : nullable Object */;
1090 char var50 /* : Char */;
1091 char var_c /* var c: Char */;
1092 char var51 /* : Char */;
1093 short int var52 /* : Bool */;
1094 short int var53 /* : Bool */;
1095 short int var55 /* : Bool */;
1096 char var56 /* : Char */;
1097 short int var57 /* : Bool */;
1098 short int var58 /* : Bool */;
1099 short int var60 /* : Bool */;
1100 long var61 /* : Int */;
1101 long var62 /* : Int */;
1102 long var63 /* : Int */;
1103 short int var65 /* : Bool */;
1104 int cltype66;
1105 int idtype67;
1106 const char* var_class_name68;
1107 long var69 /* : Int */;
1108 val* var70 /* : String */;
1109 long var71 /* : Int */;
1110 long var72 /* : Int */;
1111 long var73 /* : Int */;
1112 short int var75 /* : Bool */;
1113 int cltype76;
1114 int idtype77;
1115 const char* var_class_name78;
1116 long var79 /* : Int */;
1117 val* var80 /* : String */;
1118 long var81 /* : Int */;
1119 long var82 /* : Int */;
1120 var1 = 3;
1121 {
1122 var2 = string__Float__to_precision(self, var1);
1123 }
1124 var_str = var2;
1125 {
1126 var4 = math__Float__is_inf(self);
1127 }
1128 var5 = 0;
1129 {
1130 { /* Inline kernel#Int#!= (var4,var5) on <var4:Int> */
1131 var9 = var4 == var5;
1132 var10 = !var9;
1133 var7 = var10;
1134 goto RET_LABEL8;
1135 RET_LABEL8:(void)0;
1136 }
1137 var6 = var7;
1138 }
1139 var_ = var6;
1140 if (var6){
1141 var3 = var_;
1142 } else {
1143 {
1144 { /* Inline math#Float#is_nan (self) on <self:Float> */
1145 var13 = isnan(self);
1146 var11 = var13;
1147 goto RET_LABEL12;
1148 RET_LABEL12:(void)0;
1149 }
1150 }
1151 var3 = var11;
1152 }
1153 if (var3){
1154 var = var_str;
1155 goto RET_LABEL;
1156 } else {
1157 }
1158 {
1159 { /* Inline string#FlatText#length (var_str) on <var_str:String> */
1160 var16 = var_str->attrs[COLOR_string__FlatText___length].l; /* _length on <var_str:String> */
1161 var14 = var16;
1162 RET_LABEL15:(void)0;
1163 }
1164 }
1165 var_len = var14;
1166 var17 = 0;
1167 var_i = var17;
1168 var18 = 1;
1169 {
1170 { /* Inline kernel#Int#- (var_len,var18) on <var_len:Int> */
1171 /* Covariant cast for argument 0 (i) <var18:Int> isa OTHER */
1172 /* <var18:Int> isa OTHER */
1173 var21 = 1; /* easy <var18:Int> isa OTHER*/
1174 if (unlikely(!var21)) {
1175 var_class_name = type_kernel__Int.name;
1176 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1177 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377);
1178 show_backtrace(1);
1179 }
1180 var22 = var_len - var18;
1181 var19 = var22;
1182 goto RET_LABEL20;
1183 RET_LABEL20:(void)0;
1184 }
1185 }
1186 var_23 = var19;
1187 for(;;) {
1188 {
1189 { /* Inline kernel#Int#<= (var_i,var_23) on <var_i:Int> */
1190 /* Covariant cast for argument 0 (i) <var_23:Int> isa OTHER */
1191 /* <var_23:Int> isa OTHER */
1192 var26 = 1; /* easy <var_23:Int> isa OTHER*/
1193 if (unlikely(!var26)) {
1194 var_class_name29 = type_kernel__Int.name;
1195 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name29);
1196 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 370);
1197 show_backtrace(1);
1198 }
1199 var30 = var_i <= var_23;
1200 var24 = var30;
1201 goto RET_LABEL25;
1202 RET_LABEL25:(void)0;
1203 }
1204 }
1205 if (var24){
1206 var31 = 1;
1207 {
1208 { /* Inline kernel#Int#- (var_len,var31) on <var_len:Int> */
1209 /* Covariant cast for argument 0 (i) <var31:Int> isa OTHER */
1210 /* <var31:Int> isa OTHER */
1211 var34 = 1; /* easy <var31:Int> isa OTHER*/
1212 if (unlikely(!var34)) {
1213 var_class_name37 = type_kernel__Int.name;
1214 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name37);
1215 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377);
1216 show_backtrace(1);
1217 }
1218 var38 = var_len - var31;
1219 var32 = var38;
1220 goto RET_LABEL33;
1221 RET_LABEL33:(void)0;
1222 }
1223 }
1224 {
1225 { /* Inline kernel#Int#- (var32,var_i) on <var32:Int> */
1226 /* Covariant cast for argument 0 (i) <var_i:Int> isa OTHER */
1227 /* <var_i:Int> isa OTHER */
1228 var41 = 1; /* easy <var_i:Int> isa OTHER*/
1229 if (unlikely(!var41)) {
1230 var_class_name44 = type_kernel__Int.name;
1231 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name44);
1232 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377);
1233 show_backtrace(1);
1234 }
1235 var45 = var32 - var_i;
1236 var39 = var45;
1237 goto RET_LABEL40;
1238 RET_LABEL40:(void)0;
1239 }
1240 }
1241 var_j = var39;
1242 {
1243 { /* Inline string#FlatString#chars (var_str) on <var_str:String> */
1244 var48 = var_str->attrs[COLOR_string__FlatString___chars].val; /* _chars on <var_str:String> */
1245 if (unlikely(var48 == NULL)) {
1246 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _chars");
1247 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 939);
1248 show_backtrace(1);
1249 }
1250 var46 = var48;
1251 RET_LABEL47:(void)0;
1252 }
1253 }
1254 {
1255 var49 = ((val* (*)(val*, long))(var46->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var46, var_j) /* [] on <var46:SequenceRead[Char]>*/;
1256 }
1257 var50 = ((struct instance_kernel__Char*)var49)->value; /* autounbox from nullable Object to Char */;
1258 var_c = var50;
1259 var51 = '0';
1260 {
1261 { /* Inline kernel#Char#== (var_c,var51) on <var_c:Char> */
1262 var55 = var_c == var51;
1263 var53 = var55;
1264 goto RET_LABEL54;
1265 RET_LABEL54:(void)0;
1266 }
1267 var52 = var53;
1268 }
1269 if (var52){
1270 goto BREAK_label;
1271 } else {
1272 var56 = '.';
1273 {
1274 { /* Inline kernel#Char#== (var_c,var56) on <var_c:Char> */
1275 var60 = var_c == var56;
1276 var58 = var60;
1277 goto RET_LABEL59;
1278 RET_LABEL59:(void)0;
1279 }
1280 var57 = var58;
1281 }
1282 if (var57){
1283 var61 = 0;
1284 var62 = 2;
1285 {
1286 { /* Inline kernel#Int#+ (var_j,var62) on <var_j:Int> */
1287 /* Covariant cast for argument 0 (i) <var62:Int> isa OTHER */
1288 /* <var62:Int> isa OTHER */
1289 var65 = 1; /* easy <var62:Int> isa OTHER*/
1290 if (unlikely(!var65)) {
1291 var_class_name68 = type_kernel__Int.name;
1292 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name68);
1293 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
1294 show_backtrace(1);
1295 }
1296 var69 = var_j + var62;
1297 var63 = var69;
1298 goto RET_LABEL64;
1299 RET_LABEL64:(void)0;
1300 }
1301 }
1302 {
1303 var70 = string__FlatString__substring(var_str, var61, var63);
1304 }
1305 var = var70;
1306 goto RET_LABEL;
1307 } else {
1308 var71 = 0;
1309 var72 = 1;
1310 {
1311 { /* Inline kernel#Int#+ (var_j,var72) on <var_j:Int> */
1312 /* Covariant cast for argument 0 (i) <var72:Int> isa OTHER */
1313 /* <var72:Int> isa OTHER */
1314 var75 = 1; /* easy <var72:Int> isa OTHER*/
1315 if (unlikely(!var75)) {
1316 var_class_name78 = type_kernel__Int.name;
1317 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name78);
1318 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
1319 show_backtrace(1);
1320 }
1321 var79 = var_j + var72;
1322 var73 = var79;
1323 goto RET_LABEL74;
1324 RET_LABEL74:(void)0;
1325 }
1326 }
1327 {
1328 var80 = string__FlatString__substring(var_str, var71, var73);
1329 }
1330 var = var80;
1331 goto RET_LABEL;
1332 }
1333 }
1334 BREAK_label: (void)0;
1335 var81 = 1;
1336 {
1337 var82 = kernel__Int__successor(var_i, var81);
1338 }
1339 var_i = var82;
1340 } else {
1341 goto BREAK_label83;
1342 }
1343 }
1344 BREAK_label83: (void)0;
1345 var = var_str;
1346 goto RET_LABEL;
1347 RET_LABEL:;
1348 return var;
1349 }
1350 /* method string#Float#to_s for (self: Object): String */
1351 val* VIRTUAL_string__Float__to_s(val* self) {
1352 val* var /* : String */;
1353 val* var1 /* : String */;
1354 double var2 /* : Float */;
1355 var2 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */;
1356 var1 = string__Float__to_s(var2);
1357 var = var1;
1358 RET_LABEL:;
1359 return var;
1360 }
1361 /* method string#Float#to_precision for (self: Float, Int): String */
1362 val* string__Float__to_precision(double self, long p0) {
1363 val* var /* : String */;
1364 long var_decimals /* var decimals: Int */;
1365 short int var1 /* : Bool */;
1366 short int var3 /* : Bool for extern */;
1367 static val* varonce;
1368 val* var4 /* : String */;
1369 char* var5 /* : NativeString */;
1370 long var6 /* : Int */;
1371 val* var7 /* : FlatString */;
1372 long var8 /* : Int */;
1373 long var_isinf /* var isinf: Int */;
1374 long var9 /* : Int */;
1375 short int var10 /* : Bool */;
1376 short int var11 /* : Bool */;
1377 short int var13 /* : Bool */;
1378 static val* varonce14;
1379 val* var15 /* : String */;
1380 char* var16 /* : NativeString */;
1381 long var17 /* : Int */;
1382 val* var18 /* : FlatString */;
1383 long var19 /* : Int */;
1384 long var20 /* : Int */;
1385 long var22 /* : Int */;
1386 short int var23 /* : Bool */;
1387 short int var24 /* : Bool */;
1388 short int var26 /* : Bool */;
1389 static val* varonce27;
1390 val* var28 /* : String */;
1391 char* var29 /* : NativeString */;
1392 long var30 /* : Int */;
1393 val* var31 /* : FlatString */;
1394 long var32 /* : Int */;
1395 short int var33 /* : Bool */;
1396 short int var34 /* : Bool */;
1397 short int var36 /* : Bool */;
1398 long var37 /* : Int */;
1399 long var39 /* : Int */;
1400 val* var40 /* : String */;
1401 double var_f /* var f: Float */;
1402 long var41 /* : Int */;
1403 long var_i /* var i: Int */;
1404 long var_ /* var : Int */;
1405 short int var42 /* : Bool */;
1406 short int var44 /* : Bool */;
1407 int cltype;
1408 int idtype;
1409 const char* var_class_name;
1410 short int var45 /* : Bool */;
1411 double var46 /* : Float */;
1412 double var47 /* : Float */;
1413 short int var49 /* : Bool */;
1414 int cltype50;
1415 int idtype51;
1416 const char* var_class_name52;
1417 double var53 /* : Float */;
1418 long var54 /* : Int */;
1419 long var55 /* : Int */;
1420 double var56 /* : Float */;
1421 short int var57 /* : Bool */;
1422 short int var59 /* : Bool */;
1423 int cltype60;
1424 int idtype61;
1425 const char* var_class_name62;
1426 short int var63 /* : Bool */;
1427 double var64 /* : Float */;
1428 double var65 /* : Float */;
1429 short int var67 /* : Bool */;
1430 int cltype68;
1431 int idtype69;
1432 const char* var_class_name70;
1433 double var71 /* : Float */;
1434 double var72 /* : Float */;
1435 double var73 /* : Float */;
1436 short int var75 /* : Bool */;
1437 int cltype76;
1438 int idtype77;
1439 const char* var_class_name78;
1440 double var79 /* : Float */;
1441 long var80 /* : Int */;
1442 long var82 /* : Int */;
1443 long var_i83 /* var i: Int */;
1444 long var84 /* : Int */;
1445 short int var85 /* : Bool */;
1446 short int var86 /* : Bool */;
1447 short int var88 /* : Bool */;
1448 static val* varonce89;
1449 val* var90 /* : String */;
1450 char* var91 /* : NativeString */;
1451 long var92 /* : Int */;
1452 val* var93 /* : FlatString */;
1453 static val* varonce94;
1454 val* var95 /* : String */;
1455 char* var96 /* : NativeString */;
1456 long var97 /* : Int */;
1457 val* var98 /* : FlatString */;
1458 val* var99 /* : String */;
1459 val* var100 /* : String */;
1460 long var101 /* : Int */;
1461 val* var102 /* : String */;
1462 val* var_s /* var s: String */;
1463 long var103 /* : Int */;
1464 long var105 /* : Int */;
1465 long var_sl /* var sl: Int */;
1466 short int var106 /* : Bool */;
1467 short int var108 /* : Bool */;
1468 int cltype109;
1469 int idtype110;
1470 const char* var_class_name111;
1471 short int var112 /* : Bool */;
1472 long var113 /* : Int */;
1473 long var114 /* : Int */;
1474 short int var116 /* : Bool */;
1475 int cltype117;
1476 int idtype118;
1477 const char* var_class_name119;
1478 long var120 /* : Int */;
1479 val* var121 /* : String */;
1480 val* var_p1 /* var p1: nullable Object */;
1481 long var122 /* : Int */;
1482 short int var124 /* : Bool */;
1483 int cltype125;
1484 int idtype126;
1485 const char* var_class_name127;
1486 long var128 /* : Int */;
1487 val* var129 /* : String */;
1488 val* var_p2 /* var p2: nullable Object */;
1489 static val* varonce130;
1490 val* var131 /* : String */;
1491 char* var132 /* : NativeString */;
1492 long var133 /* : Int */;
1493 val* var134 /* : FlatString */;
1494 static val* varonce135;
1495 val* var136 /* : String */;
1496 char* var137 /* : NativeString */;
1497 long var138 /* : Int */;
1498 val* var139 /* : FlatString */;
1499 long var140 /* : Int */;
1500 short int var142 /* : Bool */;
1501 int cltype143;
1502 int idtype144;
1503 const char* var_class_name145;
1504 long var146 /* : Int */;
1505 val* var147 /* : String */;
1506 val* var148 /* : String */;
1507 long var149 /* : Int */;
1508 short int var150 /* : Bool */;
1509 short int var152 /* : Bool */;
1510 int cltype153;
1511 int idtype154;
1512 const char* var_class_name155;
1513 short int var156 /* : Bool */;
1514 static val* varonce157;
1515 val* var158 /* : String */;
1516 char* var159 /* : NativeString */;
1517 long var160 /* : Int */;
1518 val* var161 /* : FlatString */;
1519 val* var162 /* : String */;
1520 static val* varonce163;
1521 val* var164 /* : String */;
1522 char* var165 /* : NativeString */;
1523 long var166 /* : Int */;
1524 val* var167 /* : FlatString */;
1525 val* var168 /* : String */;
1526 val* var169 /* : String */;
1527 var_decimals = p0;
1528 {
1529 { /* Inline math#Float#is_nan (self) on <self:Float> */
1530 var3 = isnan(self);
1531 var1 = var3;
1532 goto RET_LABEL2;
1533 RET_LABEL2:(void)0;
1534 }
1535 }
1536 if (var1){
1537 if (varonce) {
1538 var4 = varonce;
1539 } else {
1540 var5 = "nan";
1541 var6 = 3;
1542 var7 = string__NativeString__to_s_with_length(var5, var6);
1543 var4 = var7;
1544 varonce = var4;
1545 }
1546 var = var4;
1547 goto RET_LABEL;
1548 } else {
1549 }
1550 {
1551 var8 = math__Float__is_inf(self);
1552 }
1553 var_isinf = var8;
1554 var9 = 1;
1555 {
1556 { /* Inline kernel#Int#== (var_isinf,var9) on <var_isinf:Int> */
1557 var13 = var_isinf == var9;
1558 var11 = var13;
1559 goto RET_LABEL12;
1560 RET_LABEL12:(void)0;
1561 }
1562 var10 = var11;
1563 }
1564 if (var10){
1565 if (varonce14) {
1566 var15 = varonce14;
1567 } else {
1568 var16 = "inf";
1569 var17 = 3;
1570 var18 = string__NativeString__to_s_with_length(var16, var17);
1571 var15 = var18;
1572 varonce14 = var15;
1573 }
1574 var = var15;
1575 goto RET_LABEL;
1576 } else {
1577 var19 = 1;
1578 {
1579 { /* Inline kernel#Int#unary - (var19) on <var19:Int> */
1580 var22 = -var19;
1581 var20 = var22;
1582 goto RET_LABEL21;
1583 RET_LABEL21:(void)0;
1584 }
1585 }
1586 {
1587 { /* Inline kernel#Int#== (var_isinf,var20) on <var_isinf:Int> */
1588 var26 = var_isinf == var20;
1589 var24 = var26;
1590 goto RET_LABEL25;
1591 RET_LABEL25:(void)0;
1592 }
1593 var23 = var24;
1594 }
1595 if (var23){
1596 if (varonce27) {
1597 var28 = varonce27;
1598 } else {
1599 var29 = "-inf";
1600 var30 = 4;
1601 var31 = string__NativeString__to_s_with_length(var29, var30);
1602 var28 = var31;
1603 varonce27 = var28;
1604 }
1605 var = var28;
1606 goto RET_LABEL;
1607 } else {
1608 }
1609 }
1610 var32 = 0;
1611 {
1612 { /* Inline kernel#Int#== (var_decimals,var32) on <var_decimals:Int> */
1613 var36 = var_decimals == var32;
1614 var34 = var36;
1615 goto RET_LABEL35;
1616 RET_LABEL35:(void)0;
1617 }
1618 var33 = var34;
1619 }
1620 if (var33){
1621 {
1622 { /* Inline kernel#Float#to_i (self) on <self:Float> */
1623 var39 = (long)self;
1624 var37 = var39;
1625 goto RET_LABEL38;
1626 RET_LABEL38:(void)0;
1627 }
1628 }
1629 {
1630 var40 = string__Int__to_s(var37);
1631 }
1632 var = var40;
1633 goto RET_LABEL;
1634 } else {
1635 }
1636 var_f = self;
1637 var41 = 0;
1638 var_i = var41;
1639 var_ = var_decimals;
1640 for(;;) {
1641 {
1642 { /* Inline kernel#Int#< (var_i,var_) on <var_i:Int> */
1643 /* Covariant cast for argument 0 (i) <var_:Int> isa OTHER */
1644 /* <var_:Int> isa OTHER */
1645 var44 = 1; /* easy <var_:Int> isa OTHER*/
1646 if (unlikely(!var44)) {
1647 var_class_name = type_kernel__Int.name;
1648 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1649 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371);
1650 show_backtrace(1);
1651 }
1652 var45 = var_i < var_;
1653 var42 = var45;
1654 goto RET_LABEL43;
1655 RET_LABEL43:(void)0;
1656 }
1657 }
1658 if (var42){
1659 var46 = 10.0;
1660 {
1661 { /* Inline kernel#Float#* (var_f,var46) on <var_f:Float> */
1662 /* Covariant cast for argument 0 (i) <var46:Float> isa OTHER */
1663 /* <var46:Float> isa OTHER */
1664 var49 = 1; /* easy <var46:Float> isa OTHER*/
1665 if (unlikely(!var49)) {
1666 var_class_name52 = type_kernel__Float.name;
1667 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name52);
1668 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 305);
1669 show_backtrace(1);
1670 }
1671 var53 = var_f * var46;
1672 var47 = var53;
1673 goto RET_LABEL48;
1674 RET_LABEL48:(void)0;
1675 }
1676 }
1677 var_f = var47;
1678 var54 = 1;
1679 {
1680 var55 = kernel__Int__successor(var_i, var54);
1681 }
1682 var_i = var55;
1683 } else {
1684 goto BREAK_label;
1685 }
1686 }
1687 BREAK_label: (void)0;
1688 var56 = 0.0;
1689 {
1690 { /* Inline kernel#Float#> (self,var56) on <self:Float> */
1691 /* Covariant cast for argument 0 (i) <var56:Float> isa OTHER */
1692 /* <var56:Float> isa OTHER */
1693 var59 = 1; /* easy <var56:Float> isa OTHER*/
1694 if (unlikely(!var59)) {
1695 var_class_name62 = type_kernel__Float.name;
1696 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name62);
1697 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 300);
1698 show_backtrace(1);
1699 }
1700 var63 = self > var56;
1701 var57 = var63;
1702 goto RET_LABEL58;
1703 RET_LABEL58:(void)0;
1704 }
1705 }
1706 if (var57){
1707 var64 = 0.5;
1708 {
1709 { /* Inline kernel#Float#+ (var_f,var64) on <var_f:Float> */
1710 /* Covariant cast for argument 0 (i) <var64:Float> isa OTHER */
1711 /* <var64:Float> isa OTHER */
1712 var67 = 1; /* easy <var64:Float> isa OTHER*/
1713 if (unlikely(!var67)) {
1714 var_class_name70 = type_kernel__Float.name;
1715 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name70);
1716 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 302);
1717 show_backtrace(1);
1718 }
1719 var71 = var_f + var64;
1720 var65 = var71;
1721 goto RET_LABEL66;
1722 RET_LABEL66:(void)0;
1723 }
1724 }
1725 var_f = var65;
1726 } else {
1727 var72 = 0.5;
1728 {
1729 { /* Inline kernel#Float#- (var_f,var72) on <var_f:Float> */
1730 /* Covariant cast for argument 0 (i) <var72:Float> isa OTHER */
1731 /* <var72:Float> isa OTHER */
1732 var75 = 1; /* easy <var72:Float> isa OTHER*/
1733 if (unlikely(!var75)) {
1734 var_class_name78 = type_kernel__Float.name;
1735 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name78);
1736 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 304);
1737 show_backtrace(1);
1738 }
1739 var79 = var_f - var72;
1740 var73 = var79;
1741 goto RET_LABEL74;
1742 RET_LABEL74:(void)0;
1743 }
1744 }
1745 var_f = var73;
1746 }
1747 {
1748 { /* Inline kernel#Float#to_i (var_f) on <var_f:Float> */
1749 var82 = (long)var_f;
1750 var80 = var82;
1751 goto RET_LABEL81;
1752 RET_LABEL81:(void)0;
1753 }
1754 }
1755 var_i83 = var80;
1756 var84 = 0;
1757 {
1758 { /* Inline kernel#Int#== (var_i83,var84) on <var_i83:Int> */
1759 var88 = var_i83 == var84;
1760 var86 = var88;
1761 goto RET_LABEL87;
1762 RET_LABEL87:(void)0;
1763 }
1764 var85 = var86;
1765 }
1766 if (var85){
1767 if (varonce89) {
1768 var90 = varonce89;
1769 } else {
1770 var91 = "0.";
1771 var92 = 2;
1772 var93 = string__NativeString__to_s_with_length(var91, var92);
1773 var90 = var93;
1774 varonce89 = var90;
1775 }
1776 if (varonce94) {
1777 var95 = varonce94;
1778 } else {
1779 var96 = "0";
1780 var97 = 1;
1781 var98 = string__NativeString__to_s_with_length(var96, var97);
1782 var95 = var98;
1783 varonce94 = var95;
1784 }
1785 {
1786 var99 = string__FlatString___42d(var95, var_decimals);
1787 }
1788 {
1789 var100 = string__FlatString___43d(var90, var99);
1790 }
1791 var = var100;
1792 goto RET_LABEL;
1793 } else {
1794 }
1795 {
1796 var101 = kernel__Int__abs(var_i83);
1797 }
1798 {
1799 var102 = string__Int__to_s(var101);
1800 }
1801 var_s = var102;
1802 {
1803 { /* Inline string#FlatText#length (var_s) on <var_s:String> */
1804 var105 = var_s->attrs[COLOR_string__FlatText___length].l; /* _length on <var_s:String> */
1805 var103 = var105;
1806 RET_LABEL104:(void)0;
1807 }
1808 }
1809 var_sl = var103;
1810 {
1811 { /* Inline kernel#Int#> (var_sl,var_decimals) on <var_sl:Int> */
1812 /* Covariant cast for argument 0 (i) <var_decimals:Int> isa OTHER */
1813 /* <var_decimals:Int> isa OTHER */
1814 var108 = 1; /* easy <var_decimals:Int> isa OTHER*/
1815 if (unlikely(!var108)) {
1816 var_class_name111 = type_kernel__Int.name;
1817 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name111);
1818 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 373);
1819 show_backtrace(1);
1820 }
1821 var112 = var_sl > var_decimals;
1822 var106 = var112;
1823 goto RET_LABEL107;
1824 RET_LABEL107:(void)0;
1825 }
1826 }
1827 if (var106){
1828 var113 = 0;
1829 {
1830 { /* Inline kernel#Int#- (var_sl,var_decimals) on <var_sl:Int> */
1831 /* Covariant cast for argument 0 (i) <var_decimals:Int> isa OTHER */
1832 /* <var_decimals:Int> isa OTHER */
1833 var116 = 1; /* easy <var_decimals:Int> isa OTHER*/
1834 if (unlikely(!var116)) {
1835 var_class_name119 = type_kernel__Int.name;
1836 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name119);
1837 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377);
1838 show_backtrace(1);
1839 }
1840 var120 = var_sl - var_decimals;
1841 var114 = var120;
1842 goto RET_LABEL115;
1843 RET_LABEL115:(void)0;
1844 }
1845 }
1846 {
1847 var121 = string__FlatString__substring(var_s, var113, var114);
1848 }
1849 var_p1 = var121;
1850 {
1851 { /* Inline kernel#Int#- (var_sl,var_decimals) on <var_sl:Int> */
1852 /* Covariant cast for argument 0 (i) <var_decimals:Int> isa OTHER */
1853 /* <var_decimals:Int> isa OTHER */
1854 var124 = 1; /* easy <var_decimals:Int> isa OTHER*/
1855 if (unlikely(!var124)) {
1856 var_class_name127 = type_kernel__Int.name;
1857 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name127);
1858 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377);
1859 show_backtrace(1);
1860 }
1861 var128 = var_sl - var_decimals;
1862 var122 = var128;
1863 goto RET_LABEL123;
1864 RET_LABEL123:(void)0;
1865 }
1866 }
1867 {
1868 var129 = string__FlatString__substring(var_s, var122, var_decimals);
1869 }
1870 var_p2 = var129;
1871 } else {
1872 if (varonce130) {
1873 var131 = varonce130;
1874 } else {
1875 var132 = "0";
1876 var133 = 1;
1877 var134 = string__NativeString__to_s_with_length(var132, var133);
1878 var131 = var134;
1879 varonce130 = var131;
1880 }
1881 var_p1 = var131;
1882 if (varonce135) {
1883 var136 = varonce135;
1884 } else {
1885 var137 = "0";
1886 var138 = 1;
1887 var139 = string__NativeString__to_s_with_length(var137, var138);
1888 var136 = var139;
1889 varonce135 = var136;
1890 }
1891 {
1892 { /* Inline kernel#Int#- (var_decimals,var_sl) on <var_decimals:Int> */
1893 /* Covariant cast for argument 0 (i) <var_sl:Int> isa OTHER */
1894 /* <var_sl:Int> isa OTHER */
1895 var142 = 1; /* easy <var_sl:Int> isa OTHER*/
1896 if (unlikely(!var142)) {
1897 var_class_name145 = type_kernel__Int.name;
1898 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name145);
1899 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377);
1900 show_backtrace(1);
1901 }
1902 var146 = var_decimals - var_sl;
1903 var140 = var146;
1904 goto RET_LABEL141;
1905 RET_LABEL141:(void)0;
1906 }
1907 }
1908 {
1909 var147 = string__FlatString___42d(var136, var140);
1910 }
1911 {
1912 var148 = string__FlatString___43d(var147, var_s);
1913 }
1914 var_p2 = var148;
1915 }
1916 var149 = 0;
1917 {
1918 { /* Inline kernel#Int#< (var_i83,var149) on <var_i83:Int> */
1919 /* Covariant cast for argument 0 (i) <var149:Int> isa OTHER */
1920 /* <var149:Int> isa OTHER */
1921 var152 = 1; /* easy <var149:Int> isa OTHER*/
1922 if (unlikely(!var152)) {
1923 var_class_name155 = type_kernel__Int.name;
1924 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name155);
1925 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371);
1926 show_backtrace(1);
1927 }
1928 var156 = var_i83 < var149;
1929 var150 = var156;
1930 goto RET_LABEL151;
1931 RET_LABEL151:(void)0;
1932 }
1933 }
1934 if (var150){
1935 if (varonce157) {
1936 var158 = varonce157;
1937 } else {
1938 var159 = "-";
1939 var160 = 1;
1940 var161 = string__NativeString__to_s_with_length(var159, var160);
1941 var158 = var161;
1942 varonce157 = var158;
1943 }
1944 {
1945 var162 = string__FlatString___43d(var158, var_p1);
1946 }
1947 var_p1 = var162;
1948 } else {
1949 }
1950 if (varonce163) {
1951 var164 = varonce163;
1952 } else {
1953 var165 = ".";
1954 var166 = 1;
1955 var167 = string__NativeString__to_s_with_length(var165, var166);
1956 var164 = var167;
1957 varonce163 = var164;
1958 }
1959 {
1960 var168 = string__FlatString___43d(var_p1, var164);
1961 }
1962 {
1963 var169 = string__FlatString___43d(var168, var_p2);
1964 }
1965 var = var169;
1966 goto RET_LABEL;
1967 RET_LABEL:;
1968 return var;
1969 }
1970 /* method string#Float#to_precision for (self: Object, Int): String */
1971 val* VIRTUAL_string__Float__to_precision(val* self, long p0) {
1972 val* var /* : String */;
1973 val* var1 /* : String */;
1974 double var2 /* : Float */;
1975 var2 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */;
1976 var1 = string__Float__to_precision(var2, p0);
1977 var = var1;
1978 RET_LABEL:;
1979 return var;
1980 }
1981 /* method string#Char#to_s for (self: Char): String */
1982 val* string__Char__to_s(char self) {
1983 val* var /* : String */;
1984 val* var1 /* : FlatBuffer */;
1985 long var2 /* : Int */;
1986 val* var_s /* var s: FlatBuffer */;
1987 val* var3 /* : Sequence[Char] */;
1988 val* var5 /* : Sequence[Char] */;
1989 long var6 /* : Int */;
1990 val* var7 /* : nullable Object */;
1991 val* var8 /* : String */;
1992 var1 = NEW_string__FlatBuffer(&type_string__FlatBuffer);
1993 var2 = 1;
1994 {
1995 string__FlatBuffer__with_capacity(var1, var2); /* Direct call string#FlatBuffer#with_capacity on <var1:FlatBuffer>*/
1996 }
1997 var_s = var1;
1998 {
1999 { /* Inline string#FlatBuffer#chars (var_s) on <var_s:FlatBuffer> */
2000 var5 = var_s->attrs[COLOR_string__FlatBuffer___chars].val; /* _chars on <var_s:FlatBuffer> */
2001 if (unlikely(var5 == NULL)) {
2002 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _chars");
2003 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 1406);
2004 show_backtrace(1);
2005 }
2006 var3 = var5;
2007 RET_LABEL4:(void)0;
2008 }
2009 }
2010 var6 = 0;
2011 {
2012 var7 = BOX_kernel__Char(self); /* autobox from Char to nullable Object */
2013 ((void (*)(val*, long, val*))(var3->class->vft[COLOR_abstract_collection__Sequence___91d_93d_61d]))(var3, var6, var7) /* []= on <var3:Sequence[Char]>*/;
2014 }
2015 {
2016 var8 = string__FlatBuffer__to_s(var_s);
2017 }
2018 var = var8;
2019 goto RET_LABEL;
2020 RET_LABEL:;
2021 return var;
2022 }
2023 /* method string#Char#to_s for (self: Object): String */
2024 val* VIRTUAL_string__Char__to_s(val* self) {
2025 val* var /* : String */;
2026 val* var1 /* : String */;
2027 char var2 /* : Char */;
2028 var2 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
2029 var1 = string__Char__to_s(var2);
2030 var = var1;
2031 RET_LABEL:;
2032 return var;
2033 }
2034 /* method string#Char#is_numeric for (self: Char): Bool */
2035 short int string__Char__is_numeric(char self) {
2036 short int var /* : Bool */;
2037 short int var1 /* : Bool */;
2038 char var2 /* : Char */;
2039 short int var3 /* : Bool */;
2040 short int var5 /* : Bool */;
2041 int cltype;
2042 int idtype;
2043 const char* var_class_name;
2044 short int var6 /* : Bool */;
2045 short int var_ /* var : Bool */;
2046 char var7 /* : Char */;
2047 short int var8 /* : Bool */;
2048 short int var10 /* : Bool */;
2049 int cltype11;
2050 int idtype12;
2051 const char* var_class_name13;
2052 short int var14 /* : Bool */;
2053 var2 = '0';
2054 {
2055 { /* Inline kernel#Char#>= (self,var2) on <self:Char> */
2056 /* Covariant cast for argument 0 (i) <var2:Char> isa OTHER */
2057 /* <var2:Char> isa OTHER */
2058 var5 = 1; /* easy <var2:Char> isa OTHER*/
2059 if (unlikely(!var5)) {
2060 var_class_name = type_kernel__Char.name;
2061 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2062 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 547);
2063 show_backtrace(1);
2064 }
2065 var6 = self >= var2;
2066 var3 = var6;
2067 goto RET_LABEL4;
2068 RET_LABEL4:(void)0;
2069 }
2070 }
2071 var_ = var3;
2072 if (var3){
2073 var7 = '9';
2074 {
2075 { /* Inline kernel#Char#<= (self,var7) on <self:Char> */
2076 /* Covariant cast for argument 0 (i) <var7:Char> isa OTHER */
2077 /* <var7:Char> isa OTHER */
2078 var10 = 1; /* easy <var7:Char> isa OTHER*/
2079 if (unlikely(!var10)) {
2080 var_class_name13 = type_kernel__Char.name;
2081 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name13);
2082 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 545);
2083 show_backtrace(1);
2084 }
2085 var14 = self <= var7;
2086 var8 = var14;
2087 goto RET_LABEL9;
2088 RET_LABEL9:(void)0;
2089 }
2090 }
2091 var1 = var8;
2092 } else {
2093 var1 = var_;
2094 }
2095 var = var1;
2096 goto RET_LABEL;
2097 RET_LABEL:;
2098 return var;
2099 }
2100 /* method string#Char#is_numeric for (self: Object): Bool */
2101 short int VIRTUAL_string__Char__is_numeric(val* self) {
2102 short int var /* : Bool */;
2103 short int var1 /* : Bool */;
2104 char var2 /* : Char */;
2105 var2 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
2106 var1 = string__Char__is_numeric(var2);
2107 var = var1;
2108 RET_LABEL:;
2109 return var;
2110 }
2111 /* method string#Collection#to_s for (self: Collection[nullable Object]): String */
2112 val* string__Collection__to_s(val* self) {
2113 val* var /* : String */;
2114 val* var1 /* : FlatBuffer */;
2115 val* var_s /* var s: FlatBuffer */;
2116 val* var_ /* var : Collection[nullable Object] */;
2117 val* var2 /* : Iterator[nullable Object] */;
2118 val* var_3 /* var : Iterator[nullable Object] */;
2119 short int var4 /* : Bool */;
2120 val* var5 /* : nullable Object */;
2121 val* var_e /* var e: nullable Object */;
2122 val* var6 /* : null */;
2123 short int var7 /* : Bool */;
2124 short int var8 /* : Bool */;
2125 val* var9 /* : String */;
2126 val* var11 /* : String */;
2127 var1 = NEW_string__FlatBuffer(&type_string__FlatBuffer);
2128 {
2129 ((void (*)(val*))(var1->class->vft[COLOR_kernel__Object__init]))(var1) /* init on <var1:FlatBuffer>*/;
2130 }
2131 var_s = var1;
2132 var_ = self;
2133 {
2134 var2 = ((val* (*)(val*))(var_->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_) /* iterator on <var_:Collection[nullable Object]>*/;
2135 }
2136 var_3 = var2;
2137 for(;;) {
2138 {
2139 var4 = ((short int (*)(val*))(var_3->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_3) /* is_ok on <var_3:Iterator[nullable Object]>*/;
2140 }
2141 if (var4){
2142 {
2143 var5 = ((val* (*)(val*))(var_3->class->vft[COLOR_abstract_collection__Iterator__item]))(var_3) /* item on <var_3:Iterator[nullable Object]>*/;
2144 }
2145 var_e = var5;
2146 var6 = NULL;
2147 if (var_e == NULL) {
2148 var7 = 0; /* is null */
2149 } else {
2150 var7 = 1; /* arg is null and recv is not */
2151 }
2152 if (0) {
2153 var8 = ((short int (*)(val*, val*))(var_e->class->vft[COLOR_kernel__Object___33d_61d]))(var_e, var6) /* != on <var_e:nullable Object>*/;
2154 var7 = var8;
2155 }
2156 if (var7){
2157 if (var_e == NULL) {
2158 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2159 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 1962);
2160 show_backtrace(1);
2161 } else {
2162 var9 = ((val* (*)(val*))(var_e->class->vft[COLOR_string__Object__to_s]))(var_e) /* to_s on <var_e:nullable Object>*/;
2163 }
2164 {
2165 string__FlatBuffer__append(var_s, var9); /* Direct call string#FlatBuffer#append on <var_s:FlatBuffer>*/
2166 }
2167 } else {
2168 }
2169 {
2170 ((void (*)(val*))(var_3->class->vft[COLOR_abstract_collection__Iterator__next]))(var_3) /* next on <var_3:Iterator[nullable Object]>*/;
2171 }
2172 } else {
2173 goto BREAK_label;
2174 }
2175 }
2176 BREAK_label: (void)0;
2177 {
2178 { /* Inline abstract_collection#Iterator#finish (var_3) on <var_3:Iterator[nullable Object]> */
2179 RET_LABEL10:(void)0;
2180 }
2181 }
2182 {
2183 var11 = string__FlatBuffer__to_s(var_s);
2184 }
2185 var = var11;
2186 goto RET_LABEL;
2187 RET_LABEL:;
2188 return var;
2189 }
2190 /* method string#Collection#to_s for (self: Object): String */
2191 val* VIRTUAL_string__Collection__to_s(val* self) {
2192 val* var /* : String */;
2193 val* var1 /* : String */;
2194 var1 = string__Collection__to_s(self);
2195 var = var1;
2196 RET_LABEL:;
2197 return var;
2198 }
2199 /* method string#Collection#join for (self: Collection[nullable Object], Text): String */
2200 val* string__Collection__join(val* self, val* p0) {
2201 val* var /* : String */;
2202 val* var_sep /* var sep: Text */;
2203 short int var1 /* : Bool */;
2204 static val* varonce;
2205 val* var2 /* : String */;
2206 char* var3 /* : NativeString */;
2207 long var4 /* : Int */;
2208 val* var5 /* : FlatString */;
2209 val* var6 /* : FlatBuffer */;
2210 val* var_s /* var s: FlatBuffer */;
2211 val* var7 /* : Iterator[nullable Object] */;
2212 val* var_i /* var i: Iterator[nullable Object] */;
2213 val* var8 /* : nullable Object */;
2214 val* var_e /* var e: nullable Object */;
2215 val* var9 /* : null */;
2216 short int var10 /* : Bool */;
2217 short int var11 /* : Bool */;
2218 val* var12 /* : String */;
2219 short int var13 /* : Bool */;
2220 val* var14 /* : nullable Object */;
2221 val* var15 /* : null */;
2222 short int var16 /* : Bool */;
2223 short int var17 /* : Bool */;
2224 val* var18 /* : String */;
2225 val* var19 /* : String */;
2226 var_sep = p0;
2227 {
2228 var1 = ((short int (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__is_empty]))(self) /* is_empty on <self:Collection[nullable Object]>*/;
2229 }
2230 if (var1){
2231 if (varonce) {
2232 var2 = varonce;
2233 } else {
2234 var3 = "";
2235 var4 = 0;
2236 var5 = string__NativeString__to_s_with_length(var3, var4);
2237 var2 = var5;
2238 varonce = var2;
2239 }
2240 var = var2;
2241 goto RET_LABEL;
2242 } else {
2243 }
2244 var6 = NEW_string__FlatBuffer(&type_string__FlatBuffer);
2245 {
2246 ((void (*)(val*))(var6->class->vft[COLOR_kernel__Object__init]))(var6) /* init on <var6:FlatBuffer>*/;
2247 }
2248 var_s = var6;
2249 {
2250 var7 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__iterator]))(self) /* iterator on <self:Collection[nullable Object]>*/;
2251 }
2252 var_i = var7;
2253 {
2254 var8 = ((val* (*)(val*))(var_i->class->vft[COLOR_abstract_collection__Iterator__item]))(var_i) /* item on <var_i:Iterator[nullable Object]>*/;
2255 }
2256 var_e = var8;
2257 var9 = NULL;
2258 if (var_e == NULL) {
2259 var10 = 0; /* is null */
2260 } else {
2261 var10 = 1; /* arg is null and recv is not */
2262 }
2263 if (0) {
2264 var11 = ((short int (*)(val*, val*))(var_e->class->vft[COLOR_kernel__Object___33d_61d]))(var_e, var9) /* != on <var_e:nullable Object>*/;
2265 var10 = var11;
2266 }
2267 if (var10){
2268 if (var_e == NULL) {
2269 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2270 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 1979);
2271 show_backtrace(1);
2272 } else {
2273 var12 = ((val* (*)(val*))(var_e->class->vft[COLOR_string__Object__to_s]))(var_e) /* to_s on <var_e:nullable Object>*/;
2274 }
2275 {
2276 string__FlatBuffer__append(var_s, var12); /* Direct call string#FlatBuffer#append on <var_s:FlatBuffer>*/
2277 }
2278 } else {
2279 }
2280 {
2281 ((void (*)(val*))(var_i->class->vft[COLOR_abstract_collection__Iterator__next]))(var_i) /* next on <var_i:Iterator[nullable Object]>*/;
2282 }
2283 for(;;) {
2284 {
2285 var13 = ((short int (*)(val*))(var_i->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_i) /* is_ok on <var_i:Iterator[nullable Object]>*/;
2286 }
2287 if (var13){
2288 {
2289 string__FlatBuffer__append(var_s, var_sep); /* Direct call string#FlatBuffer#append on <var_s:FlatBuffer>*/
2290 }
2291 {
2292 var14 = ((val* (*)(val*))(var_i->class->vft[COLOR_abstract_collection__Iterator__item]))(var_i) /* item on <var_i:Iterator[nullable Object]>*/;
2293 }
2294 var_e = var14;
2295 var15 = NULL;
2296 if (var_e == NULL) {
2297 var16 = 0; /* is null */
2298 } else {
2299 var16 = 1; /* arg is null and recv is not */
2300 }
2301 if (0) {
2302 var17 = ((short int (*)(val*, val*))(var_e->class->vft[COLOR_kernel__Object___33d_61d]))(var_e, var15) /* != on <var_e:nullable Object>*/;
2303 var16 = var17;
2304 }
2305 if (var16){
2306 if (var_e == NULL) {
2307 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2308 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 1986);
2309 show_backtrace(1);
2310 } else {
2311 var18 = ((val* (*)(val*))(var_e->class->vft[COLOR_string__Object__to_s]))(var_e) /* to_s on <var_e:nullable Object>*/;
2312 }
2313 {
2314 string__FlatBuffer__append(var_s, var18); /* Direct call string#FlatBuffer#append on <var_s:FlatBuffer>*/
2315 }
2316 } else {
2317 }
2318 {
2319 ((void (*)(val*))(var_i->class->vft[COLOR_abstract_collection__Iterator__next]))(var_i) /* next on <var_i:Iterator[nullable Object]>*/;
2320 }
2321 } else {
2322 goto BREAK_label;
2323 }
2324 }
2325 BREAK_label: (void)0;
2326 {
2327 var19 = string__FlatBuffer__to_s(var_s);
2328 }
2329 var = var19;
2330 goto RET_LABEL;
2331 RET_LABEL:;
2332 return var;
2333 }
2334 /* method string#Collection#join for (self: Object, Text): String */
2335 val* VIRTUAL_string__Collection__join(val* self, val* p0) {
2336 val* var /* : String */;
2337 val* var1 /* : String */;
2338 var1 = string__Collection__join(self, p0);
2339 var = var1;
2340 RET_LABEL:;
2341 return var;
2342 }
2343 /* method string#Array#to_s for (self: Array[nullable Object]): String */
2344 val* string__Array__to_s(val* self) {
2345 val* var /* : String */;
2346 long var1 /* : Int */;
2347 long var3 /* : Int */;
2348 long var_l /* var l: Int */;
2349 long var4 /* : Int */;
2350 short int var5 /* : Bool */;
2351 short int var6 /* : Bool */;
2352 short int var8 /* : Bool */;
2353 static val* varonce;
2354 val* var9 /* : String */;
2355 char* var10 /* : NativeString */;
2356 long var11 /* : Int */;
2357 val* var12 /* : FlatString */;
2358 long var13 /* : Int */;
2359 short int var14 /* : Bool */;
2360 short int var15 /* : Bool */;
2361 short int var17 /* : Bool */;
2362 long var18 /* : Int */;
2363 val* var19 /* : nullable Object */;
2364 val* var20 /* : null */;
2365 short int var21 /* : Bool */;
2366 short int var22 /* : Bool */;
2367 static val* varonce23;
2368 val* var24 /* : String */;
2369 char* var25 /* : NativeString */;
2370 long var26 /* : Int */;
2371 val* var27 /* : FlatString */;
2372 long var28 /* : Int */;
2373 val* var29 /* : nullable Object */;
2374 val* var30 /* : String */;
2375 val* var31 /* : nullable NativeArray[nullable Object] */;
2376 val* var_its /* var its: nullable NativeArray[nullable Object] */;
2377 val* var32 /* : NativeArray[String] */;
2378 val* var_na /* var na: NativeArray[String] */;
2379 long var33 /* : Int */;
2380 long var_i /* var i: Int */;
2381 long var34 /* : Int */;
2382 long var_sl /* var sl: Int */;
2383 long var35 /* : Int */;
2384 long var_mypos /* var mypos: Int */;
2385 short int var36 /* : Bool */;
2386 short int var38 /* : Bool */;
2387 int cltype;
2388 int idtype;
2389 const char* var_class_name;
2390 short int var39 /* : Bool */;
2391 val* var40 /* : nullable Object */;
2392 val* var42 /* : nullable Object */;
2393 val* var_itsi /* var itsi: nullable Object */;
2394 val* var43 /* : null */;
2395 short int var44 /* : Bool */;
2396 short int var45 /* : Bool */;
2397 long var46 /* : Int */;
2398 long var47 /* : Int */;
2399 short int var49 /* : Bool */;
2400 int cltype50;
2401 int idtype51;
2402 const char* var_class_name52;
2403 long var53 /* : Int */;
2404 val* var54 /* : String */;
2405 val* var_tmp /* var tmp: String */;
2406 long var55 /* : Int */;
2407 long var57 /* : Int */;
2408 long var58 /* : Int */;
2409 short int var60 /* : Bool */;
2410 int cltype61;
2411 int idtype62;
2412 const char* var_class_name63;
2413 long var64 /* : Int */;
2414 short int var66 /* : Bool */;
2415 int cltype67;
2416 int idtype68;
2417 const struct type* type_struct;
2418 const char* var_class_name69;
2419 long var70 /* : Int */;
2420 long var71 /* : Int */;
2421 short int var73 /* : Bool */;
2422 int cltype74;
2423 int idtype75;
2424 const char* var_class_name76;
2425 long var77 /* : Int */;
2426 long var78 /* : Int */;
2427 long var79 /* : Int */;
2428 short int var81 /* : Bool */;
2429 int cltype82;
2430 int idtype83;
2431 const char* var_class_name84;
2432 long var85 /* : Int */;
2433 char* var87 /* : NativeString */;
2434 long var88 /* : Int */;
2435 long var89 /* : Int */;
2436 short int var91 /* : Bool */;
2437 int cltype92;
2438 int idtype93;
2439 const char* var_class_name94;
2440 long var95 /* : Int */;
2441 char* var96 /* : NativeString */;
2442 char* var98 /* : NativeString */;
2443 char* var_ns /* var ns: NativeString */;
2444 char var99 /* : Char */;
2445 long var101 /* : Int */;
2446 long var102 /* : Int */;
2447 long var_off /* var off: Int */;
2448 short int var103 /* : Bool */;
2449 short int var105 /* : Bool */;
2450 int cltype106;
2451 int idtype107;
2452 const char* var_class_name108;
2453 short int var109 /* : Bool */;
2454 val* var110 /* : nullable Object */;
2455 val* var112 /* : String */;
2456 val* var_tmp113 /* var tmp: String */;
2457 long var114 /* : Int */;
2458 long var116 /* : Int */;
2459 long var_tpl /* var tpl: Int */;
2460 short int var117 /* : Bool */;
2461 int cltype118;
2462 int idtype119;
2463 char* var120 /* : NativeString */;
2464 char* var122 /* : NativeString */;
2465 long var123 /* : Int */;
2466 long var125 /* : Int */;
2467 long var127 /* : Int */;
2468 short int var129 /* : Bool */;
2469 int cltype130;
2470 int idtype131;
2471 const char* var_class_name132;
2472 long var133 /* : Int */;
2473 val* var134 /* : Iterator[Text] */;
2474 val* var_ /* var : Iterator[Text] */;
2475 val* var135 /* : Iterator[nullable Object] */;
2476 val* var_136 /* var : Iterator[Text] */;
2477 short int var137 /* : Bool */;
2478 val* var138 /* : nullable Object */;
2479 val* var_j /* var j: Text */;
2480 short int var139 /* : Bool */;
2481 int cltype140;
2482 int idtype141;
2483 const char* var_class_name142;
2484 val* var_s /* var s: FlatString */;
2485 long var143 /* : Int */;
2486 long var145 /* : Int */;
2487 long var_slen /* var slen: Int */;
2488 char* var146 /* : NativeString */;
2489 char* var148 /* : NativeString */;
2490 long var149 /* : Int */;
2491 long var151 /* : Int */;
2492 long var153 /* : Int */;
2493 short int var155 /* : Bool */;
2494 int cltype156;
2495 int idtype157;
2496 const char* var_class_name158;
2497 long var159 /* : Int */;
2498 long var162 /* : Int */;
2499 long var163 /* : Int */;
2500 short int var165 /* : Bool */;
2501 int cltype166;
2502 int idtype167;
2503 const char* var_class_name168;
2504 long var169 /* : Int */;
2505 val* var171 /* : FlatString */;
2506 {
2507 { /* Inline array#AbstractArrayRead#length (self) on <self:Array[nullable Object]> */
2508 var3 = self->attrs[COLOR_array__AbstractArrayRead___length].l; /* _length on <self:Array[nullable Object]> */
2509 var1 = var3;
2510 RET_LABEL2:(void)0;
2511 }
2512 }
2513 var_l = var1;
2514 var4 = 0;
2515 {
2516 { /* Inline kernel#Int#== (var_l,var4) on <var_l:Int> */
2517 var8 = var_l == var4;
2518 var6 = var8;
2519 goto RET_LABEL7;
2520 RET_LABEL7:(void)0;
2521 }
2522 var5 = var6;
2523 }
2524 if (var5){
2525 if (varonce) {
2526 var9 = varonce;
2527 } else {
2528 var10 = "";
2529 var11 = 0;
2530 var12 = string__NativeString__to_s_with_length(var10, var11);
2531 var9 = var12;
2532 varonce = var9;
2533 }
2534 var = var9;
2535 goto RET_LABEL;
2536 } else {
2537 }
2538 var13 = 1;
2539 {
2540 { /* Inline kernel#Int#== (var_l,var13) on <var_l:Int> */
2541 var17 = var_l == var13;
2542 var15 = var17;
2543 goto RET_LABEL16;
2544 RET_LABEL16:(void)0;
2545 }
2546 var14 = var15;
2547 }
2548 if (var14){
2549 var18 = 0;
2550 {
2551 var19 = array__Array___91d_93d(self, var18);
2552 }
2553 var20 = NULL;
2554 if (var19 == NULL) {
2555 var21 = 1; /* is null */
2556 } else {
2557 var21 = 0; /* arg is null but recv is not */
2558 }
2559 if (0) {
2560 var22 = ((short int (*)(val*, val*))(var19->class->vft[COLOR_kernel__Object___61d_61d]))(var19, var20) /* == on <var19:nullable Object>*/;
2561 var21 = var22;
2562 }
2563 if (var21){
2564 if (varonce23) {
2565 var24 = varonce23;
2566 } else {
2567 var25 = "";
2568 var26 = 0;
2569 var27 = string__NativeString__to_s_with_length(var25, var26);
2570 var24 = var27;
2571 varonce23 = var24;
2572 }
2573 var = var24;
2574 goto RET_LABEL;
2575 } else {
2576 var28 = 0;
2577 {
2578 var29 = array__Array___91d_93d(self, var28);
2579 }
2580 if (var29 == NULL) {
2581 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2582 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 2000);
2583 show_backtrace(1);
2584 } else {
2585 var30 = ((val* (*)(val*))(var29->class->vft[COLOR_string__Object__to_s]))(var29) /* to_s on <var29:nullable Object>*/;
2586 }
2587 var = var30;
2588 goto RET_LABEL;
2589 }
2590 } else {
2591 }
2592 var31 = self->attrs[COLOR_array__Array___items].val; /* _items on <self:Array[nullable Object]> */
2593 var_its = var31;
2594 var32 = NEW_array__NativeArray(var_l, &type_array__NativeArraystring__String);
2595 var_na = var32;
2596 var33 = 0;
2597 var_i = var33;
2598 var34 = 0;
2599 var_sl = var34;
2600 var35 = 0;
2601 var_mypos = var35;
2602 for(;;) {
2603 {
2604 { /* Inline kernel#Int#< (var_i,var_l) on <var_i:Int> */
2605 /* Covariant cast for argument 0 (i) <var_l:Int> isa OTHER */
2606 /* <var_l:Int> isa OTHER */
2607 var38 = 1; /* easy <var_l:Int> isa OTHER*/
2608 if (unlikely(!var38)) {
2609 var_class_name = type_kernel__Int.name;
2610 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2611 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371);
2612 show_backtrace(1);
2613 }
2614 var39 = var_i < var_l;
2615 var36 = var39;
2616 goto RET_LABEL37;
2617 RET_LABEL37:(void)0;
2618 }
2619 }
2620 if (var36){
2621 if (var_its == NULL) {
2622 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2623 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 2007);
2624 show_backtrace(1);
2625 } else {
2626 { /* Inline array#NativeArray#[] (var_its,var_i) on <var_its:nullable NativeArray[nullable Object]> */
2627 var42 = ((struct instance_array__NativeArray*)var_its)->values[var_i];
2628 var40 = var42;
2629 goto RET_LABEL41;
2630 RET_LABEL41:(void)0;
2631 }
2632 }
2633 var_itsi = var40;
2634 var43 = NULL;
2635 if (var_itsi == NULL) {
2636 var44 = 1; /* is null */
2637 } else {
2638 var44 = 0; /* arg is null but recv is not */
2639 }
2640 if (0) {
2641 var45 = ((short int (*)(val*, val*))(var_itsi->class->vft[COLOR_kernel__Object___61d_61d]))(var_itsi, var43) /* == on <var_itsi:nullable Object>*/;
2642 var44 = var45;
2643 }
2644 if (var44){
2645 var46 = 1;
2646 {
2647 { /* Inline kernel#Int#+ (var_i,var46) on <var_i:Int> */
2648 /* Covariant cast for argument 0 (i) <var46:Int> isa OTHER */
2649 /* <var46:Int> isa OTHER */
2650 var49 = 1; /* easy <var46:Int> isa OTHER*/
2651 if (unlikely(!var49)) {
2652 var_class_name52 = type_kernel__Int.name;
2653 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name52);
2654 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
2655 show_backtrace(1);
2656 }
2657 var53 = var_i + var46;
2658 var47 = var53;
2659 goto RET_LABEL48;
2660 RET_LABEL48:(void)0;
2661 }
2662 }
2663 var_i = var47;
2664 goto BREAK_label;
2665 } else {
2666 }
2667 if (var_itsi == NULL) {
2668 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2669 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 2012);
2670 show_backtrace(1);
2671 } else {
2672 var54 = ((val* (*)(val*))(var_itsi->class->vft[COLOR_string__Object__to_s]))(var_itsi) /* to_s on <var_itsi:nullable Object>*/;
2673 }
2674 var_tmp = var54;
2675 {
2676 { /* Inline string#FlatText#length (var_tmp) on <var_tmp:String> */
2677 var57 = var_tmp->attrs[COLOR_string__FlatText___length].l; /* _length on <var_tmp:String> */
2678 var55 = var57;
2679 RET_LABEL56:(void)0;
2680 }
2681 }
2682 {
2683 { /* Inline kernel#Int#+ (var_sl,var55) on <var_sl:Int> */
2684 /* Covariant cast for argument 0 (i) <var55:Int> isa OTHER */
2685 /* <var55:Int> isa OTHER */
2686 var60 = 1; /* easy <var55:Int> isa OTHER*/
2687 if (unlikely(!var60)) {
2688 var_class_name63 = type_kernel__Int.name;
2689 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name63);
2690 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
2691 show_backtrace(1);
2692 }
2693 var64 = var_sl + var55;
2694 var58 = var64;
2695 goto RET_LABEL59;
2696 RET_LABEL59:(void)0;
2697 }
2698 }
2699 var_sl = var58;
2700 {
2701 { /* Inline array#NativeArray#[]= (var_na,var_mypos,var_tmp) on <var_na:NativeArray[String]> */
2702 /* Covariant cast for argument 1 (item) <var_tmp:String> isa E */
2703 /* <var_tmp:String> isa E */
2704 type_struct = var_na->type->resolution_table->types[COLOR_array__NativeArray_FT0];
2705 cltype67 = type_struct->color;
2706 idtype68 = type_struct->id;
2707 if(cltype67 >= var_tmp->type->table_size) {
2708 var66 = 0;
2709 } else {
2710 var66 = var_tmp->type->type_table[cltype67] == idtype68;
2711 }
2712 if (unlikely(!var66)) {
2713 var_class_name69 = var_tmp == NULL ? "null" : var_tmp->type->name;
2714 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name69);
2715 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/collection/array.nit", 778);
2716 show_backtrace(1);
2717 }
2718 ((struct instance_array__NativeArray*)var_na)->values[var_mypos]=var_tmp;
2719 RET_LABEL65:(void)0;
2720 }
2721 }
2722 var70 = 1;
2723 {
2724 { /* Inline kernel#Int#+ (var_i,var70) on <var_i:Int> */
2725 /* Covariant cast for argument 0 (i) <var70:Int> isa OTHER */
2726 /* <var70:Int> isa OTHER */
2727 var73 = 1; /* easy <var70:Int> isa OTHER*/
2728 if (unlikely(!var73)) {
2729 var_class_name76 = type_kernel__Int.name;
2730 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name76);
2731 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
2732 show_backtrace(1);
2733 }
2734 var77 = var_i + var70;
2735 var71 = var77;
2736 goto RET_LABEL72;
2737 RET_LABEL72:(void)0;
2738 }
2739 }
2740 var_i = var71;
2741 var78 = 1;
2742 {
2743 { /* Inline kernel#Int#+ (var_mypos,var78) on <var_mypos:Int> */
2744 /* Covariant cast for argument 0 (i) <var78:Int> isa OTHER */
2745 /* <var78:Int> isa OTHER */
2746 var81 = 1; /* easy <var78:Int> isa OTHER*/
2747 if (unlikely(!var81)) {
2748 var_class_name84 = type_kernel__Int.name;
2749 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name84);
2750 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
2751 show_backtrace(1);
2752 }
2753 var85 = var_mypos + var78;
2754 var79 = var85;
2755 goto RET_LABEL80;
2756 RET_LABEL80:(void)0;
2757 }
2758 }
2759 var_mypos = var79;
2760 } else {
2761 goto BREAK_label86;
2762 }
2763 BREAK_label: (void)0;
2764 }
2765 BREAK_label86: (void)0;
2766 var87 = NULL/*special!*/;
2767 var88 = 1;
2768 {
2769 { /* Inline kernel#Int#+ (var_sl,var88) on <var_sl:Int> */
2770 /* Covariant cast for argument 0 (i) <var88:Int> isa OTHER */
2771 /* <var88:Int> isa OTHER */
2772 var91 = 1; /* easy <var88:Int> isa OTHER*/
2773 if (unlikely(!var91)) {
2774 var_class_name94 = type_kernel__Int.name;
2775 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name94);
2776 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
2777 show_backtrace(1);
2778 }
2779 var95 = var_sl + var88;
2780 var89 = var95;
2781 goto RET_LABEL90;
2782 RET_LABEL90:(void)0;
2783 }
2784 }
2785 {
2786 { /* Inline string#NativeString#new (var87,var89) on <var87:NativeString> */
2787 var98 = (char*)nit_alloc(var89);
2788 var96 = var98;
2789 goto RET_LABEL97;
2790 RET_LABEL97:(void)0;
2791 }
2792 }
2793 var_ns = var96;
2794 var99 = '\0';
2795 {
2796 { /* Inline string#NativeString#[]= (var_ns,var_sl,var99) on <var_ns:NativeString> */
2797 var_ns[var_sl]=var99;
2798 RET_LABEL100:(void)0;
2799 }
2800 }
2801 var101 = 0;
2802 var_i = var101;
2803 var102 = 0;
2804 var_off = var102;
2805 for(;;) {
2806 {
2807 { /* Inline kernel#Int#< (var_i,var_mypos) on <var_i:Int> */
2808 /* Covariant cast for argument 0 (i) <var_mypos:Int> isa OTHER */
2809 /* <var_mypos:Int> isa OTHER */
2810 var105 = 1; /* easy <var_mypos:Int> isa OTHER*/
2811 if (unlikely(!var105)) {
2812 var_class_name108 = type_kernel__Int.name;
2813 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name108);
2814 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371);
2815 show_backtrace(1);
2816 }
2817 var109 = var_i < var_mypos;
2818 var103 = var109;
2819 goto RET_LABEL104;
2820 RET_LABEL104:(void)0;
2821 }
2822 }
2823 if (var103){
2824 {
2825 { /* Inline array#NativeArray#[] (var_na,var_i) on <var_na:NativeArray[String]> */
2826 var112 = ((struct instance_array__NativeArray*)var_na)->values[var_i];
2827 var110 = var112;
2828 goto RET_LABEL111;
2829 RET_LABEL111:(void)0;
2830 }
2831 }
2832 var_tmp113 = var110;
2833 {
2834 { /* Inline string#FlatText#length (var_tmp113) on <var_tmp113:String> */
2835 var116 = var_tmp113->attrs[COLOR_string__FlatText___length].l; /* _length on <var_tmp113:String> */
2836 var114 = var116;
2837 RET_LABEL115:(void)0;
2838 }
2839 }
2840 var_tpl = var114;
2841 /* <var_tmp113:String> isa FlatString */
2842 cltype118 = type_string__FlatString.color;
2843 idtype119 = type_string__FlatString.id;
2844 if(cltype118 >= var_tmp113->type->table_size) {
2845 var117 = 0;
2846 } else {
2847 var117 = var_tmp113->type->type_table[cltype118] == idtype119;
2848 }
2849 if (var117){
2850 {
2851 { /* Inline string#FlatText#items (var_tmp113) on <var_tmp113:String(FlatString)> */
2852 var122 = var_tmp113->attrs[COLOR_string__FlatText___items].str; /* _items on <var_tmp113:String(FlatString)> */
2853 var120 = var122;
2854 RET_LABEL121:(void)0;
2855 }
2856 }
2857 {
2858 { /* Inline string#FlatString#index_from (var_tmp113) on <var_tmp113:String(FlatString)> */
2859 var125 = var_tmp113->attrs[COLOR_string__FlatString___index_from].l; /* _index_from on <var_tmp113:String(FlatString)> */
2860 var123 = var125;
2861 RET_LABEL124:(void)0;
2862 }
2863 }
2864 {
2865 { /* Inline string#NativeString#copy_to (var120,var_ns,var_tpl,var123,var_off) on <var120:NativeString> */
2866 memmove(var_ns+var_off,var120+var123,var_tpl);
2867 RET_LABEL126:(void)0;
2868 }
2869 }
2870 {
2871 { /* Inline kernel#Int#+ (var_off,var_tpl) on <var_off:Int> */
2872 /* Covariant cast for argument 0 (i) <var_tpl:Int> isa OTHER */
2873 /* <var_tpl:Int> isa OTHER */
2874 var129 = 1; /* easy <var_tpl:Int> isa OTHER*/
2875 if (unlikely(!var129)) {
2876 var_class_name132 = type_kernel__Int.name;
2877 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name132);
2878 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
2879 show_backtrace(1);
2880 }
2881 var133 = var_off + var_tpl;
2882 var127 = var133;
2883 goto RET_LABEL128;
2884 RET_LABEL128:(void)0;
2885 }
2886 }
2887 var_off = var127;
2888 } else {
2889 {
2890 var134 = string__FlatString__substrings(var_tmp113);
2891 }
2892 var_ = var134;
2893 {
2894 var135 = abstract_collection__Iterator__iterator(var_);
2895 }
2896 var_136 = var135;
2897 for(;;) {
2898 {
2899 var137 = ((short int (*)(val*))(var_136->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_136) /* is_ok on <var_136:Iterator[Text]>*/;
2900 }
2901 if (var137){
2902 {
2903 var138 = ((val* (*)(val*))(var_136->class->vft[COLOR_abstract_collection__Iterator__item]))(var_136) /* item on <var_136:Iterator[Text]>*/;
2904 }
2905 var_j = var138;
2906 /* <var_j:Text> isa FlatString */
2907 cltype140 = type_string__FlatString.color;
2908 idtype141 = type_string__FlatString.id;
2909 if(cltype140 >= var_j->type->table_size) {
2910 var139 = 0;
2911 } else {
2912 var139 = var_j->type->type_table[cltype140] == idtype141;
2913 }
2914 if (unlikely(!var139)) {
2915 var_class_name142 = var_j == NULL ? "null" : var_j->type->name;
2916 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "FlatString", var_class_name142);
2917 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 2030);
2918 show_backtrace(1);
2919 }
2920 var_s = var_j;
2921 {
2922 { /* Inline string#FlatText#length (var_s) on <var_s:FlatString> */
2923 var145 = var_s->attrs[COLOR_string__FlatText___length].l; /* _length on <var_s:FlatString> */
2924 var143 = var145;
2925 RET_LABEL144:(void)0;
2926 }
2927 }
2928 var_slen = var143;
2929 {
2930 { /* Inline string#FlatText#items (var_s) on <var_s:FlatString> */
2931 var148 = var_s->attrs[COLOR_string__FlatText___items].str; /* _items on <var_s:FlatString> */
2932 var146 = var148;
2933 RET_LABEL147:(void)0;
2934 }
2935 }
2936 {
2937 { /* Inline string#FlatString#index_from (var_s) on <var_s:FlatString> */
2938 var151 = var_s->attrs[COLOR_string__FlatString___index_from].l; /* _index_from on <var_s:FlatString> */
2939 var149 = var151;
2940 RET_LABEL150:(void)0;
2941 }
2942 }
2943 {
2944 { /* Inline string#NativeString#copy_to (var146,var_ns,var_slen,var149,var_off) on <var146:NativeString> */
2945 memmove(var_ns+var_off,var146+var149,var_slen);
2946 RET_LABEL152:(void)0;
2947 }
2948 }
2949 {
2950 { /* Inline kernel#Int#+ (var_off,var_slen) on <var_off:Int> */
2951 /* Covariant cast for argument 0 (i) <var_slen:Int> isa OTHER */
2952 /* <var_slen:Int> isa OTHER */
2953 var155 = 1; /* easy <var_slen:Int> isa OTHER*/
2954 if (unlikely(!var155)) {
2955 var_class_name158 = type_kernel__Int.name;
2956 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name158);
2957 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
2958 show_backtrace(1);
2959 }
2960 var159 = var_off + var_slen;
2961 var153 = var159;
2962 goto RET_LABEL154;
2963 RET_LABEL154:(void)0;
2964 }
2965 }
2966 var_off = var153;
2967 {
2968 ((void (*)(val*))(var_136->class->vft[COLOR_abstract_collection__Iterator__next]))(var_136) /* next on <var_136:Iterator[Text]>*/;
2969 }
2970 } else {
2971 goto BREAK_label160;
2972 }
2973 }
2974 BREAK_label160: (void)0;
2975 {
2976 { /* Inline abstract_collection#Iterator#finish (var_136) on <var_136:Iterator[Text]> */
2977 RET_LABEL161:(void)0;
2978 }
2979 }
2980 }
2981 var162 = 1;
2982 {
2983 { /* Inline kernel#Int#+ (var_i,var162) on <var_i:Int> */
2984 /* Covariant cast for argument 0 (i) <var162:Int> isa OTHER */
2985 /* <var162:Int> isa OTHER */
2986 var165 = 1; /* easy <var162:Int> isa OTHER*/
2987 if (unlikely(!var165)) {
2988 var_class_name168 = type_kernel__Int.name;
2989 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name168);
2990 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
2991 show_backtrace(1);
2992 }
2993 var169 = var_i + var162;
2994 var163 = var169;
2995 goto RET_LABEL164;
2996 RET_LABEL164:(void)0;
2997 }
2998 }
2999 var_i = var163;
3000 } else {
3001 goto BREAK_label170;
3002 }
3003 }
3004 BREAK_label170: (void)0;
3005 {
3006 var171 = string__NativeString__to_s_with_length(var_ns, var_sl);
3007 }
3008 var = var171;
3009 goto RET_LABEL;
3010 RET_LABEL:;
3011 return var;
3012 }
3013 /* method string#Array#to_s for (self: Object): String */
3014 val* VIRTUAL_string__Array__to_s(val* self) {
3015 val* var /* : String */;
3016 val* var1 /* : String */;
3017 var1 = string__Array__to_s(self);
3018 var = var1;
3019 RET_LABEL:;
3020 return var;
3021 }
3022 /* method string#NativeString#new for (self: NativeString, Int): NativeString */
3023 char* string__NativeString__new(char* self, long p0) {
3024 char* var /* : NativeString */;
3025 char* var1 /* : NativeString */;
3026 var1 = (char*)nit_alloc(p0);
3027 var = var1;
3028 goto RET_LABEL;
3029 RET_LABEL:;
3030 return var;
3031 }
3032 /* method string#NativeString#new for (self: Object, Int): NativeString */
3033 char* VIRTUAL_string__NativeString__new(val* self, long p0) {
3034 char* var /* : NativeString */;
3035 char* var1 /* : NativeString */;
3036 char* var3 /* : NativeString */;
3037 char* var4 /* : NativeString */;
3038 { /* Inline string#NativeString#new (self,p0) on <self:Object(NativeString)> */
3039 var3 = ((struct instance_string__NativeString*)self)->value; /* autounbox from Object to NativeString */;
3040 var4 = (char*)nit_alloc(p0);
3041 var1 = var4;
3042 goto RET_LABEL2;
3043 RET_LABEL2:(void)0;
3044 }
3045 var = var1;
3046 RET_LABEL:;
3047 return var;
3048 }
3049 /* method string#NativeString#[] for (self: NativeString, Int): Char */
3050 char string__NativeString___91d_93d(char* self, long p0) {
3051 char var /* : Char */;
3052 char var1 /* : Char */;
3053 var1 = self[p0];
3054 var = var1;
3055 goto RET_LABEL;
3056 RET_LABEL:;
3057 return var;
3058 }
3059 /* method string#NativeString#[] for (self: Object, Int): Char */
3060 char VIRTUAL_string__NativeString___91d_93d(val* self, long p0) {
3061 char var /* : Char */;
3062 char var1 /* : Char */;
3063 char* var3 /* : NativeString */;
3064 char var4 /* : Char */;
3065 { /* Inline string#NativeString#[] (self,p0) on <self:Object(NativeString)> */
3066 var3 = ((struct instance_string__NativeString*)self)->value; /* autounbox from Object to NativeString */;
3067 var4 = var3[p0];
3068 var1 = var4;
3069 goto RET_LABEL2;
3070 RET_LABEL2:(void)0;
3071 }
3072 var = var1;
3073 RET_LABEL:;
3074 return var;
3075 }
3076 /* method string#NativeString#[]= for (self: NativeString, Int, Char) */
3077 void string__NativeString___91d_93d_61d(char* self, long p0, char p1) {
3078 self[p0]=p1;
3079 RET_LABEL:;
3080 }
3081 /* method string#NativeString#[]= for (self: Object, Int, Char) */
3082 void VIRTUAL_string__NativeString___91d_93d_61d(val* self, long p0, char p1) {
3083 char* var /* : NativeString */;
3084 { /* Inline string#NativeString#[]= (self,p0,p1) on <self:Object(NativeString)> */
3085 var = ((struct instance_string__NativeString*)self)->value; /* autounbox from Object to NativeString */;
3086 var[p0]=p1;
3087 RET_LABEL1:(void)0;
3088 }
3089 RET_LABEL:;
3090 }
3091 /* method string#NativeString#copy_to for (self: NativeString, NativeString, Int, Int, Int) */
3092 void string__NativeString__copy_to(char* self, char* p0, long p1, long p2, long p3) {
3093 memmove(p0+p3,self+p2,p1);
3094 RET_LABEL:;
3095 }
3096 /* method string#NativeString#copy_to for (self: Object, NativeString, Int, Int, Int) */
3097 void VIRTUAL_string__NativeString__copy_to(val* self, char* p0, long p1, long p2, long p3) {
3098 char* var /* : NativeString */;
3099 { /* Inline string#NativeString#copy_to (self,p0,p1,p2,p3) on <self:Object(NativeString)> */
3100 var = ((struct instance_string__NativeString*)self)->value; /* autounbox from Object to NativeString */;
3101 memmove(p0+p3,var+p2,p1);
3102 RET_LABEL1:(void)0;
3103 }
3104 RET_LABEL:;
3105 }
3106 /* method string#NativeString#cstring_length for (self: NativeString): Int */
3107 long string__NativeString__cstring_length(char* self) {
3108 long var /* : Int */;
3109 long var1 /* : Int */;
3110 long var_l /* var l: Int */;
3111 char var2 /* : Char */;
3112 char var4 /* : Char */;
3113 char var5 /* : Char */;
3114 short int var6 /* : Bool */;
3115 short int var7 /* : Bool */;
3116 short int var9 /* : Bool */;
3117 short int var10 /* : Bool */;
3118 long var11 /* : Int */;
3119 long var12 /* : Int */;
3120 short int var14 /* : Bool */;
3121 int cltype;
3122 int idtype;
3123 const char* var_class_name;
3124 long var15 /* : Int */;
3125 var1 = 0;
3126 var_l = var1;
3127 for(;;) {
3128 {
3129 { /* Inline string#NativeString#[] (self,var_l) on <self:NativeString> */
3130 var4 = self[var_l];
3131 var2 = var4;
3132 goto RET_LABEL3;
3133 RET_LABEL3:(void)0;
3134 }
3135 }
3136 var5 = '\0';
3137 {
3138 { /* Inline kernel#Char#!= (var2,var5) on <var2:Char> */
3139 var9 = var2 == var5;
3140 var10 = !var9;
3141 var7 = var10;
3142 goto RET_LABEL8;
3143 RET_LABEL8:(void)0;
3144 }
3145 var6 = var7;
3146 }
3147 if (var6){
3148 var11 = 1;
3149 {
3150 { /* Inline kernel#Int#+ (var_l,var11) on <var_l:Int> */
3151 /* Covariant cast for argument 0 (i) <var11:Int> isa OTHER */
3152 /* <var11:Int> isa OTHER */
3153 var14 = 1; /* easy <var11:Int> isa OTHER*/
3154 if (unlikely(!var14)) {
3155 var_class_name = type_kernel__Int.name;
3156 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3157 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
3158 show_backtrace(1);
3159 }
3160 var15 = var_l + var11;
3161 var12 = var15;
3162 goto RET_LABEL13;
3163 RET_LABEL13:(void)0;
3164 }
3165 }
3166 var_l = var12;
3167 } else {
3168 goto BREAK_label;
3169 }
3170 }
3171 BREAK_label: (void)0;
3172 var = var_l;
3173 goto RET_LABEL;
3174 RET_LABEL:;
3175 return var;
3176 }
3177 /* method string#NativeString#cstring_length for (self: Object): Int */
3178 long VIRTUAL_string__NativeString__cstring_length(val* self) {
3179 long var /* : Int */;
3180 long var1 /* : Int */;
3181 char* var2 /* : NativeString */;
3182 var2 = ((struct instance_string__NativeString*)self)->value; /* autounbox from Object to NativeString */;
3183 var1 = string__NativeString__cstring_length(var2);
3184 var = var1;
3185 RET_LABEL:;
3186 return var;
3187 }
3188 /* method string#NativeString#atoi for (self: NativeString): Int */
3189 long string__NativeString__atoi(char* self) {
3190 long var /* : Int */;
3191 long var1 /* : Int */;
3192 var1 = atoi(self);;
3193 var = var1;
3194 goto RET_LABEL;
3195 RET_LABEL:;
3196 return var;
3197 }
3198 /* method string#NativeString#atoi for (self: Object): Int */
3199 long VIRTUAL_string__NativeString__atoi(val* self) {
3200 long var /* : Int */;
3201 long var1 /* : Int */;
3202 char* var3 /* : NativeString */;
3203 long var4 /* : Int */;
3204 { /* Inline string#NativeString#atoi (self) on <self:Object(NativeString)> */
3205 var3 = ((struct instance_string__NativeString*)self)->value; /* autounbox from Object to NativeString */;
3206 var4 = atoi(var3);;
3207 var1 = var4;
3208 goto RET_LABEL2;
3209 RET_LABEL2:(void)0;
3210 }
3211 var = var1;
3212 RET_LABEL:;
3213 return var;
3214 }
3215 /* method string#NativeString#atof for (self: NativeString): Float */
3216 double string__NativeString__atof(char* self) {
3217 double var /* : Float */;
3218 double var1 /* : Float for extern */;
3219 var1 = atof(self);
3220 var = var1;
3221 goto RET_LABEL;
3222 RET_LABEL:;
3223 return var;
3224 }
3225 /* method string#NativeString#atof for (self: Object): Float */
3226 double VIRTUAL_string__NativeString__atof(val* self) {
3227 double var /* : Float */;
3228 double var1 /* : Float */;
3229 double var3 /* : Float for extern */;
3230 char* var4 /* : NativeString */;
3231 { /* Inline string#NativeString#atof (self) on <self:Object(NativeString)> */
3232 var4 = ((struct instance_string__NativeString*)self)->value; /* autounbox from Object to NativeString */;
3233 var3 = atof(var4);
3234 var1 = var3;
3235 goto RET_LABEL2;
3236 RET_LABEL2:(void)0;
3237 }
3238 var = var1;
3239 RET_LABEL:;
3240 return var;
3241 }
3242 /* method string#NativeString#to_s for (self: NativeString): String */
3243 val* string__NativeString__to_s(char* self) {
3244 val* var /* : String */;
3245 long var1 /* : Int */;
3246 val* var2 /* : FlatString */;
3247 {
3248 var1 = string__NativeString__cstring_length(self);
3249 }
3250 {
3251 var2 = string__NativeString__to_s_with_length(self, var1);
3252 }
3253 var = var2;
3254 goto RET_LABEL;
3255 RET_LABEL:;
3256 return var;
3257 }
3258 /* method string#NativeString#to_s for (self: Object): String */
3259 val* VIRTUAL_string__NativeString__to_s(val* self) {
3260 val* var /* : String */;
3261 val* var1 /* : String */;
3262 char* var2 /* : NativeString */;
3263 var2 = ((struct instance_string__NativeString*)self)->value; /* autounbox from Object to NativeString */;
3264 var1 = string__NativeString__to_s(var2);
3265 var = var1;
3266 RET_LABEL:;
3267 return var;
3268 }
3269 /* method string#NativeString#to_s_with_length for (self: NativeString, Int): FlatString */
3270 val* string__NativeString__to_s_with_length(char* self, long p0) {
3271 val* var /* : FlatString */;
3272 long var_length /* var length: Int */;
3273 long var1 /* : Int */;
3274 short int var2 /* : Bool */;
3275 short int var4 /* : Bool */;
3276 int cltype;
3277 int idtype;
3278 const char* var_class_name;
3279 short int var5 /* : Bool */;
3280 val* var6 /* : FlatString */;
3281 long var7 /* : Int */;
3282 long var8 /* : Int */;
3283 long var9 /* : Int */;
3284 short int var11 /* : Bool */;
3285 int cltype12;
3286 int idtype13;
3287 const char* var_class_name14;
3288 long var15 /* : Int */;
3289 val* var_str /* var str: FlatString */;
3290 val* var17 /* : nullable NativeString */;
3291 var_length = p0;
3292 var1 = 0;
3293 {
3294 { /* Inline kernel#Int#>= (var_length,var1) on <var_length:Int> */
3295 /* Covariant cast for argument 0 (i) <var1:Int> isa OTHER */
3296 /* <var1:Int> isa OTHER */
3297 var4 = 1; /* easy <var1:Int> isa OTHER*/
3298 if (unlikely(!var4)) {
3299 var_class_name = type_kernel__Int.name;
3300 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3301 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 372);
3302 show_backtrace(1);
3303 }
3304 var5 = var_length >= var1;
3305 var2 = var5;
3306 goto RET_LABEL3;
3307 RET_LABEL3:(void)0;
3308 }
3309 }
3310 if (unlikely(!var2)) {
3311 PRINT_ERROR("Runtime error: %s", "Assert failed");
3312 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 2106);
3313 show_backtrace(1);
3314 }
3315 var6 = NEW_string__FlatString(&type_string__FlatString);
3316 var7 = 0;
3317 var8 = 1;
3318 {
3319 { /* Inline kernel#Int#- (var_length,var8) on <var_length:Int> */
3320 /* Covariant cast for argument 0 (i) <var8:Int> isa OTHER */
3321 /* <var8:Int> isa OTHER */
3322 var11 = 1; /* easy <var8:Int> isa OTHER*/
3323 if (unlikely(!var11)) {
3324 var_class_name14 = type_kernel__Int.name;
3325 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name14);
3326 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377);
3327 show_backtrace(1);
3328 }
3329 var15 = var_length - var8;
3330 var9 = var15;
3331 goto RET_LABEL10;
3332 RET_LABEL10:(void)0;
3333 }
3334 }
3335 {
3336 string__FlatString__with_infos(var6, self, var_length, var7, var9); /* Direct call string#FlatString#with_infos on <var6:FlatString>*/
3337 }
3338 var_str = var6;
3339 {
3340 { /* Inline string#FlatText#real_items= (var_str,self) on <var_str:FlatString> */
3341 var17 = BOX_string__NativeString(self); /* autobox from NativeString to nullable NativeString */
3342 var_str->attrs[COLOR_string__FlatText___real_items].val = var17; /* _real_items on <var_str:FlatString> */
3343 RET_LABEL16:(void)0;
3344 }
3345 }
3346 var = var_str;
3347 goto RET_LABEL;
3348 RET_LABEL:;
3349 return var;
3350 }
3351 /* method string#NativeString#to_s_with_length for (self: Object, Int): FlatString */
3352 val* VIRTUAL_string__NativeString__to_s_with_length(val* self, long p0) {
3353 val* var /* : FlatString */;
3354 val* var1 /* : FlatString */;
3355 char* var2 /* : NativeString */;
3356 var2 = ((struct instance_string__NativeString*)self)->value; /* autounbox from Object to NativeString */;
3357 var1 = string__NativeString__to_s_with_length(var2, p0);
3358 var = var1;
3359 RET_LABEL:;
3360 return var;
3361 }
3362 /* method string#NativeString#to_s_with_copy for (self: NativeString): FlatString */
3363 val* string__NativeString__to_s_with_copy(char* self) {
3364 val* var /* : FlatString */;
3365 long var1 /* : Int */;
3366 long var_length /* var length: Int */;
3367 long var2 /* : Int */;
3368 long var3 /* : Int */;
3369 short int var5 /* : Bool */;
3370 int cltype;
3371 int idtype;
3372 const char* var_class_name;
3373 long var6 /* : Int */;
3374 char* var7 /* : NativeString */;
3375 val* var9 /* : StringCapable */;
3376 char* var10 /* : NativeString */;
3377 char* var_new_self /* var new_self: NativeString */;
3378 long var11 /* : Int */;
3379 long var12 /* : Int */;
3380 val* var14 /* : FlatString */;
3381 long var15 /* : Int */;
3382 long var16 /* : Int */;
3383 long var17 /* : Int */;
3384 short int var19 /* : Bool */;
3385 int cltype20;
3386 int idtype21;
3387 const char* var_class_name22;
3388 long var23 /* : Int */;
3389 val* var_str /* var str: FlatString */;
3390 val* var25 /* : nullable NativeString */;
3391 {
3392 var1 = string__NativeString__cstring_length(self);
3393 }
3394 var_length = var1;
3395 var2 = 1;
3396 {
3397 { /* Inline kernel#Int#+ (var_length,var2) on <var_length:Int> */
3398 /* Covariant cast for argument 0 (i) <var2:Int> isa OTHER */
3399 /* <var2:Int> isa OTHER */
3400 var5 = 1; /* easy <var2:Int> isa OTHER*/
3401 if (unlikely(!var5)) {
3402 var_class_name = type_kernel__Int.name;
3403 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3404 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
3405 show_backtrace(1);
3406 }
3407 var6 = var_length + var2;
3408 var3 = var6;
3409 goto RET_LABEL4;
3410 RET_LABEL4:(void)0;
3411 }
3412 }
3413 {
3414 { /* Inline string#StringCapable#calloc_string (self,var3) on <self:NativeString> */
3415 var9 = BOX_string__NativeString(self); /* autobox from NativeString to StringCapable */
3416 var10 = (char*)nit_alloc(var3);
3417 var7 = var10;
3418 goto RET_LABEL8;
3419 RET_LABEL8:(void)0;
3420 }
3421 }
3422 var_new_self = var7;
3423 var11 = 0;
3424 var12 = 0;
3425 {
3426 { /* Inline string#NativeString#copy_to (self,var_new_self,var_length,var11,var12) on <self:NativeString> */
3427 memmove(var_new_self+var12,self+var11,var_length);
3428 RET_LABEL13:(void)0;
3429 }
3430 }
3431 var14 = NEW_string__FlatString(&type_string__FlatString);
3432 var15 = 0;
3433 var16 = 1;
3434 {
3435 { /* Inline kernel#Int#- (var_length,var16) on <var_length:Int> */
3436 /* Covariant cast for argument 0 (i) <var16:Int> isa OTHER */
3437 /* <var16:Int> isa OTHER */
3438 var19 = 1; /* easy <var16:Int> isa OTHER*/
3439 if (unlikely(!var19)) {
3440 var_class_name22 = type_kernel__Int.name;
3441 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name22);
3442 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377);
3443 show_backtrace(1);
3444 }
3445 var23 = var_length - var16;
3446 var17 = var23;
3447 goto RET_LABEL18;
3448 RET_LABEL18:(void)0;
3449 }
3450 }
3451 {
3452 string__FlatString__with_infos(var14, var_new_self, var_length, var15, var17); /* Direct call string#FlatString#with_infos on <var14:FlatString>*/
3453 }
3454 var_str = var14;
3455 {
3456 { /* Inline string#FlatText#real_items= (var_str,self) on <var_str:FlatString> */
3457 var25 = BOX_string__NativeString(self); /* autobox from NativeString to nullable NativeString */
3458 var_str->attrs[COLOR_string__FlatText___real_items].val = var25; /* _real_items on <var_str:FlatString> */
3459 RET_LABEL24:(void)0;
3460 }
3461 }
3462 var = var_str;
3463 goto RET_LABEL;
3464 RET_LABEL:;
3465 return var;
3466 }
3467 /* method string#NativeString#to_s_with_copy for (self: Object): FlatString */
3468 val* VIRTUAL_string__NativeString__to_s_with_copy(val* self) {
3469 val* var /* : FlatString */;
3470 val* var1 /* : FlatString */;
3471 char* var2 /* : NativeString */;
3472 var2 = ((struct instance_string__NativeString*)self)->value; /* autounbox from Object to NativeString */;
3473 var1 = string__NativeString__to_s_with_copy(var2);
3474 var = var1;
3475 RET_LABEL:;
3476 return var;
3477 }
3478 /* method string#StringCapable#calloc_string for (self: StringCapable, Int): NativeString */
3479 char* string__StringCapable__calloc_string(val* self, long p0) {
3480 char* var /* : NativeString */;
3481 char* var1 /* : NativeString */;
3482 var1 = (char*)nit_alloc(p0);
3483 var = var1;
3484 goto RET_LABEL;
3485 RET_LABEL:;
3486 return var;
3487 }
3488 /* method string#StringCapable#calloc_string for (self: Object, Int): NativeString */
3489 char* VIRTUAL_string__StringCapable__calloc_string(val* self, long p0) {
3490 char* var /* : NativeString */;
3491 char* var1 /* : NativeString */;
3492 char* var3 /* : NativeString */;
3493 { /* Inline string#StringCapable#calloc_string (self,p0) on <self:Object(StringCapable)> */
3494 var3 = (char*)nit_alloc(p0);
3495 var1 = var3;
3496 goto RET_LABEL2;
3497 RET_LABEL2:(void)0;
3498 }
3499 var = var1;
3500 RET_LABEL:;
3501 return var;
3502 }
3503 /* method string#Sys#program_args for (self: Sys): Sequence[String] */
3504 val* string__Sys__program_args(val* self) {
3505 val* var /* : Sequence[String] */;
3506 val* var1 /* : nullable Sequence[String] */;
3507 val* var2 /* : null */;
3508 short int var3 /* : Bool */;
3509 short int var4 /* : Bool */;
3510 val* var5 /* : nullable Sequence[String] */;
3511 var1 = self->attrs[COLOR_string__Sys___args_cache].val; /* _args_cache on <self:Sys> */
3512 var2 = NULL;
3513 if (var1 == NULL) {
3514 var3 = 1; /* is null */
3515 } else {
3516 var3 = 0; /* arg is null but recv is not */
3517 }
3518 if (0) {
3519 var4 = ((short int (*)(val*, val*))(var1->class->vft[COLOR_kernel__Object___61d_61d]))(var1, var2) /* == on <var1:nullable Sequence[String]>*/;
3520 var3 = var4;
3521 }
3522 if (var3){
3523 {
3524 string__Sys__init_args(self); /* Direct call string#Sys#init_args on <self:Sys>*/
3525 }
3526 } else {
3527 }
3528 var5 = self->attrs[COLOR_string__Sys___args_cache].val; /* _args_cache on <self:Sys> */
3529 if (unlikely(var5 == NULL)) {
3530 PRINT_ERROR("Runtime error: %s", "Cast failed");
3531 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/string.nit", 2135);
3532 show_backtrace(1);
3533 }
3534 var = var5;
3535 goto RET_LABEL;
3536 RET_LABEL:;
3537 return var;
3538 }
3539 /* method string#Sys#program_args for (self: Object): Sequence[String] */
3540 val* VIRTUAL_string__Sys__program_args(val* self) {
3541 val* var /* : Sequence[String] */;
3542 val* var1 /* : Sequence[String] */;
3543 var1 = string__Sys__program_args(self);
3544 var = var1;
3545 RET_LABEL:;
3546 return var;
3547 }
3548 /* method string#Sys#program_name for (self: Sys): String */
3549 val* string__Sys__program_name(val* self) {
3550 val* var /* : String */;
3551 long var1 /* : Int */;
3552 char* var2 /* : NativeString */;
3553 char* var4 /* : NativeString */;
3554 val* var5 /* : String */;
3555 var1 = 0;
3556 {
3557 { /* Inline string#Sys#native_argv (self,var1) on <self:Sys> */
3558 var4 = glob_argv[var1];
3559 var2 = var4;
3560 goto RET_LABEL3;
3561 RET_LABEL3:(void)0;
3562 }
3563 }
3564 {
3565 var5 = string__NativeString__to_s(var2);
3566 }
3567 var = var5;
3568 goto RET_LABEL;
3569 RET_LABEL:;
3570 return var;
3571 }
3572 /* method string#Sys#program_name for (self: Object): String */
3573 val* VIRTUAL_string__Sys__program_name(val* self) {
3574 val* var /* : String */;
3575 val* var1 /* : String */;
3576 var1 = string__Sys__program_name(self);
3577 var = var1;
3578 RET_LABEL:;
3579 return var;
3580 }
3581 /* method string#Sys#init_args for (self: Sys) */
3582 void string__Sys__init_args(val* self) {
3583 long var /* : Int */;
3584 long var2 /* : Int */;
3585 long var_argc /* var argc: Int */;
3586 val* var3 /* : Array[String] */;
3587 long var4 /* : Int */;
3588 val* var_args /* var args: Array[String] */;
3589 long var5 /* : Int */;
3590 long var_i /* var i: Int */;
3591 short int var6 /* : Bool */;
3592 short int var8 /* : Bool */;
3593 int cltype;
3594 int idtype;
3595 const char* var_class_name;
3596 short int var9 /* : Bool */;
3597 long var10 /* : Int */;
3598 long var11 /* : Int */;
3599 short int var13 /* : Bool */;
3600 int cltype14;
3601 int idtype15;
3602 const char* var_class_name16;
3603 long var17 /* : Int */;
3604 char* var18 /* : NativeString */;
3605 char* var20 /* : NativeString */;
3606 val* var21 /* : String */;
3607 long var22 /* : Int */;
3608 long var23 /* : Int */;
3609 short int var25 /* : Bool */;
3610 int cltype26;
3611 int idtype27;
3612 const char* var_class_name28;
3613 long var29 /* : Int */;
3614 {
3615 { /* Inline string#Sys#native_argc (self) on <self:Sys> */
3616 var2 = glob_argc;
3617 var = var2;
3618 goto RET_LABEL1;
3619 RET_LABEL1:(void)0;
3620 }
3621 }
3622 var_argc = var;
3623 var3 = NEW_array__Array(&type_array__Arraystring__String);
3624 var4 = 0;
3625 {
3626 array__Array__with_capacity(var3, var4); /* Direct call array#Array#with_capacity on <var3:Array[String]>*/
3627 }
3628 var_args = var3;
3629 var5 = 1;
3630 var_i = var5;
3631 for(;;) {
3632 {
3633 { /* Inline kernel#Int#< (var_i,var_argc) on <var_i:Int> */
3634 /* Covariant cast for argument 0 (i) <var_argc:Int> isa OTHER */
3635 /* <var_argc:Int> isa OTHER */
3636 var8 = 1; /* easy <var_argc:Int> isa OTHER*/
3637 if (unlikely(!var8)) {
3638 var_class_name = type_kernel__Int.name;
3639 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3640 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 371);
3641 show_backtrace(1);
3642 }
3643 var9 = var_i < var_argc;
3644 var6 = var9;
3645 goto RET_LABEL7;
3646 RET_LABEL7:(void)0;
3647 }
3648 }
3649 if (var6){
3650 var10 = 1;
3651 {
3652 { /* Inline kernel#Int#- (var_i,var10) on <var_i:Int> */
3653 /* Covariant cast for argument 0 (i) <var10:Int> isa OTHER */
3654 /* <var10:Int> isa OTHER */
3655 var13 = 1; /* easy <var10:Int> isa OTHER*/
3656 if (unlikely(!var13)) {
3657 var_class_name16 = type_kernel__Int.name;
3658 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name16);
3659 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 377);
3660 show_backtrace(1);
3661 }
3662 var17 = var_i - var10;
3663 var11 = var17;
3664 goto RET_LABEL12;
3665 RET_LABEL12:(void)0;
3666 }
3667 }
3668 {
3669 { /* Inline string#Sys#native_argv (self,var_i) on <self:Sys> */
3670 var20 = glob_argv[var_i];
3671 var18 = var20;
3672 goto RET_LABEL19;
3673 RET_LABEL19:(void)0;
3674 }
3675 }
3676 {
3677 var21 = string__NativeString__to_s(var18);
3678 }
3679 {
3680 array__Array___91d_93d_61d(var_args, var11, var21); /* Direct call array#Array#[]= on <var_args:Array[String]>*/
3681 }
3682 var22 = 1;
3683 {
3684 { /* Inline kernel#Int#+ (var_i,var22) on <var_i:Int> */
3685 /* Covariant cast for argument 0 (i) <var22:Int> isa OTHER */
3686 /* <var22:Int> isa OTHER */
3687 var25 = 1; /* easy <var22:Int> isa OTHER*/
3688 if (unlikely(!var25)) {
3689 var_class_name28 = type_kernel__Int.name;
3690 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name28);
3691 PRINT_ERROR(" (%s:%d)\n", "../lib/standard/kernel.nit", 374);
3692 show_backtrace(1);
3693 }
3694 var29 = var_i + var22;
3695 var23 = var29;
3696 goto RET_LABEL24;
3697 RET_LABEL24:(void)0;
3698 }
3699 }
3700 var_i = var23;
3701 } else {
3702 goto BREAK_label;
3703 }
3704 }
3705 BREAK_label: (void)0;
3706 self->attrs[COLOR_string__Sys___args_cache].val = var_args; /* _args_cache on <self:Sys> */
3707 RET_LABEL:;
3708 }
3709 /* method string#Sys#init_args for (self: Object) */
3710 void VIRTUAL_string__Sys__init_args(val* self) {
3711 string__Sys__init_args(self); /* Direct call string#Sys#init_args on <self:Object(Sys)>*/
3712 RET_LABEL:;
3713 }
3714 /* method string#Sys#native_argc for (self: Sys): Int */
3715 long string__Sys__native_argc(val* self) {
3716 long var /* : Int */;
3717 long var1 /* : Int */;
3718 var1 = glob_argc;
3719 var = var1;
3720 goto RET_LABEL;
3721 RET_LABEL:;
3722 return var;
3723 }
3724 /* method string#Sys#native_argc for (self: Object): Int */
3725 long VIRTUAL_string__Sys__native_argc(val* self) {
3726 long var /* : Int */;
3727 long var1 /* : Int */;
3728 long var3 /* : Int */;
3729 { /* Inline string#Sys#native_argc (self) on <self:Object(Sys)> */
3730 var3 = glob_argc;
3731 var1 = var3;
3732 goto RET_LABEL2;
3733 RET_LABEL2:(void)0;
3734 }
3735 var = var1;
3736 RET_LABEL:;
3737 return var;
3738 }
3739 /* method string#Sys#native_argv for (self: Sys, Int): NativeString */
3740 char* string__Sys__native_argv(val* self, long p0) {
3741 char* var /* : NativeString */;
3742 char* var1 /* : NativeString */;
3743 var1 = glob_argv[p0];
3744 var = var1;
3745 goto RET_LABEL;
3746 RET_LABEL:;
3747 return var;
3748 }
3749 /* method string#Sys#native_argv for (self: Object, Int): NativeString */
3750 char* VIRTUAL_string__Sys__native_argv(val* self, long p0) {
3751 char* var /* : NativeString */;
3752 char* var1 /* : NativeString */;
3753 char* var3 /* : NativeString */;
3754 { /* Inline string#Sys#native_argv (self,p0) on <self:Object(Sys)> */
3755 var3 = glob_argv[p0];
3756 var1 = var3;
3757 goto RET_LABEL2;
3758 RET_LABEL2:(void)0;
3759 }
3760 var = var1;
3761 RET_LABEL:;
3762 return var;
3763 }