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