neo: Explain how arguments of a MClasType are named.
[nit.git] / c_src / string.sep.2.c
1 #include "string.sep.0.h"
2 /* method string#Float#to_s for (self: Float): String */
3 val* string__Float__to_s(double self) {
4 val* var /* : String */;
5 long var1 /* : Int */;
6 val* var2 /* : String */;
7 val* var_str /* var str: String */;
8 short int var3 /* : Bool */;
9 long var4 /* : Int */;
10 long var5 /* : Int */;
11 short int var6 /* : Bool */;
12 short int var7 /* : Bool */;
13 short int var9 /* : Bool */;
14 short int var10 /* : Bool */;
15 short int var_ /* var : Bool */;
16 short int var11 /* : Bool */;
17 short int var13 /* : Bool */;
18 long var14 /* : Int */;
19 long var16 /* : Int */;
20 long var_len /* var len: Int */;
21 val* var17 /* : Range[Int] */;
22 long var18 /* : Int */;
23 long var19 /* : Int */;
24 long var20 /* : Int */;
25 short int var22 /* : Bool */;
26 int cltype;
27 int idtype;
28 const char* var_class_name;
29 long var23 /* : Int */;
30 val* var24 /* : Discrete */;
31 val* var25 /* : Discrete */;
32 val* var26 /* : Iterator[Discrete] */;
33 short int var27 /* : Bool */;
34 val* var28 /* : nullable Object */;
35 long var_i /* var i: Int */;
36 long var29 /* : Int */;
37 long var30 /* : Int */;
38 long var31 /* : Int */;
39 short int var33 /* : Bool */;
40 int cltype34;
41 int idtype35;
42 const char* var_class_name36;
43 long var37 /* : Int */;
44 long var38 /* : Int */;
45 short int var40 /* : Bool */;
46 int cltype41;
47 int idtype42;
48 const char* var_class_name43;
49 long var44 /* : Int */;
50 long var_j /* var j: Int */;
51 val* var45 /* : SequenceRead[Char] */;
52 val* var47 /* : SequenceRead[Char] */;
53 val* var48 /* : nullable Object */;
54 char var49 /* : Char */;
55 char var_c /* var c: Char */;
56 char var50 /* : Char */;
57 short int var51 /* : Bool */;
58 short int var52 /* : Bool */;
59 short int var54 /* : Bool */;
60 char var55 /* : Char */;
61 short int var56 /* : Bool */;
62 short int var57 /* : Bool */;
63 short int var59 /* : Bool */;
64 long var60 /* : Int */;
65 long var61 /* : Int */;
66 long var62 /* : Int */;
67 short int var64 /* : Bool */;
68 int cltype65;
69 int idtype66;
70 const char* var_class_name67;
71 long var68 /* : Int */;
72 val* var69 /* : String */;
73 long var70 /* : Int */;
74 long var71 /* : Int */;
75 long var72 /* : Int */;
76 short int var74 /* : Bool */;
77 int cltype75;
78 int idtype76;
79 const char* var_class_name77;
80 long var78 /* : Int */;
81 val* var79 /* : String */;
82 var1 = 3;
83 {
84 var2 = string__Float__to_precision(self, var1);
85 }
86 var_str = var2;
87 {
88 var4 = math__Float__is_inf(self);
89 }
90 var5 = 0;
91 {
92 { /* Inline kernel#Int#!= (var4,var5) on <var4:Int> */
93 var9 = var4 == var5;
94 var10 = !var9;
95 var7 = var10;
96 goto RET_LABEL8;
97 RET_LABEL8:(void)0;
98 }
99 var6 = var7;
100 }
101 var_ = var6;
102 if (var6){
103 var3 = var_;
104 } else {
105 {
106 { /* Inline math#Float#is_nan (self) on <self:Float> */
107 var13 = isnan(self);
108 var11 = var13;
109 goto RET_LABEL12;
110 RET_LABEL12:(void)0;
111 }
112 }
113 var3 = var11;
114 }
115 if (var3){
116 var = var_str;
117 goto RET_LABEL;
118 } else {
119 }
120 {
121 { /* Inline string#FlatText#length (var_str) on <var_str:String> */
122 var16 = var_str->attrs[COLOR_string__FlatText___length].l; /* _length on <var_str:String> */
123 var14 = var16;
124 RET_LABEL15:(void)0;
125 }
126 }
127 var_len = var14;
128 var17 = NEW_range__Range(&type_range__Rangekernel__Int);
129 var18 = 0;
130 var19 = 1;
131 {
132 { /* Inline kernel#Int#- (var_len,var19) on <var_len:Int> */
133 /* Covariant cast for argument 0 (i) <var19:Int> isa OTHER */
134 /* <var19:Int> isa OTHER */
135 var22 = 1; /* easy <var19:Int> isa OTHER*/
136 if (unlikely(!var22)) {
137 var_class_name = type_kernel__Int.name;
138 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
139 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 331);
140 show_backtrace(1);
141 }
142 var23 = var_len - var19;
143 var20 = var23;
144 goto RET_LABEL21;
145 RET_LABEL21:(void)0;
146 }
147 }
148 {
149 var24 = BOX_kernel__Int(var18); /* autobox from Int to Discrete */
150 var25 = BOX_kernel__Int(var20); /* autobox from Int to Discrete */
151 range__Range__init(var17, var24, var25); /* Direct call range#Range#init on <var17:Range[Int]>*/
152 }
153 {
154 var26 = range__Range__iterator(var17);
155 }
156 for(;;) {
157 {
158 var27 = ((short int (*)(val*))(var26->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var26) /* is_ok on <var26:Iterator[Discrete]>*/;
159 }
160 if(!var27) break;
161 {
162 var28 = ((val* (*)(val*))(var26->class->vft[COLOR_abstract_collection__Iterator__item]))(var26) /* item on <var26:Iterator[Discrete]>*/;
163 }
164 var29 = ((struct instance_kernel__Int*)var28)->value; /* autounbox from nullable Object to Int */;
165 var_i = var29;
166 var30 = 1;
167 {
168 { /* Inline kernel#Int#- (var_len,var30) on <var_len:Int> */
169 /* Covariant cast for argument 0 (i) <var30:Int> isa OTHER */
170 /* <var30:Int> isa OTHER */
171 var33 = 1; /* easy <var30:Int> isa OTHER*/
172 if (unlikely(!var33)) {
173 var_class_name36 = type_kernel__Int.name;
174 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name36);
175 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 331);
176 show_backtrace(1);
177 }
178 var37 = var_len - var30;
179 var31 = var37;
180 goto RET_LABEL32;
181 RET_LABEL32:(void)0;
182 }
183 }
184 {
185 { /* Inline kernel#Int#- (var31,var_i) on <var31:Int> */
186 /* Covariant cast for argument 0 (i) <var_i:Int> isa OTHER */
187 /* <var_i:Int> isa OTHER */
188 var40 = 1; /* easy <var_i:Int> isa OTHER*/
189 if (unlikely(!var40)) {
190 var_class_name43 = type_kernel__Int.name;
191 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name43);
192 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 331);
193 show_backtrace(1);
194 }
195 var44 = var31 - var_i;
196 var38 = var44;
197 goto RET_LABEL39;
198 RET_LABEL39:(void)0;
199 }
200 }
201 var_j = var38;
202 {
203 { /* Inline string#FlatString#chars (var_str) on <var_str:String> */
204 var47 = var_str->attrs[COLOR_string__FlatString___chars].val; /* _chars on <var_str:String> */
205 if (unlikely(var47 == NULL)) {
206 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _chars");
207 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 746);
208 show_backtrace(1);
209 }
210 var45 = var47;
211 RET_LABEL46:(void)0;
212 }
213 }
214 {
215 var48 = ((val* (*)(val*, long))(var45->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var45, var_j) /* [] on <var45:SequenceRead[Char]>*/;
216 }
217 var49 = ((struct instance_kernel__Char*)var48)->value; /* autounbox from nullable Object to Char */;
218 var_c = var49;
219 var50 = '0';
220 {
221 { /* Inline kernel#Char#== (var_c,var50) on <var_c:Char> */
222 var54 = var_c == var50;
223 var52 = var54;
224 goto RET_LABEL53;
225 RET_LABEL53:(void)0;
226 }
227 var51 = var52;
228 }
229 if (var51){
230 goto CONTINUE_label;
231 } else {
232 var55 = '.';
233 {
234 { /* Inline kernel#Char#== (var_c,var55) on <var_c:Char> */
235 var59 = var_c == var55;
236 var57 = var59;
237 goto RET_LABEL58;
238 RET_LABEL58:(void)0;
239 }
240 var56 = var57;
241 }
242 if (var56){
243 var60 = 0;
244 var61 = 2;
245 {
246 { /* Inline kernel#Int#+ (var_j,var61) on <var_j:Int> */
247 /* Covariant cast for argument 0 (i) <var61:Int> isa OTHER */
248 /* <var61:Int> isa OTHER */
249 var64 = 1; /* easy <var61:Int> isa OTHER*/
250 if (unlikely(!var64)) {
251 var_class_name67 = type_kernel__Int.name;
252 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name67);
253 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
254 show_backtrace(1);
255 }
256 var68 = var_j + var61;
257 var62 = var68;
258 goto RET_LABEL63;
259 RET_LABEL63:(void)0;
260 }
261 }
262 {
263 var69 = string__FlatString__substring(var_str, var60, var62);
264 }
265 var = var69;
266 goto RET_LABEL;
267 } else {
268 var70 = 0;
269 var71 = 1;
270 {
271 { /* Inline kernel#Int#+ (var_j,var71) on <var_j:Int> */
272 /* Covariant cast for argument 0 (i) <var71:Int> isa OTHER */
273 /* <var71:Int> isa OTHER */
274 var74 = 1; /* easy <var71:Int> isa OTHER*/
275 if (unlikely(!var74)) {
276 var_class_name77 = type_kernel__Int.name;
277 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name77);
278 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
279 show_backtrace(1);
280 }
281 var78 = var_j + var71;
282 var72 = var78;
283 goto RET_LABEL73;
284 RET_LABEL73:(void)0;
285 }
286 }
287 {
288 var79 = string__FlatString__substring(var_str, var70, var72);
289 }
290 var = var79;
291 goto RET_LABEL;
292 }
293 }
294 CONTINUE_label: (void)0;
295 {
296 ((void (*)(val*))(var26->class->vft[COLOR_abstract_collection__Iterator__next]))(var26) /* next on <var26:Iterator[Discrete]>*/;
297 }
298 }
299 BREAK_label: (void)0;
300 var = var_str;
301 goto RET_LABEL;
302 RET_LABEL:;
303 return var;
304 }
305 /* method string#Float#to_s for (self: Object): String */
306 val* VIRTUAL_string__Float__to_s(val* self) {
307 val* var /* : String */;
308 val* var1 /* : String */;
309 double var2 /* : Float */;
310 var2 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */;
311 var1 = string__Float__to_s(var2);
312 var = var1;
313 RET_LABEL:;
314 return var;
315 }
316 /* method string#Float#to_precision for (self: Float, Int): String */
317 val* string__Float__to_precision(double self, long p0) {
318 val* var /* : String */;
319 long var_nb /* var nb: Int */;
320 short int var1 /* : Bool */;
321 short int var3 /* : Bool */;
322 static val* varonce;
323 val* var4 /* : String */;
324 char* var5 /* : NativeString */;
325 long var6 /* : Int */;
326 val* var7 /* : FlatString */;
327 long var8 /* : Int */;
328 long var_isinf /* var isinf: Int */;
329 long var9 /* : Int */;
330 short int var10 /* : Bool */;
331 short int var11 /* : Bool */;
332 short int var13 /* : Bool */;
333 static val* varonce14;
334 val* var15 /* : String */;
335 char* var16 /* : NativeString */;
336 long var17 /* : Int */;
337 val* var18 /* : FlatString */;
338 long var19 /* : Int */;
339 long var20 /* : Int */;
340 long var22 /* : Int */;
341 short int var23 /* : Bool */;
342 short int var24 /* : Bool */;
343 short int var26 /* : Bool */;
344 static val* varonce27;
345 val* var28 /* : String */;
346 char* var29 /* : NativeString */;
347 long var30 /* : Int */;
348 val* var31 /* : FlatString */;
349 long var32 /* : Int */;
350 short int var33 /* : Bool */;
351 short int var34 /* : Bool */;
352 short int var36 /* : Bool */;
353 long var37 /* : Int */;
354 long var39 /* : Int */;
355 val* var40 /* : String */;
356 double var_f /* var f: Float */;
357 val* var41 /* : Range[Int] */;
358 long var42 /* : Int */;
359 val* var43 /* : Discrete */;
360 val* var44 /* : Discrete */;
361 val* var45 /* : Iterator[Discrete] */;
362 short int var46 /* : Bool */;
363 val* var47 /* : nullable Object */;
364 long var_i /* var i: Int */;
365 long var48 /* : Int */;
366 double var49 /* : Float */;
367 double var50 /* : Float */;
368 short int var52 /* : Bool */;
369 int cltype;
370 int idtype;
371 const char* var_class_name;
372 double var53 /* : Float */;
373 double var54 /* : Float */;
374 short int var55 /* : Bool */;
375 short int var57 /* : Bool */;
376 int cltype58;
377 int idtype59;
378 const char* var_class_name60;
379 short int var61 /* : Bool */;
380 double var62 /* : Float */;
381 double var63 /* : Float */;
382 short int var65 /* : Bool */;
383 int cltype66;
384 int idtype67;
385 const char* var_class_name68;
386 double var69 /* : Float */;
387 double var70 /* : Float */;
388 double var71 /* : Float */;
389 short int var73 /* : Bool */;
390 int cltype74;
391 int idtype75;
392 const char* var_class_name76;
393 double var77 /* : Float */;
394 long var78 /* : Int */;
395 long var80 /* : Int */;
396 long var_i81 /* var i: Int */;
397 long var82 /* : Int */;
398 short int var83 /* : Bool */;
399 short int var84 /* : Bool */;
400 short int var86 /* : Bool */;
401 static val* varonce87;
402 val* var88 /* : String */;
403 char* var89 /* : NativeString */;
404 long var90 /* : Int */;
405 val* var91 /* : FlatString */;
406 val* var92 /* : String */;
407 val* var_s /* var s: String */;
408 long var93 /* : Int */;
409 long var95 /* : Int */;
410 long var_sl /* var sl: Int */;
411 short int var96 /* : Bool */;
412 short int var98 /* : Bool */;
413 int cltype99;
414 int idtype100;
415 const char* var_class_name101;
416 short int var102 /* : Bool */;
417 long var103 /* : Int */;
418 long var104 /* : Int */;
419 long var106 /* : Int */;
420 long var107 /* : Int */;
421 short int var109 /* : Bool */;
422 int cltype110;
423 int idtype111;
424 const char* var_class_name112;
425 long var113 /* : Int */;
426 val* var114 /* : String */;
427 val* var_p1 /* var p1: String */;
428 long var115 /* : Int */;
429 long var117 /* : Int */;
430 long var118 /* : Int */;
431 short int var120 /* : Bool */;
432 int cltype121;
433 int idtype122;
434 const char* var_class_name123;
435 long var124 /* : Int */;
436 val* var125 /* : String */;
437 val* var_p2 /* var p2: String */;
438 static val* varonce126;
439 val* var127 /* : String */;
440 char* var128 /* : NativeString */;
441 long var129 /* : Int */;
442 val* var130 /* : FlatString */;
443 val* var131 /* : String */;
444 val* var132 /* : String */;
445 static val* varonce133;
446 val* var134 /* : String */;
447 char* var135 /* : NativeString */;
448 long var136 /* : Int */;
449 val* var137 /* : FlatString */;
450 static val* varonce138;
451 val* var139 /* : String */;
452 char* var140 /* : NativeString */;
453 long var141 /* : Int */;
454 val* var142 /* : FlatString */;
455 long var143 /* : Int */;
456 short int var145 /* : Bool */;
457 int cltype146;
458 int idtype147;
459 const char* var_class_name148;
460 long var149 /* : Int */;
461 val* var150 /* : String */;
462 val* var151 /* : String */;
463 val* var152 /* : String */;
464 var_nb = p0;
465 {
466 { /* Inline math#Float#is_nan (self) on <self:Float> */
467 var3 = isnan(self);
468 var1 = var3;
469 goto RET_LABEL2;
470 RET_LABEL2:(void)0;
471 }
472 }
473 if (var1){
474 if (varonce) {
475 var4 = varonce;
476 } else {
477 var5 = "nan";
478 var6 = 3;
479 var7 = string__NativeString__to_s_with_length(var5, var6);
480 var4 = var7;
481 varonce = var4;
482 }
483 var = var4;
484 goto RET_LABEL;
485 } else {
486 }
487 {
488 var8 = math__Float__is_inf(self);
489 }
490 var_isinf = var8;
491 var9 = 1;
492 {
493 { /* Inline kernel#Int#== (var_isinf,var9) on <var_isinf:Int> */
494 var13 = var_isinf == var9;
495 var11 = var13;
496 goto RET_LABEL12;
497 RET_LABEL12:(void)0;
498 }
499 var10 = var11;
500 }
501 if (var10){
502 if (varonce14) {
503 var15 = varonce14;
504 } else {
505 var16 = "inf";
506 var17 = 3;
507 var18 = string__NativeString__to_s_with_length(var16, var17);
508 var15 = var18;
509 varonce14 = var15;
510 }
511 var = var15;
512 goto RET_LABEL;
513 } else {
514 var19 = 1;
515 {
516 { /* Inline kernel#Int#unary - (var19) on <var19:Int> */
517 var22 = -var19;
518 var20 = var22;
519 goto RET_LABEL21;
520 RET_LABEL21:(void)0;
521 }
522 }
523 {
524 { /* Inline kernel#Int#== (var_isinf,var20) on <var_isinf:Int> */
525 var26 = var_isinf == var20;
526 var24 = var26;
527 goto RET_LABEL25;
528 RET_LABEL25:(void)0;
529 }
530 var23 = var24;
531 }
532 if (var23){
533 if (varonce27) {
534 var28 = varonce27;
535 } else {
536 var29 = "-inf";
537 var30 = 4;
538 var31 = string__NativeString__to_s_with_length(var29, var30);
539 var28 = var31;
540 varonce27 = var28;
541 }
542 var = var28;
543 goto RET_LABEL;
544 } else {
545 }
546 }
547 var32 = 0;
548 {
549 { /* Inline kernel#Int#== (var_nb,var32) on <var_nb:Int> */
550 var36 = var_nb == var32;
551 var34 = var36;
552 goto RET_LABEL35;
553 RET_LABEL35:(void)0;
554 }
555 var33 = var34;
556 }
557 if (var33){
558 {
559 { /* Inline kernel#Float#to_i (self) on <self:Float> */
560 var39 = (long)self;
561 var37 = var39;
562 goto RET_LABEL38;
563 RET_LABEL38:(void)0;
564 }
565 }
566 {
567 var40 = string__Int__to_s(var37);
568 }
569 var = var40;
570 goto RET_LABEL;
571 } else {
572 }
573 var_f = self;
574 var41 = NEW_range__Range(&type_range__Rangekernel__Int);
575 var42 = 0;
576 {
577 var43 = BOX_kernel__Int(var42); /* autobox from Int to Discrete */
578 var44 = BOX_kernel__Int(var_nb); /* autobox from Int to Discrete */
579 range__Range__without_last(var41, var43, var44); /* Direct call range#Range#without_last on <var41:Range[Int]>*/
580 }
581 {
582 var45 = range__Range__iterator(var41);
583 }
584 for(;;) {
585 {
586 var46 = ((short int (*)(val*))(var45->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var45) /* is_ok on <var45:Iterator[Discrete]>*/;
587 }
588 if(!var46) break;
589 {
590 var47 = ((val* (*)(val*))(var45->class->vft[COLOR_abstract_collection__Iterator__item]))(var45) /* item on <var45:Iterator[Discrete]>*/;
591 }
592 var48 = ((struct instance_kernel__Int*)var47)->value; /* autounbox from nullable Object to Int */;
593 var_i = var48;
594 var49 = 10.0;
595 {
596 { /* Inline kernel#Float#* (var_f,var49) on <var_f:Float> */
597 /* Covariant cast for argument 0 (i) <var49:Float> isa OTHER */
598 /* <var49:Float> isa OTHER */
599 var52 = 1; /* easy <var49:Float> isa OTHER*/
600 if (unlikely(!var52)) {
601 var_class_name = type_kernel__Float.name;
602 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
603 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 297);
604 show_backtrace(1);
605 }
606 var53 = var_f * var49;
607 var50 = var53;
608 goto RET_LABEL51;
609 RET_LABEL51:(void)0;
610 }
611 }
612 var_f = var50;
613 CONTINUE_label: (void)0;
614 {
615 ((void (*)(val*))(var45->class->vft[COLOR_abstract_collection__Iterator__next]))(var45) /* next on <var45:Iterator[Discrete]>*/;
616 }
617 }
618 BREAK_label: (void)0;
619 var54 = 0.0;
620 {
621 { /* Inline kernel#Float#> (self,var54) on <self:Float> */
622 /* Covariant cast for argument 0 (i) <var54:Float> isa OTHER */
623 /* <var54:Float> isa OTHER */
624 var57 = 1; /* easy <var54:Float> isa OTHER*/
625 if (unlikely(!var57)) {
626 var_class_name60 = type_kernel__Float.name;
627 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name60);
628 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 292);
629 show_backtrace(1);
630 }
631 var61 = self > var54;
632 var55 = var61;
633 goto RET_LABEL56;
634 RET_LABEL56:(void)0;
635 }
636 }
637 if (var55){
638 var62 = 0.5;
639 {
640 { /* Inline kernel#Float#+ (var_f,var62) on <var_f:Float> */
641 /* Covariant cast for argument 0 (i) <var62:Float> isa OTHER */
642 /* <var62:Float> isa OTHER */
643 var65 = 1; /* easy <var62:Float> isa OTHER*/
644 if (unlikely(!var65)) {
645 var_class_name68 = type_kernel__Float.name;
646 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name68);
647 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 294);
648 show_backtrace(1);
649 }
650 var69 = var_f + var62;
651 var63 = var69;
652 goto RET_LABEL64;
653 RET_LABEL64:(void)0;
654 }
655 }
656 var_f = var63;
657 } else {
658 var70 = 0.5;
659 {
660 { /* Inline kernel#Float#- (var_f,var70) on <var_f:Float> */
661 /* Covariant cast for argument 0 (i) <var70:Float> isa OTHER */
662 /* <var70:Float> isa OTHER */
663 var73 = 1; /* easy <var70:Float> isa OTHER*/
664 if (unlikely(!var73)) {
665 var_class_name76 = type_kernel__Float.name;
666 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name76);
667 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 296);
668 show_backtrace(1);
669 }
670 var77 = var_f - var70;
671 var71 = var77;
672 goto RET_LABEL72;
673 RET_LABEL72:(void)0;
674 }
675 }
676 var_f = var71;
677 }
678 {
679 { /* Inline kernel#Float#to_i (var_f) on <var_f:Float> */
680 var80 = (long)var_f;
681 var78 = var80;
682 goto RET_LABEL79;
683 RET_LABEL79:(void)0;
684 }
685 }
686 var_i81 = var78;
687 var82 = 0;
688 {
689 { /* Inline kernel#Int#== (var_i81,var82) on <var_i81:Int> */
690 var86 = var_i81 == var82;
691 var84 = var86;
692 goto RET_LABEL85;
693 RET_LABEL85:(void)0;
694 }
695 var83 = var84;
696 }
697 if (var83){
698 if (varonce87) {
699 var88 = varonce87;
700 } else {
701 var89 = "0.0";
702 var90 = 3;
703 var91 = string__NativeString__to_s_with_length(var89, var90);
704 var88 = var91;
705 varonce87 = var88;
706 }
707 var = var88;
708 goto RET_LABEL;
709 } else {
710 }
711 {
712 var92 = string__Int__to_s(var_i81);
713 }
714 var_s = var92;
715 {
716 { /* Inline string#FlatText#length (var_s) on <var_s:String> */
717 var95 = var_s->attrs[COLOR_string__FlatText___length].l; /* _length on <var_s:String> */
718 var93 = var95;
719 RET_LABEL94:(void)0;
720 }
721 }
722 var_sl = var93;
723 {
724 { /* Inline kernel#Int#> (var_sl,var_nb) on <var_sl:Int> */
725 /* Covariant cast for argument 0 (i) <var_nb:Int> isa OTHER */
726 /* <var_nb:Int> isa OTHER */
727 var98 = 1; /* easy <var_nb:Int> isa OTHER*/
728 if (unlikely(!var98)) {
729 var_class_name101 = type_kernel__Int.name;
730 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name101);
731 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 327);
732 show_backtrace(1);
733 }
734 var102 = var_sl > var_nb;
735 var96 = var102;
736 goto RET_LABEL97;
737 RET_LABEL97:(void)0;
738 }
739 }
740 if (var96){
741 var103 = 0;
742 {
743 { /* Inline string#FlatText#length (var_s) on <var_s:String> */
744 var106 = var_s->attrs[COLOR_string__FlatText___length].l; /* _length on <var_s:String> */
745 var104 = var106;
746 RET_LABEL105:(void)0;
747 }
748 }
749 {
750 { /* Inline kernel#Int#- (var104,var_nb) on <var104:Int> */
751 /* Covariant cast for argument 0 (i) <var_nb:Int> isa OTHER */
752 /* <var_nb:Int> isa OTHER */
753 var109 = 1; /* easy <var_nb:Int> isa OTHER*/
754 if (unlikely(!var109)) {
755 var_class_name112 = type_kernel__Int.name;
756 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name112);
757 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 331);
758 show_backtrace(1);
759 }
760 var113 = var104 - var_nb;
761 var107 = var113;
762 goto RET_LABEL108;
763 RET_LABEL108:(void)0;
764 }
765 }
766 {
767 var114 = string__FlatString__substring(var_s, var103, var107);
768 }
769 var_p1 = var114;
770 {
771 { /* Inline string#FlatText#length (var_s) on <var_s:String> */
772 var117 = var_s->attrs[COLOR_string__FlatText___length].l; /* _length on <var_s:String> */
773 var115 = var117;
774 RET_LABEL116:(void)0;
775 }
776 }
777 {
778 { /* Inline kernel#Int#- (var115,var_nb) on <var115:Int> */
779 /* Covariant cast for argument 0 (i) <var_nb:Int> isa OTHER */
780 /* <var_nb:Int> isa OTHER */
781 var120 = 1; /* easy <var_nb:Int> isa OTHER*/
782 if (unlikely(!var120)) {
783 var_class_name123 = type_kernel__Int.name;
784 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name123);
785 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 331);
786 show_backtrace(1);
787 }
788 var124 = var115 - var_nb;
789 var118 = var124;
790 goto RET_LABEL119;
791 RET_LABEL119:(void)0;
792 }
793 }
794 {
795 var125 = string__FlatString__substring(var_s, var118, var_nb);
796 }
797 var_p2 = var125;
798 if (varonce126) {
799 var127 = varonce126;
800 } else {
801 var128 = ".";
802 var129 = 1;
803 var130 = string__NativeString__to_s_with_length(var128, var129);
804 var127 = var130;
805 varonce126 = var127;
806 }
807 {
808 var131 = string__FlatString___43d(var_p1, var127);
809 }
810 {
811 var132 = string__FlatString___43d(var131, var_p2);
812 }
813 var = var132;
814 goto RET_LABEL;
815 } else {
816 if (varonce133) {
817 var134 = varonce133;
818 } else {
819 var135 = "0.";
820 var136 = 2;
821 var137 = string__NativeString__to_s_with_length(var135, var136);
822 var134 = var137;
823 varonce133 = var134;
824 }
825 if (varonce138) {
826 var139 = varonce138;
827 } else {
828 var140 = "0";
829 var141 = 1;
830 var142 = string__NativeString__to_s_with_length(var140, var141);
831 var139 = var142;
832 varonce138 = var139;
833 }
834 {
835 { /* Inline kernel#Int#- (var_nb,var_sl) on <var_nb:Int> */
836 /* Covariant cast for argument 0 (i) <var_sl:Int> isa OTHER */
837 /* <var_sl:Int> isa OTHER */
838 var145 = 1; /* easy <var_sl:Int> isa OTHER*/
839 if (unlikely(!var145)) {
840 var_class_name148 = type_kernel__Int.name;
841 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name148);
842 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 331);
843 show_backtrace(1);
844 }
845 var149 = var_nb - var_sl;
846 var143 = var149;
847 goto RET_LABEL144;
848 RET_LABEL144:(void)0;
849 }
850 }
851 {
852 var150 = string__FlatString___42d(var139, var143);
853 }
854 {
855 var151 = string__FlatString___43d(var134, var150);
856 }
857 {
858 var152 = string__FlatString___43d(var151, var_s);
859 }
860 var = var152;
861 goto RET_LABEL;
862 }
863 RET_LABEL:;
864 return var;
865 }
866 /* method string#Float#to_precision for (self: Object, Int): String */
867 val* VIRTUAL_string__Float__to_precision(val* self, long p0) {
868 val* var /* : String */;
869 val* var1 /* : String */;
870 double var2 /* : Float */;
871 var2 = ((struct instance_kernel__Float*)self)->value; /* autounbox from Object to Float */;
872 var1 = string__Float__to_precision(var2, p0);
873 var = var1;
874 RET_LABEL:;
875 return var;
876 }
877 /* method string#Char#to_s for (self: Char): String */
878 val* string__Char__to_s(char self) {
879 val* var /* : String */;
880 val* var1 /* : FlatBuffer */;
881 long var2 /* : Int */;
882 val* var_s /* var s: FlatBuffer */;
883 val* var3 /* : Sequence[Char] */;
884 val* var5 /* : Sequence[Char] */;
885 long var6 /* : Int */;
886 val* var7 /* : nullable Object */;
887 val* var8 /* : String */;
888 var1 = NEW_string__FlatBuffer(&type_string__FlatBuffer);
889 var2 = 1;
890 {
891 string__FlatBuffer__with_capacity(var1, var2); /* Direct call string#FlatBuffer#with_capacity on <var1:FlatBuffer>*/
892 }
893 var_s = var1;
894 {
895 { /* Inline string#FlatBuffer#chars (var_s) on <var_s:FlatBuffer> */
896 var5 = var_s->attrs[COLOR_string__FlatBuffer___chars].val; /* _chars on <var_s:FlatBuffer> */
897 if (unlikely(var5 == NULL)) {
898 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _chars");
899 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 1163);
900 show_backtrace(1);
901 }
902 var3 = var5;
903 RET_LABEL4:(void)0;
904 }
905 }
906 var6 = 0;
907 {
908 var7 = BOX_kernel__Char(self); /* autobox from Char to nullable Object */
909 ((void (*)(val*, long, val*))(var3->class->vft[COLOR_abstract_collection__Sequence___91d_93d_61d]))(var3, var6, var7) /* []= on <var3:Sequence[Char]>*/;
910 }
911 {
912 var8 = string__FlatBuffer__to_s(var_s);
913 }
914 var = var8;
915 goto RET_LABEL;
916 RET_LABEL:;
917 return var;
918 }
919 /* method string#Char#to_s for (self: Object): String */
920 val* VIRTUAL_string__Char__to_s(val* self) {
921 val* var /* : String */;
922 val* var1 /* : String */;
923 char var2 /* : Char */;
924 var2 = ((struct instance_kernel__Char*)self)->value; /* autounbox from Object to Char */;
925 var1 = string__Char__to_s(var2);
926 var = var1;
927 RET_LABEL:;
928 return var;
929 }
930 /* method string#Collection#to_s for (self: Collection[nullable Object]): String */
931 val* string__Collection__to_s(val* self) {
932 val* var /* : String */;
933 val* var1 /* : FlatBuffer */;
934 val* var_s /* var s: FlatBuffer */;
935 val* var2 /* : Iterator[nullable Object] */;
936 short int var3 /* : Bool */;
937 val* var4 /* : nullable Object */;
938 val* var_e /* var e: nullable Object */;
939 val* var5 /* : null */;
940 short int var6 /* : Bool */;
941 short int var7 /* : Bool */;
942 val* var8 /* : String */;
943 val* var9 /* : String */;
944 var1 = NEW_string__FlatBuffer(&type_string__FlatBuffer);
945 {
946 string__FlatBuffer__init(var1); /* Direct call string#FlatBuffer#init on <var1:FlatBuffer>*/
947 }
948 var_s = var1;
949 {
950 var2 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__iterator]))(self) /* iterator on <self:Collection[nullable Object]>*/;
951 }
952 for(;;) {
953 {
954 var3 = ((short int (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var2) /* is_ok on <var2:Iterator[nullable Object]>*/;
955 }
956 if(!var3) break;
957 {
958 var4 = ((val* (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__item]))(var2) /* item on <var2:Iterator[nullable Object]>*/;
959 }
960 var_e = var4;
961 var5 = NULL;
962 if (var_e == NULL) {
963 var6 = 0; /* is null */
964 } else {
965 var6 = 1; /* arg is null and recv is not */
966 }
967 if (0) {
968 var7 = ((short int (*)(val*, val*))(var_e->class->vft[COLOR_kernel__Object___33d_61d]))(var_e, var5) /* != on <var_e:nullable Object>*/;
969 var6 = var7;
970 }
971 if (var6){
972 if (var_e == NULL) {
973 PRINT_ERROR("Runtime error: %s", "Receiver is null");
974 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 1678);
975 show_backtrace(1);
976 } else {
977 var8 = ((val* (*)(val*))(var_e->class->vft[COLOR_string__Object__to_s]))(var_e) /* to_s on <var_e:nullable Object>*/;
978 }
979 {
980 string__FlatBuffer__append(var_s, var8); /* Direct call string#FlatBuffer#append on <var_s:FlatBuffer>*/
981 }
982 } else {
983 }
984 CONTINUE_label: (void)0;
985 {
986 ((void (*)(val*))(var2->class->vft[COLOR_abstract_collection__Iterator__next]))(var2) /* next on <var2:Iterator[nullable Object]>*/;
987 }
988 }
989 BREAK_label: (void)0;
990 {
991 var9 = string__FlatBuffer__to_s(var_s);
992 }
993 var = var9;
994 goto RET_LABEL;
995 RET_LABEL:;
996 return var;
997 }
998 /* method string#Collection#to_s for (self: Object): String */
999 val* VIRTUAL_string__Collection__to_s(val* self) {
1000 val* var /* : String */;
1001 val* var1 /* : String */;
1002 var1 = string__Collection__to_s(self);
1003 var = var1;
1004 RET_LABEL:;
1005 return var;
1006 }
1007 /* method string#Collection#join for (self: Collection[nullable Object], Text): String */
1008 val* string__Collection__join(val* self, val* p0) {
1009 val* var /* : String */;
1010 val* var_sep /* var sep: Text */;
1011 short int var1 /* : Bool */;
1012 static val* varonce;
1013 val* var2 /* : String */;
1014 char* var3 /* : NativeString */;
1015 long var4 /* : Int */;
1016 val* var5 /* : FlatString */;
1017 val* var6 /* : FlatBuffer */;
1018 val* var_s /* var s: FlatBuffer */;
1019 val* var7 /* : Iterator[nullable Object] */;
1020 val* var_i /* var i: Iterator[nullable Object] */;
1021 val* var8 /* : nullable Object */;
1022 val* var_e /* var e: nullable Object */;
1023 val* var9 /* : null */;
1024 short int var10 /* : Bool */;
1025 short int var11 /* : Bool */;
1026 val* var12 /* : String */;
1027 short int var13 /* : Bool */;
1028 val* var14 /* : nullable Object */;
1029 val* var15 /* : null */;
1030 short int var16 /* : Bool */;
1031 short int var17 /* : Bool */;
1032 val* var18 /* : String */;
1033 val* var19 /* : String */;
1034 var_sep = p0;
1035 {
1036 var1 = ((short int (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__is_empty]))(self) /* is_empty on <self:Collection[nullable Object]>*/;
1037 }
1038 if (var1){
1039 if (varonce) {
1040 var2 = varonce;
1041 } else {
1042 var3 = "";
1043 var4 = 0;
1044 var5 = string__NativeString__to_s_with_length(var3, var4);
1045 var2 = var5;
1046 varonce = var2;
1047 }
1048 var = var2;
1049 goto RET_LABEL;
1050 } else {
1051 }
1052 var6 = NEW_string__FlatBuffer(&type_string__FlatBuffer);
1053 {
1054 string__FlatBuffer__init(var6); /* Direct call string#FlatBuffer#init on <var6:FlatBuffer>*/
1055 }
1056 var_s = var6;
1057 {
1058 var7 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__iterator]))(self) /* iterator on <self:Collection[nullable Object]>*/;
1059 }
1060 var_i = var7;
1061 {
1062 var8 = ((val* (*)(val*))(var_i->class->vft[COLOR_abstract_collection__Iterator__item]))(var_i) /* item on <var_i:Iterator[nullable Object]>*/;
1063 }
1064 var_e = var8;
1065 var9 = NULL;
1066 if (var_e == NULL) {
1067 var10 = 0; /* is null */
1068 } else {
1069 var10 = 1; /* arg is null and recv is not */
1070 }
1071 if (0) {
1072 var11 = ((short int (*)(val*, val*))(var_e->class->vft[COLOR_kernel__Object___33d_61d]))(var_e, var9) /* != on <var_e:nullable Object>*/;
1073 var10 = var11;
1074 }
1075 if (var10){
1076 if (var_e == NULL) {
1077 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1078 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 1695);
1079 show_backtrace(1);
1080 } else {
1081 var12 = ((val* (*)(val*))(var_e->class->vft[COLOR_string__Object__to_s]))(var_e) /* to_s on <var_e:nullable Object>*/;
1082 }
1083 {
1084 string__FlatBuffer__append(var_s, var12); /* Direct call string#FlatBuffer#append on <var_s:FlatBuffer>*/
1085 }
1086 } else {
1087 }
1088 {
1089 ((void (*)(val*))(var_i->class->vft[COLOR_abstract_collection__Iterator__next]))(var_i) /* next on <var_i:Iterator[nullable Object]>*/;
1090 }
1091 for(;;) {
1092 {
1093 var13 = ((short int (*)(val*))(var_i->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var_i) /* is_ok on <var_i:Iterator[nullable Object]>*/;
1094 }
1095 if (!var13) break;
1096 {
1097 string__FlatBuffer__append(var_s, var_sep); /* Direct call string#FlatBuffer#append on <var_s:FlatBuffer>*/
1098 }
1099 {
1100 var14 = ((val* (*)(val*))(var_i->class->vft[COLOR_abstract_collection__Iterator__item]))(var_i) /* item on <var_i:Iterator[nullable Object]>*/;
1101 }
1102 var_e = var14;
1103 var15 = NULL;
1104 if (var_e == NULL) {
1105 var16 = 0; /* is null */
1106 } else {
1107 var16 = 1; /* arg is null and recv is not */
1108 }
1109 if (0) {
1110 var17 = ((short int (*)(val*, val*))(var_e->class->vft[COLOR_kernel__Object___33d_61d]))(var_e, var15) /* != on <var_e:nullable Object>*/;
1111 var16 = var17;
1112 }
1113 if (var16){
1114 if (var_e == NULL) {
1115 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1116 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 1702);
1117 show_backtrace(1);
1118 } else {
1119 var18 = ((val* (*)(val*))(var_e->class->vft[COLOR_string__Object__to_s]))(var_e) /* to_s on <var_e:nullable Object>*/;
1120 }
1121 {
1122 string__FlatBuffer__append(var_s, var18); /* Direct call string#FlatBuffer#append on <var_s:FlatBuffer>*/
1123 }
1124 } else {
1125 }
1126 {
1127 ((void (*)(val*))(var_i->class->vft[COLOR_abstract_collection__Iterator__next]))(var_i) /* next on <var_i:Iterator[nullable Object]>*/;
1128 }
1129 CONTINUE_label: (void)0;
1130 }
1131 BREAK_label: (void)0;
1132 {
1133 var19 = string__FlatBuffer__to_s(var_s);
1134 }
1135 var = var19;
1136 goto RET_LABEL;
1137 RET_LABEL:;
1138 return var;
1139 }
1140 /* method string#Collection#join for (self: Object, Text): String */
1141 val* VIRTUAL_string__Collection__join(val* self, val* p0) {
1142 val* var /* : String */;
1143 val* var1 /* : String */;
1144 var1 = string__Collection__join(self, p0);
1145 var = var1;
1146 RET_LABEL:;
1147 return var;
1148 }
1149 /* method string#Array#to_s for (self: Array[nullable Object]): String */
1150 val* string__Array__to_s(val* self) {
1151 val* var /* : String */;
1152 val* var1 /* : FlatBuffer */;
1153 val* var_s /* var s: FlatBuffer */;
1154 long var2 /* : Int */;
1155 long var_i /* var i: Int */;
1156 long var3 /* : Int */;
1157 long var_l /* var l: Int */;
1158 short int var4 /* : Bool */;
1159 short int var6 /* : Bool */;
1160 int cltype;
1161 int idtype;
1162 const char* var_class_name;
1163 short int var7 /* : Bool */;
1164 val* var8 /* : nullable Object */;
1165 val* var_e /* var e: nullable Object */;
1166 val* var9 /* : null */;
1167 short int var10 /* : Bool */;
1168 short int var11 /* : Bool */;
1169 val* var12 /* : String */;
1170 long var13 /* : Int */;
1171 long var14 /* : Int */;
1172 short int var16 /* : Bool */;
1173 int cltype17;
1174 int idtype18;
1175 const char* var_class_name19;
1176 long var20 /* : Int */;
1177 val* var21 /* : String */;
1178 var1 = NEW_string__FlatBuffer(&type_string__FlatBuffer);
1179 {
1180 string__FlatBuffer__init(var1); /* Direct call string#FlatBuffer#init on <var1:FlatBuffer>*/
1181 }
1182 var_s = var1;
1183 var2 = 0;
1184 var_i = var2;
1185 {
1186 var3 = array__AbstractArrayRead__length(self);
1187 }
1188 var_l = var3;
1189 for(;;) {
1190 {
1191 { /* Inline kernel#Int#< (var_i,var_l) on <var_i:Int> */
1192 /* Covariant cast for argument 0 (i) <var_l:Int> isa OTHER */
1193 /* <var_l:Int> isa OTHER */
1194 var6 = 1; /* easy <var_l:Int> isa OTHER*/
1195 if (unlikely(!var6)) {
1196 var_class_name = type_kernel__Int.name;
1197 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1198 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 325);
1199 show_backtrace(1);
1200 }
1201 var7 = var_i < var_l;
1202 var4 = var7;
1203 goto RET_LABEL5;
1204 RET_LABEL5:(void)0;
1205 }
1206 }
1207 if (!var4) break;
1208 {
1209 var8 = array__Array___91d_93d(self, var_i);
1210 }
1211 var_e = var8;
1212 var9 = NULL;
1213 if (var_e == NULL) {
1214 var10 = 0; /* is null */
1215 } else {
1216 var10 = 1; /* arg is null and recv is not */
1217 }
1218 if (0) {
1219 var11 = ((short int (*)(val*, val*))(var_e->class->vft[COLOR_kernel__Object___33d_61d]))(var_e, var9) /* != on <var_e:nullable Object>*/;
1220 var10 = var11;
1221 }
1222 if (var10){
1223 if (var_e == NULL) {
1224 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1225 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 1718);
1226 show_backtrace(1);
1227 } else {
1228 var12 = ((val* (*)(val*))(var_e->class->vft[COLOR_string__Object__to_s]))(var_e) /* to_s on <var_e:nullable Object>*/;
1229 }
1230 {
1231 string__FlatBuffer__append(var_s, var12); /* Direct call string#FlatBuffer#append on <var_s:FlatBuffer>*/
1232 }
1233 } else {
1234 }
1235 var13 = 1;
1236 {
1237 { /* Inline kernel#Int#+ (var_i,var13) on <var_i:Int> */
1238 /* Covariant cast for argument 0 (i) <var13:Int> isa OTHER */
1239 /* <var13:Int> isa OTHER */
1240 var16 = 1; /* easy <var13:Int> isa OTHER*/
1241 if (unlikely(!var16)) {
1242 var_class_name19 = type_kernel__Int.name;
1243 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name19);
1244 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
1245 show_backtrace(1);
1246 }
1247 var20 = var_i + var13;
1248 var14 = var20;
1249 goto RET_LABEL15;
1250 RET_LABEL15:(void)0;
1251 }
1252 }
1253 var_i = var14;
1254 CONTINUE_label: (void)0;
1255 }
1256 BREAK_label: (void)0;
1257 {
1258 var21 = string__FlatBuffer__to_s(var_s);
1259 }
1260 var = var21;
1261 goto RET_LABEL;
1262 RET_LABEL:;
1263 return var;
1264 }
1265 /* method string#Array#to_s for (self: Object): String */
1266 val* VIRTUAL_string__Array__to_s(val* self) {
1267 val* var /* : String */;
1268 val* var1 /* : String */;
1269 var1 = string__Array__to_s(self);
1270 var = var1;
1271 RET_LABEL:;
1272 return var;
1273 }
1274 /* method string#NativeString#[] for (self: NativeString, Int): Char */
1275 char string__NativeString___91d_93d(char* self, long p0) {
1276 char var /* : Char */;
1277 char var1 /* : Char */;
1278 var1 = self[p0];
1279 var = var1;
1280 goto RET_LABEL;
1281 RET_LABEL:;
1282 return var;
1283 }
1284 /* method string#NativeString#[] for (self: Object, Int): Char */
1285 char VIRTUAL_string__NativeString___91d_93d(val* self, long p0) {
1286 char var /* : Char */;
1287 char var1 /* : Char */;
1288 char* var3 /* : NativeString */;
1289 char var4 /* : Char */;
1290 { /* Inline string#NativeString#[] (self,p0) on <self:Object(NativeString)> */
1291 var3 = ((struct instance_kernel__Pointer*)self)->value; /* autounbox from Object to NativeString */;
1292 var4 = var3[p0];
1293 var1 = var4;
1294 goto RET_LABEL2;
1295 RET_LABEL2:(void)0;
1296 }
1297 var = var1;
1298 RET_LABEL:;
1299 return var;
1300 }
1301 /* method string#NativeString#[]= for (self: NativeString, Int, Char) */
1302 void string__NativeString___91d_93d_61d(char* self, long p0, char p1) {
1303 self[p0]=p1;
1304 RET_LABEL:;
1305 }
1306 /* method string#NativeString#[]= for (self: Object, Int, Char) */
1307 void VIRTUAL_string__NativeString___91d_93d_61d(val* self, long p0, char p1) {
1308 char* var /* : NativeString */;
1309 { /* Inline string#NativeString#[]= (self,p0,p1) on <self:Object(NativeString)> */
1310 var = ((struct instance_kernel__Pointer*)self)->value; /* autounbox from Object to NativeString */;
1311 var[p0]=p1;
1312 RET_LABEL1:(void)0;
1313 }
1314 RET_LABEL:;
1315 }
1316 /* method string#NativeString#copy_to for (self: NativeString, NativeString, Int, Int, Int) */
1317 void string__NativeString__copy_to(char* self, char* p0, long p1, long p2, long p3) {
1318 memcpy(p0+p3,self+p2,p1);
1319 RET_LABEL:;
1320 }
1321 /* method string#NativeString#copy_to for (self: Object, NativeString, Int, Int, Int) */
1322 void VIRTUAL_string__NativeString__copy_to(val* self, char* p0, long p1, long p2, long p3) {
1323 char* var /* : NativeString */;
1324 { /* Inline string#NativeString#copy_to (self,p0,p1,p2,p3) on <self:Object(NativeString)> */
1325 var = ((struct instance_kernel__Pointer*)self)->value; /* autounbox from Object to NativeString */;
1326 memcpy(p0+p3,var+p2,p1);
1327 RET_LABEL1:(void)0;
1328 }
1329 RET_LABEL:;
1330 }
1331 /* method string#NativeString#cstring_length for (self: NativeString): Int */
1332 long string__NativeString__cstring_length(char* self) {
1333 long var /* : Int */;
1334 long var1 /* : Int */;
1335 long var_l /* var l: Int */;
1336 char var2 /* : Char */;
1337 char var4 /* : Char */;
1338 char var5 /* : Char */;
1339 short int var6 /* : Bool */;
1340 short int var7 /* : Bool */;
1341 short int var9 /* : Bool */;
1342 short int var10 /* : Bool */;
1343 long var11 /* : Int */;
1344 long var12 /* : Int */;
1345 short int var14 /* : Bool */;
1346 int cltype;
1347 int idtype;
1348 const char* var_class_name;
1349 long var15 /* : Int */;
1350 var1 = 0;
1351 var_l = var1;
1352 for(;;) {
1353 {
1354 { /* Inline string#NativeString#[] (self,var_l) on <self:NativeString> */
1355 var4 = self[var_l];
1356 var2 = var4;
1357 goto RET_LABEL3;
1358 RET_LABEL3:(void)0;
1359 }
1360 }
1361 var5 = '\0';
1362 {
1363 { /* Inline kernel#Char#!= (var2,var5) on <var2:Char> */
1364 var9 = var2 == var5;
1365 var10 = !var9;
1366 var7 = var10;
1367 goto RET_LABEL8;
1368 RET_LABEL8:(void)0;
1369 }
1370 var6 = var7;
1371 }
1372 if (!var6) break;
1373 var11 = 1;
1374 {
1375 { /* Inline kernel#Int#+ (var_l,var11) on <var_l:Int> */
1376 /* Covariant cast for argument 0 (i) <var11:Int> isa OTHER */
1377 /* <var11:Int> isa OTHER */
1378 var14 = 1; /* easy <var11:Int> isa OTHER*/
1379 if (unlikely(!var14)) {
1380 var_class_name = type_kernel__Int.name;
1381 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1382 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
1383 show_backtrace(1);
1384 }
1385 var15 = var_l + var11;
1386 var12 = var15;
1387 goto RET_LABEL13;
1388 RET_LABEL13:(void)0;
1389 }
1390 }
1391 var_l = var12;
1392 CONTINUE_label: (void)0;
1393 }
1394 BREAK_label: (void)0;
1395 var = var_l;
1396 goto RET_LABEL;
1397 RET_LABEL:;
1398 return var;
1399 }
1400 /* method string#NativeString#cstring_length for (self: Object): Int */
1401 long VIRTUAL_string__NativeString__cstring_length(val* self) {
1402 long var /* : Int */;
1403 long var1 /* : Int */;
1404 char* var2 /* : NativeString */;
1405 var2 = ((struct instance_kernel__Pointer*)self)->value; /* autounbox from Object to NativeString */;
1406 var1 = string__NativeString__cstring_length(var2);
1407 var = var1;
1408 RET_LABEL:;
1409 return var;
1410 }
1411 /* method string#NativeString#atoi for (self: NativeString): Int */
1412 long string__NativeString__atoi(char* self) {
1413 long var /* : Int */;
1414 long var1 /* : Int */;
1415 var1 = atoi(self);;
1416 var = var1;
1417 goto RET_LABEL;
1418 RET_LABEL:;
1419 return var;
1420 }
1421 /* method string#NativeString#atoi for (self: Object): Int */
1422 long VIRTUAL_string__NativeString__atoi(val* self) {
1423 long var /* : Int */;
1424 long var1 /* : Int */;
1425 char* var3 /* : NativeString */;
1426 long var4 /* : Int */;
1427 { /* Inline string#NativeString#atoi (self) on <self:Object(NativeString)> */
1428 var3 = ((struct instance_kernel__Pointer*)self)->value; /* autounbox from Object to NativeString */;
1429 var4 = atoi(var3);;
1430 var1 = var4;
1431 goto RET_LABEL2;
1432 RET_LABEL2:(void)0;
1433 }
1434 var = var1;
1435 RET_LABEL:;
1436 return var;
1437 }
1438 /* method string#NativeString#atof for (self: NativeString): Float */
1439 double string__NativeString__atof(char* self) {
1440 double var /* : Float */;
1441 double var1 /* : Float */;
1442 var1 = atof(self);
1443 var = var1;
1444 goto RET_LABEL;
1445 RET_LABEL:;
1446 return var;
1447 }
1448 /* method string#NativeString#atof for (self: Object): Float */
1449 double VIRTUAL_string__NativeString__atof(val* self) {
1450 double var /* : Float */;
1451 double var1 /* : Float */;
1452 double var3 /* : Float */;
1453 char* var4 /* : NativeString */;
1454 { /* Inline string#NativeString#atof (self) on <self:Object(NativeString)> */
1455 var4 = ((struct instance_kernel__Pointer*)self)->value; /* autounbox from Object to NativeString */;
1456 var3 = atof(var4);
1457 var1 = var3;
1458 goto RET_LABEL2;
1459 RET_LABEL2:(void)0;
1460 }
1461 var = var1;
1462 RET_LABEL:;
1463 return var;
1464 }
1465 /* method string#NativeString#to_s for (self: NativeString): String */
1466 val* string__NativeString__to_s(char* self) {
1467 val* var /* : String */;
1468 long var1 /* : Int */;
1469 val* var2 /* : FlatString */;
1470 {
1471 var1 = string__NativeString__cstring_length(self);
1472 }
1473 {
1474 var2 = string__NativeString__to_s_with_length(self, var1);
1475 }
1476 var = var2;
1477 goto RET_LABEL;
1478 RET_LABEL:;
1479 return var;
1480 }
1481 /* method string#NativeString#to_s for (self: Object): String */
1482 val* VIRTUAL_string__NativeString__to_s(val* self) {
1483 val* var /* : String */;
1484 val* var1 /* : String */;
1485 char* var2 /* : NativeString */;
1486 var2 = ((struct instance_kernel__Pointer*)self)->value; /* autounbox from Object to NativeString */;
1487 var1 = string__NativeString__to_s(var2);
1488 var = var1;
1489 RET_LABEL:;
1490 return var;
1491 }
1492 /* method string#NativeString#to_s_with_length for (self: NativeString, Int): FlatString */
1493 val* string__NativeString__to_s_with_length(char* self, long p0) {
1494 val* var /* : FlatString */;
1495 long var_length /* var length: Int */;
1496 long var1 /* : Int */;
1497 short int var2 /* : Bool */;
1498 short int var4 /* : Bool */;
1499 int cltype;
1500 int idtype;
1501 const char* var_class_name;
1502 short int var5 /* : Bool */;
1503 val* var6 /* : FlatString */;
1504 long var7 /* : Int */;
1505 long var8 /* : Int */;
1506 long var9 /* : Int */;
1507 short int var11 /* : Bool */;
1508 int cltype12;
1509 int idtype13;
1510 const char* var_class_name14;
1511 long var15 /* : Int */;
1512 var_length = p0;
1513 var1 = 0;
1514 {
1515 { /* Inline kernel#Int#>= (var_length,var1) on <var_length:Int> */
1516 /* Covariant cast for argument 0 (i) <var1:Int> isa OTHER */
1517 /* <var1:Int> isa OTHER */
1518 var4 = 1; /* easy <var1:Int> isa OTHER*/
1519 if (unlikely(!var4)) {
1520 var_class_name = type_kernel__Int.name;
1521 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1522 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 326);
1523 show_backtrace(1);
1524 }
1525 var5 = var_length >= var1;
1526 var2 = var5;
1527 goto RET_LABEL3;
1528 RET_LABEL3:(void)0;
1529 }
1530 }
1531 if (unlikely(!var2)) {
1532 PRINT_ERROR("Runtime error: %s", "Assert failed");
1533 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 1788);
1534 show_backtrace(1);
1535 }
1536 var6 = NEW_string__FlatString(&type_string__FlatString);
1537 var7 = 0;
1538 var8 = 1;
1539 {
1540 { /* Inline kernel#Int#- (var_length,var8) on <var_length:Int> */
1541 /* Covariant cast for argument 0 (i) <var8:Int> isa OTHER */
1542 /* <var8:Int> isa OTHER */
1543 var11 = 1; /* easy <var8:Int> isa OTHER*/
1544 if (unlikely(!var11)) {
1545 var_class_name14 = type_kernel__Int.name;
1546 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name14);
1547 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 331);
1548 show_backtrace(1);
1549 }
1550 var15 = var_length - var8;
1551 var9 = var15;
1552 goto RET_LABEL10;
1553 RET_LABEL10:(void)0;
1554 }
1555 }
1556 {
1557 string__FlatString__with_infos(var6, self, var_length, var7, var9); /* Direct call string#FlatString#with_infos on <var6:FlatString>*/
1558 }
1559 var = var6;
1560 goto RET_LABEL;
1561 RET_LABEL:;
1562 return var;
1563 }
1564 /* method string#NativeString#to_s_with_length for (self: Object, Int): FlatString */
1565 val* VIRTUAL_string__NativeString__to_s_with_length(val* self, long p0) {
1566 val* var /* : FlatString */;
1567 val* var1 /* : FlatString */;
1568 char* var2 /* : NativeString */;
1569 var2 = ((struct instance_kernel__Pointer*)self)->value; /* autounbox from Object to NativeString */;
1570 var1 = string__NativeString__to_s_with_length(var2, p0);
1571 var = var1;
1572 RET_LABEL:;
1573 return var;
1574 }
1575 /* method string#NativeString#to_s_with_copy for (self: NativeString): FlatString */
1576 val* string__NativeString__to_s_with_copy(char* self) {
1577 val* var /* : FlatString */;
1578 long var1 /* : Int */;
1579 long var_length /* var length: Int */;
1580 long var2 /* : Int */;
1581 long var3 /* : Int */;
1582 short int var5 /* : Bool */;
1583 int cltype;
1584 int idtype;
1585 const char* var_class_name;
1586 long var6 /* : Int */;
1587 char* var7 /* : NativeString */;
1588 val* var9 /* : StringCapable */;
1589 char* var10 /* : NativeString */;
1590 char* var_new_self /* var new_self: NativeString */;
1591 long var11 /* : Int */;
1592 long var12 /* : Int */;
1593 val* var14 /* : FlatString */;
1594 long var15 /* : Int */;
1595 long var16 /* : Int */;
1596 long var17 /* : Int */;
1597 short int var19 /* : Bool */;
1598 int cltype20;
1599 int idtype21;
1600 const char* var_class_name22;
1601 long var23 /* : Int */;
1602 {
1603 var1 = string__NativeString__cstring_length(self);
1604 }
1605 var_length = var1;
1606 var2 = 1;
1607 {
1608 { /* Inline kernel#Int#+ (var_length,var2) on <var_length:Int> */
1609 /* Covariant cast for argument 0 (i) <var2:Int> isa OTHER */
1610 /* <var2:Int> isa OTHER */
1611 var5 = 1; /* easy <var2:Int> isa OTHER*/
1612 if (unlikely(!var5)) {
1613 var_class_name = type_kernel__Int.name;
1614 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1615 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
1616 show_backtrace(1);
1617 }
1618 var6 = var_length + var2;
1619 var3 = var6;
1620 goto RET_LABEL4;
1621 RET_LABEL4:(void)0;
1622 }
1623 }
1624 {
1625 { /* Inline string#StringCapable#calloc_string (self,var3) on <self:NativeString> */
1626 var9 = BOX_string__NativeString(self); /* autobox from NativeString to StringCapable */
1627 var10 = (char*)nit_alloc(var3);
1628 var7 = var10;
1629 goto RET_LABEL8;
1630 RET_LABEL8:(void)0;
1631 }
1632 }
1633 var_new_self = var7;
1634 var11 = 0;
1635 var12 = 0;
1636 {
1637 { /* Inline string#NativeString#copy_to (self,var_new_self,var_length,var11,var12) on <self:NativeString> */
1638 memcpy(var_new_self+var12,self+var11,var_length);
1639 RET_LABEL13:(void)0;
1640 }
1641 }
1642 var14 = NEW_string__FlatString(&type_string__FlatString);
1643 var15 = 0;
1644 var16 = 1;
1645 {
1646 { /* Inline kernel#Int#- (var_length,var16) on <var_length:Int> */
1647 /* Covariant cast for argument 0 (i) <var16:Int> isa OTHER */
1648 /* <var16:Int> isa OTHER */
1649 var19 = 1; /* easy <var16:Int> isa OTHER*/
1650 if (unlikely(!var19)) {
1651 var_class_name22 = type_kernel__Int.name;
1652 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name22);
1653 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 331);
1654 show_backtrace(1);
1655 }
1656 var23 = var_length - var16;
1657 var17 = var23;
1658 goto RET_LABEL18;
1659 RET_LABEL18:(void)0;
1660 }
1661 }
1662 {
1663 string__FlatString__with_infos(var14, var_new_self, var_length, var15, var17); /* Direct call string#FlatString#with_infos on <var14:FlatString>*/
1664 }
1665 var = var14;
1666 goto RET_LABEL;
1667 RET_LABEL:;
1668 return var;
1669 }
1670 /* method string#NativeString#to_s_with_copy for (self: Object): FlatString */
1671 val* VIRTUAL_string__NativeString__to_s_with_copy(val* self) {
1672 val* var /* : FlatString */;
1673 val* var1 /* : FlatString */;
1674 char* var2 /* : NativeString */;
1675 var2 = ((struct instance_kernel__Pointer*)self)->value; /* autounbox from Object to NativeString */;
1676 var1 = string__NativeString__to_s_with_copy(var2);
1677 var = var1;
1678 RET_LABEL:;
1679 return var;
1680 }
1681 /* method string#StringCapable#calloc_string for (self: StringCapable, Int): NativeString */
1682 char* string__StringCapable__calloc_string(val* self, long p0) {
1683 char* var /* : NativeString */;
1684 char* var1 /* : NativeString */;
1685 var1 = (char*)nit_alloc(p0);
1686 var = var1;
1687 goto RET_LABEL;
1688 RET_LABEL:;
1689 return var;
1690 }
1691 /* method string#StringCapable#calloc_string for (self: Object, Int): NativeString */
1692 char* VIRTUAL_string__StringCapable__calloc_string(val* self, long p0) {
1693 char* var /* : NativeString */;
1694 char* var1 /* : NativeString */;
1695 char* var3 /* : NativeString */;
1696 { /* Inline string#StringCapable#calloc_string (self,p0) on <self:Object(StringCapable)> */
1697 var3 = (char*)nit_alloc(p0);
1698 var1 = var3;
1699 goto RET_LABEL2;
1700 RET_LABEL2:(void)0;
1701 }
1702 var = var1;
1703 RET_LABEL:;
1704 return var;
1705 }
1706 /* method string#Sys#program_args for (self: Sys): Sequence[String] */
1707 val* string__Sys__program_args(val* self) {
1708 val* var /* : Sequence[String] */;
1709 val* var1 /* : nullable Sequence[String] */;
1710 val* var2 /* : null */;
1711 short int var3 /* : Bool */;
1712 short int var4 /* : Bool */;
1713 val* var5 /* : nullable Sequence[String] */;
1714 var1 = self->attrs[COLOR_string__Sys___args_cache].val; /* _args_cache on <self:Sys> */
1715 var2 = NULL;
1716 if (var1 == NULL) {
1717 var3 = 1; /* is null */
1718 } else {
1719 var3 = 0; /* arg is null but recv is not */
1720 }
1721 if (0) {
1722 var4 = abstract_collection__SequenceRead___61d_61d(var1, var2);
1723 var3 = var4;
1724 }
1725 if (var3){
1726 {
1727 string__Sys__init_args(self); /* Direct call string#Sys#init_args on <self:Sys>*/
1728 }
1729 } else {
1730 }
1731 var5 = self->attrs[COLOR_string__Sys___args_cache].val; /* _args_cache on <self:Sys> */
1732 if (unlikely(var5 == NULL)) {
1733 PRINT_ERROR("Runtime error: %s", "Cast failed");
1734 PRINT_ERROR(" (%s:%d)\n", "lib/standard/string.nit", 1813);
1735 show_backtrace(1);
1736 }
1737 var = var5;
1738 goto RET_LABEL;
1739 RET_LABEL:;
1740 return var;
1741 }
1742 /* method string#Sys#program_args for (self: Object): Sequence[String] */
1743 val* VIRTUAL_string__Sys__program_args(val* self) {
1744 val* var /* : Sequence[String] */;
1745 val* var1 /* : Sequence[String] */;
1746 var1 = string__Sys__program_args(self);
1747 var = var1;
1748 RET_LABEL:;
1749 return var;
1750 }
1751 /* method string#Sys#program_name for (self: Sys): String */
1752 val* string__Sys__program_name(val* self) {
1753 val* var /* : String */;
1754 long var1 /* : Int */;
1755 char* var2 /* : NativeString */;
1756 char* var4 /* : NativeString */;
1757 val* var5 /* : String */;
1758 var1 = 0;
1759 {
1760 { /* Inline string#Sys#native_argv (self,var1) on <self:Sys> */
1761 var4 = glob_argv[var1];
1762 var2 = var4;
1763 goto RET_LABEL3;
1764 RET_LABEL3:(void)0;
1765 }
1766 }
1767 {
1768 var5 = string__NativeString__to_s(var2);
1769 }
1770 var = var5;
1771 goto RET_LABEL;
1772 RET_LABEL:;
1773 return var;
1774 }
1775 /* method string#Sys#program_name for (self: Object): String */
1776 val* VIRTUAL_string__Sys__program_name(val* self) {
1777 val* var /* : String */;
1778 val* var1 /* : String */;
1779 var1 = string__Sys__program_name(self);
1780 var = var1;
1781 RET_LABEL:;
1782 return var;
1783 }
1784 /* method string#Sys#init_args for (self: Sys) */
1785 void string__Sys__init_args(val* self) {
1786 long var /* : Int */;
1787 long var2 /* : Int */;
1788 long var_argc /* var argc: Int */;
1789 val* var3 /* : Array[String] */;
1790 long var4 /* : Int */;
1791 val* var_args /* var args: Array[String] */;
1792 long var5 /* : Int */;
1793 long var_i /* var i: Int */;
1794 short int var6 /* : Bool */;
1795 short int var8 /* : Bool */;
1796 int cltype;
1797 int idtype;
1798 const char* var_class_name;
1799 short int var9 /* : Bool */;
1800 long var10 /* : Int */;
1801 long var11 /* : Int */;
1802 short int var13 /* : Bool */;
1803 int cltype14;
1804 int idtype15;
1805 const char* var_class_name16;
1806 long var17 /* : Int */;
1807 char* var18 /* : NativeString */;
1808 char* var20 /* : NativeString */;
1809 val* var21 /* : String */;
1810 long var22 /* : Int */;
1811 long var23 /* : Int */;
1812 short int var25 /* : Bool */;
1813 int cltype26;
1814 int idtype27;
1815 const char* var_class_name28;
1816 long var29 /* : Int */;
1817 {
1818 { /* Inline string#Sys#native_argc (self) on <self:Sys> */
1819 var2 = glob_argc;
1820 var = var2;
1821 goto RET_LABEL1;
1822 RET_LABEL1:(void)0;
1823 }
1824 }
1825 var_argc = var;
1826 var3 = NEW_array__Array(&type_array__Arraystring__String);
1827 var4 = 0;
1828 {
1829 array__Array__with_capacity(var3, var4); /* Direct call array#Array#with_capacity on <var3:Array[String]>*/
1830 }
1831 var_args = var3;
1832 var5 = 1;
1833 var_i = var5;
1834 for(;;) {
1835 {
1836 { /* Inline kernel#Int#< (var_i,var_argc) on <var_i:Int> */
1837 /* Covariant cast for argument 0 (i) <var_argc:Int> isa OTHER */
1838 /* <var_argc:Int> isa OTHER */
1839 var8 = 1; /* easy <var_argc:Int> isa OTHER*/
1840 if (unlikely(!var8)) {
1841 var_class_name = type_kernel__Int.name;
1842 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1843 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 325);
1844 show_backtrace(1);
1845 }
1846 var9 = var_i < var_argc;
1847 var6 = var9;
1848 goto RET_LABEL7;
1849 RET_LABEL7:(void)0;
1850 }
1851 }
1852 if (!var6) break;
1853 var10 = 1;
1854 {
1855 { /* Inline kernel#Int#- (var_i,var10) on <var_i:Int> */
1856 /* Covariant cast for argument 0 (i) <var10:Int> isa OTHER */
1857 /* <var10:Int> isa OTHER */
1858 var13 = 1; /* easy <var10:Int> isa OTHER*/
1859 if (unlikely(!var13)) {
1860 var_class_name16 = type_kernel__Int.name;
1861 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name16);
1862 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 331);
1863 show_backtrace(1);
1864 }
1865 var17 = var_i - var10;
1866 var11 = var17;
1867 goto RET_LABEL12;
1868 RET_LABEL12:(void)0;
1869 }
1870 }
1871 {
1872 { /* Inline string#Sys#native_argv (self,var_i) on <self:Sys> */
1873 var20 = glob_argv[var_i];
1874 var18 = var20;
1875 goto RET_LABEL19;
1876 RET_LABEL19:(void)0;
1877 }
1878 }
1879 {
1880 var21 = string__NativeString__to_s(var18);
1881 }
1882 {
1883 array__Array___91d_93d_61d(var_args, var11, var21); /* Direct call array#Array#[]= on <var_args:Array[String]>*/
1884 }
1885 var22 = 1;
1886 {
1887 { /* Inline kernel#Int#+ (var_i,var22) on <var_i:Int> */
1888 /* Covariant cast for argument 0 (i) <var22:Int> isa OTHER */
1889 /* <var22:Int> isa OTHER */
1890 var25 = 1; /* easy <var22:Int> isa OTHER*/
1891 if (unlikely(!var25)) {
1892 var_class_name28 = type_kernel__Int.name;
1893 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name28);
1894 PRINT_ERROR(" (%s:%d)\n", "lib/standard/kernel.nit", 328);
1895 show_backtrace(1);
1896 }
1897 var29 = var_i + var22;
1898 var23 = var29;
1899 goto RET_LABEL24;
1900 RET_LABEL24:(void)0;
1901 }
1902 }
1903 var_i = var23;
1904 CONTINUE_label: (void)0;
1905 }
1906 BREAK_label: (void)0;
1907 self->attrs[COLOR_string__Sys___args_cache].val = var_args; /* _args_cache on <self:Sys> */
1908 RET_LABEL:;
1909 }
1910 /* method string#Sys#init_args for (self: Object) */
1911 void VIRTUAL_string__Sys__init_args(val* self) {
1912 string__Sys__init_args(self); /* Direct call string#Sys#init_args on <self:Object(Sys)>*/
1913 RET_LABEL:;
1914 }
1915 /* method string#Sys#native_argc for (self: Sys): Int */
1916 long string__Sys__native_argc(val* self) {
1917 long var /* : Int */;
1918 long var1 /* : Int */;
1919 var1 = glob_argc;
1920 var = var1;
1921 goto RET_LABEL;
1922 RET_LABEL:;
1923 return var;
1924 }
1925 /* method string#Sys#native_argc for (self: Object): Int */
1926 long VIRTUAL_string__Sys__native_argc(val* self) {
1927 long var /* : Int */;
1928 long var1 /* : Int */;
1929 long var3 /* : Int */;
1930 { /* Inline string#Sys#native_argc (self) on <self:Object(Sys)> */
1931 var3 = glob_argc;
1932 var1 = var3;
1933 goto RET_LABEL2;
1934 RET_LABEL2:(void)0;
1935 }
1936 var = var1;
1937 RET_LABEL:;
1938 return var;
1939 }
1940 /* method string#Sys#native_argv for (self: Sys, Int): NativeString */
1941 char* string__Sys__native_argv(val* self, long p0) {
1942 char* var /* : NativeString */;
1943 char* var1 /* : NativeString */;
1944 var1 = glob_argv[p0];
1945 var = var1;
1946 goto RET_LABEL;
1947 RET_LABEL:;
1948 return var;
1949 }
1950 /* method string#Sys#native_argv for (self: Object, Int): NativeString */
1951 char* VIRTUAL_string__Sys__native_argv(val* self, long p0) {
1952 char* var /* : NativeString */;
1953 char* var1 /* : NativeString */;
1954 char* var3 /* : NativeString */;
1955 { /* Inline string#Sys#native_argv (self,p0) on <self:Object(Sys)> */
1956 var3 = glob_argv[p0];
1957 var1 = var3;
1958 goto RET_LABEL2;
1959 RET_LABEL2:(void)0;
1960 }
1961 var = var1;
1962 RET_LABEL:;
1963 return var;
1964 }